<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/ext/tk/sample/resource.ja, branch v1_8_5_52</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>* tcltklib.c (lib_mainloop_core): fixed signal-trap bug</title>
<updated>2003-09-07T07:10:44+00:00</updated>
<author>
<name>nagai</name>
<email>nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2003-09-07T07:10:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=865ff7fb4f11bbf1f0e139e16470727828f54e63'/>
<id>865ff7fb4f11bbf1f0e139e16470727828f54e63</id>
<content type='text'>
* multi-tk.rb, tk.rb, tkafter.rb, tkcanvas.rb, tkfont.rb, tktext.rb,
  tkvirtevent.rb : Ruby/Tk works at $SAFE == 4


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* multi-tk.rb, tk.rb, tkafter.rb, tkcanvas.rb, tkfont.rb, tktext.rb,
  tkvirtevent.rb : Ruby/Tk works at $SAFE == 4


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* bug fix : wrong resource file format (resource.{en,jp})</title>
<updated>2003-07-31T23:04:45+00:00</updated>
<author>
<name>nagai</name>
<email>nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2003-07-31T23:04:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bc8b42fc1eb3f1adf9d170dc353a33f53bdab92f'/>
<id>bc8b42fc1eb3f1adf9d170dc353a33f53bdab92f</id>
<content type='text'>
* add Tk::Encoding.{encoding_convertfrom, encoding_convertto}
* add TkOptionDB.read_with_encoding to read non-utf8 resource file


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* add Tk::Encoding.{encoding_convertfrom, encoding_convertto}
* add TkOptionDB.read_with_encoding to read non-utf8 resource file


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>tk.rb :</title>
<updated>2003-06-24T16:46:07+00:00</updated>
<author>
<name>nagai</name>
<email>nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2003-06-24T16:46:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=17e1936d8bdd897cebd03ed198a826ee395572ac'/>
<id>17e1936d8bdd897cebd03ed198a826ee395572ac</id>
<content type='text'>
  * TkToplevel, TkFrame, TkPanedwindow, TkOptionDB : bug fix
  * TkOptionDB : make it more secure to use procs defined on resourceDB

sample/tkoptdb.rb, sample/resource.ja, sample/resource.en :
  * sample script how to use TkOptionDB.
    resource.ja and resource.en are samples of resource definition file
    which are read by tkoptdb.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  * TkToplevel, TkFrame, TkPanedwindow, TkOptionDB : bug fix
  * TkOptionDB : make it more secure to use procs defined on resourceDB

sample/tkoptdb.rb, sample/resource.ja, sample/resource.en :
  * sample script how to use TkOptionDB.
    resource.ja and resource.en are samples of resource definition file
    which are read by tkoptdb.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
<option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><div class='diffstat-header'><a href='/ruby.git/diff/?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>Diffstat</a></div><table summary='diffstat' class='diffstat'><tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/.cvsignore?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.cvsignore</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/.document?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.document</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/.gdbinit?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.gdbinit</a></td><td class='right'>757</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/.gitignore?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.gitignore</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.travis.yml</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/BSDL?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='upd'><a href='/ruby.git/diff/COPYING?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>COPYING</a></td><td class='right'>366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><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='add'><a href='/ruby.git/diff/COPYING.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>COPYING.ja</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/ChangeLog?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ChangeLog</a></td><td class='right'>16687</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 18.9%;'/><td class='rem' style='width: 1.8%;'/><td class='none' style='width: 79.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/GPL?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>GPL</a></td><td class='right'>340</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/KNOWNBUGS.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>KNOWNBUGS.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/LEGAL?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>LEGAL</a></td><td class='right'>533</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/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>MANIFEST</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='upd'><a href='/ruby.git/diff/Makefile.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>Makefile.in</a></td><td class='right'>564</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/NEWS?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>NEWS</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='upd'><a href='/ruby.git/diff/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README</a></td><td class='right'>146</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/README.EXT?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.EXT</a></td><td class='right'>1575</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.7%;'/><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/README.EXT.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.EXT.ja</a></td><td class='right'>1570</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='del'><a href='/ruby.git/diff/README.EXT.jp?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.EXT.jp</a></td><td class='right'>1147</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='add'><a href='/ruby.git/diff/README.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.ja</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/README.jp?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.jp</a></td><td class='right'>171</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/ToDo?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ToDo</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/addr2line.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>addr2line.c</a></td><td class='right'>610</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/addr2line.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='upd'><a href='/ruby.git/diff/array.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>array.c</a></td><td class='right'>5042</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.2%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 93.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/atomic.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>atomic.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/bcc32/Makefile.sub?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bcc32/Makefile.sub</a></td><td class='right'>617</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/bcc32/README.bcc32?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bcc32/README.bcc32</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 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/bcc32/configure.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bcc32/configure.bat</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/bcc32/mkexports.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bcc32/mkexports.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/bcc32/setup.mak?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bcc32/setup.mak</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/benchmark/bm_app_answer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_erb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_mandelbrot.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_io_file_create.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_select.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_io_select2.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_io_select3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_io_select3.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_loop_for.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_so_ackermann.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_so_binary_trees.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_concatenate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_fasta.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_so_meteor_contest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_so_meteor_contest.rb</a></td><td class='right'>564</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/benchmark/bm_so_nbody.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_so_nsieve_bits.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_object.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_vm1_block.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm1_const.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_ivar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_neq.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_vm2_array.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_defined_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_eval.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_mutex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_poly_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_proc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_regexp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_super.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_clearmethodcache.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/benchmark/bm_vm3_gc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_vm3_gc.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_create_join.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bm_vm_thread_pass_flood.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_vm_thread_pipe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/bmx_temp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/bmx_temp.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/driver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>benchmark/driver.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/benchmark/make_fasta_output.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/other-lang/ack.pl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_so_count_words.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/runc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='del'><a href='/ruby.git/diff/beos/ruby.def.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>beos/ruby.def.in</a></td><td class='right'>353</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/bignum.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bignum.c</a></td><td class='right'>3845</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/bin/erb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bin/erb</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/bin/gem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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</td><td class='add'><a href='/ruby.git/diff/bin/irb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bin/irb</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/bin/rake?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bin/rake</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/bin/rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bin/rdoc</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/bin/ri?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bin/ri</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/bin/testrb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bin/testrb</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/bootstraptest/pending.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/runner.rb</a></td><td class='right'>393</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_autoload.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/bootstraptest/test_block.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_block.rb</a></td><td class='right'>567</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_class.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/bootstraptest/test_eval.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_eval.rb</a></td><td class='right'>321</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_exception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_exception.rb</a></td><td class='right'>416</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_flow.rb</a></td><td class='right'>564</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_fork.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_fork.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/bootstraptest/test_gc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_io.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_io.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/bootstraptest/test_jump.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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_literal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_literal.rb</a></td><td class='right'>202</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_load.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_method.rb</a></td><td class='right'>1186</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/bootstraptest/test_objectspace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_proc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_proc.rb</a></td><td class='right'>458</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_struct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_syntax.rb</a></td><td class='right'>902</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/bootstraptest/test_thread.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bootstraptest/test_thread.rb</a></td><td class='right'>454</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/class.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>class.c</a></td><td class='right'>1612</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.4%;'/><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/common.mk?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>common.mk</a></td><td class='right'>978</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/compar.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>compar.c</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.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/compile.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>compile.c</a></td><td class='right'>5578</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 93.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/complex.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>complex.c</a></td><td class='right'>1994</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config.guess</a></td><td class='right'>885</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/config.sub?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config.sub</a></td><td class='right'>966</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/config_h.dj?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config_h.dj</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/config_s.dj?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config_s.dj</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/configure?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>configure</a></td><td class='right'>4273</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.3%;'/><td class='none' style='width: 94.7%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/configure.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>configure.bat</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/configure.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>configure.in</a></td><td class='right'>3313</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.6%;'/><td class='rem' style='width: 0.5%;'/><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/constant.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>constant.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='add'><a href='/ruby.git/diff/cont.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>cont.c</a></td><td class='right'>1525</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/cygwin/GNUmakefile.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>cygwin/GNUmakefile.in</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/debug.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>debug.c</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/debug.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>debug.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>defines.h</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='add'><a href='/ruby.git/diff/defs/default_gems?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>defs/default_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/defs/keywords?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>defs/known_errors.def</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/defs/lex.c.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>defs/opt_insn_unif.def</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/defs/opt_operand.def?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>defs/opt_operand.def</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='upd'><a href='/ruby.git/diff/dir.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dir.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.3%;'/><td class='none' style='width: 97.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/dln.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dln.c</a></td><td class='right'>916</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.5%;'/><td class='rem' style='width: 0.7%;'/><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/dln.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dln.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: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/dln_find.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dln_find.c</a></td><td class='right'>320</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/dmydln.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dmydln.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/dmyencoding.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dmyencoding.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='upd'><a href='/ruby.git/diff/dmyext.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/dmyversion.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dmyversion.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/ChangeLog-1.8.0?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/ChangeLog-1.8.0</a></td><td class='right'>24350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 30.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 69.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/ChangeLog-1.9.3</a></td><td class='right'>80621</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-YARV?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 8.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.4%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/NEWS-1.8.7</a></td><td class='right'>648</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/NEWS-1.9.1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/NEWS-1.9.1</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/doc/NEWS-1.9.2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/NEWS-1.9.2</a></td><td class='right'>499</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/etc.rd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/etc.rd</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/etc.rd.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/forwardable.rd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/forwardable.rd</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/doc/forwardable.rd.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/forwardable.rd.ja</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/doc/images/boottime-classes.png?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/doc/irb/irb-tools.rd.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/irb/irb-tools.rd.ja</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/doc/irb/irb.rd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/irb/irb.rd</a></td><td class='right'>391</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/irb/irb.rd.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/irb/irb.rd.ja</a></td><td class='right'>412</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/pty/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/pty/README</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/doc/pty/README.expect?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/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='add'><a href='/ruby.git/diff/doc/pty/README.expect.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/rake/CHANGES?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/CHANGES</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/doc/rake/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/README</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/doc/rake/command_line_usage.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/command_line_usage.rdoc</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/doc/rake/example/Rakefile1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/example/Rakefile1</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/doc/rake/example/Rakefile2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/example/Rakefile2</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/doc/rake/example/a.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/example/a.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='add'><a href='/ruby.git/diff/doc/rake/example/b.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/example/b.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='add'><a href='/ruby.git/diff/doc/rake/example/main.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/example/main.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/doc/rake/glossary.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/glossary.rdoc</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/doc/rake/jamis.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/jamis.rb</a></td><td class='right'>591</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/rake/proto_rake.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/proto_rake.rdoc</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rake/rakefile.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/rakefile.rdoc</a></td><td class='right'>534</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/rake/rational.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/rational.rdoc</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/doc/rake/release_notes/rake-0.8.7.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rake/release_notes/rake-0.8.7.rdoc</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/doc/re.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/re.rdoc</a></td><td class='right'>582</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/rubygems/ChangeLog?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rubygems/ChangeLog</a></td><td class='right'>5689</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/doc/rubygems/History.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rubygems/History.txt</a></td><td class='right'>852</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/doc/rubygems/LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rubygems/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rubygems/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/rubygems/README</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/shell.rd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/shell.rd</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/doc/shell.rd.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>doc/shell.rd.ja</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/enc/Makefile.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/Makefile.in</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/enc/ascii.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/ascii.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/enc/big5.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/big5.c</a></td><td class='right'>367</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/cp949.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/cp949.c</a></td><td class='right'>219</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/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/depend</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/enc/emacs_mule.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/emacs_mule.c</a></td><td class='right'>340</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/encdb.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/enc/euc_jp.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/euc_jp.c</a></td><td class='right'>398</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/euc_kr.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/euc_kr.c</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/enc/euc_tw.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/euc_tw.c</a></td><td class='right'>225</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/gb18030.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/gb18030.c</a></td><td class='right'>601</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/gb2312.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/gbk.c</a></td><td class='right'>222</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_2022_jp.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_2022_jp.h</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_1.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_1.c</a></td><td class='right'>287</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/iso_8859_10.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_10.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/enc/iso_8859_11.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_11.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/enc/iso_8859_13.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_13.c</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/enc/iso_8859_14.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_14.c</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/enc/iso_8859_15.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_15.c</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/enc/iso_8859_16.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_16.c</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/enc/iso_8859_2.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_2.c</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/enc/iso_8859_3.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_3.c</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/enc/iso_8859_4.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_4.c</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/enc/iso_8859_5.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_5.c</a></td><td class='right'>230</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_6.c</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/enc/iso_8859_7.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_7.c</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/enc/iso_8859_8.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_8.c</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/enc/iso_8859_9.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/iso_8859_9.c</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/enc/koi8_r.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/koi8_r.c</a></td><td class='right'>219</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/koi8_u.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/koi8_u.c</a></td><td class='right'>221</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/enc/make_encmake.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/make_encmake.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/enc/prelude.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/prelude.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/shift_jis.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/shift_jis.c</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/enc/trans/CP/CP932UDA%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/CP/CP932VDC@IBM%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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%25CP932UDA.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/CP/UCS%25CP932VDC@IBM.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/EMOJI_ISO-2022-JP-KDDI%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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_SHIFT_JIS-KDDI%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/EMOJI/UCS%25EMOJI_ISO-2022-JP-KDDI-UNDOC.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/UCS%25EMOJI_ISO-2022-JP-KDDI.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-DOCOMO.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/UCS%25EMOJI_SHIFT_JIS-KDDI-UNDOC.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-KDDI.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-SOFTBANK.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/GB/GB12345%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/GB/GB12345%UCS.src</a></td><td class='right'>7618</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 90.6%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/GB/GB2312%UCS.src</a></td><td class='right'>7535</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 90.7%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/GB/UCS%GB12345.src</a></td><td class='right'>7620</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/GB/UCS%25GB2312.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/GB/UCS%GB2312.src</a></td><td class='right'>7531</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 9.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 90.7%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/JIS/JISX0201-KANA%UCS.src</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/JIS/JISX0208@1990%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/JIS/JISX0208@1990%UCS.src</a></td><td class='right'>6972</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.4%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 8.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.5%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/enc/trans/JIS/JISX0208VDC@NEC%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/JIS/JISX0212%UCS.src</a></td><td class='right'>6167</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/trans/JIS/JISX0212@MS%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/JISX0212UDC%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/enc/trans/JIS/JISX0212VDC@IBM%25UCS.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/UCS%25JISX0201-KANA.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/JIS/UCS%JISX0201-KANA.src</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/JIS/UCS%25JISX0208@1990.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/JIS/UCS%JISX0208@1990.src</a></td><td class='right'>6974</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.3%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 8.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.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%25JISX0208UDC.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/enc/trans/JIS/UCS%25JISX0208VDC@NEC.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/JIS/UCS%JISX0212.src</a></td><td class='right'>6170</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.3%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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%25JISX0212UDC.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/enc/trans/JIS/UCS%25JISX0212VDC@IBM.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/big5-hkscs-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 46.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 53.7%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 24.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 75.5%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/big5.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/chinese.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/chinese.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/cp850-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/cp852-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/cp855-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/cp949-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 11.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 89.0%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/enc/trans/emoji.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/emoji.trans</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/trans/emoji_iso2022_kddi.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/emoji_iso2022_kddi.trans</a></td><td class='right'>217</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_sjis_docomo.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/emoji_sjis_docomo.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_kddi.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/emoji_sjis_kddi.trans</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/enc/trans/emoji_sjis_softbank.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/emoji_sjis_softbank.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/escape.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/escape.trans</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/enc/trans/euckr-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/euckr-tbl.rb</a></td><td class='right'>8228</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/enc/trans/gb18030-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 78.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 21.4%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/gb18030.trans</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/enc/trans/gbk-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 27.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 73.0%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/gbk.trans</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/enc/trans/ibm437-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm737-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm775-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm852-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm855-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm857-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm860-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm861-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm862-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm863-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm865-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm866-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ibm869-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/iso-8859-1-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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-2-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/iso2022.trans</a></td><td class='right'>568</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/japanese.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/japanese.trans</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/japanese_euc.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/japanese_euc.trans</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/japanese_sjis.trans</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/enc/trans/koi8-r-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/koi8-u-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/korean.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/korean.trans</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/enc/trans/maccroatian-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/maccyrillic-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/macgreek-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/maciceland-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/macroman-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/macromania-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/macturkish-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/macukraine-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/newline.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/single_byte.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/single_byte.trans</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/tis-620-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 17.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 82.5%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 22.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 77.3%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/ucm/windows-950_hkscs-2001.ucm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 29.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 70.9%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/utf8_mac-tbl.rb</a></td><td class='right'>945</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/enc/trans/utf8_mac.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/utf8_mac.trans</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/enc/trans/utf_16_32.trans?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/utf_16_32.trans</a></td><td class='right'>557</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/windows-1250-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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-1251-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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-1252-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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-1253-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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-1255-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/trans/windows-1255-tbl.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/enc/trans/windows-1256-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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-1257-tbl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/unicode.c</a></td><td class='right'>2609</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/enc/unicode/name2ctype.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/unicode/name2ctype.h</a></td><td class='right'>23866</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 29.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 70.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/name2ctype.h.blt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/unicode/name2ctype.h.blt</a></td><td class='right'>23866</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 29.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 70.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/name2ctype.kwd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/unicode/name2ctype.kwd</a></td><td class='right'>22543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 28.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 72.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enc/unicode/name2ctype.src?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/unicode/name2ctype.src</a></td><td class='right'>22543</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 28.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 72.0%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/us_ascii.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/enc/utf_16_32.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/utf_16_32.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='add'><a href='/ruby.git/diff/enc/utf_16be.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/utf_16be.c</a></td><td class='right'>257</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/utf_16le.c</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/enc/utf_32be.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/utf_32be.c</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/enc/utf_32le.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/utf_32le.c</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/enc/utf_7.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/utf_8.c</a></td><td class='right'>457</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/windows_1251.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enc/windows_1251.c</a></td><td class='right'>208</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/x_emoji.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/encoding.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>encoding.c</a></td><td class='right'>1662</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enum.c</a></td><td class='right'>2713</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.1%;'/><td class='rem' style='width: 0.2%;'/><td class='none' style='width: 96.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/enumerator.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>enumerator.c</a></td><td class='right'>1178</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='del'><a href='/ruby.git/diff/env.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>env.h</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='upd'><a href='/ruby.git/diff/error.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>error.c</a></td><td class='right'>2436</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 1.1%;'/><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/eval.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>eval.c</a></td><td class='right'>7004</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 7.8%;'/><td class='none' style='width: 91.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/eval_error.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>eval_error.c</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/eval_intern.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>eval_intern.h</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/eval_jump.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>eval_jump.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/-test-/array/resize/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/array/resize/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-/array/resize/resize.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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-/bug-3571/bug.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/bug-3571/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-/bug-3662/bug.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/bug-3662/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-/bug-3662/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/bug-3662/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-/funcall/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/funcall/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-/funcall/passing_block.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/funcall/passing_block.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-/load/dot.dot/dot.dot.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/load/dot.dot/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-/old_thread_select/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/old_thread_select/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='add'><a href='/ruby.git/diff/ext/-test-/old_thread_select/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/old_thread_select/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-/old_thread_select/old_thread_select.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/old_thread_select/old_thread_select.c</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/-test-/st/numhash/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/st/numhash/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-/st/numhash/numhash.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/st/numhash/numhash.c</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/ext/-test-/string/cstr.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/string/cstr.c</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/-test-/string/ellipsize.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/string/enc_associate.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/string/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/-test-/string/init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/set_len.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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-/wait_for_single_fd/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/wait_for_single_fd/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='add'><a href='/ruby.git/diff/ext/-test-/wait_for_single_fd/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/wait_for_single_fd/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/wait_for_single_fd.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/dln/dlntest.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/win32/dln/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='add'><a href='/ruby.git/diff/ext/-test-/win32/dln/libdlntest.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/win32/fd_setsize/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='add'><a href='/ruby.git/diff/ext/-test-/win32/fd_setsize/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/-test-/win32/fd_setsize/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-/win32/fd_setsize/fd_setsize.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/.document?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/.document</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/ext/Setup?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Setup</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/Setup.atheos?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Setup.atheos</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/Setup.dj?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Setup.dj</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/Setup.emx?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Setup.emx</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/Setup.nt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Setup.nt</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/Setup.x68?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Setup.x68</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/Win32API/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Win32API/MANIFEST</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Win32API/Win32API.c</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.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/Win32API/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/Win32API/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='del'><a href='/ruby.git/diff/ext/Win32API/getch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/point.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/aix_ld.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/aix_ld.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='add'><a href='/ruby.git/diff/ext/bigdecimal/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/bigdecimal/bigdecimal.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/bigdecimal.c</a></td><td class='right'>5888</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/ext/bigdecimal/bigdecimal.gemspec?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/bigdecimal.gemspec</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/bigdecimal/bigdecimal.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/bigdecimal.h</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/ext/bigdecimal/bigdecimal_en.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/bigdecimal_en.html</a></td><td class='right'>792</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/bigdecimal/bigdecimal_ja.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/bigdecimal/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/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/bigdecimal/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/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/bigdecimal/lib/bigdecimal/jacobian.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/lib/bigdecimal/jacobian.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/ext/bigdecimal/lib/bigdecimal/ludcmp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/lib/bigdecimal/ludcmp.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/ext/bigdecimal/lib/bigdecimal/math.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/lib/bigdecimal/math.rb</a></td><td class='right'>206</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/bigdecimal/lib/bigdecimal/newton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/lib/bigdecimal/newton.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/bigdecimal/lib/bigdecimal/util.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/lib/bigdecimal/util.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/ext/bigdecimal/sample/linear.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/sample/linear.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/bigdecimal/sample/nlsolve.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/sample/nlsolve.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/bigdecimal/sample/pi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/bigdecimal/sample/pi.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/continuation/continuation.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/continuation/continuation.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/continuation/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/continuation/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/coverage/coverage.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/coverage/coverage.c</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/ext/coverage/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/coverage/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='del'><a href='/ruby.git/diff/ext/curses/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/curses/MANIFEST</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/curses/curses.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/curses/curses.c</a></td><td class='right'>3903</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.5%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 95.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/curses/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='upd'><a href='/ruby.git/diff/ext/curses/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/curses/extconf.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: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/ext/curses/hello.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/curses/hello.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/curses/mouse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='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/curses/view.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/curses/view.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/curses/view2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/curses/view2.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='del'><a href='/ruby.git/diff/ext/cygwin32_ld.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/cygwin32_ld.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='add'><a href='/ruby.git/diff/ext/date/date_core.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/date_core.c</a></td><td class='right'>9774</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 12.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 87.9%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/date_parse.c</a></td><td class='right'>2425</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/ext/date/date_strftime.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/date_strftime.c</a></td><td class='right'>1155</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/date/date_strptime.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/date_strptime.c</a></td><td class='right'>698</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/date/date_tmx.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/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='add'><a href='/ruby.git/diff/ext/date/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/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/date/lib/date.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/lib/date/format.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/date/lib/date/format.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/ext/dbm/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dbm/MANIFEST</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/dbm/dbm.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dbm/dbm.c</a></td><td class='right'>955</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><td class='rem' style='width: 0.3%;'/><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/ext/dbm/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dbm/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='upd'><a href='/ruby.git/diff/ext/dbm/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dbm/extconf.rb</a></td><td class='right'>289</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/digest/bubblebabble/bubblebabble.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/bubblebabble/bubblebabble.c</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/ext/digest/bubblebabble/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/bubblebabble/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/digest/bubblebabble/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/bubblebabble/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/digest/defs.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/defs.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/ext/digest/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/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='add'><a href='/ruby.git/diff/ext/digest/digest.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/digest.c</a></td><td class='right'>700</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/digest/digest.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/digest.h</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/digest/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/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='add'><a href='/ruby.git/diff/ext/digest/lib/digest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/lib/digest.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/ext/digest/lib/digest/hmac.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/lib/digest/hmac.rb</a></td><td class='right'>302</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/digest/md5/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/md5/depend</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/md5/extconf.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/ext/digest/md5/md5.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/md5/md5.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/digest/md5/md5.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/md5/md5.h</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/digest/md5/md5init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/digest/md5/md5ossl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/digest/md5/md5ossl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/md5/md5ossl.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='add'><a href='/ruby.git/diff/ext/digest/rmd160/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/rmd160/depend</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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/rmd160/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/rmd160/extconf.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/digest/rmd160/rmd160.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/rmd160/rmd160.c</a></td><td class='right'>457</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/digest/rmd160/rmd160.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/rmd160/rmd160.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/digest/rmd160/rmd160init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/rmd160/rmd160init.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/ext/digest/rmd160/rmd160ossl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/digest/rmd160/rmd160ossl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/rmd160/rmd160ossl.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/ext/digest/sha1/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha1/depend</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha1/extconf.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/digest/sha1/sha1.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha1/sha1.c</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/ext/digest/sha1/sha1.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha1/sha1.h</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/digest/sha1/sha1init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha1/sha1init.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/ext/digest/sha1/sha1ossl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/digest/sha1/sha1ossl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha1/sha1ossl.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/digest/sha2/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/depend</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/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='add'><a href='/ruby.git/diff/ext/digest/sha2/lib/sha2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/lib/sha2.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/ext/digest/sha2/sha2.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/sha2.c</a></td><td class='right'>1072</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/ext/digest/sha2/sha2.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/sha2.h</a></td><td class='right'>225</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/digest/sha2/sha2init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/sha2init.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/ext/digest/sha2/sha2ossl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/sha2ossl.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/digest/sha2/sha2ossl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/sha2/sha2ossl.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/digest/test.sh?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/digest/test.sh</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/dl/callback/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/callback/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='add'><a href='/ruby.git/diff/ext/dl/callback/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/callback/extconf.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/dl/callback/mkcallback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/callback/mkcallback.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/ext/dl/cfunc.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/cfunc.c</a></td><td class='right'>674</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/dl/cptr.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/cptr.c</a></td><td class='right'>682</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/dl/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/depend</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/dl/dl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/dl.c</a></td><td class='right'>407</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/dl/dl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/dl.h</a></td><td class='right'>226</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/dl/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/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/dl/handle.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/handle.c</a></td><td class='right'>428</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/dl/lib/dl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl.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/dl/lib/dl/callback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/callback.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/ext/dl/lib/dl/cparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/cparser.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/ext/dl/lib/dl/func.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/func.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/ext/dl/lib/dl/import.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/import.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/ext/dl/lib/dl/pack.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/pack.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/dl/lib/dl/stack.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/stack.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/ext/dl/lib/dl/struct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/struct.rb</a></td><td class='right'>212</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/dl/lib/dl/types.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/types.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/ext/dl/lib/dl/value.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/lib/dl/value.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/ext/dl/win32/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/win32/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/dl/win32/lib/Win32API.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/win32/lib/Win32API.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/dl/win32/lib/win32/registry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/win32/lib/win32/registry.rb</a></td><td class='right'>845</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/dl/win32/lib/win32/resolv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/win32/lib/win32/resolv.rb</a></td><td class='right'>379</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/dl/win32/lib/win32/sspi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/dl/win32/lib/win32/sspi.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='del'><a href='/ruby.git/diff/ext/etc/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/etc/MANIFEST</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/etc/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/etc/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='upd'><a href='/ruby.git/diff/ext/etc/etc.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/etc/etc.c</a></td><td class='right'>634</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.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/etc/etc.doc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/etc/etc.doc</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='upd'><a href='/ruby.git/diff/ext/etc/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/etc/extconf.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: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/extmk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/extmk.rb</a></td><td class='right'>671</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='del'><a href='/ruby.git/diff/ext/extmk.rb.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/extmk.rb.in</a></td><td class='right'>556</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/extmk.rb.nt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/extmk.rb.nt</a></td><td class='right'>501</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/fcntl/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fcntl/MANIFEST</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fcntl/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='add'><a href='/ruby.git/diff/ext/fcntl/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fcntl/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/fcntl/fcntl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fcntl/fcntl.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/ext/fiber/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiber/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/fiber/fiber.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/closure.c</a></td><td class='right'>307</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/conversions.c</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/extconf.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/ext/fiddle/fiddle.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/fiddle.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/fiddle/fiddle.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/fiddle.h</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/ext/fiddle/function.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/function.c</a></td><td class='right'>217</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/lib/fiddle.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/lib/fiddle.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/fiddle/lib/fiddle/closure.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/lib/fiddle/closure.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/ext/fiddle/lib/fiddle/function.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/fiddle/lib/fiddle/function.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/gdbm/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gdbm/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/ext/gdbm/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gdbm/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/gdbm/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gdbm/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/gdbm/gdbm.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gdbm/gdbm.c</a></td><td class='right'>1255</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='del'><a href='/ruby.git/diff/ext/gtk/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/MANIFEST</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/gtk/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/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/gtk/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/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='del'><a href='/ruby.git/diff/ext/gtk/gtk.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/gtk.c</a></td><td class='right'>8019</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 9.9%;'/><td class='none' style='width: 90.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/gtk/test.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test.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/gtk/test.xpm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test.xpm</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/gtk/test0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test0.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/gtk/test1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test1.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/gtk/test2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test2.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/gtk/test3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test3.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/gtk/test4.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test4.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/gtk/test5.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test5.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/gtk/test6.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test6.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/gtk/test7.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test7.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/gtk/test8.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test8.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/gtk/test9.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/test9.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/gtk/testa.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/testa.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/gtk/testb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/testb.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/gtk/testc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/testc.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/gtk/testd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/testd.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/gtk/teste.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/gtk/teste.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='add'><a href='/ruby.git/diff/ext/iconv/charset_alias.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/iconv/charset_alias.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/ext/iconv/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/iconv/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/iconv/extconf.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/ext/iconv/iconv.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/iconv/iconv.c</a></td><td class='right'>1256</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/iconv/mkwrapper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/iconv/mkwrapper.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/ext/io/console/console.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/console/console.c</a></td><td class='right'>762</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/io/console/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/console/extconf.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/io/console/io-console.gemspec?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/console/io-console.gemspec</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/io/console/lib/console/size.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/console/lib/console/size.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/io/nonblock/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/nonblock/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/io/nonblock/nonblock.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/nonblock/nonblock.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/ext/io/wait/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/wait/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/io/wait/wait.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/io/wait/wait.c</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/ext/json/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/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/json/generator/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/generator/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/json/generator/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/generator/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='add'><a href='/ruby.git/diff/ext/json/generator/generator.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/generator/generator.c</a></td><td class='right'>1459</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/json/generator/generator.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/generator/generator.h</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/ext/json/lib/json.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/lib/json.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/ext/json/lib/json/add/complex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/lib/json/add/complex.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/json/lib/json/add/core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/lib/json/add/core.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/ext/json/lib/json/add/rational.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/lib/json/add/rational.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/json/lib/json/common.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/lib/json/common.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/ext/json/lib/json/ext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/lib/json/version.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/json/parser/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/parser/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/json/parser/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/parser/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='add'><a href='/ruby.git/diff/ext/json/parser/parser.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/parser/parser.c</a></td><td class='right'>2196</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/ext/json/parser/parser.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/parser/parser.h</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/json/parser/parser.rl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/parser/parser.rl</a></td><td class='right'>916</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/json/parser/prereq.mk?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/json/parser/prereq.mk</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/kconv/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/kconv/MANIFEST</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/kconv/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/kconv/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/kconv/kconv.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/kconv/kconv.c</a></td><td class='right'>2016</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='add'><a href='/ruby.git/diff/ext/mathn/complex/complex.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/mathn/complex/complex.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/ext/mathn/complex/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/mathn/complex/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/mathn/rational/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/mathn/rational/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/mathn/rational/rational.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/mathn/rational/rational.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/ext/md5/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/md5/MANIFEST</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 100.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/ext/md5/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/md5/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/md5/md5.doc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/md5/md5.doc</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/md5/md5.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/md5/md5.h</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/md5/md5c.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/md5/md5c.c</a></td><td class='right'>337</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/md5/md5init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/md5/md5init.c</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='add'><a href='/ruby.git/diff/ext/nkf/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/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/nkf/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/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/nkf/lib/kconv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/lib/kconv.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/ext/nkf/nkf-utf8/config.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/nkf-utf8/config.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/ext/nkf/nkf-utf8/nkf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/nkf-utf8/nkf.c</a></td><td class='right'>6717</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.7%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/nkf-utf8/nkf.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/ext/nkf/nkf-utf8/utf8tbl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/nkf-utf8/utf8tbl.c</a></td><td class='right'>8754</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 10.9%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 89.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/nkf/nkf-utf8/utf8tbl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/nkf-utf8/utf8tbl.h</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/nkf/nkf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/nkf/nkf.c</a></td><td class='right'>502</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/objspace/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/objspace/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/objspace/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/objspace/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/objspace/objspace.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/objspace/objspace.c</a></td><td class='right'>650</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/openssl/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/extconf.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/openssl/lib/openssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl.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/openssl/lib/openssl/bn.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/bn.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/ext/openssl/lib/openssl/buffering.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/buffering.rb</a></td><td class='right'>449</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/openssl/lib/openssl/cipher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/cipher.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/ext/openssl/lib/openssl/config.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/config.rb</a></td><td class='right'>313</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/lib/openssl/digest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/digest.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/openssl/lib/openssl/ssl-internal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/ssl-internal.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/ext/openssl/lib/openssl/ssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/ssl.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/openssl/lib/openssl/x509-internal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/x509-internal.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/openssl/lib/openssl/x509.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/lib/openssl/x509.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/openssl/openssl_missing.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/openssl_missing.c</a></td><td class='right'>356</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/openssl_missing.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/openssl_missing.h</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/openssl/ossl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl.c</a></td><td class='right'>901</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/openssl/ossl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl.h</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/ext/openssl/ossl_asn1.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_asn1.c</a></td><td class='right'>1939</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/ext/openssl/ossl_asn1.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_asn1.h</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/ext/openssl/ossl_bio.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_bio.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/openssl/ossl_bio.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_bio.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/ext/openssl/ossl_bn.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_bn.c</a></td><td class='right'>854</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/openssl/ossl_bn.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_bn.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/openssl/ossl_cipher.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_cipher.c</a></td><td class='right'>754</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/openssl/ossl_cipher.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_cipher.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='add'><a href='/ruby.git/diff/ext/openssl/ossl_config.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_config.c</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/openssl/ossl_config.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_config.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='add'><a href='/ruby.git/diff/ext/openssl/ossl_digest.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_digest.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/openssl/ossl_digest.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_digest.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='add'><a href='/ruby.git/diff/ext/openssl/ossl_engine.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_engine.c</a></td><td class='right'>415</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/openssl/ossl_engine.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_engine.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/openssl/ossl_hmac.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_hmac.c</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/ext/openssl/ossl_hmac.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_hmac.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/ext/openssl/ossl_ns_spki.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ns_spki.c</a></td><td class='right'>257</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_ns_spki.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ns_spki.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/ext/openssl/ossl_ocsp.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ocsp.c</a></td><td class='right'>786</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/openssl/ossl_ocsp.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ocsp.h</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/openssl/ossl_pkcs12.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkcs12.c</a></td><td class='right'>212</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_pkcs12.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkcs12.h</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/openssl/ossl_pkcs5.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkcs5.c</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/ext/openssl/ossl_pkcs5.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/openssl/ossl_pkcs7.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkcs7.c</a></td><td class='right'>1046</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/ext/openssl/ossl_pkcs7.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkcs7.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='add'><a href='/ruby.git/diff/ext/openssl/ossl_pkey.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkey.c</a></td><td class='right'>398</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/openssl/ossl_pkey.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkey.h</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/openssl/ossl_pkey_dh.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkey_dh.c</a></td><td class='right'>618</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/openssl/ossl_pkey_dsa.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkey_dsa.c</a></td><td class='right'>558</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/openssl/ossl_pkey_ec.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkey_ec.c</a></td><td class='right'>1594</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/ext/openssl/ossl_pkey_rsa.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_pkey_rsa.c</a></td><td class='right'>632</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/openssl/ossl_rand.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_rand.c</a></td><td class='right'>202</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_rand.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_rand.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/openssl/ossl_ssl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ssl.c</a></td><td class='right'>2013</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/openssl/ossl_ssl.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ssl.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='add'><a href='/ruby.git/diff/ext/openssl/ossl_ssl_session.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_ssl_session.c</a></td><td class='right'>323</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/ossl_version.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_version.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/openssl/ossl_x509.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509.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/ext/openssl/ossl_x509.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509.h</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/ext/openssl/ossl_x509attr.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509attr.c</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/ext/openssl/ossl_x509cert.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509cert.c</a></td><td class='right'>868</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/openssl/ossl_x509crl.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509crl.c</a></td><td class='right'>537</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/openssl/ossl_x509ext.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509ext.c</a></td><td class='right'>471</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/openssl/ossl_x509name.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509name.c</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/ext/openssl/ossl_x509req.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509req.c</a></td><td class='right'>468</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/openssl/ossl_x509revoked.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509revoked.c</a></td><td class='right'>229</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_x509store.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ossl_x509store.c</a></td><td class='right'>612</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/openssl/ruby_missing.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/openssl/ruby_missing.h</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/pathname/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pathname/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/pathname/lib/pathname.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pathname/lib/pathname.rb</a></td><td class='right'>527</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/pathname/pathname.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pathname/pathname.c</a></td><td class='right'>1241</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/emitter.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/emitter.c</a></td><td class='right'>538</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/psych/emitter.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/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/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/extconf.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/ext/psych/lib/psych.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych.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/psych/lib/psych/coder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/coder.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/psych/lib/psych/core_ext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/core_ext.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/deprecated.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/deprecated.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/ext/psych/lib/psych/handler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/handler.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/ext/psych/lib/psych/handlers/document_stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/handlers/document_stream.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/json/ruby_events.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/json/ruby_events.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/json/stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/json/stream.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/psych/lib/psych/json/tree_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/json/tree_builder.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/psych/lib/psych/json/yaml_events.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/json/yaml_events.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/psych/lib/psych/nodes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes.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/ext/psych/lib/psych/nodes/alias.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/alias.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/psych/lib/psych/nodes/document.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/document.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/ext/psych/lib/psych/nodes/mapping.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/mapping.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/psych/lib/psych/nodes/node.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/node.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/ext/psych/lib/psych/nodes/scalar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/scalar.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/ext/psych/lib/psych/nodes/sequence.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/sequence.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/ext/psych/lib/psych/nodes/stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/nodes/stream.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/ext/psych/lib/psych/omap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/omap.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/psych/lib/psych/parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/parser.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/ext/psych/lib/psych/scalar_scanner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/scalar_scanner.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/set.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/psych/lib/psych/stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/stream.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/ext/psych/lib/psych/streaming.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/streaming.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/syntax_error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/syntax_error.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/tree_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/tree_builder.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/ext/psych/lib/psych/visitors.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors/depth_first.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/ext/psych/lib/psych/visitors/emitter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors/emitter.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/ext/psych/lib/psych/visitors/json_tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors/json_tree.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/ext/psych/lib/psych/visitors/to_ruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors/to_ruby.rb</a></td><td class='right'>324</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors/visitor.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/visitors/yaml_tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/lib/psych/visitors/yaml_tree.rb</a></td><td class='right'>454</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/parser.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/parser.c</a></td><td class='right'>579</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/psych/parser.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/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.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/psych.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/psych/to_ruby.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/psych/to_ruby.c</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/to_ruby.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/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/yaml_tree.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/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/yaml_tree.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/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/pty/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pty/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/pty/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pty/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='add'><a href='/ruby.git/diff/ext/pty/lib/expect.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pty/lib/expect.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/ext/pty/pty.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/pty/pty.c</a></td><td class='right'>695</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/racc/cparse/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/racc/cparse/README</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/racc/cparse/cparse.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/racc/cparse/cparse.c</a></td><td class='right'>831</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/racc/cparse/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/racc/cparse/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/racc/cparse/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/racc/cparse/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/readline/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/readline/README</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/readline/README.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/readline/README.ja</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/ext/readline/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/readline/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/readline/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/readline/extconf.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/ext/readline/readline.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/readline/readline.c</a></td><td class='right'>1690</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/ripper/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/depend</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/ripper/eventids2.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/eventids2.c</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/ext/ripper/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/lib/ripper.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/ripper/lib/ripper/core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/lib/ripper/core.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/ext/ripper/lib/ripper/filter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/lib/ripper/filter.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/ext/ripper/lib/ripper/lexer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/lib/ripper/lexer.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/ext/ripper/lib/ripper/sexp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/lib/ripper/sexp.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/generate-param-macros.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/tools/generate-param-macros.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</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/generate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/tools/generate.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/preproc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/ripper/tools/preproc.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/ext/ripper/tools/strip.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/sdbm/_sdbm.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/sdbm/_sdbm.c</a></td><td class='right'>929</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/sdbm/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/sdbm/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='add'><a href='/ruby.git/diff/ext/sdbm/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/sdbm/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/sdbm/init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/sdbm/init.c</a></td><td class='right'>713</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/sdbm/sdbm.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/sdbm/sdbm.h</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/socket/.document?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/.document</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/socket/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/MANIFEST</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/socket/addrinfo.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/addrinfo.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='add'><a href='/ruby.git/diff/ext/socket/ancdata.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/ancdata.c</a></td><td class='right'>1814</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/socket/basicsocket.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/basicsocket.c</a></td><td class='right'>773</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/socket/constants.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/depend</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/ext/socket/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/extconf.rb</a></td><td class='right'>483</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/socket/getaddrinfo.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/getaddrinfo.c</a></td><td class='right'>674</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/getnameinfo.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/getnameinfo.c</a></td><td class='right'>257</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/init.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/init.c</a></td><td class='right'>552</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/socket/ipsocket.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/ipsocket.c</a></td><td class='right'>308</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/lib/socket.rb</a></td><td class='right'>770</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/socket/mkconstants.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/mkconstants.rb</a></td><td class='right'>705</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/option.c</a></td><td class='right'>923</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/socket/raddrinfo.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/raddrinfo.c</a></td><td class='right'>2218</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/rubysocket.h</a></td><td class='right'>308</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/socket.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/socket.c</a></td><td class='right'>3119</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 1.8%;'/><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/socket/sockport.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/sockssocket.c</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/socket/tcpserver.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/tcpserver.c</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/socket/tcpsocket.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/tcpsocket.c</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/socket/udpsocket.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/udpsocket.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/ext/socket/unixserver.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/unixserver.c</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/socket/unixsocket.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/socket/unixsocket.c</a></td><td class='right'>515</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/stringio/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/stringio/README</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/stringio/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/stringio/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/stringio/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/stringio/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/stringio/stringio.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/stringio/stringio.c</a></td><td class='right'>1502</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/strscan/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/strscan/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='add'><a href='/ruby.git/diff/ext/strscan/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/strscan/strscan.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/strscan/strscan.c</a></td><td class='right'>1317</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/syck/bytecode.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/bytecode.c</a></td><td class='right'>1165</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/syck/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/syck/emitter.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/emitter.c</a></td><td class='right'>1247</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/syck/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/syck/gram.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/syck/gram.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/handler.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/handler.c</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/ext/syck/implicit.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/ext/syck/lib/syck.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck.rb</a></td><td class='right'>447</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/syck/lib/syck/baseemitter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/baseemitter.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/ext/syck/lib/syck/basenode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/basenode.rb</a></td><td class='right'>222</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/syck/lib/syck/constants.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/lib/syck/encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/encoding.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/ext/syck/lib/syck/error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/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='add'><a href='/ruby.git/diff/ext/syck/lib/syck/loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/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='add'><a href='/ruby.git/diff/ext/syck/lib/syck/rubytypes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/rubytypes.rb</a></td><td class='right'>467</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/syck/lib/syck/stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/stream.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/lib/syck/stringio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/stringio.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/ext/syck/lib/syck/syck.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/syck.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/ext/syck/lib/syck/tag.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/tag.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/syck/lib/syck/types.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/lib/syck/yamlnode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/lib/syck/ypath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/syck/ypath.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/ext/syck/lib/yaml/syck.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/lib/yaml/syck.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/syck/node.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/node.c</a></td><td class='right'>407</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/syck/rubyext.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/rubyext.c</a></td><td class='right'>2328</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/ext/syck/syck.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/syck.c</a></td><td class='right'>524</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/syck/syck.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/syck.h</a></td><td class='right'>453</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/syck/token.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/token.c</a></td><td class='right'>2724</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='add'><a href='/ruby.git/diff/ext/syck/yaml2byte.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/yaml2byte.c</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/ext/syck/yamlbyte.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syck/yamlbyte.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/syslog/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syslog/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='add'><a href='/ruby.git/diff/ext/syslog/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syslog/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='add'><a href='/ruby.git/diff/ext/syslog/syslog.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syslog/syslog.c</a></td><td class='right'>577</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/syslog/syslog.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/syslog/syslog.txt</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='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/tcltklib/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/MANIFEST</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/tcltklib/MANUAL.euc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/MANUAL.euc</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.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/tcltklib/README.euc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/README.euc</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.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/tcltklib/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/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/tcltklib/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/extconf.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/tcltklib/lib/tcltk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/lib/tcltk.rb</a></td><td class='right'>388</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/tcltklib/sample/sample1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/sample/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.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/tcltklib/sample/sample2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/sample/sample2.rb</a></td><td class='right'>449</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/tcltklib/tcltklib.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tcltklib/tcltklib.c</a></td><td class='right'>441</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/ext/tk/ChangeLog.tkextlib?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/ChangeLog.tkextlib</a></td><td class='right'>949</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/tk/MANUAL_tcltklib.eng?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/MANUAL_tcltklib.eng</a></td><td class='right'>473</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/tk/MANUAL_tcltklib.eucj?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/MANUAL_tcltklib.eucj</a></td><td class='right'>584</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/tk/README.1st?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/README.1st</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/tk/README.ActiveTcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/README.ActiveTcl</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/ext/tk/README.fork?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/README.macosx-aqua?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/README.tcltklib?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/README.tcltklib</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/ext/tk/config_list.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/config_list.in</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/extconf.rb</a></td><td class='right'>2032</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/tk/lib/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/multi-tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/multi-tk.rb</a></td><td class='right'>3754</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/lib/remote-tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/remote-tk.rb</a></td><td class='right'>530</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/tk/lib/tcltk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/lib/tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk.rb</a></td><td class='right'>5761</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/lib/tk/after.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tk/autoload.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/autoload.rb</a></td><td class='right'>760</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/tk/lib/tk/bgerror.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tk/bindtag.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/bindtag.rb</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/busy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/busy.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/ext/tk/lib/tk/button.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/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='add'><a href='/ruby.git/diff/ext/tk/lib/tk/canvas.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/canvas.rb</a></td><td class='right'>841</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/tk/lib/tk/canvastag.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/canvastag.rb</a></td><td class='right'>459</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/tk/lib/tk/checkbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/checkbutton.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/ext/tk/lib/tk/clipboard.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/clock.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/composite.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/composite.rb</a></td><td class='right'>484</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/tk/lib/tk/console.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/dialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/lib/tk/encodedstr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/encodedstr.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/ext/tk/lib/tk/entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/entry.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/ext/tk/lib/tk/event.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/event.rb</a></td><td class='right'>562</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/tk/lib/tk/font.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/font.rb</a></td><td class='right'>2351</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/ext/tk/lib/tk/fontchooser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/fontchooser.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/ext/tk/lib/tk/frame.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/frame.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/grid.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/grid.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/ext/tk/lib/tk/image.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/image.rb</a></td><td class='right'>395</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/tk/lib/tk/itemconfig.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/itemconfig.rb</a></td><td class='right'>1222</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/tk/lib/tk/itemfont.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/itemfont.rb</a></td><td class='right'>327</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/tk/lib/tk/kinput.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/label.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/label.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/tk/lib/tk/labelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/labelframe.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/tk/lib/tk/listbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/listbox.rb</a></td><td class='right'>284</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/tk/lib/tk/macpkg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/macpkg.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/ext/tk/lib/tk/menu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/menu.rb</a></td><td class='right'>718</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/tk/lib/tk/menubar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/menubar.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/menuspec.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/menuspec.rb</a></td><td class='right'>456</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/tk/lib/tk/message.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/message.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/ext/tk/lib/tk/mngfocus.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tk/msgcat.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/msgcat.rb</a></td><td class='right'>296</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/tk/lib/tk/namespace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/namespace.rb</a></td><td class='right'>551</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/tk/lib/tk/optiondb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/optiondb.rb</a></td><td class='right'>377</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/tk/lib/tk/optionobj.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/lib/tk/pack.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/pack.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/ext/tk/lib/tk/package.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/package.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/ext/tk/lib/tk/palette.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/panedwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/panedwindow.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/ext/tk/lib/tk/place.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/radiobutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/radiobutton.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/ext/tk/lib/tk/root.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/root.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/tk/lib/tk/scale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/scale.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/ext/tk/lib/tk/scrollable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/scrollbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/scrollbar.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/tk/lib/tk/scrollbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/scrollbox.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/tk/lib/tk/selection.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/spinbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/spinbox.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/ext/tk/lib/tk/tagfont.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/text.rb</a></td><td class='right'>1604</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/ext/tk/lib/tk/textimage.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/textimage.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/ext/tk/lib/tk/textmark.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/textmark.rb</a></td><td class='right'>204</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/tk/lib/tk/texttag.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/texttag.rb</a></td><td class='right'>321</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/tk/lib/tk/textwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/textwindow.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/ext/tk/lib/tk/timer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/timer.rb</a></td><td class='right'>669</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/tk/lib/tk/toplevel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/toplevel.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/ext/tk/lib/tk/ttk_selector.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/ttk_selector.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/ext/tk/lib/tk/txtwin_abst.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tk/validation.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/validation.rb</a></td><td class='right'>397</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/tk/lib/tk/variable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/variable.rb</a></td><td class='right'>1799</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/ext/tk/lib/tk/virtevent.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/virtevent.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tk/winfo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/lib/tk/winpkg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/winpkg.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/ext/tk/lib/tk/wm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tk/wm.rb</a></td><td class='right'>552</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/tk/lib/tk/xim.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkafter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkbgerror.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkcanvas.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkclass.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkconsole.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/ICONS.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/ICONS/icons.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/ICONS/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/SUPPORT_STATUS?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/SUPPORT_STATUS</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/tk/lib/tkextlib/blt.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt.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/ext/tk/lib/tkextlib/blt/barchart.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/blt/bitmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/bitmap.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/ext/tk/lib/tkextlib/blt/busy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/busy.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/ext/tk/lib/tkextlib/blt/component.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/component.rb</a></td><td class='right'>2218</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/tk/lib/tkextlib/blt/container.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/cutbuffer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/dragdrop.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/dragdrop.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/ext/tk/lib/tkextlib/blt/eps.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/graph.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/blt/htext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/htext.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/ext/tk/lib/tkextlib/blt/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/spline.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/stripchart.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/blt/table.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/table.rb</a></td><td class='right'>412</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/tk/lib/tkextlib/blt/tabnotebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/tabnotebook.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/ext/tk/lib/tkextlib/blt/tabset.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/tabset.rb</a></td><td class='right'>504</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/tk/lib/tkextlib/blt/ted.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/ted.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/tk/lib/tkextlib/blt/tile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/button.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/checkbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/frame.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/label.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/radiobutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/scrollbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tile/toplevel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/blt/tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/tree.rb</a></td><td class='right'>1058</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/ext/tk/lib/tkextlib/blt/treeview.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/treeview.rb</a></td><td class='right'>1287</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/tk/lib/tkextlib/blt/unix_dnd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/unix_dnd.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/ext/tk/lib/tkextlib/blt/vector.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/vector.rb</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/ext/tk/lib/tkextlib/blt/watch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/blt/watch.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/ext/tk/lib/tkextlib/blt/win_printer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/blt/winop.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget.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/ext/tk/lib/tkextlib/bwidget/arrowbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/bitmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/button.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/buttonbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/buttonbox.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/ext/tk/lib/tkextlib/bwidget/combobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/combobox.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/ext/tk/lib/tkextlib/bwidget/dialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/dialog.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/ext/tk/lib/tkextlib/bwidget/dragsite.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/dropsite.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/dynamichelp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/dynamichelp.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/tk/lib/tkextlib/bwidget/entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/label.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/labelentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/labelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/labelframe.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/tk/lib/tkextlib/bwidget/listbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/listbox.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/ext/tk/lib/tkextlib/bwidget/mainframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/mainframe.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/messagedlg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/messagedlg.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/ext/tk/lib/tkextlib/bwidget/notebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/notebook.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/ext/tk/lib/tkextlib/bwidget/pagesmanager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/pagesmanager.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/ext/tk/lib/tkextlib/bwidget/panedwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/panedwindow.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/panelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/panelframe.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/ext/tk/lib/tkextlib/bwidget/passwddlg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/progressbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/progressdlg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/progressdlg.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/ext/tk/lib/tkextlib/bwidget/scrollableframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/scrollableframe.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/tk/lib/tkextlib/bwidget/scrolledwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/scrolledwindow.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/ext/tk/lib/tkextlib/bwidget/scrollview.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/selectcolor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/selectcolor.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/ext/tk/lib/tkextlib/bwidget/selectfont.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/selectfont.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/ext/tk/lib/tkextlib/bwidget/separator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/bwidget/spinbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/bwidget/statusbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/statusbar.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/ext/tk/lib/tkextlib/bwidget/titleframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/titleframe.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/tk/lib/tkextlib/bwidget/tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/tree.rb</a></td><td class='right'>500</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/tk/lib/tkextlib/bwidget/widget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/bwidget/widget.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/itcl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itcl/incr_tcl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/itcl/incr_tcl.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/ext/tk/lib/tkextlib/itcl/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/itk/incr_tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/itk/incr_tk.rb</a></td><td class='right'>446</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/tk/lib/tkextlib/itk/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/buttonbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/buttonbox.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/calendar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/calendar.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/canvasprintbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/canvasprintdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/checkbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/checkbox.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/combobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/dateentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/datefield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/dialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/dialogshell.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/dialogshell.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/disjointlistbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/entryfield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/entryfield.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/ext/tk/lib/tkextlib/iwidgets/extbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/extfileselectionbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/extfileselectiondialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/feedback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/fileselectionbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/fileselectiondialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/finddialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/hierarchy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/hierarchy.rb</a></td><td class='right'>365</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/tk/lib/tkextlib/iwidgets/hyperhelp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/labeledframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/labeledwidget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/mainwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/menubar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/menubar.rb</a></td><td class='right'>212</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/tk/lib/tkextlib/iwidgets/messagebox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/messagebox.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/ext/tk/lib/tkextlib/iwidgets/messagedialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/notebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/notebook.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/ext/tk/lib/tkextlib/iwidgets/optionmenu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/panedwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/panedwindow.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/promptdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/pushbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/radiobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/radiobox.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/scopedobject.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb</a></td><td class='right'>353</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/tk/lib/tkextlib/iwidgets/scrolledframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/scrolledhtml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/lib/tkextlib/iwidgets/scrolledtext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb</a></td><td class='right'>568</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/tk/lib/tkextlib/iwidgets/scrolledwidget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/selectionbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/selectiondialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/shell.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/spindate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/spinint.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/spinner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/spinner.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/ext/tk/lib/tkextlib/iwidgets/spintime.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/tabnotebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/tabnotebook.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/ext/tk/lib/tkextlib/iwidgets/tabset.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/iwidgets/tabset.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/ext/tk/lib/tkextlib/iwidgets/timeentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/iwidgets/timefield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/toolbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/iwidgets/watch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/lib/tkextlib/pkg_checker.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib.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/ext/tk/lib/tkextlib/tcllib/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/autoscroll.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/calendar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/calendar.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/ext/tk/lib/tkextlib/tcllib/canvas_sqmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/canvas_sqmap.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/ext/tk/lib/tkextlib/tcllib/canvas_zoom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/canvas_zoom.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/ext/tk/lib/tkextlib/tcllib/chatwidget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/chatwidget.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/ext/tk/lib/tkextlib/tcllib/crosshair.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/crosshair.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/ext/tk/lib/tkextlib/tcllib/ctext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/cursor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/dateentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/dateentry.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/ext/tk/lib/tkextlib/tcllib/datefield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/diagrams.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/diagrams.rb</a></td><td class='right'>224</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/tk/lib/tkextlib/tcllib/dialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/getstring.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/getstring.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/history.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/ico.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/ico.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/ext/tk/lib/tkextlib/tcllib/ip_entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/ip_entry.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/ext/tk/lib/tkextlib/tcllib/khim.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/khim.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/tk/lib/tkextlib/tcllib/menuentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/menuentry.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/tk/lib/tkextlib/tcllib/ntext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/ntext.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/ext/tk/lib/tkextlib/tcllib/panelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/panelframe.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/tk/lib/tkextlib/tcllib/plotchart.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/plotchart.rb</a></td><td class='right'>1404</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/ext/tk/lib/tkextlib/tcllib/ruler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/screenruler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/scrolledwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/scrolledwindow.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/tk/lib/tkextlib/tcllib/scrollwin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tcllib/statusbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/statusbar.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/ext/tk/lib/tkextlib/tcllib/style.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/superframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/swaplist.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/swaplist.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/ext/tk/lib/tkextlib/tcllib/tablelist.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/tablelist.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/tk/lib/tkextlib/tcllib/tablelist_core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/tablelist_core.rb</a></td><td class='right'>1072</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/ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tcllib/tkpiechart.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/tkpiechart.rb</a></td><td class='right'>314</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/tk/lib/tkextlib/tcllib/toolbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/toolbar.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/ext/tk/lib/tkextlib/tcllib/tooltip.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/tooltip.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/ext/tk/lib/tkextlib/tcllib/widget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tcllib/widget.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/tk/lib/tkextlib/tclx.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tclx/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tclx/tclx.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile.rb</a></td><td class='right'>449</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/tk/lib/tkextlib/tile/dialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/dialog.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/tk/lib/tkextlib/tile/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tile/sizegrip.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/sizegrip.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/ext/tk/lib/tkextlib/tile/style.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/style.rb</a></td><td class='right'>336</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/tk/lib/tkextlib/tile/tbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tbutton.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/tk/lib/tkextlib/tile/tcheckbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tcheckbutton.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/tk/lib/tkextlib/tile/tcombobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tcombobox.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/ext/tk/lib/tkextlib/tile/tentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tentry.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/tk/lib/tkextlib/tile/tframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tframe.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/tk/lib/tkextlib/tile/tlabel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tlabel.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/tk/lib/tkextlib/tile/tlabelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tlabelframe.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/tk/lib/tkextlib/tile/tmenubutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tmenubutton.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/tk/lib/tkextlib/tile/tnotebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tnotebook.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/ext/tk/lib/tkextlib/tile/tpaned.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tpaned.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/ext/tk/lib/tkextlib/tile/tprogressbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tprogressbar.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/tk/lib/tkextlib/tile/tradiobutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tradiobutton.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/tk/lib/tkextlib/tile/treeview.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/treeview.rb</a></td><td class='right'>1306</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/tk/lib/tkextlib/tile/tscale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tscale.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/tk/lib/tkextlib/tile/tscrollbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tscrollbar.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/tk/lib/tkextlib/tile/tseparator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tseparator.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/tk/lib/tkextlib/tile/tspinbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tile/tspinbox.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/ext/tk/lib/tkextlib/tile/tsquare.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkDND/shape.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tkDND/shape.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tkDND/tkdnd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tkDND/tkdnd.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/ext/tk/lib/tkextlib/tkHTML.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkHTML/htmlwidget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tkHTML/htmlwidget.rb</a></td><td class='right'>453</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/tk/lib/tkextlib/tkHTML/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/bmp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/gif.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/ico.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/jpeg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/pcx.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/pixmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/tkimg/png.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/ppm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/ps.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/sgi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/sun.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/tga.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/tiff.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/window.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/xbm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tkimg/xpm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktable/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktable/tktable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/tktable/tktable.rb</a></td><td class='right'>966</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/tk/lib/tkextlib/tktrans.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktrans/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/tktrans/tktrans.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/treectrl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/treectrl/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/treectrl/tktreectrl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/treectrl/tktreectrl.rb</a></td><td class='right'>2522</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/trofs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/trofs/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/trofs/trofs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/vu/bargraph.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/vu/charts.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/vu/dial.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/lib/tkextlib/vu/pie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/vu/pie.rb</a></td><td class='right'>286</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/tk/lib/tkextlib/vu/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/vu/spinbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/winico.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/winico/setup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkextlib/winico/winico.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/lib/tkextlib/winico/winico.rb</a></td><td class='right'>224</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/tk/lib/tkfont.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkmacpkg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkmenubar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkmngfocus.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkpalette.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkscrollbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tktext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkvirtevent.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/lib/tkwinpkg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/old-README.tcltklib.eucj?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/old-extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/old-extconf.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/ext/tk/sample/24hr_clock.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/binding_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/bindtag_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/binstr_usage.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/binstr_usage.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/btn_with_frame.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/cd_timer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/cmd_res_test.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/cmd_resource?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/ChangeLog?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/ChangeLog.prev?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/README.1st?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/README.tkencoding?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/anilabel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/aniwave.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/aniwave.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/ext/tk/sample/demos-en/arrow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/arrow.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/ext/tk/sample/demos-en/bind.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/bind.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/bitmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/bitmap.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/ext/tk/sample/demos-en/browse1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/browse2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/button.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/check.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/check.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/tk/sample/demos-en/check2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/check2.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/ext/tk/sample/demos-en/clrpick.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/clrpick.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/ext/tk/sample/demos-en/colors.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/colors.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/combo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/combo.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/ext/tk/sample/demos-en/cscroll.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/cscroll.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/ctext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ctext.rb</a></td><td class='right'>207</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/tk/sample/demos-en/dialog1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/dialog2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/doc.org/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/README.JP?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/README.tk80?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/doc.org/license.terms?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/doc.org/license.terms.tk80?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/entry1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/entry1.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/ext/tk/sample/demos-en/entry2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/entry2.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/ext/tk/sample/demos-en/entry3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/entry3.rb</a></td><td class='right'>220</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/tk/sample/demos-en/filebox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/filebox.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/tk/sample/demos-en/floor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/floor.rb</a></td><td class='right'>1723</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/tk/sample/demos-en/floor2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/floor2.rb</a></td><td class='right'>1722</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/tk/sample/demos-en/form.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/form.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/ext/tk/sample/demos-en/goldberg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/goldberg.rb</a></td><td class='right'>2006</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/tk/sample/demos-en/hello?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-en/hscale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/hscale.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/ext/tk/sample/demos-en/icon.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/icon.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/ext/tk/sample/demos-en/image1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/image1.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/ext/tk/sample/demos-en/image2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/image2.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/ext/tk/sample/demos-en/image3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/image3.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/items.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/items.rb</a></td><td class='right'>381</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/tk/sample/demos-en/ixset?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-en/ixset2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-en/knightstour.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/knightstour.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/ext/tk/sample/demos-en/label.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/label.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/tk/sample/demos-en/labelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/labelframe.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/tk/sample/demos-en/mclist.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/mclist.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/ext/tk/sample/demos-en/menu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/menu84.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/menu84.rb</a></td><td class='right'>215</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/tk/sample/demos-en/menubu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/menubu.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/ext/tk/sample/demos-en/msgbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/msgbox.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/ext/tk/sample/demos-en/msgbox2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/msgbox2.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/ext/tk/sample/demos-en/paned1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/paned1.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/tk/sample/demos-en/paned2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/paned2.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/tk/sample/demos-en/pendulum.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/pendulum.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/ext/tk/sample/demos-en/plot.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/plot.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/puzzle.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/puzzle.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/radio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/radio.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/tk/sample/demos-en/radio2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/radio2.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/ext/tk/sample/demos-en/radio3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/radio3.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/ext/tk/sample/demos-en/rmt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-en/rolodex?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-en/ruler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ruler.rb</a></td><td class='right'>205</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/tk/sample/demos-en/sayings.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/sayings.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/ext/tk/sample/demos-en/search.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/search.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/ext/tk/sample/demos-en/spin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/spin.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/ext/tk/sample/demos-en/square?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/states.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/states.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/ext/tk/sample/demos-en/style.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/style.rb</a></td><td class='right'>231</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/tk/sample/demos-en/tcolor?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-en/text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/text.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/textpeer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/textpeer.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/ext/tk/sample/demos-en/timer?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/tkencoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/toolbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/toolbar.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/tree.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/ext/tk/sample/demos-en/ttkbut.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ttkbut.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-en/ttkmenu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ttkmenu.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/ext/tk/sample/demos-en/ttknote.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ttknote.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/ext/tk/sample/demos-en/ttkpane.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ttkpane.rb</a></td><td class='right'>213</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/tk/sample/demos-en/ttkprogress.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/ttkprogress.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/ext/tk/sample/demos-en/twind.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/twind.rb</a></td><td class='right'>291</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/tk/sample/demos-en/twind2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/twind2.rb</a></td><td class='right'>384</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/tk/sample/demos-en/unicodeout.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/unicodeout.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/ext/tk/sample/demos-en/vscale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/vscale.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/ext/tk/sample/demos-en/widget?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-en/widget</a></td><td class='right'>1087</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/ext/tk/sample/demos-jp/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/README.1st?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/anilabel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/anilabel.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/ext/tk/sample/demos-jp/aniwave.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/aniwave.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/ext/tk/sample/demos-jp/arrow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/arrow.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/ext/tk/sample/demos-jp/bind.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/bitmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/bitmap.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/tk/sample/demos-jp/browse1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/browse2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/button.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/button.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/ext/tk/sample/demos-jp/check.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/check2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/check2.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/ext/tk/sample/demos-jp/clrpick.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/clrpick.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/ext/tk/sample/demos-jp/colors.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/colors.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/ext/tk/sample/demos-jp/combo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/combo.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/ext/tk/sample/demos-jp/cscroll.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/ctext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ctext.rb</a></td><td class='right'>204</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/tk/sample/demos-jp/dialog1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/dialog1.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/tk/sample/demos-jp/dialog2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/dialog2.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/doc.org/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/README.JP?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/README.tk80?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/doc.org/license.terms?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/doc.org/license.terms.tk80?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/entry1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/entry1.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/ext/tk/sample/demos-jp/entry2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/entry3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/entry3.rb</a></td><td class='right'>225</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/tk/sample/demos-jp/filebox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/filebox.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/tk/sample/demos-jp/floor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/floor.rb</a></td><td class='right'>1721</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/tk/sample/demos-jp/floor2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/floor2.rb</a></td><td class='right'>1719</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/tk/sample/demos-jp/form.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/form.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/ext/tk/sample/demos-jp/goldberg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/goldberg.rb</a></td><td class='right'>2011</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/tk/sample/demos-jp/hello?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/hello</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/tk/sample/demos-jp/hscale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/hscale.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/tk/sample/demos-jp/icon.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/icon.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/ext/tk/sample/demos-jp/image1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/image1.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/ext/tk/sample/demos-jp/image2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/image2.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/ext/tk/sample/demos-jp/image3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/image3.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/items.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/items.rb</a></td><td class='right'>379</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/tk/sample/demos-jp/ixset?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-jp/ixset2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ixset2</a></td><td class='right'>369</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/tk/sample/demos-jp/knightstour.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/knightstour.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/label.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/labelframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/labelframe.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/tk/sample/demos-jp/mclist.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/mclist.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/menu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/menu.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/ext/tk/sample/demos-jp/menu84.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.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/tk/sample/demos-jp/menu8x.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/menu8x.rb</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='add'><a href='/ruby.git/diff/ext/tk/sample/demos-jp/menubu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/menubu.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/ext/tk/sample/demos-jp/msgbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/msgbox.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/ext/tk/sample/demos-jp/msgbox2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/msgbox2.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/ext/tk/sample/demos-jp/paned1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/paned1.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/tk/sample/demos-jp/paned2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/paned2.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/ext/tk/sample/demos-jp/pendulum.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/pendulum.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/ext/tk/sample/demos-jp/plot.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/plot.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/puzzle.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/puzzle.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/radio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/radio2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/radio2.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/ext/tk/sample/demos-jp/radio3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/radio3.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/ext/tk/sample/demos-jp/rmt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-jp/rolodex?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/demos-jp/rolodex-j?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/rolodex-j</a></td><td class='right'>300</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/tk/sample/demos-jp/ruler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/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.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/tk/sample/demos-jp/sayings.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/sayings.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/ext/tk/sample/demos-jp/search.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/search.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/ext/tk/sample/demos-jp/spin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/spin.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/tk/sample/demos-jp/square?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/states.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/states.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/tk/sample/demos-jp/style.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/style.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/ext/tk/sample/demos-jp/tcolor?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/tcolor</a></td><td class='right'>534</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/tk/sample/demos-jp/text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/text.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/ext/tk/sample/demos-jp/textpeer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/textpeer.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/tk/sample/demos-jp/timer?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/toolbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/toolbar.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/demos-jp/tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/tree.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/ext/tk/sample/demos-jp/ttkbut.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ttkbut.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/ext/tk/sample/demos-jp/ttkmenu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ttkmenu.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/ext/tk/sample/demos-jp/ttknote.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ttknote.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/ext/tk/sample/demos-jp/ttkpane.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ttkpane.rb</a></td><td class='right'>216</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/tk/sample/demos-jp/ttkprogress.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/ttkprogress.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/tk/sample/demos-jp/twind.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/twind.rb</a></td><td class='right'>292</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/tk/sample/demos-jp/twind2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/twind2.rb</a></td><td class='right'>384</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/tk/sample/demos-jp/unicodeout.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/unicodeout.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/ext/tk/sample/demos-jp/vscale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/vscale.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/ext/tk/sample/demos-jp/widget?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/demos-jp/widget</a></td><td class='right'>1122</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/tk/sample/editable_listbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/editable_listbox.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/ext/tk/sample/encstr_usage.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/encstr_usage.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/tk/sample/figmemo_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/figmemo_sample.rb</a></td><td class='right'>456</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/tk/sample/images/earth.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/images/earth.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 51712 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/images/earthris.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/images/earthris.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 6343 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/images/face.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/images/flagdown.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/flagup.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/gray25.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/grey.25?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/grey.5?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/letters.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/noletter.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/pattern.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/images/tcllogo.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/images/tcllogo.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 2341 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/images/teapot.ppm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/irbtk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/irbtkw.rbw?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/irbtkw.rbw</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/tk/sample/iso2022-kr.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/menubar1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/menubar2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/menubar3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/menubar3.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/tk/sample/msgs_rb/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/cs.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/de.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/el.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/en.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/en_gb.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/eo.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/es.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/fr.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/it.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/ja.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb/nl.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/pl.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb/ru.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb2/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_rb2/de.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_rb2/ja.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/cs.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/de.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/el.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/en.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/en_gb.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/eo.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/es.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/fr.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/it.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/ja.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/license.terms?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/msgs_tk/nl.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/pl.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/msgs_tk/ru.msg?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/multi-ip_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/multi-ip_sample.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/ext/tk/sample/multi-ip_sample2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/optobj_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/propagate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/remote-ip_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/remote-ip_sample2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/resource.en?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/resource.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/safe-tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/safe-tk.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/scrollframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/scrollframe.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='mov'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/batsu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tcltklib/batsu.gif</a> (renamed from ext/tcltklib/sample/batsu.gif)</td><td class='right'>bin</td><td class='graph'>538 -> 538 bytes<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines0.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tcltklib/lines0.tcl</a> (renamed from ext/tcltklib/demo/lines0.tcl)</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='mov'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tcltklib/lines1.rb</a> (renamed from ext/tcltklib/demo/lines2.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='mov'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/lines2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tcltklib/lines2.rb</a> (renamed from ext/tcltklib/demo/lines1.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/ext/tk/sample/tcltklib/lines3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tcltklib/lines4.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='mov'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/maru.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tcltklib/maru.gif</a> (renamed from ext/tcltklib/sample/maru.gif)</td><td class='right'>bin</td><td class='graph'>481 -> 481 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/safeTk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='mov'><a href='/ruby.git/diff/ext/tk/sample/tcltklib/sample0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tcltklib/sample0.rb</a> (renamed from ext/tcltklib/sample/sample0.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/ext/tk/sample/tcltklib/sample1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tcltklib/sample2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkalignbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkalignbox.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/ext/tk/sample/tkballoonhelp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkballoonhelp.rb</a></td><td class='right'>220</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/tk/sample/tkbiff.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkbrowse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkcombobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkcombobox.rb</a></td><td class='right'>497</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/tk/sample/tkdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/ICONS/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/ICONS/tkIcons?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/ICONS/tkIcons-sample.kde?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/ICONS/tkIcons.kde?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/ICONS/viewIcons.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/blt/barchart5.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/calendar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/graph6.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/tk/sample/tkextlib/blt/graph7.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/graph7a.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/graph7b.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/graph7c.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/images/buckskin.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/blt/images/buckskin.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 7561 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/chalk.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/blt/images/chalk.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 4378 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/qv100.t.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/blt/images/qv100.t.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 2694 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/rain.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/blt/images/rain.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 3785 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/images/sample.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/blt/images/sample.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 186103 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/pareto.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/plot1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/plot1b.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/readme.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/scripts/stipples.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/blt/winop1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/blt/winop2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/bwidget/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/bwidget/basic.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/bwidget/bwidget.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/bwidget/demo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/bwidget/dnd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/bwidget/manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/bwidget/select.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/bwidget/tmpldlg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/bwidget/tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/bwidget/x1.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/tk/sample/tkextlib/iwidgets/catalog_demo/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/catalog_demo/images/box.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/clear.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 279 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/close.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/close.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 249 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/copy.gif</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/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/cut.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 179 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/exit.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 396 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/find.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/find.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 386 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/help.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/help.gif</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/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/line.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/mag.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 183 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/new.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/new.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 212 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/open.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/open.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 258 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/oval.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/paste.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 376 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/points.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/poly.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 141 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/print.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/print.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 263 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/ruler.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 174 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/save.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/save.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 270 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/select.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/select.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 124 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/catalog_demo/images/text.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/buttonbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/calendar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/canvasprintdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/checkbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/combobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/dateentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/datefield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/dialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/dialogshell.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/disjointlistbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/iwidgets/sample/entryfield-2.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/sample/entryfield-3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/extbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectionbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/extfileselectiondialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/feedback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/fileselectionbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/fileselectiondialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/finddialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/hierarchy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/hyperhelp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/labeledframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/labeledwidget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/mainwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/sample/menubar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/sample/menubar2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/sample/messagebox1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/messagebox2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/messagedialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/sample/notebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/notebook2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/optionmenu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/panedwindow.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/panedwindow2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/promptdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/pushbutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/radiobox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledcanvas.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledhtml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledlistbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/scrolledtext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/selectionbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/selectiondialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/shell.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spindate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spinint.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spinner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/spintime.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/tabnotebook2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/timeentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/timefield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/iwidgets/sample/toolbar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/iwidgets/sample/watch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tcllib/datefield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tcllib/plotdemos1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tcllib/plotdemos2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tcllib/plotdemos3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tcllib/xyplot.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/demo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/demo.rb</a></td><td class='right'>983</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/tk/sample/tkextlib/tile/iconlib.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tile/readme.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/repeater.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tile/themes/blue/blue.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 315 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 312 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowdown.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 313 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 329 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 327 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowleft.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 323 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 330 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 327 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowright.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 324 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-h.gif</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/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 313 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/arrowup.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 314 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 696 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 770 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.xcf?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-n.xcf</a></td><td class='right'>bin</td><td class='graph'>0 -> 1942 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/button-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 769 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 254 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-hu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 234 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 249 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/check-nu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 229 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 1098 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-hu.gif</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/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 389 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/radio-nu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 401 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 343 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-thumb.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 316 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 333 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/sb-vthumb.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 308 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/slider-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/slider-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 182 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/slider.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/slider.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 182 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 183 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/blue/blue/vslider.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 283 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/blue/pkgIndex.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 273 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowdown-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 258 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 292 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowleft-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 272 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 274 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowright-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 258 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 286 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/arrowup-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 271 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-d.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 1266 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 896 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 881 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 625 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/button-s.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 859 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-c.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 434 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/check-u.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 423 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 401 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hsb-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 395 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/hslider-n.gif</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/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-a.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 1116 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-arrow-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 61 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-d.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 1057 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/mbut-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 1095 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-c.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 695 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/radio-u.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 686 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 383 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tab-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 878 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-a.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 907 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 238 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/tbar-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 927 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 405 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vsb-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 399 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/keramik/keramik/vslider-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 587 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/keramik/pkgIndex.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc.rb</a></td><td class='right'>226</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/tk/sample/tkextlib/tile/themes/kroc/kroc.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 522 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-n.gif</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/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 548 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 281 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-hu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 273 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 303 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/check-nu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 294 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 652 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-hu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 644 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 632 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/kroc/kroc/radio-nu.gif</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/ext/tk/sample/tkextlib/tile/themes/kroc/pkgIndex.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/pkgIndex.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 362 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowdown-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 250 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 378 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowleft-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 267 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 379 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowright-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 266 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 363 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/arrowup-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 251 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-h.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 439 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 443 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/button-p.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 302 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 169 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-hu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 170 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 235 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-nu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 226 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/check-pc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 169 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hsb-n.gif</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/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/hslider-n.gif</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/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 178 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-hu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 179 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 236 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-nu.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 178 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/radio-pc.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 178 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vsb-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 366 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tile/themes/plastik/plastik/vslider-n.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 336 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tile/toolbutton.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tkHTML/Orig_COPYRIGHT.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/hv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/tkHTML/page1/image1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image1</a></td><td class='right'>bin</td><td class='graph'>0 -> 8995 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image10?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image10</a></td><td class='right'>bin</td><td class='graph'>0 -> 3095 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image11?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image11</a></td><td class='right'>bin</td><td class='graph'>0 -> 1425 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image12?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image12</a></td><td class='right'>bin</td><td class='graph'>0 -> 2468 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image13?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image13</a></td><td class='right'>bin</td><td class='graph'>0 -> 4073 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image14?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image14</a></td><td class='right'>bin</td><td class='graph'>0 -> 53 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image2</a></td><td class='right'>bin</td><td class='graph'>0 -> 42 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image3?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image3</a></td><td class='right'>bin</td><td class='graph'>0 -> 3473 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image4?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image4</a></td><td class='right'>bin</td><td class='graph'>0 -> 1988 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image5?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image5</a></td><td class='right'>bin</td><td class='graph'>0 -> 973 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image6?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image6</a></td><td class='right'>bin</td><td class='graph'>0 -> 2184 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image7?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image7</a></td><td class='right'>bin</td><td class='graph'>0 -> 2022 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image8?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image8</a></td><td class='right'>bin</td><td class='graph'>0 -> 1186 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/image9?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page1/image9</a></td><td class='right'>bin</td><td class='graph'>0 -> 139 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page1/index.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tkHTML/page2/image1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image1</a></td><td class='right'>bin</td><td class='graph'>0 -> 1966 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image10?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image10</a></td><td class='right'>bin</td><td class='graph'>0 -> 255 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image11?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image11</a></td><td class='right'>bin</td><td class='graph'>0 -> 590 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image12?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image12</a></td><td class='right'>bin</td><td class='graph'>0 -> 254 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image13?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image13</a></td><td class='right'>bin</td><td class='graph'>0 -> 493 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image14?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image14</a></td><td class='right'>bin</td><td class='graph'>0 -> 195 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image15?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image15</a></td><td class='right'>bin</td><td class='graph'>0 -> 68 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image16?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image16</a></td><td class='right'>bin</td><td class='graph'>0 -> 157 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image17?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image17</a></td><td class='right'>bin</td><td class='graph'>0 -> 81 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image18?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image18</a></td><td class='right'>bin</td><td class='graph'>0 -> 545 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image19?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image19</a></td><td class='right'>bin</td><td class='graph'>0 -> 53 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image2</a></td><td class='right'>bin</td><td class='graph'>0 -> 49 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image20?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image20</a></td><td class='right'>bin</td><td class='graph'>0 -> 533 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image21?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image21</a></td><td class='right'>bin</td><td class='graph'>0 -> 564 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image22?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image22</a></td><td class='right'>bin</td><td class='graph'>0 -> 81 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image23?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image23</a></td><td class='right'>bin</td><td class='graph'>0 -> 539 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image24?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image24</a></td><td class='right'>bin</td><td class='graph'>0 -> 151 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image25?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image25</a></td><td class='right'>bin</td><td class='graph'>0 -> 453 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image26?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image26</a></td><td class='right'>bin</td><td class='graph'>0 -> 520 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image27?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image27</a></td><td class='right'>bin</td><td class='graph'>0 -> 565 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image28?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image28</a></td><td class='right'>bin</td><td class='graph'>0 -> 416 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image29?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image29</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/ext/tk/sample/tkextlib/tkHTML/page2/image3?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image3</a></td><td class='right'>bin</td><td class='graph'>0 -> 10835 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image30?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image30</a></td><td class='right'>bin</td><td class='graph'>0 -> 663 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image31?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image31</a></td><td class='right'>bin</td><td class='graph'>0 -> 78 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image32?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image32</a></td><td class='right'>bin</td><td class='graph'>0 -> 556 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image33?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image33</a></td><td class='right'>bin</td><td class='graph'>0 -> 598 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image34?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image34</a></td><td class='right'>bin</td><td class='graph'>0 -> 496 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image35?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image35</a></td><td class='right'>bin</td><td class='graph'>0 -> 724 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image36?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image36</a></td><td class='right'>bin</td><td class='graph'>0 -> 404 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image37?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image37</a></td><td class='right'>bin</td><td class='graph'>0 -> 124 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image38?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image38</a></td><td class='right'>bin</td><td class='graph'>0 -> 8330 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image39?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image39</a></td><td class='right'>bin</td><td class='graph'>0 -> 369 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image4?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image4</a></td><td class='right'>bin</td><td class='graph'>0 -> 268 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image5?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image5</a></td><td class='right'>bin</td><td class='graph'>0 -> 492 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image6?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image6</a></td><td class='right'>bin</td><td class='graph'>0 -> 246 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image7?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image7</a></td><td class='right'>bin</td><td class='graph'>0 -> 551 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image8?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image8</a></td><td class='right'>bin</td><td class='graph'>0 -> 497 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/image9?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page2/image9</a></td><td class='right'>bin</td><td class='graph'>0 -> 492 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page2/index.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/tkHTML/page3/image1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image1</a></td><td class='right'>bin</td><td class='graph'>0 -> 113 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image10?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image10</a></td><td class='right'>bin</td><td class='graph'>0 -> 5088 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image11?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image11</a></td><td class='right'>bin</td><td class='graph'>0 -> 4485 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image12?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image12</a></td><td class='right'>bin</td><td class='graph'>0 -> 3579 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image13?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image13</a></td><td class='right'>bin</td><td class='graph'>0 -> 5119 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image14?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image14</a></td><td class='right'>bin</td><td class='graph'>0 -> 3603 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image2</a></td><td class='right'>bin</td><td class='graph'>0 -> 74 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image3?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image3</a></td><td class='right'>bin</td><td class='graph'>0 -> 681 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image4?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image4</a></td><td class='right'>bin</td><td class='graph'>0 -> 3056 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image5?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image5</a></td><td class='right'>bin</td><td class='graph'>0 -> 2297 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image6?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image6</a></td><td class='right'>bin</td><td class='graph'>0 -> 79 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image7?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image7</a></td><td class='right'>bin</td><td class='graph'>0 -> 1613 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image8?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image8</a></td><td class='right'>bin</td><td class='graph'>0 -> 864 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/image9?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page3/image9</a></td><td class='right'>bin</td><td class='graph'>0 -> 2379 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page3/index.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image1</a></td><td class='right'>bin</td><td class='graph'>0 -> 42 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image2?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image2</a></td><td class='right'>bin</td><td class='graph'>0 -> 14343 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image3?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image3</a></td><td class='right'>bin</td><td class='graph'>0 -> 17750 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image4?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image4</a></td><td class='right'>bin</td><td class='graph'>0 -> 61 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image5?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image5</a></td><td class='right'>bin</td><td class='graph'>0 -> 201 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image6?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image6</a></td><td class='right'>bin</td><td class='graph'>0 -> 214 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image7?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image7</a></td><td class='right'>bin</td><td class='graph'>0 -> 149 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image8?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image8</a></td><td class='right'>bin</td><td class='graph'>0 -> 203 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/image9?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tkHTML/page4/image9</a></td><td class='right'>bin</td><td class='graph'>0 -> 1504 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tkHTML/page4/index.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/tk/sample/tkextlib/tkHTML/ss.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/tkimg/demo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/tk/sample/tkextlib/tkimg/license_terms_of_Img_extension?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tkimg/readme.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/basic.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/buttons.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/debug.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/dynarows.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/maxsize.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/spreadsheet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/tktable/tcllogo.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/tktable/tcllogo.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 2341 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/tktable/valid.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/treectrl/bitmaps.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/treectrl/demo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/demo.rb</a></td><td class='right'>1305</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/tk/sample/tkextlib/treectrl/explorer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/treectrl/help.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/treectrl/imovie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/treectrl/layout.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/treectrl/mailwasher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/treectrl/outlook-folders.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/treectrl/outlook-newgroup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/treectrl/pics/big-dll.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/big-dll.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 437 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-exe.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/big-exe.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 368 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-file.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/big-file.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 466 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-folder.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/big-folder.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 459 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/big-txt.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/big-txt.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 392 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/checked.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/checked.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 78 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/file.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/file.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 279 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/folder-closed.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/folder-closed.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 111 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/folder-open.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/folder-open.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 120 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/help-book-closed.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/help-book-closed.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 115 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/help-book-open.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/help-book-open.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 128 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/help-page.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/help-page.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 132 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-01.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-01.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 5406 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-02.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-02.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 5912 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-03.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-03.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 4696 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-04.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-04.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 5783 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-05.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-05.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 3238 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-06.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-06.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 3509 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/imovie-07.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/imovie-07.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 2091 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-check-off.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-check-off.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 70 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-check-on.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-check-on.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 76 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-print.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-print.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 124 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-radio-off.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-radio-off.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 68 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-radio-on.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-radio-on.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 71 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-search.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-search.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 114 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/internet-security.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/internet-security.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 108 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/mac-collapse.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/mac-collapse.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 275 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/mac-expand.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/mac-expand.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 277 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-arrow.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-arrow.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 73 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-clip.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-clip.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 73 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-deleted.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-deleted.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 138 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-draft.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-draft.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 134 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-folder.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-folder.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 133 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-group.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-group.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 144 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-inbox.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-inbox.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 133 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-local.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-local.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 146 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-main.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-main.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 174 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-outbox.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-outbox.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 136 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-read-2.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-read-2.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 343 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-read.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-read.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 304 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-sent.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-sent.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 132 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-server.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-server.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 163 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-unread.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-unread.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 303 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/outlook-watch.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/outlook-watch.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 98 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/sky.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/sky.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 6454 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-dll.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/small-dll.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 311 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-exe.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/small-exe.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 115 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-file.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/small-file.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 338 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-folder.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/small-folder.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 307 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/small-txt.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/small-txt.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 302 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/pics/unchecked.gif?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/treectrl/pics/unchecked.gif</a></td><td class='right'>bin</td><td class='graph'>0 -> 72 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/random.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/treectrl/readme.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkextlib/treectrl/www-options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkextlib/vu/Orig_LICENSE.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/README.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/canvItems.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/canvSticker.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/canvSticker2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkextlib/vu/canvSticker2.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/ext/tk/sample/tkextlib/vu/dial_demo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/m128_000.xbm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/oscilloscope.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/pie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkextlib/vu/vu_demo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkfrom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkhello.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/sample/tkline.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkmenubutton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkmsgcat-load_rb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkmsgcat-load_rb2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkmsgcat-load_tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkmulticolumnlist.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkmultilistbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/tkmultilistframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 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/tk/sample/tkoptdb-safeTk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkoptdb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tkrttimer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tkrttimer.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/ext/tk/sample/tksleep_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tksleep_sample.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/tk/sample/tktextframe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tktextframe.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/ext/tk/sample/tktextio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/tktextio.rb</a></td><td class='right'>1060</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/ext/tk/sample/tktimer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tktimer2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tktimer3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tktree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/tk/sample/tktree.tcl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tk/sample/ttk_wrapper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/sample/ttk_wrapper.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/ext/tk/stubs.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/stubs.c</a></td><td class='right'>594</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/tk/stubs.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/tcltklib.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/tcltklib.c</a></td><td class='right'>11094</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 13.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 86.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/tk/tkutil/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/ext/tk/tkutil/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/tkutil/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/tk/tkutil/tkutil.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tk/tkutil/tkutil.c</a></td><td class='right'>1861</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='del'><a href='/ruby.git/diff/ext/tkutil/MANIFEST?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tkutil/MANIFEST</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/tkutil/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/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/tkutil/tkutil.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/tkutil/tkutil.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.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/win32ole/depend?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/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/win32ole/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/extconf.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/ext/win32ole/lib/win32ole.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/lib/win32ole.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/win32ole/lib/win32ole/property.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/lib/win32ole/property.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/ext/win32ole/sample/excel1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/excel1.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/win32ole/sample/excel2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/excel2.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/win32ole/sample/excel3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/excel3.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/win32ole/sample/ie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/ie.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/ext/win32ole/sample/ieconst.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/ieconst.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/ext/win32ole/sample/ienavi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/ienavi.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/win32ole/sample/ienavi2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/ienavi2.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/win32ole/sample/oledirs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/oledirs.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/win32ole/sample/olegen.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/olegen.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/ext/win32ole/sample/xml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/sample/xml.rb</a></td><td class='right'>7306</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/ext/win32ole/win32ole.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/win32ole/win32ole.c</a></td><td class='right'>9318</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 11.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 88.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ext/zlib/extconf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/zlib/extconf.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/ext/zlib/zlib.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ext/zlib/zlib.c</a></td><td class='right'>4393</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.4%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 94.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/file.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>file.c</a></td><td class='right'>5613</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.9%;'/><td class='rem' style='width: 1.1%;'/><td class='none' style='width: 93.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/fnmatch.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>fnmatch.c</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/fnmatch.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>fnmatch.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/gc.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>gc.c</a></td><td class='right'>3787</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/gc.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>gc.h</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/gem_prelude.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>gem_prelude.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/glob.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>glob.c</a></td><td class='right'>591</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/golf_prelude.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>golf_prelude.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/goruby.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>goruby.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='upd'><a href='/ruby.git/diff/hash.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>hash.c</a></td><td class='right'>3370</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.4%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 95.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/ia64.s?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ia64.s</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/id.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>id.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='add'><a href='/ruby.git/diff/include/ruby.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby.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='add'><a href='/ruby.git/diff/include/ruby/backward/classext.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/backward/rubysig.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/include/ruby/backward/st.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/defines.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/defines.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/include/ruby/encoding.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/encoding.h</a></td><td class='right'>350</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/intern.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/intern.h</a></td><td class='right'>906</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/include/ruby/io.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/io.h</a></td><td class='right'>202</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/missing.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/missing.h</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/include/ruby/oniguruma.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/oniguruma.h</a></td><td class='right'>807</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/re.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/re.h</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/include/ruby/regex.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/regex.h</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/include/ruby/ruby.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/ruby.h</a></td><td class='right'>1490</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/include/ruby/st.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/st.h</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/include/ruby/subst.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/subst.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/include/ruby/util.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/util.h</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/include/ruby/version.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/version.h</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/include/ruby/vm.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/vm.h</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/include/ruby/win32.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>include/ruby/win32.h</a></td><td class='right'>773</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/inits.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>inits.c</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.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>insns.def</a></td><td class='right'>2160</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='del'><a href='/ruby.git/diff/install-sh?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>install-sh</a></td><td class='right'>238</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/instruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>instruby.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/intern.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>intern.h</a></td><td class='right'>304</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/internal.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>internal.h</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='upd'><a href='/ruby.git/diff/io.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>io.c</a></td><td class='right'>12000</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 12.8%;'/><td class='rem' style='width: 2.1%;'/><td class='none' style='width: 85.1%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/iseq.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>iseq.c</a></td><td class='right'>1525</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/iseq.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>iseq.h</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='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/keywords?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lex.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lex.c</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/lex.c.blt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lex.c.blt</a></td><td class='right'>219</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/English.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/English.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='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/Env.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/Env.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/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/README</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.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/abbrev.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/abbrev.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/base64.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/base64.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/lib/benchmark.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/benchmark.rb</a></td><td class='right'>569</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/lib/cgi-lib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi-lib.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='add'><a href='/ruby.git/diff/lib/cgi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/cgi/cookie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi/cookie.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/cgi/core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi/core.rb</a></td><td class='right'>838</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi/html.rb</a></td><td class='right'>1021</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/cgi/session.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi/session.rb</a></td><td class='right'>531</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/cgi/session/pstore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi/session/pstore.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/cgi/util.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cgi/util.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/lib/cmath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/cmath.rb</a></td><td class='right'>402</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/complex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/complex.rb</a></td><td class='right'>498</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/csv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/csv.rb</a></td><td class='right'>2356</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='del'><a href='/ruby.git/diff/lib/date.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/date.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/date2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/date2.rb</a></td><td class='right'>219</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/debug.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/debug.rb</a></td><td class='right'>1109</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.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/delegate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/delegate.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.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/lib/drb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb.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/drb/acl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/acl.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/lib/drb/drb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/drb.rb</a></td><td class='right'>1774</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/lib/drb/eq.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/eq.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/drb/extserv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/extserv.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/drb/extservm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/extservm.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/drb/gw.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/gw.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/drb/invokemethod.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/invokemethod.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/drb/observer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/observer.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/lib/drb/ssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/ssl.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/lib/drb/timeridconv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/timeridconv.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/drb/unix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/drb/unix.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='upd'><a href='/ruby.git/diff/lib/e2mmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/e2mmap.rb</a></td><td class='right'>255</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/erb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/erb.rb</a></td><td class='right'>988</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='del'><a href='/ruby.git/diff/lib/eregex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/eregex.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/lib/fileutils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/fileutils.rb</a></td><td class='right'>1706</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/lib/final.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/final.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.1%;'/><td class='none' 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/finalize.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/finalize.rb</a></td><td class='right'>201</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/find.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/lib/forwardable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/forwardable.rb</a></td><td class='right'>285</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/ftools.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/ftools.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/ftplib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/ftplib.rb</a></td><td class='right'>574</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/getoptlong.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/getoptlong.rb</a></td><td class='right'>612</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='del'><a href='/ruby.git/diff/lib/getopts.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/getopts.rb</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/lib/gserver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/gserver.rb</a></td><td class='right'>309</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/importenv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/importenv.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/ipaddr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/ipaddr.rb</a></td><td class='right'>919</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/irb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb.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/lib/irb/cmd/chws.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/chws.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/irb/cmd/fork.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/fork.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/irb/cmd/help.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/help.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/irb/cmd/load.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/load.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/lib/irb/cmd/nop.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/nop.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/irb/cmd/pushws.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/pushws.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/irb/cmd/subirb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/cmd/subirb.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/irb/completion.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/completion.rb</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='add'><a href='/ruby.git/diff/lib/irb/context.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/context.rb</a></td><td class='right'>295</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/irb/ext/change-ws.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/change-ws.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/irb/ext/history.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/history.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/lib/irb/ext/loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/loader.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/irb/ext/math-mode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/math-mode.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/lib/irb/ext/multi-irb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/multi-irb.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/irb/ext/save-history.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/save-history.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/irb/ext/tracer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/tracer.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/irb/ext/use-loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/use-loader.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/lib/irb/ext/workspaces.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ext/workspaces.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/lib/irb/extend-command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/extend-command.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/lib/irb/frame.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/frame.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/lib/irb/help.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/help.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/irb/init.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/init.rb</a></td><td class='right'>305</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/irb/input-method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/inspector.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/lib/irb/lc/error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/lc/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/lib/irb/lc/help-message?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/lc/help-message</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/irb/lc/ja/encoding_aliases.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/lc/ja/encoding_aliases.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/irb/lc/ja/error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/lc/ja/error.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/lib/irb/lc/ja/help-message?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/lc/ja/help-message</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/locale.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/locale.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/lib/irb/magic-file.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/magic-file.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/lib/irb/notifier.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/notifier.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/lib/irb/output-method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/output-method.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/lib/irb/ruby-lex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ruby-lex.rb</a></td><td class='right'>1187</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/irb/ruby-token.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ruby-token.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/irb/slex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/slex.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/lib/irb/src_encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/src_encoding.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/irb/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/version.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/irb/workspace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/workspace.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/lib/irb/ws-for-case-2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/ws-for-case-2.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/irb/xmp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/irb/xmp.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='del'><a href='/ruby.git/diff/lib/jcode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/jcode.rb</a></td><td class='right'>208</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/logger.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/logger.rb</a></td><td class='right'>801</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='del'><a href='/ruby.git/diff/lib/mailread.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/mailread.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='upd'><a href='/ruby.git/diff/lib/mathn.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/mathn.rb</a></td><td class='right'>443</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/matrix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/matrix.rb</a></td><td class='right'>2230</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.2%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/matrix/eigenvalue_decomposition.rb</a></td><td class='right'>886</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/matrix/lup_decomposition.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/matrix/lup_decomposition.rb</a></td><td class='right'>218</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/minitest/README.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/README.txt</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/lib/minitest/autorun.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/autorun.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/lib/minitest/benchmark.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/benchmark.rb</a></td><td class='right'>372</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/minitest/mock.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/mock.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/lib/minitest/pride.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/pride.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/lib/minitest/spec.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/spec.rb</a></td><td class='right'>519</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/minitest/unit.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/minitest/unit.rb</a></td><td class='right'>1169</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/lib/mkmf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/mkmf.rb</a></td><td class='right'>2509</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.8%;'/><td class='rem' style='width: 0.4%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/lib/monitor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/monitor.rb</a></td><td class='right'>527</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.3%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/mutex_m.rb</a></td><td class='right'>242</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/lib/net/.document?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/.document</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/net/ftp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/ftp.rb</a></td><td class='right'>1043</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/net/http.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/http.rb</a></td><td class='right'>2824</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='add'><a href='/ruby.git/diff/lib/net/https.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/https.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/lib/net/imap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/imap.rb</a></td><td class='right'>3676</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/lib/net/pop.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/pop.rb</a></td><td class='right'>1021</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/net/protocol.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/protocol.rb</a></td><td class='right'>404</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/smtp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/smtp.rb</a></td><td class='right'>1057</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/net/telnet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/net/telnet.rb</a></td><td class='right'>764</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/lib/observer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/observer.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/lib/open-uri.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/open-uri.rb</a></td><td class='right'>840</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/lib/open3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/open3.rb</a></td><td class='right'>742</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/optparse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/optparse.rb</a></td><td class='right'>1937</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/optparse/date.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/optparse/date.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/optparse/shellwords.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/optparse/shellwords.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/optparse/time.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/optparse/uri.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/optparse/uri.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/optparse/version.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/ostruct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/ostruct.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='del'><a href='/ruby.git/diff/lib/parsearg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/parsearg.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/parsedate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/parsedate.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/lib/ping.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/ping.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='add'><a href='/ruby.git/diff/lib/pp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/pp.rb</a></td><td class='right'>524</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/prettyprint.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/prettyprint.rb</a></td><td class='right'>395</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/prime.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/prime.rb</a></td><td class='right'>509</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/lib/profile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/profile.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/lib/profiler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/profiler.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='upd'><a href='/ruby.git/diff/lib/pstore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/pstore.rb</a></td><td class='right'>518</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='add'><a href='/ruby.git/diff/lib/racc/parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/racc/parser.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/lib/rake.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake.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/lib/rake/alt_system.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/alt_system.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/lib/rake/application.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/application.rb</a></td><td class='right'>595</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/rake/classic_namespace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/classic_namespace.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/rake/clean.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/clean.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/rake/cloneable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/cloneable.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/rake/contrib/compositepublisher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/contrib/compositepublisher.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/rake/contrib/ftptools.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/contrib/ftptools.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/rake/contrib/publisher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/contrib/publisher.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/rake/contrib/rubyforgepublisher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/contrib/rubyforgepublisher.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/lib/rake/contrib/sshpublisher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/contrib/sshpublisher.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/rake/contrib/sys.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/contrib/sys.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/rake/default_loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/default_loader.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/rake/dsl_definition.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/dsl_definition.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/rake/early_time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/early_time.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/lib/rake/ext/core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/ext/core.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/lib/rake/ext/module.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/ext/module.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/rake/ext/string.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/ext/string.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/lib/rake/ext/time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/ext/time.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/rake/file_creation_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/file_creation_task.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/rake/file_list.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/file_list.rb</a></td><td class='right'>403</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/rake/file_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/file_task.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/lib/rake/file_utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/file_utils.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/lib/rake/file_utils_ext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/file_utils_ext.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/lib/rake/gempackagetask.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/gempackagetask.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/rake/invocation_chain.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/invocation_chain.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/rake/invocation_exception_mixin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/invocation_exception_mixin.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/lib/rake/lib/project.rake?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/lib/project.rake</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/rake/loaders/makefile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/loaders/makefile.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/rake/multi_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/multi_task.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/lib/rake/name_space.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/name_space.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/rake/packagetask.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/packagetask.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/rake/pathmap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/pathmap.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/rake/pseudo_status.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/pseudo_status.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/rake/rake_module.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/rake_module.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/rake/rake_test_loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/rake_test_loader.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/lib/rake/rdoctask.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/rdoctask.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/lib/rake/ruby182_test_unit_fix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/ruby182_test_unit_fix.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/rake/rule_recursion_overflow_error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/rule_recursion_overflow_error.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/lib/rake/runtest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/runtest.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/rake/task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/task.rb</a></td><td class='right'>327</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/rake/task_argument_error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/task_argument_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/rake/task_arguments.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/task_arguments.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/rake/task_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/task_manager.rb</a></td><td class='right'>307</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/rake/tasklib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/tasklib.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/lib/rake/testtask.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/testtask.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/rake/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/version.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/rake/win32.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rake/win32.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/rational.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rational.rb</a></td><td class='right'>369</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='add'><a href='/ruby.git/diff/lib/rbconfig/.document?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rbconfig/.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/rbconfig/datadir.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rbconfig/datadir.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/rbconfig/obsolete.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rbconfig/obsolete.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/rdoc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc.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/rdoc/alias.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/alias.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/lib/rdoc/anon_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/anon_class.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/lib/rdoc/any_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/any_method.rb</a></td><td class='right'>207</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/attr.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/class_module.rb</a></td><td class='right'>582</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/code_object.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/code_object.rb</a></td><td class='right'>307</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/code_objects.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/code_objects.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/constant.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/constant.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/rdoc/context.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/context.rb</a></td><td class='right'>1191</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/rdoc/cross_reference.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/cross_reference.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/lib/rdoc/encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/encoding.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/lib/rdoc/erbio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/erbio.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/rdoc/generator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator.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/rdoc/generator/darkfish.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/darkfish.rb</a></td><td class='right'>390</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/generator/markup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/markup.rb</a></td><td class='right'>208</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/ri.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/ri.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/rdoc/generator/template/darkfish/.document?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/.document</a></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/classpage.rhtml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/classpage.rhtml</a></td><td class='right'>321</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/generator/template/darkfish/filepage.rhtml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/filepage.rhtml</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/images/brick.png?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/find.png?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_green.png?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/wrench.png?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/index.rhtml</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/lib/rdoc/generator/template/darkfish/js/darkfish.js?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/js/darkfish.js</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/rdoc/generator/template/darkfish/js/jquery.js?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/js/jquery.js</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/generator/template/darkfish/js/quicksearch.js?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/js/quicksearch.js</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/lib/rdoc/generator/template/darkfish/js/thickbox-compressed.js?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/js/thickbox-compressed.js</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/template/darkfish/rdoc.css?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/generator/template/darkfish/rdoc.css</a></td><td class='right'>763</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/ghost_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ghost_method.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/rdoc/include.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/include.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/known_classes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/known_classes.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/markup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup.rb</a></td><td class='right'>652</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/attribute_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/attribute_manager.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/rdoc/markup/blank_line.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/blank_line.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/lib/rdoc/markup/document.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/document.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/formatter.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/lib/rdoc/markup/formatter_test_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/formatter_test_case.rb</a></td><td class='right'>699</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/markup/heading.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/heading.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/lib/rdoc/markup/indented_paragraph.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/indented_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/lib/rdoc/markup/inline.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/inline.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/lib/rdoc/markup/list.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/list.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/rdoc/markup/list_item.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/list_item.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/rdoc/markup/paragraph.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/paragraph.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/rdoc/markup/parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/parser.rb</a></td><td class='right'>497</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/pre_process.rb</a></td><td class='right'>227</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/raw.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/lib/rdoc/markup/rule.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/rule.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/lib/rdoc/markup/text_formatter_test_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/text_formatter_test_case.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/rdoc/markup/to_ansi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_ansi.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/markup/to_bs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_bs.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/rdoc/markup/to_html.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_html.rb</a></td><td class='right'>324</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_html_crossref.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/rdoc/markup/to_rdoc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_rdoc.rb</a></td><td class='right'>301</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_test.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_test.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/markup/to_tt_only.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/to_tt_only.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/lib/rdoc/markup/verbatim.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/markup/verbatim.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/meta_method.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/rdoc/method_attr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/method_attr.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/lib/rdoc/normal_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/normal_class.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/normal_module.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/normal_module.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/lib/rdoc/options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/options.rb</a></td><td class='right'>770</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/parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/parser.rb</a></td><td class='right'>208</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/parser/c.rb</a></td><td class='right'>1047</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/parser/ruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/parser/ruby.rb</a></td><td class='right'>1782</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/lib/rdoc/parser/ruby_tools.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/parser/ruby_tools.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/lib/rdoc/parser/simple.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/parser/simple.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/lib/rdoc/rdoc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/rdoc.rb</a></td><td class='right'>520</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/require.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/require.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/lib/rdoc/ri.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ri.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/lib/rdoc/ri/driver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ri/driver.rb</a></td><td class='right'>1178</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/rdoc/ri/formatter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ri/formatter.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/rdoc/ri/paths.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ri/paths.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/ri/store.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ri/store.rb</a></td><td class='right'>358</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/ruby_lex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ruby_lex.rb</a></td><td class='right'>1297</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/lib/rdoc/ruby_token.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/ruby_token.rb</a></td><td class='right'>416</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/rubygems_hook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/rubygems_hook.rb</a></td><td class='right'>220</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/single_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/single_class.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/stats.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/stats.rb</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/lib/rdoc/stats/normal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/stats/normal.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/stats/quiet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/stats/quiet.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/rdoc/stats/verbose.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/stats/verbose.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/task.rb</a></td><td class='right'>326</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/text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/text.rb</a></td><td class='right'>302</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/token_stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/token_stream.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/rdoc/top_level.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rdoc/top_level.rb</a></td><td class='right'>474</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/lib/readbytes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/readbytes.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/lib/resolv-replace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/resolv-replace.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/lib/resolv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/resolv.rb</a></td><td class='right'>2363</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/lib/rexml/attlistdecl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/attlistdecl.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/rexml/attribute.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/attribute.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/rexml/cdata.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/cdata.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/rexml/child.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/child.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/rexml/comment.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/comment.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/rexml/doctype.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/doctype.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/lib/rexml/document.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/document.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/rexml/dtd/attlistdecl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/dtd/attlistdecl.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/rexml/dtd/dtd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/dtd/dtd.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/rexml/dtd/elementdecl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/dtd/elementdecl.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/rexml/dtd/entitydecl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/dtd/entitydecl.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/lib/rexml/dtd/notationdecl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/dtd/notationdecl.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/rexml/element.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/element.rb</a></td><td class='right'>1245</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/rexml/encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/encoding.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/rexml/entity.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/entity.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/rexml/formatters/default.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/formatters/default.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/rexml/formatters/pretty.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/formatters/pretty.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/rexml/formatters/transitive.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/formatters/transitive.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/rexml/functions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/functions.rb</a></td><td class='right'>394</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/rexml/instruction.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/instruction.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/rexml/light/node.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/light/node.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/rexml/namespace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/namespace.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/lib/rexml/node.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/node.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/rexml/output.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/output.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/rexml/parent.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parent.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/lib/rexml/parseexception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parseexception.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/rexml/parsers/baseparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/baseparser.rb</a></td><td class='right'>518</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/rexml/parsers/lightparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/lightparser.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/rexml/parsers/pullparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/pullparser.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/rexml/parsers/sax2parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/sax2parser.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/lib/rexml/parsers/streamparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/streamparser.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rexml/parsers/treeparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/treeparser.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/rexml/parsers/ultralightparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/ultralightparser.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/lib/rexml/parsers/xpathparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/parsers/xpathparser.rb</a></td><td class='right'>697</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/rexml/quickpath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/quickpath.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/rexml/rexml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/rexml.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/lib/rexml/sax2listener.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/sax2listener.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/rexml/source.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/source.rb</a></td><td class='right'>267</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/rexml/streamlistener.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/streamlistener.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/lib/rexml/syncenumerator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/syncenumerator.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/rexml/text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/text.rb</a></td><td class='right'>404</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/rexml/undefinednamespaceexception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/undefinednamespaceexception.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/rexml/validation/relaxng.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/validation/relaxng.rb</a></td><td class='right'>559</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/rexml/validation/validation.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/validation/validation.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/lib/rexml/validation/validationexception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/validation/validationexception.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/rexml/xmldecl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/xmldecl.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/rexml/xmltokens.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/xmltokens.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/lib/rexml/xpath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/xpath.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/rexml/xpath_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rexml/xpath_parser.rb</a></td><td class='right'>803</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/rinda/rinda.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rinda/rinda.rb</a></td><td class='right'>283</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/rinda/ring.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rinda/ring.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/lib/rinda/tuplespace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rinda/tuplespace.rb</a></td><td class='right'>642</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/rss.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss.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/rss/0.9.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/0.9.rb</a></td><td class='right'>428</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/rss/1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/1.0.rb</a></td><td class='right'>452</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/rss/2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/2.0.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/rss/atom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/atom.rb</a></td><td class='right'>756</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/rss/content.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/content.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/lib/rss/content/1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/content/1.0.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/content/2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/content/2.0.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/rss/converter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/converter.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/rss/dublincore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/dublincore.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/rss/dublincore/1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/dublincore/1.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='add'><a href='/ruby.git/diff/lib/rss/dublincore/2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/dublincore/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='add'><a href='/ruby.git/diff/lib/rss/dublincore/atom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/dublincore/atom.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/lib/rss/image.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/image.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/lib/rss/itunes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/itunes.rb</a></td><td class='right'>410</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/rss/maker.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker.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/rss/maker/0.9.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/0.9.rb</a></td><td class='right'>508</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/rss/maker/1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/1.0.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/rss/maker/2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/2.0.rb</a></td><td class='right'>223</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/atom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/atom.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/lib/rss/maker/base.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/base.rb</a></td><td class='right'>944</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/lib/rss/maker/content.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/content.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/rss/maker/dublincore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/dublincore.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/entry.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/lib/rss/maker/feed.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/feed.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='add'><a href='/ruby.git/diff/lib/rss/maker/image.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/image.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/rss/maker/itunes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/itunes.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/rss/maker/slash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/slash.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/maker/syndication.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/syndication.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/lib/rss/maker/taxonomy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/taxonomy.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/lib/rss/maker/trackback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/maker/trackback.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/rss/parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/parser.rb</a></td><td class='right'>568</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/rss/rexmlparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rss.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/rss.rb</a></td><td class='right'>1342</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/rss/slash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/slash.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/lib/rss/syndication.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/syndication.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/rss/taxonomy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/taxonomy.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/lib/rss/trackback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/trackback.rb</a></td><td class='right'>288</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/rss/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/utils.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/rss/xml-stylesheet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/xml-stylesheet.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/lib/rss/xml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/xml.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/rss/xmlparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/xmlparser.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/rss/xmlscanner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rss/xmlscanner.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems.rb</a></td><td class='right'>1305</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/lib/rubygems/builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/builder.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/lib/rubygems/command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/command.rb</a></td><td class='right'>536</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/command_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/command_manager.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/lib/rubygems/commands/build_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/build_command.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/commands/cert_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/cert_command.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/commands/check_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/check_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/cleanup_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/cleanup_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/lib/rubygems/commands/contents_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/contents_command.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/lib/rubygems/commands/dependency_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/dependency_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/environment_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/environment_command.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/generate_index_command.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/help_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/help_command.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/lib/rubygems/commands/install_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/install_command.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/commands/list_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/list_command.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/commands/lock_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/lock_command.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/lib/rubygems/commands/outdated_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/outdated_command.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/rubygems/commands/owner_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/owner_command.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/lib/rubygems/commands/pristine_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/pristine_command.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/lib/rubygems/commands/push_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/push_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/lib/rubygems/commands/query_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/query_command.rb</a></td><td class='right'>263</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/rdoc_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/rdoc_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/search_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/search_command.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/lib/rubygems/commands/server_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/server_command.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/commands/setup_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/setup_command.rb</a></td><td class='right'>358</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/sources_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/sources_command.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/specification_command.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/stale_command.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/commands/uninstall_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/uninstall_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/unpack_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/unpack_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/update_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/update_command.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/lib/rubygems/commands/which_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/commands/which_command.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/config_file.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/config_file.rb</a></td><td class='right'>375</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/custom_require.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/custom_require.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/lib/rubygems/defaults.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/defaults.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/dependency.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/lib/rubygems/dependency_installer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/dependency_installer.rb</a></td><td class='right'>304</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_list.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/dependency_list.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/lib/rubygems/deprecate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/deprecate.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/doc_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/doc_manager.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/rubygems/errors.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/errors.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/exceptions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/exceptions.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/ext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/ext.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/lib/rubygems/ext/builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/ext/builder.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/lib/rubygems/ext/configure_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/ext/configure_builder.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/ext/ext_conf_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/ext/ext_conf_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/rake_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/ext/rake_builder.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/format.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/format.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/gem_openssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/gem_openssl.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/lib/rubygems/gem_path_searcher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/gem_path_searcher.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/lib/rubygems/gem_runner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/gemcutter_utilities.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/indexer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/indexer.rb</a></td><td class='right'>644</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/install_update_options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/install_update_options.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/installer.rb</a></td><td class='right'>626</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/installer_test_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/installer_test_case.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/lib/rubygems/local_remote_options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/local_remote_options.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/lib/rubygems/mock_gem_ui.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/mock_gem_ui.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/old_format.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/old_format.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/lib/rubygems/package.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package.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/package/f_sync_dir.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/f_sync_dir.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/rubygems/package/tar_header.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_header.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/lib/rubygems/package/tar_input.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_input.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/lib/rubygems/package/tar_output.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_output.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/package/tar_reader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_reader.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/lib/rubygems/package/tar_reader/entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_reader/entry.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/lib/rubygems/package/tar_test_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_test_case.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package/tar_writer.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/lib/rubygems/package_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/package_task.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/path_support.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/path_support.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/platform.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/platform.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/lib/rubygems/psych_additions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/psych_additions.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/lib/rubygems/psych_tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/psych_tree.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/remote_fetcher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/remote_fetcher.rb</a></td><td class='right'>507</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/require_paths_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/require_paths_builder.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/lib/rubygems/requirement.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/requirement.rb</a></td><td class='right'>204</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.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/security.rb</a></td><td class='right'>826</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/server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/server.rb</a></td><td class='right'>832</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/source_index.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/source_index.rb</a></td><td class='right'>406</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/spec_fetcher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/spec_fetcher.rb</a></td><td class='right'>297</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/specification.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/specification.rb</a></td><td class='right'>2171</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/lib/rubygems/ssl_certs/ca-bundle.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/ssl_certs/ca-bundle.pem</a></td><td class='right'>3366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/syck_hack.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/lib/rubygems/test_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/test_case.rb</a></td><td class='right'>870</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/rubygems/test_utilities.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/test_utilities.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/text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/text.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/uninstaller.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/uninstaller.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/lib/rubygems/user_interaction.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/user_interaction.rb</a></td><td class='right'>562</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/validator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/validator.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/lib/rubygems/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/version.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='add'><a href='/ruby.git/diff/lib/rubygems/version_option.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/rubygems/version_option.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/scanf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/scanf.rb</a></td><td class='right'>771</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/securerandom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/securerandom.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/lib/set.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/set.rb</a></td><td class='right'>1352</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/lib/shell.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell.rb</a></td><td class='right'>755</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.7%;'/><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/shell/builtin-command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/builtin-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/shell/command-processor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/command-processor.rb</a></td><td class='right'>593</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/shell/error.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/error.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/shell/filter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/filter.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/lib/shell/process-controller.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/process-controller.rb</a></td><td class='right'>319</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/shell/system-command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/system-command.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/shell/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shell/version.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/shellwords.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/shellwords.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='upd'><a href='/ruby.git/diff/lib/singleton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/singleton.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='upd'><a href='/ruby.git/diff/lib/sync.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/sync.rb</a></td><td class='right'>518</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.4%;'/><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/telnet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/telnet.rb</a></td><td class='right'>439</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/tempfile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tempfile.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.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/lib/test/unit.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/test/unit.rb</a></td><td class='right'>640</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/test/unit/assertions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/test/unit/assertions.rb</a></td><td class='right'>324</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/test/unit/parallel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/test/unit/parallel.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/test/unit/testcase.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/test/unit/testcase.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/thread.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/thread.rb</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.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/thwait.rb</a></td><td class='right'>167</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/time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/time.rb</a></td><td class='right'>541</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/lib/timeout.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/timeout.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='del'><a href='/ruby.git/diff/lib/tk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tk.rb</a></td><td class='right'>2499</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 3.1%;'/><td class='none' style='width: 96.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/lib/tkafter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkafter.rb</a></td><td class='right'>296</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/tkbgerror.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkbgerror.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/lib/tkcanvas.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkcanvas.rb</a></td><td class='right'>829</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/tkclass.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkclass.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/tkdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkdialog.rb</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='del'><a href='/ruby.git/diff/lib/tkentry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkentry.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/tkfont.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkfont.rb</a></td><td class='right'>939</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/tkmenubar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkmenubar.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.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/tkmngfocus.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkmngfocus.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/lib/tkpalette.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkpalette.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/tkscrollbox.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkscrollbox.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/lib/tktext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tktext.rb</a></td><td class='right'>797</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/tkvirtevent.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tkvirtevent.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='add'><a href='/ruby.git/diff/lib/tmpdir.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tmpdir.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='upd'><a href='/ruby.git/diff/lib/tracer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tracer.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.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/tsort.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/tsort.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/ubygems.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/ubygems.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/un.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/un.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/uri.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri.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/uri/common.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/common.rb</a></td><td class='right'>1001</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/lib/uri/ftp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/ftp.rb</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/lib/uri/generic.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/generic.rb</a></td><td class='right'>1599</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/lib/uri/http.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/http.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/lib/uri/https.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/https.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/lib/uri/ldap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/ldap.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/lib/uri/ldaps.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/ldaps.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/lib/uri/mailto.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/uri/mailto.rb</a></td><td class='right'>280</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/weakref.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/weakref.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.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/webrick.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick.rb</a></td><td class='right'>227</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/webrick/accesslog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/accesslog.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/lib/webrick/cgi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/cgi.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/lib/webrick/compat.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/compat.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/webrick/config.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/config.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/cookie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/cookie.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/lib/webrick/htmlutils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/htmlutils.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/webrick/httpauth.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth.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/lib/webrick/httpauth/authenticator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/authenticator.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/webrick/httpauth/basicauth.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/basicauth.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/lib/webrick/httpauth/digestauth.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/digestauth.rb</a></td><td class='right'>392</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/webrick/httpauth/htdigest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/htdigest.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/httpauth/htgroup.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/htgroup.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/webrick/httpauth/htpasswd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/htpasswd.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/httpauth/userdb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpauth/userdb.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/webrick/httpproxy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpproxy.rb</a></td><td class='right'>305</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/webrick/httprequest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httprequest.rb</a></td><td class='right'>461</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/webrick/httpresponse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpresponse.rb</a></td><td class='right'>399</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/webrick/https.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/https.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/lib/webrick/httpserver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpserver.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/lib/webrick/httpservlet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet.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/lib/webrick/httpservlet/abstract.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet/abstract.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/lib/webrick/httpservlet/cgi_runner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet/cgi_runner.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/webrick/httpservlet/cgihandler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet/cgihandler.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/lib/webrick/httpservlet/erbhandler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet/erbhandler.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/webrick/httpservlet/filehandler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet/filehandler.rb</a></td><td class='right'>470</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/webrick/httpservlet/prochandler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpservlet/prochandler.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/webrick/httpstatus.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpstatus.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/lib/webrick/httputils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httputils.rb</a></td><td class='right'>392</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/webrick/httpversion.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/httpversion.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/lib/webrick/log.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/log.rb</a></td><td class='right'>136</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/server.rb</a></td><td class='right'>218</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/webrick/ssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/ssl.rb</a></td><td class='right'>127</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/utils.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/lib/webrick/version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/webrick/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='add'><a href='/ruby.git/diff/lib/xmlrpc/README.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/xmlrpc/README.rdoc</a></td><td class='right'>300</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/xmlrpc/README.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/lib/xmlrpc/base64.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/client.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/xmlrpc/client.rb</a></td><td class='right'>625</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/xmlrpc/config.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/lib/xmlrpc/create.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/xmlrpc/create.rb</a></td><td class='right'>289</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/xmlrpc/datetime.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/httpserver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/marshal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/xmlrpc/parser.rb</a></td><td class='right'>812</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/xmlrpc/server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/xmlrpc/server.rb</a></td><td class='right'>778</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/xmlrpc/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/yaml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/yaml.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/lib/yaml/dbm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/yaml/dbm.rb</a></td><td class='right'>214</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/yaml/store.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>lib/yaml/store.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/load.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>load.c</a></td><td class='right'>792</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/main.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>main.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: 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>man/erb.1</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/man/goruby.1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>man/irb.1</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/man/rake.1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>man/rake.1</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/man/ri.1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>man/ri.1</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/man/ruby.1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>man/ruby.1</a></td><td class='right'>511</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/marshal.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>marshal.c</a></td><td class='right'>1937</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.5%;'/><td class='none' style='width: 97.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/math.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>math.c</a></td><td class='right'>800</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.9%;'/><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='add'><a href='/ruby.git/diff/method.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>method.h</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/misc/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/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='add'><a href='/ruby.git/diff/misc/inf-ruby.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/inf-ruby.el</a></td><td class='right'>416</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/misc/rb_optparse.bash?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/misc/rdoc-mode.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/rdoc-mode.el</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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-electric.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/ruby-electric.el</a></td><td class='right'>205</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/misc/ruby-mode.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/ruby-mode.el</a></td><td class='right'>1496</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/misc/ruby-style.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/ruby-style.el</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='mov'><a href='/ruby.git/diff/misc/rubydb2x.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/rubydb2x.el</a> (renamed from sample/rubydb2x.el)</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/misc/rubydb3x.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>misc/rubydb3x.el</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/missing/acosh.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/acosh.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='upd'><a href='/ruby.git/diff/missing/alloca.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/alloca.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/missing/cbrt.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='upd'><a href='/ruby.git/diff/missing/crypt.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/crypt.c</a></td><td class='right'>1185</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.3%;'/><td class='none' style='width: 98.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/missing/dir.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/dir.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='upd'><a href='/ruby.git/diff/missing/dup2.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/dup2.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/missing/erf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/erf.c</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/missing/ffs.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/file.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='add'><a href='/ruby.git/diff/missing/fileblocks.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/fileblocks.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/missing/finite.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/finite.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/missing/flock.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/flock.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/missing/hypot.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/hypot.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/missing/isinf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/isinf.c</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/missing/isnan.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/isnan.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/missing/langinfo.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/memcmp.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='upd'><a href='/ruby.git/diff/missing/memmove.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/memmove.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/missing/mkdir.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/mkdir.c</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/missing/nt.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/nt.c</a></td><td class='right'>2194</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 2.7%;'/><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/missing/nt.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/nt.h</a></td><td class='right'>358</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/missing/os2.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/os2.c</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='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/missing/setenv.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/setenv.c</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='add'><a href='/ruby.git/diff/missing/setproctitle.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/setproctitle.c</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/missing/signbit.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='del'><a href='/ruby.git/diff/missing/strcasecmp.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strcasecmp.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='upd'><a href='/ruby.git/diff/missing/strchr.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strchr.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.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/strdup.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strdup.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='upd'><a href='/ruby.git/diff/missing/strerror.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strerror.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='del'><a href='/ruby.git/diff/missing/strftime.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strftime.c</a></td><td class='right'>889</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='add'><a href='/ruby.git/diff/missing/strlcat.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strlcat.c</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/missing/strlcpy.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strlcpy.c</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/missing/strstr.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strstr.c</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='upd'><a href='/ruby.git/diff/missing/strtol.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/strtol.c</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/missing/strtoul.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/tgamma.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='del'><a href='/ruby.git/diff/missing/vsnprintf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/vsnprintf.c</a></td><td class='right'>1150</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/missing/x68.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>missing/x68.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/missing/x86_64-chkstk.s?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/mkconfig.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>mkconfig.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='add'><a href='/ruby.git/diff/node.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>node.c</a></td><td class='right'>921</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/node.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>node.h</a></td><td class='right'>467</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/numeric.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>numeric.c</a></td><td class='right'>3784</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.7%;'/><td class='rem' style='width: 1.0%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/object.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>object.c</a></td><td class='right'>3074</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.0%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 96.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/pack.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>pack.c</a></td><td class='right'>2230</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.2%;'/><td class='rem' style='width: 0.6%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/parse.y?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>parse.y</a></td><td class='right'>11073</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 11.0%;'/><td class='rem' style='width: 2.7%;'/><td class='none' style='width: 86.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/prelude.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>prelude.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/proc.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>proc.c</a></td><td class='right'>2251</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='upd'><a href='/ruby.git/diff/process.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>process.c</a></td><td class='right'>6246</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.9%;'/><td class='rem' style='width: 0.8%;'/><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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>random.c</a></td><td class='right'>1401</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.6%;'/><td class='rem' style='width: 0.1%;'/><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/range.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>range.c</a></td><td class='right'>1069</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.2%;'/><td class='rem' style='width: 0.2%;'/><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/rational.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>rational.c</a></td><td class='right'>2409</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>re.c</a></td><td class='right'>3754</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.9%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/re.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>re.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/regcomp.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regcomp.c</a></td><td class='right'>6321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.8%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regenc.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regenc.c</a></td><td class='right'>933</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/regenc.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regenc.h</a></td><td class='right'>219</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regerror.c</a></td><td class='right'>397</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/regex.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regex.c</a></td><td class='right'>4321</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 5.4%;'/><td class='none' style='width: 94.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/regex.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regex.h</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.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/regexec.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regexec.c</a></td><td class='right'>3826</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.7%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 95.3%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regint.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regint.h</a></td><td class='right'>850</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/regparse.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regparse.c</a></td><td class='right'>5686</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 7.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 92.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/regparse.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regparse.h</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/regsyntax.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>regsyntax.c</a></td><td class='right'>315</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/ruby.1?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ruby.1</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='upd'><a href='/ruby.git/diff/ruby.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ruby.c</a></td><td class='right'>2064</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.9%;'/><td class='rem' style='width: 0.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/ruby.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ruby.h</a></td><td class='right'>550</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/rubyio.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>rubyio.h</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/rubysig.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>rubysig.h</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/rubytest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>rubytest.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/safe.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>safe.c</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='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/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/README</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/biorhythm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/biorhythm.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/sample/cal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/cal.rb</a></td><td class='right'>262</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/sample/cbreak.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/cbreak.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/clnt.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/clnt.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/coverage.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='upd'><a href='/ruby.git/diff/sample/dir.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/dir.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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.rd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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.rd.ja?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/darray.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/darray.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/drb/darrayc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/darrayc.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/sample/drb/dbiff.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dbiff.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/sample/drb/dcdbiff.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dcdbiff.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/dchatc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dchatc.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/dchats.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dchats.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/sample/drb/dhasen.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dhasen.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/dhasenc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dhasenc.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/drb/dlogc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dlogc.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/drb/dlogd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dlogd.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/sample/drb/dqin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dqin.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/drb/dqlib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dqlib.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/drb/dqout.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dqout.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/drb/dqueue.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/dqueue.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/drb/drbc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbc.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/drbch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbch.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/sample/drb/drbm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbm.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/sample/drb/drbmc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbmc.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/drb/drbs-acl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbs-acl.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/sample/drb/drbs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbs.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/sample/drb/drbssl_c.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbssl_c.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/drb/drbssl_s.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/drbssl_s.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/sample/drb/extserv_test.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/extserv_test.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/sample/drb/gw_ct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/gw_ct.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/sample/drb/gw_cu.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/gw_cu.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/drb/gw_s.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/gw_s.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/drb/holderc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/holderc.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/drb/holders.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/holders.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/sample/drb/http0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/http0.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/sample/drb/http0serv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.0%;'/><td class='none' 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/name.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/name.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/sample/drb/namec.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/namec.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/sample/drb/old_tuplespace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/old_tuplespace.rb</a></td><td class='right'>214</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/sample/drb/rinda_ts.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/rinda_ts.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rindac.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/rindac.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/sample/drb/rindas.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/rindas.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/sample/drb/ring_echo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/ring_echo.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/sample/drb/ring_inspect.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/ring_inspect.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/sample/drb/ring_place.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/ring_place.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/sample/drb/simpletuple.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/simpletuple.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/sample/drb/speedc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/speedc.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/sample/drb/speeds.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/drb/speeds.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/sample/dualstack-fetch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/dualstack-fetch.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/sample/dualstack-httpd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/dualstack-httpd.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/sample/eval.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/eval.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/exyacc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/exyacc.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/fact.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/fact.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/fib.pl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/fib.pl</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/fib.scm?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/fib.scm</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/freq.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/freq.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/from.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/from.rb</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/sample/fullpath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/fullpath.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/sample/getopts.test?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='del'><a href='/ruby.git/diff/sample/inf-ruby.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/inf-ruby.el</a></td><td class='right'>310</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/sample/list.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/list.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/sample/list2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/sample/logger/app.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/logger/app.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/logger/log.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/logger/log.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/sample/logger/shifting.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/logger/shifting.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/mine.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/mine.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='upd'><a href='/ruby.git/diff/sample/mkproto.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/mkproto.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/mpart.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/mpart.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/mrshtest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/mrshtest.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/sample/occur.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/occur.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/occur2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/occur2.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/openssl/c_rehash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/c_rehash.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/sample/openssl/cert2text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/cert2text.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/openssl/certstore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/certstore.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/sample/openssl/cipher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/cipher.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/sample/openssl/crlstore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/crlstore.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/openssl/echo_cli.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/echo_cli.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/openssl/echo_svr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/echo_svr.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/sample/openssl/gen_csr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/gen_csr.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/sample/openssl/smime_read.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/smime_read.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/openssl/smime_write.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/smime_write.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/openssl/wget.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/openssl/wget.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/sample/optparse/opttest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/optparse/opttest.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/sample/optparse/subcommand.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/optparse/subcommand.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/philos.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/philos.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/pi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/pi.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/pty/expect_sample.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/pty/expect_sample.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/sample/pty/script.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/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.1%;'/><td class='rem' style='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/rbc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rbc.rb</a></td><td class='right'>1015</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='upd'><a href='/ruby.git/diff/sample/rcs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rcs.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/sample/rdoc/markup/rdoc2latex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/ripper/ruby2html.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/sample/rss/blend.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rss/blend.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/sample/rss/convert.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rss/convert.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/sample/rss/list_description.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rss/list_description.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/sample/rss/re_read.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rss/re_read.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/sample/rss/rss_recent.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rss/rss_recent.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='del'><a href='/ruby.git/diff/sample/ruby-mode.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/ruby-mode.el</a></td><td class='right'>677</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/sample/rubydb3x.el?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/rubydb3x.el</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='upd'><a href='/ruby.git/diff/sample/sieve.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/sieve.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/sample/svr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/svr.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/sample/test.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/test.rb</a></td><td class='right'>2054</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.0%;'/><td class='rem' style='width: 0.5%;'/><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/sample/testunit/adder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/testunit/adder.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/testunit/subtracter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/testunit/subtracter.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/testunit/tc_adder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/testunit/tc_adder.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/sample/testunit/tc_subtracter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/testunit/tc_subtracter.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/sample/testunit/ts_examples.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/testunit/ts_examples.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='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/tkbiff.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/tkbiff.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/sample/tkbrowse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/sample/tkdialog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/tkdialog.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/sample/tkfrom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/sample/tkhello.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/sample/tkline.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/tkline.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.1%;'/><td class='none' 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/tktimer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='upd'><a href='/ruby.git/diff/sample/trojan.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/trojan.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/tsvr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/tsvr.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/sample/uumerge.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/uumerge.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/webrick/demo-app.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/demo-app.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/sample/webrick/demo-multipart.cgi?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/demo-multipart.cgi</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/webrick/demo-servlet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/demo-servlet.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/webrick/demo-urlencoded.cgi?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/demo-urlencoded.cgi</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/webrick/hello.cgi?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/hello.cgi</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/webrick/hello.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/hello.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/sample/webrick/httpd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/httpd.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/webrick/httpproxy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/httpproxy.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/sample/webrick/httpsd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sample/webrick/httpsd.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/signal.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>signal.c</a></td><td class='right'>1156</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.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/siphash.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>siphash.c</a></td><td class='right'>483</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/siphash.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sparc.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/spec/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>spec/README</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/default.mspec?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>spec/default.mspec</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/sprintf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>sprintf.c</a></td><td class='right'>1277</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>st.c</a></td><td class='right'>1350</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.4%;'/><td class='rem' style='width: 0.3%;'/><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/st.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>st.h</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/strftime.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>strftime.c</a></td><td class='right'>1145</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>string.c</a></td><td class='right'>8435</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 8.4%;'/><td class='rem' style='width: 2.0%;'/><td class='none' style='width: 89.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/struct.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>struct.c</a></td><td class='right'>1096</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 1.0%;'/><td class='rem' style='width: 0.4%;'/><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/symbian/README.SYMBIAN?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>symbian/README.SYMBIAN</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/symbian/configure.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>symbian/configure.bat</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.8%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/symbian/missing-aeabi.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>symbian/missing-aeabi.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/symbian/missing-pips.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>symbian/missing-pips.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/symbian/pre-build?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>symbian/pre-build</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/symbian/setup?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>symbian/setup</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/template/Doxyfile.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/Doxyfile.tmpl</a></td><td class='right'>267</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/encdb.h.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/encdb.h.tmpl</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='add'><a href='/ruby.git/diff/template/fake.rb.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/fake.rb.in</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/template/id.h.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/id.h.tmpl</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/template/insns.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/insns.inc.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/template/insns_info.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/insns_info.inc.tmpl</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/template/known_errors.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/minsns.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/opt_sc.inc.tmpl</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/template/optinsn.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/optinsn.inc.tmpl</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/template/optunifs.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/optunifs.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/ruby.pc.in?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/ruby.pc.in</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/vm.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/vm.inc.tmpl</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/template/vmtc.inc.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>template/vmtc.inc.tmpl</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/template/yarvarch.en?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/template/yasmdata.rb.tmpl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/array/test_resize.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-/funcall/test_passing_block.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/funcall/test_passing_block.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-/load/test_dot_dot.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/load/test_dot_dot.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-/old_thread_select/test_old_thread_select.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/old_thread_select/test_old_thread_select.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/test/-ext-/st/test_numhash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/st/test_numhash.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-/string/test_cstr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/string/test_cstr.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_ellipsize.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/string/test_ellipsize.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/string/test_enc_associate.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/-ext-/string/test_modify_expand.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/string/test_modify_expand.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-/string/test_set_len.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/string/test_set_len.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-/test_bug-3571.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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-3662.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/test_bug-3662.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-/wait_for_single_fd/test_wait_for_single_fd.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_dln.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/-ext-/win32/test_dln.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-/win32/test_fd_setsize.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/base64/test_base64.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/test/benchmark/test_benchmark.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/benchmark/test_benchmark.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/test/bigdecimal/test_bigdecimal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/bigdecimal/test_bigdecimal.rb</a></td><td class='right'>1310</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/bigdecimal/test_bigdecimal_util.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/bigdecimal/test_bigdecimal_util.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/bigdecimal/test_bigmath.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/bigdecimal/testbase.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/bigdecimal/testbase.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/cgi/test_cgi_cookie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_cookie.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/cgi/test_cgi_core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_core.rb</a></td><td class='right'>363</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/cgi/test_cgi_header.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_header.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/test/cgi/test_cgi_modruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_modruby.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/cgi/test_cgi_multipart.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_multipart.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/cgi/test_cgi_session.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_session.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/cgi/test_cgi_tag_helper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_tag_helper.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/cgi/test_cgi_util.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/cgi/test_cgi_util.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/cgi/testdata/file1.html?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/coverage/test_coverage.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/coverage/test_coverage.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/csv/base.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/base.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/csv/line_endings.gz?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/line_endings.gz</a></td><td class='right'>bin</td><td class='graph'>0 -> 59 bytes<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_csv_parsing.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_csv_parsing.rb</a></td><td class='right'>221</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_csv_writing.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_data_converters.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_data_converters.rb</a></td><td class='right'>263</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_encodings.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_features.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_features.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_headers.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_headers.rb</a></td><td class='right'>289</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_interface.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_interface.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/csv/test_row.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_row.rb</a></td><td class='right'>313</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_serialization.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_serialization.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/test/csv/test_table.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/csv/test_table.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/csv/ts_all.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date.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/date/test_date_arith.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_arith.rb</a></td><td class='right'>286</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/date/test_date_attr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_attr.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/date/test_date_base.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_base.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/test/date/test_date_compat.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_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='add'><a href='/ruby.git/diff/test/date/test_date_conv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_conv.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_marshal.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/date/test_date_new.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_new.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/test/date/test_date_parse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_parse.rb</a></td><td class='right'>1097</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/date/test_date_strftime.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_strftime.rb</a></td><td class='right'>401</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_date_strptime.rb</a></td><td class='right'>486</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/date/test_switch_hitter.rb</a></td><td class='right'>577</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/dbm/test_dbm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dbm/test_dbm.rb</a></td><td class='right'>580</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/test/digest/test_digest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/digest/test_digest.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/digest/test_digest_extend.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/digest/test_digest_extend.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/test/digest/test_digest_hmac.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/digest/test_digest_hmac.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/dl/test_base.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_base.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/dl/test_callback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_callback.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/dl/test_cfunc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_cfunc.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/dl/test_cparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_cparser.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/dl/test_cptr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_cptr.rb</a></td><td class='right'>222</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/dl/test_dl2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_dl2.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/dl/test_func.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_func.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/dl/test_handle.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_handle.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/dl/test_import.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_import.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/dl/test_win32.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/dl/test_win32.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/drb/drbtest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/drbtest.rb</a></td><td class='right'>371</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/drb/ignore_test_drb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ignore_test_drb.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/drb/test_acl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/test_acl.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/test/drb/test_drb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/test_drb.rb</a></td><td class='right'>318</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/drb/test_drbssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/test_drbssl.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/drb/test_drbunix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/test_drbunix.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/drb/ut_array.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_array.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/drb/ut_array_drbssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_array_drbssl.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/drb/ut_array_drbunix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_array_drbunix.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/drb/ut_drb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_drb.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/test/drb/ut_drb_drbssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_drb_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='add'><a href='/ruby.git/diff/test/drb/ut_drb_drbunix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_drb_drbunix.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/drb/ut_eq.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_eq.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/drb/ut_eval.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/drb/ut_large.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_large.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/drb/ut_port.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_port.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/drb/ut_safe1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_safe1.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/drb/ut_timerholder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/drb/ut_timerholder.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/erb/hello.erb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/erb/test_erb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/erb/test_erb.rb</a></td><td class='right'>462</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/erb/test_erb_m17n.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/erb/test_erb_m17n.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/etc/test_etc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/etc/test_etc.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/fiddle/helper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fiddle/helper.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/test/fiddle/test_closure.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fiddle/test_closure.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/fiddle/test_fiddle.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fiddle/test_fiddle.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/fiddle/test_function.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fiddle/test_function.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/fileutils/clobber.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fileutils/clobber.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/fileutils/fileasserts.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fileutils/fileasserts.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/test/fileutils/test_dryrun.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fileutils/test_dryrun.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/fileutils/test_fileutils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fileutils/test_fileutils.rb</a></td><td class='right'>1180</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/fileutils/test_nowrite.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fileutils/test_nowrite.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/fileutils/test_verbose.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/fileutils/test_verbose.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/gdbm/test_gdbm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/gdbm/test_gdbm.rb</a></td><td class='right'>736</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/iconv/test_basic.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/iconv/test_basic.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/iconv/test_option.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/iconv/test_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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/iconv/test_partial.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/iconv/test_partial.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/iconv/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/iconv/utils.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/inlinetest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/inlinetest.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/io/console/test_io_console.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/io/console/test_io_console.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/test/io/nonblock/test_flush.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/io/nonblock/test_flush.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/io/wait/test_io_wait.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/irb/test_completion.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_option.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/json/fixtures/fail1.json?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/fixtures/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/fail10.json?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/pass1.json?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/setup_variant.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/setup_variant.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/json/test_json.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json.rb</a></td><td class='right'>460</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/json/test_json_addition.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json_addition.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/json/test_json_encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json_encoding.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/json/test_json_fixtures.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json_fixtures.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/test/json/test_json_generate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json_generate.rb</a></td><td class='right'>213</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/json/test_json_string_matching.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json_string_matching.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/test/json/test_json_unicode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/json/test_json_unicode.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/logger/test_logger.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/logger/test_logger.rb</a></td><td class='right'>522</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/matrix/test_matrix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/matrix/test_matrix.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='add'><a href='/ruby.git/diff/test/matrix/test_vector.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/matrix/test_vector.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/test_minitest_benchmark.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/minitest/test_minitest_benchmark.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/minitest/test_minitest_mock.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/minitest/test_minitest_mock.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/minitest/test_minitest_spec.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/minitest/test_minitest_spec.rb</a></td><td class='right'>397</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/minitest/test_minitest_unit.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/minitest/test_minitest_unit.rb</a></td><td class='right'>1454</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/misc/test_ruby_mode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/misc/test_ruby_mode.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/mkmf/base.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/mkmf/base.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_convertible.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/mkmf/test_convertible.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/mkmf/test_find_executable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/mkmf/test_find_executable.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/mkmf/test_flags.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/mkmf/test_flags.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_signedness.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/mkmf/test_signedness.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/mkmf/test_sizeof.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/mkmf/test_sizeof.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/monitor/test_monitor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/monitor/test_monitor.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/net/http/test_buffered_io.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/test_buffered_io.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/net/http/test_http.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/test_http.rb</a></td><td class='right'>555</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/net/http/test_httpheader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/test_httpheader.rb</a></td><td class='right'>317</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/net/http/test_httpresponse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/test_httpresponse.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/net/http/test_https.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/test_https.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/http/test_https_proxy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/test_https_proxy.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/net/http/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/http/utils.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/net/imap/cacert.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/imap/cacert.pem</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/net/imap/server.crt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/imap/server.crt</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/test/net/imap/server.key?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/imap/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='add'><a href='/ruby.git/diff/test/net/imap/test_imap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/imap/test_imap.rb</a></td><td class='right'>505</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/net/imap/test_imap_response_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/imap/test_imap_response_parser.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/net/pop/test_pop.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/pop/test_pop.rb</a></td><td class='right'>132</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_response.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/smtp/test_response.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/test/net/smtp/test_smtp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/smtp/test_smtp.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/net/smtp/test_ssl_socket.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/net/smtp/test_ssl_socket.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/nkf/test_kconv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/nkf/test_kconv.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/nkf/test_nkf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/nkf/test_nkf.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/objspace/test_objspace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/objspace/test_objspace.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/open-uri/test_open-uri.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/open-uri/test_open-uri.rb</a></td><td class='right'>730</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/open-uri/test_ssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/open-uri/test_ssl.rb</a></td><td class='right'>314</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/ssl_server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_asn1.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_asn1.rb</a></td><td class='right'>589</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/openssl/test_bn.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_bn.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/openssl/test_buffering.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_buffering.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/openssl/test_cipher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_cipher.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/test/openssl/test_config.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_config.rb</a></td><td class='right'>288</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_digest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_digest.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/openssl/test_engine.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_engine.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/openssl/test_hmac.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_hmac.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/openssl/test_ns_spki.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_ns_spki.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/openssl/test_ocsp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_ocsp.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/openssl/test_pair.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pair.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/openssl/test_pkcs12.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pkcs12.rb</a></td><td class='right'>209</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_pkcs7.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pkcs7.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/openssl/test_pkey_dh.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pkey_dh.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/openssl/test_pkey_dsa.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pkey_dsa.rb</a></td><td class='right'>224</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_pkey_ec.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pkey_ec.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/openssl/test_pkey_rsa.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_pkey_rsa.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/test/openssl/test_ssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_ssl.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/openssl/test_ssl_session.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_ssl_session.rb</a></td><td class='right'>327</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_x509cert.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_x509cert.rb</a></td><td class='right'>218</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_x509crl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_x509crl.rb</a></td><td class='right'>221</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_x509ext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_x509ext.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/openssl/test_x509name.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_x509name.rb</a></td><td class='right'>366</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/test_x509req.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_x509req.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/openssl/test_x509store.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/test_x509store.rb</a></td><td class='right'>229</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/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/openssl/utils.rb</a></td><td class='right'>313</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/optparse/test_bash_completion.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_bash_completion.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_getopts.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_getopts.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/optparse/test_noarg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_noarg.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/optparse/test_optarg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_optarg.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_optparse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_optparse.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/optparse/test_placearg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_placearg.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/optparse/test_reqarg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_reqarg.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/optparse/test_summary.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_summary.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/optparse/test_zsh_completion.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/optparse/test_zsh_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/ostruct/test_ostruct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ostruct/test_ostruct.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/pathname/test_pathname.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/pathname/test_pathname.rb</a></td><td class='right'>1295</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/profile_test_all.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/profile_test_all.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/psych/helper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/helper.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/psych/json/test_stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/json/test_stream.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/psych/nodes/test_enumerable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/nodes/test_enumerable.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_alias_and_anchor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_alias_and_anchor.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/psych/test_array.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_array.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/psych/test_boolean.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_boolean.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/psych/test_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_class.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/psych/test_coder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_coder.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/psych/test_date_time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_date_time.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_deprecated.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_deprecated.rb</a></td><td class='right'>210</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_document.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_document.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_emitter.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_encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_encoding.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/psych/test_engine_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_engine_manager.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/psych/test_exception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_exception.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_hash.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_json_tree.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/psych/test_merge_keys.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_merge_keys.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/psych/test_nil.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_nil.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/psych/test_null.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_null.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_numeric.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_numeric.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/psych/test_object.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_object.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_object_references.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_object_references.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/psych/test_omap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_omap.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/psych/test_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_parser.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/test_psych.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_psych.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/test/psych/test_scalar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_scalar.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/psych/test_scalar_scanner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_scalar_scanner.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_serialize_subclasses.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_serialize_subclasses.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/psych/test_set.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_set.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/psych/test_stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_stream.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/psych/test_string.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_string.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_struct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_struct.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/psych/test_symbol.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_symbol.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_tainted.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_tainted.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_to_yaml_properties.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_to_yaml_properties.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/psych/test_tree_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_tree_builder.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/test/psych/test_yaml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/test_yaml.rb</a></td><td class='right'>1269</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/psych/visitors/test_depth_first.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/visitors/test_depth_first.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/psych/visitors/test_emitter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/visitors/test_emitter.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/psych/visitors/test_to_ruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/visitors/test_to_ruby.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/psych/visitors/test_yaml_tree.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/psych/visitors/test_yaml_tree.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/rake/file_creation.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/file_creation.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/rake/helper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/helper.rb</a></td><td class='right'>492</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/rake/test_rake.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake.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/rake/test_rake_application.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_application.rb</a></td><td class='right'>489</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/rake/test_rake_application_options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_application_options.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/test/rake/test_rake_clean.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_clean.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/rake/test_rake_definitions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_definitions.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/rake/test_rake_directory_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_directory_task.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rake/test_rake_dsl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_dsl.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/rake/test_rake_early_time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_early_time.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/rake/test_rake_extension.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_extension.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/rake/test_rake_file_creation_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_file_creation_task.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/rake/test_rake_file_list.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_file_list.rb</a></td><td class='right'>628</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/rake/test_rake_file_list_path_map.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_file_list_path_map.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/rake/test_rake_file_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_file_task.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/test/rake/test_rake_file_utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_file_utils.rb</a></td><td class='right'>305</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/rake/test_rake_ftp_file.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_ftp_file.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/rake/test_rake_functional.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_functional.rb</a></td><td class='right'>450</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/rake/test_rake_invocation_chain.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_invocation_chain.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/rake/test_rake_makefile_loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_makefile_loader.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rake/test_rake_multi_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_multi_task.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/rake/test_rake_name_space.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_name_space.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rake/test_rake_package_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_package_task.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/test/rake/test_rake_path_map.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_path_map.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/test/rake/test_rake_path_map_explode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_path_map_explode.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/rake/test_rake_path_map_partial.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_path_map_partial.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/rake/test_rake_pseudo_status.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_pseudo_status.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/rake/test_rake_rake_test_loader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_rake_test_loader.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/rake/test_rake_rdoc_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_rdoc_task.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/rake/test_rake_require.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_require.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/rake/test_rake_rules.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_rules.rb</a></td><td class='right'>327</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/rake/test_rake_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task.rb</a></td><td class='right'>267</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/rake/test_rake_task_argument_parsing.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task_argument_parsing.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/rake/test_rake_task_arguments.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task_arguments.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/rake/test_rake_task_lib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task_lib.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/rake/test_rake_task_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task_manager.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/test/rake/test_rake_task_manager_argument_resolution.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task_manager_argument_resolution.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/rake/test_rake_task_with_arguments.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_task_with_arguments.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/rake/test_rake_test_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_test_task.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/rake/test_rake_top_level_functions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_top_level_functions.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/test/rake/test_rake_win32.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_rake_win32.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/rake/test_sys.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rake/test_sys.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/README?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/rdoc/test.ja.large.rdoc?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test.ja.large.rdoc</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_attribute_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_attribute_manager.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/rdoc/test_rdoc_alias.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_alias.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/rdoc/test_rdoc_any_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_any_method.rb</a></td><td class='right'>263</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_attr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_attr.rb</a></td><td class='right'>123</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_class_module.rb</a></td><td class='right'>718</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_code_object.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_code_object.rb</a></td><td class='right'>290</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_constant.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_constant.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/rdoc/test_rdoc_context.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_context.rb</a></td><td class='right'>695</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_context_section.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_context_section.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_cross_reference.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_cross_reference.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/rdoc/test_rdoc_encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_encoding.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_generator_darkfish.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_generator_darkfish.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_generator_ri.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/rdoc/test_rdoc_include.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_include.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.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup.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/rdoc/test_rdoc_markup_attribute_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_attribute_manager.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/rdoc/test_rdoc_markup_document.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_document.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/test/rdoc/test_rdoc_markup_formatter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_formatter.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/rdoc/test_rdoc_markup_indented_paragraph.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_indented_paragraph.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_paragraph.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_paragraph.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_markup_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_parser.rb</a></td><td class='right'>1486</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_pre_process.rb</a></td><td class='right'>410</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_raw.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/rdoc/test_rdoc_markup_to_ansi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_to_ansi.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/rdoc/test_rdoc_markup_to_bs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_to_bs.rb</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/test/rdoc/test_rdoc_markup_to_html.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_to_html.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/rdoc/test_rdoc_markup_to_html_crossref.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_to_html_crossref.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/rdoc/test_rdoc_markup_to_rdoc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_to_rdoc.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/rdoc/test_rdoc_markup_to_tt_only.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_markup_to_tt_only.rb</a></td><td class='right'>229</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_method_attr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_method_attr.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_normal_class.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_normal_module.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_normal_module.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/rdoc/test_rdoc_options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_options.rb</a></td><td class='right'>392</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_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_parser.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/rdoc/test_rdoc_parser_c.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_parser_c.rb</a></td><td class='right'>1436</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_parser_ruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_parser_ruby.rb</a></td><td class='right'>2477</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 3.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 96.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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_parser_simple.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/test/rdoc/test_rdoc_rdoc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_rdoc.rb</a></td><td class='right'>209</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_require.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_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/test/rdoc/test_rdoc_ri_driver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_ri_driver.rb</a></td><td class='right'>1061</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/rdoc/test_rdoc_ri_paths.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_ri_paths.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_ri_store.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_ri_store.rb</a></td><td class='right'>473</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_ruby_lex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_ruby_lex.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_rubygems_hook.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_rubygems_hook.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/rdoc/test_rdoc_single_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_single_class.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/rdoc/test_rdoc_stats.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_stats.rb</a></td><td class='right'>543</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/rdoc/test_rdoc_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_task.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/test/rdoc/test_rdoc_text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_text.rb</a></td><td class='right'>397</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_top_level.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/test_rdoc_top_level.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/rdoc/xref_data.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/xref_data.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/xref_test_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rdoc/xref_test_case.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/readline/test_readline.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/readline/test_readline.rb</a></td><td class='right'>415</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/readline/test_readline_history.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/readline/test_readline_history.rb</a></td><td class='right'>327</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/resolv/test_addr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/resolv/test_addr.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/resolv/test_dns.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/resolv/test_dns.rb</a></td><td class='right'>121</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/LostineRiver.kml.gz?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/euc.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/evaluate.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 8.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 91.5%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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: 17.3%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 82.7%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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='add'><a href='/ruby.git/diff/test/rexml/data/t75.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/rexml/data/test/tests.xsl?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/rexml/data/testNamespaces.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_110_utf16.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/data/ticket_110_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/ticket_61.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/tutorial.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/rexml/data/underscore.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/web.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/web2.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/xmlfile-bug.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/listener.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/rexml_test_utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/rexml_test_utils.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/test/rexml/test_attributes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_attributes.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/rexml/test_attributes_mixin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_changing_encoding.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_contrib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_contrib.rb</a></td><td class='right'>581</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/test_core.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_core.rb</a></td><td class='right'>1462</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/rexml/test_doctype.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_document.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/rexml/test_elements.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_elements.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/rexml/test_encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_encoding.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/rexml/test_encoding_2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_encoding_2.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_entity.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_entity.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/rexml/test_functions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_functions.rb</a></td><td class='right'>223</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_functions_number.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_jaxen.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_jaxen.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_light.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_light.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/rexml/test_lightparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_lightparser.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/rexml/test_listener.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_listener.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_martin_fowler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_martin_fowler.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/rexml/test_namespace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_namespace.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/rexml/test_notationdecl_mixin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_notationdecl_mixin.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/rexml/test_notationdecl_parsetest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_notationdecl_parsetest.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/rexml/test_order.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_order.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/test/rexml/test_preceding_sibling.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_preceding_sibling.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/rexml/test_pullparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_pullparser.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/test_rexml_issuezilla.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_rexml_issuezilla.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/rexml/test_sax.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_sax.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/test/rexml/test_stream.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_stream.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/rexml/test_ticket_80.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_ticket_80.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/rexml/test_validation_rng.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_validation_rng.rb</a></td><td class='right'>790</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/rexml/test_xml_declaration_parent_child.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_xml_declaration_parent_child.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/rexml/test_xpath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_xpath.rb</a></td><td class='right'>1079</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/rexml/test_xpath_attribute_query.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_xpath_attribute_query.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/test/rexml/test_xpath_msw.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_xpath_msw.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/rexml/test_xpath_pred.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_xpath_pred.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/rexml/test_xpathtext.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rexml/test_xpathtext.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/rinda/test_rinda.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rinda/test_rinda.rb</a></td><td class='right'>484</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/rinda/test_tuplebag.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rinda/test_tuplebag.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/ripper/dummyparser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ripper/dummyparser.rb</a></td><td class='right'>216</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ripper/test_files.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/ripper/test_filter.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ripper/test_filter.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/ripper/test_parser_events.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ripper/test_parser_events.rb</a></td><td class='right'>1142</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/ripper/test_ripper.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ripper/test_ripper.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/ripper/test_scanner_events.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ripper/test_scanner_events.rb</a></td><td class='right'>837</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/rss/dot.png?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/rss/rss-assertions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/rss-assertions.rb</a></td><td class='right'>2090</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='add'><a href='/ruby.git/diff/test/rss/rss-testcase.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/rss-testcase.rb</a></td><td class='right'>478</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/rss/test_1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_1.0.rb</a></td><td class='right'>295</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_2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_2.0.rb</a></td><td class='right'>409</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_accessor.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_accessor.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/rss/test_atom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_atom.rb</a></td><td class='right'>681</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/rss/test_content.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_content.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/rss/test_dublincore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_dublincore.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/test/rss/test_image.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_image.rb</a></td><td class='right'>214</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/rss/test_inherit.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_inherit.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/rss/test_itunes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_itunes.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/test/rss/test_maker_0.9.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_0.9.rb</a></td><td class='right'>474</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/rss/test_maker_1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_1.0.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/rss/test_maker_2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_2.0.rb</a></td><td class='right'>757</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/rss/test_maker_atom_entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_atom_entry.rb</a></td><td class='right'>393</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_atom_feed.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_atom_feed.rb</a></td><td class='right'>454</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/rss/test_maker_content.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_content.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/rss/test_maker_dc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_dc.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/rss/test_maker_image.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_image.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/rss/test_maker_itunes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_itunes.rb</a></td><td class='right'>471</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/rss/test_maker_slash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_slash.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/rss/test_maker_sy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_sy.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rss/test_maker_taxo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_taxo.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/rss/test_maker_trackback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/rss/test_maker_xml-stylesheet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_maker_xml-stylesheet.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/rss/test_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_parser.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/rss/test_parser_1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_parser_1.0.rb</a></td><td class='right'>528</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/rss/test_parser_2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_parser_2.0.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_parser_atom_entry.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/test/rss/test_parser_atom_feed.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_parser_atom_feed.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/test/rss/test_setup_maker_0.9.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_setup_maker_0.9.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/rss/test_setup_maker_1.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_setup_maker_1.0.rb</a></td><td class='right'>550</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/rss/test_setup_maker_2.0.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_setup_maker_2.0.rb</a></td><td class='right'>308</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_entry.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_setup_maker_atom_entry.rb</a></td><td class='right'>409</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_atom_feed.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_setup_maker_atom_feed.rb</a></td><td class='right'>445</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/rss/test_setup_maker_itunes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_setup_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='add'><a href='/ruby.git/diff/test/rss/test_slash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_slash.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/rss/test_syndication.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_syndication.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_taxonomy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_taxonomy.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/rss/test_to_s.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_to_s.rb</a></td><td class='right'>670</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/rss/test_trackback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_trackback.rb</a></td><td class='right'>135</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_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/test/rss/test_xml-stylesheet.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rss/test_xml-stylesheet.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/ruby/allpairs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/ruby/beginmainend.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/beginmainend.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/ruby/enc/test_big5.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_big5.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_cp949.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_cp949.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_emoji.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_emoji.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/test/ruby/enc/test_euc_jp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_euc_jp.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/ruby/enc/test_euc_kr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_euc_kr.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_euc_tw.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_euc_tw.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_gb18030.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_gb18030.rb</a></td><td class='right'>126</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_gbk.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_gbk.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_iso_8859.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_iso_8859.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/test/ruby/enc/test_koi8.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_koi8.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_shift_jis.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_shift_jis.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/ruby/enc/test_utf16.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_utf16.rb</a></td><td class='right'>384</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_utf32.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_utf32.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/ruby/enc/test_windows_1251.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/enc/test_windows_1251.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/ruby/endblockwarn_rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/ruby/envutil.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/envutil.rb</a></td><td class='right'>212</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/lbtest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/lbtest.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/ruby/marshaltestlib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/marshaltestlib.rb</a></td><td class='right'>506</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/memory_status.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/memory_status.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/ruby/sentence.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/sentence.rb</a></td><td class='right'>668</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_alias.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_alias.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/ruby/test_argf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_argf.rb</a></td><td class='right'>759</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_array.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_array.rb</a></td><td class='right'>2189</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/ruby/test_assignment.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_assignment.rb</a></td><td class='right'>695</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_autoload.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_autoload.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/ruby/test_basicinstructions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_basicinstructions.rb</a></td><td class='right'>685</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_beginendblock.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_beginendblock.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/test/ruby/test_bignum.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_bignum.rb</a></td><td class='right'>547</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_call.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_call.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_case.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_case.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/test/ruby/test_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_class.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/ruby/test_clone.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_clone.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/test_comparable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_comparable.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/ruby/test_complex.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_complex.rb</a></td><td class='right'>1151</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_complex2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_complex2.rb</a></td><td class='right'>735</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_complexrational.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_complexrational.rb</a></td><td class='right'>407</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_condition.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_condition.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/ruby/test_const.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_const.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/ruby/test_continuation.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_continuation.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_defined.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_defined.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_dir.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_dir.rb</a></td><td class='right'>214</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_dir_m17n.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_dir_m17n.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/ruby/test_econv.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_econv.rb</a></td><td class='right'>931</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_encoding.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_encoding.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/ruby/test_enum.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_enum.rb</a></td><td class='right'>388</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_enumerator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_enumerator.rb</a></td><td class='right'>377</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_env.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_env.rb</a></td><td class='right'>406</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_eval.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_eval.rb</a></td><td class='right'>433</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_exception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_exception.rb</a></td><td class='right'>395</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_fiber.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_fiber.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/ruby/test_file.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_file.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/ruby/test_file_exhaustive.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_file_exhaustive.rb</a></td><td class='right'>1024</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/ruby/test_fixnum.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_fixnum.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/ruby/test_float.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_float.rb</a></td><td class='right'>522</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_fnmatch.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_fnmatch.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/test/ruby/test_gc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_gc.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/ruby/test_hash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_hash.rb</a></td><td class='right'>923</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_ifunless.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_ifunless.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/test_integer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_integer.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/ruby/test_integer_comb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_integer_comb.rb</a></td><td class='right'>622</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_io.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_io.rb</a></td><td class='right'>2124</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='add'><a href='/ruby.git/diff/test/ruby/test_io_m17n.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_io_m17n.rb</a></td><td class='right'>2397</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/ruby/test_iterator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_iterator.rb</a></td><td class='right'>497</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_lambda.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_lambda.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/test/ruby/test_literal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_literal.rb</a></td><td class='right'>293</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_m17n.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_m17n.rb</a></td><td class='right'>1423</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_m17n_comb.rb</a></td><td class='right'>1623</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/ruby/test_marshal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_marshal.rb</a></td><td class='right'>486</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_math.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_math.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/ruby/test_metaclass.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_metaclass.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/ruby/test_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_method.rb</a></td><td class='right'>463</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_mixed_unicode_escapes.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_mixed_unicode_escapes.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/test_module.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_module.rb</a></td><td class='right'>1223</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/ruby/test_notimp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_notimp.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/ruby/test_numeric.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_numeric.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/ruby/test_object.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_object.rb</a></td><td class='right'>687</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_objectspace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_objectspace.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/ruby/test_optimization.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_optimization.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/test/ruby/test_pack.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_pack.rb</a></td><td class='right'>654</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_parse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_parse.rb</a></td><td class='right'>828</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_path.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_path.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/test/ruby/test_pipe.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_pipe.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/ruby/test_primitive.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_primitive.rb</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/test/ruby/test_proc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_proc.rb</a></td><td class='right'>821</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_process.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_process.rb</a></td><td class='right'>1333</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/test/ruby/test_rand.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_rand.rb</a></td><td class='right'>487</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_range.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_range.rb</a></td><td class='right'>350</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_rational.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_rational.rb</a></td><td class='right'>1139</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_rational2.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_rational2.rb</a></td><td class='right'>1386</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/test/ruby/test_readpartial.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_readpartial.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/ruby/test_regexp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_regexp.rb</a></td><td class='right'>876</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_require.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_require.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/test/ruby/test_rubyoptions.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_rubyoptions.rb</a></td><td class='right'>566</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_settracefunc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_settracefunc.rb</a></td><td class='right'>395</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_signal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_signal.rb</a></td><td class='right'>223</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_sleep.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_sleep.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_sprintf.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_sprintf.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/ruby/test_sprintf_comb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_sprintf_comb.rb</a></td><td class='right'>553</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_string.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_string.rb</a></td><td class='right'>1999</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_stringchar.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_stringchar.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/ruby/test_struct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_struct.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/test/ruby/test_super.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_super.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/test/ruby/test_symbol.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_symbol.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/ruby/test_syntax.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_syntax.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/test/ruby/test_system.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_system.rb</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_thread.rb</a></td><td class='right'>713</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_time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_time.rb</a></td><td class='right'>756</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_time_tz.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_time_tz.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/test/ruby/test_trace.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_trace.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/test/ruby/test_transcode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_transcode.rb</a></td><td class='right'>1968</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_undef.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/test_unicode_escape.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_unicode_escape.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/test/ruby/test_variable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_variable.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_whileuntil.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_whileuntil.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/ruby/test_yield.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/test_yield.rb</a></td><td class='right'>382</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/ut_eof.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/ruby/ut_eof.rb</a></td><td class='right'>128</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/bogussources.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/bogussources.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/ca_cert.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/ca_cert.pem</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/data/null-type.gemspec.rz</a></td><td class='right'>bin</td><td class='graph'>0 -> 553 bytes<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/rubygems/fake_certlib/openssl.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/fake_certlib/openssl.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/fix_openssl_warnings.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/rubygems/foo/discover.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/foo/discover.rb</a></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/test/rubygems/insure_session.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/insure_session.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/plugin/exception/rubygems_plugin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/plugin/exception/rubygems_plugin.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/plugin/load/rubygems_plugin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/plugin/load/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/standarderror/rubygems_plugin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/plugin/standarderror/rubygems_plugin.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/private_key.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/public_cert.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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/rubygems/commands/crash_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/rubygems/commands/crash_command.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/test/rubygems/rubygems_plugin.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/rubygems_plugin.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/sff/discover.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/sff/discover.rb</a></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/test/rubygems/simple_gem.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/simple_gem.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/ssl_cert.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/ssl_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/ssl_key.pem?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/ssl_key.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/rubygems/test_config.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_config.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/rubygems/test_gem.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem.rb</a></td><td class='right'>1281</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/rubygems/test_gem_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_builder.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_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/test/rubygems/test_gem_command_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_command_manager.rb</a></td><td class='right'>215</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_build_command.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_commands_cert_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_cert_command.rb</a></td><td class='right'>125</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_check_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_check_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_cleanup_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_cleanup_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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_contents_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_contents_command.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_commands_dependency_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_dependency_command.rb</a></td><td class='right'>226</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_environment_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_environment_command.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/rubygems/test_gem_commands_fetch_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_fetch_command.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/test/rubygems/test_gem_commands_generate_index_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_generate_index_command.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_help_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_help_command.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/rubygems/test_gem_commands_install_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_install_command.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/test/rubygems/test_gem_commands_list_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_list_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_lock_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_lock_command.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/rubygems/test_gem_commands_outdated_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_outdated_command.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/rubygems/test_gem_commands_owner_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_owner_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_pristine_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_pristine_command.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/rubygems/test_gem_commands_push_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_push_command.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_commands_query_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_query_command.rb</a></td><td class='right'>353</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_server_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_server_command.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/rubygems/test_gem_commands_sources_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_sources_command.rb</a></td><td class='right'>210</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_specification_command.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/test/rubygems/test_gem_commands_stale_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_stale_command.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/rubygems/test_gem_commands_uninstall_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_uninstall_command.rb</a></td><td class='right'>137</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_unpack_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_unpack_command.rb</a></td><td class='right'>224</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_update_command.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_update_command.rb</a></td><td class='right'>372</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_commands_which_command.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/rubygems/test_gem_config_file.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_config_file.rb</a></td><td class='right'>319</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.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_dependency.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/test/rubygems/test_gem_dependency_installer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_dependency_installer.rb</a></td><td class='right'>853</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_dependency_list.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_dependency_list.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/rubygems/test_gem_doc_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_doc_manager.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_ext_configure_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_ext_configure_builder.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_ext_ext_conf_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_ext_ext_conf_builder.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/rubygems/test_gem_ext_rake_builder.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_ext_rake_builder.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_format.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_format.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_gem_path_searcher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_gem_path_searcher.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/rubygems/test_gem_gem_runner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_gem_runner.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_gemcutter_utilities.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/rubygems/test_gem_indexer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_indexer.rb</a></td><td class='right'>558</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_install_update_options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_install_update_options.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/test_gem_installer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_installer.rb</a></td><td class='right'>1244</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/rubygems/test_gem_local_remote_options.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_local_remote_options.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_package_tar_header.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_tar_header.rb</a></td><td class='right'>130</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_input.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_tar_input.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_output.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_tar_output.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_package_tar_reader.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_tar_reader.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_tar_reader_entry.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/rubygems/test_gem_package_tar_writer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_tar_writer.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/rubygems/test_gem_package_task.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_package_task.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/rubygems/test_gem_path_support.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_path_support.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_platform.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_platform.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/rubygems/test_gem_remote_fetcher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_remote_fetcher.rb</a></td><td class='right'>978</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_requirement.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_requirement.rb</a></td><td class='right'>309</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_security.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_security.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_server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_server.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_silent_ui.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_silent_ui.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/test/rubygems/test_gem_source_index.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_source_index.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/rubygems/test_gem_spec_fetcher.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_spec_fetcher.rb</a></td><td class='right'>408</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_specification.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_specification.rb</a></td><td class='right'>1728</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_stream_ui.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_stream_ui.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/rubygems/test_gem_text.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_text.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/rubygems/test_gem_uninstaller.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_uninstaller.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_validator.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_validator.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_gem_version.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_version.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/rubygems/test_gem_version_option.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_gem_version_option.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/test/rubygems/test_kernel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/rubygems/test_kernel.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/runner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/runner.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/scanf/data.txt?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/scanf/test_scanf.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'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/test/scanf/test_scanfblocks.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/scanf/test_scanfblocks.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/scanf/test_scanfio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/scanf/test_scanfio.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/sdbm/test_sdbm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/sdbm/test_sdbm.rb</a></td><td class='right'>555</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_addrinfo.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_addrinfo.rb</a></td><td class='right'>619</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/socket/test_ancdata.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_ancdata.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/socket/test_basicsocket.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_basicsocket.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/socket/test_nonblock.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_nonblock.rb</a></td><td class='right'>284</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/socket/test_socket.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_socket.rb</a></td><td class='right'>457</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/socket/test_sockopt.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_sockopt.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/socket/test_tcp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_tcp.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_udp.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/socket/test_unix.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/socket/test_unix.rb</a></td><td class='right'>510</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/stringio/test_stringio.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/stringio/test_stringio.rb</a></td><td class='right'>502</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/strscan/test_stringscanner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/strscan/test_stringscanner.rb</a></td><td class='right'>693</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/syck/test_array.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_array.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/syck/test_boolean.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/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/syck/test_class.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_class.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/syck/test_engine_manager.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_engine_manager.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/syck/test_exception.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_exception.rb</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/test_hash.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_hash.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/syck/test_null.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/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/syck/test_omap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_omap.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/syck/test_set.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_set.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/syck/test_string.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_string.rb</a></td><td class='right'>45</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/test_struct.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_struct.rb</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/syck/test_symbol.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_symbol.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/syck/test_time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_time.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/syck/test_yaml.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_yaml.rb</a></td><td class='right'>1413</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/syck/test_yaml_properties.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_yaml_properties.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/syck/test_yamlstore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/syck/test_yamlstore.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/test/test_cmath.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_cmath.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/test_delegate.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_delegate.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_find.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_find.rb</a></td><td class='right'>226</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_ipaddr.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_ipaddr.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/test_mathn.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_mathn.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/test_mutex_m.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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_open3.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_open3.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_pp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_pp.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/test/test_prettyprint.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_prettyprint.rb</a></td><td class='right'>519</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_prime.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/test_pstore.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_pstore.rb</a></td><td class='right'>129</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_pty.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/test_securerandom.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_securerandom.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/test/test_set.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_set.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/test_shellwords.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_shellwords.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_singleton.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_singleton.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/test_syslog.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_syslog.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/test/test_tempfile.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_tempfile.rb</a></td><td class='right'>308</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_time.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_time.rb</a></td><td class='right'>407</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_timeout.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_timeout.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/test_tracer.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_tracer.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_tsort.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/test_tsort.rb</a></td><td class='right'>44</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/test4test_hideskip.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/test_assertion.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/test_hideskip.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/test_hideskip.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/testunit/test_parallel.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/test_parallel.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/testunit/test_rake_integration.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/test_rake_integration.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/testunit/tests_for_parallel/ptest_first.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/tests_for_parallel/ptest_first.rb</a></td><td class='right'>7</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/tests_for_parallel/ptest_forth.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/tests_for_parallel/ptest_second.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/tests_for_parallel/ptest_second.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/ptest_third.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/tests_for_parallel/ptest_third.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/tests_for_parallel/runner.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/testunit/tests_for_parallel/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='add'><a href='/ruby.git/diff/test/thread/test_queue.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/thread/test_queue.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/uri/test_common.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_common.rb</a></td><td class='right'>124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/uri/test_ftp.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_ftp.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/uri/test_generic.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_generic.rb</a></td><td class='right'>720</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/uri/test_http.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_http.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/uri/test_ldap.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_ldap.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/uri/test_mailto.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_mailto.rb</a></td><td class='right'>122</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/uri/test_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/uri/test_parser.rb</a></td><td class='right'>41</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/.htaccess?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/.htaccess</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/webrick/test_cgi.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_cgi.rb</a></td><td class='right'>134</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_cookie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_cookie.rb</a></td><td class='right'>131</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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_filehandler.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_filehandler.rb</a></td><td class='right'>285</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/webrick/test_httpauth.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_httpauth.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/webrick/test_httpproxy.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_httpproxy.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/test/webrick/test_httprequest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_httprequest.rb</a></td><td class='right'>411</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/webrick/test_httpserver.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_httpserver.rb</a></td><td class='right'>305</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/webrick/test_httputils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_httputils.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/webrick/test_httpversion.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_httpversion.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/webrick/test_server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/test_utils.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/webrick/utils.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/utils.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/webrick/webrick.cgi?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/webrick.cgi</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/webrick/webrick_long_filename.cgi?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/webrick/webrick_long_filename.cgi</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/err_in_callback.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/err_in_callback.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/win32ole/orig_data.csv?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_err_in_callback.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/win32ole/test_folderitem2_invokeverb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_folderitem2_invokeverb.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/win32ole/test_nil2vtempty.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_nil2vtempty.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_ole_methods.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/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='add'><a href='/ruby.git/diff/test/win32ole/test_propertyputref.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_propertyputref.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/win32ole/test_thread.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_thread.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/win32ole/test_win32ole.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole.rb</a></td><td class='right'>517</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_event.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/win32ole/test_win32ole_method.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_method.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/test/win32ole/test_win32ole_param.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_param.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/test/win32ole/test_win32ole_type.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_type.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/test/win32ole/test_win32ole_typelib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_typelib.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/win32ole/test_win32ole_variable.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_variable.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/test/win32ole/test_win32ole_variant.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_variant.rb</a></td><td class='right'>665</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_win32ole_variant_m.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_win32ole_variant_outarg.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/win32ole/test_word.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/with_different_ofs.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/with_different_ofs.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/xmlrpc/data/bug_bool.expected?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/bug_bool.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/bug_cdata.expected?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/bug_cdata.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/bug_covert.expected?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/bug_covert.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/datetime_iso8601.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/fault.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/value.expected?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/value.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/data/xml1.expected?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/xmlrpc/data/xml1.xml?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/test/xmlrpc/htpasswd?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/xmlrpc/htpasswd</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/xmlrpc/test_cookie.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/xmlrpc/test_cookie.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/xmlrpc/test_datetime.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/test_features.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/test_marshal.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/xmlrpc/test_marshal.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/xmlrpc/test_parser.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/xmlrpc/test_parser.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/xmlrpc/test_webrick_server.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/xmlrpc/test_webrick_server.rb</a></td><td class='right'>133</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/xmlrpc/webrick_testing.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/xmlrpc/webrick_testing.rb</a></td><td class='right'>43</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/zlib/test_zlib.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>test/zlib/test_zlib.rb</a></td><td class='right'>838</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/thread.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>thread.c</a></td><td class='right'>4849</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 6.0%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 94.0%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/thread_pthread.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>thread_pthread.c</a></td><td class='right'>1337</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_pthread.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>thread_pthread.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/thread_win32.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>thread_win32.c</a></td><td class='right'>787</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/thread_win32.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>thread_win32.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='upd'><a href='/ruby.git/diff/time.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>time.c</a></td><td class='right'>5124</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.7%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 93.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/timev.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>timev.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/asm_parse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/asm_parse.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/build-transcode?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/change_maker.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/compile_prelude.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/compile_prelude.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/config.guess?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/config.guess</a></td><td class='right'>1501</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/config.sub?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/config.sub</a></td><td class='right'>1705</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/tool/enc-emoji-citrus-gen.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.2%;'/><td class='rem' style='width: 0.0%;'/><td class='none' 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/enc-emoji4unicode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.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/enc-unicode.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/enc-unicode.rb</a></td><td class='right'>319</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/eval.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/eval.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/file2lastrev.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/file2lastrev.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/generic_erb.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/generic_erb.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/ifchange?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/ifchange</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/tool/insns2vm.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/insns2vm.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/tool/install-sh?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/instruction.rb</a></td><td class='right'>1393</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/tool/jisx0208.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/jisx0208.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/make-snapshot?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/make-snapshot</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/mdoc2man.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/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.6%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.4%;'/></tr></table></td></tr>
<tr><td class='mode'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/merger.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/merger.rb</a></td><td class='right'>208</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/tool/mkconfig.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/mkconfig.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/node_name.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/node_name.rb</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 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/parse.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/parse.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/tool/rbinstall.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/rbinstall.rb</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/rmdirs?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/rmdirs</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/rubytest.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/rubytest.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/runruby.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/runruby.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/strip-rdoc.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/strip-rdoc.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/tool/test/test_jisx0208.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/transcode-tblgen.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/transcode-tblgen.rb</a></td><td class='right'>1064</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/tool/update-deps?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/update-deps</a></td><td class='right'>139</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 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/vtlh.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/vtlh.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/tool/ytab.sed?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>tool/ytab.sed</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/top.sed?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>top.sed</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='add'><a href='/ruby.git/diff/transcode.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>transcode.c</a></td><td class='right'>4471</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 5.5%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 94.5%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/transcode_data.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>transcode_data.h</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/util.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>util.c</a></td><td class='right'>4366</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 4.6%;'/><td class='rem' style='width: 0.8%;'/><td class='none' style='width: 94.6%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='del'><a href='/ruby.git/diff/util.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>util.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='upd'><a href='/ruby.git/diff/variable.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>variable.c</a></td><td class='right'>2281</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 2.1%;'/><td class='rem' style='width: 0.7%;'/><td class='none' style='width: 97.2%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='upd'><a href='/ruby.git/diff/version.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>version.c</a></td><td class='right'>138</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.2%;'/><td class='rem' style='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/version.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>version.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/vm.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm.c</a></td><td class='right'>2278</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/vm_core.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_core.h</a></td><td class='right'>756</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/vm_dump.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_dump.c</a></td><td class='right'>852</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/vm_eval.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_eval.c</a></td><td class='right'>1809</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/vm_exec.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_exec.c</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/vm_exec.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_exec.h</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/vm_insnhelper.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_insnhelper.c</a></td><td class='right'>1749</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/vm_insnhelper.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_insnhelper.h</a></td><td class='right'>220</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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_method.c</a></td><td class='right'>1318</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_opts.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vm_opts.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/vsnprintf.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>vsnprintf.c</a></td><td class='right'>1287</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='del'><a href='/ruby.git/diff/win32/Makefile?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/Makefile</a></td><td class='right'>241</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/win32/Makefile.sub?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/Makefile.sub</a></td><td class='right'>1072</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/win32/README.win32?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/README.win32</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='del'><a href='/ruby.git/diff/win32/config.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/config.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/win32/configure.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/configure.bat</a></td><td class='right'>210</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/win32/dir.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/dir.h</a></td><td class='right'>46</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/file.c</a></td><td class='right'>661</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/win32/ifchange.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/ifchange.bat</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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/win32/makedirs.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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='add'><a href='/ruby.git/diff/win32/mkexports.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/mkexports.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'>-rwxr-xr-x</td><td class='del'><a href='/ruby.git/diff/win32/ntsetup.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/ntsetup.bat</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/win32/resource.rb?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/resource.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'>-rwxr-xr-x</td><td class='add'><a href='/ruby.git/diff/win32/rm.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/rm.bat</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/win32/rmall.bat?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/rmall.bat</a></td><td class='right'>6</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/rmdirs.bat</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/win32/ruby.def?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/ruby.def</a></td><td class='right'>431</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/win32/sdbm.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/sdbm.c</a></td><td class='right'>981</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/win32/sdbm.h?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/sdbm.h</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='add'><a href='/ruby.git/diff/win32/setup.mak?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/setup.mak</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/win32/stub.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/stub.c</a></td><td class='right'>42</td><td class='graph'><table summary='file diffstat' width='100%'><tr><td class='add' style='width: 0.1%;'/><td class='rem' style='width: 0.0%;'/><td class='none' style='width: 99.9%;'/></tr></table></td></tr>
<tr><td class='mode'>-rw-r--r--</td><td class='add'><a href='/ruby.git/diff/win32/win32.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/win32.c</a></td><td class='right'>5852</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/win32/winmain.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>win32/winmain.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='del'><a href='/ruby.git/diff/x68/_dtos18.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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.1%;'/><td class='none' 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/fconvert.c?h=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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=v1_9_3_326&amp;id2=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>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'>3813 files changed, 1459268 insertions, 86751 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 2474526e2a..0000000000<br/>--- a/<a href='/ruby.git/tree/.cvsignore?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>.cvsignore</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,18 +0,0 @@</div><div class='del'>-Makefile</div><div class='del'>-parse.c</div><div class='del'>-newver.rb</div><div class='del'>-ruby</div><div class='del'>-miniruby</div><div class='del'>-README.fat-patch</div><div class='del'>-config.cache</div><div class='del'>-config.h</div><div class='del'>-config.log</div><div class='del'>-config.status</div><div class='del'>-Makefile</div><div class='del'>-ppack</div><div class='del'>-archive</div><div class='del'>-*.orig</div><div class='del'>-*.rej</div><div class='del'>-*.bak</div><div class='del'>-*.sav</div><div class='del'>-*~</div><div class='head'>diff --git a/.document b/.document<br/>new file mode 100644<br/>index 0000000000..8a05d61beb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.document?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>.document</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+# This file determines which files in the</div><div class='add'>+# Ruby hierarchy will be processed by the RDoc</div><div class='add'>+# tool when it is given the top-level directory</div><div class='add'>+# as an argument</div><div class='add'>+</div><div class='add'>+# Process all the C source files</div><div class='add'>+*.c</div><div class='add'>+</div><div class='add'>+# prelude</div><div class='add'>+prelude.rb</div><div class='add'>+</div><div class='add'>+# the lib/ directory (which has its own .document file)</div><div class='add'>+</div><div class='add'>+lib</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+# and some of the ext/ directory (which has its own .document file)</div><div class='add'>+</div><div class='add'>+ext</div><div class='add'>+</div><div class='add'>+# rdoc files</div><div class='add'>+doc/*.rdoc</div><div class='head'>diff --git a/.gdbinit b/.gdbinit<br/>new file mode 100644<br/>index 0000000000..2a38da8892<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.gdbinit?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>.gdbinit</a></div><div class='hunk'>@@ -0,0 +1,757 @@</div><div class='add'>+define rp</div><div class='add'>+  if ruby_dummy_gdb_enums.special_consts</div><div class='add'>+  end</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'>+    if $id == '!' || $id == '+' || $id == '-' || $id == '*' || $id == '/' || $id == '%' || $id == '&lt;' || $id == '&gt;' || $id == '`'</div><div class='add'>+      printf "SYMBOL(:%c)\n", $id</div><div class='add'>+    else</div><div class='add'>+    if $id == idDot2</div><div class='add'>+      echo SYMBOL(:..)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idDot3</div><div class='add'>+      echo SYMBOL(:...)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idUPlus</div><div class='add'>+      echo SYMBOL(:+@)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idUMinus</div><div class='add'>+      echo SYMBOL(:-@)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idPow</div><div class='add'>+      echo SYMBOL(:**)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idCmp</div><div class='add'>+      echo SYMBOL(:&lt;=&gt;)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idLTLT</div><div class='add'>+      echo SYMBOL(:&lt;&lt;)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idLE</div><div class='add'>+      echo SYMBOL(:&lt;=)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idGE</div><div class='add'>+      echo SYMBOL(:&gt;=)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idEq</div><div class='add'>+      echo SYMBOL(:==)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idEqq</div><div class='add'>+      echo SYMBOL(:===)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idNeq</div><div class='add'>+      echo SYMBOL(:!=)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idEqTilde</div><div class='add'>+      echo SYMBOL(:=~)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idNeqTilde</div><div class='add'>+      echo SYMBOL(:!~)\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idAREF</div><div class='add'>+      echo SYMBOL(:[])\n</div><div class='add'>+    else</div><div class='add'>+    if $id == idASET</div><div class='add'>+      echo SYMBOL(:[]=)\n</div><div class='add'>+    else</div><div class='add'>+      printf "SYMBOL(%ld)\n", $id</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'>+  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'>+    echo immediate\n</div><div class='add'>+  else</div><div class='add'>+  set $flags = ((struct RBasic*)($arg0))-&gt;flags</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_NONE</div><div class='add'>+    printf "T_NONE: "</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 "T_NIL: "</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 "T_OBJECT: "</div><div class='add'>+    print (struct RObject *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_CLASS</div><div class='add'>+    printf "T_CLASS%s: ", ($flags &amp; RUBY_FL_SINGLETON) ? "*" : ""</div><div class='add'>+    print (struct RClass *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_ICLASS</div><div class='add'>+    printf "T_ICLASS: "</div><div class='add'>+    print (struct RClass *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_MODULE</div><div class='add'>+    printf "T_MODULE: "</div><div class='add'>+    print (struct RClass *)($arg0)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_FLOAT</div><div class='add'>+    printf "T_FLOAT: %.16g ", (((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 "T_STRING: "</div><div class='add'>+    set print address off</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)</div><div class='add'>+    set print address on</div><div class='add'>+    printf " bytesize:%ld ", ($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 !($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'>+  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 "T_REGEXP: "</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)</div><div class='add'>+    set print address on</div><div class='add'>+    printf " len:%ld ", ($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'>+    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 "T_ARRAY: len=%ld ", $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'>+	output/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 "T_ARRAY: len=%ld ", $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'>+	output/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 "T_FIXNUM: "</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 "T_HASH: ",</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'>+    printf "T_STRUCT: len=%ld ", \</div><div class='add'>+      (($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'>+    print (struct RStruct *)($arg0)</div><div class='add'>+    x/xw (($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)</div><div class='add'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_BIGNUM</div><div class='add'>+    printf "T_BIGNUM: sign=%d len=%ld ", \</div><div class='add'>+      (($flags &amp; RUBY_FL_USER1) != 0), \</div><div class='add'>+      (($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'>+    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'>+    x/xw (($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'>+  else</div><div class='add'>+  if ($flags &amp; RUBY_T_MASK) == RUBY_T_RATIONAL</div><div class='add'>+    printf "T_RATIONAL: "</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 "T_COMPLEX: "</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 "T_FILE: "</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 "T_TRUE: "</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 "T_FALSE: "</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 "T_DATA(%s): ", ((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 "T_DATA: "</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 "T_MATCH: "</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 "T_SYMBOL: "</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_UNDEF</div><div class='add'>+    printf "T_UNDEF: "</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_NODE</div><div class='add'>+    printf "T_NODE("</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 "T_ZOMBIE: "</div><div class='add'>+    print (struct RData *)($arg0)</div><div class='add'>+  else</div><div class='add'>+    printf "unknown: "</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'>+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 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 "u1.node: "</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 "u2.argc: "</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 "u3.node: "</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 "u1.node: "</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 "u2.node: "</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 "u3.node: "</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 "u3.value: "</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 "u2.node: "</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 "u3.node: "</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 "u1.node: "</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 "u2.node: "</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 "u1.node: "</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 "u3.entry: "</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 "u1.id: "</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 "u2.id: "</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 "u3.value: "</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 "u3.cnt: "</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 "u1.tbl: "</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 "u1.node: "</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 "u2.node: "</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 "u3.node: "</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 "u2.node: "</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 "u3.id: "</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 "u1.value: "</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 "u1.node: "</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 "u2.argc: "</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 "u1.node: "</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 "u1.node: "</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 "u2.id: "</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 "u3.node: "</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 "u1.id: "</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 "u3.node: "</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 "u1.id: "</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 "u2.id: "</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 "u1.cfunc: "</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 "u2.argc: "</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 "u1.id: "</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 "u3.node: "</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 "u1.id: "</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 "u1.value: "</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 "u1.node: "</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 "u2.node: "</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 "u3.state: "</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 "u2.value: "</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 "u2.argc: "</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 "u1.id: "</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 "u2.value: "</div><div class='add'>+  rp ($arg0).u2.value</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;bins</div><div class='add'>+    while $rb_numtable_p &amp;&amp; $rb_numtable_p &lt; $rb_numtable_tbl-&gt;bins+$rb_numtable_tbl-&gt;num_entries</div><div class='add'>+      if (st_data_t)$rb_numtable_p[0] == $rb_numtable_id</div><div class='add'>+	set $rb_numtable_key = (st_data_t)$rb_numtable_p[0]</div><div class='add'>+	set $rb_numtable_rec = (st_data_t)$rb_numtable_p[1]</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 + 2</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;bins[$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'>+  rb_numtable_entry global_symbols.id_str (ID)$arg0</div><div class='add'>+  if $rb_numtable_rec</div><div class='add'>+    rp $rb_numtable_rec</div><div class='add'>+  else</div><div class='add'>+    echo undef\n</div><div class='add'>+  end</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 $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 *)$rb_method_entry_klass-&gt;ptr-&gt;super</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'>+  call classname($arg0)</div><div class='add'>+  rb_p $</div><div class='add'>+  print *(struct RClass*)($arg0)</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 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</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_threads = (st_table*)$ps_vm-&gt;living_threads</div><div class='add'>+  if $ps_threads-&gt;entries_packed</div><div class='add'>+    set $ps_threads_i = 0</div><div class='add'>+    while $ps_threads_i &lt; $ps_threads-&gt;num_entries</div><div class='add'>+      set $ps_threads_key = (st_data_t)$ps_threads-&gt;bins[$ps_threads_i * 2]</div><div class='add'>+      set $ps_threads_val = (st_data_t)$ps_threads-&gt;bins[$ps_threads_i * 2 + 1]</div><div class='add'>+      rb_ps_thread $ps_threads_key $ps_threads_val</div><div class='add'>+      set $ps_threads_i = $ps_threads_i + 1</div><div class='add'>+    end</div><div class='add'>+  else</div><div class='add'>+    set $ps_threads_ptr = (st_table_entry*)$ps_threads-&gt;head</div><div class='add'>+    while $ps_threads_ptr</div><div class='add'>+      set $ps_threads_key = (st_data_t)$ps_threads_ptr-&gt;key</div><div class='add'>+      set $ps_threads_val = (st_data_t)$ps_threads_ptr-&gt;record</div><div class='add'>+      rb_ps_thread $ps_threads_key $ps_threads_val</div><div class='add'>+      set $ps_threads_ptr = (st_table_entry*)$ps_threads_ptr-&gt;fore</div><div class='add'>+    end</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 rb_ps_thread</div><div class='add'>+  set $ps_thread = (struct RTypedData*)$arg0</div><div class='add'>+  set $ps_thread_id = $arg1</div><div class='add'>+  print $ps_thread_th = (rb_thread_t*)$ps_thread-&gt;data</div><div class='add'>+end</div><div class='head'>diff --git a/.gitignore b/.gitignore<br/>new file mode 100644<br/>index 0000000000..57557c9c2e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.gitignore?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>.gitignore</a></div><div class='hunk'>@@ -0,0 +1,131 @@</div><div class='add'>+*-*-*.def</div><div class='add'>+*.a</div><div class='add'>+*.bak</div><div class='add'>+*.dSYM</div><div class='add'>+*.dylib</div><div class='add'>+*.inc</div><div class='add'>+*.log</div><div class='add'>+*.o</div><div class='add'>+*.orig</div><div class='add'>+*.rej</div><div class='add'>+*.sav</div><div class='add'>+*.swp</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'>+.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'>+extconf.h</div><div class='add'>+y.output</div><div class='add'>+y.tab.c</div><div class='add'>+</div><div class='add'>+# /</div><div class='add'>+/*.pc</div><div class='add'>+/*_prelude.c</div><div class='add'>+/COPYING.LIB</div><div class='add'>+/ChangeLog-1.8.0</div><div class='add'>+/ChangeLog.pre-alpha</div><div class='add'>+/ChangeLog.pre1_1</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'>+/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'>+/doc/capi</div><div class='add'>+/enc.mk</div><div class='add'>+/enc/trans/*.c</div><div class='add'>+/encdb.h</div><div class='add'>+/exts.mk</div><div class='add'>+/goruby</div><div class='add'>+/id.h</div><div class='add'>+/largefile.h</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'>+/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-man.rd.gz</div><div class='add'>+/test.rb</div><div class='add'>+/tmp</div><div class='add'>+/transdb.h</div><div class='add'>+/uncommon.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/bmx_*.rb</div><div class='add'>+</div><div class='add'>+# /enc/trans/</div><div class='add'>+/enc/trans/*.c</div><div class='add'>+</div><div class='add'>+# /ext/</div><div class='add'>+/ext/extinit.c</div><div class='add'>+</div><div class='add'>+# /ext/dl/</div><div class='add'>+/ext/dl/*.func</div><div class='add'>+</div><div class='add'>+# /ext/dl/callback/</div><div class='add'>+/ext/dl/callback/*.func</div><div class='add'>+/ext/dl/callback/callback-*.c</div><div class='add'>+/ext/dl/callback/callback.c</div><div class='add'>+</div><div class='add'>+# /ext/iconv/</div><div class='add'>+/ext/iconv/config.charset</div><div class='add'>+/ext/iconv/iconv.rb</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'>+# /ext/tk/</div><div class='add'>+/ext/tk/config_list</div><div class='add'>+</div><div class='add'>+# /spec/</div><div class='add'>+/spec/mspec</div><div class='add'>+/spec/rubyspec</div><div class='add'>+</div><div class='add'>+# /win32/</div><div class='add'>+/win32/*.ico</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>.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..286342c1cc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/.travis.yml?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>.travis.yml</a></div><div class='hunk'>@@ -0,0 +1,8 @@</div><div class='add'>+# no installation...</div><div class='add'>+before_script: autoconf</div><div class='add'>+script: "./configure &amp;&amp; make all test"</div><div class='add'>+</div><div class='add'>+branches:</div><div class='add'>+  only:</div><div class='add'>+    - trunk</div><div class='add'>+    - ruby_1_9_3</div><div class='head'>diff --git a/BSDL b/BSDL<br/>new file mode 100644<br/>index 0000000000..82725534fa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/BSDL?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>BSDL</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+Copyright (C) 1993-2010 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/COPYING b/COPYING<br/>index eeb586b392..a1f19ff99d 100644<br/>--- a/<a href='/ruby.git/tree/COPYING?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>COPYING</a><br/>+++ b/<a href='/ruby.git/tree/COPYING?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>COPYING</a></div><div class='hunk'>@@ -1,340 +1,56 @@</div><div class='del'>-		    GNU GENERAL PUBLIC LICENSE</div><div class='del'>-		       Version 2, June 1991</div><div class='add'>+Ruby is copyrighted free software by Yukihiro Matsumoto &lt;matz@netlab.jp&gt;.</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='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='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='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='ctx'> </div><div class='del'>-			    Preamble</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='ctx'> </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'>-License is intended to guarantee your freedom to share and change free</div><div class='del'>-software--to make sure the software is free for all its users.  This</div><div class='del'>-General Public License applies to most of the Free Software</div><div class='del'>-Foundation's software and to any other program whose authors commit to</div><div class='del'>-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='del'>-your programs, too.</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='ctx'> </div><div class='del'>-  When we speak of free software, we are referring to freedom, not</div><div class='del'>-price.  Our General Public Licenses are designed to make sure that you</div><div class='del'>-have the freedom to distribute copies of free software (and charge for</div><div class='del'>-this service if you wish), that you receive source code or can get it</div><div class='del'>-if you want it, that you can change the software or use pieces of it</div><div class='del'>-in new free programs; and that you know you can do these things.</div><div class='add'>+       b) use the modified software only within your corporation or</div><div class='add'>+          organization.</div><div class='ctx'> </div><div class='del'>-  To protect your rights, we need to make restrictions that forbid</div><div class='del'>-anyone to deny you these rights or to ask you to surrender the rights.</div><div class='del'>-These restrictions translate to certain responsibilities for you if you</div><div class='del'>-distribute copies of the software, or if you modify it.</div><div class='add'>+       c) give non-standard binaries non-standard names, with</div><div class='add'>+          instructions on where to get the original software distribution.</div><div class='ctx'> </div><div class='del'>-  For example, if you distribute copies of such a program, whether</div><div class='del'>-gratis or for a fee, you must give the recipients all the rights that</div><div class='del'>-you have.  You must make sure that they, too, receive or can get the</div><div class='del'>-source code.  And you must show them these terms so they know their</div><div class='del'>-rights.</div><div class='add'>+       d) make other distribution arrangements with the author.</div><div class='ctx'> </div><div class='del'>-  We protect your rights with two steps: (1) copyright the software, and</div><div class='del'>-(2) offer you this license which gives you legal permission to copy,</div><div class='del'>-distribute and/or modify the software.</div><div class='add'>+  3. You may distribute the software in object code or binary form,</div><div class='add'>+     provided that you do at least ONE of the following:</div><div class='ctx'> </div><div class='del'>-  Also, for each author's protection and ours, we want to make certain</div><div class='del'>-that everyone understands that there is no warranty for this free</div><div class='del'>-software.  If the software is modified by someone else and passed on, we</div><div class='del'>-want its recipients to know that what they have is not the original, so</div><div class='del'>-that any problems introduced by others will not reflect on the original</div><div class='del'>-authors' reputations.</div><div class='add'>+       a) distribute the binaries 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='ctx'> </div><div class='del'>-  Finally, any free program is threatened constantly by software</div><div class='del'>-patents.  We wish to avoid the danger that redistributors of a free</div><div class='del'>-program will individually obtain patent licenses, in effect making the</div><div class='del'>-program proprietary.  To prevent this, we have made it clear that any</div><div class='del'>-patent must be licensed for everyone's free use or not licensed at all.</div><div class='add'>+       b) accompany the distribution with the machine-readable source of</div><div class='add'>+	  the software.</div><div class='ctx'> </div><div class='del'>-  The precise terms and conditions for copying, distribution and</div><div class='del'>-modification follow.</div><div class='del'>-</div><div class='del'>-		    GNU GENERAL PUBLIC LICENSE</div><div class='del'>-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</div><div class='add'>+       c) give non-standard binaries non-standard names, with</div><div class='add'>+          instructions on where to get the original software distribution.</div><div class='ctx'> </div><div class='del'>-  0. This License applies to any program or other work which contains</div><div class='del'>-a notice placed by the copyright holder saying it may be distributed</div><div class='del'>-under the terms of this General Public License.  The "Program", below,</div><div class='del'>-refers to any such program or work, and a "work based on the Program"</div><div class='del'>-means either the Program or any derivative work under copyright law:</div><div class='del'>-that is to say, a work containing the Program or a portion of it,</div><div class='del'>-either verbatim or with modifications and/or translated into another</div><div class='del'>-language.  (Hereinafter, translation is included without limitation in</div><div class='del'>-the term "modification".)  Each licensee is addressed as "you".</div><div class='add'>+       d) make other distribution arrangements with the author.</div><div class='ctx'> </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 the Program is not restricted, and the output from the Program</div><div class='del'>-is covered only if its contents constitute a work based on the</div><div class='del'>-Program (independent of having been made by running the Program).</div><div class='del'>-Whether that is true depends on what the Program does.</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).  But some files in the distribution</div><div class='add'>+     are not written by the author, so that they are not under these terms.</div><div class='ctx'> </div><div class='del'>-  1. You may copy and distribute verbatim copies of the Program's</div><div class='del'>-source code as you receive it, in any medium, provided that you</div><div class='del'>-conspicuously and appropriately publish on each copy an appropriate</div><div class='del'>-copyright notice and disclaimer of warranty; keep intact all the</div><div class='del'>-notices that refer to this License and to the absence of any warranty;</div><div class='del'>-and give any other recipients of the Program a copy of this License</div><div class='del'>-along with the Program.</div><div class='add'>+     For the list of those files and their copying conditions, see the</div><div class='add'>+     file LEGAL.</div><div class='ctx'> </div><div class='del'>-You may charge a fee for the physical act of transferring a copy, and</div><div class='del'>-you may at your option offer warranty protection in exchange for a fee.</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='ctx'> </div><div class='del'>-  2. You may modify your copy or copies of the Program or any portion</div><div class='del'>-of it, thus forming a work based on the Program, 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) You must cause the modified files 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'>-    b) You must cause any work that you distribute or publish, that in</div><div class='del'>-    whole or in part contains or is derived from the Program or any</div><div class='del'>-    part thereof, to be licensed as a whole at no charge to all third</div><div class='del'>-    parties under the terms of this License.</div><div class='del'>-</div><div class='del'>-    c) If the modified program normally reads commands interactively</div><div class='del'>-    when run, you must cause it, when started running for such</div><div class='del'>-    interactive use in the most ordinary way, to print or display an</div><div class='del'>-    announcement including an appropriate copyright notice and a</div><div class='del'>-    notice that there is no warranty (or else, saying that you provide</div><div class='del'>-    a warranty) and that users may redistribute the program under</div><div class='del'>-    these conditions, and telling the user how to view a copy of this</div><div class='del'>-    License.  (Exception: if the Program itself is interactive but</div><div class='del'>-    does not normally print such an announcement, your work based on</div><div class='del'>-    the Program is not required to print an announcement.)</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 Program,</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 Program, 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 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 Program.</div><div class='del'>-</div><div class='del'>-In addition, mere aggregation of another work not based on the Program</div><div class='del'>-with the Program (or with a work based on the Program) 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 copy and distribute the Program (or a work based on it,</div><div class='del'>-under Section 2) in object code or executable form under the terms of</div><div class='del'>-Sections 1 and 2 above provided that you also do one of the following:</div><div class='del'>-</div><div class='del'>-    a) Accompany it with the complete corresponding machine-readable</div><div class='del'>-    source code, which must be distributed under the terms of Sections</div><div class='del'>-    1 and 2 above on a medium customarily used for software interchange; or,</div><div class='del'>-</div><div class='del'>-    b) Accompany it with a written offer, valid for at least three</div><div class='del'>-    years, to give any third party, for a charge no more than your</div><div class='del'>-    cost of physically performing source distribution, a complete</div><div class='del'>-    machine-readable copy of the corresponding source code, to be</div><div class='del'>-    distributed under the terms of Sections 1 and 2 above on a medium</div><div class='del'>-    customarily used for software interchange; or,</div><div class='del'>-</div><div class='del'>-    c) Accompany it with the information you received as to the offer</div><div class='del'>-    to distribute corresponding source code.  (This alternative is</div><div class='del'>-    allowed only for noncommercial distribution and only if you</div><div class='del'>-    received the program in object code or executable form with such</div><div class='del'>-    an offer, in accord with Subsection b above.)</div><div class='del'>-</div><div class='del'>-The source code for a work means the preferred form of the work for</div><div class='del'>-making modifications to it.  For an executable work, complete source</div><div class='del'>-code means all the source code for all modules it contains, plus any</div><div class='del'>-associated interface definition files, plus the scripts used to</div><div class='del'>-control compilation and installation of the executable.  However, as a</div><div class='del'>-special exception, the source code distributed need not include</div><div class='del'>-anything that is normally distributed (in either source or binary</div><div class='del'>-form) with the major components (compiler, kernel, and so on) of the</div><div class='del'>-operating system on which the executable runs, unless that component</div><div class='del'>-itself accompanies the executable.</div><div class='del'>-</div><div class='del'>-If distribution of executable or object code is made by offering</div><div class='del'>-access to copy from a designated place, then offering equivalent</div><div class='del'>-access to copy the source code from the same place counts as</div><div class='del'>-distribution of 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'>-  4. You may not copy, modify, sublicense, or distribute the Program</div><div class='del'>-except as expressly provided under this License.  Any attempt</div><div class='del'>-otherwise to copy, modify, sublicense or distribute the Program is</div><div class='del'>-void, and will automatically terminate your rights under this License.</div><div class='del'>-However, parties who have received copies, or rights, from you under</div><div class='del'>-this License will not have their licenses terminated so long as such</div><div class='del'>-parties remain in full compliance.</div><div class='del'>-</div><div class='del'>-  5. 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 Program 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 Program (or any work based on the</div><div class='del'>-Program), 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 Program or works based on it.</div><div class='del'>-</div><div class='del'>-  6. Each time you redistribute the Program (or any work based on the</div><div class='del'>-Program), the recipient automatically receives a license from the</div><div class='del'>-original licensor to copy, distribute or modify the Program subject to</div><div class='del'>-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 to</div><div class='del'>-this License.</div><div class='del'>-</div><div class='del'>-  7. 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 Program at all.  For example, if a patent</div><div class='del'>-license would not permit royalty-free redistribution of the Program 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 Program.</div><div class='del'>-</div><div class='del'>-If any portion of this section is held invalid or unenforceable under</div><div class='del'>-any particular circumstance, the balance of the section is intended to</div><div class='del'>-apply and the section as a whole is intended to apply in other</div><div class='del'>-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'>-  8. If the distribution and/or use of the Program 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 Program under this License</div><div class='del'>-may add an explicit geographical distribution limitation excluding</div><div class='del'>-those countries, so that distribution is permitted only in or among</div><div class='del'>-countries not thus excluded.  In such case, this License incorporates</div><div class='del'>-the limitation as if written in the body of this License.</div><div class='del'>-</div><div class='del'>-  9. The Free Software Foundation may publish revised and/or new versions</div><div class='del'>-of the General Public License from time to time.  Such new versions will</div><div class='del'>-be similar in spirit to the present version, but may differ in detail to</div><div class='del'>-address new problems or concerns.</div><div class='del'>-</div><div class='del'>-Each version is given a distinguishing version number.  If the Program</div><div class='del'>-specifies a version number of this License which applies to it and "any</div><div class='del'>-later version", you have the option of following the terms and conditions</div><div class='del'>-either of that version or of any later version published by the Free</div><div class='del'>-Software Foundation.  If the Program does not specify a version number of</div><div class='del'>-this License, you may choose any version ever published by the Free Software</div><div class='del'>-Foundation.</div><div class='del'>-</div><div class='del'>-  10. If you wish to incorporate parts of the Program into other free</div><div class='del'>-programs whose distribution conditions are different, write to the author</div><div class='del'>-to ask for permission.  For software which is copyrighted by the Free</div><div class='del'>-Software Foundation, write to the Free Software Foundation; we sometimes</div><div class='del'>-make exceptions for this.  Our decision will be guided by the two goals</div><div class='del'>-of preserving the free status of all derivatives of our free software and</div><div class='del'>-of promoting the sharing and reuse of software generally.</div><div class='del'>-</div><div class='del'>-			    NO WARRANTY</div><div class='del'>-</div><div class='del'>-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</div><div class='del'>-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN</div><div class='del'>-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</div><div class='del'>-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</div><div class='del'>-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</div><div class='del'>-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS</div><div class='del'>-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE</div><div class='del'>-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</div><div class='del'>-REPAIR OR CORRECTION.</div><div class='del'>-</div><div class='del'>-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</div><div class='del'>-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</div><div class='del'>-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</div><div class='del'>-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</div><div class='del'>-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</div><div class='del'>-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</div><div class='del'>-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</div><div class='del'>-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</div><div class='del'>-POSSIBILITY OF SUCH 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 Programs</div><div class='del'>-</div><div class='del'>-  If you develop a new program, and you want it to be of the greatest</div><div class='del'>-possible use to the public, the best way to achieve this is to make it</div><div class='del'>-free software which everyone can redistribute and change under these terms.</div><div class='del'>-</div><div class='del'>-  To do so, attach the following notices to the program.  It is safest</div><div class='del'>-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</div><div class='del'>-the "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 program's name and a brief idea of what it does.&gt;</div><div class='del'>-    Copyright (C) 19yy  &lt;name of author&gt;</div><div class='del'>-</div><div class='del'>-    This program 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, Boston, MA  02111-1307  USA</div><div class='del'>-</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'>-If the program is interactive, make it output a short notice like this</div><div class='del'>-when it starts in an interactive mode:</div><div class='del'>-</div><div class='del'>-    Gnomovision version 69, Copyright (C) 19yy name of author</div><div class='del'>-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</div><div class='del'>-    This is free software, and you are welcome to redistribute it</div><div class='del'>-    under certain conditions; type `show c' for details.</div><div class='del'>-</div><div class='del'>-The hypothetical commands `show w' and `show c' should show the appropriate</div><div class='del'>-parts of the General Public License.  Of course, the commands you use may</div><div class='del'>-be called something other than `show w' and `show c'; they could even be</div><div class='del'>-mouse-clicks or menu items--whatever suits your program.</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 program, 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 program</div><div class='del'>-  `Gnomovision' (which makes passes at compilers) written by James Hacker.</div><div class='del'>-</div><div class='del'>-  &lt;signature of Ty Coon&gt;, 1 April 1989</div><div class='del'>-  Ty Coon, President of Vice</div><div class='del'>-</div><div class='del'>-This General Public License does not permit incorporating your program into</div><div class='del'>-proprietary programs.  If your program is a subroutine library, you may</div><div class='del'>-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='del'>-Public License instead of this License.</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/COPYING.ja b/COPYING.ja<br/>new file mode 100644<br/>index 0000000000..5b5b91c149<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/COPYING.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>COPYING.ja</a></div><div class='hunk'>@@ -0,0 +1,51 @@</div><div class='add'>+$BK\%W%m%0%i%`$O%U%j!&lt;%=%U%H%&amp;%'%"$G$9!%(B2-clause BSDL</div><div class='add'>+$B$^$?$O0J2&lt;$K&lt;($9&gt;r7o$GK\%W%m%0%i%`$r:FG[I[$G$-$^$9(B</div><div class='add'>+2-clause BSDL$B$K$D$$$F$O(BBSDL$B%U%!%$%k$r;2&gt;H$7$F2&lt;$5$$!%(B</div><div class='add'>+</div><div class='add'>+  1. $BJ#@=$O@)8B$J$/&lt;+M3$G$9!%(B</div><div class='add'>+</div><div class='add'>+  2. $B0J2&lt;$N&gt;r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$N%=!&lt;%9$r(B</div><div class='add'>+     $B&lt;+M3$KJQ99$G$-$^$9!%(B</div><div class='add'>+</div><div class='add'>+     (a) $B%M%C%H%K%e!&lt;%:$K%]%9%H$7$?$j!$:n&lt;T$KJQ99$rAwIU$9$k(B</div><div class='add'>+         $B$J$I$NJ}K!$G!$JQ99$r8x3+$9$k!%(B</div><div class='add'>+</div><div class='add'>+     (b) $BJQ99$7$?K\%W%m%0%i%`$r&lt;+J,$N=jB0$9$kAH?%FbIt$@$1$G(B</div><div class='add'>+         $B;H$&amp;!%(B</div><div class='add'>+</div><div class='add'>+     (c) $BJQ99E@$rL@&lt;($7$?$&amp;$(!$%=%U%H%&amp;%'%"$NL&gt;A0$rJQ99$9$k!%(B</div><div class='add'>+         $B$=$N%=%U%H%&amp;%'%"$rG[I[$9$k;~$K$OJQ99A0$NK\%W%m%0%i(B</div><div class='add'>+         $B%`$bF1;~$KG[I[$9$k!%$^$?$OJQ99A0$NK\%W%m%0%i%`$N%=!&lt;(B</div><div class='add'>+         $B%9$NF~&lt;jK!$rL@&lt;($9$k!%(B</div><div class='add'>+</div><div class='add'>+     (d) $B$=$NB&gt;$NJQ99&gt;r7o$r:n&lt;T$H9g0U$9$k!%(B</div><div class='add'>+</div><div class='add'>+  3. $B0J2&lt;$N&gt;r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$r%3%s%Q%$(B</div><div class='add'>+     $B%k$7$?%*%V%8%'%/%H%3!&lt;%I$d&lt;B9T7A&lt;0$G$bG[I[$G$-$^$9!%(B</div><div class='add'>+</div><div class='add'>+     (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='add'>+         $B%=!&lt;%9$NF~&lt;jK!$rL@&lt;($9$k!%(B</div><div class='add'>+</div><div class='add'>+     (b) $B5!3#2DFI$J%=!&lt;%9%3!&lt;%I$rE:IU$9$k!%(B</div><div class='add'>+</div><div class='add'>+     (c) $BJQ99$r9T$C$?%P%$%J%j$OL&gt;A0$rJQ99$7$?$&amp;$(!$%*%j%8%J(B</div><div class='add'>+         $B%k$N%=!&lt;%9%3!&lt;%I$NF~&lt;jK!$rL@&lt;($9$k!%(B</div><div class='add'>+</div><div class='add'>+     (d) $B$=$NB&gt;$NG[I[&gt;r7o$r:n&lt;T$H9g0U$9$k!%(B</div><div class='add'>+</div><div class='add'>+  4. $BB&gt;$N%W%m%0%i%`$X$N0zMQ$O$$$+$J$kL\E*$G$"$l&lt;+M3$G$9!%$?(B</div><div class='add'>+     $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='add'>+     $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'>+</div><div class='add'>+     $B$=$l$i%U%!%$%k$N0lMw$H$=$l$&gt;$l$NG[I[&gt;r7o$J$I$KIU$$$F$O(B</div><div class='add'>+     LEGAL$B%U%!%$%k$r;2&gt;H$7$F$/$@$5$$!%(B</div><div class='add'>+</div><div class='add'>+  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='add'>+     $B%`$+$i$N=PNO$N8"Mx$OK\%W%m%0%i%`$N:n&lt;T$G$O$J$/!$$=$l$&gt;(B</div><div class='add'>+     $B$l$NF~=PNO$r@8@.$7$??M$KB0$7$^$9!%$^$?!$K\%W%m%0%i%`$K(B</div><div class='add'>+     $BAH$_9~$^$l$k$?$a$N3HD%%i%$%V%i%j$K$D$$$F$bF1MM$G$9!%(B</div><div class='add'>+</div><div class='add'>+  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='add'>+     $B$9$k0U;V$O$"$j$^$9$,!$%W%m%0%i%`&lt;+?H$N%P%0$"$k$$$OK\%W(B</div><div class='add'>+     $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='add'>+     $BG$$r;}$A$^$;$s!%(B</div><div class='head'>diff --git a/ChangeLog b/ChangeLog<br/>index 14bc362df3..b34ed8cda1 100644<br/>--- a/<a href='/ruby.git/tree/ChangeLog?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ChangeLog</a><br/>+++ b/<a href='/ruby.git/tree/ChangeLog?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>ChangeLog</a></div><div class='hunk'>@@ -1,2632 +1,16435 @@</div><div class='del'>-Mon Nov  9 17:55:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Nov 10 00:37:02 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1c7 released.</div><div class='add'>+	* siphash.h: check configure macros before include newer headers.</div><div class='ctx'> </div><div class='del'>-Fri Nov  6 19:25:27 1998  Takao KAWAMURA  &lt;kawamura@ike.tottori-u.ac.jp&gt;</div><div class='add'>+Sat Nov 10 00:37:02 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* sample/ruby-mode.el: font-lock patch.</div><div class='add'>+	* siphash.c (sip_init_state): use union to suppress warnings by gcc</div><div class='add'>+	  4.7.</div><div class='ctx'> </div><div class='del'>-Thu Nov  5 15:42:22 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Nov 10 00:37:02 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* sample/README, lib/README: simple description for each file.</div><div class='add'>+	* random.c (rb_memhash): use siphash.</div><div class='ctx'> </div><div class='del'>-Wed Nov  4 18:14:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Nov  9 16:17:09 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (assign): attribute assignment should be called as public.</div><div class='add'>+	* file.c (append_fspath): revert a part of r37562.</div><div class='ctx'> </div><div class='del'>-Mon Nov  2 18:24:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* file.c (rb_file_expand_path_internal): ditto.</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_create): was accessing modified status.</div><div class='add'>+	* file.c (rb_file_expand_path_internal): ignore the encoding of the</div><div class='add'>+	  given path name and use filesystem encoding, except when the result</div><div class='add'>+	  is 8bit range and the filesystem encoding is US-ASCII.</div><div class='add'>+	  [ruby-dev:39393] [Bug #2154]</div><div class='ctx'> </div><div class='del'>-Sun Nov  1 01:18:52 1998  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+Fri Nov  9 16:15:50 2012  CHIKANAGA Tomoyuki  &lt;nagachika@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* gc.c (xrealloc): size 0 needs round up to 1.</div><div class='add'>+	* test/csv/test_features.rb: add require for Tempfile.</div><div class='add'>+	* test/csv/test_serialization.rb: ditto.</div><div class='ctx'> </div><div class='del'>-Sat Oct 31 23:18:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Nov  9 13:47:45 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (rb_str_split_method): negative LIMIT means number of</div><div class='del'>-	  splitted fields are unlimited, as in perl.</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_s_codepage_changed):</div><div class='add'>+	  FileSystemObject only supports ANSI or UTF-16LE encoding.</div><div class='add'>+	  Patch by bosko (Bosko Ivanisevic) [ruby-trunk - Bug #6650]</div><div class='ctx'> </div><div class='del'>-	* string.c (rb_str_split_method): if LIMIT is unspecified,</div><div class='del'>-	  trailing null fields are stripped.</div><div class='add'>+Fri Nov  9 13:16:16 2012  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='ctx'> </div><div class='del'>-Sat Oct 31 04:16:14 1998  Inaba Hiroto   &lt;inaba@st.rim.or.jp&gt;</div><div class='add'>+	* bignum.c (bigmul0): enable big_mul_toom3.</div><div class='add'>+	  [ruby-core:48552] [Bug #7242]</div><div class='ctx'> </div><div class='del'>-	* string.c (str_aref): regexp index SEGVed.</div><div class='add'>+	* bignum.c (bigmul1_toom3): fix incorrect calculation.</div><div class='add'>+	  the patch is made by Heesob Park.</div><div class='add'>+	  [ruby-core:48552] [Bug #7242]</div><div class='ctx'> </div><div class='del'>-Fri Oct 30 14:33:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Nov  9 13:16:16 2012  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_match): returns nil for unmatch.</div><div class='add'>+	* bignum.c (bigmul0): disable big_mul_toom3 temporalily.</div><div class='add'>+	  [ruby-core:48552] [Bug #7242]</div><div class='ctx'> </div><div class='del'>-	* dir.c (dir_entries): new method.</div><div class='add'>+	* test/ruby/test_bignum.rb (test_mul_large_numbers):</div><div class='add'>+	  add a test for bigmul1_toom3 suggested in [Bug #7242].</div><div class='ctx'> </div><div class='del'>-	* eval.c (block_pass): do not push block, substitute it.</div><div class='add'>+Thu Nov  8 17:37:54 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Oct 28 11:37:42 1998  TAMITO  &lt;tommy@valley.ne.jp&gt;</div><div class='add'>+	* file.c (append_fspath): filesystem encoding is prior to the encoding</div><div class='add'>+	  of argument.</div><div class='ctx'> </div><div class='del'>-	* io.c (f_select): fd number comparison bug.</div><div class='add'>+	* file.c (rb_file_expand_path_internal, EXPAND_PATH_BUFFER): ignore</div><div class='add'>+	  the encoding of the given path name, use filesystem encoding always</div><div class='add'>+	  instead.  [ruby-dev:39393] [Bug #2154]</div><div class='ctx'> </div><div class='del'>-Sun Oct 25 22:59:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: removed 2.0 spec tests.</div><div class='ctx'> </div><div class='del'>-	* regex.c (set_list_bits): was using wrong offset.</div><div class='add'>+Thu Nov  8 17:33:53 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Oct 19 11:50:00 1998  Motoyuki Kasahara  &lt;m-kasahr@sra.co.jp&gt;</div><div class='add'>+	* ext/zlib/extconf.rb: Recognize zlibwapi as linking library.</div><div class='add'>+	  Patch by Daniel Berger.</div><div class='ctx'> </div><div class='del'>-	* ext/extmk.rb: Load '@top_srcdir@/lib/find.rb', not</div><div class='del'>-	'../lib/find.rb'.</div><div class='del'>-	* ext/extmk.rb: Distinguish between `top_srcdir' and `topdir'.</div><div class='del'>-	* Makefile.in (CFLAGS): Add `-I.'.</div><div class='del'>-	* Makefile.in (lex.c): Give `@srcdir@/keywords' to gperf, not</div><div class='del'>-	`keywords'.</div><div class='del'>-	* instruby.rb: Use `CONFIG["bindir"]', instead of `prefix + "/bin"'.</div><div class='del'>-	* instruby.rb: Use `CONFIG["libdir"]', instead of `prefix + "/lib"'.</div><div class='del'>-	* instruby.rb Use `CONFIG["mandir"]', instead of `prefix + "/man"'.</div><div class='del'>-	* instruby.rb (wdir): Add the variable to preserve the current</div><div class='del'>-	working directory.</div><div class='del'>-	* instruby.rb: Chdir to wdir before install `config.h' and</div><div class='del'>-	`rbconfig.rb'.</div><div class='add'>+	  [ruby-core:44979] [Feature #6421]</div><div class='ctx'> </div><div class='del'>-Mon Oct 19 10:07:01 1998  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+Thu Nov  8 16:17:54 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): reduce recursive calls to rb_eval().</div><div class='add'>+	* test/ruby/test_dir_m17n.rb: remove a garbage.</div><div class='ctx'> </div><div class='del'>-Thu Oct 15 13:54:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Nov  8 15:22:09 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (arg): local variabls can be accessed within right side</div><div class='del'>- 	  expression in assignment, notably in blocks.</div><div class='add'>+	* test/ruby/test_dir_m17n.rb: sorry, typo.</div><div class='ctx'> </div><div class='del'>-Mon Oct 12 13:27:15 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Nov  8 14:50:02 2012  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_call0): check stack depth more frequently.</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: setting WIN32OLE.locale</div><div class='add'>+	  to pass some assertion.  Thanks to Hiroshi Shirosaki.</div><div class='add'>+	  [ruby-core:46873][Bug #6814]</div><div class='ctx'> </div><div class='del'>-Fri Oct  9 17:01:14 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Nov  8 14:46:17 2012  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (read_all): read() returns "" at immediate EOF.</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_s_codepage_changed):</div><div class='add'>+	  FileSystemObject only supports ANSI or UTF-16LE encoding.</div><div class='add'>+	  Patch by h.shirosaki (Hiroshi Shirosaki) [ruby-trunk - Bug #6650]</div><div class='ctx'> </div><div class='del'>-	* io.c (io_read): read(nil) read all until EOF.</div><div class='ctx'> </div><div class='del'>-Thu Oct  8 13:32:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Nov  8 14:43:17 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* time.c (time_dump): marshal can dump Time object now.</div><div class='add'>+	* test/ruby/test_dir_m17n.rb: refactoring. RE should be in the left side</div><div class='add'>+	  of the =~ operator, and compare the result with nil is meaningless.</div><div class='ctx'> </div><div class='del'>-	* marshal.c (Init_marshal): rename marshal methods `_dump_to' to</div><div class='del'>- 	  `_dump', `_load_from' to `_load'.</div><div class='add'>+Thu Nov  8 14:43:17 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (rb_intern): "+=".intern generates proper symbol.</div><div class='add'>+	* test/ruby/test_dir_m17n.rb (create_and_check_raw_file_name): add new</div><div class='add'>+	  helper method to ease encoding testing. Patch by Oleg Sukhodolsky.</div><div class='add'>+	  [ruby-core:46589][Bug #6765]</div><div class='ctx'> </div><div class='del'>-Mon Oct  5 18:31:53 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_dir_m17n.rb (test_filename_extutf8): use filesystem</div><div class='add'>+	  encoding when reading entries and comparing.</div><div class='ctx'> </div><div class='del'>-	* version 1.1c6 released.</div><div class='add'>+	* test/ruby/test_dir_m17n.rb (test_filename_utf8_raw_name): removed.</div><div class='ctx'> </div><div class='del'>-Fri Oct  2 14:22:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_dir_m17n.rb (test_filename_utf8_raw_jp_name): split test.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): `/\s*(--)$/ =~ "- --"' did not match,</div><div class='del'>-	  because of wrong optimize condition.</div><div class='add'>+Thu Nov  8 14:16:53 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Oct  1 01:55:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (MakeMakefile#timestamp_file): use .-. instead of !, a</div><div class='add'>+	  special character of NMAKE and BSD make.  [Bug #7265]</div><div class='ctx'> </div><div class='del'>-	* parse.y (rb_intern): should not raise exceptions.</div><div class='add'>+Thu Nov  8 14:16:53 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): symbol like `:foo?=' should not be allowed.</div><div class='add'>+	* lib/mkmf.rb (MakeMakefile#timestamp_file): use ! instead of %, a GNU</div><div class='add'>+	  make special character.</div><div class='ctx'> </div><div class='del'>-	* ext/extmk.rb.in: makes *.a for static link modules.</div><div class='add'>+Thu Nov  8 14:16:53 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Sep 25 12:01:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (create_makefile): use timestamp for destination</div><div class='add'>+	  directories to make them before making or copying files there.</div><div class='add'>+	  [ruby-dev:46067] [Bug #6904]</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): `@foo!' should be an error.</div><div class='add'>+Thu Nov  8 14:13:53 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Sep 24 14:55:06 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+	* configure.in (visibility_option): visibility attribute is not</div><div class='add'>+	  available before GCC 4, so do not use -fvisibility option in that</div><div class='add'>+	  case.  [ruby-core:48147] [Bug #7205]</div><div class='ctx'> </div><div class='del'>-	* ext/etc/etc.c (Init_etc): wrong field definition.</div><div class='add'>+Thu Nov  8 14:11:49 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Sep 17 17:09:05 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* vm.c (rb_vm_jump_tag_but_local_jump): pass through thrown objects.</div><div class='add'>+	  [ruby-dev:46234] [Bug #7185]</div><div class='ctx'> </div><div class='del'>-	* io.c (io_reopen): was creating FILE* for wrong fd.</div><div class='add'>+	* vm_eval.c (rb_eval_cmd): if state is non-zero, val should be nil and</div><div class='add'>+	  rb_vm_jump_tag_but_local_jump() just jump tag.</div><div class='ctx'> </div><div class='del'>-Tue Sep 15 05:28:11 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+Thu Nov  8 14:09:18 2012  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): forgot to fixup for the pattern</div><div class='del'>- 	  like (?=(A)|(B)).</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_add),</div><div class='add'>+	  test/bigdecimal/test_bigdecimal.rb:</div><div class='add'>+	  need to specify precision for converting Rational and Float.</div><div class='add'>+	  [ruby-core:48045] [Bug #7176]</div><div class='ctx'> </div><div class='del'>-Mon Sep 14 14:42:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Nov  8 14:05:31 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): beginning and end of the string, do not</div><div class='del'>-	  automatically match `\b'.</div><div class='add'>+	* win32/win32.c (has_redirection): should use shell (cmd.exe) when</div><div class='add'>+	  the commandline containts '&amp;'.</div><div class='add'>+	  reported by Roger Pack at [ruby-core:47912] [Bug #7143], and</div><div class='add'>+	  patched by Heesob Park at [ruby-core:47931].</div><div class='ctx'> </div><div class='del'>-	* string.c (scan_once): comsume at leaset on character.</div><div class='add'>+Fri Oct 26 17:22:18 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): wrong behavior for negative range.</div><div class='add'>+	* file.c (append_fspath): need to set the encoding to result always.</div><div class='ctx'> </div><div class='del'>-Sat Sep 12 21:21:26 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+Fri Oct 26 11:03:46 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): range value should be maintained.</div><div class='add'>+	* file.c (rb_enc_path_next, rb_enc_path_skip_prefix)</div><div class='add'>+	  (rb_enc_path_last_separator, rb_enc_path_end)</div><div class='add'>+	  (ruby_enc_find_basename, ruby_enc_find_extname): encoding-aware</div><div class='add'>+	  path handling functions.</div><div class='ctx'> </div><div class='del'>-Thu Sep 10 10:55:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* file.c (rb_home_dir, file_expand_path, rb_realpath_internal)</div><div class='add'>+	  (rb_file_s_basename, rb_file_dirname, rb_file_s_extname)</div><div class='add'>+	  (rb_file_join): should respect the encodings of arguments than</div><div class='add'>+	  file system encoding.  [ruby-dev:45145] [Bug #5919]</div><div class='ctx'> </div><div class='del'>-	* parse.y (backref_error): yyerror does not understand formats.</div><div class='add'>+	* dir.c (check_dirname, ruby_glob0): ditto.</div><div class='ctx'> </div><div class='del'>-Tue Sep  8 18:05:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/pathname/pathname.c (path_sub_ext): ditto.</div><div class='ctx'> </div><div class='del'>-	* version 1.1c5 released.</div><div class='add'>+Fri Oct 26 11:03:46 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Sep  8 10:03:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* util.c, include/ruby/util.h (ruby_add_suffix): remove the function.</div><div class='add'>+	  [Bug #5153] [ruby-core:38736]</div><div class='ctx'> </div><div class='del'>-	* string.c (str_each_line): wrong line splitting with newline at</div><div class='del'>- 	  top of the string.</div><div class='add'>+	* io.c (argf_next_argv): remove the call of above function.</div><div class='ctx'> </div><div class='del'>-	* string.c: non bang methods return copied string.</div><div class='add'>+	* ext/-test-/add_suffix, test/-ext-/test_add_suffix.rb: remove the test</div><div class='add'>+	  extension module because this is only for testsing ruby_add_suffix().</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_END): needed to initialize frame-&gt;argc;</div><div class='add'>+	* LEGAL: remove the mention about a part of util.c, because now we</div><div class='add'>+	  removed the part.</div><div class='ctx'> </div><div class='del'>-Fri Sep  4 11:27:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (argf_next_argv): now the new filename is not guranteed to</div><div class='add'>+	  use, so should check the return value of rename(2).</div><div class='ctx'> </div><div class='del'>-	* bignum.c (bigadd): proper sign combination.</div><div class='add'>+	* test/ruby/test_argf.rb (TestArgf#test_inplace_rename_impossible):</div><div class='add'>+	  now we expect same result with other platforms on no_safe_rename</div><div class='add'>+	  platforms (=Windows).</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): wrong return value for \A.</div><div class='add'>+Thu Oct 25 18:16:25 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Sep  3 14:08:14 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/rubygems/installer.rb (check_that_user_bin_dir_is_in_path):</div><div class='add'>+	  test_generate_bin_bindir_with_user_install_warning(TestGemInstaller)</div><div class='add'>+	  fails on Windows with msys bash. It makes comparing paths</div><div class='add'>+	  case-insensitive.</div><div class='add'>+	  pick from upstream to fix a failure of test-all [ruby-core:47711]</div><div class='add'>+	  https://github.com/rubygems/rubygems/commit/c474edb2f3704206f04da1c8c6cf9fb079d84abe</div><div class='ctx'> </div><div class='del'>-	* version 1.1c4 released.</div><div class='add'>+Thu Oct 25 17:55:01 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Sep  1 10:47:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/etc/test_etc.rb (TestEtc#test_getpwuid): `s' is never set to nil.</div><div class='ctx'> </div><div class='del'>-	* regex.c (slow_search): do not compare llen and blen.  llen may</div><div class='del'>-	  be longer than blen, if little contains 0xff.</div><div class='add'>+Thu Oct 25 16:59:17 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (mbctab_euc): set 0x8e as multibyte character.</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: fix test introduced in r36811 for</div><div class='add'>+	  posix environments where HOME is not defined.  [ruby-core:47322]</div><div class='ctx'> </div><div class='del'>-	* string.c (str_inspect): mask character for octal output.</div><div class='add'>+Thu Oct 25 16:59:17 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Aug 31 15:32:41 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* configure.in (mingw): add shlwapi to the list of dependency</div><div class='add'>+	  libs for Windows.</div><div class='add'>+	* win32/Makefile.sub (EXTSOLIBS): ditto.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): use calculated offset if exactn is the</div><div class='del'>-	  first opcode in the compiled regexp.</div><div class='add'>+	* internal.h: declare internal functions rb_w32_init_file,</div><div class='add'>+	  rb_file_expand_path_internal and rb_file_expand_path_fast.</div><div class='ctx'> </div><div class='del'>-	* regex.c (bm_search): use Boyer-Moore search for simple search.</div><div class='add'>+	* file.c (Init_File): invoke Windows initialization rb_w32_init_file</div><div class='ctx'> </div><div class='del'>-	* regex.c (must_instr): wrong length check if pattern includes</div><div class='del'>-	  byte escape by 0xff.</div><div class='add'>+	* win32/file.c (rb_file_load_path_internal): new function.</div><div class='add'>+	  Windows-specific implementation that replaces file_expand_path.</div><div class='add'>+	  [Bug #6836][ruby-core:46996]</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): need not to check current_mbctype.</div><div class='add'>+	* win32/file.c (rb_w32_init_file): new function. Initialize codepage</div><div class='add'>+	  cache for faster conversion encodings lookup.</div><div class='ctx'> </div><div class='del'>-Sat Aug 29 16:31:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* file.c (file_expand_path): rename to rb_file_expand_path_internal.</div><div class='add'>+	  Conditionally exclude from Windows.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_check_safe_str): avoid calling rb_id2name() in normal </div><div class='del'>-	  cases to speed-up.</div><div class='add'>+	* file.c (rb_file_expand_path_fast): new function. delegates to</div><div class='add'>+	  rb_file_expand_path_internal without performing a hit to the</div><div class='add'>+	  filesystem.</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_raise): do not save context of terminated thread.</div><div class='add'>+	* file.c (file_expand_path_1): use rb_file_expand_path_internal without</div><div class='add'>+	  path expansion (used by require).</div><div class='add'>+	* file.c (rb_find_file_ext_safe): ditto.</div><div class='add'>+	* file.c (rb_find_file_safe): ditto.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): mask \nnn over 256.</div><div class='add'>+	* load.c (rb_get_expanded_load_path): use rb_file_expand_path_fast.</div><div class='add'>+	* load.c (rb_feature_provided): ditto.</div><div class='ctx'> </div><div class='del'>-Sat Aug 29 02:09:46 1998 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+	* file.c (rb_file_expand_path): use rb_file_expand_path_internal with</div><div class='add'>+	  path expansion.</div><div class='add'>+	* file.c (rb_file_absolute_path): ditto.</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (f_sprintf): wrong buffer size check.</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: new tests to exercise</div><div class='add'>+	  rb_file_expand_path_internal implementation and compliance with</div><div class='add'>+	  existing behaviors.</div><div class='ctx'> </div><div class='del'>-Fri Aug 28 01:57:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Oct 25 16:59:17 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...).</div><div class='add'>+	* win32/file.c (INVALID_FILE_ATTRIBUTES): define for old SDK.</div><div class='ctx'> </div><div class='del'>-Fri Aug 28 12:25:33 1998  Hiroshi Igarashi  &lt;igarashi@ueda.info.waseda.ac.jp&gt;</div><div class='add'>+Thu Oct 25 16:59:17 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_require_modules): load modules in appearing order.</div><div class='add'>+	* win32/makedirs.bat: new command to make intermediate</div><div class='add'>+	  directories, and not to report any errors if the directory</div><div class='add'>+	  already exists.</div><div class='ctx'> </div><div class='del'>-Thu Aug 27 12:54:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/Makefile.sub (MAKEDIRS): enable command extensions.</div><div class='ctx'> </div><div class='del'>-	* version 1.1c3 released.</div><div class='add'>+Thu Oct 25 16:59:17 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Aug 26 11:47:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/Makefile.sub (MAKEDIRS): use mkdir of cmd.exe instead of ruby.</div><div class='add'>+	  [Bug #6103] [ruby-core:43012]</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): pop non-greedy stack elements on success.</div><div class='add'>+	* win32/README.win32: added a notice about command extension of cmd.exe.</div><div class='ctx'> </div><div class='del'>-Wed Aug 26 09:25:35 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Thu Oct 25 16:59:17 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.h: add #define environ for cygwin32.</div><div class='add'>+	* Makefile.in (PLATFORM_DIR): add a variable for `win32` directory.</div><div class='add'>+	* Makefile.in (clean-platform): add new target.</div><div class='add'>+	  It cleans `win32` directory.</div><div class='ctx'> </div><div class='del'>-Mon Aug 24 18:46:44 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* common.mk (clean): add a dependency for `win32` directory.</div><div class='add'>+	* common.mk (distclean): ditto.</div><div class='add'>+	* common.mk (distclean-platform): add new target.</div><div class='add'>+	  It cleans `win32` directory.</div><div class='add'>+	* common.mk ($(PLATFORM_D)): add new target to make `win32` directory.</div><div class='add'>+	* common.mk (win32/win32.$(OBJEXT)): move win32.o into `win32`</div><div class='add'>+	  directory.</div><div class='add'>+	* common.mk (win32/file.$(OBJEXT)): add new target for win32/file.c.</div><div class='ctx'> </div><div class='del'>-	* dln.c (dln_find_1): path check was too strict.</div><div class='add'>+	* configure.in: move win32.o into `win32` directory and add</div><div class='add'>+	  win32/file.o to MISSING.</div><div class='ctx'> </div><div class='del'>-Mon Aug 24 15:28:11 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* file.c (file_load_ok, rb_file_load_ok): replace static</div><div class='add'>+	  file_load_ok() with public rb_file_load_ok().</div><div class='add'>+	  It's to link Windows implementation in win32/file.c.</div><div class='add'>+	* file.c (rb_find_file_ext_safe): ditto.</div><div class='add'>+	* file.c (rb_find_file_safe): ditto.</div><div class='ctx'> </div><div class='del'>-	* parse.y (f_arglist): opt_nl added after f_args.</div><div class='add'>+	* win32/file.c (rb_file_load_ok): new file. Add Windows specific</div><div class='add'>+	  optimized implementation of rb_file_load_ok(). We created a</div><div class='add'>+	  separated file to avoid too many #ifdef macro which is unreadable.</div><div class='ctx'> </div><div class='del'>-Wed Aug 19 00:31:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/Makefile.sub (PLATFORM_DIR): add a variable for `win32`</div><div class='add'>+	  directory.</div><div class='add'>+	* win32/Makefile.sub (MISSING): move win32.obj into `win32`</div><div class='add'>+	  directory and add win32/file.obj to MISSING.</div><div class='add'>+	* win32/Makefile.sub (MAKEDIRS): replace MINIRUBY with BASERUBY.</div><div class='add'>+	  It's because miniruby doesn't exist when making `win32` directory.</div><div class='add'>+	* win32/Makefile.sub (clean-platform): add new target to clean `win32`</div><div class='add'>+	  directory.</div><div class='add'>+	* win32/Makefile.sub ({$(srcdir)}.c{}.obj): make it not match</div><div class='add'>+	  win32/file.c to build properly.</div><div class='add'>+	* win32/Makefile.sub (win32/win32.$(OBJEXT)): move win32.obj into</div><div class='add'>+	 `win32` directory.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_ctl): forgot to place TRAP_END at right position.</div><div class='add'>+	  Patch created with Luis Lavena.</div><div class='add'>+	  [ruby-core:42480] [Feature #5999]</div><div class='ctx'> </div><div class='del'>-Fri Aug 14 11:01:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Oct 19 13:28:29 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (call_trace_func): save __FILE__, __LINE__ before</div><div class='del'>- 	  executing trace_func, since trace function should not corrupt</div><div class='del'>- 	  line number information.</div><div class='add'>+	* configure.in (opt-dir): allow multiple directories separated by</div><div class='add'>+	  $PATH_SEPARATOR as well as dir_config in mkmf.rb. [ruby-core:47868]</div><div class='add'>+	  [Bug #7120]</div><div class='ctx'> </div><div class='del'>-Thu Aug 13 15:09:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Oct 16 11:18:06 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_s_new): was marking unallocated region on GC.</div><div class='add'>+	* lib/mkmf.rb (dir_config, init_mkmf): use configured libdir value as</div><div class='add'>+	  default library path.  [ruby-core:43726] [Bug #6207]</div><div class='ctx'> </div><div class='del'>-Tue Aug 11 11:57:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Oct 16 10:56:55 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1c2 released.</div><div class='add'>+	* file.c (rb_find_file_ext_safe, rb_find_file_safe): default to</div><div class='add'>+	  US-ASCII for encdb and transdb.</div><div class='ctx'> </div><div class='del'>-Mon Aug 10 14:05:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* load.c (search_required): keep encoding of feature name.  set</div><div class='add'>+	  loading path to filesystem encoding.  [Bug #6377][ruby-core:44750]</div><div class='ctx'> </div><div class='del'>-	* process.c (f_system): removed fflush(stdin).</div><div class='add'>+	* ruby.c (add_modules, require_libraries): assume default external</div><div class='add'>+	  encoding as well as ARGV.</div><div class='ctx'> </div><div class='del'>-Fri Aug  7 17:44:44 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Oct 16 10:47:43 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* error.c (err_snprintf): replace sprintf for fixed sized buffer,</div><div class='del'>- 	  with snprintf to avoid buffer over-run.  For systems which does</div><div class='del'>-	  dot provide snprintf, missing/snprintf.c added.</div><div class='add'>+	* random.c (random_s_rand): ensure default PRNG is re-initialized</div><div class='add'>+	  after fork.  patched by Eric Wong.  [ruby-core:41209][Bug #5661]</div><div class='ctx'> </div><div class='del'>-Tue Jul 28 13:03:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Oct 16 10:21:23 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_s_new): argument to specify initial value is added.</div><div class='add'>+	* ruby.c (rb_f_sub, rb_f_gsub): pass the given block.</div><div class='add'>+	  [ruby-core:47967] [Bug #7157]</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_s_new): specifies size, not capacity.</div><div class='add'>+Tue Oct 16 09:47:47 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Jul 27 12:39:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_regexp.rb</div><div class='add'>+	  (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): use</div><div class='add'>+	  Regexp.new instead of literal to ignore a parser warning.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_replace): zero fill for expansion gap.</div><div class='add'>+Tue Oct 16 09:47:47 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (mbctab_euc): set flags on for 0xA1-0xFE.  suggested by</div><div class='del'>-	  &lt;inaba@st.rim.or.jp&gt;.</div><div class='add'>+	* test/ruby/test_regexp.rb</div><div class='add'>+	  (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): ignoring</div><div class='add'>+	  warnings are already set in setup method.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_inspect): consider current_mbctype.</div><div class='add'>+Sun Oct 14 01:21:42 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sun Jul 26 15:37:11 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+	* regparse.c (parse_char_class): should match with a hyphen after a</div><div class='add'>+	  range in a character class.</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_s_new): Array.new(1&lt;&lt;30) dumps core.</div><div class='add'>+	* test/ruby/test_regexp.rb (TestRegexp#test_char_class): fixed wrong</div><div class='add'>+	  test.</div><div class='ctx'> </div><div class='del'>-Fri Jul 24 13:40:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_regexp.rb (TestRegexp#check): now can accept the</div><div class='add'>+	  error message.</div><div class='ctx'> </div><div class='del'>-	* version 1.1c1 released.</div><div class='add'>+	* test/ruby/test_regexp.rb</div><div class='add'>+	  (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): renamed</div><div class='add'>+	  because the previous name was wrong.</div><div class='ctx'> </div><div class='del'>-Fri Jul 24 02:10:22 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_regexp.rb</div><div class='add'>+	  (TextRegexp#test_raw_hyphen_and_tk_char_type_after_range): added</div><div class='add'>+	  more test pattern.</div><div class='ctx'> </div><div class='del'>-	* marshal.c (r_bytes2): allocated buffer size was too short.</div><div class='add'>+Sat Oct 13 01:41:38 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* marshal.c (w_object): saves all options, not only casefold flag.</div><div class='add'>+	* regparse.c (parse_char_class): also need to check the type of token</div><div class='add'>+	  after raw hyphen in regexp class, because the charcter code area</div><div class='add'>+	  is union'ed with the property of TK_CHAR_TYPE.</div><div class='add'>+	  reported by Bushi Zhang at [ruby-core:47115] [Backport #6853].</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_clone): now copies options properly.</div><div class='add'>+Sat Oct 13 01:39:46 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_get_kcode): code number was wrong.</div><div class='add'>+	* test/ruby/test_regexp.rb</div><div class='add'>+	  (TestRegexp#test_raw_hyphen_and_type_char_after_range): added new</div><div class='add'>+	  test. ref [ruby-core:47115] [Backport #6853]</div><div class='ctx'> </div><div class='del'>-Thu Jul 23 13:11:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Oct 12 18:19:35 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_attr): argument should be symbol or string.</div><div class='add'>+	* file.c (rb_get_path_check): path name must not contain NUL bytes.</div><div class='ctx'> </div><div class='del'>-Wed Jul 22 11:59:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Oct 12 17:51:43 2012  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (calculate_must_string): wrong offset added.</div><div class='add'>+	* error.c (exc_to_s, name_err_to_s, name_err_mesg_to_str): do not</div><div class='add'>+	  taint messages.</div><div class='ctx'> </div><div class='del'>-Wed Jul 22 11:59:59 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Oct 12 16:11:23 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* st.c (rehash): still had a GC problem.  fixed.</div><div class='add'>+	* configure.in (LIBDIR_BASENAME): use configured libdir value to fix</div><div class='add'>+	  --enable-load-relative on systems where libdir is not default value,</div><div class='add'>+	  overridden in config.site files.  [ruby-core:47267] [Bug #6903]</div><div class='ctx'> </div><div class='del'>-Tue Jul 21 13:19:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): ditto.</div><div class='ctx'> </div><div class='del'>-	* eval.c (gc_mark_threads): crashed on GC before thread allocation.</div><div class='add'>+Fri Oct 12 13:56:01 2012  Ayumu AIZAWA  &lt;ayumu.aizawa@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* st.c (rehash): GC during rehash caused SEGV.</div><div class='add'>+	* test/rexml/test_encoding.rb:</div><div class='add'>+	  Add require 'require 'rexml/document'</div><div class='ctx'> </div><div class='del'>-Tue Jul 21 01:25:10 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Oct 12 13:36:32 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (f_sprintf): integer formatter totally re-written.</div><div class='add'>+	* numeric.c (flodivmod): must through the same pass if HAVE_FMOD or not.</div><div class='add'>+	  this is a bugfix of r35013.</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (remove_sign_bits): support uppercase hexadecimal.</div><div class='add'>+Fri Oct 12 13:28:37 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Jul 18 00:14:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (rb_cloexec_fcntl_dupfd): get rid of compile error on windows.</div><div class='add'>+	  reported by Donovan Lampa at [ruby-core:43152] [Backport #6127],</div><div class='add'>+	  based on a patch by Hiroshi Shirosaki at [ruby-core:47917].</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (f_sprintf): proper sign position for %X and %O.</div><div class='add'>+Fri Oct 12 00:30:17 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jul 17 14:10:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (ioctl_narg_len, linux_iocparm_len): reinstantiate linux</div><div class='add'>+	  specific narg length calculation.</div><div class='add'>+	* test/ruby/test_io.rb (test_ioctl_linux2): add new test for old and</div><div class='add'>+	  unstructured ioctl.</div><div class='ctx'> </div><div class='del'>-	* version 1.1c0 released.</div><div class='add'>+Fri Oct 12 00:30:17 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jul 17 08:01:49 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+	* io.c (ioctl_narg_len): don't use _IOC_SIZE macro on Linux.</div><div class='add'>+	  On Linux some constants for ioctl(2) doesn't include the size of</div><div class='add'>+	  its return value and 16bit value; for example FIONREAD 0x541B.</div><div class='add'>+	  Moreover the manual, ioctl_list(2),  says "Note  that  the  size</div><div class='add'>+	  bits  are  very unreliable: in lots of cases they are wrong,</div><div class='add'>+	  either because of buggy macros using sizeof(sizeof(struct)),</div><div class='add'>+	  or because of legacy values."</div><div class='add'>+	  So we shouldn't use it.</div><div class='ctx'> </div><div class='del'>-	* process.c (f_exec): Check_SafeStr() added.</div><div class='add'>+Tue Sep 25 09:30:36 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* process.c (f_system): Check_SafeStr() moved before fork().</div><div class='add'>+	* win32/mkexports.rb: should not export DllMain().</div><div class='add'>+	  reported by luis at [ruby-core:46743] [Bug #6790], solved by</div><div class='add'>+	  Heesob Park, and confirmed by nobu.</div><div class='ctx'> </div><div class='del'>-Thu Jul 16 22:58:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Sep 24 16:34:07 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (scan_once): substrings to the block should not be</div><div class='del'>- 	  tainted.  use reg_nth_match(), not str_substr().</div><div class='add'>+	* include/ruby/win32.h (rb_w32_pow): add new function.</div><div class='add'>+	  We use powl() instead of broken pow() for x64-mingw32. This workaround</div><div class='add'>+	  fixes test failures related to floating point numeric.</div><div class='add'>+	  [ruby-core:46686] [Bug #6784]</div><div class='ctx'> </div><div class='del'>-	* string.c (str_substr): needed to transfer taint.</div><div class='add'>+Mon Sep 24 10:38:55 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Jul 16 16:15:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb (is_ruby64?): Correct platform</div><div class='add'>+	  used to identify mingw-w64 (x64-mingw32). Patch by Hiroshi Shirosaki.</div><div class='add'>+	  [ruby-core:46651][Bug #6782]</div><div class='ctx'> </div><div class='del'>-	* gc.c (xmalloc): object allocation count added to GC trigger.</div><div class='add'>+Mon Sep 24 10:37:56 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_save_context): avoid marking uninitialized stack</div><div class='del'>-	  in thread_mark.  GC may be triggered by REALLOC_N().</div><div class='add'>+	* lib/test/unit/parallel.rb: workaround fix for rubygems.</div><div class='add'>+	  RubyGems can't find rake if the source directory is not equal to</div><div class='add'>+	  the directory which is running the test. [Bug #6604]</div><div class='ctx'> </div><div class='del'>-Wed Jul 15 15:11:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Sep 21 19:53:38 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_31.</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): should convert a Bignum value to</div><div class='add'>+	  unsigned long long on Win64.</div><div class='add'>+	  [ruby-core:44636][Bug #6364] reported by raylinn@gmail.com (ray linn)</div><div class='ctx'> </div><div class='del'>-Wed Jul 15 15:05:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Sep 21 18:45:20 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_create): exit() and abort() in threads now</div><div class='del'>- 	  forwarded to main_thread.</div><div class='add'>+	* include/ruby/win32.h: undef stat to silence mingw-w64 stat</div><div class='add'>+	  redefinition warnings (GCC 4.6.3).</div><div class='ctx'> </div><div class='del'>-Tue Jul 14 14:03:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Sep 21 17:54:54 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (obj_instance_variables): list names that is not</div><div class='del'>-	  instance variables.</div><div class='add'>+	* configure.in: add -Wall always.</div><div class='ctx'> </div><div class='del'>-	* gc.c (GC_MALLOC_LIMIT): choose smaller limit value.</div><div class='add'>+Thu Sep 20 10:23:37 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Jul 13 12:39:38 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* thread_pthread.c (native_cond_initialize): destroy condattr</div><div class='add'>+	  after using it. Patch by Stanislav Sedov. Thank you.</div><div class='add'>+	  [Bug #7041] [ruby-core:47619]</div><div class='ctx'> </div><div class='del'>-	* object.c (str2cstr): should not return NULL.</div><div class='add'>+Sun Sep  9 23:01:43 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jul 10 11:51:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/zlib/extconf.rb: detect z_crc_t type which will be defined</div><div class='add'>+	  since zlib-1.2.7.</div><div class='ctx'> </div><div class='del'>-	* parse.y (gettable): needed to add dyna_in_block() check.</div><div class='add'>+	* ext/zlib/zlib.c (rb_zlib_crc_table): use z_crc_t if available.</div><div class='ctx'> </div><div class='del'>-Thu Jul  9 17:38:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Sep  9 02:44:21 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_30.</div><div class='add'>+	* ext/zlib/extconf.rb: Use an exception instaed of bare puts.</div><div class='ctx'> </div><div class='del'>-Thu Jul  9 16:01:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Sep  9 02:44:21 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (fmt_setup): format specifier for long needed.</div><div class='add'>+	* ext/psych/extconf.rb: Use an exception instaed of bare abort.</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (f_sprintf): ditto.</div><div class='add'>+Sun Sep  9 02:44:21 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (fix2str): ditto.</div><div class='add'>+	* ext/fiddle/extconf.rb: Use an exception instaed of bare abort.</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_create): no more ITIMER_REAL.</div><div class='add'>+Sun Sep  9 02:44:21 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_create): thread finalization needed before</div><div class='del'>-	  aborting thread if thread_abort is set.</div><div class='add'>+	* ext/readline/extconf.rb: Use an exception instead of bare exit.</div><div class='ctx'> </div><div class='del'>-Wed Jul  8 18:17:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Sep  9 02:34:39 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* bignum.c (big_pow): abandon power by bignum (too big).</div><div class='add'>+	* ext/extmk.rb: Show a message when extconf.rb raised an exception.</div><div class='add'>+	* ext/openssl/extconf.rb: Use exception raising instead of message</div><div class='add'>+	  and/or abort. We want to display error message to console _and_</div><div class='add'>+	  logging into mkmf.log.</div><div class='ctx'> </div><div class='del'>-Tue Jul  7 13:58:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Sep  9 02:30:20 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_catch): add C level catch/throw feature.</div><div class='add'>+	* thread.c (rb_mutex_lock): stop multiple threads use</div><div class='add'>+	  pthread_cond_timedwait() concurrently. [Bug #6278] [ruby-core:44275]</div><div class='ctx'> </div><div class='del'>-Mon Jul  6 15:18:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Aug 30 09:24:43 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (arg): proper return values for `||=' and `&amp;&amp;='.</div><div class='add'>+	* lib/uri/ftp.rb (URI::FTP#initialize): raise InvalidURIError if "//"</div><div class='add'>+	  is not present [ruby-core:47344] [Bug #6945]</div><div class='ctx'> </div><div class='del'>-Fri Jul  3 16:05:11 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Aug 28 00:40:14 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_29.</div><div class='add'>+	* test/webrick/test_cgi.rb (TestWEBrickCGI#start_cgi_server): there are</div><div class='add'>+	  no guarantee of existance of RbConfig::CONFIG['LIBPATHENV'].</div><div class='add'>+	  it only exists in Unix-like environments.</div><div class='ctx'> </div><div class='del'>-Fri Jul  3 11:20:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/webrick/test_filehandler.rb</div><div class='add'>+	  (WEBrick::TestFileHandler#test_script_disclosure): ditto.</div><div class='ctx'> </div><div class='del'>-	* marshal.c (r_byte): byte should not extend sign bit.</div><div class='add'>+Thu Aug 23 12:08:25 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (fix_mul): use FIX2LONG() instead of FIX2INT() for</div><div class='del'>-	  64bit architectures.</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb</div><div class='add'>+	  (TestFileExhaustive#test_stat_special_file): add a test.</div><div class='add'>+	  GetFileAttributesExW fails to get attributes of special files</div><div class='add'>+	  such as pagefile.sys.</div><div class='ctx'> </div><div class='del'>-	* marshal.c (r_bytes): remove weird casting bwetween pointer and int.</div><div class='add'>+	* win32/win32.c (check_valid_dir): for performance, check the path</div><div class='add'>+	  by FindFirstFileW only if the path contains "...".</div><div class='ctx'> </div><div class='del'>-	* process.c (proc_setsid): new method Process#setsid().</div><div class='add'>+	* win32/win32.c (winnt_stat): use GetFileAttributesExW instead of</div><div class='add'>+	  FindFirstFileW since GetFileAttributesExW is faster.</div><div class='add'>+	  Based on the patch by Dusan D. Majkic.</div><div class='add'>+	  [ruby-core:47083] [Feature #6845]</div><div class='ctx'> </div><div class='del'>-Thu Jul  2 12:49:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Aug 23 11:19:51 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* marshal.c (w_object): remove `write_bignum' label for 64bit</div><div class='del'>- 	  architectures.</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): STACK_GROW_DIR_DETECTION is</div><div class='add'>+	  necessary on platforms with unknown stack direction.  [Bug #6761]</div><div class='ctx'> </div><div class='del'>-	* marshal.c (r_bytes): needs int, not long.</div><div class='add'>+Thu Aug 23 11:19:51 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Jul  1 14:21:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* thread_pthread.c (get_stack): Linux is the only OS which includes</div><div class='add'>+	  the size of guard page into the stack size.</div><div class='ctx'> </div><div class='del'>-	* numeric.c (flo_plus): should not allow addition with strings.</div><div class='add'>+Thu Aug 23 11:19:51 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Jul  1 13:09:01 1998  Keiju ISHITSUKA  &lt;keiju@rational.com&gt;</div><div class='add'>+	* gc.h (IS_STACK_DIR_UPPER): utility macro.</div><div class='ctx'> </div><div class='del'>-	* numeric.c (num_uminus): wrong coerce direction.</div><div class='add'>+	* thread_pthread.c (get_stack): seems stack size does not include</div><div class='add'>+	  guard size on Mac OS X.</div><div class='ctx'> </div><div class='del'>-Tue Jun 30 10:13:44 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): adjust stack size for offset of</div><div class='add'>+	  addr from the bottom.</div><div class='ctx'> </div><div class='del'>-	* io.c (f_p): accepts arbitrary number of arguments.</div><div class='add'>+Thu Aug 23 11:19:51 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_yield_0): there's some case that iterator_p() returns </div><div class='del'>-	  true even if the_block was not set.  check added.</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): use stack info if possible.</div><div class='ctx'> </div><div class='del'>-Tue Jun 30 01:05:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Aug 20 17:11:01 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (BEGIN_CALLARGS): adjust the_block before evaluating the</div><div class='del'>-	  receiver's value and the arguments.</div><div class='add'>+	* file.c (file_path_convert): don't convert it when the path string is</div><div class='add'>+	  ascii only. [ruby-core:41556] [Bug #5733]</div><div class='add'>+	  tests are contributed by nobu.</div><div class='ctx'> </div><div class='del'>-Fri Jun 26 18:02:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Aug  9 22:48:58 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_28.</div><div class='add'>+	* pack.c (pack_unpack): when unpack('M') occurs an illegal byte</div><div class='add'>+	  sequence, output the "=" character and the following character in</div><div class='add'>+	  the decoded data without any transformation.</div><div class='add'>+	  [ruby-dev:44875] [Bug #5635]</div><div class='ctx'> </div><div class='del'>-Fri Jun 26 11:01:26 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Tue Jul 31 10:36:12 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_aset_method): needed to convert to string.</div><div class='add'>+	* ext/psych/lib/psych.rb: updated to released version.</div><div class='ctx'> </div><div class='del'>-Thu Jun 25 02:05:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/psych.gemspec: ditto</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): optimize for `.*' at beginning of the</div><div class='del'>-	  pattern.</div><div class='add'>+Thu Jul 19 09:33:46 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): optimize for character class repeat at</div><div class='del'>-	  beginning of the pattern.</div><div class='add'>+	* ext/psych/emitter.c (initialize): allow a configuration object to be</div><div class='add'>+	  passed to the constructor so that mutation isn't required after</div><div class='add'>+	  instantiation.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): detect optimization potential for</div><div class='del'>-	  the compiled patterns.</div><div class='add'>+	* ext/psych/lib/psych/handler.rb: add configuration object</div><div class='ctx'> </div><div class='del'>-Thu Jun 25 00:02:26 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/visitors/emitter.rb: use configuration object if</div><div class='add'>+	  extra configuration is present.</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_s_new): flag value was wrong.</div><div class='add'>+Tue Jul 17 03:56:34 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Jun 24 23:45:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: strings with YAML anchors</div><div class='add'>+	  are properly referenced. Patched by Joe Rafaniello via Github:</div><div class='add'>+	    https://github.com/tenderlove/psych/pull/69</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: ditto</div><div class='add'>+	* test/psych/test_alias_and_anchor.rb: test for change</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): wrong anchor handling for reverse search.</div><div class='add'>+Sat Jun 16 01:27:14 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Jun 24 02:18:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych.rb: bumping psych to 1.3.3</div><div class='add'>+	* ext/psych/psych.gemspec: ditto</div><div class='ctx'> </div><div class='del'>-	* parse.y (mlhs): `((a,b)),c = [[1,2]],3' assigns a=1,b=2,c=3.</div><div class='add'>+Fri May 18 15:53:05 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Jun 23 11:46:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/extconf.rb: Use an exception instaed of bare abort.</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): `&amp;&amp;=' and `||=' added.</div><div class='add'>+Fri May 18 01:28:21 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Sat Jun 20 02:53:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/parser.c (transcode_string): fix encoding index names.</div><div class='add'>+	  Thanks markizko for reporting.</div><div class='ctx'> </div><div class='del'>-	* parse.y (assignable): nesting local variables should have higher</div><div class='del'>- 	  priority than normal local variables for assignment too.</div><div class='add'>+Wed May 16 05:11:29 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jun 19 18:28:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: fix a bug with string</div><div class='add'>+	  subclass dumping and loading.</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_27.</div><div class='add'>+	* test/psych/test_array.rb: pertinent tests</div><div class='ctx'> </div><div class='del'>-Fri Jun 19 14:34:49 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/psych/test_string.rb: ditto</div><div class='ctx'> </div><div class='del'>-	* eval.c (assign): support hack for nested multiple assignment.</div><div class='add'>+Wed May 16 01:31:21 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (mlhs): nested multiple assignment.</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: convert omap tagged maps to</div><div class='add'>+	  Psych::Omap objects rather than hashes. [Bug #6425]</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): in-block variables now honors static scope.</div><div class='add'>+	* test/psych/test_omap.rb: pertinent test.</div><div class='ctx'> </div><div class='del'>-	* configure.in: RSHIFT check moved to configure.</div><div class='add'>+Wed May 16 01:15:45 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Jun 18 16:46:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: keep a reference to</div><div class='add'>+	  custom coders so that GC does not impact dumped yaml reference ids.</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_26.</div><div class='add'>+Mon Apr 30 04:43:53 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Jun 18 13:37:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/json/yaml_events.rb: implicit styles should not</div><div class='add'>+	  be changeable for JSON events.</div><div class='ctx'> </div><div class='del'>-	* file.c (file_s_ftype): uses lstat(2) instead of stat(2).</div><div class='add'>+Sun Jul 29 04:32:31 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* dir.c (dir_s_glob): there can be buffer overrun, check added.</div><div class='add'>+	* configure.in (ruby_pc): make configurable.  [Bug #6051]</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_binding): handles in-block variables declared after</div><div class='del'>-	  binding's generation.</div><div class='add'>+Sun Jul 29 04:32:06 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (flo_floor): floor, ceil, round added to Float.</div><div class='add'>+	* template/ruby.pc.in: added rubylibprefix, {rubylib,vendor,site}dir</div><div class='add'>+	  and {ruby,vendor,site}archdir.  [ruby-core:42766][Feature #6052]</div><div class='ctx'> </div><div class='del'>-Wed Jun 17 11:20:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Jul 29 04:31:01 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (gettable): nesting local variables should have higher</div><div class='del'>- 	  priority than normal local variables.</div><div class='add'>+	* bignum.c: Added #include &lt;strings.h&gt; for ffs(). Patch by Perry</div><div class='add'>+	  Smith. Thank you. [Bug #6748]</div><div class='ctx'> </div><div class='del'>-Tue Jun 16 12:30:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Jul 28 04:04:01 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* bignum.c (str2inum): handles `+ddd'.</div><div class='add'>+	* include/ruby/intern.h (rb_num_zerodiv): Added NORETURN.</div><div class='add'>+	  Patched by Xi Wang. [Bug #6736]</div><div class='ctx'> </div><div class='del'>-	* struct.c (make_struct): name parameter can be nil for unnamed</div><div class='del'>-	  structures.</div><div class='add'>+Wed Jul  4 19:36:17 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Jun 15 16:30:10 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): also needed the workaround for VC8</div><div class='add'>+	  for x64.  [ruby-dev:45875] [Bug #6676]</div><div class='add'>+	  reported by aves_ramphastos (Seigo Ishigane)</div><div class='ctx'> </div><div class='del'>-	* object.c (class_s_inherited): prohibiting to make subclass of</div><div class='del'>-	  class Class.</div><div class='add'>+Tue Jul  3 19:37:52 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (module_s_new): support for making subclass of Module.</div><div class='add'>+	* file.c (rmext): no extension to strip if empty string.</div><div class='ctx'> </div><div class='del'>-	* parse.y (yycompile): clear eval_tree before compiling.</div><div class='add'>+	* proc.c (rb_vm_rewrite_dfp_in_errinfo): Fix `unexpected return'</div><div class='add'>+	occurs when a proc is called in ensure. [Backport #6460]</div><div class='ctx'> </div><div class='del'>-Fri Jun 12 17:58:18 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Jul  3 11:44:23 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (eval): write back the_dyna_var into the block.</div><div class='add'>+	* file.c (rb_enc_path_next, rb_enc_path_skip_prefix)</div><div class='add'>+	  (rb_enc_path_last_separator, rb_enc_path_end)</div><div class='add'>+	  (ruby_enc_find_basename, ruby_enc_find_extname): encoding-aware</div><div class='add'>+	  path handling functions.</div><div class='ctx'> </div><div class='del'>-Thu Jun 11 18:19:18 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* file.c (rb_home_dir, file_expand_path, rb_realpath_internal)</div><div class='add'>+	  (rb_file_s_basename, rb_file_dirname, rb_file_s_extname)</div><div class='add'>+	  (rb_file_join): should respect the encodings of arguments than</div><div class='add'>+	  file system encoding.  [ruby-dev:45145] [Bug #5919]</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_25.</div><div class='add'>+	* dir.c (check_dirname, ruby_glob0): ditto.</div><div class='ctx'> </div><div class='del'>-	* eval.c (dvar_add_compiling): register dyna_var at compile time.</div><div class='add'>+	* ext/pathname/pathname.c (path_sub_ext): ditto.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): RE_DUP_MAX iteration is too big.</div><div class='add'>+Tue Jul  3 11:43:46 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Jun 10 15:12:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* dir.c (dir_chdir, check_dirname): get rid of optimization-out.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_eof): do not block other threads.</div><div class='add'>+Thu Jun 28 17:57:49 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* signal.c (trap): reserve SIGALRM for thread.</div><div class='add'>+	* win32/win32.c (is_socket, is_console): add prototypes to fix compile</div><div class='add'>+	  problem with gcc introduced at r32549.</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_create): use ITIMER_REAL also to avoid system</div><div class='del'>-	  call blocking.</div><div class='add'>+Wed Jun 27 08:31:50 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (f_syscall): add TRAP_BEG, TRAP_END around system calls.</div><div class='add'>+	* insns.def (splatarray): make new array if flag is set.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_ctl): add TRAP_BEG, TRAP_END around system calls.</div><div class='add'>+	* compile.c (iseq_compile_each): make new array with</div><div class='add'>+	  splat. [ruby-core:21901][Feature #1125]</div><div class='ctx'> </div><div class='del'>-	* enum.c (enum_collect): did not collect false values.</div><div class='add'>+Wed Jun 27 04:23:26 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_new2): forgot to initialize capa field.</div><div class='add'>+	* win32/win32.c (rb_w32_sysinit): let the system not display the</div><div class='add'>+	  critical-error-handler message box and the Windows Error Reporting</div><div class='add'>+	  dialog.  [ruby-core:45389] [Bug #6535]</div><div class='ctx'> </div><div class='del'>-Tue Jun  9 18:36:15 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Wed Jun 27 04:20:41 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_split_method): split dumped core for "\xff".</div><div class='add'>+	* bignum.c (rb_big_pow): estimate result bit size more precisely.</div><div class='add'>+	  [ruby-core:30735][Feature #3429]</div><div class='ctx'> </div><div class='del'>-Tue Jun  9 16:22:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Jun 26 20:36:53 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_24.</div><div class='add'>+	* lib/drb/ssl.rb: generate 1024 bits RSA key instead of 512 bits.</div><div class='add'>+	  OpenSSL 1.0.1 rejects 512 bits RSA key for TLS1.2 with SHA512.</div><div class='add'>+	  http://rt.openssl.org/Ticket/Display.html?id=2769&amp;user=guest&amp;pass=guest</div><div class='add'>+	  reported by Bohuslav Kabrda.</div><div class='add'>+	  [ruby-core:43844] [ruby-trunk - Bug #6221]</div><div class='ctx'> </div><div class='del'>-Tue Jun  9 16:04:07 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Tue Jun 26 20:35:59 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/kconv/kconv.c (kconv_guess): more precise decision for EUC,</div><div class='del'>-	  using jless algorithm (3 sequential EUC hiragana characters).</div><div class='add'>+	* ext/zlib/zlib.c (do_inflate):  Inflate more data if buffered data</div><div class='add'>+	  exists.  Allows Zlib::Inflate#set_dictionary to work.</div><div class='add'>+	  [ruby-trunk - Bug #5929]</div><div class='ctx'> </div><div class='del'>-Tue Jun  9 15:12:44 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Jun 21 13:42:57 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/kconv/kconv.c (kconv_guess): wrong guess for EUC as SJIS in</div><div class='del'>-	  some cases (0xe0 - 0xef).</div><div class='add'>+	* thread.c (rb_threadptr_execute_interrupts_common):</div><div class='add'>+	  test_signal_requiring of test/ruby/test_signal.rb fail if the sub</div><div class='add'>+	  process is killed on waiting IO in lex_io_gets in rb_load_file in</div><div class='add'>+	  rb_load_internal in require.</div><div class='add'>+	  This is because</div><div class='add'>+	  (1) the process receive the killing signal in</div><div class='add'>+	      rb_thread_io_blocking_region in rb_read_internal in lex_io_gets.</div><div class='add'>+	  (2) set th-&gt;errinfo as INT2FIX(TAG_FATAL) at</div><div class='add'>+	      rb_threadptr_execute_interrupts_common.</div><div class='add'>+	  (3) escape rb_load_file in rb_load_internal and jump to EXEC_TAG()</div><div class='add'>+	      without set loaded as TRUE.</div><div class='add'>+	  (4) call first rb_exc_raise(GET_THREAD()-&gt;errinfo); because loaded</div><div class='add'>+	      is FALSE as above. this errinfo should be an exception object</div><div class='add'>+	      but this is INT2FIX(TAG_FATAL).</div><div class='add'>+	  Don't call first rb_exc_raise if GET_THREAD()-&gt;errinfo is Fixnum.</div><div class='ctx'> </div><div class='del'>-	* gc.c (xmalloc): insert size check for big (negative in signed)</div><div class='del'>-	  allocation size.</div><div class='add'>+Mon Jun 11 19:56:22 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Jun  9 02:54:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/webrick/test_cgi.rb (class TestWEBrickCGI): respect</div><div class='add'>+	  RbConfig::CONFIG["LIBPATHENV"]. [Bug #5135] [ruby-core:38653]</div><div class='add'>+	* test/webrick/test_filehandler.rb (class WEBrick): ditto.</div><div class='ctx'> </div><div class='del'>-	* lib/parsedate.rb: wday moved to the last in the return values.</div><div class='add'>+Tue Jun  5 14:03:53 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Jun  8 10:40:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/ipaddr.rb: Inhibit zero-filled octets in an IPv4 address in</div><div class='add'>+	  all platforms. [ruby-dev:45671]</div><div class='ctx'> </div><div class='del'>-	* string.c (str_split_method): split dumped core for "\0".</div><div class='add'>+	* lib/ipaddr.rb: Allow the x:x:x:x:x:x:d.d.d.d form not limited to</div><div class='add'>+	  IPv4 mapped/compatible addresses.  This change also makes it</div><div class='add'>+	  possible for the parser to understand IPv4 mapped and compatible</div><div class='add'>+	  IPv6 addresses in non-compressed form.</div><div class='ctx'> </div><div class='del'>-Sat Jun  6 22:50:52 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/ipaddr.rb: Stop exposing IPSocket.valid*? methods which were</div><div class='add'>+	  only usable on non-IPv6-ready platforms.</div><div class='ctx'> </div><div class='del'>-	* regex.c (calculate_must_string): wrong condition for</div><div class='del'>-	  {start,stop}_nowidth.</div><div class='add'>+Sat Jun  2 18:49:39 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): various features imported from GNU regex.c</div><div class='del'>- 	  0.12, such as nested grouping, avoiding infinite loop with empty</div><div class='del'>- 	  match, etc.</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): don't reset coderange as unknown.</div><div class='add'>+	  the condition 'ptr_a8 &amp;&amp; str_cr != ENC_CODERANGE_7BIT' means not</div><div class='add'>+	  unknown, str is also ASCII-8BIT because str_encindex == ptr_encindex,</div><div class='add'>+	  and nont (str_cr == ENC_CODERANGE_UNKNOWN) and</div><div class='add'>+	  str_cr != ENC_CODERANGE_7BIT means str_cr is valid because ASCII-8BIT</div><div class='add'>+	  can't be broken. [ruby-dev:45688] [Bug #6509]</div><div class='ctx'> </div><div class='del'>-	* regex.c (register_info_type): now use union.</div><div class='add'>+Wed May 30 17:19:56 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): more precise anchor(^) check.</div><div class='add'>+	* ext/zlib/zlib.c (do_inflate):  Inflate more data if buffered data</div><div class='add'>+	  exists.  Allows Zlib::Inflate#set_dictionary to work.</div><div class='add'>+	  [ruby-trunk - Bug #5929]</div><div class='ctx'> </div><div class='del'>-Wed Jun  3 18:07:54 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon May 28 11:40:19 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_raise): check rb_in_compile, not rb_in_eval.</div><div class='add'>+	* io.c (rb_io_extract_modeenc): fail only if conflicting</div><div class='add'>+	  text/binary modes given explicitly.  [ruby-dev:45268][Bug #6055]</div><div class='ctx'> </div><div class='del'>-Mon Jun  1 05:26:06 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+Fri May 25 17:18:06 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (trnext): casting to signed char* needed.</div><div class='add'>+	* parse.y (f_arglist): should reset lexical states after empty</div><div class='add'>+	  argument list with no parenthesis as well as parenthesized list,</div><div class='add'>+	  so that reserved name method definition work.  [ruby-dev:45626]</div><div class='add'>+	  [Bug #6403]</div><div class='ctx'> </div><div class='del'>-Tue Jun  2 16:00:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri May 25 10:40:31 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/socket/socket.c (udp_addrsetup): error check enhanced.</div><div class='add'>+	* include/ruby/win32.h (FD_SET): change function to macro.</div><div class='add'>+	  To avoid buffer overflow when smaller FD_SETSISE is used in ext</div><div class='add'>+	  libraries.</div><div class='ctx'> </div><div class='del'>-	* ext/socket/socket.c (sock_s_getservbyaname): use strtoul(), if</div><div class='del'>-	  possible.</div><div class='add'>+	* win32/win32.c (rb_w32_fdset): this function is not used anymore.</div><div class='add'>+	  But we leave this for compatibility.</div><div class='ctx'> </div><div class='del'>-Sat May 30 07:10:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/win32.c (rb_w32_select_with_thread): fix SEGV when smaller</div><div class='add'>+	  FD_SETSISE is used in ext libraries. Dereference of fd_set pointer</div><div class='add'>+	  causes SEGV.</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_prepare_re): no more needless regular expression</div><div class='del'>- 	  recompile on casefold conditions.</div><div class='add'>+	* test/-ext-/win32/test_fd_setsize.rb(TestFdSetSize): add tests for</div><div class='add'>+	  above.</div><div class='add'>+	* ext/-test-/win32/fd_setsize/depend: ditto.</div><div class='add'>+	* ext/-test-/win32/fd_setsize/extconf.rb: ditto.</div><div class='add'>+	* ext/-test-/win32/fd_setsize/fd_setsize.c: ditto.</div><div class='ctx'> </div><div class='del'>-Thu May 28 18:02:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	  [ruby-core:44588] [Bug #6352]</div><div class='ctx'> </div><div class='del'>-	* object.c (nil_plus): no more `+' method for nil.</div><div class='add'>+Fri May 25 10:38:06 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed May 27 17:33:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (io_strip_bom): check EOF.  [Bug #6487][ruby-core:45203]</div><div class='ctx'> </div><div class='del'>-	* hash.c (hash_fetch): new method.</div><div class='add'>+Fri May 25 10:36:38 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): check whether translate table is set.</div><div class='add'>+	* parse.y (f_arglist): should reset lexical states after empty</div><div class='add'>+	  argument list with no parenthesis as well as parenthesized list,</div><div class='add'>+	  so that reserved name method definition work.  [ruby-dev:45626]</div><div class='add'>+	  [Bug #6403]</div><div class='ctx'> </div><div class='del'>-Tue May 26 11:39:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon May 21 16:24:40 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_23.</div><div class='add'>+	* ext/syslog/syslog.c (mSyslog_inspect): Use rb_sprintf().</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): no UPLUS/UMINUS for 1st argument if</div><div class='del'>-	  parenthesises are omitted.</div><div class='add'>+	* ext/syslog/syslog.c (mSyslog_inspect): Make sure self is a</div><div class='add'>+	  module before calling rb_class2name().</div><div class='ctx'> </div><div class='del'>-Tue May 26 01:09:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat May 19 14:42:37 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): (?XI) for turns off the</div><div class='del'>-	  corresponding option.</div><div class='add'>+	* test/drb/drbtest.rb ({DRbCore,DRbAry}#teardown}: cannot pass SIGTERM</div><div class='add'>+	  to another process on Windows, so use SIGINT instead.</div><div class='ctx'> </div><div class='del'>-Mon May 25 12:38:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat May 19 14:42:20 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): inline i option (?i).</div><div class='add'>+	* lib/drb/ssl.rb: generate 1024 bits RSA key instead of 512 bits.</div><div class='add'>+	  OpenSSL 1.0.1 rejects 512 bits RSA key for TLS1.2 with SHA512.</div><div class='add'>+	  http://rt.openssl.org/Ticket/Display.html?id=2769&amp;user=guest&amp;pass=guest</div><div class='add'>+	  reported by Bohuslav Kabrda.</div><div class='add'>+	  [ruby-core:43844] [ruby-trunk - Bug #6221]</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): inline x option (?x).</div><div class='add'>+Sat May 19 14:41:45 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): x option for regexp.</div><div class='add'>+	* test/drb/drbtest.rb: rescue Errno::ESRCH for Process.kill.</div><div class='add'>+	  reported by NARUSE, Yui.  [ruby-dev:45551]</div><div class='ctx'> </div><div class='del'>-	* dir.c (dir_s_open): returns block's evaluated value.</div><div class='add'>+Sat May 19 14:41:09 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (f_open): returns block's evaluated value.</div><div class='add'>+	* lib/drb/extservm.rb (DRb::ExtServManager): don't use /bin/sh to</div><div class='add'>+	  invoke service subprocess.  mark detach threads for clean up.</div><div class='ctx'> </div><div class='del'>-	* ext/curses/curses.c (curses_addstr): nil argument caused SEGV.</div><div class='add'>+	* test/drb/drbtest.rb: clean up the service subprocess in teardown.</div><div class='ctx'> </div><div class='del'>-Fri May 22 11:52:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/drb/test_drb.rb: set @service_name for teardown.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): push mark on (?:), so that</div><div class='del'>-	  laststart check for {a,b} can be done.</div><div class='add'>+	* test/drb/test_drbunix.rb: ditto.</div><div class='ctx'> </div><div class='del'>-Thu May 21 17:31:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/drb/test_drbssl.rb: ditto.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): wrong match (too non-greedy) for `{a,b}?'.</div><div class='add'>+Sat May 19 14:40:49 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_lineno): new method IO#lineno, IO#lineno=.</div><div class='add'>+	* lib/drb/ssl.rb: close accepted TCP socket if SSL accept is failed.</div><div class='add'>+	  [ruby-dev:45541]</div><div class='ctx'> </div><div class='del'>-Wed May 20 06:04:43 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+Sat May 19 14:39:50 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* BeOS patch.</div><div class='add'>+	* lib/webrick/utils.rb: fix fcntl call.</div><div class='ctx'> </div><div class='del'>-Wed May 20 16:32:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/drb/unix.rb: ditto.</div><div class='ctx'> </div><div class='del'>-	* bignum.c (BIGDN): use RSHIFT(), instead of mere `&gt;&gt;'.</div><div class='add'>+Fri May 18 18:13:44 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue May 19 16:36:26 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (MakeMakefile#configuration): keep space at end of</div><div class='add'>+	  OUTFLAG and COUTFLAG.  [ruby-dev:45650]</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_22.</div><div class='add'>+Fri May 18 00:04:53 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue May 19 16:31:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/win32.c (rb_w32_fstat, rb_w32_fstati64): convert FILETIME</div><div class='add'>+	  to time_t directly, not to be affected by TZ unnecessarily.</div><div class='ctx'> </div><div class='del'>-	* parse.y (assignable): specification changed for in-block</div><div class='del'>- 	  variable definition.</div><div class='add'>+	* win32/win32.c (unixtime_to_filetime): convert time_t to FILETIME</div><div class='add'>+	  simply.</div><div class='ctx'> </div><div class='del'>-	* eval.c (dyna_var_asgn): error in in-block variables' compile</div><div class='del'>- 	  time definition.</div><div class='add'>+Wed May 16 01:07:46 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (str_extend): wrong nesting detection.</div><div class='add'>+	* ext/digest/md5/extconf.rb: use pkg_config for openssl so that</div><div class='add'>+	  customized ssl paths are used for linking.  Backports fixes for</div><div class='add'>+	  [ruby-core:44755].</div><div class='add'>+	* ext/digest/rmd160/extconf.rb: ditto</div><div class='add'>+	* ext/digest/sha1/extconf.rb: ditto</div><div class='add'>+	* ext/digest/sha2/extconf.rb: ditto</div><div class='ctx'> </div><div class='del'>-Tue May 19 09:47:55 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Mon May 14 17:14:10 2012  CHIKANAGA Tomoyuki  &lt;nagachika@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (num2int): re-defined (extensions may use this).</div><div class='add'>+	* test/ruby/test_io.rb (test_flush_in_finalizer1): don't use IO.for_fd</div><div class='add'>+	  to close IO objects. it create IO object with already closed fd, and</div><div class='add'>+	  cause occasional Errno::EBADF in following tests. [ruby-core:45020]</div><div class='add'>+	  [Bug #6228]</div><div class='ctx'> </div><div class='del'>-Mon May 18 16:40:50 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+Mon May 14 17:14:10 2012  CHIKANAGA Tomoyuki  &lt;nagachika@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* error.c (get_syserr): BeOS support.</div><div class='add'>+	* test/ruby/test_io.rb (TestIO): revert r35631. it broke the intent of</div><div class='add'>+	  test_flush_in_finalizer1.  [ruby-core:43951] [Bug ##6228]</div><div class='ctx'> </div><div class='del'>-	* configure.in: modified for BeOS.</div><div class='add'>+Mon May 14 13:18:56 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_dump): do not call isascii().</div><div class='add'>+	* parse.y (parser_tokadd_string): insert a backslash only if</div><div class='add'>+	  quoted by single quotes.  [ruby-dev:45281] [Bug #6069]</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (remove_sign_bits): forgot to initialize end pointer.</div><div class='add'>+Mon May 14 13:17:57 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* glob.c: #include &lt;alloca.h&gt; added.</div><div class='add'>+	* test/ruby/test_io.rb (class TestIO):  Disable GC during IO tests to</div><div class='add'>+	  avoid file descriptors being GC'ed. Suggestion by Tomoyuki Chikanaga</div><div class='add'>+	  [ruby-core:43951][Bug #6228]</div><div class='ctx'> </div><div class='del'>-Mon May 18 14:52:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='del'>-	</div><div class='del'>-	* experimental release 1.1b9_21.</div><div class='add'>+Fri May 11 14:09:48 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon May 18 03:27:57 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,</div><div class='add'>+	  must not cast it to unsigned long, which may be shorter than</div><div class='add'>+	  VALUE, and the result can be mere garbage.</div><div class='ctx'> </div><div class='del'>-	* file.c (file_s_expand_path): optional second argument</div><div class='del'>-	  `default_directory' added.</div><div class='add'>+Fri May 11 01:04:54 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Sat May 16 22:06:52 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* io.c (io_unread): fix IO#pos with mode 'r' bug on Windows.</div><div class='add'>+	  If the end of reading buffer is CR, io_unread() needs to unread one</div><div class='add'>+	  more byte.</div><div class='add'>+	  [ruby-core:44874] [Bug #6401]</div><div class='ctx'> </div><div class='del'>-	* error.c (RAISE_ERROR): wrong error message</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#test_pos_with_buffer_end_cr):</div><div class='add'>+	  add a test for above.</div><div class='ctx'> </div><div class='del'>-Fri May 15 14:43:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed May  9 15:59:17 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_20.</div><div class='add'>+	* configure.in (RUBY_WERROR_FLAG): append all warning flags which</div><div class='add'>+	  are enabled to compile, so that printf format modifiers properly</div><div class='add'>+	  fail.  [ruby-core:41351] [Bug #5679]</div><div class='ctx'> </div><div class='del'>-Thu May 14 14:44:21 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Mon May  7 20:23:29 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* sun4 cc patches for intern.h and regex.h.</div><div class='add'>+	* lib/securerandom.rb (random_bytes): call to_int method for the</div><div class='add'>+	  argument at first.</div><div class='ctx'> </div><div class='del'>-Thu May 14 14:03:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon May  7 20:23:29 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* random.c (RANDOM_MAX): guessing proper maximum value for random</div><div class='del'>- 	  numbers.</div><div class='add'>+	* lib/securerandom.rb: show actual read length in an error message.</div><div class='ctx'> </div><div class='del'>-	* random.c (f_rand): use drand48 if possible.</div><div class='add'>+Mon May  7 11:09:20 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed May 13 19:05:20 1998 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): define IDs before</div><div class='add'>+	  they are used. [ruby-core:44900] [Bug #6406]</div><div class='ctx'> </div><div class='del'>-	* BeOS patches for io.c, error.c and config.guess.</div><div class='add'>+Fri Apr 27 11:02:33 2012  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='ctx'> </div><div class='del'>-Wed May 13 14:56:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/rinda/test_rinda.rb (test_core_03_notify): Fixed test failures</div><div class='add'>+	  [ruby-dev:44430] [Ruby 1.9 - Bug #372]</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_19.</div><div class='add'>+Fri Apr 27 08:29:51 2012  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* most of the Mac and BeOS patches merged, except path separators.</div><div class='add'>+	* test/rinda/test_rinda.rb: fix sticks on some testsf problem </div><div class='add'>+	  [Bug #6272]</div><div class='ctx'> </div><div class='del'>-	* error.c (err_append): generated SyntaxError was String.</div><div class='add'>+Wed Apr 25 05:56:56 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.h: xxx2INT, xxx2UINT checks values as int, not long.</div><div class='add'>+	* lib/optparse.rb (OptionParser#to_a): split for each lines.</div><div class='add'>+	  [ruby-dev:45568][Bug #6348]</div><div class='ctx'> </div><div class='del'>-	* ruby.h: remove typedef's. INT, UINT, UCHAR, USHORT.</div><div class='add'>+Tue Apr 24 21:20:39 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue May 12 17:38:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/optparse.rb (OptionParser#to_a): should split by end-of-line,</div><div class='add'>+	  and MUST TEST IT, MUST RUN THE TEST, MUST VERIFY BEFORE BACKPORT.</div><div class='add'>+	  [ruby-dev:45568][Bug #6348]</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_18.</div><div class='add'>+Tue Apr 24 14:55:41 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue May 12 11:38:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/optparse.rb (OptionParser#to_a): String#to_a is no longer</div><div class='add'>+	  defined.  [ruby-dev:45568][Bug #6348]</div><div class='ctx'> </div><div class='del'>-	* error.c (syserr_errno): returns errno of the SystemCallError.</div><div class='add'>+Sat Apr 21 07:16:16 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* error.c (rb_sys_fail): saves errno in the Exception.</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): fix padding of time zone</div><div class='add'>+	  offset.  [ruby-dev:43287][Bug #4458]</div><div class='ctx'> </div><div class='del'>-	* error.c (set_syserr): no need to protect syserr_list.</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): add an interim digit for</div><div class='add'>+	  the timezone offset which is less than an hour.</div><div class='ctx'> </div><div class='del'>-	* error.c (rb_sys_fail): no more bufsize limit.</div><div class='add'>+	* strftime.c (rb_strftime_with_timespec): fix carry-up bug and</div><div class='add'>+	  overwrite '+' with '-' if negative offset less than a hour.</div><div class='add'>+	  [ruby-core:44447][Bug #6323]</div><div class='ctx'> </div><div class='del'>-	* error.c (set_syserr): integer value of errno can be accessed by</div><div class='del'>-	  Errno::EXXX::Errno.</div><div class='add'>+Fri Apr 20 12:30:06 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-Sun May 10 03:10:33 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+	* lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem:  Removed to avoid</div><div class='add'>+	  conflict with ca-bundle.pem</div><div class='add'>+	* lib/rubygems/ssl_certs/VerisignClass3PublicPrimaryCertificationAuthority-G2.pem:</div><div class='add'>+	  ditto.</div><div class='add'>+	* lib/rubygems/ssl_certs/Entrust_net-Secure-Server-Certification-Authority.pem:</div><div class='add'>+	  ditto.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_tell etc.): moved from File class to IO class.</div><div class='add'>+Fri Apr 20 08:30:55 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-Fri May  8 12:26:37 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/rubygems:  Update to RubyGems 1.8.23 which contains security</div><div class='add'>+	  fixes:</div><div class='ctx'> </div><div class='del'>-	* pack.c (pack_unpack): should be unsigned int (was signed int).</div><div class='add'>+	  RubyGems now disallows redirection from HTTPS to HTTP.</div><div class='ctx'> </div><div class='del'>-Thu May  7 16:34:10 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	  RubyGems now verifies SSL connections.</div><div class='ctx'> </div><div class='del'>-	* pack.c (pack_pack): `V', `N' uses newly created NUM2UINT().</div><div class='add'>+	  See https://github.com/rubygems/rubygems/blob/1.8/History.txt for</div><div class='add'>+	  changes since 1.8.22.</div><div class='add'>+	* test/rubygems:  ditto.</div><div class='ctx'> </div><div class='del'>-	* ruby.h (NUM2UINT): new macro.</div><div class='add'>+Fri Apr 20 07:39:50 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* bignum.c (big2uint): try to convert bignum into UINT.</div><div class='add'>+	* lib/rubygems:  Update to RubyGems 1.8.22 plus r33517 and r35337 which</div><div class='add'>+	  were ported to the rubygems git repository.</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_match): needed to return false for match with nil.</div><div class='add'>+	  See https://github.com/rubygems/rubygems/blob/1.8/History.txt for</div><div class='add'>+	  changes since 1.8.11.</div><div class='ctx'> </div><div class='del'>-	* gc.c (obj_free): wrong condition to free string.</div><div class='add'>+	* test/rubygems:  ditto.</div><div class='ctx'> </div><div class='del'>-Wed May  6 21:08:08 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* lib/rubygems/version.rb:  Fixed init_with warning by calling into</div><div class='add'>+	  yaml_initialize (for syck) from psych's init_with</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_process_options): modified for DJGPP.</div><div class='add'>+Thu Apr 19 12:55:31 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed May  6 15:48:03 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/-test-/win32/dln/extconf.rb: need import library for ordinal</div><div class='add'>+	  entry even on mingw.  [ruby-core:44441][Bug #6320]</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_17.</div><div class='add'>+Wed Apr 18 23:08:58 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed May  6 01:37:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* configure.in (DOT, DOXYGEN): use AC_CHECK_PROGS instead of</div><div class='add'>+	  AC_CHECK_PROG which needs the third argument.  [ruby-core:44433]</div><div class='add'>+	  [Bug #6316]</div><div class='ctx'> </div><div class='del'>-	* eval.c: remove global variable `errat'.</div><div class='add'>+	* configure.in (PKG_CONFIG): fix condition to skip older version</div><div class='add'>+	  of pkg-config.  continue in backticks does not affect outside.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_longjmp): embed error position information in the</div><div class='del'>- 	  exception object.</div><div class='add'>+Tue Apr 17 21:35:47 2012  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat May  2 12:20:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb, test/rexml/test_namespace.rb:</div><div class='add'>+	  fix the default xml namespace URI validation.</div><div class='add'>+	  [ruby-dev:45169] [Bug #5956]</div><div class='add'>+	  Reported by Miho Hiramatsu. Thanks!!!</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_search): supports reverse search.</div><div class='add'>+Mon Apr 17 14:27:22 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_index_method): does update $~ etc.</div><div class='add'>+	* dln.c (rb_w32_check_imported): skip ordinal entries.  based on a</div><div class='add'>+	  patch by phasis68 (Heesob Park) at [ruby-core:44381].</div><div class='add'>+	  [ruby-core:44371][Bug #6303]</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_load): needed to clear the_dyna_vars.</div><div class='add'>+Sun Apr 15 14:57:00 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (dyna_var_asgn): do not push dyna_var, which is id == 0.</div><div class='add'>+	* test/test_pty.rb (test_pty_check_default): call PTY.check until</div><div class='add'>+	  "cat" command is finished.</div><div class='ctx'> </div><div class='del'>-	* error.c (Init_Exception): NotImplementError is no longer</div><div class='del'>-	  StandardError, which is not handled by default rescue.</div><div class='add'>+Sun Apr 15 14:54:16 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri May  1 00:35:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#windows?): new method.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (proc_options): `-d' turns on verbose flag too.</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#*): use above method.</div><div class='ctx'> </div><div class='del'>-	* error.c (exception): last argument may be the superclass of the</div><div class='del'>-	  defining exception(s).</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_execopts_redirect):</div><div class='add'>+	  windows doesn't support FD_CLOEXEC.</div><div class='ctx'> </div><div class='del'>-	* io.c (Init_IO): EOFError is now subclass of the IOError.</div><div class='add'>+Sun Apr 15 06:40:28 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (Init_IO): forgot to define IOError.</div><div class='add'>+	* include/ruby/win32.h (rb_w32_aspawn_flags): add the declaration of</div><div class='add'>+	  new function.</div><div class='ctx'> </div><div class='del'>-	* error.c (Init_Exception): old Exception class renamed to</div><div class='del'>-	  StandardError.  Exception now replaces old GlobalExit.</div><div class='add'>+	* process.c (enum): add EXEC_OPTION_PGROUP and move the position</div><div class='add'>+	  above for the usage in proc_spawn_n().</div><div class='ctx'> </div><div class='del'>-	* error.c (Init_Exception): Exception is now the root of the</div><div class='del'>-	  Global Exits.  There's no longer GlobalExit class.</div><div class='add'>+	* process.c (proc_spawn_n): add an argument to pass new option</div><div class='add'>+	  `new_pgroup`. The option specifies CREATE_NEW_PROCESS_GROUP flag to</div><div class='add'>+	  CreateProcessW(). This flag is necessary for the usage of</div><div class='add'>+	  Process.kill on the subprocess on Windows.</div><div class='ctx'> </div><div class='del'>-	* util.c (ruby_mktemp): check TMP, TMPDIR first.</div><div class='add'>+	* process.c (rb_exec_arg_addopt): ditto.</div><div class='ctx'> </div><div class='del'>-Thu Apr 30 01:08:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* process.c (rb_spawn_process): ditto.</div><div class='ctx'> </div><div class='del'>-	* lib/tk.rb: call 'unknown', if proc not defined.</div><div class='add'>+	* process.c (documentation for rb_f_spawn): add documentation for new</div><div class='add'>+	  option `new_pgroup` of spawn.</div><div class='ctx'> </div><div class='del'>-	* eval.c (handle_rescue): default rescue handles `Exceptional' not </div><div class='del'>-	  only the instance of the `Exception's.</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_execopts_new_pgroup):</div><div class='add'>+	  add tests for option `new_pgroup`.</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_raise): exception can be any object.</div><div class='add'>+	* test/ruby/test_thread.rb</div><div class='add'>+	  (TestThreadGroup#test_thread_timer_and_interrupt):</div><div class='add'>+	  add option `new_pgroup: true` to spawn on Windows. It's needed for</div><div class='add'>+	  Process.kill on a subprocess.</div><div class='ctx'> </div><div class='del'>-	* time.c (time_gm_or_local): call time_gmtime or time_localtime.</div><div class='add'>+	* win32/win32.c (CreateChild): add an argument to pass</div><div class='add'>+	  dwCreationFlags of CreateProcessW().</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_raise): raises TypeError if the class which is not a</div><div class='del'>-	  subclass of String is specified (checked in exc_new()).</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): ditto.</div><div class='ctx'> </div><div class='del'>-	* error.c (exc_new): need to check whether invalid class (not a</div><div class='del'>-	  subclass of String) is specified.</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn_flags): add new function to pass</div><div class='add'>+	  dwCreationFlags.</div><div class='ctx'> </div><div class='del'>-Wed Apr 29 21:05:44 1998  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn): refactor to move the content to</div><div class='add'>+	  rb_w32_aspawn_flags().</div><div class='add'>+	  [ruby-core:43245][Bug #6131]</div><div class='ctx'> </div><div class='del'>-	* ruby.c (proc_options): option '-e' via tempfile.</div><div class='add'>+Sun Apr 15 06:40:28 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Apr 28 15:27:58 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_thread.rb</div><div class='add'>+	  (TestThreadGroup#test_thread_timer_and_interrupt): skip on Windows.</div><div class='add'>+	  Process.kill cannot kill a subprocess if CREATE_NEW_PROCESS_GROUP</div><div class='add'>+	  flag is not specified in a call to CreateProcessW().</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_16.</div><div class='add'>+	* win32/win32.c (CreateChild): revert the usage of</div><div class='add'>+	  CREATE_NEW_PROCESS_GROUP flag for compatibility.</div><div class='add'>+	  [ruby-core:43245][Bug #6131]</div><div class='ctx'> </div><div class='del'>-Tue Apr 28 00:07:38 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Apr 15 04:35:48 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (obj_is_proc): type check predicate.</div><div class='add'>+	* io.c (rb_io_eof): use eof() instead of io_fillbuf(). It's because</div><div class='add'>+	  io_unread() doesn't work properly when reading CRLF with read(length)</div><div class='add'>+	  and mode 'r'.</div><div class='add'>+	  [ruby-core:44189][Bug #6271]</div><div class='ctx'> </div><div class='del'>-	* eval.c (obj_is_block): ditto.</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#test_read_crlf_and_eof):</div><div class='add'>+	  test for above.</div><div class='ctx'> </div><div class='del'>-Mon Apr 27 16:59:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Apr 15 03:00:54 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/gtk/gtk.c (Init_gtk): use timeout, not idle to avoid</div><div class='del'>-	  comsuming CPU too much.</div><div class='add'>+	* io.c (io_unread): fixed memory leak.  report by nagachika via IRC.</div><div class='ctx'> </div><div class='del'>-	* lib/tk.rb: use tcltklib#_invoke instead of `_eval'.</div><div class='add'>+Sun Apr 15 03:00:54 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Apr 27 16:59:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (static int io_fflush): add the definition.</div><div class='add'>+	  Use it in set_binary_mode_with_seek_cur().</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_sort): use dup, not clone.</div><div class='add'>+	* io.c (set_binary_mode_with_seek_cur): refactoring to split the</div><div class='add'>+	  content into io_unread(). Fix the possibility of buffer overflow.</div><div class='ctx'> </div><div class='del'>-Mon Apr 27 13:46:27 1998  Tadahiro Maebashi  &lt;maebashi@iij.ad.jp&gt;</div><div class='add'>+	* io.c (io_unread): add new implementation for Windows. Previous one</div><div class='add'>+	  caused invalid cursor position using IO#pos with OS text mode. New</div><div class='add'>+	  one fixes the bug.</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c (ip_invoke): invoke tcl command</div><div class='del'>-	  directly.  need not worry about escaping tcl characters.</div><div class='add'>+	* test/ruby/test_io_m17n.rb</div><div class='add'>+	  (TestIO_M17N#test_pos_dont_move_cursor_position): add a test for</div><div class='add'>+	  above bug.</div><div class='add'>+	  [ruby-core:43497] [Bug #6179]</div><div class='ctx'> </div><div class='del'>-Mon Apr 27 12:04:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Apr 15 03:00:54 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* random.c (f_rand): do not call srand() implicitly.</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_pos_with_getc): updated.</div><div class='add'>+	  see [ruby-core:43550]</div><div class='ctx'> </div><div class='del'>-Fri Apr 24 14:35:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Apr 15 03:00:54 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_15.</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_pos_with_getc): added.</div><div class='add'>+	  see [Bug #6179][ruby-core:43518]</div><div class='ctx'> </div><div class='del'>-	* parse.y (assignable): dyna_var_asgn actually defines nested</div><div class='del'>-	  local variables in outer context.</div><div class='add'>+Wed Apr 11 16:22:16 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* random.c (f_rand): call srand(), if it has not called yet.</div><div class='add'>+	* ext/-test-/add_suffix/bug.c (ruby_add_suffix): no static</div><div class='add'>+	  declaration.  [ruby-core:44277][Bug #6279]</div><div class='ctx'> </div><div class='del'>-	* random.c (f_srand): use tv_usec as the default seed.</div><div class='add'>+Sun Apr  8 06:53:55 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): values of nested local variables should be</div><div class='del'>- 	  independent.</div><div class='add'>+	* io.c (io_unread): cast as long the value for extra_max.</div><div class='add'>+	  [ruby-core:44137] [Bug #6257]</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_yield_0): local variables wrong nested conditions.</div><div class='add'>+Sat Apr  7 10:28:40 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Apr 22 23:27:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych.rb: bumping up psych version to match release.</div><div class='add'>+	* ext/psych/psych.gemspec: ditto</div><div class='ctx'> </div><div class='del'>-	* io.c (select_get_io): get IO object by `to_io'.</div><div class='add'>+Sat Apr  7 02:07:00 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_to_io): method to retrieve IO object, from delegating</div><div class='del'>- 	  object for example.</div><div class='add'>+	* ext/psych/parser.c: fall back to any encoding if the external</div><div class='add'>+	  encoding is wrong.  [ruby-core:44163]</div><div class='add'>+	* test/psych/test_encoding.rb: fix test</div><div class='ctx'> </div><div class='del'>-Wed Apr 22 16:52:37 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Apr  4 18:29:15 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_14.</div><div class='add'>+	* test/ruby/test_sleep.rb (TestSleep#test_sleep_5sec): syntax error.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_modify): check for embedded pointer reference.</div><div class='add'>+	* test/ruby/test_sleep.rb (TestSleep#test_sleep_5sec): call uname</div><div class='add'>+	  only on linux because it's a workaround for linux only.</div><div class='ctx'> </div><div class='del'>-	* gc.c (obj_free): ditto.</div><div class='add'>+Wed Apr  4 11:32:09 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* pack.c (pack_pack): p/P template to embed pointers.</div><div class='add'>+	* ext/-test-/add_suffix/bug.c: make all functions in util.c static</div><div class='add'>+	  to get rid of multiple definitions.  reported at</div><div class='add'>+	  https://trac.macports.org/ticket/33814</div><div class='ctx'> </div><div class='del'>-Wed Apr 22 00:07:10 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+Tue Apr  3 18:34:33 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_rindex): embarrassing typo.</div><div class='add'>+	* process.c (setreuid, setregid): suppress warnings.</div><div class='add'>+	  [ruby-core:43374][Bug #6169]</div><div class='ctx'> </div><div class='del'>-Tue Apr 21 12:31:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Mar 31 12:11:21 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_13.</div><div class='add'>+	* ext/openssl/ossl_x509cert.c: Fix doc typo.</div><div class='ctx'> </div><div class='del'>-	* configure.in (RUBY_LIB): supports --program-{prefix,suffix}.</div><div class='add'>+Fri Mar 30 14:17:17 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_rindex): new method.</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c: fix crash when parsing garbage data.</div><div class='add'>+	* test/openssl/test_pkcs7.rb: assert correct behavior for it.</div><div class='add'>+	  Thanks to Matt Venables for reporting the issue.</div><div class='add'>+	  [ruby-core:43250][Bug #6134]</div><div class='ctx'> </div><div class='del'>-	* io.c (io_binmode): should return self.</div><div class='add'>+Fri Mar 30 14:17:17 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Apr 21 08:23:04 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+	* test/openssl/test_x509cert.rb: exclude test that fails when issuing</div><div class='add'>+	  a certificate with RSA signature and DSS1 digest for earlier</div><div class='add'>+	  OpenSSL versions when used in conjunction with OpenSSL 1.0.1.</div><div class='add'>+	  Thanks, Vit Ondruch, for reporting the issue.</div><div class='add'>+	  [ruby-core:42949][Bug #6089]</div><div class='ctx'> </div><div class='del'>-	* parse.y (here_document): calling parse_string with wrong</div><div class='del'>-	  arguments.</div><div class='add'>+Fri Mar 30 14:15:40 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_aset): problem member assignment with name.</div><div class='add'>+	* string.c (str_new_empty): should copy also the encoding as an</div><div class='add'>+	  empty substring.  [ruby-dev:45441][Bug #6206]</div><div class='ctx'> </div><div class='del'>-Mon Apr 20 14:47:49 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Mar 30 14:14:36 2012  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_12.</div><div class='add'>+	* ext/date/date_core.c (datetime_s_now): [ruby-core:43256].</div><div class='ctx'> </div><div class='del'>-	* time.c (time_arg): args may be string (support for reduced</div><div class='del'>-	  implicit type conversion).</div><div class='add'>+Fri Mar 30 14:12:53 2012  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='ctx'> </div><div class='del'>-	* lib/base64.rb: changed to use pack/unpack with `m' template.</div><div class='add'>+	* numeric.c: fix flodivmod for cornercases [Bug #6044]</div><div class='add'>+	  add ruby_float_mod</div><div class='ctx'> </div><div class='del'>-Mon Apr 20 06:23:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* insns.def (opt_mod): use ruby_float_mod</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_remove_const): new method.</div><div class='add'>+	* internal.h: declare ruby_float_mod</div><div class='ctx'> </div><div class='del'>-Sat Apr 18 03:53:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_float.rb: tests for above</div><div class='ctx'> </div><div class='del'>-	* hash.c (hash_each_with_index): removed.  use Enumerable's</div><div class='del'>-	  each_with_index instead.</div><div class='add'>+	* test/ruby/envutil.rb: create helper assert_is_minus_zero</div><div class='ctx'> </div><div class='del'>-	* class.c (rb_include_module): check for super modules, since</div><div class='del'>- 	  module's included modules may be changed.</div><div class='add'>+Wed Mar 28 08:44:24 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Apr 17 21:50:47 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych.rb: updating version to match gem</div><div class='add'>+	* ext/psych/psych.gemspec: ditto</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: fixing deprecation warning</div><div class='ctx'> </div><div class='del'>-	* marshal.c (r_long): r_byte() may return signed byte.</div><div class='add'>+Mon Jul 18 13:36:47 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Apr 17 11:58:30 1998  NAGAI Hidetoshi  &lt;nagai@dumbo.ai.kyutech.ac.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych.rb: define a new BadAlias error class.</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_mainloop): thread and interrupt check.</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: raise an exception when</div><div class='add'>+	  deserializing an alias that does not exist.</div><div class='ctx'> </div><div class='del'>-Fri Apr 17 11:06:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/psych/test_merge_keys.rb: corresponding test.</div><div class='ctx'> </div><div class='del'>-	* eval.c (find_file): try to fopen() to check whether file exists.</div><div class='add'>+Fri Mar  9 06:29:22 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (load_file): ditto.</div><div class='add'>+	* ext/psych/lib/psych.rb (load, parse): stop parsing or loading after</div><div class='add'>+	  the first document has been parsed.</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_aset): struct member can be set by member name.</div><div class='add'>+	* test/psych/test_stream.rb: pertinent tests.</div><div class='ctx'> </div><div class='del'>-Fri Apr 17 00:47:19 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Fri Mar  9 06:17:05 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/extmk.rb.in: added m68k-human support</div><div class='add'>+	* ext/psych/lib/psych.rb (parse_stream, load_stream): if a block is</div><div class='add'>+	  given, documents will be yielded to the block as they are parsed.</div><div class='add'>+	  [ruby-core:42404] [Bug #5978]</div><div class='ctx'> </div><div class='del'>-	* file.c (LOCK_SH): defines moved.</div><div class='add'>+	* ext/psych/lib/psych/handlers/document_stream.rb: add a handler that</div><div class='add'>+	  yields documents as they are parsed</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_flatten_bang): simplified loop.</div><div class='add'>+	* test/psych/test_stream.rb: corresponding tests.</div><div class='ctx'> </div><div class='del'>-Thu Apr 16 16:52:01 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Mar  6 02:31:20 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_11.</div><div class='add'>+	* ext/psych/lib/psych/core_ext.rb: only extend Kernel if IRB is loaded</div><div class='add'>+	  in order to stop method pollution.</div><div class='ctx'> </div><div class='del'>-	* lib/tk.rb: thread support (experimental - maybe slow).</div><div class='add'>+Tue Feb 28 10:28:51 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_longjmp): trace event on exception in raising</div><div class='del'>- 	  context, just before raising exception.</div><div class='add'>+	* ext/psych/lib/psych.rb: default open YAML files with utf8 external</div><div class='add'>+	  encoding. [ruby-core:42967]</div><div class='add'>+	* test/psych/test_tainted.rb: ditto</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_s_members): forgot to check singletons.</div><div class='add'>+Fri Feb 24 13:54:33 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_aref): members can be accessed by names too.</div><div class='add'>+	* ext/psych/parser.c: prevent a memory leak by protecting calls to</div><div class='add'>+	  handler callbacks.</div><div class='add'>+	* test/psych/test_parser.rb: test to demonstrate leak.</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_flatten): new method.</div><div class='add'>+Fri Feb 24 08:08:38 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_longjmp): prints exception information with `-d'.</div><div class='add'>+	* ext/psych/parser.c: set parser encoding based on the YAML input</div><div class='add'>+	  rather than user configuration.</div><div class='add'>+	* test/psych/test_encoding.rb: corresponding tests.</div><div class='add'>+	* test/psych/test_parser.rb: ditto</div><div class='add'>+	* test/psych/test_tainted.rb: ditto</div><div class='ctx'> </div><div class='del'>-	* object.c (any_to_s): remove class name restriction.</div><div class='add'>+Fri Feb 10 03:41:31 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Apr 16 01:38:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/parser.c: removed external encoding setter, allow parser</div><div class='add'>+	  to be reused.</div><div class='add'>+	* ext/psych/lib/psych/parser.rb: added external encoding setter.</div><div class='add'>+	* test/psych/test_parser.rb: test parser reuse</div><div class='ctx'> </div><div class='del'>-	* file.c (thread_flock): do not block other threads.</div><div class='add'>+Wed Jan 18 12:49:15 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_trap_eval): signals are now delivered to the</div><div class='del'>- 	  current thread again.  In case that the current thread is dead,</div><div class='del'>- 	  signals are forwarded to the main thread.</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Added support for loading</div><div class='add'>+	  subclasses of String with ivars</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Added support for dumping</div><div class='add'>+	  subclasses of String with ivars</div><div class='add'>+	* test/psych/test_string.rb: corresponding tests</div><div class='ctx'> </div><div class='del'>-	* string.c (str_new4): need not to duplicate frozen strings.</div><div class='add'>+Wed Jan 18 10:39:47 2012  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Apr 15 08:33:47 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Added ability to load array</div><div class='add'>+	  subclasses with ivars.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Added ability to dump</div><div class='add'>+	  array subclasses with ivars.</div><div class='add'>+	* test/psych/test_array.rb: corresponding tests</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_inspect): remove restriction for struct names.</div><div class='add'>+Wed Dec 21 02:25:36 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Apr 15 02:55:02 1998  Kazuya 'Sharl' Masuda  &lt;sharl@www.ufo.co.jp&gt;</div><div class='add'>+	* ext/psych/emitter.c: fixing clang warnings. Thanks Joey!</div><div class='ctx'> </div><div class='del'>-	* x68 patches to config.sub, ext/extmk.rb.in</div><div class='add'>+Sun Dec 18 12:42:48 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Apr 15 01:22:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: BigDecimals can be restored</div><div class='add'>+	  from YAML.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: BigDecimals can be dumped</div><div class='add'>+	  to YAML.</div><div class='add'>+	* test/psych/test_numeric.rb: tests for BigDecimal serialization</div><div class='ctx'> </div><div class='del'>-	* string.c (str_dup_frozen): do not duplicate frozen strings.</div><div class='add'>+Sun Dec 18 12:03:13 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): allow nested parenthesises.</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb: Strings that look like dates</div><div class='add'>+	  should be treated as strings and not dates.</div><div class='ctx'> </div><div class='del'>-	* io.c (obj_displayln): prints newline after `display'ing the</div><div class='add'>+	* test/psych/test_scalar_scanner.rb: corresponding tests.</div><div class='add'>+</div><div class='add'>+Wed Dec  7 08:04:31 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb (module Psych): parse and load methods take</div><div class='add'>+	  an optional file name that is used when raising Psych::SyntaxError</div><div class='add'>+	  exceptions</div><div class='add'>+	* ext/psych/lib/psych/syntax_error.rb (module Psych): allow nil file</div><div class='add'>+	  names and handle nil file names in the exception message</div><div class='add'>+	* test/psych/test_exception.rb (module Psych): Tests for changes.</div><div class='add'>+</div><div class='add'>+Wed Nov 30 09:09:37 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): parse method can take an option file</div><div class='add'>+	  name for use in exception messages.</div><div class='add'>+	* test/psych/test_parser.rb: corresponding tests.</div><div class='add'>+</div><div class='add'>+Tue Nov 22 04:46:22 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: remove autoload from psych</div><div class='add'>+	* ext/psych/lib/psych/json.rb: ditto</div><div class='add'>+</div><div class='add'>+Wed Nov  9 04:52:16 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/tree_builder.rb: dump complex numbers,</div><div class='add'>+	  rationals, etc with reference ids.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: ditto</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: loading complex numbers,</div><div class='add'>+	  rationals, etc with reference ids.</div><div class='add'>+	* test/psych/test_object_references.rb: corresponding tests</div><div class='add'>+</div><div class='add'>+Mon Nov  7 20:31:52 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb: make sure strings that look</div><div class='add'>+	  like base 60 numbers are serialized as quoted strings.</div><div class='add'>+	* test/psych/test_string.rb: test for change.</div><div class='add'>+</div><div class='add'>+Thu Oct 27 08:47:38 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c: remove unused variable.</div><div class='add'>+</div><div class='add'>+Wed Oct  5 02:50:27 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/syntax_error.rb: Add file, line, offset, and</div><div class='add'>+	  message attributes during parse failure.</div><div class='add'>+	* ext/psych/parser.c: Update parser to raise exception with correct</div><div class='add'>+	  values.</div><div class='add'>+	* test/psych/test_exception.rb: corresponding tests.</div><div class='add'>+</div><div class='add'>+Wed Oct  5 01:52:16 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/parser.c (parse): Use context_mark for indicating error</div><div class='add'>+	  line and column.</div><div class='add'>+</div><div class='add'>+Wed Oct  5 01:22:08 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb: use normal begin / rescue</div><div class='add'>+	  since postfix rescue cannot receive the exception class. Thanks</div><div class='add'>+	  nagachika!</div><div class='add'>+</div><div class='add'>+Tue Mar 27 22:22:50 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_STACK_GROW_DIRECTION): substitute CPU name as</div><div class='add'>+	  shell variable name.  based on the patch by The Written Word Inc. at</div><div class='add'>+	  [ruby-core:40421].  [Bug #5488]</div><div class='add'>+</div><div class='add'>+Mon Mar 26 09:57:12 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_nextc): set encoding for the buffer of ripper.</div><div class='add'>+</div><div class='add'>+Sun Mar 18 13:23:28 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): return ASCII-8BIT even if 2nd string</div><div class='add'>+	  is ascii only string. [ruby-core:42354] [Bug #5968]</div><div class='add'>+</div><div class='add'>+Tue Mar  6 18:55:37 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_send, assert_not_send):</div><div class='add'>+	  parenthesize non-empty arguments.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 18:55:37 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_send): make arguments in</div><div class='add'>+	  the default message clearer.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 12:48:08 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (set_rawmode): clear ECHOE and ECHOK</div><div class='add'>+	  bits too.</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (echo_p): ignore ECHOE and ECHOK bits.</div><div class='add'>+	  [ruby-dev:45309] [Bug #6116]</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_raw): fix rdoc.</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_set_echo): mentioned about</div><div class='add'>+	  platform dependency.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 12:40:08 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_raw, console_set_raw)</div><div class='add'>+	  (console_getch): optional parameters.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Tue Mar  6 12:39:27 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (console_cooked, console_set_cooked):</div><div class='add'>+	  new methods to reset cooked mode.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Tue Mar  6 12:31:47 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.c (io_getch): default delegating method</div><div class='add'>+	  for StringIO.  https://github.com/nobu/io-console/issues/4</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: moved some methods to hidden modules.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 12:29:34 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO):  Mention io/console methods.  [Ruby 1.9 - Bug #5602]</div><div class='add'>+	* ext/io/console/console.c:  Mention that io/console must be required</div><div class='add'>+	  similar to lib/time.rb</div><div class='add'>+</div><div class='add'>+Tue Mar  6 11:42:52 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/syck/rubytypes.rb (Exception.yaml_new): fix bug</div><div class='add'>+	  that causes YAML serialization problem for Exception.</div><div class='add'>+	  Exception#initialize doesn't use visible instance variable for</div><div class='add'>+	  the exception message, so call the method with the message.</div><div class='add'>+	  patched by Jingwen Owen Ou &lt;jingweno AT gmail.com&gt;.</div><div class='add'>+	  http://github.com/ruby/ruby/pull/41</div><div class='add'>+</div><div class='add'>+Fri Mar  2 22:09:03 2012  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .travis.yml: Backport TravisCI configuration from trunk.</div><div class='add'>+</div><div class='add'>+Thu Mar  1 18:39:44 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_join): honor input encodings than ASCII-8BIT.</div><div class='add'>+	  [ruby-core:40338] [Bug #5483]</div><div class='add'>+</div><div class='add'>+Tue Feb 28 11:56:52 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (debugflags): check if -ggdb is accepted.</div><div class='add'>+	  [ruby-core:42875][Bug #6080]</div><div class='add'>+</div><div class='add'>+Mon Feb 27 17:25:40 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): since methods</div><div class='add'>+	  can be overridden, so should not make an assumption on the type</div><div class='add'>+	  of results.  [ruby-core:42969][Bug #6093]</div><div class='add'>+</div><div class='add'>+Mon Feb 27 02:28:17 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (add_code_range_to_buf0): wrong condition of duplicated</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+Sun Feb 26 12:26:26 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): call on special object instead of</div><div class='add'>+	  self.  since stabby lambda is a syntax, so it should not be</div><div class='add'>+	  affected by the context.  [ruby-core:42349][Bug #5966]</div><div class='add'>+</div><div class='add'>+	* insns.def (send): no special deal for FCALL.  self should be put</div><div class='add'>+	  on TOS instead.</div><div class='add'>+</div><div class='add'>+Sat Feb 25 23:47:49 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (utime_internal): fix a variable missed to replace.</div><div class='add'>+	  [ruby-core:42864] [Bug #6077]</div><div class='add'>+</div><div class='add'>+Sat Feb 25 21:29:09 2012  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_literal.rb (TestRubyLiteral#test_special_const):</div><div class='add'>+	  test for https://bugs.php.net/bug.php?id=61095</div><div class='add'>+</div><div class='add'>+Sat Feb 25 21:29:09 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c, file.c, io.c (rb_sys_fail_path): use rb_sys_fail_str.</div><div class='add'>+</div><div class='add'>+	* error.c: new functions to deal exceptions with string instances.</div><div class='add'>+</div><div class='add'>+	* dir.c, file.c, io.c: use rb_sys_fail_path.</div><div class='add'>+</div><div class='add'>+Sat Feb 25 21:18:12 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_inspect), io.c (rb_io_inspect): keep encoding of path.</div><div class='add'>+	  [Bug #6072]</div><div class='add'>+</div><div class='add'>+Sat Feb 25 21:18:12 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): keep path in original encoding.</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): prefer the encoding of message over</div><div class='add'>+	  locale.  [ruby-dev:45279][Bug #6071]</div><div class='add'>+</div><div class='add'>+Sat Feb 25 17:10:51 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: use chomp(?/) instead of sub to optimize and avoid</div><div class='add'>+	  to regexping invalid string.</div><div class='add'>+</div><div class='add'>+Sat Feb 25 16:39:13 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_marshal_load): raise error on invalid data.</div><div class='add'>+	  reported by John Firebaugh [ruby-core:42860] [Bug #6076]</div><div class='add'>+</div><div class='add'>+Fri Feb 24 23:49:05 2012  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (delete_field): Bug fix so previous value is</div><div class='add'>+	  returned. Patch by Nick Recobra [Bug #6063]</div><div class='add'>+</div><div class='add'>+Fri Feb 24 08:53:28 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_string, parser_yylex): insert a backslash</div><div class='add'>+	  if the next character is non-ascii.  [ruby-dev:45278] [Bug #6069]</div><div class='add'>+</div><div class='add'>+Thu Feb 23 14:44:36 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::Parser#initialize_regexp):</div><div class='add'>+	  use \A \z instead of ^ $. [Bug #5843]</div><div class='add'>+</div><div class='add'>+Thu Feb 23 08:08:23 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_uchmod): typo.  [Bug#5671] [ruby-dev:44898]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb (TestFile#test_chmod_m17n): test of above bug.</div><div class='add'>+</div><div class='add'>+Wed Feb 22 23:27:52 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/iconv/test_option.rb: enabled.  [ruby-core:42802][Bug #6061]</div><div class='add'>+</div><div class='add'>+Wed Feb 22 22:04:15 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_foreach): argument check before making Enumerator.</div><div class='add'>+	  [ruby-dev:31525]</div><div class='add'>+</div><div class='add'>+Wed Feb 22 22:04:15 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_foreach): return enumerator including kerword</div><div class='add'>+	  arguments.  [ruby-dev:45267][Bug #6054]</div><div class='add'>+</div><div class='add'>+Wed Feb 22 21:42:16 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove workaround replacement from gcc to gcc-4.2.</div><div class='add'>+	  [Backport #6043]</div><div class='add'>+</div><div class='add'>+Wed Feb 22 08:11:06 2012  Narihiro Nakamura  &lt;authornari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c : remove gc_clear_mark_on_sweep_slots() and use</div><div class='add'>+	  rest_sweep() instead of it, because some dead objects might be</div><div class='add'>+	  marked in next the mark phase by false pointers.</div><div class='add'>+	  [ruby-core:42672]</div><div class='add'>+</div><div class='add'>+Sun Feb 19 12:27:24 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: ignore all warnings from an arbitrary</div><div class='add'>+	  header in /usr/local/include.</div><div class='add'>+</div><div class='add'>+Fri Feb 17 12:51:25 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_header): log the content of header.</div><div class='add'>+</div><div class='add'>+Fri Feb 17 12:26:15 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb (test_completion_proc_empty_result):</div><div class='add'>+	  ensure clearance of Readline's line_buffer after the test.</div><div class='add'>+</div><div class='add'>+Fri Feb 17 11:46:39 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb (test_line_buffer__point): use</div><div class='add'>+	  lambda not to exit entire method by "return".  or "next" for</div><div class='add'>+	  proc.  [ruby-dev:45042] [Bug #5802]</div><div class='add'>+</div><div class='add'>+Fri Feb 17 10:15:54 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: check _DB_H_ macro unavailable except</div><div class='add'>+	  Berkeley DB library.</div><div class='add'>+</div><div class='add'>+Fri Feb 17 10:14:47 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb: fix skip condition for libgdbm 1.8.0 or prior.</div><div class='add'>+	  reported by Bohuslav Kabrda.</div><div class='add'>+	  [ruby-core:42685] [ruby-trunk - Bug #6036]</div><div class='add'>+</div><div class='add'>+Fri Feb 17 09:53:46 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (import_ucm): don't use \h because the</div><div class='add'>+	  script should work with ruby 1.8.</div><div class='add'>+</div><div class='add'>+	* tool/enc-unicode.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 16 17:54:14 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: merge trunk's ext/dbm/extconf.rb and</div><div class='add'>+	  related functions of lib/mkmf.rb. [Backport #6021]</div><div class='add'>+</div><div class='add'>+Thu Feb 16 09:25:52 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (enable_pthread): use -pthread on OpenBSD without</div><div class='add'>+	  explicit option. patched by Jeremy Evans. [ruby-core:38572]</div><div class='add'>+</div><div class='add'>+Thu Feb 16 07:34:34 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_reset_root_local_storage): add a new function to</div><div class='add'>+	  restore rb_thread_t::local_storage.</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_obj_is_fiber): add a new function to tell finalizer to</div><div class='add'>+	  prevent fibers from destroy.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_call_finalizer): don't sweep fibers at finalizing</div><div class='add'>+	  objspace.</div><div class='add'>+</div><div class='add'>+	* internal.h (rb_fiber_reset_root_local_storage, rb_obj_is_fiber):</div><div class='add'>+	  add prototypes.</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_vm_destruct): reset main thread's local_storage before</div><div class='add'>+	  free main thread. rb_thread_t::local_storage is replaced by fiber's</div><div class='add'>+	  local storage when forked from fiber, and it should be already freed</div><div class='add'>+	  when the fiber was destroyed. [ruby-core:41456] [Bug #5700]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb (test_fork_from_fiber): add test for fork</div><div class='add'>+	  from fiber.</div><div class='add'>+</div><div class='add'>+Thu Feb 16 06:30:37 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (callback): deal with unsinged integers.</div><div class='add'>+	  [ruby-core:42458][Bug #5991][Bug #6022]</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/conversions.c (value_to_generic, generic_to_value):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (callback): same as r34506.</div><div class='add'>+</div><div class='add'>+Wed Feb 15 10:35:43 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (FIXNUM_P): simple flag should be int.</div><div class='add'>+</div><div class='add'>+Wed Feb 15 10:33:41 2012  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall):  Call respond_to? with matching arity for</div><div class='add'>+	  legacy single-argument implementations.  [ruby-trunk - Bug #6000]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 10:25:22 2012  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall): set array elements one-by-one to fix</div><div class='add'>+	  compile error with Fujitsu C Compiler 5.6 on Solaris 10 on Sparc.</div><div class='add'>+</div><div class='add'>+Wed Feb 15 10:25:22 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb: tests that respond_to? returns false.</div><div class='add'>+</div><div class='add'>+Wed Feb 15 10:25:22 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (check_funcall): try respond_to? first if redefined.</div><div class='add'>+	  [Bug #5158]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 07:15:50 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): guard the whole expression.</div><div class='add'>+	  [ruby-dev:45021][Bug#5786]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 05:08:25 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_to_ptr): use rb_check_funcall.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (dlcfunc_mark), ext/dl/cptr.c (dlptr_mark):</div><div class='add'>+	  workaround to mark wrapped object.  this is not a true fix,</div><div class='add'>+	  because [Bug #4929] is caused by the interface design of DL.</div><div class='add'>+</div><div class='add'>+Wed Feb 15 05:04:47 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_aref, rb_dlptr_aset): check NULL pointer</div><div class='add'>+	  dereference.</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: decrease the code that depends on timing.</div><div class='add'>+	  [Bug #372] [Bug #4160]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 05:03:41 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb (test_remote_array_and_hash):</div><div class='add'>+	  add local variables to protect objects from GC. [ruby-dev:44253]</div><div class='add'>+	  [Bug #5104]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 05:02:43 2012  Masaki Suketa &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb (test_err_in_callback): </div><div class='add'>+	  skip test if ADODB.connection is not available.</div><div class='add'>+</div><div class='add'>+Wed Feb 15 04:49:23 2012  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (debug_lines, coverage): set file path encoding for coverage</div><div class='add'>+	  result.  [ruby-dev:44950]</div><div class='add'>+</div><div class='add'>+Tue Feb 14 16:57:11 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake/file_list.rb (Rake::FileList#egrep): there is no need to</div><div class='add'>+	  open files in binary mode.</div><div class='add'>+	  see more details in https://github.com/jimweirich/rake/issues/74</div><div class='add'>+</div><div class='add'>+Tue Feb 14 16:52:17 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/encoding.rb (RDoc::Encoding.read_file): fixup newline chars</div><div class='add'>+	  on Windows.</div><div class='add'>+	  see https://github.com/rdoc/rdoc/issues/87</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_markup_pre_process.rb</div><div class='add'>+	  (TestRDocMarkupPreProcess#test_include_file, </div><div class='add'>+	  TestRDocMarkupPreProcess#test_include_file_encoding_incompatible):</div><div class='add'>+	  follow above change.</div><div class='add'>+</div><div class='add'>+Tue Feb 14 16:34:11 2012  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_commands_help_command.rb: Add one</div><div class='add'>+	  `require` because if run test-all with test/unit parallel</div><div class='add'>+	  running, sometimes this test fails by some constants not found.</div><div class='add'>+	  The error reason is some worker doesn't require the file needed by</div><div class='add'>+	  this test. This issue is related to [ruby-core:36168].</div><div class='add'>+</div><div class='add'>+Tue Feb 14 15:58:31 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (initial_params): pack in a struct.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_set_params): set parameters always.</div><div class='add'>+	  [ruby-dev:44648] [Bug #5467]</div><div class='add'>+</div><div class='add'>+Tue Feb 14 15:44:42 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/irb/test_completion.rb: skip if cannot load irb/completion</div><div class='add'>+	  (maybe readline does not exist).</div><div class='add'>+</div><div class='add'>+Tue Feb 14 15:07:23 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (build_message): skip escaped</div><div class='add'>+	  question marks.</div><div class='add'>+</div><div class='add'>+Mon Feb 13 12:06:29 2012  Loren Segal  &lt;lsegal@soen.ca&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): use directive hack to make ARGF documentable</div><div class='add'>+	  in other tools.  [ruby-core:42515][Bug #6007]</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:57:56 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rdoc-mode.el (rdoc-imenu-create-index): Add imenu support</div><div class='add'>+	  to rdoc-mode.</div><div class='add'>+</div><div class='add'>+	* misc/rdoc-mode.el (rdoc-mode): Fix regexp patterns containing</div><div class='add'>+	  "\s " where CR/LF is not supposed to match.</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:56:23 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rdoc-mode.el (rdoc-mode): Add provide so that requiring</div><div class='add'>+	  this library succeeds.</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:53:18 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink, Tempfile::Remover#call): Just</div><div class='add'>+	  call File.unlink and ignore ENOENT because existence check</div><div class='add'>+	  before unlinking does not help in terms of race condition.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink, Tempfile::Remover#call): My</div><div class='add'>+	  comment about thread safeness is obsolete.</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:50:28 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Fix rdoc markups.</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:50:28 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb (Shellwords#shellsplit): Fix a bug where</div><div class='add'>+	  consecutive backslashes in double quotes are all removed except</div><div class='add'>+	  the one at the tail.</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:38:13 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb (Shellwords#shellescape): Drop the //n flag</div><div class='add'>+	  that only causes warnings with no real effect.  [Bug #5637]</div><div class='add'>+</div><div class='add'>+Sun Feb 12 16:34:55 2012  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/merger.rb (#default_merge_branch): Add support for</div><div class='add'>+	  Subversion 1.7 which adopted a whole new working directory</div><div class='add'>+	  structure.</div><div class='add'>+</div><div class='add'>+Sun Feb 12 09:38:46 2012  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method): should not call method_added hook</div><div class='add'>+	  for undef operation. [Bug #5015]</div><div class='add'>+</div><div class='add'>+Sun Feb 12 09:29:28 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): Power PC does not</div><div class='add'>+	  allow unaligned word access.</div><div class='add'>+</div><div class='add'>+	* st.c (UNALIGNED_WORD_ACCESS): x86_64 allows unaligned word</div><div class='add'>+	  access as well as i386.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 08:06:12 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (test_multibyte_read_write): start server</div><div class='add'>+	  for each length to avoid race condition.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 06:13:07 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): The * needs to be escaped to avoid formatting in</div><div class='add'>+	  fnmatch comment.</div><div class='add'>+	  patched by @dalton. https://github.com/ruby/ruby/pull/91</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:38:48 2012  Hiroshi Shirosaki &lt;h.shirosaki@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_sys_fail_path): move the definition.</div><div class='add'>+	  Move above for using it in set_binary_mode_with_seek_cur().</div><div class='add'>+</div><div class='add'>+	* io.c (set_binary_mode_with_seek_cur): fix improper seek cursor.</div><div class='add'>+	  Seeking file cursor with setting binary mode has possibility to</div><div class='add'>+	  cause infinite loop. Fixed the bug and refined error handling.</div><div class='add'>+	  Introduced at r34043.</div><div class='add'>+</div><div class='add'>+	  And cleanups as below.</div><div class='add'>+	  Remove unnecessary parentheses of `fptr`.</div><div class='add'>+	  Use return value of setmode().</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb</div><div class='add'>+	  (TestIO_M17N#test_seek_with_setting_binmode): add a test for abobe.</div><div class='add'>+	  [ruby-core:41671] [Bug #5714]</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:38:48 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb</div><div class='add'>+	  (TestIO_M17N#test_{read_with_binmode_and_get[cs]}): only for Windows.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:38:48 2012  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_fd_is_text): new function.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_stdhandle): set default mode of stdin as binmode.</div><div class='add'>+</div><div class='add'>+	* io.c (set_binary_mode_with_seek_cur): new function to replace</div><div class='add'>+	  SET_BINARY_MODE_WITH_SEEK_CUR macro.  now returns previous mode of the</div><div class='add'>+	  fd and take care of LF in rbuf.</div><div class='add'>+</div><div class='add'>+	* io.c (do_writeconv): set text mode when needed.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): need to change the mode of the IO to binmode</div><div class='add'>+	  temporally when the length for IO#read, because IO#read with length</div><div class='add'>+	  must behave so.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#test_{read_with_length,</div><div class='add'>+	  read_with_length_binmode,get[cs]_and_read_with_binmode,</div><div class='add'>+	  read_with_binmode_and_get[cs],read_write_with_binmode}): tests for</div><div class='add'>+	  above changes.</div><div class='add'>+</div><div class='add'>+	all patches are written by Hiroshi Shirosaki. [ruby-core:41496]</div><div class='add'>+	[Feature #5714]</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:37:56 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_order.rb (OrderTester#test_more_ordering): use</div><div class='add'>+	  GZip::GzReader.open instead of GZip::GzReader.new with File.new.</div><div class='add'>+	  fixed a test error on Windows introduced at r33946.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:37:34 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_initialize): revert a part of r33937.</div><div class='add'>+	  1st, to change the mode of an IO is very sensitive problem, so</div><div class='add'>+	  fixed test errors on Windows introduced at r33953.</div><div class='add'>+	  the maintainer of this library should judge it.</div><div class='add'>+	  2nd, usually Zlib::GzReader.new is not called directly.  #initialize</div><div class='add'>+	  is called via .open, and in the method the I/O is opened in binary</div><div class='add'>+	  mode, so there is no problem without changing the mode in #initialize.</div><div class='add'>+</div><div class='add'>+	  fixed test errors on Windows introduced at r33947.</div><div class='add'>+Sat Feb 11 03:23:58 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_initialize): use binary mode by default</div><div class='add'>+	  under Windows. Patch by Hiroshi Shirosaki. [ruby-core:40706]</div><div class='add'>+	  [Feature #5562]</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (void rb_econv_binmode): define NEWLINE</div><div class='add'>+	  decorator.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_cloexec_fcntl_dupfd): Introduce NEED_READCONV and</div><div class='add'>+	  NEED_WRITECONV to replace universal newline decorator by CRLF only</div><div class='add'>+	  when required to improve file reading and writing under Windows.</div><div class='add'>+	  Patch by Hiroshi Shirosaki. [ruby-core:40706] [Feature #5562]</div><div class='add'>+	* io.c (do_writeconv): adjust binary mode if required.</div><div class='add'>+	* io.c (read_all, appendline, swallow, rb_io_getline_1): ditto.</div><div class='add'>+	* io.c (io_getc, rb_io_each_codepoint, rb_io_ungetc): ditto.</div><div class='add'>+	* io.c (rb_io_binmode, rb_io_ascii8bit_binmode): ditto.</div><div class='add'>+	* io.c (rb_io_extract_modeenc, rb_sysopen): ditto.</div><div class='add'>+	* io.c (pipe_open, prep_stdio, io_encoding_set): ditto.</div><div class='add'>+	* io.c (rb_io_s_pipe, copy_stream_body): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (EOT): add test for pipe and stdin in</div><div class='add'>+	  binary mode.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_stdhandle): remove O_BINARY from stdhandle</div><div class='add'>+	  initialization.</div><div class='add'>+	* win32/win32.c (rb_w32_write): use FTEXT mode accordingly.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:20:22 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_next_argv): wrong timing of setting ecflags.</div><div class='add'>+	  fixed the failure of TestArgf#test_textmode introduced at r33662.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:19:45 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb</div><div class='add'>+	  (TestIO_M17N#test_default_stdout_stderr_mode): new test for</div><div class='add'>+	  r33627-33629.  see [backport #5565]</div><div class='add'>+Sat Feb 11 03:20:22 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_NEWLINE_DECORATOR_READ_MASK,</div><div class='add'>+	  ECONV_NEWLINE_DECORATOR_WRITE_MASK): new macro.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc, pipe_open, prep_stdio, argf_next_argv):</div><div class='add'>+	  set TEXTMODE_NEWLINE_DECORATOR_ON_WRITE for textmode on creating IO</div><div class='add'>+	  if the flag is available.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): drop decorators for reading.</div><div class='add'>+</div><div class='add'>+	* io.c (make_readconv): drop decorators for writing.</div><div class='add'>+</div><div class='add'>+	* io.c (do_writeconv): existing writeconv is not the condition to raise</div><div class='add'>+	  ArgumentError.  should check textmode or not.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb</div><div class='add'>+	  (TestIO_M17N#test_{cr,lf,crlf}_decorator_on_stdout): test above</div><div class='add'>+	  changes.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:19:45 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#test_{default_mode_on_dosish,</div><div class='add'>+	  default_mode_on_unix,text_mode,binary_mode}): sorry for wrong test</div><div class='add'>+	  committed in r33144.  I'd misunderstood the spec of ruby's universal</div><div class='add'>+	  newline.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:17:41 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (TestIO_M17N#test_{default_mode_on_dosish,</div><div class='add'>+	  default_mode_on_unix,text_mode,binary_mode}): tests for [Bug #5164].</div><div class='add'>+</div><div class='add'>+Sat Feb 11 03:13:27 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: enabled econv newline option.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 02:39:09 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): clear inine-cache when constant's</div><div class='add'>+	  visibility is modified. [ruby-dev:44929]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_private_constants_clear_inlinecache):</div><div class='add'>+	  add test for it.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 02:39:09 2012  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): print a warning when no argument</div><div class='add'>+	  is passwd to Module#private_constant.  [ruby-list:48558]</div><div class='add'>+</div><div class='add'>+	* vm_method.c (set_method_visibility): ditto for</div><div class='add'>+	  Module#private_class_method.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 02:39:09 2012  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): Module#private_constant has</div><div class='add'>+	  changed the visibility of only the first argument.  Now it changes</div><div class='add'>+	  all of them.  [ruby-list:48558]</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 Feb 11 02:39:09 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): clear inine-cache when constant's</div><div class='add'>+	  visibility is modified. [ruby-dev:44929]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_private_constants_clear_inlinecache):</div><div class='add'>+	  add test for it.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 02:39:09 2012  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): print a warning when no argument</div><div class='add'>+	  is passwd to Module#private_constant.  [ruby-list:48558]</div><div class='add'>+</div><div class='add'>+	* vm_method.c (set_method_visibility): ditto for</div><div class='add'>+	  Module#private_class_method.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 02:39:09 2012  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (set_const_visibility): Module#private_constant has</div><div class='add'>+	  changed the visibility of only the first argument.  Now it changes</div><div class='add'>+	  all of them.  [ruby-list:48558]</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 Feb 11 02:26:51 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/openssl/buffering.rb: Force multi-byte strings to be treated as</div><div class='add'>+	  binary data.</div><div class='add'>+	* test/openssl/test_ssl.rb: Add test for it.</div><div class='add'>+</div><div class='add'>+	Thanks to Niklas Baumstark for reporting the issue!</div><div class='add'>+</div><div class='add'>+	[Ruby 1.9 - Bug #5233] [ruby-core:39120]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 17:25:28 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (SortedSet.setup): remove old_init after initialize</div><div class='add'>+	  method is redefined.  The remove before redefinition makes the</div><div class='add'>+	  warning prevention fragile.  [ruby-dev:44892]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 17:02:12 2012  okkez  &lt;okkez000@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread): fix memory</div><div class='add'>+	  leak. [ruby-dev:44904] [Bug #5688]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 05:22:32 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_setcontext): Use longjmp() instead of swapcontext() on</div><div class='add'>+	  FreeBSD 9. [ruby-dev:41316] [Bug #3295] [Bug #5526]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 05:13:12 2012  Ayumu AIZAWA  &lt;ayumu.aizawa@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: Added examples for Object#is_a? and</div><div class='add'>+	  Object#instance_of? patcheed from Manoj Kumar.</div><div class='add'>+	  [Bug #5880] [ruby-core:42057]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 05:11:43 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_next_argv): reset ARGF.next_p on ARGV.replace.</div><div class='add'>+	  r34409 breaks replacing ARGV.</div><div class='add'>+	  [ruby-dev:45160] [Bug #5952]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 05:11:43 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_close): skip stdin, which should be readable again.</div><div class='add'>+	  [ruby-dev:45160] [Bug #5952]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_readlines): reinitialize after all read to be</div><div class='add'>+	  readable again.</div><div class='add'>+</div><div class='add'>+Fri Feb  9 01:36:19 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r34482 from trunk</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Add SSL constants and allow to unset SSL</div><div class='add'>+	  option to prevent BEAST attack. See [Bug #5353].</div><div class='add'>+</div><div class='add'>+	  In OpenSSL, OP_DONT_INSERT_EMPTY_FRAGMENTS is used to prevent</div><div class='add'>+	  TLS-CBC-IV vulunerability described at</div><div class='add'>+	  http://www.openssl.org/~bodo/tls-cbc.txt</div><div class='add'>+	  It's known issue of TLSv1/SSLv3 but it attracts lots of attention</div><div class='add'>+	  these days as BEAST attack. (CVE-2011-3389)</div><div class='add'>+</div><div class='add'>+	  Until now ossl sets OP_ALL at SSLContext allocation and call</div><div class='add'>+	  SSL_CTX_set_options at connection.  SSL_CTX_set_options updates the</div><div class='add'>+	  value by using |= so bits set by OP_ALL cannot be unset afterwards.</div><div class='add'>+	  This commit changes to call SSL_CTX_set_options only 1 time for each</div><div class='add'>+	  SSLContext. It sets the specified value if SSLContext#options= are</div><div class='add'>+	  called and sets OP_ALL if not.</div><div class='add'>+</div><div class='add'>+	  To help users to unset bits in OP_ALL, this commit also adds several</div><div class='add'>+	  constant to SSL such as</div><div class='add'>+	  OpenSSL::SSL::OP_DONT_INSERT_EMPTY_FRAGMENTS.  These constants were</div><div class='add'>+	  not exposed in Ruby because there's no way to unset bits in OP_ALL</div><div class='add'>+	  before.</div><div class='add'>+</div><div class='add'>+	  Following is an example to enable 0/n split for BEAST prevention.</div><div class='add'>+</div><div class='add'>+	    ctx.options = OP_ALL &amp; ~OP_DONT_INSERT_EMPTY_FRAGMENTS</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb: Test above option exists.</div><div class='add'>+</div><div class='add'>+Thu Feb  9 17:08:20 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_mark): mark original Thread object from saved_thread.</div><div class='add'>+	  [ruby-dev:44567] [Bug #5386]</div><div class='add'>+</div><div class='add'>+Thu Feb  9 17:05:07 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (HAVE_GETCONTEXT): see getcontext(3) because DragonFly BSD</div><div class='add'>+	  x64 port doesn't have it.</div><div class='add'>+</div><div class='add'>+Thu Feb  9 16:19:04 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/memory_status.rb (Memory::Win32): 64bit support.</div><div class='add'>+</div><div class='add'>+Thu Feb  9 16:19:04 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/value.rb (DL::ValueUtil.{unsigned_value,signed_value}):</div><div class='add'>+	  currenly pack/unpack does not accept "q!" and "Q!".</div><div class='add'>+</div><div class='add'>+Thu Feb  9 16:19:04 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/conversions.c (value_to_generic): src is not guranteed as</div><div class='add'>+	  a Bignum if the type is LONG_LONG.  it may be a Fixnum if the value</div><div class='add'>+	  is small.</div><div class='add'>+</div><div class='add'>+Thu Feb  9 16:19:04 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/types.rb: Win64 support.</div><div class='add'>+</div><div class='add'>+Thu Feb  9 11:11:15 2012  Hiroshi Shirosaki &lt;h.shirosaki@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (Init_dbm): fix a build error on mswin32.</div><div class='add'>+	  use `extern __declspec(dllimport)` for dll link with VC.</div><div class='add'>+	  [ruby-core:41996] [Bug #5869]</div><div class='add'>+</div><div class='add'>+Thu Feb  9 11:11:15 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: use db_version() instead of DB_VERSION_STRING to</div><div class='add'>+	  detect runtime Berkeley DB version.</div><div class='add'>+	  use dpversion instead of _QDBM_VERSION to detect runtime QDBM</div><div class='add'>+	  version.</div><div class='add'>+	  [ruby-dev:44948]</div><div class='add'>+</div><div class='add'>+Thu Feb  9 11:11:15 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: detect gdbm_version in libgdbm.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: make DBM::VERSION more informative for gdbm, qdbm and</div><div class='add'>+	  Berkeley DB 1.x.  [ruby-dev:44944]</div><div class='add'>+</div><div class='add'>+Thu Feb  9 07:32:40 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_enc_uint_char): raise RangeError when added codepoint</div><div class='add'>+	  is invalid. [Feature #5855] [Bug #5863] [Bug #5864]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): set encoding as ASCII-8BIT when the string</div><div class='add'>+	  is US-ASCII and the argument is an integer greater than 127.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_mb2_code_to_mbclen): rearrange error code.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c (code_to_mbclen): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (code_to_mbclen): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb  9 07:28:43 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb: not read but binread.</div><div class='add'>+	  patched by Benoit Daloze, [ruby-core:42440] [Bug #5984]</div><div class='add'>+</div><div class='add'>+Wed Feb  8 22:29:59 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_modify_expand): fix memory leak.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:58:45 2012  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'>+	  respect encodings.  [Bug #5941]</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:56:00 2012  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_attempted_completion_function):</div><div class='add'>+	  fix compile error.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:56:00 2012  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'>+	  empty completion result does not mean memory error.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:54:49 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): check if outstream</div><div class='add'>+	  is closed to get rid of a bug of readline 6.  [ruby-dev:45043]</div><div class='add'>+	  [Bug #5803]</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:52:51 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): like r18313, libedit's</div><div class='add'>+	  replace_history_entry may use offset instead of which.</div><div class='add'>+	  so introduce history_replace_offset_func and initialize it.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (hist_set): use history_replace_offset_func.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:52:36 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): fix wrong condition.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:50:11 2012  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_script_from_stdin): slave pty</div><div class='add'>+	  should be manipulated because master pty may not be a tty on some</div><div class='add'>+	  environment (e.g. Solaris). [Bug:#5222] [ruby-dev:44420]</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:38:36 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (CFLAGS): append ARCH_FLAG.</div><div class='add'>+</div><div class='add'>+	* configure.in (ARCH_FLAG): exclude from CFLAGS.</div><div class='add'>+</div><div class='add'>+Wed Feb 08 09:19:00 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c: Add warning about key as IV.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:37:31 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c: Update and complete documentation.</div><div class='add'>+</div><div class='add'>+Wed Feb 08 09:57:33 2012  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Call INT2NUM only once for GeneralString.</div><div class='add'>+	  Thanks to Mantas Mikulenas for noticing and providing a patch!</div><div class='add'>+	  [ruby-core:42358] [Bug #5972]</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:34:59 2012  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_attempted_completion_function):</div><div class='add'>+	  in Readline module with GNU Readline 6 case, Readline module</div><div class='add'>+	  resets completion_append_character to " ", after it executes</div><div class='add'>+	  completion. So, Readline module stores</div><div class='add'>+	  completion_append_character, and Readline module always sets it</div><div class='add'>+	  after Readline module executes completion. [ruby-dev:43456]</div><div class='add'>+	  [Feature #4635]</div><div class='add'>+</div><div class='add'>+Wed Feb  8 09:47:52 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sleep.rb (test_sleep_5sec): 0.1sec tolerance is too</div><div class='add'>+	  small for busy environment.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 09:45:23 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb: split tests for read only database.</div><div class='add'>+</div><div class='add'>+	* test/gdbm/test_gdbm.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 09:43:48 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_mesg_to_str): clear rb_thread_t::errinfo when</div><div class='add'>+	  ignore exception under rb_protect(). [ruby-core:41612] [Bug #5755]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb (test_exception_in_name_error_to_str):</div><div class='add'>+	  add a corresponding test.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 09:36:42 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (require_enc): reject only loading from untrusted</div><div class='add'>+	  load paths.  [ruby-dev:44541] [Bug #5279]</div><div class='add'>+</div><div class='add'>+	* transcode.c (load_transcoder_entry): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 09:36:42 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (load_encoding): predefined encoding names are safe.</div><div class='add'>+	  [ruby-dev:44469] [Bug #5279]</div><div class='add'>+</div><div class='add'>+	* transcode.c (load_transcoder_entry): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb  7 14:29:16 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_foreach): should not yield same pair when checking</div><div class='add'>+	  after unpacking.</div><div class='add'>+</div><div class='add'>+Tue Feb  7 14:03:45 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#_close): clear @tempfile and @data[1] even</div><div class='add'>+	  when exception is raised at @tempfile.close. [ruby-dev:45113]</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink): fix a typo.</div><div class='add'>+</div><div class='add'>+Tue Feb  7 14:02:32 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_autoclose_true_closed_by_finalizer,</div><div class='add'>+	  test_autoclose_true_closed_by_finalizer): skip if IO objects are</div><div class='add'>+	  not recycled yet. [ruby-dev:45098] [Bug #5850]</div><div class='add'>+</div><div class='add'>+Tue Feb  7 13:59:26 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (run_finalizer): clear rb_thread_t::errinfo when ignore</div><div class='add'>+	  an exception under rb_protect(). [ruby-dev:45113]</div><div class='add'>+</div><div class='add'>+Mon Feb  6 15:34:47 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (fill_standard_fds): use fstat() instead of fcntl(F_GETFD)</div><div class='add'>+	  for MinGW.  reported by Luis Lavena.  [ruby-core:40526] [Bug #5516]</div><div class='add'>+</div><div class='add'>+Mon Feb  6 15:34:47 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (fill_standard_fds): new function to open closed standard</div><div class='add'>+	  file descriptors.</div><div class='add'>+	  (ruby_sysinit): call fill_standard_fds.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 15:19:17 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fsync,rb_io_fdatasync): release GVL during fsync().</div><div class='add'>+	  fsync() and fdatasync() may take a long time on slow disks and/or</div><div class='add'>+	  if there is much dirty data.</div><div class='add'>+	  Patch by Eric Wong. [Feature #5665] [ruby-core:41247]</div><div class='add'>+</div><div class='add'>+Mon Feb  6 15:01:55 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0): should pass block to enumerators.  patched</div><div class='add'>+	  by Kazuki Tsujimoto.  [ruby-dev:44961][Bug #5731]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (method_missing), vm_insnhelper.c (vm_call_method):</div><div class='add'>+	  ditto.  patched by satoshi shiba.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 21:52:20 2012  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (INSTRUBY_ARGS): added --mantype to apply mdoc2man.rb</div><div class='add'>+	  to man pages.  Fixes #5598.</div><div class='add'>+	  (do-install-nodoc, do-install-local, do-install-man,</div><div class='add'>+	  dont-install-nodoc, dont-install-local, dont-install-man):</div><div class='add'>+	  No longer needs --mantype.</div><div class='add'>+</div><div class='add'>+	  Reported by Rainer Orth &lt;ro AT cebitec.uni-bielefeld.de&gt;,</div><div class='add'>+	  patch by George Koehler &lt;xkernigh AT netscape.net&gt;.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 21:21:46 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/unit/assertions.rb (MINI_DIR): quick dirty hack to get rid of</div><div class='add'>+	  warnings when using assert/assert_respond_to.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 20:38:19 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): reset coderange after expanding path.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 20:32:17 2012  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strptime.c: moved detector of leftover.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 20:32:17 2012  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c: [ruby-core:42173].</div><div class='add'>+</div><div class='add'>+Mon Feb  6 20:31:35 2012  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: uses to_integer instead.</div><div class='add'>+	* test/date/test_switch_hitter.rb: added a test.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 20:31:35 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (wholenum): fix the type of the return value.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 20:31:35 2012  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c:  [ruby-dev:45008].</div><div class='add'>+</div><div class='add'>+Mon Feb  6 16:38:56 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (unixtime_to_filetime): should check the return value</div><div class='add'>+	  of localtime().  reported by snowjail at gmail.com.</div><div class='add'>+	  [ruby-dev:44838] [Bug #5596]</div><div class='add'>+</div><div class='add'>+Mon Feb  6 16:36:25 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_update_max_fd): fstat(2) can fail with other than</div><div class='add'>+	  EBADF.  [ruby-dev:44837] [Bug #5593].  Cf.</div><div class='add'>+	  http://pubs.opengroup.org/onlinepubs/9699919799/functions/fstat.html</div><div class='add'>+</div><div class='add'>+Mon Feb  6 16:31:16 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): call rb_w32_write_console() only if FMODE_TTY is</div><div class='add'>+	  set.  this is the one of the reason of IO writing slowness of Windows</div><div class='add'>+	  in 1.9.3 or later.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 16:21:57 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): reset coderange after expanding path.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 00:06:39 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/parser/parser.rl (json_string_unescape): workaround fix</div><div class='add'>+	  for over optimization of GCC 4.7. [ruby-core:42085] [Bug #5888]</div><div class='add'>+	  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51862</div><div class='add'>+</div><div class='add'>+Fri Feb  3 16:16:10 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil.invoke_ruby): yield also child pid</div><div class='add'>+	  in block form.</div><div class='add'>+</div><div class='add'>+Fri Feb  3 16:16:10 2012  Hiroshi Shirosaki  &lt;h.shirosaki@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb</div><div class='add'>+	  (TestThreadGroup#test_thread_timer_and_interrupt): skip exit status</div><div class='add'>+	  assertion because we cannot get signal status on Windows.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): create process group to receive the</div><div class='add'>+	  signal by GenerateConsoleCtrlEvent().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): use CTRL_BREAK_EVENT instead of CTRL_C_EVENT</div><div class='add'>+	  if a process group is specified. CTRL_C_EVENT signal cannot be</div><div class='add'>+	  generated for process groups for the specification.</div><div class='add'>+	  [ruby-dev:45149] [Bug #5812]</div><div class='add'>+</div><div class='add'>+Fri Feb  3 16:16:10 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (invoke_ruby): remove :timeout option before</div><div class='add'>+	  pass it to Kernel#spawn.</div><div class='add'>+</div><div class='add'>+Fri Feb  3 10:10:02 2012  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ping_signal_thread_list): remove return value.</div><div class='add'>+	* thread_pthread.c (check_signal_thread_list): add a new function to</div><div class='add'>+	  check if signal thread list is empty.</div><div class='add'>+	* thread_pthread.c (thread_timer): check signal thread list after</div><div class='add'>+	  timer_thread_function(). main thread might be added into signal thread</div><div class='add'>+	  list during timer_thread_function().</div><div class='add'>+</div><div class='add'>+Fri Feb  3 10:10:02 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ubf_select): call rb_thread_wakeup_timer_thread()</div><div class='add'>+	  only when it is not timer_thread. [Bug #5757] [ruby-dev:44985]</div><div class='add'>+	  patched by Tomoyuki Chikanaga.</div><div class='add'>+</div><div class='add'>+Wed Feb  1 09:50:10 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/re.rdoc (Repetition): fix typo.  reported by Ori Avtalion</div><div class='add'>+	  and patched by Zachary Scott.  [Bug #5947]</div><div class='add'>+</div><div class='add'>+Tue Jan 24 11:38:05 2012  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): initialize on</div><div class='add'>+	  requiring to support JRuby, which runs parallel multithreads.</div><div class='add'>+	  [ruby-core:42222] [Bug #5925]</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI.decode_www_form_component): initialize on</div><div class='add'>+</div><div class='add'>+Sat Jan 28 05:53:34 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb (IRB::InputCompletor::CompletionProc):</div><div class='add'>+	  ignore non-string name modules.  [ruby-core:42244][Bug #5938]</div><div class='add'>+</div><div class='add'>+Mon Jan 23 18:18:58 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): fix segv on symbols.</div><div class='add'>+	  [ruby-core:42204] [Bug #5921]</div><div class='add'>+</div><div class='add'>+Tue Jan 17 17:18:41 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (SPT_TYPE): enable as SPT_REUSEARGV on Darwin.</div><div class='add'>+</div><div class='add'>+	* missing/setproctitle.c (ruby_init_setproctitle): changed prefix.</div><div class='add'>+</div><div class='add'>+Mon Jan 16 16:41:53 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (Regexp): fix incorrect options when casting to</div><div class='add'>+	  a Regexp, and suppress encoding option warnings.</div><div class='add'>+	  https://github.com/ruby/ruby/pull/82</div><div class='add'>+</div><div class='add'>+Fri Jan 13 15:22:43 2012  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (TIME_COPY_GMT): copy vtm.utc_offset and vtm.zone too.</div><div class='add'>+	  patch by Tomoyuki Chikanaga.</div><div class='add'>+	  [ruby-dev:44827] [Bug #5586]</div><div class='add'>+</div><div class='add'>+Thu Jan 12 13:52:13 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_0): prevent optimizing out `sp'. sp is used for</div><div class='add'>+	  reserving a memory space with ALLOCA_N for restoring machine stack</div><div class='add'>+	  stored in cont-&gt;machine_stack, but clang optimized out it (and</div><div class='add'>+	  maybe #5851 is also caused by this).</div><div class='add'>+	  This affected TestContinuation#test_check_localvars.</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_1): revert workaround introduced in r32201.</div><div class='add'>+</div><div class='add'>+Thu Jan 12 01:40:33 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_autoclose): Tempfile.new doesn't</div><div class='add'>+	  accept the block argument.</div><div class='add'>+</div><div class='add'>+Sat Jan  7 22:46:36 2012  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb: use private instead of _xxx</div><div class='add'>+	  method name. This is Ruby code not Python code.</div><div class='add'>+	  refs #5696</div><div class='add'>+</div><div class='add'>+Tue Jan 03 23:57:37 2012  Ayumu AIZAWA  &lt;ayumu.aizawa@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb: rexml BaseParser uses</div><div class='add'>+	  instance_eval unnecessarily on listener add.</div><div class='add'>+	  patch from Charles Nutter. [Bug #5696] [ruby-core:41437]</div><div class='add'>+</div><div class='add'>+Tue Jan 03 19:13:05 2012  Ayumu AIZAWA  &lt;ayumu.aizawa@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_sax.rb: add require 'rexml/document'.</div><div class='add'>+	  [Backport #5834] [ruby-dev:45079]</div><div class='add'>+</div><div class='add'>+Tue Jan  3 19:05:42 2012  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (FLUSH_REGISTER_WINDOWS): move sparc asm code</div><div class='add'>+	  to a separete file sparc.c for preventing inlining optimization.</div><div class='add'>+	  Patched by Jurij Smakov. [Bug #5244] [ruby-core:40685]</div><div class='add'>+	* sparc.c (rb_sparc_flush_register_windows): ditto.</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan  2 23:52:20 2012  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): libedit check</div><div class='add'>+	  rl_getc_function only when rl_initialize() is called, and</div><div class='add'>+	  using_history() call rl_initialize(). This assignment should be</div><div class='add'>+	  placed before using_history(). [ruby-core:40641] [Bug #5539]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 23:47:58 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (install_recursive, bin-comm): split mere</div><div class='add'>+	  string not path name.  [ruby-core:40462] [Bug #5492]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 23:41:57 2012  Tajima Akil &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (CONFIG_H): have stdint.h if VC2010.</div><div class='add'>+	  [Bug #5243]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 21:40:45 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* tool/merger.rb (#version_up): version.h date should be Japanese</div><div class='add'>+	  locale date.</div><div class='add'>+</div><div class='add'>+Mon Jan  2 21:36:56 2012  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check -fno-omit-frame-pointer acceptance and usage</div><div class='add'>+	  under MinGW. [ruby-core:39957] [Bug #5407]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 20:05:10 2012  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (SIZE_MAX): define SIZE_MAX if not defined.</div><div class='add'>+	  patched by The Written Word Inc. [ruby-core:40422] [Bug #5489]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 20:00:01 2012  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_check): should return nil until the child</div><div class='add'>+	  terminates or stops.  [ruby-dev:44600] [Bug #2642]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 19:27:18 2012  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (update_coverage): skip coverage count up if the current</div><div class='add'>+	  line is out of the way.  rb_sourceline() is unreliable when source</div><div class='add'>+	  code is big.  [ruby-dev:44413]</div><div class='add'>+</div><div class='add'>+	* test/coverage/test_coverage.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Mon Jan  2 19:08:54 2012  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (gvl_yield): don't prevent concurrent sched_yield().</div><div class='add'>+	  [Bug #5130] [ruby-core:38647]</div><div class='add'>+</div><div class='add'>+Mon Jan  2 18:54:52 2012  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: disable delayed expansion of enironment variable.</div><div class='add'>+	  [Bug #5517] [ruby-core:40531]</div><div class='add'>+</div><div class='add'>+Wed Dec 28 11:22:45 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_#entries): use utility method</div><div class='add'>+	  instead of typoed regexp.  [ruby-core:41829] [Bug #5817]</div><div class='add'>+</div><div class='add'>+Thu Dec 15 10:44:54 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): update rdoc.</div><div class='add'>+	  documentation from Thomas Leitner &lt;t_leitner AT gmx.at&gt; in</div><div class='add'>+	  [ruby-core:41616].  [Bug #5752]</div><div class='add'>+</div><div class='add'>+Wed Dec 14 15:28:31 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_encode): about the extension of :fallback</div><div class='add'>+	  option since 1.9.3.</div><div class='add'>+</div><div class='add'>+Tue Oct  4 06:43:47 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: update psych version.</div><div class='add'>+	* ext/psych/psych.gemspec: generate new gemspec for new version.</div><div class='add'>+</div><div class='add'>+Tue Oct  4 06:29:55 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: calling `yaml` rather than `to_yaml`.</div><div class='add'>+	* ext/psych/lib/psych/nodes/node.rb: Rename `to_yaml` to just `yaml`</div><div class='add'>+	  in order to avoid YAML::ENGINE switching from replacing this method.</div><div class='add'>+	* test/psych/helper.rb: fix tests for method name change.</div><div class='add'>+	* test/psych/test_document.rb: ditto</div><div class='add'>+	* test/psych/visitors/test_emitter.rb: ditto</div><div class='add'>+</div><div class='add'>+Tue Oct  4 06:20:19 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/scalar_scanner.rb: Match values against the</div><div class='add'>+	  floating point spec defined in YAML to avoid erronious parses.</div><div class='add'>+	* test/psych/test_numeric.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Tue Oct  4 05:59:24 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: ToRuby visitor can be</div><div class='add'>+	  constructed with a ScalarScanner.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: ScalarScanner can be</div><div class='add'>+	  passed to the YAMLTree visitor.</div><div class='add'>+</div><div class='add'>+Tue Oct  4 05:47:23 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/to_ruby.rb: Define Regexp::NOENCODING</div><div class='add'>+	  for 1.9.2 backwards compatibility.</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: Fix Date string</div><div class='add'>+	  generation for 1.9.2 backwards compatibility.</div><div class='add'>+</div><div class='add'>+Fri Sep  2 04:05:25 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/visitors/yaml_tree.rb: emit strings tagged as</div><div class='add'>+	  ascii-8bit as binary in YAML.</div><div class='add'>+	* test/psych/test_string.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Wed Dec  7 19:04:22 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rpath): fix typo in the help string.  a patch from</div><div class='add'>+	  Yuji Yamano &lt;yyamano AT kt.rim.or.jp&gt; in [ruby-list:48568].</div><div class='add'>+</div><div class='add'>+Wed Nov 30 18:22:10 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_rationalize): fix function.  [ruby-core:40667]</div><div class='add'>+	  [Bug #5546]</div><div class='add'>+</div><div class='add'>+Thu Nov 17 10:36:46 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb (load_file): make sure opened yaml files are</div><div class='add'>+	  also closed. [ruby-core:41088]</div><div class='add'>+</div><div class='add'>+Wed Nov 30 02:58:46 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (dbl2ival): Fix Float#divmod and #round for 32 bit</div><div class='add'>+	  platform. part 1 of [bug #5276]</div><div class='add'>+</div><div class='add'>+Wed Nov 30 02:58:46 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): Fix criteria for 32 bits platform</div><div class='add'>+	  part 2 of [bug #5276]</div><div class='add'>+</div><div class='add'>+Wed Nov 30 02:37:32 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): Make Float#round round big values [bug</div><div class='add'>+	  #5272]</div><div class='add'>+</div><div class='add'>+Wed Nov 30 02:37:32 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): substitute machine dependent magic number.</div><div class='add'>+</div><div class='add'>+Wed Nov 30 02:28:22 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_round): Integer#round always returns an Integer [Bug</div><div class='add'>+	  #5271]</div><div class='add'>+</div><div class='add'>+Fri Nov  4 01:56:30 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): unversal_newline converter is for reading.</div><div class='add'>+	  so, if the io is text mode and has ECONV_UNIVERSAL_NEWLINE_DECORATOR</div><div class='add'>+	  flag, use crlf_newline converter for writing.</div><div class='add'>+	  this change fixes the problem about the luck of CR up Kernel.p and</div><div class='add'>+	  Kernel.puts to stdout/stderr on Windows.</div><div class='add'>+</div><div class='add'>+Mon Nov  7 23:39:23 2011  Tajima Akio &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): remove fsync().</div><div class='add'>+	* io.c (rb_io_flush, rb_io_rewind): fsync() here.</div><div class='add'>+	  These pathces are backports of trunk r33651 for [Bug #5585]</div><div class='add'>+</div><div class='add'>+Mon Oct 10 22:33:12 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/-ext-/old_thread_select/test_old_thread_select.rb:</div><div class='add'>+	  select() with timeout may return early in old Linux kernels</div><div class='add'>+	  with 250 Hz tickrate and no dynticks, so skip everything older</div><div class='add'>+	  than 2.6.32 (which has long term support).</div><div class='add'>+	  And, Make the timing assertions consistently use assert_operator with</div><div class='add'>+	  timing difference in error message</div><div class='add'>+	  Patch by Eric Wong. [Bug #5335] [ruby-core:39618]</div><div class='add'>+</div><div class='add'>+Tue Oct  4 16:17:50 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.strptime): use Time.at if d[:seconds] is set.</div><div class='add'>+	  Reported by Christopher Eberz. [ruby-core:39903] Bug #5399</div><div class='add'>+</div><div class='add'>+Tue Oct  4 11:44:10 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_set_params): ruby_verbose can be Qnil, so use RTEST.</div><div class='add'>+</div><div class='add'>+Mon Oct  3 23:56:39 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_set_params): output GC parameter change messages only</div><div class='add'>+	  if -w/-v options are specified. these messages are output to stderr,</div><div class='add'>+	  not to stdout. [ruby-core:39795] [Bug #5380]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb (test_gc_parameter): add test for it.</div><div class='add'>+</div><div class='add'>+Wed Sep 28 09:14:16 2011  Nobuyoshi Nakada  &lt;&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (pthread_np.h): needs pthread.h to be included</div><div class='add'>+	  previously on OpenBSD.  a patch by George Koehler &lt;xkernigh AT</div><div class='add'>+	  netscape.net&gt; at [ruby-core:39752].  [Bug #5376]</div><div class='add'>+</div><div class='add'>+Tue Sep 13 15:02:48 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (PStore): always open in binary mode even if</div><div class='add'>+	  default encodings are set.  [Bug #5311] [ruby-core:39503]</div><div class='add'>+</div><div class='add'>+Sat Oct  8 07:31:42 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join_1): should not copy the encoding of non-string</div><div class='add'>+	  element after string element.  [ruby-core:39776] [Bug #5379]</div><div class='add'>+</div><div class='add'>+Sat Oct  8 06:51:46 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems:  Update to RubyGems 1.8.11.  Move Deprecate into the</div><div class='add'>+	  Gem namespace.</div><div class='add'>+</div><div class='add'>+Sat Oct  8 06:37:08 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_set_params): output GC parameter change messages only</div><div class='add'>+	  if -w/-v options are specified. these messages are output to stderr,</div><div class='add'>+	  not to stdout. [ruby-core:39795] [Bug #5380]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb (test_gc_parameter): add test for it.</div><div class='add'>+</div><div class='add'>+Sat Oct  8 06:26:24 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap_slots, init_heap): reset heaps_inc zero when</div><div class='add'>+	  heap slots are expanded by environment variable RUBY_HEAP_MIN_SLOTS.</div><div class='add'>+	  [ruby-core:39777] [Bug #5380]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb (test_gc_parameter): add test for it.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): add :child_env option to</div><div class='add'>+	  enable pass environemnt variables to child process.</div><div class='add'>+</div><div class='add'>+Sat Oct  8 05:45:28 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_call):  Update documentation to match argument handling</div><div class='add'>+	  of proc/Proc.new/lambda/-&gt;()</div><div class='add'>+</div><div class='add'>+Sat Oct  8 05:38:29 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_call):  Fix documentation of Proc#call vs Proc#===.</div><div class='add'>+	  [Ruby 1.9 - Bug #5349]</div><div class='add'>+</div><div class='add'>+Tue Sep 27 13:05:39 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: fix int_ossl_asn1_decode0_cons when being</div><div class='add'>+	  fed arbitrary string values.</div><div class='add'>+	  Clearly distinguish between the cases "universal, infinite and</div><div class='add'>+	  not a SEQUENCE or SET" and "universal SEQUENCE or SET, possibly</div><div class='add'>+	  infinite". Raise error for universal tags that are not infinite.</div><div class='add'>+	* test/openssl/test_asn1.rb: add a test for this.</div><div class='add'>+</div><div class='add'>+	  Thanks to Hiroshi Yoshida for reporting this bug.</div><div class='add'>+	  [Bug #5363] [ruby-dev:44542]</div><div class='add'>+</div><div class='add'>+Sat Sep 17 23:34:10 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_data_type): inherit the core type in ripper so</div><div class='add'>+	  that checks in core would work.  [ruby-core:39591] [Bug #5331]</div><div class='add'>+</div><div class='add'>+Fri Sep 23 14:15:01 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c</div><div class='add'>+	  ext/openssl/ossl_pkey.c: Remove unused variables.</div><div class='add'>+</div><div class='add'>+Fri Sep 23 06:54:44 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33315 from trunk.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb: execute test_session_exts_read</div><div class='add'>+	  only for OpenSSL versions &gt;= 0.9.8k. Thanks, Eric Wong, for</div><div class='add'>+	  reporting this.</div><div class='add'>+	  [Bug #4961] [ruby-core:37726]</div><div class='add'>+</div><div class='add'>+Fri Sep 23 12:18:52 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33311 from trunk.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb: ensure server calls callbacks in</div><div class='add'>+	  test_ctx_server_session_cb. Thanks to Eric Wong for the patch.</div><div class='add'>+	  [Bug #5336] [ruby-core:39619]</div><div class='add'>+</div><div class='add'>+Thu Sep 22 19:45:22 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ubf_select): activate timer thread when interrupt</div><div class='add'>+	  blocking thread.</div><div class='add'>+	  A patch created by Koichi Sasada. [ruby-core:39634] [Bug #5343]</div><div class='add'>+	  to cover race condition, timer thread periodically send SIGVTARLM to</div><div class='add'>+	  threads in signal thread list. so you should activate timer thread</div><div class='add'>+	  when interrupt a thread.</div><div class='add'>+</div><div class='add'>+Wed Sep 21 16:57:03 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#setup): of course, the</div><div class='add'>+	  behavior of mingw is just same with mswin.</div><div class='add'>+</div><div class='add'>+Sat Sep 17 22:21:26 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_make_env_object, rb_vm_get_sourceline): export as a</div><div class='add'>+	  workaround for ruby-debug19 for the time being.</div><div class='add'>+	  [ruby-core:38972] [Bug #5193]</div><div class='add'>+</div><div class='add'>+Fri Sep 16 01:08:19 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: cosmetic changes.</div><div class='add'>+</div><div class='add'>+Wed Sep 14 12:39:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: do not use gcc-4.2 as the default compiler.</div><div class='add'>+</div><div class='add'>+	* NEWS: describe the issue about Xcode.</div><div class='add'>+</div><div class='add'>+Wed Sep 14 11:46:30 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_rcopy): added an argument guard.</div><div class='add'>+	  Patch by NAKAMURA Usaku. [Bug #5306] [ruby-core:39435]</div><div class='add'>+</div><div class='add'>+Tue Sep 13 09:28:58 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: wrote about rb_reserved_fd_p() and objspace.</div><div class='add'>+</div><div class='add'>+Mon Sep 12 20:47:52 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): fix a typo to initialize efds</div><div class='add'>+	  properly.  [Bug #5299] [ruby-core:39380]</div><div class='add'>+</div><div class='add'>+Mon Sep 12 20:41:20 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): fix to ignore an argument</div><div class='add'>+	  modification of rb_thread_fd_select().</div><div class='add'>+	  based on a patch by Eric Wong. [Bug #5306] [ruby-core:39435]</div><div class='add'>+	* thread.c (rb_fd_rcopy): New. for reverse fd copy.</div><div class='add'>+</div><div class='add'>+	* test/-ext-/old_thread_select/test_old_thread_select.rb</div><div class='add'>+	(test_old_select_false_positive): test for bug5306.</div><div class='add'>+</div><div class='add'>+	* ext/-test-/old_thread_select/old_thread_select.c (fdset2array):</div><div class='add'>+	  New. convert fdsets to array.</div><div class='add'>+	* ext/-test-/old_thread_select/old_thread_select.c (old_thread_select):</div><div class='add'>+	  return 'read', 'write', 'except' argument of rb_thread_select()</div><div class='add'>+	  to ruby script.</div><div class='add'>+</div><div class='add'>+Tue Sep  6 13:15:44 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (load_encoding): predefined encoding names are safe.</div><div class='add'>+	  [ruby-dev:44469] [Bug #5279]</div><div class='add'>+</div><div class='add'>+	* transcode.c (load_transcoder_entry): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep  9 16:02:04 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (concatstrings): don't use initial ASCII-8BIT string.</div><div class='add'>+	  [ruby-core:38635] [Bug #5126]</div><div class='add'>+</div><div class='add'>+Thu Sep  8 21:17:36 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 2.1.2 (be9c280)</div><div class='add'>+	  Bump version number/release date only.</div><div class='add'>+</div><div class='add'>+Wed Sep  7 23:42:45 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_next_argv): open in default text mode.</div><div class='add'>+	  [ruby-core:39234] [Bug #5268]</div><div class='add'>+</div><div class='add'>+Mon Sep  5 15:06:55 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_security.rb</div><div class='add'>+	  (test_class_build_self_signed_cert): reset opt[:trust_dir] to apply</div><div class='add'>+	  temporary Gem.user_home.</div><div class='add'>+</div><div class='add'>+Sun Sep  4 00:56:58 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33177 from trunk.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb (TestFiber#test_no_valid_cfp):</div><div class='add'>+	  add a test. Unlike TestThread#test_no_valid_cfp,</div><div class='add'>+	  this test succeeds even if win32ole is required (see r33153).</div><div class='add'>+</div><div class='add'>+Fri Sep  2 21:11:16 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (validate_enc_binmode, prep_stdio): default to text mode on</div><div class='add'>+	  dosish platforms.  [ruby-core:38822] [Bug #5164]</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_prepare_options): keep default ecflags</div><div class='add'>+	  unchanged if no options.</div><div class='add'>+</div><div class='add'>+Fri Sep  2 14:36:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_search_const_defined_class): search</div><div class='add'>+	  ancestors only when global scope.  [ruby-core:39227] [Bug #5264]</div><div class='add'>+</div><div class='add'>+Fri Sep  2 09:58:08 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_string, parser_yylex): ignore a backslash</div><div class='add'>+	  which prefixes an non-ascii character, which has no escape</div><div class='add'>+	  syntax.  [ruby-core:39222] [Ruby 1.9 - Bug #5262]</div><div class='add'>+</div><div class='add'>+Thu Sep  1 17:31:22 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass), vm_insnhelper.c (vm_get_cvar_base): see</div><div class='add'>+	  also inherited constants for classes without superclass and</div><div class='add'>+	  modules.  [ruby-core:37698] [Bug #3423]</div><div class='add'>+</div><div class='add'>+Thu Sep  1 14:11:16 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (TestThread#test_no_valid_cfp): skip when</div><div class='add'>+	  win32ole is required.  in such case, win32ole redefines</div><div class='add'>+	  Thread#initialize, and the block argument becomes to be not the top</div><div class='add'>+	  of the thread, then this testcase always fails.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 16:02:45 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: Merge json gem v1.5.4 (3dab4c5a6a97fac03dac).</div><div class='add'>+</div><div class='add'>+Wed Aug 31 13:19:31 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): Avoid overflow by optimizing for trivial</div><div class='add'>+	  cases</div><div class='add'>+	  [Bug #5227]</div><div class='add'>+</div><div class='add'>+Wed Aug 31 06:45:32 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix r32835. $withval can't be used outer AC_ARG_WITH().</div><div class='add'>+</div><div class='add'>+Wed Aug 31 05:29:03 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select_with_thread): and my typo. we all must</div><div class='add'>+	  be more careful.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 05:28:45 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): critical typo in r33117.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 05:28:26 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/-ext-/old_thread_select/test_old_thread_select.rb</div><div class='add'>+	  (TestOldThreadSelect#test_old_select_read_timeout): if the machine</div><div class='add'>+	  is fast enough, the time used by code around IO.select may be smaller</div><div class='add'>+	  than Time implement threshold.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 05:27:59 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/-test-/old_thread_select/old_thread_select.c (old_thread_select):</div><div class='add'>+	  typo.</div><div class='add'>+</div><div class='add'>+	* test/-ext-/old_thread_select/test_old_thread_select.rb</div><div class='add'>+	  (TestOldThreadSelect#test_old_select_signal_safe): use SIGINT instead</div><div class='add'>+	  of SIGUSR1 because the former is general and the latter is platform</div><div class='add'>+	  dependent.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 05:26:30 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, include/ruby/intern.h (rb_w32_fd_copy): implement</div><div class='add'>+	  for rb_thread_select() in thread.c.  the use of rb_fd_copy() is</div><div class='add'>+	  introduced in r33117.</div><div class='add'>+	  [Bug #5229] [ruby-core:39102]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): must call rb_fd_init() before using</div><div class='add'>+	  rb_fdset_t.  see the implementations of rb_fd_init()s if you want to</div><div class='add'>+	  know the reason.</div><div class='add'>+</div><div class='add'>+Tue Aug 30 11:25:21 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+ (2149f4185c598fb97db1).</div><div class='add'>+	  [Bug #5173] [ruby-core:38866]</div><div class='add'>+</div><div class='add'>+Tue Aug 30 09:53:59 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_entry): fix stack allocation failure on Debian</div><div class='add'>+	  GNU/kFreeBSD.</div><div class='add'>+	  Patch by Lucas Nussbaum &lt;lucas at lucas-nussbaum dot net&gt;.</div><div class='add'>+	  [Bug #5241] [ruby-core:39147]</div><div class='add'>+</div><div class='add'>+Tue Aug 30 09:52:29 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33117 from trunk.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): rewrite by using</div><div class='add'>+	  rb_thread_fd_select(). old one is EINTR unsafe.</div><div class='add'>+	  Patch by Eric Wong. [Bug #5229] [ruby-core:39102]</div><div class='add'>+</div><div class='add'>+	* test/-ext-/old_thread_select/test_old_thread_select.rb:</div><div class='add'>+	  a testcase for rb_thread_select().</div><div class='add'>+	* ext/-test-/old_thread_select/old_thread_select.c: ditto.</div><div class='add'>+	* ext/-test-/old_thread_select/depend: ditto.</div><div class='add'>+	* ext/-test-/old_thread_select/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 30 09:16:17 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix a build failure on GNU Hurd.</div><div class='add'>+	  Patch by Samuel Thibault &lt;sthibault at debian dot org&gt;. Thank you!</div><div class='add'>+	  [Bug #5250] [ruby-core:39185]</div><div class='add'>+</div><div class='add'>+Sun Aug 28 15:38:17 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33106 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c (date_zone_to_diff): keep a temporary string</div><div class='add'>+	  stored in variable while the contents buffer is beeing used.</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c (date_zone_to_diff): get rid of out of bounds</div><div class='add'>+	  memory read. [ruby-dev:44409] [Bug #5213]</div><div class='add'>+</div><div class='add'>+Sun Aug 28 05:29:50 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33102 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*: Imported minitest 2.5.1 (r6596)</div><div class='add'>+	* test/minitest/*: ditto</div><div class='add'>+</div><div class='add'>+Sat Aug 27 20:54:54 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33099 from trunk.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_rewrite_dfp_in_errinfo): change return type</div><div class='add'>+	  to suppress a warning.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 27 19:03:44 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33096 from trunk.</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_new): force to rewrite errinfo when calling Proc.new in ensure.</div><div class='add'>+	  [Bug #5234] [ruby-core:39125]</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_rewrite_dfp_in_errinfo): new function.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_env_each): changed accordingly.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_flow.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Sat Aug 27 08:59:12 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS:  Update version of rake to 0.9.2.2.</div><div class='add'>+</div><div class='add'>+Sat Aug 27 08:44:58 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33087 from trunk</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Import RDoc 3.9.4.  Typo and grammar fixes by Luke Gruber.</div><div class='add'>+	  [Ruby 1.9 - Bug #5203]</div><div class='add'>+</div><div class='add'>+Sat Aug 27 07:53:34 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33087 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb:  Fix indentation of OpenURI::OpenRead#open.  Use ++</div><div class='add'>+	  instead of `' for method arguments in open-uri.rb</div><div class='add'>+</div><div class='add'>+Sat Aug 27 07:22:07 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33086 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/pathname/lib/pathname.rb:  Fix typos and grammar mistakes.  Patch</div><div class='add'>+	  by Luke Gruber.  [#5203]</div><div class='add'>+	* ext/pty/lib/expect.rb:  ditto</div><div class='add'>+	* lib/mathn.rb:  ditto</div><div class='add'>+	* lib/net/http.rb:  ditto</div><div class='add'>+	* lib/open-uri.rb:  ditto</div><div class='add'>+	* lib/ostruct.rb:  ditto</div><div class='add'>+	* lib/tempfile.rb:  ditto</div><div class='add'>+	* lib/thread.rb:  ditto</div><div class='add'>+	* lib/weakref.rb:  ditto</div><div class='add'>+	* sample/webrick/httpproxy.rb:  ditto</div><div class='add'>+</div><div class='add'>+Fri Aug 26 10:10:37 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33074 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems:  Update to RubyGems 1.8.10.  Fixes security issue in</div><div class='add'>+	  creating ruby-format gemspecs.  Fixes Gem.dir not being at the front</div><div class='add'>+	  of Gem.path to fix uninstall and cleanup commands.  Fixes gem</div><div class='add'>+	  uninstall stopping on the first missing gem.</div><div class='add'>+</div><div class='add'>+Wed Aug 24 09:49:10 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33045 from trunk.</div><div class='add'>+</div><div class='add'>+	* insns.def (defined): fix to checking class variable.</div><div class='add'>+	  A patch by Magnus Holm &lt;judofyr@gmail.com&gt;.  Thanks!</div><div class='add'>+</div><div class='add'>+Fri Aug 26 08:21:10 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_variable.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Thu Aug 25 09:43:16 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33066 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/bn.rb:  Hide copyright info from RDoc.</div><div class='add'>+	* ext/openssl/lib/openssl/digest.rb:  ditto</div><div class='add'>+	* ext/openssl/lib/openssl/cipher.rb:  ditto</div><div class='add'>+</div><div class='add'>+Thu Aug 25 09:25:48 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33065 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c:  Document OpenSSL::Digest::digest and add</div><div class='add'>+	  an example to OpenSSL::Digest.  Patch by Sylvain Daubert.</div><div class='add'>+	  [Ruby 1.9 - Bug #5166]</div><div class='add'>+	* ext/openssl/lib/openssl/digest.rb (module OpenSSL):  ditto</div><div class='add'>+</div><div class='add'>+Thu Aug 25 08:19:43 2011  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_env_each): work around to solve Bug #2729.</div><div class='add'>+	  fixes: Bug #2729</div><div class='add'>+	  a patch from Kazuki Tsujimoto &lt;kazuki@callcc.net&gt;</div><div class='add'>+	  This problem is caused by changing dfp (dynamic env pointer)</div><div class='add'>+	  from saved dfp.  Saved dfp is pointed env in VM stack.  However,</div><div class='add'>+	  the dfp can be moved because VM copies env from VM stack to</div><div class='add'>+	  the heap.  At this copying, dfp was also changed.  To solve this</div><div class='add'>+	  problem, I'll try to change throw mechanism (not save target dfp,</div><div class='add'>+	  but save target cfp).</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_flow.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Thu Aug 25 08:04:08 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_round): Fix Integer#round [ruby-core:39096]</div><div class='add'>+</div><div class='add'>+Thu Aug 25 06:51:08 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych.rb: Fixing psych version number.</div><div class='add'>+</div><div class='add'>+Thu Aug 25 06:11:35 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/nodes/node.rb: default `to_yaml` encoding to be</div><div class='add'>+	  UTF-8.</div><div class='add'>+	* test/psych/test_encoding.rb: test yaml dump encoding.</div><div class='add'>+</div><div class='add'>+Wed Aug 24 08:53:06 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33043 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to RDoc 3.9.3.  Fixes RDoc with `ruby -Ku`.  Allows</div><div class='add'>+	  HTTPS image paths to be turned into &lt;img&gt; tags.  Prevents special</div><div class='add'>+	  markup inside &lt;tt&gt; from being processed.</div><div class='add'>+</div><div class='add'>+Wed Aug 24 07:57:43 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33040 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems:  Update to RubyGems 1.8.9.  Fixes uninstalling multiple</div><div class='add'>+	  gems and gem cleanup.</div><div class='add'>+</div><div class='add'>+Wed Aug 24 06:45:20 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33036 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/minitest/*: Imported minitest 2.5.0 (r6557)</div><div class='add'>+	* test/minitest/*: ditto</div><div class='add'>+</div><div class='add'>+Tue Aug 23 15:23:56 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33027 from trunk.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_f_require):  Improve documentation of Kernel#require.</div><div class='add'>+	  [Ruby 1.9 - Bug #5210]</div><div class='add'>+</div><div class='add'>+Tue Aug 23 15:11:48 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33023 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_read_header): Ensure that each section of</div><div class='add'>+	  gzip header is readable to avoid SEGV.</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb (test_corrupted_header): Test it.</div><div class='add'>+</div><div class='add'>+Mon Aug 22 23:43:33 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33021 from trunk.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): add RB_GC_GUARD to prevent temporary</div><div class='add'>+	  strings from GC.</div><div class='add'>+</div><div class='add'>+Sun Aug 21 17:58:38 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33019 from trunk.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_disasm): remove variable which is no longer used</div><div class='add'>+	  since r33013.</div><div class='add'>+</div><div class='add'>+Sun Aug 21 14:20:58 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use LD_LIBRARY_PATH_64 on 64-bit Solaris.</div><div class='add'>+</div><div class='add'>+Sun Aug 21 11:13:54 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32895 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/conversions.c (generic_to_value): ffi_arg and ffi_sarg</div><div class='add'>+	  should be used to handle shorter return value. fix [Bug #3861]</div><div class='add'>+	  [ruby-core:32504]</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (callback): ditto</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/conversions.h (fiddle_generic): ditto</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/conversions.c (value_to_generic): char, short and int</div><div class='add'>+	  are strictly distinguished on big-endian CPU, e.g. sparc64.</div><div class='add'>+</div><div class='add'>+Sat Aug 20 13:28:32 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33013 from trunk.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_disasm): fix a bug that may cause SEGV.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb (test_body): add a test for the above change.</div><div class='add'>+</div><div class='add'>+Sat Aug 20 10:43:24 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): return new string if nil</div><div class='add'>+	  is explicitly given as a buffer ([Bug #5207]), otherwise set the</div><div class='add'>+	  encoding.  also removed dead code.</div><div class='add'>+</div><div class='add'>+Fri Aug 19 14:25:51 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_v, proc_spawn): should not wait the</div><div class='add'>+	  spawned process.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_v): fix missing argument, and try with</div><div class='add'>+	  /bin/sh only if failed with ENOEXEC.</div><div class='add'>+</div><div class='add'>+Fri Aug 19 14:12:57 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33007 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (idle): raises a Net::IMAP::Error when the</div><div class='add'>+	  connection is closed.  based on the patch by Hugo Barauna.</div><div class='add'>+	  [Bug #5190] [ruby-core:38930]</div><div class='add'>+</div><div class='add'>+Fri Aug 19 11:28:58 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r33001 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (msg_att): accepts extra space before ')'.</div><div class='add'>+	  based on the patch by art lussos.  [Bug #5163] [ruby-core:38820]</div><div class='add'>+</div><div class='add'>+Wed Aug 17 15:27:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32996 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (cannot_be_coerced_into_BigDecimal):</div><div class='add'>+	  add a new function for raising error when an object cannot coerce</div><div class='add'>+	  into BigDecimal.  [Bug #5172]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimalValueWithPrec): use</div><div class='add'>+	  cannot_be_coerced_into_BigDecimal function.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigMath_s_exp): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigMath_s_log): ditto.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: test for the avobe changes.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/testbase.rb (under_gc_stress): add a new utility</div><div class='add'>+	  method to run tests under the condition of GC.stress = true.</div><div class='add'>+</div><div class='add'>+Wed Aug 17 10:16:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32994 from trunk.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_coerce): Rational#coerce should converts itself</div><div class='add'>+	  into Complex if the argument is a Complex with non-zero imaginary</div><div class='add'>+	  part.  [Bug #5020] [ruby-dev:44088]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb (test_coerce): test for the above change.</div><div class='add'>+</div><div class='add'>+Wed Aug 17 06:33:19 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32992 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509cert.c: Add class documentation for</div><div class='add'>+	  OpenSSL::X509::Certificate.</div><div class='add'>+</div><div class='add'>+Wed Aug 17 05:02:25 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32987 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c: corrected docs, OpenSSL::PKey::DH does</div><div class='add'>+	  *not* support #sign/verify.</div><div class='add'>+</div><div class='add'>+Tue Aug 16 18:56:54 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (ruby_threadptr_data_type): rename to hide.</div><div class='add'>+	  [ruby-core:38972]</div><div class='add'>+</div><div class='add'>+Tue Aug 16 18:52:08 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Mswin#each_export): exclude Init_</div><div class='add'>+	  and _threadptr_ functions, as well as mingw.</div><div class='add'>+</div><div class='add'>+Tue Aug 16 09:38:37 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32981 and r32982 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/dl:  Add documentation.  Patch by Vincent Batts.</div><div class='add'>+	  [Ruby 1.9 - Bug #5192]</div><div class='add'>+</div><div class='add'>+	* ext/.document (fiddle):  Remove duplicate entry</div><div class='add'>+</div><div class='add'>+	* ext/fiddle:  Complete documentation of Fiddle.  Patch by Vincent</div><div class='add'>+	  Batts.  [#5192]</div><div class='add'>+</div><div class='add'>+Tue Aug 16 08:00:15 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32977 from trunk</div><div class='add'>+</div><div class='add'>+	* ext/socket:  Make Socket documentation appear.  Add documentation for</div><div class='add'>+	  Socket, TCPServer, SOCKSSocket.  Patch by Sylvain Daubert.</div><div class='add'>+	  [Ruby 1.9 - Feature #5182]</div><div class='add'>+</div><div class='add'>+Mon Aug 15 10:16:55 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+	* backport r32973 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Support disabling OpenSSL compression.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb: Add a test for it.</div><div class='add'>+	  Thanks to Eric Wong for the patch.</div><div class='add'>+	  [Ruby 1.9 - Feature #5183] [ruby-core:38911]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 22:17:27 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/mkconfig.rb: do not make the entries related to sitedir and</div><div class='add'>+	  verdordir if disabled by --without options.  [ruby-core:38922]</div><div class='add'>+	  [Bug #5187]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 17:06:57 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: [ruby-core:38861]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 16:59:51 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'>+Sat Aug 13 09:36:19 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c (parse_ddd_cb): fix r32896. RB_GC_GUARD</div><div class='add'>+	  insertion position was mistaken. [ruby-dev:44337] [Bug #5152]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 09:26:24 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/psych/lib/psych/core_ext.rb: Make Kernel#y private.</div><div class='add'>+	  [ruby-core:38913]</div><div class='add'>+</div><div class='add'>+	* test/psych/test_yaml.rb: corresponding test.</div><div class='add'>+</div><div class='add'>+Sat Aug 13 09:15:16 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c (date_strftime_alloc): followed the change</div><div class='add'>+	  of r32885.</div><div class='add'>+</div><div class='add'>+	* NEWS: followed the above change.</div><div class='add'>+</div><div class='add'>+Sat Aug 13 08:49:05 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: [ruby-core:38855].</div><div class='add'>+</div><div class='add'>+Sat Aug 13 03:41:37 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32953 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb:  Fix documentation of URI::Parser.new.  Patch by</div><div class='add'>+	  Steve Klabnik.  [Ruby 1.9 - Bug #5177]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 02:19:57 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32950 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c:  Add documentation for the Digest module.  Patch</div><div class='add'>+	  by Sylvain Daubert.  [Ruby 1.9 - Bug #5167]</div><div class='add'>+</div><div class='add'>+Fri Aug  5 13:32:43 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32856 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb, lib/xmlrpc/server.rb: should use</div><div class='add'>+	  String#bytesize instead of String#size.</div><div class='add'>+</div><div class='add'>+Fri Aug 12 13:53:03 2011  Narihiro Nakamura  &lt;narihiro@netlab.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32894 from trunk.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_lazy_sweep): if sweep target slots are not found, we</div><div class='add'>+	  try heap_increment() because it might be able to expand the</div><div class='add'>+	  heap. [Bug #5127] [ruby-dev:44285]</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_clear_mark_on_sweep_slots): if a sweeping was</div><div class='add'>+	  interrupted, we expand the heap if at all possible.</div><div class='add'>+</div><div class='add'>+Fri Aug 12 12:28:17 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake:  Update to Rake 0.9.2.2.  Prevent pollution of toplevel</div><div class='add'>+	  namespace by Commands.  Remove unused variable and debugging</div><div class='add'>+	  statement in tests.</div><div class='add'>+</div><div class='add'>+Fri Aug 12 09:00:24 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32941 from trunk</div><div class='add'>+</div><div class='add'>+	* lib/rubygems:  Import RubyGems 1.8.8.  Fixes encoding of YAML gemspec</div><div class='add'>+	  from gems.  Github Issue #149</div><div class='add'>+</div><div class='add'>+Fri Aug 12 03:24:35 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32935 from trunk</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Import RDoc 3.9.2.  Fixes TIDYLINK for HTML output.</div><div class='add'>+</div><div class='add'>+Tue Aug  2 22:04:46 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32815 from trunk.</div><div class='add'>+</div><div class='add'>+	* gc.c (init_heap): allocate sigaltstack after heaps are allocated.</div><div class='add'>+	  [ruby-dev:44315] [Bug #5139]</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): use free because objspace is not ready.</div><div class='add'>+</div><div class='add'>+	* vm.c (th_init): use malloc because objspace is not ready.</div><div class='add'>+</div><div class='add'>+Thu Aug 11 19:04:38 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32931 from trunk.</div><div class='add'>+</div><div class='add'>+	* variable.c (autoload_delete): An autoload entry is still in a</div><div class='add'>+	  RCLASS_IV_TBL, not in a RCLASS_CONST_TBL, so take back the table</div><div class='add'>+	  changed in r29600. And an autoload entry keeps not a</div><div class='add'>+	  rb_const_entry_t but a NODE so remove rb_const_entry_t thing added</div><div class='add'>+	  in r29602.</div><div class='add'>+</div><div class='add'>+Thu Aug 11 15:07:36 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command): use LIBRUBYARG in rbconfig for</div><div class='add'>+	  unbundled extensions.  [ruby-core:38802] [Bug #5147]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): revert r32902.  [ruby-core:38903]</div><div class='add'>+</div><div class='add'>+Wed Aug 10 19:30:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32903 from trunk.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_rationalize): calls rationalize of real part if</div><div class='add'>+	  imaginary part is exactly zero.  The patch is made by Marc-Andre</div><div class='add'>+	  Lafortune.  fixes [Bug #5178] [ruby-core:38885]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb (test_rationalize): add a test for the</div><div class='add'>+	  above change.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_r): fix RDoc comment.  The patch is made by</div><div class='add'>+	  Marc-Andre Lafortune.</div><div class='add'>+</div><div class='add'>+Wed Aug 10 14:11:07 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): set $LIBRUBYARG regardless of shared</div><div class='add'>+	  option.  [ruby-core:38802] [Bug #5147]</div><div class='add'>+</div><div class='add'>+Wed Aug 10 02:57:01 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: come back autoload. OpenSSL constant is used</div><div class='add'>+	  some places, so it leads mistakes like HTTP.start.</div><div class='add'>+</div><div class='add'>+Tue Aug  9 22:57:45 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_parse.c (date_zone_to_diff): add RB_GC_GUARD.</div><div class='add'>+	  [ruby-dev:44337] [Bug #5152]</div><div class='add'>+</div><div class='add'>+	* ext/date/data_parse.c (parse_ddd_cb): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  9 12:20:33 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/fiddle/helper.rb (libc_so, libm_so): Solaris support added.</div><div class='add'>+	  [ruby-core:38853] [Bug #5168]</div><div class='add'>+</div><div class='add'>+	* test/dl/test_base.rb (libc_so, libm_so): on Solaris, remove libc</div><div class='add'>+	  and libm version numbers for detecting default libc and libm.</div><div class='add'>+</div><div class='add'>+Tue Aug  9 10:49:52 2011  Igor Zubkov  &lt;igor.zubkov@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: Fix typo. https://github.com/ruby/ruby/pull/36</div><div class='add'>+</div><div class='add'>+Mon Aug  8 00:10:45 2011  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_syslog.rb (TestSyslog#test_log): Do not be too</div><div class='add'>+	  specific about the log line format.  Fixes #5081.</div><div class='add'>+</div><div class='add'>+Sun Aug  7 23:39:44 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime_alloc): raise ERANGE if width is too large.</div><div class='add'>+	  Patch by Nobuyoshi Nakada. [Bug #4457] [ruby-dev:43285]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (class TestTime): add a test for the</div><div class='add'>+	  above change.</div><div class='add'>+</div><div class='add'>+Sun Aug  7 14:15:10 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32876 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/objspace/objspace.c: fix typos in a document.</div><div class='add'>+</div><div class='add'>+Sun Aug  7 04:42:36 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object):  Fix exception message when _dump_data</div><div class='add'>+	  is not defined on a T_DATA object.</div><div class='add'>+</div><div class='add'>+Sat Aug  6 06:14:20 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Update to 3.9.1.  Fixes === lines in verbatim sections.</div><div class='add'>+	  Fixes :nodoc: on class aliases.  Fixes :stopdoc: creating references</div><div class='add'>+	  to Object.  Fixes spacing when class comments are merged in ri.</div><div class='add'>+	  Fixes `ri []` crash.  Fixes bug report URL when rdoc crashes.  Adds</div><div class='add'>+	  :doc: and :nodoc: to allow hiding of implementation details in ruby.</div><div class='add'>+	  Makes `rdoc` and `ri` gem-aware.</div><div class='add'>+</div><div class='add'>+Sat Aug  6 03:19:45 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems:  Import RubyGems 1.8.7:</div><div class='add'>+	  Added missing require for `gem uninstall --format-executable`.</div><div class='add'>+</div><div class='add'>+	  The correct name of the executable being uninstalled is now displayed</div><div class='add'>+	  with --format-executable.</div><div class='add'>+</div><div class='add'>+	  Fixed `gem unpack uninstalled_gem` default version picker.</div><div class='add'>+</div><div class='add'>+	  RubyGems no longer claims a nonexistent gem can be uninstalled.</div><div class='add'>+</div><div class='add'>+	  `gem which` no longer claims directories are requirable files.</div><div class='add'>+</div><div class='add'>+	  `gem cleanup` continues cleaning up gems if one can't be uninstalled</div><div class='add'>+	  due to permissions.  Issue #82.</div><div class='add'>+</div><div class='add'>+	  Gem repository directories are no longer created world-writable.</div><div class='add'>+	  Patch by Sakuro OZAWA.  [Ruby 1.9 - Bug #4930]</div><div class='add'>+</div><div class='add'>+Fri Aug  5 23:08:39 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32845 from trunk.</div><div class='add'>+</div><div class='add'>+	* configure.in: when Solaris cc, use $(CC) to link shared libs.</div><div class='add'>+</div><div class='add'>+Fri Aug  5 22:16:20 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_infinity, rb_nan): use WORDS_BIGENDIAN to get endian.</div><div class='add'>+	  fix [Bug #5160] [ruby-dev:44356]</div><div class='add'>+</div><div class='add'>+Fri Aug  5 15:57:10 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_signbit): fix compile error in gcc4 on Solaris with</div><div class='add'>+	  CFLAGS="-std=gnu99".  [ruby-dev:44355] fix [Bug #5159]</div><div class='add'>+</div><div class='add'>+	* math.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 10:09:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32846 from trunk.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_signal): retry to call pthread_cond_signal</div><div class='add'>+	  and pthread_cond_broadcast if they return EAGAIN in</div><div class='add'>+	  native_cond_signal and native_cond_broadcast, respectively.</div><div class='add'>+	  It is for the pthread implementation of Mac OS X 10.7 (Lion).</div><div class='add'>+	  fixes #5155.  [ruby-dev:44342].</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_broadcast): ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (struct cached_thread_entry): stop using</div><div class='add'>+	  pthread_cond_t and its functions directly.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (register_cached_thread_and_wait): ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (use_cached_thread): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  5 07:35:00 2011  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (class Gem): Correct path check on Windows</div><div class='add'>+	  Possible fix for [Ruby 1.9 - Bug #5111]</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_installer.rb (load Gem): ditto</div><div class='add'>+	  Backported from trunk r32804</div><div class='add'>+</div><div class='add'>+Fri Aug  5 07:00:31 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/console/test_io_console.rb (test_noctty): daemon() on</div><div class='add'>+	  Fedora Rawhide seems not to detach the controlling terminal,</div><div class='add'>+	  when the argument noclose is non-zero.  ref: [Bug #5135]</div><div class='add'>+</div><div class='add'>+Wed Aug  4 02:35:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use build_os variable for checking C and C++ compilers</div><div class='add'>+	  matching.</div><div class='add'>+</div><div class='add'>+	* configure.in: use clang++ if clang is used.</div><div class='add'>+</div><div class='add'>+Thu Aug  4 02:21:10 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command): use static library only for bundled</div><div class='add'>+	  extensions.  [Bug #5147]</div><div class='add'>+</div><div class='add'>+Wed Aug  3 00:11:08 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb: update document.  [ruby-core:36776]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Tue Aug  2 20:10:16 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_parallel.rb: pass "--ruby" option to</div><div class='add'>+	  test/testunit/tests_for_parallel/runner.rb. [Bug #5132] [ruby-dev:44303]</div><div class='add'>+	  Backported from trunk r32812.</div><div class='add'>+</div><div class='add'>+Tue Aug  2 12:03:16 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (recursive_hash): hash value of emptied hash should be</div><div class='add'>+	  equal to an empty hash.  [ruby-core:38650]</div><div class='add'>+</div><div class='add'>+Tue Aug  2 11:42:15 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_enc_symname2_p): :! is valid symbol.  [Bug #5136]</div><div class='add'>+</div><div class='add'>+Tue Aug  2 03:26:02 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_rake_directory_task.rb (TestRakeDirectoryTask#</div><div class='add'>+	  test_directory_win32): fixed wrong test.</div><div class='add'>+	  backported r32670 from trunk.</div><div class='add'>+</div><div class='add'>+Mon Aug  1 15:45:23 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_rake_functional.rb:  Don't assume the binary name of</div><div class='add'>+	  ruby is "ruby".  [Ruby 1.9 - Bug #5114]</div><div class='add'>+	* test/rake/helper.rb:  ditto</div><div class='add'>+</div><div class='add'>+Mon Aug  1 05:21:42 2011  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_save_thread): fix missing semicolon.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 22:57:16 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (ECHO1): Same as the recent fix in common.mk.</div><div class='add'>+	  ":" in a make variable replacement cause a syntax error with</div><div class='add'>+	  /usr/ccs/bin/make on Solaris.  Uses $(NULLCMD) instead.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 22:44:08 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix typos.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 21:19:51 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration:ECHO1): Same as the recent fix in</div><div class='add'>+	  common.mk.</div><div class='add'>+	  ":" in a make variable replacement cause a syntax error with</div><div class='add'>+	  /usr/ccs/bin/make on Solaris.  Uses $(NULLCMD) instead.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 21:16:02 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_signbit): gcc4 on Solaris DOES have signbit but does</div><div class='add'>+	  not have it on header.</div><div class='add'>+</div><div class='add'>+	* math.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 21:09:04 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (node_name.inc): Use $(Q) for consistency.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (INSNS): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 20:39:12 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ECHO1): nmake does not allow parenthesis in make variable</div><div class='add'>+	  replacement.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 20:21:36 2011  "Yuki Sonoda (Yugui)"  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ECHO1): ":" in a make variable replacement cause a syntax</div><div class='add'>+	  error with /usr/ccs/bin/make on Solaris.  Uses $(NULLCMD) instead.</div><div class='add'>+</div><div class='add'>+	* configure.in (NULLCMD): new check.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (NULLCMD): Reflects checking in configure.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (NULLCMD): new assignment.</div><div class='add'>+</div><div class='add'>+Sun Jul 31 11:31:07 2011  Kazuki Tsujimoto  &lt;kazuki@callcc.net&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32768 from trunk.</div><div class='add'>+</div><div class='add'>+	* vm.c: check if cfp is valid. [Bug #5083] [ruby-dev:44208]</div><div class='add'>+</div><div class='add'>+Sat Jul 31 01:23:45 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32762 from trunk.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_version): removed.</div><div class='add'>+</div><div class='add'>+Sat Jul 30 23:51:44 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (cbrt): should return a real number if possible.</div><div class='add'>+</div><div class='add'>+Sat Jul 30 23:48:04 2011  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/date/date_core.c: an issue that is same as  [ruby-dev:44071].</div><div class='add'>+</div><div class='add'>+	* ext/date/date_strftime.c: identical to [ruby-dev:44112].</div><div class='add'>+</div><div class='add'>+Sat Jul 30 23:19:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defs/default_gems: separate from tool/rbinstall.rb.</div><div class='add'>+</div><div class='add'>+Sat Jul 30 23:14:44 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_byte): rbuf can be refreshed during yield.</div><div class='add'>+	  [Bug #5119]</div><div class='add'>+</div><div class='add'>+Sat Jul 30 22:35:50 2011  Naohisa Goto  &lt;ngotogenome@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (NEEDS): avoid SEGV due to integer overflow in</div><div class='add'>+	  sparc-solaris2.10 and i686-linux.  fix [Bug #4456] [ruby-dev:43284]</div><div class='add'>+</div><div class='add'>+Sat Jul 30 14:27:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32754 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_version): version 1.1.0.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.gemspec: turn into a default gem.</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 30 13:52:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb (Rational#to_d):</div><div class='add'>+	  revive zero and implicit precision support as a deprecated feature.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal_util.rb: modify a test for the above</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+	* NEWS: describes the above change.</div><div class='add'>+</div><div class='add'>+Sat Jul 30 10:58:10 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (th_init): preallocate alternative stack.</div><div class='add'>+	  NoMemoryError is better than rb_bug, of course.</div><div class='add'>+	  Patch by Eric Wong. [ruby-core:38572][ruby-core:38594].</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_register_sigaltstack): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: moved ALT_STACK_SIZE definition from signal.c.</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): use xfree() instead of free().</div><div class='add'>+</div><div class='add'>+Sat Jul 30 07:20:49 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/lib/socket.rb (udp_server_sockets): unused variable</div><div class='add'>+	  removed.</div><div class='add'>+	  patch by Jeremy Evans.  [ruby-core:38600]</div><div class='add'>+</div><div class='add'>+Fri Jul 29 23:56:32 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb: call OpenSSL::Random.seed at the</div><div class='add'>+	  SecureRandom.random_bytes call.</div><div class='add'>+	  based on the patch by Masahiro Tomita.  [ruby-dev:44270]</div><div class='add'>+</div><div class='add'>+Fri Jul 29 20:48:39 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: fix typos.</div><div class='add'>+</div><div class='add'>+Fri Jul 29 20:28:56 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: use whitespaces as a separator.</div><div class='add'>+</div><div class='add'>+Fri Jul 29 18:59:07 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: add documents for constants.</div><div class='add'>+	  patch by Eric Hodel.  [ruby-core:37853] [Bug #4989]</div><div class='add'>+</div><div class='add'>+Mon Jul 25 23:51:01 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32671 from trunk.</div><div class='add'>+</div><div class='add'>+	* proc.c: pre-allocate the unlinked_method_entry_list_entry struct to</div><div class='add'>+	  avoid memory allocation during GC.  based on a patch from Eric Wong.</div><div class='add'>+	  [ruby-core:38498]</div><div class='add'>+</div><div class='add'>+Mon Jul 25 22:36:11 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32669 from trunk.</div><div class='add'>+</div><div class='add'>+	* proc.c (struct METHOD), gc.c (gc_marks), vm_method.c</div><div class='add'>+	  (rb_gc_mark_unlinked_live_method_entries): fix SEGV bug.</div><div class='add'>+	  rb_method_entry_t was free'd even when the method is still on the</div><div class='add'>+	  stack if it is BMETHOD (i.e., Method#call).  This is because</div><div class='add'>+	  rb_method_entry_t is embedded in struct METHOD.  This commit</div><div class='add'>+	  separates them and marks the live method entries.</div><div class='add'>+	  See [ruby-core:38449] in detail.  fix [Bug #5047] [ruby-core:38171]</div><div class='add'>+</div><div class='add'>+Thu Jul 28 23:36:28 2011  CHIKANAGA Tomoyuki  &lt;nagachika00@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiddle/closure.c (callback): use rb_ary_tmp_new() instead of</div><div class='add'>+	  xmalloc() to allocate an array for arguments of callback procedure,</div><div class='add'>+	  to prevent arguments from being swept by GC. [ruby-core:38546]</div><div class='add'>+	  [Bug #4929]</div><div class='add'>+</div><div class='add'>+Thu Jul 28 22:51:27 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32723 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_initialize): Avoid possible</div><div class='add'>+	  SEGV from AES encryption/decryption. Processing data by</div><div class='add'>+	  Cipher#update without initializing key (meaningless usage of Cipher</div><div class='add'>+	  object since we don't offer a way to export a key) could cause SEGV.</div><div class='add'>+</div><div class='add'>+	  In OpenSSL, the EVP which has EVP_CIPH_RAND_KEY flag (such as DES3)</div><div class='add'>+	  allows uninitialized key, but other EVPs (such as AES) does not</div><div class='add'>+	  allow it. Calling EVP_CipherUpdate() without initializing key causes</div><div class='add'>+	  SEGV so we set the data filled with "\0" as the key by default. See</div><div class='add'>+	  #2768.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_cipher.rb: test it.</div><div class='add'>+</div><div class='add'>+Thu Jul 28 04:53:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb:  Move file-level documentation to the appropriate</div><div class='add'>+	  classes.</div><div class='add'>+</div><div class='add'>+Thu Jul 28 00:33:47 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: add OpenBSD case.</div><div class='add'>+	  patched by Jeremy Evans [ruby-core:38530] see #5097</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 17:59:46 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: define __syscall if the platform has</div><div class='add'>+	  __syscall in the library but doesn't define it in headers</div><div class='add'>+	  for example Mac OS X.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 15:39:14 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* object.c:  Add usage documentation for BasicObject.  Based on patch</div><div class='add'>+	  by Thomas Sawyer.  [Ruby 1.9 - Bug #5067]</div><div class='add'>+</div><div class='add'>+Wed Jul 27 12:24:17 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Add missing require and update</div><div class='add'>+	  messaging to avoid confusion with uninstall --format-executable.</div><div class='add'>+	  [Ruby 1.9 - Bug #4062]</div><div class='add'>+</div><div class='add'>+Wed Jul 27 10:47:57 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems:  Update to RubyGems 1.8.6.1.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 10:04:06 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32690 from trunk.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkcs12.rb: Add test and intermediate certificates.</div><div class='add'>+	  [ Ruby 1.9 - Feature #3793 ] [ruby-core:32088]</div><div class='add'>+</div><div class='add'>+Sat Jul 27 01:26:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* NEWS: add changes of bigdecimal and bigdecimal/util.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 01:13:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb (Rational#to_d):</div><div class='add'>+	  zero or negative precision is error.  fixes #5098.</div><div class='add'>+	  [ruby-dev:44210]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb (Float#to_d): modified for</div><div class='add'>+	  specifying precision.  fixes #5098.  [ruby-dev:44210]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb (Integer#to_d): added</div><div class='add'>+	  for symmetry to BigDecimal() function with an Integer.</div><div class='add'>+	  fixes #5098.  [ruby-dev:44210]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb (BigDecimal#to_d): added</div><div class='add'>+	  for adapting other Numeric subclasses.  [ruby-dev:44245]</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal_util.rb: add tests for the above</div><div class='add'>+	  changes.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 00:54:38 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bigdecimal/bigdecimal.c (VpDup) a new function for duplicating</div><div class='add'>+	  a BigDecimal.</div><div class='add'>+</div><div class='add'>+	* bigdecimal/bigdecimal.c (BigDecimal_new): support generating a new</div><div class='add'>+	  BigDecimal from another BigDecimal using BigDecimal global function</div><div class='add'>+	  or constructor.  [ruby-dev:44245]</div><div class='add'>+</div><div class='add'>+Mon Jul 25 22:24:09 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32666 from trunk.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb: Fix possible HTTP header formatting failure by</div><div class='add'>+	  'Basic' header. Long username caused the base64 String truncation in</div><div class='add'>+	  HTTP header which is not allowed. See #5046.</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb: test it.</div><div class='add'>+</div><div class='add'>+Mon Jul 25 15:36:07 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/{x509.rb,ssl.rb}: Add deprecation warning</div><div class='add'>+	  for openssl/{x509,ssl} usage. Users should require "openssl" instead</div><div class='add'>+	  of "openssl/ssl" and "openssl/x509". Start of transition period</div><div class='add'>+	  introduced by [ruby-dev:38018].</div><div class='add'>+</div><div class='add'>+Mon Jul 25 13:50:33 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32662 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb: Cosmetic change: move definition</div><div class='add'>+	  introduced in r30152 to x509-internal.rb.</div><div class='add'>+</div><div class='add'>+Mon Jul 25 13:35:20 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32658 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_shutdown): Avoid randomly generated</div><div class='add'>+	  SSLError from SSLSocket just after invoking SSLSocket#close.</div><div class='add'>+	  OpenSSL's SSL_shutdown could try to send alert packet and it might</div><div class='add'>+	  set SSLerr(global error stack) as the result. It causes the next</div><div class='add'>+	  SSL read/write operation to fail by unrelated reason.</div><div class='add'>+</div><div class='add'>+	  By design, we're ignoring any error at SSL_shutdown() so we clear</div><div class='add'>+	  global error stack after SSL_shutdown is called. See #5039.</div><div class='add'>+</div><div class='add'>+Sun Jul 24 20:29:53 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: refine the recvmsg test.</div><div class='add'>+</div><div class='add'>+Sun Jul 24 20:02:31 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: fix the recvmsg test.</div><div class='add'>+</div><div class='add'>+Sun Jul 24 08:42:51 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: test recvmsg allocates file descriptors for</div><div class='add'>+	  fd passing even with MSG_PEEK.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c: use the above test result.</div><div class='add'>+</div><div class='add'>+Sun Jul 24 01:24:31 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Restore behavior of</div><div class='add'>+	  Gem::Specification#loaded.  [Ruby 1.9 - Bug #5032]</div><div class='add'>+</div><div class='add'>+Sun Jul 24 01:14:49 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake/test_rake_functional.rb (setup): Use __FILE__ for the base</div><div class='add'>+	  directory. Current directory is not the top source directory when</div><div class='add'>+	  the building process runs on other than there.</div><div class='add'>+</div><div class='add'>+	* test/rake/test_rake_rake_test_loader.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rake/test_rake_task_argument_parsing.rb</div><div class='add'>+	  (test_terminal_width_using_hardcoded_80): hardcoded 80 is used</div><div class='add'>+	  when app.unix? is false.</div><div class='add'>+</div><div class='add'>+Sun Jul 24 00:42:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: change the default compiler to gcc-4.2 if target os</div><div class='add'>+	  is OS X 10.7 (Lion).</div><div class='add'>+</div><div class='add'>+Sat Jul 23 17:06:25 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_update_max_fd): validate fd.</div><div class='add'>+</div><div class='add'>+	* ext/socket/rubysocket.h (rsock_discard_cmsg_resource): add</div><div class='add'>+	  msg_peek_p argument for the declaration.</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (discard_cmsg): add msg_peek_p argument.</div><div class='add'>+	  assume FreeBSD, NetBSD and MacOS X doesn't generate passed fd</div><div class='add'>+	  when MSG_PEEK.</div><div class='add'>+	  (rsock_discard_cmsg_resource): add msg_peek_p argument.</div><div class='add'>+	  (bsock_recvmsg_internal): call rsock_discard_cmsg_resource with</div><div class='add'>+	  msg_peek_p argument.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c (unix_recv_io): call</div><div class='add'>+	  rsock_discard_cmsg_resource with msg_peek_p argument.</div><div class='add'>+</div><div class='add'>+Sat Jul 23 14:38:28 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rake*: Remove dependencies on flexmock and session gems.</div><div class='add'>+	  [Ruby 1.9 - Bug #4987]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 21:46:54 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_cfunc): added volatile for a workaround</div><div class='add'>+	  of cfp consistency error problem on OS X 10.7 (Lion). It's</div><div class='add'>+	  suspected llvm optimization bug.</div><div class='add'>+	  [Bug #5076] [ruby-dev:44185]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 21:50:16 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (WFKV_): unroll the loop of regexp.</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI.decode_www_form_component): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 21:49:48 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): remove empty line to notify rdoc</div><div class='add'>+	  Enumerable#reduce is alias. patched by milki@github.</div><div class='add'>+	  https://github.com/ruby/ruby/pull/26</div><div class='add'>+</div><div class='add'>+Fri Jul 22 21:49:28 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#each):</div><div class='add'>+	  Allow HTTP/0.9 request which doesn't has any header or body.</div><div class='add'>+	  patched by Felix Jodoin. [ruby-core:38040] [Bug #5022]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 21:45:21 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (dlhandle_sym): clear previous error with dlerror()</div><div class='add'>+	  before calling dlsym(). [ruby-dev:44091] [Bug #5021]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 19:05:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_enc_symname2_p): get rid of potential out-of-bound</div><div class='add'>+	  access.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 13:55:59 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  Net::HTTP#finish is used to manually close</div><div class='add'>+	  connections.  [Ruby 1.9 - Bug #5045]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 13:51:29 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c:  Add examples for Readline.completion_proc=.</div><div class='add'>+	  [Ruby 1.9 - Bug #5057]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 13:20:33 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/rbinstall.rb (default gems):  Install executables into the fake</div><div class='add'>+	  gem dir for Gem.bin_path.  [Ruby 1.9 - Bug #4485]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 13:03:12 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32609 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c: Revert checking return type of</div><div class='add'>+	  HMAC_Init_ex as it is not compatible with OpenSSL &lt; 1.0.0.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 11:22:20 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32606 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: Check return value of EVP_DigestInit_ex.</div><div class='add'>+	* ext/openssl/ossl_hmac.c: Check return value of HMAC_Init_ex.</div><div class='add'>+	  Thanks, Jared Jennings, for the patch.</div><div class='add'>+	  [ Ruby 1.9 - Bug #4944 ] [ruby-core:37670]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 09:17:43 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32604 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c: Avoid double free of ENGINE reference.</div><div class='add'>+	* test/openssl/test_engine.rb: Add a test for it.</div><div class='add'>+	  Thanks to Ippei Obayashi for providing the patch.</div><div class='add'>+	  [ Ruby 1.9 - Bug #5062 ] [ruby-dev:44173]</div><div class='add'>+</div><div class='add'>+Fri Jul 22 06:39:34 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: Do not modify CSV.generate's argument [ruby-core:38356]</div><div class='add'>+</div><div class='add'>+Thu Jul 21 20:02:11 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (set_trace_func, thread_set_trace_func_m): reset tracing</div><div class='add'>+	  state when set_trace_func hook is removed.  This is workaround patch</div><div class='add'>+	  to force to reset tracing state that is broken by continuation call.</div><div class='add'>+	  a patch from James M. Lawrence.  [Feature #4347] [ruby-core:34998]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_continuation.rb (class TestContinuation): add a test</div><div class='add'>+	  for above.  a patch from James M. Lawrence.</div><div class='add'>+</div><div class='add'>+Thu Jul 21 20:59:59 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/ancdata.c (discard_cmsg): workaround for MacOS X Lion.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Thu Jul 21 07:07:57 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32579, r32581, r32587 by akr and r32588 by kazu.</div><div class='add'>+</div><div class='add'>+	r32579:</div><div class='add'>+</div><div class='add'>+	* io.c (rb_update_max_fd): new function.</div><div class='add'>+</div><div class='add'>+	* internal.h (rb_update_max_fd): declare rb_update_max_fd.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread): update max fd when</div><div class='add'>+	  timer thread pipe is created.</div><div class='add'>+</div><div class='add'>+	r32581:</div><div class='add'>+</div><div class='add'>+	* io.c (UPDATE_MAXFD): removed.</div><div class='add'>+</div><div class='add'>+	r32587:</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_update_max_fd): declaration moved from</div><div class='add'>+	  internal.h.</div><div class='add'>+</div><div class='add'>+	* file.c: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: call rb_update_max_fd for each new fds.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* random.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/io/console/console.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/pty/pty.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/init.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/ancdata.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/unixsocket.c: ditto.</div><div class='add'>+</div><div class='add'>+	r32588:</div><div class='add'>+</div><div class='add'>+	* io.c (rb_update_max_fd): remove parentheses. they are not in</div><div class='add'>+	  macro.</div><div class='add'>+</div><div class='add'>+Sun Jul 17 08:07:31 2011  Martin Bosslet  &lt;Martin.Bosslet@googlemail.com&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32563 from trunk</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl_session.rb: add PEM SSL session without TLS</div><div class='add'>+	  extensions. Use this as the default for the tests to ensure</div><div class='add'>+	  compatibility with OpenSSL 0.9.7.</div><div class='add'>+	  [ Ruby 1.9 - Bug #4961 ] [ruby-core:37726]</div><div class='add'>+</div><div class='add'>+Sat Jul 16 17:29:20 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_UNIVERSAL_ARCH): restore arch flag.</div><div class='add'>+	  Bug #4977</div><div class='add'>+</div><div class='add'>+Sat Jul 16 11:18:26 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: support to build x64-mswin64 on Windows7 (and Vista,</div><div class='add'>+	  perhaps).</div><div class='add'>+	  backported r32521 from trunk</div><div class='add'>+</div><div class='add'>+Sat Jul 16 06:31:23 2011  Marc-Andre Lafortune  &lt;ruby-core@marc-andre.ca&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (module): Remove optional parser argument to</div><div class='add'>+	  Kernel#URI</div><div class='add'>+	  [ruby-core:38061]</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (module): ditto</div><div class='add'>+</div><div class='add'>+Sat Jul 16 01:15:53 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_dup): used rb_obj_class() instead of CLASS_OF().</div><div class='add'>+	  The patch is made by Kazuki Tsujimoto. [Bug #5012] [ruby-dev:44071]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (TestTime#test_getlocal_dont_share_eigenclass):</div><div class='add'>+	  added a new test for eigenclass of time object.</div><div class='add'>+</div><div class='add'>+Fri Jul 15 19:11:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigsub_int): add RB_GC_GUARD.  This patch is made by</div><div class='add'>+	  Makoto Kishimoto.  fixes #4223 [ruby-dev:42907]</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigadd_int): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 15 09:59:12 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32546 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.c (SHA256_Update, SHA512_Update): avoid Bus</div><div class='add'>+	  Error caused by unalignment access on Sparc-Solaris (and possibly on</div><div class='add'>+	  other similar environment.) This patch just do memcpy always instead</div><div class='add'>+	  of checking architecture. I see no perf drop on my 64bit env. For</div><div class='add'>+	  more details, see #4320.</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest.rb: add test for unalignment access.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Thu Jul 14 12:40:07 2011  Hiroshi Nakamura  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* backport r32537 from trunk.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_verify_cb): trap the exception from</div><div class='add'>+	  verify callback of SSLContext and X509Store and make the</div><div class='add'>+	  verification fail normally. Raising exception directly from callback</div><div class='add'>+	  causes orphan resources in OpenSSL stack. Patched by Ippei Obayashi.</div><div class='add'>+	  See #4445.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb</div><div class='add'>+	  (test_exception_in_verify_callback_is_ignored): test it.</div><div class='add'>+</div><div class='add'>+Wed Jul 13 08:20:08 2011  Shota Fukumori  &lt;sorah@tubusu.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb(Test::Unit::Options#process_args): Fix bug.</div><div class='add'>+	  Fix process_args didn't return `@option` after r30939. Backported</div><div class='add'>+	  r32526 from trunk.</div><div class='add'>+</div><div class='add'>+Mon Jul 11 23:50:39 2011  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: can't compile time.c on AIX due to missing declaration for</div><div class='add'>+	  ffs(). It is declared in strings.h on AIX. backported r32518 from</div><div class='add'>+	  trunk.</div><div class='add'>+</div><div class='add'>+Mon Jul 11 23:47:00 2011  Yutaka Kanemoto  &lt;kanemoto@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (get_stack):  need to adjust stack addr for</div><div class='add'>+	  [Bug #1813] on AIX. backported r32511 from trunk.</div><div class='add'>+</div><div class='add'>+Mon Jul 11 15:17:03 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2ull): use FIX2LONG instead of FIX2ULONG. see</div><div class='add'>+	  rb_num2ulong(). fixed the problem of ObjectSpace._id2ref of IL32LLP64</div><div class='add'>+	  platforms, introduced at r32433.</div><div class='add'>+	  backported r32512 from trunk.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 23:58:55 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: 1.9.3 is no longer trunk.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 23:24:29 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mix_module): reverted r31873.</div><div class='add'>+	  (check_mix_method_i, do_mix_method_i) reverted r31917.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (TestModule#test_mix_const): reverted</div><div class='add'>+	  r31918.</div><div class='add'>+</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) instad 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 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'>+	  http://redmine.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 convertion 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='ctx'> 	  receiver.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_puts): avoid generating "\n" each time.  use RS_default</div><div class='del'>- 	  instead.</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='ctx'> </div><div class='del'>-	* io.c (f_p): ditto.</div><div class='add'>+Sat Jan 22 11:33:04 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Apr 14 22:18:17 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</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='ctx'> </div><div class='del'>-	* struct.c (struct_aref): should not subtract negative index.</div><div class='add'>+	* test/psych/test_merge_keys.rb: test for merge keys</div><div class='ctx'> </div><div class='del'>-Tue Apr 14 11:34:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Jan 22 10:25:19 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_10.</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='ctx'> </div><div class='del'>-	* parse.y: token names prefixed by `t'.</div><div class='add'>+	* test/psych/test_parser.rb: test for parse error file name</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_s_def): supports subclassing of Struct.</div><div class='add'>+Sat Jan 22 10:12:30 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_s_new): supports subclassing of IO.</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='ctx'> </div><div class='del'>-Mon Apr 13 11:07:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/psych/test_parser.rb: test for assertion error</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_binding): need to restore method name.</div><div class='add'>+Sat Jan 22 04:09:22 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_call0): raises SystemStackError, not Fatal.</div><div class='add'>+	* ext/psych/lib/psych/nodes/node.rb: Make Psych::Nodes::Node</div><div class='add'>+	  enumerable.</div><div class='ctx'> </div><div class='del'>-	* io.c (obj_display): same as `print self'.</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='ctx'> </div><div class='del'>-	* io.c (f_p): can now be called in the method form.</div><div class='add'>+	* test/psych/nodes/test_enumerable.rb: test for enumerating nodes</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_regsub): needed to be mbchar aware.</div><div class='add'>+	* test/psych/visitors/test_depth_first.rb: test for depth-first</div><div class='add'>+	  visitor</div><div class='ctx'> </div><div class='del'>-Mon Apr 13 13:18:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Jan 22 00:53:42 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_trap_eval): all signals delivered to main_thread.</div><div class='add'>+	* vm_core.h: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Mon Apr 13 12:47:03 1998  TAKAHASHI Masayoshi  &lt;maki@inac.co.jp&gt;</div><div class='add'>+Fri Jan 21 18:15:09 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (kcode_set_option): did not set SJIS on SJIS condition.</div><div class='add'>+	* configure.in: should not use -Werror=* flags while conftests.</div><div class='ctx'> </div><div class='del'>-Sun Apr 12 22:14:07 1998  Kazunori NISHI  &lt;kazunori@swlab.csce.kyushu-u.ac.jp&gt;</div><div class='add'>+Fri Jan 21 09:17:00 2011  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_uniq_bang): should be `==', not `='. embarrassing.</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='ctx'> </div><div class='del'>-Sat Apr 11 02:13:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Jan 20 23:44:00 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_subseq): SEGVed for `[][1,1]'.</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='ctx'> </div><div class='del'>-Fri Apr 10 21:29:06 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+Thu Jan 20 23:58:02 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_subseq): add check for beg larger than array length.</div><div class='add'>+	* node.h: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Wed Apr  8 17:24:11 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+Thu Jan 20 23:25:28 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* dir.c (dir_s_open): can be called with block (like IO#open).</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='ctx'> </div><div class='del'>-	* dir.c (dir_s_chdir): print directory path on error.</div><div class='add'>+Thu Jan 20 16:11:00 2011  Kenta Murata &lt;mrkn@mrkn.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* dir.c (dir_s_chroot): ditto</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='ctx'> </div><div class='del'>-	* dir.c (Init_Dir): needed to override `new'.</div><div class='add'>+Thu Jan 20 12:15:44 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Apr  9 18:24:58 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* experimental release 1.1b9_09.</div><div class='add'>+Thu Jan 20 11:39:41 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_cmp): do not depend on sentinel at the end of the</div><div class='del'>-	  strings. </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='ctx'> </div><div class='del'>-	* string.c (str_chomp_bang): forgot to set the sentinel.</div><div class='add'>+Thu Jan 20 09:19:42 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Apr  8 00:59:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* bignum.c (big2int): converted int may be too big to fit in</div><div class='del'>-	  signed int.</div><div class='add'>+	* test/psych/test_json_tree.rb: test for JSON emit</div><div class='ctx'> </div><div class='del'>-	* parse.y (arg): `foo += 1' should not cause an error.</div><div class='add'>+Thu Jan 20 08:02:46 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (rb_const_defined): returned false even if the</div><div class='del'>-	  constant is defined at the top level.</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='ctx'> </div><div class='del'>-	* eval.c (f_local_variables): dyna_var-&gt;id may be null.  should</div><div class='del'>-	  have checked before calling str_new2().</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='ctx'> </div><div class='del'>-Tue Apr  7 01:15:15 1998  Kaneko Naoshi  &lt;wbs01621@mail.wbs.or.jp&gt;</div><div class='add'>+	* test/psych/test_coder.rb: supporting test case.</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_regsub): need to check string boundary.</div><div class='add'>+Thu Jan 20 06:03:17 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Apr  7 19:19:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* method.h: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_cmp): returns either 1, 0, -1.</div><div class='add'>+Wed Jan 19 13:16:05 2011  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_cmp): should check array length, too</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb: Finish removing code,</div><div class='add'>+	  (fixes sources command test).</div><div class='ctx'> </div><div class='del'>-Tue Apr  7 18:50:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Jan 19 13:04:16 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_08.</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='ctx'> </div><div class='del'>-Tue Apr  7 18:31:27 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Wed Jan 19 12:31:28 2011  Eric Hodel &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* instruby.rb (mandir): dll installation for cygwin32</div><div class='add'>+	* lib/rubygems.rb: Since gem_prelude requires rubygems, enable</div><div class='add'>+	  custom_require always.</div><div class='ctx'> </div><div class='del'>-Tue Apr  7 01:16:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Jan 19 12:08:08 2011  Eric Hodel &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* config.sub (maybe_os): TOWNS support?</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='ctx'> </div><div class='del'>-	* config.guess: too strict check for libc versions on linuxes.</div><div class='add'>+Wed Jan 19 08:13:59 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_07.</div><div class='add'>+	* lib/rubygems*: Import rubygems 1.5.0 (release candidate)</div><div class='add'>+	* test/rubygems: Ditto</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_cmp): compare each element using `&lt;=&gt;'.</div><div class='add'>+Tue Jan 18 23:31:01 2011  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* hash.c (hash_each_with_index): yields [value, key] pair.</div><div class='add'>+	* parse.y: avoid NULL reference.  [ruby-dev:43067]</div><div class='ctx'> </div><div class='del'>-	* class.c (class_protected_instance_methods): list protected</div><div class='del'>-	  method names.</div><div class='add'>+Wed Jan 19 02:54:04 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* class.c (ins_methods_i): exclude protected methods.</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='ctx'> </div><div class='del'>-	* eval.c (PUSH_BLOCK): dynamic variables can be accessed from</div><div class='del'>- 	  eval() with bindings.</div><div class='add'>+Tue Jan 18 23:04:51 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Apr  6 14:49:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* gc.h: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_yield): must return evaluated value.</div><div class='add'>+Tue Jan 18 18:31:14 2011  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Apr  3 13:07:29 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/irb/completion.rb: Irb tab completion support for XX::method</div><div class='add'>+	  forms.</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_schedule): context switch bypassed on wrong</div><div class='del'>-	  conditions.</div><div class='add'>+Tue Jan 18 15:05:55 2011  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (rb_name_class): set classname by id before String</div><div class='del'>- 	  class is initialized (1.0 behavior restored).</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='ctx'> </div><div class='del'>-Fri Apr  3 11:25:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Jan 18 07:53:52 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (num2int): no implicit conversion from string.</div><div class='add'>+	* eval_intern.h: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* numeric.c (num2int): check whether `to_i' returns an Integer.</div><div class='add'>+Tue Jan 18 04:42:44 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (num_zero_p): new method.</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='ctx'> </div><div class='del'>-	* numeric.c (num_nonzero_p): new method.  returns the receiver if</div><div class='del'>- 	  it's not zero.</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='ctx'> </div><div class='del'>-	* eval.c (obj_instance_eval): the_class should be the object's</div><div class='del'>-	  singleton class.</div><div class='add'>+	* test/psych/test_parser.rb: tests for the Mark class.</div><div class='ctx'> </div><div class='del'>-	* error.c (exc_s_new): message is converted into a string.</div><div class='add'>+Tue Jan 18 02:46:55 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Apr  2 18:31:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (obj_call_init): every object call `initialize'.</div><div class='add'>+	* test/psych/test_json_tree.rb: test for double quotes</div><div class='ctx'> </div><div class='del'>-Wed Apr  1 08:51:53 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+Mon Jan 17 23:36:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (stmt): UNTIL_MOD should be for stmt, not only for expr.</div><div class='add'>+	* array.c (rb_ary_times): less MEMCPY calls.</div><div class='ctx'> </div><div class='del'>-Wed Apr  1 01:20:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Jan 17 22:54:33 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (true_and): boolean operators &amp;, | and ^.</div><div class='add'>+	* debug.h: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Tue Mar 31 13:23:58 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Jan 17 21:40:25 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_compact_bang): returns nil, if it does not modify</div><div class='del'>-	  the array like String's bang methods.</div><div class='add'>+	* ruby.c (process_options): revert r30549.</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_uniq_bang): new method to remove duplicate items.</div><div class='add'>+Sun Jan 16 20:55:45 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (bind_s_new): new method.</div><div class='add'>+	* vsnprintf.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* numeric.c (num2int): raise exception if Fixnums too big to</div><div class='del'>- 	  convert into `int' in case that sizeof(int) &lt; sizeof(INT).</div><div class='add'>+Sat Jan 15 11:57:30 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_center): SEGV on negative width.</div><div class='add'>+	* configure.in (warnflags): add -Werror=implicit-function-declaration</div><div class='add'>+	  if available.</div><div class='ctx'> </div><div class='del'>-	* eval.c (eval): forgot to set sourcefile.</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): ignore warnings in mkmf tests.</div><div class='ctx'> </div><div class='del'>-Mon Mar 30 11:12:29 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/mkmf/base.rb (setup, teardown): restore config values.</div><div class='ctx'> </div><div class='del'>-	* file.c (f_test): raises exception for unkown command.</div><div class='add'>+	* test/mkmf/test_flags.rb: split from test_find_executable.rb.</div><div class='ctx'> </div><div class='del'>-	* eval.c (Init_eval): `class_eval': alias to the module_eval.</div><div class='add'>+Sat Jan 15 10:04:14 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 30 18:50:42 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+	* ruby.c (process_options): autoload rubygems.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_capitalize_bang): did not check string modification.</div><div class='add'>+	* tool/compile_prelude.rb (Prelude#initialize): ignore empty</div><div class='add'>+	  preludes.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_delete_bang): wrong conversion.</div><div class='add'>+	* ruby.c (ruby_init_prelude): get rid of global namespace</div><div class='add'>+	  pollution.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_intern): typo in error message.</div><div class='add'>+Sat Jan 15 09:42:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 30 01:44:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* include/ruby/io.h: missing prototypes.</div><div class='ctx'> </div><div class='del'>-	* eval.c (obj_instance_eval): accepts block as evaluation body.</div><div class='del'>-	  No compilation needed each time.</div><div class='add'>+Fri Jan 14 23:25:55 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (mod_module_eval): ditto</div><div class='add'>+	* vm_method.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* file.c (file_s_umask): umask did not return old values, if no</div><div class='del'>- 	  argument given.</div><div class='add'>+Fri Jan 14 15:32:29 2011  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sun Mar 29 00:54:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (f_throw): nil returned always.</div><div class='add'>+Fri Jan 14 14:56:57 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Mar 28 20:40:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* experimental release 1.1b9_06.</div><div class='add'>+Fri Jan 14 14:01:12 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Mar 28 16:07:11 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_closed): should not cause exception fot closed IO.</div><div class='add'>+Fri Jan 14 13:38:58 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_tr): returned nil for success.</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='ctx'> </div><div class='del'>-Sat Mar 28 00:47:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Jan 14 11:36:25 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_local_variables): new method to return an array of</div><div class='del'>- 	  local variable names.</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='ctx'> </div><div class='del'>-	* variable.c (obj_instance_variables): now returns an array of</div><div class='del'>-	  variable names, as described in the reference.</div><div class='add'>+Fri Jan 14 10:40:11 2011  Ryan Davis  &lt;ryan@lust.local&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_attr): honors default method visibility of the</div><div class='del'>-	  current scope.</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='ctx'> </div><div class='del'>-Fri Mar 27 13:49:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Jan 14 07:30:47 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_05.</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='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): `site_ruby' added to load_path.</div><div class='add'>+Thu Jan 13 20:49:19 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): load-path order changed.  Paths in</div><div class='del'>- 	  the RUBYLIB environment variable comes first in non-tainted</div><div class='del'>- 	  mode.</div><div class='add'>+	* vm_insnhelper.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Thu Mar 26 11:51:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Jan 13 13:21:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_call): new feature: `protected' methods.</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='ctx'> </div><div class='del'>-	* string.c (str_dump): new method.</div><div class='add'>+Thu Jan 13 13:21:00 2011  Kenta Murata  &lt;mrkn@mrkn.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (block_pass): block argument can be nil, which means no</div><div class='del'>-	  block is supplied for the method.</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='ctx'> </div><div class='del'>-Wed Mar 25 21:20:13 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+Thu Jan 13 06:27:29 2011  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_reverse_bang): string copied to wrong place.</div><div class='add'>+	* error.c: Exception#to_s should actually call to_s.</div><div class='ctx'> </div><div class='del'>-Wed Mar 25 08:12:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Jan 13 00:32:54 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (flo_modulo): caused SEGV if left operand is not a</div><div class='del'>- 	  float value.</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='ctx'> </div><div class='del'>-	* eval.c (f_eval): optional third and fourth argument to specify</div><div class='del'>-	  file-name and line-number.</div><div class='add'>+Thu Jan 13 00:06:38 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (eval): file-name and line-number set properly.</div><div class='add'>+	* io.c (rb_f_syscall): Add warning messages. [ruby-core:34062]</div><div class='ctx'> </div><div class='del'>-	* parse.y (assign_in_cond): literal assignment is now warning, not </div><div class='del'>-	  compile error.</div><div class='add'>+Thu Jan 13 00:00:07 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* error.c (Warn): Warn() always print message, OTOH Waring()</div><div class='del'>-	  prints when verbose flag is set.</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='ctx'> </div><div class='del'>-Tue Mar 24 12:50:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Jan 12 23:55:48 2011  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): `.' should come last in the load-path.</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='ctx'> </div><div class='del'>-	* eval.c (Init_eval): `__send__', alias for `send'.</div><div class='add'>+Wed Jan 12 19:37:10 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 23 12:44:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* vm_dump.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_chomp_bang): now takes `rs' as an argument.</div><div class='add'>+Wed Jan 12 19:28:23 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_free): main_thread should not be freed.</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='ctx'> </div><div class='del'>-Fri Mar 20 16:40:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Jan 12 19:09:29 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_chomp_bang): chomp! (and other ! methods) returns</div><div class='del'>- 	  nil if it does not modify the string.</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='ctx'> </div><div class='del'>-	* string.c (str_sub_iter_s): should check last pattern since it</div><div class='del'>- 	  may be matched to null.</div><div class='add'>+Wed Jan 12 16:25:12 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-Thu Mar 19 13:48:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* experimental release 1.1b9_04.</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='ctx'> </div><div class='del'>-	* parse.y (yylex): `10e0.9' should cause syntax error.</div><div class='add'>+	* test/net/http/test_https.rb (TestNetHTTPS#test_timeout_during_SSL_handshake):</div><div class='add'>+	  ditto.</div><div class='ctx'> </div><div class='del'>-Wed Mar 18 17:46:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Jan 12 16:24:53 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (load_file): new file object constant DATA.  Only</div><div class='del'>-	  available for the script from the file.</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='ctx'> </div><div class='del'>-	* regex.c (re_match): forwading failure point popped too much. </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='ctx'> </div><div class='del'>-Tue Mar 17 18:23:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Jan 12 15:53:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* math.c (math_frexp): newly added.</div><div class='add'>+	* README.EXT.ja (rb_ensure): typo.</div><div class='ctx'> </div><div class='del'>-	* math.c (math_ldexp): ditto.</div><div class='add'>+Wed Jan 12 11:33:46 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* bignum.c (bigdivmod): calculates modulo.</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='ctx'> </div><div class='del'>-	* numeric.c (fix_remainder): returns reminder, formerly introduced</div><div class='del'>- 	  as modulo.</div><div class='add'>+Wed Jan 12 03:59:36 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (fix_modulo): calculates proper `modulo'.</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='ctx'> </div><div class='del'>-	* bignum.c (bigdivmod): wrong sign for reminder.</div><div class='add'>+	* test/webrick/test_httpproxy.rb: ditto.</div><div class='ctx'> </div><div class='del'>-Mon Mar 16 17:07:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/webrick/test_httpserver.rb: Add a test of the deprecation</div><div class='add'>+	  behaviour.</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_03.</div><div class='add'>+Wed Jan 12 08:37:07 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 16 16:33:53 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* hash.c (hash_i): return different values for inverse hash.</div><div class='add'>+	  [ruby-core:34334]</div><div class='ctx'> </div><div class='del'>-	* io.c (pipe_finalize): needed to add pipe_finalize to pipes on</div><div class='del'>-	  cygwin32.</div><div class='add'>+Tue Jan 11 20:32:59 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 16 14:11:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* variable.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* class.c (ins_methods_i): needed to consider NOEX_UNDEF.</div><div class='add'>+Tue Jan 11 13:06:38 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 16 13:23:53 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_check_closed): check for `fptr-&gt;f2 == NULL'.</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='ctx'> </div><div class='del'>-	* io.c (io_fptr_close): ditto.</div><div class='add'>+Mon Jan 10 22:46:43 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar 16 11:49:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* include/ruby/defines.h (CASEFOLD_FILESYSTEM): HFS+ is case</div><div class='add'>+	  insensitive.</div><div class='ctx'> </div><div class='del'>-	* io.c (pipe_atexit): free()ing referencing pipe_list.</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='ctx'> </div><div class='del'>-	* range.c (range_length): returns zero, if the first is greater</div><div class='del'>-	  than the last.</div><div class='add'>+Mon Jan 10 21:34:12 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* signal.c (trap_restore_mask): restore signal mask before raising </div><div class='del'>-	  exceptions and throws.</div><div class='add'>+	* common.mk (showflags): show LD commands.</div><div class='ctx'> </div><div class='del'>-Fri Mar 13 13:49:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Jan 10 14:32:55 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_02.</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='ctx'> </div><div class='del'>-	* object.c (mod_clone): need to dups constants and instance</div><div class='del'>-	  variables.</div><div class='add'>+Mon Jan 10 13:51:17 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): forgot to initialize body for NODE_DEFS.</div><div class='add'>+	* misc/rdoc-mode.el (rdoc-mode): show trailing whitespace.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): retrieve self from calling frame, since self</div><div class='del'>-	  changes sometimes.</div><div class='add'>+Mon Jan 10 11:22:02 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* env.h (FRAME): need to save self in the calling frame.</div><div class='add'>+	* util.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* io.c (f_gets_method): rs should be initialized by RS.</div><div class='add'>+Mon Jan 10 07:41:31 2011  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Mar 12 15:33:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* misc/README: mention rdoc-mode.el and ruby-style.el.</div><div class='ctx'> </div><div class='del'>-	* experimental release 1.1b9_01.</div><div class='add'>+Sun Jan  9 20:37:21 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* range.c (range_s_new): check values by `first &lt;= last'.</div><div class='add'>+	* transcode.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* parse.y (lastline_set): fixed offset for $_ and $~ in the local</div><div class='del'>-	  variable space.</div><div class='add'>+Sun Jan  9 16:31:53 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-Wed Mar 11 02:14:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_gets): handle normal case specially for speed.</div><div class='add'>+Sun Jan  9 16:31:34 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_disable_super): function to disable superclass's</div><div class='del'>-	  method explicitly.</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='ctx'> </div><div class='del'>-	* eval.c (rb_eval): inherits previous method definition's</div><div class='del'>-	  NOEX_UNDEF-ness, if exists.</div><div class='add'>+Sun Jan  9 14:47:50 2011  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* class.c (rb_define_method): disables superclass's overriding</div><div class='del'>- 	  method by default.</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='ctx'> </div><div class='del'>-Wed Mar 11 01:40:48 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+Sat Jan  8 21:47:26 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (flo_gt,etc.): do not depend on `&lt;=&gt;', to handle NaN.</div><div class='add'>+	* enum.c (enum_sort_by): use rb_ary_resize.</div><div class='add'>+	  (ary_cutoff): removed.</div><div class='ctx'> </div><div class='del'>-Tue Mar 10 00:03:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Jan  8 21:24:17 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (load_file): understands multiple options in #! line.</div><div class='add'>+	* pack.c (swapf): compilation condition simplified.</div><div class='add'>+	  (swapd): ditto.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): support for [:alpha:] etc.</div><div class='add'>+Sat Jan  8 20:51:25 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Mar  9 16:53:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* pack.c (swapd): remove duplicated code.</div><div class='ctx'> </div><div class='del'>-	* io.h (GetOpenFile): embed io_check_closed in GetOpenFile.</div><div class='add'>+Sat Jan  8 19:28:55 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (f_sprintf): zero padding failed for negative</div><div class='del'>-	  integers.</div><div class='add'>+	* thread.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* sprintf.c (remove_sign_bits): failed to remove some bits.</div><div class='add'>+Fri Jan  7 23:07:40 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Mar  7 21:51:46 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (configuration): backref needs to capture.</div><div class='ctx'> </div><div class='del'>-	* class.c (ins_methods_i): body may be NULL for some case.</div><div class='add'>+Fri Jan  7 21:57:22 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Mar  6 17:23:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* regex.c (mbcinit): table driven mbchar detection.</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='ctx'> </div><div class='del'>-	* object.c (obj_alloc): check for allocating instance for the</div><div class='del'>-	  primitive classes (mostly perfect).</div><div class='add'>+Fri Jan  7 00:37:35 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/curses/curses.c (curses_finalize): restore original state at </div><div class='del'>-	  interpreter temination.</div><div class='add'>+	* string.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* ext/curses/curses.c (curses_addstr): forgot to check argument</div><div class='del'>-	  type (caused SEGV).  now uses STR2CSTR() macro.</div><div class='add'>+Thu Jan  6 22:42:02 2011  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Mar  5 13:47:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (block_pass): accepts method object as block args.</div><div class='add'>+Thu Jan  6 20:55:49 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_missing): use any_to_s() for stringify.</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='ctx'> </div><div class='del'>-Wed Mar  4 01:39:52 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Jan  6 11:27:01 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (block_arg): new syntax - block argument in the</div><div class='del'>-	  calling arglist.</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='ctx'> </div><div class='del'>-	* eval.c (rb_call): no module search. simplified a lot.</div><div class='add'>+Thu Jan  6 09:23:33 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): block arg support.</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='ctx'> </div><div class='del'>-	* parse.y (f_block_arg): new syntax - block argument in the</div><div class='del'>- 	  formal arglist.</div><div class='add'>+Thu Jan  6 09:12:31 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Mar  3 14:20:15 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (obj_method): returns bound method object.</div><div class='add'>+Thu Jan  6 05:25:49 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_call): argument check for empty methods.</div><div class='add'>+	* array.c (rb_ary_modify): export.</div><div class='ctx'> </div><div class='del'>-	* ruby.h (NUM2CHR): new macro, originally from curses module.</div><div class='add'>+Thu Jan  6 05:14:41 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Mar  3 13:03:35 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_putc): new method.</div><div class='add'>+Thu Jan  6 05:10:58 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Mar  3 11:21:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* array.c (rb_ary_resize): new utility function.  [ruby-dev:42912]</div><div class='ctx'> </div><div class='del'>-	* string.c (str_inspect): more strict charcode detection.</div><div class='add'>+Thu Jan  6 05:03:26 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_stop): stopping only thread raises ThreadError</div><div class='del'>-	  exception.</div><div class='add'>+	* dln.c (init_funcname_len): ignore rest from first dot.</div><div class='add'>+	  [ruby-dev:41774]</div><div class='ctx'> </div><div class='del'>-Tue Mar  3 08:04:56 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+Thu Jan  6 02:55:48 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_alloc): imcomplete struct initialization made</div><div class='del'>- 	  GC to access unallocated addresses.</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='ctx'> </div><div class='del'>-Mon Mar  2 16:28:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/psych/test_nil.rb: test for nil values</div><div class='ctx'> </div><div class='del'>-	* eval.c (thread_stop_method): remove Thread#stop.</div><div class='add'>+Wed Jan  5 14:21:34 2011  Mark Dodwell  &lt;hi@mkdynamic.co.uk&gt;</div><div class='ctx'> </div><div class='del'>-Fri Feb 27 18:16:26 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* string.c: fix rdoc typo.</div><div class='add'>+	  https://github.com/shyouhei/ruby/pull/3</div><div class='ctx'> </div><div class='del'>-	* version 1.1b9 released.</div><div class='add'>+Wed Jan  5 14:06:01 2011  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Feb 27 09:36:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* hash.c (hash_delete_nil): needed to compare value to nil, since</div><div class='del'>-	  nil is the valid key for hashes.</div><div class='add'>+Wed Jan  5 13:56:54 2011  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='ctx'> </div><div class='del'>-	* hash.c (hash_foreach_iter): rehashing causes IndexError.</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='ctx'> </div><div class='del'>-	* hash.c (hash_foreach_iter): rehash check by pointer comparison.</div><div class='add'>+Wed Jan  5 12:10:08 2011  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Feb 26 17:22:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* parse.y (fname): convert reswords into symbols.</div><div class='add'>+Sat Jan  1 17:02:50 2011  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (reswords): reserved words are now embedded in the</div><div class='del'>- 	  syntax (sigh).</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='ctx'> </div><div class='del'>-	* parse.y: now reserved words can be method names safely.</div><div class='add'>+Sat Jan  1 11:44:42 2011  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Feb 25 15:50:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* strftime.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* eval.c (mod_module_eval): clear the_scope's PRIVATE flag before</div><div class='del'>-	  calling eval().</div><div class='add'>+Sat Jan  1 11:10:29 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* gc.c (gc_call_finalizer_at_exit): run finalizers before any data </div><div class='del'>-	  object being freed.</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='ctx'> </div><div class='del'>-	* eval.c (rb_eval): needed to keep prot_tag-&gt;retval before</div><div class='del'>-	  evaluating the ensure clause.</div><div class='add'>+Sat Jan  1 11:03:58 2011  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Feb 24 11:16:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* NEWS (optparse): shell completion support.</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): reserved words can be appear as method names at</div><div class='del'>- 	  right after 'def' and `.'(dot), like foo.next.</div><div class='add'>+	* misc/README (rb_optparse.{bash,zsh}): for shell completion.</div><div class='ctx'> </div><div class='del'>-	* eval.c (return_check): checks for return out of thread (formerly</div><div class='del'>- 	  done in return_value).</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='ctx'> </div><div class='del'>-	* eval.c (POP_TAG): copy retval to outer level.</div><div class='add'>+Sat Jan  1 04:20:11 2011  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (return_value): just set retval, no check, no unwinding.</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='ctx'> </div><div class='del'>-	* parse.y (nextc): line continuation by backslash at end of line.</div><div class='add'>+Fri Dec 31 12:02:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): forgot to clear pending_exact on</div><div class='del'>-	  closing parentheses.</div><div class='add'>+	* enum.c (enum_sort_by): use less temporary objects.</div><div class='ctx'> </div><div class='del'>-	* parse.y (assignable): should not assign dyna_var to true, if it</div><div class='del'>- 	  is already defined.</div><div class='add'>+Fri Dec 31 11:46:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Feb 23 14:35:03 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* object.c (obj_is_kind_of): no longer accepts true/false/nil.</div><div class='add'>+Fri Dec 31 11:15:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c ({true,false,nil}_to_i): can be converted into integers.</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='ctx'> </div><div class='del'>-Mon Feb 23 12:11:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Dec 31 10:27:34 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_s_quote): needed to be mbchar aware.</div><div class='add'>+	* st.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* eval.c (proc_s_new): wrong iter mark.</div><div class='add'>+Fri Dec 31 03:23:26 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Feb 21 22:59:30 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (f_syscall): no argument check.</div><div class='add'>+Fri Dec 31 03:00:34 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Feb 20 10:17:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* Makefile.in: remove unnecessary semicolons.</div><div class='ctx'> </div><div class='del'>-	* version 1.1b8 released.</div><div class='add'>+Thu Dec 30 23:09:47 2010  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/kconv/kconv.c (kconv_kconv): default output code now be</div><div class='del'>-	  determined according to the value of $KCODE.</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='ctx'> </div><div class='del'>-	* re.c (rb_get_kcode): can retrieve $KCODE from C code. </div><div class='add'>+Thu Dec 30 20:18:32 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (stmt): if/unless modifiers returns nil, if condition is </div><div class='del'>-	  not established.</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='ctx'> </div><div class='del'>-Thu Feb 19 11:06:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Dec 30 20:57:09 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/kconv/kconv.c (kconv_kconv): charcode can be specified by</div><div class='del'>-	  code name (JIS, SJIS, EUC like value of $KCODE).</div><div class='add'>+	* Makefile.in: Check V=1 argument if run "make clean" or similar.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): forgot to fixup_jump for (?:..).</div><div class='add'>+Thu Dec 30 20:41:50 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): needed to clear pending_exact on</div><div class='del'>-	  non-registering grouping (?:...).</div><div class='add'>+	* Makefile.in: Kill ugly line continuation.</div><div class='ctx'> </div><div class='del'>-Wed Feb 18 19:54:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Dec 30 11:49:40 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (here_document): needed to set lex_state to EXPR_END.</div><div class='add'>+	* sprintf.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Wed Feb 18 18:45:10 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Wed Dec 29 21:20:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* patches for cygwin32 applied.</div><div class='add'>+	* io.c (maygvl_copy_stream_wait_readwrite): define if USE_SENDFILE</div><div class='ctx'> </div><div class='del'>-Wed Feb 18 00:41:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Dec 29 20:37:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_sub_s): needed to be mbchar aware to increment one</div><div class='del'>- 	  character.</div><div class='add'>+	* ext/extmk.rb: strip current directory prefix.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): \Z matches newline just before the end of</div><div class='del'>-	  the string.</div><div class='add'>+	* enc/depend (clean): remove name2ctype.h when out-of-place build.</div><div class='ctx'> </div><div class='del'>-Tue Feb 17 00:04:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/Makefile.sub (clean-enc): pass V to inferior make.</div><div class='ctx'> </div><div class='del'>-	* time.c (time_arg): Time.gm and Time.local now understands</div><div class='del'>- 	  Time#to_a format.</div><div class='add'>+Wed Dec 29 18:23:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_sub_s): replace happened twice for null pattern.</div><div class='add'>+	* re.c (rb_reg_expr_str): need to escape if the coderange is invalid.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_search): null pattern should not match after newline </div><div class='del'>-	  at the end of string.</div><div class='add'>+Wed Dec 29 10:06:51 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* time.c (time_isdst): now returns boolean value.</div><div class='add'>+	* signal.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* error.c (rb_check_type): treat special constants in messages.</div><div class='add'>+Wed Dec 29 07:22:15 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): new form `::Const' to see toplevel constants.</div><div class='add'>+	* lib/rake/rdoctask.rb: Deprecate in favor of rdoc/task.</div><div class='ctx'> </div><div class='del'>-	* parse.y (cond): SEGV on `if ()'.</div><div class='add'>+Wed Dec 29 07:07:06 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* gc.c (obj_free): some data needed explicit free().</div><div class='add'>+	* lib/rdoc: Import RDoc 3.1</div><div class='ctx'> </div><div class='del'>-Mon Feb 16 23:55:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec 28 18:36:38 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (blk_free): release duplicated block informations.</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='ctx'> </div><div class='del'>-	* eval.c (blk_copy_prev): duplicate outer block information into</div><div class='del'>- 	  the heap, when proc/binding created.</div><div class='add'>+	* parse.y (compile_error): use above function.</div><div class='add'>+	  [ruby-core:33951] (#4217)</div><div class='ctx'> </div><div class='del'>-Mon Feb 16 14:38:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec 28 07:37:38 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* time.c (time_mon): now 1 for January and so on.</div><div class='add'>+	* ruby.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* time.c (time_year): year in 19xx (no + 1900 needed anymore).</div><div class='add'>+Tue Dec 28 07:17:11 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Feb 16 13:28:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* NEWS: add ARGF.write and so on.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): need to fetch mbchar's second byte</div><div class='del'>- 	  without translation.</div><div class='add'>+Tue Dec 28 07:12:38 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Feb 16 12:29:27 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+	* NEWS: add new magic-comment. (warn-indent) [ruby-core:25442]</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_pass_block): pass iterator block to other method.</div><div class='add'>+Tue Dec 28 04:32:37 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Feb 13 08:16:11 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* parse.y (parse_regx): handle \s before read_escape().</div><div class='add'>+Tue Dec 28 01:45:12 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (read_escape): `\s' in strings as space.</div><div class='add'>+	* NEWS: Add Zlib.deflate and Zlib.inflate.</div><div class='add'>+	  [ruby-dev:42833]</div><div class='ctx'> </div><div class='del'>-Tue Feb 10 17:29:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec 27 21:22:33 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1b7 released.</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='ctx'> </div><div class='del'>-	* string.c (str_aset): string insertion by `str[n] = str2'.</div><div class='add'>+Mon Dec 27 18:27:13 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_oct): does recognize `0x'.</div><div class='add'>+	* re.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>- 	* sprintf.c (f_sprintf): use baes 10 for conversion from string to</div><div class='del'>- 	  integer.</div><div class='add'>+Mon Dec 27 15:22:23 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Feb  9 14:51:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* win32/README.win32: note to need NT based OS to build ruby.</div><div class='ctx'> </div><div class='del'>-	* numeric.c (do_coerce): proper error message.</div><div class='add'>+Mon Dec 27 12:14:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_sum): bug - masked by wrong value. (sigh..)</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='ctx'> </div><div class='del'>-Sat Feb  7 15:11:14 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec 27 10:33:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_empty): new method</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='ctx'> </div><div class='del'>-Fri Feb  6 01:42:15 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec 27 07:38:07 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* time.c (time_asctime): use asctime(3), not strftime(3).</div><div class='add'>+	* misc/rb_optparse.zsh: add compdef for generator.</div><div class='ctx'> </div><div class='del'>-Thu Feb  5 18:58:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec 27 07:32:07 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_fptr_close): do not free path on close().</div><div class='add'>+	* lib/optparse.rb (OptionParser#compsys): escape brackets too.</div><div class='add'>+	  [ruby-dev:42754]</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_filter): new method.</div><div class='add'>+Mon Dec 27 01:30:08 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* enum.c (enum_each_with_index): new method.</div><div class='add'>+	* ext/socket/mkconstants.rb: add IF_NAMESIZE.</div><div class='add'>+	  add a default for INET6_ADDRSTRLEN.</div><div class='ctx'> </div><div class='del'>-Thu Feb  5 14:10:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 23:49:47 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (primary): singleton class def can be appeared inside</div><div class='del'>- 	  method bodies.</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='ctx'> </div><div class='del'>-	* hash.c (hash_replace): replace content.</div><div class='add'>+Sun Dec 26 21:23:23 2010    &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_replace_method): replace content.</div><div class='add'>+	* win32/Makefile.sub: fix 'nmake clean-enc' breakage since r28322.</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_replace_method): replace elements.</div><div class='add'>+Sun Dec 26 22:25:07 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_succ_bang): String#succ!</div><div class='add'>+	* ext/ripper/depend (ripper.y): fix messages with nmake.</div><div class='add'>+	  [ruby-dev:42896]</div><div class='ctx'> </div><div class='del'>-Thu Feb  5 18:20:30 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Sun Dec 26 22:24:14 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_upcase_bang): multi byte character support.</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='ctx'> </div><div class='del'>-Wed Feb  4 13:55:26 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 20:28:34 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_reverse): SEGV on empty array reverse.</div><div class='add'>+	* process.c (before_exec): add small comment.</div><div class='ctx'> </div><div class='del'>-Tue Feb  3 12:24:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 20:52:21 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (match_to_a): non matching element should be nil.</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='ctx'> </div><div class='del'>-	* ruby.c (ruby_load_script): load script after all initialization.</div><div class='add'>+Sun Dec 26 19:37:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* bignum.c (str2inum): need to interpret prefix `0' of `0x'.</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='ctx'> </div><div class='del'>-Tue Feb  3 10:00:18 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Sun Dec 26 12:16:29 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* numeric.c (fix_rshift): use `sizeof(INT)*8' instead of 32.</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='ctx'> </div><div class='del'>-Mon Feb  2 14:09:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 11:39:11 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (set_arg0): grab environment region too.</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='ctx'> </div><div class='del'>-Thu Jan 29 18:36:25 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Sun Dec 26 11:15:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* process.c (rb_proc_exec): check `sh' to be exist.</div><div class='add'>+	* test/with_different_ofs.rb (DifferentOFS): should not affect</div><div class='add'>+	  original classes.</div><div class='ctx'> </div><div class='del'>-Thu Jan 29 18:18:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 09:35:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_stdio_set): assignment to $stdin or $stdout does</div><div class='del'>-	  reopen() as well as $stderr.</div><div class='add'>+	* rational.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Thu Jan 29 14:18:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 09:22:19 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* class.c (mod_ancestors): should not include singleton classes.</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='ctx'> </div><div class='del'>-	* object.c (obj_type): should not return internal class.</div><div class='add'>+Sun Dec 26 04:31:15 2010  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_reopen): unwillingly closes stdio streams.</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='ctx'> </div><div class='del'>-Thu Jan 29 11:50:35 1998  Toshihiko SHIMOKAWA  &lt;toshi@csce.kyushu-u.ac.jp&gt;</div><div class='add'>+Sun Dec 26 02:31:58 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/socket/socket.c (udp_addrsetup): forgot to use htons().</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='ctx'> </div><div class='del'>-Tue Jan 27 23:15:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 03:00:53 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* keywords: __FILE__, __LINE__ are available again.</div><div class='add'>+	* ext/socket/extconf.rb: Fix build error which was introduced r30372.</div><div class='ctx'> </div><div class='del'>-Fri Jan 23 14:19:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 26 01:37:10 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1b6 released.</div><div class='add'>+	* ext/socket/extconf.rb: check the existence of if_indextoname().</div><div class='ctx'> </div><div class='del'>-	* object.c (mod_to_s): need to duplicate classpath.</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='ctx'> </div><div class='del'>-	* error.c (exc_inspect): need to duplicate classpath.</div><div class='add'>+Sat Dec 25 23:29:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Jan 22 00:37:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* ruby.h (STR2CSTR): new macro to retrieve char*.</div><div class='add'>+	* ext/socket/extconf.rb: check struct ip_mreq and struct ip_mreqn.</div><div class='ctx'> </div><div class='del'>-	* class.c (rb_define_method): `initialize' should always be</div><div class='del'>-	  private, even if it defined by C extensions.</div><div class='add'>+Sat Dec 25 22:49:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): `initialize' should always be private.</div><div class='add'>+	* test/csv: DifferentOFS needs to be include in each classes.</div><div class='ctx'> </div><div class='del'>-Thu Jan 22 16:21:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (rb_eval): some singleton class def cause SEGV.</div><div class='add'>+	* test/with_different_ofs.rb (DifferentOFS::WithDifferentOFS): give</div><div class='add'>+	  name.</div><div class='ctx'> </div><div class='del'>-	* eval.c (TMP_ALLOC): replace ALLOCA_N, where thread context</div><div class='del'>- 	  switch may happen.</div><div class='add'>+	* test/with_different_ofs.rb (DifferentOFS): test suite for test</div><div class='add'>+	  suites affected by $,.</div><div class='ctx'> </div><div class='del'>-Wed Jan 21 01:43:42 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/digest/test_digest_extend.rb (TestDigestExtend): should not</div><div class='add'>+	  assume $, invariant.</div><div class='ctx'> </div><div class='del'>-	* eval.c (PUSH_FRAME): do not use ALLOCA_N().  crash on some</div><div class='del'>-	  platforms that use missing/alloca.c.</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='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): too many pops for non register</div><div class='del'>-	  subexpr.</div><div class='add'>+Sat Dec 25 20:01:40 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): open parentheses after identifiers are argument </div><div class='del'>-	  list, even if whitespaces have seen.</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='ctx'> </div><div class='del'>-Tue Jan 20 15:19:59 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 25 18:26:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (terms): quoted word list by %w(a b c).</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='ctx'> </div><div class='del'>-	* ext/tcltklib/extconf.rb: more accurate check for tcl/tk libs.</div><div class='add'>+	* ext/socket/extconf.rb: check struct ipv6_mreq.</div><div class='ctx'> </div><div class='del'>-	* file.c (rb_stat): most of the FileTest methods (and function</div><div class='del'>- 	  `test') accept File objects as the argument.</div><div class='add'>+Sat Dec 25 18:04:30 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Jan 19 18:19:24 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* lib/csv.rb (CSV.foreach): 'rb' mode is defaulted in open.</div><div class='ctx'> </div><div class='del'>-	* ext/extmk.rb.in (install): there should be no newline after install:</div><div class='add'>+	* lib/csv.rb (CSV#init_separators): cannonicalize encoding options</div><div class='add'>+	  as Encoding objects.</div><div class='ctx'> </div><div class='del'>-	* re.c (MIN): renamed from min().  there's a local variable named</div><div class='del'>- 	  min in the file, so that some cpp will raise an error.</div><div class='add'>+Sat Dec 25 18:30:34 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Jan 19 16:30:05 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1b5 released.</div><div class='add'>+Sat Dec 25 17:33:55 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* process.c (rb_syswait): no exception raised.</div><div class='add'>+	* test/csv/base.rb (TestCSV.with_different_ofs): give name to</div><div class='add'>+	  anonymous classes.</div><div class='ctx'> </div><div class='del'>-Fri Jan 16 00:43:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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 convertion.</div><div class='ctx'> </div><div class='del'>-	* ruby.h (CLONESETUP): copies its singleton classes too.</div><div class='add'>+	* lib/csv.rb (CSV::foreach, CSV#initialize): directly use encoding</div><div class='ctx'> </div><div class='del'>-	* class.c (singleton_class_attached): saves binded object in the</div><div class='del'>-	  singleton classes.</div><div class='add'>+	* lib/csv.rb, test/csv: should not assume $, invariant.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): calls singleton_method_added even in the</div><div class='del'>-	  singleton class clauses.</div><div class='add'>+Sat Dec 25 16:08:06 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jan 15 23:22:43 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* signal.c: change rb_atomic_t definition from uchar to uint.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (proc_options): -S does not recognize PATH.</div><div class='add'>+Sat Dec 25 15:04:05 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Jan 15 02:03:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (rb_clear_cache_by_id): clear only affected cache</div><div class='del'>-	  entries.</div><div class='add'>+Sat Dec 25 15:08:08 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Wed Jan 14 02:14:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* ext/socket/socket.c: new UDP/IP socket classes.</div><div class='add'>+Sat Dec 25 14:27:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Jan 13 10:00:18 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* string.c (str_cmp): ignorecase($=) works wrong.</div><div class='add'>+Sat Dec 25 13:37:55 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jan  9 13:19:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/minitest/*.rb: Imported minitest 2.0.2 r6093.</div><div class='ctx'> </div><div class='del'>-	* version 1.1b4 released.</div><div class='add'>+Sat Dec 25 13:05:59 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_missing): class name omitted from the error message.</div><div class='add'>+	* random.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* error.c (exc_inspect): description changed.</div><div class='add'>+Sat Dec 25 12:48:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (Init_String): GlobalExit's superclass did not filled,</div><div class='del'>-	  since GlobalExit created earlier than String.</div><div class='add'>+	* load.c (rb_f_require_relative): don't omit return type.</div><div class='ctx'> </div><div class='del'>-Thu Jan  8 12:10:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 25 11:06:00 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (aryset): expr in the brackets can be null.</div><div class='add'>+	* load.c (rb_f_require_relative): Add documentation.</div><div class='ctx'> </div><div class='del'>-Wed Jan  7 21:13:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 25 11:02:52 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_reopen): keep stderr unclosed.</div><div class='add'>+	* ext/zlib/zlib.c (gzreader_gets): support optional length</div><div class='add'>+	  parameter.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_errset): keep stderr unclosed.</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_read, gzfile_readpartial): length should</div><div class='add'>+	  be long.</div><div class='ctx'> </div><div class='del'>-Tue Jan  6 00:27:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 25 10:51:03 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y: syntax modified for `while expr do .. end' etc.</div><div class='add'>+	* ext/json/generator/generator.{c,h} (fbuffer_free_only_buffer):</div><div class='add'>+	  unused.</div><div class='ctx'> </div><div class='del'>-	* process.c (f_exec,f_system): can supply arbitrary name for the</div><div class='del'>- 	  new process.</div><div class='add'>+	* ext/openssl/ossl_pkcs5.c (ossl_pkcs5_pbkdf2_hmac): add casts.</div><div class='ctx'> </div><div class='del'>-Mon Jan  5 16:59:13 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Fri Dec 24 08:46:04 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* file.c (file_s_basename): removes any extention by ".*".</div><div class='add'>+	* process.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Sun Jan  4 19:36:22 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+Thu Dec 23 19:17:14 2010  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): needed to update lex_p (reading point).</div><div class='add'>+	* test/net/imap/cacert.pem: updated because it has been expired.</div><div class='ctx'> </div><div class='del'>-Sat Jan  3 19:14:14 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* test/net/imap/server.crt: signed again because CA cert was expired.</div><div class='ctx'> </div><div class='del'>-	* class.c,object.c: duplicate defines mKernel and cFinxnum.</div><div class='add'>+Thu Dec 23 11:16:52 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jan  2 20:38:59 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* parse.y: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* ext/curses/curses.c (NUM2CHAR): uses the first character for</div><div class='del'>- 	  string arguments.</div><div class='add'>+Thu Dec 23 11:00:09 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_fill): did not extend array for ranges.</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='ctx'> </div><div class='del'>-	* array.c (beg_len): did not return end pos bigger than size.</div><div class='add'>+Thu Dec 23 08:12:59 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Jan  2 02:09:16 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* lib/net/smtp.rb: refactoring Net::SMTP#esmtp= to use an</div><div class='add'>+	  attr_accessor</div><div class='ctx'> </div><div class='del'>-	* dir.c (dir_s_chdir): bug in nil check.</div><div class='add'>+Thu Dec 23 06:35:41 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* array.c (ary_fill): bug in nil check.</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='ctx'> </div><div class='del'>-Tue Dec 30 11:46:23 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Thu Dec 23 01:47:58 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* hash.c (env_path_tainted): checks directories in PATH</div><div class='del'>-	  environment variable are not world writable.</div><div class='add'>+	* NEWS: remove #object_id. [ruby-dev:42840]</div><div class='ctx'> </div><div class='del'>-	* ruby.c (load_file): invoke specified interpreter if the #! line</div><div class='del'>- 	  does not contain the word `ruby'.</div><div class='add'>+Wed Dec 22 08:56:39 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Fri Dec 26 03:26:41 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* string.c (uscore_get): type information included in the error</div><div class='del'>- 	  message.</div><div class='add'>+Wed Dec 22 07:59:23 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (f_untrace_var): does not free trace-data within</div><div class='del'>- 	  trace procedure.</div><div class='add'>+	* NEWS: add IO#advise. [ruby-core:33110] [Ruby 1.9-Feature#4038]</div><div class='ctx'> </div><div class='del'>-Thu Dec 25 02:50:29 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec 21 23:45:31 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1b3 released.</div><div class='add'>+	* gc.c (Init_GC): move back object_id to Kernel. [ruby-dev:42840]</div><div class='ctx'> </div><div class='del'>-	* ruby.h: inlining some functions on gcc 2.x</div><div class='add'>+Tue Dec 21 12:45:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Dec 23 02:47:33 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* configure.in (target_archs): remove temporary objects.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): public/private information kept in the current </div><div class='del'>-	  scope, to remove undesired state from the class/module.</div><div class='add'>+	* enc/Makefile.in, enc/depend (clean): remove work directories.</div><div class='ctx'> </div><div class='del'>-	* time.c (time_strftime): remove hidden limit of 100 bytes of</div><div class='del'>-	  result string, using malloc'ed buffer. </div><div class='add'>+Tue Dec 21 07:39:12 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* hash.c (hash_update): merges the contents of another hash,</div><div class='del'>-	  overriding existing keys.</div><div class='add'>+	* pack.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* regex.c (must_instr): totally re-written.</div><div class='add'>+Tue Dec 21 06:25:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (read_all): try to allocate proper sized buffer using</div><div class='del'>-	  fstat(2) for speedup.</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='ctx'> </div><div class='del'>-Sat Dec 20 00:27:28 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* regex.c (must_instr): need to skip 2 bytes for mbchars.</div><div class='add'>+Tue Dec 21 06:10:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Dec 19 01:18:29 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1b2 released.</div><div class='add'>+Tue Dec 21 01:41:42 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (check_errat): check and convert (if necessary) traceback </div><div class='del'>-	  information before assigning to the variable $@.</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='ctx'> </div><div class='del'>-	* eval.c (f_raise): optional third argument to specify traceback</div><div class='del'>-	  information.</div><div class='add'>+Tue Dec 21 01:18:06 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (f_open): prevent infinite recursive call.</div><div class='add'>+	* error.c: Fix build error for win32. This regression was</div><div class='add'>+	  introduced by r30271.</div><div class='ctx'> </div><div class='del'>-Thu Dec 18 19:33:47 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec 21 00:59:40 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_rindex): now accepts regexp as index.</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='ctx'> </div><div class='del'>-Thu Dec 18 18:42:50 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* ext/socket/extconf.rb: modified to detect win32 socket lib.</div><div class='add'>+Tue Dec 21 00:46:20 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Thu Dec 18 00:25:03 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* re.c (reg_equal): checks for source and casefold and kcode matching.</div><div class='add'>+Tue Dec 21 00:22:44 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* marshal.c: became built-in module.</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='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (r_object): displays struct name for</div><div class='del'>-	  non-compatible struct.</div><div class='add'>+Mon Dec 20 23:12:37 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_index_method): now searches character (fixnum) in</div><div class='del'>-	  the string.</div><div class='add'>+	* node.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* string.c (str_include): redefine `include?'.</div><div class='add'>+Mon Dec 20 20:04:41 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): start_nowidth saves current stack position</div><div class='del'>-	  to stop_nowidth.</div><div class='add'>+	* NEWS: add #__id__ and #object_id. [ruby-dev:42778]</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): add space to stop_nowidth to save</div><div class='del'>-	  runtime stack position.</div><div class='add'>+Mon Dec 20 20:03:21 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Dec 16 14:57:43 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* thread_pthread.c (native_thread_destroy): Fixed gvl_cond leak.</div><div class='ctx'> </div><div class='del'>-	* string.c (scan_once): wrong exception for regexp that match with </div><div class='del'>-	  null string (use substr instead of subseq).</div><div class='add'>+Mon Dec 20 13:49:05 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-Sat Dec 13 00:13:32 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* NEWS: Add item for RDoc 3.0.1</div><div class='ctx'> </div><div class='del'>-	* parse.y (expr): remove bare assocs from expr rule.</div><div class='add'>+	* lib/rdoc: Import RDoc 3.0.1, remove require for perl parser.</div><div class='ctx'> </div><div class='del'>-	* rbconfig.rb: renamed from config.rb (it was too generic name).</div><div class='add'>+Mon Dec 20 12:15:32 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-Fri Dec 12 00:50:25 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/rdoc: Import RDoc 3.0.</div><div class='ctx'> </div><div class='del'>-	* parse.y (expr): warns if BEGIN or END appear in the method</div><div class='del'>- 	  bodies.</div><div class='add'>+Mon Dec 20 01:55:03 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_match): calls y =~ x if y is neither String nor</div><div class='del'>-	  Regexp so that eregex.rb works.  </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='ctx'> </div><div class='del'>-	* eval.c (f_at_exit): to register end proc.</div><div class='add'>+Sun Dec 19 19:15:23 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* class.c (rb_define_module_function): define 'function' method</div><div class='del'>-	  for the Module, not private method.</div><div class='add'>+	* marshal.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* class.c (rb_define_function): function to define `function' method.</div><div class='add'>+Sat Dec 18 21:52:37 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): inherit visibility from superclass's method</div><div class='del'>-	  except when it is set to `function'</div><div class='add'>+	* vsnprintf.c (BSD_vfprintf): suppress warning: "_WIN32" is not</div><div class='add'>+	  defined.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): new visibility status `function'.</div><div class='add'>+Sat Dec 18 16:02:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (yycompile): do not clear eval_tree. thus enable multipe </div><div class='del'>-	  command line script by optn `-e'.</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='ctx'> </div><div class='del'>-	* eval.c (rb_eval): END execute just once.</div><div class='add'>+Sat Dec 18 14:42:29 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (expr): BEGIN/END built in the syntax.</div><div class='add'>+	* load.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Thu Dec 11 13:14:35 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 18 10:07:04 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (mod_le): Module (or Class) comparison.</div><div class='add'>+	* compile.c (setup_args, iseq_compile_each): optimize AMPER LAMBDA</div><div class='add'>+	  combination as block.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_remove_method): raises NameError if named method does </div><div class='del'>-	  not exist.</div><div class='add'>+Fri Dec 17 22:07:16 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/curses/curses.c: remove CHECK macro for BSD curses.</div><div class='del'>-	</div><div class='del'>-Thu Dec 11 12:44:01 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* pack.c: sun4 cc patch</div><div class='add'>+Fri Dec 17 19:35:13 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Dec 10 15:21:36 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf::FakeLog): capture output from mkmf.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (marshal_load): can supply evolution proc</div><div class='del'>-	  object as optional second argument.</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='ctx'> </div><div class='del'>-	* re.c (reg_source): get source string of the regular expression.</div><div class='add'>+Fri Dec 17 13:26:54 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Dec  9 10:05:17 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1b1 released.</div><div class='add'>+Fri Dec 17 07:04:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (tokadd): token buffer overrun.</div><div class='add'>+	* iseq.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): forgot to protect rb_argv0 from gc.</div><div class='add'>+Fri Dec 17 04:18:37 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (ruby_run): call finalizers at process termination.</div><div class='add'>+	* transcode.c (str_encode): Alter comment for better wording and ri</div><div class='add'>+	  output.</div><div class='ctx'> </div><div class='del'>-	* gc.c (gc_call_finalizer_at_exit): call free proc for every Data</div><div class='del'>- 	  Wrapper, and finalizer for specified objects at termination.</div><div class='add'>+Fri Dec 17 00:05:40 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* version.c (show_version): version format changed.</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='ctx'> </div><div class='del'>-	* regex.c (re_match): wrong match with non-greedy if they appear</div><div class='del'>-	  more than once in regular expressions.</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='ctx'> </div><div class='del'>-	* sample/ruby-mode.el (ruby-expr-beg): forgot to handle modifiers.</div><div class='add'>+Thu Dec 16 23:29:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Dec  8 19:00:15 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* tool/rbinstall.rb (bin-comm): use transformed name.</div><div class='add'>+	  [ruby-dev:42777]</div><div class='ctx'> </div><div class='del'>-	* io.c (io_puts): just put a newline if no argument given.</div><div class='add'>+Thu Dec 16 21:52:07 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_mainloop): thread-aware tk handle</div><div class='del'>- 	  when $tk_thread_safe is set.</div><div class='add'>+	* io.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* ext/tcltklib/tcltklib.c (lib_mainloop): use Tcl_DoOneEvent()</div><div class='del'>-	  instead of Tk_MainLoop().</div><div class='add'>+Thu Dec 16 21:46:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Dec  6 07:11:16 1997  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_puts): core dumped without any argument.</div><div class='add'>+Thu Dec 16 19:50:12 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Dec  5 18:17:17 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (mod_remove_method): remove (not undef) a method from the </div><div class='del'>-	  class/module.</div><div class='add'>+Thu Dec 16 08:04:47 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (obj_remove_instance_variable): method to remove</div><div class='del'>-	  instance variables.</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='ctx'> </div><div class='del'>-Thu Dec  4 13:50:29 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1b0 released.</div><div class='add'>+Thu Dec 16 07:22:30 2010  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_aref): called str_index for regexp.</div><div class='add'>+	* lib/minitest/unit.rb: Imported minitest 2.0.1 r6079.</div><div class='ctx'> </div><div class='del'>-Mon Dec  1 15:24:41 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Dec 15 20:45:02 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* compar.c (cmp_between): wrong comparison made.</div><div class='add'>+	* lib/test/unit.rb (process_args): need to setup @help to print options.</div><div class='ctx'> </div><div class='del'>-Wed Nov 26 18:18:05 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Dec 15 11:19:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* lib/mkmf.rb: generate Makefile for extention modules out of ruby </div><div class='del'>-	  source tree. use like `ruby -r mkmf extconf.rb'.</div><div class='add'>+	* test/zlib/test_zlib.rb (test_to_io): forgotten to fix with r30201.</div><div class='ctx'> </div><div class='del'>-	* numeric.c (fix2str): enlarge buffer to prevent overflow on some</div><div class='del'>-	  machines.</div><div class='add'>+Wed Dec 15 11:07:34 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (here_document): wrong line number generated after here-doc.</div><div class='add'>+	* io.c (simple_sendfile): enable on Mac OS X.</div><div class='ctx'> </div><div class='del'>-Fri Nov 21 13:17:12 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (nogvl_copy_stream_sendfile): moved precheck of copy length.</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): skip multibyte characters in comments.</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='ctx'> </div><div class='del'>-Wed Nov 19 17:19:20 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Wed Dec 15 07:11:55 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (nil_to_a): nil.to_a =&gt; [].</div><div class='add'>+	* hash.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* parse.y (call_args): wrong node generation.</div><div class='add'>+Wed Dec 15 04:02:00 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Nov 18 10:13:08 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* array.c (Init_Array): Array#=== works as Array#include?</div><div class='add'>+Wed Dec 15 03:41:31 2010  KOSAKI Motohiro  &lt;kosaki.motohiro@gmail.com&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): insert initialize code for jump_n, </div><div class='del'>-	  before entering loops.</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='ctx'> </div><div class='del'>-	* re.c (reg_search): does not save registers unless $&amp; etc appear</div><div class='del'>-	  in the script.</div><div class='add'>+Tue Dec 14 23:53:52 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Nov 17 13:01:43 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (is_defined): add defined? check for receivers and</div><div class='del'>- 	  arguments for calls.</div><div class='add'>+Tue Dec 14 20:31:33 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* re.c (reg_search): cache last match object.</div><div class='add'>+	* gc.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* re.c (match_aref): $[0] etc. are available.</div><div class='add'>+Tue Dec 14 18:31:48 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Nov 15 00:11:36 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* lib/test/unit.rb: help messages.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_s_popen): "rb" detection</div><div class='add'>+Tue Dec 14 18:19:03 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Nov 14 18:28:40 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* common.mk (help): there is no reason to use the abbreviation for here.</div><div class='ctx'> </div><div class='del'>-	* string.c (scan_once): returns whole match if the pattern does</div><div class='del'>-	  not contain any parentheses.</div><div class='add'>+Tue Dec 14 15:03:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Nov 13 14:39:06 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* string.c (str_sub): returns copy of the receiver string, even if </div><div class='del'>-	  any substitution occurred.</div><div class='add'>+Tue Dec 14 14:24:15 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): no-width match by (?=..), (?!..).</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='ctx'> </div><div class='del'>-Wed Nov 12 13:44:47 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/ruby/test_io.rb (test_binmode_after_closed): the temporary file</div><div class='add'>+	  maked by make_temfile is already closed.</div><div class='ctx'> </div><div class='del'>-	* time.c: remove coerce from Time class.</div><div class='add'>+Tue Dec 14 13:52:19 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_match): non-greedy match by ??, *? +?, {n,m}?.</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='ctx'> </div><div class='del'>-Mon Nov 10 11:24:51 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec 14 13:34:33 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): non-resitering parens (?:..).</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='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): new meta character \&lt; (wordbeg)</div><div class='del'>-	  and \&gt; (wordend).</div><div class='add'>+Tue Dec 14 13:04:16 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): embedded comment for regular</div><div class='del'>-	  expression by (?#...).</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='ctx'> </div><div class='del'>-Fri Nov  7 16:58:24 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec 14 12:55:46 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): perl5 regxp \A and \Z available.</div><div class='add'>+	* test/zlib/test_zlib.rb (*): should close files associated with zlib.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): can expand compile stack dynamically.</div><div class='add'>+Tue Dec 14 11:30:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* regex.c (PUSH_FAILURE_POINT): wrong compare condition.</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='ctx'> </div><div class='del'>-Wed Nov  2 16:00:00 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* string.c (str_sub_s): "".sub! "", "" =&gt; "\000"</div><div class='add'>+Tue Dec 14 11:27:07 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Oct 31 15:52:10 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* parse.y (assoc): keyword assoc like {fg-&gt;"black"}.</div><div class='add'>+Tue Dec 14 11:25:20 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Oct 30 17:33:38 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_println): print with newline, which is not affected by</div><div class='del'>-	  the values of $/ and $\.</div><div class='add'>+Tue Dec 14 10:25:57 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Oct 30 16:54:01 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* string.c (str_chop_bang): "".chop caused SEGV.</div><div class='add'>+Mon Dec 13 21:26:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* string.c (str_chomp_bang): method to chop out last newline.</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='ctx'> </div><div class='del'>-Mon Oct 27 13:49:13 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec 13 18:35:33 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/extmk.rb.in: library may have pathname contains `.'</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='ctx'> </div><div class='del'>-	* eval.c (rb_rescue): should not protect SystemError.</div><div class='add'>+Mon Dec 13 12:00:09 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Oct 24 10:58:53 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* file.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* io.c (io_s_with_open_stream): ensures to close stream.</div><div class='add'>+Mon Dec 13 11:21:14 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Oct 23 11:17:44 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (simple_sendfile): added for BSD version of sendfile(2).</div><div class='ctx'> </div><div class='del'>-	* io.c (io_errset): value of $stderr can be changed (to any IO</div><div class='del'>- 	  object).</div><div class='add'>+Mon Dec 13 09:50:09 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (next_argv): $&lt; can be anything that responds to `write'.</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='ctx'> </div><div class='del'>-	* file.c (file_s_with_open_file): ensures to close file.</div><div class='add'>+Sun Dec 12 23:45:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* error.c (exception): create error under the current class/module.</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='ctx'> </div><div class='del'>-	* range.c (range_eqq): fixnum check for last needed too.</div><div class='add'>+Sun Dec 12 22:45:43 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Oct 22 12:52:30 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* common.mk (ID_H_INCLUDES): now id.h depends on vm_opts.h.</div><div class='ctx'> </div><div class='del'>-	* ext/socket/socket.c: Socket::Constants added.</div><div class='add'>+Sun Dec 12 20:42:47 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* file.c: File::Constants added for inclusion.</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='ctx'> </div><div class='del'>-	* array.c (ary_join): call ary_join() recursively for the 1st</div><div class='del'>- 	  array element.</div><div class='add'>+Sun Dec 12 20:35:07 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Oct 20 12:18:29 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* misc/rb_optparse.zsh: update how to install.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (load_file): wrong condition for #! check with -x.</div><div class='add'>+	* misc/rb_optparse.zsh: avoid error when setopt noclobber.</div><div class='ctx'> </div><div class='del'>-	* file.c (file_s_dirname): did return "" for "/a".</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='ctx'> </div><div class='del'>-Fri Oct 17 14:29:09 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec 12 13:27:35 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c: now works on alpha-linux.</div><div class='add'>+	* eval_error.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* bignum.c (bigadd): some undefined side effect order assumed.</div><div class='add'>+Sun Dec 12 11:53:24 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Oct 15 17:49:24 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* error.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* intern.h: function prototypes added.</div><div class='add'>+Sun Dec 12 04:01:58 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Oct 13 16:54:18 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* class.c (rb_define_class_id): call superclass's `inherited'</div><div class='del'>- 	  method when making subclasses.</div><div class='add'>+Sun Dec 12 02:42:24 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (nextc): clear lex_lastline at the end of file.</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='ctx'> </div><div class='del'>-	* object.c (Init_Object): need to undef Class#append_features.</div><div class='add'>+Sat Dec 11 17:43:34 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): no warning on extending classes or modules.</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h: suppress "warning: 'VPrint' declared</div><div class='add'>+	  'static' but never defined".</div><div class='ctx'> </div><div class='del'>-Thu Oct  9 11:17:50 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 11 09:24:57 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (error_print): the exception name follows after the error </div><div class='del'>-	  message.</div><div class='add'>+	* encoding.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* eval.c (compile_error): error message slightly changed.</div><div class='add'>+Sat Dec 11 08:12:48 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (nextc): script parsing will be terminated by __END__ at</div><div class='del'>- 	  beginning of line.</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='ctx'> </div><div class='del'>-	* eval.c (compile_error): `__END__' is no longer a keyword.</div><div class='add'>+Sat Dec 11 06:23:41 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (nextc): protect lastline read from script stream.</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='ctx'> </div><div class='del'>-Tue Oct  7 14:06:06 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec 11 05:48:28 2010  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1 alpha9 released.</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='ctx'> </div><div class='del'>-	* eval.c (mod_append_features): renamed from extend_class.</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='ctx'> </div><div class='del'>-	* eval.c (rb_eval): defining method calls `method_added'.</div><div class='add'>+Sat Dec 11 02:23:15 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (ruby_options): exception while processing options must</div><div class='del'>-	  terminate the interpreter.</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='ctx'> </div><div class='del'>-	* error.c (Init_Exception): wrong method configuration.  `new'</div><div class='del'>-	  should have been a singleton method.</div><div class='add'>+Fri Dec 10 22:33:39 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Oct  6 18:55:38 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* dln_find.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* ext/kconv/kconv.c (kconv_guess): code to guess character code</div><div class='del'>-	  from string.</div><div class='add'>+Fri Dec 10 20:05:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Oct  6 18:38:17 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* template/id.h.tmpl (ruby_method_ids): suppress warnings.</div><div class='add'>+	  [ruby-dev:42730]</div><div class='ctx'> </div><div class='del'>-	* pack.c: now encode/decode base64 by `m' template.</div><div class='add'>+Fri Dec 10 18:29:20 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Oct  3 10:51:10 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* MANIFEST: needed to include lex.c in the distribution.</div><div class='add'>+Fri Dec 10 18:28:40 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (ruby_options): f_require() called too early.</div><div class='add'>+	* cygwin/GNUmakefile.in (SCRIPTPROGRAMS): ignore backup files and etc.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_provide): module extentions should always be `.o'.</div><div class='add'>+	* cygwin/GNUmakefile.in (scriptbin): set executable bit.</div><div class='ctx'> </div><div class='del'>-Thu Oct  2 11:38:31 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1 alpha8 released.</div><div class='add'>+	* tool/rbinstall.rb (bin-comm): use install_recursive.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (r_object): remove temporal regist for</div><div class='del'>- 	  structs. (caused problem if structs form cycles.)</div><div class='add'>+Fri Dec 10 18:12:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (match_gen): static binding for match(=~) calls</div><div class='del'>-	  with regexp literals.</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf#config_value): extract macro value from</div><div class='add'>+	  config.h.</div><div class='ctx'> </div><div class='del'>-Wed Oct  1 15:26:55 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c: protect retval in struct tag from GC for C_ALLOCA.</div><div class='add'>+	* lib/mkmf.rb (check_signedness): should use the prelude code.</div><div class='add'>+	  [ruby-dev:42731]</div><div class='ctx'> </div><div class='del'>-	* eval.c: no more pointer value from setjmp/longjmp.</div><div class='add'>+	* lib/mkmf.rb (Logging.log_close): separate from Logging.logfile.</div><div class='ctx'> </div><div class='del'>-Wed Oct  1 14:01:49 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf::MKMFLOG): show mkmf.log at failures.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (w_byte): argument must be char.</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf#teardown): close log file for each tests.</div><div class='ctx'> </div><div class='del'>-Wed Oct  1 10:30:22 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Fri Dec 10 11:36:43 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_const_at): global constants now belongs to the</div><div class='del'>-	  class Object.</div><div class='add'>+	* compile.c (enum): remove a comma at end of enumerator list.</div><div class='ctx'> </div><div class='del'>-	* object.c (Init_Object): new global constant NIL.</div><div class='add'>+	* constant.h (rb_const_flag_t): ditto.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (marshal_dump): try to set binmode.</div><div class='add'>+	* iseq.h (enum catch_type): ditto.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (r_object): forgot to re-regist structs in </div><div class='del'>-	  the object table.</div><div class='add'>+	* iseq.h (enum defined_type): ditto.</div><div class='ctx'> </div><div class='del'>-	* eval.c (ruby_options): call Init_ext() before any require()</div><div class='del'>- 	  calls by `-r'.</div><div class='add'>+	* vm_core.h (enum iseq_type): ditto.</div><div class='ctx'> </div><div class='del'>-Fri Sep 30 14:29:22 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* vm_core.h (enum vm_special_object_type): ditto.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (w_object): marshal dumped core.</div><div class='add'>+Fri Dec 10 10:47:53 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Sep 30 10:27:39 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* sprintf.c (_HAVE_SANE_QUAD_): Don't forget LP64, r30156.</div><div class='ctx'> </div><div class='del'>-	* sample/test.rb: bignum test suits added.</div><div class='add'>+Fri Dec 10 10:37:17 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): new pseudo variable `true' and `false'.</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='ctx'> </div><div class='del'>-	* parse.y: new keywords `true' and `false' added.</div><div class='add'>+Fri Dec 10 10:07:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Sep 29 13:37:58 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/net/http.rb: remove version 1.1 features.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (forbid_setid): forbid some options in suid mode.</div><div class='add'>+Fri Dec 10 02:18:02 2010  Aaron Patterson &lt;aaron@tenderlovemaking.com&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.h (NUM2DBL): new macro to convert into doubles.</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509stctx_cleanup): removing C</div><div class='add'>+	  implementation of `cleanup`.</div><div class='ctx'> </div><div class='del'>-Mon Sep 27 09:53:48 1997  EGUCHI Osamu  &lt;eguchi@shizuokanet.or.jp&gt;</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='ctx'> </div><div class='del'>-	* bignum.c: modified for speeding.</div><div class='add'>+Thu Dec  9 20:14:39 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Sep 26 18:27:59 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* sample/from.rb: some extensions.</div><div class='add'>+Thu Dec  9 19:25:49 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Sep 29 13:15:56 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* dln.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* parse.y (lhs): no more syntax error on `obj.CONSTANT = value'.</div><div class='add'>+Thu Dec  9 18:51:06 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Sep 26 14:41:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (ruby_run): deferred calling Init_ext() just before eval_node.</div><div class='add'>+Thu Dec  9 11:00:30 2010  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Sep 26 13:27:24 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* io.c (io_isatty): forgot to return TRUE value.</div><div class='add'>+	* array.c (rb_ary_reverse_m): ditto.</div><div class='ctx'> </div><div class='del'>-Fri Sep 25 11:10:58 1997  EGUCHI Osamu  &lt;eguchi@shizuokanet.or.jp&gt;</div><div class='add'>+	* array.c (rb_ary_rotate_m): ditto.</div><div class='ctx'> </div><div class='del'>-	* eval.c: use _setjmp/_longjmp instead of setjmp/longjmp on some</div><div class='del'>-	  platforms.</div><div class='add'>+Wed Dec  8 21:38:40 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Sep 24 17:43:13 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* string.c (Init_String): String#taint and String#taint? added.</div><div class='add'>+	* ext/dl/lib/dl/import.rb: ditto.</div><div class='ctx'> </div><div class='del'>-	* class.c (mod_ancestors): ancestors include the class itself.</div><div class='add'>+Wed Dec  8 21:36:16 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Sep 24 00:57:00 1997  Katsuyuki Okabe  &lt;HGC02147@niftyserve.or.jp&gt;</div><div class='add'>+	* parse.y (shadowing_lvar_gen): fix line number.  [ruby-dev:42718]</div><div class='ctx'> </div><div class='del'>-	* X68000 patch.</div><div class='add'>+Wed Dec  8 20:37:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Tue Sep 23 20:42:30 1997  EGUCHI Osamu  &lt;eguchi@shizuokanet.or.jp&gt;</div><div class='add'>+	* dir.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* parse.y (node_newnode): SEGV on null node setup.</div><div class='add'>+Tue Dec  7 22:37:15 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Sep 22 11:22:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* io.c (io_read): duplicate string if shared. [ruby-dev:42719]</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): wrong safe condition check.</div><div class='add'>+Tue Dec  7 22:31:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sun Sep 21 14:46:02 1997  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+	* lib/optparse.rb (OptionParser::Officious): separate completion</div><div class='add'>+	  options from --help.  [ruby-dev:42690]</div><div class='ctx'> </div><div class='del'>-	* error.c (exc_inspect): garbage added to classpath.</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion#candidate),</div><div class='add'>+	  (OptionParser::Switch#compsys): remove unused variables.</div><div class='ctx'> </div><div class='del'>-Fri Sep 19 11:49:23 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec  7 22:05:25 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (newtok): forgot to adjust buffer size when shrinking</div><div class='del'>-	  the token buffer.</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='ctx'> </div><div class='del'>-	* enum.c (enum_find): rb_eval_cmd() does not return value.</div><div class='add'>+Tue Dec  7 21:59:37 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (pipe_open): close fds on pipe exec. fcntl(fd, F_SETFD, 1)</div><div class='del'>-	  no longer used.</div><div class='add'>+	* lib/rexml/light/node.rb: remove circular require.</div><div class='ctx'> </div><div class='del'>-Tue Sep 16 17:54:25 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec  7 21:56:01 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='ctx'> </div><div class='del'>-	* file.c (f_test): problem if wrong command specified.</div><div class='add'>+	* test/rexml/test_light.rb: really suppress a warning.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): close stdaux and stdprn for MSDOS.</div><div class='add'>+Tue Dec  7 21:51:57 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_prog_init): should not add path from environment</div><div class='del'>-	  variable, if ruby is running under seuid.</div><div class='add'>+	* test/rexml/test_light.rb: suppress a warning.</div><div class='ctx'> </div><div class='del'>-	* process.c (init_ids): check suid check for setuid/seteuid etc.</div><div class='add'>+Tue Dec  7 21:14:03 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Sep 15 00:42:04 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* debug.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* regex.c (re_compile_pattern): \w{3} and \W{3} did not work.</div><div class='add'>+Tue Dec  7 21:06:38 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Sep 11 10:31:48 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1 alpha7 released.</div><div class='add'>+Tue Dec  7 18:56:52 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* ext/socket/socket.c (sock_new): no setbuf() for NT.</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='ctx'> </div><div class='del'>-	* io.c (rb_fopen,rb_fdopen): set close-on-exec for every fd.</div><div class='add'>+Tue Dec  7 20:32:11 2010  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Sep 10 15:55:31 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/rexml/test_doctype.rb: add Accessor to test case name.</div><div class='ctx'> </div><div class='del'>-	* ext/marshal/marshal.c (r_bytes0): extra big length check.</div><div class='add'>+Tue Dec  7 20:31:02 2010  Kouhei Sutou  &lt;kou@clear-code.com&gt;</div><div class='ctx'> </div><div class='del'>-Tue Sep  9 16:27:14 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/rexml/test_doctype.rb: Doctype -&gt; DocType.</div><div class='ctx'> </div><div class='del'>-	* io.c (pipe_fptr_atexit): clean up popen()'ed fptr.</div><div class='add'>+Tue Dec  7 20:29:23 2010  Kouhei Sutou  &lt;kou@clear-code.com&gt;</div><div class='ctx'> </div><div class='del'>-	* error.c (set_syserr): some system has error code that is bigger</div><div class='del'>-	  than sys_nerr. grrr.</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='ctx'> </div><div class='del'>-Mon Sep  8 18:33:33 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec  7 17:03:16 2010  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* io.c (io_s_new): dereferenced nil for optional mode.</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='ctx'> </div><div class='del'>-Fri Sep  5 10:26:03 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Tue Dec  7 08:00:44 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* class.c (class_instance_methods): do not include methods which</div><div class='del'>-	  are changed to private in subclasses.</div><div class='add'>+	* configure.in, win32/Makefile.sub (WERRORFLAG): flag to treat</div><div class='add'>+	  warnings as errors.</div><div class='ctx'> </div><div class='del'>-Thu Sep  4 12:38:53 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (Logging.postpone): yield log file object.</div><div class='ctx'> </div><div class='del'>-	* variable.c (f_global_variables): list name of the global</div><div class='del'>-	  variables.</div><div class='add'>+	* lib/mkmf.rb (xsystem): add options, :werror only right now.</div><div class='ctx'> </div><div class='del'>-	* object.c (obj_id): returns unique integer.</div><div class='add'>+	* lib/mkmf.rb (with_werror): check as if warnings are errors.</div><div class='ctx'> </div><div class='del'>-Wed Sep  3 14:05:16 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1 alpha6 released.</div><div class='add'>+	* lib/mkmf.rb (COMMON_MACROS): get rid of conflicts.</div><div class='ctx'> </div><div class='del'>-	* eval.c (mod_s_constants): context sensitive constant list.</div><div class='add'>+	* win32/Makefile.sub (WARNFLAGS): make declaration conflict</div><div class='add'>+	  warnings errors if possible.</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_constants): no more `all' option.</div><div class='add'>+Sun Dec  7 21:16:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_const_of): the values for autoload classes are</div><div class='del'>-	  their name strings.</div><div class='add'>+	* cont.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* class.c (class_instance_methods): no special treatment for</div><div class='del'>-	  singleton classes.</div><div class='add'>+Tue Dec  7 00:27:14 2010  Masaya Tarui  &lt;tarui@ruby-lnag.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (obj_singleton_methods): returns list of singleton</div><div class='del'>-	  method names.</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='ctx'> </div><div class='del'>-	* parse.y (yylex): no here document after `class' keyword.</div><div class='add'>+Mon Dec  6 23:18:22 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_load): expand path if fname begins with `~'.</div><div class='add'>+	* test/mkmf/base.rb (TestMkmf#setup): run quietly.</div><div class='ctx'> </div><div class='del'>-Tue Sep  2 13:19:48 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* test/mkmf/test_find_executable.rb (test_find_executable): use</div><div class='add'>+	  configured results.</div><div class='ctx'> </div><div class='del'>-	* class.c (ins_methods_i): do not list undef'ed methods.</div><div class='add'>+	* common.mk (test-build): test for build process.</div><div class='ctx'> </div><div class='del'>-Mon Sep  1 13:42:48 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec  6 22:47:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1 alpha5 released.</div><div class='add'>+	* lib/optparse.rb (OptionParser#candidate): skip separators.</div><div class='ctx'> </div><div class='del'>-	* object.c (mod_attr_reader): create methods to define attribute</div><div class='del'>- 	  reader/write/accessor.</div><div class='add'>+	* sample/optparse/opttest.rb: should not override --help.</div><div class='add'>+	  [ruby-dev:42690]</div><div class='ctx'> </div><div class='del'>-	* class.c (rb_define_attr): always defines accessors.</div><div class='add'>+Mon Dec  6 19:00:48 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_call): alias occured in the module body caused SEGV.</div><div class='add'>+	* misc/rb_optparse.zsh: fix typos.</div><div class='ctx'> </div><div class='del'>-	* parse.y: did not generate here document strings properly.</div><div class='add'>+Mon Dec  6 18:59:04 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-Mon Sep  1 11:43:57 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='del'>-	</div><div class='del'>-	* parse.y (yylex): heredoc dropped an extra character.</div><div class='add'>+	* NEWS: add new encodings.</div><div class='ctx'> </div><div class='del'>-Fri Aug 29 11:10:21 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Mon Dec  6 18:56:42 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* class.c (class_instance_methods): same method names should not</div><div class='del'>- 	  appear more than twice.</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='ctx'> </div><div class='del'>-	* parse.y (yylex): spaces can follow =begin/=end.</div><div class='add'>+Mon Dec  6 18:55:36 2010  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (find_class_path): look for class_tbl also for</div><div class='del'>-	  unnamed fundamental classes, such as Object, String, etc.</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='ctx'> </div><div class='del'>-	* variable.c (rb_name_class): can't name class before String class</div><div class='del'>- 	  is initilialized.</div><div class='add'>+Mon Dec  6 10:39:54 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* inits.c (rb_call_inits): unrecognized dependency from GC to</div><div class='del'>-	  Array.</div><div class='add'>+	* lib/uri/common.rb (URI::Parser#initialize_pattern):</div><div class='add'>+	  refix for restrict the pattern.</div><div class='ctx'> </div><div class='del'>-	* variable.c (find_class_path): could not find class if Object's</div><div class='del'>- 	  iv_tbl is NULL.</div><div class='add'>+Mon Dec  6 09:45:11 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-Thu Aug 28 13:12:05 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1 alpha4 released.</div><div class='add'>+Mon Dec  6 09:16:46 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_constants): wrong condition for singleton</div><div class='del'>-	  class. </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='ctx'> </div><div class='del'>-	* parse.y (yylex): revised `=begin' skip code.</div><div class='add'>+Mon Dec  6 09:14:38 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (here_document): forgot to free(eos).</div><div class='add'>+	* lib/mkmf.rb (check_signedness): rename unused variable prelude.</div><div class='ctx'> </div><div class='del'>-	* parse.y (yylex): spaces after `&lt;&lt;' prohibited for here</div><div class='del'>- 	  documents to avoid confusing with operator `&lt;&lt;'.</div><div class='add'>+Sun Dec  5 17:56:36 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (is_defined): separated from rb_eval().</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='ctx'> </div><div class='del'>-Wed Aug 27 11:32:42 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sun Dec  5 12:09:27 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* version 1.1 alpha3 released.</div><div class='add'>+	* lib/irb/init.rb (IRB.parse_opts): fix typo. [ruby-core:33574]</div><div class='ctx'> </div><div class='del'>-	* variable.c (mod_name): returns name of the class/module.</div><div class='add'>+Sun Dec  5 11:27:08 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y (here_document): finally here document available now.</div><div class='add'>+	* ruby.c (load_file_internal): decrement for ungotten line.</div><div class='add'>+	  [ruby-dev:42680]</div><div class='ctx'> </div><div class='del'>-	* variable.c (fc_i): some classes/modules does not have iv_tbl.</div><div class='add'>+Sun Dec  5 10:32:11 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* variable.c (find_class_path): avoid inifinite loop.</div><div class='add'>+	* complex.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-Tue Aug 26 13:43:47 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+Sat Dec  4 11:39:17 2010  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): undef'ing non-existing method will raise</div><div class='del'>-	  NameError exception.</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (initialize): add documentation.</div><div class='ctx'> </div><div class='del'>-	* object.c (class_s_new): needed to create metaclass too.</div><div class='add'>+Sat Dec  4 11:21:50 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (error_print): no class name print for anonymous class.</div><div class='add'>+	* hash.c (rb_hash_update_by): new API for Hash#update.</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_longjmp): proper exception raised if raise() called</div><div class='del'>- 	  without arguments, with $! or $@ set.</div><div class='add'>+Sat Dec  4 11:18:10 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (Init_Object): superclass()'s method argument setting</div><div class='del'>- 	  was wrong again.</div><div class='add'>+	* class.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* class.c (mod_anscestors): list superclasses and included modules </div><div class='del'>-	  in priority order.</div><div class='add'>+Sat Dec  4 11:07:57 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Aug 25 11:53:11 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* vm_core.h (rb_vm_inc_const_missing_count): missing prototype.</div><div class='ctx'> </div><div class='del'>-	* version 1.1 alpha2 released.</div><div class='add'>+Sat Dec  4 08:50:10 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* sample/ruby-mode.el (ruby-parse-region): auto-indent now</div><div class='del'>- 	  supports "\\" in the strings.</div><div class='add'>+	* ext/iconv/iconv.c (Init_iconv): no warnings if $VERBOSE is nil.</div><div class='ctx'> </div><div class='del'>-	* struct.c (struct_getmember): new API to get member value from C</div><div class='del'>-	  language side.</div><div class='add'>+Sat Dec  4 08:25:15 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Aug 23 21:39:05 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* parse.y (asignable): remove unnecessary local variable</div><div class='del'>-	  initialize by nil.</div><div class='add'>+Sat Dec  4 07:46:48 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Fri Aug 22 14:26:40 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (String#tr_cpp): substitute * with P like as</div><div class='add'>+	  autoconf.</div><div class='ctx'> </div><div class='del'>-	* eval.c (error_print): modified exception print format.</div><div class='add'>+Fri Dec  3 22:36:45 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Aug 21 16:10:58 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* sample/ruby-mode.el (ruby-calculate-indent): wrong indent level</div><div class='del'>-	  calculated with keyword operators.</div><div class='add'>+Fri Dec  3 20:23:31 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Thu Aug 21 11:36:58 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (convertible_int): define printf format prefix too.</div><div class='ctx'> </div><div class='del'>-	* parse.y (arg): ary[0] += 1 cause SEGV</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='ctx'> </div><div class='del'>-Wed Aug 20 17:28:50 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): should return integer always.</div><div class='ctx'> </div><div class='del'>-	* ruby.c (ruby_process_options): require() all modules after</div><div class='del'>- 	  processing all options</div><div class='add'>+Fri Dec  3 12:54:48 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* process.c (rb_proc_exec): more security checks added.</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='ctx'> </div><div class='del'>-	* process.c (rb_proc_exec): insecure path on exec.</div><div class='add'>+Fri Dec  3 12:41:52 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* hash.c (f_getenv): PATH modification security check.</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='ctx'> </div><div class='del'>-Tue Aug 19 00:15:38 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* version 1.1 alpha1 released.</div><div class='add'>+Fri Dec  3 12:17:19 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (mod_eval): work as normal eval() if second binding</div><div class='del'>- 	  argument given.</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='ctx'> </div><div class='del'>-	* eval.c (rb_call): did not raise ArgumentError if too many</div><div class='del'>- 	  arguments more than optional arguments (without rest arg).</div><div class='add'>+Fri Dec  3 07:08:42 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): did not work well for op_asgn2 (attribute</div><div class='del'>-	  self assignment).</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='ctx'> </div><div class='del'>-	* eval.c (Init_Thread): returns main thread.</div><div class='add'>+Fri Dec  3 06:52:46 2010  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='ctx'> </div><div class='del'>-Mon Aug 18 09:25:56 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* compile.c: parenthesize macro arguments.</div><div class='ctx'> </div><div class='del'>-	* object.c (inspect_i): did not display T_DATA instance variables.</div><div class='add'>+Fri Dec  3 04:08:59 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* parse.y: provides more accurate line number information.</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='ctx'> </div><div class='del'>-	* eval.c (thread_value): include value's backtrace information in</div><div class='del'>-	  the variable `$@'. </div><div class='add'>+	* encoding.c (enc_alias): follow enc_alias_internal.</div><div class='ctx'> </div><div class='del'>-	* eval.c (f_abort): print backtrace and exit.</div><div class='add'>+Fri Dec  3 01:52:43 2010  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Sat Aug 16 00:17:44 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* encoding.c (enc_alias_internal): use xfree instead of free.</div><div class='ctx'> </div><div class='del'>-	* eval.c (class_new_instance): do not make instance from virtual</div><div class='del'>-	  classes. </div><div class='add'>+Thu Dec  2 23:52:26 2010  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* object.c (class_s_new): do not make subclass of singleton class.</div><div class='add'>+	* NEWS: entry for ruby_vm_at_exit().</div><div class='ctx'> </div><div class='del'>-Fri Aug 15 15:49:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</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='ctx'> </div><div class='del'>-	* eval.c (call_trace_func): block context switch in the trace</div><div class='del'>-          function.</div><div class='add'>+Thu Dec  2 23:05:14 2010  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-	* eval.c (rb_eval): clear method cache at class extention.</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='ctx'> </div><div class='del'>-	* object.c (obj_type): returns object's class even if it defines</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='ctx'> 	  singleton methods.</div><div class='ctx'> </div><div class='del'>-Fri Aug 15 19:40:43 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</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='ctx'> </div><div class='del'>-	* ext/socket/socket.c (Init_socket): small typo caused SEGV.</div><div class='add'>+Tue Aug 24 05:58:18 2010  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='ctx'> </div><div class='del'>-Wed Aug 13 17:51:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+	* ChangeLog: flushed.  [ruby-dev:42050]</div><div class='ctx'> </div><div class='del'>-	* version 1.1 alpha0 released.</div><div class='add'>+For the changes before 1.9.3, see doc/ChangeLog-1.9.3</div><div class='add'>+For the changes before 1.8.0, see doc/ChangeLog-1.8.0</div><div class='ctx'> </div><div class='add'>+Local variables:</div><div class='add'>+coding: us-ascii</div><div class='add'>+add-log-time-format: (lambda ()</div><div class='add'>+  (let* ((time (current-time))</div><div class='add'>+	 (system-time-locale "C")</div><div class='add'>+	 (diff (+ (cadr time) 32400))</div><div class='add'>+	 (lo (% diff 65536))</div><div class='add'>+	 (hi (+ (car time) (/ diff 65536))))</div><div class='add'>+  (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))</div><div class='add'>+indent-tabs-mode: t</div><div class='add'>+tab-width: 8</div><div class='add'>+change-log-indent-text: 2</div><div class='add'>+end:</div><div class='add'>+vim: tabstop=8 shiftwidth=2</div><div class='head'>diff --git a/GPL b/GPL<br/>new file mode 100644<br/>index 0000000000..5b6e7c66c2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/GPL?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>GPL</a></div><div class='hunk'>@@ -0,0 +1,340 @@</div><div class='add'>+		    GNU GENERAL PUBLIC LICENSE</div><div class='add'>+		       Version 2, June 1991</div><div class='add'>+</div><div class='add'>+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.</div><div class='add'>+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='add'>+ Everyone is permitted to copy and distribute verbatim copies</div><div class='add'>+ of this license document, but changing it is not allowed.</div><div class='add'>+</div><div class='add'>+			    Preamble</div><div class='add'>+</div><div class='add'>+  The licenses for most software are designed to take away your</div><div class='add'>+freedom to share and change it.  By contrast, the GNU General Public</div><div class='add'>+License is intended to guarantee your freedom to share and change free</div><div class='add'>+software--to make sure the software is free for all its users.  This</div><div class='add'>+General Public License applies to most of the Free Software</div><div class='add'>+Foundation's software and to any other program whose authors commit to</div><div class='add'>+using it.  (Some other Free Software Foundation software is covered by</div><div class='add'>+the GNU Library General Public License instead.)  You can apply it to</div><div class='add'>+your programs, too.</div><div class='add'>+</div><div class='add'>+  When we speak of free software, we are referring to freedom, not</div><div class='add'>+price.  Our General Public Licenses are designed to make sure that you</div><div class='add'>+have the freedom to distribute copies of free software (and charge for</div><div class='add'>+this service if you wish), that you receive source code or can get it</div><div class='add'>+if you want it, that you can change the software or use pieces of it</div><div class='add'>+in new free programs; and that you know you can do these things.</div><div class='add'>+</div><div class='add'>+  To protect your rights, we need to make restrictions that forbid</div><div class='add'>+anyone to deny you these rights or to ask you to surrender the rights.</div><div class='add'>+These restrictions translate to certain responsibilities for you if you</div><div class='add'>+distribute copies of the software, or if you modify it.</div><div class='add'>+</div><div class='add'>+  For example, if you distribute copies of such a program, whether</div><div class='add'>+gratis or for a fee, you must give the recipients all the rights that</div><div class='add'>+you have.  You must make sure that they, too, receive or can get the</div><div class='add'>+source code.  And you must show them these terms so they know their</div><div class='add'>+rights.</div><div class='add'>+</div><div class='add'>+  We protect your rights with two steps: (1) copyright the software, and</div><div class='add'>+(2) offer you this license which gives you legal permission to copy,</div><div class='add'>+distribute and/or modify the software.</div><div class='add'>+</div><div class='add'>+  Also, for each author's protection and ours, we want to make certain</div><div class='add'>+that everyone understands that there is no warranty for this free</div><div class='add'>+software.  If the software is modified by someone else and passed on, we</div><div class='add'>+want its recipients to know that what they have is not the original, so</div><div class='add'>+that any problems introduced by others will not reflect on the original</div><div class='add'>+authors' reputations.</div><div class='add'>+</div><div class='add'>+  Finally, any free program is threatened constantly by software</div><div class='add'>+patents.  We wish to avoid the danger that redistributors of a free</div><div class='add'>+program will individually obtain patent licenses, in effect making the</div><div class='add'>+program proprietary.  To prevent this, we have made it clear that any</div><div class='add'>+patent must be licensed for everyone's free use or not licensed at all.</div><div class='add'>+</div><div class='add'>+  The precise terms and conditions for copying, distribution and</div><div class='add'>+modification follow.</div><div class='add'>+</div><div class='add'>+		    GNU GENERAL PUBLIC LICENSE</div><div class='add'>+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</div><div class='add'>+</div><div class='add'>+  0. This License applies to any program or other work which contains</div><div class='add'>+a notice placed by the copyright holder saying it may be distributed</div><div class='add'>+under the terms of this General Public License.  The "Program", below,</div><div class='add'>+refers to any such program or work, and a "work based on the Program"</div><div class='add'>+means either the Program or any derivative work under copyright law:</div><div class='add'>+that is to say, a work containing the Program or a portion of it,</div><div class='add'>+either verbatim or with modifications and/or translated into another</div><div class='add'>+language.  (Hereinafter, translation is included without limitation in</div><div class='add'>+the term "modification".)  Each licensee is addressed as "you".</div><div class='add'>+</div><div class='add'>+Activities other than copying, distribution and modification are not</div><div class='add'>+covered by this License; they are outside its scope.  The act of</div><div class='add'>+running the Program is not restricted, and the output from the Program</div><div class='add'>+is covered only if its contents constitute a work based on the</div><div class='add'>+Program (independent of having been made by running the Program).</div><div class='add'>+Whether that is true depends on what the Program does.</div><div class='add'>+</div><div class='add'>+  1. You may copy and distribute verbatim copies of the Program's</div><div class='add'>+source code as you receive it, in any medium, provided that you</div><div class='add'>+conspicuously and appropriately publish on each copy an appropriate</div><div class='add'>+copyright notice and disclaimer of warranty; keep intact all the</div><div class='add'>+notices that refer to this License and to the absence of any warranty;</div><div class='add'>+and give any other recipients of the Program a copy of this License</div><div class='add'>+along with the Program.</div><div class='add'>+</div><div class='add'>+You may charge a fee for the physical act of transferring a copy, and</div><div class='add'>+you may at your option offer warranty protection in exchange for a fee.</div><div class='add'>+</div><div class='add'>+  2. You may modify your copy or copies of the Program or any portion</div><div class='add'>+of it, thus forming a work based on the Program, and copy and</div><div class='add'>+distribute such modifications or work under the terms of Section 1</div><div class='add'>+above, provided that you also meet all of these conditions:</div><div class='add'>+</div><div class='add'>+    a) You must cause the modified files to carry prominent notices</div><div class='add'>+    stating that you changed the files and the date of any change.</div><div class='add'>+</div><div class='add'>+    b) You must cause any work that you distribute or publish, that in</div><div class='add'>+    whole or in part contains or is derived from the Program or any</div><div class='add'>+    part thereof, to be licensed as a whole at no charge to all third</div><div class='add'>+    parties under the terms of this License.</div><div class='add'>+</div><div class='add'>+    c) If the modified program normally reads commands interactively</div><div class='add'>+    when run, you must cause it, when started running for such</div><div class='add'>+    interactive use in the most ordinary way, to print or display an</div><div class='add'>+    announcement including an appropriate copyright notice and a</div><div class='add'>+    notice that there is no warranty (or else, saying that you provide</div><div class='add'>+    a warranty) and that users may redistribute the program under</div><div class='add'>+    these conditions, and telling the user how to view a copy of this</div><div class='add'>+    License.  (Exception: if the Program itself is interactive but</div><div class='add'>+    does not normally print such an announcement, your work based on</div><div class='add'>+    the Program is not required to print an announcement.)</div><div class='add'>+</div><div class='add'>+These requirements apply to the modified work as a whole.  If</div><div class='add'>+identifiable sections of that work are not derived from the Program,</div><div class='add'>+and can be reasonably considered independent and separate works in</div><div class='add'>+themselves, then this License, and its terms, do not apply to those</div><div class='add'>+sections when you distribute them as separate works.  But when you</div><div class='add'>+distribute the same sections as part of a whole which is a work based</div><div class='add'>+on the Program, the distribution of the whole must be on the terms of</div><div class='add'>+this License, whose permissions for other licensees extend to the</div><div class='add'>+entire whole, and thus to each and every part regardless of who wrote it.</div><div class='add'>+</div><div class='add'>+Thus, it is not the intent of this section to claim rights or contest</div><div class='add'>+your rights to work written entirely by you; rather, the intent is to</div><div class='add'>+exercise the right to control the distribution of derivative or</div><div class='add'>+collective works based on the Program.</div><div class='add'>+</div><div class='add'>+In addition, mere aggregation of another work not based on the Program</div><div class='add'>+with the Program (or with a work based on the Program) on a volume of</div><div class='add'>+a storage or distribution medium does not bring the other work under</div><div class='add'>+the scope of this License.</div><div class='add'>+</div><div class='add'>+  3. You may copy and distribute the Program (or a work based on it,</div><div class='add'>+under Section 2) in object code or executable form under the terms of</div><div class='add'>+Sections 1 and 2 above provided that you also do one of the following:</div><div class='add'>+</div><div class='add'>+    a) Accompany it with the complete corresponding machine-readable</div><div class='add'>+    source code, which must be distributed under the terms of Sections</div><div class='add'>+    1 and 2 above on a medium customarily used for software interchange; or,</div><div class='add'>+</div><div class='add'>+    b) Accompany it with a written offer, valid for at least three</div><div class='add'>+    years, to give any third party, for a charge no more than your</div><div class='add'>+    cost of physically performing source distribution, a complete</div><div class='add'>+    machine-readable copy of the corresponding source code, to be</div><div class='add'>+    distributed under the terms of Sections 1 and 2 above on a medium</div><div class='add'>+    customarily used for software interchange; or,</div><div class='add'>+</div><div class='add'>+    c) Accompany it with the information you received as to the offer</div><div class='add'>+    to distribute corresponding source code.  (This alternative is</div><div class='add'>+    allowed only for noncommercial distribution and only if you</div><div class='add'>+    received the program in object code or executable form with such</div><div class='add'>+    an offer, in accord with Subsection b above.)</div><div class='add'>+</div><div class='add'>+The source code for a work means the preferred form of the work for</div><div class='add'>+making modifications to it.  For an executable work, complete source</div><div class='add'>+code means all the source code for all modules it contains, plus any</div><div class='add'>+associated interface definition files, plus the scripts used to</div><div class='add'>+control compilation and installation of the executable.  However, as a</div><div class='add'>+special exception, the source code distributed need not include</div><div class='add'>+anything that is normally distributed (in either source or binary</div><div class='add'>+form) with the major components (compiler, kernel, and so on) of the</div><div class='add'>+operating system on which the executable runs, unless that component</div><div class='add'>+itself accompanies the executable.</div><div class='add'>+</div><div class='add'>+If distribution of executable or object code is made by offering</div><div class='add'>+access to copy from a designated place, then offering equivalent</div><div class='add'>+access to copy the source code from the same place counts as</div><div class='add'>+distribution of the source code, even though third parties are not</div><div class='add'>+compelled to copy the source along with the object code.</div><div class='add'>+</div><div class='add'>+  4. You may not copy, modify, sublicense, or distribute the Program</div><div class='add'>+except as expressly provided under this License.  Any attempt</div><div class='add'>+otherwise to copy, modify, sublicense or distribute the Program is</div><div class='add'>+void, and will automatically terminate your rights under this License.</div><div class='add'>+However, parties who have received copies, or rights, from you under</div><div class='add'>+this License will not have their licenses terminated so long as such</div><div class='add'>+parties remain in full compliance.</div><div class='add'>+</div><div class='add'>+  5. You are not required to accept this License, since you have not</div><div class='add'>+signed it.  However, nothing else grants you permission to modify or</div><div class='add'>+distribute the Program or its derivative works.  These actions are</div><div class='add'>+prohibited by law if you do not accept this License.  Therefore, by</div><div class='add'>+modifying or distributing the Program (or any work based on the</div><div class='add'>+Program), you indicate your acceptance of this License to do so, and</div><div class='add'>+all its terms and conditions for copying, distributing or modifying</div><div class='add'>+the Program or works based on it.</div><div class='add'>+</div><div class='add'>+  6. Each time you redistribute the Program (or any work based on the</div><div class='add'>+Program), the recipient automatically receives a license from the</div><div class='add'>+original licensor to copy, distribute or modify the Program subject to</div><div class='add'>+these terms and conditions.  You may not impose any further</div><div class='add'>+restrictions on the recipients' exercise of the rights granted herein.</div><div class='add'>+You are not responsible for enforcing compliance by third parties to</div><div class='add'>+this License.</div><div class='add'>+</div><div class='add'>+  7. If, as a consequence of a court judgment or allegation of patent</div><div class='add'>+infringement or for any other reason (not limited to patent issues),</div><div class='add'>+conditions are imposed on you (whether by court order, agreement or</div><div class='add'>+otherwise) that contradict the conditions of this License, they do not</div><div class='add'>+excuse you from the conditions of this License.  If you cannot</div><div class='add'>+distribute so as to satisfy simultaneously your obligations under this</div><div class='add'>+License and any other pertinent obligations, then as a consequence you</div><div class='add'>+may not distribute the Program at all.  For example, if a patent</div><div class='add'>+license would not permit royalty-free redistribution of the Program by</div><div class='add'>+all those who receive copies directly or indirectly through you, then</div><div class='add'>+the only way you could satisfy both it and this License would be to</div><div class='add'>+refrain entirely from distribution of the Program.</div><div class='add'>+</div><div class='add'>+If any portion of this section is held invalid or unenforceable under</div><div class='add'>+any particular circumstance, the balance of the section is intended to</div><div class='add'>+apply and the section as a whole is intended to apply in other</div><div class='add'>+circumstances.</div><div class='add'>+</div><div class='add'>+It is not the purpose of this section to induce you to infringe any</div><div class='add'>+patents or other property right claims or to contest validity of any</div><div class='add'>+such claims; this section has the sole purpose of protecting the</div><div class='add'>+integrity of the free software distribution system, which is</div><div class='add'>+implemented by public license practices.  Many people have made</div><div class='add'>+generous contributions to the wide range of software distributed</div><div class='add'>+through that system in reliance on consistent application of that</div><div class='add'>+system; it is up to the author/donor to decide if he or she is willing</div><div class='add'>+to distribute software through any other system and a licensee cannot</div><div class='add'>+impose that choice.</div><div class='add'>+</div><div class='add'>+This section is intended to make thoroughly clear what is believed to</div><div class='add'>+be a consequence of the rest of this License.</div><div class='add'>+</div><div class='add'>+  8. If the distribution and/or use of the Program is restricted in</div><div class='add'>+certain countries either by patents or by copyrighted interfaces, the</div><div class='add'>+original copyright holder who places the Program under this License</div><div class='add'>+may add an explicit geographical distribution limitation excluding</div><div class='add'>+those countries, so that distribution is permitted only in or among</div><div class='add'>+countries not thus excluded.  In such case, this License incorporates</div><div class='add'>+the limitation as if written in the body of this License.</div><div class='add'>+</div><div class='add'>+  9. The Free Software Foundation may publish revised and/or new versions</div><div class='add'>+of the General Public License from time to time.  Such new versions will</div><div class='add'>+be similar in spirit to the present version, but may differ in detail to</div><div class='add'>+address new problems or concerns.</div><div class='add'>+</div><div class='add'>+Each version is given a distinguishing version number.  If the Program</div><div class='add'>+specifies a version number of this License which applies to it and "any</div><div class='add'>+later version", you have the option of following the terms and conditions</div><div class='add'>+either of that version or of any later version published by the Free</div><div class='add'>+Software Foundation.  If the Program does not specify a version number of</div><div class='add'>+this License, you may choose any version ever published by the Free Software</div><div class='add'>+Foundation.</div><div class='add'>+</div><div class='add'>+  10. If you wish to incorporate parts of the Program into other free</div><div class='add'>+programs whose distribution conditions are different, write to the author</div><div class='add'>+to ask for permission.  For software which is copyrighted by the Free</div><div class='add'>+Software Foundation, write to the Free Software Foundation; we sometimes</div><div class='add'>+make exceptions for this.  Our decision will be guided by the two goals</div><div class='add'>+of preserving the free status of all derivatives of our free software and</div><div class='add'>+of promoting the sharing and reuse of software generally.</div><div class='add'>+</div><div class='add'>+			    NO WARRANTY</div><div class='add'>+</div><div class='add'>+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</div><div class='add'>+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN</div><div class='add'>+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</div><div class='add'>+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</div><div class='add'>+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</div><div class='add'>+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS</div><div class='add'>+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE</div><div class='add'>+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</div><div class='add'>+REPAIR OR CORRECTION.</div><div class='add'>+</div><div class='add'>+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</div><div class='add'>+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</div><div class='add'>+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</div><div class='add'>+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</div><div class='add'>+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</div><div class='add'>+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</div><div class='add'>+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</div><div class='add'>+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</div><div class='add'>+POSSIBILITY OF SUCH DAMAGES.</div><div class='add'>+</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='add'>+</div><div class='add'>+  If you develop a new program, and you want it to be of the greatest</div><div class='add'>+possible use to the public, the best way to achieve this is to make it</div><div class='add'>+free software which everyone can redistribute and change under these terms.</div><div class='add'>+</div><div class='add'>+  To do so, attach the following notices to the program.  It is safest</div><div class='add'>+to attach them to the start of each source file to most effectively</div><div class='add'>+convey the exclusion of warranty; and each file should have at least</div><div class='add'>+the "copyright" line and a pointer to where the full notice is found.</div><div class='add'>+</div><div class='add'>+    &lt;one line to give the program's name and a brief idea of what it does.&gt;</div><div class='add'>+    Copyright (C) &lt;year&gt;  &lt;name of author&gt;</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 of the License, or</div><div class='add'>+    (at your option) 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Also add information on how to contact you by electronic and paper mail.</div><div class='add'>+</div><div class='add'>+If the program is interactive, make it output a short notice like this</div><div class='add'>+when it starts in an interactive mode:</div><div class='add'>+</div><div class='add'>+    Gnomovision version 69, Copyright (C) year name of author</div><div class='add'>+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</div><div class='add'>+    This is free software, and you are welcome to redistribute it</div><div class='add'>+    under certain conditions; type `show c' for details.</div><div class='add'>+</div><div class='add'>+The hypothetical commands `show w' and `show c' should show the appropriate</div><div class='add'>+parts of the General Public License.  Of course, the commands you use may</div><div class='add'>+be called something other than `show w' and `show c'; they could even be</div><div class='add'>+mouse-clicks or menu items--whatever suits your program.</div><div class='add'>+</div><div class='add'>+You should also get your employer (if you work as a programmer) or your</div><div class='add'>+school, if any, to sign a "copyright disclaimer" for the program, if</div><div class='add'>+necessary.  Here is a sample; alter the names:</div><div class='add'>+</div><div class='add'>+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program</div><div class='add'>+  `Gnomovision' (which makes passes at compilers) written by James Hacker.</div><div class='add'>+</div><div class='add'>+  &lt;signature of Ty Coon&gt;, 1 April 1989</div><div class='add'>+  Ty Coon, President of Vice</div><div class='add'>+</div><div class='add'>+This General Public License does not permit incorporating your program into</div><div class='add'>+proprietary programs.  If your program is a subroutine library, you may</div><div class='add'>+consider it more useful to permit linking proprietary applications with the</div><div class='add'>+library.  If this is what you want to do, use the GNU Library General</div><div class='add'>+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..b97a08d928<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/KNOWNBUGS.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>KNOWNBUGS.rb</a></div><div class='hunk'>@@ -0,0 +1,5 @@</div><div class='add'>+#</div><div class='add'>+# This test file concludes tests which point out known bugs.</div><div class='add'>+# So all tests will cause failure.</div><div class='add'>+#</div><div class='add'>+</div><div class='head'>diff --git a/LEGAL b/LEGAL<br/>new file mode 100644<br/>index 0000000000..65706459cd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/LEGAL?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>LEGAL</a></div><div class='hunk'>@@ -0,0 +1,533 @@</div><div class='add'>+LEGAL NOTICE INFORMATION</div><div class='add'>+------------------------</div><div class='add'>+</div><div class='add'>+All the files in this distribution are covered under either the Ruby's</div><div class='add'>+license (see the file COPYING) or public-domain except some files</div><div class='add'>+mentioned below.</div><div class='add'>+</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'>+Oniguruma  ----   (C) K.Kosako &lt;sndgk393 AT ybb DOT ne DOT jp&gt;</div><div class='add'>+</div><div class='add'>+http://www.geocities.jp/kosako3/oniguruma/</div><div class='add'>+http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/oniguruma/</div><div class='add'>+http://www.freebsd.org/cgi/cvsweb.cgi/ports/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'>+configure:</div><div class='add'>+</div><div class='add'>+  This file is free software.</div><div class='add'>+</div><div class='add'>+    Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.</div><div class='add'>+</div><div class='add'>+    This configure script is free software; the Free Software Foundation</div><div class='add'>+    gives unlimited permission to copy, distribute and modify it.</div><div class='add'>+</div><div class='add'>+tool/config.guess:</div><div class='add'>+tool/config.sub:</div><div class='add'>+</div><div class='add'>+  As long as you distribute these files with the file configure, they</div><div class='add'>+  are covered under the Ruby's license.</div><div class='add'>+</div><div class='add'>+      Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999</div><div class='add'>+      Free Software Foundation, Inc.</div><div class='add'>+</div><div class='add'>+    This file is free software; you can redistribute it and/or modify it</div><div class='add'>+    under the terms of the GNU General Public License as published by</div><div class='add'>+    the Free Software Foundation; either version 2 of the License, or</div><div class='add'>+    (at your option) any later version.</div><div class='add'>+</div><div class='add'>+    This program is distributed in the hope that it will be useful, but</div><div class='add'>+    WITHOUT ANY WARRANTY; without even the implied warranty of</div><div class='add'>+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</div><div class='add'>+    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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</div><div class='add'>+</div><div class='add'>+    As a special exception to the GNU General Public License, if you</div><div class='add'>+    distribute this file as part of a program that contains a</div><div class='add'>+    configuration script generated by Autoconf, you may include it under</div><div class='add'>+    the same distribution terms that you use for the rest of that program.</div><div class='add'>+</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='add'>+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='add'>+win32/win32.[ch]:</div><div class='add'>+</div><div class='add'>+  You can apply the Artistic License to these files. (or GPL,</div><div class='add'>+  alternatively)</div><div class='add'>+</div><div class='add'>+    Copyright (c) 1993, Intergraph Corporation</div><div class='add'>+</div><div class='add'>+    You may distribute under the terms of either the GNU General Public</div><div class='add'>+    License or the Artistic License, as specified in the perl README file.</div><div class='add'>+</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='add'>+random.c</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'>+    A C-program for MT19937, with initialization improved 2002/2/10.</div><div class='add'>+    Coded by Takuji Nishimura and Makoto Matsumoto.</div><div class='add'>+    This is a faster version by taking Shawn Cokus's optimization,</div><div class='add'>+    Matthe Bellew's simplification, Isaku Wada's real version.</div><div class='add'>+</div><div class='add'>+    Before using, initialize the state by using init_genrand(seed) </div><div class='add'>+    or init_by_array(init_key, key_length).</div><div class='add'>+</div><div class='add'>+    Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,</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'>+</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'>+</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'>+      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='add'>+	 permission.</div><div class='add'>+</div><div class='add'>+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</div><div class='add'>+    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</div><div class='add'>+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</div><div class='add'>+    A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR</div><div class='add'>+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</div><div class='add'>+    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</div><div class='add'>+    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR</div><div class='add'>+    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</div><div class='add'>+    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</div><div class='add'>+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</div><div class='add'>+    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    Any feedback is very welcome.</div><div class='add'>+    http://www.math.keio.ac.jp/matumoto/emt.html</div><div class='add'>+    email: matumoto@math.keio.ac.jp</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.[ch]:</div><div class='add'>+missing/alloca.c:</div><div class='add'>+missing/dup2.c:</div><div class='add'>+missing/erf.c:</div><div class='add'>+missing/finite.c:</div><div class='add'>+missing/hypot.c:</div><div class='add'>+missing/isinf.c:</div><div class='add'>+missing/isnan.c:</div><div class='add'>+missing/lgamma_r.c:</div><div class='add'>+missing/memcmp.c:</div><div class='add'>+missing/memmove.c:</div><div class='add'>+missing/strchr.c:</div><div class='add'>+missing/strstr.c:</div><div class='add'>+missing/strtol.c:</div><div class='add'>+missing/tgamma.c:</div><div class='add'>+ext/digest/sha1/sha1.[ch]:</div><div class='add'>+</div><div class='add'>+  These files are all under public domain.</div><div class='add'>+</div><div class='add'>+missing/crypt.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) 1989, 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'>+    Tom Truscott.</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'>+missing/setproctitle.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 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='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'>+missing/strlcat.c</div><div class='add'>+missing/strlcpy.c</div><div class='add'>+</div><div class='add'>+  These files are under the new-style BSD license.</div><div class='add'>+</div><div class='add'>+   Copyright (c) 1998 Todd C. Miller &lt;Todd.Miller@courtesan.com&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'>+   3. The name of the author may not be used to endorse or promote products</div><div class='add'>+      derived from this software without specific prior written permission.</div><div class='add'>+</div><div class='add'>+   THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,</div><div class='add'>+   INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY</div><div class='add'>+   AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL</div><div class='add'>+   THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,</div><div class='add'>+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,</div><div class='add'>+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;</div><div class='add'>+   OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,</div><div class='add'>+   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR</div><div class='add'>+   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF</div><div class='add'>+   ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</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='add'>+</div><div class='add'>+ext/digest/md5/md5.[ch]:</div><div class='add'>+</div><div class='add'>+  These files are under the following license.  Ruby uses modified</div><div class='add'>+  versions of them.</div><div class='add'>+</div><div class='add'>+    Copyright (C) 1999, 2000 Aladdin Enterprises.  All rights reserved.</div><div class='add'>+</div><div class='add'>+    This software is provided 'as-is', without any express or implied</div><div class='add'>+    warranty.  In no event will the authors be held liable for any damages</div><div class='add'>+    arising from the use of this software.</div><div class='add'>+</div><div class='add'>+    Permission is granted to anyone to use this software for any purpose,</div><div class='add'>+    including commercial applications, and to alter it and redistribute it</div><div class='add'>+    freely, subject to the following restrictions:</div><div class='add'>+</div><div class='add'>+    1. The origin of this software must not be misrepresented; you must not</div><div class='add'>+       claim that you wrote the original software. If you use this software</div><div class='add'>+       in a product, an acknowledgment in the product documentation would be</div><div class='add'>+       appreciated but is not required.</div><div class='add'>+    2. Altered source versions must be plainly marked as such, and must not be</div><div class='add'>+       misrepresented as being the original software.</div><div class='add'>+    3. This notice may not be removed or altered from any source distribution.</div><div class='add'>+</div><div class='add'>+    L. Peter Deutsch</div><div class='add'>+    ghost@aladdin.com</div><div class='add'>+</div><div class='add'>+ext/digest/rmd160/rmd160.[ch]:</div><div class='add'>+</div><div class='add'>+  These files have the following copyright information, and by the</div><div class='add'>+  author we are allowed to use it under the new-style BSD license.</div><div class='add'>+</div><div class='add'>+    AUTHOR:   Antoon Bosselaers, ESAT-COSIC</div><div class='add'>+              (Arranged for libc by Todd C. Miller)</div><div class='add'>+    DATE:     1 March 1996</div><div class='add'>+</div><div class='add'>+    Copyright (c) Katholieke Universiteit Leuven</div><div class='add'>+    1996, All Rights Reserved</div><div class='add'>+</div><div class='add'>+ext/digest/sha2/sha2.[ch]:</div><div class='add'>+</div><div class='add'>+  These files are under the new-style BSD license.</div><div class='add'>+</div><div class='add'>+    Copyright 2000 Aaron D. Gifford.  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'>+    3. Neither the name of the copyright holder nor the names of 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 AUTHOR(S) AND CONTRIBUTOR(S) ``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(S) OR CONTRIBUTOR(S) 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'>+ext/nkf/nkf-utf8/config.h:</div><div class='add'>+ext/nkf/nkf-utf8/nkf.c:</div><div class='add'>+ext/nkf/nkf-utf8/utf8tbl.c:</div><div class='add'>+</div><div class='add'>+  These files are under the following license.  So to speak, it is</div><div class='add'>+  copyrighted semi-public-domain software.</div><div class='add'>+</div><div class='add'>+    Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)</div><div class='add'>+       Everyone is permitted to do anything on this program </div><div class='add'>+       including copying, modifying, improving,</div><div class='add'>+       as long as you don't try to pretend that you wrote it.</div><div class='add'>+       i.e., the above copyright notice has to appear in all copies.</div><div class='add'>+       Binary distribution requires original version messages.</div><div class='add'>+       You don't have to ask before copying, redistribution or publishing.</div><div class='add'>+       THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.</div><div class='add'>+</div><div class='add'>+ext/socket/addrinfo.h:</div><div class='add'>+ext/socket/getaddrinfo.c:</div><div class='add'>+ext/socket/getnameinfo.c:</div><div class='add'>+</div><div class='add'>+  These files are under the new-style BSD license.</div><div class='add'>+</div><div class='add'>+    Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project.</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'>+    3. Neither the name of the project 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 PROJECT 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 PROJECT 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'>+ext/win32ole/win32ole.c:</div><div class='add'>+</div><div class='add'>+  You can apply the Artistic License to this file. (or GPL,</div><div class='add'>+  alternatively)</div><div class='add'>+</div><div class='add'>+    (c) 1995 Microsoft Corporation. All rights reserved.</div><div class='add'>+    Developed by ActiveWare Internet Corp., http://www.ActiveWare.com</div><div class='add'>+</div><div class='add'>+    Other modifications Copyright (c) 1997, 1998 by Gurusamy Sarathy</div><div class='add'>+    &lt;gsar@umich.edu&gt; and Jan Dubois &lt;jan.dubois@ibm.net&gt;</div><div class='add'>+ </div><div class='add'>+    You may distribute under the terms of either the GNU General Public</div><div class='add'>+    License or the Artistic License, as specified in the README file</div><div class='add'>+    of the Perl distribution.</div><div class='head'>diff --git a/MANIFEST b/MANIFEST<br/>deleted file mode 100644<br/>index 95dc640c53..0000000000<br/>--- a/<a href='/ruby.git/tree/MANIFEST?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>MANIFEST</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,237 +0,0 @@</div><div class='del'>-COPYING</div><div class='del'>-ChangeLog</div><div class='del'>-MANIFEST</div><div class='del'>-Makefile.in</div><div class='del'>-README</div><div class='del'>-README.jp</div><div class='del'>-README.EXT</div><div class='del'>-README.EXT.jp</div><div class='del'>-ToDo</div><div class='del'>-array.c</div><div class='del'>-bignum.c</div><div class='del'>-class.c</div><div class='del'>-compar.c</div><div class='del'>-configure</div><div class='del'>-configure.bat</div><div class='del'>-configure.in</div><div class='del'>-config_h.dj</div><div class='del'>-config_s.dj</div><div class='del'>-config.guess</div><div class='del'>-config.sub</div><div class='del'>-defines.h</div><div class='del'>-dir.c</div><div class='del'>-dln.c</div><div class='del'>-dln.h</div><div class='del'>-dmyext.c</div><div class='del'>-enum.c</div><div class='del'>-env.h</div><div class='del'>-error.c</div><div class='del'>-eval.c</div><div class='del'>-file.c</div><div class='del'>-fnmatch.c</div><div class='del'>-fnmatch.h</div><div class='del'>-gc.c</div><div class='del'>-glob.c</div><div class='del'>-hash.c</div><div class='del'>-inits.c</div><div class='del'>-install-sh</div><div class='del'>-instruby.rb</div><div class='del'>-intern.h</div><div class='del'>-io.c</div><div class='del'>-keywords</div><div class='del'>-lex.c</div><div class='del'>-main.c</div><div class='del'>-marshal.c</div><div class='del'>-math.c</div><div class='del'>-mkconfig.rb</div><div class='del'>-node.h</div><div class='del'>-numeric.c</div><div class='del'>-object.c</div><div class='del'>-pack.c</div><div class='del'>-parse.c</div><div class='del'>-parse.y</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'>-re.h</div><div class='del'>-regex.c</div><div class='del'>-regex.h</div><div class='del'>-ruby.1</div><div class='del'>-ruby.c</div><div class='del'>-ruby.h</div><div class='del'>-rubyio.h</div><div class='del'>-rubysig.h</div><div class='del'>-rubytest.rb</div><div class='del'>-signal.c</div><div class='del'>-sprintf.c</div><div class='del'>-st.c</div><div class='del'>-st.h</div><div class='del'>-string.c</div><div class='del'>-struct.c</div><div class='del'>-time.c</div><div class='del'>-top.sed</div><div class='del'>-util.h</div><div class='del'>-util.c</div><div class='del'>-variable.c</div><div class='del'>-version.c</div><div class='del'>-version.h</div><div class='del'>-beos/ruby.def.in</div><div class='del'>-ext/Setup</div><div class='del'>-ext/Setup.dj</div><div class='del'>-ext/Setup.nt</div><div class='del'>-ext/Setup.x68</div><div class='del'>-ext/aix_ld.rb</div><div class='del'>-ext/cygwin32_ld.rb</div><div class='del'>-ext/extmk.rb.in</div><div class='del'>-ext/extmk.rb.nt</div><div class='del'>-lib/English.rb</div><div class='del'>-lib/Env.rb</div><div class='del'>-lib/README</div><div class='del'>-lib/base64.rb</div><div class='del'>-lib/cgi-lib.rb</div><div class='del'>-lib/complex.rb</div><div class='del'>-lib/date.rb</div><div class='del'>-lib/date2.rb</div><div class='del'>-lib/debug.rb</div><div class='del'>-lib/delegate.rb</div><div class='del'>-lib/e2mmap.rb</div><div class='del'>-lib/eregex.rb</div><div class='del'>-lib/find.rb</div><div class='del'>-lib/final.rb</div><div class='del'>-lib/finalize.rb</div><div class='del'>-lib/ftplib.rb</div><div class='del'>-lib/ftools.rb</div><div class='del'>-lib/getopts.rb</div><div class='del'>-lib/importenv.rb</div><div class='del'>-lib/jcode.rb</div><div class='del'>-lib/mailread.rb</div><div class='del'>-lib/mathn.rb</div><div class='del'>-lib/matrix.rb</div><div class='del'>-lib/mkmf.rb</div><div class='del'>-lib/monitor.rb</div><div class='del'>-lib/mutex_m.rb</div><div class='del'>-lib/observer.rb</div><div class='del'>-lib/open3.rb</div><div class='del'>-lib/ostruct.rb</div><div class='del'>-lib/parsearg.rb</div><div class='del'>-lib/parsedate.rb</div><div class='del'>-lib/ping.rb</div><div class='del'>-lib/pstore.rb</div><div class='del'>-lib/rational.rb</div><div class='del'>-lib/readbytes.rb</div><div class='del'>-lib/shell.rb</div><div class='del'>-lib/shellwords.rb</div><div class='del'>-lib/singleton.rb</div><div class='del'>-lib/sync.rb</div><div class='del'>-lib/telnet.rb</div><div class='del'>-lib/tempfile.rb</div><div class='del'>-lib/thread.rb</div><div class='del'>-lib/thwait.rb</div><div class='del'>-lib/timeout.rb</div><div class='del'>-lib/tk.rb</div><div class='del'>-lib/tkafter.rb</div><div class='del'>-lib/tkbgerror.rb</div><div class='del'>-lib/tkcanvas.rb</div><div class='del'>-lib/tkclass.rb</div><div class='del'>-lib/tkdialog.rb</div><div class='del'>-lib/tkentry.rb</div><div class='del'>-lib/tkfont.rb</div><div class='del'>-lib/tkmenubar.rb</div><div class='del'>-lib/tkmngfocus.rb</div><div class='del'>-lib/tkpalette.rb</div><div class='del'>-lib/tkscrollbox.rb</div><div class='del'>-lib/tktext.rb</div><div class='del'>-lib/tkvirtevent.rb</div><div class='del'>-lib/tracer.rb</div><div class='del'>-lib/weakref.rb</div><div class='del'>-missing/alloca.c</div><div class='del'>-missing/crypt.c</div><div class='del'>-missing/dir.h</div><div class='del'>-missing/dup2.c</div><div class='del'>-missing/file.h</div><div class='del'>-missing/flock.c</div><div class='del'>-missing/memcmp.c</div><div class='del'>-missing/memmove.c</div><div class='del'>-missing/mkdir.c</div><div class='del'>-missing/nt.c</div><div class='del'>-missing/nt.h</div><div class='del'>-missing/setenv.c</div><div class='del'>-missing/strcasecmp.c</div><div class='del'>-missing/strchr.c</div><div class='del'>-missing/strdup.c</div><div class='del'>-missing/strerror.c</div><div class='del'>-missing/strftime.c</div><div class='del'>-missing/strstr.c</div><div class='del'>-missing/strtol.c</div><div class='del'>-missing/strtoul.c</div><div class='del'>-missing/vsnprintf.c</div><div class='del'>-missing/x68.c</div><div class='del'>-sample/README</div><div class='del'>-sample/biorhythm.rb</div><div class='del'>-sample/cal.rb</div><div class='del'>-sample/cbreak.rb</div><div class='del'>-sample/clnt.rb</div><div class='del'>-sample/dbmtest.rb</div><div class='del'>-sample/dir.rb</div><div class='del'>-sample/eval.rb</div><div class='del'>-sample/export.rb</div><div class='del'>-sample/exyacc.rb</div><div class='del'>-sample/fact.rb</div><div class='del'>-sample/fib.awk</div><div class='del'>-sample/fib.pl</div><div class='del'>-sample/fib.py</div><div class='del'>-sample/fib.rb</div><div class='del'>-sample/fib.scm</div><div class='del'>-sample/freq.rb</div><div class='del'>-sample/from.rb</div><div class='del'>-sample/fullpath.rb</div><div class='del'>-sample/getopts.test</div><div class='del'>-sample/goodfriday.rb</div><div class='del'>-sample/inf-ruby.el</div><div class='del'>-sample/less.rb</div><div class='del'>-sample/list.rb</div><div class='del'>-sample/list2.rb</div><div class='del'>-sample/list3.rb</div><div class='del'>-sample/mine.rb</div><div class='del'>-sample/mkproto.rb</div><div class='del'>-sample/mpart.rb</div><div class='del'>-sample/mrshtest.rb</div><div class='del'>-sample/observ.rb</div><div class='del'>-sample/occur.pl</div><div class='del'>-sample/occur.rb</div><div class='del'>-sample/occur2.rb</div><div class='del'>-sample/philos.rb</div><div class='del'>-sample/pi.rb</div><div class='del'>-sample/rbc.rb</div><div class='del'>-sample/rcs.awk</div><div class='del'>-sample/rcs.dat</div><div class='del'>-sample/rcs.rb</div><div class='del'>-sample/regx.rb</div><div class='del'>-sample/ruby-mode.el</div><div class='del'>-sample/rubydb2x.el</div><div class='del'>-sample/rubydb3x.el</div><div class='del'>-sample/sieve.rb</div><div class='del'>-sample/svr.rb</div><div class='del'>-sample/test.rb</div><div class='del'>-sample/time.rb</div><div class='del'>-sample/tkbiff.rb</div><div class='del'>-sample/tkbrowse.rb</div><div class='del'>-sample/tkdialog.rb</div><div class='del'>-sample/tkfrom.rb</div><div class='del'>-sample/tkhello.rb</div><div class='del'>-sample/tkline.rb</div><div class='del'>-sample/tktimer.rb</div><div class='del'>-sample/trojan.rb</div><div class='del'>-sample/tsvr.rb</div><div class='del'>-sample/uumerge.rb</div><div class='del'>-win32/Makefile</div><div class='del'>-win32/config.h</div><div class='del'>-win32/ntsetup.bat</div><div class='del'>-win32/ruby.def</div><div class='del'>-win32/sdbm.c</div><div class='del'>-win32/sdbm.h</div><div class='del'>-x68/fconvert.c</div><div class='del'>-x68/select.c</div><div class='del'>-x68/_dtos18.c</div><div class='del'>-x68/_round.c</div><div class='head'>diff --git a/Makefile.in b/Makefile.in<br/>index f3ac3dd890..df521cae94 100644<br/>--- a/<a href='/ruby.git/tree/Makefile.in?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>Makefile.in</a><br/>+++ b/<a href='/ruby.git/tree/Makefile.in?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>Makefile.in</a></div><div class='hunk'>@@ -1,225 +1,389 @@</div><div class='ctx'> SHELL = /bin/sh</div><div class='add'>+NULLCMD = @NULLCMD@</div><div class='add'>+RUNCMD = $(SHELL)</div><div class='add'>+CHDIR = @CHDIR@</div><div class='add'>+exec = exec</div><div class='add'>+NULL = /dev/null</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'>+YACC = bison</div><div class='ctx'> PURIFY =</div><div class='add'>+AUTOCONF = autoconf</div><div class='ctx'> @SET_MAKE@</div><div class='add'>+MKFILES = @MAKEFILES@</div><div class='add'>+BASERUBY = @BASERUBY@</div><div class='add'>+TEST_RUNNABLE = @TEST_RUNNABLE@</div><div class='add'>+DOXYGEN = @DOXYGEN@</div><div class='ctx'> </div><div class='ctx'> prefix = @prefix@</div><div class='del'>-CFLAGS = @CFLAGS@ -I. -I@srcdir@ -I@includedir@</div><div class='add'>+exec_prefix = @exec_prefix@</div><div class='add'>+bindir = @bindir@</div><div class='add'>+sbindir = @sbindir@</div><div class='add'>+libdir = @libdir@</div><div class='add'>+libexecdir = @libexecdir@</div><div class='add'>+datarootdir = @datarootdir@</div><div class='add'>+datadir = @datadir@</div><div class='add'>+arch = @arch@</div><div class='add'>+sitearch = @sitearch@</div><div class='add'>+sitedir = @sitedir@</div><div class='add'>+ruby_version = @ruby_version@</div><div class='add'>+</div><div class='add'>+TESTUI = console</div><div class='add'>+TESTS =</div><div class='add'>+INSTALLDOC = @INSTALLDOC@</div><div class='add'>+DOCTARGETS = @RDOCTARGET@ @CAPITARGET@</div><div class='add'>+</div><div class='add'>+EXTOUT = @EXTOUT@</div><div class='add'>+arch_hdrdir = $(EXTOUT)/include/$(arch)</div><div class='add'>+VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/enc:$(srcdir)/missing</div><div class='add'>+</div><div class='add'>+empty =</div><div class='add'>+OUTFLAG = @OUTFLAG@$(empty)</div><div class='add'>+COUTFLAG = @COUTFLAG@$(empty)</div><div class='add'>+ARCH_FLAG = @ARCH_FLAG@</div><div class='add'>+CFLAGS = @CFLAGS@ $(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@</div><div class='add'>+INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir)</div><div class='add'>+XCFLAGS = @XCFLAGS@</div><div class='add'>+CPPFLAGS = @CPPFLAGS@ $(INCFLAGS)</div><div class='ctx'> LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@</div><div class='add'>+EXTLDFLAGS = </div><div class='add'>+XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)</div><div class='ctx'> EXTLIBS = </div><div class='ctx'> LIBS = @LIBS@ $(EXTLIBS)</div><div class='ctx'> MISSING = @LIBOBJS@ @ALLOCA@</div><div class='del'>-LDSHARED = @LDSHARED@</div><div class='del'>-DLDFLAGS = @DLDFLAGS@</div><div class='add'>+LDSHARED = @LIBRUBY_LDSHARED@</div><div class='add'>+DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) $(ARCH_FLAG)</div><div class='ctx'> SOLIBS = @SOLIBS@</div><div class='del'>-</div><div class='del'>-binsuffix = @binsuffix@</div><div class='add'>+MAINLIBS = @MAINLIBS@</div><div class='add'>+ARCHMINIOBJS = @MINIOBJS@</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'>+</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_INSTALL_NAME=@RUBY_INSTALL_NAME@</div><div class='add'>+RUBY_SO_NAME=@RUBY_SO_NAME@</div><div class='add'>+EXEEXT = @EXEEXT@</div><div class='add'>+PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)</div><div class='add'>+RUBY = $(RUBY_INSTALL_NAME)</div><div class='add'>+MINIRUBY = @MINIRUBY@\</div><div class='add'>+	$(MINIRUBYOPT)</div><div class='add'>+RUNRUBY = @RUNRUBY@ $(RUNRUBYOPT) -- $(RUN_OPTS)</div><div class='add'>+XRUBY = @XRUBY@</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'>+</div><div class='add'>+DEFAULT_PRELUDES = $(@USE_RUBYGEMS@_GEM_PRELUDE)</div><div class='ctx'> </div><div class='ctx'> #### End of system configuration section. ####</div><div class='ctx'> </div><div class='add'>+MAJOR=	@MAJOR@</div><div class='add'>+MINOR=	@MINOR@</div><div class='add'>+TEENY=	@TEENY@</div><div class='ctx'> </div><div class='add'>+LIBRUBY_A     = @LIBRUBY_A@</div><div class='add'>+LIBRUBY_SO    = @LIBRUBY_SO@</div><div class='add'>+LIBRUBY_ALIASES= @LIBRUBY_ALIASES@</div><div class='ctx'> LIBRUBY	      = @LIBRUBY@</div><div class='ctx'> LIBRUBYARG    = @LIBRUBYARG@</div><div class='del'>-</div><div class='del'>-EXTOBJS	      = </div><div class='del'>-</div><div class='del'>-MAINOBJ	      = main.o</div><div class='del'>-</div><div class='del'>-OBJS	      = array.o \</div><div class='del'>-		bignum.o \</div><div class='del'>-		class.o \</div><div class='del'>-		compar.o \</div><div class='del'>-		dir.o \</div><div class='del'>-		dln.o \</div><div class='del'>-		enum.o \</div><div class='del'>-		error.o \</div><div class='del'>-		eval.o \</div><div class='del'>-		file.o \</div><div class='del'>-		fnmatch.o \</div><div class='del'>-		gc.o \</div><div class='del'>-		glob.o \</div><div class='del'>-		hash.o \</div><div class='del'>-		inits.o \</div><div class='del'>-		io.o \</div><div class='del'>-		marshal.o \</div><div class='del'>-		math.o \</div><div class='del'>-		numeric.o \</div><div class='del'>-		object.o \</div><div class='del'>-		pack.o \</div><div class='del'>-		parse.o \</div><div class='del'>-		process.o \</div><div class='del'>-		random.o \</div><div class='del'>-		range.o \</div><div class='del'>-		re.o \</div><div class='del'>-		regex.o \</div><div class='del'>-		ruby.o \</div><div class='del'>-		signal.o \</div><div class='del'>-		sprintf.o \</div><div class='del'>-		st.o \</div><div class='del'>-		string.o \</div><div class='del'>-		struct.o \</div><div class='del'>-		time.o \</div><div class='del'>-		util.o \</div><div class='del'>-		variable.o \</div><div class='del'>-		version.o \</div><div class='del'>-		$(MISSING)</div><div class='del'>-</div><div class='del'>-all:		miniruby$(binsuffix) rbconfig.rb</div><div class='del'>-		@./miniruby$(binsuffix) -Xext extmk.rb @EXTSTATIC@</div><div class='del'>-</div><div class='del'>-miniruby$(binsuffix):	$(OBJS) $(MAINOBJ) dmyext.o</div><div class='del'>-		@rm -f $@</div><div class='del'>-		$(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(OBJS) dmyext.o $(LIBS) -o $@</div><div class='del'>-</div><div class='del'>-ruby$(binsuffix):     	$(LIBRUBY) $(MAINOBJ) $(EXTOBJS) </div><div class='del'>-		@rm -f $@</div><div class='del'>-		$(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@</div><div class='del'>-</div><div class='del'>-libruby.a:	$(OBJS) dmyext.o</div><div class='del'>-		@AR@ rcu $@ $(OBJS) dmyext.o</div><div class='del'>-		@-@RANLIB@ $@ 2&gt; /dev/null || true</div><div class='del'>-</div><div class='del'>-libruby.so:	$(OBJS) dmyext.o</div><div class='del'>-		$(LDSHARED) $(DLDFLAGS) $(SOLIBS) $(OBJS) dmyext.o -o $@</div><div class='del'>-</div><div class='del'>-install:	rbconfig.rb</div><div class='del'>-		./miniruby$(binsuffix) $(srcdir)/instruby.rb</div><div class='del'>-</div><div class='del'>-clean:;		@rm -f $(OBJS) $(LIBRUBY) $(MAINOBJ) rbconfig.rb</div><div class='del'>-		@rm -f ext/extinit.c ext/extinit.o dmyext.o</div><div class='del'>-		@if test -f ./miniruby$(binsuffix); then \</div><div class='del'>-			./miniruby$(binsuffix) -Xext extmk.rb clean; \</div><div class='del'>-		fi</div><div class='del'>-</div><div class='del'>-distclean:	clean</div><div class='del'>-		@rm -f Makefile ext/extmk.rb config.h</div><div class='del'>-		@rm -f ext/config.cache config.cache config.log config.status</div><div class='del'>-		@rm -f parse.c *~ core *.core gmon.out y.tab.c y.output</div><div class='del'>-		@rm -f ruby$(binsuffix) miniruby$(binsuffix)</div><div class='del'>-</div><div class='del'>-realclean:	distclean</div><div class='del'>-		@rm -f lex.c</div><div class='del'>-</div><div class='del'>-test:		miniruby$(binsuffix)</div><div class='del'>-		@./miniruby$(binsuffix) $(srcdir)/rubytest.rb</div><div class='del'>-</div><div class='del'>-rbconfig.rb:	config.status miniruby$(binsuffix)</div><div class='del'>-		@./miniruby$(binsuffix) $(srcdir)/mkconfig.rb rbconfig.rb</div><div class='del'>-</div><div class='del'>-.c.o:</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c $&lt;</div><div class='del'>-</div><div class='del'>-lex.c: keywords</div><div class='del'>-	gperf -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ @srcdir@/keywords &gt; lex.c</div><div class='del'>-</div><div class='del'>-parse.c: parse.y</div><div class='del'>-	$(YACC) $&lt;</div><div class='del'>-	mv -f y.tab.c parse.c</div><div class='del'>-</div><div class='del'>-alloca.o: @srcdir@/missing/alloca.c</div><div class='del'>-	$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/alloca.c</div><div class='del'>-</div><div class='del'>-crypt.o: @srcdir@/missing/crypt.c</div><div class='del'>-	$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/crypt.c</div><div class='del'>-</div><div class='del'>-dup2.o: @srcdir@/missing/dup2.c</div><div class='del'>-	$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/dup2.c</div><div class='del'>-</div><div class='del'>-flock.o: @srcdir@/missing/flock.c</div><div class='del'>-	$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/flock.c</div><div class='del'>-</div><div class='del'>-memcmp.o: @srcdir@/missing/memcmp.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/memcmp.c</div><div class='del'>-</div><div class='del'>-memmove.o: @srcdir@/missing/memmove.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/memmove.c</div><div class='del'>-</div><div class='del'>-mkdir.o: @srcdir@/missing/mkdir.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/mkdir.c</div><div class='del'>-</div><div class='del'>-setenv.o: @srcdir@/missing/setenv.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/setenv.c</div><div class='del'>-</div><div class='del'>-vsnprintf.o: @srcdir@/missing/vsnprintf.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/vsnprintf.c</div><div class='del'>-</div><div class='del'>-strcasecmp.o: @srcdir@/missing/strcasecmp.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strcasecmp.c</div><div class='del'>-</div><div class='del'>-strchr.o: @srcdir@/missing/strchr.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strchr.c</div><div class='del'>-</div><div class='del'>-strdup.o: @srcdir@/missing/strdup.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strdup.c</div><div class='del'>-</div><div class='del'>-strerror.o: @srcdir@/missing/strerror.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strerror.c</div><div class='del'>-</div><div class='del'>-strftime.o: @srcdir@/missing/strftime.c</div><div class='del'>-	$(CC) -I. $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strftime.c</div><div class='del'>-</div><div class='del'>-strstr.o: @srcdir@/missing/strstr.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strstr.c</div><div class='del'>-</div><div class='del'>-strtol.o: @srcdir@/missing/strtol.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtol.c</div><div class='del'>-</div><div class='del'>-strtoul.o: @srcdir@/missing/strtoul.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/strtoul.c</div><div class='del'>-</div><div class='del'>-nt.o: @srcdir@/missing/nt.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/nt.c</div><div class='del'>-</div><div class='del'>-x68.o: @srcdir@/missing/x68.c</div><div class='del'>-	$(CC) $(CFLAGS) $(CPPFLAGS) -c @srcdir@/missing/x68.c</div><div class='add'>+LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@</div><div class='add'>+LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@</div><div class='add'>+</div><div class='add'>+THREAD_MODEL  = @THREAD_MODEL@</div><div class='add'>+</div><div class='add'>+PREP          = @PREP@</div><div class='add'>+ARCHFILE      = @ARCHFILE@</div><div class='add'>+SETUP         =</div><div class='add'>+EXTSTATIC     = @EXTSTATIC@</div><div class='add'>+SET_LC_MESSAGES = env LC_MESSAGES=C</div><div class='add'>+</div><div class='add'>+MAKEDIRS      = @MKDIR_P@</div><div class='add'>+CP            = cp</div><div class='add'>+MV            = mv</div><div class='add'>+RM            = rm -f</div><div class='add'>+RMDIR         = @RMDIR@</div><div class='add'>+RMDIRS        = @RMDIRS@</div><div class='add'>+RMALL         = @RMALL@</div><div class='add'>+NM            = @NM@</div><div class='add'>+AR            = @AR@</div><div class='add'>+ARFLAGS       = rcu</div><div class='add'>+RANLIB        = @RANLIB@</div><div class='add'>+AS            = @AS@</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'>+VCS           = @VCS@</div><div class='add'>+VCSUP         = @VCSUP@</div><div class='add'>+</div><div class='add'>+OBJEXT        = @OBJEXT@</div><div class='add'>+ASMEXT        = S</div><div class='add'>+DLEXT         = @DLEXT@</div><div class='add'>+MANTYPE	      = @MANTYPE@</div><div class='add'>+SYMBOL_PREFIX = @SYMBOL_PREFIX@</div><div class='add'>+</div><div class='add'>+INSTALLED_LIST= .installed.list</div><div class='add'>+</div><div class='add'>+MKMAIN_CMD    = mkmain.sh</div><div class='add'>+</div><div class='add'>+SRC_FILE      = $&lt;</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'>+</div><div class='add'>+configure_args = @configure_args@</div><div class='add'>+#### End of variables</div><div class='add'>+</div><div class='add'>+all:</div><div class='add'>+</div><div class='add'>+.DEFAULT: 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='del'>-###</div><div class='del'>-parse.o: parse.y ruby.h config.h defines.h intern.h env.h node.h st.h regex.h util.h lex.c</div><div class='del'>-###</div><div class='del'>-array.o: array.c ruby.h config.h defines.h intern.h</div><div class='del'>-bignum.o: bignum.c ruby.h config.h defines.h intern.h</div><div class='del'>-class.o: class.c ruby.h config.h defines.h intern.h node.h st.h</div><div class='del'>-compar.o: compar.c ruby.h config.h defines.h intern.h</div><div class='del'>-dir.o: dir.c ruby.h config.h defines.h intern.h</div><div class='del'>-dln.o: dln.c config.h defines.h dln.h</div><div class='del'>-dmyext.o: dmyext.c</div><div class='del'>-enum.o: enum.c ruby.h config.h defines.h intern.h</div><div class='del'>-error.o: error.c ruby.h config.h defines.h intern.h env.h</div><div class='del'>-eval.o: eval.c ruby.h config.h defines.h intern.h node.h env.h rubysig.h st.h dln.h</div><div class='del'>-file.o: file.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h</div><div class='del'>-fnmatch.o: fnmatch.c config.h fnmatch.h</div><div class='del'>-gc.o: gc.c ruby.h config.h defines.h intern.h rubysig.h st.h node.h env.h re.h regex.h</div><div class='del'>-glob.o: config.h glob.c fnmatch.h</div><div class='del'>-hash.o: hash.c ruby.h config.h defines.h intern.h st.h rubysig.h</div><div class='del'>-inits.o: inits.c ruby.h config.h defines.h intern.h</div><div class='del'>-io.o: io.c ruby.h config.h defines.h intern.h rubyio.h rubysig.h</div><div class='del'>-main.o: main.c ruby.h config.h defines.h intern.h</div><div class='del'>-marshal.o: marshal.c ruby.h config.h defines.h intern.h rubyio.h st.h</div><div class='del'>-math.o: math.c ruby.h config.h defines.h intern.h</div><div class='del'>-numeric.o: numeric.c ruby.h config.h defines.h intern.h</div><div class='del'>-object.o: object.c ruby.h config.h defines.h intern.h st.h</div><div class='del'>-pack.o: pack.c ruby.h config.h defines.h intern.h</div><div class='del'>-process.o: process.c ruby.h config.h defines.h intern.h rubysig.h st.h</div><div class='del'>-random.o: random.c ruby.h config.h defines.h intern.h</div><div class='del'>-range.o: range.c ruby.h config.h defines.h intern.h</div><div class='del'>-re.o: re.c ruby.h config.h defines.h intern.h re.h regex.h</div><div class='del'>-regex.o: regex.c config.h regex.h util.h</div><div class='del'>-ruby.o: ruby.c ruby.h config.h defines.h intern.h dln.h</div><div class='del'>-signal.o: signal.c ruby.h config.h defines.h intern.h rubysig.h</div><div class='del'>-sprintf.o: sprintf.c ruby.h config.h defines.h intern.h</div><div class='del'>-st.o: st.c config.h st.h</div><div class='del'>-string.o: string.c ruby.h config.h defines.h intern.h re.h regex.h</div><div class='del'>-struct.o: struct.c ruby.h config.h defines.h intern.h</div><div class='del'>-time.o: time.c ruby.h config.h defines.h intern.h</div><div class='del'>-util.o: util.c ruby.h config.h defines.h intern.h util.h</div><div class='del'>-variable.o: variable.c ruby.h config.h defines.h intern.h env.h node.h st.h</div><div class='del'>-version.o: version.c ruby.h config.h defines.h intern.h version.h</div><div class='add'>+</div><div class='add'>+miniruby$(EXEEXT):</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) $(MAINLIBS) $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(LIBS) $(OUTFLAG)$@</div><div class='add'>+</div><div class='add'>+$(PROGRAM):</div><div class='add'>+		@$(RM) $@</div><div class='add'>+		$(ECHO) linking $@</div><div class='add'>+		$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) $(MAINLIBS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) $(OUTFLAG)$@</div><div class='add'>+</div><div class='add'>+# We must `rm' the library each time this rule is invoked because "updating" a</div><div class='add'>+# MAB library on Apple/NeXT (see --enable-fat-binary in configure) is not</div><div class='add'>+# supported.</div><div class='add'>+$(LIBRUBY_A):</div><div class='add'>+		@$(RM) $@</div><div class='add'>+		$(ECHO) linking static-library $@</div><div class='add'>+		$(Q) $(AR) $(ARFLAGS) $@ $(OBJS) $(DMYEXT)</div><div class='add'>+		@-$(RANLIB) $@ 2&gt; /dev/null || true</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_SO):</div><div class='add'>+		@-$(PRE_LIBRUBY_UPDATE)</div><div class='add'>+		$(ECHO) linking shared-library $@</div><div class='add'>+		$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@</div><div class='add'>+		-$(Q) $(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)*_threadptr_*' $@</div><div class='add'>+		@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \</div><div class='add'>+						  File.symlink "$(LIBRUBY_SO)", link}' \</div><div class='add'>+				$(LIBRUBY_ALIASES) || true</div><div class='add'>+</div><div class='add'>+fake: $(arch)-fake.rb</div><div class='add'>+$(arch)-fake.rb: config.status $(srcdir)/template/fake.rb.in</div><div class='add'>+		@./config.status --file=$@:$(srcdir)/template/fake.rb.in</div><div class='add'>+		@chmod +x $@</div><div class='add'>+</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'>+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</div><div class='add'>+		MAKE=$(MAKE) $(SHELL) ./config.status</div><div class='add'>+		@{ \</div><div class='add'>+		    echo "all:; -@rm -f conftest.mk"; \</div><div class='add'>+		    echo "conftest.mk: .force; @echo AUTO_REMAKE"; \</div><div class='add'>+		    echo ".force:"; \</div><div class='add'>+		} &gt; conftest.mk || exit 1; \</div><div class='add'>+		$(MAKE) -f conftest.mk | grep '^AUTO_REMAKE$$' &gt;/dev/null 2&gt;&amp;1 || \</div><div class='add'>+		{ echo "Makefile 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 = 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`</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'>+	@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.in</div><div class='add'>+	$(CHDIR) $(srcdir) &amp;&amp; exec $(AUTOCONF)</div><div class='add'>+</div><div class='add'>+incs: id.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 -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? &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'>+NAME2CTYPE_OPTIONS = -7 -c -j1 -i1 -t -C -P -T -H uniname2ctype_hash -Q uniname2ctype_pool -N uniname2ctype_p</div><div class='add'>+</div><div class='add'>+enc/unicode/name2ctype.h: enc/unicode/name2ctype.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'>+	  trap '$(RM) $@-1.h $@-2.h' 0 &amp;&amp; \</div><div class='add'>+	  set -x; \</div><div class='add'>+	  sed '/^#ifdef USE_UNICODE_PROPERTIES/,/^#endif/d' $? | gperf $(NAME2CTYPE_OPTIONS) &gt; $@-1.h &amp;&amp; \</div><div class='add'>+	  gperf $(NAME2CTYPE_OPTIONS) &lt; $? &gt; $@-2.h &amp;&amp; \</div><div class='add'>+	  diff -DUSE_UNICODE_PROPERTIES $@-1.h $@-2.h &gt; $@.tmp || :; \</div><div class='add'>+	  $(MV) $@.tmp $@ &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='add'>+</div><div class='add'>+.c.@OBJEXT@:</div><div class='add'>+	@$(ECHO) compiling $&lt;</div><div class='add'>+	$(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $&lt;</div><div class='add'>+</div><div class='add'>+.s.@OBJEXT@:</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) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -E $&lt; &gt; $@</div><div class='add'>+</div><div class='add'>+clean-local::</div><div class='add'>+	$(Q)$(RM) ext/extinit.c ext/extinit.$(OBJEXT) ext/ripper/y.output</div><div class='add'>+	-$(Q)$(RM) $(pkgconfig_DATA)</div><div class='add'>+</div><div class='add'>+distclean-local::</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</div><div class='add'>+	-$(Q)$(RMDIRS) $(arch_hdrdir)/ruby 2&gt; /dev/null || true</div><div class='add'>+</div><div class='add'>+clean-ext distclean-ext realclean-ext::</div><div class='add'>+	@cd ext 2&gt;/dev/null || exit 0; 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'>+	    find "$$@" -name Makefile -print | sed 's:^\./::;s:/Makefile$$:~:' | sort | sed 's:~$$::'; \</div><div class='add'>+	`; shift; \</div><div class='add'>+	cd ..; \</div><div class='add'>+	for dir do \</div><div class='add'>+	    echo $(@:-ext=)ing "$$dir"; \</div><div class='add'>+	    (cd "ext/$$dir" &amp;&amp; exec $(MAKE) $(MFLAGS) $(@:-ext=)) &amp;&amp; \</div><div class='add'>+	    case "$@" in \</div><div class='add'>+	    *distclean-ext*|*realclean-ext*) \</div><div class='add'>+		$(RMDIRS) "ext/$$dir" 2&gt; /dev/null || true;; \</div><div class='add'>+	    esac; \</div><div class='add'>+	done</div><div class='add'>+</div><div class='add'>+distclean-ext realclean-ext::</div><div class='add'>+	-$(Q)$(RMDIR) ext 2&gt; /dev/null || true</div><div class='add'>+</div><div class='add'>+clean-extout:</div><div class='add'>+	-$(Q)$(RMDIRS) $(EXTOUT) 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) -f $(ENC_MK) $(MFLAGS) $(@:-enc=)</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'>+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'>+	@$(RM) $(PLATFORM_D)</div><div class='add'>+	-$(Q) $(RMDIR) $(PLATFORM_DIR) 2&gt; /dev/null || true</div><div class='add'>+</div><div class='add'>+ext/extinit.$(OBJEXT): ext/extinit.c $(SETUP)</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'>+up::</div><div class='add'>+	@$(CHDIR) "$(srcdir)" &amp;&amp; LC_TIME=C exec $(VCSUP)</div><div class='add'>+</div><div class='add'>+update-mspec:</div><div class='add'>+	@$(CHDIR) $(srcdir); \</div><div class='add'>+	if [ -d spec/mspec ]; then \</div><div class='add'>+	  cd spec/mspec; \</div><div class='add'>+	  echo updating mspec ...; \</div><div class='add'>+	  exec git pull; \</div><div class='add'>+	else \</div><div class='add'>+	  echo retrieving mspec ...; \</div><div class='add'>+	  exec git clone $(MSPEC_GIT_URL) spec/mspec; \</div><div class='add'>+	fi</div><div class='add'>+</div><div class='add'>+update-rubyspec: update-mspec</div><div class='add'>+	@$(CHDIR) $(srcdir); \</div><div class='add'>+	if [ -d spec/rubyspec ]; then \</div><div class='add'>+	  cd spec/rubyspec; \</div><div class='add'>+	  echo updating rubyspec ...; \</div><div class='add'>+	  exec git pull; \</div><div class='add'>+	else \</div><div class='add'>+	  echo retrieving rubyspec ...; \</div><div class='add'>+	  exec git clone $(RUBYSPEC_GIT_URL) spec/rubyspec; \</div><div class='add'>+	fi</div><div class='add'>+</div><div class='add'>+test-rubyspec-precheck:</div><div class='add'>+	@if [ ! -d $(srcdir)/spec/rubyspec ]; then echo No rubyspec here.  make update-rubyspec first.; exit 1; fi</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) -Ks $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@</div><div class='head'>diff --git a/NEWS b/NEWS<br/>new file mode 100644<br/>index 0000000000..30fec33fdd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/NEWS?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>NEWS</a></div><div class='hunk'>@@ -0,0 +1,341 @@</div><div class='add'>+# -*- rd -*-</div><div class='add'>+= NEWS</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.9.2 release</div><div class='add'>+=== License</div><div class='add'>+</div><div class='add'>+* Ruby's License is changed from a dual license with GPLv2</div><div class='add'>+  to a dual license with 2-clause BSDL.</div><div class='add'>+</div><div class='add'>+=== Known platform dependent issues</div><div class='add'>+==== OS X Lion</div><div class='add'>+</div><div class='add'>+* You have to configure ruby with '--with-gcc=gcc-4.2' if you're using</div><div class='add'>+  Xcode 4.1, or, if you're using Xcode 4.2, you have to configure ruby</div><div class='add'>+  with '--with-gcc=clang'.</div><div class='add'>+</div><div class='add'>+=== C API updates</div><div class='add'>+</div><div class='add'>+* rb_scan_args() is enhanced with support for option hash argument</div><div class='add'>+  extraction.</div><div class='add'>+</div><div class='add'>+* ruby_vm_at_exit() added.  This enables extension libs to hook a VM</div><div class='add'>+  termination.</div><div class='add'>+</div><div class='add'>+* rb_reserved_fd_p() added.  If you want to close all file descriptors,</div><div class='add'>+  check using this API.  [ruby-core:37759]</div><div class='add'>+</div><div class='add'>+=== Library updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* builtin classes</div><div class='add'>+</div><div class='add'>+  * ARGF</div><div class='add'>+    * new methods:</div><div class='add'>+      * ARGF.print</div><div class='add'>+      * ARGF.printf</div><div class='add'>+      * ARGF.putc</div><div class='add'>+      * ARGF.puts</div><div class='add'>+      * ARGF.read_nonblock</div><div class='add'>+      * ARGF.to_write_io</div><div class='add'>+      * ARGF.write</div><div class='add'>+</div><div class='add'>+  * Array</div><div class='add'>+    * extended method:</div><div class='add'>+      * Array#pack supports endian modifiers</div><div class='add'>+</div><div class='add'>+  * Bignum</div><div class='add'>+    * Multiplication algorithm for Bignums with a large number of digits over</div><div class='add'>+      150 BDIGITs is changed in order to reduce its calculation time.</div><div class='add'>+      Now such large Bignums are multiplied by using Toom-3 algorithm.</div><div class='add'>+</div><div class='add'>+  * Encoding</div><div class='add'>+    * new encodings:</div><div class='add'>+      * CP950</div><div class='add'>+      * CP951</div><div class='add'>+      * UTF-16</div><div class='add'>+      * UTF-32</div><div class='add'>+    * change alias:</div><div class='add'>+      * SJIS is Windows-31J</div><div class='add'>+</div><div class='add'>+  * File</div><div class='add'>+    * new constant:</div><div class='add'>+      * File::NULL</div><div class='add'>+        name of NULL device.</div><div class='add'>+      * File::DIRECT</div><div class='add'>+        name of O_DIRECT.</div><div class='add'>+</div><div class='add'>+  * IO</div><div class='add'>+    * extended method:</div><div class='add'>+      * IO#putc supports multibyte characters</div><div class='add'>+    * new methods:</div><div class='add'>+      * IO#advise</div><div class='add'>+      * IO.write(name, string, [offset] )</div><div class='add'>+        Write `string` to file `name`.</div><div class='add'>+        Opposite with File.read.</div><div class='add'>+      * IO.binwrite(name, string, [offset] )</div><div class='add'>+        binary version of IO.write.</div><div class='add'>+</div><div class='add'>+  * Kernel</div><div class='add'>+    * move #__id__ to BasicObject.</div><div class='add'>+    * extended method:</div><div class='add'>+      * Kernel#rand supports range argument</div><div class='add'>+</div><div class='add'>+  * Module</div><div class='add'>+    * new methods:</div><div class='add'>+      * Module#private_constant</div><div class='add'>+      * Module#public_constant</div><div class='add'>+</div><div class='add'>+  * Random</div><div class='add'>+    * extended method:</div><div class='add'>+      * Random.rand supports range argument</div><div class='add'>+</div><div class='add'>+  * String</div><div class='add'>+    * extended method:</div><div class='add'>+      * String#unpack supports endian modifiers</div><div class='add'>+    * new method:</div><div class='add'>+      * String#prepend</div><div class='add'>+      * String#byteslice</div><div class='add'>+</div><div class='add'>+  * Time</div><div class='add'>+    * extended method:</div><div class='add'>+      * Time#strftime supports %:z and %::z.</div><div class='add'>+</div><div class='add'>+  * Process</div><div class='add'>+    * Process#maxgroups and Process#maxgroups= now raise NotImplementedError if</div><div class='add'>+      the platform don't support supplementary groups concept.</div><div class='add'>+</div><div class='add'>+* bigdecimal</div><div class='add'>+</div><div class='add'>+  * BigDecimal#power and BigDecimal#** support non-integral exponent.</div><div class='add'>+</div><div class='add'>+  * Kernel.BigDecimal and BigDecimal.new now accept instances of Integer,</div><div class='add'>+    Rational, Float, and BigDecimal.  If you pass a Rational or a Float to</div><div class='add'>+    them, you must specify the precision to produce the digits of a BigDecimal.</div><div class='add'>+</div><div class='add'>+  * The behavior of BigDecimal#coerce with a Rational is changed.  It uses</div><div class='add'>+    the precision of the receiver BigDecimal to produce the digits of a</div><div class='add'>+    BigDecimal from the given Rational.</div><div class='add'>+</div><div class='add'>+* bigdecimal/util</div><div class='add'>+</div><div class='add'>+  * BigDecimal#to_d and Integer#to_d are added.</div><div class='add'>+</div><div class='add'>+  * Float#to_d accepts a precision.</div><div class='add'>+</div><div class='add'>+  * Rational#to_d raises ArgumentError when passing zero or negative</div><div class='add'>+    precision.</div><div class='add'>+</div><div class='add'>+  * Rational#to_d</div><div class='add'>+</div><div class='add'>+    * Zero and an implicit precision is deprecated.</div><div class='add'>+      This feature is removed at the next release of bigdecimal.</div><div class='add'>+</div><div class='add'>+    * A negative precision isn't supported.</div><div class='add'>+      Be careful it is an incompatible change.</div><div class='add'>+</div><div class='add'>+* date</div><div class='add'>+</div><div class='add'>+  * Accepts flonum explicitly with limitations.</div><div class='add'>+    * If the given offset is flonum, DateTime assumes its precision is</div><div class='add'>+      at most second.</div><div class='add'>+</div><div class='add'>+      DateTime.new(2001,2,3,0,0,0,3.0/24) ==</div><div class='add'>+      DateTime.new(2001,2,3,0,0,0,'+03:00')</div><div class='add'>+        #=&gt; true</div><div class='add'>+</div><div class='add'>+    * If the given operand for -/+ is flonum, DateTime assumes its</div><div class='add'>+      precision is at most nanosecond.</div><div class='add'>+</div><div class='add'>+      DateTime.new(2001,2,3) + 0.5 == DateTime.new(2001,2,3,12)</div><div class='add'>+        #=&gt; true</div><div class='add'>+</div><div class='add'>+    * Precision of offset is always at most second.</div><div class='add'>+</div><div class='add'>+      Rational('0.5') == Rational('0.500001')  #=&gt; false</div><div class='add'>+      DateTime.new(2001,2,3,0,0,0,Rational('0.5')) ==</div><div class='add'>+      DateTime.new(2001,2,3,0,0,0,Rational('0.500001'))</div><div class='add'>+        #=&gt; true</div><div class='add'>+</div><div class='add'>+  * Ignores long offset and far reform day (with warning).</div><div class='add'>+</div><div class='add'>+    * Now accepts only:</div><div class='add'>+</div><div class='add'>+      -1&lt;=offset&lt;=1 (-24:00..+24:00)</div><div class='add'>+      2298874&lt;=start&lt;=2426355 or -/+oo</div><div class='add'>+        (proleptic Gregorian/Julian mean -/+oo)</div><div class='add'>+</div><div class='add'>+  * A method strftime cannot produce huge output (same as Time's one).</div><div class='add'>+</div><div class='add'>+    * Even though Date/DateTime can handle far dates, the following causes</div><div class='add'>+      an exception.</div><div class='add'>+</div><div class='add'>+      DateTime.new(1&lt;&lt;10000).strftime('%Y')  # Errno::ERANGE</div><div class='add'>+</div><div class='add'>+  * Changed the format of inspect.</div><div class='add'>+  * Changed the format of marshal (but, can load old dumps).</div><div class='add'>+</div><div class='add'>+* io/console</div><div class='add'>+  * new methods:</div><div class='add'>+    * IO#noecho {|io| }</div><div class='add'>+    * IO#echo=</div><div class='add'>+    * IO#echo?</div><div class='add'>+    * IO#raw {|io| }</div><div class='add'>+    * IO#raw!</div><div class='add'>+    * IO#getch</div><div class='add'>+    * IO#winsize</div><div class='add'>+    * IO.console</div><div class='add'>+</div><div class='add'>+* json</div><div class='add'>+  * updated to v1.5.4.</div><div class='add'>+</div><div class='add'>+* matrix</div><div class='add'>+  * new classes:</div><div class='add'>+    * Matrix::EigenvalueDecomposition</div><div class='add'>+    * Matrix::LUPDecomposition</div><div class='add'>+  * new methods:</div><div class='add'>+    * Matrix#diagonal?</div><div class='add'>+    * Matrix#eigen</div><div class='add'>+    * Matrix#eigensystem</div><div class='add'>+    * Matrix#hermitian?</div><div class='add'>+    * Matrix#lower_triangular?</div><div class='add'>+    * Matrix#lup</div><div class='add'>+    * Matrix#lup_decomposition</div><div class='add'>+    * Matrix#normal?</div><div class='add'>+    * Matrix#orthogonal?</div><div class='add'>+    * Matrix#permutation?</div><div class='add'>+    * Matrix#round</div><div class='add'>+    * Matrix#symmetric?</div><div class='add'>+    * Matrix#unitary?</div><div class='add'>+    * Matrix#upper_triangular?</div><div class='add'>+    * Matrix#zero?</div><div class='add'>+    * Vector#magnitude, #norm</div><div class='add'>+    * Vector#normalize</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Matrix#each and #each_with_index can iterate on a subset of the elements</div><div class='add'>+    * Matrix#find_index returns [row, column] and can iterate on a subset</div><div class='add'>+      of the elements</div><div class='add'>+    * Matrix#** implements Numeric exponents (using the eigensystem)</div><div class='add'>+    * Matrix.zero can build rectangular matrices</div><div class='add'>+</div><div class='add'>+* minitest</div><div class='add'>+  * Minitest has been updated to version 2.2.2.</div><div class='add'>+  * For full details, see https://github.com/seattlerb/minitest/blob/master/History.txt</div><div class='add'>+</div><div class='add'>+* net/http</div><div class='add'>+  * SNI (Server Name Indication) supported for HTTPS.</div><div class='add'>+</div><div class='add'>+  * Allow to configure to wait server returning '100 continue' response</div><div class='add'>+    before sending HTTP request body. Set Net::HTTP#continue_timeout AND pass</div><div class='add'>+    'expect' =&gt; '100-continue' to a extra HTTP header.</div><div class='add'>+</div><div class='add'>+    For example, the following code sends HTTP header and waits for getting</div><div class='add'>+    '100 continue' response before sending HTTP request body. When 0.5 [sec]</div><div class='add'>+    timeout occurs or the server send '100 continue', the client sends HTTP</div><div class='add'>+    request body.</div><div class='add'>+      http.continue_timeout = 0.5</div><div class='add'>+      http.request_post('/continue', 'body=BODY', 'expect' =&gt; '100-continue')</div><div class='add'>+</div><div class='add'>+  * new method:</div><div class='add'>+    * 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'>+</div><div class='add'>+* objspace</div><div class='add'>+  * new method:</div><div class='add'>+    * ObjectSpace::memsize_of_all</div><div class='add'>+</div><div class='add'>+* openssl</div><div class='add'>+  * PKey::RSA and PKey::DSA now use the generic X.509 encoding scheme</div><div class='add'>+    (e.g. used in a X.509 certificate's Subject Public Key Info) when</div><div class='add'>+    exporting public keys to DER or PEM. Backward compatibility is</div><div class='add'>+    ensured by (already existing) fallbacks during creation.</div><div class='add'>+  * OpenSSL::ASN1::Constructive#new and OpenSSL::ASN1::Primitive#new</div><div class='add'>+    (and the constructors of their sub-classes) will no longer force</div><div class='add'>+    tagging to be set to :EXPLICIT when tag and/or tag_class are passed</div><div class='add'>+    as parameters. tagging must be set explicitly.</div><div class='add'>+  * Support for infinite length encodings via infinite_length attribute.</div><div class='add'>+  * OpenSSL::PKey.read( file | string [, pwd] ) allows to read arbitrary</div><div class='add'>+    public/private keys in DER-/PEM-encoded form with an optional password</div><div class='add'>+    for encrypted PEM encodings.</div><div class='add'>+  * Add new method OpenSSL::X509::Name#hash_old as a wrapper of</div><div class='add'>+    X509_NAME_hash_old() defined from OpenSSL 1.0.0. It returns OpenSSL 0.9.8</div><div class='add'>+    compatible hash value.</div><div class='add'>+</div><div class='add'>+* optparse</div><div class='add'>+  * support for bash/zsh completion.</div><div class='add'>+</div><div class='add'>+* Rake</div><div class='add'>+  * Rake has been upgraded from 0.8.7 to 0.9.2.2.  For full release notes see</div><div class='add'>+    https://github.com/jimweirich/rake/blob/master/CHANGES</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+  * RDoc has been upgraded to version 3.9.4.  For full release notes see</div><div class='add'>+    http://docs.seattlerb.org/rdoc/History_txt.html</div><div class='add'>+</div><div class='add'>+* rexml</div><div class='add'>+  * Support Ruby native encoding mechanism and iconv dependency is dropped.</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+  * RubyGems has been upgraded to version 1.8.10. For full release notes see</div><div class='add'>+    http://rubygems.rubyforge.org/rubygems-update/History_txt.html</div><div class='add'>+</div><div class='add'>+* stringio</div><div class='add'>+  * extended method:</div><div class='add'>+    * StringIO#set_encoding can get 2nd argument and optional hash.</div><div class='add'>+</div><div class='add'>+* test/unit</div><div class='add'>+  * New arguments:</div><div class='add'>+    * -j N, --jobs=N: Allow run N testcases at once.</div><div class='add'>+    * --jobs-status: Show status of jobs when parallel running.</div><div class='add'>+    * --no-retry: Don't retry testcases which failed when parallel running.</div><div class='add'>+    * --ruby=RUBY: path to ruby for job(worker) process. optional.</div><div class='add'>+    * --hide-skip: Hide skip messages. You'll see the number of skips at end of</div><div class='add'>+      test result.</div><div class='add'>+</div><div class='add'>+* uri</div><div class='add'>+  * new methods:</div><div class='add'>+    * URI::Generic#hostname</div><div class='add'>+    * URI::Generic#hostname=</div><div class='add'>+</div><div class='add'>+* webrick</div><div class='add'>+  * new method:</div><div class='add'>+    * WEBrick::HTTPRequest#continue for generating '100 continue' response.</div><div class='add'>+  * new logging directive:</div><div class='add'>+    * %{remote}p for remote (client) port number.</div><div class='add'>+</div><div class='add'>+* yaml</div><div class='add'>+  * The default YAML engine is now Psych. You may downgrade to syck by setting</div><div class='add'>+    YAML::ENGINE.yamler = 'syck'.</div><div class='add'>+</div><div class='add'>+* zlib</div><div class='add'>+  * new methods:</div><div class='add'>+    * Zlib.deflate</div><div class='add'>+    * Zlib.inflate</div><div class='add'>+</div><div class='add'>+* FileUtils</div><div class='add'>+  * extended method:</div><div class='add'>+    * FileUtils#chmod supports symbolic mode argument.</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Regexps now support Unicode 6.0. (new characters and scripts)</div><div class='add'>+</div><div class='add'>+* [experimental] Regexps now support Age property.</div><div class='add'>+  Unlike Perl, current implementation takes interpretation of the</div><div class='add'>+  interpretation of UTS #18.</div><div class='add'>+  http://www.unicode.org/reports/tr18/</div><div class='add'>+</div><div class='add'>+* Turning on/off indentation warnings with directives.</div><div class='add'>+  ("# -*- warn-indent: true -*-" / "# -*- warn-indent: false -*-")</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+  * Rational#to_d</div><div class='add'>+</div><div class='add'>+    See above.</div><div class='head'>diff --git a/README b/README<br/>index 47012a3cb2..3d2e636e4d 100644<br/>--- a/<a href='/ruby.git/tree/README?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README</a><br/>+++ b/<a href='/ruby.git/tree/README?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>README</a></div><div class='hunk'>@@ -5,6 +5,7 @@ easy object-oriented programming.  It has many features to</div><div class='ctx'> process text files and to do system management tasks (as in</div><div class='ctx'> Perl).  It is simple, straight-forward, and extensible.</div><div class='ctx'> </div><div class='add'>+</div><div class='ctx'> * Features of Ruby</div><div class='ctx'> </div><div class='ctx'>   + Simple Syntax</div><div class='hunk'>@@ -15,115 +16,122 @@ Perl).  It is simple, straight-forward, and extensible.</div><div class='ctx'>   + Iterators and Closures</div><div class='ctx'>   + Garbage Collection</div><div class='ctx'>   + Dynamic Loading of Object files(on some architecture)</div><div class='del'>-  + Highly Portable(works on many UNIX machines)</div><div class='add'>+  + Highly Portable (works on many Unix-like/POSIX compatible platforms</div><div class='add'>+    as well as Windows, Mac OS X, BeOS etc.)</div><div class='add'>+    cf. http://redmine.ruby-lang.org/wiki/ruby-19/SupportedPlatforms</div><div class='add'>+</div><div class='ctx'> </div><div class='ctx'> * How to get Ruby</div><div class='ctx'> </div><div class='del'>-The Ruby distribution can be found on</div><div class='add'>+The Ruby distribution files can be found in the following FTP site:</div><div class='ctx'> </div><div class='del'>-  ftp://ftp.netlab.co.jp/pub/lang/ruby/</div><div class='add'>+  ftp://ftp.ruby-lang.org/pub/ruby/</div><div class='ctx'> </div><div class='del'>-* How to compile and install</div><div class='add'>+The trunk of the Ruby source tree can be checked out with the</div><div class='add'>+following command:</div><div class='ctx'> </div><div class='del'>-This is what you need to do to compile and install Ruby:</div><div class='add'>+  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby</div><div class='ctx'> </div><div class='del'>-  1. Run ./configure, which will generate config.h and Makefile.</div><div class='add'>+There are some other branches under development.  Try the following</div><div class='add'>+command and see the list of branches:</div><div class='ctx'> </div><div class='del'>-  2. Edit defines.h if you need.  Probably this step will not need.</div><div class='add'>+  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/</div><div class='ctx'> </div><div class='del'>-  3. 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='ctx'> </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='add'>+* Ruby home-page</div><div class='ctx'> </div><div class='del'>-  4. Run make.</div><div class='add'>+The URL of the Ruby home-page is:</div><div class='ctx'> </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='add'>+   http://www.ruby-lang.org/</div><div class='ctx'> </div><div class='del'>-  6. Run 'make install'</div><div class='ctx'> </div><div class='del'>-     You may have to be a super user to install ruby.</div><div class='add'>+* Mailing list</div><div class='ctx'> </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='add'>+There is a mailing list to talk about Ruby.</div><div class='add'>+To subscribe this list, please send the following phrase</div><div class='ctx'> </div><div class='del'>-* Copying</div><div class='add'>+	subscribe YourFirstName YourFamilyName</div><div class='add'>+e.g.</div><div class='add'>+        subscribe Joseph Smith</div><div class='ctx'> </div><div class='del'>-Ruby is copyrighted free software by Yukihiro Matsumoto &lt;matz@netlab.co.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'>-(see COPYING file), or the conditions below:</div><div class='add'>+in the mail body (not subject) to the address &lt;ruby-talk-ctl@ruby-lang.org&gt;.</div><div class='ctx'> </div><div class='del'>-  1. You may make and give away verbatim copies of the source form of the</div><div class='del'>-     software without restriction, provided that you duplicate all of the</div><div class='del'>-     original copyright notices and associated disclaimers.</div><div class='ctx'> </div><div class='del'>-  2. You may modify your copy of the software in any way, provided that</div><div class='del'>-     you do at least ONE of the following:</div><div class='add'>+* How to compile and install</div><div class='ctx'> </div><div class='del'>-       a) place your modifications in the Public Domain or otherwise</div><div class='del'>-          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'>+This is what you need to do to compile and install Ruby:</div><div class='ctx'> </div><div class='del'>-       b) use the modified software only within your corporation or</div><div class='del'>-          organization.</div><div class='add'>+  1. If ./configure does not exist or is older than configure.in,</div><div class='add'>+     run autoconf to (re)generate configure.</div><div class='ctx'> </div><div class='del'>-       c) rename any non-standard executables so the names do not conflict</div><div class='del'>-	  with standard executables, which must also be provided.</div><div class='add'>+  2. Run ./configure, which will generate config.h and Makefile.</div><div class='ctx'> </div><div class='del'>-       d) make other distribution arrangements with the author.</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</div><div class='add'>+     to override them.</div><div class='ctx'> </div><div class='del'>-  3. You may distribute the software in object code or executable</div><div class='del'>-     form, provided that you do at least ONE of the following:</div><div class='add'>+  3. Edit defines.h if you need.  Usually this step will not be needed.</div><div class='ctx'> </div><div class='del'>-       a) distribute the executables 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'>+  4. Remove comment mark(#) before the module names from ext/Setup (or</div><div class='add'>+     add module names if not present), if you want to link modules</div><div class='add'>+     statically.</div><div class='ctx'> </div><div class='del'>-       b) accompany the distribution with the machine-readable source of</div><div class='del'>-	  the software.</div><div class='add'>+     If you don't want to compile non static extension modules</div><div class='add'>+     (probably on architectures which does not allow dynamic loading),</div><div class='add'>+     remove comment mark from the line "#option nodynamic" in</div><div class='add'>+     ext/Setup.</div><div class='ctx'> </div><div class='del'>-       c) give non-standard executables non-standard names, with</div><div class='del'>-          instructions on where to get the original software distribution.</div><div class='add'>+  5. Run make.</div><div class='ctx'> </div><div class='del'>-       d) make other distribution arrangements with the author.</div><div class='add'>+  6. Optionally, run 'make test' to check whether the compiled Ruby</div><div class='add'>+     interpreter works well.  If you see the message "test succeeded",</div><div class='add'>+     your ruby works as it should (hopefully).</div><div class='add'>+</div><div class='add'>+  7. Run 'make install'</div><div class='add'>+</div><div class='add'>+     This command will create following directories and install files</div><div class='add'>+     onto 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'>+     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</div><div class='add'>+     Ruby's program version</div><div class='ctx'> </div><div class='del'>-  4. You may modify and include the part of the software into any other</div><div class='del'>-     software (possibly commercial).  But some files in the distribution</div><div class='del'>-     are not written by the author, so that they are not under this terms.</div><div class='del'>-     They are gc.c(partly), utils.c(partly), regex.[ch], fnmatch.[ch],</div><div class='del'>-     glob.c, st.[ch] and some files under the ./missing directory.  See</div><div class='del'>-     each file for the copying condition.</div><div class='add'>+     You may have to be a super user to install ruby.</div><div class='ctx'> </div><div class='del'>-  5. The scripts and library files supplied as input to or produced as </div><div class='del'>-     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='del'>-     and may be sold commercially, and may be aggregated with this</div><div class='del'>-     software.</div><div class='add'>+If you fail to compile ruby, please send the detailed error report with</div><div class='add'>+the error log and machine/OS type, to help others.</div><div class='ctx'> </div><div class='del'>-  6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR</div><div class='del'>-     IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED</div><div class='del'>-     WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR</div><div class='del'>-     PURPOSE.</div><div class='ctx'> </div><div class='del'>-* Ruby home-page</div><div class='add'>+* Copying</div><div class='ctx'> </div><div class='del'>-The URL of the Ruby home-page is:</div><div class='add'>+See the file COPYING.</div><div class='ctx'> </div><div class='del'>-   http://www.netlab.co.jp/ruby/</div><div class='ctx'> </div><div class='ctx'> * The Author</div><div class='ctx'> </div><div class='ctx'> Feel free to send comments and bug reports to the author.  Here is the </div><div class='ctx'> author's latest mail address:</div><div class='ctx'> </div><div class='del'>-  matz@netlab.co.jp</div><div class='add'>+  matz@netlab.jp</div><div class='ctx'> </div><div class='ctx'> -------------------------------------------------------</div><div class='ctx'> created at: Thu Aug  3 11:57:36 JST 1995</div><div class='head'>diff --git a/README.EXT b/README.EXT<br/>index fb041bca9b..de63f54699 100644<br/>--- a/<a href='/ruby.git/tree/README.EXT?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.EXT</a><br/>+++ b/<a href='/ruby.git/tree/README.EXT?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>README.EXT</a></div><div class='hunk'>@@ -1,59 +1,63 @@</div><div class='ctx'> .\" README.EXT -  -*- Text -*- created at: Mon Aug  7 16:45:54 JST 1995</div><div class='ctx'> </div><div class='del'>-This document explains how to make extention modules for Ruby.</div><div class='add'>+This document explains how to make extension libraries for Ruby.</div><div class='ctx'> </div><div class='del'>-1¡¥Basic knowledge</div><div class='add'>+1. Basic knowledge</div><div class='ctx'> </div><div class='ctx'> In C, variables have types and data do not have types.  In contrast,</div><div class='del'>-Ruby variables do not have static type and data themselves have</div><div class='del'>-types.  So, data need to be converted across the languages.</div><div class='add'>+Ruby variables do not have a static type, and data themselves have</div><div class='add'>+types, so data will need to be converted between the languages.</div><div class='ctx'> </div><div class='del'>-Data in Ruby represented C type `VALUE'.  Each VALUE data have its</div><div class='del'>-data-type.</div><div class='add'>+Data in Ruby are represented by the C type `VALUE'.  Each VALUE data</div><div class='add'>+has its data-type.</div><div class='ctx'> </div><div class='del'>-To retrieve an C data from the VALUE, you need to:</div><div class='add'>+To retrieve C data from a VALUE, you need to:</div><div class='ctx'> </div><div class='del'>- (1) Identify VALUE's data type</div><div class='del'>- (2) Convert VALUE into C data</div><div class='add'>+ (1) Identify the VALUE's data type</div><div class='add'>+ (2) Convert the VALUE into C data</div><div class='ctx'> </div><div class='del'>-Converting to wrong data type may cause serious promblems.</div><div class='add'>+Converting to the wrong data type may cause serious problems.</div><div class='ctx'> </div><div class='ctx'> </div><div class='ctx'> 1.1 Data-types</div><div class='ctx'> </div><div class='del'>-Ruby interpreter has data-types as below:</div><div class='add'>+The Ruby interpreter has the following data types:</div><div class='ctx'> </div><div class='ctx'> 	T_NIL		nil</div><div class='del'>-	T_OBJECT	ordinaly object</div><div class='add'>+	T_OBJECT	ordinary object</div><div class='ctx'> 	T_CLASS		class</div><div class='ctx'> 	T_MODULE	module</div><div class='ctx'> 	T_FLOAT		floating point number</div><div class='ctx'> 	T_STRING	string</div><div class='ctx'> 	T_REGEXP	regular expression</div><div class='ctx'> 	T_ARRAY		array</div><div class='del'>-	T_FIXNUM	Fixnum(31bit integer)</div><div class='del'>-	T_HASH		assosiative array</div><div class='add'>+	T_HASH		associative array</div><div class='ctx'> 	T_STRUCT	(Ruby) structure</div><div class='ctx'> 	T_BIGNUM	multi precision integer</div><div class='add'>+	T_FIXNUM	Fixnum(31bit or 63bit integer)</div><div class='add'>+	T_COMPLEX       complex number</div><div class='add'>+	T_RATIONAL      rational number</div><div class='add'>+	T_FILE		IO</div><div class='ctx'> 	T_TRUE		true</div><div class='ctx'> 	T_FALSE		false</div><div class='ctx'> 	T_DATA		data</div><div class='add'>+	T_SYMBOL        symbol</div><div class='ctx'> </div><div class='del'>-Otherwise, there are several other types used internally:</div><div class='add'>+In addition, there are several other types used internally:</div><div class='ctx'> </div><div class='ctx'> 	T_ICLASS</div><div class='ctx'> 	T_MATCH</div><div class='del'>-	T_VARMAP</div><div class='del'>-	T_SCOPE</div><div class='add'>+	T_UNDEF</div><div class='ctx'> 	T_NODE</div><div class='add'>+	T_ZOMBIE</div><div class='ctx'> </div><div class='ctx'> Most of the types are represented by C structures.</div><div class='ctx'> </div><div class='ctx'> 1.2 Check Data Type of the VALUE</div><div class='ctx'> </div><div class='del'>-The macro TYPE() defined in ruby.h shows data-type of the VALUE.</div><div class='add'>+The macro TYPE() defined in ruby.h shows the data type of the VALUE.</div><div class='ctx'> TYPE() returns the constant number T_XXXX described above.  To handle</div><div class='del'>-data-types, the code will be like:</div><div class='add'>+data types, your code will look something like this:</div><div class='ctx'> </div><div class='ctx'>   switch (TYPE(obj)) {</div><div class='ctx'>     case T_FIXNUM:</div><div class='hunk'>@@ -67,319 +71,430 @@ data-types, the code will be like:</div><div class='ctx'>       break;</div><div class='ctx'>     default:</div><div class='ctx'>       /* raise exception */</div><div class='del'>-      Fail("not valid value");</div><div class='add'>+      rb_raise(rb_eTypeError, "not valid value");</div><div class='ctx'>       break;</div><div class='ctx'>   }</div><div class='ctx'> </div><div class='del'>-There is the data-type check function.</div><div class='add'>+There is the data-type check function</div><div class='ctx'> </div><div class='ctx'>   void Check_Type(VALUE value, int type)</div><div class='ctx'> </div><div class='del'>-It raises an exception, if the VALUE does not have the type specified.</div><div class='add'>+which raises an exception if the VALUE does not have the type</div><div class='add'>+specified.</div><div class='ctx'> </div><div class='del'>-There are faster check-macros for fixnums and nil.</div><div class='add'>+There are also faster check macros for fixnums and nil.</div><div class='ctx'> </div><div class='ctx'>   FIXNUM_P(obj)</div><div class='ctx'>   NIL_P(obj)</div><div class='ctx'> </div><div class='ctx'> 1.3 Convert VALUE into C data</div><div class='ctx'> </div><div class='del'>-¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_NIL, T_FALSE, T_TRUE¤Ç¤¢¤ë»þ¡¤¥Ç¡¼¥¿¤Ï¤½¤ì¤¾</div><div class='del'>-¤ìnil, false, true¤Ç¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Ò¤È</div><div class='del'>-¤Ä¤º¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡¥</div><div class='add'>+The data for type T_NIL, T_FALSE, T_TRUE are nil, false, true</div><div class='add'>+respectively.  They are singletons for the data type.</div><div class='add'>+The equivalent C constants are: Qnil, Qfalse, Qtrue.</div><div class='add'>+Note that Qfalse is false in C also (i.e. 0), but not Qnil.</div><div class='add'>+</div><div class='add'>+The T_FIXNUM data is a 31bit or 63bit length fixed integer.</div><div class='add'>+This size is depend on the size of long: if long is 32bit then</div><div class='add'>+T_FIXNUM is 31bit, if long is 64bit then T_FIXNUM is 63bit.</div><div class='add'>+T_FIXNUM can be converted to a C integer by using the</div><div class='add'>+FIX2INT() macro or FIX2LONG().  Though you have to check that the</div><div class='add'>+data is really FIXNUM before using them, they are faster.  FIX2LONG()</div><div class='add'>+never raises exceptions, but FIX2INT() raises RangeError if the</div><div class='add'>+result is bigger or smaller than the size of int.</div><div class='add'>+There are also NUM2INT() and NUM2LONG() which converts any Ruby</div><div class='add'>+numbers into C integers.  These macros includes a type check,</div><div class='add'>+so an exception will be raised if the conversion failed.  NUM2DBL()</div><div class='add'>+can be used to retrieve the double float value in the same way.</div><div class='add'>+</div><div class='add'>+You can use the macros</div><div class='add'>+StringValue() and StringValuePtr() to get a char* from a VALUE.</div><div class='add'>+StringValue(var) replaces var's value with the result of "var.to_str()".</div><div class='add'>+StringValuePtr(var) does same replacement and returns char*</div><div class='add'>+representation of var.  These macros will skip the replacement if var</div><div class='add'>+is a String.  Notice that the macros take only the lvalue as their</div><div class='add'>+argument, to change the value of var in place.</div><div class='add'>+</div><div class='add'>+You can also use the macro named StringValueCStr(). This is just</div><div class='add'>+like StringValuePtr(), but always add nul character at the end of</div><div class='add'>+the result. If the result contains nul character, this macro causes</div><div class='add'>+the ArgumentError exception.</div><div class='add'>+StringValuePtr() doesn't guarantee the existence of a nul at the end</div><div class='add'>+of the result, and the result may contain nul.</div><div class='add'>+</div><div class='add'>+Other data types have corresponding C structures, e.g. struct RArray</div><div class='add'>+for T_ARRAY etc. The VALUE of the type which has the corresponding</div><div class='add'>+structure can be cast to retrieve the pointer to the struct.  The</div><div class='add'>+casting macro will be of the form RXXXX for each data type; for</div><div class='add'>+instance, RARRAY(obj).  See "ruby.h".</div><div class='add'>+</div><div class='add'>+There are some accessing macros for structure members, for example</div><div class='add'>+`RSTRING_LEN(str)' to get the size of the Ruby String object.  The</div><div class='add'>+allocated region can be accessed by `RSTRING_PTR(str)'.  For arrays,</div><div class='add'>+use `RARRAY_LEN(ary)' and `RARRAY_PTR(ary)' respectively.</div><div class='add'>+</div><div class='add'>+Notice: Do not change the value of the structure directly, unless you</div><div class='add'>+are responsible for the result.  This ends up being the cause of</div><div class='add'>+interesting bugs.</div><div class='ctx'> </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'>-È¯À¸¤¹¤ë)¡¥</div><div class='add'>+1.4 Convert C data into VALUE</div><div class='ctx'> </div><div class='del'>-¤½¤ì°Ê³°¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ÏÂÐ±þ¤¹¤ëC¤Î¹½Â¤ÂÎ¤¬¤¢¤ê¤Þ¤¹¡¥ÂÐ±þ¤¹</div><div class='del'>-¤ë¹½Â¤ÂÎ¤Î¤¢¤ëVALUE¤Ï¤½¤Î¤Þ¤Þ¥­¥ã¥¹¥È(·¿ÊÑ´¹)¤¹¤ì¤Ð¹½Â¤ÂÎ¤Î</div><div class='del'>-¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤¹¡¥</div><div class='add'>+To convert C data to Ruby values:</div><div class='ctx'> </div><div class='del'>-¹½Â¤ÂÎ¤Ï¡Östruct RXxxxx¡×¤È¤¤¤¦Ì¾Á°¤Çruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ</div><div class='del'>-¤¹¡¥Îã¤¨¤ÐÊ¸»úÎó¤Ï¡Östruct RString¡×¤Ç¤¹¡¥¼ÂºÝ¤Ë»È¤¦²ÄÇ½À­¤¬</div><div class='del'>-¤¢¤ë¤Î¤ÏÊ¸»úÎó¤ÈÇÛÎó¤¯¤é¤¤¤À¤È»×¤¤¤Þ¤¹¡¥</div><div class='add'>+  * FIXNUM</div><div class='ctx'> </div><div class='del'>-ruby.h¤Ç¤Ï¹½Â¤ÂÎ¤Ø¥­¥ã¥¹¥È¤¹¤ë¥Þ¥¯¥í¤â¡ÖRXXXXX()¡×(Á´ÉôÂçÊ¸</div><div class='del'>-»ú¤Ë¤·¤¿¤â¤Î)¤È¤¤¤¦Ì¾Á°¤ÇÄó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹(Îã: RSTRING())¡¥</div><div class='add'>+    left shift 1 bit, and turn on LSB.</div><div class='ctx'> </div><div class='del'>-Îã¤¨¤Ð¡¤Ê¸»úÎóstr¤ÎÄ¹¤µ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)-&gt;len¡×¤È</div><div class='del'>-¤·¡¤Ê¸»úÎóstr¤òchar*¤È¤·¤ÆÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING(str)-&gt;ptr¡×</div><div class='del'>-¤È¤·¤Þ¤¹¡¥ÇÛÎó¤Î¾ì¹ç¤Ë¤Ï¡¤¤½¤ì¤¾¤ì¡ÖRARRAT(str)-&gt;len¡×¡¤</div><div class='del'>-¡ÖRARRAT(str)-&gt;ptr¡×¤È¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+  * Other pointer values</div><div class='ctx'> </div><div class='del'>-Ruby¤Î¹½Â¤ÂÎ¤òÄ¾ÀÜ¥¢¥¯¥»¥¹¤¹¤ë»þ¤Ëµ¤¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³</div><div class='del'>-¤È¤Ï¡¤ÇÛÎó¤äÊ¸»úÎó¤Î¹½Â¤ÂÎ¤ÎÃæ¿È¤Ï»²¾È¤¹¤ë¤À¤±¤Ç¡¤Ä¾ÀÜÊÑ¹¹¤·</div><div class='del'>-¤Ê¤¤¤³¤È¤Ç¤¹¡¥Ä¾ÀÜÊÑ¹¹¤·¤¿¾ì¹ç¡¤¥ª¥Ö¥¸¥§¥¯¥È¤ÎÆâÍÆ¤ÎÀ°¹çÀ­¤¬</div><div class='del'>-¤È¤ì¤Ê¤¯¤Ê¤Ã¤Æ¡¤»×¤ï¤Ì¥Ð¥°¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+    cast to VALUE.</div><div class='ctx'> </div><div class='del'>-1.4 Convert C data into VALUE</div><div class='add'>+You can determine whether a VALUE is pointer or not by checking its LSB.  </div><div class='ctx'> </div><div class='del'>-VALUE¤Î¼ÂºÝ¤Î¹½Â¤¤Ï</div><div class='add'>+Notice Ruby does not allow arbitrary pointer values to be a VALUE.  They</div><div class='add'>+should be pointers to the structures which Ruby knows about.  The known</div><div class='add'>+structures are defined in &lt;ruby.h&gt;.</div><div class='ctx'> </div><div class='del'>-  * FIXNUM¤Î¾ì¹ç</div><div class='add'>+To convert C numbers to Ruby values, use these macros.</div><div class='ctx'> </div><div class='del'>-    1bit±¦¥·¥Õ¥È¤·¤Æ¡¤LSB¤òÎ©¤Æ¤ë¡¥</div><div class='add'>+  INT2FIX()	for integers within 31bits.</div><div class='add'>+  INT2NUM()	for arbitrary sized integer.</div><div class='ctx'> </div><div class='del'>-  * ¤½¤ÎÂ¾¤Î¥Ý¥¤¥ó¥¿¤Î¾ì¹ç</div><div class='add'>+INT2NUM() converts an integer into a Bignum if it is out of the FIXNUM</div><div class='add'>+range, but is a bit slower.</div><div class='ctx'> </div><div class='del'>-    ¤½¤Î¤Þ¤ÞVALUE¤Ë¥­¥ã¥¹¥È¤¹¤ë¡¥</div><div class='add'>+1.5 Manipulating Ruby data</div><div class='ctx'> </div><div class='del'>-¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¤è¤Ã¤Æ¡¤LSB¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤ÐVALUE¤¬FIXNUM¤«¤É</div><div class='del'>-¤¦¤«¤ï¤«¤ë¤ï¤±¤Ç¤¹(¥Ý¥¤¥ó¥¿¤ÎLSB¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò²¾Äê¤·¤Æ</div><div class='del'>-¤¤¤ë)¡¥</div><div class='add'>+As I already mentioned, it is not recommended to modify an object's</div><div class='add'>+internal structure.  To manipulate objects, use the functions supplied</div><div class='add'>+by the Ruby interpreter. Some (not all) of the useful functions are</div><div class='add'>+listed below:</div><div class='ctx'> </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='add'>+ String functions</div><div class='ctx'> </div><div class='del'>-FIXNUM¤Ë´Ø¤·¤Æ¤ÏÊÑ´¹¥Þ¥¯¥í¤ò·ÐÍ³¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥C¤ÎÀ°¿ô</div><div class='del'>-¤«¤éVALUE¤ËÊÑ´¹¤¹¤ë¥Þ¥¯¥í¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡¥É¬Í×¤Ë±þ¤¸</div><div class='del'>-¤Æ»È¤¤Ê¬¤±¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+  rb_str_new(const char *ptr, long len)</div><div class='ctx'> </div><div class='del'>-  INT2FIX()	¤â¤È¤ÎÀ°¿ô¤¬31bit°ÊÆâ¤Ë¼ý¤Þ¤ë»þ</div><div class='del'>-  INT2NUM()	Ç¤°Õ¤ÎÀ°¿ô¤«¤éVALUE¤Ø</div><div class='add'>+    Creates a new Ruby string.</div><div class='ctx'> </div><div class='del'>-INT2NUM()¤ÏÀ°¿ô¤¬FIXNUM¤ÎÈÏ°Ï¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¤Bignum¤ËÊÑ´¹</div><div class='del'>-¤·¤Æ¤¯¤ì¤Þ¤¹(¤¬¡¤¾¯¤·ÃÙ¤¤)¡¥</div><div class='add'>+  rb_str_new2(const char *ptr)</div><div class='add'>+  rb_str_new_cstr(const char *ptr)</div><div class='ctx'> </div><div class='del'>-1.5 Manipulate Ruby data</div><div class='add'>+    Creates a new Ruby string from a C string.  This is equivalent to</div><div class='add'>+    rb_str_new(ptr, strlen(ptr)).</div><div class='ctx'> </div><div class='del'>-ÀèÄø¤â½Ò¤Ù¤¿ÄÌ¤ê¡¤Ruby¤Î¹½Â¤ÂÎ¤ò¥¢¥¯¥»¥¹¤¹¤ë»þ¤ËÆâÍÆ¤Î¹¹¿·¤ò</div><div class='del'>-¹Ô¤¦¤³¤È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥¤Ç¡¤Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë»þ¤Ë¤Ï</div><div class='del'>-Ruby¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë´Ø¿ô¤òÍÑ¤¤¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+  rb_tainted_str_new(const char *ptr, long len)</div><div class='ctx'> </div><div class='del'>-¤³¤³¤Ç¤Ï¤â¤Ã¤È¤â»È¤ï¤ì¤ë¤Ç¤¢¤í¤¦Ê¸»úÎó¤ÈÇÛÎó¤ÎÀ¸À®/Áàºî¤ò¹Ô</div><div class='del'>-¤¤´Ø¿ô¤ò¤¢¤²¤Þ¤¹(Á´Éô¤Ç¤Ï¤Ê¤¤¤Ç¤¹)¡¥</div><div class='add'>+    Creates a new tainted Ruby string.  Strings from external data</div><div class='add'>+    sources should be tainted.</div><div class='ctx'> </div><div class='del'>- String funtions</div><div class='add'>+  rb_tainted_str_new2(const char *ptr)</div><div class='add'>+  rb_tainted_str_new_cstr(const char *ptr)</div><div class='ctx'> </div><div class='del'>-  str_new(char *ptr, int len)</div><div class='add'>+    Creates a new tainted Ruby string from a C string.</div><div class='ctx'> </div><div class='del'>-    Creates a new Ruby string.</div><div class='add'>+  rb_sprintf(const char *format, ...)</div><div class='add'>+  rb_vsprintf(const char *format, va_list ap)</div><div class='add'>+</div><div class='add'>+    Creates a new Ruby string with printf(3) format.</div><div class='add'>+</div><div class='add'>+  rb_str_cat(VALUE str, const char *ptr, long len)</div><div class='add'>+</div><div class='add'>+    Appends len bytes of data from ptr to the Ruby string.</div><div class='add'>+</div><div class='add'>+  rb_str_cat2(VALUE str, const char* ptr)</div><div class='add'>+</div><div class='add'>+    Appends C string ptr to Ruby string str.  This function is</div><div class='add'>+    equivalent to rb_str_cat(str, ptr, strlen(ptr)).</div><div class='ctx'> </div><div class='del'>-  str_new2(char *ptr)</div><div class='add'>+  rb_str_catf(VALUE str, const char* format, ...)</div><div class='add'>+  rb_str_vcatf(VALUE str, const char* format, va_list ap)</div><div class='ctx'> </div><div class='del'>-    Creates a new Ruby string from C string.  This is equivalent to</div><div class='del'>-    str_new(ptr, strlen(ptr)).</div><div class='add'>+    Appends C string format and successive arguments to Ruby string</div><div class='add'>+    str according to a printf-like format.  These functions are</div><div class='add'>+    equivalent to rb_str_cat2(str, rb_sprintf(format, ...)) and</div><div class='add'>+    rb_str_cat2(str, rb_vsprintf(format, ap)), respectively.</div><div class='ctx'> </div><div class='del'>-  str_cat(VALUE str, char *ptr, int len)</div><div class='add'>+  rb_enc_str_new(const char *ptr, long len, rb_encoding *enc)</div><div class='add'>+  </div><div class='add'>+    Creates a new Ruby string with the specified encoding.</div><div class='add'>+     </div><div class='add'>+  rb_usascii_str_new(const char *ptr, long len)</div><div class='add'>+  rb_usascii_str_new_cstr(const char *ptr)</div><div class='ctx'> </div><div class='del'>-    Appends len bytes data from ptr to the Ruby string.</div><div class='add'>+    Creates a new Ruby string with encoding US-ASCII.</div><div class='add'>+</div><div class='add'>+  rb_str_resize(VALUE str, long len)</div><div class='add'>+</div><div class='add'>+    Resizes Ruby string to len bytes.  If str is not modifiable, this</div><div class='add'>+    function raises an exception.  The length of str must be set in</div><div class='add'>+    advance.  If len is less than the old length the content beyond</div><div class='add'>+    len bytes is discarded, else if len is greater than the old length</div><div class='add'>+    the content beyond the old length bytes will not be preserved but</div><div class='add'>+    will be garbage.  Note that RSTRING_PTR(str) may change by calling</div><div class='add'>+    this function.</div><div class='add'>+</div><div class='add'>+  rb_str_set_len(VALUE str, long len)</div><div class='add'>+</div><div class='add'>+    Sets the length of Ruby string.  If str is not modifiable, this</div><div class='add'>+    function raises an exception.  This function preserves the content</div><div class='add'>+    upto len bytes, regardless RSTRING_LEN(str).  len must not exceed</div><div class='add'>+    the capacity of str.</div><div class='ctx'> </div><div class='ctx'>  Array functions</div><div class='ctx'> </div><div class='del'>-  ary_new()</div><div class='add'>+  rb_ary_new()</div><div class='ctx'> </div><div class='del'>-    Creates an array with no element.</div><div class='add'>+    Creates an array with no elements.</div><div class='ctx'> </div><div class='del'>-  ary_new2(int len)</div><div class='add'>+  rb_ary_new2(long len)</div><div class='ctx'> </div><div class='del'>-    Creates an array with no element, with allocating internal buffer</div><div class='add'>+    Creates an array with no elements, allocating internal buffer</div><div class='ctx'>     for len elements.</div><div class='ctx'> </div><div class='del'>-  ary_new3(int n, ...)</div><div class='add'>+  rb_ary_new3(long n, ...)</div><div class='add'>+</div><div class='add'>+    Creates an n-element array from the arguments.</div><div class='add'>+</div><div class='add'>+  rb_ary_new4(long n, VALUE *elts)</div><div class='add'>+</div><div class='add'>+    Creates an n-element array from a C array.</div><div class='add'>+</div><div class='add'>+  rb_ary_to_ary(VALUE obj)</div><div class='add'>+</div><div class='add'>+    Converts the object into an array.</div><div class='add'>+    Equivalent to Object#to_ary.</div><div class='ctx'> </div><div class='del'>-    Creates an n-elements array from arguments.</div><div class='add'>+ There are many functions to operate an array.</div><div class='add'>+ They may dump core if other types are given.</div><div class='ctx'> </div><div class='del'>-  ary_new4(int n, VALUE *elts)</div><div class='add'>+  rb_ary_aref(argc, VALUE *argv, VALUE ary)</div><div class='ctx'> </div><div class='del'>-    Creates an n-elements array from C array.</div><div class='add'>+    Equivaelent to Array#[].</div><div class='ctx'> </div><div class='del'>-  ary_push(VALUE ary, VALUE val)</div><div class='del'>-  ary_pop(VALUE ary)</div><div class='del'>-  ary_shift(VALUE ary)</div><div class='del'>-  ary_unshift(VALUE ary, VALUE val)</div><div class='del'>-  ary_entry(VALUE ary, int idx)</div><div class='add'>+  rb_ary_entry(VALUE ary, long offset)</div><div class='ctx'> </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 given.</div><div class='add'>+    ary[offset]</div><div class='ctx'> </div><div class='del'>-2. Extend Ruby with C</div><div class='add'>+  rb_ary_subseq(VALUE ary, long beg, long len)</div><div class='ctx'> </div><div class='del'>-¸¶ÍýÅª¤ËRuby¤Ç½ñ¤±¤ë¤³¤È¤ÏC¤Ç¤â½ñ¤±¤Þ¤¹¡¥Ruby¤½¤Î¤â¤Î¤¬C¤Çµ­</div><div class='del'>-½Ò¤µ¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤«¤é¡¤ÅöÁ³¤È¤¤¤¨¤ÐÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¥¤³¤³¤Ç</div><div class='del'>-¤ÏRuby¤Î³ÈÄ¥¤Ë»È¤¦¤³¤È¤¬Â¿¤¤¤À¤í¤¦¤ÈÍ½Â¬¤µ¤ì¤ëµ¡Ç½¤òÃæ¿´¤Ë¾Ò</div><div class='del'>-²ð¤·¤Þ¤¹¡¥</div><div class='add'>+    ary[beg, len]</div><div class='ctx'> </div><div class='del'>-2.1 Add new features to Ruby</div><div class='add'>+  rb_ary_push(VALUE ary, VALUE val)</div><div class='add'>+  rb_ary_pop(VALUE ary)</div><div class='add'>+  rb_ary_shift(VALUE ary)</div><div class='add'>+  rb_ary_unshift(VALUE ary, VALUE val)</div><div class='ctx'> </div><div class='del'>-Ruby¤ÇÄó¶¡¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤¨¤ÐRuby¥¤¥ó¥¿¥×¥ê¥¿¤Ë¿·¤·¤¤µ¡Ç½</div><div class='del'>-¤òÄÉ²Ã¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥Ruby¤Ç¤Ï°Ê²¼¤Îµ¡Ç½¤òÄÉ²Ã¤¹¤ë´Ø¿ô¤¬</div><div class='del'>-Äó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='ctx'> </div><div class='del'>- * ¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë</div><div class='del'>- * ¥á¥½¥Ã¥É¡¤ÆÃ°Û¥á¥½¥Ã¥É¤Ê¤É</div><div class='del'>- * Äê¿ô</div><div class='add'>+2. Extending Ruby with C</div><div class='ctx'> </div><div class='del'>-¤Ç¤Ï½ç¤Ë¾Ò²ð¤·¤Þ¤¹¡¥</div><div class='add'>+2.1 Adding new features to Ruby</div><div class='add'>+</div><div class='add'>+You can add new features (classes, methods, etc.) to the Ruby</div><div class='add'>+interpreter.  Ruby provides APIs for defining the following things:</div><div class='add'>+</div><div class='add'>+ * Classes, Modules</div><div class='add'>+ * Methods, Singleton Methods</div><div class='add'>+ * Constants</div><div class='ctx'> </div><div class='ctx'> 2.1.1 Class/module definition</div><div class='ctx'> </div><div class='del'>-¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+To define a class or module, use the functions below:</div><div class='add'>+</div><div class='add'>+  VALUE rb_define_class(const char *name, VALUE super)</div><div class='add'>+  VALUE rb_define_module(const char *name)</div><div class='ctx'> </div><div class='del'>-  VALUE rb_define_class(char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module(char *name)</div><div class='add'>+These functions return the newly created class or module.  You may</div><div class='add'>+want to save this reference into a variable to use later.</div><div class='ctx'> </div><div class='del'>-¤³¤ì¤é¤Î´Ø¿ô¤Ï¿·¤·¤¯ÄêµÁ¤µ¤ì¤¿¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÊÖ¤·¤Þ¤¹¡¥</div><div class='del'>-¥á¥½¥Ã¥É¤äÄê¿ô¤ÎÄêµÁ¤Ë¤³¤ì¤é¤ÎÃÍ¤¬É¬Í×¤Ê¤Î¤Ç¡¤¤Û¤È¤ó¤É¤Î¾ì¹ç</div><div class='del'>-¤ÏÌá¤êÃÍ¤òÊÑ¿ô¤Ë³ÊÇ¼¤·¤Æ¤ª¤¯É¬Í×¤¬¤¢¤ë¤Ç¤·¤ç¤¦¡¥</div><div class='add'>+To define nested classes or modules, use the functions below:</div><div class='add'>+</div><div class='add'>+  VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class='add'>+  VALUE rb_define_module_under(VALUE outer, const char *name)</div><div class='ctx'> </div><div class='ctx'> 2.1.2 Method/singleton method definition</div><div class='ctx'> </div><div class='del'>-¥á¥½¥Ã¥É¤äÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+To define methods or singleton methods, use these functions:</div><div class='ctx'> </div><div class='del'>-  void rb_define_method(VALUE class, char *name, </div><div class='add'>+  void rb_define_method(VALUE klass, const char *name, </div><div class='ctx'> 		        VALUE (*func)(), int argc)</div><div class='ctx'> </div><div class='del'>-  void rb_define_singleton_method(VALUE object, char *name, </div><div class='del'>-			         VALUE (*func)(), int argc)</div><div class='add'>+  void rb_define_singleton_method(VALUE object, const char *name, </div><div class='add'>+			          VALUE (*func)(), int argc)</div><div class='ctx'> </div><div class='add'>+The `argc' represents the number of the arguments to the C function,</div><div class='add'>+which must be less than 17.  But I doubt you'll need that many.</div><div class='ctx'> </div><div class='del'>-Ç°¤Î¤¿¤áÀâÌÀ¤¹¤ë¤È¡ÖÆÃ°Û¥á¥½¥Ã¥É¡×¤È¤Ï¡¤¤½¤ÎÆÃÄê¤Î¥ª¥Ö¥¸¥§¥¯</div><div class='del'>-¥È¤ËÂÐ¤·¤Æ¤À¤±Í­¸ú¤Ê¥á¥½¥Ã¥É¤Ç¤¹¡¥Ruby¤Ç¤Ï¤è¤¯Smalltalk¤Ë¤ª</div><div class='del'>-¤±¤ë¥¯¥é¥¹¥á¥½¥Ã¥É¤È¤·¤Æ¡¤¥¯¥é¥¹¤ËÂÐ¤¹¤ëÆÃ°Û¥á¥½¥Ã¥É¤¬»È¤ï¤ì</div><div class='del'>-¤Þ¤¹¡¥</div><div class='add'>+If `argc' is negative, it specifies the calling sequence, not number of</div><div class='add'>+the arguments.  </div><div class='ctx'> </div><div class='del'>-¤³¤ì¤é¤Î´Ø¿ô¤Î argc¤È¤¤¤¦°ú¿ô¤ÏC¤Î´Ø¿ô¤ØÅÏ¤µ¤ì¤ë°ú¿ô¤Î¿ô(¤È</div><div class='del'>-·Á¼°)¤ò·è¤á¤Þ¤¹¡¥argc¤¬Àµ¤Î»þ¤Ï´Ø¿ô¤Ë°ú¤­ÅÏ¤¹°ú¿ô¤Î¿ô¤ò°ÕÌ£</div><div class='del'>-¤·¤Þ¤¹¡¥16¸Ä°Ê¾å¤Î°ú¿ô¤Ï»È¤¨¤Þ¤»¤ó(¤¬¡¤Í×¤ê¤Þ¤»¤ó¤è¤Í¡¤¤½¤ó</div><div class='del'>-¤Ê¤Ë)¡¥</div><div class='add'>+If argc is -1, the function will be called as:</div><div class='ctx'> </div><div class='del'>-argc¤¬Éé¤Î»þ¤Ï°ú¿ô¤Î¿ô¤Ç¤Ï¤Ê¤¯¡¤·Á¼°¤ò»ØÄê¤·¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-argc¤¬-1¤Î»þ¤Ï°ú¿ô¤òÇÛÎó¤ËÆþ¤ì¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥argc¤¬-2¤Î»þ¤Ï°ú</div><div class='del'>-¿ô¤ÏRuby¤ÎÇÛÎó¤È¤·¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+  VALUE func(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> </div><div class='del'>-¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï¤â¤¦Æó¤Ä¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ïprivate¥á</div><div class='del'>-¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ç¡¤°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¤Ç¤¹¡¥</div><div class='add'>+where argc is the actual number of arguments, argv is the C array of</div><div class='add'>+the arguments, and obj is the receiver.</div><div class='ctx'> </div><div class='del'>-  void rb_define_private_method(VALUE class, char *name, </div><div class='del'>-			        VALUE (*func)(), int argc)</div><div class='add'>+If argc is -2, the arguments are passed in a Ruby array. The function</div><div class='add'>+will be called like:</div><div class='add'>+</div><div class='add'>+  VALUE func(VALUE obj, VALUE args)</div><div class='add'>+</div><div class='add'>+where obj is the receiver, and args is the Ruby array containing</div><div class='add'>+actual arguments.</div><div class='add'>+</div><div class='add'>+There are some more functions to define methods. One takes an ID</div><div class='add'>+as the name of method to be defined. See 2.2.2 for IDs.</div><div class='add'>+</div><div class='add'>+  void rb_define_method_id(VALUE klass, ID name, </div><div class='add'>+                           VALUE (*func)(ANYARGS), int argc)</div><div class='ctx'> </div><div class='del'>-private¥á¥½¥Ã¥É¤È¤Ï´Ø¿ô·Á¼°¤Ç¤·¤«¸Æ¤Ó½Ð¤¹¤³¤È¤Î½ÐÍè¤Ê¤¤¥á¥½¥Ã</div><div class='del'>-¥É¤Ç¤¹¡¥</div><div class='add'>+There are two functions to define private/protected methods:</div><div class='ctx'> </div><div class='del'>-¤â¤¦¤Ò¤È¤Ä¤Ï¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô</div><div class='del'>-¤È¤Ï¥â¥¸¥å¡¼¥ë¤ÎÆÃ°Û¥á¥½¥Ã¥É¤Ç¤¢¤ê¡¤Æ±»þ¤Ëprivate¥á¥½¥Ã¥É¤Ç</div><div class='del'>-¤â¤¢¤ë¤â¤Î¤Ç¤¹¡¥Îã¤ò¤¢¤²¤ë¤ÈMath¥â¥¸¥å¡¼¥ë¤Îsqrt()¤Ê¤É¤¬¤¢¤²</div><div class='del'>-¤é¤ì¤Þ¤¹¡¥¤³¤Î¥á¥½¥Ã¥É¤Ï</div><div class='add'>+  void rb_define_private_method(VALUE klass, const char *name, </div><div class='add'>+			        VALUE (*func)(), int argc)</div><div class='add'>+  void rb_define_protected_method(VALUE klass, const char *name, </div><div class='add'>+			          VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+At last, rb_define_module_function defines a module functions,</div><div class='add'>+which are private AND singleton methods of the module.</div><div class='add'>+For example, sqrt is the module function defined in Math module.</div><div class='add'>+It can be called in the following way:</div><div class='ctx'> </div><div class='ctx'>   Math.sqrt(4)</div><div class='ctx'> </div><div class='del'>-¤È¤¤¤¦·Á¼°¤Ç¤â</div><div class='add'>+or</div><div class='ctx'> </div><div class='ctx'>   include Math</div><div class='ctx'>   sqrt(4)</div><div class='ctx'> </div><div class='del'>-¤È¤¤¤¦·Á¼°¤Ç¤â»È¤¨¤Þ¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤Î</div><div class='del'>-ÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+To define module functions, use:</div><div class='ctx'> </div><div class='del'>-  void rb_define_module_function(VALUE module, char *name, </div><div class='add'>+  void rb_define_module_function(VALUE module, const char *name, </div><div class='ctx'> 				 VALUE (*func)(), int argc)</div><div class='ctx'> </div><div class='del'>-´Ø¿ôÅª¥á¥½¥Ã¥É(Kernel¥â¥¸¥å¡¼¥ë¤Îprivaet method)¤òÄêµÁ¤¹¤ë¤¿</div><div class='del'>-¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+In addition, function-like methods, which are private methods defined</div><div class='add'>+in the Kernel module, can be defined using:</div><div class='add'>+</div><div class='add'>+  void rb_define_global_function(const char *name, VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+To define an alias for the method,</div><div class='add'>+</div><div class='add'>+  void rb_define_alias(VALUE module, const char* new, const char* old);</div><div class='ctx'> </div><div class='del'>-  void rb_define_global_function(char *name, VALUE (*func)(), int argc)</div><div class='add'>+To define a reader/writer for an attribute,</div><div class='ctx'> </div><div class='add'>+  void rb_define_attr(VALUE klass, const char *name, int read, int write)</div><div class='add'>+</div><div class='add'>+To define and undefine the `allocate' class method,</div><div class='add'>+</div><div class='add'>+  void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));</div><div class='add'>+  void rb_undef_alloc_func(VALUE klass);</div><div class='add'>+</div><div class='add'>+func has to take the klass as the argument and return a newly</div><div class='add'>+allocated instance.  This instance should be as empty as possible,</div><div class='add'>+without any expensive (including external) resources.</div><div class='ctx'> </div><div class='ctx'> 2.1.3 Constant definition</div><div class='ctx'> </div><div class='del'>-³ÈÄ¥¥â¥¸¥å¡¼¥ë¤¬É¬Í×¤ÊÄê¿ô¤Ï¤¢¤é¤«¤¸¤áÄêµÁ¤·¤Æ¤ª¤¤¤¿Êý¤¬ÎÉ¤¤</div><div class='del'>-¤Ç¤·¤ç¤¦¡¥Äê¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤ÏÆó¤Ä¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+We have 2 functions to define constants:</div><div class='ctx'> </div><div class='del'>-  void rb_define_const(VALUE class, char *name, VALUE val)</div><div class='del'>-  void rb_define_global_const(char *name, VALUE val)</div><div class='add'>+  void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='add'>+  void rb_define_global_const(const char *name, VALUE val)</div><div class='ctx'> </div><div class='del'>-Á°¼Ô¤ÏÆÃÄê¤Î¥¯¥é¥¹/¥â¥¸¥å¡¼¥ë¤ËÂ°¤¹¤ëÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¡¤¸å</div><div class='del'>-¼Ô¤Ï¥°¥í¡¼¥Ð¥ë¤ÊÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥</div><div class='add'>+The former is to define a constant under specified class/module.  The</div><div class='add'>+latter is to define a global constant.</div><div class='ctx'> </div><div class='ctx'> 2.2 Use Ruby features from C</div><div class='ctx'> </div><div class='del'>-´û¤Ë¡Ø1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë¡Ù¤Ç°ìÉô¾Ò²ð¤·¤¿¤è¤¦¤Ê´Ø¿ô¤ò</div><div class='del'>-»È¤¨¤Ð¡¤Ruby¤Îµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤ë´Ø¿ô¤òÄ¾ÀÜ¸Æ¤Ó½Ð¤¹¤³¤È¤¬½ÐÍè</div><div class='del'>-¤Þ¤¹¡¥</div><div class='add'>+There are several ways to invoke Ruby's features from C code.</div><div class='add'>+</div><div class='add'>+2.2.1 Evaluate Ruby Programs in a String</div><div class='ctx'> </div><div class='del'>-# ¤³¤Î¤è¤¦¤Ê´Ø¿ô¤Î°ìÍ÷É½¤Ï¤¤¤Þ¤Î¤È¤³¤í¤¢¤ê¤Þ¤»¤ó¡¥¥½¡¼¥¹¤ò¸«</div><div class='del'>-# ¤ë¤·¤«¤Ê¤¤¤Ç¤¹¤Í¡¥</div><div class='add'>+The easiest way to use Ruby's functionality from a C program is to</div><div class='add'>+evaluate the string as Ruby program.  This function will do the job:</div><div class='ctx'> </div><div class='del'>-¤½¤ì°Ê³°¤Ë¤âRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹ÊýË¡¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+  VALUE rb_eval_string(const char *str)</div><div class='ctx'> </div><div class='del'>-2.2.1 Ruby¤Î¥×¥í¥°¥é¥à¤òeval¤¹¤ë</div><div class='add'>+Evaluation is done under the current context, thus current local variables</div><div class='add'>+of the innermost method (which is defined by Ruby) can be accessed.</div><div class='ctx'> </div><div class='del'>-C¤«¤éRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹¤â¤Ã¤È¤â´ÊÃ±¤ÊÊýË¡¤È¤·¤Æ¡¤Ê¸»úÎó¤Ç</div><div class='del'>-Í¿¤¨¤é¤ì¤¿Ruby¤Î¥×¥í¥°¥é¥à¤òÉ¾²Á¤¹¤ë´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+Note that the evaluation can raise an exception. There is a safer </div><div class='add'>+function:</div><div class='ctx'> </div><div class='del'>-  VALUE rb_eval_string(char *str)</div><div class='add'>+  VALUE rb_eval_string_protect(const char *str, int *state)</div><div class='add'>+</div><div class='add'>+It returns nil when an error occur. Moreover, *state is zero if str was</div><div class='add'>+successfully evaluated, or nonzero otherwise.</div><div class='ctx'> </div><div class='del'>-¤³¤ÎÉ¾²Á¤Ï¸½ºß¤Î´Ä¶­¤Ç¹Ô¤ï¤ì¤Þ¤¹¡¥¤Ä¤Þ¤ê¡¤¸½ºß¤Î¥í¡¼¥«¥ëÊÑ¿ô</div><div class='del'>-¤Ê¤É¤ò¼õ¤±·Ñ¤®¤Þ¤¹¡¥</div><div class='ctx'> </div><div class='ctx'> 2.2.2 ID or Symbol</div><div class='ctx'> </div><div class='del'>-C¤«¤éÊ¸»úÎó¤ò·ÐÍ³¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ</div><div class='del'>-¤¹¡¥¤½¤ÎÁ°¤Ë¡¤Ruby¥¤¥ó¥¿¥×¥ê¥¿Æâ¤Ç¥á¥½¥Ã¥É¤äÊÑ¿ôÌ¾¤ò»ØÄê¤¹¤ë</div><div class='del'>-»þ¤Ë»È¤ï¤ì¤Æ¤¤¤ëID¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡¥</div><div class='add'>+You can invoke methods directly, without parsing the string.  First I</div><div class='add'>+need to explain about ID.  ID is the integer number to represent</div><div class='add'>+Ruby's identifiers such as variable names.  The Ruby data type</div><div class='add'>+corresponding to ID is Symbol.  It can be accessed from Ruby in the</div><div class='add'>+form:</div><div class='add'>+</div><div class='add'>+ :Identifier</div><div class='add'>+or</div><div class='add'>+ :"any kind of string"</div><div class='add'>+</div><div class='add'>+You can get the ID value from a string within C code by using</div><div class='add'>+</div><div class='add'>+  rb_intern(const char *name)</div><div class='add'>+</div><div class='add'>+You can retrieve ID from Ruby object (Symbol or String) given as an</div><div class='add'>+argument by using</div><div class='ctx'> </div><div class='del'>-ID¤È¤ÏÊÑ¿ôÌ¾¡¤¥á¥½¥Ã¥ÉÌ¾¤òÉ½¤¹À°¿ô¤Ç¤¹¡¥Ruby¤ÎÃæ¤Ç¤Ï</div><div class='add'>+  rb_to_id(VALUE symbol)</div><div class='ctx'> </div><div class='del'>- :¼±ÊÌ»Ò</div><div class='add'>+You can convert C ID to Ruby Symbol by using</div><div class='ctx'> </div><div class='del'>-¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡¥C¤«¤é¤³¤ÎÀ°¿ô¤òÆÀ¤ë¤¿¤á¤Ë¤Ï´Ø¿ô</div><div class='add'>+  VALUE ID2SYM(ID id)</div><div class='ctx'> </div><div class='del'>-  rb_intern(char *name)</div><div class='add'>+and to convert Ruby Symbol object to ID, use</div><div class='ctx'> </div><div class='del'>-¤ò»È¤¤¤Þ¤¹¡¥¤Þ¤¿°ìÊ¸»ú¤Î±é»»»Ò¤Ï¤½¤ÎÊ¸»ú¥³¡¼¥É¤¬¤½¤Î¤Þ¤Þ¥·¥ó</div><div class='del'>-¥Ü¥ë¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+  ID SYM2ID(VALUE symbol)</div><div class='ctx'> </div><div class='ctx'> 2.2.3 Invoke Ruby method from C</div><div class='ctx'> </div><div class='del'>-C¤«¤éÊ¸»úÎó¤ò·ÐÍ³¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¤Ï°Ê²¼</div><div class='del'>-¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+To invoke methods directly, you can use the function below</div><div class='ctx'> </div><div class='ctx'>   VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)</div><div class='ctx'> </div><div class='del'>-¤³¤Î´Ø¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥Èrecv¤Îmid¤Ç»ØÄê¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð</div><div class='del'>-¤·¤Þ¤¹¡¥</div><div class='add'>+This function invokes a method on the recv, with the method name</div><div class='add'>+specified by the symbol mid.</div><div class='ctx'> </div><div class='del'>-2.2.4 ÊÑ¿ô/Äê¿ô¤ò»²¾È/¹¹¿·¤¹¤ë</div><div class='add'>+2.2.4 Accessing the variables and constants</div><div class='ctx'> </div><div class='del'>-C¤«¤é´Ø¿ô¤ò»È¤Ã¤Æ»²¾È¡¦¹¹¿·¤Ç¤­¤ë¤Î¤Ï¡¤¥¯¥é¥¹Äê¿ô¡¤¥¤¥ó¥¹¥¿</div><div class='del'>-¥ó¥¹ÊÑ¿ô¤Ç¤¹¡¥Âç°èÊÑ¿ô¤Ï°ìÉô¤Î¤â¤Î¤ÏC¤ÎÂç°èÊÑ¿ô¤È¤·¤Æ¥¢¥¯¥»</div><div class='del'>-¥¹¤Ç¤­¤Þ¤¹¡¥¥í¡¼¥«¥ëÊÑ¿ô¤ò»²¾È¤¹¤ëÊýË¡¤Ï¸ø³«¤·¤Æ¤¤¤Þ¤»¤ó¡¥</div><div class='add'>+You can access class variables and instance variables using access</div><div class='add'>+functions.  Also, global variables can be shared between both</div><div class='add'>+environments.  There's no way to access Ruby's local variables.</div><div class='ctx'> </div><div class='del'>-¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ò»²¾È¡¦¹¹¿·¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ</div><div class='del'>-¤ê¤Ç¤¹¡¥</div><div class='add'>+The functions to access/modify instance variables are below:</div><div class='ctx'> </div><div class='ctx'>   VALUE rb_ivar_get(VALUE obj, ID id)</div><div class='ctx'>   VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)</div><div class='ctx'> </div><div class='del'>-id¤Ïrb_intern()¤ÇÆÀ¤é¤ì¤ë¤â¤Î¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+id must be the symbol, which can be retrieved by rb_intern().</div><div class='ctx'> </div><div class='del'>-¥¯¥é¥¹Äê¿ô¤ò»²¾È¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+To access the constants of the class/module:</div><div class='ctx'> </div><div class='ctx'>   VALUE rb_const_get(VALUE obj, ID id)</div><div class='ctx'> </div><div class='del'>-¥¯¥é¥¹Äê¿ô¤ò¿·¤·¤¯ÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡Ø2.1.3 Äê¿ôÄêµÁ¡Ù¤Ç¾Ò²ð¤µ</div><div class='del'>-¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+See 2.1.3 for defining new constant.</div><div class='ctx'> </div><div class='del'>-3. Informatin sharing between Ruby and C</div><div class='add'>+3. Information sharing between Ruby and C</div><div class='ctx'> </div><div class='del'>-C¸À¸ì¤ÈRuby¤Î´Ö¤Ç¾ðÊó¤ò¶¦Í­¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ²òÀâ¤·¤Þ¤¹¡¥</div><div class='add'>+3.1 Ruby constants that C can be accessed from C</div><div class='ctx'> </div><div class='del'>-3.1 Ruby constant that C¤«¤é»²¾È¤Ç¤­¤ëRuby¤ÎÄê¿ô</div><div class='add'>+As stated in section 1.3,</div><div class='add'>+the following Ruby constants can be referred from C.</div><div class='ctx'> </div><div class='del'>-Following Ruby constants can be referred from C.</div><div class='add'>+  Qtrue</div><div class='add'>+  Qfalse</div><div class='ctx'> </div><div class='del'>-  TRUE</div><div class='del'>-  FALSE</div><div class='del'>-</div><div class='del'>-Boolean values.  FALSE is false in the C also (i.e. 0).</div><div class='add'>+Boolean values.  Qfalse is false in C also (i.e. 0).</div><div class='ctx'> </div><div class='ctx'>   Qnil</div><div class='ctx'> </div><div class='hunk'>@@ -387,168 +502,146 @@ Ruby nil in C scope.</div><div class='ctx'> </div><div class='ctx'> 3.2 Global variables shared between C and Ruby</div><div class='ctx'> </div><div class='del'>-C¤ÈRuby¤ÇÂç°èÊÑ¿ô¤ò»È¤Ã¤Æ¾ðÊó¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡¥¶¦Í­¤Ç¤­¤ëÂç°è</div><div class='del'>-ÊÑ¿ô¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¼ïÎà¤¬¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤Ê¤«¤Ç¤â¤Ã¤È¤âÎÉ¤¯»È¤ï</div><div class='del'>-¤ì¤ë¤È»×¤ï¤ì¤ë¤Î¤Ïrb_define_variable()¤Ç¤¹¡¥</div><div class='add'>+Information can be shared between the two environments using shared global</div><div class='add'>+variables.  To define them, you can use functions listed below:</div><div class='ctx'> </div><div class='del'>-  void rb_define_variable(char *name, VALUE *var)</div><div class='add'>+  void rb_define_variable(const char *name, VALUE *var)</div><div class='ctx'> </div><div class='del'>-¤³¤Î´Ø¿ô¤ÏRuby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëÂç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ¤¹¡¥ÊÑ¿ôÌ¾¤¬</div><div class='del'>-`$'¤Ç»Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄÉ²Ã¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤ÎÃÍ¤òÊÑ</div><div class='del'>-¹¹¤¹¤ë¤È¼«Æ°Åª¤ËRuby¤ÎÂÐ±þ¤¹¤ëÊÑ¿ô¤ÎÃÍ¤âÊÑ¤ï¤ê¤Þ¤¹¡¥</div><div class='add'>+This function defines the variable which is shared by both environments.</div><div class='add'>+The value of the global variable pointed to by `var' can be accessed</div><div class='add'>+through Ruby's global variable named `name'.</div><div class='ctx'> </div><div class='del'>-¤Þ¤¿RubyÂ¦¤«¤é¤Ï¹¹¿·¤Ç¤­¤Ê¤¤ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡¥¤³¤Îread only¤Î</div><div class='del'>-ÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ÇÄêµÁ¤·¤Þ¤¹¡¥</div><div class='add'>+You can define read-only (from Ruby, of course) variables using the</div><div class='add'>+function below.</div><div class='ctx'> </div><div class='del'>-  void rb_define_readonly_variable(char *name, VALUE *var)</div><div class='add'>+  void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='ctx'> </div><div class='del'>-¤³¤ì¤éÊÑ¿ô¤ÎÂ¾¤Ëhook¤ò¤Ä¤±¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤Ç¤­¤Þ¤¹¡¥hookÉÕ¤­</div><div class='del'>-¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤òÍÑ¤¤¤ÆÄêµÁ¤·¤Þ¤¹¡¥hookÉÕ¤­Âç°èÊÑ¿ô¤Î</div><div class='del'>-ÃÍ¤Î»²¾È¤äÀßÄê¤Ïhook¤Ç¹Ô¤¦É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+You can defined hooked variables.  The accessor functions (getter and</div><div class='add'>+setter) are called on access to the hooked variables.</div><div class='ctx'> </div><div class='del'>-  void rb_define_hooked_variable(char *name, VALUE *var,</div><div class='del'>-				 VALUE (*getter)(), VALUE (*setter)())</div><div class='add'>+  void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='add'>+				 VALUE (*getter)(), void (*setter)())</div><div class='ctx'> </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='add'>+If you need to supply either setter or getter, just supply 0 for the</div><div class='add'>+hook you don't need.  If both hooks are 0, rb_define_hooked_variable()</div><div class='add'>+works just like rb_define_variable().</div><div class='ctx'> </div><div class='del'>-# getter¤âsetter¤â0¤Ê¤é¤Ðrb_define_variable()¤ÈÆ±¤¸¤Ë¤Ê¤ë¡¥</div><div class='add'>+The prototypes of the getter and setter functions are as follows:</div><div class='ctx'> </div><div class='del'>-¤½¤ì¤«¤é¡¤C¤Î´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRuby¤ÎÂç°èÊÑ¿ô¤òÄêµÁ¤¹¤ë</div><div class='del'>-´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+  VALUE (*getter)(ID id, VALUE *var);</div><div class='add'>+  void (*setter)(VALUE val, ID id, VALUE *var);</div><div class='ctx'> </div><div class='del'>-  void rb_define_virtual_variable(char *name,</div><div class='del'>-				  VALUE (*getter)(), VALUE (*setter)())</div><div class='ctx'> </div><div class='del'>-¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿Ruby¤ÎÂç°èÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï</div><div class='del'>-getter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤Þ¤¹¡¥</div><div class='add'>+Also you can define a Ruby global variable without a corresponding C</div><div class='add'>+variable.  The value of the variable will be set/get only by hooks.</div><div class='ctx'> </div><div class='del'>-The prototypes of the getter and setter functions are as following:</div><div class='add'>+  void rb_define_virtual_variable(const char *name,</div><div class='add'>+				  VALUE (*getter)(), void (*setter)())</div><div class='ctx'> </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='add'>+The prototypes of the getter and setter functions are as follows:</div><div class='ctx'> </div><div class='del'>-3.3 Encapsulate C data into Ruby object</div><div class='add'>+  VALUE (*getter)(ID id);</div><div class='add'>+  void (*setter)(VALUE val, ID id);</div><div class='ctx'> </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='ctx'> </div><div class='del'>-Data¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Æ¹½Â¤ÂÎ¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥«¥×¥»¥ë</div><div class='del'>-²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+3.3 Encapsulate C data into a Ruby object</div><div class='ctx'> </div><div class='del'>-  Data_Wrap_Struct(class,mark,free,ptr)</div><div class='add'>+To wrap and objectify a C pointer as a Ruby object (so called</div><div class='add'>+DATA), use Data_Wrap_Struct().</div><div class='ctx'> </div><div class='del'>-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='add'>+  Data_Wrap_Struct(klass, mark, free, ptr)</div><div class='ctx'> </div><div class='del'>-class¤Ï¤³¤ÎData¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤¹¡¥ptr¤Ï¥«¥×¥»¥ë²½¤¹¤ë</div><div class='del'>-C¤Î¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡¥mark¤Ï¤³¤Î¹½Â¤ÂÎ¤¬Ruby¤Î¥ª¥Ö¥¸¥§</div><div class='del'>-¥¯¥È¤Ø¤Î»²¾È¤¬¤¢¤ë»þ¤Ë»È¤¦´Ø¿ô¤Ç¤¹¡¥¤½¤Î¤è¤¦¤Ê»²¾È¤ò´Þ¤Þ¤Ê¤¤</div><div class='del'>-»þ¤Ë¤Ï0¤ò»ØÄê¤·¤Þ¤¹¡¥</div><div class='add'>+Data_Wrap_Struct() returns a created DATA object.  The klass argument</div><div class='add'>+is the class for the DATA object.  The mark argument is the function</div><div class='add'>+to mark Ruby objects pointed by this data.  The free argument is the</div><div class='add'>+function to free the pointer allocation.  If this is -1, the pointer</div><div class='add'>+will be just freed.  The functions mark and free will be called from</div><div class='add'>+garbage collector.</div><div class='ctx'> </div><div class='del'>-# ¤½¤Î¤è¤¦¤Ê»²¾È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥</div><div class='add'>+These mark / free functions are invoked during GC execution.  No</div><div class='add'>+object allocations are allowed during it, so do not allocate ruby</div><div class='add'>+objects inside them.</div><div class='ctx'> </div><div class='del'>-free¤Ï¤³¤Î¹½Â¤ÂÎ¤¬¤â¤¦ÉÔÍ×¤Ë¤Ê¤Ã¤¿»þ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ç¤¹¡¥¤³¤Î</div><div class='del'>-´Ø¿ô¤¬¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤«¤é¸Æ¤Ð¤ì¤Þ¤¹¡¥</div><div class='add'>+You can allocate and wrap the structure in one step.</div><div class='ctx'> </div><div class='del'>-C¤Î¹½Â¤ÂÎ¤Î³äÅö¤ÈData¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤òÆ±»þ¤Ë¹Ô¤¦¥Þ¥¯¥í¤È</div><div class='del'>-¤·¤Æ°Ê²¼¤Î¤â¤Î¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+  Data_Make_Struct(klass, type, mark, free, sval)</div><div class='ctx'> </div><div class='del'>-  Data_Make_Struct(class, type, mark, free, sval)</div><div class='add'>+This macro returns an allocated Data object, wrapping the pointer to</div><div class='add'>+the structure, which is also allocated.  This macro works like:</div><div class='ctx'> </div><div class='del'>-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='add'>+  (sval = ALLOC(type), Data_Wrap_Struct(klass, mark, free, sval))</div><div class='ctx'> </div><div class='del'>-class, mark, free¤ÏData_Wrap_Struct¤ÈÆ±¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡¥type</div><div class='del'>-¤Ï³ä¤êÅö¤Æ¤ëC¹½Â¤ÂÎ¤Î·¿¤Ç¤¹¡¥³ä¤êÅö¤Æ¤é¤ì¤¿¹½Â¤ÂÎ¤ÏÊÑ¿ôsval</div><div class='del'>-¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Î·¿¤Ï (type*) ¤Ç¤¢¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+Arguments klass, mark, and free work like their counterparts in</div><div class='add'>+Data_Wrap_Struct().  A pointer to the allocated structure will be</div><div class='add'>+assigned to sval, which should be a pointer of the type specified.</div><div class='ctx'> </div><div class='del'>-Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤Î¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤òÍÑ¤¤</div><div class='del'>-¤Þ¤¹¡¥</div><div class='add'>+To retrieve the C pointer from the Data object, use the macro</div><div class='add'>+Data_Get_Struct().</div><div class='ctx'> </div><div class='ctx'>   Data_Get_Struct(obj, type, sval)</div><div class='ctx'> </div><div class='del'>-C¤Î¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ôsval¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+A pointer to the structure will be assigned to the variable sval.</div><div class='ctx'> </div><div class='del'>-¤³¤ì¤é¤ÎData¤Î»È¤¤Êý¤Ï¤Á¤ç¤Ã¤ÈÊ¬¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¤¸å¤ÇÀâÌÀ¤¹¤ë</div><div class='del'>-ÎãÂê¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+See the example below for details. </div><div class='ctx'> </div><div class='del'>-4¡¥Example - Create dbm module</div><div class='add'>+4. Example - Creating dbm extension</div><div class='ctx'> </div><div class='del'>-¤³¤³¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤È¤ê¤¢¤¨¤º³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ïºî¤ì¤ë¤Ï¤º¤Ç¤¹¡¥</div><div class='del'>-Ruby¤Îext¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëdbm¥â¥¸¥å¡¼¥ë¤òÎã¤Ë</div><div class='del'>-¤·¤ÆÃÊ³¬Åª¤ËÀâÌÀ¤·¤Þ¤¹¡¥</div><div class='add'>+OK, here's the example of making an extension library.  This is the</div><div class='add'>+extension to access DBMs.  The full source is included in the ext/</div><div class='add'>+directory in the Ruby's source tree.</div><div class='ctx'> </div><div class='ctx'> (1) make the directory</div><div class='ctx'> </div><div class='ctx'>   % mkdir ext/dbm</div><div class='ctx'> </div><div class='del'>-Ruby¤òÅ¸³«¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¡¤ext¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë³ÈÄ¥¥â</div><div class='del'>-¥¸¥å¡¼¥ëÍÑ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ê¤Þ¤¹¡¥Ì¾Á°¤ÏÅ¬Åö¤ËÁª¤ó¤Ç¹½¤¤¤Þ</div><div class='del'>-¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-(2) create MANIFEST file</div><div class='del'>-</div><div class='del'>-  % cd ext/dbm</div><div class='del'>-  % touch MANIFEST</div><div class='add'>+Make a directory for the extension library under ext directory.</div><div class='ctx'> </div><div class='del'>-³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë¤ÏMANIFEST¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬</div><div class='del'>-É¬Í×¤Ê¤Î¤Ç¡¤¤È¤ê¤¢¤¨¤º¶õ¤Î¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤ª¤­¤Þ¤¹¡¥¸å¤Ç¤³¤Î</div><div class='del'>-¥Õ¥¡¥¤¥ë¤Ë¤ÏÉ¬Í×¤Ê¥Õ¥¡¥¤¥ë°ìÍ÷¤¬Æþ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+(2) design the library</div><div class='ctx'> </div><div class='del'>-MANIFEST¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ï¡¤make¤Î»þ¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤¬³ÈÄ¥¥â¥¸¥å¡¼</div><div class='del'>-¥ë¤ò´Þ¤ó¤Ç¤¤¤ë¤«¤É¤¦¤«È½Äê¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+You need to design the library features, before making it.</div><div class='ctx'> </div><div class='del'>-(3) design the library</div><div class='add'>+(3) write C code.</div><div class='ctx'> </div><div class='del'>-¤Þ¤¢¡¤ÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¤¤É¤¦¤¤¤¦µ¡Ç½¤ò¼Â¸½¤¹¤ë¤«¤É¤¦¤«¤Þ¤ºÀß</div><div class='del'>-·×¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¤É¤ó¤Ê¥¯¥é¥¹¤ò¤Ä¤¯¤ë¤«¡¤¤½¤Î¥¯¥é¥¹¤Ë¤Ï</div><div class='del'>-¤É¤ó¤Ê¥á¥½¥Ã¥É¤¬¤¢¤ë¤«¡¤¥¯¥é¥¹¤¬Äó¶¡¤¹¤ëÄê¿ô¤Ê¤É¤Ë¤Ä¤¤¤ÆÀß·×</div><div class='del'>-¤·¤Þ¤¹¡¥dbm¥¯¥é¥¹¤Ë¤Ä¤¤¤Æ¤Ïext/dbm.doc¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+You need to write C code for your extension library.  If your library</div><div class='add'>+has only one source file, choosing ``LIBRARY.c'' as a file name is</div><div class='add'>+preferred.  On the other hand, in case your library has multiple source</div><div class='add'>+files, avoid choosing ``LIBRARY.c'' for a file name.  It may conflict</div><div class='add'>+with an intermediate file ``LIBRARY.o'' on some platforms.</div><div class='add'>+Note that some functions in mkmf library described below generate</div><div class='add'>+a file ``conftest.c'' for checking with compilation.  You shouldn't</div><div class='add'>+choose ``conftest.c'' as a name of a source file.</div><div class='ctx'> </div><div class='del'>-(4) write C code.</div><div class='add'>+Ruby will execute the initializing function named ``Init_LIBRARY'' in</div><div class='add'>+the library.  For example, ``Init_dbm()'' will be executed when loading</div><div class='add'>+the library.</div><div class='ctx'> </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='add'>+Here's the example of an initializing function.</div><div class='ctx'> </div><div class='ctx'> --</div><div class='del'>-Init_dbm()</div><div class='add'>+void</div><div class='add'>+Init_dbm(void)</div><div class='ctx'> {</div><div class='del'>-    /* DBM¥¯¥é¥¹¤òÄêµÁ¤¹¤ë */</div><div class='del'>-    cDBM = rb_define_class("DBM", cObject);</div><div class='del'>-    /* DBM¤ÏEnumerate¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë */</div><div class='del'>-    rb_include_module(cDBM, mEnumerable);</div><div class='add'>+    /* define DBM class */</div><div class='add'>+    cDBM = rb_define_class("DBM", rb_cObject);</div><div class='add'>+    /* DBM includes Enumerate module */</div><div class='add'>+    rb_include_module(cDBM, rb_mEnumerable);</div><div class='ctx'> </div><div class='del'>-    /* DBM¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥Éopen(): °ú¿ô¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë */</div><div class='add'>+    /* DBM has class method open(): arguments are received as C array */</div><div class='ctx'>     rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);</div><div class='ctx'> </div><div class='del'>-    /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥Éclose(): °ú¿ô¤Ï¤Ê¤· */</div><div class='add'>+    /* DBM instance method close(): no args */</div><div class='ctx'>     rb_define_method(cDBM, "close", fdbm_close, 0);</div><div class='del'>-    /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥É[]: °ú¿ô¤Ï1¸Ä */</div><div class='add'>+    /* DBM instance method []: 1 argument */</div><div class='ctx'>     rb_define_method(cDBM, "[]", fdbm_fetch, 1);</div><div class='ctx'> 		:</div><div class='ctx'> </div><div class='del'>-    /* DBM¥Ç¡¼¥¿¤ò³ÊÇ¼¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ôÌ¾¤Î¤¿¤á¤ÎID */</div><div class='add'>+    /* ID for a instance variable to store DBM data */</div><div class='ctx'>     id_dbm = rb_intern("dbm");</div><div class='ctx'> }</div><div class='ctx'> --</div><div class='ctx'> </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='add'>+The dbm extension wraps the dbm struct in the C environment using </div><div class='add'>+Data_Make_Struct.</div><div class='ctx'> </div><div class='ctx'> --</div><div class='ctx'> struct dbmdata {</div><div class='hunk'>@@ -557,15 +650,14 @@ struct dbmdata {</div><div class='ctx'> };</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-obj = Data_Make_Struct(class,struct dbmdata,0,free_dbm,dbmp);</div><div class='add'>+obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);</div><div class='ctx'> --</div><div class='ctx'> </div><div class='del'>-¤³¤³¤Ç¤Ïdbmstruct¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òData¤Ë¥«¥×¥»¥ë²½¤·¤Æ¤¤</div><div class='del'>-¤Þ¤¹¡¥DBM*¤òÄ¾ÀÜ¥«¥×¥»¥ë²½¤·¤Ê¤¤¤Î¤Ïclose()¤·¤¿»þ¤Î½èÍý¤ò¹Í</div><div class='del'>-¤¨¤Æ¤Î¤³¤È¤Ç¤¹¡¥</div><div class='add'>+This code wraps the dbmdata structure into a Ruby object.  We avoid</div><div class='add'>+wrapping DBM* directly, because we want to cache size information.</div><div class='ctx'> </div><div class='del'>-Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤édbmstruct¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á</div><div class='del'>-¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+To retrieve the dbmdata structure from a Ruby object, we define the</div><div class='add'>+following macro:</div><div class='ctx'> </div><div class='ctx'> --</div><div class='ctx'> #define GetDBM(obj, dbmp) {\</div><div class='hunk'>@@ -574,38 +666,29 @@ Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤édbmstruct¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á</div><div class='ctx'> }</div><div class='ctx'> --</div><div class='ctx'> </div><div class='del'>-¤Á¤ç¤Ã¤ÈÊ£»¨¤Ê¥Þ¥¯¥í¤Ç¤¹¤¬¡¤Í×¤¹¤ë¤Ëdbmdata¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿</div><div class='del'>-¤Î¼è¤ê½Ð¤·¤È¡¤close¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¤Þ¤È¤á¤Æ¤¤</div><div class='del'>-¤ë¤À¤±¤Ç¤¹¡¥</div><div class='add'>+This sort of complicated macro does the retrieving and close checking for</div><div class='add'>+the DBM.</div><div class='ctx'> </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='add'>+There are three kinds of way to receive method arguments.  First,</div><div class='add'>+methods with a fixed number of arguments receive arguments like this:</div><div class='ctx'> </div><div class='ctx'> --</div><div class='ctx'> static VALUE</div><div class='del'>-fdbm_delete(obj, keystr)</div><div class='del'>-    VALUE obj, keystr;</div><div class='add'>+fdbm_delete(VALUE obj, VALUE keystr)</div><div class='ctx'> {</div><div class='ctx'> 	:</div><div class='ctx'> }</div><div class='ctx'> --</div><div class='ctx'> </div><div class='del'>-°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¥¿¥¤¥×¤ÏÂè1°ú¿ô¤¬self¡¤Âè2°ú¿ô°Ê¹ß¤¬¥á¥½¥Ã¥É</div><div class='del'>-¤Î°ú¿ô¤È¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+The first argument of the C function is the self, the rest are the</div><div class='add'>+arguments to the method.</div><div class='ctx'> </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='add'>+Second, methods with an arbitrary number of arguments receive</div><div class='add'>+arguments like this:</div><div class='ctx'> </div><div class='ctx'> --</div><div class='ctx'> static VALUE</div><div class='del'>-fdbm_s_open(argc, argv, class)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE class;</div><div class='add'>+fdbm_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='ctx'> {</div><div class='ctx'> 	:</div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;file, &amp;vmode) == 1) {</div><div class='hunk'>@@ -615,176 +698,243 @@ fdbm_s_open(argc, argv, class)</div><div class='ctx'> }</div><div class='ctx'> --</div><div class='ctx'> </div><div class='del'>-¤³¤Î¥¿¥¤¥×¤Î´Ø¿ô¤ÏÂè1°ú¿ô¤¬Í¿¤¨¤é¤ì¤¿°ú¿ô¤Î¿ô¡¤Âè2°ú¿ô¤¬Í¿¤¨</div><div class='del'>-¤é¤ì¤¿°ú¿ô¤ÎÆþ¤Ã¤Æ¤¤¤ëÇÛÎó¤Ë¤Ê¤ê¤Þ¤¹¡¥self¤ÏÂè3°ú¿ô¤È¤·¤ÆÍ¿</div><div class='del'>-¤¨¤é¤ì¤Þ¤¹¡¥</div><div class='add'>+The first argument is the number of method arguments, the second</div><div class='add'>+argument is the C array of the method arguments, and the third</div><div class='add'>+argument is the receiver of the method.</div><div class='ctx'> </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='add'>+You can use the function rb_scan_args() to check and retrieve the</div><div class='add'>+arguments.  The third argument is a string that specifies how to</div><div class='add'>+capture method arguments and assign them to the following VALUE</div><div class='add'>+references.</div><div class='ctx'> </div><div class='del'>-Ruby¤ÎÇÛÎó¤Ç°ú¿ô¤ò¼õ¤±¼è¤ë¤â¤Î¤Ïindexes¤¬¤¢¤ê¤Þ¤¹¡¥¼ÂÁõ¤Ï¤³</div><div class='del'>-¤¦¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+The following is an example of a method that takes arguments by Ruby's</div><div class='add'>+array:</div><div class='ctx'> </div><div class='ctx'> --</div><div class='ctx'> static VALUE</div><div class='del'>-fdbm_indexes(obj, args)</div><div class='del'>-    VALUE obj;</div><div class='del'>-    struct RArray *args;</div><div class='add'>+thread_initialize(VALUE thread, VALUE args)</div><div class='ctx'> {</div><div class='ctx'> 	:</div><div class='ctx'> }</div><div class='ctx'> --</div><div class='ctx'> </div><div class='del'>-Âè1°ú¿ô¤Ïself¡¤Âè2°ú¿ô¤ÏRuby¤ÎÇÛÎó¤Ç¤¹¡¥¤³¤³¤Ç¤Ï¥­¥ã¥¹¥È¤ò¸º</div><div class='del'>-¤é¤¹¤¿¤á struct RArray* ¤Ç¼õ¤±¤Æ¤¤¤Þ¤¹¤¬¡¤VALUE¤Ç¤âÆ±¤¸¤³¤È</div><div class='del'>-¤Ç¤¹¡¥</div><div class='add'>+The first argument is the receiver, the second one is the Ruby array</div><div class='add'>+which contains the arguments to the method.</div><div class='ctx'> </div><div class='del'>-** Ãí°Õ»ö¹à</div><div class='add'>+** Notice</div><div class='ctx'> </div><div class='del'>-Ruby¤È¶¦Í­¤Ï¤·¤Ê¤¤¤¬Ruby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊÇ¼¤¹¤ë²ÄÇ½À­¤Î¤¢¤ë</div><div class='del'>-C¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤ÆRuby¥¤¥ó¥¿¥×¥ê¥¿¤ËÊÑ¿ô¤ÎÂ¸ºß</div><div class='del'>-¤ò¶µ¤¨¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤ÈGC¤Ç¥È¥é¥Ö¥ë¤òµ¯¤³¤·¤Þ¤¹¡¥</div><div class='add'>+GC should know about global variables which refer to Ruby's objects, but</div><div class='add'>+are not exported to the Ruby world.  You need to protect them by</div><div class='ctx'> </div><div class='ctx'>   void rb_global_variable(VALUE *var)</div><div class='ctx'> </div><div class='del'>-(5) prepare extconf.rb</div><div class='add'>+(4) prepare extconf.rb</div><div class='add'>+</div><div class='add'>+If the file named extconf.rb exists, it will be executed to generate</div><div class='add'>+Makefile.</div><div class='add'>+</div><div class='add'>+extconf.rb is the file for checking compilation conditions etc.  You</div><div class='add'>+need to put</div><div class='add'>+</div><div class='add'>+  require 'mkmf'</div><div class='add'>+</div><div class='add'>+at the top of the file.  You can use the functions below to check</div><div class='add'>+various conditions.</div><div class='add'>+</div><div class='add'>+  have_library(lib, func): check whether library containing function exists.</div><div class='add'>+  have_func(func, header): check whether function exists</div><div class='add'>+  have_header(header): check whether header file exists</div><div class='add'>+  create_makefile(target): generate Makefile</div><div class='ctx'> </div><div class='del'>-¤â¤·¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡Öextconf.rb¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¤</div><div class='del'>-make»þ¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡¥¤Ê¤±¤ì¤ÐÅ¬Åö¤ËMakefile¤¬À¸À®¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+The value of the variables below will affect the Makefile.</div><div class='ctx'> </div><div class='del'>-extconf.rb¤Ï¥â¥¸¥å¡¼¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤ËÉ¬Í×¤Ê¾ò·ï¤Î¥Á¥§¥Ã¥¯¤Ê¤É</div><div class='del'>-¤ò¹Ô¤¦¤³¤È¤¬ÌÜÅª¤Ç¤¹¡¥extconf.rb¤ÎÃæ¤Ç¤Ï°Ê²¼¤ÎRuby´Ø¿ô¤ò»È¤¦</div><div class='del'>-¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥</div><div class='add'>+  $CFLAGS: included in CFLAGS make variable (such as -O)</div><div class='add'>+  $CPPFLAGS: included in CPPFLAGS make variable (such as -I, -D)</div><div class='add'>+  $LDFLAGS: included in LDFLAGS make variable (such as -L)</div><div class='add'>+  $objs: list of object file names</div><div class='ctx'> </div><div class='del'>-  have_library(lib, func): ¥é¥¤¥Ö¥é¥ê¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='del'>-  have_func(func): ´Ø¿ô¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='del'>-  have_header(header): ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='del'>-  create_makefile(target): Makefile¤ÎÀ¸À®</div><div class='add'>+Normally, the object files list is automatically generated by searching</div><div class='add'>+source files, but you must define them explicitly if any sources will</div><div class='add'>+be generated while building.</div><div class='ctx'> </div><div class='del'>-°Ê²¼¤ÎÊÑ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥</div><div class='add'>+If a compilation condition is not fulfilled, you should not call</div><div class='add'>+``create_makefile''.  The Makefile will not be generated, compilation will</div><div class='add'>+not be done.</div><div class='ctx'> </div><div class='del'>-  $CFLAGS: ¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-I¤Ê¤É)</div><div class='del'>-  $LDFLAGS: ¥ê¥ó¥¯»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-L¤Ê¤É)</div><div class='add'>+(5) prepare depend (optional)</div><div class='ctx'> </div><div class='del'>-¥â¥¸¥å¡¼¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ò·ï¤¬Â·¤ï¤Ê¤º¡¤¤½¤Î¥â¥¸¥å¡¼¥ë¤Ï¥³</div><div class='del'>-¥ó¥Ñ¥¤¥ë¤·¤Ê¤¤»þ¤Ë¤Ïcreate_makefile¤ò¸Æ¤Ð¤Ê¤±¤ì¤ÐMakefile¤Ï</div><div class='del'>-À¸À®¤µ¤ì¤º¡¤¥³¥ó¥Ñ¥¤¥ë¤â¹Ô¤ï¤ì¤Þ¤»¤ó¡¥</div><div class='add'>+If the file named depend exists, Makefile will include that file to</div><div class='add'>+check dependencies.  You can make this file by invoking</div><div class='ctx'> </div><div class='del'>-(6) prepare depend (optional)</div><div class='add'>+  % gcc -MM *.c &gt; depend</div><div class='ctx'> </div><div class='del'>-¤â¤·¡¤¥Ç¥£¥ì¥¯¥È¥ê¤Ëdepend¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¤</div><div class='del'>-Makefile¤¬°ÍÂ¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤ì¤Þ¤¹¡¥</div><div class='add'>+It's harmless.  Prepare it.</div><div class='ctx'> </div><div class='del'>- % gcc -MM *.c &gt; depend</div><div class='add'>+(6) generate Makefile</div><div class='ctx'> </div><div class='del'>-¤Ê¤É¤Çºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤¢¤Ã¤ÆÂ»¤ÏÌµ¤¤¤Ç¤·¤ç¤¦¡¥</div><div class='add'>+Try generating the Makefile by:</div><div class='ctx'> </div><div class='del'>-(7) MANIFEST¥Õ¥¡¥¤¥ë¤Ë¥Õ¥¡¥¤¥ëÌ¾¤òÆþ¤ì¤ë</div><div class='add'>+  ruby extconf.rb</div><div class='ctx'> </div><div class='del'>-  % ls &gt; MANIFEST</div><div class='del'>-  % vi MANIFEST</div><div class='add'>+If the library should be installed under vendor_ruby directory</div><div class='add'>+instead of site_ruby directory, use --vendor option as follows.</div><div class='ctx'> </div><div class='del'>-*.o, *~¤Ê¤ÉÉÔÉ¬Í×¤Ê¥Õ¥¡¥¤¥ë°Ê³°¤ÏMANIFEST¤ËÄÉ²Ã¤·¤Æ¤ª¤­¤Þ¤¹¡¥</div><div class='del'>-make»þ¤Ë¤ÏMANIFEST¤ÎÆâÍÆ¤Ï»²¾È¤·¤Þ¤»¤ó¤Î¤Ç¡¤¶õ¤Î¤Þ¤Þ¤Ç¤âÌäÂê</div><div class='del'>-¤Ïµ¯¤­¤Þ¤»¤ó¤¬¡¤¥Ñ¥Ã¥±¡¼¥¸¥ó¥°¤Î»þ¤Ë»²¾È¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤È¡¤</div><div class='del'>-É¬Í×¤Ê¥Õ¥¡¥¤¥ë¤ò¶èÊÌ¤Ç¤­¤ë¤Î¤Ç¡¤ÍÑ°Õ¤·¤Æ¤ª¤¤¤¿Êý¤¬ÎÉ¤¤¤Ç¤·¤ç</div><div class='del'>-¤¦¡¥</div><div class='add'>+  ruby extconf.rb --vendor</div><div class='ctx'> </div><div class='del'>-(8) make</div><div class='add'>+You don't need this step if you put the extension library under the ext</div><div class='add'>+directory of the ruby source tree.  In that case, compilation of the</div><div class='add'>+interpreter will do this step for you.</div><div class='ctx'> </div><div class='del'>-Ruby¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Çmake¤ò¼Â¹Ô¤¹¤ë¤ÈMakefile¤òÀ¸À®¤«¤émake¡¤</div><div class='del'>-É¬Í×¤Ë¤è¤Ã¤Æ¤Ï¤½¤Î¥â¥¸¥å¡¼¥ë¤ÎRuby¤Ø¤Î¥ê¥ó¥¯¤Þ¤Ç¼«Æ°Åª¤Ë¼Â¹Ô</div><div class='del'>-¤·¤Æ¤¯¤ì¤Þ¤¹¡¥extconf.rb¤ò½ñ¤­´¹¤¨¤ë¤Ê¤É¤·¤ÆMakefile¤ÎºÆÀ¸À®</div><div class='del'>-¤¬É¬Í×¤Ê»þ¤Ï¤Þ¤¿Ruby¥Ç¥£¥ì¥¯¥È¥ê¤Çmake¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+(7) make</div><div class='ctx'> </div><div class='del'>-(9) debug</div><div class='add'>+Type</div><div class='ctx'> </div><div class='del'>-You may need to debug the module.  The modules can be linked </div><div class='del'>-statically by adding directory name in the ext/Setup file,</div><div class='del'>-so that you can inspect the module by the debugger.</div><div class='add'>+  make</div><div class='ctx'> </div><div class='del'>-(10) done, now you have the extension module</div><div class='add'>+to compile your extension.  You don't need this step either if you have</div><div class='add'>+put the extension library under the ext directory of the ruby source tree.</div><div class='ctx'> </div><div class='del'>-¸å¤Ï¤³¤Ã¤½¤ê»È¤¦¤Ê¤ê¡¤¹­¤¯¸ø³«¤¹¤ë¤Ê¤ê¡¤Çä¤ë¤Ê¤ê¡¤¤´¼«Í³¤Ë¤ª</div><div class='del'>-»È¤¤¤¯¤À¤µ¤¤¡¥Ruby¤Îºî¼Ô¤Ï³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ë´Ø¤·¤Æ°ìÀÚ¤Î¸¢Íø¤ò</div><div class='del'>-¼çÄ¥¤·¤Þ¤»¤ó¡¥</div><div class='add'>+(8) debug</div><div class='ctx'> </div><div class='del'>-Appendix A. Ruby¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÊ¬Îà</div><div class='add'>+You may need to rb_debug the extension.  Extensions can be linked</div><div class='add'>+statically by adding the directory name in the ext/Setup file so that</div><div class='add'>+you can inspect the extension with the debugger.</div><div class='ctx'> </div><div class='del'>-Ruby¤Î¥½¡¼¥¹¤Ï¤¤¤¯¤Ä¤«¤ËÊ¬Îà¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤³¤Î¤¦¤Á¥¯¥é</div><div class='del'>-¥¹¥é¥¤¥Ö¥é¥ê¤ÎÉôÊ¬¤Ï´ðËÜÅª¤Ë³ÈÄ¥¥â¥¸¥å¡¼¥ë¤ÈÆ±¤¸ºî¤êÊý¤Ë¤Ê¤Ã</div><div class='del'>-¤Æ¤¤¤Þ¤¹¡¥¤³¤ì¤é¤Î¥½¡¼¥¹¤Ïº£¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤Û¤È¤ó¤ÉÍý²ò¤Ç¤­¤ë¤È</div><div class='del'>-»×¤¤¤Þ¤¹¡¥</div><div class='add'>+(9) done, now you have the extension library</div><div class='add'>+</div><div class='add'>+You can do anything you want with your library.  The author of Ruby</div><div class='add'>+will not claim any restrictions on your code depending on the Ruby API.</div><div class='add'>+Feel free to use, modify, distribute or sell your program.</div><div class='add'>+</div><div class='add'>+Appendix A. Ruby source files overview</div><div class='ctx'> </div><div class='ctx'> ruby language core</div><div class='ctx'> </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='add'>+  class.c         : classes and modules</div><div class='add'>+  error.c         : exception classes and exception mechanism</div><div class='add'>+  gc.c            : memory management</div><div class='add'>+  load.c          : library loading</div><div class='add'>+  object.c        : objects</div><div class='add'>+  variable.c      : variables and constants</div><div class='add'>+</div><div class='add'>+ruby syntax parser</div><div class='ctx'>   parse.y</div><div class='del'>-  variable.c</div><div class='add'>+    -&gt; parse.c    : automatically generated</div><div class='add'>+  keywords        : reserved keywords</div><div class='add'>+    -&gt; lex.c      : automatically generated</div><div class='add'>+</div><div class='add'>+ruby evaluator (a.k.a. YARV)</div><div class='add'>+  compile.c</div><div class='add'>+  eval.c</div><div class='add'>+  eval_error.c</div><div class='add'>+  eval_jump.c</div><div class='add'>+  eval_safe.c</div><div class='add'>+  insns.def           : definition of VM instructions</div><div class='add'>+  iseq.c              : implementation of VM::ISeq</div><div class='add'>+  thread.c            : thread management and context swiching</div><div class='add'>+  thread_win32.c      : thread implementation</div><div class='add'>+  thread_pthread.c    : ditto</div><div class='add'>+  vm.c</div><div class='add'>+  vm_dump.c</div><div class='add'>+  vm_eval.c</div><div class='add'>+  vm_exec.c</div><div class='add'>+  vm_insnhelper.c</div><div class='add'>+  vm_method.c</div><div class='add'>+</div><div class='add'>+  opt_insns_unif.def  : instruction unification</div><div class='add'>+  opt_operand.def     : definitions for optimization</div><div class='add'>+</div><div class='add'>+    -&gt; insn*.inc      : automatically generated</div><div class='add'>+    -&gt; opt*.inc       : automatically generated</div><div class='add'>+    -&gt; vm.inc         : automatically generated</div><div class='add'>+</div><div class='add'>+regular expression engine (oniguruma)</div><div class='add'>+  regex.c</div><div class='add'>+  regcomp.c</div><div class='add'>+  regenc.c</div><div class='add'>+  regerror.c</div><div class='add'>+  regexec.c</div><div class='add'>+  regparse.c</div><div class='add'>+  regsyntax.c</div><div class='ctx'> </div><div class='ctx'> utility functions</div><div class='ctx'> </div><div class='del'>-  dln.c</div><div class='del'>-  fnmatch.c</div><div class='del'>-  glob.c</div><div class='del'>-  regex.c</div><div class='del'>-  st.c</div><div class='del'>-  util.c</div><div class='add'>+  debug.c       : debug symbols for C debuggger</div><div class='add'>+  dln.c         : dynamic loading</div><div class='add'>+  st.c          : general purpose hash table</div><div class='add'>+  strftime.c    : formatting times</div><div class='add'>+  util.c        : misc utilities</div><div class='ctx'> </div><div class='ctx'> ruby interpreter implementation</div><div class='ctx'> </div><div class='ctx'>   dmyext.c</div><div class='add'>+  dmydln.c </div><div class='add'>+  dmyencoding.c</div><div class='add'>+  id.c</div><div class='ctx'>   inits.c</div><div class='ctx'>   main.c</div><div class='ctx'>   ruby.c</div><div class='ctx'>   version.c</div><div class='ctx'> </div><div class='add'>+  gem_prelude.rb</div><div class='add'>+  prelude.rb</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> class library</div><div class='ctx'> </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'>-  math.c</div><div class='del'>-  numeric.c</div><div class='del'>-  pack.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='add'>+  array.c       : Array</div><div class='add'>+  bignum.c      : Bignum</div><div class='add'>+  compar.c      : Comparable</div><div class='add'>+  complex.c     : Complex</div><div class='add'>+  cont.c        : Fiber, Continuation</div><div class='add'>+  dir.c         : Dir</div><div class='add'>+  enum.c        : Enumerable</div><div class='add'>+  enumerator.c  : Enumerator</div><div class='add'>+  file.c        : File</div><div class='add'>+  hash.c        : Hash</div><div class='add'>+  io.c          : IO</div><div class='add'>+  marshal.c     : Marshal</div><div class='add'>+  math.c        : Math</div><div class='add'>+  numeric.c     : Numeric, Integer, Fixnum, Float</div><div class='add'>+  pack.c        : Array#pack, String#unpack</div><div class='add'>+  proc.c        : Binding, Proc</div><div class='add'>+  process.c     : Process</div><div class='add'>+  random.c      : random number</div><div class='add'>+  range.c       : Range</div><div class='add'>+  rational.c    : Rational</div><div class='add'>+  re.c          : Regexp, MatchData</div><div class='add'>+  signal.c      : Signal</div><div class='add'>+  sprintf.c     : </div><div class='add'>+  string.c      : String</div><div class='add'>+  struct.c      : Struct</div><div class='add'>+  time.c        : Time</div><div class='add'>+</div><div class='add'>+  defs/known_errors.def  : Errno::* exception classes</div><div class='add'>+    -&gt; known_errors.inc  : automatically generated</div><div class='add'>+</div><div class='add'>+multilingualization</div><div class='add'>+  encoding.c    : Encoding</div><div class='add'>+  transcode.c   : Encoding::Converter</div><div class='add'>+  enc/*.c       : encoding classes</div><div class='add'>+  enc/trans/*   : codepoint mapping tables</div><div class='add'>+</div><div class='add'>+goruby interpreter implementation</div><div class='add'>+  </div><div class='add'>+  goruby.c</div><div class='add'>+  golf_prelude.rb     : goruby specific libraries.</div><div class='add'>+    -&gt; golf_prelude.c : automatically generated</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Appendix B. Ruby extension API reference</div><div class='add'>+</div><div class='add'>+** Types</div><div class='ctx'> </div><div class='ctx'>  VALUE</div><div class='ctx'> </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='add'>+The type for the Ruby object.  Actual structures are defined in ruby.h,</div><div class='add'>+such as struct RString, etc.  To refer the values in structures, use</div><div class='add'>+casting macros like RSTRING(obj).</div><div class='ctx'> </div><div class='ctx'> ** Variables and constants</div><div class='ctx'> </div><div class='hunk'>@@ -792,269 +942,528 @@ Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÉ½¸½¤¹¤ë·¿¡¥É¬Í×¤Ë±þ¤¸¤Æ¥­¥ã¥¹¥È¤·¤ÆÍÑ¤¤¤ë¡¥</div><div class='ctx'> </div><div class='ctx'> const: nil object</div><div class='ctx'> </div><div class='del'>- TRUE</div><div class='add'>+ Qtrue</div><div class='ctx'> </div><div class='del'>-const: TRUE object(default true value)</div><div class='add'>+const: true object(default true value)</div><div class='ctx'> </div><div class='del'>- FALSE</div><div class='add'>+ Qfalse</div><div class='ctx'> </div><div class='del'>-const: FALSE object</div><div class='add'>+const: false object</div><div class='ctx'> </div><div class='del'>-** C¥Ç¡¼¥¿¤Î¥«¥×¥»¥ë²½</div><div class='add'>+** C pointer wrapping</div><div class='ctx'> </div><div class='del'>- Data_Wrap_Struct(VALUE class, void (*mark)(), void (*free)(), void *sval)</div><div class='add'>+ Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)</div><div class='ctx'> </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='add'>+Wrap a C pointer into a Ruby object.  If object has references to other</div><div class='add'>+Ruby objects, they should be marked by using the mark function during</div><div class='add'>+the GC process.  Otherwise, mark should be 0.  When this object is no</div><div class='add'>+longer referred by anywhere, the pointer will be discarded by free</div><div class='add'>+function.</div><div class='ctx'> </div><div class='del'>- Data_Make_Struct(class, type, mark, free, sval)</div><div class='add'>+ Data_Make_Struct(klass, type, mark, free, sval)</div><div class='ctx'> </div><div class='del'>-type·¿¤Î¥á¥â¥ê¤òmalloc¤·¡¤ÊÑ¿ôsval¤ËÂåÆþ¤·¤¿¸å¡¤¤½¤ì¤ò¥«¥×¥»</div><div class='del'>-¥ë²½¤·¤¿¥Ç¡¼¥¿¤òÊÖ¤¹¥Þ¥¯¥í¡¥</div><div class='add'>+This macro allocates memory using malloc(), assigns it to the variable</div><div class='add'>+sval, and returns the DATA encapsulating the pointer to memory region.</div><div class='ctx'> </div><div class='ctx'>  Data_Get_Struct(data, type, sval)</div><div class='ctx'> </div><div class='del'>-data¤«¤étype·¿¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤·ÊÑ¿ôsval¤ËÂåÆþ¤¹¤ë¥Þ¥¯¥í¡¥</div><div class='add'>+This macro retrieves the pointer value from DATA, and assigns it to</div><div class='add'>+the variable sval. </div><div class='add'>+</div><div class='add'>+** Checking data types</div><div class='add'>+</div><div class='add'>+TYPE(value)</div><div class='add'>+FIXNUM_P(value)</div><div class='add'>+NIL_P(value)</div><div class='add'>+void Check_Type(VALUE value, int type)</div><div class='add'>+void Check_SafeStr(VALUE value)</div><div class='add'>+</div><div class='add'>+** Data type conversion</div><div class='add'>+</div><div class='add'>+FIX2INT(value), INT2FIX(i)</div><div class='add'>+FIX2LONG(value), LONG2FIX(l)</div><div class='add'>+NUM2INT(value), INT2NUM(i)</div><div class='add'>+NUM2UINT(value), UINT2NUM(ui)</div><div class='add'>+NUM2LONG(value), LONG2NUM(l)</div><div class='add'>+NUM2ULONG(value), ULONG2NUM(ul)</div><div class='add'>+NUM2LL(value), LL2NUM(ll)</div><div class='add'>+NUM2ULL(value), ULL2NUM(ull)</div><div class='add'>+NUM2OFFT(value), OFFT2NUM(off)</div><div class='add'>+NUM2SIZET(value), SIZET2NUM(size)</div><div class='add'>+NUM2SSIZET(value), SSIZET2NUM(ssize)</div><div class='add'>+NUM2DBL(value)</div><div class='add'>+rb_float_new(f)</div><div class='add'>+StringValue(value)</div><div class='add'>+StringValuePtr(value)</div><div class='add'>+StringValueCStr(value)</div><div class='add'>+rb_str_new2(s)</div><div class='ctx'> </div><div class='del'>-** ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ</div><div class='add'>+** defining class/module</div><div class='ctx'> </div><div class='del'>- VALUE rb_define_class(char *name, VALUE super)</div><div class='add'>+ VALUE rb_define_class(const char *name, VALUE super)</div><div class='ctx'> </div><div class='del'>-super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+Defines a new Ruby class as a subclass of super.</div><div class='ctx'> </div><div class='del'>- VALUE rb_define_class_under(VALUE module, char *name, VALUE super)</div><div class='add'>+ VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)</div><div class='ctx'> </div><div class='del'>-super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤·¡¤module¤ÎÄê</div><div class='del'>-¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='add'>+Creates a new Ruby class as a subclass of super, under the module's</div><div class='add'>+namespace.</div><div class='ctx'> </div><div class='del'>- VALUE rb_define_module(char *name)</div><div class='add'>+ VALUE rb_define_module(const char *name)</div><div class='ctx'> </div><div class='del'>-¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+Defines a new Ruby module.</div><div class='ctx'> </div><div class='del'>- VALUE rb_define_module_under(VALUE module, char *name, VALUE super)</div><div class='add'>+ VALUE rb_define_module_under(VALUE module, const char *name)</div><div class='ctx'> </div><div class='del'>-¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¡¤module¤ÎÄê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='add'>+Defines a new Ruby module under the module's namespace.</div><div class='ctx'> </div><div class='del'>- void rb_include_module(VALUE class, VALUE module)</div><div class='add'>+ void rb_include_module(VALUE klass, VALUE module)</div><div class='ctx'> </div><div class='del'>-¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡¥class¤¬¤¹¤Ç¤Ëmodule¤ò¥¤¥ó¥¯¥ë¡¼</div><div class='del'>-¥É¤·¤Æ¤¤¤ë»þ¤Ë¤Ï²¿¤â¤·¤Ê¤¤(Â¿½Å¥¤¥ó¥¯¥ë¡¼¥É¤Î¶Ø»ß)¡¥</div><div class='add'>+Includes module into class.  If class already includes it, just</div><div class='add'>+ignored.</div><div class='ctx'> </div><div class='ctx'>  void rb_extend_object(VALUE object, VALUE module)</div><div class='ctx'> </div><div class='del'>-¥ª¥Ö¥¸¥§¥¯¥È¤ò¥â¥¸¥å¡¼¥ë(¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É)¤Ç³ÈÄ¥¤¹¤ë¡¥</div><div class='add'>+Extend the object with the module's attributes.</div><div class='ctx'> </div><div class='del'>-** Âç°èÊÑ¿ôÄêµÁ</div><div class='add'>+** Defining Global Variables</div><div class='ctx'> </div><div class='del'>- void rb_define_variable(char *name, VALUE *var)</div><div class='add'>+ void rb_define_variable(const char *name, VALUE *var)</div><div class='ctx'> </div><div class='del'>-Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ôÌ¾¤¬`$'¤Ç»Ï</div><div class='del'>-¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄÉ²Ã¤µ¤ì¤ë¡¥name¤È¤·¤ÆRuby¤Î¼±ÊÌ»Ò¤È¤·</div><div class='del'>-¤Æµö¤µ¤ì¤Ê¤¤Ê¸»ú(Îã¤¨¤Ð` ')¤ò´Þ¤à¾ì¹ç¤Ë¤ÏRuby¥×¥í¥°¥é¥à¤«¤é</div><div class='del'>-¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë¡¥</div><div class='add'>+Defines a global variable which is shared between C and Ruby.  If name</div><div class='add'>+contains a character which is not allowed to be part of the symbol,</div><div class='add'>+it can't be seen from Ruby programs.</div><div class='ctx'> </div><div class='del'>- void rb_define_readonly_variable(char *name, VALUE *var)</div><div class='add'>+ void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='ctx'> </div><div class='del'>-Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëread only¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥read</div><div class='del'>-only¤Ç¤¢¤ë¤³¤È°Ê³°¤Ïrb_define_variable()¤ÈÆ±¤¸¡¥</div><div class='add'>+Defines a read-only global variable.  Works just like</div><div class='add'>+rb_define_variable(), except the defined variable is read-only.</div><div class='ctx'> </div><div class='del'>- void rb_define_virtual_variable(char *name,</div><div class='del'>-				VALUE (*getter)(), VALUE (*setter)())</div><div class='add'>+ void rb_define_virtual_variable(const char *name,</div><div class='add'>+				 VALUE (*getter)(), VALUE (*setter)())</div><div class='add'>+</div><div class='add'>+Defines a virtual variable, whose behavior is defined by a pair of C</div><div class='add'>+functions.  The getter function is called when the variable is</div><div class='add'>+referenced.  The setter function is called when the variable is set to a</div><div class='add'>+value.  The prototype for getter/setter functions are:</div><div class='add'>+</div><div class='add'>+	VALUE getter(ID id)</div><div class='add'>+	void setter(VALUE val, ID id)</div><div class='ctx'> </div><div class='del'>-´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRubyÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ</div><div class='del'>-¤Ë¤Ïgetter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤ë¡¥</div><div class='add'>+The getter function must return the value for the access.</div><div class='ctx'> </div><div class='del'>- void rb_define_hooked_variable(char *name, VALUE *var,</div><div class='add'>+ void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='ctx'> 				VALUE (*getter)(), VALUE (*setter)())</div><div class='ctx'> </div><div class='del'>-´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬</div><div class='del'>-»²¾È¤µ¤ì¤¿»þ¤Ë¤Ïgetter¤¬¡¤´Ø¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter</div><div class='del'>-¤¬¸Æ¤Ð¤ì¤ë¡¥getter¤äsetter¤Ë0¤ò»ØÄê¤·¤¿»þ¤Ë¤Ïhook¤ò»ØÄê¤·¤Ê</div><div class='del'>-¤¤¤Î¤ÈÆ±¤¸»ö¤Ë¤Ê¤ë¡¥</div><div class='add'>+Defines hooked variable.  It's a virtual variable with a C variable.  </div><div class='add'>+The getter is called as</div><div class='add'>+</div><div class='add'>+	VALUE getter(ID id, VALUE *var)</div><div class='add'>+</div><div class='add'>+returning a new value.  The setter is called as</div><div class='add'>+</div><div class='add'>+	void setter(VALUE val, ID id, VALUE *var)</div><div class='add'>+</div><div class='add'>+GC requires C global variables which hold Ruby values to be marked.</div><div class='ctx'> </div><div class='ctx'>  void rb_global_variable(VALUE *var)</div><div class='ctx'> </div><div class='del'>-GC¤Î¤¿¤á¡¤Ruby¥×¥í¥°¥é¥à¤«¤é¤Ï¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¤¬, Ruby¥ª¥Ö¥¸¥§</div><div class='del'>-¥¯¥È¤ò´Þ¤àÂç°èÊÑ¿ô¤ò¥Þ¡¼¥¯¤¹¤ë¡¥</div><div class='add'>+Tells GC to protect these variables.</div><div class='ctx'> </div><div class='del'>-** ¥¯¥é¥¹Äê¿ô</div><div class='add'>+** Constant Definition</div><div class='ctx'> </div><div class='del'>- void rb_define_const(VALUE class, char *name, VALUE val)</div><div class='add'>+ void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='ctx'> </div><div class='del'>-¥¯¥é¥¹Äê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+Defines a new constant under the class/module.</div><div class='ctx'> </div><div class='del'>- void rb_define_global_const(char *name, VALUE val)</div><div class='add'>+ void rb_define_global_const(const char *name, VALUE val)</div><div class='ctx'> </div><div class='del'>-Âç°èÄê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+Defines a global constant.  This is just the same as</div><div class='ctx'> </div><div class='ctx'>      rb_define_const(cKernal, name, val)</div><div class='ctx'> </div><div class='del'>-¤ÈÆ±¤¸°ÕÌ£¡¥</div><div class='add'>+** Method Definition</div><div class='ctx'> </div><div class='del'>-** ¥á¥½¥Ã¥ÉÄêµÁ</div><div class='add'>+ rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='ctx'> </div><div class='del'>- rb_define_method(VALUE class, char *name, VALUE (*func)(), int argc)</div><div class='add'>+Defines a method for the class.  func is the function pointer.  argc</div><div class='add'>+is the number of arguments.  if argc is -1, the function will receive</div><div class='add'>+3 arguments: argc, argv, and self.  if argc is -2, the function will</div><div class='add'>+receive 2 arguments, self and args, where args is a Ruby array of</div><div class='add'>+the method arguments.</div><div class='ctx'> </div><div class='del'>-¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥argc¤Ïself¤ò½ü¤¯°ú¿ô¤Î¿ô¡¥argc¤¬-1¤Î»þ, </div><div class='del'>-´Ø¿ô¤Ë¤Ï°ú¿ô¤Î¿ô(self¤ò´Þ¤Þ¤Ê¤¤)¤òÂè1°ú¿ô, °ú¿ô¤ÎÇÛÎó¤òÂè2°ú</div><div class='del'>-¿ô¤È¤¹¤ë·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë(Âè3°ú¿ô¤Ïself)¡¥argc¤¬-2¤Î»þ, Âè1°ú</div><div class='del'>-¿ô¤¬self, Âè2°ú¿ô¤¬args(args¤Ï°ú¿ô¤ò´Þ¤àRuby¤ÎÇÛÎó)¤È¤¤¤¦·Á</div><div class='del'>-¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡¥</div><div class='add'>+ rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='ctx'> </div><div class='del'>- rb_define_private_method(VALUE class, char *name, VALUE (*func)(), int argc)</div><div class='add'>+Defines a private method for the class.  Arguments are same as</div><div class='add'>+rb_define_method().</div><div class='ctx'> </div><div class='del'>-private¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¡¥</div><div class='add'>+ rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='ctx'> </div><div class='del'>- rb_define_singleton_method(VALUE class, char *name, VALUE (*func)(), int argc)</div><div class='add'>+Defines a singleton method.  Arguments are same as rb_define_method().</div><div class='ctx'> </div><div class='del'>-ÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¡¥</div><div class='add'>+ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>- rb_scan_args(int atgc, VALUE *argv, char *fmt, ...)</div><div class='add'>+Retrieve argument from argc and argv to given VALUE references</div><div class='add'>+according to the format string.  The format can be described in ABNF</div><div class='add'>+as follows:</div><div class='ctx'> </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='add'>+--</div><div class='add'>+scan-arg-spec  := param-arg-spec [option-hash-arg-spec] [block-arg-spec]</div><div class='add'>+</div><div class='add'>+param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec / pre-opt-post-arg-spec</div><div class='add'>+pre-arg-spec   := num-of-leading-mandatory-args [num-of-optional-args]</div><div class='add'>+post-arg-spec  := sym-for-variable-length-args [num-of-trailing-mandatory-args]</div><div class='add'>+pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args num-of-trailing-mandatory-args</div><div class='add'>+option-hash-arg-spec := sym-for-option-hash-arg</div><div class='add'>+block-arg-spec := sym-for-block-arg</div><div class='add'>+</div><div class='add'>+num-of-leading-mandatory-args  := DIGIT ; The number of leading</div><div class='add'>+                                        ; mandatory arguments</div><div class='add'>+num-of-optional-args           := DIGIT ; The number of optional</div><div class='add'>+                                        ; arguments</div><div class='add'>+sym-for-variable-length-args   := "*"   ; Indicates that variable</div><div class='add'>+                                        ; length arguments are</div><div class='add'>+                                        ; captured as a ruby array</div><div class='add'>+num-of-trailing-mandatory-args := DIGIT ; The number of trailing</div><div class='add'>+                                        ; mandatory arguments</div><div class='add'>+sym-for-option-hash-arg        := ":"   ; Indicates that an option</div><div class='add'>+                                        ; hash is captured if the last</div><div class='add'>+                                        ; argument is a hash or can be</div><div class='add'>+                                        ; converted to a hash with</div><div class='add'>+                                        ; #to_hash.  When the last</div><div class='add'>+                                        ; argument is nil, it is</div><div class='add'>+                                        ; captured if it is not</div><div class='add'>+                                        ; ambiguous to take it as</div><div class='add'>+                                        ; empty option hash; i.e. '*'</div><div class='add'>+                                        ; is not specified and</div><div class='add'>+                                        ; arguments are given more</div><div class='add'>+                                        ; than sufficient.</div><div class='add'>+sym-for-block-arg              := "&amp;"   ; Indicates that an iterator</div><div class='add'>+                                        ; block should be captured if</div><div class='add'>+                                        ; given</div><div class='add'>+--</div><div class='add'>+</div><div class='add'>+For example, "12" means that the method requires at least one</div><div class='add'>+argument, and at most receives three (1+2) arguments.  So, the format</div><div class='add'>+string must be followed by three variable references, which are to be</div><div class='add'>+assigned to captured arguments.  For omitted arguments, variables are</div><div class='add'>+set to Qnil.  NULL can be put in place of a variable reference, which</div><div class='add'>+means the corresponding captured argument(s) should be just dropped.</div><div class='ctx'> </div><div class='del'>-** Ruby¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·</div><div class='add'>+The number of given arguments, excluding an option hash or iterator</div><div class='add'>+block, is returned.</div><div class='add'>+</div><div class='add'>+** Invoking Ruby method</div><div class='ctx'> </div><div class='ctx'>  VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)</div><div class='ctx'> </div><div class='del'>-¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥Ê¸»úÎó¤«¤émid¤òÆÀ¤ë¤¿¤á¤Ë¤Ïrb_intern()¤ò»È¤¦¡¥</div><div class='add'>+Invokes a method.  To retrieve mid from a method name, use rb_intern().</div><div class='ctx'> </div><div class='ctx'>  VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)</div><div class='ctx'> </div><div class='del'>-¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥°ú¿ô¤òargc,argv·Á¼°¤ÇÅÏ¤¹¡¥</div><div class='add'>+Invokes a method, passing arguments by an array of values.</div><div class='ctx'> </div><div class='del'>- VALUE rb_eval_string(char *str)</div><div class='add'>+ VALUE rb_eval_string(const char *str)</div><div class='ctx'> </div><div class='del'>-Ê¸»úÎó¤òRuby¤È¥¹¥¯¥ê¥×¥È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¦¼Â¹Ô¤¹¤ë¡¥</div><div class='add'>+Compiles and executes the string as a Ruby program.</div><div class='ctx'> </div><div class='del'>- ID rb_intern(char *name)</div><div class='add'>+ ID rb_intern(const char *name)</div><div class='ctx'> </div><div class='del'>-Ê¸»úÎó¤ËÂÐ±þ¤¹¤ëID¤òÊÖ¤¹¡¥</div><div class='add'>+Returns ID corresponding to the name.</div><div class='ctx'> </div><div class='ctx'>  char *rb_id2name(ID id)</div><div class='ctx'> </div><div class='del'>-ID¤ËÂÐ±þ¤¹¤ëÊ¸»úÎó¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥</div><div class='add'>+Returns the name corresponding ID.</div><div class='add'>+</div><div class='add'>+ char *rb_class2name(VALUE klass)</div><div class='ctx'> </div><div class='del'>- char *rb_class2name(VALUE class)</div><div class='add'>+Returns the name of the class.</div><div class='ctx'> </div><div class='del'>-class¤ÎÌ¾Á°¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥class¤¬Ì¾Á°¤ò»ý¤¿¤Ê¤¤»þ¤Ë¤Ï, </div><div class='del'>-ÁÄÀè¤òÁÌ¤Ã¤ÆÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹¤ÎÌ¾Á°¤òÊÖ¤¹¡¥</div><div class='add'>+ int rb_respond_to(VALUE object, ID id)</div><div class='ctx'> </div><div class='del'>-** ¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô</div><div class='add'>+Returns true if the object responds to the message specified by id.</div><div class='ctx'> </div><div class='del'>- VALUE rb_iv_get(VALUE obj, char *name)</div><div class='add'>+** Instance Variables</div><div class='ctx'> </div><div class='del'>-obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ÎÃÍ¤òÆÀ¤ë¡¥`@'¤Ç»Ï¤Þ¤é¤Ê¤¤¥¤¥ó¥¹¥¿¥ó¥¹</div><div class='del'>-ÊÑ¿ô¤Ï Ruby¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡Ö±£¤ì¤¿¡×¥¤¥ó¥¹¥¿</div><div class='del'>-¥ó¥¹ÊÑ¿ô¤Ë¤Ê¤ë¡¥</div><div class='add'>+ VALUE rb_iv_get(VALUE obj, const char *name)</div><div class='ctx'> </div><div class='del'>- VALUE rb_iv_set(VALUE obj, char *name, VALUE val)</div><div class='add'>+Retrieve the value of the instance variable.  If the name is not</div><div class='add'>+prefixed by `@', that variable shall be inaccessible from Ruby.</div><div class='ctx'> </div><div class='del'>-obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òval¤Ë¥»¥Ã¥È¤¹¤ë¡¥</div><div class='add'>+ VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)</div><div class='ctx'> </div><div class='del'>-** À©¸æ¹½Â¤</div><div class='add'>+Sets the value of the instance variable.</div><div class='ctx'> </div><div class='del'>- VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)</div><div class='add'>+** Control Structure</div><div class='ctx'> </div><div class='del'>-func2¤ò¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀßÄê¤·, func1¤ò¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ö¡¥ </div><div class='del'>-func1¤Ë¤Ï arg1¤¬°ú¿ô¤È¤·¤ÆÅÏ¤µ¤ì, func2¤Ë¤ÏÂè1°ú¿ô¤Ë¥¤¥Æ¥ì¡¼</div><div class='del'>-¥¿¤«¤éÍ¿¤¨¤é¤ì¤¿ÃÍ, Âè2°ú¿ô¤Ëarg2¤¬ÅÏ¤µ¤ì¤ë¡¥</div><div class='add'>+ VALUE rb_block_call(VALUE recv, ID mid, int argc, VALUE * argv,</div><div class='add'>+		     VALUE (*func) (ANYARGS), VALUE data2)</div><div class='add'>+</div><div class='add'>+Calls a method on the recv, with the method name specified by the</div><div class='add'>+symbol mid, with argc arguments in argv, supplying func as the</div><div class='add'>+block. When func is called as the block, it will receive the value</div><div class='add'>+from yield as the first argument, and data2 as the second argument.</div><div class='add'>+When yielded with multiple values (in C, rb_yield_values(),</div><div class='add'>+rb_yield_values2() and rb_yield_splat()), data2 is packed as an Array,</div><div class='add'>+whereas yielded values can be gotten via argc/argv of the third/fourth</div><div class='add'>+arguments.</div><div class='add'>+</div><div class='add'>+ [OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)</div><div class='add'>+</div><div class='add'>+Calls the function func1, supplying func2 as the block.  func1 will be</div><div class='add'>+called with the argument arg1.  func2 receives the value from yield as</div><div class='add'>+the first argument, arg2 as the second argument.</div><div class='ctx'>  </div><div class='add'>+When rb_iterate is used in 1.9, func1 has to call some Ruby-level method.</div><div class='add'>+This function is obsolete since 1.9; use rb_block_call instead.</div><div class='add'>+</div><div class='ctx'>  VALUE rb_yield(VALUE val)</div><div class='ctx'> </div><div class='del'>-val¤òÃÍ¤È¤·¤Æ¥¤¥Æ¥ì¡¼¥¿¥Ö¥í¥Ã¥¯¤ò¸Æ¤Ó½Ð¤¹¡¥</div><div class='add'>+Evaluates the block with value val.</div><div class='add'>+</div><div class='add'>+ VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='add'>+</div><div class='add'>+Calls the function func1, with arg1 as the argument.  If an exception</div><div class='add'>+occurs during func1, it calls func2 with arg2 as the argument.  The</div><div class='add'>+return value of rb_rescue() is the return value from func1 if no</div><div class='add'>+exception occurs, from func2 otherwise.</div><div class='add'>+</div><div class='add'>+ VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='add'>+</div><div class='add'>+Calls the function func1 with arg1 as the argument, then calls func2</div><div class='add'>+with arg2 if execution terminated.  The return value from</div><div class='add'>+rb_ensure() is that of func1 when no exception occured.</div><div class='add'>+</div><div class='add'>+ VALUE rb_protect(VALUE (*func) (VALUE), VALUE arg, int *state)</div><div class='ctx'> </div><div class='del'>- VALUE rb_rescue(VALUE (*func1)(), void *arg1, VALUE (*func2)(), void *arg2)</div><div class='add'>+Calls the function func with arg as the argument.  If no exception</div><div class='add'>+occured during func, it returns the result of func and *state is zero.</div><div class='add'>+Otherwise, it returns Qnil and sets *state to nonzero.  If state is</div><div class='add'>+NULL, it is not set in both cases.</div><div class='ctx'> </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='add'>+ void rb_jump_tag(int state)</div><div class='ctx'> </div><div class='del'>- VALUE rb_ensure(VALUE (*func1)(), void *arg1, void (*func2)(), void *arg2)</div><div class='add'>+Continues the exception caught by rb_protect() and rb_eval_string_protect().</div><div class='add'>+state must be the returned value from those functions.  This function</div><div class='add'>+never return to the caller.</div><div class='ctx'> </div><div class='del'>-´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤·, ¼Â¹Ô½ªÎ»¸å(¤¿¤È¤¨Îã³°¤¬È¯</div><div class='del'>-À¸¤·¤Æ¤â) func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤¹¤ë¡¥Ìá¤êÃÍ¤Ïfunc1¤ÎÌá</div><div class='del'>-¤êÃÍ¤Ç¤¢¤ë(Îã³°¤¬È¯À¸¤·¤¿»þ¤ÏÌá¤é¤Ê¤¤)¡¥</div><div class='add'>+** Exceptions and Errors</div><div class='ctx'> </div><div class='del'>-** Îã³°¡¦¥¨¥é¡¼</div><div class='add'>+ void rb_warn(const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>- void Warning(char *fmt, ...)</div><div class='add'>+Prints a warning message according to a printf-like format.</div><div class='ctx'> </div><div class='del'>-verbose»þ¤ËÉ¸½à¥¨¥é¡¼½ÐÎÏ¤Ë·Ù¹ð¾ðÊó¤òÉ½¼¨¤¹¤ë¡¥°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='add'>+ void rb_warning(const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>- void Fail(char *fmt, ...)</div><div class='add'>+Prints a warning message according to a printf-like format, if</div><div class='add'>+$VERBOSE is true.</div><div class='ctx'> </div><div class='del'>-Îã³°¤òÈ¯À¸¤µ¤»¤ë¡¥°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='add'>+void rb_raise(rb_eRuntimeError, const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>- void Fatal(char *fmt, ...)</div><div class='add'>+Raises RuntimeError.  The fmt is a format string just like printf().</div><div class='ctx'> </div><div class='del'>-Ã×Ì¿ÅªÎã³°¤òÈ¯À¸¤µ¤»¤ë¡¥ÄÌ¾ï¤ÎÎã³°½èÍý¤Ï¹Ô¤Ê¤ï¤ì¤º, ¥¤¥ó¥¿¡¼</div><div class='del'>-¥×¥ê¥¿¤¬½ªÎ»¤¹¤ë(¤¿¤À¤·ensure¤Ç»ØÄê¤µ¤ì¤¿¥³¡¼¥É¤Ï½ªÎ»Á°¤Ë¼Â</div><div class='del'>-¹Ô¤µ¤ì¤ë)¡¥</div><div class='add'>+ void rb_raise(VALUE exception, const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>- void Bug(char *fmt, ...)</div><div class='add'>+Raises a class exception.  The fmt is a format string just like printf().</div><div class='ctx'> </div><div class='del'>-¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ê¤É¥×¥í¥°¥é¥à¤Î¥Ð¥°¤Ç¤·¤«È¯À¸¤¹¤ë¤Ï¤º¤Î¤Ê¤¤¾õ</div><div class='del'>-¶·¤Î»þ¸Æ¤Ö¡¥¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ï¥³¥¢¥À¥ó¥×¤·Ä¾¤Á¤Ë½ªÎ»¤¹¤ë¡¥Îã³°</div><div class='del'>-½èÍý¤Ï°ìÀÚ¹Ô¤Ê¤ï¤ì¤Ê¤¤¡¥</div><div class='add'>+ void rb_fatal(const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>-** Ruby¤Î½é´ü²½¡¦¼Â¹Ô</div><div class='add'>+Raises a fatal error, terminates the interpreter.  No exception handling</div><div class='add'>+will be done for fatal errors, but ensure blocks will be executed.</div><div class='ctx'> </div><div class='del'>-Ruby¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤Ï°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹</div><div class='del'>-¤ò»È¤¦¡¥ÄÌ¾ï¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ë¤ÏÉ¬Í×¤Ê¤¤¡¥</div><div class='add'>+ void rb_bug(const char *fmt, ...)</div><div class='ctx'> </div><div class='del'>- void ruby_init(int argc, char **argv, char **envp)</div><div class='add'>+Terminates the interpreter immediately.  This function should be</div><div class='add'>+called under the situation caused by the bug in the interpreter.  No</div><div class='add'>+exception handling nor ensure execution will be done.</div><div class='ctx'> </div><div class='del'>-Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î½é´ü²½¤ò¹Ô¤Ê¤¦¡¥</div><div class='add'>+** Initialize and Start the Interpreter</div><div class='add'>+</div><div class='add'>+The embedding API functions are below (not needed for extension libraries):</div><div class='add'>+</div><div class='add'>+ void ruby_init()</div><div class='add'>+</div><div class='add'>+Initializes the interpreter.</div><div class='add'>+</div><div class='add'>+ void ruby_options(int argc, char **argv)</div><div class='add'>+</div><div class='add'>+Process command line arguments for the interpreter.</div><div class='ctx'> </div><div class='ctx'>  void ruby_run()</div><div class='ctx'> </div><div class='del'>-Ruby¥¤¥ó¥¿¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¡¥</div><div class='add'>+Starts execution of the interpreter.</div><div class='ctx'> </div><div class='ctx'>  void ruby_script(char *name)</div><div class='ctx'> </div><div class='del'>-Ruby¤Î¥¹¥¯¥ê¥×¥ÈÌ¾($0)¤òÀßÄê¤¹¤ë¡¥</div><div class='add'>+Specifies the name of the script ($0).</div><div class='add'>+</div><div class='add'>+** Hooks for the Interpreter Events</div><div class='add'>+</div><div class='add'>+ void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)</div><div class='add'>+</div><div class='add'>+Adds a hook function for the specified interpreter events.</div><div class='add'>+events should be Or'ed value of:</div><div class='add'>+</div><div class='add'>+	RUBY_EVENT_LINE</div><div class='add'>+	RUBY_EVENT_CLASS</div><div class='add'>+	RUBY_EVENT_END</div><div class='add'>+	RUBY_EVENT_CALL</div><div class='add'>+	RUBY_EVENT_RETURN</div><div class='add'>+	RUBY_EVENT_C_CALL</div><div class='add'>+	RUBY_EVENT_C_RETURN</div><div class='add'>+	RUBY_EVENT_RAISE</div><div class='add'>+	RUBY_EVENT_ALL</div><div class='add'>+</div><div class='add'>+The definition of rb_event_hook_func_t is below:</div><div class='add'>+</div><div class='add'>+ typedef void (*rb_event_hook_func_t)(rb_event_t event, VALUE data,</div><div class='add'>+ 				      VALUE self, ID id, VALUE klass)</div><div class='add'>+</div><div class='add'>+The third argument `data' to rb_add_event_hook() is passed to the hook</div><div class='add'>+function as the second argument, which was the pointer to the current</div><div class='add'>+NODE in 1.8.  See RB_EVENT_HOOKS_HAVE_CALLBACK_DATA below.</div><div class='add'>+</div><div class='add'>+ int rb_remove_event_hook(rb_event_hook_func_t func)</div><div class='add'>+</div><div class='add'>+Removes the specified hook function.</div><div class='add'>+</div><div class='add'>+** Macros for the Compatibilities</div><div class='add'>+</div><div class='add'>+Some macros to check API compatibilities are available by default.</div><div class='add'>+</div><div class='add'>+ NORETURN_STYLE_NEW</div><div class='add'>+</div><div class='add'>+Means that NORETURN macro is functional style instead of prefix.</div><div class='ctx'> </div><div class='add'>+ HAVE_RB_DEFINE_ALLOC_FUNC</div><div class='ctx'> </div><div class='del'>-Appendix B. extconf.rb¤Ç»È¤¨¤ë´Ø¿ô¤¿¤Á</div><div class='add'>+Means that function rb_define_alloc_func() is provided, that means the</div><div class='add'>+allocation framework is used.  This is same as the result of</div><div class='add'>+have_func("rb_define_alloc_func", "ruby.h").</div><div class='ctx'> </div><div class='del'>-extconf.rb¤ÎÃæ¤Ç¤ÏÍøÍÑ²ÄÇ½¤Ê¥³¥ó¥Ñ¥¤¥ë¾ò·ï¥Á¥§¥Ã¥¯¤Î´Ø¿ô¤Ï°Ê</div><div class='del'>-²¼¤ÎÄÌ¤ê¤Ç¤¢¤ë¡¥</div><div class='add'>+ HAVE_RB_REG_NEW_STR</div><div class='add'>+</div><div class='add'>+Means that function rb_reg_new_str() is provided, that creates Regexp</div><div class='add'>+object from String object.  This is same as the result of</div><div class='add'>+have_func("rb_reg_new_str", "ruby.h").</div><div class='add'>+</div><div class='add'>+ HAVE_RB_IO_T</div><div class='add'>+</div><div class='add'>+Means that type rb_io_t is provided.</div><div class='add'>+</div><div class='add'>+ USE_SYMBOL_AS_METHOD_NAME</div><div class='add'>+</div><div class='add'>+Means that Symbols will be returned as method names, e.g.,</div><div class='add'>+Module#methods, #singleton_methods and so on.</div><div class='add'>+</div><div class='add'>+ HAVE_RUBY_*_H</div><div class='add'>+</div><div class='add'>+Defined in ruby.h and means correspoinding header is available.  For</div><div class='add'>+instance, when HAVE_RUBY_ST_H is defined you should use ruby/st.h not</div><div class='add'>+mere st.h.</div><div class='add'>+</div><div class='add'>+ RB_EVENT_HOOKS_HAVE_CALLBACK_DATA</div><div class='add'>+</div><div class='add'>+Means that rb_add_event_hook() takes the third argument `data', to be</div><div class='add'>+passed to the given event hook function.</div><div class='add'>+</div><div class='add'>+Appendix C. Functions Available in extconf.rb</div><div class='add'>+</div><div class='add'>+These functions are available in extconf.rb:</div><div class='add'>+</div><div class='add'>+ have_macro(macro, headers)</div><div class='add'>+</div><div class='add'>+Checks whether macro is defined with header.  Returns true if the macro</div><div class='add'>+is defined.</div><div class='ctx'> </div><div class='ctx'>  have_library(lib, func)</div><div class='ctx'> </div><div class='del'>-´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥é</div><div class='del'>-¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë»þ¡¤TRUE¤òÊÖ¤¹¡¥</div><div class='add'>+Checks whether the library exists, containing the specified function.</div><div class='add'>+Returns true if the library exists.</div><div class='add'>+</div><div class='add'>+ find_library(lib, func, path...)</div><div class='ctx'> </div><div class='del'>- have_func(func)</div><div class='add'>+Checks whether a library which contains the specified function exists in</div><div class='add'>+path.  Returns true if the library exists.</div><div class='ctx'> </div><div class='del'>-´Ø¿ôfunc¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥func¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é</div><div class='del'>-¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê</div><div class='del'>-¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯»ö¡¥´Ø¿ô¤¬Â¸ºß¤¹¤ë»þTRUE¤òÊÖ¤¹¡¥</div><div class='add'>+ have_func(func, header)</div><div class='add'>+</div><div class='add'>+Checks whether func exists with header.  Returns true if the function</div><div class='add'>+exists.  To check functions in an additional library, you need to</div><div class='add'>+check that library first using have_library().</div><div class='add'>+</div><div class='add'>+ have_var(var, header)</div><div class='add'>+</div><div class='add'>+Checks whether var exists with header.  Returns true if the variable</div><div class='add'>+exists.  To check variables in an additional library, you need to</div><div class='add'>+check that library first using have_library().</div><div class='ctx'> </div><div class='ctx'>  have_header(header)</div><div class='ctx'> </div><div class='del'>-¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë</div><div class='del'>-»þTRUE¤òÊÖ¤¹¡¥</div><div class='add'>+Checks whether header exists.  Returns true if the header file exists.</div><div class='add'>+</div><div class='add'>+ find_header(header, path...)</div><div class='add'>+</div><div class='add'>+Checks whether header exists in path.  Returns true if the header file</div><div class='add'>+exists.</div><div class='add'>+</div><div class='add'>+ have_struct_member(type, member, header)</div><div class='add'>+</div><div class='add'>+Checks whether type has member with header.  Returns true if the type</div><div class='add'>+is defined and has the member.</div><div class='add'>+</div><div class='add'>+ have_type(type, header, opt)</div><div class='add'>+</div><div class='add'>+Checks whether type is defined with header.  Returns true if the type</div><div class='add'>+is defined.</div><div class='add'>+</div><div class='add'>+ check_sizeof(type, header)</div><div class='add'>+</div><div class='add'>+Checks the size of type in char with header.  Returns the size if the</div><div class='add'>+type is defined, otherwise nil.</div><div class='ctx'> </div><div class='ctx'>  create_makefile(target)</div><div class='ctx'> </div><div class='del'>-³ÈÄ¥¥â¥¸¥å¡¼¥ëÍÑ¤ÎMakefile¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤ò¸Æ¤Ð¤Ê¤±¤ì¤Ð</div><div class='del'>-¤½¤Î¥â¥¸¥å¡¼¥ë¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤¡¥target¤Ï¥â¥¸¥å¡¼¥ëÌ¾¤òÉ½</div><div class='del'>-¤¹¡¥</div><div class='add'>+Generates the Makefile for the extension library.  If you don't invoke</div><div class='add'>+this method, the compilation will not be done.</div><div class='add'>+</div><div class='add'>+ find_executable(bin, path)</div><div class='add'>+</div><div class='add'>+Finds command in path, which is File::PATH_SEPARATOR-separated list of</div><div class='add'>+directories.  If path is nil or omitted, environment variable PATH</div><div class='add'>+will be used.  Returns the path name of the command if it is found,</div><div class='add'>+otherwise nil.</div><div class='add'>+</div><div class='add'>+ with_config(withval[, default=nil])</div><div class='add'>+</div><div class='add'>+Parses the command line options and returns the value specified by</div><div class='add'>+--with-&lt;withval&gt;.</div><div class='add'>+</div><div class='add'>+ enable_config(config, *defaults)</div><div class='add'>+ disable_config(config, *defaults)</div><div class='add'>+</div><div class='add'>+Parses the command line options for boolean.  Returns true if</div><div class='add'>+--enable-&lt;config&gt; is given, or false if --disable-&lt;config&gt; is given.</div><div class='add'>+Otherwise, yields defaults to the given block and returns the result</div><div class='add'>+if it is called with a block, or returns defaults.</div><div class='add'>+</div><div class='add'>+ dir_config(target[, default_dir])</div><div class='add'>+ dir_config(target[, default_include, default_lib])</div><div class='add'>+</div><div class='add'>+Parses the command line options and adds the directories specified by</div><div class='add'>+--with-&lt;target&gt;-dir, --with-&lt;target&gt;-include, and/or --with-&lt;target&gt;-lib</div><div class='add'>+to $CFLAGS and/or $LDFLAGS.  --with-&lt;target&gt;-dir=/path is equivalent to</div><div class='add'>+--with-&lt;target&gt;-include=/path/include --with-&lt;target&gt;-lib=/path/lib.</div><div class='add'>+Returns an array of the added directories ([include_dir, lib_dir]).</div><div class='add'>+</div><div class='add'>+ pkg_config(pkg)</div><div class='add'>+</div><div class='add'>+Obtains the information for pkg by pkg-config command.  The actual</div><div class='add'>+command name can be overridden by --with-pkg-config command line</div><div class='add'>+option.</div><div class='ctx'> </div><div class='ctx'> /*</div><div class='ctx'>  * Local variables:</div><div class='del'>- * fill-column: 60</div><div class='add'>+ * fill-column: 70</div><div class='ctx'>  * end:</div><div class='ctx'>  */</div><div class='head'>diff --git a/README.EXT.ja b/README.EXT.ja<br/>new file mode 100644<br/>index 0000000000..f2d7609ff5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/README.EXT.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>README.EXT.ja</a></div><div class='hunk'>@@ -0,0 +1,1570 @@</div><div class='add'>+.\" README.EXT.ja -  -*- Text -*- created at: Mon Aug  7 16:45:54 JST 1995</div><div class='add'>+</div><div class='add'>+Ruby¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Îºî¤êÊý¤òÀâÌÀ¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+1¡¥´ðÁÃÃÎ¼±</div><div class='add'>+</div><div class='add'>+C¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤¢¤ê¡¤¥Ç¡¼¥¿¤Ë¤Ï·¿¤¬¤¢¤ê¤Þ¤»¤ó¡¥¤Ç¤¹¤«¤é¡¤¤¿</div><div class='add'>+¤È¤¨¤Ð¥Ý¥¤¥ó¥¿¤òint¤ÎÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤È¡¤¤½¤ÎÃÍ¤ÏÀ°¿ô¤È¤·¤Æ¼è</div><div class='add'>+¤ê°·¤ï¤ì¤Þ¤¹¡¥µÕ¤ËRuby¤ÎÊÑ¿ô¤Ë¤Ï·¿¤¬¤Ê¤¯¡¤¥Ç¡¼¥¿¤Ë·¿¤¬¤¢¤ê¤Þ</div><div class='add'>+¤¹¡¥¤³¤Î°ã¤¤¤Î¤¿¤á¡¤C¤ÈRuby¤ÏÁê¸ß¤ËÊÑ´¹¤·¤Ê¤±¤ì¤Ð¡¤¤ª¸ß¤¤¤Î</div><div class='add'>+¥Ç¡¼¥¿¤ò¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+Ruby¤Î¥Ç¡¼¥¿¤ÏVALUE¤È¤¤¤¦C¤Î·¿¤ÇÉ½¸½¤µ¤ì¤Þ¤¹¡¥VALUE·¿¤Î¥Ç¡¼</div><div class='add'>+¥¿¤Ï¤½¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¼«Ê¬¤ÇÃÎ¤Ã¤Æ¤¤¤Þ¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤È</div><div class='add'>+¤¤¤¦¤Î¤Ï¥Ç¡¼¥¿(¥ª¥Ö¥¸¥§¥¯¥È)¤Î¼ÂºÝ¤Î¹½Â¤¤ò°ÕÌ£¤·¤Æ¤¤¤Æ¡¤Ruby</div><div class='add'>+¤Î¥¯¥é¥¹¤È¤Ï¤Þ¤¿°ã¤Ã¤¿¤â¤Î¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+VALUE¤«¤éC¤Ë¤È¤Ã¤Æ°ÕÌ£¤Î¤¢¤ë¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á¤Ë¤Ï</div><div class='add'>+</div><div class='add'>+ (1) VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤òÃÎ¤ë</div><div class='add'>+ (2) VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë</div><div class='add'>+</div><div class='add'>+¤ÎÎ¾Êý¤¬É¬Í×¤Ç¤¹¡¥(1)¤òËº¤ì¤ë¤È´Ö°ã¤Ã¤¿¥Ç¡¼¥¿¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì</div><div class='add'>+¤Æ¡¤ºÇ°­¥×¥í¥°¥é¥à¤¬core dump¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+1.1 ¥Ç¡¼¥¿¥¿¥¤¥×</div><div class='add'>+</div><div class='add'>+Ruby¤Ë¤Ï¥æ¡¼¥¶¤¬»È¤¦²ÄÇ½À­¤Î¤¢¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+	T_NIL		nil</div><div class='add'>+	T_OBJECT	ÄÌ¾ï¤Î¥ª¥Ö¥¸¥§¥¯¥È</div><div class='add'>+	T_CLASS		¥¯¥é¥¹</div><div class='add'>+	T_MODULE	¥â¥¸¥å¡¼¥ë</div><div class='add'>+	T_FLOAT		ÉâÆ°¾®¿ôÅÀ¿ô</div><div class='add'>+	T_STRING	Ê¸»úÎó</div><div class='add'>+	T_REGEXP	Àµµ¬É½¸½</div><div class='add'>+	T_ARRAY		ÇÛÎó</div><div class='add'>+	T_HASH		Ï¢ÁÛÇÛÎó</div><div class='add'>+	T_STRUCT	(Ruby¤Î)¹½Â¤ÂÎ</div><div class='add'>+	T_BIGNUM	Â¿ÇÜÄ¹À°¿ô</div><div class='add'>+	T_FIXNUM	Fixnum(31bit¤Þ¤¿¤Ï63bitÄ¹À°¿ô)</div><div class='add'>+	T_COMPLEX	Ê£ÁÇ¿ô</div><div class='add'>+	T_RATIONAL	Í­Íý¿ô</div><div class='add'>+	T_FILE		Æþ½ÐÎÏ</div><div class='add'>+	T_TRUE		¿¿</div><div class='add'>+	T_FALSE		µ¶</div><div class='add'>+	T_DATA		¥Ç¡¼¥¿</div><div class='add'>+	T_SYMBOL	¥·¥ó¥Ü¥ë</div><div class='add'>+</div><div class='add'>+¤½¤ÎÂ¾¤ËÆâÉô¤ÇÍøÍÑ¤µ¤ì¤Æ¤¤¤ë°Ê²¼¤Î¥¿¥¤¥×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+	T_ICLASS</div><div class='add'>+	T_MATCH</div><div class='add'>+	T_UNDEF</div><div class='add'>+	T_NODE</div><div class='add'>+	T_ZOMBIE</div><div class='add'>+</div><div class='add'>+¤Û¤È¤ó¤É¤Î¥¿¥¤¥×¤ÏC¤Î¹½Â¤ÂÎ¤Ç¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+1.2 VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ò¥Á¥§¥Ã¥¯¤¹¤ë</div><div class='add'>+</div><div class='add'>+ruby.h¤Ç¤ÏTYPE()¤È¤¤¤¦¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤VALUE¤Î¥Ç¡¼¥¿</div><div class='add'>+¥¿¥¤¥×¤òÃÎ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥TYPE()¥Þ¥¯¥í¤Ï¾å¤Ç¾Ò²ð¤·¤¿T_XXXX</div><div class='add'>+¤Î·Á¼°¤ÎÄê¿ô¤òÊÖ¤·¤Þ¤¹¡¥VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Ë±þ¤¸¤Æ½èÍý¤¹¤ë</div><div class='add'>+¾ì¹ç¤Ë¤Ï¡¤TYPE()¤ÎÃÍ¤ÇÊ¬´ô¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  switch (TYPE(obj)) {</div><div class='add'>+    case T_FIXNUM:</div><div class='add'>+      /* FIXNUM¤Î½èÍý */</div><div class='add'>+      break;</div><div class='add'>+    case T_STRING:</div><div class='add'>+      /* Ê¸»úÎó¤Î½èÍý */</div><div class='add'>+      break;</div><div class='add'>+    case T_ARRAY:</div><div class='add'>+      /* ÇÛÎó¤Î½èÍý */</div><div class='add'>+      break;</div><div class='add'>+    default:</div><div class='add'>+      /* Îã³°¤òÈ¯À¸¤µ¤»¤ë */</div><div class='add'>+      rb_raise(rb_eTypeError, "not valid value");</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'>+  void Check_Type(VALUE value, int type)</div><div class='add'>+</div><div class='add'>+¤³¤Î´Ø¿ô¤Ïvalue¤¬type¤ÇÌµ¤±¤ì¤Ð¡¤Îã³°¤òÈ¯À¸¤µ¤»¤Þ¤¹¡¥°ú¿ô¤È</div><div class='add'>+¤·¤ÆÍ¿¤¨¤é¤ì¤¿VALUE¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤¬Àµ¤·¤¤¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹</div><div class='add'>+¤ë¤¿¤á¤Ë¤Ï¡¤¤³¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+FIXNUM¤ÈNIL¤Ë´Ø¤·¤Æ¤Ï¤è¤ê¹âÂ®¤ÊÈ½ÊÌ¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  FIXNUM_P(obj)</div><div class='add'>+  NIL_P(obj)</div><div class='add'>+</div><div class='add'>+1.3 VALUE¤òC¤Î¥Ç¡¼¥¿¤ËÊÑ´¹¤¹¤ë</div><div class='add'>+</div><div class='add'>+¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_NIL¡¤T_FALSE¡¤T_TRUE¤Ç¤¢¤ë»þ¡¤¥Ç¡¼¥¿¤Ï¤½¤ì¤¾</div><div class='add'>+¤ìnil¡¤false¡¤true¤Ç¤¹¡¥¤³¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤Ò¤È</div><div class='add'>+¤Ä¤º¤Ä¤·¤«Â¸ºß¤·¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+¥Ç¡¼¥¿¥¿¥¤¥×¤¬T_FIXNUM¤Î»þ¡¤¤³¤ì¤Ï31bit¤Þ¤¿¤Ï63bit¤Î¥µ¥¤¥º¤ò</div><div class='add'>+»ý¤ÄÀ°¿ô¤Ç¤¹¡¥long¤Î¥µ¥¤¥º¤¬32bit¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤¢¤ì¤Ð</div><div class='add'>+31bit¤Ë¡¤long¤Î¥µ¥¤¥º¤¬64bit¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤¢¤ì¤Ð63bit</div><div class='add'>+¤Ë¤Ê¤ê¤Þ¤¹. FIXNUM ¤ò C ¤ÎÀ°¿ô¤ËÊÑ´¹¤¹¤ë¤¿¤á¤Ë¤Ï¥Þ¥¯¥í</div><div class='add'>+¡ÖFIX2INT()¡×¤Þ¤¿¤Ï¡ÖFIX2LONG()¡×¤ò»È¤¤¤Þ¤¹¡¥¤³¤ì¤é¤Î¥Þ¥¯¥í</div><div class='add'>+¤ò»ÈÍÑ¤¹¤ëºÝ¤Ë¤Ï»öÁ°¤Ë¥Ç¡¼¥¿¥¿¥¤¥×¤¬FIXNUM¤Ç¤¢¤ë¤³¤È¤ò³ÎÇ§¤¹</div><div class='add'>+¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¤¬¡¤Èæ³ÓÅª¹âÂ®¤ËÊÑ´¹¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥¤Þ</div><div class='add'>+¤¿¡¤¡ÖFIX2LONG()¡×¤ÏÎã³°¤òÈ¯À¸¤·¤Þ¤»¤ó¤¬¡¤¡ÖFIX2INT()¡×¤ÏÊÑ</div><div class='add'>+´¹·ë²Ì¤¬int¤Î¥µ¥¤¥º¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¤Ë¤ÏÎã³°¤òÈ¯À¸¤·¤Þ¤¹¡¥</div><div class='add'>+¤½¤ì¤«¤é¡¤FIXNUM¤Ë¸Â¤é¤ºRuby¤Î¥Ç¡¼¥¿¤òÀ°¿ô¤ËÊÑ´¹¤¹¤ë</div><div class='add'>+¡ÖNUM2INT()¡×¤ª¤è¤Ó¡ÖNUM2LONG()¡×¤È¤¤¤¦¥Þ¥¯¥í¤¬¤¢¤ê¤Þ¤¹¡¥¤³</div><div class='add'>+¤ì¤é¤Î¥Þ¥¯¥í¤Ï¥Þ¥¯¥í¤Ï¥Ç¡¼¥¿¥¿¥¤¥×¤Î¥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤Þ¤¹</div><div class='add'>+(À°¿ô¤ËÊÑ´¹¤Ç¤­¤Ê¤¤¾ì¹ç¤Ë¤ÏÎã³°¤¬È¯À¸¤¹¤ë)¡¥Æ±ÍÍ¤Ë¥Á¥§¥Ã¥¯Ìµ</div><div class='add'>+¤Ç»È¤¨¤ëÊÑ´¹¥Þ¥¯¥í¤Ïdouble¤ò¼è¤ê½Ð¤¹¡ÖNUM2DBL()¡×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+char* ¤ò¼è¤ê½Ð¤¹¾ì¹ç¡¤ StringValue() ¤È StringValuePtr() </div><div class='add'>+¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+StringValue(var) ¤Ï var ¤¬ String </div><div class='add'>+¤Ç¤¢¤ì¤Ð²¿¤â¤»¤º¡¤¤½¤¦¤Ç¤Ê¤±¤ì¤Ð var ¤ò var.to_str() ¤Î·ë²Ì</div><div class='add'>+¤ËÃÖ¤­´¹¤¨¤ë¥Þ¥¯¥í¡¤StringValuePtr(var) ¤ÏÆ±ÍÍ¤Ë var ¤ò</div><div class='add'>+String ¤ËÃÖ¤­´¹¤¨¤Æ¤«¤é var ¤Î¥Ð¥¤¥ÈÎóÉ½¸½¤ËÂÐ¤¹¤ë char* ¤ò</div><div class='add'>+ÊÖ¤¹¥Þ¥¯¥í¤Ç¤¹¡¥var ¤ÎÆâÍÆ¤òÄ¾ÀÜÃÖ¤­´¹¤¨¤ë½èÍý¤¬Æþ¤ë¤Î¤Ç¡¤</div><div class='add'>+var ¤Ï lvalue ¤Ç¤¢¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+¤Þ¤¿¡¤StringValuePtr() ¤ËÎà»÷¤·¤¿ StringValueCStr() ¤È¤¤¤¦¥Þ</div><div class='add'>+¥¯¥í¤â¤¢¤ê¤Þ¤¹¡¥StringValueCStr(var) ¤Ï var ¤ò String ¤ËÃÖ¤­</div><div class='add'>+´¹¤¨¤Æ¤«¤é var ¤ÎÊ¸»úÎóÉ½¸½¤ËÂÐ¤¹¤ë char* ¤òÊÖ¤·¤Þ¤¹¡¥ÊÖ¤µ¤ì</div><div class='add'>+¤ëÊ¸»úÎó¤ÎËöÈø¤Ë¤Ï nul Ê¸»ú¤¬ÉÕ²Ã¤µ¤ì¤Þ¤¹¡¥¤Ê¤ª¡¤ÅÓÃæ¤Ë nul</div><div class='add'>+Ê¸»ú¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤Ï ArgumentError ¤¬È¯À¸¤·¤Þ¤¹¡¥</div><div class='add'>+°ìÊý¡¤StringValuePtr() ¤Ç¤Ï¡¤ËöÈø¤Ë nul Ê¸»ú¤¬¤¢¤ëÊÝ¾Ú¤Ï¤Ê¤¯¡¤</div><div class='add'>+ÅÓÃæ¤Ë nul Ê¸»ú¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë²ÄÇ½À­¤â¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¤½¤ì°Ê³°¤Î¥Ç¡¼¥¿¥¿¥¤¥×¤ÏÂÐ±þ¤¹¤ëC¤Î¹½Â¤ÂÎ¤¬¤¢¤ê¤Þ¤¹¡¥ÂÐ±þ¤¹</div><div class='add'>+¤ë¹½Â¤ÂÎ¤Î¤¢¤ëVALUE¤Ï¤½¤Î¤Þ¤Þ¥­¥ã¥¹¥È(·¿ÊÑ´¹)¤¹¤ì¤Ð¹½Â¤ÂÎ¤Î</div><div class='add'>+¥Ý¥¤¥ó¥¿¤ËÊÑ´¹¤Ç¤­¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¹½Â¤ÂÎ¤Ï¡Östruct RXxxxx¡×¤È¤¤¤¦Ì¾Á°¤Çruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ</div><div class='add'>+¤¹¡¥Îã¤¨¤ÐÊ¸»úÎó¤Ï¡Östruct RString¡×¤Ç¤¹¡¥¼ÂºÝ¤Ë»È¤¦²ÄÇ½À­¤¬</div><div class='add'>+¤¢¤ë¤Î¤ÏÊ¸»úÎó¤ÈÇÛÎó¤¯¤é¤¤¤À¤È»×¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+ruby.h¤Ç¤Ï¹½Â¤ÂÎ¤Ø¥­¥ã¥¹¥È¤¹¤ë¥Þ¥¯¥í¤â¡ÖRXXXXX()¡×(Á´ÉôÂçÊ¸</div><div class='add'>+»ú¤Ë¤·¤¿¤â¤Î)¤È¤¤¤¦Ì¾Á°¤ÇÄó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹(Îã: RSTRING())¡¥</div><div class='add'>+</div><div class='add'>+¹½Â¤ÂÎ¤«¤é¥Ç¡¼¥¿¤ò¼è¤ê½Ð¤¹¥Þ¥¯¥í¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥Ê¸»úÎó</div><div class='add'>+str¤ÎÄ¹¤µ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING_LEN(str)¡×¤È¤·¡¤Ê¸»úÎóstr¤ò</div><div class='add'>+char*¤È¤·¤ÆÆÀ¤ë¤¿¤á¤Ë¤Ï¡ÖRSTRING_PTR(str)¡×¤È¤·¤Þ¤¹¡¥ÇÛÎó¤Î</div><div class='add'>+¾ì¹ç¤Ë¤Ï¡¤¤½¤ì¤¾¤ì¡ÖRARRAY_LEN(ary)¡×¡¤¡ÖRARRAY_PTR(ary)¡×¤È</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'>+</div><div class='add'>+1.4 C¤Î¥Ç¡¼¥¿¤òVALUE¤ËÊÑ´¹¤¹¤ë</div><div class='add'>+</div><div class='add'>+VALUE¤Î¼ÂºÝ¤Î¹½Â¤¤Ï</div><div class='add'>+</div><div class='add'>+  * FIXNUM¤Î¾ì¹ç</div><div class='add'>+</div><div class='add'>+    1bitº¸¥·¥Õ¥È¤·¤Æ¡¤LSB¤òÎ©¤Æ¤ë¡¥</div><div class='add'>+</div><div class='add'>+  * ¤½¤ÎÂ¾¤Î¥Ý¥¤¥ó¥¿¤Î¾ì¹ç</div><div class='add'>+</div><div class='add'>+    ¤½¤Î¤Þ¤ÞVALUE¤Ë¥­¥ã¥¹¥È¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥¤è¤Ã¤Æ¡¤LSB¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤ÐVALUE¤¬FIXNUM¤«¤É</div><div class='add'>+¤¦¤«¤ï¤«¤ë¤ï¤±¤Ç¤¹(¥Ý¥¤¥ó¥¿¤ÎLSB¤¬Î©¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ò²¾Äê¤·¤Æ</div><div class='add'>+¤¤¤ë)¡¥</div><div class='add'>+</div><div class='add'>+¤Ç¤¹¤«¤é¡¤FIXNUM°Ê³°¤ÎRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¹½Â¤ÂÎ¤ÏÃ±¤ËVALUE</div><div class='add'>+¤Ë¥­¥ã¥¹¥È¤¹¤ë¤À¤±¤ÇVALUE¤ËÊÑ´¹½ÐÍè¤Þ¤¹¡¥¤¿¤À¤·¡¤Ç¤°Õ¤Î¹½Â¤</div><div class='add'>+ÂÎ¤¬VALUE¤Ë¥­¥ã¥¹¥È½ÐÍè¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥¥­¥ã¥¹¥È¤¹¤ë¤Î</div><div class='add'>+¤ÏRuby¤ÎÃÎ¤Ã¤Æ¤¤¤ë¹½Â¤ÂÎ(ruby.h¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ëstruct RXxxx</div><div class='add'>+¤Î¤â¤Î)¤À¤±¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+FIXNUM¤Ë´Ø¤·¤Æ¤ÏÊÑ´¹¥Þ¥¯¥í¤ò·ÐÍ³¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥C¤ÎÀ°¿ô</div><div class='add'>+¤«¤éVALUE¤ËÊÑ´¹¤¹¤ë¥Þ¥¯¥í¤Ï°Ê²¼¤Î¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡¥É¬Í×¤Ë±þ¤¸</div><div class='add'>+¤Æ»È¤¤Ê¬¤±¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+  INT2FIX()	¤â¤È¤ÎÀ°¿ô¤¬31bit¤Þ¤¿¤Ï63bit°ÊÆâ¤Ë¼ý¤Þ¤ë¼«¿®</div><div class='add'>+		¤¬¤¢¤ë»þ</div><div class='add'>+  INT2NUM()	Ç¤°Õ¤ÎÀ°¿ô¤«¤éVALUE¤Ø</div><div class='add'>+</div><div class='add'>+INT2NUM()¤ÏÀ°¿ô¤¬FIXNUM¤ÎÈÏ°Ï¤Ë¼ý¤Þ¤é¤Ê¤¤¾ì¹ç¡¤Bignum¤ËÊÑ´¹</div><div class='add'>+¤·¤Æ¤¯¤ì¤Þ¤¹(¤¬¡¤¾¯¤·ÃÙ¤¤)¡¥</div><div class='add'>+</div><div class='add'>+1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë</div><div class='add'>+</div><div class='add'>+ÀèÄø¤â½Ò¤Ù¤¿ÄÌ¤ê¡¤Ruby¤Î¹½Â¤ÂÎ¤ò¥¢¥¯¥»¥¹¤¹¤ë»þ¤ËÆâÍÆ¤Î¹¹¿·¤ò</div><div class='add'>+¹Ô¤¦¤³¤È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥¤Ç¡¤Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë»þ¤Ë¤Ï</div><div class='add'>+Ruby¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë´Ø¿ô¤òÍÑ¤¤¤Æ¤¯¤À¤µ¤¤¡¥</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'>+  rb_str_new(const char *ptr, long len)</div><div class='add'>+</div><div class='add'>+    ¿·¤·¤¤Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_str_new2(const char *ptr)</div><div class='add'>+  rb_str_new_cstr(const char *ptr)</div><div class='add'>+</div><div class='add'>+    C¤ÎÊ¸»úÎó¤«¤éRuby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï</div><div class='add'>+    rb_str_new(ptr, strlen(ptr))¤ÈÆ±Åù¤Ç¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_tainted_str_new(const char *ptr, long len)</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'>+  rb_tainted_str_new2(const char *ptr)</div><div class='add'>+  rb_tainted_str_new_cstr(const char *ptr)</div><div class='add'>+</div><div class='add'>+    C¤ÎÊ¸»úÎó¤«¤é±øÀ÷¥Þ¡¼¥¯¤¬ÉÕ²Ã¤µ¤ì¤¿Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_sprintf(const char *format, ...)</div><div class='add'>+  rb_vsprintf(const char *format, va_list ap)</div><div class='add'>+</div><div class='add'>+    C¤ÎÊ¸»úÎóformat¤ÈÂ³¤¯°ú¿ô¤òprintf(3)¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤·¤¿¤¬¤Ã¤Æ</div><div class='add'>+    À°·Á¤·¡¤Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_str_cat(VALUE str, const char *ptr, long len)</div><div class='add'>+</div><div class='add'>+    Ruby¤ÎÊ¸»úÎóstr¤Ëlen¥Ð¥¤¥È¤ÎÊ¸»úÎóptr¤òÄÉ²Ã¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_str_cat2(VALUE str, const char* ptr)</div><div class='add'>+</div><div class='add'>+    Ruby¤ÎÊ¸»úÎóstr¤ËC¤ÎÊ¸»úÎóptr¤òÄÉ²Ã¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï</div><div class='add'>+    rb_str_cat(str, ptr, strlen(ptr))¤ÈÆ±Åù¤Ç¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_str_catf(VALUE str, const char* format, ...)</div><div class='add'>+  rb_str_vcatf(VALUE str, const char* format, va_list ap)</div><div class='add'>+</div><div class='add'>+    C¤ÎÊ¸»úÎóformat¤ÈÂ³¤¯°ú¿ô¤òprintf(3)¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤·¤¿¤¬¤Ã¤Æ</div><div class='add'>+    À°·Á¤·¡¤Ruby¤ÎÊ¸»úÎóstr¤ËÄÉ²Ã¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï¡¤¤½¤ì¤¾¤ì</div><div class='add'>+    rb_str_cat2(str, rb_sprintf(format, ...)) ¤ä</div><div class='add'>+    rb_str_cat2(str, rb_vsprintf(format, ap)) ¤ÈÆ±Åù¤Ç¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_enc_str_new(const char *ptr, long len, rb_encoding *enc)</div><div class='add'>+  </div><div class='add'>+    »ØÄê¤µ¤ì¤¿¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ÇRuby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë.</div><div class='add'>+     </div><div class='add'>+  rb_usascii_str_new(const char *ptr, long len)</div><div class='add'>+  rb_usascii_str_new_cstr(const char *ptr)</div><div class='add'>+</div><div class='add'>+    ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬US-ASCII¤ÎRuby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë.</div><div class='add'>+</div><div class='add'>+  rb_str_resize(VALUE str, long len)</div><div class='add'>+</div><div class='add'>+    Ruby¤ÎÊ¸»úÎó¤Î¥µ¥¤¥º¤òlen¥Ð¥¤¥È¤ËÊÑ¹¹¤¹¤ë¡¥str¤ÎÄ¹¤µ¤ÏÁ°</div><div class='add'>+    °Ê¤Æ¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¥len¤¬¸µ¤ÎÄ¹¤µ¤è¤ê¤âÃ»</div><div class='add'>+    ¤¤»þ¤Ï¡¤len¥Ð¥¤¥È¤ò±Û¤¨¤¿ÉôÊ¬¤ÎÆâÍÆ¤Ï¼Î¤Æ¤é¤ì¤ë¡¥len¤¬¸µ</div><div class='add'>+    ¤ÎÄ¹¤µ¤è¤ê¤âÄ¹¤¤»þ¤Ï¡¤¸µ¤ÎÄ¹¤µ¤ò±Û¤¨¤¿ÉôÊ¬¤ÎÆâÍÆ¤ÏÊÝÂ¸¤µ</div><div class='add'>+    ¤ì¤Ê¤¤¤Ç¥´¥ß¤Ë¤Ê¤ë¤À¤í¤¦¡¥¤³¤Î´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ</div><div class='add'>+    RSTRING_PTR(str)¤¬ÊÑ¹¹¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¡¥</div><div class='add'>+</div><div class='add'>+  rb_str_set_len(VALUE str, long len)</div><div class='add'>+</div><div class='add'>+    Ruby¤ÎÊ¸»úÎó¤Î¥µ¥¤¥º¤òlen¥Ð¥¤¥È¤Ë¥»¥Ã¥È¤¹¤ë¡¥str¤¬ÊÑ¹¹²Ä</div><div class='add'>+    Ç½¤Ç¤Ê¤±¤ì¤ÐÎã³°¤¬È¯À¸¤¹¤ë¡¥RSTRING_LEN(str)¤È¤ÏÌµ´Ø·¸¤Ë¡¤</div><div class='add'>+    len¥Ð¥¤¥È¤Þ¤Ç¤ÎÆâÍÆ¤ÏÊÝÂ¸¤µ¤ì¤ë¡¥len¤Ïstr¤ÎÍÆÎÌ¤ò±Û¤¨¤Æ¤¤</div><div class='add'>+    ¤Æ¤Ï¤Ê¤é¤Ê¤¤¡¥</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+ ÇÛÎó¤ËÂÐ¤¹¤ë´Ø¿ô</div><div class='add'>+</div><div class='add'>+  rb_ary_new()</div><div class='add'>+</div><div class='add'>+    Í×ÁÇ¤¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_ary_new2(long len)</div><div class='add'>+</div><div class='add'>+    Í×ÁÇ¤¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥lenÍ×ÁÇÊ¬¤ÎÎÎ°è¤ò¤¢¤é¤«¤¸¤á³ä¤ê</div><div class='add'>+    Åö¤Æ¤Æ¤ª¤¯¡¥</div><div class='add'>+</div><div class='add'>+  rb_ary_new3(long n, ...)</div><div class='add'>+</div><div class='add'>+    °ú¿ô¤Ç»ØÄê¤·¤¿nÍ×ÁÇ¤ò´Þ¤àÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_ary_new4(long n, VALUE *elts)</div><div class='add'>+</div><div class='add'>+    ÇÛÎó¤ÇÍ¿¤¨¤¿nÍ×ÁÇ¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+  rb_ary_to_ary(VALUE obj)</div><div class='add'>+</div><div class='add'>+    ¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÎó¤ËÊÑ´¹¤¹¤ë.</div><div class='add'>+    Object#to_ary¤ÈÆ±Åù¤Ç¤¢¤ë.</div><div class='add'>+</div><div class='add'>+ Â¾¤Ë¤âÇÛÎó¤òÁàºî¤¹¤ë´Ø¿ô¤¬Â¿¿ô¤¢¤ë. ¤³¤ì¤é¤Ï</div><div class='add'>+ °ú¿ôary¤ËÇÛÎó¤òÅÏ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤. ¤µ¤â¤Ê¤¤¤È</div><div class='add'>+ ¥³¥¢¤òÅÇ¤¯.</div><div class='add'>+</div><div class='add'>+  rb_ary_aref(argc, VALUE *argv, VALUE ary)</div><div class='add'>+</div><div class='add'>+    Array#[]¤ÈÆ±Åù.</div><div class='add'>+</div><div class='add'>+  rb_ary_entry(VALUE ary, long offset)</div><div class='add'>+</div><div class='add'>+    ary[offset]</div><div class='add'>+</div><div class='add'>+  rb_ary_subseq(VALUE ary, long beg, long len)</div><div class='add'>+</div><div class='add'>+    ary[beg, len]</div><div class='add'>+</div><div class='add'>+  rb_ary_push(VALUE ary, VALUE val)</div><div class='add'>+  rb_ary_pop(VALUE ary)</div><div class='add'>+  rb_ary_shift(VALUE ary)</div><div class='add'>+  rb_ary_unshift(VALUE ary, VALUE val)</div><div class='add'>+</div><div class='add'>+2¡¥Ruby¤Îµ¡Ç½¤ò»È¤¦</div><div class='add'>+</div><div class='add'>+¸¶ÍýÅª¤ËRuby¤Ç½ñ¤±¤ë¤³¤È¤ÏC¤Ç¤â½ñ¤±¤Þ¤¹¡¥Ruby¤½¤Î¤â¤Î¤¬C¤Çµ­</div><div class='add'>+½Ò¤µ¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤«¤é¡¤ÅöÁ³¤È¤¤¤¨¤ÐÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¥¤³¤³¤Ç</div><div class='add'>+¤ÏRuby¤Î³ÈÄ¥¤Ë»È¤¦¤³¤È¤¬Â¿¤¤¤À¤í¤¦¤ÈÍ½Â¬¤µ¤ì¤ëµ¡Ç½¤òÃæ¿´¤Ë¾Ò</div><div class='add'>+²ð¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+2.1 Ruby¤Ëµ¡Ç½¤òÄÉ²Ã¤¹¤ë</div><div class='add'>+</div><div class='add'>+Ruby¤ÇÄó¶¡¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤¨¤ÐRuby¥¤¥ó¥¿¥×¥ê¥¿¤Ë¿·¤·¤¤µ¡Ç½</div><div class='add'>+¤òÄÉ²Ã¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥Ruby¤Ç¤Ï°Ê²¼¤Îµ¡Ç½¤òÄÉ²Ã¤¹¤ë´Ø¿ô¤¬</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'>+¤Ç¤Ï½ç¤Ë¾Ò²ð¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+2.1.1 ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ</div><div class='add'>+</div><div class='add'>+¥¯¥é¥¹¤ä¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_define_class(const char *name, VALUE super)</div><div class='add'>+  VALUE rb_define_module(const char *name)</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'>+¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)</div><div class='add'>+  VALUE rb_define_module_under(VALUE outer, const char *name)</div><div class='add'>+</div><div class='add'>+2.1.2 ¥á¥½¥Ã¥É/ÆÃ°Û¥á¥½¥Ã¥ÉÄêµÁ</div><div class='add'>+</div><div class='add'>+¥á¥½¥Ã¥É¤äÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_method(VALUE klass, const char *name, </div><div class='add'>+		        VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+  void rb_define_singleton_method(VALUE object, const char *name, </div><div class='add'>+			          VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Ç°¤Î¤¿¤áÀâÌÀ¤¹¤ë¤È¡ÖÆÃ°Û¥á¥½¥Ã¥É¡×¤È¤Ï¡¤¤½¤ÎÆÃÄê¤Î¥ª¥Ö¥¸¥§¥¯</div><div class='add'>+¥È¤ËÂÐ¤·¤Æ¤À¤±Í­¸ú¤Ê¥á¥½¥Ã¥É¤Ç¤¹¡¥Ruby¤Ç¤Ï¤è¤¯Smalltalk¤Ë¤ª</div><div class='add'>+¤±¤ë¥¯¥é¥¹¥á¥½¥Ã¥É¤È¤·¤Æ¡¤¥¯¥é¥¹¤ËÂÐ¤¹¤ëÆÃ°Û¥á¥½¥Ã¥É¤¬»È¤ï¤ì</div><div class='add'>+¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¤³¤ì¤é¤Î´Ø¿ô¤Î argc¤È¤¤¤¦°ú¿ô¤ÏC¤Î´Ø¿ô¤ØÅÏ¤µ¤ì¤ë°ú¿ô¤Î¿ô(¤È</div><div class='add'>+·Á¼°)¤ò·è¤á¤Þ¤¹¡¥argc¤¬0°Ê¾å¤Î»þ¤Ï´Ø¿ô¤Ë°ú¤­ÅÏ¤¹°ú¿ô¤Î¿ô¤ò°Õ</div><div class='add'>+Ì£¤·¤Þ¤¹¡¥16¸Ä°Ê¾å¤Î°ú¿ô¤Ï»È¤¨¤Þ¤»¤ó(¤¬¡¤Í×¤ê¤Þ¤»¤ó¤è¤Í¡¤¤½</div><div class='add'>+¤ó¤Ê¤Ë)¡¥¼ÂºÝ¤Î´Ø¿ô¤Ë¤ÏÀèÆ¬¤Î°ú¿ô¤È¤·¤Æself¤¬Í¿¤¨¤é¤ì¤Þ¤¹¤Î</div><div class='add'>+¤Ç¡¤»ØÄê¤·¤¿¿ô¤è¤ê1Â¿¤¤°ú¿ô¤ò»ý¤Ä¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+argc¤¬Éé¤Î»þ¤Ï°ú¿ô¤Î¿ô¤Ç¤Ï¤Ê¤¯¡¤·Á¼°¤ò»ØÄê¤·¤¿¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+argc¤¬-1¤Î»þ¤Ï°ú¿ô¤òÇÛÎó¤ËÆþ¤ì¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥argc¤¬-2¤Î»þ¤Ï°ú</div><div class='add'>+¿ô¤ÏRuby¤ÎÇÛÎó¤È¤·¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï¤Þ¤À¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹. ¤Ò¤È¤Ä¤Ï¥á¥½¥Ã¥É</div><div class='add'>+Ì¾¤È¤·¤ÆID¤ò¼è¤ê¤Þ¤¹. ID¤Ë¤Ä¤¤¤Æ¤Ï2.2.2¤ò»²¾È.</div><div class='add'>+</div><div class='add'>+  void rb_define_method_id(VALUE klass, ID name, </div><div class='add'>+                           VALUE (*func)(ANYARGS), int argc)</div><div class='add'>+</div><div class='add'>+private/protected¤Ê¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Õ¤¿¤Ä¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  void rb_define_private_method(VALUE klass, const char *name, </div><div class='add'>+				VALUE (*func)(), int argc)</div><div class='add'>+  void rb_define_protected_method(VALUE klass, const char *name, </div><div class='add'>+			          VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+private¥á¥½¥Ã¥É¤È¤Ï´Ø¿ô·Á¼°¤Ç¤·¤«¸Æ¤Ó½Ð¤¹¤³¤È¤Î½ÐÍè¤Ê¤¤¥á¥½¥Ã</div><div class='add'>+¥É¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+ºÇ¸å¤Ë¡¤ rb_define_module´Ø¿ô¤Ï¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤·¤Þ¤¹¡¥</div><div class='add'>+¥â¥¸¥å¡¼¥ë´Ø¿ô¤È¤Ï¥â¥¸¥å¡¼¥ë¤ÎÆÃ°Û¥á¥½¥Ã¥É¤Ç¤¢¤ê¡¤Æ±»þ¤Ë</div><div class='add'>+private¥á¥½¥Ã¥É¤Ç¤â¤¢¤ë¤â¤Î¤Ç¤¹¡¥Îã¤ò¤¢¤²¤ë¤ÈMath¥â¥¸¥å¡¼¥ë</div><div class='add'>+¤Îsqrt()¤Ê¤É¤¬¤¢¤²¤é¤ì¤Þ¤¹¡¥¤³¤Î¥á¥½¥Ã¥É¤Ï</div><div class='add'>+</div><div class='add'>+  Math.sqrt(4)</div><div class='add'>+</div><div class='add'>+¤È¤¤¤¦·Á¼°¤Ç¤â</div><div class='add'>+</div><div class='add'>+  include Math</div><div class='add'>+  sqrt(4)</div><div class='add'>+</div><div class='add'>+¤È¤¤¤¦·Á¼°¤Ç¤â»È¤¨¤Þ¤¹¡¥¥â¥¸¥å¡¼¥ë´Ø¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤Î</div><div class='add'>+ÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_module_function(VALUE module, const char *name, </div><div class='add'>+		                 VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+´Ø¿ôÅª¥á¥½¥Ã¥É(Kernel¥â¥¸¥å¡¼¥ë¤Îprivate method)¤òÄêµÁ¤¹¤ë¤¿</div><div class='add'>+¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_global_function(const char *name, VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+¥á¥½¥Ã¥É¤ÎÊÌÌ¾¤òÄêµÁ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_alias(VALUE module, const char* new, const char* old);</div><div class='add'>+</div><div class='add'>+Â°À­¤Î¼èÆÀ¡¦ÀßÄê¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¤Ë¤Ï</div><div class='add'>+</div><div class='add'>+  void rb_define_attr(VALUE klass, const char *name, int read, int write)</div><div class='add'>+</div><div class='add'>+¥¯¥é¥¹¥á¥½¥Ã¥Éallocate¤òÄêµÁ¤·¤¿¤êºï½ü¤·¤¿¤ê¤¹¤ë¤¿¤á¤Î´Ø¿ô¤Ï</div><div class='add'>+°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE klass));</div><div class='add'>+  void rb_undef_alloc_func(VALUE klass);</div><div class='add'>+</div><div class='add'>+func¤Ï¥¯¥é¥¹¤ò°ú¿ô¤È¤·¤Æ¼õ¤±¼è¤Ã¤Æ¡¤¿·¤·¤¯³ä¤êÅö¤Æ¤é¤ì¤¿¥¤¥ó</div><div class='add'>+¥¹¥¿¥ó¥¹¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡¥¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¤³°Éô¥ê</div><div class='add'>+¥½¡¼¥¹¤Ê¤É¤ò´Þ¤Þ¤Ê¤¤¡¤¤Ç¤­¤ë¤À¤±¡Ö¶õ¡×¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤¤¿¤Û¤¦</div><div class='add'>+¤¬¤è¤¤¤Ç¤·¤ç¤¦¡¥</div><div class='add'>+</div><div class='add'>+2.1.3 Äê¿ôÄêµÁ</div><div class='add'>+</div><div class='add'>+³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤¬É¬Í×¤ÊÄê¿ô¤Ï¤¢¤é¤«¤¸¤áÄêµÁ¤·¤Æ¤ª¤¤¤¿Êý¤¬ÎÉ¤¤</div><div class='add'>+¤Ç¤·¤ç¤¦¡¥Äê¿ô¤òÄêµÁ¤¹¤ë´Ø¿ô¤ÏÆó¤Ä¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='add'>+  void rb_define_global_const(const char *name, VALUE val)</div><div class='add'>+</div><div class='add'>+Á°¼Ô¤ÏÆÃÄê¤Î¥¯¥é¥¹/¥â¥¸¥å¡¼¥ë¤ËÂ°¤¹¤ëÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¡¤¸å</div><div class='add'>+¼Ô¤Ï¥°¥í¡¼¥Ð¥ë¤ÊÄê¿ô¤òÄêµÁ¤¹¤ë¤â¤Î¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+2.2 Ruby¤Îµ¡Ç½¤òC¤«¤é¸Æ¤Ó½Ð¤¹</div><div class='add'>+</div><div class='add'>+´û¤Ë¡Ø1.5 Ruby¤Î¥Ç¡¼¥¿¤òÁàºî¤¹¤ë¡Ù¤Ç°ìÉô¾Ò²ð¤·¤¿¤è¤¦¤Ê´Ø¿ô¤ò</div><div class='add'>+»È¤¨¤Ð¡¤Ruby¤Îµ¡Ç½¤ò¼Â¸½¤·¤Æ¤¤¤ë´Ø¿ô¤òÄ¾ÀÜ¸Æ¤Ó½Ð¤¹¤³¤È¤¬½ÐÍè</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'>+2.2.1 Ruby¤Î¥×¥í¥°¥é¥à¤òeval¤¹¤ë</div><div class='add'>+</div><div class='add'>+C¤«¤éRuby¤Îµ¡Ç½¤ò¸Æ¤Ó½Ð¤¹¤â¤Ã¤È¤â´ÊÃ±¤ÊÊýË¡¤È¤·¤Æ¡¤Ê¸»úÎó¤Ç</div><div class='add'>+Í¿¤¨¤é¤ì¤¿Ruby¤Î¥×¥í¥°¥é¥à¤òÉ¾²Á¤¹¤ë°Ê²¼¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_eval_string(const char *str)</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'>+</div><div class='add'>+  VALUE rb_eval_string_protect(const char *str, int *state)</div><div class='add'>+</div><div class='add'>+¤³¤Î´Ø¿ô¤Ï¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤Ènil¤òÊÖ¤·¤Þ¤¹¡¥¤½¤·¤Æ¡¤À®¸ù»þ¤Ë¤Ï</div><div class='add'>+*state¤Ï¥¼¥í¤Ë¡¤¤µ¤â¤Ê¤¯¤ÐÈó¥¼¥í¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2.2.2 ID¤Þ¤¿¤Ï¥·¥ó¥Ü¥ë</div><div class='add'>+</div><div class='add'>+C¤«¤éÊ¸»úÎó¤ò·ÐÍ³¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤â¤Ç¤­¤Þ</div><div class='add'>+¤¹¡¥¤½¤ÎÁ°¤Ë¡¤Ruby¥¤¥ó¥¿¥×¥ê¥¿Æâ¤Ç¥á¥½¥Ã¥É¤äÊÑ¿ôÌ¾¤ò»ØÄê¤¹¤ë</div><div class='add'>+»þ¤Ë»È¤ï¤ì¤Æ¤¤¤ëID¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡¥</div><div class='add'>+</div><div class='add'>+ID¤È¤ÏÊÑ¿ôÌ¾¡¤¥á¥½¥Ã¥ÉÌ¾¤òÉ½¤¹À°¿ô¤Ç¤¹¡¥Ruby¤ÎÃæ¤Ç¤Ï</div><div class='add'>+</div><div class='add'>+ :¼±ÊÌ»Ò</div><div class='add'>+¤Þ¤¿¤Ï</div><div class='add'>+ :"Ç¤°Õ¤ÎÊ¸»úÎó"</div><div class='add'>+</div><div class='add'>+¤Ç¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡¥C¤«¤é¤³¤ÎÀ°¿ô¤òÆÀ¤ë¤¿¤á¤Ë¤Ï´Ø¿ô</div><div class='add'>+</div><div class='add'>+  rb_intern(const char *name)</div><div class='add'>+</div><div class='add'>+¤ò»È¤¤¤Þ¤¹¡¥Ruby¤«¤é°ú¿ô¤È¤·¤ÆÍ¿¤¨¤é¤ì¤¿¥·¥ó¥Ü¥ë(¤Þ¤¿¤ÏÊ¸»ú</div><div class='add'>+Îó)¤òID¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  rb_to_id(VALUE symbol)</div><div class='add'>+</div><div class='add'>+2.2.3 C¤«¤éRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹</div><div class='add'>+</div><div class='add'>+C¤«¤éÊ¸»úÎó¤ò·ÐÍ³¤»¤º¤ËRuby¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Ë¤Ï°Ê²¼</div><div class='add'>+¤Î´Ø¿ô¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)</div><div class='add'>+</div><div class='add'>+¤³¤Î´Ø¿ô¤Ï¥ª¥Ö¥¸¥§¥¯¥Èrecv¤Îmid¤Ç»ØÄê¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð</div><div class='add'>+¤·¤Þ¤¹¡¥¤½¤ÎÂ¾¤Ë°ú¿ô¤Î»ØÄê¤Î»ÅÊý¤¬°ã¤¦°Ê²¼¤Î´Ø¿ô¤â¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)</div><div class='add'>+  VALUE rb_apply(VALUE recv, ID mid, VALUE args)</div><div class='add'>+</div><div class='add'>+apply¤Ë¤Ï°ú¿ô¤È¤·¤ÆRuby¤ÎÇÛÎó¤òÍ¿¤¨¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+2.2.4 ÊÑ¿ô/Äê¿ô¤ò»²¾È/¹¹¿·¤¹¤ë</div><div class='add'>+</div><div class='add'>+C¤«¤é´Ø¿ô¤ò»È¤Ã¤Æ»²¾È¡¦¹¹¿·¤Ç¤­¤ë¤Î¤Ï¡¤Äê¿ô¡¤¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ</div><div class='add'>+¿ô¤Ç¤¹¡¥Âç°èÊÑ¿ô¤Ï°ìÉô¤Î¤â¤Î¤ÏC¤ÎÂç°èÊÑ¿ô¤È¤·¤Æ¥¢¥¯¥»¥¹¤Ç¤­</div><div class='add'>+¤Þ¤¹¡¥¥í¡¼¥«¥ëÊÑ¿ô¤ò»²¾È¤¹¤ëÊýË¡¤Ï¸ø³«¤·¤Æ¤¤¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ò»²¾È¡¦¹¹¿·¤¹¤ë´Ø¿ô¤Ï°Ê²¼¤ÎÄÌ</div><div class='add'>+¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_ivar_get(VALUE obj, ID id)</div><div class='add'>+  VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)</div><div class='add'>+</div><div class='add'>+id¤Ïrb_intern()¤ÇÆÀ¤é¤ì¤ë¤â¤Î¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+Äê¿ô¤ò»²¾È¤¹¤ë¤Ë¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+  VALUE rb_const_get(VALUE obj, ID id)</div><div class='add'>+</div><div class='add'>+Äê¿ô¤ò¿·¤·¤¯ÄêµÁ¤¹¤ë¤¿¤á¤Ë¤Ï¡Ø2.1.3 Äê¿ôÄêµÁ¡Ù¤Ç¾Ò²ð¤µ</div><div class='add'>+¤ì¤Æ¤¤¤ë´Ø¿ô¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+3¡¥Ruby¤ÈC¤È¤Î¾ðÊó¶¦Í­</div><div class='add'>+</div><div class='add'>+C¸À¸ì¤ÈRuby¤Î´Ö¤Ç¾ðÊó¤ò¶¦Í­¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤Æ²òÀâ¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+3.1 C¤«¤é»²¾È¤Ç¤­¤ëRuby¤ÎÄê¿ô</div><div class='add'>+</div><div class='add'>+°Ê²¼¤ÎRuby¤ÎÄê¿ô¤ÏC¤Î¥ì¥Ù¥ë¤«¤é»²¾È¤Ç¤­¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  Qtrue</div><div class='add'>+  Qfalse</div><div class='add'>+</div><div class='add'>+    ¿¿µ¶ÃÍ¡¥Qfalse¤ÏC¸À¸ì¤Ç¤âµ¶¤È¤ß¤Ê¤µ¤ì¤Þ¤¹(¤Ä¤Þ¤ê0)¡¥</div><div class='add'>+</div><div class='add'>+  Qnil</div><div class='add'>+</div><div class='add'>+    C¸À¸ì¤«¤é¸«¤¿¡Önil¡×¡¥</div><div class='add'>+</div><div class='add'>+3.2 C¤ÈRuby¤Ç¶¦Í­¤µ¤ì¤ëÂç°èÊÑ¿ô</div><div class='add'>+</div><div class='add'>+C¤ÈRuby¤ÇÂç°èÊÑ¿ô¤ò»È¤Ã¤Æ¾ðÊó¤ò¶¦Í­¤Ç¤­¤Þ¤¹¡¥¶¦Í­¤Ç¤­¤ëÂç°è</div><div class='add'>+ÊÑ¿ô¤Ë¤Ï¤¤¤¯¤Ä¤«¤Î¼ïÎà¤¬¤¢¤ê¤Þ¤¹¡¥¤½¤Î¤Ê¤«¤Ç¤â¤Ã¤È¤âÎÉ¤¯»È¤ï</div><div class='add'>+¤ì¤ë¤È»×¤ï¤ì¤ë¤Î¤Ïrb_define_variable()¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_variable(const char *name, VALUE *var)</div><div class='add'>+</div><div class='add'>+¤³¤Î´Ø¿ô¤ÏRuby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëÂç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ¤¹¡¥ÊÑ¿ôÌ¾¤¬</div><div class='add'>+`$'¤Ç»Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄÉ²Ã¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤ÎÃÍ¤òÊÑ</div><div class='add'>+¹¹¤¹¤ë¤È¼«Æ°Åª¤ËRuby¤ÎÂÐ±þ¤¹¤ëÊÑ¿ô¤ÎÃÍ¤âÊÑ¤ï¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¤Þ¤¿RubyÂ¦¤«¤é¤Ï¹¹¿·¤Ç¤­¤Ê¤¤ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡¥¤³¤Îread only¤Î</div><div class='add'>+ÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ÇÄêµÁ¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='add'>+</div><div class='add'>+¤³¤ì¤éÊÑ¿ô¤ÎÂ¾¤Ëhook¤ò¤Ä¤±¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤Ç¤­¤Þ¤¹¡¥hookÉÕ¤­</div><div class='add'>+¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤òÍÑ¤¤¤ÆÄêµÁ¤·¤Þ¤¹¡¥hookÉÕ¤­Âç°èÊÑ¿ô¤Î</div><div class='add'>+ÃÍ¤Î»²¾È¤äÀßÄê¤Ïhook¤Ç¹Ô¤¦É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='add'>+				 VALUE (*getter)(), void (*setter)())</div><div class='add'>+</div><div class='add'>+¤³¤Î´Ø¿ô¤ÏC¤Î´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿Âç°èÊÑ¿ô¤òÄêµÁ¤·¤Þ</div><div class='add'>+¤¹¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï´Ø¿ôgetter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì</div><div class='add'>+¤¿»þ¤Ë¤Ï´Ø¿ôsetter¤¬¸Æ¤Ð¤ì¤ë¡¥hook¤ò»ØÄê¤·¤Ê¤¤¾ì¹ç¤Ïgetter¤ä</div><div class='add'>+setter¤Ë0¤ò»ØÄê¤·¤Þ¤¹¡¥</div><div class='add'>+# getter¤âsetter¤â0¤Ê¤é¤Ðrb_define_variable()¤ÈÆ±¤¸¤Ë¤Ê¤ë¡¥</div><div class='add'>+</div><div class='add'>+getter¤Èsetter¤Î»ÅÍÍ¤Ï¼¡¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  VALUE (*getter)(ID id, VALUE *var);</div><div class='add'>+  void (*setter)(VALUE val, ID id, VALUE *var);</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+¤½¤ì¤«¤é¡¤ÂÐ±þ¤¹¤ëC¤ÎÊÑ¿ô¤ò»ý¤¿¤Ê¤¤Ruby¤ÎÂç°èÊÑ¿ô¤òÄêµÁ¤¹¤ë</div><div class='add'>+¤³¤È¤â¤Ç¤­¤Þ¤¹. ¤½¤ÎÊÑ¿ô¤ÎÃÍ¤Ï¥Õ¥Ã¥¯´Ø¿ô¤Î¤ß¤Ë¤è¤Ã¤Æ¼èÆÀ¡¦ÀßÄê</div><div class='add'>+¤µ¤ì¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  void rb_define_virtual_variable(const char *name,</div><div class='add'>+				  VALUE (*getter)(), void (*setter)())</div><div class='add'>+</div><div class='add'>+¤³¤Î´Ø¿ô¤Ë¤è¤Ã¤ÆÄêµÁ¤µ¤ì¤¿Ruby¤ÎÂç°èÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ï</div><div class='add'>+getter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+getter¤Èsetter¤Î»ÅÍÍ¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+  (*getter)(ID id);</div><div class='add'>+  (*setter)(VALUE val, ID id);</div><div class='add'>+</div><div class='add'>+3.3 C¤Î¥Ç¡¼¥¿¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¹¤ë</div><div class='add'>+</div><div class='add'>+C¤ÎÀ¤³¦¤ÇÄêµÁ¤µ¤ì¤¿¥Ç¡¼¥¿(¹½Â¤ÂÎ)¤òRuby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ</div><div class='add'>+¼è¤ê°·¤¤¤¿¤¤¾ì¹ç¤¬¤¢¤ê¤¨¤Þ¤¹¡¥¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¤Data¤È¤¤¤¦</div><div class='add'>+Ruby¥ª¥Ö¥¸¥§¥¯¥È¤ËC¤Î¹½Â¤ÂÎ(¤Ø¤Î¥Ý¥¤¥ó¥¿)¤ò¤¯¤ë¤à¤³¤È¤ÇRuby</div><div class='add'>+¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¼è¤ê°·¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+Data¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Æ¹½Â¤ÂÎ¤òRuby¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥«¥×¥»¥ë</div><div class='add'>+²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¤°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  Data_Wrap_Struct(klass, mark, free, ptr)</div><div class='add'>+</div><div class='add'>+¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+klass¤Ï¤³¤ÎData¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¯¥é¥¹¤Ç¤¹¡¥ptr¤Ï¥«¥×¥»¥ë²½¤¹¤ë</div><div class='add'>+C¤Î¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¹¡¥mark¤Ï¤³¤Î¹½Â¤ÂÎ¤¬Ruby¤Î¥ª¥Ö¥¸¥§</div><div class='add'>+¥¯¥È¤Ø¤Î»²¾È¤¬¤¢¤ë»þ¤Ë»È¤¦´Ø¿ô¤Ç¤¹¡¥¤½¤Î¤è¤¦¤Ê»²¾È¤ò´Þ¤Þ¤Ê¤¤</div><div class='add'>+»þ¤Ë¤Ï0¤ò»ØÄê¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+# ¤½¤Î¤è¤¦¤Ê»²¾È¤Ï´«¤á¤é¤ì¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+free¤Ï¤³¤Î¹½Â¤ÂÎ¤¬¤â¤¦ÉÔÍ×¤Ë¤Ê¤Ã¤¿»þ¤Ë¸Æ¤Ð¤ì¤ë´Ø¿ô¤Ç¤¹¡¥¤³¤Î</div><div class='add'>+´Ø¿ô¤¬¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤«¤é¸Æ¤Ð¤ì¤Þ¤¹¡¥¤³¤ì¤¬-1¤Î¾ì¹ç¤Ï¡¤Ã±</div><div class='add'>+½ã¤Ë³«Êü¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+mark¤ª¤è¤Ófree´Ø¿ô¤ÏGC¼Â¹ÔÃæ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹.</div><div class='add'>+¤Ê¤ª, GC¼Â¹ÔÃæ¤ÏRuby¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥í¥±¡¼¥·¥ç¥ó¤Ï¶Ø»ß¤µ¤ì¤Þ</div><div class='add'>+¤¹. ¤è¤Ã¤Æ, mark¤ª¤è¤Ófree´Ø¿ô¤ÇRuby¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥í¥±¡¼¥·</div><div class='add'>+¥ç¥ó¤Ï¹Ô¤ï¤Ê¤¤¤Ç¤¯¤À¤µ¤¤.</div><div class='add'>+</div><div class='add'>+C¤Î¹½Â¤ÂÎ¤Î³äÅö¤ÈData¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤òÆ±»þ¤Ë¹Ô¤¦¥Þ¥¯¥í¤È</div><div class='add'>+¤·¤Æ°Ê²¼¤Î¤â¤Î¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  Data_Make_Struct(klass, type, mark, free, sval)</div><div class='add'>+</div><div class='add'>+¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+klass, mark, free¤ÏData_Wrap_Struct¤ÈÆ±¤¸Æ¯¤­¤ò¤·¤Þ¤¹¡¥type</div><div class='add'>+¤Ï³ä¤êÅö¤Æ¤ëC¹½Â¤ÂÎ¤Î·¿¤Ç¤¹¡¥³ä¤êÅö¤Æ¤é¤ì¤¿¹½Â¤ÂÎ¤ÏÊÑ¿ôsval</div><div class='add'>+¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥¤³¤ÎÊÑ¿ô¤Î·¿¤Ï (type*) ¤Ç¤¢¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤Î¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤òÍÑ¤¤</div><div class='add'>+¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  Data_Get_Struct(obj, type, sval)</div><div class='add'>+</div><div class='add'>+C¤Î¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÏÊÑ¿ôsval¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¤³¤ì¤é¤ÎData¤Î»È¤¤Êý¤Ï¤Á¤ç¤Ã¤ÈÊ¬¤«¤ê¤Ë¤¯¤¤¤Î¤Ç¡¤¸å¤ÇÀâÌÀ¤¹¤ë</div><div class='add'>+ÎãÂê¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+4¡¥ÎãÂê - dbm¥Ñ¥Ã¥±¡¼¥¸¤òºî¤ë</div><div class='add'>+</div><div class='add'>+¤³¤³¤Þ¤Ç¤ÎÀâÌÀ¤Ç¤È¤ê¤¢¤¨¤º³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïºî¤ì¤ë¤Ï¤º¤Ç¤¹¡¥</div><div class='add'>+Ruby¤Îext¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤Ç¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëdbm¥é¥¤¥Ö¥é¥ê¤òÎã¤Ë</div><div class='add'>+¤·¤ÆÃÊ³¬Åª¤ËÀâÌÀ¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+(1) ¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ë</div><div class='add'>+</div><div class='add'>+  % mkdir ext/dbm</div><div class='add'>+</div><div class='add'>+Ruby 1.1¤«¤é¤ÏÇ¤°Õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºî</div><div class='add'>+¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡¥Ruby¤ËÀÅÅª¤Ë¥ê¥ó¥¯¤¹¤ë¾ì¹ç¤Ë</div><div class='add'>+¤ÏRuby¤òÅ¸³«¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¡¤ext¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Ë³ÈÄ¥</div><div class='add'>+¥é¥¤¥Ö¥é¥êÍÑ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥Ì¾Á°¤ÏÅ¬Åö¤Ë</div><div class='add'>+Áª¤ó¤Ç¹½¤¤¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+(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'>+</div><div class='add'>+(3) C¥³¡¼¥É¤ò½ñ¤¯</div><div class='add'>+</div><div class='add'>+³ÈÄ¥¥é¥¤¥Ö¥é¥êËÜÂÎ¤È¤Ê¤ëC¸À¸ì¤Î¥½¡¼¥¹¤ò½ñ¤­¤Þ¤¹¡¥C¸À¸ì¤Î¥½¡¼</div><div class='add'>+¥¹¤¬¤Ò¤È¤Ä¤Î»þ¤Ë¤Ï¡Ö¥é¥¤¥Ö¥é¥êÌ¾.c¡×¤òÁª¤Ö¤ÈÎÉ¤¤¤Ç¤·¤ç¤¦¡¥C</div><div class='add'>+¸À¸ì¤Î¥½¡¼¥¹¤¬Ê£¿ô¤Î¾ì¹ç¤Ë¤ÏµÕ¤Ë¡Ö¥é¥¤¥Ö¥é¥êÌ¾.c¡×¤È¤¤¤¦¥Õ¥¡</div><div class='add'>+¥¤¥ëÌ¾¤ÏÈò¤±¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤È¥â¥¸¥å¡¼</div><div class='add'>+¥ëÀ¸À®»þ¤ËÃæ´ÖÅª¤ËÀ¸À®¤µ¤ì¤ë¡Ö¥é¥¤¥Ö¥é¥êÌ¾.o¡×¤È¤¤¤¦¥Õ¥¡¥¤¥ë</div><div class='add'>+¤È¤¬¾×ÆÍ¤¹¤ë¤«¤é¤Ç¤¹¡¥¤Þ¤¿¡¤¸å½Ò¤¹¤ë mkmf ¥é¥¤¥Ö¥é¥ê¤Î¤¤¤¯¤Ä</div><div class='add'>+¤«¤Î´Ø¿ô¤¬¥³¥ó¥Ñ¥¤¥ë¤òÍ×¤¹¤ë¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡Öconftest.c¡×¤È¤¤</div><div class='add'>+¤¦¥Õ¥¡¥¤¥ëÌ¾¤ò»ÈÍÑ¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¥½¡¼¥¹¥Õ¥¡¥¤¥ë</div><div class='add'>+Ì¾¤È¤·¤Æ¡Öconftest.c¡×¤ò»ÈÍÑ¤·¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+Ruby¤Ï³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤¹¤ë»þ¤Ë¡ÖInit_¥é¥¤¥Ö¥é¥êÌ¾¡×¤È</div><div class='add'>+¤¤¤¦´Ø¿ô¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤Î¾ì¹ç¡ÖInit_dbm¡×</div><div class='add'>+¤Ç¤¹¡¥¤³¤Î´Ø¿ô¤ÎÃæ¤Ç¥¯¥é¥¹¡¤¥â¥¸¥å¡¼¥ë¡¤¥á¥½¥Ã¥É¡¤Äê¿ô¤Ê¤É¤Î</div><div class='add'>+ÄêµÁ¤ò¹Ô¤¤¤Þ¤¹¡¥dbm.c¤«¤é°ìÉô°úÍÑ¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+void</div><div class='add'>+Init_dbm(void)</div><div class='add'>+{</div><div class='add'>+    /* DBM¥¯¥é¥¹¤òÄêµÁ¤¹¤ë */</div><div class='add'>+    cDBM = rb_define_class("DBM", rb_cObject);</div><div class='add'>+    /* DBM¤ÏEnumerate¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë */</div><div class='add'>+    rb_include_module(cDBM, rb_mEnumerable);</div><div class='add'>+</div><div class='add'>+    /* DBM¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥Éopen(): °ú¿ô¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë */</div><div class='add'>+    rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);</div><div class='add'>+</div><div class='add'>+    /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥Éclose(): °ú¿ô¤Ï¤Ê¤· */</div><div class='add'>+    rb_define_method(cDBM, "close", fdbm_close, 0);</div><div class='add'>+    /* DBM¥¯¥é¥¹¤Î¥á¥½¥Ã¥É[]: °ú¿ô¤Ï1¸Ä */</div><div class='add'>+    rb_define_method(cDBM, "[]", fdbm_fetch, 1);</div><div class='add'>+		:</div><div class='add'>+</div><div class='add'>+    /* DBM¥Ç¡¼¥¿¤ò³ÊÇ¼¤¹¤ë¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ôÌ¾¤Î¤¿¤á¤ÎID */</div><div class='add'>+    id_dbm = rb_intern("dbm");</div><div class='add'>+}</div><div class='add'>+--</div><div class='add'>+</div><div class='add'>+DBM¥é¥¤¥Ö¥é¥ê¤Ïdbm¤Î¥Ç¡¼¥¿¤ÈÂÐ±þ¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ë¤Ï¤º¤Ç</div><div class='add'>+¤¹¤«¤é¡¤C¤ÎÀ¤³¦¤Îdbm¤òRuby¤ÎÀ¤³¦¤Ë¼è¤ê¹þ¤àÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+dbm.c¤Ç¤ÏData_Make_Struct¤ò°Ê²¼¤Î¤è¤¦¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+struct dbmdata {</div><div class='add'>+    int  di_size;</div><div class='add'>+    DBM *di_dbm;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);</div><div class='add'>+--</div><div class='add'>+</div><div class='add'>+¤³¤³¤Ç¤Ïdbmstruct¹½Â¤ÂÎ¤Ø¤Î¥Ý¥¤¥ó¥¿¤òData¤Ë¥«¥×¥»¥ë²½¤·¤Æ¤¤</div><div class='add'>+¤Þ¤¹¡¥DBM*¤òÄ¾ÀÜ¥«¥×¥»¥ë²½¤·¤Ê¤¤¤Î¤Ïclose()¤·¤¿»þ¤Î½èÍý¤ò¹Í</div><div class='add'>+¤¨¤Æ¤Î¤³¤È¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+Data¥ª¥Ö¥¸¥§¥¯¥È¤«¤édbmstruct¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤¹¤¿¤á</div><div class='add'>+¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+#define GetDBM(obj, dbmp) {\</div><div class='add'>+    Data_Get_Struct(obj, struct dbmdata, dbmp);\</div><div class='add'>+    if (dbmp-&gt;di_dbm == 0) closed_dbm();\</div><div class='add'>+}</div><div class='add'>+--</div><div class='add'>+</div><div class='add'>+¤Á¤ç¤Ã¤ÈÊ£»¨¤Ê¥Þ¥¯¥í¤Ç¤¹¤¬¡¤Í×¤¹¤ë¤Ëdbmdata¹½Â¤ÂÎ¤Î¥Ý¥¤¥ó¥¿</div><div class='add'>+¤Î¼è¤ê½Ð¤·¤È¡¤close¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¤Þ¤È¤á¤Æ¤¤</div><div class='add'>+¤ë¤À¤±¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+DBM¥¯¥é¥¹¤Ë¤Ï¤¿¤¯¤µ¤ó¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¤¬¡¤Ê¬Îà¤¹¤ë¤È3¼ïÎà¤Î</div><div class='add'>+°ú¿ô¤Î¼õ¤±Êý¤¬¤¢¤ê¤Þ¤¹¡¥¤Ò¤È¤Ä¤Ï°ú¿ô¤Î¿ô¤¬¸ÇÄê¤Î¤â¤Î¤Ç¡¤Îã¤È</div><div class='add'>+¤·¤Æ¤Ïdelete¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡¥delete¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë</div><div class='add'>+fdbm_delete()¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+static VALUE</div><div class='add'>+fdbm_delete(VALUE obj, VALUE keystr)</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°ú¿ô¤¬self¡¤Âè2°ú¿ô°Ê¹ß¤¬¥á¥½¥Ã¥É</div><div class='add'>+¤Î°ú¿ô¤È¤Ê¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+°ú¿ô¤Î¿ô¤¬ÉÔÄê¤Î¤â¤Î¤ÏC¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î¤ÈRuby¤ÎÇÛÎó¤Ç¼õ¤±</div><div class='add'>+¤ë¤â¤Î¤È¤¬¤¢¤ê¤Þ¤¹¡¥dbm¥é¥¤¥Ö¥é¥ê¤ÎÃæ¤Ç¡¤C¤ÎÇÛÎó¤Ç¼õ¤±¤ë¤â¤Î</div><div class='add'>+¤ÏDBM¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤Ç¤¢¤ëopen()¤Ç¤¹¡¥¤³¤ì¤ò¼ÂÁõ¤·¤Æ¤¤¤ë´Ø</div><div class='add'>+¿ôfdbm_s_open()¤Ï¤³¤¦¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+static VALUE</div><div class='add'>+fdbm_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+	:</div><div class='add'>+    if (rb_scan_args(argc, argv, "11", &amp;file, &amp;vmode) == 1) {</div><div class='add'>+	mode = 0666;		/* default value */</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°ú¿ô¤¬Í¿¤¨¤é¤ì¤¿°ú¿ô¤Î¿ô¡¤Âè2°ú¿ô¤¬Í¿¤¨</div><div class='add'>+¤é¤ì¤¿°ú¿ô¤ÎÆþ¤Ã¤Æ¤¤¤ëÇÛÎó¤Ë¤Ê¤ê¤Þ¤¹¡¥self¤ÏÂè3°ú¿ô¤È¤·¤ÆÍ¿</div><div class='add'>+¤¨¤é¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¤³¤ÎÇÛÎó¤ÇÍ¿¤¨¤é¤ì¤¿°ú¿ô¤ò²òÀÏ¤¹¤ë¤¿¤á¤Î´Ø¿ô¤¬open()¤Ç¤â»È¤ï</div><div class='add'>+¤ì¤Æ¤¤¤ërb_scan_args()¤Ç¤¹¡¥Âè3°ú¿ô¤Ë»ØÄê¤·¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾</div><div class='add'>+¤¤¡¤Âè4ÊÑ¿ô°Ê¹ß¤Ë»ØÄê¤·¤¿VALUE¤Ø¤Î»²¾È¤ËÃÍ¤òÂåÆþ¤·¤Æ¤¯¤ì¤Þ</div><div class='add'>+¤¹¡¥</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+°ú¿ô¤òRuby¤ÎÇÛÎó¤È¤·¤Æ¼õ¤±¼è¤ë¥á¥½¥Ã¥É¤ÎÎã¤Ë¤Ï</div><div class='add'>+Thread#initialize¤¬¤¢¤ê¤Þ¤¹¡¥¼ÂÁõ¤Ï¤³¤¦¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+static VALUE</div><div class='add'>+thread_initialize(VALUE thread, VALUE args)</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°ú¿ô¤Ïself¡¤Âè2°ú¿ô¤ÏRuby¤ÎÇÛÎó¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+** Ãí°Õ»ö¹à</div><div class='add'>+</div><div class='add'>+Ruby¤È¶¦Í­¤Ï¤·¤Ê¤¤¤¬Ruby¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊÇ¼¤¹¤ë²ÄÇ½À­¤Î¤¢¤ë</div><div class='add'>+C¤ÎÂç°èÊÑ¿ô¤Ï°Ê²¼¤Î´Ø¿ô¤ò»È¤Ã¤ÆRuby¥¤¥ó¥¿¥×¥ê¥¿¤ËÊÑ¿ô¤ÎÂ¸ºß</div><div class='add'>+¤ò¶µ¤¨¤Æ¤¢¤²¤Æ¤¯¤À¤µ¤¤¡¥¤Ç¤Ê¤¤¤ÈGC¤Ç¥È¥é¥Ö¥ë¤òµ¯¤³¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  void rb_global_variable(VALUE *var)</div><div class='add'>+</div><div class='add'>+(4) extconf.rb¤òÍÑ°Õ¤¹¤ë</div><div class='add'>+</div><div class='add'>+Makefile¤òºî¤ë¾ì¹ç¤Î¿÷·¿¤Ë¤Ê¤ëextconf.rb¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê</div><div class='add'>+¤Þ¤¹¡¥extconf.rb¤Ï¥é¥¤¥Ö¥é¥ê¤Î¥³¥ó¥Ñ¥¤¥ë¤ËÉ¬Í×¤Ê¾ò·ï¤Î¥Á¥§¥Ã</div><div class='add'>+¥¯¤Ê¤É¤ò¹Ô¤¦¤³¤È¤¬ÌÜÅª¤Ç¤¹¡¥¤Þ¤º¡¤</div><div class='add'>+</div><div class='add'>+  require 'mkmf'</div><div class='add'>+</div><div class='add'>+¤òextconf.rb¤ÎÀèÆ¬¤ËÃÖ¤­¤Þ¤¹¡¥extconf.rb¤ÎÃæ¤Ç¤Ï°Ê²¼¤ÎRuby´Ø</div><div class='add'>+¿ô¤ò»È¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  have_library(lib, func): ¥é¥¤¥Ö¥é¥ê¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='add'>+  have_func(func, header): ´Ø¿ô¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='add'>+  have_header(header): ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</div><div class='add'>+  create_makefile(target): Makefile¤ÎÀ¸À®</div><div class='add'>+</div><div class='add'>+°Ê²¼¤ÎÊÑ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  $CFLAGS: ¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-O¤Ê¤É)</div><div class='add'>+  $CPPFLAGS: ¥×¥ê¥×¥í¥»¥Ã¥µ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-I¤ä-D¤Ê¤É)</div><div class='add'>+  $LDFLAGS: ¥ê¥ó¥¯»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-L¤Ê¤É)</div><div class='add'>+  $objs: ¥ê¥ó¥¯¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ëÌ¾¤Î¥ê¥¹¥È</div><div class='add'>+</div><div class='add'>+¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥ê¥¹¥È¤Ï¡¤ÄÌ¾ï¤Ï¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·</div><div class='add'>+¤Æ¼«Æ°Åª¤ËÀ¸À®¤µ¤ì¤Þ¤¹¤¬¡¤make¤ÎÅÓÃæ¤Ç¥½¡¼¥¹¤òÀ¸À®¤¹¤ë¤è¤¦¤Ê</div><div class='add'>+¾ì¹ç¤ÏÌÀ¼¨Åª¤Ë»ØÄê¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¾ò·ï¤¬Â·¤ï¤º¡¤¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥³¥ó</div><div class='add'>+¥Ñ¥¤¥ë¤·¤Ê¤¤»þ¤Ë¤Ïcreate_makefile¤ò¸Æ¤Ð¤Ê¤±¤ì¤ÐMakefile¤ÏÀ¸</div><div class='add'>+À®¤µ¤ì¤º¡¤¥³¥ó¥Ñ¥¤¥ë¤â¹Ô¤ï¤ì¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+(5) depend¤òÍÑ°Õ¤¹¤ë</div><div class='add'>+</div><div class='add'>+¤â¤·¡¤¥Ç¥£¥ì¥¯¥È¥ê¤Ëdepend¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ì¤Ð¡¤</div><div class='add'>+Makefile¤¬°ÍÂ¸´Ø·¸¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¯¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  % gcc -MM *.c &gt; depend</div><div class='add'>+</div><div class='add'>+¤Ê¤É¤Çºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡¥¤¢¤Ã¤ÆÂ»¤ÏÌµ¤¤¤Ç¤·¤ç¤¦¡¥</div><div class='add'>+</div><div class='add'>+(6) Makefile¤òÀ¸À®¤¹¤ë</div><div class='add'>+</div><div class='add'>+Makefile¤ò¼ÂºÝ¤ËÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï</div><div class='add'>+</div><div class='add'>+  ruby extconf.rb</div><div class='add'>+</div><div class='add'>+¤È¤·¤Þ¤¹¡¥extconf.rb¤Ë require 'mkmf' ¤Î¹Ô¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼</div><div class='add'>+¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¤°ú¿ô¤òÄÉ²Ã¤·¤Æ</div><div class='add'>+</div><div class='add'>+  ruby -r mkmf extconf.rb</div><div class='add'>+</div><div class='add'>+¤È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+site_ruby ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¯¡¤</div><div class='add'>+vendor_ruby ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¾ì¹ç¤Ë¤Ï</div><div class='add'>+°Ê²¼¤Î¤è¤¦¤Ë --vendor ¥ª¥×¥·¥ç¥ó¤ò²Ã¤¨¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+  ruby extconf.rb --vendor</div><div class='add'>+</div><div class='add'>+¥Ç¥£¥ì¥¯¥È¥ê¤òext°Ê²¼¤ËÍÑ°Õ¤·¤¿¾ì¹ç¤Ë¤ÏRubyÁ´ÂÎ¤Îmake¤Î»þ¤Ë</div><div class='add'>+¼«Æ°Åª¤ËMakefile¤¬À¸À®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¤¤³¤Î¥¹¥Æ¥Ã¥×¤ÏÉÔÍ×¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+(7) make¤¹¤ë</div><div class='add'>+</div><div class='add'>+Æ°Åª¥ê¥ó¥¯¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¾ì¹ç¤Ë¤Ï¤½¤Î¾ì¤Çmake¤·¤Æ¤¯¤À¤µ</div><div class='add'>+¤¤¡¥É¬Í×¤Ç¤¢¤ì¤Ð make install ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+ext°Ê²¼¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÍÑ°Õ¤·¤¿¾ì¹ç¤Ï¡¤Ruby¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ç</div><div class='add'>+make¤ò¼Â¹Ô¤¹¤ë¤ÈMakefile¤òÀ¸À®¤«¤émake¡¤É¬Í×¤Ë¤è¤Ã¤Æ¤Ï¤½¤Î¥â</div><div class='add'>+¥¸¥å¡¼¥ë¤ÎRuby¤Ø¤Î¥ê¥ó¥¯¤Þ¤Ç¼«Æ°Åª¤Ë¼Â¹Ô¤·¤Æ¤¯¤ì¤Þ¤¹¡¥</div><div class='add'>+extconf.rb¤ò½ñ¤­´¹¤¨¤ë¤Ê¤É¤·¤ÆMakefile¤ÎºÆÀ¸À®¤¬É¬Í×¤Ê»þ¤Ï¤Þ</div><div class='add'>+¤¿Ruby¥Ç¥£¥ì¥¯¥È¥ê¤Çmake¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ïmake install¤ÇRuby¥é¥¤¥Ö¥é¥ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î</div><div class='add'>+²¼¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡¥¤â¤·³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤È¶¨Ä´¤·¤Æ»È¤¦Ruby¤Çµ­</div><div class='add'>+½Ò¤µ¤ì¤¿¥×¥í¥°¥é¥à¤¬¤¢¤ê¡¤Ruby¥é¥¤¥Ö¥é¥ê¤ËÃÖ¤­¤¿¤¤¾ì¹ç¤Ë¤Ï¡¤</div><div class='add'>+³ÈÄ¥¥é¥¤¥Ö¥é¥êÍÑ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë lib ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê</div><div class='add'>+¤òºî¤ê¡¤¤½¤³¤Ë ³ÈÄ¥»Ò .rb ¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤¤¤Æ¤ª¤±¤ÐÆ±»þ¤Ë¥¤¥ó</div><div class='add'>+¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+(8) ¥Ç¥Ð¥Ã¥°</div><div class='add'>+</div><div class='add'>+¤Þ¤¢¡¤¥Ç¥Ð¥Ã¥°¤·¤Ê¤¤¤ÈÆ°¤«¤Ê¤¤¤Ç¤·¤ç¤¦¤Í¡¥ext/Setup¤Ë¥Ç¥£¥ì</div><div class='add'>+¥¯¥È¥êÌ¾¤ò½ñ¤¯¤ÈÀÅÅª¤Ë¥ê¥ó¥¯¤¹¤ë¤Î¤Ç¥Ç¥Ð¥Ã¥¬¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê</div><div class='add'>+¤ê¤Þ¤¹¡¥¤½¤ÎÊ¬¥³¥ó¥Ñ¥¤¥ë¤¬ÃÙ¤¯¤Ê¤ê¤Þ¤¹¤±¤É¡¥</div><div class='add'>+</div><div class='add'>+(9) ¤Ç¤­¤¢¤¬¤ê</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'>+Appendix A. Ruby¤Î¥½¡¼¥¹¥³¡¼¥É¤ÎÊ¬Îà</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'>+</div><div class='add'>+Ruby¸À¸ì¤Î¥³¥¢</div><div class='add'>+</div><div class='add'>+  class.c         : ¥¯¥é¥¹¤È¥â¥¸¥å¡¼¥ë</div><div class='add'>+  error.c         : Îã³°¥¯¥é¥¹¤ÈÎã³°µ¡¹½</div><div class='add'>+  gc.c            : µ­²±ÎÎ°è´ÉÍý</div><div class='add'>+  load.c          : ¥é¥¤¥Ö¥é¥ê¤Î¥í¡¼¥É</div><div class='add'>+  object.c        : ¥ª¥Ö¥¸¥§¥¯¥È</div><div class='add'>+  variable.c      : ÊÑ¿ô¤ÈÄê¿ô</div><div class='add'>+</div><div class='add'>+Ruby¤Î¹½Ê¸²òÀÏ´ï</div><div class='add'>+  parse.y         : »ú¶ç²òÀÏ´ï¤È¹½Ê¸ÄêµÁ</div><div class='add'>+    -&gt; parse.c    : ¼«Æ°À¸À®</div><div class='add'>+  keywords        : Í½Ìó¸ì</div><div class='add'>+    -&gt; lex.c      : ¼«Æ°À¸À®</div><div class='add'>+</div><div class='add'>+Ruby¤ÎÉ¾²Á´ï (ÄÌ¾ÎYARV)</div><div class='add'>+  compile.c</div><div class='add'>+  eval.c</div><div class='add'>+  eval_error.c</div><div class='add'>+  eval_jump.c</div><div class='add'>+  eval_safe.c</div><div class='add'>+  insns.def           : ²¾ÁÛµ¡³£¸ì¤ÎÄêµÁ</div><div class='add'>+  iseq.c              : VM::ISeq¤Î¼ÂÁõ</div><div class='add'>+  thread.c            : ¥¹¥ì¥Ã¥É´ÉÍý¤È¥³¥ó¥Æ¥­¥¹¥ÈÀÚ¤êÂØ¤¨</div><div class='add'>+  thread_win32.c      : ¥¹¥ì¥Ã¥É¼ÂÁõ</div><div class='add'>+  thread_pthread.c    : Æ±¾å</div><div class='add'>+  vm.c</div><div class='add'>+  vm_dump.c</div><div class='add'>+  vm_eval.c</div><div class='add'>+  vm_exec.c</div><div class='add'>+  vm_insnhelper.c</div><div class='add'>+  vm_method.c</div><div class='add'>+</div><div class='add'>+  opt_insns_unif.def  : Ì¿ÎáÍ»¹ç</div><div class='add'>+  opt_operand.def     : ºÇÅ¬²½¤Î¤¿¤á¤ÎÄêµÁ</div><div class='add'>+</div><div class='add'>+    -&gt; insn*.inc      : ¼«Æ°À¸À®</div><div class='add'>+    -&gt; opt*.inc       : ¼«Æ°À¸À®</div><div class='add'>+    -&gt; vm.inc         : ¼«Æ°À¸À®</div><div class='add'>+</div><div class='add'>+Àµµ¬É½¸½¥¨¥ó¥¸¥ó (µ´¼Ö)</div><div class='add'>+  regex.c</div><div class='add'>+  regcomp.c</div><div class='add'>+  regenc.c</div><div class='add'>+  regerror.c</div><div class='add'>+  regexec.c</div><div class='add'>+  regparse.c</div><div class='add'>+  regsyntax.c</div><div class='add'>+</div><div class='add'>+¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô</div><div class='add'>+</div><div class='add'>+  debug.c       : C¥Ç¥Ð¥Ã¥¬ÍÑ¤Î¥Ç¥Ð¥Ã¥°¥·¥ó¥Ü¥ë</div><div class='add'>+  dln.c         : Æ°Åª¥í¡¼¥Ç¥£¥ó¥°</div><div class='add'>+  st.c          : ÈÆÍÑ¥Ï¥Ã¥·¥åÉ½</div><div class='add'>+  strftime.c    : »þ¹ïÀ°·Á</div><div class='add'>+  util.c        : ¤½¤ÎÂ¾¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£</div><div class='add'>+</div><div class='add'>+Ruby¥³¥Þ¥ó¥É¤Î¼ÂÁõ</div><div class='add'>+</div><div class='add'>+  dmyext.c</div><div class='add'>+  dmydln.c</div><div class='add'>+  dmyencoding.c</div><div class='add'>+  id.c</div><div class='add'>+  inits.c</div><div class='add'>+  main.c</div><div class='add'>+  ruby.c</div><div class='add'>+  version.c</div><div class='add'>+</div><div class='add'>+  gem_prelude.rb</div><div class='add'>+  prelude.rb</div><div class='add'>+</div><div class='add'>+¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê</div><div class='add'>+</div><div class='add'>+  array.c       : Array</div><div class='add'>+  bignum.c      : Bignum</div><div class='add'>+  compar.c      : Comparable</div><div class='add'>+  complex.c     : Complex</div><div class='add'>+  cont.c        : Fiber, Continuation</div><div class='add'>+  dir.c         : Dir</div><div class='add'>+  enum.c        : Enumerable</div><div class='add'>+  enumerator.c  : Enumerator</div><div class='add'>+  file.c        : File</div><div class='add'>+  hash.c        : Hash</div><div class='add'>+  io.c          : IO</div><div class='add'>+  marshal.c     : Marshal</div><div class='add'>+  math.c        : Math</div><div class='add'>+  numeric.c     : Numeric, Integer, Fixnum, Float</div><div class='add'>+  pack.c        : Array#pack, String#unpack</div><div class='add'>+  proc.c        : Binding, Proc</div><div class='add'>+  process.c     : Process</div><div class='add'>+  random.c      : Íð¿ô</div><div class='add'>+  range.c       : Range</div><div class='add'>+  rational.c    : Rational</div><div class='add'>+  re.c          : Regexp, MatchData</div><div class='add'>+  signal.c      : Signal</div><div class='add'>+  sprintf.c     : </div><div class='add'>+  string.c      : String</div><div class='add'>+  struct.c      : Struct</div><div class='add'>+  time.c        : Time</div><div class='add'>+</div><div class='add'>+  defs/known_errors.def  : Îã³°¥¯¥é¥¹ Errno::*</div><div class='add'>+    -&gt; known_errors.inc  : ¼«Æ°À¸À®</div><div class='add'>+</div><div class='add'>+Â¿¸À¸ì²½</div><div class='add'>+  encoding.c    : Encoding</div><div class='add'>+  transcode.c   : Encoding::Converter</div><div class='add'>+  enc/*.c       : ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¥¯¥é¥¹·²</div><div class='add'>+  enc/trans/*   : ¥³¡¼¥É¥Ý¥¤¥ó¥ÈÂÐ±þÉ½</div><div class='add'>+</div><div class='add'>+goruby¥³¥Þ¥ó¥É¤Î¼ÂÁõ</div><div class='add'>+  </div><div class='add'>+  goruby.c</div><div class='add'>+  golf_prelude.rb      : goruby¸ÇÍ­¤Î¥é¥¤¥Ö¥é¥ê</div><div class='add'>+    -&gt; golf_prelude.c  : ¼«Æ°À¸À®</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Appendix B. ³ÈÄ¥ÍÑ´Ø¿ô¥ê¥Õ¥¡¥ì¥ó¥¹</div><div class='add'>+</div><div class='add'>+C¸À¸ì¤«¤éRuby¤Îµ¡Ç½¤òÍøÍÑ¤¹¤ëAPI¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+** ·¿</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+</div><div class='add'>+  Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÉ½¸½¤¹¤ë·¿¡¥É¬Í×¤Ë±þ¤¸¤Æ¥­¥ã¥¹¥È¤·¤ÆÍÑ¤¤¤ë¡¥</div><div class='add'>+  ÁÈ¤ß¹þ¤ß·¿¤òÉ½¸½¤¹¤ëC¤Î·¿¤Ïruby.h¤Ëµ­½Ò¤·¤Æ¤¢¤ëR¤Ç»Ï¤Þ¤ë¹½Â¤</div><div class='add'>+  ÂÎ¤Ç¤¢¤ë¡¥VALUE·¿¤ò¤³¤ì¤é¤Ë¥­¥ã¥¹¥È¤¹¤ë¤¿¤á¤ËR¤Ç»Ï¤Þ¤ë¹½Â¤ÂÎ</div><div class='add'>+  Ì¾¤òÁ´¤ÆÂçÊ¸»ú¤Ë¤·¤¿Ì¾Á°¤Î¥Þ¥¯¥í¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡¥</div><div class='add'>+</div><div class='add'>+** ÊÑ¿ô¡¦Äê¿ô</div><div class='add'>+</div><div class='add'>+Qnil</div><div class='add'>+</div><div class='add'>+  Äê¿ô: nil¥ª¥Ö¥¸¥§¥¯¥È</div><div class='add'>+</div><div class='add'>+Qtrue</div><div class='add'>+</div><div class='add'>+  Äê¿ô: true¥ª¥Ö¥¸¥§¥¯¥È(¿¿¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ)</div><div class='add'>+</div><div class='add'>+Qfalse</div><div class='add'>+</div><div class='add'>+  Äê¿ô: false¥ª¥Ö¥¸¥§¥¯¥È</div><div class='add'>+</div><div class='add'>+** C¥Ç¡¼¥¿¤Î¥«¥×¥»¥ë²½</div><div class='add'>+</div><div class='add'>+Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)</div><div class='add'>+</div><div class='add'>+  C¤ÎÇ¤°Õ¤Î¥Ý¥¤¥ó¥¿¤ò¥«¥×¥»¥ë²½¤·¤¿Ruby¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤¹¡¥¤³</div><div class='add'>+  ¤Î¥Ý¥¤¥ó¥¿¤¬Ruby¤«¤é¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿»þ¡¤free¤Ç»ØÄê¤·¤¿</div><div class='add'>+  ´Ø¿ô¤¬¸Æ¤Ð¤ì¤ë¡¥¤Þ¤¿¡¤¤³¤Î¥Ý¥¤¥ó¥¿¤Î»Ø¤¹¥Ç¡¼¥¿¤¬Â¾¤ÎRuby¥ª¥Ö</div><div class='add'>+  ¥¸¥§¥¯¥È¤ò»Ø¤·¤Æ¤¤¤ë¾ì¹ç¡¤mark¤Ë»ØÄê¤¹¤ë´Ø¿ô¤Ç¥Þ¡¼¥¯¤¹¤ëÉ¬Í×</div><div class='add'>+  ¤¬¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+Data_Make_Struct(klass, type, mark, free, sval)</div><div class='add'>+</div><div class='add'>+  type·¿¤Î¥á¥â¥ê¤òmalloc¤·¡¤ÊÑ¿ôsval¤ËÂåÆþ¤·¤¿¸å¡¤¤½¤ì¤ò¥«¥×¥»</div><div class='add'>+  ¥ë²½¤·¤¿¥Ç¡¼¥¿¤òÊÖ¤¹¥Þ¥¯¥í¡¥</div><div class='add'>+</div><div class='add'>+Data_Get_Struct(data, type, sval)</div><div class='add'>+</div><div class='add'>+  data¤«¤étype·¿¤Î¥Ý¥¤¥ó¥¿¤ò¼è¤ê½Ð¤·ÊÑ¿ôsval¤ËÂåÆþ¤¹¤ë¥Þ¥¯¥í¡¥</div><div class='add'>+</div><div class='add'>+** ·¿¥Á¥§¥Ã¥¯</div><div class='add'>+</div><div class='add'>+TYPE(value)</div><div class='add'>+FIXNUM_P(value)</div><div class='add'>+NIL_P(value)</div><div class='add'>+void Check_Type(VALUE value, int type)</div><div class='add'>+void Check_SafeStr(VALUE value)</div><div class='add'>+</div><div class='add'>+** ·¿ÊÑ´¹</div><div class='add'>+</div><div class='add'>+FIX2INT(value), INT2FIX(i)</div><div class='add'>+FIX2LONG(value), LONG2FIX(l)</div><div class='add'>+NUM2INT(value), INT2NUM(i)</div><div class='add'>+NUM2UINT(value), UINT2NUM(ui)</div><div class='add'>+NUM2LONG(value), LONG2NUM(l)</div><div class='add'>+NUM2ULONG(value), ULONG2NUM(ul)</div><div class='add'>+NUM2LL(value), LL2NUM(ll)</div><div class='add'>+NUM2ULL(value), ULL2NUM(ull)</div><div class='add'>+NUM2OFFT(value), OFFT2NUM(off)</div><div class='add'>+NUM2SIZET(value), SIZET2NUM(size)</div><div class='add'>+NUM2SSIZET(value), SSIZET2NUM(ssize)</div><div class='add'>+NUM2DBL(value)</div><div class='add'>+rb_float_new(f)</div><div class='add'>+StringValue(value)</div><div class='add'>+StringValuePtr(value)</div><div class='add'>+StringValueCStr(value)</div><div class='add'>+rb_str_new2(s)</div><div class='add'>+</div><div class='add'>+** ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ</div><div class='add'>+</div><div class='add'>+VALUE rb_define_class(const char *name, VALUE super)</div><div class='add'>+</div><div class='add'>+  super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)</div><div class='add'>+</div><div class='add'>+  super¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤Æ¿·¤·¤¤Ruby¥¯¥é¥¹¤òÄêµÁ¤·¡¤module¤Î</div><div class='add'>+  Äê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_define_module(const char *name)</div><div class='add'>+</div><div class='add'>+  ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_define_module_under(VALUE module, const char *name)</div><div class='add'>+</div><div class='add'>+  ¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¡¤module¤ÎÄê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+void rb_include_module(VALUE klass, VALUE module)</div><div class='add'>+</div><div class='add'>+  ¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¡¥class¤¬¤¹¤Ç¤Ëmodule¤ò¥¤¥ó¥¯</div><div class='add'>+  ¥ë¡¼¥É¤·¤Æ¤¤¤ë»þ¤Ë¤Ï²¿¤â¤·¤Ê¤¤(Â¿½Å¥¤¥ó¥¯¥ë¡¼¥É¤Î¶Ø»ß)¡¥</div><div class='add'>+</div><div class='add'>+void rb_extend_object(VALUE object, VALUE module)</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 rb_define_variable(const char *name, VALUE *var)</div><div class='add'>+</div><div class='add'>+  Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ôÌ¾¤¬`$'¤Ç</div><div class='add'>+  »Ï¤Þ¤é¤Ê¤¤»þ¤Ë¤Ï¼«Æ°Åª¤ËÄÉ²Ã¤µ¤ì¤ë¡¥name¤È¤·¤ÆRuby¤Î¼±ÊÌ»Ò</div><div class='add'>+  ¤È¤·¤Æµö¤µ¤ì¤Ê¤¤Ê¸»ú(Îã¤¨¤Ð` ')¤ò´Þ¤à¾ì¹ç¤Ë¤ÏRuby¥×¥í¥°¥é</div><div class='add'>+  ¥à¤«¤é¤Ï¸«¤¨¤Ê¤¯¤Ê¤ë¡¥</div><div class='add'>+</div><div class='add'>+void rb_define_readonly_variable(const char *name, VALUE *var)</div><div class='add'>+</div><div class='add'>+  Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëread only¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+  read only¤Ç¤¢¤ë¤³¤È°Ê³°¤Ïrb_define_variable()¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+void rb_define_virtual_variable(const char *name,</div><div class='add'>+				VALUE (*getter)(), void (*setter)())</div><div class='add'>+</div><div class='add'>+  ´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRubyÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿</div><div class='add'>+  »þ¤Ë¤Ïgetter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì</div><div class='add'>+  ¤ë¡¥</div><div class='add'>+</div><div class='add'>+void rb_define_hooked_variable(const char *name, VALUE *var,</div><div class='add'>+			       VALUE (*getter)(), void (*setter)())</div><div class='add'>+</div><div class='add'>+  ´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô</div><div class='add'>+  ¤¬»²¾È¤µ¤ì¤¿»þ¤Ë¤Ïgetter¤¬¡¤´Ø¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ï</div><div class='add'>+  setter¤¬¸Æ¤Ð¤ì¤ë¡¥getter¤äsetter¤Ë0¤ò»ØÄê¤·¤¿»þ¤Ë¤Ïhook¤ò</div><div class='add'>+  »ØÄê¤·¤Ê¤¤¤Î¤ÈÆ±¤¸»ö¤Ë¤Ê¤ë¡¥</div><div class='add'>+</div><div class='add'>+void rb_global_variable(VALUE *var)</div><div class='add'>+</div><div class='add'>+  GC¤Î¤¿¤á¡¤Ruby¥×¥í¥°¥é¥à¤«¤é¤Ï¥¢¥¯¥»¥¹¤µ¤ì¤Ê¤¤¤¬, Ruby¥ª¥Ö</div><div class='add'>+  ¥¸¥§¥¯¥È¤ò´Þ¤àÂç°èÊÑ¿ô¤ò¥Þ¡¼¥¯¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+** Äê¿ô</div><div class='add'>+</div><div class='add'>+void rb_define_const(VALUE klass, const char *name, VALUE val)</div><div class='add'>+</div><div class='add'>+  Äê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+void rb_define_global_const(const char *name, VALUE val)</div><div class='add'>+</div><div class='add'>+  Âç°èÄê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+     rb_define_const(rb_cObject, name, val)</div><div class='add'>+</div><div class='add'>+  ¤ÈÆ±¤¸°ÕÌ£¡¥</div><div class='add'>+</div><div class='add'>+** ¥á¥½¥Ã¥ÉÄêµÁ</div><div class='add'>+</div><div class='add'>+rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+  ¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥argc¤Ïself¤ò½ü¤¯°ú¿ô¤Î¿ô¡¥argc¤¬-1¤Î»þ, </div><div class='add'>+  ´Ø¿ô¤Ë¤Ï°ú¿ô¤Î¿ô(self¤ò´Þ¤Þ¤Ê¤¤)¤òÂè1°ú¿ô, °ú¿ô¤ÎÇÛÎó¤òÂè2</div><div class='add'>+  °ú¿ô¤È¤¹¤ë·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë(Âè3°ú¿ô¤Ïself)¡¥argc¤¬-2¤Î»þ, </div><div class='add'>+  Âè1°ú¿ô¤¬self, Âè2°ú¿ô¤¬args(args¤Ï°ú¿ô¤ò´Þ¤àRuby¤ÎÇÛÎó)¤È</div><div class='add'>+  ¤¤¤¦·Á¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡¥</div><div class='add'>+ </div><div class='add'>+rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+  private¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)</div><div class='add'>+</div><div class='add'>+  ÆÃ°Û¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ë¡¥°ú¿ô¤Ïrb_define_method()¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)</div><div class='add'>+</div><div class='add'>+  argc, argv·Á¼°¤ÇÍ¿¤¨¤é¤ì¤¿»ØÄê¤µ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤Ã¤Æ°ú</div><div class='add'>+  ¿ô¤òÊ¬²ò¤·¡¤Â³¤¯VALUE¤Ø¤Î»²¾È¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡¥¤³¤Î¥Õ¥©¡¼¥Þ¥Ã</div><div class='add'>+  ¥È¤Ï¡¤ABNF¤Çµ­½Ò¤¹¤ë¤È°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+--</div><div class='add'>+scan-arg-spec  := param-arg-spec [option-hash-arg-spec] [block-arg-spec]</div><div class='add'>+</div><div class='add'>+param-arg-spec := pre-arg-spec [post-arg-spec] / post-arg-spec / pre-opt-post-arg-spec</div><div class='add'>+pre-arg-spec   := num-of-leading-mandatory-args [num-of-optional-args]</div><div class='add'>+post-arg-spec  := sym-for-variable-length-args [num-of-trailing-mandatory-args]</div><div class='add'>+pre-opt-post-arg-spec := num-of-leading-mandatory-args num-of-optional-args num-of-trailing-mandatory-args</div><div class='add'>+option-hash-arg-spec := sym-for-option-hash-arg</div><div class='add'>+block-arg-spec := sym-for-block-arg</div><div class='add'>+</div><div class='add'>+num-of-leading-mandatory-args  := DIGIT ; ÀèÆ¬¤ËÃÖ¤«¤ì¤ë¾ÊÎ¬ÉÔÇ½¤Ê°ú¿ô¤Î¿ô</div><div class='add'>+num-of-optional-args           := DIGIT ; Â³¤¤¤ÆÃÖ¤«¤ì¤ë¾ÊÎ¬²ÄÇ½¤Ê°ú¿ô¤Î¿ô</div><div class='add'>+sym-for-variable-length-args   := "*"   ; Â³¤¤¤ÆÃÖ¤«¤ì¤ë²ÄÊÑÄ¹°ú¿ô¤ò</div><div class='add'>+                                        ; Ruby¤ÎÇÛÎó¤Ç¼èÆÀ¤¹¤ë¤¿¤á¤Î»ØÄê</div><div class='add'>+num-of-trailing-mandatory-args := DIGIT ; ½ªÃ¼¤ËÃÖ¤«¤ì¤ë¾ÊÎ¬ÉÔÇ½¤Ê°ú¿ô¤Î¿ô</div><div class='add'>+sym-for-option-hash-arg        := ":"   ; ¥ª¥×¥·¥ç¥ó¥Ï¥Ã¥·¥å¤ò¼èÆÀ¤¹¤ë</div><div class='add'>+                                        ; ¤¿¤á¤Î»ØÄê; ¾ÊÎ¬ÉÔÇ½¤Ê°ú¿ô¤Î</div><div class='add'>+                                        ; ¿ô¤è¤ê¤âÂ¿¤¯¤Î°ú¿ô¤¬»ØÄê¤µ¤ì¡¤</div><div class='add'>+                                        ; ºÇ¸å¤Î°ú¿ô¤¬¥Ï¥Ã¥·¥å¡Ê¤Þ¤¿¤Ï</div><div class='add'>+                                        ; #to_hash¤ÇÊÑ´¹²ÄÇ½¡Ë¤Î¾ì¹ç¤Ë</div><div class='add'>+                                        ; ¼èÆÀ¤µ¤ì¤ë¡¥ºÇ¸å¤Î°ú¿ô¤¬nil¤Î</div><div class='add'>+                                        ; ¾ì¹ç¡¤²ÄÊÑÄ¹°ú¿ô»ØÄê¤¬¤Ê¤¯¡¤</div><div class='add'>+                                        ; ¾ÊÎ¬ÉÔÇ½°ú¿ô¤Î¿ô¤è¤ê¤âÂ¿¤¯¤Î</div><div class='add'>+                                        ; °ú¿ô¤¬»ØÄê¤µ¤ì¤¿¾ì¹ç¤Ë¼èÆÀ¤µ¤ì¤ë</div><div class='add'>+sym-for-block-arg              := "&amp;"   ; ¥¤¥Æ¥ì¡¼¥¿¥Ö¥í¥Ã¥¯¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î</div><div class='add'>+                                        ; »ØÄê</div><div class='add'>+--</div><div class='add'>+</div><div class='add'>+  ¥Õ¥©¡¼¥Þ¥Ã¥È¤¬"12"¤Î¾ì¹ç¡¤°ú¿ô¤ÏºÇÄã1¤Ä¤Ç¡¤3¤Ä(1+2)¤Þ¤Çµö¤µ</div><div class='add'>+  ¤ì¤ë¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ê¤Þ¤¹¡¥½¾¤Ã¤Æ¡¤¥Õ¥©¡¼¥Þ¥Ã¥ÈÊ¸»úÎó¤ËÂ³¤¤</div><div class='add'>+  ¤Æ3¤Ä¤ÎVALUE¤Ø¤Î»²¾È¤òÃÖ¤¯É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¤½¤ì¤é¤Ë¤Ï¼èÆÀ¤·¤¿</div><div class='add'>+  ÊÑ¿ô¤¬¥»¥Ã¥È¤µ¤ì¤Þ¤¹¡¥ÊÑ¿ô¤Ø¤Î»²¾È¤ÎÂå¤ï¤ê¤ËNULL¤ò»ØÄê¤¹¤ë</div><div class='add'>+  ¤³¤È¤â¤Ç¤­¡¤¤½¤Î¾ì¹ç¤Ï¼èÆÀ¤·¤¿°ú¿ô¤ÎÃÍ¤Ï¼Î¤Æ¤é¤ì¤Þ¤¹¡¥¤Ê¤ª¡¤</div><div class='add'>+  ¾ÊÎ¬²ÄÇ½°ú¿ô¤¬¾ÊÎ¬¤µ¤ì¤¿»þ¤ÎÊÑ¿ô¤ÎÃÍ¤Ïnil(C¸À¸ì¤Î¥ì¥Ù¥ë¤Ç¤Ï</div><div class='add'>+  Qnil)¤Ë¤Ê¤ê¤Þ¤¹¡¥</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'>+VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)</div><div class='add'>+</div><div class='add'>+  ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥Ê¸»úÎó¤«¤émid¤òÆÀ¤ë¤¿¤á¤Ë¤Ïrb_intern()¤ò</div><div class='add'>+  »È¤¦¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)</div><div class='add'>+</div><div class='add'>+  ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¡¥°ú¿ô¤òargc, argv·Á¼°¤ÇÅÏ¤¹¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_eval_string(const char *str)</div><div class='add'>+</div><div class='add'>+  Ê¸»úÎó¤òRuby¥¹¥¯¥ê¥×¥È¤È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¦¼Â¹Ô¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+ID rb_intern(const char *name)</div><div class='add'>+</div><div class='add'>+  Ê¸»úÎó¤ËÂÐ±þ¤¹¤ëID¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+char *rb_id2name(ID id)</div><div class='add'>+</div><div class='add'>+  ID¤ËÂÐ±þ¤¹¤ëÊ¸»úÎó¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥</div><div class='add'>+</div><div class='add'>+char *rb_class2name(VALUE klass)</div><div class='add'>+</div><div class='add'>+  ¥¯¥é¥¹¤ÎÌ¾Á°¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥¥¯¥é¥¹¤¬Ì¾Á°¤ò»ý¤¿¤Ê¤¤»þ¤Ë</div><div class='add'>+  ¤Ï, ÁÄÀè¤òÁÌ¤Ã¤ÆÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹¤ÎÌ¾Á°¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+int rb_respond_to(VALUE obj, ID id)</div><div class='add'>+</div><div class='add'>+  obj¤¬id¤Ç¼¨¤µ¤ì¤ë¥á¥½¥Ã¥É¤ò»ý¤Ä¤«¤É¤¦¤«¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+** ¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô</div><div class='add'>+</div><div class='add'>+VALUE rb_iv_get(VALUE obj, const char *name)</div><div class='add'>+</div><div class='add'>+  obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ÎÃÍ¤òÆÀ¤ë¡¥`@'¤Ç»Ï¤Þ¤é¤Ê¤¤¥¤¥ó¥¹¥¿¥ó</div><div class='add'>+  ¥¹ÊÑ¿ô¤Ï Ruby¥×¥í¥°¥é¥à¤«¤é¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡Ö±£¤ì¤¿¡×¥¤¥ó</div><div class='add'>+  ¥¹¥¿¥ó¥¹ÊÑ¿ô¤Ë¤Ê¤ë¡¥Äê¿ô¤ÏÂçÊ¸»ú¤ÎÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹(¤Þ¤¿¤Ï</div><div class='add'>+  ¥â¥¸¥å¡¼¥ë)¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)</div><div class='add'>+</div><div class='add'>+  obj¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤òval¤Ë¥»¥Ã¥È¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+** À©¸æ¹½Â¤</div><div class='add'>+</div><div class='add'>+VALUE rb_block_call(VALUE obj, ID mid, int argc, VALUE * argv,</div><div class='add'>+		    VALUE (*func) (ANYARGS), VALUE data2)</div><div class='add'>+</div><div class='add'>+  func¤ò¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀßÄê¤·¡¤obj¤ò¥ì¥·¡¼¥Ð¡¤argc¤Èargv¤ò°ú¿ô</div><div class='add'>+  ¤È¤·¤Æmid¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¡¥func¤ÏÂè°ì°ú¿ô¤Ëyield¤µ¤ì¤¿ÃÍ¡¤</div><div class='add'>+  ÂèÆó°ú¿ô¤Ëdata2¤ò¼õ¤±¼è¤ë¡¥Ê£¿ô¤ÎÃÍ¤¬yield¤µ¤ì¤¿¾ì¹ç(C¤Ç¤Ï</div><div class='add'>+  rb_yield_values()¤Èrb_yield_values2(), rb_yield_splat())¡¤</div><div class='add'>+  data2¤ÏArray¤È¤·¤Æ¥Ñ¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¡¥Âè»°, Âè»Í°ú¿ô¤Îargc¤È</div><div class='add'>+  argv¤Ë¤è¤Ã¤Æyield¤µ¤ì¤¿ÃÍ¤ò¼è¤ê½Ð¤¹¤³¤È¤¬¤Ç¤­¤ë¡¥</div><div class='add'>+</div><div class='add'>+[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='add'>+</div><div class='add'>+  func2¤ò¥Ö¥í¥Ã¥¯¤È¤·¤ÆÀßÄê¤·, func1¤ò¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ö¡¥ </div><div class='add'>+  func1¤Ë¤Ï arg1¤¬°ú¿ô¤È¤·¤ÆÅÏ¤µ¤ì, func2¤Ë¤ÏÂè1°ú¿ô¤Ë¥¤¥Æ¥ì¡¼</div><div class='add'>+  ¥¿¤«¤éÍ¿¤¨¤é¤ì¤¿ÃÍ, Âè2°ú¿ô¤Ëarg2¤¬ÅÏ¤µ¤ì¤ë¡¥</div><div class='add'>+ </div><div class='add'>+  1.9¤Çrb_iterate¤ò»È¤¦¾ì¹ç¤Ï, func1¤ÎÃæ¤ÇRuby¥ì¥Ù¥ë¤Î¥á¥½¥Ã¥É</div><div class='add'>+  ¤ò¸Æ¤Ó½Ð¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤.</div><div class='add'>+  1.9¤Çobsolete¤È¤Ê¤Ã¤¿. Âå¤ï¤ê¤Ërb_block_call¤¬ÍÑ°Õ¤µ¤ì¤¿.</div><div class='add'>+</div><div class='add'>+VALUE rb_yield(VALUE val)</div><div class='add'>+</div><div class='add'>+  val¤òÃÍ¤È¤·¤Æ¥¤¥Æ¥ì¡¼¥¿¥Ö¥í¥Ã¥¯¤ò¸Æ¤Ó½Ð¤¹¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='add'>+</div><div class='add'>+  ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤Ë¸Æ¤Ó½Ð¤¹¡¥func1¤Î¼Â¹ÔÃæ¤ËÎã³°¤¬È¯À¸</div><div class='add'>+  ¤·¤¿»þ¤Ë¤Ï func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ö¡¥Ìá¤êÃÍ¤ÏÎã³°¤¬È¯À¸</div><div class='add'>+  ¤·¤Ê¤«¤Ã¤¿»þ¤Ïfunc1¤ÎÌá¤êÃÍ, Îã³°¤¬È¯À¸¤·¤¿»þ¤Ë¤Ïfunc2¤ÎÌá</div><div class='add'>+  ¤êÃÍ¤Ç¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)</div><div class='add'>+</div><div class='add'>+  ´Ø¿ôfunc1¤òarg1¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤·, ¼Â¹Ô½ªÎ»¸å(¤¿¤È¤¨Îã³°¤¬</div><div class='add'>+  È¯À¸¤·¤Æ¤â) func2¤òarg2¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤¹¤ë¡¥Ìá¤êÃÍ¤Ïfunc1</div><div class='add'>+  ¤ÎÌá¤êÃÍ¤Ç¤¢¤ë(Îã³°¤¬È¯À¸¤·¤¿»þ¤ÏÌá¤é¤Ê¤¤)¡¥</div><div class='add'>+</div><div class='add'>+VALUE rb_protect(VALUE (*func) (VALUE), VALUE arg, int *state)</div><div class='add'>+</div><div class='add'>+  ´Ø¿ôfunc¤òarg¤ò°ú¿ô¤È¤·¤Æ¼Â¹Ô¤·, Îã³°¤¬È¯À¸¤·¤Ê¤±¤ì¤Ð¤½¤ÎÌá</div><div class='add'>+  ¤êÃÍ¤òÊÖ¤¹¡¥Îã³°¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï, *state¤ËÈó0¤ò¥»¥Ã¥È¤·¤Æ</div><div class='add'>+  Qnil¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+void rb_jump_tag(int state)</div><div class='add'>+</div><div class='add'>+  rb_protect()¤ärb_eval_string_protect()¤ÇÊáÂª¤µ¤ì¤¿Îã³°¤òºÆ</div><div class='add'>+  Á÷¤¹¤ë¡¥state¤Ï¤½¤ì¤é¤Î´Ø¿ô¤«¤éÊÖ¤µ¤ì¤¿ÃÍ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡¥</div><div class='add'>+  ¤³¤Î´Ø¿ô¤ÏÄ¾ÀÜ¤Î¸Æ¤Ó½Ð¤·¸µ¤ËÌá¤é¤Ê¤¤¡¥</div><div class='add'>+</div><div class='add'>+** Îã³°¡¦¥¨¥é¡¼</div><div class='add'>+</div><div class='add'>+void rb_warning(const char *fmt, ...)</div><div class='add'>+</div><div class='add'>+  rb_verbose»þ¤ËÉ¸½à¥¨¥é¡¼½ÐÎÏ¤Ë·Ù¹ð¾ðÊó¤òÉ½¼¨¤¹¤ë¡¥°ú¿ô¤Ï</div><div class='add'>+  printf()¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+void rb_raise(rb_eRuntimeError, const char *fmt, ...)</div><div class='add'>+</div><div class='add'>+  RuntimeErrorÎã³°¤òÈ¯À¸¤µ¤»¤ë¡¥°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+void rb_raise(VALUE exception, const char *fmt, ...)</div><div class='add'>+</div><div class='add'>+  exception¤Ç»ØÄê¤·¤¿Îã³°¤òÈ¯À¸¤µ¤»¤ë¡¥fmt°Ê²¼¤Î°ú¿ô¤Ï</div><div class='add'>+  printf()¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+void rb_fatal(const char *fmt, ...)</div><div class='add'>+</div><div class='add'>+  Ã×Ì¿ÅªÎã³°¤òÈ¯À¸¤µ¤»¤ë¡¥ÄÌ¾ï¤ÎÎã³°½èÍý¤Ï¹Ô¤Ê¤ï¤ì¤º, ¥¤¥ó¥¿¡¼</div><div class='add'>+  ¥×¥ê¥¿¤¬½ªÎ»¤¹¤ë(¤¿¤À¤·ensure¤Ç»ØÄê¤µ¤ì¤¿¥³¡¼¥É¤Ï½ªÎ»Á°¤Ë</div><div class='add'>+  ¼Â¹Ô¤µ¤ì¤ë)¡¥</div><div class='add'>+</div><div class='add'>+void rb_bug(const char *fmt, ...)</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'>+Ruby¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËËä¤á¹þ¤à¾ì¹ç¤Ë¤Ï°Ê²¼¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹</div><div class='add'>+¤ò»È¤¦¡¥ÄÌ¾ï¤Î³ÈÄ¥¥é¥¤¥Ö¥é¥ê¤Ë¤ÏÉ¬Í×¤Ê¤¤¡¥</div><div class='add'>+</div><div class='add'>+void ruby_init()</div><div class='add'>+</div><div class='add'>+  Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î½é´ü²½¤ò¹Ô¤Ê¤¦¡¥</div><div class='add'>+</div><div class='add'>+void ruby_options(int argc, char **argv)</div><div class='add'>+</div><div class='add'>+  Ruby¥¤¥ó¥¿¥×¥ê¥¿¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤Î½èÍý¤ò¹Ô¤Ê¤¦¡¥</div><div class='add'>+</div><div class='add'>+void ruby_run()</div><div class='add'>+</div><div class='add'>+  Ruby¥¤¥ó¥¿¥×¥ê¥¿¤ò¼Â¹Ô¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+void ruby_script(char *name)</div><div class='add'>+</div><div class='add'>+  Ruby¤Î¥¹¥¯¥ê¥×¥ÈÌ¾($0)¤òÀßÄê¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+** ¥¤¥ó¥¿¥×¥ê¥¿¤Î¥¤¥Ù¥ó¥È¤Î¥Õ¥Ã¥¯</div><div class='add'>+</div><div class='add'>+ void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, VALUE data)</div><div class='add'>+</div><div class='add'>+»ØÄê¤µ¤ì¤¿¥¤¥ó¥¿¥×¥ê¥¿¤Î¥¤¥Ù¥ó¥È¤ËÂÐ¤¹¤ë¥Õ¥Ã¥¯´Ø¿ô¤òÄÉ²Ã¤·¤Þ¤¹¡¥</div><div class='add'>+events¤Ï°Ê²¼¤ÎÃÍ¤Îor¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó:</div><div class='add'>+</div><div class='add'>+	RUBY_EVENT_LINE</div><div class='add'>+	RUBY_EVENT_CLASS</div><div class='add'>+	RUBY_EVENT_END</div><div class='add'>+	RUBY_EVENT_CALL</div><div class='add'>+	RUBY_EVENT_RETURN</div><div class='add'>+	RUBY_EVENT_C_CALL</div><div class='add'>+	RUBY_EVENT_C_RETURN</div><div class='add'>+	RUBY_EVENT_RAISE</div><div class='add'>+	RUBY_EVENT_ALL</div><div class='add'>+</div><div class='add'>+rb_event_hook_func_t¤ÎÄêµÁ¤Ï°Ê²¼¤ÎÄÌ¤ê¤Ç¤¹:</div><div class='add'>+</div><div class='add'>+ typedef void (*rb_event_hook_func_t)(rb_event_t event, VALUE data,</div><div class='add'>+ 				      VALUE self, ID id, VALUE klass)</div><div class='add'>+</div><div class='add'>+rb_add_event_hook() ¤ÎÂè3°ú¿ô data ¤Ï¡¤¥Õ¥Ã¥¯´Ø¿ô¤ÎÂè2°ú¿ô¤È</div><div class='add'>+¤·¤ÆÅÏ¤µ¤ì¤Þ¤¹¡¥¤³¤ì¤Ï1.8¤Ç¤Ï¸½ºß¤ÎNODE¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤·¤¿¡¥°Ê</div><div class='add'>+²¼¤Î RB_EVENT_HOOKS_HAVE_CALLBACK_DATA ¤â»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+ int rb_remove_event_hook(rb_event_hook_func_t func)</div><div class='add'>+</div><div class='add'>+»ØÄê¤µ¤ì¤¿¥Õ¥Ã¥¯´Ø¿ô¤òºï½ü¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+** ¸ß´¹À­¤Î¤¿¤á¤Î¥Þ¥¯¥í</div><div class='add'>+</div><div class='add'>+API¤Î¸ß´¹À­¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤¿¤á¤Ë°Ê²¼¤Î¥Þ¥¯¥í¤¬¥Ç¥Õ¥©¥ë¥È¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+NORETURN_STYLE_NEW</div><div class='add'>+</div><div class='add'>+  NORETURN ¥Þ¥¯¥í¤¬´Ø¿ô·¿¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+HAVE_RB_DEFINE_ALLOC_FUNC</div><div class='add'>+</div><div class='add'>+  rb_define_alloc_func() ´Ø¿ô¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤ë¤³¤È¡¤¤Ä¤Þ¤ê</div><div class='add'>+  allocation framework ¤¬»È¤ï¤ì¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥</div><div class='add'>+  have_func("rb_define_alloc_func", "ruby.h")</div><div class='add'>+  ¤Î·ë²Ì¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+HAVE_RB_REG_NEW_STR</div><div class='add'>+</div><div class='add'>+  String¥ª¥Ö¥¸¥§¥¯¥È¤«¤éRegexp¥ª¥Ö¥¸¥§¥¯¥È¤òºî¤ë</div><div class='add'>+  rb_reg_new_str() ´Ø¿ô¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥</div><div class='add'>+  have_func("rb_reg_new_str", "ruby.h").</div><div class='add'>+  ¤Î·ë²Ì¤ÈÆ±¤¸¡¥</div><div class='add'>+</div><div class='add'>+HAVE_RB_IO_T</div><div class='add'>+</div><div class='add'>+  rb_io_t ·¿¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+USE_SYMBOL_AS_METHOD_NAME</div><div class='add'>+</div><div class='add'>+  ¥á¥½¥Ã¥ÉÌ¾¤òÊÖ¤¹¥á¥½¥Ã¥É¡¤Module#methods, #singleton_methods</div><div class='add'>+  ¤Ê¤É¤¬Symbol¤òÊÖ¤¹¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+HAVE_RUBY_*_H</div><div class='add'>+</div><div class='add'>+  ruby.h ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡¥ÂÐ±þ¤¹¤ë¥Ø¥Ã¥À¤¬Äó¶¡¤µ¤ì¤Æ¤¤¤ë¤³¤È</div><div class='add'>+  ¤ò°ÕÌ£¤¹¤ë¡¥¤¿¤È¤¨¤Ð¡¤HAVE_RUBY_ST_H ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï</div><div class='add'>+  Ã±¤Ê¤ë st.h ¤Ç¤Ï¤Ê¤¯ ruby/st.h ¤ò»ÈÍÑ¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+RB_EVENT_HOOKS_HAVE_CALLBACK_DATA</div><div class='add'>+</div><div class='add'>+  rb_add_event_hook() ¤¬¥Õ¥Ã¥¯´Ø¿ô¤ËÅÏ¤¹ data ¤òÂè3°ú¿ô¤È¤·¤Æ</div><div class='add'>+  ¼õ¤±¼è¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥</div><div class='add'>+</div><div class='add'>+Appendix C. extconf.rb¤Ç»È¤¨¤ë´Ø¿ô¤¿¤Á</div><div class='add'>+</div><div class='add'>+extconf.rb¤ÎÃæ¤Ç¤ÏÍøÍÑ²ÄÇ½¤Ê¥³¥ó¥Ñ¥¤¥ë¾ò·ï¥Á¥§¥Ã¥¯¤Î´Ø¿ô¤Ï°Ê</div><div class='add'>+²¼¤ÎÄÌ¤ê¤Ç¤¢¤ë¡¥</div><div class='add'>+</div><div class='add'>+have_macro(macro, headers)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¥Þ¥¯¥ímacro¤¬ÄêµÁ¤µ</div><div class='add'>+  ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þtrue</div><div class='add'>+  ¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+have_library(lib, func)</div><div class='add'>+</div><div class='add'>+  ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥</div><div class='add'>+  ¥é¥¤¥Ö¥é¥ê¤¬Â¸ºß¤¹¤ë»þ¡¤true¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+find_library(lib, func, path...)</div><div class='add'>+</div><div class='add'>+  ´Ø¿ôfunc¤òÄêµÁ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥êlib¤ÎÂ¸ºß¤ò -Lpath ¤òÄÉ²Ã</div><div class='add'>+  ¤·¤Ê¤¬¤é¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥é¥¤¥Ö¥é¥ê¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+have_func(func, header)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ´Ø¿ôfunc¤ÎÂ¸ºß¤ò¥Á¥§</div><div class='add'>+  ¥Ã¥¯¤¹¤ë¡¥func¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç</div><div class='add'>+  ¤¢¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª</div><div class='add'>+  ¤¯»ö¡¥´Ø¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+have_var(var, header)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤ÆÊÑ¿ôvar¤ÎÂ¸ºß¤ò¥Á¥§¥Ã</div><div class='add'>+  ¥¯¤¹¤ë¡¥var¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é¥¤¥Ö¥é¥êÆâ¤Î¤â¤Î¤Ç¤¢</div><div class='add'>+  ¤ë»þ¤Ë¤ÏÀè¤Ëhave_library¤Ç¤½¤Î¥é¥¤¥Ö¥é¥ê¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¯</div><div class='add'>+  »ö¡¥ÊÑ¿ô¤¬Â¸ºß¤¹¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+have_header(header)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹</div><div class='add'>+  ¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+find_header(header, path...)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ÎÂ¸ºß¤ò -Ipath ¤òÄÉ²Ã¤·¤Ê¤¬¤é¥Á¥§¥Ã¥¯</div><div class='add'>+  ¤¹¤ë¡¥¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤¬¸«ÉÕ¤«¤Ã¤¿»þ¡¤true¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+have_struct_member(type, member, header)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤Ë¥á¥ó¥Ðmember</div><div class='add'>+  ¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¤member¤ò</div><div class='add'>+  »ý¤Ä¤¹¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+have_type(type, header, opt)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤¬Â¸ºß¤¹¤ë¤«¤ò</div><div class='add'>+  ¥Á¥§¥Ã¥¯¤¹¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þtrue¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+check_sizeof(type, header)</div><div class='add'>+</div><div class='add'>+  ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëheader¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ·¿type¤ÎcharÃ±°Ì¥µ¥¤</div><div class='add'>+  ¥º¤òÄ´¤Ù¤ë¡¥type¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë»þ¤½¤Î¥µ¥¤¥º¤òÊÖ¤¹¡¥ÄêµÁ¤µ</div><div class='add'>+  ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ïnil¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+create_makefile(target)</div><div class='add'>+</div><div class='add'>+  ³ÈÄ¥¥é¥¤¥Ö¥é¥êÍÑ¤ÎMakefile¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤ò¸Æ¤Ð¤Ê¤±¤ì</div><div class='add'>+  ¤Ð¤½¤Î¥é¥¤¥Ö¥é¥ê¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Ê¤¤¡¥target¤Ï¥â¥¸¥å¡¼¥ëÌ¾</div><div class='add'>+  ¤òÉ½¤¹¡¥</div><div class='add'>+</div><div class='add'>+find_executable(command, path)</div><div class='add'>+</div><div class='add'>+  ¥³¥Þ¥ó¥Écommand¤òFile::PATH_SEPARATOR¤Ç¶èÀÚ¤é¤ì¤¿¥Ñ¥¹Ì¾¤Î</div><div class='add'>+  ¥ê¥¹¥Èpath¤«¤éÃµ¤¹¡¥path¤¬nil¤Þ¤¿¤Ï¾ÊÎ¬¤µ¤ì¤¿¾ì¹ç¤Ï¡¤´Ä¶­</div><div class='add'>+  ÊÑ¿ôPATH¤ÎÃÍ¤ò»ÈÍÑ¤¹¤ë¡¥¼Â¹Ô²ÄÇ½¤Ê¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç</div><div class='add'>+  ¤Ï¥Ñ¥¹¤ò´Þ¤à¥Õ¥¡¥¤¥ëÌ¾¡¤¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ïnil¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+with_config(withval[, default=nil])</div><div class='add'>+</div><div class='add'>+  ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--with-&lt;withval&gt;¤Ç»ØÄê¤µ¤ì¤¿¥ª¥×¥·¥ç¥óÃÍ</div><div class='add'>+  ¤òÆÀ¤ë¡¥</div><div class='add'>+</div><div class='add'>+enable_config(config, *defaults)</div><div class='add'>+disable_config(config, *defaults)</div><div class='add'>+</div><div class='add'>+  ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--enable-&lt;config&gt;¤Þ¤¿¤Ï</div><div class='add'>+  --disable-&lt;config&gt;¤Ç»ØÄê¤µ¤ì¤¿¿¿µ¶ÃÍ¤òÆÀ¤ë¡¥</div><div class='add'>+  --enable-&lt;config&gt;¤¬»ØÄê¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ïtrue¡¤</div><div class='add'>+  --disable-&lt;config&gt;¤¬»ØÄê¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡¥</div><div class='add'>+  ¤É¤Á¤é¤â»ØÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¤¥Ö¥í¥Ã¥¯¤Ä¤­¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Æ</div><div class='add'>+  ¤¤¤ë¾ì¹ç¤Ï*defaults¤òyield¤·¤¿·ë²Ì¡¤¥Ö¥í¥Ã¥¯¤Ê¤·¤Ê¤é</div><div class='add'>+  *defaults¤òÊÖ¤¹¡¥</div><div class='add'>+</div><div class='add'>+dir_config(target[, default_dir])</div><div class='add'>+dir_config(target[, default_include, default_lib])</div><div class='add'>+</div><div class='add'>+  ¥³¥Þ¥ó¥É¥é¥¤¥ó¾å¤Î--with-&lt;target&gt;-dir, --with-&lt;target&gt;-include,</div><div class='add'>+  --with-&lt;target&gt;-lib¤Î¤¤¤º¤ì¤«¤Ç»ØÄê¤µ¤ì¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ò</div><div class='add'>+  $CFLAGS ¤ä $LDFLAGS ¤ËÄÉ²Ã¤¹¤ë¡¥--with-&lt;target&gt;-dir=/path¤Ï</div><div class='add'>+  --with-&lt;target&gt;-include=/path/include --with-&lt;target&gt;-lib=/path/lib</div><div class='add'>+  ¤ÈÅù²Á¤Ç¤¢¤ë¡¥ÄÉ²Ã¤µ¤ì¤¿ include ¥Ç¥£¥ì¥¯¥È¥ê¤È lib ¥Ç¥£¥ì</div><div class='add'>+  ¥¯¥È¥ê¤ÎÇÛÎó¤òÊÖ¤¹¡¥ ([include_dir, lib_dir])</div><div class='add'>+</div><div class='add'>+pkg_config(pkg)</div><div class='add'>+</div><div class='add'>+  pkg-config¥³¥Þ¥ó¥É¤«¤é¥Ñ¥Ã¥±¡¼¥¸pkg¤Î¾ðÊó¤òÆÀ¤ë¡¥ </div><div class='add'>+  pkg-config¤Î¼ÂºÝ¤Î¥³¥Þ¥ó¥ÉÌ¾¤Ï¡¤--with-pkg-config¥³¥Þ¥ó¥É</div><div class='add'>+  ¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤Ç»ØÄê²ÄÇ½¡¥</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Local variables:</div><div class='add'>+ * fill-column: 60</div><div class='add'>+ * end:</div><div class='add'>+ */</div><div class='head'>diff --git a/README.EXT.jp b/README.EXT.jp<br/>deleted file mode 100644<br/>index 09983b5ee0..0000000000<br/>--- a/<a href='/ruby.git/tree/README.EXT.jp?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.EXT.jp</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,1147 +0,0 @@</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'>-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'>-</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_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'>-      TypeError("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'>-È¯À¸¤¹¤ë)¡¥</div><div class='del'>-</div><div class='del'>-Æ±ÍÍ¤Ë¥Á¥§¥Ã¥¯Ìµ¤·¤Ç»È¤¨¤ëÊÑ´¹¥Þ¥¯¥í¤Ïdouble¤ò¼è¤ê½Ð¤¹</div><div class='del'>-¡ÖNUM2DBL()¡×¤Èchar*¤ò¼è¤ê½Ð¤¹¡ÖSTR2CSTR()¡×¤¬¤¢¤ê¤Þ¤¹¡¥</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(str)-&gt;len¡×¡¤</div><div class='del'>-¡ÖRARRAY(str)-&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'>-  str_new(char *ptr, int len)</div><div class='del'>-</div><div class='del'>-    ¿·¤·¤¤Ruby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  str_new2(char *ptr)</div><div class='del'>-</div><div class='del'>-    C¤ÎÊ¸»úÎó¤«¤éRuby¤ÎÊ¸»úÎó¤òÀ¸À®¤¹¤ë¡¥¤³¤Î´Ø¿ô¤Îµ¡Ç½¤Ï</div><div class='del'>-    str_new(ptr, strlen(ptr))¤ÈÆ±Åù¤Ç¤¢¤ë¡¥</div><div class='del'>-</div><div class='del'>-  str_cat(VALUE str, char *ptr, int 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'>-  ary_new()</div><div class='del'>-</div><div class='del'>-    Í×ÁÇ¤¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  ary_new2(int len)</div><div class='del'>-</div><div class='del'>-    Í×ÁÇ¤¬0¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥lenÍ×ÁÇÊ¬¤ÎÎÎ°è¤ò¤¢¤é¤«¤¸¤á³ä¤ê</div><div class='del'>-    Åö¤Æ¤Æ¤ª¤¯¡¥</div><div class='del'>-</div><div class='del'>-  ary_new3(int n, ...)</div><div class='del'>-</div><div class='del'>-    °ú¿ô¤Ç»ØÄê¤·¤¿nÍ×ÁÇ¤ò´Þ¤àÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  ary_new4(int n, VALUE *elts)</div><div class='del'>-</div><div class='del'>-    ÇÛÎó¤ÇÍ¿¤¨¤¿nÍ×ÁÇ¤ÎÇÛÎó¤òÀ¸À®¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-  ary_push(VALUE ary, VALUE val)</div><div class='del'>-  ary_pop(VALUE ary)</div><div class='del'>-  ary_shift(VALUE ary)</div><div class='del'>-  ary_unshift(VALUE ary, VALUE val)</div><div class='del'>-  ary_entry(VALUE ary, int idx)</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(char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module(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(VALUE outer, char *name, VALUE super)</div><div class='del'>-  VALUE rb_define_module(VALUE outer, 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 class, 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, 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¤¬Àµ¤Î»þ¤Ï´Ø¿ô¤Ë°ú¤­ÅÏ¤¹°ú¿ô¤Î¿ô¤ò°ÕÌ£</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 class, 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, 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(char *name, VALUE (*func)(), int argc)</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 class, char *name, VALUE val)</div><div class='del'>-  void rb_define_global_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(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¤ÎÃæ¤Ç¤Ï</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(char *name)</div><div class='del'>-</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'>-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'>-  TRUE</div><div class='del'>-  FALSE</div><div class='del'>-</div><div class='del'>-¿¿µ¶ÃÍ¡¥FALSE¤Ï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(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(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(char *name, VALUE *var,</div><div class='del'>-				 VALUE (*getter)(), VALUE (*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(char *name,</div><div class='del'>-				  VALUE (*getter)(), VALUE (*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(class,mark,free,ptr)</div><div class='del'>-</div><div class='del'>-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-class¤Ï¤³¤Î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'>-´Ø¿ô¤¬¥¬¡¼¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤«¤é¸Æ¤Ð¤ì¤Þ¤¹¡¥</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(class, type, mark, free, sval)</div><div class='del'>-</div><div class='del'>-¤³¤Î¥Þ¥¯¥í¤ÎÌá¤êÃÍ¤ÏÀ¸À®¤µ¤ì¤¿Data¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-class, 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) MANIFEST¥Õ¥¡¥¤¥ë¤òºî¤ë</div><div class='del'>-</div><div class='del'>-  % cd ext/dbm</div><div class='del'>-  % touch MANIFEST</div><div class='del'>-</div><div class='del'>-³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î²¼¤Ë¤ÏMANIFEST¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬</div><div class='del'>-É¬Í×¤Ê¤Î¤Ç¡¤¤È¤ê¤¢¤¨¤º¶õ¤Î¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤ª¤­¤Þ¤¹¡¥¸å¤Ç¤³¤Î</div><div class='del'>-¥Õ¥¡¥¤¥ë¤Ë¤ÏÉ¬Í×¤Ê¥Õ¥¡¥¤¥ë°ìÍ÷¤¬Æþ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-MANIFEST¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ï¡¤ÀÅÅª¥ê¥ó¥¯¤Îmake¤Î»þ¤Ë¥Ç¥£¥ì¥¯¥È¥ê</div><div class='del'>-¤¬³ÈÄ¥¥â¥¸¥å¡¼¥ë¤ò´Þ¤ó¤Ç¤¤¤ë¤«¤É¤¦¤«È½Äê¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤ì¤Æ</div><div class='del'>-¤¤¤Þ¤¹¡¥¥À¥¤¥Ê¥ß¥Ã¥¯¥é¥¤¥Ö¥é¥ê¤òºî¤ë¾ì¹ç¤Ë¤ÏÉ¬¤º¤·¤âÉ¬Í×¤Ç¤Ï</div><div class='del'>-¤¢¤ê¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-(3) Àß·×¤¹¤ë</div><div class='del'>-</div><div class='del'>-¤Þ¤¢¡¤ÅöÁ³¤Ê¤ó¤Ç¤¹¤±¤É¡¤¤É¤¦¤¤¤¦µ¡Ç½¤ò¼Â¸½¤¹¤ë¤«¤É¤¦¤«¤Þ¤ºÀß</div><div class='del'>-·×¤¹¤ëÉ¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¤É¤ó¤Ê¥¯¥é¥¹¤ò¤Ä¤¯¤ë¤«¡¤¤½¤Î¥¯¥é¥¹¤Ë¤Ï</div><div class='del'>-¤É¤ó¤Ê¥á¥½¥Ã¥É¤¬¤¢¤ë¤«¡¤¥¯¥é¥¹¤¬Äó¶¡¤¹¤ëÄê¿ô¤Ê¤É¤Ë¤Ä¤¤¤ÆÀß·×</div><div class='del'>-¤·¤Þ¤¹¡¥dbm¥¯¥é¥¹¤Ë¤Ä¤¤¤Æ¤Ïext/dbm.doc¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-(4) 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", cObject);</div><div class='del'>-    /* DBM¤ÏEnumerate¥â¥¸¥å¡¼¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë */</div><div class='del'>-    rb_include_module(cDBM, 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(class,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, class)</div><div class='del'>-    int argc;</div><div class='del'>-    VALUE *argv;</div><div class='del'>-    VALUE class;</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;</div><div class='del'>-    struct RArray *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'>-¤é¤¹¤¿¤á struct RArray* ¤Ç¼õ¤±¤Æ¤¤¤Þ¤¹¤¬¡¤VALUE¤Ç¤âÆ±¤¸¤³¤È</div><div class='del'>-¤Ç¤¹¡¥</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'>-(5) extconf.rb¤òÍÑ°Õ¤¹¤ë</div><div class='del'>-</div><div class='del'>-Makefile¤òºî¤ë¾ì¹ç¤Î¿÷·¿¤Ë¤Ê¤ëextconf.rb¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤òºî¤ê</div><div class='del'>-¤Þ¤¹¡¥extconf.rb¤Ï¥â¥¸¥å¡¼¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤ËÉ¬Í×¤Ê¾ò·ï¤Î¥Á¥§¥Ã</div><div class='del'>-¥¯¤Ê¤É¤ò¹Ô¤¦¤³¤È¤¬ÌÜÅª¤Ç¤¹¡¥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): ´Ø¿ô¤ÎÂ¸ºß¥Á¥§¥Ã¥¯</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: ¥³¥ó¥Ñ¥¤¥ë»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-I¤Ê¤É)</div><div class='del'>-  $LDFLAGS: ¥ê¥ó¥¯»þ¤ËÄÉ²ÃÅª¤Ë»ØÄê¤¹¤ë¥Õ¥é¥°(-L¤Ê¤É)</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'>-¥â¥¸¥å¡¼¥ë¤¬Ruby 1.1ÀìÍÑ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï </div><div class='del'>-</div><div class='del'>-  require 'mkmf'</div><div class='del'>-</div><div class='del'>-¤òextconf.rb¤ÎÀèÆ¬¤ËÃÖ¤¯¤ÈÊØÍø¤Ç¤·¤ç¤¦¡¥</div><div class='del'>-</div><div class='del'>-(6) 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'>-(7) MANIFEST¥Õ¥¡¥¤¥ë¤Ë¥Õ¥¡¥¤¥ëÌ¾¤òÆþ¤ì¤ë</div><div class='del'>-</div><div class='del'>-  % ls &gt; MANIFEST</div><div class='del'>-  % vi MANIFEST</div><div class='del'>-</div><div class='del'>-*.o, *~¤Ê¤ÉÉÔÉ¬Í×¤Ê¥Õ¥¡¥¤¥ë°Ê³°¤ÏMANIFEST¤ËÄÉ²Ã¤·¤Æ¤ª¤­¤Þ¤¹¡¥</div><div class='del'>-make»þ¤Ë¤ÏMANIFEST¤ÎÆâÍÆ¤Ï»²¾È¤·¤Þ¤»¤ó¤Î¤Ç¡¤¶õ¤Î¤Þ¤Þ¤Ç¤âÌäÂê</div><div class='del'>-¤Ïµ¯¤­¤Þ¤»¤ó¤¬¡¤¥Ñ¥Ã¥±¡¼¥¸¥ó¥°¤Î»þ¤Ë»²¾È¤¹¤ë¤³¤È¤¬¤¢¤ë¤Î¤È¡¤</div><div class='del'>-É¬Í×¤Ê¥Õ¥¡¥¤¥ë¤ò¶èÊÌ¤Ç¤­¤ë¤Î¤Ç¡¤ÍÑ°Õ¤·¤Æ¤ª¤¤¤¿Êý¤¬ÎÉ¤¤¤Ç¤·¤ç</div><div class='del'>-¤¦¡¥</div><div class='del'>-</div><div class='del'>-(8) 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'>-(9) 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'>-(10) ¥Ç¥Ð¥Ã¥°</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'>-(11) ¤Ç¤­¤¢¤¬¤ê</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'>-  fnmatch.c</div><div class='del'>-  glob.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'>-  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'>- TRUE</div><div class='del'>-</div><div class='del'>-Äê¿ô: true¥ª¥Ö¥¸¥§¥¯¥È(¿¿¤Î¥Ç¥Õ¥©¥ë¥ÈÃÍ)</div><div class='del'>-</div><div class='del'>- FALSE</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 class, 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(class, 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'>- float_new(f)</div><div class='del'>- STR2CSTR(value)</div><div class='del'>- str_new2(s)</div><div class='del'>-</div><div class='del'>-** ¥¯¥é¥¹/¥â¥¸¥å¡¼¥ëÄêµÁ</div><div class='del'>-</div><div class='del'>- VALUE rb_define_class(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, 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(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, char *name, VALUE super)</div><div class='del'>-</div><div class='del'>-¿·¤·¤¤Ruby¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¡¤module¤ÎÄê¿ô¤È¤·¤ÆÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>- void rb_include_module(VALUE class, 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(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(char *name, VALUE *var)</div><div class='del'>-</div><div class='del'>-Ruby¤ÈC¤È¤Ç¶¦Í­¤¹¤ëread only¤Î¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥read</div><div class='del'>-only¤Ç¤¢¤ë¤³¤È°Ê³°¤Ïrb_define_variable()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>- void rb_define_virtual_variable(char *name,</div><div class='del'>-				VALUE (*getter)(), VALUE (*setter)())</div><div class='del'>-</div><div class='del'>-´Ø¿ô¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ëRubyÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿»þ</div><div class='del'>-¤Ë¤Ïgetter¤¬¡¤ÊÑ¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter¤¬¸Æ¤Ð¤ì¤ë¡¥</div><div class='del'>-</div><div class='del'>- void rb_define_hooked_variable(char *name, VALUE *var,</div><div class='del'>-				VALUE (*getter)(), VALUE (*setter)())</div><div class='del'>-</div><div class='del'>-´Ø¿ô¤Ë¤è¤Ã¤Æhook¤Î¤Ä¤±¤é¤ì¤¿¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤òÄêµÁ¤¹¤ë¡¥ÊÑ¿ô¤¬</div><div class='del'>-»²¾È¤µ¤ì¤¿»þ¤Ë¤Ïgetter¤¬¡¤´Ø¿ô¤ËÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤¿»þ¤Ë¤Ïsetter</div><div class='del'>-¤¬¸Æ¤Ð¤ì¤ë¡¥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 class, 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(char *name, VALUE val)</div><div class='del'>-</div><div class='del'>-Âç°èÄê¿ô¤òÄêµÁ¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>-     rb_define_const(cKernal, 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 class, 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¤Î»þ, Âè1°ú</div><div class='del'>-¿ô¤¬self, Âè2°ú¿ô¤¬args(args¤Ï°ú¿ô¤ò´Þ¤àRuby¤ÎÇÛÎó)¤È¤¤¤¦·Á</div><div class='del'>-¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡¥</div><div class='del'>-</div><div class='del'>- rb_define_private_method(VALUE class, 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 class, 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 atgc, VALUE *argv, 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'>- 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(char *str)</div><div class='del'>-</div><div class='del'>-Ê¸»úÎó¤òRuby¤È¥¹¥¯¥ê¥×¥È¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¡¦¼Â¹Ô¤¹¤ë¡¥</div><div class='del'>-</div><div class='del'>- ID rb_intern(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 class)</div><div class='del'>-</div><div class='del'>-class¤ÎÌ¾Á°¤òÊÖ¤¹(¥Ç¥Ð¥Ã¥°ÍÑ)¡¥class¤¬Ì¾Á°¤ò»ý¤¿¤Ê¤¤»þ¤Ë¤Ï, </div><div class='del'>-ÁÄÀè¤òÁÌ¤Ã¤ÆÌ¾Á°¤ò»ý¤Ä¥¯¥é¥¹¤ÎÌ¾Á°¤òÊÖ¤¹¡¥</div><div class='del'>-</div><div class='del'>-** ¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô</div><div class='del'>-</div><div class='del'>- VALUE rb_iv_get(VALUE obj, 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, 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)(), void *arg1, VALUE (*func2)(), void *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)(), void *arg1, VALUE (*func2)(), void *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)(), void *arg1, void (*func2)(), void *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 Warning(char *fmt, ...)</div><div class='del'>-</div><div class='del'>-verbose»þ¤ËÉ¸½à¥¨¥é¡¼½ÐÎÏ¤Ë·Ù¹ð¾ðÊó¤òÉ½¼¨¤¹¤ë¡¥°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>- void Fail(char *fmt, ...)</div><div class='del'>-</div><div class='del'>-RuntimeErrorÎã³°¤òÈ¯À¸¤µ¤»¤ë¡¥°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>- void Raise(VALUE exception, char *fmt, ...)</div><div class='del'>-</div><div class='del'>-exception¤Ç»ØÄê¤·¤¿Îã³°¤òÈ¯À¸¤µ¤»¤ë¡¥fmt°Ê²¼¤Î°ú¿ô¤Ïprintf()¤ÈÆ±¤¸¡¥</div><div class='del'>-</div><div class='del'>- void Fatal(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 Bug(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(int argc, char **argv, char **envp)</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 B. 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_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'>- have_func(func)</div><div class='del'>-</div><div class='del'>-´Ø¿ôfunc¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡¥func¤¬É¸½à¤Ç¤Ï¥ê¥ó¥¯¤µ¤ì¤Ê¤¤¥é</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'>- 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'>-/*</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='head'>diff --git a/README.ja b/README.ja<br/>new file mode 100644<br/>index 0000000000..dd7f67ca59<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/README.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>README.ja</a></div><div class='hunk'>@@ -0,0 +1,185 @@</div><div class='add'>+* Ruby¤È¤Ï</div><div class='add'>+</div><div class='add'>+Ruby¤Ï¥·¥ó¥×¥ë¤«¤Ä¶¯ÎÏ¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥¹¥¯¥ê¥×¥È¸À¸ì¤Ç¤¹¡¥</div><div class='add'>+Ruby¤ÏºÇ½é¤«¤é½ã¿è¤Ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¸À¸ì¤È¤·¤ÆÀß·×¤µ¤ì¤Æ¤¤¤Þ</div><div class='add'>+¤¹¤«¤é¡¤¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¥×¥í¥°¥é¥ß¥ó¥°¤ò¼ê·Ú¤Ë¹Ô¤¦»ö¤¬½ÐÍè¤Þ</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'>+</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¸ß´¹¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¾å¤Ç</div><div class='add'>+    Æ°¤¯¤À¤±¤Ç¤Ê¤¯¡¤Windows¡¤ Mac OS X¡¤BeOS¤Ê¤É¤Î¾å¤Ç¤âÆ°¤¯</div><div class='add'>+    cf. http://redmine.ruby-lang.org/wiki/ruby-19/SupportedPlatformsJa</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 http://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 http://svn.ruby-lang.org/repos/ruby/branches/</div><div class='add'>+</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'>+   http://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'>+</div><div class='add'>+Ruby¤Î¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤¬¤¢¤ê¤Þ¤¹¡£»²²Ã´õË¾¤ÎÊý¤Ï</div><div class='add'>+</div><div class='add'>+   ruby-list-ctl@ruby-lang.org</div><div class='add'>+</div><div class='add'>+¤Þ¤ÇËÜÊ¸¤Ë</div><div class='add'>+</div><div class='add'>+   subscribe YourFirstName YourFamilyName</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'>+»²²Ã´õË¾¤ÎÊý¤Ï</div><div class='add'>+</div><div class='add'>+   ruby-dev-ctl@ruby-lang.org</div><div class='add'>+</div><div class='add'>+¤Þ¤Çruby-list¤ÈÆ±ÍÍ¤ÎÊýË¡¤Ç¥á¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£ </div><div class='add'>+</div><div class='add'>+Ruby³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ë¤Ä¤¤¤ÆÏÃ¤·¹ç¤¦ruby-ext¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤È</div><div class='add'>+¿ô³Ø´Ø·¸¤ÎÏÃÂê¤Ë¤Ä¤¤¤ÆÏÃ¤·¹ç¤¦ruby-math¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤È</div><div class='add'>+±Ñ¸ì¤ÇÏÃ¤·¹ç¤¦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'>+°Ê²¼¤Î¼ê½ç¤Ç¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+  1. ¤â¤·configure¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¤¡¢¤â¤·¤¯¤Ï</div><div class='add'>+     configure.in¤è¤ê¸Å¤¤¤è¤¦¤Ê¤é¡¢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¥³¥ó¥Ñ¥¤¥éÍÑ¥ª¥×¥·¥ç¥ó¤¬ÉÕ¤­</div><div class='add'>+     ¤Þ¤¹¡¥configure¥ª¥×¥·¥ç¥ó¤Ç optflags=.. warnflags=.. Åù</div><div class='add'>+     ¤Ç¾å½ñ¤­¤Ç¤­¤Þ¤¹¡¥</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'>+</div><div class='add'>+     ext/Setup¤Ëµ­½Ò¤·¤¿¥â¥¸¥å¡¼¥ë¤ÏÀÅÅª¤Ë¥ê¥ó¥¯¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+     ¥À¥¤¥Ê¥ß¥Ã¥¯¥í¡¼¥Ç¥£¥ó¥°¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥¢¡¼¥­¥Æ¥¯</div><div class='add'>+     ¥Á¥ã¤Ç¤ÏSetup¤Î1¹ÔÌÜ¤Î¡Öoption nodynamic¡×¤È¤¤¤¦¹Ô¤Î¥³</div><div class='add'>+     ¥á¥ó¥È¤ò³°¤¹É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥¤Þ¤¿¡¤¤³¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç</div><div class='add'>+     ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤òÍøÍÑ¤¹¤ë¤¿¤á¤Ë¤Ï¡¤¤¢¤é¤«¤¸¤áÀÅÅª¤Ë¥ê¥ó</div><div class='add'>+     ¥¯¤·¤Æ¤ª¤¯É¬Í×¤¬¤¢¤ê¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  5. make¤ò¼Â¹Ô¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë</div><div class='add'>+</div><div class='add'>+  6. make test¤Ç¥Æ¥¹¥È¤ò¹Ô¤¦¡¥</div><div class='add'>+</div><div class='add'>+     ¡Ötest succeeded¡×¤ÈÉ½¼¨¤µ¤ì¤ì¤ÐÀ®¸ù¤Ç¤¹¡¥¤¿¤À¤·¥Æ¥¹¥È</div><div class='add'>+     ¤ËÀ®¸ù¤·¤Æ¤â´°àú¤À¤ÈÊÝ¾Ú¤µ¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥</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'>+</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'>+     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'>+</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'>+* °Ü¿¢</div><div class='add'>+</div><div class='add'>+UNIX¤Ç¤¢¤ì¤Ðconfigure¤¬¤Û¤È¤ó¤É¤Îº¹°Û¤òµÛ¼ý¤·¤Æ¤¯¤ì¤ë¤Ï¤º¤Ç</div><div class='add'>+¤¹¤¬¡¤»×¤ï¤Ì¸«Íî¤È¤·¤¬¤¢¤Ã¤¿¾ì¹ç(¤¢¤ë¤Ë°ã¤¤¤Ê¤¤)¡¤ºî¼Ô¤Ë¤½¤Î</div><div class='add'>+¤³¤È¤ò¥ì¥Ý¡¼¥È¤¹¤ì¤Ð¡¤²ò·è¤Ç¤­¤ë¤«¤âÃÎ¤ì¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë¤â¤Ã¤È¤â°ÍÂ¸¤¹¤ë¤Î¤ÏGCÉô¤Ç¤¹¡¥Ruby¤ÎGC¤ÏÂÐ¾Ý</div><div class='add'>+¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤¬setjmp()¤Þ¤¿¤Ïgetcontext()¤Ë¤è¤Ã¤ÆÁ´¤Æ¤Î¥ì</div><div class='add'>+¥¸¥¹¥¿¤òjmp_buf¤äucontext_t¤Ë³ÊÇ¼¤¹¤ë¤³¤È¤È¡¤jmp_buf¤ä</div><div class='add'>+ucontext_t¤È¥¹¥¿¥Ã¥¯¤¬32bit¥¢¥é¥¤¥ó¥á¥ó¥È¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò²¾Äê</div><div class='add'>+¤·¤Æ¤¤¤Þ¤¹¡¥ÆÃ¤ËÁ°¼Ô¤¬À®Î©¤·¤Ê¤¤¾ì¹ç¤ÎÂÐ±þ¤ÏÈó¾ï¤Ëº¤Æñ¤Ç¤·¤ç</div><div class='add'>+¤¦¡¥¸å¼Ô¤Î²ò·è¤ÏÈæ³ÓÅª´ÊÃ±¤Ç¡¤gc.c¤Ç¥¹¥¿¥Ã¥¯¤ò¥Þ¡¼¥¯¤·¤Æ¤¤¤ë</div><div class='add'>+ÉôÊ¬¤Ë¥¢¥é¥¤¥ó¥á¥ó¥È¤Î¥Ð¥¤¥È¿ô¤À¤±¤º¤é¤·¤Æ¥Þ¡¼¥¯¤¹¤ë¥³¡¼¥É¤ò</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'>+</div><div class='add'>+* ÇÛÉÛ¾ò·ï</div><div class='add'>+</div><div class='add'>+COPYING.ja¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+* Ãø¼Ô</div><div class='add'>+</div><div class='add'>+¥³¥á¥ó¥È¡¤¥Ð¥°¥ì¥Ý¡¼¥È¤½¤ÎÂ¾¤Ï matz@netlab.jp ¤Þ¤Ç¡¥</div><div class='add'>+-------------------------------------------------------</div><div class='add'>+created at: Thu Aug  3 11:57:36 JST 1995</div><div class='add'>+Local variables:</div><div class='add'>+mode: indented-text</div><div class='add'>+end:</div><div class='head'>diff --git a/README.jp b/README.jp<br/>deleted file mode 100644<br/>index 0ef0065925..0000000000<br/>--- a/<a href='/ruby.git/tree/README.jp?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>README.jp</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,171 +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¾å¤ÇÆ°¤¯</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.netlab.co.jp/pub/lang/ruby/</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.netlab.co.jp/ruby/jp/</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'>-</div><div class='del'>-   ruby-list@netlab.co.jp</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'>-  1. configure¤ò¼Â¹Ô¤·¤ÆMakefile¤Ê¤É¤òÀ¸À®¤¹¤ë</div><div class='del'>-</div><div class='del'>-  2. (É¬Í×¤Ê¤é¤Ð)defines.h¤òÊÔ½¸¤¹¤ë</div><div class='del'>-</div><div class='del'>-     Â¿Ê¬¡¤É¬Í×Ìµ¤¤¤È»×¤¤¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  3. (É¬Í×¤Ê¤é¤Ð)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'>-  4. make¤ò¼Â¹Ô¤·¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë</div><div class='del'>-</div><div class='del'>-  5. make test¤Ç¥Æ¥¹¥È¤ò¹Ô¤¦¡¥</div><div class='del'>-</div><div class='del'>-     ¡Ötest succeeded¡×¤ÈÉ½¼¨¤µ¤ì¤ì¤ÐÀ®¸ù¤Ç¤¹¡¥¤¿¤À¤·¥Æ¥¹¥È</div><div class='del'>-     ¤ËÀ®¸ù¤·¤Æ¤â´°àú¤À¤ÈÊÝ¾Ú¤µ¤ì¤Æ¤¤¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡¥</div><div class='del'>-</div><div class='del'>-  6. 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'>-RUby¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹¡¥GPL(the GNU General Public</div><div class='del'>-Licence)¤Þ¤¿¤Ï°Ê²¼¤Ë¼¨¤¹¾ò·ï¤ÇRuby¤òºÆÇÛÉÛ¤Ç¤­¤Þ¤¹¡¥GPL¤Ë¤Ä</div><div class='del'>-¤¤¤Æ¤ÏCOPYING¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡¥</div><div class='del'>-</div><div class='del'>-  1. Ê£À½¤ÏÀ©¸Â¤Ê¤¯¼«Í³¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  2. °Ê²¼¤Î¾ò·ï¤Î¤¤¤º¤ì¤«¤òËþ¤¿¤¹»þ¤Ë¼ê¸µ¤ÎRuby¤Î¥½¡¼¥¹¤ò¼«</div><div class='del'>-     Í³¤ËÊÑ¹¹¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-     (a) ¥Í¥Ã¥È¥Ë¥å¡¼¥º¤Ë¥Ý¥¹¥È¤·¤¿¤ê¡¤ºî¼Ô¤ËÊÑ¹¹¤òÁ÷ÉÕ¤¹¤ë</div><div class='del'>-         ¤Ê¤É¤ÎÊýË¡¤Ç¡¤ÊÑ¹¹¤ò¸ø³«¤¹¤ë</div><div class='del'>-</div><div class='del'>-     (b) ÊÑ¹¹¤·¤¿Ruby¤ò¼«Ê¬¤Î½êÂ°¤¹¤ëÁÈ¿¥ÆâÉô¤À¤±¤Ç»È¤¦</div><div class='del'>-</div><div class='del'>-     (c) ÊÑ¹¹ÅÀ¤òÌÀ¼¨¤·¤¿¤¦¤¨¡¤¥½¥Õ¥È¥¦¥§¥¢¤ÎÌ¾Á°¤òÊÑ¹¹¤¹¤ë¡¥</div><div class='del'>-         ¤½¤Î¥½¥Õ¥È¥¦¥§¥¢¤òÇÛÉÛ¤¹¤ë»þ¤Ë¤Ï¤â¤È¤ÎRuby¤âÆ±»þ¤Ë</div><div class='del'>-         ÇÛÉÛ¤¹¤ë</div><div class='del'>-</div><div class='del'>-     (d) ¤½¤ÎÂ¾¤ÎÊÑ¹¹¾ò·ï¤òºî¼Ô¤È¹ç°Õ¤¹¤ë</div><div class='del'>-</div><div class='del'>-  3. °Ê²¼¤Î¾ò·ï¤Î¤¤¤º¤ì¤«¤òËþ¤¿¤¹»þ¤ËRuby¤ò¥ª¥Ö¥¸¥§¥¯¥È¥³¡¼</div><div class='del'>-     ¥É¤ä¼Â¹Ô·Á¼°¤Ç¤âÇÛÉÛ¤Ç¤­¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-     (a) ¥Ð¥¤¥Ê¥ê¤ò¼õ¤±¼è¤Ã¤¿¿Í¤¬¥½¡¼¥¹¤òÆþ¼ê¤Ç¤­¤ë¤è¤¦¤Ë¥½¡¼</div><div class='del'>-	 ¥¹¤ÎÆþ¼êË¡¤òÌÀ¼¨¤¹¤ë</div><div class='del'>-</div><div class='del'>-     (b) µ¡³£²ÄÆÉ¤Ê¥½¡¼¥¹¥³¡¼¥É¤òÅºÉÕ¤¹¤ë</div><div class='del'>-</div><div class='del'>-     (c) ÊÑ¹¹¤ò¹Ô¤Ã¤¿¥Ð¥¤¥Ê¥ê¤ÏÌ¾Á°¤òÊÑ¹¹¤·¤¿¤¦¤¨¡¤¥½¡¼¥¹¤Î</div><div class='del'>-         Æþ¼êË¡¤òÌÀ¼¨¤¹¤ë</div><div class='del'>-</div><div class='del'>-     (d) ¤½¤ÎÂ¾¤ÎÇÛÉÛ¾ò·ï¤òºî¼Ô¤È¹ç°Õ¤¹¤ë</div><div class='del'>-</div><div class='del'>-  4. Â¾¤Î¥×¥í¥°¥é¥à¤Ø¤Î°úÍÑ¤Ï¤¤¤«¤Ê¤ëÌÜÅª¤Ç¤¢¤ì¼«Í³¤Ç¤¹¡¥¤¿</div><div class='del'>-     ¤À¤·¡¤Ruby¤Ë´Þ¤Þ¤ì¤ëÂ¾¤Îºî¼Ô¤Ë¤è¤ë¥³¡¼¥É¤Ï¡¤¤½¤ì¤¾¤ì¤Î</div><div class='del'>-     ºî¼Ô¤Î°Õ¸þ¤Ë¤è¤ëÀ©¸Â¤¬²Ã¤¨¤é¤ì¤Þ¤¹¡¥¶ñÂÎÅª¤Ë¤Ïgc.c(°ìÉô)¡¤</div><div class='del'>-     util.c(°ìÉô)¡¤st.[ch]¡¤regex.[ch], fnmatch.[ch], glob.c </div><div class='del'>-     ¤ª¤è¤Ó./missing¥Ç¥£¥ì¥¯¥È¥ê²¼¤Î¥Õ¥¡¥¤¥ë·²¤¬³ºÅö¤·¤Þ¤¹¡¥</div><div class='del'>-</div><div class='del'>-  5. Ruby¤Ø¤ÎÆþÎÏ¤È¤Ê¤ë¥¹¥¯¥ê¥×¥È¤ª¤è¤Ó¡¤Ruby¤«¤é¤Î½ÐÎÏ¤Î¸¢</div><div class='del'>-     Íø¤ÏRuby¤Îºî¼Ô¤Ç¤Ï¤Ê¤¯¡¤¤½¤ì¤¾¤ì¤ÎÆþ½ÐÎÏ¤òÀ¸À®¤·¤¿¿Í¤Ë</div><div class='del'>-     Â°¤·¤Þ¤¹¡¥¤Þ¤¿¡¤Ruby¤ËÁÈ¤ß¹þ¤à¤¿¤á¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ë¤Ä</div><div class='del'>-     ¤¤¤Æ¤âÆ±ÍÍ¤Ç¤¹¡¥</div><div class='del'>-</div><div class='del'>-  6. Ruby¤ÏÌµÊÝ¾Ú¤Ç¤¹¡¥ºî¼Ô¤ÏRuby¤ò¥µ¥Ý¡¼¥È¤¹¤ë°Õ»Ö¤Ï¤¢¤ê¤Þ</div><div class='del'>-     ¤¹¤¬¡¤Ruby¼«¿È¤Î¥Ð¥°¤¢¤ë¤¤¤Ï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'>-¥³¥á¥ó¥È¡¤¥Ð¥°¥ì¥Ý¡¼¥È¤½¤ÎÂ¾¤Ï matz@netlab.co.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/ToDo b/ToDo<br/>index 462bc47adb..7e5ef523a8 100644<br/>--- a/<a href='/ruby.git/tree/ToDo?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>ToDo</a><br/>+++ b/<a href='/ruby.git/tree/ToDo?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>ToDo</a></div><div class='hunk'>@@ -1,4 +1,124 @@</div><div class='del'>-* remove Enumerable#reverse at 1.2</div><div class='del'>-* non-blocking open/write for thread</div><div class='del'>-* package or access control for global variables</div><div class='del'>-* format</div><div class='add'>+Language Spec.</div><div class='add'>+</div><div class='add'>+- Class#allocate - basicNew</div><div class='add'>+- class Foo::Bar&lt;Baz .. end, module Boo::Bar .. end</div><div class='add'>+- raise exception by `` error</div><div class='add'>+- a +1 to be a+1, not a(+1).</div><div class='add'>+- clarify evaluation order of operator argument (=~, .., ...)</div><div class='add'>+- :symbol =&gt; value hash in the form of {symbol: value, ...} ??</div><div class='add'>+* operator !! for rescue. ???</div><div class='add'>+* objectify characters</div><div class='add'>+* ../... outside condition invokes operator method too.</div><div class='add'>+* ... inside condition turns off just before right condition.???</div><div class='add'>+* package or access control for global variables??</div><div class='add'>+* named arguments like foo(nation:="german") or foo(nation: "german").</div><div class='add'>+* method to retrieve argument information (needs new C API)</div><div class='add'>+* multiple return values, yield values.  maybe incompatible ???</div><div class='add'>+* cascading method invocation ???</div><div class='add'>+* def Class#method .. end ??</div><div class='add'>+* def Foo::Bar::baz() .. end ??</div><div class='add'>+* I18N (or M17N) script/string/regexp</div><div class='add'>+* discourage use of symbol variables (e.g. $/, etc.) in manual</div><div class='add'>+* discourage use of Perlish features by giving warnings.</div><div class='add'>+* non confusing in-block local variable (is it possible?)</div><div class='add'>+  + remove scope by block</div><div class='add'>+  + variables appears within block may have independent values.</div><div class='add'>+* Regexp: make /o thread safe.</div><div class='add'>+* decide whether begin with rescue or ensure make do..while loop.</div><div class='add'>+* unify == and eql? again</div><div class='add'>+* to_i returns nil if str contains no digit.</div><div class='add'>+* jar like combined library package. -&gt; RubyGems?</div><div class='add'>+* method combination, e.g. before, after, around, etc.</div><div class='add'>+* .. or something like defadvice in Emacs.</div><div class='add'>+* property - for methods, or for objects in general.</div><div class='add'>+* "in" modifier, to annotate, or to encourage assertion.</div><div class='add'>+* selector namespace - something like generic-flet in CLOS, to help RubyBehavior</div><div class='add'>+* private instance variable (as in Python?) @_foo in class Foo =&gt; @_Foo_foo</div><div class='add'>+* warn/error "bare word" method, like "foo",  you should type "foo()"</div><div class='add'>+</div><div class='add'>+Hacking Interpreter</div><div class='add'>+</div><div class='add'>+- generational GC</div><div class='add'>+* non-blocking open (e.g. for named pipe) for thread</div><div class='add'>+* avoid blocking with gethostbyname/gethostbyaddr (use fork ???)</div><div class='add'>+* objectify interpreters ???</div><div class='add'>+* remove rb_eval() recursions</div><div class='add'>+* syntax tree -&gt; bytecode ???</div><div class='add'>+* scrambled script, or script filter</div><div class='add'>+* setuid ruby</div><div class='add'>+* performance tune for in-block (dynamic) local variables.</div><div class='add'>+* give warnings to assign magic variables.</div><div class='add'>+* export rb_io_{addstr,printf,puts,print}</div><div class='add'>+* autoload should work with threads [ruby-talk:4589]</div><div class='add'>+* remove stdio dependency from IOs.</div><div class='add'>+* warn for inconsistent local variable usage (lv m and method m at the same time). </div><div class='add'>+* MicroRuby</div><div class='add'>+* Built-in Interactive Ruby.</div><div class='add'>+* Parser API</div><div class='add'>+* trap every method invocation, which can be enabled by e.g. trap_call :method.</div><div class='add'>+* unify Errno exceptions of same errno, or new exception comparison scheme.</div><div class='add'>+* 2.times{|i| if i==0 then a = 15 else puts eval("a") end} should print nil.</div><div class='add'>+* Thread#max_stack_size attribute (possible??)</div><div class='add'>+</div><div class='add'>+Standard Libraries</div><div class='add'>+</div><div class='add'>+- Module#define_method which takes a name and a body (block, proc or method).</div><div class='add'>+- Enume#inject</div><div class='add'>+- Array#fetch</div><div class='add'>+- IO::for_fd</div><div class='add'>+- Process::waitall [ruby-talk:4557]</div><div class='add'>+- Process::Status</div><div class='add'>+- File::lchown, File::lchmod; xxx - still need work for non existing platforms</div><div class='add'>+- move Time::times to Process.</div><div class='add'>+- Enumerable#sort_by for Schwartzian transformation</div><div class='add'>+- fork_and_kill_other_threads.</div><div class='add'>+- signal list (Signal::trap, Signal::list).</div><div class='add'>+- move NameError under StandardError.</div><div class='add'>+- Integer#to_s(base)</div><div class='add'>+- Hash::new{default}</div><div class='add'>+- hash etc. should handle self referenceing array/hash</div><div class='add'>+- Array#select(n1,n2...) works like Array#indexes(n1,n2...)</div><div class='add'>+- use Mersenne Twister RNG for random.</div><div class='add'>+- deprecate Array#indexes, and Array#indices.</div><div class='add'>+- remove dependency on MAXPATHLEN.</div><div class='add'>+- String#scanf(?)</div><div class='add'>+* Object#fmt(?)</div><div class='add'>+* Time::strptime</div><div class='add'>+* Integer[num], Float[num];  Fixnum[num]?</div><div class='add'>+* method to retrieve non-number trailer for to_i/to_f.</div><div class='add'>+* Stream or Port, abstract superclass of IO ?</div><div class='add'>+* String#{pred,prev}, String#downto</div><div class='add'>+* optional stepsize argument for succ()</div><div class='add'>+* Ruby module -- Ruby::Version, Ruby::Interpreter</div><div class='add'>+* introduce Boolean class; super of TrueClass, FalseClass</div><div class='add'>+* synchronized method - synchronized{...}, synchronized :foo, :bar</div><div class='add'>+* Array#&amp;, Array#| to allow duplication. ???</div><div class='add'>+* way to specify immortal (fork endurance) thread;</div><div class='add'>+* or raise ForkException to every thread but fork caller.</div><div class='add'>+* new user-defined marshal scheme. _dump(dumper), _load(restorer)</div><div class='add'>+* library to load per-user profile seeking .ruby_profile or ruby.ini file.</div><div class='add'>+* warning framework (warn, warning for Ruby level)</div><div class='add'>+* marshal should not depend on sprintf (works bad with locale).</div><div class='add'>+* ternary arg pow: a.pow(b,c) == a**b%c</div><div class='add'>+* new caller(), e.g. call_stack; needs better name.</div><div class='add'>+* pointer share mechanism similar to one in String for Array.</div><div class='add'>+* require "1.6" etc. by /usr/lib/ruby/1.6/1.6.rb ;-)</div><div class='add'>+* save both "feature names" and "normalized path" in $"</div><div class='add'>+* implement Mutex_m (or MutexMixin) using Mutex.</div><div class='add'>+</div><div class='add'>+Extension Libraries</div><div class='add'>+</div><div class='add'>+* ptk.rb pTk wrapper that is compatible to tk.rb</div><div class='add'>+* Berkeley DB extension</div><div class='add'>+* BitVector</div><div class='add'>+* thread-safe fcgi</div><div class='add'>+</div><div class='add'>+Ruby Libraries</div><div class='add'>+</div><div class='add'>+- urllib.rb, nttplib.rb, etc.</div><div class='add'>+* format like perl's</div><div class='add'>+</div><div class='add'>+Tools</div><div class='add'>+</div><div class='add'>+* freeze or undump to bundle everything</div><div class='add'>+* bundle using zlib</div><div class='head'>diff --git a/addr2line.c b/addr2line.c<br/>new file mode 100644<br/>index 0000000000..219d1d4b47<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/addr2line.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>addr2line.c</a></div><div class='hunk'>@@ -0,0 +1,610 @@</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'>+#include "ruby/config.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 USE_ELF</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'>+#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;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'>+#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_DL_ITERATE_PHDR</div><div class='add'>+# ifndef _GNU_SOURCE</div><div class='add'>+#  define _GNU_SOURCE</div><div class='add'>+# endif</div><div class='add'>+# include &lt;link.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'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    const char *dirname;</div><div class='add'>+    const char *filename;</div><div class='add'>+    int line;</div><div class='add'>+</div><div class='add'>+    int fd;</div><div class='add'>+    void *mapped;</div><div class='add'>+    size_t mapped_size;</div><div class='add'>+    unsigned long base_addr;</div><div class='add'>+} line_info_t;</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'>+    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'>+    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'>+	    fprintf(stderr, "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'>+	    fprintf(stderr, "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 int</div><div class='add'>+get_path_from_symbol(const char *symbol, const char **p, size_t *len)</div><div class='add'>+{</div><div class='add'>+    if (symbol[0] == '0') {</div><div class='add'>+	/* libexecinfo */</div><div class='add'>+	*p   = strchr(symbol, '/');</div><div class='add'>+	if (*p == NULL) return 0;</div><div class='add'>+	*len = strlen(*p);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* glibc */</div><div class='add'>+	const char *q;</div><div class='add'>+	*p   = symbol;</div><div class='add'>+	q   = strchr(symbol, '(');</div><div class='add'>+	if (q == NULL) return 0;</div><div class='add'>+	*len = q - symbol;</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'>+fill_line(int num_traces, void **traces,</div><div class='add'>+	  unsigned long addr, int file, int line,</div><div class='add'>+	  char *include_directories, char *filenames, line_info_t *lines)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    for (i = 0; i &lt; num_traces; i++) {</div><div class='add'>+	unsigned long a = (unsigned long)traces[i] - lines[i].base_addr;</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 void</div><div class='add'>+parse_debug_line_cu(int num_traces, void **traces,</div><div class='add'>+		    char **debug_line, line_info_t *lines)</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 = *(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'>+    /* skip include directories */</div><div class='add'>+    while (*p) {</div><div class='add'>+	while (*p) p++;</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, lines);	    \</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)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)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'>+		fprintf(stderr, "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'>+		fprintf(stderr, "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'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+parse_debug_line(int num_traces, void **traces,</div><div class='add'>+		 char *debug_line, unsigned long size, line_info_t *lines)</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'>+	parse_debug_line_cu(num_traces, traces, &amp;debug_line, lines);</div><div class='add'>+    }</div><div class='add'>+    if (debug_line != debug_line_end) {</div><div class='add'>+	fprintf(stderr, "Unexpected size of .debug_line in %s\n",</div><div class='add'>+		binary_filename);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* read file and fill lines */</div><div class='add'>+static void</div><div class='add'>+fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,</div><div class='add'>+	   line_info_t *current_line, line_info_t *lines);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+follow_debuglink(char *debuglink, int num_traces, void **traces, char **syms,</div><div class='add'>+		 line_info_t *current_line, line_info_t *lines)</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'>+    char *p, *subdir;</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'>+    subdir = (char *)alloca(strlen(binary_filename) + 1);</div><div class='add'>+    strcpy(subdir, binary_filename);</div><div class='add'>+    strcpy(binary_filename, global_debug_dir);</div><div class='add'>+    strncat(binary_filename, subdir,</div><div class='add'>+	    PATH_MAX - strlen(binary_filename) - 1);</div><div class='add'>+    strncat(binary_filename, debuglink,</div><div class='add'>+	    PATH_MAX - strlen(binary_filename) - 1);</div><div class='add'>+</div><div class='add'>+    munmap(current_line-&gt;mapped, current_line-&gt;mapped_size);</div><div class='add'>+    close(current_line-&gt;fd);</div><div class='add'>+    fill_lines(num_traces, traces, syms, 0, current_line, lines);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* read file and fill lines */</div><div class='add'>+static void</div><div class='add'>+fill_lines(int num_traces, void **traces, char **syms, int check_debuglink,</div><div class='add'>+	   line_info_t *current_line, line_info_t *lines)</div><div class='add'>+{</div><div class='add'>+    int i;</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'>+</div><div class='add'>+    fd = open(binary_filename, O_RDONLY);</div><div class='add'>+    if (fd &lt; 0) {</div><div class='add'>+	return;</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'>+	fprintf(stderr, "lseek: %s\n", strerror(e));</div><div class='add'>+	return;</div><div class='add'>+    }</div><div class='add'>+    lseek(fd, 0, SEEK_SET);</div><div class='add'>+    /* async-signal unsafe */</div><div class='add'>+    file = (char *)mmap(NULL, 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'>+	fprintf(stderr, "mmap: %s\n", strerror(e));</div><div class='add'>+	return;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    current_line-&gt;fd = fd;</div><div class='add'>+    current_line-&gt;mapped = file;</div><div class='add'>+    current_line-&gt;mapped_size = filesize;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; num_traces; i++) {</div><div class='add'>+	const char *path;</div><div class='add'>+	size_t len;</div><div class='add'>+	if (get_path_from_symbol(syms[i], &amp;path, &amp;len) &amp;&amp;</div><div class='add'>+		!strncmp(path, binary_filename, len)) {</div><div class='add'>+	    lines[i].line = -1;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ehdr = (ElfW(Ehdr) *)file;</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'>+	if (!strcmp(section_name, ".debug_line")) {</div><div class='add'>+	    debug_line_shdr = shdr + i;</div><div class='add'>+	    break;</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'>+    }</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, syms,</div><div class='add'>+			     current_line, lines);</div><div class='add'>+	}</div><div class='add'>+	return;</div><div class='add'>+    }</div><div class='add'>+</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'>+		     lines);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#ifdef HAVE_DL_ITERATE_PHDR</div><div class='add'>+</div><div class='add'>+typedef struct {</div><div class='add'>+    int num_traces;</div><div class='add'>+    char **syms;</div><div class='add'>+    line_info_t *lines;</div><div class='add'>+} fill_base_addr_state_t;</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+fill_base_addr(struct dl_phdr_info *info, size_t size, void *data)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    fill_base_addr_state_t *st = (fill_base_addr_state_t *)data;</div><div class='add'>+    for (i = 0; i &lt; st-&gt;num_traces; i++) {</div><div class='add'>+	const char *path;</div><div class='add'>+	size_t len;</div><div class='add'>+	size_t name_len = strlen(info-&gt;dlpi_name);</div><div class='add'>+</div><div class='add'>+	if (get_path_from_symbol(st-&gt;syms[i], &amp;path, &amp;len) &amp;&amp;</div><div class='add'>+		(len == name_len || (len &gt; name_len &amp;&amp; path[len-name_len-1] == '/')) &amp;&amp;</div><div class='add'>+		!strncmp(path+len-name_len, info-&gt;dlpi_name, name_len)) {</div><div class='add'>+	    st-&gt;lines[i].base_addr = info-&gt;dlpi_addr;</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'>+#endif /* HAVE_DL_ITERATE_PHDR */</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_dump_backtrace_with_lines(int num_traces, void **trace, char **syms)</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,</div><div class='add'>+					       sizeof(line_info_t));</div><div class='add'>+</div><div class='add'>+    /* Note that line info of shared objects might not be shown</div><div class='add'>+       if we don't have dl_iterate_phdr */</div><div class='add'>+#ifdef HAVE_DL_ITERATE_PHDR</div><div class='add'>+    fill_base_addr_state_t fill_base_addr_state;</div><div class='add'>+</div><div class='add'>+    fill_base_addr_state.num_traces = num_traces;</div><div class='add'>+    fill_base_addr_state.syms = syms;</div><div class='add'>+    fill_base_addr_state.lines = lines;</div><div class='add'>+    /* maybe async-signal unsafe */</div><div class='add'>+    dl_iterate_phdr(fill_base_addr, &amp;fill_base_addr_state);</div><div class='add'>+#endif /* HAVE_DL_ITERATE_PHDR */</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; num_traces; i++) {</div><div class='add'>+	const char *path;</div><div class='add'>+	size_t len;</div><div class='add'>+	if (lines[i].line) {</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (!get_path_from_symbol(syms[i], &amp;path, &amp;len)) {</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	strncpy(binary_filename, path, len);</div><div class='add'>+	binary_filename[len] = '\0';</div><div class='add'>+</div><div class='add'>+	fill_lines(num_traces, trace, syms, 1, &amp;lines[i], lines);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* fprintf may not be async-signal safe */</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'>+</div><div class='add'>+	if (line-&gt;line &gt; 0) {</div><div class='add'>+	    fprintf(stderr, "%s ", syms[i]);</div><div class='add'>+	    if (line-&gt;filename) {</div><div class='add'>+		if (line-&gt;dirname &amp;&amp; line-&gt;dirname[0]) {</div><div class='add'>+		    fprintf(stderr, "%s/", line-&gt;dirname);</div><div class='add'>+		}</div><div class='add'>+		fprintf(stderr, "%s", line-&gt;filename);</div><div class='add'>+	    } else {</div><div class='add'>+		fprintf(stderr, "???");</div><div class='add'>+	    }</div><div class='add'>+	    fprintf(stderr, ":%d\n", line-&gt;line);</div><div class='add'>+	} else {</div><div class='add'>+	    fprintf(stderr, "%s\n", syms[i]);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</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'>+	if (line-&gt;fd) {</div><div class='add'>+	    munmap(line-&gt;mapped, line-&gt;mapped_size);</div><div class='add'>+	    close(line-&gt;fd);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    free(lines);</div><div class='add'>+}</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..3782d89e07<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/addr2line.h?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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, char **syms);</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/array.c b/array.c<br/>index 10d554ba2c..e427cb3320 100644<br/>--- a/<a href='/ruby.git/tree/array.c?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>array.c</a><br/>+++ b/<a href='/ruby.git/tree/array.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>array.c</a></div><div class='hunk'>@@ -1,1390 +1,4782 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </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-1998 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='add'>+  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='ctx'> </div><div class='del'>-************************************************/</div><div class='add'>+**********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+#include "internal.h"</div><div class='ctx'> </div><div class='add'>+#ifndef ARRAY_DEBUG</div><div class='add'>+# define NDEBUG</div><div class='add'>+#endif</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='add'>+</div><div class='add'>+#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))</div><div class='add'>+</div><div class='add'>+VALUE rb_cArray;</div><div class='ctx'> </div><div class='del'>-VALUE cArray;</div><div class='add'>+static ID id_cmp;</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='ctx'> </div><div class='ctx'> void</div><div class='del'>-memclear(mem, size)</div><div class='del'>-    register VALUE *mem;</div><div class='del'>-    register int 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='del'>-static void</div><div class='del'>-memfill(mem, size, val)</div><div class='del'>-    register VALUE *mem;</div><div class='del'>-    register int size;</div><div class='del'>-    register VALUE val;</div><div class='add'>+static inline void</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_FREEZE   FL_USER1</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'>+</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'>+    assert(!OBJ_FROZEN(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'>+    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'>+    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_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='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ary_modify(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+ary_resize_capa(VALUE ary, long capacity)</div><div class='ctx'> {</div><div class='del'>-    rb_secure(5);</div><div class='del'>-    if (FL_TEST(ary, ARY_FREEZE)) {</div><div class='del'>-	TypeError("can't modify frozen array");</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'>+            REALLOC_N(RARRAY(ary)-&gt;as.heap.ptr, VALUE, (capacity));</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'>+            VALUE *ptr = RARRAY_PTR(ary);</div><div class='add'>+            if (len &gt; capacity) len = capacity;</div><div class='add'>+            MEMCPY(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'>+            xfree(ptr);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-ary_freeze(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static void</div><div class='add'>+ary_double_capa(VALUE ary, long min)</div><div class='ctx'> {</div><div class='del'>-    FL_SET(ary, ARY_FREEZE);</div><div class='del'>-    return ary;</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='add'>+{</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='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_frozen_p(ary)</div><div class='del'>-    VALUE ary;</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='add'>+</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='ctx'> {</div><div class='del'>-    if (FL_TEST(ary, ARY_FREEZE))</div><div class='del'>-	return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    rb_check_frozen(ary);</div><div class='add'>+    if (!OBJ_UNTRUSTED(ary) &amp;&amp; rb_safe_level() &gt;= 4)</div><div class='add'>+	rb_raise(rb_eSecurityError, "Insecure: can't modify array");</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='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (ARY_SHARED_P(ary)) {</div><div class='add'>+        long len = RARRAY_LEN(ary);</div><div class='add'>+        if (len &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+            VALUE *ptr = ARY_HEAP_PTR(ary);</div><div class='add'>+            VALUE shared = ARY_SHARED(ary);</div><div class='add'>+            FL_UNSET_SHARED(ary);</div><div class='add'>+            FL_SET_EMBED(ary);</div><div class='add'>+            MEMCPY(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 {</div><div class='add'>+            VALUE *ptr = ALLOC_N(VALUE, len);</div><div class='add'>+            MEMCPY(ptr, RARRAY_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='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-ary_new2(len)</div><div class='del'>-    int len;</div><div class='add'>+rb_ary_freeze(VALUE ary)</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'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.frozen?  -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Return &lt;code&gt;true&lt;/code&gt; if this array is frozen (or temporarily frozen</div><div class='add'>+ *  while being sorted).</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_frozen_p(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (OBJ_FROZEN(ary)) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='ctx'>     NEWOBJ(ary, struct RArray);</div><div class='del'>-    OBJSETUP(ary, cArray, T_ARRAY);</div><div class='add'>+    OBJSETUP(ary, klass, T_ARRAY);</div><div class='add'>+    FL_SET_EMBED((VALUE)ary);</div><div class='add'>+    ARY_SET_EMBED_LEN((VALUE)ary, 0);</div><div class='ctx'> </div><div class='del'>-    if (len &lt; 0) {</div><div class='del'>-	ArgError("negative array size (or size too big)");</div><div class='add'>+    return (VALUE)ary;</div><div class='add'>+}</div><div class='add'>+</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;</div><div class='add'>+</div><div class='add'>+    if (capa &lt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "negative array size (or size too big)");</div><div class='add'>+    }</div><div class='add'>+    if (capa &gt; ARY_MAX_SIZE) {</div><div class='add'>+	rb_raise(rb_eArgError, "array size too big");</div><div class='ctx'>     }</div><div class='del'>-    if (len &gt; 0 &amp;&amp; len*sizeof(VALUE) &lt;= 0) {</div><div class='del'>-	ArgError("array size too big");</div><div class='add'>+    ary = ary_alloc(klass);</div><div class='add'>+    if (capa &gt; RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+        FL_UNSET_EMBED(ary);</div><div class='add'>+        ARY_SET_PTR(ary, ALLOC_N(VALUE, capa));</div><div class='add'>+        ARY_SET_CAPA(ary, capa);</div><div class='add'>+        ARY_SET_HEAP_LEN(ary, 0);</div><div class='ctx'>     }</div><div class='del'>-    ary-&gt;len = 0;</div><div class='del'>-    ary-&gt;capa = len;</div><div class='del'>-    ary-&gt;ptr = 0;</div><div class='del'>-    ary-&gt;ptr = ALLOC_N(VALUE, len);</div><div class='del'>-    memclear(ary-&gt;ptr, len);</div><div class='ctx'> </div><div class='del'>-    return (VALUE)ary;</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-ary_new()</div><div class='add'>+rb_ary_new2(long capa)</div><div class='ctx'> {</div><div class='del'>-    return ary_new2(ARY_DEFAULT_SIZE);</div><div class='add'>+    return ary_new(rb_cArray, capa);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_new(void)</div><div class='add'>+{</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='ctx'> #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='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-ary_new3(int n, ...)</div><div class='del'>-#else</div><div class='del'>-ary_new3(n, va_alist)</div><div class='del'>-    int n;</div><div class='del'>-    va_dcl</div><div class='del'>-#endif</div><div class='add'>+rb_ary_new3(long n, ...)</div><div class='ctx'> {</div><div class='ctx'>     va_list ar;</div><div class='ctx'>     VALUE ary;</div><div class='del'>-    int i;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-    if (n &lt; 0) {</div><div class='del'>-	IndexError("Negative number of items(%d)", n);</div><div class='del'>-    }</div><div class='del'>-    ary = ary_new2(n&lt;ARY_DEFAULT_SIZE?ARY_DEFAULT_SIZE:n);</div><div class='add'>+    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'>+	RARRAY_PTR(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'>-ary_new4(n, elts)</div><div class='del'>-    int n;</div><div class='del'>-    VALUE *elts;</div><div class='add'>+rb_ary_new4(long n, const VALUE *elts)</div><div class='ctx'> {</div><div class='ctx'>     VALUE ary;</div><div class='ctx'> </div><div class='del'>-    ary = ary_new2(n);</div><div class='del'>-    if (elts) {</div><div class='del'>-	MEMCPY(RARRAY(ary)-&gt;ptr, elts, VALUE, n);</div><div class='add'>+    ary = rb_ary_new2(n);</div><div class='add'>+    if (n &gt; 0 &amp;&amp; elts) {</div><div class='add'>+	MEMCPY(RARRAY_PTR(ary), elts, VALUE, n);</div><div class='add'>+	ARY_SET_LEN(ary, n);</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = n;</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'>-assoc_new(car, cdr)</div><div class='del'>-    VALUE car, cdr;</div><div class='add'>+rb_ary_tmp_new(long capa)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary;</div><div class='add'>+    return ary_new(0, capa);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    ary = 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'>+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'>+	xfree(ARY_HEAP_PTR(ary));</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return ary;</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 RARRAY(ary)-&gt;as.heap.aux.capa * sizeof(VALUE);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return 0;</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ary_s_new(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'>+static inline void</div><div class='add'>+ary_discard(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    int len = 0;</div><div class='del'>-    VALUE size, val;</div><div class='del'>-    NEWOBJ(ary, struct RArray);</div><div class='del'>-    OBJSETUP(ary, klass, T_ARRAY);</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='ctx'> </div><div class='del'>-    ary-&gt;len = 0;</div><div class='del'>-    ary-&gt;ptr = 0;</div><div class='del'>-    if (rb_scan_args(argc, argv, "02", &amp;size, &amp;val) == 0) {</div><div class='del'>-	ary-&gt;capa = ARY_DEFAULT_SIZE;</div><div class='add'>+static VALUE</div><div class='add'>+ary_make_shared(VALUE ary)</div><div class='add'>+{</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_resize_capa(ary, ARY_HEAP_LEN(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='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	int capa = NUM2INT(size);</div><div class='add'>+	NEWOBJ(shared, struct RArray);</div><div class='add'>+	OBJSETUP(shared, 0, T_ARRAY);</div><div class='add'>+        FL_UNSET_EMBED(shared);</div><div class='add'>+</div><div class='add'>+        ARY_SET_LEN((VALUE)shared, RARRAY_LEN(ary));</div><div class='add'>+        ARY_SET_PTR((VALUE)shared, RARRAY_PTR(ary));</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='ctx'> </div><div class='del'>-	if (capa &lt; 0) {</div><div class='del'>-	    ArgError("negative array size");</div><div class='del'>-	}</div><div class='del'>-	if (capa &gt; 0 &amp;&amp; capa*sizeof(VALUE) &lt;= 0) {</div><div class='del'>-	    ArgError("array size too big");</div><div class='del'>-	}</div><div class='del'>-	ary-&gt;capa = capa;</div><div class='del'>-	len = capa;</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'>+    if (RARRAY_LEN(ary) &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+        VALUE subst = rb_ary_new2(RARRAY_LEN(ary));</div><div class='add'>+        MEMCPY(ARY_EMBED_PTR(subst), RARRAY_PTR(ary), VALUE, RARRAY_LEN(ary));</div><div class='add'>+        ARY_SET_EMBED_LEN(subst, RARRAY_LEN(ary));</div><div class='add'>+        return subst;</div><div class='ctx'>     }</div><div class='del'>-    ary-&gt;ptr = ALLOC_N(VALUE, ary-&gt;capa);</div><div class='del'>-    memfill(ary-&gt;ptr, len, val);</div><div class='del'>-    ary-&gt;len = len;</div><div class='del'>-    obj_call_init((VALUE)ary);</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='add'>+}</div><div class='ctx'> </div><div class='del'>-    return (VALUE)ary;</div><div class='add'>+VALUE</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='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-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'>+to_ary(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    NEWOBJ(ary, struct RArray);</div><div class='del'>-    OBJSETUP(ary, klass, T_ARRAY);</div><div class='add'>+    return rb_convert_type(ary, T_ARRAY, "Array", "to_ary");</div><div class='add'>+}</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(ary, T_ARRAY, "Array", "to_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='add'>+</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='del'>-    ary-&gt;len = argc;</div><div class='del'>-    ary-&gt;capa = argc;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Array.new(size=0, obj=nil)</div><div class='add'>+ *     Array.new(array)</div><div class='add'>+ *     Array.new(size) {|index| block }</div><div class='add'>+ *</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 +obj+ are sent, an array is created with</div><div class='add'>+ *  +size+ copies of +obj+.  Take notice that all elements will reference the</div><div class='add'>+ *  same object +obj+.</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='add'>+ *     a = Array.new(2, Hash.new)</div><div class='add'>+ *     # =&gt; [{}, {}]</div><div class='add'>+ *</div><div class='add'>+ *     a[0]['cat'] = 'feline'</div><div class='add'>+ *     a # =&gt; [{"cat"=&gt;"feline"}, {"cat"=&gt;"feline"}]</div><div class='add'>+ *</div><div class='add'>+ *     a[1]['cat'] = 'Felix'</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='add'>+ *     a = Array.new(2) { Hash.new }</div><div class='add'>+ *     a[0]['cat'] = 'feline'</div><div class='add'>+ *     a # =&gt; [{"cat"=&gt;"feline"}, {}]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_initialize(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long len;</div><div class='add'>+    VALUE size, val;</div><div class='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='ctx'>     if (argc == 0) {</div><div class='del'>-	ary-&gt;ptr = 0;</div><div class='add'>+	if (ARY_OWNS_HEAP_P(ary) &amp;&amp; RARRAY_PTR(ary)) {</div><div class='add'>+	    xfree(RARRAY_PTR(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='add'>+	if (rb_block_given_p()) {</div><div class='add'>+	    rb_warning("given block not used");</div><div class='add'>+	}</div><div class='add'>+	return ary;</div><div class='add'>+    }</div><div class='add'>+    rb_scan_args(argc, argv, "02", &amp;size, &amp;val);</div><div class='add'>+    if (argc == 1 &amp;&amp; !FIXNUM_P(size)) {</div><div class='add'>+	val = rb_check_array_type(size);</div><div class='add'>+	if (!NIL_P(val)) {</div><div class='add'>+	    rb_ary_replace(ary, val);</div><div class='add'>+	    return ary;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    len = NUM2LONG(size);</div><div class='add'>+    if (len &lt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "negative array size");</div><div class='add'>+    }</div><div class='add'>+    if (len &gt; ARY_MAX_SIZE) {</div><div class='add'>+	rb_raise(rb_eArgError, "array size too big");</div><div class='add'>+    }</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    ary_resize_capa(ary, len);</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	long i;</div><div class='add'>+</div><div class='add'>+	if (argc == 2) {</div><div class='add'>+	    rb_warn("block supersedes default value argument");</div><div class='add'>+	}</div><div class='add'>+	for (i=0; i&lt;len; i++) {</div><div class='add'>+	    rb_ary_store(ary, i, rb_yield(LONG2NUM(i)));</div><div class='add'>+	    ARY_SET_LEN(ary, i + 1);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	ary-&gt;ptr = ALLOC_N(VALUE, argc);</div><div class='del'>-	MEMCPY(ary-&gt;ptr, argv, VALUE, argc);</div><div class='add'>+	memfill(RARRAY_PTR(ary), len, val);</div><div class='add'>+	ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return (VALUE)ary;</div><div class='add'>+</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/ )</div><div class='add'>+*   Array[ 1, 'a', /^A/ ]</div><div class='add'>+*   [ 1, 'a', /^A/ ]</div><div class='add'>+*/</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_s_create(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</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'>+        MEMCPY(RARRAY_PTR(ary), argv, VALUE, argc);</div><div class='add'>+        ARY_SET_LEN(ary, argc);</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='ctx'> void</div><div class='del'>-ary_store(ary, idx, val)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    int 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='del'>-    ary_modify(ary);</div><div class='ctx'>     if (idx &lt; 0) {</div><div class='del'>-	IndexError("negative index for array");</div><div class='add'>+	idx += RARRAY_LEN(ary);</div><div class='add'>+	if (idx &lt; 0) {</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+		     idx - RARRAY_LEN(ary), -RARRAY_LEN(ary));</div><div class='add'>+	}</div><div class='add'>+    }</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='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (idx &gt;= ARY_CAPA(ary)) {</div><div class='add'>+	ary_double_capa(ary, idx);</div><div class='ctx'>     }</div><div class='add'>+    if (idx &gt; RARRAY_LEN(ary)) {</div><div class='add'>+	rb_mem_clear(RARRAY_PTR(ary) + RARRAY_LEN(ary),</div><div class='add'>+		     idx-RARRAY_LEN(ary) + 1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (idx &gt;= RARRAY_LEN(ary)) {</div><div class='add'>+	ARY_SET_LEN(ary, idx + 1);</div><div class='add'>+    }</div><div class='add'>+    RARRAY_PTR(ary)[idx] = val;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (idx &gt;= RARRAY(ary)-&gt;capa) {</div><div class='del'>-	RARRAY(ary)-&gt;capa = idx + ARY_DEFAULT_SIZE;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</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'>+        MEMCPY(ARY_EMBED_PTR(result), RARRAY_PTR(ary) + offset, VALUE, len);</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'>-	memclear(RARRAY(ary)-&gt;ptr+RARRAY(ary)-&gt;len, 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_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='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_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='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+ary_take_first_or_last(int argc, 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 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'>+    if (n &gt; RARRAY_LEN(ary)) {</div><div class='add'>+	n = RARRAY_LEN(ary);</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 = RARRAY_LEN(ary) - 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='add'>+static VALUE rb_ary_push_1(VALUE ary, VALUE item);</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary &lt;&lt; obj            -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Append---Pushes the given object on to the end of this array. This</div><div class='add'>+ *  expression returns the array itself, so several appends</div><div class='add'>+ *  may be chained together.</div><div class='add'>+ *</div><div class='add'>+ *     [ 1, 2 ] &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'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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'>-    ary_store(ary, RARRAY(ary)-&gt;len, item);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    return rb_ary_push_1(ary, item);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_push_1(VALUE ary, VALUE item)</div><div class='add'>+{</div><div class='add'>+    long idx = RARRAY_LEN(ary);</div><div class='add'>+</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'>+    RARRAY_PTR(ary)[idx] = item;</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='add'>+/*</div><div class='add'>+ *  call-seq:</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='add'>+ *  expression returns the array itself, so several appends</div><div class='add'>+ *  may be chained together.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     a.push("d", "e", "f")</div><div class='add'>+ *             #=&gt; ["a", "b", "c", "d", "e", "f"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_push_method(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='add'>+    rb_ary_modify(ary);</div><div class='ctx'>     while (argc--) {</div><div class='del'>-	ary_store(ary, RARRAY(ary)-&gt;len, *argv++);</div><div class='add'>+	rb_ary_push_1(ary, *argv++);</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'>-ary_pop(ary)</div><div class='del'>-    VALUE ary;</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'>+    if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+    if (ARY_OWNS_HEAP_P(ary) &amp;&amp;</div><div class='add'>+	RARRAY_LEN(ary) * 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, RARRAY_LEN(ary) * 2);</div><div class='add'>+    }</div><div class='add'>+    n = RARRAY_LEN(ary)-1;</div><div class='add'>+    ARY_SET_LEN(ary, n);</div><div class='add'>+    return RARRAY_PTR(ary)[n];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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'>+ *  &lt;code&gt;nil&lt;/code&gt; 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.</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='add'>+ */</div><div class='add'>+</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'>-    if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-    if (RARRAY(ary)-&gt;len * 10 &lt; RARRAY(ary)-&gt;capa &amp;&amp; RARRAY(ary)-&gt;capa &gt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	RARRAY(ary)-&gt;capa = RARRAY(ary)-&gt;len * 2;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;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='ctx'> VALUE</div><div class='del'>-ary_shift(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_shift(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE top;</div><div class='ctx'> </div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='del'>-</div><div class='del'>-    top = RARRAY(ary)-&gt;ptr[0];</div><div class='del'>-    RARRAY(ary)-&gt;len--;</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+    top = RARRAY_PTR(ary)[0];</div><div class='add'>+    if (!ARY_SHARED_P(ary)) {</div><div class='add'>+	if (RARRAY_LEN(ary) &lt; ARY_DEFAULT_SIZE) {</div><div class='add'>+	    MEMMOVE(RARRAY_PTR(ary), RARRAY_PTR(ary)+1, VALUE, RARRAY_LEN(ary)-1);</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='ctx'> </div><div class='del'>-    /* sliding items */</div><div class='del'>-    MEMMOVE(RARRAY(ary)-&gt;ptr, RARRAY(ary)-&gt;ptr+1, VALUE, RARRAY(ary)-&gt;len);</div><div class='del'>-    if (RARRAY(ary)-&gt;len * 10 &lt; RARRAY(ary)-&gt;capa &amp;&amp; RARRAY(ary)-&gt;capa &gt; ARY_DEFAULT_SIZE) {</div><div class='del'>-	RARRAY(ary)-&gt;capa = RARRAY(ary)-&gt;len * 2;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</div><div class='add'>+	RARRAY_PTR(ary)[0] = Qnil;</div><div class='add'>+	ary_make_shared(ary);</div><div class='add'>+    }</div><div class='add'>+    else if (ARY_SHARED_NUM(ARY_SHARED(ary)) == 1) {</div><div class='add'>+	RARRAY_PTR(ary)[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='ctx'> </div><div class='ctx'>     return top;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-ary_unshift(ary, item)</div><div class='del'>-    VALUE ary, item;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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'>+ *  Returns the first element of +self+ and removes it (shifting all</div><div class='add'>+ *  other elements down by one). Returns &lt;code&gt;nil&lt;/code&gt; if the array</div><div class='add'>+ *  is empty.</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.</div><div class='add'>+ *</div><div class='add'>+ *     args = [ "-m", "-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='add'>+ */</div><div class='add'>+</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'>-    ary_modify(ary);</div><div class='del'>-    if (RARRAY(ary)-&gt;len &gt;= RARRAY(ary)-&gt;capa) {</div><div class='del'>-	RARRAY(ary)-&gt;capa+=ARY_DEFAULT_SIZE;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</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='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_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_NUM(ARY_SHARED(ary)) == 1) {</div><div class='add'>+	    rb_mem_clear(RARRAY_PTR(ary), n);</div><div class='add'>+	}</div><div class='add'>+        ARY_INCREASE_PTR(ary, n);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	MEMMOVE(RARRAY_PTR(ary), RARRAY_PTR(ary)+n, VALUE, RARRAY_LEN(ary)-n);</div><div class='add'>+    }</div><div class='add'>+    ARY_INCREASE_LEN(ary, -n);</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='add'>+ *  call-seq:</div><div class='add'>+ *     ary.unshift(obj, ...)  -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Prepends objects to the front of +self+,</div><div class='add'>+ *  moving other elements upwards.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "b", "c", "d" ]</div><div class='add'>+ *     a.unshift("a")   #=&gt; ["a", "b", "c", "d"]</div><div class='add'>+ *     a.unshift(1, 2)  #=&gt; [ 1, 2, "a", "b", "c", "d"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_unshift_m(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long len;</div><div class='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (argc == 0) return ary;</div><div class='add'>+    if (ARY_CAPA(ary) &lt;= (len = RARRAY_LEN(ary)) + argc) {</div><div class='add'>+	ary_double_capa(ary, len + argc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* 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'>+    MEMMOVE(RARRAY_PTR(ary) + argc, RARRAY_PTR(ary), VALUE, len);</div><div class='add'>+    MEMCPY(RARRAY_PTR(ary), argv, VALUE, argc);</div><div class='add'>+    ARY_INCREASE_LEN(ary, argc);</div><div class='ctx'> </div><div class='del'>-    RARRAY(ary)-&gt;len++;</div><div class='del'>-    return RARRAY(ary)-&gt;ptr[0] = item;</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-ary_entry(ary, offset)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    int offset;</div><div class='add'>+rb_ary_unshift(VALUE ary, VALUE item)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return Qnil;</div><div class='add'>+    return rb_ary_unshift_m(1,&amp;item,ary);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (offset &lt; 0) {</div><div class='del'>-	offset = RARRAY(ary)-&gt;len + offset;</div><div class='del'>-    }</div><div class='del'>-    if (offset &lt; 0 || RARRAY(ary)-&gt;len &lt;= offset) {</div><div class='add'>+/* faster version - use this if you don't need to treat negative offset */</div><div class='add'>+static inline VALUE</div><div class='add'>+rb_ary_elt(VALUE ary, long offset)</div><div class='add'>+{</div><div class='add'>+    if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+    if (offset &lt; 0 || RARRAY_LEN(ary) &lt;= offset) {</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     }</div><div class='add'>+    return RARRAY_PTR(ary)[offset];</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return RARRAY(ary)-&gt;ptr[offset];</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_entry(VALUE ary, long offset)</div><div class='add'>+{</div><div class='add'>+    if (offset &lt; 0) {</div><div class='add'>+	offset += RARRAY_LEN(ary);</div><div class='add'>+    }</div><div class='add'>+    return rb_ary_elt(ary, offset);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ary_subseq(ary, beg, len)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    int 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 ary2;</div><div class='add'>+    VALUE klass;</div><div class='ctx'> </div><div class='del'>-    if (beg &lt; 0) {</div><div class='del'>-	beg = RARRAY(ary)-&gt;len + beg;</div><div class='del'>-	if (beg &lt; 0) beg = 0;</div><div class='add'>+    if (beg &gt; RARRAY_LEN(ary)) return Qnil;</div><div class='add'>+    if (beg &lt; 0 || len &lt; 0) return Qnil;</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(ary) &lt; len || RARRAY_LEN(ary) &lt; beg + len) {</div><div class='add'>+	len = RARRAY_LEN(ary) - beg;</div><div class='ctx'>     }</div><div class='del'>-    if (len &lt; 0) {</div><div class='del'>-	IndexError("negative length %d", RARRAY(ary)-&gt;len);</div><div class='add'>+    klass = rb_obj_class(ary);</div><div class='add'>+    if (len == 0) return ary_new(klass, 0);</div><div class='add'>+</div><div class='add'>+    return ary_make_partial(ary, klass, beg, len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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_,</div><div class='add'>+ *  or returns a subarray starting at _start_ and</div><div class='add'>+ *  continuing for _length_ elements, or returns a subarray</div><div class='add'>+ *  specified by _range_.</div><div class='add'>+ *  Negative indices count backward from the end of the</div><div class='add'>+ *  array (-1 is the last element). Returns +nil+ if the index</div><div class='add'>+ *  (or starting index) are out of range.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d", "e" ]</div><div class='add'>+ *     a[2] +  a[0] + a[1]    #=&gt; "cab"</div><div class='add'>+ *     a[6]                   #=&gt; nil</div><div class='add'>+ *     a[1, 2]                #=&gt; [ "b", "c" ]</div><div class='add'>+ *     a[1..3]                #=&gt; [ "b", "c", "d" ]</div><div class='add'>+ *     a[4..7]                #=&gt; [ "e" ]</div><div class='add'>+ *     a[6..10]               #=&gt; nil</div><div class='add'>+ *     a[-3, 3]               #=&gt; [ "c", "d", "e" ]</div><div class='add'>+ *     # special cases</div><div class='add'>+ *     a[5]                   #=&gt; nil</div><div class='add'>+ *     a[5, 1]                #=&gt; []</div><div class='add'>+ *     a[5..10]               #=&gt; []</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_aref(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE arg;</div><div class='add'>+    long beg, len;</div><div class='add'>+</div><div class='add'>+    if (argc == 2) {</div><div class='add'>+	beg = NUM2LONG(argv[0]);</div><div class='add'>+	len = NUM2LONG(argv[1]);</div><div class='add'>+	if (beg &lt; 0) {</div><div class='add'>+	    beg += RARRAY_LEN(ary);</div><div class='add'>+	}</div><div class='add'>+	return rb_ary_subseq(ary, beg, len);</div><div class='ctx'>     }</div><div class='del'>-    if (len == 0) {</div><div class='del'>-	return ary_new2(0);</div><div class='add'>+    if (argc != 1) {</div><div class='add'>+	rb_scan_args(argc, argv, "11", 0, 0);</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'>+    arg = argv[0];</div><div class='add'>+    /* special case - speeding up */</div><div class='add'>+    if (FIXNUM_P(arg)) {</div><div class='add'>+	return rb_ary_entry(ary, FIX2LONG(arg));</div><div class='ctx'>     }</div><div class='del'>-    if (len &lt; 0) {</div><div class='del'>-	len = 0;</div><div class='add'>+    /* check if idx is Range */</div><div class='add'>+    switch (rb_range_beg_len(arg, &amp;beg, &amp;len, RARRAY_LEN(ary), 0)) {</div><div class='add'>+      case Qfalse:</div><div class='add'>+	break;</div><div class='add'>+      case Qnil:</div><div class='add'>+	return Qnil;</div><div class='add'>+      default:</div><div class='add'>+	return rb_ary_subseq(ary, beg, len);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    ary2 = ary_new2(len);</div><div class='del'>-    MEMCPY(RARRAY(ary2)-&gt;ptr, RARRAY(ary)-&gt;ptr+beg, VALUE, len);</div><div class='del'>-    RARRAY(ary2)-&gt;len = len;</div><div class='del'>-</div><div class='del'>-    return ary2;</div><div class='add'>+    return rb_ary_entry(ary, NUM2LONG(arg));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.at(index)   -&gt;   obj  or nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the element at _index_. A</div><div class='add'>+ *  negative index counts from the end of +self+.  Returns +nil+</div><div class='add'>+ *  if the index is out of range. See also &lt;code&gt;Array#[]&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d", "e" ]</div><div class='add'>+ *     a.at(0)     #=&gt; "a"</div><div class='add'>+ *     a.at(-1)    #=&gt; "e"</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-beg_len(range, begp, lenp, len)</div><div class='del'>-    VALUE range;</div><div class='del'>-    int *begp, *lenp;</div><div class='del'>-    int len;</div><div class='add'>+rb_ary_at(VALUE ary, VALUE pos)</div><div class='ctx'> {</div><div class='del'>-    int beg, end;</div><div class='del'>-    int b, e;</div><div class='add'>+    return rb_ary_entry(ary, NUM2LONG(pos));</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (!range_beg_end(range, &amp;beg, &amp;end)) return FALSE;</div><div class='del'>-    b = beg; e = end;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.first     -&gt;   obj or nil</div><div class='add'>+ *     ary.first(n)  -&gt;   new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns the first element, or the first +n+ elements, of the array.</div><div class='add'>+ *  If the array is empty, the first form returns &lt;code&gt;nil&lt;/code&gt;, and the</div><div class='add'>+ *  second form returns an empty array.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "q", "r", "s", "t" ]</div><div class='add'>+ *     a.first     #=&gt; "q"</div><div class='add'>+ *     a.first(2)  #=&gt; ["q", "r"]</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-    if (beg &lt; 0) {</div><div class='del'>-	beg = len + beg;</div><div class='del'>-	if (beg &lt; 0) beg = 0;</div><div class='del'>-    }</div><div class='del'>-    if (end &lt; 0) {</div><div class='del'>-	end = len + end;</div><div class='del'>-	if (end &lt; 0) end = -1;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_first(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+	return RARRAY_PTR(ary)[0];</div><div class='ctx'>     }</div><div class='del'>-    if (beg &gt; end) {</div><div class='del'>-	IndexError("end smaller than beg [%d..%d]", b, e);</div><div class='add'>+    else {</div><div class='add'>+	return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_FIRST);</div><div class='ctx'>     }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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 &lt;code&gt;nil&lt;/code&gt;.</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='add'>+ */</div><div class='ctx'> </div><div class='del'>-    *begp = beg;</div><div class='del'>-    if (beg &gt; len) {</div><div class='del'>-	*lenp = 0;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_last(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	if (RARRAY_LEN(ary) == 0) return Qnil;</div><div class='add'>+	return RARRAY_PTR(ary)[RARRAY_LEN(ary)-1];</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	*lenp = end - beg +1;</div><div class='add'>+	return ary_take_first_or_last(argc, argv, ary, ARY_TAKE_LAST);</div><div class='ctx'>     }</div><div class='del'>-    return TRUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-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='del'>-{</div><div class='del'>-    VALUE arg1, arg2;</div><div class='del'>-    int beg, len;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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 &lt;i&gt;index&lt;/i&gt;. If the index</div><div class='add'>+ *  lies outside the array, the first form throws an</div><div class='add'>+ *  &lt;code&gt;IndexError&lt;/code&gt; exception, the second form returns</div><div class='add'>+ *  &lt;i&gt;default&lt;/i&gt;, and the third form returns the value of invoking</div><div class='add'>+ *  the block, passing in the index. Negative values of &lt;i&gt;index&lt;/i&gt;</div><div class='add'>+ *  count from the end of the array.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 11, 22, 33, 44 ]</div><div class='add'>+ *     a.fetch(1)               #=&gt; 22</div><div class='add'>+ *     a.fetch(-1)              #=&gt; 44</div><div class='add'>+ *     a.fetch(4, 'cat')        #=&gt; "cat"</div><div class='add'>+ *     a.fetch(4) { |i| i*i }   #=&gt; 16</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-    if (rb_scan_args(argc, argv, "11", &amp;arg1, &amp;arg2) == 2) {</div><div class='del'>-	beg = NUM2INT(arg1);</div><div class='del'>-	len = NUM2INT(arg2);</div><div class='del'>-	if (len &lt;= 0) {</div><div class='del'>-	    return ary_new();</div><div class='del'>-	}</div><div class='del'>-	return ary_subseq(ary, beg, len);</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_fetch(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE pos, ifnone;</div><div class='add'>+    long block_given;</div><div class='add'>+    long idx;</div><div class='add'>+</div><div class='add'>+    rb_scan_args(argc, argv, "11", &amp;pos, &amp;ifnone);</div><div class='add'>+    block_given = rb_block_given_p();</div><div class='add'>+    if (block_given &amp;&amp; argc == 2) {</div><div class='add'>+	rb_warn("block supersedes default value argument");</div><div class='ctx'>     }</div><div class='add'>+    idx = NUM2LONG(pos);</div><div class='ctx'> </div><div class='del'>-    /* special case - speeding up */</div><div class='del'>-    if (FIXNUM_P(arg1)) {</div><div class='del'>-	return ary_entry(ary, FIX2INT(arg1));</div><div class='del'>-    }</div><div class='del'>-    else if (TYPE(arg1) == T_BIGNUM) {</div><div class='del'>-	IndexError("index too big");</div><div class='add'>+    if (idx &lt; 0) {</div><div class='add'>+	idx +=  RARRAY_LEN(ary);</div><div class='ctx'>     }</div><div class='del'>-    else if (beg_len(arg1, &amp;beg, &amp;len, RARRAY(ary)-&gt;len)) {</div><div class='del'>-	/* check if idx is Range */</div><div class='del'>-	return ary_subseq(ary, beg, len);</div><div class='add'>+    if (idx &lt; 0 || RARRAY_LEN(ary) &lt;= idx) {</div><div class='add'>+	if (block_given) return rb_yield(pos);</div><div class='add'>+	if (argc == 1) {</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='add'>+	}</div><div class='add'>+	return ifnone;</div><div class='ctx'>     }</div><div class='del'>-    return ary_entry(ary, NUM2INT(arg1));</div><div class='add'>+    return RARRAY_PTR(ary)[idx];</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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;  an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the index of the first object in +self+ such that the object is</div><div class='add'>+ *  &lt;code&gt;==&lt;/code&gt; to &lt;i&gt;obj&lt;/i&gt;. If a block is given instead of an</div><div class='add'>+ *  argument, returns index of first object for which &lt;em&gt;block&lt;/em&gt; is true.</div><div class='add'>+ *  Returns &lt;code&gt;nil&lt;/code&gt; if no match is found.</div><div class='add'>+ *  See also &lt;code&gt;Array#rindex&lt;/code&gt;.</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='add'>+ *     a = [ "a", "b", "c" ]</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='add'>+ *</div><div class='add'>+ *  This is an alias of &lt;code&gt;#find_index&lt;/code&gt;.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='del'>-    int i;</div><div class='add'>+    VALUE val;</div><div class='add'>+    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='del'>-	    return INT2FIX(i);</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_PTR(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_scan_args(argc, argv, "1", &amp;val);</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'>+	if (rb_equal(RARRAY_PTR(ary)[i], val))</div><div class='add'>+	    return LONG2NUM(i);</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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;  an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns the index of the last object in +self+</div><div class='add'>+ *  &lt;code&gt;==&lt;/code&gt; to &lt;i&gt;obj&lt;/i&gt;. If a block is given instead of an</div><div class='add'>+ *  argument, returns index of first object for which &lt;em&gt;block&lt;/em&gt; is</div><div class='add'>+ *  true, starting from the last object.</div><div class='add'>+ *  Returns &lt;code&gt;nil&lt;/code&gt; if no match is found.</div><div class='add'>+ *  See also &lt;code&gt;Array#index&lt;/code&gt;.</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='add'>+ *     a = [ "a", "b", "b", "b", "c" ]</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='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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'>-    int i = RARRAY(ary)-&gt;len;</div><div class='add'>+    VALUE val;</div><div class='add'>+    long i = RARRAY_LEN(ary);</div><div class='ctx'> </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_PTR(ary)[i])))</div><div class='add'>+		return LONG2NUM(i);</div><div class='add'>+	    if (i &gt; RARRAY_LEN(ary)) {</div><div class='add'>+		i = RARRAY_LEN(ary);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+    rb_scan_args(argc, argv, "1", &amp;val);</div><div class='add'>+    if (rb_block_given_p())</div><div class='add'>+	rb_warn("given block not used");</div><div class='ctx'>     while (i--) {</div><div class='del'>-	if (rb_equal(RARRAY(ary)-&gt;ptr[i], val))</div><div class='del'>-	    return INT2FIX(i);</div><div class='add'>+	if (rb_equal(RARRAY_PTR(ary)[i], val))</div><div class='add'>+	    return LONG2NUM(i);</div><div class='add'>+	if (i &gt; RARRAY_LEN(ary)) {</div><div class='add'>+	    i = RARRAY_LEN(ary);</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'>-static VALUE</div><div class='del'>-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='add'>+VALUE</div><div class='add'>+rb_ary_to_ary(VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE new_ary;</div><div class='del'>-    int i;</div><div class='add'>+    VALUE tmp = rb_check_array_type(obj);</div><div class='ctx'> </div><div class='del'>-    new_ary = ary_new2(argc);</div><div class='del'>-    for (i=0; i&lt;argc; i++) {</div><div class='del'>-	ary_store(new_ary, i, ary_entry(ary, NUM2INT(argv[i])));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return new_ary;</div><div class='add'>+    if (!NIL_P(tmp)) return tmp;</div><div class='add'>+    return rb_ary_new3(1, obj);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static void</div><div class='del'>-ary_replace(ary, beg, len, rpl)</div><div class='del'>-    VALUE ary, rpl;</div><div class='del'>-    int beg, len;</div><div class='add'>+rb_ary_splice(VALUE ary, long beg, long len, VALUE rpl)</div><div class='ctx'> {</div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    if (TYPE(rpl) != T_ARRAY) {</div><div class='del'>-	rpl = rb_Array(rpl);</div><div class='del'>-    }</div><div class='add'>+    long rlen;</div><div class='add'>+</div><div class='add'>+    if (len &lt; 0) rb_raise(rb_eIndexError, "negative length (%ld)", len);</div><div class='ctx'>     if (beg &lt; 0) {</div><div class='del'>-	beg = RARRAY(ary)-&gt;len + beg;</div><div class='del'>-	if (beg &lt; 0) beg = 0;</div><div class='add'>+	beg += RARRAY_LEN(ary);</div><div class='add'>+	if (beg &lt; 0) {</div><div class='add'>+	    rb_raise(rb_eIndexError, "index %ld too small for array; minimum: %ld",</div><div class='add'>+		     beg - RARRAY_LEN(ary), -RARRAY_LEN(ary));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    if (RARRAY_LEN(ary) &lt; len || RARRAY_LEN(ary) &lt; beg + len) {</div><div class='add'>+	len = RARRAY_LEN(ary) - beg;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rpl == Qundef) {</div><div class='add'>+	rlen = 0;</div><div class='ctx'>     }</div><div class='del'>-    if (beg &gt;= RARRAY(ary)-&gt;len) {</div><div class='del'>-	len = beg + RARRAY(rpl)-&gt;len;</div><div class='del'>-	if (len &gt;= RARRAY(ary)-&gt;capa) {</div><div class='del'>-	    RARRAY(ary)-&gt;capa=len;</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</div><div class='add'>+    else {</div><div class='add'>+	rpl = rb_ary_to_ary(rpl);</div><div class='add'>+	rlen = RARRAY_LEN(rpl);</div><div class='add'>+    }</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (beg &gt;= RARRAY_LEN(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='add'>+	}</div><div class='add'>+	len = beg + rlen;</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'>+	rb_mem_clear(RARRAY_PTR(ary) + RARRAY_LEN(ary), beg - RARRAY_LEN(ary));</div><div class='add'>+	if (rlen &gt; 0) {</div><div class='add'>+	    MEMCPY(RARRAY_PTR(ary) + beg, RARRAY_PTR(rpl), VALUE, rlen);</div><div class='ctx'> 	}</div><div class='del'>-	memclear(RARRAY(ary)-&gt;ptr+RARRAY(ary)-&gt;len, beg-RARRAY(ary)-&gt;len);</div><div class='del'>-	MEMCPY(RARRAY(ary)-&gt;ptr+beg, RARRAY(rpl)-&gt;ptr, VALUE, RARRAY(rpl)-&gt;len);</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='del'>-	int alen;</div><div class='add'>+	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='del'>-	}</div><div class='del'>-	if (len &lt; 0) {</div><div class='del'>-	    IndexError("negative length %d", RARRAY(ary)-&gt;len);</div><div class='add'>+	alen = RARRAY_LEN(ary) + 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='del'>-	alen = RARRAY(ary)-&gt;len + RARRAY(rpl)-&gt;len - len;</div><div class='del'>-	if (alen &gt;= RARRAY(ary)-&gt;capa) {</div><div class='del'>-	    RARRAY(ary)-&gt;capa=alen;</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</div><div class='add'>+	if (len != rlen) {</div><div class='add'>+	    MEMMOVE(RARRAY_PTR(ary) + beg + rlen, RARRAY_PTR(ary) + beg + len,</div><div class='add'>+		    VALUE, RARRAY_LEN(ary) - (beg + len));</div><div class='add'>+	    ARY_SET_LEN(ary, alen);</div><div class='add'>+	}</div><div class='add'>+	if (rlen &gt; 0) {</div><div class='add'>+	    MEMMOVE(RARRAY_PTR(ary) + beg, RARRAY_PTR(rpl), VALUE, rlen);</div><div class='ctx'> 	}</div><div class='add'>+    }</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-	if (len != RARRAY(rpl)-&gt;len) {</div><div class='del'>-	    MEMMOVE(RARRAY(ary)-&gt;ptr+beg+RARRAY(rpl)-&gt;len, 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'>+/*!</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='ctx'> 	}</div><div class='del'>-	MEMCPY(RARRAY(ary)-&gt;ptr+beg, RARRAY(rpl)-&gt;ptr, VALUE, RARRAY(rpl)-&gt;len);</div><div class='add'>+	rb_mem_clear(RARRAY_PTR(ary) + olen, len - olen);</div><div class='add'>+        ARY_SET_LEN(ary, len);</div><div class='ctx'>     }</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(ARY_EMBED_PTR(ary), tmp, VALUE, len);</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'>+	    REALLOC_N(RARRAY(ary)-&gt;as.heap.ptr, VALUE, len);</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='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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_,</div><div class='add'>+ *  or replaces a subarray starting at _start_ and</div><div class='add'>+ *  continuing for _length_ elements, or replaces a subarray</div><div class='add'>+ *  specified by _range_.  If indices are greater than</div><div class='add'>+ *  the current capacity of the array, the array grows</div><div class='add'>+ *  automatically. A negative indices will count backward</div><div class='add'>+ *  from the end of the array. Inserts elements if _length_ is</div><div class='add'>+ *  zero. An +IndexError+ is raised if a negative index points</div><div class='add'>+ *  past the beginning of the array. See also</div><div class='add'>+ *  &lt;code&gt;Array#push&lt;/code&gt;, and &lt;code&gt;Array#unshift&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = Array.new</div><div class='add'>+ *     a[4] = "4";                 #=&gt; [nil, nil, nil, nil, "4"]</div><div class='add'>+ *     a[0, 3] = [ 'a', 'b', 'c' ] #=&gt; ["a", "b", "c", nil, "4"]</div><div class='add'>+ *     a[1..2] = [ 1, 2 ]          #=&gt; ["a", 1, 2, nil, "4"]</div><div class='add'>+ *     a[0, 2] = "?"               #=&gt; ["?", 2, nil, "4"]</div><div class='add'>+ *     a[0..2] = "A"               #=&gt; ["A", "4"]</div><div class='add'>+ *     a[-1]   = "Z"               #=&gt; ["A", "Z"]</div><div class='add'>+ *     a[1..-1] = nil              #=&gt; ["A", nil]</div><div class='add'>+ *     a[1..-1] = []               #=&gt; ["A"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='del'>-    VALUE arg1, arg2, arg3;</div><div class='del'>-    int offset;</div><div class='del'>-    int beg, len;</div><div class='del'>-</div><div class='del'>-    if (rb_scan_args(argc, argv, "21", &amp;arg1, &amp;arg2, &amp;arg3) == 3) {</div><div class='del'>-	beg = NUM2INT(arg1);</div><div class='del'>-	len = NUM2INT(arg2);</div><div class='del'>-	ary_replace(ary, beg, len, arg3);</div><div class='del'>-	return arg3;</div><div class='add'>+    long offset, beg, len;</div><div class='add'>+</div><div class='add'>+    if (argc == 3) {</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'>+	rb_ary_splice(ary, beg, len, argv[2]);</div><div class='add'>+	return argv[2];</div><div class='ctx'>     }</div><div class='del'>-    else if (FIXNUM_P(arg1)) {</div><div class='del'>-	offset = FIX2INT(arg1);</div><div class='add'>+    if (argc != 2) {</div><div class='add'>+	rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);</div><div class='add'>+    }</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (FIXNUM_P(argv[0])) {</div><div class='add'>+	offset = FIX2LONG(argv[0]);</div><div class='ctx'> 	goto fixnum;</div><div class='ctx'>     }</div><div class='del'>-    else if (beg_len(arg1, &amp;beg, &amp;len, RARRAY(ary)-&gt;len)) {</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'>-	ary_replace(ary, beg, len, arg2);</div><div class='del'>-	return arg2;</div><div class='del'>-    }</div><div class='del'>-    if (TYPE(arg1) == T_BIGNUM) {</div><div class='del'>-	IndexError("index too big");</div><div class='add'>+	rb_ary_splice(ary, beg, len, argv[1]);</div><div class='add'>+	return argv[1];</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    offset = NUM2INT(arg1);</div><div class='del'>-  fixnum:</div><div class='del'>-    if (offset &lt; 0) {</div><div class='del'>-	offset = RARRAY(ary)-&gt;len + offset;</div><div class='add'>+    offset = NUM2LONG(argv[0]);</div><div class='add'>+fixnum:</div><div class='add'>+    rb_ary_store(ary, offset, argv[1]);</div><div class='add'>+    return argv[1];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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'>+ *  (which may be negative).</div><div class='add'>+ *</div><div class='add'>+ *     a = %w{ a b c d }</div><div class='add'>+ *     a.insert(2, 99)         #=&gt; ["a", "b", 99, "c", "d"]</div><div class='add'>+ *     a.insert(-2, 1, 2, 3)   #=&gt; ["a", "b", 99, "c", 1, 2, 3, "d"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_insert(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long pos;</div><div class='add'>+</div><div class='add'>+    if (argc &lt; 1) {</div><div class='add'>+	rb_raise(rb_eArgError, "wrong number of arguments (at least 1)");</div><div class='add'>+    }</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    if (argc == 1) return ary;</div><div class='add'>+    pos = NUM2LONG(argv[0]);</div><div class='add'>+    if (pos == -1) {</div><div class='add'>+	pos = RARRAY_LEN(ary);</div><div class='add'>+    }</div><div class='add'>+    if (pos &lt; 0) {</div><div class='add'>+	pos++;</div><div class='ctx'>     }</div><div class='del'>-    ary_store(ary, offset, arg2);</div><div class='del'>-    return arg2;</div><div class='add'>+    rb_ary_splice(ary, pos, 0, rb_ary_new4(argc - 1, argv + 1));</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.each {|item| block }   -&gt; ary</div><div class='add'>+ *     ary.each                   -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls &lt;i&gt;block&lt;/i&gt; once for each element in +self+, passing that</div><div class='add'>+ *  element as a parameter.</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.each {|x| print x, " -- " }</div><div class='add'>+ *</div><div class='add'>+ *  produces:</div><div class='add'>+ *</div><div class='add'>+ *     a -- b -- c --</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_each(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_each(VALUE array)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='add'>+    long i;</div><div class='add'>+    volatile VALUE ary = array;</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_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	rb_yield(RARRAY_PTR(ary)[i]);</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</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.each_index {|index| block }  -&gt; ary</div><div class='add'>+ *     ary.each_index                   -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Same as &lt;code&gt;Array#each&lt;/code&gt;, but passes the index of the element</div><div class='add'>+ *  instead of the element itself.</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'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     a.each_index {|x| print x, " -- " }</div><div class='add'>+ *</div><div class='add'>+ *  produces:</div><div class='add'>+ *</div><div class='add'>+ *     0 -- 1 -- 2 --</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='del'>-    int i;</div><div class='add'>+    long i;</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</div><div class='ctx'> </div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	rb_yield(INT2FIX(i));</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	rb_yield(LONG2NUM(i));</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</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.reverse_each {|item| block }   -&gt; ary</div><div class='add'>+ *     ary.reverse_each                   -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Same as &lt;code&gt;Array#each&lt;/code&gt;, but traverses +self+ in reverse</div><div class='add'>+ *  order.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     a.reverse_each {|x| print x, " " }</div><div class='add'>+ *</div><div class='add'>+ *  produces:</div><div class='add'>+ *</div><div class='add'>+ *     c b a</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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'>-    int len = RARRAY(ary)-&gt;len;</div><div class='add'>+    long len;</div><div class='ctx'> </div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</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='add'>+	rb_yield(RARRAY_PTR(ary)[len]);</div><div class='add'>+	if (RARRAY_LEN(ary) &lt; len) {</div><div class='add'>+	    len = RARRAY_LEN(ary);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    return Qnil;</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.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='add'>+ *     [ 1, 2, 3, 4, 5 ].length   #=&gt; 5</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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 INT2FIX(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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.empty?   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if +self+ contains no elements.</div><div class='add'>+ *</div><div class='add'>+ *     [].empty?   #=&gt; true</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='del'>-	return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    if (RARRAY_LEN(ary) == 0)</div><div class='add'>+	return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-ary_clone(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_dup(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary2 = ary_new2(RARRAY(ary)-&gt;len);</div><div class='del'>-</div><div class='del'>-    CLONESETUP(ary2, ary);</div><div class='del'>-    MEMCPY(RARRAY(ary2)-&gt;ptr, RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;len);</div><div class='del'>-    RARRAY(ary2)-&gt;len = RARRAY(ary)-&gt;len;</div><div class='del'>-    return ary2;</div><div class='add'>+    VALUE dup = rb_ary_new2(RARRAY_LEN(ary));</div><div class='add'>+    MEMCPY(RARRAY_PTR(dup), RARRAY_PTR(ary), VALUE, RARRAY_LEN(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'>-static VALUE</div><div class='del'>-ary_dup(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_resurrect(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    return ary_new4(RARRAY(ary)-&gt;len, RARRAY(ary)-&gt;ptr);</div><div class='add'>+    return rb_ary_new4(RARRAY_LEN(ary), RARRAY_PTR(ary));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+extern VALUE rb_output_fs;</div><div class='add'>+</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'>-to_ary(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+recursive_join(VALUE obj, VALUE argp, int recur)</div><div class='ctx'> {</div><div class='del'>-    return rb_convert_type(ary, T_ARRAY, "Array", "to_ary");</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'>-extern VALUE OFS;</div><div class='del'>-</div><div class='del'>-VALUE</div><div class='del'>-ary_join(ary, sep)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE 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'>-    int i;</div><div class='del'>-    VALUE result, tmp;</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return str_new(0, 0);</div><div class='add'>+    long i;</div><div class='add'>+    VALUE val;</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(RARRAY(ary)-&gt;ptr[0])) {</div><div class='del'>-      case T_STRING:</div><div class='del'>-	result = str_dup(RARRAY(ary)-&gt;ptr[0]);</div><div class='del'>-	break;</div><div class='del'>-      case T_ARRAY:</div><div class='del'>-	result = ary_join(RARRAY(ary)-&gt;ptr[0], sep);</div><div class='del'>-	break;</div><div class='del'>-      default:</div><div class='del'>-	result = obj_as_string(RARRAY(ary)-&gt;ptr[0]);</div><div class='del'>-	break;</div><div class='add'>+    if (max &gt; 0) rb_enc_copy(result, RARRAY_PTR(ary)[0]);</div><div class='add'>+    for (i=0; i&lt;max; i++) {</div><div class='add'>+	val = RARRAY_PTR(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='add'>+	if (OBJ_UNTRUSTED(val)) OBJ_TAINT(result);</div><div class='ctx'>     }</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='ctx'> </div><div class='del'>-    for (i=1; 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='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_PTR(ary)[i];</div><div class='add'>+	switch (TYPE(val)) {</div><div class='ctx'> 	  case T_STRING:</div><div class='add'>+	  str_join:</div><div class='add'>+	    rb_str_buf_append(result, val);</div><div class='add'>+	    *first = FALSE;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	  case T_ARRAY:</div><div class='del'>-	    tmp = ary_join(tmp, sep);</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='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		VALUE args[4];</div><div class='add'>+</div><div class='add'>+		args[0] = val;</div><div class='add'>+		args[1] = sep;</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='add'>+	    }</div><div class='ctx'> 	    break;</div><div class='ctx'> 	  default:</div><div class='del'>-	    tmp = obj_as_string(tmp);</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_convert_type(val, T_ARRAY, "Array", "to_ary");</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'>+	    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'>+	    goto str_join;</div><div class='ctx'> 	}</div><div class='del'>-	if (!NIL_P(sep)) str_concat(result, sep);</div><div class='del'>-	str_cat(result, RSTRING(tmp)-&gt;ptr, RSTRING(tmp)-&gt;len);</div><div class='del'>-	if (str_tainted(tmp)) str_taint(result);</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'>+    int untrust = 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) || OBJ_TAINTED(sep)) taint = TRUE;</div><div class='add'>+    if (OBJ_UNTRUSTED(ary) || OBJ_UNTRUSTED(sep)) untrust = 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_PTR(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'>+	    if (untrust) OBJ_UNTRUST(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='add'>+    if (taint) OBJ_TAINT(result);</div><div class='add'>+    if (untrust) OBJ_UNTRUST(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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.join(sep=$,)    -&gt; str</div><div class='add'>+ *</div><div class='add'>+ *  Returns a string created by converting each element of the array to</div><div class='add'>+ *  a string, separated by &lt;i&gt;sep&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", "b", "c" ].join        #=&gt; "abc"</div><div class='add'>+ *     [ "a", "b", "c" ].join("-")   #=&gt; "a-b-c"</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_join_method(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='del'>-    if (NIL_P(sep)) sep = OFS;</div><div class='add'>+    if (NIL_P(sep)) sep = rb_output_fs;</div><div class='ctx'> </div><div class='del'>-    return ary_join(ary, sep);</div><div class='add'>+    return rb_ary_join(ary, sep);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-ary_to_s(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+static VALUE</div><div class='add'>+inspect_ary(VALUE ary, VALUE dummy, int recur)</div><div class='ctx'> {</div><div class='del'>-    VALUE str = ary_join(ary, OFS);</div><div class='del'>-    if (NIL_P(str)) return str_new(0, 0);</div><div class='add'>+    int tainted = OBJ_TAINTED(ary);</div><div class='add'>+    int untrust = OBJ_UNTRUSTED(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_PTR(ary)[i]);</div><div class='add'>+	if (OBJ_TAINTED(s)) tainted = TRUE;</div><div class='add'>+	if (OBJ_UNTRUSTED(s)) untrust = 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'>+    if (untrust) OBJ_UNTRUST(str);</div><div class='ctx'>     return str;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.to_s -&gt; string</div><div class='add'>+ *     ary.inspect  -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Creates a string representation of +self+.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_inspect(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_inspect(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    int i, len;</div><div class='del'>-    VALUE s, str;</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='add'>+}</div><div class='add'>+</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'>-    if (RARRAY(ary)-&gt;len == 0) return str_new2("[]");</div><div class='del'>-    str = str_new2("[");</div><div class='del'>-    len = 1;</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+. If called on a subclass of Array, converts</div><div class='add'>+ *  the receiver to an Array object.</div><div class='add'>+ */</div><div class='ctx'> </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 (i &gt; 0) str_cat(str, ", ", 2);</div><div class='del'>-	str_cat(str, RSTRING(s)-&gt;ptr, RSTRING(s)-&gt;len);</div><div class='del'>-	len += RSTRING(s)-&gt;len + 2;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_to_a(VALUE ary)</div><div class='add'>+{</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='ctx'>     }</div><div class='del'>-    str_cat(str, "]", 1);</div><div class='del'>-</div><div class='del'>-    return str;</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_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'>-ary_to_a(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_to_ary_m(VALUE ary)</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'>+ary_reverse(p1, p2)</div><div class='add'>+    VALUE *p1, *p2;</div><div class='add'>+{</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='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_reverse(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_reverse(VALUE ary)</div><div class='ctx'> {</div><div class='ctx'>     VALUE *p1, *p2;</div><div class='del'>-    VALUE tmp;</div><div class='ctx'> </div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return ary;</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (RARRAY_LEN(ary) &gt; 1) {</div><div class='add'>+	p1 = RARRAY_PTR(ary);</div><div class='add'>+	p2 = p1 + RARRAY_LEN(ary) - 1;	/* points last item */</div><div class='add'>+	ary_reverse(p1, p2);</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='ctx'> </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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.reverse!   -&gt; ary</div><div class='add'>+ *</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='add'>+ */</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='del'>-	p1++; p2--;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_reverse_bang(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_ary_reverse(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_reverse_m(VALUE ary)</div><div class='add'>+{</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'>+	VALUE *p1 = RARRAY_PTR(ary);</div><div class='add'>+	VALUE *p2 = RARRAY_PTR(dup) + len - 1;</div><div class='add'>+	do *p2-- = *p1++; while (--len &gt; 0);</div><div class='add'>+    }</div><div class='add'>+    ARY_SET_LEN(dup, RARRAY_LEN(ary));</div><div class='add'>+    return dup;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline long</div><div class='add'>+rotate_count(long cnt, long len)</div><div class='add'>+{</div><div class='add'>+    return (cnt &lt; 0) ? (len - (~cnt % len) - 1) : (cnt % len);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_rotate(VALUE ary, long cnt)</div><div class='add'>+{</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+</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='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'> </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'>+ *     ary.rotate!(cnt=1) -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Rotates +self+ in place so that the element at +cnt+ comes first,</div><div class='add'>+ *  and returns +self+.  If +cnt+ is negative then it rotates in</div><div class='add'>+ *  the opposite direction.</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='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_rotate_bang(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</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='ctx'>     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.rotate(cnt=1) -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns new array by rotating +self+ so that the element at</div><div class='add'>+ *  +cnt+ in +self+ is the first element of the new array. If +cnt+</div><div class='add'>+ *  is negative then it rotates in the opposite direction.</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='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_reverse_method(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 ary_reverse(ary_dup(ary));</div><div class='add'>+    VALUE rotated, *ptr, *ptr2;</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_PTR(ary);</div><div class='add'>+	ptr2 = RARRAY_PTR(rotated);</div><div class='add'>+	len -= cnt;</div><div class='add'>+	MEMCPY(ptr2, ptr + cnt, VALUE, len);</div><div class='add'>+	MEMCPY(ptr2 + len, ptr, VALUE, cnt);</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='del'>-static ID cmp;</div><div class='add'>+struct ary_sort_data {</div><div class='add'>+    VALUE ary;</div><div class='add'>+    int opt_methods;</div><div class='add'>+    int opt_inited;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+enum {</div><div class='add'>+    sort_opt_Fixnum,</div><div class='add'>+    sort_opt_String,</div><div class='add'>+    sort_optimizable_count</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define STRING_P(s) (TYPE(s) == T_STRING &amp;&amp; CLASS_OF(s) == rb_cString)</div><div class='add'>+</div><div class='add'>+#define SORT_OPTIMIZABLE_BIT(type) (1U &lt;&lt; TOKEN_PASTE(sort_opt_,type))</div><div class='add'>+#define SORT_OPTIMIZABLE(data, type) \</div><div class='add'>+    (((data)-&gt;opt_inited &amp; SORT_OPTIMIZABLE_BIT(type)) ? \</div><div class='add'>+     ((data)-&gt;opt_methods &amp; SORT_OPTIMIZABLE_BIT(type)) : \</div><div class='add'>+     (((data)-&gt;opt_inited |= SORT_OPTIMIZABLE_BIT(type)), \</div><div class='add'>+      rb_method_basic_definition_p(TOKEN_PASTE(rb_c,type), id_cmp) &amp;&amp; \</div><div class='add'>+      ((data)-&gt;opt_methods |= SORT_OPTIMIZABLE_BIT(type))))</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+sort_reentered(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    if (RBASIC(ary)-&gt;klass) {</div><div class='add'>+	rb_raise(rb_eRuntimeError, "sort reentered");</div><div class='add'>+    }</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-sort_1(a, b)</div><div class='del'>-    VALUE *a, *b;</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(assoc_new(*a, *b));</div><div class='del'>-    return NUM2INT(retval);</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'>+    int n;</div><div class='add'>+</div><div class='add'>+    retval = rb_yield_values(2, a, b);</div><div class='add'>+    n = rb_cmpint(retval, a, b);</div><div class='add'>+    sort_reentered(data-&gt;ary);</div><div class='add'>+    return n;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-sort_2(a, b)</div><div class='del'>-    VALUE *a, *b;</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='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'>+    int n;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(*a)) {</div><div class='del'>-	if (FIXNUM_P(*b)) return *a - *b;</div><div class='add'>+    if (FIXNUM_P(a) &amp;&amp; FIXNUM_P(b) &amp;&amp; SORT_OPTIMIZABLE(data, Fixnum)) {</div><div class='add'>+	if ((long)a &gt; (long)b) return 1;</div><div class='add'>+	if ((long)a &lt; (long)b) return -1;</div><div class='add'>+	return 0;</div><div class='ctx'>     }</div><div class='del'>-    else if (TYPE(*a) == T_STRING) {</div><div class='del'>-	if (TYPE(*b) == T_STRING) return str_cmp(*a, *b);</div><div class='add'>+    if (STRING_P(a) &amp;&amp; STRING_P(b) &amp;&amp; SORT_OPTIMIZABLE(data, String)) {</div><div class='add'>+	return rb_str_cmp(a, b);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    retval = rb_funcall(*a, cmp, 1, *b);</div><div class='del'>-    return NUM2INT(retval);</div><div class='add'>+    retval = rb_funcall(a, id_cmp, 1, b);</div><div class='add'>+    n = rb_cmpint(retval, a, b);</div><div class='add'>+    sort_reentered(data-&gt;ary);</div><div class='add'>+</div><div class='add'>+    return n;</div><div class='ctx'> }</div><div class='ctx'> </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+. Comparisons for</div><div class='add'>+ *  the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator or using</div><div class='add'>+ *  an optional code block. The block implements a comparison between</div><div class='add'>+ *  &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='add'>+ *  &lt;code&gt;Enumerable#sort_by&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "d", "a", "e", "c", "b" ]</div><div class='add'>+ *     a.sort!                    #=&gt; ["a", "b", "c", "d", "e"]</div><div class='add'>+ *     a.sort! {|x,y| y &lt;=&gt; x }   #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_sort_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_sort_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return ary;</div><div class='del'>-</div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    qsort(RARRAY(ary)-&gt;ptr, RARRAY(ary)-&gt;len, sizeof(VALUE),</div><div class='del'>-	  iterator_p()?sort_1:sort_2);</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'>+</div><div class='add'>+	RBASIC(tmp)-&gt;klass = 0;</div><div class='add'>+	data.ary = tmp;</div><div class='add'>+	data.opt_methods = 0;</div><div class='add'>+	data.opt_inited = 0;</div><div class='add'>+	ruby_qsort(RARRAY_PTR(tmp), RARRAY_LEN(tmp), sizeof(VALUE),</div><div class='add'>+		   rb_block_given_p()?sort_1:sort_2, &amp;data);</div><div class='add'>+</div><div class='add'>+        if (ARY_EMBED_P(tmp)) {</div><div class='add'>+            assert(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'>+            }</div><div class='add'>+            FL_SET_EMBED(ary);</div><div class='add'>+            MEMCPY(RARRAY_PTR(ary), ARY_EMBED_PTR(tmp), VALUE, ARY_EMBED_LEN(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'>+            assert(!ARY_EMBED_P(tmp));</div><div class='add'>+            if (ARY_HEAP_PTR(ary) == ARY_HEAP_PTR(tmp)) {</div><div class='add'>+                assert(!ARY_EMBED_P(ary));</div><div class='add'>+                FL_UNSET_SHARED(ary);</div><div class='add'>+                ARY_SET_CAPA(ary, ARY_CAPA(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'>+                    xfree(ARY_HEAP_PTR(ary));</div><div class='add'>+                }</div><div class='add'>+                ARY_SET_PTR(ary, RARRAY_PTR(tmp));</div><div class='add'>+                ARY_SET_HEAP_LEN(ary, RARRAY_LEN(tmp));</div><div class='add'>+                ARY_SET_CAPA(ary, ARY_CAPA(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(tmp)-&gt;klass = rb_cArray;</div><div class='add'>+    }</div><div class='ctx'>     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.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+. Comparisons for</div><div class='add'>+ *  the sort will be done using the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator or using</div><div class='add'>+ *  an optional code block. The block implements a comparison between</div><div class='add'>+ *  &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='add'>+ *  &lt;code&gt;Enumerable#sort_by&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "d", "a", "e", "c", "b" ]</div><div class='add'>+ *     a.sort                    #=&gt; ["a", "b", "c", "d", "e"]</div><div class='add'>+ *     a.sort {|x,y| y &lt;=&gt; x }   #=&gt; ["e", "d", "c", "b", "a"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_sort(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_sort(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    if (RARRAY(ary)-&gt;len == 0) return ary;</div><div class='del'>-    return ary_sort_bang(ary_dup(ary));</div><div class='add'>+    ary = rb_ary_dup(ary);</div><div class='add'>+    rb_ary_sort_bang(ary);</div><div class='add'>+    return ary;</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(VALUE i)</div><div class='add'>+{</div><div class='add'>+    return rb_yield(i);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.sort_by! {| obj | block }    -&gt; ary</div><div class='add'>+ *     ary.sort_by!                     -&gt; an_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'>+ *  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_sort_by_bang(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE sorted;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</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='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.collect {|item| block }  -&gt; new_ary</div><div class='add'>+ *     ary.map     {|item| block }  -&gt; new_ary</div><div class='add'>+ *     ary.collect                  -&gt; an_enumerator</div><div class='add'>+ *     ary.map                      -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes &lt;i&gt;block&lt;/i&gt; once for each element of +self+. Creates a</div><div class='add'>+ *  new array containing the values returned by the block.</div><div class='add'>+ *  See also &lt;code&gt;Enumerable#collect&lt;/code&gt;.</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", "d" ]</div><div class='add'>+ *     a.collect {|x| x + "!" }   #=&gt; ["a!", "b!", "c!", "d!"]</div><div class='add'>+ *     a                          #=&gt; ["a", "b", "c", "d"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_collect(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    VALUE collect;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</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(RARRAY_PTR(ary)[i]));</div><div class='add'>+    }</div><div class='add'>+    return collect;</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.collect! {|item| block }   -&gt; ary</div><div class='add'>+ *     ary.map!     {|item| block }   -&gt; ary</div><div class='add'>+ *     ary.collect                    -&gt; an_enumerator</div><div class='add'>+ *     ary.map                        -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the block once for each element of +self+, replacing the</div><div class='add'>+ *  element with the value returned by _block_.</div><div class='add'>+ *  See also &lt;code&gt;Enumerable#collect&lt;/code&gt;.</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", "d" ]</div><div class='add'>+ *     a.collect! {|x| x + "!" }</div><div class='add'>+ *     a             #=&gt;  [ "a!", "b!", "c!", "d!" ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_collect_bang(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'>+    rb_ary_modify(ary);</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_PTR(ary)[i]));</div><div class='add'>+    }</div><div class='add'>+    return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-ary_delete(ary, item)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE item;</div><div class='add'>+rb_get_values_at(VALUE obj, long olen, int argc, VALUE *argv, VALUE (*func) (VALUE, long))</div><div class='ctx'> {</div><div class='del'>-    int i1, i2;</div><div class='add'>+    VALUE result = rb_ary_new2(argc);</div><div class='add'>+    long beg, len, i, j;</div><div class='ctx'> </div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    for (i1 = i2 = 0; i1 &lt; RARRAY(ary)-&gt;len; i1++) {</div><div class='del'>-	if (rb_equal(RARRAY(ary)-&gt;ptr[i1], item)) continue;</div><div class='del'>-	if (i1 != i2) {</div><div class='del'>-	    RARRAY(ary)-&gt;ptr[i2] = RARRAY(ary)-&gt;ptr[i1];</div><div class='add'>+    for (i=0; i&lt;argc; i++) {</div><div class='add'>+	if (FIXNUM_P(argv[i])) {</div><div class='add'>+	    rb_ary_push(result, (*func)(obj, FIX2LONG(argv[i])));</div><div class='add'>+	    continue;</div><div class='ctx'> 	}</div><div class='del'>-	i2++;</div><div class='add'>+	/* check if idx is Range */</div><div class='add'>+	switch (rb_range_beg_len(argv[i], &amp;beg, &amp;len, olen, 0)) {</div><div class='add'>+	  case Qfalse:</div><div class='add'>+	    break;</div><div class='add'>+	  case Qnil:</div><div class='add'>+	    continue;</div><div class='add'>+	  default:</div><div class='add'>+	    for (j=0; j&lt;len; j++) {</div><div class='add'>+		rb_ary_push(result, (*func)(obj, j+beg));</div><div class='add'>+	    }</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	rb_ary_push(result, (*func)(obj, NUM2LONG(argv[i])));</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary)-&gt;len == i2) {</div><div class='del'>-	if (iterator_p()) {</div><div class='del'>-	    return rb_yield(item);</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.values_at(selector,... )  -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array containing the elements in</div><div class='add'>+ *  +self+ corresponding to the given selector(s). The selectors</div><div class='add'>+ *  may be either integer indices or ranges.</div><div class='add'>+ *  See also &lt;code&gt;Array#select&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = %w{ a b c d e f }</div><div class='add'>+ *     a.values_at(1, 3, 5)</div><div class='add'>+ *     a.values_at(1, 3, 5, 7)</div><div class='add'>+ *     a.values_at(-1, -3, -5, -7)</div><div class='add'>+ *     a.values_at(1..3, 2...5)</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_values_at(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_get_values_at(ary, RARRAY_LEN(ary), argc, argv, rb_ary_entry);</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.select {|item| block } -&gt; new_ary</div><div class='add'>+ *     ary.select                 -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the block passing in successive elements from +self+,</div><div class='add'>+ *  returning an array containing those elements for which the block</div><div class='add'>+ *  returns a true value (equivalent to &lt;code&gt;Enumerable#select&lt;/code&gt;).</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.select {|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_select(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE result;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</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_PTR(ary)[i]))) {</div><div class='add'>+	    rb_ary_push(result, rb_ary_elt(ary, i));</div><div class='ctx'> 	}</div><div class='del'>-	return Qnil;</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	RARRAY(ary)-&gt;len = i2;</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.select! {|item| block } -&gt; ary or nil</div><div class='add'>+ *     ary.select!                 -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Invokes the block passing in successive elements from</div><div class='add'>+ *  +self+, deleting elements for which the block returns a</div><div class='add'>+ *  false value. It returns +self+ if changes were made,</div><div class='add'>+ *  otherwise it returns &lt;code&gt;nil&lt;/code&gt;.</div><div class='add'>+ *  See also &lt;code&gt;Array#keep_if&lt;/code&gt;</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'>+    long i1, i2;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    for (i1 = i2 = 0; i1 &lt; RARRAY_LEN(ary); i1++) {</div><div class='add'>+	VALUE v = RARRAY_PTR(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'>+	i2++;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return item;</div><div class='add'>+    if (RARRAY_LEN(ary) == i2) return Qnil;</div><div class='add'>+    if (i2 &lt; RARRAY_LEN(ary))</div><div class='add'>+	ARY_SET_LEN(ary, i2);</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.keep_if {|item| block } -&gt; ary</div><div class='add'>+ *     ary.keep_if                 -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Deletes every element of +self+ for which &lt;i&gt;block&lt;/i&gt; evaluates</div><div class='add'>+ *  to false.</div><div class='add'>+ *  See also &lt;code&gt;Array#select!&lt;/code&gt;</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_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    rb_ary_select_bang(ary);</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.delete(obj)            -&gt; obj or nil</div><div class='add'>+ *     ary.delete(obj) { block }  -&gt; obj or nil</div><div class='add'>+ *</div><div class='add'>+ *  Deletes items from +self+ that are equal to &lt;i&gt;obj&lt;/i&gt;.</div><div class='add'>+ *  If any items are found, returns &lt;i&gt;obj&lt;/i&gt;.   If</div><div class='add'>+ *  the item is not found, returns &lt;code&gt;nil&lt;/code&gt;. If the optional</div><div class='add'>+ *  code block is given, returns the result of &lt;i&gt;block&lt;/i&gt; if the item</div><div class='add'>+ *  is not found.  (To remove &lt;code&gt;nil&lt;/code&gt; elements and</div><div class='add'>+ *  get an informative return value, use #compact!)</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "b", "b", "c" ]</div><div class='add'>+ *     a.delete("b")                   #=&gt; "b"</div><div class='add'>+ *     a                               #=&gt; ["a", "c"]</div><div class='add'>+ *     a.delete("z")                   #=&gt; nil</div><div class='add'>+ *     a.delete("z") { "not found" }   #=&gt; "not found"</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_delete_at(ary, at)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE at;</div><div class='add'>+rb_ary_delete(VALUE ary, VALUE item)</div><div class='ctx'> {</div><div class='del'>-    int i1, i2, pos;</div><div class='del'>-    VALUE del = Qnil;</div><div class='add'>+    VALUE v = item;</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_PTR(ary)[i1];</div><div class='ctx'> </div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    pos = NUM2INT(at);</div><div class='del'>-    for (i1 = i2 = 0; i1 &lt; RARRAY(ary)-&gt;len; i1++) {</div><div class='del'>-	if (i1 == pos) {</div><div class='del'>-	    del = RARRAY(ary)-&gt;ptr[i1];</div><div class='add'>+	if (rb_equal(e, item)) {</div><div class='add'>+	    v = e;</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	}</div><div class='ctx'> 	if (i1 != i2) {</div><div class='del'>-	    RARRAY(ary)-&gt;ptr[i2] = RARRAY(ary)-&gt;ptr[i1];</div><div class='add'>+	    rb_ary_store(ary, i2, e);</div><div class='ctx'> 	}</div><div class='ctx'> 	i2++;</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = i2;</div><div class='add'>+    if (RARRAY_LEN(ary) == i2) {</div><div class='add'>+	if (rb_block_given_p()) {</div><div class='add'>+	    return rb_yield(item);</div><div class='add'>+	}</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    if (RARRAY_LEN(ary) &gt; i2) {</div><div class='add'>+	ARY_SET_LEN(ary, i2);</div><div class='add'>+	if (i2 * 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, i2*2);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return v;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_delete_at(VALUE ary, long pos)</div><div class='add'>+{</div><div class='add'>+    long len = RARRAY_LEN(ary);</div><div class='add'>+    VALUE del;</div><div class='add'>+</div><div class='add'>+    if (pos &gt;= len) return Qnil;</div><div class='add'>+    if (pos &lt; 0) {</div><div class='add'>+	pos += len;</div><div class='add'>+	if (pos &lt; 0) return Qnil;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    del = RARRAY_PTR(ary)[pos];</div><div class='add'>+    MEMMOVE(RARRAY_PTR(ary)+pos, RARRAY_PTR(ary)+pos+1, VALUE,</div><div class='add'>+	    RARRAY_LEN(ary)-pos-1);</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='add'>+/*</div><div class='add'>+ *  call-seq:</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,</div><div class='add'>+ *  or &lt;code&gt;nil&lt;/code&gt; if the index is out of range. See also</div><div class='add'>+ *  &lt;code&gt;Array#slice!&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = %w( ant bat cat dog )</div><div class='add'>+ *     a.delete_at(2)    #=&gt; "cat"</div><div class='add'>+ *     a                 #=&gt; ["ant", "bat", "dog"]</div><div class='add'>+ *     a.delete_at(99)   #=&gt; nil</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_delete_if(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_delete_at_m(VALUE ary, VALUE pos)</div><div class='ctx'> {</div><div class='del'>-    int i1, i2;</div><div class='add'>+    return rb_ary_delete_at(ary, NUM2LONG(pos));</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    for (i1 = i2 = 0; i1 &lt; RARRAY(ary)-&gt;len; i1++) {</div><div class='del'>-	if (rb_yield(RARRAY(ary)-&gt;ptr[i1])) continue;</div><div class='del'>-	if (i1 != i2) {</div><div class='del'>-	    RARRAY(ary)-&gt;ptr[i2] = RARRAY(ary)-&gt;ptr[i1];</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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 with a length)</div><div class='add'>+ *  or by a range. Returns the deleted object (or objects), or</div><div class='add'>+ *  &lt;code&gt;nil&lt;/code&gt; if the index is out of range.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     a.slice!(1)     #=&gt; "b"</div><div class='add'>+ *     a               #=&gt; ["a", "c"]</div><div class='add'>+ *     a.slice!(-1)    #=&gt; "c"</div><div class='add'>+ *     a               #=&gt; ["a"]</div><div class='add'>+ *     a.slice!(100)   #=&gt; nil</div><div class='add'>+ *     a               #=&gt; ["a"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_slice_bang(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE arg1, arg2;</div><div class='add'>+    long pos, len, orig_len;</div><div class='add'>+</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='add'>+      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='add'>+	if (pos &lt; 0) {</div><div class='add'>+	    pos += orig_len;</div><div class='add'>+	    if (pos &lt; 0) return Qnil;</div><div class='ctx'> 	}</div><div class='del'>-	i2++;</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='add'>+	}</div><div class='add'>+	if (len == 0) return rb_ary_new2(0);</div><div class='add'>+	arg2 = rb_ary_new4(len, RARRAY_PTR(ary)+pos);</div><div class='add'>+	RBASIC(arg2)-&gt;klass = rb_obj_class(ary);</div><div class='add'>+	rb_ary_splice(ary, pos, len, Qundef);</div><div class='add'>+	return arg2;</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = i2;</div><div class='ctx'> </div><div class='del'>-    return ary;</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='add'>+    }</div><div class='add'>+</div><div class='add'>+    return rb_ary_delete_at(ary, NUM2LONG(arg1));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_filter(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+ary_reject(VALUE orig, VALUE result)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    for (i = 0; i &lt; RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	RARRAY(ary)-&gt;ptr[i] = rb_yield(RARRAY(ary)-&gt;ptr[i]);</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(orig); i++) {</div><div class='add'>+	VALUE v = RARRAY_PTR(orig)[i];</div><div class='add'>+	if (!RTEST(rb_yield(v))) {</div><div class='add'>+	    rb_ary_push_1(result, v);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    return ary;</div><div class='add'>+    return result;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_replace_method(ary, ary2)</div><div class='del'>-    VALUE ary, ary2;</div><div class='add'>+ary_reject_bang(VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    ary2 = to_ary(ary2);</div><div class='del'>-    ary_replace(ary, 0, RARRAY(ary2)-&gt;len, ary2);</div><div class='add'>+    long i;</div><div class='add'>+    VALUE result = Qnil;</div><div class='add'>+</div><div class='add'>+    rb_ary_modify_check(ary);</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); ) {</div><div class='add'>+	VALUE v = RARRAY_PTR(ary)[i];</div><div class='add'>+	if (RTEST(rb_yield(v))) {</div><div class='add'>+	    rb_ary_delete_at(ary, i);</div><div class='add'>+	    result = ary;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    i++;</div><div class='add'>+	}</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='add'>+ *  call-seq:</div><div class='add'>+ *     ary.reject! {|item| block }  -&gt; ary or nil</div><div class='add'>+ *     ary.reject!                  -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Equivalent to &lt;code&gt;Array#delete_if&lt;/code&gt;, deleting elements from</div><div class='add'>+ *  +self+ for which the block evaluates to true, but returns</div><div class='add'>+ *  &lt;code&gt;nil&lt;/code&gt; if no changes were made.</div><div class='add'>+ *  The array is changed instantly every time the block is called and</div><div class='add'>+ *  not after the iteration is over.</div><div class='add'>+ *  See also &lt;code&gt;Enumerable#reject&lt;/code&gt; and &lt;code&gt;Array#delete_if&lt;/code&gt;.</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_reject_bang(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</div><div class='add'>+    return ary_reject_bang(ary);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.reject {|item| block }  -&gt; new_ary</div><div class='add'>+ *     ary.reject                  -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new array containing the items in +self+</div><div class='add'>+ *  for which the block is not true.</div><div class='add'>+ *  See also &lt;code&gt;Array#delete_if&lt;/code&gt;</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_reject(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE rejected_ary;</div><div class='add'>+</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</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; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Deletes every element of +self+ for which &lt;i&gt;block&lt;/i&gt; evaluates</div><div class='add'>+ *  to true.</div><div class='add'>+ *  The array is changed instantly every time the block is called and</div><div class='add'>+ *  not after the iteration is over.</div><div class='add'>+ *  See also &lt;code&gt;Array#reject!&lt;/code&gt;</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.delete_if {|x| x &gt;= "b" }   #=&gt; ["a"]</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='add'>+{</div><div class='add'>+    RETURN_ENUMERATOR(ary, 0, 0);</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='ctx'> static VALUE</div><div class='del'>-ary_clear(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+take_i(VALUE val, VALUE *args, int argc, VALUE *argv)</div><div class='add'>+{</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'>+    rb_block_call(obj, rb_intern("each"), 0, 0, take_i, (VALUE)args);</div><div class='add'>+    return result;</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.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</div><div class='add'>+ *  +self+ with corresponding elements from each argument. This</div><div class='add'>+ *  generates a sequence of &lt;code&gt;self.size&lt;/code&gt; &lt;em&gt;n&lt;/em&gt;-element</div><div class='add'>+ *  arrays, where &lt;em&gt;n&lt;/em&gt; is one more that the count of arguments. If</div><div class='add'>+ *  the size of any argument is less than &lt;code&gt;enumObj.size&lt;/code&gt;,</div><div class='add'>+ *  &lt;code&gt;nil&lt;/code&gt; values are supplied. If a block is given, it is</div><div class='add'>+ *  invoked for each output array, otherwise an array of arrays is</div><div class='add'>+ *  returned.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 4, 5, 6 ]</div><div class='add'>+ *     b = [ 7, 8, 9 ]</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='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_zip(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    int i, j;</div><div class='add'>+    long len;</div><div class='add'>+    VALUE result = Qnil;</div><div class='add'>+</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    for (i=0; i&lt;argc; i++) {</div><div class='add'>+	argv[i] = take_items(argv[i], len);</div><div class='add'>+    }</div><div class='add'>+    if (!rb_block_given_p()) {</div><div class='add'>+	result = rb_ary_new2(len);</div><div class='add'>+    }</div><div class='add'>+</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, rb_ary_elt(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'>+	if (NIL_P(result)) {</div><div class='add'>+	    rb_yield(tmp);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_ary_push(result, tmp);</div><div class='add'>+	}</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='add'>+ *  call-seq:</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</div><div class='add'>+ *  rows and columns.</div><div class='add'>+ *</div><div class='add'>+ *     a = [[1,2], [3,4], [5,6]]</div><div class='add'>+ *     a.transpose   #=&gt; [[1, 3, 5], [2, 4, 6]]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_transpose(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long elen = -1, alen, i, j;</div><div class='add'>+    VALUE tmp, result = 0;</div><div class='add'>+</div><div class='add'>+    alen = RARRAY_LEN(ary);</div><div class='add'>+    if (alen == 0) return rb_ary_dup(ary);</div><div class='add'>+    for (i=0; i&lt;alen; i++) {</div><div class='add'>+	tmp = to_ary(rb_ary_elt(ary, i));</div><div class='add'>+	if (elen &lt; 0) {		/* first element */</div><div class='add'>+	    elen = RARRAY_LEN(tmp);</div><div class='add'>+	    result = rb_ary_new2(elen);</div><div class='add'>+	    for (j=0; j&lt;elen; j++) {</div><div class='add'>+		rb_ary_store(result, j, rb_ary_new2(alen));</div><div class='add'>+	    }</div><div class='add'>+	}</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='add'>+	}</div><div class='add'>+	for (j=0; j&lt;elen; j++) {</div><div class='add'>+	    rb_ary_store(rb_ary_elt(result, j), i, rb_ary_elt(tmp, j));</div><div class='add'>+	}</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='add'>+ *  call-seq:</div><div class='add'>+ *     ary.replace(other_ary)  -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Replaces the contents of +self+ with the contents of</div><div class='add'>+ *  &lt;i&gt;other_ary&lt;/i&gt;, truncating or expanding if necessary.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d", "e" ]</div><div class='add'>+ *     a.replace([ "x", "y", "z" ])   #=&gt; ["x", "y", "z"]</div><div class='add'>+ *     a                              #=&gt; ["x", "y", "z"]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_replace(VALUE copy, VALUE orig)</div><div class='ctx'> {</div><div class='del'>-    RARRAY(ary)-&gt;len = 0;</div><div class='del'>-    if (ARY_DEFAULT_SIZE*3 &lt; RARRAY(ary)-&gt;capa) {</div><div class='del'>-	RARRAY(ary)-&gt;capa = ARY_DEFAULT_SIZE * 2;</div><div class='del'>-	REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</div><div class='add'>+    rb_ary_modify_check(copy);</div><div class='add'>+    orig = to_ary(orig);</div><div class='add'>+    if (copy == orig) return copy;</div><div class='add'>+</div><div class='add'>+    if (RARRAY_LEN(orig) &lt;= RARRAY_EMBED_LEN_MAX) {</div><div class='add'>+        VALUE *ptr;</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'>+            xfree(RARRAY_PTR(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'>+        ptr = RARRAY_PTR(orig);</div><div class='add'>+        MEMCPY(RARRAY_PTR(copy), ptr, VALUE, RARRAY_LEN(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'>+            xfree(RARRAY_PTR(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_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='add'>+    return copy;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.clear    -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Removes all elements from +self+.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d", "e" ]</div><div class='add'>+ *     a.clear    #=&gt; [ ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_clear(VALUE ary)</div><div class='add'>+{</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='add'>+/*</div><div class='add'>+ *  call-seq:</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 &lt;i&gt;obj&lt;/i&gt;. A &lt;i&gt;start&lt;/i&gt; of</div><div class='add'>+ *  &lt;code&gt;nil&lt;/code&gt; is equivalent to zero. A &lt;i&gt;length&lt;/i&gt; of</div><div class='add'>+ *  &lt;code&gt;nil&lt;/code&gt; is equivalent to &lt;i&gt;self.length&lt;/i&gt;. The last three</div><div class='add'>+ *  forms fill the array with the value of the block. The block is</div><div class='add'>+ *  passed the absolute index of each element to be filled.</div><div class='add'>+ *  Negative values of &lt;i&gt;start&lt;/i&gt; count from the end of the array.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c", "d" ]</div><div class='add'>+ *     a.fill("x")              #=&gt; ["x", "x", "x", "x"]</div><div class='add'>+ *     a.fill("z", 2, 2)        #=&gt; ["x", "x", "z", "z"]</div><div class='add'>+ *     a.fill("y", 0..1)        #=&gt; ["y", "y", "z", "z"]</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='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='ctx'>     VALUE item, arg1, arg2;</div><div class='del'>-    int beg, len, end;</div><div class='add'>+    long beg = 0, end = 0, len = 0;</div><div class='ctx'>     VALUE *p, *pend;</div><div class='add'>+    int block_p = FALSE;</div><div class='ctx'> </div><div class='del'>-    if (rb_scan_args(argc, argv, "12", &amp;item, &amp;arg1, &amp;arg2) == 2 &amp;&amp;</div><div class='del'>-	beg_len(arg1, &amp;beg, &amp;len, RARRAY(ary)-&gt;len)) {</div><div class='del'>-	/* beg and len set already */</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	block_p = TRUE;</div><div class='add'>+	rb_scan_args(argc, argv, "02", &amp;arg1, &amp;arg2);</div><div class='add'>+	argc += 1;		/* hackish */</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	beg = NIL_P(arg1)?0:NUM2INT(arg1);</div><div class='add'>+	rb_scan_args(argc, argv, "12", &amp;item, &amp;arg1, &amp;arg2);</div><div class='add'>+    }</div><div class='add'>+    switch (argc) {</div><div class='add'>+      case 1:</div><div class='add'>+	beg = 0;</div><div class='add'>+	len = RARRAY_LEN(ary);</div><div class='add'>+	break;</div><div class='add'>+      case 2:</div><div class='add'>+	if (rb_range_beg_len(arg1, &amp;beg, &amp;len, RARRAY_LEN(ary), 1)) {</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	/* fall through */</div><div class='add'>+      case 3:</div><div class='add'>+	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:NUM2INT(arg2);</div><div class='add'>+	len = NIL_P(arg2) ? RARRAY_LEN(ary) - beg : NUM2LONG(arg2);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    rb_ary_modify(ary);</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='add'>+	rb_raise(rb_eArgError, "argument too big");</div><div class='ctx'>     }</div><div class='ctx'>     end = beg + len;</div><div class='del'>-    if (end &gt; RARRAY(ary)-&gt;len) {</div><div class='del'>-	if (end &gt;= RARRAY(ary)-&gt;capa) {</div><div class='del'>-	    RARRAY(ary)-&gt;capa=end;</div><div class='del'>-	    REALLOC_N(RARRAY(ary)-&gt;ptr, VALUE, RARRAY(ary)-&gt;capa);</div><div class='del'>-	}</div><div class='del'>-	if (beg &gt; RARRAY(ary)-&gt;len) {</div><div class='del'>-	    memclear(RARRAY(ary)-&gt;ptr+RARRAY(ary)-&gt;len,end-RARRAY(ary)-&gt;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'>-	RARRAY(ary)-&gt;len = end;</div><div class='add'>+	rb_mem_clear(RARRAY_PTR(ary) + RARRAY_LEN(ary), end - RARRAY_LEN(ary));</div><div class='add'>+	ARY_SET_LEN(ary, end);</div><div class='ctx'>     }</div><div class='del'>-    p = RARRAY(ary)-&gt;ptr + beg; pend = p + len;</div><div class='ctx'> </div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	*p++ = item;</div><div class='add'>+    if (block_p) {</div><div class='add'>+	VALUE v;</div><div class='add'>+	long i;</div><div class='add'>+</div><div class='add'>+	for (i=beg; i&lt;end; i++) {</div><div class='add'>+	    v = rb_yield(LONG2NUM(i));</div><div class='add'>+	    if (i&gt;=RARRAY_LEN(ary)) break;</div><div class='add'>+	    RARRAY_PTR(ary)[i] = v;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	p = RARRAY_PTR(ary) + beg;</div><div class='add'>+	pend = p + len;</div><div class='add'>+	while (p &lt; pend) {</div><div class='add'>+	    *p++ = item;</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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary + other_ary   -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Concatenation---Returns a new array built by concatenating the</div><div class='add'>+ *  two arrays together to produce a third array.</div><div class='add'>+ *</div><div class='add'>+ *     [ 1, 2, 3 ] + [ 4, 5 ]    #=&gt; [ 1, 2, 3, 4, 5 ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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'>-</div><div class='del'>-    if (TYPE(y) != T_ARRAY) {</div><div class='del'>-	return ary_plus(x, rb_Array(y));</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    z = ary_new2(RARRAY(x)-&gt;len + RARRAY(y)-&gt;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 = RARRAY(x)-&gt;len + RARRAY(y)-&gt;len;</div><div class='add'>+    long len;</div><div class='add'>+</div><div class='add'>+    y = to_ary(y);</div><div class='add'>+    len = RARRAY_LEN(x) + RARRAY_LEN(y);</div><div class='add'>+    z = rb_ary_new2(len);</div><div class='add'>+    MEMCPY(RARRAY_PTR(z), RARRAY_PTR(x), VALUE, RARRAY_LEN(x));</div><div class='add'>+    MEMCPY(RARRAY_PTR(z) + RARRAY_LEN(x), RARRAY_PTR(y), VALUE, RARRAY_LEN(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'>-VALUE</div><div class='del'>-ary_concat(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-{</div><div class='del'>-    VALUE *p, *pend;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.concat(other_ary)   -&gt; ary</div><div class='add'>+ *</div><div class='add'>+ *  Appends the elements of &lt;i&gt;other_ary&lt;/i&gt; to +self+.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", "b" ].concat( ["c", "d"] ) #=&gt; [ "a", "b", "c", "d" ]</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-    if (TYPE(y) != T_ARRAY) {</div><div class='del'>-	return ary_concat(x, rb_Array(y));</div><div class='del'>-    }</div><div class='ctx'> </div><div class='del'>-    p = RARRAY(y)-&gt;ptr;</div><div class='del'>-    pend = p + RARRAY(y)-&gt;len;</div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	ary_store(x, RARRAY(x)-&gt;len, *p);</div><div class='del'>-	p++;</div><div class='add'>+VALUE</div><div class='add'>+rb_ary_concat(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    rb_ary_modify_check(x);</div><div class='add'>+    y = to_ary(y);</div><div class='add'>+    if (RARRAY_LEN(y) &gt; 0) {</div><div class='add'>+	rb_ary_splice(x, RARRAY_LEN(x), 0, y);</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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'>+ *  self.join(str). Otherwise, returns a new array</div><div class='add'>+ *  built by concatenating the _int_ copies of +self+.</div><div class='add'>+ *</div><div class='add'>+ *</div><div class='add'>+ *     [ 1, 2, 3 ] * 3    #=&gt; [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]</div><div class='add'>+ *     [ 1, 2, 3 ] * ","  #=&gt; "1,2,3"</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_times(ary, times)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE times;</div><div class='add'>+rb_ary_times(VALUE ary, VALUE times)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary2;</div><div class='del'>-    int i, len;</div><div class='add'>+    VALUE ary2, tmp, *ptr, *ptr2;</div><div class='add'>+    long t, len;</div><div class='ctx'> </div><div class='del'>-    if (TYPE(times) == T_STRING) {</div><div class='del'>-	return ary_join(ary, times);</div><div class='add'>+    tmp = rb_check_string_type(times);</div><div class='add'>+    if (!NIL_P(tmp)) {</div><div class='add'>+	return rb_ary_join(ary, tmp);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    len = NUM2INT(times);</div><div class='add'>+    len = NUM2LONG(times);</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='del'>-	ArgError("negative argument");</div><div class='add'>+	rb_raise(rb_eArgError, "negative argument");</div><div class='ctx'>     }</div><div class='del'>-    len *= RARRAY(ary)-&gt;len;</div><div class='del'>-</div><div class='del'>-    ary2 = ary_new2(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='add'>+    if (ARY_MAX_SIZE/len &lt; RARRAY_LEN(ary)) {</div><div class='add'>+	rb_raise(rb_eArgError, "argument too big");</div><div class='add'>+    }</div><div class='add'>+    len *= RARRAY_LEN(ary);</div><div class='add'>+</div><div class='add'>+    ary2 = ary_new(rb_obj_class(ary), len);</div><div class='add'>+    ARY_SET_LEN(ary2, len);</div><div class='add'>+</div><div class='add'>+    ptr = RARRAY_PTR(ary);</div><div class='add'>+    ptr2 = RARRAY_PTR(ary2);</div><div class='add'>+    t = RARRAY_LEN(ary);</div><div class='add'>+    if (0 &lt; t) {</div><div class='add'>+        MEMCPY(ptr2, ptr, VALUE, t);</div><div class='add'>+        while (t &lt;= len/2) {</div><div class='add'>+            MEMCPY(ptr2+t, ptr2, VALUE, t);</div><div class='add'>+            t *= 2;</div><div class='add'>+        }</div><div class='add'>+        if (t &lt; len) {</div><div class='add'>+            MEMCPY(ptr2+t, ptr2, VALUE, len-t);</div><div class='add'>+        }</div><div class='ctx'>     }</div><div class='add'>+  out:</div><div class='add'>+    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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.assoc(obj)   -&gt; new_ary  or  nil</div><div class='add'>+ *</div><div class='add'>+ *  Searches through an array whose elements are also arrays</div><div class='add'>+ *  comparing _obj_ with the first element of each contained array</div><div class='add'>+ *  using obj.==.</div><div class='add'>+ *  Returns the first contained array that matches (that</div><div class='add'>+ *  is, the first associated array),</div><div class='add'>+ *  or +nil+ if no match is found.</div><div class='add'>+ *  See also &lt;code&gt;Array#rassoc&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     s1 = [ "colors", "red", "blue", "green" ]</div><div class='add'>+ *     s2 = [ "letters", "a", "b", "c" ]</div><div class='add'>+ *     s3 = "foo"</div><div class='add'>+ *     a  = [ s1, s2, s3 ]</div><div class='add'>+ *     a.assoc("letters")  #=&gt; [ "letters", "a", "b", "c" ]</div><div class='add'>+ *     a.assoc("foo")      #=&gt; nil</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_assoc(ary, key)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE key;</div><div class='add'>+rb_ary_assoc(VALUE ary, VALUE key)</div><div class='ctx'> {</div><div class='del'>-    VALUE *p, *pend;</div><div class='add'>+    long i;</div><div class='add'>+    VALUE v;</div><div class='ctx'> </div><div class='del'>-    p = RARRAY(ary)-&gt;ptr; pend = p + RARRAY(ary)-&gt;len;</div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	if (TYPE(*p) == T_ARRAY</div><div class='del'>-	    &amp;&amp; RARRAY(*p)-&gt;len &gt; 1</div><div class='del'>-	    &amp;&amp; rb_equal(RARRAY(*p)-&gt;ptr[0], key))</div><div class='del'>-	    return *p;</div><div class='del'>-	p++;</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	v = rb_check_array_type(RARRAY_PTR(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_PTR(v)[0], key))</div><div class='add'>+	    return v;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.rassoc(obj) -&gt; new_ary or nil</div><div class='add'>+ *</div><div class='add'>+ *  Searches through the array whose elements are also arrays. Compares</div><div class='add'>+ *  _obj_ with the second element of each contained array using</div><div class='add'>+ *  &lt;code&gt;==&lt;/code&gt;. Returns the first contained array that matches. See</div><div class='add'>+ *  also &lt;code&gt;Array#assoc&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ [ 1, "one"], [2, "two"], [3, "three"], ["ii", "two"] ]</div><div class='add'>+ *     a.rassoc("two")    #=&gt; [2, "two"]</div><div class='add'>+ *     a.rassoc("four")   #=&gt; nil</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-ary_rassoc(ary, value)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE value;</div><div class='add'>+rb_ary_rassoc(VALUE ary, VALUE value)</div><div class='ctx'> {</div><div class='del'>-    VALUE *p, *pend;</div><div class='add'>+    long i;</div><div class='add'>+    VALUE v;</div><div class='ctx'> </div><div class='del'>-    p = RARRAY(ary)-&gt;ptr; pend = p + RARRAY(ary)-&gt;len;</div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	if (TYPE(*p) == T_ARRAY</div><div class='del'>-	    &amp;&amp; RARRAY(*p)-&gt;len &gt; 1</div><div class='del'>-	    &amp;&amp; rb_equal(RARRAY(*p)-&gt;ptr[1], value))</div><div class='del'>-	    return *p;</div><div class='del'>-	p++;</div><div class='add'>+    for (i = 0; i &lt; RARRAY_LEN(ary); ++i) {</div><div class='add'>+	v = RARRAY_PTR(ary)[i];</div><div class='add'>+	if (TYPE(v) == T_ARRAY &amp;&amp;</div><div class='add'>+	    RARRAY_LEN(v) &gt; 1 &amp;&amp;</div><div class='add'>+	    rb_equal(RARRAY_PTR(v)[1], value))</div><div class='add'>+	    return v;</div><div class='ctx'>     }</div><div class='ctx'>     return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_equal(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+recursive_equal(VALUE ary1, VALUE ary2, int recur)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-    if (TYPE(ary2) != T_ARRAY) return FALSE;</div><div class='del'>-    if (RARRAY(ary1)-&gt;len != RARRAY(ary2)-&gt;len) return FALSE;</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (!rb_equal(RARRAY(ary1)-&gt;ptr[i], RARRAY(ary2)-&gt;ptr[i]))</div><div class='del'>-	    return FALSE;</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_equal(rb_ary_elt(ary1, i), rb_ary_elt(ary2, i)))</div><div class='add'>+	    return Qfalse;</div><div class='ctx'>     }</div><div class='del'>-    return TRUE;</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary == other_ary   -&gt;   bool</div><div class='add'>+ *</div><div class='add'>+ *  Equality---Two arrays are equal if they contain the same number</div><div class='add'>+ *  of elements and if each element is equal to (according to</div><div class='add'>+ *  Object.==) the corresponding element in the other array.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", "c" ]    == [ "a", "c", 7 ]     #=&gt; false</div><div class='add'>+ *     [ "a", "c", 7 ] == [ "a", "c", 7 ]     #=&gt; true</div><div class='add'>+ *     [ "a", "c", 7 ] == [ "a", "d", "f" ]   #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_eql(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'>-    int i;</div><div class='add'>+    if (ary1 == ary2) return Qtrue;</div><div class='add'>+    if (TYPE(ary2) != T_ARRAY) {</div><div class='add'>+	if (!rb_respond_to(ary2, rb_intern("to_ary"))) {</div><div class='add'>+	    return Qfalse;</div><div class='add'>+	}</div><div class='add'>+	return rb_equal(ary2, ary1);</div><div class='add'>+    }</div><div class='add'>+    if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;</div><div class='add'>+    return rb_exec_recursive_paired(recursive_equal, ary1, ary2, ary2);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (TYPE(ary2) != T_ARRAY) return FALSE;</div><div class='del'>-    if (RARRAY(ary1)-&gt;len != RARRAY(ary2)-&gt;len)</div><div class='del'>-	return FALSE;</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (!rb_eql(RARRAY(ary1)-&gt;ptr[i], RARRAY(ary2)-&gt;ptr[i]))</div><div class='del'>-	    return FALSE;</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='add'>+	    return Qfalse;</div><div class='ctx'>     }</div><div class='del'>-    return TRUE;</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.eql?(other)  -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if +self+ and _other_ are the same object,</div><div class='add'>+ *  or are both arrays with the same content.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_hash(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_eql(VALUE ary1, VALUE ary2)</div><div class='ctx'> {</div><div class='del'>-    int h, i;</div><div class='add'>+    if (ary1 == ary2) return Qtrue;</div><div class='add'>+    if (TYPE(ary2) != T_ARRAY) return Qfalse;</div><div class='add'>+    if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return Qfalse;</div><div class='add'>+    return rb_exec_recursive_paired(recursive_eql, ary1, ary2, ary2);</div><div class='add'>+}</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 ^= rb_hash(RARRAY(ary)-&gt;ptr[i]);</div><div class='add'>+static VALUE</div><div class='add'>+recursive_hash(VALUE ary, VALUE dummy, int recur)</div><div class='add'>+{</div><div class='add'>+    long i;</div><div class='add'>+    st_index_t h;</div><div class='add'>+    VALUE n;</div><div class='add'>+</div><div class='add'>+    h = rb_hash_start(RARRAY_LEN(ary));</div><div class='add'>+    if (recur) {</div><div class='add'>+	h = rb_hash_uint(h, NUM2LONG(rb_hash(rb_cArray)));</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'>+	    n = rb_hash(RARRAY_PTR(ary)[i]);</div><div class='add'>+	    h = rb_hash_uint(h, NUM2LONG(n));</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    return INT2FIX(h);</div><div class='add'>+    h = rb_hash_end(h);</div><div class='add'>+    return LONG2FIX(h);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.hash   -&gt; fixnum</div><div class='add'>+ *</div><div class='add'>+ *  Compute a hash-code for this array. Two arrays with the same content</div><div class='add'>+ *  will have the same hash code (and will compare using &lt;code&gt;eql?&lt;/code&gt;).</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_hash(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    return rb_exec_recursive_outer(recursive_hash, ary, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.include?(obj)   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if the given object is present in</div><div class='add'>+ *  +self+ (that is, if any object &lt;code&gt;==&lt;/code&gt; &lt;i&gt;anObject&lt;/i&gt;),</div><div class='add'>+ *  &lt;code&gt;false&lt;/code&gt; otherwise.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "b", "c" ]</div><div class='add'>+ *     a.include?("b")   #=&gt; true</div><div class='add'>+ *     a.include?("z")   #=&gt; false</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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='del'>-    int i;</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='del'>-	    return TRUE;</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'>+	if (rb_equal(RARRAY_PTR(ary)[i], item)) {</div><div class='add'>+	    return Qtrue;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    return FALSE;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-ary_cmp(ary, ary2)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE ary2;</div><div class='add'>+</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='del'>-    int i, len;</div><div class='add'>+    long i, len;</div><div class='ctx'> </div><div class='del'>-    ary2 = to_ary(ary2);</div><div class='del'>-    len = RARRAY(ary)-&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(RARRAY(ary)-&gt;ptr[i],cmp,1,RARRAY(ary2)-&gt;ptr[i]);</div><div class='add'>+	VALUE v = rb_funcall(rb_ary_elt(ary1, i), id_cmp, 1, rb_ary_elt(ary2, i));</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(ary)-&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,</div><div class='add'>+ *  or +1) if this array is less than, equal to, or greater than</div><div class='add'>+ *  &lt;i&gt;other_ary&lt;/i&gt;.  Each object in each array is compared</div><div class='add'>+ *  (using &lt;=&gt;). If any value isn't</div><div class='add'>+ *  equal, then that inequality is the return value. If all the</div><div class='add'>+ *  values found are equal, then the return is based on a</div><div class='add'>+ *  comparison of the array lengths.  Thus, two arrays are</div><div class='add'>+ *  ``equal'' according to &lt;code&gt;Array#&lt;=&gt;&lt;/code&gt; if and only if they have</div><div class='add'>+ *  the same length and the value of each element is equal to the</div><div class='add'>+ *  value of the corresponding element in the other array.</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'>+ *</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_diff(ary1, ary2)</div><div class='del'>-    VALUE ary1, ary2;</div><div class='add'>+ary_add_hash(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'>+	rb_hash_aset(hash, RARRAY_PTR(ary)[i], Qtrue);</div><div class='add'>+    }</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(void)</div><div class='add'>+{</div><div class='add'>+    VALUE hash = rb_hash_new();</div><div class='add'>+</div><div class='add'>+    RBASIC(hash)-&gt;klass = 0;</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();</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'>+	if (rb_hash_lookup2(hash, k, Qundef) == Qundef) {</div><div class='add'>+	    rb_hash_aset(hash, k, v);</div><div class='add'>+	}</div><div class='add'>+    }</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_by(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE hash = ary_tmp_hash_new();</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'>+    if (RHASH(hash)-&gt;ntbl) {</div><div class='add'>+	st_table *tbl = RHASH(hash)-&gt;ntbl;</div><div class='add'>+	RHASH(hash)-&gt;ntbl = 0;</div><div class='add'>+	st_free_table(tbl);</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 - other_ary    -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Array Difference---Returns a new array that is a copy of</div><div class='add'>+ *  the original array, removing any items that also appear in</div><div class='add'>+ *  &lt;i&gt;other_ary&lt;/i&gt;. (If you need set-like behavior, see the</div><div class='add'>+ *  library class Set.)</div><div class='add'>+ *</div><div class='add'>+ *     [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ]  #=&gt;  [ 3, 3, 5 ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</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'>-    int i;</div><div class='add'>+    volatile VALUE hash;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-    ary2 = to_ary(ary2);</div><div class='del'>-    ary3 = ary_new();</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (ary_includes(ary2, RARRAY(ary1)-&gt;ptr[i])) continue;</div><div class='del'>-	if (ary_includes(ary3, RARRAY(ary1)-&gt;ptr[i])) continue;</div><div class='del'>-	ary_push(ary3, RARRAY(ary1)-&gt;ptr[i]);</div><div class='add'>+    hash = ary_make_hash(to_ary(ary2));</div><div class='add'>+    ary3 = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	if (st_lookup(RHASH_TBL(hash), RARRAY_PTR(ary1)[i], 0)) continue;</div><div class='add'>+	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='add'>+/*</div><div class='add'>+ *  call-seq:</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</div><div class='add'>+ *  containing elements common to the two arrays, with no duplicates.</div><div class='add'>+ *</div><div class='add'>+ *     [ 1, 1, 3, 5 ] &amp; [ 1, 2, 3 ]   #=&gt; [ 1, 3 ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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 ary3;</div><div class='del'>-    int i;</div><div class='add'>+    VALUE hash, ary3, v;</div><div class='add'>+    st_data_t vv;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='ctx'>     ary2 = to_ary(ary2);</div><div class='del'>-    ary3 = ary_new();</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (ary_includes(ary2, RARRAY(ary1)-&gt;ptr[i])</div><div class='del'>-	    &amp;&amp; !ary_includes(ary3, RARRAY(ary1)-&gt;ptr[i])) {</div><div class='del'>-	    ary_push(ary3, RARRAY(ary1)-&gt;ptr[i]);</div><div class='add'>+    ary3 = rb_ary_new2(RARRAY_LEN(ary1) &lt; RARRAY_LEN(ary2) ?</div><div class='add'>+	    RARRAY_LEN(ary1) : RARRAY_LEN(ary2));</div><div class='add'>+    hash = ary_make_hash(ary2);</div><div class='add'>+</div><div class='add'>+    if (RHASH_EMPTY_P(hash))</div><div class='add'>+        return ary3;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	vv = (st_data_t)(v = rb_ary_elt(ary1, i));</div><div class='add'>+	if (st_delete(RHASH_TBL(hash), &amp;vv, 0)) {</div><div class='add'>+	    rb_ary_push(ary3, v);</div><div class='ctx'> 	}</div><div class='ctx'>     }</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='add'>+/*</div><div class='add'>+ *  call-seq:</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 this array with</div><div class='add'>+ *  &lt;i&gt;other_ary&lt;/i&gt;, removing duplicates.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", "b", "c" ] | [ "c", "d", "a" ]</div><div class='add'>+ *            #=&gt; [ "a", "b", "c", "d" ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='del'>-    VALUE ary3;</div><div class='del'>-    int i;</div><div class='add'>+    VALUE hash, ary3, v;</div><div class='add'>+    st_data_t vv;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-    if (TYPE(ary2) != T_ARRAY) {</div><div class='del'>-	if (ary_includes(ary1, ary2)) return ary1;</div><div class='del'>-	else return ary_plus(ary1, ary2);</div><div class='del'>-    }</div><div class='add'>+    ary2 = to_ary(ary2);</div><div class='add'>+    ary3 = rb_ary_new2(RARRAY_LEN(ary1)+RARRAY_LEN(ary2));</div><div class='add'>+    hash = ary_add_hash(ary_make_hash(ary1), ary2);</div><div class='ctx'> </div><div class='del'>-    ary3 = ary_new();</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary1)-&gt;len; i++) {</div><div class='del'>-	if (!ary_includes(ary3, RARRAY(ary1)-&gt;ptr[i]))</div><div class='del'>-		ary_push(ary3, RARRAY(ary1)-&gt;ptr[i]);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary1); i++) {</div><div class='add'>+	vv = (st_data_t)(v = rb_ary_elt(ary1, i));</div><div class='add'>+	if (st_delete(RHASH_TBL(hash), &amp;vv, 0)) {</div><div class='add'>+	    rb_ary_push(ary3, v);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary2)-&gt;len; i++) {</div><div class='del'>-	if (!ary_includes(ary3, RARRAY(ary2)-&gt;ptr[i]))</div><div class='del'>-		ary_push(ary3, RARRAY(ary2)-&gt;ptr[i]);</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(ary2); i++) {</div><div class='add'>+	vv = (st_data_t)(v = rb_ary_elt(ary2, i));</div><div class='add'>+	if (st_delete(RHASH_TBL(hash), &amp;vv, 0)) {</div><div class='add'>+	    rb_ary_push(ary3, v);</div><div class='add'>+	}</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'>-static VALUE</div><div class='del'>-ary_uniq_bang(ary)</div><div class='del'>-    VALUE ary;</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='ctx'> {</div><div class='del'>-    VALUE *p, *q, *t, *end;</div><div class='del'>-    VALUE v;</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='ctx'> </div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    p = RARRAY(ary)-&gt;ptr;</div><div class='del'>-    end = p + RARRAY(ary)-&gt;len;</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+. If a block is given,</div><div class='add'>+ *  it will use the return value of the block for comparison.</div><div class='add'>+ *  Returns &lt;code&gt;nil&lt;/code&gt; if no changes are made (that is, no</div><div class='add'>+ *  duplicates are found).</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "a", "b", "b", "c" ]</div><div class='add'>+ *     a.uniq!   # =&gt; ["a", "b", "c"]</div><div class='add'>+ *</div><div class='add'>+ *     b = [ "a", "b", "c" ]</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='add'>+ */</div><div class='ctx'> </div><div class='del'>-    while (p &lt; end) {</div><div class='del'>-	v = *p++;</div><div class='del'>-	q = t = p;</div><div class='del'>-	while (q &lt; end) {</div><div class='del'>-	    if (rb_equal(*q, v)) q++;</div><div class='del'>-	    else *t++ = *q++;</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_uniq_bang(VALUE ary)</div><div class='add'>+{</div><div class='add'>+    VALUE hash, v;</div><div class='add'>+    long i, j;</div><div class='add'>+</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'>+	if (RARRAY_LEN(ary) == (i = RHASH_SIZE(hash))) {</div><div class='add'>+	    return Qnil;</div><div class='add'>+	}</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'>-	end = t;</div><div class='add'>+	ary_resize_capa(ary, i);</div><div class='add'>+	st_foreach(RHASH_TBL(hash), push_value, ary);</div><div class='ctx'>     }</div><div class='del'>-    if (RARRAY(ary)-&gt;len == (end - RARRAY(ary)-&gt;ptr)) {</div><div class='del'>-	return Qnil;</div><div class='add'>+    else {</div><div class='add'>+	hash = ary_make_hash(ary);</div><div class='add'>+	if (RARRAY_LEN(ary) == (long)RHASH_SIZE(hash)) {</div><div class='add'>+	    return Qnil;</div><div class='add'>+	}</div><div class='add'>+	for (i=j=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	    st_data_t vv = (st_data_t)(v = rb_ary_elt(ary, i));</div><div class='add'>+	    if (st_delete(RHASH_TBL(hash), &amp;vv, 0)) {</div><div class='add'>+		rb_ary_store(ary, j++, v);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	ARY_SET_LEN(ary, j);</div><div class='ctx'>     }</div><div class='del'>-</div><div class='del'>-    RARRAY(ary)-&gt;len = (end - RARRAY(ary)-&gt;ptr);</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='add'>+/*</div><div class='add'>+ *  call-seq:</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+. If a block</div><div class='add'>+ *  is given, it will use the return value of the block for comparison.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ "a", "a", "b", "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='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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'>-    VALUE v = ary_uniq_bang(ary_dup(ary));</div><div class='add'>+    VALUE hash, uniq, v;</div><div class='add'>+    long i;</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 = ary_new(rb_obj_class(ary), RHASH_SIZE(hash));</div><div class='add'>+	st_foreach(RHASH_TBL(hash), push_value, uniq);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	hash = ary_make_hash(ary);</div><div class='add'>+	uniq = ary_new(rb_obj_class(ary), RHASH_SIZE(hash));</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(ary); i++) {</div><div class='add'>+	    st_data_t vv = (st_data_t)(v = rb_ary_elt(ary, i));</div><div class='add'>+	    if (st_delete(RHASH_TBL(hash), &amp;vv, 0)) {</div><div class='add'>+		rb_ary_push(uniq, v);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    ary_recycle_hash(hash);</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(v)) return ary;</div><div class='del'>-    return v;</div><div class='add'>+    return uniq;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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='add'>+ *  Returns +nil+ if no changes were made, otherwise returns</div><div class='add'>+ *  &lt;i&gt;ary&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", nil, "b", nil, "c" ].compact! #=&gt; [ "a", "b", "c" ]</div><div class='add'>+ *     [ "a", "b", "c" ].compact!           #=&gt; nil</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='add'>+</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    p = t = RARRAY_PTR(ary);</div><div class='add'>+    end = p + RARRAY_LEN(ary);</div><div class='ctx'> </div><div class='del'>-    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='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_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;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_SET_LEN(ary, n);</div><div class='add'>+    if (n * 2 &lt; ARY_CAPA(ary) &amp;&amp; ARY_DEFAULT_SIZE * 2 &lt; ARY_CAPA(ary)) {</div><div class='add'>+	ary_resize_capa(ary, n * 2);</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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.compact     -&gt; new_ary</div><div class='add'>+ *</div><div class='add'>+ *  Returns a copy of +self+ with all +nil+ elements removed.</div><div class='add'>+ *</div><div class='add'>+ *     [ "a", nil, "b", nil, "c", nil ].compact</div><div class='add'>+ *                       #=&gt; [ "a", "b", "c" ]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='del'>-    VALUE v = ary_compact_bang(ary_dup(ary));</div><div class='add'>+    ary = rb_ary_dup(ary);</div><div class='add'>+    rb_ary_compact_bang(ary);</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(v)) return ary;</div><div class='del'>-    return v;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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.  If an argument is given, counts</div><div class='add'>+ *  the number of elements which equals to &lt;i&gt;obj&lt;/i&gt;.  If a block is</div><div class='add'>+ *  given, counts the number of elements yielding 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='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_count(int argc, VALUE *argv, VALUE ary)</div><div class='add'>+{</div><div class='add'>+    long n = 0;</div><div class='add'>+</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	VALUE *p, *pend;</div><div class='add'>+</div><div class='add'>+	if (!rb_block_given_p())</div><div class='add'>+	    return LONG2NUM(RARRAY_LEN(ary));</div><div class='add'>+</div><div class='add'>+	for (p = RARRAY_PTR(ary), pend = p + RARRAY_LEN(ary); p &lt; pend; p++) {</div><div class='add'>+	    if (RTEST(rb_yield(*p))) n++;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE obj, *p, *pend;</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 (p = RARRAY_PTR(ary), pend = p + RARRAY_LEN(ary); p &lt; pend; p++) {</div><div class='add'>+	    if (rb_equal(*p, obj)) n++;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return LONG2NUM(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-ary_nitems(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+flatten(VALUE ary, int level, int *modified)</div><div class='ctx'> {</div><div class='del'>-    int n = 0;</div><div class='del'>-    VALUE *p, *pend;</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_PTR(ary)[i++];</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) || (level &gt;= 0 &amp;&amp; RARRAY_LEN(stack) / 2 &gt;= level)) {</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='add'>+	}</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='add'>+    }</div><div class='add'>+</div><div class='add'>+    st_free_table(memo);</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='del'>-    while (p &lt; pend) {</div><div class='del'>-	if (!NIL_P(*p)) n++;</div><div class='del'>-	p++;</div><div class='add'>+    RBASIC(result)-&gt;klass = rb_class_of(ary);</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.flatten!        -&gt; ary or nil</div><div class='add'>+ *     ary.flatten!(level) -&gt; array or nil</div><div class='add'>+ *</div><div class='add'>+ *  Flattens +self+ in place.</div><div class='add'>+ *  Returns &lt;code&gt;nil&lt;/code&gt; if no modifications were made (i.e.,</div><div class='add'>+ *  &lt;i&gt;ary&lt;/i&gt; contains no subarrays.)  If the optional &lt;i&gt;level&lt;/i&gt;</div><div class='add'>+ *  argument determines the level of recursion to flatten.</div><div class='add'>+ *</div><div class='add'>+ *     a = [ 1, 2, [3, [4, 5] ] ]</div><div class='add'>+ *     a.flatten!   #=&gt; [1, 2, 3, 4, 5]</div><div class='add'>+ *     a.flatten!   #=&gt; nil</div><div class='add'>+ *     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='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ary_flatten_bang(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'>+    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='add'>+</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'>-    return INT2FIX(n);</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='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.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 this</div><div class='add'>+ *  array (recursively). That is, for every element that is an array,</div><div class='add'>+ *  extract its elements into the new array.  If the optional</div><div class='add'>+ *  &lt;i&gt;level&lt;/i&gt; argument determines the level of recursion to flatten.</div><div class='add'>+ *</div><div class='add'>+ *     s = [ 1, 2, 3 ]           #=&gt; [1, 2, 3]</div><div class='add'>+ *     t = [ 4, 5, 6, [7, 8] ]   #=&gt; [4, 5, 6, [7, 8]]</div><div class='add'>+ *     a = [ s, t, 9, 10 ]       #=&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='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-ary_flatten_bang(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_flatten(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    int i;</div><div class='del'>-    int mod = 0;</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 VALUE sym_random;</div><div class='ctx'> </div><div class='del'>-    ary_modify(ary);</div><div class='del'>-    for (i=0; i&lt;RARRAY(ary)-&gt;len; i++) {</div><div class='del'>-	VALUE ary2 = RARRAY(ary)-&gt;ptr[i];</div><div class='del'>-	if (TYPE(ary2) == T_ARRAY) {</div><div class='del'>-	    ary_replace(ary, i--, 1, ary2);</div><div class='del'>-	    mod = 1;</div><div class='add'>+#define RAND_UPTO(max) (long)(rb_random_real(randgen)*(max))</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'>+ *  If +rng+ is given, it will be used as the random number generator.</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 *ptr, opts, *snap_ptr, randgen = rb_cRandom;</div><div class='add'>+    long i, snap_len;</div><div class='add'>+</div><div class='add'>+    if (OPTHASH_GIVEN_P(opts)) {</div><div class='add'>+	randgen = rb_hash_lookup2(opts, sym_random, randgen);</div><div class='add'>+    }</div><div class='add'>+    if (argc &gt; 0) {</div><div class='add'>+	rb_raise(rb_eArgError, "wrong number of arguments (%d for 0)", argc);</div><div class='add'>+    }</div><div class='add'>+    rb_ary_modify(ary);</div><div class='add'>+    i = RARRAY_LEN(ary);</div><div class='add'>+    ptr = RARRAY_PTR(ary);</div><div class='add'>+    snap_len = i;</div><div class='add'>+    snap_ptr = 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 (snap_len != RARRAY_LEN(ary) || snap_ptr != RARRAY_PTR(ary)) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "modified during shuffle");</div><div class='ctx'> 	}</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='ctx'>     }</div><div class='del'>-    if (mod == 0) return Qnil;</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'>+ *  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 this array 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'>+ *</div><div class='add'>+ *  If +rng+ is given, it 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='ctx'> static VALUE</div><div class='del'>-ary_flatten(ary)</div><div class='del'>-    VALUE ary;</div><div class='add'>+rb_ary_shuffle(int argc, VALUE *argv, VALUE ary)</div><div class='ctx'> {</div><div class='del'>-    VALUE v = ary_flatten_bang(ary_dup(ary));</div><div class='add'>+    ary = rb_ary_dup(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='ctx'> </div><div class='del'>-    if (NIL_P(v)) return ary;</div><div class='del'>-    return v;</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. The elements</div><div class='add'>+ *  are chosen by using random and unique indices into the array in order to</div><div class='add'>+ *  ensure that an element doesn't repeat itself unless the array already</div><div class='add'>+ *  contained duplicate elements. If the array is empty the first form returns</div><div class='add'>+ *  &lt;code&gt;nil&lt;/code&gt; and the second form returns an empty array.</div><div class='add'>+ *</div><div class='add'>+ *  If +rng+ is given, it will be used as the random number generator.</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, *ptr;</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'>+    double rnds[numberof(idx)];</div><div class='add'>+</div><div class='add'>+    if (OPTHASH_GIVEN_P(opts)) {</div><div class='add'>+	randgen = rb_hash_lookup2(opts, sym_random, randgen);</div><div class='add'>+    }</div><div class='add'>+    ptr = RARRAY_PTR(ary);</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	if (len == 0) return Qnil;</div><div class='add'>+	if (len == 1) {</div><div class='add'>+	    i = 0;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    double x = rb_random_real(randgen);</div><div class='add'>+	    if ((len = RARRAY_LEN(ary)) == 0) return Qnil;</div><div class='add'>+	    i = (long)(x * len);</div><div class='add'>+	}</div><div class='add'>+	return RARRAY_PTR(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] = rb_random_real(randgen);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    len = RARRAY_LEN(ary);</div><div class='add'>+    ptr = RARRAY_PTR(ary);</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_new2(0);</div><div class='add'>+      case 1:</div><div class='add'>+	i = (long)(rnds[0] * len);</div><div class='add'>+	return rb_ary_new4(1, &amp;ptr[i]);</div><div class='add'>+      case 2:</div><div class='add'>+	i = (long)(rnds[0] * len);</div><div class='add'>+	j = (long)(rnds[1] * (len-1));</div><div class='add'>+	if (j &gt;= i) j++;</div><div class='add'>+	return rb_ary_new3(2, ptr[i], ptr[j]);</div><div class='add'>+      case 3:</div><div class='add'>+	i = (long)(rnds[0] * len);</div><div class='add'>+	j = (long)(rnds[1] * (len-1));</div><div class='add'>+	k = (long)(rnds[2] * (len-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_new3(3, ptr[i], ptr[j], ptr[k]);</div><div class='add'>+    }</div><div class='add'>+    if (n &lt;= numberof(idx)) {</div><div class='add'>+	VALUE *ptr_result;</div><div class='add'>+	long sorted[numberof(idx)];</div><div class='add'>+	sorted[0] = idx[0] = (long)(rnds[0] * len);</div><div class='add'>+	for (i=1; i&lt;n; i++) {</div><div class='add'>+	    k = (long)(rnds[i] * --len);</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_new2(n);</div><div class='add'>+	ptr_result = RARRAY_PTR(result);</div><div class='add'>+	for (i=0; i&lt;n; i++) {</div><div class='add'>+	    ptr_result[i] = ptr[idx[i]];</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE *ptr_result;</div><div class='add'>+	result = rb_ary_new4(len, ptr);</div><div class='add'>+	RBASIC(result)-&gt;klass = 0;</div><div class='add'>+	ptr_result = RARRAY_PTR(result);</div><div class='add'>+	RB_GC_GUARD(ary);</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'>+	RBASIC(result)-&gt;klass = 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='ctx'> }</div><div class='ctx'> </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; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls &lt;i&gt;block&lt;/i&gt; for each element repeatedly _n_ times or</div><div class='add'>+ *  forever if none or +nil+ is given.  If a non-positive number is</div><div class='add'>+ *  given or the array is empty, does nothing.  Returns +nil+ if the</div><div class='add'>+ *  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'>+ *</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_ENUMERATOR(ary, argc, argv);</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_PTR(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(s)-&gt;klass = 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(a)-&gt;klass = rb_cArray)</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Recursively compute permutations of r elements of the set [0..n-1].</div><div class='add'>+ * When we have a complete permutation of array indexes, copy the values</div><div class='add'>+ * at those indexes 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'>+ * index: what index we're filling in now</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(long n, long r, long *p, long index, char *used, VALUE values)</div><div class='add'>+{</div><div class='add'>+    long i,j;</div><div class='add'>+    for (i = 0; i &lt; n; i++) {</div><div class='add'>+	if (used[i] == 0) {</div><div class='add'>+	    p[index] = i;</div><div class='add'>+	    if (index &lt; r-1) {             /* if not done yet */</div><div class='add'>+		used[i] = 1;               /* mark index used */</div><div class='add'>+		permute0(n, r, p, index+1, /* recurse */</div><div class='add'>+			 used, values);</div><div class='add'>+		used[i] = 0;               /* index unused */</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		/* We have a complete permutation of array indexes */</div><div class='add'>+		/* Build a ruby array of the corresponding values */</div><div class='add'>+		/* And yield it to the associated block */</div><div class='add'>+		VALUE result = rb_ary_new2(r);</div><div class='add'>+		VALUE *result_array = RARRAY_PTR(result);</div><div class='add'>+		const VALUE *values_array = RARRAY_PTR(values);</div><div class='add'>+</div><div class='add'>+		for (j = 0; j &lt; r; j++) result_array[j] = values_array[p[j]];</div><div class='add'>+		ARY_SET_LEN(result, r);</div><div class='add'>+		rb_yield(result);</div><div class='add'>+		if (RBASIC(values)-&gt;klass) {</div><div class='add'>+		    rb_raise(rb_eRuntimeError, "permute reentered");</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'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     ary.permutation { |p| block }          -&gt; ary</div><div class='add'>+ *     ary.permutation                        -&gt; an_enumerator</div><div class='add'>+ *     ary.permutation(n) { |p| block }       -&gt; ary</div><div class='add'>+ *     ary.permutation(n)                     -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yield all permutations of length &lt;i&gt;n&lt;/i&gt;</div><div class='add'>+ * of the elements of &lt;i&gt;ary&lt;/i&gt;, then return the array itself.</div><div class='add'>+ * If &lt;i&gt;n&lt;/i&gt; is not specified, yield all permutations of all elements.</div><div class='add'>+ * The implementation makes no guarantees about the order in which</div><div class='add'>+ * the 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_ENUMERATOR(ary, argc, argv);   /* 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_PTR(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 = tmpbuf(n,sizeof(long));</div><div class='add'>+	long *p = (long*)RSTRING_PTR(t0);</div><div class='add'>+	volatile VALUE t1 = tmpbuf(n,sizeof(char));</div><div class='add'>+	char *used = (char*)RSTRING_PTR(t1);</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	RBASIC(ary0)-&gt;klass = 0;</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, 0, used, ary0); /* compute and yield permutations */</div><div class='add'>+	tmpbuf_discard(t0);</div><div class='add'>+	tmpbuf_discard(t1);</div><div class='add'>+	RBASIC(ary0)-&gt;klass = 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.combination(n) { |c| block }    -&gt; ary</div><div class='add'>+ *     ary.combination(n)                  -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yields all combinations of length &lt;i&gt;n&lt;/i&gt;</div><div class='add'>+ * of elements from &lt;i&gt;ary&lt;/i&gt; and then returns &lt;i&gt;ary&lt;/i&gt; itself.</div><div class='add'>+ * The implementation makes no guarantees about the order in which</div><div class='add'>+ * the 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 n, i, len;</div><div class='add'>+</div><div class='add'>+    n = NUM2LONG(num);</div><div class='add'>+    RETURN_ENUMERATOR(ary, 1, &amp;num);</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; len; i++) {</div><div class='add'>+	    rb_yield(rb_ary_new3(1, RARRAY_PTR(ary)[i]));</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	volatile VALUE t0 = tmpbuf(n+1, sizeof(long));</div><div class='add'>+	long *stack = (long*)RSTRING_PTR(t0);</div><div class='add'>+	volatile VALUE cc = tmpary(n);</div><div class='add'>+	VALUE *chosen = RARRAY_PTR(cc);</div><div class='add'>+	long lev = 0;</div><div class='add'>+</div><div class='add'>+	MEMZERO(stack, long, n);</div><div class='add'>+	stack[0] = -1;</div><div class='add'>+	for (;;) {</div><div class='add'>+	    chosen[lev] = RARRAY_PTR(ary)[stack[lev+1]];</div><div class='add'>+	    for (lev++; lev &lt; n; lev++) {</div><div class='add'>+		chosen[lev] = RARRAY_PTR(ary)[stack[lev+1] = stack[lev]+1];</div><div class='add'>+	    }</div><div class='add'>+	    rb_yield(rb_ary_new4(n, chosen));</div><div class='add'>+	    if (RBASIC(t0)-&gt;klass) {</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) goto done;</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'>+    done:</div><div class='add'>+	tmpbuf_discard(t0);</div><div class='add'>+	tmpary_discard(cc);</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'>+ * Recursively compute repeated permutations of r elements of the set</div><div class='add'>+ * [0..n-1].</div><div class='add'>+ * When we have a complete repeated permutation of array indexes, copy the</div><div class='add'>+ * values at those indexes 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'>+ * index: what index we're filling in now</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(long n, long r, long *p, long index, VALUE values)</div><div class='add'>+{</div><div class='add'>+    long i, j;</div><div class='add'>+    for (i = 0; i &lt; n; i++) {</div><div class='add'>+	p[index] = i;</div><div class='add'>+	if (index &lt; r-1) {              /* if not done yet */</div><div class='add'>+	    rpermute0(n, r, p, index+1, values); /* recurse */</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    /* We have a complete permutation of array indexes */</div><div class='add'>+	    /* Build a ruby array of the corresponding values */</div><div class='add'>+	    /* And yield it to the associated block */</div><div class='add'>+	    VALUE result = rb_ary_new2(r);</div><div class='add'>+	    VALUE *result_array = RARRAY_PTR(result);</div><div class='add'>+	    const VALUE *values_array = RARRAY_PTR(values);</div><div class='add'>+</div><div class='add'>+	    for (j = 0; j &lt; r; j++) result_array[j] = values_array[p[j]];</div><div class='add'>+	    ARY_SET_LEN(result, r);</div><div class='add'>+	    rb_yield(result);</div><div class='add'>+	    if (RBASIC(values)-&gt;klass) {</div><div class='add'>+		rb_raise(rb_eRuntimeError, "repeated permute reentered");</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'>+ *     ary.repeated_permutation(n) { |p| block } -&gt; ary</div><div class='add'>+ *     ary.repeated_permutation(n)               -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yield all repeated permutations of length</div><div class='add'>+ * &lt;i&gt;n&lt;/i&gt; of the elements of &lt;i&gt;ary&lt;/i&gt;, then return the array itself.</div><div class='add'>+ * The implementation makes no guarantees about the order in which</div><div class='add'>+ * the repeated 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_ENUMERATOR(ary, 1, &amp;num);      /* 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_PTR(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 = tmpbuf(r, sizeof(long));</div><div class='add'>+	long *p = (long*)RSTRING_PTR(t0);</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	RBASIC(ary0)-&gt;klass = 0;</div><div class='add'>+</div><div class='add'>+	rpermute0(n, r, p, 0, ary0); /* compute and yield repeated permutations */</div><div class='add'>+	tmpbuf_discard(t0);</div><div class='add'>+	RBASIC(ary0)-&gt;klass = 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'>+rcombinate0(long n, long r, long *p, long index, long rest, VALUE values)</div><div class='add'>+{</div><div class='add'>+    long j;</div><div class='add'>+    if (rest &gt; 0) {</div><div class='add'>+	for (; index &lt; n; ++index) {</div><div class='add'>+	    p[r-rest] = index;</div><div class='add'>+	    rcombinate0(n, r, p, index, rest-1, values);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE result = rb_ary_new2(r);</div><div class='add'>+	VALUE *result_array = RARRAY_PTR(result);</div><div class='add'>+	const VALUE *values_array = RARRAY_PTR(values);</div><div class='add'>+</div><div class='add'>+	for (j = 0; j &lt; r; ++j) result_array[j] = values_array[p[j]];</div><div class='add'>+	ARY_SET_LEN(result, r);</div><div class='add'>+	rb_yield(result);</div><div class='add'>+	if (RBASIC(values)-&gt;klass) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "repeated combination reentered");</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'>+ *     ary.repeated_combination(n) { |c| block } -&gt; ary</div><div class='add'>+ *     ary.repeated_combination(n)               -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ * When invoked with a block, yields all repeated combinations of</div><div class='add'>+ * length &lt;i&gt;n&lt;/i&gt; of elements from &lt;i&gt;ary&lt;/i&gt; and then returns</div><div class='add'>+ * &lt;i&gt;ary&lt;/i&gt; itself.</div><div class='add'>+ * The implementation makes no guarantees about the order in which</div><div class='add'>+ * the repeated 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_ENUMERATOR(ary, 1, &amp;num);   /* 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; len; i++) {</div><div class='add'>+	    rb_yield(rb_ary_new3(1, RARRAY_PTR(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 = tmpbuf(n, sizeof(long));</div><div class='add'>+	long *p = (long*)RSTRING_PTR(t0);</div><div class='add'>+	VALUE ary0 = ary_make_shared_copy(ary); /* private defensive copy of ary */</div><div class='add'>+	RBASIC(ary0)-&gt;klass = 0;</div><div class='add'>+</div><div class='add'>+	rcombinate0(len, n, p, 0, n, ary0); /* compute and yield repeated combinations */</div><div class='add'>+	tmpbuf_discard(t0);</div><div class='add'>+	RBASIC(ary0)-&gt;klass = 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'>+ *  The length of the returned array is the product of the length</div><div class='add'>+ *  of +self+ and the argument arrays.</div><div class='add'>+ *  If given a block, &lt;i&gt;product&lt;/i&gt; will yield all combinations</div><div class='add'>+ *  and return +self+ instead.</div><div class='add'>+ *</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(t0)-&gt;klass = 0;</div><div class='add'>+    RBASIC(t1)-&gt;klass = 0;</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]), l = resultlen;</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'>+	    resultlen *= k;</div><div class='add'>+	    if (resultlen &lt; k || resultlen &lt; l || resultlen / k != l) {</div><div class='add'>+		rb_raise(rb_eRangeError, "too big to product");</div><div class='add'>+	    }</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 &lt;i&gt;ary&lt;/i&gt;.</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 {|arr| block }   -&gt; new_ary</div><div class='add'>+ *     ary.take_while                  -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Passes elements to the block until the block returns +nil+ or +false+,</div><div class='add'>+ *  then 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'>+ *     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_PTR(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</div><div class='add'>+ *  the elements in an array.</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 {|arr| block }   -&gt; new_ary</div><div class='add'>+ *     ary.drop_while                  -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Drops elements up to, but not including, the first element for</div><div class='add'>+ *  which the block returns +nil+ or +false+ and returns an array</div><div class='add'>+ *  containing the 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'>+ *     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_PTR(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'>+</div><div class='add'>+/* Arrays are ordered, integer-indexed collections of any object.</div><div class='add'>+ * Array indexing starts at 0, as in C or Java.  A negative index is</div><div class='add'>+ * assumed to be relative to the end of the array---that is, an index of -1</div><div class='add'>+ * indicates the last element of the array, -2 is the next to last</div><div class='add'>+ * element in the array, and so on.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-Init_Array()</div><div class='del'>-{</div><div class='del'>-    cArray  = rb_define_class("Array", cObject);</div><div class='del'>-    rb_include_module(cArray, mEnumerable);</div><div class='del'>-</div><div class='del'>-    rb_define_singleton_method(cArray, "new", ary_s_new, -1);</div><div class='del'>-    rb_define_singleton_method(cArray, "[]", ary_s_create, -1);</div><div class='del'>-    rb_define_method(cArray, "to_s", ary_to_s, 0);</div><div class='del'>-    rb_define_method(cArray, "inspect", ary_inspect, 0);</div><div class='del'>-    rb_define_method(cArray, "to_a", ary_to_a, 0);</div><div class='del'>-    rb_define_method(cArray, "to_ary", ary_to_a, 0);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "freeze",  ary_freeze, 0);</div><div class='del'>-    rb_define_method(cArray, "frozen?",  ary_frozen_p, 0);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "==", ary_equal, 1);</div><div class='del'>-    rb_define_method(cArray, "eql?", ary_eql, 1);</div><div class='del'>-    rb_define_method(cArray, "hash", ary_hash, 0);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "[]", ary_aref, -1);</div><div class='del'>-    rb_define_method(cArray, "[]=", ary_aset, -1);</div><div class='del'>-    rb_define_method(cArray, "concat", ary_concat, 1);</div><div class='del'>-    rb_define_method(cArray, "&lt;&lt;", ary_push, 1);</div><div class='del'>-    rb_define_method(cArray, "push", ary_push_method, -1);</div><div class='del'>-    rb_define_method(cArray, "pop", ary_pop, 0);</div><div class='del'>-    rb_define_method(cArray, "shift", ary_shift, 0);</div><div class='del'>-    rb_define_method(cArray, "unshift", ary_unshift, 1);</div><div class='del'>-    rb_define_method(cArray, "each", ary_each, 0);</div><div class='del'>-    rb_define_method(cArray, "each_index", ary_each_index, 0);</div><div class='del'>-    rb_define_method(cArray, "reverse_each", ary_reverse_each, 0);</div><div class='del'>-    rb_define_method(cArray, "length", ary_length, 0);</div><div class='del'>-    rb_define_alias(cArray,  "size", "length");</div><div class='del'>-    rb_define_method(cArray, "empty?", ary_empty_p, 0);</div><div class='del'>-    rb_define_method(cArray, "index", ary_index, 1);</div><div class='del'>-    rb_define_method(cArray, "rindex", ary_rindex, 1);</div><div class='del'>-    rb_define_method(cArray, "indexes", ary_indexes, -1);</div><div class='del'>-    rb_define_method(cArray, "indices", ary_indexes, -1);</div><div class='del'>-    rb_define_method(cArray, "clone", ary_clone, 0);</div><div class='del'>-    rb_define_method(cArray, "dup", ary_dup, 0);</div><div class='del'>-    rb_define_method(cArray, "join", ary_join_method, -1);</div><div class='del'>-    rb_define_method(cArray, "reverse", ary_reverse_method, 0);</div><div class='del'>-    rb_define_method(cArray, "reverse!", ary_reverse, 0);</div><div class='del'>-    rb_define_method(cArray, "sort", ary_sort, 0);</div><div class='del'>-    rb_define_method(cArray, "sort!", ary_sort_bang, 0);</div><div class='del'>-    rb_define_method(cArray, "delete", ary_delete, 1);</div><div class='del'>-    rb_define_method(cArray, "delete_at", ary_delete_at, 1);</div><div class='del'>-    rb_define_method(cArray, "delete_if", ary_delete_if, 0);</div><div class='del'>-    rb_define_method(cArray, "filter", ary_filter, 0);</div><div class='del'>-    rb_define_method(cArray, "replace", ary_replace_method, 1);</div><div class='del'>-    rb_define_method(cArray, "clear", ary_clear, 0);</div><div class='del'>-    rb_define_method(cArray, "fill", ary_fill, -1);</div><div class='del'>-    rb_define_method(cArray, "include?", ary_includes, 1);</div><div class='del'>-    rb_define_method(cArray, "===", ary_includes, 1);</div><div class='del'>-    rb_define_method(cArray, "&lt;=&gt;", ary_cmp, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "assoc", ary_assoc, 1);</div><div class='del'>-    rb_define_method(cArray, "rassoc", ary_rassoc, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "+", ary_plus, 1);</div><div class='del'>-    rb_define_method(cArray, "*", ary_times, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "-", ary_diff, 1);</div><div class='del'>-    rb_define_method(cArray, "&amp;", ary_and, 1);</div><div class='del'>-    rb_define_method(cArray, "|", ary_or, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cArray, "uniq", ary_uniq, 0);</div><div class='del'>-    rb_define_method(cArray, "uniq!", ary_uniq_bang, 0);</div><div class='del'>-    rb_define_method(cArray, "compact", ary_compact, 0);</div><div class='del'>-    rb_define_method(cArray, "compact!", ary_compact_bang, 0);</div><div class='del'>-    rb_define_method(cArray, "flatten", ary_flatten, 0);</div><div class='del'>-    rb_define_method(cArray, "flatten!", ary_flatten_bang, 0);</div><div class='del'>-    rb_define_method(cArray, "nitems", ary_nitems, 0);</div><div class='del'>-</div><div class='del'>-    cmp = rb_intern("&lt;=&gt;");</div><div class='add'>+Init_Array(void)</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'>+</div><div class='add'>+    rb_cArray  = rb_define_class("Array", rb_cObject);</div><div class='add'>+    rb_include_module(rb_cArray, rb_mEnumerable);</div><div class='add'>+</div><div class='add'>+    rb_define_alloc_func(rb_cArray, ary_alloc);</div><div class='add'>+    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='add'>+    rb_define_method(rb_cArray, "initialize", rb_ary_initialize, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "initialize_copy", rb_ary_replace, 1);</div><div class='add'>+</div><div class='add'>+    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='add'>+    rb_define_method(rb_cArray, "to_a", rb_ary_to_a, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "to_ary", rb_ary_to_ary_m, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "frozen?",  rb_ary_frozen_p, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "==", rb_ary_equal, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "eql?", rb_ary_eql, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "hash", rb_ary_hash, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "[]", rb_ary_aref, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "[]=", rb_ary_aset, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "at", rb_ary_at, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "fetch", rb_ary_fetch, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "first", rb_ary_first, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "last", rb_ary_last, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "concat", rb_ary_concat, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "&lt;&lt;", rb_ary_push, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "push", rb_ary_push_m, -1);</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='add'>+    rb_define_method(rb_cArray, "unshift", rb_ary_unshift_m, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "insert", rb_ary_insert, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "each", rb_ary_each, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "each_index", rb_ary_each_index, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "reverse_each", rb_ary_reverse_each, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "length", rb_ary_length, 0);</div><div class='add'>+    rb_define_alias(rb_cArray,  "size", "length");</div><div class='add'>+    rb_define_method(rb_cArray, "empty?", rb_ary_empty_p, 0);</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='add'>+    rb_define_method(rb_cArray, "join", rb_ary_join_m, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "reverse", rb_ary_reverse_m, 0);</div><div class='add'>+    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='add'>+    rb_define_method(rb_cArray, "sort", rb_ary_sort, 0);</div><div class='add'>+    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='add'>+    rb_define_method(rb_cArray, "collect", rb_ary_collect, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "collect!", rb_ary_collect_bang, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "map", rb_ary_collect, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "map!", rb_ary_collect_bang, 0);</div><div class='add'>+    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='add'>+    rb_define_method(rb_cArray, "values_at", rb_ary_values_at, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "delete", rb_ary_delete, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "delete_at", rb_ary_delete_at_m, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "delete_if", rb_ary_delete_if, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "reject", rb_ary_reject, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "reject!", rb_ary_reject_bang, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "zip", rb_ary_zip, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "transpose", rb_ary_transpose, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "replace", rb_ary_replace, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "clear", rb_ary_clear, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "fill", rb_ary_fill, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "include?", rb_ary_includes, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "&lt;=&gt;", rb_ary_cmp, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "slice", rb_ary_aref, -1);</div><div class='add'>+    rb_define_method(rb_cArray, "slice!", rb_ary_slice_bang, -1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "assoc", rb_ary_assoc, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "rassoc", rb_ary_rassoc, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "+", rb_ary_plus, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "*", rb_ary_times, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "-", rb_ary_diff, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "&amp;", rb_ary_and, 1);</div><div class='add'>+    rb_define_method(rb_cArray, "|", rb_ary_or, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cArray, "uniq", rb_ary_uniq, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "uniq!", rb_ary_uniq_bang, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "compact", rb_ary_compact, 0);</div><div class='add'>+    rb_define_method(rb_cArray, "compact!", rb_ary_compact_bang, 0);</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'>+</div><div class='add'>+    id_cmp = rb_intern("&lt;=&gt;");</div><div class='add'>+    sym_random = ID2SYM(rb_intern("random"));</div><div class='ctx'> }</div><div class='head'>diff --git a/atomic.h b/atomic.h<br/>new file mode 100644<br/>index 0000000000..5b3fb99024<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/atomic.h?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>atomic.h</a></div><div class='hunk'>@@ -0,0 +1,56 @@</div><div class='add'>+#ifndef RUBY_ATOMIC_H</div><div class='add'>+#define RUBY_ATOMIC_H</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+#if defined _MSC_VER &amp;&amp; _MSC_VER &gt; 1200</div><div class='add'>+#pragma intrinsic(_InterlockedOr)</div><div class='add'>+#endif</div><div class='add'>+typedef LONG rb_atomic_t;</div><div class='add'>+</div><div class='add'>+# define ATOMIC_SET(var, val) InterlockedExchange(&amp;(var), (val))</div><div class='add'>+# define ATOMIC_INC(var) InterlockedIncrement(&amp;(var))</div><div class='add'>+# define ATOMIC_DEC(var) InterlockedDecrement(&amp;(var))</div><div class='add'>+#if defined __GNUC__</div><div class='add'>+# define ATOMIC_OR(var, val) __asm__("lock\n\t" "orl\t%1, %0" : "=m"(var) : "Ir"(val))</div><div class='add'>+#elif defined _MSC_VER &amp;&amp; _MSC_VER &lt;= 1200</div><div class='add'>+# define ATOMIC_OR(var, val) rb_w32_atomic_or(&amp;(var), (val))</div><div class='add'>+static inline void</div><div class='add'>+rb_w32_atomic_or(volatile rb_atomic_t *var, rb_atomic_t val)</div><div class='add'>+{</div><div class='add'>+#ifdef _M_IX86</div><div class='add'>+    __asm mov eax, var;</div><div class='add'>+    __asm mov ecx, val;</div><div class='add'>+    __asm lock or [eax], ecx;</div><div class='add'>+#else</div><div class='add'>+#error unsupported architecture</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+#else</div><div class='add'>+# define ATOMIC_OR(var, val) _InterlockedOr(&amp;(var), (val))</div><div class='add'>+#endif</div><div class='add'>+# define ATOMIC_EXCHANGE(var, val) InterlockedExchange(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+#elif defined HAVE_GCC_ATOMIC_BUILTINS</div><div class='add'>+/* @shyouhei hack to support atomic operations in case of gcc. Gcc</div><div class='add'>+ * has its own pseudo-insns to support them.  See info, or</div><div class='add'>+ * http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html */</div><div class='add'>+</div><div class='add'>+typedef unsigned int rb_atomic_t; /* Anything OK */</div><div class='add'>+# define ATOMIC_SET(var, val)  __sync_lock_test_and_set(&amp;(var), (val))</div><div class='add'>+# define ATOMIC_INC(var) __sync_fetch_and_add(&amp;(var), 1)</div><div class='add'>+# define ATOMIC_DEC(var) __sync_fetch_and_sub(&amp;(var), 1)</div><div class='add'>+# define ATOMIC_OR(var, val) __sync_or_and_fetch(&amp;(var), (val))</div><div class='add'>+# define ATOMIC_EXCHANGE(var, val) __sync_lock_test_and_set(&amp;(var), (val))</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+typedef int rb_atomic_t;</div><div class='add'>+extern rb_atomic_t ruby_atomic_exchange(rb_atomic_t *ptr, rb_atomic_t val);</div><div class='add'>+</div><div class='add'>+# define ATOMIC_SET(var, val) ((var) = (val))</div><div class='add'>+# define ATOMIC_INC(var) (++(var))</div><div class='add'>+# define ATOMIC_DEC(var) (--(var))</div><div class='add'>+# define ATOMIC_OR(var, val) ((var) |= (val))</div><div class='add'>+# define ATOMIC_EXCHANGE(var, val) ruby_atomic_exchange(&amp;(var), (val))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_ATOMIC_H */</div><div class='head'>diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub<br/>new file mode 100644<br/>index 0000000000..1cd26a8643<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bcc32/Makefile.sub?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bcc32/Makefile.sub</a></div><div class='hunk'>@@ -0,0 +1,617 @@</div><div class='add'>+# -*- makefile -*-</div><div class='add'>+</div><div class='add'>+SHELL = $(COMSPEC)</div><div class='add'>+MKFILES = Makefile</div><div class='add'>+</div><div class='add'>+!ifndef MFLAGS</div><div class='add'>+MFLAGS=-</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+#### Start of system configuration section. ####</div><div class='add'>+!ifndef OS</div><div class='add'>+OS = bccwin32</div><div class='add'>+!endif</div><div class='add'>+!if !defined(RT)</div><div class='add'>+!error RT not defined.  Retry from configure pass.</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+arch = $(ARCH)-$(OS)</div><div class='add'>+</div><div class='add'>+## variables may be overridden by $(compile_dir)/Makefile</div><div class='add'>+!ifndef srcdir</div><div class='add'>+srcdir = ..</div><div class='add'>+!endif</div><div class='add'>+!ifndef RUBY_INSTALL_NAME</div><div class='add'>+RUBY_INSTALL_NAME = ruby</div><div class='add'>+!endif</div><div class='add'>+!ifndef RUBYW_INSTALL_NAME</div><div class='add'>+RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)</div><div class='add'>+!elif "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"</div><div class='add'>+RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw)</div><div class='add'>+!endif</div><div class='add'>+!if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"</div><div class='add'>+RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w</div><div class='add'>+!endif</div><div class='add'>+!ifndef RUBY_SO_NAME</div><div class='add'>+RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)$(TEENY)</div><div class='add'>+!endif</div><div class='add'>+!ifndef icondirs</div><div class='add'>+!ifdef ICONDIRS</div><div class='add'>+icondirs=$(ICONDIRS)</div><div class='add'>+!endif</div><div class='add'>+!endif</div><div class='add'>+!ifdef icondirs</div><div class='add'>+icondirs=$(icondirs:\=/)</div><div class='add'>+iconinc=-I$(icondirs: = -I)</div><div class='add'>+!endif</div><div class='add'>+###############</div><div class='add'>+</div><div class='add'>+.SUFFIXES: .y</div><div class='add'>+</div><div class='add'>+!ifndef CC</div><div class='add'>+CC = bcc32</div><div class='add'>+!endif</div><div class='add'>+!ifndef CPP</div><div class='add'>+CPP = cpp32</div><div class='add'>+!endif</div><div class='add'>+!ifndef RC</div><div class='add'>+RC = brcc32</div><div class='add'>+!endif</div><div class='add'>+!ifndef YACC</div><div class='add'>+YACC = bison</div><div class='add'>+!endif</div><div class='add'>+!ifndef AR</div><div class='add'>+AR = tlib</div><div class='add'>+!endif</div><div class='add'>+!ifndef BASERUBY</div><div class='add'>+BASERUBY = ruby</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+PURIFY =</div><div class='add'>+AUTOCONF = autoconf</div><div class='add'>+IFCHANGE = $(srcdir:/=\)\win32\ifchange.bat</div><div class='add'>+RM = $(srcdir:/=\)\win32\rm.bat</div><div class='add'>+CP = copy &gt; nul</div><div class='add'>+MV = move &gt; nul</div><div class='add'>+</div><div class='add'>+!if !defined(PROCESSOR_ARCHITECTURE)</div><div class='add'>+PROCESSOR_ARCHITECTURE = x86</div><div class='add'>+!endif</div><div class='add'>+MACHINE = $(PROCESSOR_ARCHITECTURE)</div><div class='add'>+!if "$(PROCESSOR_ARCHITECTURE)" == "x86"</div><div class='add'>+!ifndef PROCESSOR_LEVEL</div><div class='add'>+PROCESSOR_LEVEL = 5</div><div class='add'>+!endif</div><div class='add'>+!if 6 &lt; $(PROCESSOR_LEVEL)</div><div class='add'>+PROCESSOR_LEVEL = 6</div><div class='add'>+!endif</div><div class='add'>+PROCESSOR_FLAG = -$(PROCESSOR_LEVEL)</div><div class='add'>+CPU = i$(PROCESSOR_LEVEL)86</div><div class='add'>+ARCH = i386</div><div class='add'>+!else</div><div class='add'>+CPU = $(PROCESSOR_ARCHITECTURE)</div><div class='add'>+ARCH = $(PROCESSOR_ARCHITECTURE)</div><div class='add'>+!endif</div><div class='add'>+!ifndef DEBUGFLAGS</div><div class='add'>+DEBUGFLAGS = </div><div class='add'>+!endif</div><div class='add'>+!ifndef OPTFLAGS</div><div class='add'>+OPTFLAGS = -O</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+!ifndef prefix</div><div class='add'>+prefix = /usr</div><div class='add'>+!endif</div><div class='add'>+!ifndef exec_prefix</div><div class='add'>+exec_prefix = $(prefix)</div><div class='add'>+!endif</div><div class='add'>+!ifndef libdir</div><div class='add'>+libdir = $(exec_prefix)/lib</div><div class='add'>+!endif</div><div class='add'>+!if !defined(datadir)</div><div class='add'>+datadir = $(prefix)/share</div><div class='add'>+!endif</div><div class='add'>+!ifndef EXTOUT</div><div class='add'>+EXTOUT = .ext</div><div class='add'>+!endif</div><div class='add'>+!ifndef TESTUI</div><div class='add'>+TESTUI = console</div><div class='add'>+!endif</div><div class='add'>+!ifndef TESTS</div><div class='add'>+TESTS =</div><div class='add'>+!endif</div><div class='add'>+!ifndef RDOCTARGET</div><div class='add'>+RDOCTARGET = install-doc</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+OUTFLAG       = -o</div><div class='add'>+COUTFLAG      = -o</div><div class='add'>+!ifndef CFLAGS</div><div class='add'>+CFLAGS = -q -tWR -tWC $(DEBUGFLAGS) $(OPTFLAGS) $(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi</div><div class='add'>+!endif</div><div class='add'>+!ifndef DEFS</div><div class='add'>+DEFS =</div><div class='add'>+!endif</div><div class='add'>+!ifndef CPPFLAGS</div><div class='add'>+CPPFLAGS =</div><div class='add'>+!endif</div><div class='add'>+CPPFLAGS = $(DEFS) $(CPPFLAGS)</div><div class='add'>+!ifndef CXXFLAGS</div><div class='add'>+CXXFLAGS = $(CFLAGS)</div><div class='add'>+!endif</div><div class='add'>+!ifndef LDFLAGS</div><div class='add'>+LDFLAGS = -S:$(STACK)</div><div class='add'>+!endif</div><div class='add'>+!ifndef RFLAGS</div><div class='add'>+RFLAGS = $(iconinc)</div><div class='add'>+!endif</div><div class='add'>+!ifndef EXTLIBS</div><div class='add'>+EXTLIBS =</div><div class='add'>+!endif</div><div class='add'>+!ifndef MEMLIB</div><div class='add'>+MEMLIB =</div><div class='add'>+!endif</div><div class='add'>+LIBS = $(MEMLIB) cw32i.lib import32.lib ws2_32.lib $(EXTLIBS)</div><div class='add'>+MISSING = acosh.obj cbrt.obj crypt.obj erf.obj lgamma_r.obj strlcat.obj strlcpy.obj tgamma.obj win32.obj</div><div class='add'>+</div><div class='add'>+!ifndef STACK</div><div class='add'>+STACK = 0x2000000</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+XCFLAGS = -DRUBY_EXPORT -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(srcdir)/missing</div><div class='add'>+</div><div class='add'>+ARFLAGS = /a /p32</div><div class='add'>+LD = ilink32 -q -Gn</div><div class='add'>+LDSHARED  = $(LD)</div><div class='add'>+XLDFLAGS  = -Tpe c0x32.obj</div><div class='add'>+WLDFLAGS  = -aa -Tpe c0w32.obj</div><div class='add'>+DLDFLAGS  = -Tpd c0d32.obj</div><div class='add'>+LIBRUBY_LDSHARED = $(LDSHARED)</div><div class='add'>+LIBRUBY_DLDFLAGS = -Gi $(DLDFLAGS) $(EXTLDFLAGS)</div><div class='add'>+LDOBJECTS = $(MAINOBJ)</div><div class='add'>+</div><div class='add'>+SOLIBS = </div><div class='add'>+</div><div class='add'>+EXEEXT = .exe</div><div class='add'>+PROGRAM=$(RUBY_INSTALL_NAME)$(EXEEXT)</div><div class='add'>+WPROGRAM=$(RUBYW_INSTALL_NAME)$(EXEEXT)</div><div class='add'>+RUBYDEF = $(RUBY_SO_NAME).def</div><div class='add'>+MINIRUBY = .\miniruby$(EXEEXT) -I$(srcdir)/lib $(MINIRUBYOPT)</div><div class='add'>+RUNRUBY = .\$(PROGRAM) -i"$(EXTOUT)/$(arch)" "$(srcdir)/runruby.rb" --extout="$(EXTOUT)" --</div><div class='add'>+</div><div class='add'>+ORGLIBPATH = $(LIB)</div><div class='add'>+</div><div class='add'>+#### End of system configuration section. ####</div><div class='add'>+</div><div class='add'>+LIBRUBY_A     = $(RUBY_SO_NAME)-static.lib</div><div class='add'>+LIBRUBY_SO    = $(RUBY_SO_NAME).dll</div><div class='add'>+LIBRUBY       = $(RUBY_SO_NAME).lib</div><div class='add'>+LIBRUBYARG    = $(LIBRUBY)</div><div class='add'>+THREAD_MODEL  = win32</div><div class='add'>+</div><div class='add'>+PREP          = miniruby$(EXEEXT)</div><div class='add'>+</div><div class='add'>+OBJEXT        = obj</div><div class='add'>+ASMEXT        = asm</div><div class='add'>+</div><div class='add'>+INSTALLED_LIST= .installed.list</div><div class='add'>+</div><div class='add'>+MKMAIN_CMD    = mkmain.bat</div><div class='add'>+</div><div class='add'>+SRC_FILE      = $(&lt;:\=/)</div><div class='add'>+</div><div class='add'>+WINMAINOBJ    = winmain.$(OBJEXT)</div><div class='add'>+ARCHMINIOBJS  = dmydln.$(OBJEXT)</div><div class='add'>+</div><div class='add'>+arch_hdrdir = $(EXTOUT)/include/$(arch)</div><div class='add'>+hdrdir = $(srcdir)/include</div><div class='add'>+VPATH = $(arch_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)/enc;$(srcdir)/missing;$(srcdir)/win32</div><div class='add'>+</div><div class='add'>+.path.c = .;$(srcdir);$(srcdir)/enc;$(srcdir)/win32;$(srcdir)/missing</div><div class='add'>+.path.ci = $(srcdir)</div><div class='add'>+.path.inc = .;$(srcdir)</div><div class='add'>+.path.def = .;$(srcdir)</div><div class='add'>+.path.h = .;$(arch_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)/win32;$(srcdir)/missing</div><div class='add'>+.path.y = $(srcdir)</div><div class='add'>+.path. = $(srcdir)</div><div class='add'>+</div><div class='add'>+.c.obj:</div><div class='add'>+	$(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) $(COUTFLAG)$@ -c $(&lt;:/=\)</div><div class='add'>+</div><div class='add'>+.c.asm:</div><div class='add'>+	$(CC) $(CFLAGS) $(XCFLAGS) -I. $(CPPFLAGS) $(COUTFLAG)$@ -S $(&lt;:\=/)</div><div class='add'>+</div><div class='add'>+.rc.res:</div><div class='add'>+	$(RC) $(RFLAGS) -I. -I$(&lt;D). $(iconinc) -I$(srcdir)/win32 $(RFLAGS) -fo$@ $(&lt;:/=\)</div><div class='add'>+</div><div class='add'>+all: $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk</div><div class='add'>+</div><div class='add'>+ruby: $(PROGRAM)</div><div class='add'>+rubyw: $(WPROGRAM)</div><div class='add'>+</div><div class='add'>+!include $(srcdir)/common.mk</div><div class='add'>+</div><div class='add'>+$(MKFILES): $(srcdir)/bcc32/Makefile.sub $(srcdir)/bcc32/configure.bat $(srcdir)/bcc32/setup.mak</div><div class='add'>+	$(COMSPEC) /C $(srcdir:/=\)\bcc32\configure.bat $(configure_args)</div><div class='add'>+	@echo $(MKFILES) should be updated, re-run $(MAKE).</div><div class='add'>+	@$(MAKE) &gt; nul -q -f &amp;&amp;|</div><div class='add'>+PHONY: nul</div><div class='add'>+	@exit</div><div class='add'>+|</div><div class='add'>+</div><div class='add'>+PHONY: nul</div><div class='add'>+</div><div class='add'>+RUBY_CONFIG_H = $(arch_hdrdir)/ruby/config.h</div><div class='add'>+CONFIG_H = ./.config.h.time</div><div class='add'>+</div><div class='add'>+config: config.status</div><div class='add'>+</div><div class='add'>+config.status: $(CONFIG_H)</div><div class='add'>+</div><div class='add'>+guard = INCLUDE_RUBY_CONFIG_H</div><div class='add'>+</div><div class='add'>+$(CONFIG_H): $(MKFILES) $(srcdir)/bcc32/Makefile.sub</div><div class='add'>+	@if not exist $(arch_hdrdir:/=\) md $(arch_hdrdir:/=\)</div><div class='add'>+	@if not exist $(arch_hdrdir:/=\)\ruby md $(arch_hdrdir:/=\)\ruby</div><div class='add'>+	@$(IFCHANGE) $(RUBY_CONFIG_H:/=\) &amp;&amp;|</div><div class='add'>+\#ifndef $(guard)</div><div class='add'>+\#define $(guard) 1</div><div class='add'>+\#define NO_BIG_INLINE 1</div><div class='add'>+\#define HAVE_SYS_TYPES_H 1</div><div class='add'>+\#define HAVE_SYS_STAT_H 1</div><div class='add'>+\#define HAVE_STDLIB_H 1</div><div class='add'>+\#define HAVE_STRING_H 1</div><div class='add'>+\#define HAVE_MEMORY_H 1</div><div class='add'>+\#define HAVE_LONG_LONG 1</div><div class='add'>+\#define HAVE_OFF_T 1</div><div class='add'>+\#define SIZEOF_INT 4</div><div class='add'>+\#define SIZEOF_SHORT 2</div><div class='add'>+\#define SIZEOF_LONG 4</div><div class='add'>+\#define SIZEOF_LONG_LONG 0</div><div class='add'>+\#define SIZEOF___INT64 8</div><div class='add'>+\#define SIZEOF_OFF_T 8</div><div class='add'>+\#define SIZEOF_VOIDP 4</div><div class='add'>+\#define SIZEOF_FLOAT 4</div><div class='add'>+\#define SIZEOF_DOUBLE 8</div><div class='add'>+\#define SIZEOF_TIME_T 4</div><div class='add'>+\#define SIZEOF_RLIM_T 0</div><div class='add'>+\#define SIZEOF_SIZE_T 4</div><div class='add'>+\#define SIZEOF_PTRDIFF_T 4</div><div class='add'>+\#define HAVE_PROTOTYPES 1</div><div class='add'>+\#define TOKEN_PASTE(x,y) x\#\#y</div><div class='add'>+\#define HAVE_STDARG_PROTOTYPES 1</div><div class='add'>+\#define NORETURN(x) x</div><div class='add'>+\#define RUBY_EXTERN extern __declspec(dllimport)</div><div class='add'>+\#define HAVE_DECL_SYS_NERR 1</div><div class='add'>+\#define HAVE_LIMITS_H 1</div><div class='add'>+\#define HAVE_FCNTL_H 1</div><div class='add'>+\#define HAVE_UTIME_H 1</div><div class='add'>+\#define HAVE_FLOAT_H 1</div><div class='add'>+\#define rb_uid_t uid_t</div><div class='add'>+\#define rb_gid_t gid_t</div><div class='add'>+\#define rb_pid_t int</div><div class='add'>+\#define HAVE_STRUCT_STAT_ST_RDEV 1</div><div class='add'>+\#define HAVE_ST_RDEV 1</div><div class='add'>+!if $(BORLANDC) &lt; 0x0580</div><div class='add'>+\#define int8_t signed char</div><div class='add'>+\#define uint8_t unsigned char</div><div class='add'>+\#define int16_t short</div><div class='add'>+\#define uint16_t unsigned short</div><div class='add'>+\#define int32_t int</div><div class='add'>+\#define uint32_t unsigned int</div><div class='add'>+\#define int64_t __int64</div><div class='add'>+\#define uint64_t unsigned __int64</div><div class='add'>+\#define ssize_t int</div><div class='add'>+!endif</div><div class='add'>+\#define HAVE_INT8_T 1</div><div class='add'>+\#define HAVE_UINT8_T 1</div><div class='add'>+\#define SIZEOF_INT8_T 1</div><div class='add'>+\#define HAVE_INT16_T 1</div><div class='add'>+\#define HAVE_UINT16_T 1</div><div class='add'>+\#define SIZEOF_INT32_T 2</div><div class='add'>+\#define HAVE_INT32_T 1</div><div class='add'>+\#define HAVE_UINT32_T 1</div><div class='add'>+\#define SIZEOF_INT32_T 4</div><div class='add'>+\#define HAVE_INT64_T 1</div><div class='add'>+\#define HAVE_UINT64_T 1</div><div class='add'>+\#define SIZEOF_INT64_T 8</div><div class='add'>+\#define HAVE_INTPTR_T 1</div><div class='add'>+\#define HAVE_UINTPTR_T 1</div><div class='add'>+\#define HAVE_SSIZE_T 1</div><div class='add'>+\#define GETGROUPS_T int</div><div class='add'>+\#define RETSIGTYPE void</div><div class='add'>+\#define HAVE_ALLOCA 1</div><div class='add'>+\#define HAVE_DUP2 1</div><div class='add'>+\#define HAVE_MEMMOVE 1</div><div class='add'>+\#define HAVE_MKDIR 1</div><div class='add'>+\#define HAVE_STRCASECMP 1</div><div class='add'>+\#define HAVE_STRNCASECMP 1</div><div class='add'>+\#define HAVE_STRERROR 1</div><div class='add'>+\#define HAVE_STRFTIME 1</div><div class='add'>+\#define HAVE_STRCHR 1</div><div class='add'>+\#define HAVE_STRSTR 1</div><div class='add'>+\#define HAVE_STRTOD 1</div><div class='add'>+\#define HAVE_STRTOL 1</div><div class='add'>+\#define HAVE_STRTOUL 1</div><div class='add'>+\#define HAVE_SNPRINTF 1</div><div class='add'>+\#define HAVE_VSNPRINTF 1</div><div class='add'>+\#define HAVE_ISNAN 1</div><div class='add'>+\#define HAVE_FINITE 1</div><div class='add'>+\#define HAVE_HYPOT 1</div><div class='add'>+\#define HAVE_FMOD 1</div><div class='add'>+\#define HAVE_WAITPID 1</div><div class='add'>+\#define HAVE_FSYNC 1</div><div class='add'>+\#define HAVE_GETCWD 1</div><div class='add'>+\#define HAVE_TRUNCATE 1</div><div class='add'>+\#define HAVE_FTRUNCATE 1</div><div class='add'>+\#define HAVE_FSEEKO 1</div><div class='add'>+\#define HAVE_FTELLO 1</div><div class='add'>+\#define HAVE_TIMES 1</div><div class='add'>+\#define HAVE_FCNTL 1</div><div class='add'>+\#define HAVE_LINK 1</div><div class='add'>+\#define HAVE_TELLDIR 1</div><div class='add'>+\#define HAVE_SEEKDIR 1</div><div class='add'>+\#define HAVE_COSH 1</div><div class='add'>+\#define HAVE_SINH 1</div><div class='add'>+\#define HAVE_TANH 1</div><div class='add'>+\#define RSHIFT(x,y) ((x)&gt;&gt;(int)y)</div><div class='add'>+\#define FILE_COUNT level</div><div class='add'>+\#define FILE_READPTR curp</div><div class='add'>+\#define RUBY_SETJMP(env) setjmp(env)</div><div class='add'>+\#define RUBY_LONGJMP(env,val) longjmp(env,val)</div><div class='add'>+\#define RUBY_JMP_BUF jmp_buf</div><div class='add'>+\#define inline __inline</div><div class='add'>+\#define NEED_IO_SEEK_BETWEEN_RW 1</div><div class='add'>+\#define STACK_GROW_DIRECTION -1</div><div class='add'>+\#define DEFAULT_KCODE KCODE_NONE</div><div class='add'>+\#define LOAD_RELATIVE 1</div><div class='add'>+\#define DLEXT ".so"</div><div class='add'>+\#define RUBY_LIB_PREFIX "/lib/ruby"</div><div class='add'>+\#define RUBY_PLATFORM "$(ARCH)-$(OS)"</div><div class='add'>+\#endif /* $(guard) */</div><div class='add'>+|</div><div class='add'>+	@exit &gt; $(@:/=\)</div><div class='add'>+</div><div class='add'>+config.status: $(MKFILES) $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk</div><div class='add'>+	@echo Creating $@</div><div class='add'>+	@type &gt; $@ &amp;&amp;|</div><div class='add'>+# Generated automatically by Makefile.sub.</div><div class='add'>+s,@SHELL@,$$(COMSPEC),;t t</div><div class='add'>+s,@BUILD_FILE_SEPARATOR@,\,;t t</div><div class='add'>+s,@PATH_SEPARATOR@,;,;t t</div><div class='add'>+s,@CFLAGS@,$(CFLAGS),;t t</div><div class='add'>+s,@DEFS@,$(DEFS),;t t</div><div class='add'>+s,@CPPFLAGS@,$(CPPFLAGS),;t t</div><div class='add'>+s,@CXXFLAGS@,$(CXXFLAGS),;t t</div><div class='add'>+s,@FFLAGS@,$(FFLAGS),;t t</div><div class='add'>+s,@LDFLAGS@,,;t t</div><div class='add'>+s,@LIBS@,$(LIBS),;t t</div><div class='add'>+s,@exec_prefix@,$${prefix},;t t</div><div class='add'>+s,@prefix@,$(prefix),;t t</div><div class='add'>+s,@program_transform_name@,s,,,,;t t</div><div class='add'>+s,@bindir@,$${exec_prefix}/bin,;t t</div><div class='add'>+s,@sbindir@,$${exec_prefix}/sbin,;t t</div><div class='add'>+s,@libexecdir@,$${exec_prefix}/libexec,;t t</div><div class='add'>+s,@datadir@,$${prefix}/share,;t t</div><div class='add'>+s,@sysconfdir@,$${prefix}/etc,;t t</div><div class='add'>+s,@sharedstatedir@,/etc,;t t</div><div class='add'>+s,@localstatedir@,/var,;t t</div><div class='add'>+s,@libdir@,$${exec_prefix}/lib,;t t</div><div class='add'>+s,@includedir@,$${prefix}/include,;t t</div><div class='add'>+s,@oldincludedir@,/usr/include,;t t</div><div class='add'>+s,@infodir@,$${prefix}/info,;t t</div><div class='add'>+s,@mandir@,$${prefix}/man,;t t</div><div class='add'>+s,@ridir@,$${prefix}/share/ri,;t t</div><div class='add'>+s,@build@,$(CPU)-pc-$(OS),;t t</div><div class='add'>+s,@build_alias@,$(CPU)-$(OS),;t t</div><div class='add'>+s,@build_cpu@,$(CPU),;t t</div><div class='add'>+s,@build_vendor@,pc,;t t</div><div class='add'>+s,@build_os@,$(OS),;t t</div><div class='add'>+s,@host@,$(CPU)-pc-$(OS),;t t</div><div class='add'>+s,@host_alias@,$(CPU)-$(OS),;t t</div><div class='add'>+s,@host_cpu@,$(CPU),;t t</div><div class='add'>+s,@host_vendor@,pc,;t t</div><div class='add'>+s,@host_os@,$(OS),;t t</div><div class='add'>+s,@target@,$(ARCH)-pc-$(OS),;t t</div><div class='add'>+s,@target_alias@,$(ARCH)-$(OS),;t t</div><div class='add'>+s,@target_cpu@,$(ARCH),;t t</div><div class='add'>+s,@target_vendor@,pc,;t t</div><div class='add'>+s,@target_os@,$(OS),;t t</div><div class='add'>+s,@CC@,$(CC),;t t</div><div class='add'>+s,@CPP@,cpp32,;t t</div><div class='add'>+s,@CXX@,$$(CC),;t t</div><div class='add'>+s,@LD@,$(LD),;t t</div><div class='add'>+s,@YACC@,$(YACC),;t t</div><div class='add'>+s,@RANLIB@,,;t t</div><div class='add'>+s,@AR@,$(AR),;t t</div><div class='add'>+s,@ARFLAGS@,$(ARFLAGS) ,;t t</div><div class='add'>+s,@LN_S@,$(LN_S),;t t</div><div class='add'>+s,@SET_MAKE@,MFLAGS = -$$(MAKEFLAGS),;t t</div><div class='add'>+s,@RM@,$$(top_srcdir:/=\)\win32\rm.bat,;t t</div><div class='add'>+s,@CP@,copy &gt; nul,;t t</div><div class='add'>+s,@LIBOBJS@, $(MISSING),;t t</div><div class='add'>+s,@ALLOCA@,$(ALLOCA),;t t</div><div class='add'>+s,@DEFAULT_KCODE@,$(DEFAULT_KCODE),;t t</div><div class='add'>+s,@EXEEXT@,.exe,;t t</div><div class='add'>+s,@OBJEXT@,obj,;t t</div><div class='add'>+s,@XCFLAGS@,$(XCFLAGS),;t t</div><div class='add'>+s,@XLDFLAGS@,$(XLDFLAGS),;t t</div><div class='add'>+s,@DLDFLAGS@,$(DLDFLAGS),;t t</div><div class='add'>+s,@ARCH_FLAG@,$(ARCH_FLAG),;t t</div><div class='add'>+s,@STATIC@,$(STATIC),;t t</div><div class='add'>+s,@CCDLFLAGS@,,;t t</div><div class='add'>+s,@LDSHARED@,$(LDSHARED),;t t</div><div class='add'>+s,@DLEXT@,so,;t t</div><div class='add'>+s,@LIBEXT@,lib,;t t</div><div class='add'>+s,@STRIP@,$(STRIP),;t t</div><div class='add'>+s,@EXTSTATIC@,$(EXTSTATIC),;t t</div><div class='add'>+s,@setup@,Setup,;t t</div><div class='add'>+s,@MINIRUBY@,$(MINIRUBY),;t t</div><div class='add'>+s,@PREP@,miniruby$(EXEEXT),;t t</div><div class='add'>+s,@RUNRUBY@,$(RUNRUBY),;t t</div><div class='add'>+s,@EXTOUT@,$(EXTOUT),;t t</div><div class='add'>+s,@ARCHFILE@,,;t t</div><div class='add'>+s,@RDOCTARGET@,,;t t</div><div class='add'>+s,@LIBRUBY_LDSHARED@,$$(LDSHARED),;t t</div><div class='add'>+s,@LIBRUBY_DLDFLAGS@,-Gi $$(DLDFLAGS),;t t</div><div class='add'>+s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t</div><div class='add'>+s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t</div><div class='add'>+s,@RUBYW_INSTALL_NAME@,$(RUBYW_INSTALL_NAME),;t t</div><div class='add'>+s,@RUBY_SO_NAME@,$(RUBY_SO_NAME),;t t</div><div class='add'>+s,@LIBRUBY_A@,$$(RUBY_SO_NAME)-static.lib,;t t</div><div class='add'>+s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t</div><div class='add'>+s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t</div><div class='add'>+s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t</div><div class='add'>+s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t</div><div class='add'>+s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t</div><div class='add'>+s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t</div><div class='add'>+s,@SOLIBS@,$(SOLIBS),;t t</div><div class='add'>+s,@DLDLIBS@,$(DLDLIBS),;t t</div><div class='add'>+s,@ENABLE_SHARED@,yes,;t t</div><div class='add'>+s,@OUTFLAG@,$(OUTFLAG),;t t</div><div class='add'>+s,@COUTFLAG@,$(COUTFLAG),;t t</div><div class='add'>+s,@CPPOUTFILE@,,;t t</div><div class='add'>+s,@LIBPATHFLAG@, -L"%s",;t t</div><div class='add'>+s,@RPATHFLAG@,,;t t</div><div class='add'>+s,@LIBARG@,%s.lib,;t t</div><div class='add'>+s,@LINK_SO@,$$(LDSHARED) $$(DLDFLAGS) $$(LIBPATH) $$(OBJS:/=\), $$(@:/=\), nul, $$(LIBS) $$(LOCAL_LIBS), $$(DEFFILE:/=\), $$(RESFILE:/=\),;t t</div><div class='add'>+s,@COMPILE_C@,$$(CC) $$(INCFLAGS) $$(CFLAGS) $$(CPPFLAGS) $(COUTFLAG)$$(@) -c $$(&lt;:/=\),;t t</div><div class='add'>+s,@COMPILE_CXX@,$$(CXX) $$(INCFLAGS) $$(CXXFLAGS) $$(CPPFLAGS) -P $(COUTFLAG)$$(@) -c $$(&lt;:/=\),;t t</div><div class='add'>+s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: {$$(topdir)}.%s{}.%s: {$$(hdrdir)}.%s{}.%s: .%s.%s:,;t t</div><div class='add'>+s,@RULE_SUBST@,{.;$$(VPATH)}%s,;t t</div><div class='add'>+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='add'>+s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN WIN32,;t t</div><div class='add'>+s,@COMMON_HEADERS@,winsock2.h windows.h,;t t</div><div class='add'>+s,@cleanlibs@,$$*.tds,;t t</div><div class='add'>+s,@cleanobjs@,$$*-$$(arch).def $$*.il? $$*.lib,;t t</div><div class='add'>+s,@TRY_LINK@,$$(CC) -oconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(LIBPATH) $$(LDFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS),;t t</div><div class='add'>+s,@EXPORT_PREFIX@,_,;t t</div><div class='add'>+s,@arch@,$(ARCH)-$(OS),;t t</div><div class='add'>+s,@sitearch@,$(ARCH)-$(OS),;t t</div><div class='add'>+s,@sitedir@,$${prefix}/lib/ruby/site_ruby,;t t</div><div class='add'>+s,@vendordir@,$${prefix}/lib/ruby/vendor_ruby,;t t</div><div class='add'>+s,@rubyhdrdir@,$$(includedir)/ruby-$$(MAJOR).$$(MINOR).$$(TEENY),;t t</div><div class='add'>+s,@sitehdrdir@,$$(rubyhdrdir)/site_ruby,;t t</div><div class='add'>+s,@vendorhdrdir@,$$(rubyhdrdir)/vendor_ruby,;t t</div><div class='add'>+s,@configure_args@,--enable-shared $(configure_args),;t t</div><div class='add'>+s,@configure_input@,$$configure_input,;t t</div><div class='add'>+s,@srcdir@,$(srcdir),;t t</div><div class='add'>+s,@top_srcdir@,$(srcdir),;t t</div><div class='add'>+|</div><div class='add'>+</div><div class='add'>+miniruby$(EXEEXT):</div><div class='add'>+		@echo $(LIBS)</div><div class='add'>+		$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(MINIOBJS) $(COMMONOBJS:/=\) $(DMYEXT),$@,nul,$(LIBS)</div><div class='add'>+</div><div class='add'>+$(PROGRAM):	$(MAINOBJ) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res</div><div class='add'>+		$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBY_INSTALL_NAME).res</div><div class='add'>+</div><div class='add'>+$(WPROGRAM):	$(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res</div><div class='add'>+		$(LD) $(LDFLAGS) $(WLDFLAGS) $(MAINOBJ) $(WINMAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBYW_INSTALL_NAME).res</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_A):	$(OBJS) $(DMYEXT)</div><div class='add'>+		@-if exist $@ del $@</div><div class='add'>+		$(AR) $(ARFLAGS) "$@" $(OBJS) $(DMYEXT)</div><div class='add'>+</div><div class='add'>+# $(LIBRUBY):	$(LIBRUBY_SO)</div><div class='add'>+#		implib $@ $(LIBRUBY_SO)</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_SO): $(LIBRUBY_A) $(DLDOBJS) $(RUBYDEF) $(RUBY_SO_NAME).res</div><div class='add'>+		@echo $(DLDOBJS)</div><div class='add'>+		@$(PRE_LIBRUBY_UPDATE)</div><div class='add'>+		$(LIBRUBY_LDSHARED) $(LIBRUBY_DLDFLAGS) $(DLDOBJS:/=\),$(LIBRUBY_SO),nul,$(LIBRUBY_A) $(LIBS),$(RUBYDEF),$(RUBY_SO_NAME).res</div><div class='add'>+</div><div class='add'>+$(LIBRUBY): $(LIBRUBY_SO)</div><div class='add'>+</div><div class='add'>+$(RUBYDEF):	$(LIBRUBY_A) $(PREP)</div><div class='add'>+		$(MINIRUBY) $(srcdir)/bcc32/mkexports.rb -output=$@ -base=$(RUBY_SO_NAME) $(LIBRUBY_A)</div><div class='add'>+</div><div class='add'>+$(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc: rbconfig.rb $(srcdir)/revision.h $(srcdir)/win32/resource.rb</div><div class='add'>+		@$(MINIRUBY) $(srcdir)/win32/resource.rb \</div><div class='add'>+			-ruby_name=$(RUBY_INSTALL_NAME) \</div><div class='add'>+			-rubyw_name=$(RUBYW_INSTALL_NAME) \</div><div class='add'>+			-so_name=$(RUBY_SO_NAME) \</div><div class='add'>+			. $(icondirs) $(srcdir)/win32</div><div class='add'>+</div><div class='add'>+lex.c: {$(srcdir)}lex.c.blt</div><div class='add'>+	copy "$(?:/=\)" $@</div><div class='add'>+</div><div class='add'>+post-install-bin::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+post-install-lib::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+post-install-ext-comm::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+post-install-ext-arch::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+post-install-man::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+post-install-doc::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+clean-local::</div><div class='add'>+		@$(RM) $(WINMAINOBJ) ext\extinit.c ext\extinit.$(OBJEXT) *.tds *.il? $(RUBY_SO_NAME).lib</div><div class='add'>+		@$(RM) $(RUBY_INSTALL_NAME).res $(RUBYW_INSTALL_NAME).res $(RUBY_SO_NAME).res</div><div class='add'>+		@$(RM) *.map *.pdb *.ilk *.exp $(RUBYDEF) ext\ripper\y.output</div><div class='add'>+</div><div class='add'>+distclean-local::</div><div class='add'>+		@$(RM) ext\config.cache $(RBCONFIG:/=\)</div><div class='add'>+		@$(RM) $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc</div><div class='add'>+</div><div class='add'>+clean-ext distclean-ext realclean-ext::</div><div class='add'>+		@for /R ext %I in (.) do @if exist %I\Makefile ( \</div><div class='add'>+		    echo $(@:-ext=)ing %~nI &amp; \</div><div class='add'>+		    cd %I &amp; \</div><div class='add'>+		    $(MAKE) $(MFLAGS) $(@:-ext=) &amp; \</div><div class='add'>+		    cd %CD% \</div><div class='add'>+		)</div><div class='add'>+</div><div class='add'>+ext/extinit.obj: ext/extinit.c $(SETUP)</div><div class='add'>+	$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c ext/extinit.c</div><div class='add'>+</div><div class='add'>+main.$(OBJEXT): win32.h</div><div class='add'>+ascii.$(OBJEXT): win32.h</div><div class='add'>+array.$(OBJEXT): win32.h</div><div class='add'>+bignum.$(OBJEXT): win32.h</div><div class='add'>+class.$(OBJEXT): win32.h</div><div class='add'>+compar.$(OBJEXT): win32.h</div><div class='add'>+dir.$(OBJEXT): dir.h win32.h</div><div class='add'>+dln.$(OBJEXT): win32.h</div><div class='add'>+enum.$(OBJEXT): win32.h</div><div class='add'>+error.$(OBJEXT): win32.h</div><div class='add'>+euc_jp.$(OBJEXT): win32.h</div><div class='add'>+eval.$(OBJEXT): win32.h</div><div class='add'>+file.$(OBJEXT): win32.h</div><div class='add'>+gc.$(OBJEXT): win32.h</div><div class='add'>+hash.$(OBJEXT): win32.h</div><div class='add'>+inits.$(OBJEXT): win32.h</div><div class='add'>+io.$(OBJEXT): win32.h</div><div class='add'>+marshal.$(OBJEXT): win32.h</div><div class='add'>+math.$(OBJEXT): win32.h</div><div class='add'>+numeric.$(OBJEXT): win32.h</div><div class='add'>+object.$(OBJEXT): win32.h</div><div class='add'>+pack.$(OBJEXT): win32.h</div><div class='add'>+parse.$(OBJEXT): win32.h</div><div class='add'>+process.$(OBJEXT): win32.h</div><div class='add'>+prec.$(OBJEXT): win32.h</div><div class='add'>+random.$(OBJEXT): win32.h</div><div class='add'>+range.$(OBJEXT): win32.h</div><div class='add'>+re.$(OBJEXT): win32.h</div><div class='add'>+regcomp.$(OBJEXT): win32.h</div><div class='add'>+regenc.$(OBJEXT): win32.h</div><div class='add'>+regerror.$(OBJEXT): win32.h</div><div class='add'>+regexec.$(OBJEXT): win32.h</div><div class='add'>+reggnu.$(OBJEXT): win32.h</div><div class='add'>+regparse.$(OBJEXT): win32.h</div><div class='add'>+ruby.$(OBJEXT): win32.h</div><div class='add'>+signal.$(OBJEXT): win32.h</div><div class='add'>+sjis.$(OBJEXT): win32.h</div><div class='add'>+sprintf.$(OBJEXT): win32.h</div><div class='add'>+st.$(OBJEXT): win32.h</div><div class='add'>+string.$(OBJEXT): win32.h</div><div class='add'>+struct.$(OBJEXT): win32.h</div><div class='add'>+time.$(OBJEXT): win32.h</div><div class='add'>+utf_8.$(OBJEXT): win32.h</div><div class='add'>+util.$(OBJEXT): win32.h</div><div class='add'>+variable.$(OBJEXT): win32.h</div><div class='add'>+version.$(OBJEXT): win32.h</div><div class='head'>diff --git a/bcc32/README.bcc32 b/bcc32/README.bcc32<br/>new file mode 100644<br/>index 0000000000..cd33eec0a1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bcc32/README.bcc32?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bcc32/README.bcc32</a></div><div class='hunk'>@@ -0,0 +1,130 @@</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+= How to build ruby using Borland C++</div><div class='add'>+</div><div class='add'>+== Requirement</div><div class='add'>+</div><div class='add'>+(1) Borland C++ 5.0 or later.</div><div class='add'>+</div><div class='add'>+(2) Please set environment variable (({PATH}))</div><div class='add'>+    to run required commands properly from the command line.</div><div class='add'>+</div><div class='add'>+    Note: building ruby requires following commands.</div><div class='add'>+     * make</div><div class='add'>+     * bcc32</div><div class='add'>+     * tlib</div><div class='add'>+     * ilink32</div><div class='add'>+</div><div class='add'>+(3) If you want to build from CVS source, following commands are required.</div><div class='add'>+     * bison ((&lt;URL:http://gnuwin32.sourceforge.net/packages/bison.htm&gt;))</div><div class='add'>+     * sed   ((&lt;URL:http://gnuwin32.sourceforge.net/packages/sed.htm&gt;))</div><div class='add'>+</div><div class='add'>+(4) We strongly recommend to build ruby on C++Builder, to link following files.</div><div class='add'>+     * usebormm.lib</div><div class='add'>+     * memmgr.lib</div><div class='add'>+</div><div class='add'>+    RTL's internal memory manager cannot handle large memory block properly,</div><div class='add'>+    so we should use borlndmm.dll instead.</div><div class='add'>+     10000.times { "" &lt;&lt; "." * 529671; GC.start } # crash</div><div class='add'>+</div><div class='add'>+== How to compile and install</div><div class='add'>+</div><div class='add'>+(1) Execute bcc32\configure.bat on your build directory.</div><div class='add'>+     ex. c:\src\ruby&gt; bcc32\configure.bat</div><div class='add'>+    You can specify the target platform as an argument.</div><div class='add'>+    For example, run `((%configure i686-bccwin32%))'</div><div class='add'>+    You can also specify the install directory.</div><div class='add'>+    For example, run `((%configure --prefix=&lt;install_directory&gt;%))'</div><div class='add'>+    Default of the install directory is /usr .</div><div class='add'>+    The default ((|&lt;PLATFORM&gt;|)) is `(({i386-bccwin32}))'.</div><div class='add'>+     </div><div class='add'>+(2) Change ((|RUBY_INSTALL_NAME|)) and ((|RUBY_SO_NAME|)) in (({Makefile}))</div><div class='add'>+    if you want to change the name of the executable files. </div><div class='add'>+    And add ((|RUBYW_INSTALL_NAME|)) to change the name of the</div><div class='add'>+    executable without console window if also you want.</div><div class='add'>+</div><div class='add'>+(3) Run `((%make%))'</div><div class='add'>+</div><div class='add'>+(4) Run `((%make test%))'</div><div class='add'>+</div><div class='add'>+(5) Run `((%make install%))'</div><div class='add'>+</div><div class='add'>+(6) Requires dynamic RTL (cc3250.dll on C++Builder5) and borlndmm.dll (If built with</div><div class='add'>+    usebormm.lib) to use installed binary. These files are ordinary in bcc32's bin</div><div class='add'>+    directory.</div><div class='add'>+</div><div class='add'>+== Icons</div><div class='add'>+</div><div class='add'>+Any icon files(*.ico) in the build directory, directories specified with</div><div class='add'>+((|icondirs|)) make variable and (({win32})) directory under the ruby</div><div class='add'>+source directory will be included in DLL or executable files, according</div><div class='add'>+to their base names.</div><div class='add'>+    $(RUBY_INSTALL_NAME).ico or ruby.ico   --&gt; $(RUBY_INSTALL_NAME).exe</div><div class='add'>+    $(RUBYW_INSTALL_NAME).ico or rubyw.ico --&gt; $(RUBYW_INSTALL_NAME).exe</div><div class='add'>+    the others                             --&gt; $(RUBY_SO_NAME).dll</div><div class='add'>+</div><div class='add'>+Although no icons are distributed with the ruby source or in the official </div><div class='add'>+site, you can use anything you like. For example, followings are written </div><div class='add'>+in Japanese, but you can download at least.</div><div class='add'>+</div><div class='add'>+* ((&lt;URL:http://member.nifty.ne.jp/ueivu/rubyico.html&gt;)) or</div><div class='add'>+  ((&lt;zipped icons|URL:http://member.nifty.ne.jp/ueivu/Ruby_ico.zip&gt;))</div><div class='add'>+* ((&lt;URL:http://homepage1.nifty.com/a_nakata/ruby/&gt;)) or</div><div class='add'>+  ((&lt;icon itself|URL:http://homepage1.nifty.com/a_nakata/ruby/RubyIcon.ico&gt;))</div><div class='add'>+</div><div class='add'>+== Build examples</div><div class='add'>+</div><div class='add'>+* Build on the ruby source directory.</div><div class='add'>+</div><div class='add'>+  ex.)</div><div class='add'>+    ruby source directory:  C:\ruby</div><div class='add'>+    build directory:        C:\ruby</div><div class='add'>+    install directory:      C:\usr\local</div><div class='add'>+</div><div class='add'>+    C:</div><div class='add'>+    cd \ruby</div><div class='add'>+    bcc32\configure --prefix=/usr/local</div><div class='add'>+    make</div><div class='add'>+    make test</div><div class='add'>+    make install</div><div class='add'>+</div><div class='add'>+* Build on the relative directory from the ruby source directory and CPU type </div><div class='add'>+  i386.</div><div class='add'>+</div><div class='add'>+  ex.)</div><div class='add'>+    ruby source directory:  C:\ruby</div><div class='add'>+    build directory:        C:\ruby\bccwin32</div><div class='add'>+    install directory:      C:\usr\local</div><div class='add'>+    CPU                     i386</div><div class='add'>+    </div><div class='add'>+    C:</div><div class='add'>+    cd \ruby</div><div class='add'>+    mkdir bccwin32</div><div class='add'>+    cd bccwin32</div><div class='add'>+    ..\bcc32\configure --prefix=/usr/local</div><div class='add'>+    make</div><div class='add'>+    make test</div><div class='add'>+    make install</div><div class='add'>+</div><div class='add'>+* Build on the different drive.</div><div class='add'>+</div><div class='add'>+  ex.)</div><div class='add'>+    ruby source directory:  C:\src\ruby</div><div class='add'>+    build directory:        D:\build\ruby</div><div class='add'>+    install directory:      C:\usr\local</div><div class='add'>+</div><div class='add'>+    D:</div><div class='add'>+    cd D:\build\ruby</div><div class='add'>+    C:\src\ruby\bcc32\configure --prefix=C:/usr/local</div><div class='add'>+    make</div><div class='add'>+    make test</div><div class='add'>+    make install</div><div class='add'>+</div><div class='add'>+== Bugs</div><div class='add'>+</div><div class='add'>+You can ((*NOT*)) use a path name contains any white space characters as</div><div class='add'>+the ruby source directory, this restriction comes from the behavior of</div><div class='add'>+(({!INCLUDE})) directives of (({MAKE})).</div><div class='add'>+((- you may call it a bug. -))</div><div class='add'>+</div><div class='add'>+=end</div><div class='head'>diff --git a/bcc32/configure.bat b/bcc32/configure.bat<br/>new file mode 100755<br/>index 0000000000..8cdfc64b03<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bcc32/configure.bat?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bcc32/configure.bat</a></div><div class='hunk'>@@ -0,0 +1,163 @@</div><div class='add'>+@echo off</div><div class='add'>+::: Don't set environment variable in batch file other than autoexec.bat</div><div class='add'>+::: to avoid "Out of environment space" problem on Windows 95/98.</div><div class='add'>+::: set TMPMAKE=~tmp~.mak</div><div class='add'>+</div><div class='add'>+echo&gt; ~tmp~.mak ####</div><div class='add'>+echo&gt;&gt; ~tmp~.mak conf = %0</div><div class='add'>+echo&gt;&gt; ~tmp~.mak $(conf:\=/): nul</div><div class='add'>+echo&gt;&gt; ~tmp~.mak 	@del ~setup~.mak</div><div class='add'>+echo&gt;&gt; ~tmp~.mak 	@-$(MAKE) -l$(MAKEFLAGS) -f $(@D)setup.mak \</div><div class='add'>+if exist pathlist.tmp del pathlist.tmp</div><div class='add'>+if exist confargs.mk del confargs.mk</div><div class='add'>+:loop</div><div class='add'>+if "%1" == "" goto :end</div><div class='add'>+if "%1" == "--prefix" goto :prefix</div><div class='add'>+if "%1" == "prefix" goto :prefix</div><div class='add'>+if "%1" == "--srcdir" goto :srcdir</div><div class='add'>+if "%1" == "srcdir" goto :srcdir</div><div class='add'>+if "%1" == "--target" goto :target</div><div class='add'>+if "%1" == "target" goto :target</div><div class='add'>+if "%1" == "--with-static-linked-ext" goto :extstatic</div><div class='add'>+if "%1" == "--program-suffix" goto :suffix</div><div class='add'>+if "%1" == "RUBY_SUFFIX" goto :suffix</div><div class='add'>+if "%1" == "--program-name" goto :installname</div><div class='add'>+if "%1" == "--install-name" goto :installname</div><div class='add'>+if "%1" == "RUBY_INSTALL_NAME" goto :installname</div><div class='add'>+if "%1" == "--so-name" goto :soname</div><div class='add'>+if "%1" == "RUBY_SO_NAME" goto :soname</div><div class='add'>+if "%1" == "--enable-install-doc" goto :enable-rdoc</div><div class='add'>+if "%1" == "--disable-install-doc" goto :disable-rdoc</div><div class='add'>+if "%1" == "--extout" goto :extout</div><div class='add'>+if "%1" == "EXTOUT" goto :extout</div><div class='add'>+if "%1" == "--with-baseruby" goto :baseruby</div><div class='add'>+if "%1" == "BASERUBY" goto :baseruby</div><div class='add'>+if "%1" == "--path" goto :path</div><div class='add'>+if "%1" == "-h" goto :help</div><div class='add'>+if "%1" == "--help" goto :help</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1 \</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:srcdir</div><div class='add'>+  echo&gt;&gt; ~tmp~.mak 	-Dsrcdir=%2 \</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	--srcdir=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:prefix</div><div class='add'>+  echo&gt;&gt; ~tmp~.mak 	-Dprefix=%2 \</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:suffix</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef RUBY_SUFFIX</div><div class='add'>+  echo&gt;&gt;confargs.mk RUBY_SUFFIX = %2</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:installname</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef RUBY_INSTALL_NAME</div><div class='add'>+  echo&gt;&gt;confargs.mk RUBY_INSTALL_NAME = %2</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:soname</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef RUBY_SO_NAME</div><div class='add'>+  echo&gt;&gt;confargs.mk RUBY_SO_NAME = %2</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:target</div><div class='add'>+  echo&gt;&gt; ~tmp~.mak 	%2 \</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	--target=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:extstatic</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef EXTSTATIC</div><div class='add'>+  echo&gt;&gt;confargs.mk EXTSTATIC = static</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1 \</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:enable-rdoc</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef RDOCTARGET</div><div class='add'>+  echo&gt;&gt;confargs.mk RDOCTARGET = install-doc</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1 \</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:disable-rdoc</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef RDOCTARGET</div><div class='add'>+  echo&gt;&gt;confargs.mk RDOCTARGET = install-nodoc</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1 \</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:extout</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef EXTOUT</div><div class='add'>+  echo&gt;&gt;confargs.mk EXTOUT = %2</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:baseruby</div><div class='add'>+  echo&gt;&gt;confargs.mk !ifndef BASERUBY</div><div class='add'>+  echo&gt;&gt;confargs.mk BASERUBY = %2</div><div class='add'>+  echo&gt;&gt;confargs.mk !endif</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:path</div><div class='add'>+  echo&gt;&gt;pathlist.tmp %2;\</div><div class='add'>+  echo&gt;&gt;confargs.tmp 	%1=%2 \</div><div class='add'>+  shift</div><div class='add'>+  shift</div><div class='add'>+goto :loop</div><div class='add'>+:help</div><div class='add'>+  echo Configuration:</div><div class='add'>+  echo   --help                  display this help</div><div class='add'>+  echo   --srcdir=DIR            find the sources in DIR [configure dir or `..']</div><div class='add'>+  echo Installation directories:</div><div class='add'>+  echo   --prefix=PREFIX         install files in PREFIX (ignored currently)</div><div class='add'>+  echo System types:</div><div class='add'>+  echo   --target=TARGET         configure for TARGET [i386-bccwin32]</div><div class='add'>+  echo Optional Package:</div><div class='add'>+  echo   --with-baseruby=RUBY    use RUBY as baseruby [ruby]</div><div class='add'>+  echo   --with-static-linked-ext link external modules statically</div><div class='add'>+  echo   --enable-install-doc    install rdoc indexes during install</div><div class='add'>+  del *.tmp</div><div class='add'>+  del ~tmp~.mak</div><div class='add'>+goto :exit</div><div class='add'>+:end</div><div class='add'>+echo&gt;&gt; ~tmp~.mak 	-Dbcc32dir=$(@D)</div><div class='add'>+if not exist confargs.tmp goto :noconfargs</div><div class='add'>+    echo&gt;&gt;confargs.mk configure_args = \</div><div class='add'>+    type&gt;&gt;confargs.mk confargs.tmp</div><div class='add'>+    echo.&gt;&gt;confargs.mk</div><div class='add'>+    echo&gt;&gt;confargs.mk ####</div><div class='add'>+:noconfargs</div><div class='add'>+if not exist pathlist.tmp goto :nopathlist</div><div class='add'>+    echo&gt;&gt;confargs.mk pathlist = \</div><div class='add'>+    type&gt;&gt;confargs.mk pathlist.tmp</div><div class='add'>+    echo.&gt;&gt;confargs.mk</div><div class='add'>+    echo&gt;&gt;confargs.mk ####</div><div class='add'>+    echo&gt;&gt;confargs.mk PATH = $(pathlist:;=/bin;)$(PATH)</div><div class='add'>+    echo&gt;&gt;confargs.mk INCLUDE = $(pathlist:;=/include;)</div><div class='add'>+    echo&gt;&gt;confargs.mk LIB = $(pathlist:;=/lib;)</div><div class='add'>+:nopathlist</div><div class='add'>+if exist confargs.mk copy confargs.mk ~setup~.mak &gt; nul</div><div class='add'>+type&gt;&gt;~setup~.mak ~tmp~.mak</div><div class='add'>+del *.tmp &gt; nul</div><div class='add'>+del ~tmp~.mak &gt; nul</div><div class='add'>+make -s -f ~setup~.mak</div><div class='add'>+:exit</div><div class='head'>diff --git a/bcc32/mkexports.rb b/bcc32/mkexports.rb<br/>new file mode 100755<br/>index 0000000000..888ab2e2a6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bcc32/mkexports.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bcc32/mkexports.rb</a></div><div class='hunk'>@@ -0,0 +1,26 @@</div><div class='add'>+#!./miniruby -s</div><div class='add'>+</div><div class='add'>+$:.unshift(File.expand_path("../..", __FILE__))</div><div class='add'>+require 'win32/mkexports'</div><div class='add'>+</div><div class='add'>+class Exports::Bcc &lt; Exports</div><div class='add'>+  def forwarding(internal, export)</div><div class='add'>+    internal[/\A_?/]+export</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def each_line(objs, &amp;block)</div><div class='add'>+    objs.each do |obj|</div><div class='add'>+      opt = /\.(?:so|dll)\z/i =~ obj ? "-ee" : "-oiPUBDEF -oiPUBD32"</div><div class='add'>+      IO.foreach("|tdump -q #{opt} #{obj.tr('/', '\\')} &lt; nul", &amp;block)</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def each_export(objs)</div><div class='add'>+    objdump(objs) do |l|</div><div class='add'>+      next unless /(?:PUBDEF|PUBD32|EXPORT)/ =~ l</div><div class='add'>+      yield $1 if /'(.*?)'/ =~ l</div><div class='add'>+    end</div><div class='add'>+    yield "_strcasecmp", "_stricmp"</div><div class='add'>+    yield "_strncasecmp", "_strnicmp"</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/bcc32/setup.mak b/bcc32/setup.mak<br/>new file mode 100644<br/>index 0000000000..df2fd3c128<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bcc32/setup.mak?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bcc32/setup.mak</a></div><div class='hunk'>@@ -0,0 +1,179 @@</div><div class='add'>+# -*- makefile -*-</div><div class='add'>+</div><div class='add'>+!if "$(srcdir)" != ""</div><div class='add'>+bcc32dir = $(srcdir)/bcc32</div><div class='add'>+!elseif "$(bcc32dir)" == "bcc32/"</div><div class='add'>+srcdir = .</div><div class='add'>+!elseif "$(bcc32dir:/bcc32/=)/bcc32/" == "$(bcc32dir)"</div><div class='add'>+srcdir = $(bcc32dir:/bcc32/=)</div><div class='add'>+!else</div><div class='add'>+srcdir = $(bcc32dir)/..</div><div class='add'>+!endif</div><div class='add'>+!ifndef prefix</div><div class='add'>+prefix = /usr</div><div class='add'>+!endif</div><div class='add'>+OS = bccwin32</div><div class='add'>+RT = $(OS)</div><div class='add'>+BANG = !</div><div class='add'>+APPEND = echo.&gt;&gt;$(MAKEFILE)</div><div class='add'>+!ifdef MAKEFILE</div><div class='add'>+MAKE = $(MAKE) -f $(MAKEFILE)</div><div class='add'>+!else</div><div class='add'>+MAKEFILE = Makefile</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+all: Makefile</div><div class='add'>+Makefile: -prologue- -generic- -epilogue-</div><div class='add'>+i386-$(OS): -prologue- -i386- -epilogue-</div><div class='add'>+i486-$(OS): -prologue- -i486- -epilogue-</div><div class='add'>+i586-$(OS): -prologue- -i586- -epilogue-</div><div class='add'>+i686-$(OS): -prologue- -i686- -epilogue-</div><div class='add'>+alpha-$(OS): -prologue- -alpha- -epilogue-</div><div class='add'>+</div><div class='add'>+-prologue-: -basic-vars- -version- -system-vars-</div><div class='add'>+</div><div class='add'>+-basic-vars-: nul</div><div class='add'>+	@echo Creating $(MAKEFILE)</div><div class='add'>+	@type &gt; $(MAKEFILE) &amp;&amp;|</div><div class='add'>+\#\#\# Makefile for ruby $(OS) \#\#\#</div><div class='add'>+$(BANG)ifndef srcdir</div><div class='add'>+srcdir = $(srcdir:\=/)</div><div class='add'>+$(BANG)endif</div><div class='add'>+$(BANG)ifndef prefix</div><div class='add'>+prefix = $(prefix:\=/)</div><div class='add'>+$(BANG)endif</div><div class='add'>+$(BANG)if !defined(BASERUBY)</div><div class='add'>+!if defined(BASERUBY)</div><div class='add'>+BASERUBY = $(BASERUBY)</div><div class='add'>+!endif</div><div class='add'>+|</div><div class='add'>+!if !defined(BASERUBY)</div><div class='add'>+	@for %I in (ruby.exe) do @echo BASERUBY = "%~$$PATH:I" &gt;&gt; $(MAKEFILE)</div><div class='add'>+!endif</div><div class='add'>+	@type &gt;&gt; $(MAKEFILE) &amp;&amp;|</div><div class='add'>+$(BANG)endif</div><div class='add'>+|</div><div class='add'>+!if exist(confargs.mk)</div><div class='add'>+	@type confargs.mk &gt;&gt; $(MAKEFILE)</div><div class='add'>+	@del confargs.mk</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+-system-vars-: -runtime- -bormm-</div><div class='add'>+</div><div class='add'>+-bormm-: nul</div><div class='add'>+	@-ilink32 -q -Gn -x usebormm.lib &gt; nul</div><div class='add'>+	@-if exist usebormm.tds $(APPEND) MEMLIB = usebormm.lib</div><div class='add'>+	@if exist usebormm.* del usebormm.*</div><div class='add'>+</div><div class='add'>+-osname-: nul</div><div class='add'>+	@echo OS =  &gt;&gt;$(MAKEFILE)</div><div class='add'>+</div><div class='add'>+-runtime-: nul</div><div class='add'>+	type &gt; conftest.c &amp;&amp;|</div><div class='add'>+\#include &lt;stdio.h&gt;</div><div class='add'>+int main(){printf("");return 0;}</div><div class='add'>+|</div><div class='add'>+	bcc32 conftest.c cw32i.lib &gt; nul</div><div class='add'>+	tdump conftest.exe &lt; nul &gt; conftest.i</div><div class='add'>+	grep "^Imports from CC" conftest.i &gt; conftest.c</div><div class='add'>+	cpp32 -P- -DFile=\# -DImports=RTNAME -Dfrom== conftest.c &gt; nul</div><div class='add'>+	$(MAKE) &gt; nul -DBANG=$(BANG) -f &amp;&amp;|</div><div class='add'>+-runtime-: nul</div><div class='add'>+$(BANG)include conftest.i</div><div class='add'>+RT = $$(RTNAME:.DLL=)</div><div class='add'>+OS = $$(RT:CC32=)</div><div class='add'>+-runtime-:</div><div class='add'>+	del conftest.*</div><div class='add'>+$(BANG)if "$$(OS)" == "50"</div><div class='add'>+	echo OS = bccwin32 &gt;&gt; $(MAKEFILE)</div><div class='add'>+$(BANG)else</div><div class='add'>+	echo OS = bccwin32_$$(OS) &gt;&gt; $(MAKEFILE)</div><div class='add'>+$(BANG)endif</div><div class='add'>+|</div><div class='add'>+	@echo RT = $$(OS) &gt;&gt; $(MAKEFILE)</div><div class='add'>+</div><div class='add'>+-version-: nul</div><div class='add'>+	@cpp32 -I$(srcdir) -P- -o$(MAKEFILE) &gt; nul &amp;&amp;|</div><div class='add'>+\#define RUBY_REVISION 0</div><div class='add'>+\#include "version.h"</div><div class='add'>+MAJOR = RUBY_API_VERSION_MAJOR</div><div class='add'>+MINOR = RUBY_API_VERSION_MINOR</div><div class='add'>+TEENY = RUBY_API_VERSION_TEENY</div><div class='add'>+</div><div class='add'>+BORLANDC = __BORLANDC__</div><div class='add'>+|</div><div class='add'>+	@$(MAKE) &gt; nul -DBANG=$(BANG) -f &amp;&amp;,</div><div class='add'>+-version-: nul</div><div class='add'>+$(BANG)include $(MAKEFILE)</div><div class='add'>+$(BANG)include $(MAKEFILE).i</div><div class='add'>+-version-:</div><div class='add'>+	@del $(MAKEFILE).i</div><div class='add'>+	@type &gt;&gt; $(MAKEFILE) &amp;&amp;|</div><div class='add'>+MAJOR = $$(MAJOR)</div><div class='add'>+MINOR = $$(MINOR)</div><div class='add'>+TEENY = $$(TEENY)</div><div class='add'>+BORLANDC = $$(BORLANDC)</div><div class='add'>+|</div><div class='add'>+,</div><div class='add'>+</div><div class='add'>+-generic-: nul</div><div class='add'>+!if defined(PROCESSOR_ARCHITECTURE) ||  defined(PROCESSOR_LEVEL)</div><div class='add'>+	@type &gt;&gt; $(MAKEFILE) &amp;&amp;|</div><div class='add'>+!if defined(PROCESSOR_ARCHITECTURE)</div><div class='add'>+$(BANG)ifndef PROCESSOR_ARCHITECTURE</div><div class='add'>+PROCESSOR_ARCHITECTURE = $(PROCESSOR_ARCHITECTURE)</div><div class='add'>+$(BANG)endif</div><div class='add'>+!endif</div><div class='add'>+!if defined(PROCESSOR_LEVEL)</div><div class='add'>+$(BANG)ifndef PROCESSOR_LEVEL</div><div class='add'>+PROCESSOR_LEVEL = $(PROCESSOR_LEVEL)</div><div class='add'>+$(BANG)endif</div><div class='add'>+!endif</div><div class='add'>+|</div><div class='add'>+!endif</div><div class='add'>+</div><div class='add'>+-alpha-: nul</div><div class='add'>+	@$(APPEND) !ifndef PROCESSOR_ARCHITECTURE</div><div class='add'>+	@$(APPEND) PROCESSOR_ARCHITECTURE = alpha</div><div class='add'>+	@$(APPEND) !endif</div><div class='add'>+-ix86-: nul</div><div class='add'>+	@$(APPEND) !ifndef PROCESSOR_ARCHITECTURE</div><div class='add'>+	@$(APPEND) PROCESSOR_ARCHITECTURE = x86</div><div class='add'>+	@$(APPEND) !endif</div><div class='add'>+</div><div class='add'>+-i386-: -ix86-</div><div class='add'>+	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='add'>+	@$(APPEND) PROCESSOR_LEVEL = 3</div><div class='add'>+	@$(APPEND) !endif</div><div class='add'>+-i486-: -ix86-</div><div class='add'>+	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='add'>+	@$(APPEND) PROCESSOR_LEVEL = 4</div><div class='add'>+	@$(APPEND) !endif</div><div class='add'>+-i586-: -ix86-</div><div class='add'>+	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='add'>+	@$(APPEND) PROCESSOR_LEVEL = 5</div><div class='add'>+	@$(APPEND) !endif</div><div class='add'>+-i686-: -ix86-</div><div class='add'>+	@$(APPEND) !ifndef PROCESSOR_LEVEL</div><div class='add'>+	@$(APPEND) PROCESSOR_LEVEL = 6</div><div class='add'>+	@$(APPEND) !endif</div><div class='add'>+</div><div class='add'>+-epilogue-: -encs-</div><div class='add'>+</div><div class='add'>+-encs-: nul</div><div class='add'>+	@$(MAKE) -f $(srcdir)/win32/enc-setup.mak srcdir="$(srcdir)" MAKEFILE=$(MAKEFILE)</div><div class='add'>+</div><div class='add'>+-epilogue-: nul</div><div class='add'>+	@type &gt;&gt; $(MAKEFILE) &amp;&amp;|</div><div class='add'>+</div><div class='add'>+\# RUBY_INSTALL_NAME = ruby</div><div class='add'>+\# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)</div><div class='add'>+\# CFLAGS = -q $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) -w- -wsus -wcpt -wdup -wext -wrng -wrpt -wzdi</div><div class='add'>+\# CPPFLAGS = -I. -I$$(srcdir) -I$$(srcdir)/missing -DLIBRUBY_SO=\"$$(LIBRUBY_SO)\"</div><div class='add'>+\# STACK = 0x2000000</div><div class='add'>+\# LDFLAGS = -S:$$(STACK)</div><div class='add'>+\# RFLAGS = $$(iconinc)</div><div class='add'>+\# EXTLIBS = cw32.lib import32.lib user32.lib kernel32.lib</div><div class='add'>+$(BANG)include $$(srcdir)/bcc32/Makefile.sub</div><div class='add'>+|</div><div class='add'>+	@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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_mandelbrot.rb b/benchmark/bm_app_mandelbrot.rb<br/>new file mode 100644<br/>index 0000000000..89069db7ab<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_mandelbrot.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..01d2ae3219<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_raise.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..7b2f2da5a7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_app_strconcat.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..7b167af774<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_select2.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_io_select2.rb</a></div><div class='hunk'>@@ -0,0 +1,18 @@</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'>+max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]</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..fcdbb96e0e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_io_select3.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_io_select3.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</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'>+max = Process.getrlimit(Process::RLIMIT_NOFILE)[0]</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..43d35e1131<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_whileloop.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..e514989661<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_loop_whileloop2.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..6a26465578<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_binary_trees.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_so_binary_trees.rb</a></div><div class='hunk'>@@ -0,0 +1,57 @@</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'>+def STDOUT.write_ *args</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 = 12 # 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='head'>diff --git a/benchmark/bm_so_concatenate.rb b/benchmark/bm_so_concatenate.rb<br/>new file mode 100644<br/>index 0000000000..56b9410632<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_concatenate.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..d8b461290c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_exception.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..3f759ba7ae<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_fasta.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..f8d26797aa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_lists.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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 100644<br/>index 0000000000..99cf6a91cc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_meteor_contest.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_so_meteor_contest.rb</a></div><div class='hunk'>@@ -0,0 +1,564 @@</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 boundries 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 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 accross 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 curent 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 muliple 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'>+          # follwing 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 acheived 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 noticable 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='add'>+</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..019b8b6382<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_nsieve_bits.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_so_nsieve_bits.rb</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+#!/usr/bin/ruby</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..c7d6fbfb4d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_pidigits.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..57f700b863<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_random.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..3f1b138bd1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_so_sieve.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_vm1_block.rb b/benchmark/bm_vm1_block.rb<br/>new file mode 100644<br/>index 0000000000..0a97883974<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_block.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_const.rb b/benchmark/bm_vm1_const.rb<br/>new file mode 100644<br/>index 0000000000..066916dc31<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_const.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..b1948f7621<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_ensure.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_ivar.rb b/benchmark/bm_vm1_ivar.rb<br/>new file mode 100644<br/>index 0000000000..3ba56427f4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_ivar.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..c8076c6ab6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_ivar_set.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..ccb773278f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_length.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_neq.rb b/benchmark/bm_vm1_neq.rb<br/>new file mode 100644<br/>index 0000000000..9254a0ca9b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_neq.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..ee9d0f3605<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_not.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..3af12bb0f3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_rescue.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..8e9bcb0129<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_simplereturn.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..611baf6b99<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm1_swap.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_vm2_array.rb b/benchmark/bm_vm2_array.rb<br/>new file mode 100644<br/>index 0000000000..7713ae9f25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_array.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_case.rb b/benchmark/bm_vm2_case.rb<br/>new file mode 100644<br/>index 0000000000..cd09788a85<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_case.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_defined_method.rb b/benchmark/bm_vm2_defined_method.rb<br/>new file mode 100644<br/>index 0000000000..06c0d01baa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_defined_method.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_eval.rb b/benchmark/bm_vm2_eval.rb<br/>new file mode 100644<br/>index 0000000000..e72b4661ac<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_eval.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_method.rb b/benchmark/bm_vm2_method.rb<br/>new file mode 100644<br/>index 0000000000..f92e39a73f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_method.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_mutex.rb b/benchmark/bm_vm2_mutex.rb<br/>new file mode 100644<br/>index 0000000000..01b1c478cb<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_mutex.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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 = 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_poly_method.rb b/benchmark/bm_vm2_poly_method.rb<br/>new file mode 100644<br/>index 0000000000..921457d817<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_poly_method.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..bf09837dd7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_poly_method_ov.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_proc.rb b/benchmark/bm_vm2_proc.rb<br/>new file mode 100644<br/>index 0000000000..3f51056bf9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_proc.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_regexp.rb b/benchmark/bm_vm2_regexp.rb<br/>new file mode 100644<br/>index 0000000000..428099e55a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_regexp.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..37c79fb1c3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_send.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_super.rb b/benchmark/bm_vm2_super.rb<br/>new file mode 100644<br/>index 0000000000..d4f0b647de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_super.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..775f4d37e6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_unif1.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..7e90df1822<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm2_zsuper.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_clearmethodcache.rb b/benchmark/bm_vm3_clearmethodcache.rb<br/>new file mode 100644<br/>index 0000000000..a25c372f06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_clearmethodcache.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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 100755<br/>index 0000000000..7db9829d44<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm3_gc.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_vm3_gc.rb</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+#! /usr/bin/ruby</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_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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_create_join.rb b/benchmark/bm_vm_thread_create_join.rb<br/>new file mode 100644<br/>index 0000000000..325a66d587<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_create_join.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..588506e87c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_mutex1.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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 = 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..d700b146d4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_mutex2.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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 = 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..f502b6ac84<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_mutex3.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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 = 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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..56b5b0a956<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_pass_flood.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_vm_thread_pass_flood.rb</a></div><div class='hunk'>@@ -0,0 +1,8 @@</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..272d231eba<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bm_vm_thread_pipe.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bm_vm_thread_pipe.rb</a></div><div class='hunk'>@@ -0,0 +1,17 @@</div><div class='add'>+# Mesure 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/bmx_temp.rb b/benchmark/bmx_temp.rb<br/>new file mode 100644<br/>index 0000000000..0b4b219ca2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/bmx_temp.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/bmx_temp.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;800000 # 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/driver.rb b/benchmark/driver.rb<br/>new file mode 100644<br/>index 0000000000..7dab292a15<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/driver.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/driver.rb</a></div><div class='hunk'>@@ -0,0 +1,270 @@</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'>+</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 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'>+        v = $1.strip</div><div class='add'>+        e = $2</div><div class='add'>+      else</div><div class='add'>+        v =  `#{e} -v`.chomp</div><div class='add'>+        v.sub!(/ patchlevel \d+/, '')</div><div class='add'>+      end</div><div class='add'>+      [e, v]</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'>+    @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'>+    @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{|(e, v), i|</div><div class='add'>+        message "target #{i}: #{v}"</div><div class='add'>+      }</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def average results</div><div class='add'>+    results.inject(:+) / results.length</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  def show_results</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 "Elapesed time: #{Time.now - @start_time} (sec)"</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'>+    difference = "\taverage difference" if @execs.length == 2</div><div class='add'>+    total_difference = 0</div><div class='add'>+</div><div class='add'>+    output "name\t#{@execs.map{|(e, v)| v}.join("\t")}#{difference}"</div><div class='add'>+    @results.each{|v, result|</div><div class='add'>+      rets = []</div><div class='add'>+      s = nil</div><div class='add'>+      result.each_with_index{|e, i|</div><div class='add'>+        r = e.min</div><div class='add'>+        case v</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'>+            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'>+            s = '*'</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+        rets &lt;&lt; sprintf("%.3f", r)</div><div class='add'>+      }</div><div class='add'>+</div><div class='add'>+      if difference</div><div class='add'>+        diff = average(result.last) - average(result.first)</div><div class='add'>+        total_difference += diff</div><div class='add'>+        rets &lt;&lt; sprintf("%.3f", diff)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      output "#{v}#{s}\t#{rets.join("\t")}"</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if difference and @verbose</div><div class='add'>+      output '-----------------------------------------------------------'</div><div class='add'>+      output "average total difference is #{total_difference}"</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'>+    vm1 = vm2 = wl1 = wl2 = false</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'>+      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'>+  def measure executable, file</div><div class='add'>+    cmd = "#{executable} #{file}"</div><div class='add'>+    m = Benchmark.measure{</div><div class='add'>+      `#{cmd}`</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if $? != 0</div><div class='add'>+      raise "\`#{cmd}\' exited with abnormal status (#{$?})"</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    m.real</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; ['ruby'],</div><div class='add'>+    :dir =&gt; './',</div><div class='add'>+    :repeat =&gt; 1,</div><div class='add'>+    :output =&gt; "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}",</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. (exec1; exec2; exec3, ...)"){|e|</div><div class='add'>+      opt[:execs] = e.split(/;/)</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('-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"){|o|</div><div class='add'>+      opt[:output] = o</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'>+    }</div><div class='add'>+    o.on('-v', '--verbose'){|v|</div><div class='add'>+      opt[:verbose] = v</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  parser.parse!(ARGV)</div><div class='add'>+  BenchmarkDriver.benchmark(opt)</div><div class='add'>+end</div><div class='add'>+</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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/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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..7e97b22b39<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/fact.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..d43cef61f3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/other-lang/loop.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..f28f4460a1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_so_k_nucleotide.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/prepare_so_k_nucleotide.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require File.join(File.dirname(__FILE__), '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..7f089109de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/benchmark/prepare_so_reverse_complement.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>benchmark/prepare_so_reverse_complement.rb</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+require File.join(File.dirname(__FILE__), '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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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/beos/ruby.def.in b/beos/ruby.def.in<br/>deleted file mode 100644<br/>index 04de159208..0000000000<br/>--- a/<a href='/ruby.git/tree/beos/ruby.def.in?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>beos/ruby.def.in</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,353 +0,0 @@</div><div class='del'>-ArgError</div><div class='del'>-Bug</div><div class='del'>-Error</div><div class='del'>-Error_Append</div><div class='del'>-Fail</div><div class='del'>-Fatal</div><div class='del'>-IndexError</div><div class='del'>-LoadError</div><div class='del'>-NameError</div><div class='del'>-Raise</div><div class='del'>-TypeError</div><div class='del'>-Warning</div><div class='del'>-any_to_s</div><div class='del'>-ary_assoc</div><div class='del'>-ary_concat</div><div class='del'>-ary_delete</div><div class='del'>-ary_delete_at</div><div class='del'>-ary_each</div><div class='del'>-ary_entry</div><div class='del'>-ary_freeze</div><div class='del'>-ary_includes</div><div class='del'>-ary_join</div><div class='del'>-ary_new</div><div class='del'>-ary_new2</div><div class='del'>-ary_new3</div><div class='del'>-ary_new4</div><div class='del'>-ary_plus</div><div class='del'>-ary_pop</div><div class='del'>-ary_push</div><div class='del'>-ary_rassoc</div><div class='del'>-ary_reverse</div><div class='del'>-ary_shift</div><div class='del'>-ary_sort</div><div class='del'>-ary_sort_bang</div><div class='del'>-ary_store</div><div class='del'>-ary_to_s</div><div class='del'>-ary_unshift</div><div class='del'>-assoc_new</div><div class='del'>-backref_get</div><div class='del'>-backref_set</div><div class='del'>-big2dbl</div><div class='del'>-big2str</div><div class='del'>-big_2comp</div><div class='del'>-big_and</div><div class='del'>-big_clone</div><div class='del'>-big_lshift</div><div class='del'>-big_minus</div><div class='del'>-big_mul</div><div class='del'>-big_norm</div><div class='del'>-big_or</div><div class='del'>-big_plus</div><div class='del'>-big_pow</div><div class='del'>-big_rand</div><div class='del'>-big_to_f</div><div class='del'>-big_to_i</div><div class='del'>-big_xor</div><div class='del'>-cArray</div><div class='del'>-cBignum</div><div class='del'>-cClass</div><div class='del'>-cData</div><div class='del'>-cFile</div><div class='del'>-cFixnum</div><div class='del'>-cFixnum</div><div class='del'>-cFloat</div><div class='del'>-cHash</div><div class='del'>-cIO</div><div class='del'>-cInteger</div><div class='del'>-cModule</div><div class='del'>-cNumeric</div><div class='del'>-cObject</div><div class='del'>-cProc</div><div class='del'>-cRegexp</div><div class='del'>-cString</div><div class='del'>-cStruct</div><div class='del'>-class_new</div><div class='del'>-class_new_instance</div><div class='del'>-data_object_alloc</div><div class='del'>-dbl2big</div><div class='del'>-dln_find_exe</div><div class='del'>-dln_find_file</div><div class='del'>-dln_load</div><div class='del'>-dyna_var_asgn</div><div class='del'>-dyna_var_defined</div><div class='del'>-dyna_var_ref</div><div class='del'>-eaccess</div><div class='del'>-enum_length</div><div class='del'>-eof_error</div><div class='del'>-exc_new</div><div class='del'>-exc_new2</div><div class='del'>-exc_new3</div><div class='del'>-f_autoload</div><div class='del'>-f_gets</div><div class='del'>-f_lambda</div><div class='del'>-f_load</div><div class='del'>-f_require</div><div class='del'>-file_open</div><div class='del'>-file_s_expand_path</div><div class='del'>-fix2str</div><div class='del'>-fix_to_s</div><div class='del'>-fix_upto</div><div class='del'>-flo_pow</div><div class='del'>-float_new</div><div class='del'>-gc_force_recycle</div><div class='del'>-gc_gc</div><div class='del'>-gc_mark</div><div class='del'>-gc_mark_frame</div><div class='del'>-gc_mark_global_tbl</div><div class='del'>-gc_mark_locations</div><div class='del'>-gc_mark_maybe</div><div class='del'>-gc_mark_threads</div><div class='del'>-gc_mark_trap_list</div><div class='del'>-gc_s_disable</div><div class='del'>-gc_s_enable</div><div class='del'>-hash_aref</div><div class='del'>-hash_aset</div><div class='del'>-hash_new</div><div class='del'>-id_attrset</div><div class='del'>-int2big</div><div class='del'>-int2inum</div><div class='del'>-io_binmode</div><div class='del'>-io_check_closed</div><div class='del'>-io_close</div><div class='del'>-io_fptr_finalize</div><div class='del'>-io_getc</div><div class='del'>-io_gets</div><div class='del'>-io_gets_method</div><div class='del'>-io_mode_flags</div><div class='del'>-io_readable</div><div class='del'>-io_reopen</div><div class='del'>-io_unbuffered</div><div class='del'>-io_ungetc</div><div class='del'>-io_writable</div><div class='del'>-io_write</div><div class='del'>-iterator_p</div><div class='del'>-lastline_get</div><div class='del'>-lastline_set</div><div class='del'>-local_var_append</div><div class='del'>-memclear</div><div class='del'>-mod_constants</div><div class='del'>-module_new</div><div class='del'>-new_idhash</div><div class='del'>-nodeline</div><div class='del'>-nodetype</div><div class='del'>-num2fix</div><div class='del'>-num2int</div><div class='del'>-num2long</div><div class='del'>-num_coerce_bin</div><div class='del'>-num_upto</div><div class='del'>-num_zerodiv</div><div class='del'>-obj_alloc</div><div class='del'>-obj_as_string</div><div class='del'>-obj_call_init</div><div class='del'>-obj_equal</div><div class='del'>-obj_is_instance_of</div><div class='del'>-obj_is_kind_of</div><div class='del'>-range_beg_end</div><div class='del'>-range_new</div><div class='del'>-rb_Array</div><div class='del'>-rb_Float</div><div class='del'>-rb_Integer</div><div class='del'>-rb_String</div><div class='del'>-rb_add_method</div><div class='del'>-rb_alias</div><div class='del'>-rb_alias_variable</div><div class='del'>-rb_apply</div><div class='del'>-rb_autoload</div><div class='del'>-rb_autoload_defined</div><div class='del'>-rb_backtrace</div><div class='del'>-rb_call_inits</div><div class='del'>-rb_check_safe_str</div><div class='del'>-rb_check_type</div><div class='del'>-rb_class2name</div><div class='del'>-rb_class_of</div><div class='del'>-rb_class_path</div><div class='del'>-rb_clear_cache</div><div class='del'>-rb_const_defined</div><div class='del'>-rb_const_defined_at</div><div class='del'>-rb_const_get</div><div class='del'>-rb_const_get_at</div><div class='del'>-rb_const_set</div><div class='del'>-rb_define_alias</div><div class='del'>-rb_define_attr</div><div class='del'>-rb_define_class</div><div class='del'>-rb_define_class_id</div><div class='del'>-rb_define_class_under</div><div class='del'>-rb_define_const</div><div class='del'>-rb_define_global_const</div><div class='del'>-rb_define_global_function</div><div class='del'>-rb_define_hooked_variable</div><div class='del'>-rb_define_method</div><div class='del'>-rb_define_method_id</div><div class='del'>-rb_define_module</div><div class='del'>-rb_define_module_function</div><div class='del'>-rb_define_module_id</div><div class='del'>-rb_define_module_under</div><div class='del'>-rb_define_private_method</div><div class='del'>-rb_define_readonly_variable</div><div class='del'>-rb_define_singleton_method</div><div class='del'>-rb_define_variable</div><div class='del'>-rb_define_virtual_variable</div><div class='del'>-rb_each</div><div class='del'>-rb_ensure</div><div class='del'>-rb_eql</div><div class='del'>-rb_equal</div><div class='del'>-rb_eval_cmd</div><div class='del'>-rb_eval_string</div><div class='del'>-rb_exit</div><div class='del'>-rb_extend_object</div><div class='del'>-rb_fatal</div><div class='del'>-rb_fdopen</div><div class='del'>-rb_fopen</div><div class='del'>-rb_frame_last_func</div><div class='del'>-rb_funcall</div><div class='del'>-rb_funcall2</div><div class='del'>-rb_get_kcode</div><div class='del'>-rb_global_entry</div><div class='del'>-rb_global_variable</div><div class='del'>-rb_gvar_defined</div><div class='del'>-rb_gvar_get</div><div class='del'>-rb_gvar_set</div><div class='del'>-rb_gvar_set2</div><div class='del'>-rb_hash</div><div class='del'>-rb_id2name</div><div class='del'>-rb_include_module</div><div class='del'>-rb_inspect</div><div class='del'>-rb_intern</div><div class='del'>-rb_interrupt</div><div class='del'>-rb_is_const_id</div><div class='del'>-rb_is_instance_id</div><div class='del'>-rb_iterate</div><div class='del'>-rb_iv_get</div><div class='del'>-rb_iv_set</div><div class='del'>-rb_ivar_defined</div><div class='del'>-rb_ivar_get</div><div class='del'>-rb_ivar_set</div><div class='del'>-rb_load_file</div><div class='del'>-rb_method_boundp</div><div class='del'>-rb_name_class</div><div class='del'>-rb_newobj</div><div class='del'>-rb_notimplement</div><div class='del'>-rb_path2class</div><div class='del'>-rb_proc_exec</div><div class='del'>-rb_provide</div><div class='del'>-rb_raise</div><div class='del'>-rb_rescue</div><div class='del'>-rb_respond_to</div><div class='del'>-rb_safe_level</div><div class='del'>-rb_scan_args</div><div class='del'>-rb_secure</div><div class='del'>-rb_set_class_path</div><div class='del'>-rb_set_kcode</div><div class='del'>-rb_set_safe_level</div><div class='del'>-rb_singleton_class</div><div class='del'>-rb_special_const_p</div><div class='del'>-rb_str_setter</div><div class='del'>-rb_sys_fail</div><div class='del'>-rb_syswait</div><div class='del'>-rb_test_false_or_nil</div><div class='del'>-rb_to_id</div><div class='del'>-rb_trap_eval</div><div class='del'>-rb_trap_exec</div><div class='del'>-rb_trap_exit</div><div class='del'>-rb_type</div><div class='del'>-rb_undef_method</div><div class='del'>-rb_yield</div><div class='del'>-rb_yield_0</div><div class='del'>-reg_free</div><div class='del'>-reg_last_match</div><div class='del'>-reg_match</div><div class='del'>-reg_match2</div><div class='del'>-reg_match_last</div><div class='del'>-reg_match_post</div><div class='del'>-reg_match_pre</div><div class='del'>-reg_new</div><div class='del'>-reg_nth_defined</div><div class='del'>-reg_nth_match</div><div class='del'>-reg_regcomp</div><div class='del'>-reg_regsub</div><div class='del'>-reg_search</div><div class='del'>-ruby_init</div><div class='del'>-ruby_options</div><div class='del'>-ruby_process_options</div><div class='del'>-ruby_prog_init</div><div class='del'>-ruby_run</div><div class='del'>-ruby_script</div><div class='del'>-ruby_set_argv</div><div class='del'>-scan_hex</div><div class='del'>-scan_oct</div><div class='del'>-show_copyright</div><div class='del'>-show_version</div><div class='del'>-singleton_class_clone</div><div class='del'>-singleton_class_new</div><div class='del'>-st_add_direct</div><div class='del'>-st_copy</div><div class='del'>-st_delete</div><div class='del'>-st_delete_safe</div><div class='del'>-st_find_or_add</div><div class='del'>-st_foreach</div><div class='del'>-st_free_table</div><div class='del'>-st_init_numtable</div><div class='del'>-st_init_strtable</div><div class='del'>-st_init_table</div><div class='del'>-st_init_table_with_size</div><div class='del'>-st_insert</div><div class='del'>-st_lookup</div><div class='del'>-str2inum</div><div class='del'>-str2cstr</div><div class='del'>-str_cat</div><div class='del'>-str_cicmp</div><div class='del'>-str_cmp</div><div class='del'>-str_dup</div><div class='del'>-str_freeze</div><div class='del'>-str_hash</div><div class='del'>-str_inspect</div><div class='del'>-str_modify</div><div class='del'>-str_new</div><div class='del'>-str_new2</div><div class='del'>-str_new3</div><div class='del'>-str_new4</div><div class='del'>-str_plus</div><div class='del'>-str_resize</div><div class='del'>-str_split</div><div class='del'>-str_substr</div><div class='del'>-str_taint</div><div class='del'>-str_tainted</div><div class='del'>-str_times</div><div class='del'>-str_upto</div><div class='del'>-struct_alloc</div><div class='del'>-struct_aref</div><div class='del'>-struct_aset</div><div class='del'>-struct_define</div><div class='del'>-struct_getmember</div><div class='del'>-struct_new</div><div class='del'>-thread_alone</div><div class='del'>-thread_create</div><div class='del'>-thread_fd_writable</div><div class='del'>-thread_interrupt</div><div class='del'>-thread_schedule</div><div class='del'>-thread_select</div><div class='del'>-thread_sleep</div><div class='del'>-thread_sleep_forever</div><div class='del'>-thread_wait_fd</div><div class='del'>-thread_wait_for</div><div class='del'>-time_new</div><div class='del'>-time_timeval</div><div class='del'>-uint2big</div><div class='del'>-uint2inum</div><div class='del'>-xcalloc</div><div class='del'>-xmalloc</div><div class='del'>-xrealloc</div><div class='del'>-eException</div><div class='del'>-eStandardError</div><div class='del'>-trap_immediate</div><div class='head'>diff --git a/bignum.c b/bignum.c<br/>index c1f0692d6d..04df7ba4ea 100644<br/>--- a/<a href='/ruby.git/tree/bignum.c?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>bignum.c</a><br/>+++ b/<a href='/ruby.git/tree/bignum.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bignum.c</a></div><div class='hunk'>@@ -1,137 +1,312 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </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'>-************************************************/</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+</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='add'>+#ifdef HAVE_IEEEFP_H</div><div class='add'>+#include &lt;ieeefp.h&gt;</div><div class='add'>+#endif</div><div class='add'>+#include &lt;assert.h&gt;</div><div class='ctx'> </div><div class='del'>-VALUE cBignum;</div><div class='del'>-typedef unsigned short USHORT;</div><div class='add'>+VALUE rb_cBignum;</div><div class='ctx'> </div><div class='del'>-#define BDIGITS(x) RBIGNUM(x)-&gt;digits</div><div class='del'>-#define BITSPERDIG (sizeof(short)*CHAR_BIT)</div><div class='del'>-#define BIGRAD (1L &lt;&lt; BITSPERDIG)</div><div class='del'>-#define DIGSPERINT ((unsigned int)(sizeof(long)/sizeof(short)))</div><div class='del'>-#define BIGUP(x) ((unsigned long)(x) &lt;&lt; BITSPERDIG)</div><div class='del'>-#define BIGDN(x) (((x)&lt;0) ? ~((~(x))&gt;&gt;BITSPERDIG) : (x)&gt;&gt;BITSPERDIG)</div><div class='del'>-#define BIGLO(x) ((x) &amp; (BIGRAD-1))</div><div class='add'>+static VALUE big_three = Qnil;</div><div class='add'>+</div><div class='add'>+#if defined __MINGW32__</div><div class='add'>+#define USHORT _USHORT</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define BDIGITS(x) (RBIGNUM_DIGITS(x))</div><div class='add'>+#define BITSPERDIG (SIZEOF_BDIGITS*CHAR_BIT)</div><div class='add'>+#define BIGRAD ((BDIGIT_DBL)1 &lt;&lt; BITSPERDIG)</div><div class='add'>+#define BIGRAD_HALF ((BDIGIT)(BIGRAD &gt;&gt; 1))</div><div class='add'>+#define DIGSPERLONG (SIZEOF_LONG/SIZEOF_BDIGITS)</div><div class='add'>+#if HAVE_LONG_LONG</div><div class='add'>+# define DIGSPERLL (SIZEOF_LONG_LONG/SIZEOF_BDIGITS)</div><div class='add'>+#endif</div><div class='add'>+#define BIGUP(x) ((BDIGIT_DBL)(x) &lt;&lt; BITSPERDIG)</div><div class='add'>+#define BIGDN(x) RSHIFT((x),BITSPERDIG)</div><div class='add'>+#define BIGLO(x) ((BDIGIT)((x) &amp; (BIGRAD-1)))</div><div class='add'>+#define BDIGMAX ((BDIGIT)-1)</div><div class='add'>+</div><div class='add'>+#define BIGZEROP(x) (RBIGNUM_LEN(x) == 0 || \</div><div class='add'>+		     (BDIGITS(x)[0] == 0 &amp;&amp; \</div><div class='add'>+		      (RBIGNUM_LEN(x) == 1 || bigzero_p(x))))</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", RBIGNUM_SIGN(x) ? '+' : '-');</div><div class='add'>+    for (i = RBIGNUM_LEN(x); i--; ) {</div><div class='add'>+	printf("_%08"PRIxBDIGIT, BDIGITS(x)[i]);</div><div class='add'>+    }</div><div class='add'>+    printf(", len=%lu", RBIGNUM_LEN(x));</div><div class='add'>+    puts("");</div><div class='add'>+}</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-bignew_1(klass, len, sign)</div><div class='del'>-    VALUE klass;</div><div class='del'>-    unsigned int len;</div><div class='del'>-    char sign;</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'>+    long i;</div><div class='add'>+    BDIGIT *ds = BDIGITS(x);</div><div class='add'>+</div><div class='add'>+    for (i = RBIGNUM_LEN(x) - 1; 0 &lt;= i; i--) {</div><div class='add'>+	if (ds[i]) return 0;</div><div class='add'>+    }</div><div class='add'>+    return 1;</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 (TYPE(val) == T_BIGNUM) {</div><div class='add'>+	if (BIGZEROP(val)) return 0;</div><div class='add'>+	if (RBIGNUM_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 RBIGNUM_SET_LEN(b,l) \</div><div class='add'>+    ((RBASIC(b)-&gt;flags &amp; RBIGNUM_EMBED_FLAG) ? \</div><div class='add'>+     (void)(RBASIC(b)-&gt;flags = \</div><div class='add'>+	    (RBASIC(b)-&gt;flags &amp; ~RBIGNUM_EMBED_LEN_MASK) | \</div><div class='add'>+	    ((l) &lt;&lt; RBIGNUM_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, long len)</div><div class='add'>+{</div><div class='add'>+    BDIGIT *ds;</div><div class='add'>+    if (RBASIC(big)-&gt;flags &amp; RBIGNUM_EMBED_FLAG) {</div><div class='add'>+	if (RBIGNUM_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, RBIGNUM_EMBED_LEN_MAX);</div><div class='add'>+	    RBIGNUM(big)-&gt;as.heap.len = RBIGNUM_LEN(big);</div><div class='add'>+	    RBIGNUM(big)-&gt;as.heap.digits = ds;</div><div class='add'>+	    RBASIC(big)-&gt;flags &amp;= ~RBIGNUM_EMBED_FLAG;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (len &lt;= RBIGNUM_EMBED_LEN_MAX) {</div><div class='add'>+	    ds = RBIGNUM(big)-&gt;as.heap.digits;</div><div class='add'>+	    RBASIC(big)-&gt;flags |= RBIGNUM_EMBED_FLAG;</div><div class='add'>+	    RBIGNUM_SET_LEN(big, len);</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 (RBIGNUM_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, long len)</div><div class='add'>+{</div><div class='add'>+    rb_big_realloc(big, len);</div><div class='add'>+    RBIGNUM_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, long len, int sign)</div><div class='ctx'> {</div><div class='ctx'>     NEWOBJ(big, struct RBignum);</div><div class='ctx'>     OBJSETUP(big, klass, T_BIGNUM);</div><div class='del'>-    big-&gt;sign = sign;</div><div class='del'>-    big-&gt;len = len;</div><div class='del'>-    BDIGITS(big) = ALLOC_N(USHORT, len);</div><div class='add'>+    RBIGNUM_SET_SIGN(big, sign?1:0);</div><div class='add'>+    if (len &lt;= RBIGNUM_EMBED_LEN_MAX) {</div><div class='add'>+	RBASIC(big)-&gt;flags |= RBIGNUM_EMBED_FLAG;</div><div class='add'>+	RBIGNUM_SET_LEN(big, len);</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='ctx'> </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(cBignum,len,sign)</div><div class='add'>+#define bignew(len,sign) bignew_1(rb_cBignum,(len),(sign))</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-big_clone(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_new(long len, int sign)</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'>+    return bignew(len, sign != 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    MEMCPY(BDIGITS(z), BDIGITS(x), USHORT, RBIGNUM(x)-&gt;len);</div><div class='add'>+VALUE</div><div class='add'>+rb_big_clone(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long len = RBIGNUM_LEN(x);</div><div class='add'>+    VALUE z = bignew_1(CLASS_OF(x), len, RBIGNUM_SIGN(x));</div><div class='add'>+</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='del'>-void</div><div class='del'>-big_2comp(x)			/* get 2's complement */</div><div class='del'>-    VALUE x;</div><div class='add'>+/* modify a bignum by 2's complement */</div><div class='add'>+static void</div><div class='add'>+get2comp(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    unsigned int i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    USHORT *ds = BDIGITS(x);</div><div class='del'>-    long num;</div><div class='add'>+    long i = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *ds = BDIGITS(x);</div><div class='add'>+    BDIGIT_DBL num;</div><div class='ctx'> </div><div class='add'>+    if (!i) return;</div><div class='ctx'>     while (i--) ds[i] = ~ds[i];</div><div class='ctx'>     i = 0; num = 1;</div><div class='ctx'>     do {</div><div class='ctx'> 	num += ds[i];</div><div class='ctx'> 	ds[i++] = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='del'>-    } while (i &lt; RBIGNUM(x)-&gt;len);</div><div class='del'>-    if (ds[0] == 1 || ds[0] == 0) {</div><div class='del'>-	for (i=1;i&lt;RBIGNUM(x)-&gt;len;i++) {</div><div class='del'>-	    if (ds[i] != 0) return;</div><div class='del'>-	}</div><div class='del'>-	REALLOC_N(BDIGITS(x), USHORT, RBIGNUM(x)-&gt;len++);</div><div class='add'>+    } while (i &lt; RBIGNUM_LEN(x));</div><div class='add'>+    if (num != 0) {</div><div class='add'>+	rb_big_resize(x, RBIGNUM_LEN(x)+1);</div><div class='ctx'> 	ds = BDIGITS(x);</div><div class='del'>-	ds[RBIGNUM(x)-&gt;len-1] = 1;</div><div class='add'>+	ds[RBIGNUM_LEN(x)-1] = 1;</div><div class='ctx'>     }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-bignorm(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+void</div><div class='add'>+rb_big_2comp(VALUE x)			/* get 2's complement */</div><div class='ctx'> {</div><div class='del'>-    unsigned int len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    USHORT *ds = BDIGITS(x);</div><div class='add'>+    get2comp(x);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    while (len-- &amp;&amp; !ds[len]) ;</div><div class='del'>-    RBIGNUM(x)-&gt;len = ++len;</div><div class='add'>+static inline VALUE</div><div class='add'>+bigtrunc(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long len = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *ds = BDIGITS(x);</div><div class='ctx'> </div><div class='del'>-    if (len*sizeof(USHORT) &lt;= sizeof(VALUE)) {</div><div class='add'>+    if (len == 0) return x;</div><div class='add'>+    while (--len &amp;&amp; !ds[len]);</div><div class='add'>+    if (RBIGNUM_LEN(x) &gt; len+1) {</div><div class='add'>+	rb_big_resize(x, len+1);</div><div class='add'>+    }</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+bigfixize(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long len = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *ds = BDIGITS(x);</div><div class='add'>+</div><div class='add'>+    if (len == 0) return INT2FIX(0);</div><div class='add'>+    if ((size_t)(len*SIZEOF_BDIGITS) &lt;= sizeof(long)) {</div><div class='ctx'> 	long num = 0;</div><div class='add'>+#if 2*SIZEOF_BDIGITS &gt; SIZEOF_LONG</div><div class='add'>+	num = (long)ds[0];</div><div class='add'>+#else</div><div class='ctx'> 	while (len--) {</div><div class='del'>-	    num = BIGUP(num) + ds[len];</div><div class='add'>+	    num = (long)(BIGUP(num) + ds[len]);</div><div class='ctx'> 	}</div><div class='add'>+#endif</div><div class='ctx'> 	if (num &gt;= 0) {</div><div class='del'>-	    if (RBIGNUM(x)-&gt;sign) {</div><div class='del'>-		if (POSFIXABLE(num)) return INT2FIX(num);</div><div class='add'>+	    if (RBIGNUM_SIGN(x)) {</div><div class='add'>+		if (POSFIXABLE(num)) return LONG2FIX(num);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (NEGFIXABLE(-num)) return LONG2FIX(-num);</div><div class='ctx'> 	    }</div><div class='del'>-	    else if (NEGFIXABLE(-num)) return INT2FIX(-num);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE</div><div class='add'>+bignorm(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (!FIXNUM_P(x) &amp;&amp; TYPE(x) == T_BIGNUM) {</div><div class='add'>+	x = bigfixize(bigtrunc(x));</div><div class='add'>+    }</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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='del'>-    return bignorm(RBIGNUM(x));</div><div class='add'>+    return bignorm(x);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-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'>-    unsigned int i = 0;</div><div class='del'>-    USHORT *digits;</div><div class='add'>+    BDIGIT_DBL num = n;</div><div class='add'>+    long i = 0;</div><div class='add'>+    BDIGIT *digits;</div><div class='ctx'>     VALUE big;</div><div class='ctx'> </div><div class='del'>-    i = 0;</div><div class='del'>-    big = bignew(DIGSPERINT, 1);</div><div class='add'>+    big = bignew(DIGSPERLONG, 1);</div><div class='ctx'>     digits = BDIGITS(big);</div><div class='del'>-    while (i &lt; DIGSPERINT) {</div><div class='del'>-	digits[i++] = BIGLO(n);</div><div class='del'>-	n = BIGDN(n);</div><div class='add'>+    while (i &lt; DIGSPERLONG) {</div><div class='add'>+	digits[i++] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    i = DIGSPERINT;</div><div class='del'>-    while (i-- &amp;&amp; !digits[i]) ;</div><div class='del'>-    RBIGNUM(big)-&gt;len = i+1;</div><div class='add'>+    i = DIGSPERLONG;</div><div class='add'>+    while (--i &amp;&amp; !digits[i]) ;</div><div class='add'>+    RBIGNUM_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'>-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='ctx'>     VALUE big;</div><div class='hunk'>@@ -140,122 +315,429 @@ int2big(n)</div><div class='ctx'> 	n = -n;</div><div class='ctx'> 	neg = 1;</div><div class='ctx'>     }</div><div class='del'>-    big = uint2big(n);</div><div class='add'>+    big = rb_uint2big(n);</div><div class='ctx'>     if (neg) {</div><div class='del'>-	RBIGNUM(big)-&gt;sign = 0;</div><div class='add'>+	RBIGNUM_SET_SIGN(big, 0);</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'>-uint2inum(n)</div><div class='del'>-    unsigned long n;</div><div class='add'>+rb_uint2inum(VALUE n)</div><div class='ctx'> {</div><div class='del'>-    if (POSFIXABLE(n)) return INT2FIX(n);</div><div class='del'>-    return uint2big(n);</div><div class='add'>+    if (POSFIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+    return rb_uint2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-int2inum(n)</div><div class='del'>-    long n;</div><div class='add'>+rb_int2inum(SIGNED_VALUE n)</div><div class='ctx'> {</div><div class='del'>-    if (FIXABLE(n)) return INT2FIX(n);</div><div class='del'>-    return int2big(n);</div><div class='add'>+    if (FIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+    return rb_int2big(n);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+#if SIZEOF_LONG % SIZEOF_BDIGITS != 0</div><div class='add'>+# error unexpected SIZEOF_LONG : SIZEOF_BDIGITS ratio</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * buf is an array of long integers.</div><div class='add'>+ * buf is ordered from least significant word to most significant word.</div><div class='add'>+ * buf[0] is the least significant word and</div><div class='add'>+ * buf[num_longs-1] is the most significant word.</div><div class='add'>+ * This means words in buf is little endian.</div><div class='add'>+ * However each word in buf is native endian.</div><div class='add'>+ * (buf[i]&amp;1) is the least significant bit and</div><div class='add'>+ * (buf[i]&amp;(1&lt;&lt;(SIZEOF_LONG*CHAR_BIT-1))) is the most significant bit</div><div class='add'>+ * for each 0 &lt;= i &lt; num_longs.</div><div class='add'>+ * So buf is little endian at whole on a little endian machine.</div><div class='add'>+ * But buf is mixed endian on a big endian machine.</div><div class='add'>+ */</div><div class='add'>+void</div><div class='add'>+rb_big_pack(VALUE val, unsigned long *buf, long num_longs)</div><div class='add'>+{</div><div class='add'>+    val = rb_to_int(val);</div><div class='add'>+    if (num_longs == 0)</div><div class='add'>+        return;</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+        long i;</div><div class='add'>+        long tmp = FIX2LONG(val);</div><div class='add'>+        buf[0] = (unsigned long)tmp;</div><div class='add'>+        tmp = tmp &lt; 0 ? ~0L : 0;</div><div class='add'>+        for (i = 1; i &lt; num_longs; i++)</div><div class='add'>+            buf[i] = (unsigned long)tmp;</div><div class='add'>+        return;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        long len = RBIGNUM_LEN(val);</div><div class='add'>+        BDIGIT *ds = BDIGITS(val), *dend = ds + len;</div><div class='add'>+        long i, j;</div><div class='add'>+        for (i = 0; i &lt; num_longs &amp;&amp; ds &lt; dend; i++) {</div><div class='add'>+            unsigned long l = 0;</div><div class='add'>+            for (j = 0; j &lt; DIGSPERLONG &amp;&amp; ds &lt; dend; j++, ds++) {</div><div class='add'>+                l |= ((unsigned long)*ds &lt;&lt; (j * BITSPERDIG));</div><div class='add'>+            }</div><div class='add'>+            buf[i] = l;</div><div class='add'>+        }</div><div class='add'>+        for (; i &lt; num_longs; i++)</div><div class='add'>+            buf[i] = 0;</div><div class='add'>+        if (RBIGNUM_NEGATIVE_P(val)) {</div><div class='add'>+            for (i = 0; i &lt; num_longs; i++) {</div><div class='add'>+                buf[i] = ~buf[i];</div><div class='add'>+            }</div><div class='add'>+            for (i = 0; i &lt; num_longs; i++) {</div><div class='add'>+                buf[i]++;</div><div class='add'>+                if (buf[i] != 0)</div><div class='add'>+                    return;</div><div class='add'>+            }</div><div class='add'>+        }</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* See rb_big_pack comment for endianness of buf. */</div><div class='ctx'> VALUE</div><div class='del'>-str2inum(str, base)</div><div class='del'>-    char *str;</div><div class='del'>-    int base;</div><div class='add'>+rb_big_unpack(unsigned long *buf, long num_longs)</div><div class='ctx'> {</div><div class='del'>-    char sign = 1, c;</div><div class='del'>-    unsigned long num;</div><div class='del'>-    unsigned int len, blen = 1, i;</div><div class='add'>+    while (2 &lt;= num_longs) {</div><div class='add'>+        if (buf[num_longs-1] == 0 &amp;&amp; (long)buf[num_longs-2] &gt;= 0)</div><div class='add'>+            num_longs--;</div><div class='add'>+        else if (buf[num_longs-1] == ~0UL &amp;&amp; (long)buf[num_longs-2] &lt; 0)</div><div class='add'>+            num_longs--;</div><div class='add'>+        else</div><div class='add'>+            break;</div><div class='add'>+    }</div><div class='add'>+    if (num_longs == 0)</div><div class='add'>+        return INT2FIX(0);</div><div class='add'>+    else if (num_longs == 1)</div><div class='add'>+        return LONG2NUM((long)buf[0]);</div><div class='add'>+    else {</div><div class='add'>+        VALUE big;</div><div class='add'>+        BDIGIT *ds;</div><div class='add'>+        long len = num_longs * DIGSPERLONG;</div><div class='add'>+        long i;</div><div class='add'>+        big = bignew(len, 1);</div><div class='add'>+        ds = BDIGITS(big);</div><div class='add'>+        for (i = 0; i &lt; num_longs; i++) {</div><div class='add'>+            unsigned long d = buf[i];</div><div class='add'>+#if SIZEOF_LONG == SIZEOF_BDIGITS</div><div class='add'>+            *ds++ = d;</div><div class='add'>+#else</div><div class='add'>+            int j;</div><div class='add'>+            for (j = 0; j &lt; DIGSPERLONG; j++) {</div><div class='add'>+                *ds++ = BIGLO(d);</div><div class='add'>+                d = BIGDN(d);</div><div class='add'>+            }</div><div class='add'>+#endif</div><div class='add'>+        }</div><div class='add'>+        if ((long)buf[num_longs-1] &lt; 0) {</div><div class='add'>+            get2comp(big);</div><div class='add'>+            RBIGNUM_SET_SIGN(big, 0);</div><div class='add'>+        }</div><div class='add'>+        return bignorm(big);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define QUAD_SIZE 8</div><div class='add'>+</div><div class='add'>+#if SIZEOF_LONG_LONG == QUAD_SIZE &amp;&amp; SIZEOF_BDIGITS*2 == SIZEOF_LONG_LONG</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+rb_quad_pack(char *buf, VALUE val)</div><div class='add'>+{</div><div class='add'>+    LONG_LONG q;</div><div class='add'>+</div><div class='add'>+    val = rb_to_int(val);</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+	q = FIX2LONG(val);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	long len = RBIGNUM_LEN(val);</div><div class='add'>+	BDIGIT *ds;</div><div class='add'>+</div><div class='add'>+	if (len &gt; SIZEOF_LONG_LONG/SIZEOF_BDIGITS) {</div><div class='add'>+	    len = SIZEOF_LONG_LONG/SIZEOF_BDIGITS;</div><div class='add'>+	}</div><div class='add'>+	ds = BDIGITS(val);</div><div class='add'>+	q = 0;</div><div class='add'>+	while (len--) {</div><div class='add'>+	    q = BIGUP(q);</div><div class='add'>+	    q += ds[len];</div><div class='add'>+	}</div><div class='add'>+	if (!RBIGNUM_SIGN(val)) q = -q;</div><div class='add'>+    }</div><div class='add'>+    memcpy(buf, (char*)&amp;q, SIZEOF_LONG_LONG);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_quad_unpack(const char *buf, int sign)</div><div class='add'>+{</div><div class='add'>+    unsigned LONG_LONG q;</div><div class='add'>+    long neg = 0;</div><div class='add'>+    long i;</div><div class='add'>+    BDIGIT *digits;</div><div class='add'>+    VALUE big;</div><div class='add'>+</div><div class='add'>+    memcpy(&amp;q, buf, SIZEOF_LONG_LONG);</div><div class='add'>+    if (sign) {</div><div class='add'>+	if (FIXABLE((LONG_LONG)q)) return LONG2FIX((LONG_LONG)q);</div><div class='add'>+	if ((LONG_LONG)q &lt; 0) {</div><div class='add'>+	    q = -(LONG_LONG)q;</div><div class='add'>+	    neg = 1;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (POSFIXABLE(q)) return LONG2FIX(q);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    i = 0;</div><div class='add'>+    big = bignew(DIGSPERLL, 1);</div><div class='add'>+    digits = BDIGITS(big);</div><div class='add'>+    while (i &lt; DIGSPERLL) {</div><div class='add'>+	digits[i++] = BIGLO(q);</div><div class='add'>+	q = BIGDN(q);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    i = DIGSPERLL;</div><div class='add'>+    while (i-- &amp;&amp; !digits[i]) ;</div><div class='add'>+    RBIGNUM_SET_LEN(big, i+1);</div><div class='add'>+</div><div class='add'>+    if (neg) {</div><div class='add'>+	RBIGNUM_SET_SIGN(big, 0);</div><div class='add'>+    }</div><div class='add'>+    return bignorm(big);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#else</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+quad_buf_complement(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'>+</div><div class='add'>+void</div><div class='add'>+rb_quad_pack(char *buf, VALUE val)</div><div class='add'>+{</div><div class='add'>+    long len;</div><div class='add'>+</div><div class='add'>+    memset(buf, 0, QUAD_SIZE);</div><div class='add'>+    val = rb_to_int(val);</div><div class='add'>+    if (FIXNUM_P(val)) {</div><div class='add'>+	val = rb_int2big(FIX2LONG(val));</div><div class='add'>+    }</div><div class='add'>+    len = RBIGNUM_LEN(val) * SIZEOF_BDIGITS;</div><div class='add'>+    if (len &gt; QUAD_SIZE) {</div><div class='add'>+        len = QUAD_SIZE;</div><div class='add'>+    }</div><div class='add'>+    memcpy(buf, (char*)BDIGITS(val), len);</div><div class='add'>+    if (RBIGNUM_NEGATIVE_P(val)) {</div><div class='add'>+        quad_buf_complement(buf, QUAD_SIZE);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define BNEG(b) (RSHIFT(((BDIGIT*)(b))[QUAD_SIZE/SIZEOF_BDIGITS-1],BITSPERDIG-1) != 0)</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_quad_unpack(const char *buf, int sign)</div><div class='add'>+{</div><div class='add'>+    VALUE big = bignew(QUAD_SIZE/SIZEOF_BDIGITS, 1);</div><div class='add'>+</div><div class='add'>+    memcpy((char*)BDIGITS(big), buf, QUAD_SIZE);</div><div class='add'>+    if (sign &amp;&amp; BNEG(buf)) {</div><div class='add'>+	char *tmp = (char*)BDIGITS(big);</div><div class='add'>+</div><div class='add'>+	RBIGNUM_SET_SIGN(big, 0);</div><div class='add'>+        quad_buf_complement(tmp, QUAD_SIZE);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return bignorm(big);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif</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'>+    const char *s = str;</div><div class='add'>+    char *end;</div><div class='add'>+    char sign = 1, nondigit = 0;</div><div class='add'>+    int c;</div><div class='add'>+    BDIGIT_DBL num;</div><div class='add'>+    long len, blen = 1;</div><div class='add'>+    long i;</div><div class='ctx'>     VALUE z;</div><div class='del'>-    USHORT *zds;</div><div class='add'>+    BDIGIT *zds;</div><div class='ctx'> </div><div class='add'>+#undef ISDIGIT</div><div class='add'>+#define ISDIGIT(c) ('0' &lt;= (c) &amp;&amp; (c) &lt;= '9')</div><div class='add'>+#define conv_digit(c) \</div><div class='add'>+    (!ISASCII(c) ? -1 : \</div><div class='add'>+     ISDIGIT(c) ? ((c) - '0') : \</div><div class='add'>+     ISLOWER(c) ? ((c) - 'a' + 10) : \</div><div class='add'>+     ISUPPER(c) ? ((c) - 'A' + 10) : \</div><div class='add'>+     -1)</div><div class='add'>+</div><div class='add'>+    if (!str) {</div><div class='add'>+	if (badcheck) goto bad;</div><div class='add'>+	return INT2FIX(0);</div><div class='add'>+    }</div><div class='ctx'>     while (ISSPACE(*str)) str++;</div><div class='ctx'> </div><div class='del'>-    if (*str == '+') {</div><div class='add'>+    if (str[0] == '+') {</div><div class='ctx'> 	str++;</div><div class='ctx'>     }</div><div class='del'>-    else if (*str == '-') {</div><div class='add'>+    else if (str[0] == '-') {</div><div class='ctx'> 	str++;</div><div class='ctx'> 	sign = 0;</div><div class='ctx'>     }</div><div class='del'>-    if (base == 0) {</div><div class='del'>-	if (*str == '0') {</div><div class='del'>-	    str++;</div><div class='del'>-	    if (*str == 'x' || *str == 'X') {</div><div class='del'>-		str++;</div><div class='add'>+    if (str[0] == '+' || str[0] == '-') {</div><div class='add'>+	if (badcheck) goto bad;</div><div class='add'>+	return INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+    if (base &lt;= 0) {</div><div class='add'>+	if (str[0] == '0') {</div><div class='add'>+	    switch (str[1]) {</div><div class='add'>+	      case 'x': case 'X':</div><div class='ctx'> 		base = 16;</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='add'>+		break;</div><div class='add'>+	      case 'b': case 'B':</div><div class='add'>+		base = 2;</div><div class='add'>+		break;</div><div class='add'>+	      case 'o': case 'O':</div><div class='add'>+		base = 8;</div><div class='add'>+		break;</div><div class='add'>+	      case 'd': case 'D':</div><div class='add'>+		base = 10;</div><div class='add'>+		break;</div><div class='add'>+	      default:</div><div class='ctx'> 		base = 8;</div><div class='ctx'> 	    }</div><div class='del'>-	    if (*str == '\0') return INT2FIX(0);</div><div class='add'>+	}</div><div class='add'>+	else if (base &lt; -1) {</div><div class='add'>+	    base = -base;</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='ctx'> 	    base = 10;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    if (base == 8) {</div><div class='del'>-	while (str[0] == '0') str++;</div><div class='del'>-	len = 3*strlen(str)*sizeof(char);</div><div class='del'>-    }</div><div class='del'>-    else {			/* base == 10 or 16 */</div><div class='del'>-	if (base == 16 &amp;&amp; str[0] == '0' &amp;&amp; (str[1] == 'x'||str[1] == 'X')) {</div><div class='add'>+    switch (base) {</div><div class='add'>+      case 2:</div><div class='add'>+	len = 1;</div><div class='add'>+	if (str[0] == '0' &amp;&amp; (str[1] == 'b'||str[1] == 'B')) {</div><div class='ctx'> 	    str += 2;</div><div class='ctx'> 	}</div><div class='del'>-	while (str[0] == '0') str++;</div><div class='del'>-	len = 4*strlen(str)*sizeof(char);</div><div class='add'>+	break;</div><div class='add'>+      case 3:</div><div class='add'>+	len = 2;</div><div class='add'>+	break;</div><div class='add'>+      case 8:</div><div class='add'>+	if (str[0] == '0' &amp;&amp; (str[1] == 'o'||str[1] == 'O')) {</div><div class='add'>+	    str += 2;</div><div class='add'>+	}</div><div class='add'>+      case 4: case 5: case 6: case 7:</div><div class='add'>+	len = 3;</div><div class='add'>+	break;</div><div class='add'>+      case 10:</div><div class='add'>+	if (str[0] == '0' &amp;&amp; (str[1] == 'd'||str[1] == 'D')) {</div><div class='add'>+	    str += 2;</div><div class='add'>+	}</div><div class='add'>+      case 9: case 11: case 12: case 13: case 14: case 15:</div><div class='add'>+	len = 4;</div><div class='add'>+	break;</div><div class='add'>+      case 16:</div><div class='add'>+	len = 4;</div><div class='add'>+	if (str[0] == '0' &amp;&amp; (str[1] == 'x'||str[1] == 'X')) {</div><div class='add'>+	    str += 2;</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      default:</div><div class='add'>+	if (base &lt; 2 || 36 &lt; base) {</div><div class='add'>+	    rb_raise(rb_eArgError, "invalid radix %d", base);</div><div class='add'>+	}</div><div class='add'>+	if (base &lt;= 32) {</div><div class='add'>+	    len = 5;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    len = 6;</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+    if (*str == '0') {		/* squeeze preceding 0s */</div><div class='add'>+	int us = 0;</div><div class='add'>+	while ((c = *++str) == '0' || c == '_') {</div><div class='add'>+	    if (c == '_') {</div><div class='add'>+		if (++us &gt;= 2)</div><div class='add'>+		    break;</div><div class='add'>+	    } else</div><div class='add'>+		us = 0;</div><div class='add'>+	}</div><div class='add'>+	if (!(c = *str) || ISSPACE(c)) --str;</div><div class='ctx'>     }</div><div class='add'>+    c = *str;</div><div class='add'>+    c = conv_digit(c);</div><div class='add'>+    if (c &lt; 0 || c &gt;= base) {</div><div class='add'>+	if (badcheck) goto bad;</div><div class='add'>+	return INT2FIX(0);</div><div class='add'>+    }</div><div class='add'>+    len *= strlen(str)*sizeof(char);</div><div class='add'>+</div><div class='add'>+    if ((size_t)len &lt;= (sizeof(long)*CHAR_BIT)) {</div><div class='add'>+	unsigned long val = STRTOUL(str, &amp;end, base);</div><div class='ctx'> </div><div class='del'>-    if (len &lt;= (sizeof(VALUE)*CHAR_BIT)) {</div><div class='del'>-	unsigned int val = strtoul((char*)str, 0, base);</div><div class='add'>+	if (str &lt; end &amp;&amp; *end == '_') goto bigparse;</div><div class='add'>+	if (badcheck) {</div><div class='add'>+	    if (end == str) goto bad; /* no number */</div><div class='add'>+	    while (*end &amp;&amp; ISSPACE(*end)) end++;</div><div class='add'>+	    if (*end) goto bad;	      /* trailing garbage */</div><div class='add'>+	}</div><div class='ctx'> </div><div class='ctx'> 	if (POSFIXABLE(val)) {</div><div class='del'>-	    if (sign) return INT2FIX(val);</div><div class='add'>+	    if (sign) return LONG2FIX(val);</div><div class='ctx'> 	    else {</div><div class='ctx'> 		long result = -(long)val;</div><div class='del'>-		return INT2FIX(result);</div><div class='add'>+		return LONG2FIX(result);</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    VALUE big = uint2big(val);</div><div class='del'>-	    RBIGNUM(big)-&gt;sign = sign;</div><div class='del'>-	    return big;</div><div class='add'>+	    VALUE big = rb_uint2big(val);</div><div class='add'>+	    RBIGNUM_SET_SIGN(big, sign);</div><div class='add'>+	    return bignorm(big);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+  bigparse:</div><div class='ctx'>     len = (len/BITSPERDIG)+1;</div><div class='add'>+    if (badcheck &amp;&amp; *str == '_') goto bad;</div><div class='ctx'> </div><div class='ctx'>     z = bignew(len, sign);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'>     for (i=len;i--;) zds[i]=0;</div><div class='del'>-    while (c = *str++) {</div><div class='del'>-	switch (c) {</div><div class='del'>-	  case '0': case '1': case '2': case '3': case '4':</div><div class='del'>-	  case '5': case '6': case '7': case '8': case '9':</div><div class='del'>-	    c = c - '0';</div><div class='del'>-	    break;</div><div class='del'>-	  case 'a': case 'b': case 'c':</div><div class='del'>-	  case 'd': case 'e': case 'f':</div><div class='del'>-	    c = c - 'a' + 10;</div><div class='del'>-	    break;</div><div class='del'>-	  case 'A': case 'B': case 'C':</div><div class='del'>-	  case 'D': case 'E': case 'F':</div><div class='del'>-	    c = c - 'A' + 10;</div><div class='del'>-	    break;</div><div class='del'>-	  default:</div><div class='del'>-	    c = base;</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 = c;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	else if ((c = conv_digit(c)) &lt; 0) {</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='ctx'> 	if (c &gt;= base) break;</div><div class='add'>+	nondigit = 0;</div><div class='ctx'> 	i = 0;</div><div class='ctx'> 	num = c;</div><div class='ctx'> 	for (;;) {</div><div class='ctx'> 	    while (i&lt;blen) {</div><div class='del'>-		num += zds[i]*base;</div><div class='add'>+		num += (BDIGIT_DBL)zds[i]*base;</div><div class='ctx'> 		zds[i++] = BIGLO(num);</div><div class='ctx'> 		num = BIGDN(num);</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -266,136 +748,554 @@ str2inum(str, base)</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+    if (badcheck) {</div><div class='add'>+	str--;</div><div class='add'>+	if (s+1 &lt; str &amp;&amp; str[-1] == '_') goto bad;</div><div class='add'>+	while (*str &amp;&amp; ISSPACE(*str)) str++;</div><div class='add'>+	if (*str) {</div><div class='add'>+	  bad:</div><div class='add'>+	    rb_invalid_str(s, "Integer()");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static char hexmap[] = "0123456789abcdef";</div><div class='ctx'> VALUE</div><div class='del'>-big2str(x, base)</div><div class='del'>-    VALUE x;</div><div class='del'>-    int base;</div><div class='add'>+rb_str_to_inum(VALUE str, int base, int badcheck)</div><div class='ctx'> {</div><div class='del'>-    VALUE t;</div><div class='del'>-    USHORT *ds;</div><div class='del'>-    unsigned int i, j, hbase;</div><div class='del'>-    VALUE ss;</div><div class='del'>-    char *s, c;</div><div class='add'>+    char *s;</div><div class='add'>+    long len;</div><div class='add'>+    VALUE v = 0;</div><div class='add'>+    VALUE ret;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(x)) {</div><div class='del'>-	return fix2str(x, base);</div><div class='add'>+    StringValue(str);</div><div class='add'>+    if (badcheck) {</div><div class='add'>+	s = StringValueCStr(str);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	s = RSTRING_PTR(str);</div><div class='add'>+    }</div><div class='add'>+    if (s) {</div><div class='add'>+	len = RSTRING_LEN(str);</div><div class='add'>+	if (s[len]) {		/* no sentinel somehow */</div><div class='add'>+	    char *p = ALLOCV(v, len+1);</div><div class='add'>+</div><div class='add'>+	    MEMCPY(p, s, char, len);</div><div class='add'>+	    p[len] = '\0';</div><div class='add'>+	    s = p;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    ret = rb_cstr_to_inum(s, base, badcheck);</div><div class='add'>+    if (v)</div><div class='add'>+	ALLOCV_END(v);</div><div class='add'>+    return ret;</div><div class='add'>+}</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'>+    BDIGIT_DBL num = n;</div><div class='add'>+    long i = 0;</div><div class='add'>+    BDIGIT *digits;</div><div class='add'>+    VALUE big;</div><div class='add'>+</div><div class='add'>+    big = bignew(DIGSPERLL, 1);</div><div class='add'>+    digits = BDIGITS(big);</div><div class='add'>+    while (i &lt; DIGSPERLL) {</div><div class='add'>+	digits[i++] = BIGLO(num);</div><div class='add'>+	num = BIGDN(num);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    i = DIGSPERLL;</div><div class='add'>+    while (i-- &amp;&amp; !digits[i]) ;</div><div class='add'>+    RBIGNUM_SET_LEN(big, i+1);</div><div class='add'>+    return big;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_ll2big(LONG_LONG n)</div><div class='add'>+{</div><div class='add'>+    long neg = 0;</div><div class='add'>+    VALUE big;</div><div class='add'>+</div><div class='add'>+    if (n &lt; 0) {</div><div class='add'>+	n = -n;</div><div class='add'>+	neg = 1;</div><div class='add'>+    }</div><div class='add'>+    big = rb_ull2big(n);</div><div class='add'>+    if (neg) {</div><div class='add'>+	RBIGNUM_SET_SIGN(big, 0);</div><div class='add'>+    }</div><div class='add'>+    return big;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ull2inum(unsigned LONG_LONG n)</div><div class='add'>+{</div><div class='add'>+    if (POSFIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+    return rb_ull2big(n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_ll2inum(LONG_LONG n)</div><div class='add'>+{</div><div class='add'>+    if (FIXABLE(n)) return LONG2FIX(n);</div><div class='add'>+    return rb_ll2big(n);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif  /* HAVE_LONG_LONG */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_cstr2inum(const char *str, int base)</div><div class='add'>+{</div><div class='add'>+    return rb_cstr_to_inum(str, base, base==0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_str2inum(VALUE str, int base)</div><div class='add'>+{</div><div class='add'>+    return rb_str_to_inum(str, base, base==0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz";</div><div class='add'>+</div><div class='add'>+static VALUE bigsqr(VALUE x);</div><div class='add'>+static void bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp);</div><div class='add'>+</div><div class='add'>+#define POW2_P(x) (((x)&amp;((x)-1))==0)</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+ones(register unsigned long x)</div><div class='add'>+{</div><div class='add'>+#if SIZEOF_LONG == 8</div><div class='add'>+# define MASK_55 0x5555555555555555UL</div><div class='add'>+# define MASK_33 0x3333333333333333UL</div><div class='add'>+# define MASK_0f 0x0f0f0f0f0f0f0f0fUL</div><div class='add'>+#else</div><div class='add'>+# define MASK_55 0x55555555UL</div><div class='add'>+# define MASK_33 0x33333333UL</div><div class='add'>+# define MASK_0f 0x0f0f0f0fUL</div><div class='add'>+#endif</div><div class='add'>+    x -= (x &gt;&gt; 1) &amp; MASK_55;</div><div class='add'>+    x = ((x &gt;&gt; 2) &amp; MASK_33) + (x &amp; MASK_33);</div><div class='add'>+    x = ((x &gt;&gt; 4) + x) &amp; MASK_0f;</div><div class='add'>+    x += (x &gt;&gt; 8);</div><div class='add'>+    x += (x &gt;&gt; 16);</div><div class='add'>+#if SIZEOF_LONG == 8</div><div class='add'>+    x += (x &gt;&gt; 32);</div><div class='add'>+#endif</div><div class='add'>+    return (int)(x &amp; 0x7f);</div><div class='add'>+#undef MASK_0f</div><div class='add'>+#undef MASK_33</div><div class='add'>+#undef MASK_55</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline unsigned long</div><div class='add'>+next_pow2(register unsigned long x)</div><div class='add'>+{</div><div class='add'>+    x |= x &gt;&gt; 1;</div><div class='add'>+    x |= x &gt;&gt; 2;</div><div class='add'>+    x |= x &gt;&gt; 4;</div><div class='add'>+    x |= x &gt;&gt; 8;</div><div class='add'>+    x |= x &gt;&gt; 16;</div><div class='add'>+#if SIZEOF_LONG == 8</div><div class='add'>+    x |= x &gt;&gt; 32;</div><div class='add'>+#endif</div><div class='add'>+    return x + 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+floor_log2(register unsigned long x)</div><div class='add'>+{</div><div class='add'>+    x |= x &gt;&gt; 1;</div><div class='add'>+    x |= x &gt;&gt; 2;</div><div class='add'>+    x |= x &gt;&gt; 4;</div><div class='add'>+    x |= x &gt;&gt; 8;</div><div class='add'>+    x |= x &gt;&gt; 16;</div><div class='add'>+#if SIZEOF_LONG == 8</div><div class='add'>+    x |= x &gt;&gt; 32;</div><div class='add'>+#endif</div><div class='add'>+    return (int)ones(x) - 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline int</div><div class='add'>+ceil_log2(register unsigned long x)</div><div class='add'>+{</div><div class='add'>+    return floor_log2(x) + !POW2_P(x);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define LOG2_KARATSUBA_DIGITS 7</div><div class='add'>+#define KARATSUBA_DIGITS (1L&lt;&lt;LOG2_KARATSUBA_DIGITS)</div><div class='add'>+#define MAX_BIG2STR_TABLE_ENTRIES 64</div><div class='add'>+</div><div class='add'>+static VALUE big2str_power_cache[35][MAX_BIG2STR_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_BIG2STR_TABLE_ENTRIES; ++j) {</div><div class='add'>+	    big2str_power_cache[i][j] = Qnil;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    if (i == 0) return str_new2("0");</div><div class='del'>-    if (base == 10) {</div><div class='del'>-	j = (sizeof(USHORT)/sizeof(char)*CHAR_BIT*i*241L)/800+2;</div><div class='del'>-	hbase = 10000;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+power_cache_get_power0(int base, int i)</div><div class='add'>+{</div><div class='add'>+    if (NIL_P(big2str_power_cache[base - 2][i])) {</div><div class='add'>+	big2str_power_cache[base - 2][i] =</div><div class='add'>+	    i == 0 ? rb_big_pow(rb_int2big(base), INT2FIX(KARATSUBA_DIGITS))</div><div class='add'>+		   : bigsqr(power_cache_get_power0(base, i - 1));</div><div class='add'>+	rb_gc_register_mark_object(big2str_power_cache[base - 2][i]);</div><div class='ctx'>     }</div><div class='del'>-    else if (base == 16) {</div><div class='del'>-	j = (sizeof(USHORT)/sizeof(char)*CHAR_BIT*i)/4+2;</div><div class='del'>-	hbase = 0x10000;</div><div class='add'>+    return big2str_power_cache[base - 2][i];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+power_cache_get_power(int base, long n1, long* m1)</div><div class='add'>+{</div><div class='add'>+    int i, m;</div><div class='add'>+    long j;</div><div class='add'>+    VALUE t;</div><div class='add'>+</div><div class='add'>+    if (n1 &lt;= KARATSUBA_DIGITS)</div><div class='add'>+	rb_bug("n1 &gt; KARATSUBA_DIGITS");</div><div class='add'>+</div><div class='add'>+    m = ceil_log2(n1);</div><div class='add'>+    if (m1) *m1 = 1 &lt;&lt; m;</div><div class='add'>+    i = m - LOG2_KARATSUBA_DIGITS;</div><div class='add'>+    if (i &gt;= MAX_BIG2STR_TABLE_ENTRIES)</div><div class='add'>+	i = MAX_BIG2STR_TABLE_ENTRIES - 1;</div><div class='add'>+    t = power_cache_get_power0(base, i);</div><div class='add'>+</div><div class='add'>+    j = KARATSUBA_DIGITS*(1 &lt;&lt; i);</div><div class='add'>+    while (n1 &gt; j) {</div><div class='add'>+	t = bigsqr(t);</div><div class='add'>+	j *= 2;</div><div class='add'>+    }</div><div class='add'>+    return t;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* big2str_muraken_find_n1</div><div class='add'>+ *</div><div class='add'>+ * Let a natural number x is given by:</div><div class='add'>+ * x = 2^0 * x_0 + 2^1 * x_1 + ... + 2^(B*n_0 - 1) * x_{B*n_0 - 1},</div><div class='add'>+ * where B is BITSPERDIG (i.e. BDIGITS*CHAR_BIT) and n_0 is</div><div class='add'>+ * RBIGNUM_LEN(x).</div><div class='add'>+ *</div><div class='add'>+ * Now, we assume n_1 = min_n \{ n | 2^(B*n_0/2) &lt;= b_1^(n_1) \}, so</div><div class='add'>+ * it is realized that 2^(B*n_0) &lt;= {b_1}^{2*n_1}, where b_1 is a</div><div class='add'>+ * given radix number. And then, we have n_1 &lt;= (B*n_0) /</div><div class='add'>+ * (2*log_2(b_1)), therefore n_1 is given by ceil((B*n_0) /</div><div class='add'>+ * (2*log_2(b_1))).</div><div class='add'>+ */</div><div class='add'>+static long</div><div class='add'>+big2str_find_n1(VALUE x, int base)</div><div class='add'>+{</div><div class='add'>+    static const double log_2[] = {</div><div class='add'>+	1.0,              1.58496250072116, 2.0,</div><div class='add'>+	2.32192809488736, 2.58496250072116, 2.8073549220576,</div><div class='add'>+	3.0,              3.16992500144231, 3.32192809488736,</div><div class='add'>+	3.4594316186373,  3.58496250072116, 3.70043971814109,</div><div class='add'>+	3.8073549220576,  3.90689059560852, 4.0,</div><div class='add'>+	4.08746284125034, 4.16992500144231, 4.24792751344359,</div><div class='add'>+	4.32192809488736, 4.39231742277876, 4.4594316186373,</div><div class='add'>+	4.52356195605701, 4.58496250072116, 4.64385618977472,</div><div class='add'>+	4.70043971814109, 4.75488750216347, 4.8073549220576,</div><div class='add'>+	4.85798099512757, 4.90689059560852, 4.95419631038688,</div><div class='add'>+	5.0,              5.04439411935845, 5.08746284125034,</div><div class='add'>+	5.12928301694497, 5.16992500144231</div><div class='add'>+    };</div><div class='add'>+    long bits;</div><div class='add'>+</div><div class='add'>+    if (base &lt; 2 || 36 &lt; base)</div><div class='add'>+	rb_bug("invalid radix %d", base);</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(x)) {</div><div class='add'>+	bits = (SIZEOF_LONG*CHAR_BIT - 1)/2 + 1;</div><div class='ctx'>     }</div><div class='del'>-    else if (base == 8) {</div><div class='del'>-	j = (sizeof(USHORT)/sizeof(char)*CHAR_BIT*i)+2;</div><div class='del'>-	hbase = 010000;</div><div class='add'>+    else if (BIGZEROP(x)) {</div><div class='add'>+	return 0;</div><div class='ctx'>     }</div><div class='del'>-    else if (base == 2) {</div><div class='del'>-	j = (sizeof(USHORT)*CHAR_BIT*i)+2;</div><div class='del'>-	hbase = 020;</div><div class='add'>+    else if (RBIGNUM_LEN(x) &gt;= LONG_MAX/BITSPERDIG) {</div><div class='add'>+	rb_raise(rb_eRangeError, "bignum too big to convert into `string'");</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	j = 0;</div><div class='del'>-	hbase = 0;</div><div class='del'>-	Fail("bignum cannot treat base %d", base);</div><div class='add'>+	bits = BITSPERDIG*RBIGNUM_LEN(x);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    t = big_clone(x);</div><div class='del'>-    ds = BDIGITS(t);</div><div class='del'>-    ss = str_new(0, j);</div><div class='del'>-    s = RSTRING(ss)-&gt;ptr;</div><div class='add'>+    return (long)ceil(bits/log_2[base - 2]);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    s[0] = RBIGNUM(x)-&gt;sign ? '+' : '-';</div><div class='del'>-    while (i &amp;&amp; j) {</div><div class='del'>-	int k = i;</div><div class='del'>-	unsigned long num = 0;</div><div class='del'>-	while (k--) {</div><div class='add'>+static long</div><div class='add'>+big2str_orig(VALUE x, int base, char* ptr, long len, long hbase, int trim)</div><div class='add'>+{</div><div class='add'>+    long i = RBIGNUM_LEN(x), j = len;</div><div class='add'>+    BDIGIT* ds = BDIGITS(x);</div><div class='add'>+</div><div class='add'>+    while (i &amp;&amp; j &gt; 0) {</div><div class='add'>+	long k = i;</div><div class='add'>+	BDIGIT_DBL num = 0;</div><div class='add'>+</div><div class='add'>+	while (k--) {               /* x / hbase */</div><div class='ctx'> 	    num = BIGUP(num) + ds[k];</div><div class='del'>-	    ds[k] = num / hbase;</div><div class='add'>+	    ds[k] = (BDIGIT)(num / hbase);</div><div class='ctx'> 	    num %= hbase;</div><div class='ctx'> 	}</div><div class='del'>-	if (ds[i-1] == 0) i--;</div><div class='del'>-	k = 4;</div><div class='add'>+	if (trim &amp;&amp; ds[i-1] == 0) i--;</div><div class='add'>+	k = SIZEOF_BDIGITS;</div><div class='ctx'> 	while (k--) {</div><div class='del'>-	    c = num % base;</div><div class='del'>-	    s[--j] = hexmap[(int)c];</div><div class='add'>+	    ptr[--j] = ruby_digitmap[num % base];</div><div class='ctx'> 	    num /= base;</div><div class='del'>-	    if (i == 0 &amp;&amp; num == 0) break;</div><div class='add'>+	    if (j &lt;= 0) break;</div><div class='add'>+	    if (trim &amp;&amp; i == 0 &amp;&amp; num == 0) break;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    while (s[j] == '0') j++;</div><div class='del'>-    RSTRING(ss)-&gt;len -= RBIGNUM(x)-&gt;sign?j:j-1;</div><div class='del'>-    memmove(RBIGNUM(x)-&gt;sign?s:s+1, s+j, RSTRING(ss)-&gt;len);</div><div class='del'>-    s[RSTRING(ss)-&gt;len] = '\0';</div><div class='add'>+    if (trim) {</div><div class='add'>+	while (j &lt; len &amp;&amp; ptr[j] == '0') j++;</div><div class='add'>+	MEMMOVE(ptr, ptr + j, char, len - j);</div><div class='add'>+	len -= j;</div><div class='add'>+    }</div><div class='add'>+    return len;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static long</div><div class='add'>+big2str_karatsuba(VALUE x, int base, char* ptr,</div><div class='add'>+		  long n1, long len, long hbase, int trim)</div><div class='add'>+{</div><div class='add'>+    long lh, ll, m1;</div><div class='add'>+    VALUE b, q, r;</div><div class='add'>+</div><div class='add'>+    if (BIGZEROP(x)) {</div><div class='add'>+	if (trim) return 0;</div><div class='add'>+	else {</div><div class='add'>+	    memset(ptr, '0', len);</div><div class='add'>+	    return len;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (n1 &lt;= KARATSUBA_DIGITS) {</div><div class='add'>+	return big2str_orig(x, base, ptr, len, hbase, trim);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    b = power_cache_get_power(base, n1, &amp;m1);</div><div class='add'>+    bigdivmod(x, b, &amp;q, &amp;r);</div><div class='add'>+    lh = big2str_karatsuba(q, base, ptr, (len - m1)/2,</div><div class='add'>+			   len - m1, hbase, trim);</div><div class='add'>+    rb_big_resize(q, 0);</div><div class='add'>+    ll = big2str_karatsuba(r, base, ptr + lh, m1/2,</div><div class='add'>+			   m1, hbase, !lh &amp;&amp; trim);</div><div class='add'>+    rb_big_resize(r, 0);</div><div class='add'>+</div><div class='add'>+    return lh + ll;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big2str0(VALUE x, int base, int trim)</div><div class='add'>+{</div><div class='add'>+    int off;</div><div class='add'>+    VALUE ss, xx;</div><div class='add'>+    long n1, n2, len, hbase;</div><div class='add'>+    char* ptr;</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'>+    if (BIGZEROP(x)) {</div><div class='add'>+	return rb_usascii_str_new2("0");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (base &lt; 2 || 36 &lt; base)</div><div class='add'>+	rb_raise(rb_eArgError, "invalid radix %d", base);</div><div class='add'>+</div><div class='add'>+    n2 = big2str_find_n1(x, base);</div><div class='add'>+    n1 = (n2 + 1) / 2;</div><div class='add'>+    ss = rb_usascii_str_new(0, n2 + 1); /* plus one for sign */</div><div class='add'>+    ptr = RSTRING_PTR(ss);</div><div class='add'>+    ptr[0] = RBIGNUM_SIGN(x) ? '+' : '-';</div><div class='add'>+</div><div class='add'>+    hbase = base*base;</div><div class='add'>+#if SIZEOF_BDIGITS &gt; 2</div><div class='add'>+    hbase *= hbase;</div><div class='add'>+#endif</div><div class='add'>+    off = !(trim &amp;&amp; RBIGNUM_SIGN(x)); /* erase plus sign if trim */</div><div class='add'>+    xx = rb_big_clone(x);</div><div class='add'>+    RBIGNUM_SET_SIGN(xx, 1);</div><div class='add'>+    if (n1 &lt;= KARATSUBA_DIGITS) {</div><div class='add'>+	len = off + big2str_orig(xx, base, ptr + off, n2, hbase, trim);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	len = off + big2str_karatsuba(xx, base, ptr + off, n1,</div><div class='add'>+				      n2, hbase, trim);</div><div class='add'>+    }</div><div class='add'>+    rb_big_resize(xx, 0);</div><div class='add'>+</div><div class='add'>+    ptr[len] = '\0';</div><div class='add'>+    rb_str_resize(ss, len);</div><div class='ctx'> </div><div class='ctx'>     return ss;</div><div class='ctx'> }</div><div class='ctx'> </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_big2str0(x, base, 1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.to_s(base=10)   -&gt;  string</div><div class='add'>+ *</div><div class='add'>+ *  Returns a string containing the representation of &lt;i&gt;big&lt;/i&gt; radix</div><div class='add'>+ *  &lt;i&gt;base&lt;/i&gt; (2 through 36).</div><div class='add'>+ *</div><div class='add'>+ *     12345654321.to_s         #=&gt; "12345654321"</div><div class='add'>+ *     12345654321.to_s(2)      #=&gt; "1011011111110110111011110000110001"</div><div class='add'>+ *     12345654321.to_s(8)      #=&gt; "133766736061"</div><div class='add'>+ *     12345654321.to_s(16)     #=&gt; "2dfdbbc31"</div><div class='add'>+ *     78546939656932.to_s(36)  #=&gt; "rubyrules"</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_to_s(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_to_s(int argc, VALUE *argv, VALUE x)</div><div class='ctx'> {</div><div class='del'>-    return big2str(x, 10);</div><div class='add'>+    int base;</div><div class='add'>+</div><div class='add'>+    if (argc == 0) base = 10;</div><div class='add'>+    else {</div><div class='add'>+	VALUE b;</div><div class='add'>+</div><div class='add'>+	rb_scan_args(argc, argv, "01", &amp;b);</div><div class='add'>+	base = NUM2INT(b);</div><div class='add'>+    }</div><div class='add'>+    return rb_big2str(x, base);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-unsigned long</div><div class='del'>-big2ulong(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+static VALUE</div><div class='add'>+big2ulong(VALUE x, const char *type, int check)</div><div class='ctx'> {</div><div class='del'>-    unsigned long num;</div><div class='del'>-    unsigned int len = RBIGNUM(x)-&gt;len;</div><div class='del'>-    USHORT *ds;</div><div class='add'>+    long len = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT_DBL num;</div><div class='add'>+    BDIGIT *ds;</div><div class='ctx'> </div><div class='del'>-    if (len &gt; sizeof(long)/sizeof(USHORT))</div><div class='del'>-	ArgError("bignum too big to convert into `uint'");</div><div class='add'>+    if (len &gt; DIGSPERLONG) {</div><div class='add'>+	if (check)</div><div class='add'>+	    rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='add'>+	len = DIGSPERLONG;</div><div class='add'>+    }</div><div class='ctx'>     ds = BDIGITS(x);</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'>+    return (VALUE)num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big2ulong_pack(VALUE x)</div><div class='add'>+{</div><div class='add'>+    VALUE num = big2ulong(x, "unsigned long", FALSE);</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	return (VALUE)(-(SIGNED_VALUE)num);</div><div class='add'>+    }</div><div class='ctx'>     return num;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-long</div><div class='del'>-big2long(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+VALUE</div><div class='add'>+rb_big2ulong(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    unsigned long num = big2ulong(x);</div><div class='add'>+    VALUE num = big2ulong(x, "unsigned long", TRUE);</div><div class='ctx'> </div><div class='del'>-    if ((long)num &lt; 0) {</div><div class='del'>-	ArgError("bignum too big to convert into `int'");</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	if ((long)num &lt; 0) {</div><div class='add'>+	    rb_raise(rb_eRangeError, "bignum out of range of unsigned long");</div><div class='add'>+	}</div><div class='add'>+	return (VALUE)(-(SIGNED_VALUE)num);</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) return -num;</div><div class='ctx'>     return num;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_to_i(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+SIGNED_VALUE</div><div class='add'>+rb_big2long(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    return bignorm(x);</div><div class='add'>+    VALUE num = big2ulong(x, "long", TRUE);</div><div class='add'>+</div><div class='add'>+    if ((long)num &lt; 0 &amp;&amp;</div><div class='add'>+	(RBIGNUM_SIGN(x) || (long)num != LONG_MIN)) {</div><div class='add'>+	rb_raise(rb_eRangeError, "bignum too big to convert into `long'");</div><div class='add'>+    }</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) return -(SIGNED_VALUE)num;</div><div class='add'>+    return num;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-dbl2big(d)</div><div class='del'>-    double d;</div><div class='add'>+#if HAVE_LONG_LONG</div><div class='add'>+</div><div class='add'>+static unsigned LONG_LONG</div><div class='add'>+big2ull(VALUE x, const char *type)</div><div class='ctx'> {</div><div class='del'>-    unsigned int i = 0;</div><div class='del'>-    long c;</div><div class='del'>-    USHORT *digits;</div><div class='add'>+    long len = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT_DBL num;</div><div class='add'>+    BDIGIT *ds;</div><div class='add'>+</div><div class='add'>+    if (len &gt; SIZEOF_LONG_LONG/SIZEOF_BDIGITS)</div><div class='add'>+	rb_raise(rb_eRangeError, "bignum too big to convert into `%s'", type);</div><div class='add'>+    ds = BDIGITS(x);</div><div class='add'>+    num = 0;</div><div class='add'>+    while (len--) {</div><div class='add'>+	num = BIGUP(num);</div><div class='add'>+	num += ds[len];</div><div class='add'>+    }</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+unsigned LONG_LONG</div><div class='add'>+rb_big2ull(VALUE x)</div><div class='add'>+{</div><div class='add'>+    unsigned LONG_LONG num = big2ull(x, "unsigned long long");</div><div class='add'>+</div><div class='add'>+    if (!RBIGNUM_SIGN(x))</div><div class='add'>+	return (VALUE)(-(SIGNED_VALUE)num);</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+LONG_LONG</div><div class='add'>+rb_big2ll(VALUE x)</div><div class='add'>+{</div><div class='add'>+    unsigned LONG_LONG num = big2ull(x, "long long");</div><div class='add'>+</div><div class='add'>+    if ((LONG_LONG)num &lt; 0 &amp;&amp; (RBIGNUM_SIGN(x)</div><div class='add'>+			       || (LONG_LONG)num != LLONG_MIN)) {</div><div class='add'>+	rb_raise(rb_eRangeError, "bignum too big to convert into `long long'");</div><div class='add'>+    }</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) return -(LONG_LONG)num;</div><div class='add'>+    return num;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#endif  /* HAVE_LONG_LONG */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+dbl2big(double d)</div><div class='add'>+{</div><div class='add'>+    long i = 0;</div><div class='add'>+    BDIGIT c;</div><div class='add'>+    BDIGIT *digits;</div><div class='ctx'>     VALUE z;</div><div class='ctx'>     double u = (d &lt; 0)?-d:d;</div><div class='ctx'> </div><div class='del'>-    while (0 != (long)u) {</div><div class='add'>+    if (isinf(d)) {</div><div class='add'>+	rb_raise(rb_eFloatDomainError, d &lt; 0 ? "-Infinity" : "Infinity");</div><div class='add'>+    }</div><div class='add'>+    if (isnan(d)) {</div><div class='add'>+	rb_raise(rb_eFloatDomainError, "NaN");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (!POSFIXABLE(u) || 0 != (long)u) {</div><div class='ctx'> 	u /= (double)(BIGRAD);</div><div class='ctx'> 	i++;</div><div class='ctx'>     }</div><div class='hunk'>@@ -403,587 +1303,1910 @@ dbl2big(d)</div><div class='ctx'>     digits = BDIGITS(z);</div><div class='ctx'>     while (i--) {</div><div class='ctx'> 	u *= BIGRAD;</div><div class='del'>-	c = (long)u;</div><div class='add'>+	c = (BDIGIT)u;</div><div class='ctx'> 	u -= c;</div><div class='ctx'> 	digits[i] = c;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return bignorm(z);</div><div class='add'>+    return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-double</div><div class='del'>-big2dbl(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+VALUE</div><div class='add'>+rb_dbl2big(double d)</div><div class='add'>+{</div><div class='add'>+    return bignorm(dbl2big(d));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+nlz(BDIGIT x)</div><div class='add'>+{</div><div class='add'>+    BDIGIT y;</div><div class='add'>+    int n = BITSPERDIG;</div><div class='add'>+#if BITSPERDIG &gt; 64</div><div class='add'>+    y = x &gt;&gt; 64; if (y) {n -= 64; x = y;}</div><div class='add'>+#endif</div><div class='add'>+#if BITSPERDIG &gt; 32</div><div class='add'>+    y = x &gt;&gt; 32; if (y) {n -= 32; x = y;}</div><div class='add'>+#endif</div><div class='add'>+#if BITSPERDIG &gt; 16</div><div class='add'>+    y = x &gt;&gt; 16; if (y) {n -= 16; x = y;}</div><div class='add'>+#endif</div><div class='add'>+    y = x &gt;&gt;  8; if (y) {n -=  8; x = y;}</div><div class='add'>+    y = x &gt;&gt;  4; if (y) {n -=  4; x = y;}</div><div class='add'>+    y = x &gt;&gt;  2; if (y) {n -=  2; x = y;}</div><div class='add'>+    y = x &gt;&gt;  1; if (y) {return n - 2;}</div><div class='add'>+    return n - x;</div><div class='add'>+}</div><div class='add'>+</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'>-    unsigned int i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    USHORT *ds = BDIGITS(x);</div><div class='add'>+    long i = (bigtrunc(x), RBIGNUM_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; (1UL &lt;&lt; (bits %= BITSPERDIG)))) {</div><div class='add'>+		int carry = dl &amp; ~(~(BDIGIT)0 &lt;&lt; bits);</div><div class='add'>+		if (!carry) {</div><div class='add'>+		    while (i-- &gt; 0) {</div><div class='add'>+			if ((carry = ds[i]) != 0) break;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		if (carry) {</div><div class='add'>+		    dl &amp;= (BDIGIT)~0 &lt;&lt; bits;</div><div class='add'>+		    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='del'>-    if (!RBIGNUM(x)-&gt;sign) d = -d;</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) d = -d;</div><div class='ctx'>     return d;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_to_f(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+double</div><div class='add'>+rb_big2dbl(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    return float_new(big2dbl(x));</div><div class='add'>+    double d = big2dbl(x);</div><div class='add'>+</div><div class='add'>+    if (isinf(d)) {</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='add'>+    }</div><div class='add'>+    return d;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.to_f -&gt; float</div><div class='add'>+ *</div><div class='add'>+ *  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='add'>+ *  fit in a &lt;code&gt;Float&lt;/code&gt;, the result is infinity.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_cmp(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_to_f(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return DBL2NUM(rb_big2dbl(x));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big &lt;=&gt; numeric   -&gt; -1, 0, +1 or nil</div><div class='add'>+ *</div><div class='add'>+ *  Comparison---Returns -1, 0, or +1 depending on whether &lt;i&gt;big&lt;/i&gt; is</div><div class='add'>+ *  less than, equal to, or greater than &lt;i&gt;numeric&lt;/i&gt;. This is the</div><div class='add'>+ *  basis for the tests in &lt;code&gt;Comparable&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_cmp(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    int xlen = RBIGNUM(x)-&gt;len;</div><div class='add'>+    long xlen = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *xds, *yds;</div><div class='ctx'> </div><div class='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	{</div><div class='add'>+	    double a = RFLOAT_VALUE(y);</div><div class='add'>+</div><div class='add'>+	    if (isinf(a)) {</div><div class='add'>+		if (a &gt; 0.0) return INT2FIX(-1);</div><div class='add'>+		else return INT2FIX(1);</div><div class='add'>+	    }</div><div class='add'>+	    return rb_dbl_cmp(rb_big2dbl(x), a);</div><div class='add'>+	}</div><div class='add'>+</div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+	return rb_num_coerce_cmp(x, y, rb_intern("&lt;=&gt;"));</div><div class='ctx'>     }</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'>+    if (RBIGNUM_SIGN(x) &gt; RBIGNUM_SIGN(y)) return INT2FIX(1);</div><div class='add'>+    if (RBIGNUM_SIGN(x) &lt; RBIGNUM_SIGN(y)) return INT2FIX(-1);</div><div class='add'>+    if (xlen &lt; RBIGNUM_LEN(y))</div><div class='add'>+	return (RBIGNUM_SIGN(x)) ? INT2FIX(-1) : INT2FIX(1);</div><div class='add'>+    if (xlen &gt; RBIGNUM_LEN(y))</div><div class='add'>+	return (RBIGNUM_SIGN(x)) ? INT2FIX(1) : INT2FIX(-1);</div><div class='ctx'> </div><div class='del'>-    while(xlen-- &amp;&amp; (BDIGITS(x)[xlen]==BDIGITS(y)[xlen]));</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    yds = BDIGITS(y);</div><div class='add'>+</div><div class='add'>+    while(xlen-- &amp;&amp; (xds[xlen]==yds[xlen]));</div><div class='ctx'>     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'>+    return (xds[xlen] &gt; yds[xlen]) ?</div><div class='add'>+	(RBIGNUM_SIGN(x) ? INT2FIX(1) : INT2FIX(-1)) :</div><div class='add'>+	    (RBIGNUM_SIGN(x) ? INT2FIX(-1) : INT2FIX(1));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-big_eq(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+big_op(VALUE x, VALUE y, int op)</div><div class='ctx'> {</div><div class='del'>-    if (big_cmp(x, y) == INT2FIX(0)) return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    VALUE rel;</div><div class='add'>+    int n;</div><div class='add'>+</div><div class='add'>+    switch (TYPE(y)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+	rel = rb_big_cmp(x, y);</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	{</div><div class='add'>+	    double a = RFLOAT_VALUE(y);</div><div class='add'>+</div><div class='add'>+	    if (isinf(a)) {</div><div class='add'>+		if (a &gt; 0.0) rel = INT2FIX(-1);</div><div class='add'>+		else rel = INT2FIX(1);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    rel = rb_dbl_cmp(rb_big2dbl(x), a);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+	{</div><div class='add'>+	    ID id = 0;</div><div class='add'>+	    switch (op) {</div><div class='add'>+		case 0: id = '&gt;'; break;</div><div class='add'>+		case 1: id = rb_intern("&gt;="); break;</div><div class='add'>+		case 2: id = '&lt;'; break;</div><div class='add'>+		case 3: id = rb_intern("&lt;="); break;</div><div class='add'>+	    }</div><div class='add'>+	    return rb_num_coerce_relop(x, y, id);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (NIL_P(rel)) return Qfalse;</div><div class='add'>+    n = FIX2INT(rel);</div><div class='add'>+</div><div class='add'>+    switch (op) {</div><div class='add'>+	case 0: return n &gt;  0 ? Qtrue : Qfalse;</div><div class='add'>+	case 1: return n &gt;= 0 ? Qtrue : Qfalse;</div><div class='add'>+	case 2: return n &lt;  0 ? Qtrue : Qfalse;</div><div class='add'>+	case 3: return n &lt;= 0 ? Qtrue : Qfalse;</div><div class='add'>+    }</div><div class='add'>+    return Qundef;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   big &gt; real  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;code&gt;true&lt;/code&gt; if the value of &lt;code&gt;big&lt;/code&gt; is</div><div class='add'>+ * greater than that of &lt;code&gt;real&lt;/code&gt;.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_uminus(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+big_gt(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE z = big_clone(x);</div><div class='add'>+    return big_op(x, y, 0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    RBIGNUM(z)-&gt;sign = !RBIGNUM(x)-&gt;sign;</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   big &gt;= real  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;code&gt;true&lt;/code&gt; if the value of &lt;code&gt;big&lt;/code&gt; is</div><div class='add'>+ * greater than or equal to that of &lt;code&gt;real&lt;/code&gt;.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-    return bignorm(z);</div><div class='add'>+static VALUE</div><div class='add'>+big_ge(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return big_op(x, y, 1);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   big &lt; real  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;code&gt;true&lt;/code&gt; if the value of &lt;code&gt;big&lt;/code&gt; is</div><div class='add'>+ * less than that of &lt;code&gt;real&lt;/code&gt;.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_neg(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+big_lt(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE z = big_clone(x);</div><div class='del'>-    unsigned int i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    USHORT *ds = BDIGITS(z);</div><div class='add'>+    return big_op(x, y, 2);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) big_2comp(z);</div><div class='del'>-    while (i--) ds[i] = ~ds[i];</div><div class='del'>-    if (RBIGNUM(x)-&gt;sign) big_2comp(z);</div><div class='del'>-    RBIGNUM(z)-&gt;sign = !RBIGNUM(z)-&gt;sign;</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   big &lt;= real  -&gt;  true or false</div><div class='add'>+ *</div><div class='add'>+ * Returns &lt;code&gt;true&lt;/code&gt; if the value of &lt;code&gt;big&lt;/code&gt; is</div><div class='add'>+ * less than or equal to that of &lt;code&gt;real&lt;/code&gt;.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+big_le(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    return big_op(x, y, 3);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big == obj  -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; only if &lt;i&gt;obj&lt;/i&gt; has the same value</div><div class='add'>+ *  as &lt;i&gt;big&lt;/i&gt;. Contrast this with &lt;code&gt;Bignum#eql?&lt;/code&gt;, which</div><div class='add'>+ *  requires &lt;i&gt;obj&lt;/i&gt; to be a &lt;code&gt;Bignum&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     68719476736 == 68719476736.0   #=&gt; true</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_eq(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    switch (TYPE(y)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+	break;</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+	break;</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	{</div><div class='add'>+	    volatile double a, b;</div><div class='add'>+</div><div class='add'>+	    a = RFLOAT_VALUE(y);</div><div class='add'>+	    if (isnan(a) || isinf(a)) return Qfalse;</div><div class='add'>+	    b = rb_big2dbl(x);</div><div class='add'>+	    return (a == b)?Qtrue:Qfalse;</div><div class='add'>+	}</div><div class='add'>+      default:</div><div class='add'>+	return rb_equal(y, x);</div><div class='add'>+    }</div><div class='add'>+    if (RBIGNUM_SIGN(x) != RBIGNUM_SIGN(y)) return Qfalse;</div><div class='add'>+    if (RBIGNUM_LEN(x) != RBIGNUM_LEN(y)) return Qfalse;</div><div class='add'>+    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,RBIGNUM_LEN(y)) != 0) return Qfalse;</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.eql?(obj)   -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; only if &lt;i&gt;obj&lt;/i&gt; is a</div><div class='add'>+ *  &lt;code&gt;Bignum&lt;/code&gt; with the same value as &lt;i&gt;big&lt;/i&gt;. Contrast this</div><div class='add'>+ *  with &lt;code&gt;Bignum#==&lt;/code&gt;, which performs type conversions.</div><div class='add'>+ *</div><div class='add'>+ *     68719476736.eql?(68719476736.0)   #=&gt; false</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+rb_big_eql(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    if (TYPE(y) != T_BIGNUM) return Qfalse;</div><div class='add'>+    if (RBIGNUM_SIGN(x) != RBIGNUM_SIGN(y)) return Qfalse;</div><div class='add'>+    if (RBIGNUM_LEN(x) != RBIGNUM_LEN(y)) return Qfalse;</div><div class='add'>+    if (MEMCMP(BDIGITS(x),BDIGITS(y),BDIGIT,RBIGNUM_LEN(y)) != 0) return Qfalse;</div><div class='add'>+    return Qtrue;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *    -big   -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Unary minus (returns an integer whose value is 0-big)</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_uminus(VALUE x)</div><div class='add'>+{</div><div class='add'>+    VALUE z = rb_big_clone(x);</div><div class='add'>+</div><div class='add'>+    RBIGNUM_SET_SIGN(z, !RBIGNUM_SIGN(x));</div><div class='ctx'> </div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *     ~big  -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Inverts the bits in big. As Bignums are conceptually infinite</div><div class='add'>+ * length, the result acts as if it had an infinite number of one</div><div class='add'>+ * bits to the left. In hex representations, this is displayed</div><div class='add'>+ * as two periods to the left of the digits.</div><div class='add'>+ *</div><div class='add'>+ *   sprintf("%X", ~0x1122334455)    #=&gt; "..FEEDDCCBBAA"</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-bigsub(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_neg(VALUE x)</div><div class='add'>+{</div><div class='add'>+    VALUE z = rb_big_clone(x);</div><div class='add'>+    BDIGIT *ds;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) get2comp(z);</div><div class='add'>+    ds = BDIGITS(z);</div><div class='add'>+    i = RBIGNUM_LEN(x);</div><div class='add'>+    if (!i) return INT2FIX(~(SIGNED_VALUE)0);</div><div class='add'>+    while (i--) {</div><div class='add'>+	ds[i] = ~ds[i];</div><div class='add'>+    }</div><div class='add'>+    RBIGNUM_SET_SIGN(z, !RBIGNUM_SIGN(z));</div><div class='add'>+    if (RBIGNUM_SIGN(x)) get2comp(z);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bigsub_core(BDIGIT *xds, long xn, BDIGIT *yds, long yn, BDIGIT *zds, long zn)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0, num = 0; i &lt; yn; 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'>+    while (num &amp;&amp; i &lt; xn) {</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'>+    while (i &lt; xn) {</div><div class='add'>+	zds[i] = xds[i];</div><div class='add'>+	i++;</div><div class='add'>+    }</div><div class='add'>+    assert(i &lt;= zn);</div><div class='add'>+    while (i &lt; zn) {</div><div class='add'>+	zds[i++] = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bigsub(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z = 0;</div><div class='del'>-    USHORT *zds;</div><div class='del'>-    long num;</div><div class='del'>-    unsigned int i;</div><div class='add'>+    long i = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *xds, *yds;</div><div class='ctx'> </div><div class='del'>-    i = RBIGNUM(x)-&gt;len;</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='add'>+    /* if x is smaller than y, swap */</div><div class='add'>+    if (RBIGNUM_LEN(x) &lt; RBIGNUM_LEN(y)) {</div><div class='ctx'> 	z = x; x = y; y = z;	/* swap x y */</div><div class='ctx'>     }</div><div class='del'>-    else if (RBIGNUM(x)-&gt;len == RBIGNUM(y)-&gt;len) {</div><div class='add'>+    else if (RBIGNUM_LEN(x) == RBIGNUM_LEN(y)) {</div><div class='add'>+	xds = BDIGITS(x);</div><div class='add'>+	yds = BDIGITS(y);</div><div class='ctx'> 	while (i &gt; 0) {</div><div class='ctx'> 	    i--;</div><div class='del'>-	    if (BDIGITS(x)[i] &gt; BDIGITS(y)[i]) {</div><div class='add'>+	    if (xds[i] &gt; yds[i]) {</div><div class='ctx'> 		break;</div><div class='ctx'> 	    }</div><div class='del'>-	    if (BDIGITS(x)[i] &lt; BDIGITS(y)[i]) {</div><div class='add'>+	    if (xds[i] &lt; yds[i]) {</div><div class='ctx'> 		z = x; x = y; y = z;	/* swap x y */</div><div class='ctx'> 		break;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    z = bignew(RBIGNUM(x)-&gt;len, (z == 0)?1:0);</div><div class='add'>+    z = bignew(RBIGNUM_LEN(x), z==0);</div><div class='add'>+    bigsub_core(BDIGITS(x), RBIGNUM_LEN(x),</div><div class='add'>+		BDIGITS(y), RBIGNUM_LEN(y),</div><div class='add'>+		BDIGITS(z), RBIGNUM_LEN(z));</div><div class='add'>+</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;</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 = RBIGNUM_LEN(x);</div><div class='add'>+</div><div class='add'>+    z = bignew(xn, RBIGNUM_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 += (long)BDIGITS(x)[i] - BDIGITS(y)[i];</div><div class='add'>+#if SIZEOF_BDIGITS == SIZEOF_LONG</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'>+	RBIGNUM_SET_SIGN(z, !RBIGNUM_SIGN(x));</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'>+#else</div><div class='add'>+    num = 0;</div><div class='add'>+    for (i=0; i&lt;(int)(sizeof(y)/sizeof(BDIGIT)); i++) {</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='add'>+	y = BIGDN(y);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    while (num &amp;&amp; i &lt; xn) {</div><div class='add'>+	num += xds[i];</div><div class='ctx'> 	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='add'>+    while (i &lt; xn) {</div><div class='add'>+	zds[i] = xds[i];</div><div class='ctx'> 	i++;</div><div class='ctx'>     }</div><div class='del'>-    </div><div class='add'>+    if (num &lt; 0) {</div><div class='add'>+	z = bigsub(x, rb_int2big(y0));</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(x);</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'>-bigadd(x, y, sign)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-    char sign;</div><div class='add'>+bigadd_int(VALUE x, long y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='del'>-    long num;</div><div class='del'>-    unsigned int i, len;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long xn, zn;</div><div class='add'>+    BDIGIT_DBL num;</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 = RBIGNUM_LEN(x);</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 (xn &lt; 2) {</div><div class='add'>+	zn = 3;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	len = RBIGNUM(y)-&gt;len + 1;</div><div class='add'>+	zn = xn + 1;</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(len, sign);</div><div class='add'>+    z = bignew(zn, RBIGNUM_SIGN(x));</div><div class='add'>+    zds = BDIGITS(z);</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 += BDIGITS(x)[i] + BDIGITS(y)[i];</div><div class='del'>-	BDIGITS(z)[i] = BIGLO(num);</div><div class='add'>+#if SIZEOF_BDIGITS == 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'>+#else</div><div class='add'>+    num = 0;</div><div class='add'>+    for (i=0; i&lt;(int)(sizeof(y)/sizeof(BDIGIT)); i++) {</div><div class='add'>+	num += (BDIGIT_DBL)xds[i] + BIGLO(y);</div><div class='add'>+	zds[i] = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='add'>+	y = BIGDN(y);</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'>+#endif</div><div class='add'>+    while (num &amp;&amp; i &lt; xn) {</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; len) {</div><div class='del'>-	BDIGITS(z)[i] = BDIGITS(y)[i];</div><div class='add'>+    if (num) zds[i++] = (BDIGIT)num;</div><div class='add'>+    else while (i &lt; xn) {</div><div class='add'>+	zds[i] = xds[i];</div><div class='ctx'> 	i++;</div><div class='ctx'>     }</div><div class='del'>-    BDIGITS(z)[i] = num;</div><div class='del'>-</div><div class='add'>+    assert(i &lt;= zn);</div><div class='add'>+    while (i &lt; zn) {</div><div class='add'>+	zds[i++] = 0;</div><div class='add'>+    }</div><div class='add'>+    RB_GC_GUARD(x);</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_plus(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static void</div><div class='add'>+bigadd_core(BDIGIT *xds, long xn, BDIGIT *yds, long yn, BDIGIT *zds, long zn)</div><div class='ctx'> {</div><div class='del'>-    switch (TYPE(y)) {</div><div class='del'>-      case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='del'>-	/* fall through */</div><div class='del'>-      case T_BIGNUM:</div><div class='del'>-	return bigadd(x, y, 1);</div><div class='add'>+    BDIGIT_DBL num = 0;</div><div class='add'>+    long i;</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	return float_new(big2dbl(x) + RFLOAT(y)-&gt;value);</div><div class='add'>+    if (xn &gt; yn) {</div><div class='add'>+	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='ctx'> </div><div class='del'>-      default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+    i = 0;</div><div class='add'>+    while (i &lt; xn) {</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'>+    while (num &amp;&amp; i &lt; yn) {</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'>+    while (i &lt; yn) {</div><div class='add'>+	zds[i] = yds[i];</div><div class='add'>+	i++;</div><div class='add'>+    }</div><div class='add'>+    if (num) zds[i++] = (BDIGIT)num;</div><div class='add'>+    assert(i &lt;= zn);</div><div class='add'>+    while (i &lt; zn) {</div><div class='add'>+	zds[i++] = 0;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bigadd(VALUE x, VALUE y, int sign)</div><div class='add'>+{</div><div class='add'>+    VALUE z;</div><div class='add'>+    long len;</div><div class='add'>+</div><div class='add'>+    sign = (sign == RBIGNUM_SIGN(y));</div><div class='add'>+    if (RBIGNUM_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='add'>+</div><div class='add'>+    if (RBIGNUM_LEN(x) &gt; RBIGNUM_LEN(y)) {</div><div class='add'>+	len = RBIGNUM_LEN(x) + 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	len = RBIGNUM_LEN(y) + 1;</div><div class='ctx'>     }</div><div class='add'>+    z = bignew(len, sign);</div><div class='add'>+</div><div class='add'>+    bigadd_core(BDIGITS(x), RBIGNUM_LEN(x),</div><div class='add'>+		BDIGITS(y), RBIGNUM_LEN(y),</div><div class='add'>+		BDIGITS(z), RBIGNUM_LEN(z));</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big + other  -&gt; Numeric</div><div class='add'>+ *</div><div class='add'>+ *  Adds big and other, returning the result.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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='add'>+    long n;</div><div class='add'>+</div><div class='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='del'>-	/* fall through */</div><div class='add'>+	n = FIX2LONG(y);</div><div class='add'>+	if ((n &gt; 0) != RBIGNUM_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='ctx'>       case T_BIGNUM:</div><div class='del'>-	return bigadd(x, y, 0);</div><div class='add'>+	return bignorm(bigadd(x, y, 1));</div><div class='ctx'> </div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	return float_new(big2dbl(x) - RFLOAT(y)-&gt;value);</div><div class='add'>+	return DBL2NUM(rb_big2dbl(x) + RFLOAT_VALUE(y));</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big - other  -&gt; Numeric</div><div class='add'>+ *</div><div class='add'>+ *  Subtracts other from big, returning the result.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-big_mul(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'>-    unsigned int i = 0, j;</div><div class='del'>-    unsigned long n = 0;</div><div class='del'>-    VALUE z;</div><div class='del'>-    USHORT *zds;</div><div class='add'>+    long n;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(x)) x = int2big(FIX2LONG(x));</div><div class='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='add'>+	n = FIX2LONG(y);</div><div class='add'>+	if ((n &gt; 0) != RBIGNUM_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='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='del'>-	break;</div><div class='add'>+	return bignorm(bigadd(x, y, 0));</div><div class='ctx'> </div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	return float_new(big2dbl(x) * RFLOAT(y)-&gt;value);</div><div class='add'>+	return DBL2NUM(rb_big2dbl(x) - RFLOAT_VALUE(y));</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+	return rb_num_coerce_bin(x, y, '-');</div><div class='ctx'>     }</div><div class='add'>+}</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'>+static long</div><div class='add'>+big_real_len(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long i = RBIGNUM_LEN(x);</div><div class='add'>+    BDIGIT *xds = BDIGITS(x);</div><div class='add'>+    while (--i &amp;&amp; !xds[i]);</div><div class='add'>+    return i + 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bigmul1_single(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    BDIGIT_DBL n;</div><div class='add'>+    VALUE z = bignew(2, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='add'>+    BDIGIT *xds, *yds, *zds;</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'>+    n = (BDIGIT_DBL)xds[0] * yds[0];</div><div class='add'>+    zds[0] = BIGLO(n);</div><div class='add'>+    zds[1] = (BDIGIT)BIGDN(n);</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'>+bigmul1_normal(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long xl = RBIGNUM_LEN(x), yl = RBIGNUM_LEN(y), i, j = xl + yl + 1;</div><div class='add'>+    BDIGIT_DBL n = 0;</div><div class='add'>+    VALUE z = bignew(j, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='add'>+    BDIGIT *xds, *yds, *zds;</div><div class='add'>+</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    yds = BDIGITS(y);</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'>     while (j--) zds[j] = 0;</div><div class='del'>-    for (i = 0; i &lt; RBIGNUM(x)-&gt;len; i++) {</div><div class='del'>-	unsigned long dd = BDIGITS(x)[i]; </div><div class='add'>+    for (i = 0; i &lt; xl; i++) {</div><div class='add'>+	BDIGIT_DBL dd;</div><div class='add'>+	dd = xds[i];</div><div class='ctx'> 	if (dd == 0) continue;</div><div class='ctx'> 	n = 0;</div><div class='del'>-	for (j = 0; j &lt; RBIGNUM(y)-&gt;len; j++) {</div><div class='del'>-	    int ee = n + dd * BDIGITS(y)[j];</div><div class='add'>+	for (j = 0; j &lt; yl; j++) {</div><div class='add'>+	    BDIGIT_DBL ee = n + (BDIGIT_DBL)dd * yds[j];</div><div class='ctx'> 	    n = zds[i + j] + ee;</div><div class='ctx'> 	    if (ee) zds[i + j] = BIGLO(n);</div><div class='ctx'> 	    n = BIGDN(n);</div><div class='ctx'> 	}</div><div class='ctx'> 	if (n) {</div><div class='del'>-	    zds[i + j] = n;</div><div class='add'>+	    zds[i + j] = (BDIGIT)n;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+    rb_thread_check_ints();</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return bignorm(z);</div><div class='add'>+static VALUE bigmul0(VALUE x, VALUE y);</div><div class='add'>+</div><div class='add'>+/* balancing multiplication by slicing larger argument */</div><div class='add'>+static VALUE</div><div class='add'>+bigmul1_balance(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE z, t1, t2;</div><div class='add'>+    long i, xn, yn, r, n;</div><div class='add'>+    BDIGIT *yds, *zds, *t1ds;</div><div class='add'>+</div><div class='add'>+    xn = RBIGNUM_LEN(x);</div><div class='add'>+    yn = RBIGNUM_LEN(y);</div><div class='add'>+    assert(2 * xn &lt;= yn || 3 * xn &lt;= 2*(yn+2));</div><div class='add'>+</div><div class='add'>+    z = bignew(xn + yn, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='add'>+    t1 = bignew(xn, 1);</div><div class='add'>+</div><div class='add'>+    yds = BDIGITS(y);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+    t1ds = BDIGITS(t1);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; xn + yn; i++) zds[i] = 0;</div><div class='add'>+</div><div class='add'>+    n = 0;</div><div class='add'>+    while (yn &gt; 0) {</div><div class='add'>+	r = xn &gt; yn ? yn : xn;</div><div class='add'>+	MEMCPY(t1ds, yds + n, BDIGIT, r);</div><div class='add'>+	RBIGNUM_SET_LEN(t1, r);</div><div class='add'>+	t2 = bigmul0(x, t1);</div><div class='add'>+	bigadd_core(zds + n, RBIGNUM_LEN(z) - n,</div><div class='add'>+		    BDIGITS(t2), big_real_len(t2),</div><div class='add'>+		    zds + n, RBIGNUM_LEN(z) - n);</div><div class='add'>+	yn -= r;</div><div class='add'>+	n += r;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* split a bignum into high and low bignums */</div><div class='ctx'> static void</div><div class='del'>-bigdivmod(x, y, div, mod, modulo)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-    VALUE *div, *mod;</div><div class='del'>-    int modulo;</div><div class='del'>-{</div><div class='del'>-    unsigned int nx = RBIGNUM(x)-&gt;len, ny = RBIGNUM(y)-&gt;len, i, j;</div><div class='del'>-    VALUE yy, z;</div><div class='del'>-    USHORT *xds, *yds, *zds, *tds;</div><div class='del'>-    unsigned long t2;</div><div class='del'>-    long num;</div><div class='del'>-    USHORT dd, q;</div><div class='add'>+big_split(VALUE v, long n, volatile VALUE *ph, volatile VALUE *pl)</div><div class='add'>+{</div><div class='add'>+    long hn = 0, ln = RBIGNUM_LEN(v);</div><div class='add'>+    VALUE h, l;</div><div class='add'>+    BDIGIT *vds = BDIGITS(v);</div><div class='ctx'> </div><div class='del'>-    yds = BDIGITS(y);</div><div class='del'>-    if (ny == 0 &amp;&amp; yds[0] == 0) num_zerodiv();</div><div class='del'>-    if (nx &lt; ny	|| nx == ny &amp;&amp; BDIGITS(x)[nx - 1] &lt; BDIGITS(y)[ny - 1]) {</div><div class='del'>-	if (div) *div = INT2FIX(0);</div><div class='del'>-	if (mod) *mod = bignorm(x);</div><div class='add'>+    if (ln &gt; n) {</div><div class='add'>+	hn = ln - n;</div><div class='add'>+	ln = n;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!hn) {</div><div class='add'>+	h = rb_uint2big(0);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	while (--hn &amp;&amp; !vds[hn + ln]);</div><div class='add'>+	h = bignew(hn += 2, 1);</div><div class='add'>+	MEMCPY(BDIGITS(h), vds + ln, BDIGIT, hn - 1);</div><div class='add'>+	BDIGITS(h)[hn - 1] = 0; /* margin for carry */</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (--ln &amp;&amp; !vds[ln]);</div><div class='add'>+    l = bignew(ln += 2, 1);</div><div class='add'>+    MEMCPY(BDIGITS(l), vds, BDIGIT, ln - 1);</div><div class='add'>+    BDIGITS(l)[ln - 1] = 0; /* margin for carry */</div><div class='add'>+</div><div class='add'>+    *pl = l;</div><div class='add'>+    *ph = h;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* multiplication by karatsuba method */</div><div class='add'>+static VALUE</div><div class='add'>+bigmul1_karatsuba(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long i, n, xn, yn, t1n, t2n;</div><div class='add'>+    VALUE xh, xl, yh, yl, z, t1, t2, t3;</div><div class='add'>+    BDIGIT *zds;</div><div class='add'>+</div><div class='add'>+    xn = RBIGNUM_LEN(x);</div><div class='add'>+    yn = RBIGNUM_LEN(y);</div><div class='add'>+    n = yn / 2;</div><div class='add'>+    big_split(x, n, &amp;xh, &amp;xl);</div><div class='add'>+    if (x == y) {</div><div class='add'>+	yh = xh; yl = xl;</div><div class='add'>+    }</div><div class='add'>+    else big_split(y, n, &amp;yh, &amp;yl);</div><div class='add'>+</div><div class='add'>+    /* x = xh * b + xl</div><div class='add'>+     * y = yh * b + yl</div><div class='add'>+     *</div><div class='add'>+     * Karatsuba method:</div><div class='add'>+     *   x * y = z2 * b^2 + z1 * b + z0</div><div class='add'>+     *   where</div><div class='add'>+     *     z2 = xh * yh</div><div class='add'>+     *     z0 = xl * yl</div><div class='add'>+     *     z1 = (xh + xl) * (yh + yl) - z2 - z0</div><div class='add'>+     *</div><div class='add'>+     *  ref: http://en.wikipedia.org/wiki/Karatsuba_algorithm</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /* allocate a result bignum */</div><div class='add'>+    z = bignew(xn + yn, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+    /* t1 &lt;- xh * yh */</div><div class='add'>+    t1 = bigmul0(xh, yh);</div><div class='add'>+    t1n = big_real_len(t1);</div><div class='add'>+</div><div class='add'>+    /* copy t1 into high bytes of the result (z2) */</div><div class='add'>+    MEMCPY(zds + 2 * n, BDIGITS(t1), BDIGIT, t1n);</div><div class='add'>+    for (i = 2 * n + t1n; i &lt; xn + yn; i++) zds[i] = 0;</div><div class='add'>+</div><div class='add'>+    if (!BIGZEROP(xl) &amp;&amp; !BIGZEROP(yl)) {</div><div class='add'>+	/* t2 &lt;- xl * yl */</div><div class='add'>+	t2 = bigmul0(xl, yl);</div><div class='add'>+	t2n = big_real_len(t2);</div><div class='add'>+</div><div class='add'>+	/* copy t2 into low bytes of the result (z0) */</div><div class='add'>+	MEMCPY(zds, BDIGITS(t2), BDIGIT, t2n);</div><div class='add'>+	for (i = t2n; i &lt; 2 * n; i++) zds[i] = 0;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	t2 = Qundef;</div><div class='add'>+	t2n = 0;</div><div class='add'>+</div><div class='add'>+	/* copy 0 into low bytes of the result (z0) */</div><div class='add'>+	for (i = 0; i &lt; 2 * n; i++) zds[i] = 0;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* xh &lt;- xh + xl */</div><div class='add'>+    if (RBIGNUM_LEN(xl) &gt; RBIGNUM_LEN(xh)) {</div><div class='add'>+	t3 = xl; xl = xh; xh = t3;</div><div class='add'>+    }</div><div class='add'>+    /* xh has a margin for carry */</div><div class='add'>+    bigadd_core(BDIGITS(xh), RBIGNUM_LEN(xh),</div><div class='add'>+		BDIGITS(xl), RBIGNUM_LEN(xl),</div><div class='add'>+		BDIGITS(xh), RBIGNUM_LEN(xh));</div><div class='add'>+</div><div class='add'>+    /* yh &lt;- yh + yl */</div><div class='add'>+    if (x != y) {</div><div class='add'>+	if (RBIGNUM_LEN(yl) &gt; RBIGNUM_LEN(yh)) {</div><div class='add'>+	    t3 = yl; yl = yh; yh = t3;</div><div class='add'>+	}</div><div class='add'>+	/* yh has a margin for carry */</div><div class='add'>+	bigadd_core(BDIGITS(yh), RBIGNUM_LEN(yh),</div><div class='add'>+		    BDIGITS(yl), RBIGNUM_LEN(yl),</div><div class='add'>+		    BDIGITS(yh), RBIGNUM_LEN(yh));</div><div class='add'>+    }</div><div class='add'>+    else yh = xh;</div><div class='add'>+</div><div class='add'>+    /* t3 &lt;- xh * yh */</div><div class='add'>+    t3 = bigmul0(xh, yh);</div><div class='add'>+</div><div class='add'>+    i = xn + yn - n;</div><div class='add'>+    /* subtract t1 from t3 */</div><div class='add'>+    bigsub_core(BDIGITS(t3), big_real_len(t3), BDIGITS(t1), t1n, BDIGITS(t3), big_real_len(t3));</div><div class='add'>+</div><div class='add'>+    /* subtract t2 from t3; t3 is now the middle term of the product */</div><div class='add'>+    if (t2 != Qundef) bigsub_core(BDIGITS(t3), big_real_len(t3), BDIGITS(t2), t2n, BDIGITS(t3), big_real_len(t3));</div><div class='add'>+</div><div class='add'>+    /* add t3 to middle bytes of the result (z1) */</div><div class='add'>+    bigadd_core(zds + n, i, BDIGITS(t3), big_real_len(t3), zds + n, i);</div><div class='add'>+</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+biglsh_bang(BDIGIT *xds, long xn, unsigned long shift)</div><div class='add'>+{</div><div class='add'>+    long const s1 = shift/BITSPERDIG;</div><div class='add'>+    int const s2 = (int)(shift%BITSPERDIG);</div><div class='add'>+    int const s3 = BITSPERDIG-s2;</div><div class='add'>+    BDIGIT* zds;</div><div class='add'>+    BDIGIT num;</div><div class='add'>+    long i;</div><div class='add'>+    if (s1 &gt;= xn) {</div><div class='add'>+	MEMZERO(xds, BDIGIT, xn);</div><div class='add'>+	return;</div><div class='add'>+    }</div><div class='add'>+    zds = xds + xn - 1;</div><div class='add'>+    xn -= s1 + 1;</div><div class='add'>+    num = xds[xn]&lt;&lt;s2;</div><div class='add'>+    do {</div><div class='add'>+	*zds-- = num | xds[--xn]&gt;&gt;s3;</div><div class='add'>+	num = xds[xn]&lt;&lt;s2;</div><div class='add'>+    }</div><div class='add'>+    while (xn &gt; 0);</div><div class='add'>+    *zds = num;</div><div class='add'>+    for (i = s1; i &gt; 0; --i)</div><div class='add'>+	*zds-- = 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+bigrsh_bang(BDIGIT* xds, long xn, 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'>+    int s3 = BITSPERDIG - s2;</div><div class='add'>+    int i;</div><div class='add'>+    BDIGIT num;</div><div class='add'>+    BDIGIT* zds;</div><div class='add'>+    if (s1 &gt;= xn) {</div><div class='add'>+	MEMZERO(xds, BDIGIT, xn);</div><div class='ctx'> 	return;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    i = 0;</div><div class='add'>+    zds = xds + s1;</div><div class='add'>+    num = *zds++&gt;&gt;s2;</div><div class='add'>+    do {</div><div class='add'>+	xds[i++] = (BDIGIT)(*zds&lt;&lt;s3) | num;</div><div class='add'>+	num = *zds++&gt;&gt;s2;</div><div class='add'>+    }</div><div class='add'>+    while (i &lt; xn - s1 - 1);</div><div class='add'>+    xds[i] = num;</div><div class='add'>+    MEMZERO(xds + xn - s1, BDIGIT, s1);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+big_split3(VALUE v, long n, volatile VALUE* p0, volatile VALUE* p1, volatile VALUE* p2)</div><div class='add'>+{</div><div class='add'>+    VALUE v0, v12, v1, v2;</div><div class='add'>+</div><div class='add'>+    big_split(v, n, &amp;v12, &amp;v0);</div><div class='add'>+    big_split(v12, n, &amp;v2, &amp;v1);</div><div class='add'>+</div><div class='add'>+    *p0 = bigtrunc(v0);</div><div class='add'>+    *p1 = bigtrunc(v1);</div><div class='add'>+    *p2 = bigtrunc(v2);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE big_lshift(VALUE, unsigned long);</div><div class='add'>+static VALUE big_rshift(VALUE, unsigned long);</div><div class='add'>+static VALUE bigdivrem(VALUE, VALUE, volatile VALUE*, volatile VALUE*);</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bigmul1_toom3(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long n, xn, yn, zn;</div><div class='add'>+    VALUE x0, x1, x2, y0, y1, y2;</div><div class='add'>+    VALUE u0, u1, u2, u3, u4, v1, v2, v3;</div><div class='add'>+    VALUE z0, z1, z2, z3, z4, z, t;</div><div class='add'>+    BDIGIT* zds;</div><div class='add'>+</div><div class='add'>+    xn = RBIGNUM_LEN(x);</div><div class='add'>+    yn = RBIGNUM_LEN(y);</div><div class='add'>+    assert(xn &lt;= yn);  /* assume y &gt;= x */</div><div class='add'>+</div><div class='add'>+    n = (yn + 2) / 3;</div><div class='add'>+    big_split3(x, n, &amp;x0, &amp;x1, &amp;x2);</div><div class='add'>+    if (x == y) {</div><div class='add'>+	y0 = x0; y1 = x1; y2 = x2;</div><div class='add'>+    }</div><div class='add'>+    else big_split3(y, n, &amp;y0, &amp;y1, &amp;y2);</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, z4, and z5.</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'>+    u1 = bigtrunc(bigadd(x0, x2, 1));</div><div class='add'>+</div><div class='add'>+    /* x(-1) : u2 &lt;- u1 - x1 = x0 - x1 + x2 */</div><div class='add'>+    u2 = bigtrunc(bigsub(u1, x1));</div><div class='add'>+</div><div class='add'>+    /* x(1) : u1 &lt;- u1 + x1 = x0 + x1 + x2 */</div><div class='add'>+    u1 = bigtrunc(bigadd(u1, x1, 1));</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'>+    u3 = bigadd(u2, x2, 1);</div><div class='add'>+    if (BDIGITS(u3)[RBIGNUM_LEN(u3)-1] &amp; BIGRAD_HALF) {</div><div class='add'>+	rb_big_resize(u3, RBIGNUM_LEN(u3) + 1);</div><div class='add'>+	BDIGITS(u3)[RBIGNUM_LEN(u3)-1] = 0;</div><div class='add'>+    }</div><div class='add'>+    biglsh_bang(BDIGITS(u3), RBIGNUM_LEN(u3), 1);</div><div class='add'>+    u3 = bigtrunc(bigadd(bigtrunc(u3), x0, 0));</div><div class='add'>+</div><div class='add'>+    if (x == y) {</div><div class='add'>+	v1 = u1; v2 = u2; v3 = u3;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* v1 &lt;- y0 + y2 */</div><div class='add'>+	v1 = bigtrunc(bigadd(y0, y2, 1));</div><div class='add'>+</div><div class='add'>+	/* y(-1) : v2 &lt;- v1 - y1 = y0 - y1 + y2 */</div><div class='add'>+	v2 = bigtrunc(bigsub(v1, y1));</div><div class='add'>+</div><div class='add'>+	/* y(1) : v1 &lt;- v1 + y1 = y0 + y1 + y2 */</div><div class='add'>+	v1 = bigtrunc(bigadd(v1, y1, 1));</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'>+	v3 = bigadd(v2, y2, 1);</div><div class='add'>+	if (BDIGITS(v3)[RBIGNUM_LEN(v3)-1] &amp; BIGRAD_HALF) {</div><div class='add'>+	    rb_big_resize(v3, RBIGNUM_LEN(v3) + 1);</div><div class='add'>+	    BDIGITS(v3)[RBIGNUM_LEN(v3)-1] = 0;</div><div class='add'>+	}</div><div class='add'>+	biglsh_bang(BDIGITS(v3), RBIGNUM_LEN(v3), 1);</div><div class='add'>+	v3 = bigtrunc(bigadd(bigtrunc(v3), y0, 0));</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* z(0) : u0 &lt;- x0 * y0 */</div><div class='add'>+    u0 = bigtrunc(bigmul0(x0, y0));</div><div class='add'>+</div><div class='add'>+    /* z(1) : u1 &lt;- u1 * v1 */</div><div class='add'>+    u1 = bigtrunc(bigmul0(u1, v1));</div><div class='add'>+</div><div class='add'>+    /* z(-1) : u2 &lt;- u2 * v2 */</div><div class='add'>+    u2 = bigtrunc(bigmul0(u2, v2));</div><div class='add'>+</div><div class='add'>+    /* z(-2) : u3 &lt;- u3 * v3 */</div><div class='add'>+    u3 = bigtrunc(bigmul0(u3, v3));</div><div class='add'>+</div><div class='add'>+    /* z(inf) : u4 &lt;- x2 * y2 */</div><div class='add'>+    u4 = bigtrunc(bigmul0(x2, y2));</div><div class='add'>+</div><div class='add'>+    /* for GC */</div><div class='add'>+    v1 = v2 = v3 = Qnil;</div><div class='add'>+</div><div class='add'>+    /*</div><div class='add'>+     * [Step2] interpolating z0, z1, z2, z3, z4, and z5.</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    /* z0 &lt;- z(0) == u0 */</div><div class='add'>+    z0 = u0;</div><div class='add'>+</div><div class='add'>+    /* z4 &lt;- z(inf) == u4 */</div><div class='add'>+    z4 = u4;</div><div class='add'>+</div><div class='add'>+    /* z3 &lt;- (z(-2) - z(1)) / 3 == (u3 - u1) / 3 */</div><div class='add'>+    z3 = bigadd(u3, u1, 0);</div><div class='add'>+    bigdivrem(z3, big_three, &amp;z3, NULL); /* TODO: optimize */</div><div class='add'>+    bigtrunc(z3);</div><div class='add'>+</div><div class='add'>+    /* z1 &lt;- (z(1) - z(-1)) / 2 == (u1 - u2) / 2 */</div><div class='add'>+    z1 = bigtrunc(bigadd(u1, u2, 0));</div><div class='add'>+    bigrsh_bang(BDIGITS(z1), RBIGNUM_LEN(z1), 1);</div><div class='add'>+</div><div class='add'>+    /* z2 &lt;- z(-1) - z(0) == u2 - u0 */</div><div class='add'>+    z2 = bigtrunc(bigadd(u2, u0, 0));</div><div class='add'>+</div><div class='add'>+    /* z3 &lt;- (z2 - z3) / 2 + 2 * z(inf) == (z2 - z3) / 2 + 2 * u4 */</div><div class='add'>+    z3 = bigtrunc(bigadd(z2, z3, 0));</div><div class='add'>+    bigrsh_bang(BDIGITS(z3), RBIGNUM_LEN(z3), 1);</div><div class='add'>+    t = big_lshift(u4, 1); /* TODO: combining with next addition */</div><div class='add'>+    z3 = bigtrunc(bigadd(z3, t, 1));</div><div class='add'>+</div><div class='add'>+    /* z2 &lt;- z2 + z1 - z(inf) == z2 + z1 - u4 */</div><div class='add'>+    z2 = bigtrunc(bigadd(z2, z1, 1));</div><div class='add'>+    z2 = bigtrunc(bigadd(z2, u4, 0));</div><div class='add'>+</div><div class='add'>+    /* z1 &lt;- z1 - z3 */</div><div class='add'>+    z1 = bigtrunc(bigadd(z1, z3, 0));</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'>+    zn = 6*n + 1;</div><div class='add'>+    z = bignew(zn, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+    MEMCPY(zds, BDIGITS(z0), BDIGIT, RBIGNUM_LEN(z0));</div><div class='add'>+    MEMZERO(zds + RBIGNUM_LEN(z0), BDIGIT, zn - RBIGNUM_LEN(z0));</div><div class='add'>+    bigadd_core(zds +   n, zn -   n, BDIGITS(z1), big_real_len(z1), zds +   n, zn -   n);</div><div class='add'>+    bigadd_core(zds + 2*n, zn - 2*n, BDIGITS(z2), big_real_len(z2), zds + 2*n, zn - 2*n);</div><div class='add'>+    bigadd_core(zds + 3*n, zn - 3*n, BDIGITS(z3), big_real_len(z3), zds + 3*n, zn - 3*n);</div><div class='add'>+    bigadd_core(zds + 4*n, zn - 4*n, BDIGITS(z4), big_real_len(z4), zds + 4*n, zn - 4*n);</div><div class='add'>+    z = bignorm(z);</div><div class='add'>+</div><div class='add'>+    return bignorm(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 VALUE</div><div class='add'>+bigsqr_fast(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long len = RBIGNUM_LEN(x), i, j;</div><div class='add'>+    VALUE z = bignew(2 * len + 1, 1);</div><div class='add'>+    BDIGIT *xds = BDIGITS(x), *zds = BDIGITS(z);</div><div class='add'>+    BDIGIT_DBL c, v, w;</div><div class='add'>+</div><div class='add'>+    for (i = 2 * len + 1; i--; ) zds[i] = 0;</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+	v = (BDIGIT_DBL)xds[i];</div><div class='add'>+	if (!v) 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'>+	for (j = i + 1; j &lt; len; j++) {</div><div class='add'>+	    w = (BDIGIT_DBL)xds[j];</div><div class='add'>+	    c += (BDIGIT_DBL)zds[i + j] + BIGLO(v) * w;</div><div class='add'>+	    zds[i + j] = BIGLO(c);</div><div class='add'>+	    c = BIGDN(c);</div><div class='add'>+	    if (BIGDN(v)) c += w;</div><div class='add'>+	}</div><div class='add'>+	if (c) {</div><div class='add'>+	    c += (BDIGIT_DBL)zds[i + len];</div><div class='add'>+	    zds[i + len] = BIGLO(c);</div><div class='add'>+	    c = BIGDN(c);</div><div class='add'>+	}</div><div class='add'>+	if (c) zds[i + len + 1] += (BDIGIT)c;</div><div class='add'>+    }</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</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'>+</div><div class='add'>+/* determine whether a bignum is sparse or not by random sampling */</div><div class='add'>+static inline VALUE</div><div class='add'>+big_sparse_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    long c = 0, n = RBIGNUM_LEN(x);</div><div class='add'>+</div><div class='add'>+    if (          BDIGITS(x)[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+    if (c &lt;= 1 &amp;&amp; BDIGITS(x)[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+    if (c &lt;= 1 &amp;&amp; BDIGITS(x)[rb_genrand_ulong_limited(n / 2) + n / 4]) c++;</div><div class='add'>+</div><div class='add'>+    return (c &lt;= 1) ? Qtrue : Qfalse;</div><div class='add'>+}</div><div class='add'>+</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;</div><div class='add'>+</div><div class='add'>+    xn = RBIGNUM_LEN(x);</div><div class='add'>+    yn = RBIGNUM_LEN(y);</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'>+	VALUE t;</div><div class='add'>+	long tn;</div><div class='add'>+	t = x; x = y; y = t;</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'>+    /* 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 (x == y) return bigsqr_fast(x);</div><div class='add'>+	if (xn == 1 &amp;&amp; yn == 1) return bigmul1_single(x, y);</div><div class='add'>+	return bigmul1_normal(x, y);</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 (big_sparse_p(x)) goto normal;</div><div class='add'>+    if (big_sparse_p(y)) return bigmul1_normal(y, x);</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 (2 * xn &lt;= yn) return bigmul1_balance(x, y);</div><div class='add'>+</div><div class='add'>+    if (xn &lt; TOOM3_MUL_DIGITS) {</div><div class='add'>+	/* multiplication by karatsuba method */</div><div class='add'>+	return bigmul1_karatsuba(x, y);</div><div class='add'>+    }</div><div class='add'>+    else if (3*xn &lt;= 2*(yn + 2))</div><div class='add'>+	return bigmul1_balance(x, y);</div><div class='add'>+    return bigmul1_toom3(x, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big * other  -&gt; Numeric</div><div class='add'>+ *</div><div class='add'>+ *  Multiplies big and other, returning the result.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_mul(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    switch (TYPE(y)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	return DBL2NUM(rb_big2dbl(x) * RFLOAT_VALUE(y));</div><div class='add'>+</div><div class='add'>+      default:</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='add'>+}</div><div class='add'>+</div><div class='add'>+struct big_div_struct {</div><div class='add'>+    long nx, ny;</div><div class='add'>+    BDIGIT *yds, *zds;</div><div class='add'>+    VALUE stop;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</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'>+    long nx = bds-&gt;nx, ny = bds-&gt;ny;</div><div class='add'>+    long i, j, nyzero;</div><div class='add'>+    BDIGIT *yds = bds-&gt;yds, *zds = bds-&gt;zds;</div><div class='add'>+    BDIGIT_DBL t2;</div><div class='add'>+    BDIGIT_DBL_SIGNED num;</div><div class='add'>+    BDIGIT q;</div><div class='add'>+</div><div class='add'>+    j = nx==ny?nx+1:nx;</div><div class='add'>+    for (nyzero = 0; !yds[nyzero]; nyzero++);</div><div class='add'>+    do {</div><div class='add'>+	if (bds-&gt;stop) return Qnil;</div><div class='add'>+	if (zds[j] ==  yds[ny-1]) q = (BDIGIT)BIGRAD-1;</div><div class='add'>+	else q = (BDIGIT)((BIGUP(zds[j]) + zds[j-1])/yds[ny-1]);</div><div class='add'>+	if (q) {</div><div class='add'>+           i = nyzero; num = 0; t2 = 0;</div><div class='add'>+	    do {			/* multiply and subtract */</div><div class='add'>+		BDIGIT_DBL ee;</div><div class='add'>+		t2 += (BDIGIT_DBL)yds[i] * q;</div><div class='add'>+		ee = num - BIGLO(t2);</div><div class='add'>+		num = (BDIGIT_DBL)zds[j - ny + i] + ee;</div><div class='add'>+		if (ee) zds[j - ny + i] = BIGLO(num);</div><div class='add'>+		num = BIGDN(num);</div><div class='add'>+		t2 = BIGDN(t2);</div><div class='add'>+	    } while (++i &lt; ny);</div><div class='add'>+	    num += zds[j - ny + i] - t2;/* borrow from high digit; don't update */</div><div class='add'>+	    while (num) {		/* "add back" required */</div><div class='add'>+		i = 0; num = 0; q--;</div><div class='add'>+		do {</div><div class='add'>+		    BDIGIT_DBL ee = num + yds[i];</div><div class='add'>+		    num = (BDIGIT_DBL)zds[j - ny + i] + ee;</div><div class='add'>+		    if (ee) zds[j - ny + i] = BIGLO(num);</div><div class='add'>+		    num = BIGDN(num);</div><div class='add'>+		} while (++i &lt; ny);</div><div class='add'>+		num--;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	zds[j] = q;</div><div class='add'>+    } while (--j &gt;= ny);</div><div class='add'>+    return Qnil;</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'>+    VALUE *stop = (VALUE*)ptr;</div><div class='add'>+    *stop = Qtrue;</div><div class='add'>+}</div><div class='add'>+</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'>+    struct big_div_struct bds;</div><div class='add'>+    long nx = RBIGNUM_LEN(x), ny = RBIGNUM_LEN(y);</div><div class='add'>+    long i, j;</div><div class='add'>+    VALUE z, yy, zz;</div><div class='add'>+    BDIGIT *xds, *yds, *zds, *tds;</div><div class='add'>+    BDIGIT_DBL t2;</div><div class='add'>+    BDIGIT dd, q;</div><div class='add'>+</div><div class='add'>+    if (BIGZEROP(y)) rb_num_zerodiv();</div><div class='ctx'>     xds = BDIGITS(x);</div><div class='add'>+    yds = BDIGITS(y);</div><div class='add'>+    if (nx &lt; ny || (nx == ny &amp;&amp; xds[nx - 1] &lt; yds[ny - 1])) {</div><div class='add'>+	if (divp) *divp = rb_int2big(0);</div><div class='add'>+	if (modp) *modp = x;</div><div class='add'>+	return Qnil;</div><div class='add'>+    }</div><div class='ctx'>     if (ny == 1) {</div><div class='ctx'> 	dd = yds[0];</div><div class='del'>-	z = big_clone(x);</div><div class='add'>+	z = rb_big_clone(x);</div><div class='ctx'> 	zds = BDIGITS(z);</div><div class='ctx'> 	t2 = 0; i = nx;</div><div class='ctx'> 	while (i--) {</div><div class='ctx'> 	    t2 = BIGUP(t2) + zds[i];</div><div class='del'>-	    zds[i] = t2 / dd;</div><div class='add'>+	    zds[i] = (BDIGIT)(t2 / dd);</div><div class='ctx'> 	    t2 %= dd;</div><div class='ctx'> 	}</div><div class='del'>-	if (div) *div = bignorm(z);</div><div class='del'>-	if (mod) {</div><div class='del'>-	    if (!RBIGNUM(y)-&gt;sign) t2 = -t2;</div><div class='del'>-	    *mod = INT2FIX(t2);</div><div class='add'>+	RBIGNUM_SET_SIGN(z, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='add'>+	if (modp) {</div><div class='add'>+	    *modp = rb_uint2big((VALUE)t2);</div><div class='add'>+	    RBIGNUM_SET_SIGN(*modp, RBIGNUM_SIGN(x));</div><div class='ctx'> 	}</div><div class='del'>-	return;</div><div class='add'>+	if (divp) *divp = z;</div><div class='add'>+	return Qnil;</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='add'>+</div><div class='add'>+    z = bignew(nx==ny?nx+2:nx+1, RBIGNUM_SIGN(x)==RBIGNUM_SIGN(y));</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'>     if (nx==ny) zds[nx+1] = 0;</div><div class='ctx'>     while (!yds[ny-1]) ny--;</div><div class='del'>-    if ((dd = BIGRAD/(int)(yds[ny-1]+1)) != 1) {</div><div class='del'>-	yy = big_clone(y);</div><div class='add'>+</div><div class='add'>+    dd = 0;</div><div class='add'>+    q = yds[ny-1];</div><div class='add'>+    while ((q &amp; (BDIGIT)(1UL&lt;&lt;(BITSPERDIG-1))) == 0) {</div><div class='add'>+	q &lt;&lt;= 1UL;</div><div class='add'>+	dd++;</div><div class='add'>+    }</div><div class='add'>+    if (dd) {</div><div class='add'>+	yy = rb_big_clone(y);</div><div class='ctx'> 	tds = BDIGITS(yy);</div><div class='ctx'> 	j = 0;</div><div class='del'>-	num = 0;</div><div class='add'>+	t2 = 0;</div><div class='ctx'> 	while (j&lt;ny) {</div><div class='del'>-	    num += (long)yds[j]*dd;</div><div class='del'>-	    tds[j++] = BIGLO(num);</div><div class='del'>-	    num = BIGDN(num);</div><div class='add'>+	    t2 += (BDIGIT_DBL)yds[j]&lt;&lt;dd;</div><div class='add'>+	    tds[j++] = BIGLO(t2);</div><div class='add'>+	    t2 = BIGDN(t2);</div><div class='ctx'> 	}</div><div class='ctx'> 	yds = tds;</div><div class='add'>+	RB_GC_GUARD(y) = yy;</div><div class='ctx'> 	j = 0;</div><div class='del'>-	num = 0;</div><div class='add'>+	t2 = 0;</div><div class='ctx'> 	while (j&lt;nx) {</div><div class='del'>-	    num += (long)xds[j]*dd;</div><div class='del'>-	    zds[j++] = BIGLO(num);</div><div class='del'>-	    num = BIGDN(num);</div><div class='add'>+	    t2 += (BDIGIT_DBL)xds[j]&lt;&lt;dd;</div><div class='add'>+	    zds[j++] = BIGLO(t2);</div><div class='add'>+	    t2 = BIGDN(t2);</div><div class='ctx'> 	}</div><div class='del'>-	zds[j] = num;</div><div class='add'>+	zds[j] = (BDIGIT)t2;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	zds[nx] = 0;</div><div class='ctx'> 	j = nx;</div><div class='ctx'> 	while (j--) zds[j] = xds[j];</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 = (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'>-		int ee;</div><div class='del'>-		t2 += (long)yds[i] * q;</div><div class='del'>-		ee = num - BIGLO(t2);</div><div class='del'>-		num = 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'>-		    int ee = num + yds[i];</div><div class='del'>-		    num = (long) 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 (div) {			/* move quotient down in z */</div><div class='del'>-	*div = big_clone(z);</div><div class='del'>-	zds = BDIGITS(*div);</div><div class='add'>+</div><div class='add'>+    bds.nx = nx;</div><div class='add'>+    bds.ny = ny;</div><div class='add'>+    bds.zds = zds;</div><div class='add'>+    bds.yds = yds;</div><div class='add'>+    bds.stop = Qfalse;</div><div class='add'>+    if (nx &gt; 10000 || ny &gt; 10000) {</div><div class='add'>+	rb_thread_blocking_region(bigdivrem1, &amp;bds, rb_big_stop, &amp;bds.stop);</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'>+    if (divp) {			/* move quotient down in z */</div><div class='add'>+	*divp = zz = rb_big_clone(z);</div><div class='add'>+	zds = BDIGITS(zz);</div><div class='ctx'> 	j = (nx==ny ? nx+2 : nx+1) - ny;</div><div class='ctx'> 	for (i = 0;i &lt; j;i++) zds[i] = zds[i+ny];</div><div class='del'>-	RBIGNUM(*div)-&gt;len = i;</div><div class='del'>-	*div = bignorm(*div);</div><div class='add'>+	if (!zds[i-1]) i--;</div><div class='add'>+	RBIGNUM_SET_LEN(zz, i);</div><div class='ctx'>     }</div><div class='del'>-    if (mod) {			/* just normalize remainder */</div><div class='del'>-	*mod = big_clone(z);</div><div class='add'>+    if (modp) {			/* normalize remainder */</div><div class='add'>+	*modp = zz = rb_big_clone(z);</div><div class='add'>+	zds = BDIGITS(zz);</div><div class='add'>+	while (--ny &amp;&amp; !zds[ny]); ++ny;</div><div class='ctx'> 	if (dd) {</div><div class='del'>-	    zds = BDIGITS(*mod);</div><div class='ctx'> 	    t2 = 0; i = ny;</div><div class='ctx'> 	    while(i--) {</div><div class='del'>-		t2 = BIGUP(t2) + zds[i];</div><div class='del'>-		zds[i] = t2 / dd;</div><div class='del'>-		t2 %= dd;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-	RBIGNUM(*mod)-&gt;len = ny;</div><div class='del'>-	RBIGNUM(*mod)-&gt;sign = RBIGNUM(x)-&gt;sign;</div><div class='del'>-	if (modulo &amp;&amp; RBIGNUM(x)-&gt;sign != RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	    int len = ny;</div><div class='del'>-	    zds = BDIGITS(*mod);</div><div class='del'>-	    while (len-- &amp;&amp; !zds[len]);</div><div class='del'>-	    if (len &gt; 0) {</div><div class='del'>-		*mod = bigadd(*mod, y, 1);</div><div class='del'>-		return;</div><div class='add'>+		t2 = (t2 | zds[i]) &gt;&gt; dd;</div><div class='add'>+		q = zds[i];</div><div class='add'>+		zds[i] = BIGLO(t2);</div><div class='add'>+		t2 = BIGUP(q);</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	*mod = bignorm(*mod);</div><div class='add'>+	if (!zds[ny-1]) ny--;</div><div class='add'>+	RBIGNUM_SET_LEN(zz, ny);</div><div class='add'>+	RBIGNUM_SET_SIGN(zz, RBIGNUM_SIGN(x));</div><div class='ctx'>     }</div><div class='add'>+    return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static void</div><div class='add'>+bigdivmod(VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp)</div><div class='add'>+{</div><div class='add'>+    VALUE mod;</div><div class='add'>+</div><div class='add'>+    bigdivrem(x, y, divp, &amp;mod);</div><div class='add'>+    if (RBIGNUM_SIGN(x) != RBIGNUM_SIGN(y) &amp;&amp; !BIGZEROP(mod)) {</div><div class='add'>+	if (divp) *divp = bigadd(*divp, rb_int2big(1), 0);</div><div class='add'>+	if (modp) *modp = bigadd(mod, y, 1);</div><div class='add'>+    }</div><div class='add'>+    else if (modp) {</div><div class='add'>+	*modp = mod;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-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='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	return float_new(big2dbl(x) / RFLOAT(y)-&gt;value);</div><div class='add'>+	{</div><div class='add'>+	    double div = rb_big2dbl(x) / RFLOAT_VALUE(y);</div><div class='add'>+	    if (op == '/') {</div><div class='add'>+		return DBL2NUM(div);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		return rb_dbl2big(div);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+	return rb_num_coerce_bin(x, y, op);</div><div class='ctx'>     }</div><div class='del'>-    bigdivmod(x, y, &amp;z, 0, 0);</div><div class='add'>+    bigdivmod(x, y, &amp;z, 0);</div><div class='ctx'> </div><div class='del'>-    return z;</div><div class='add'>+    return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big / other     -&gt; Numeric</div><div class='add'>+ *</div><div class='add'>+ * Performs division: the class of the resulting object depends on</div><div class='add'>+ * the class of &lt;code&gt;numeric&lt;/code&gt; and on the magnitude of the</div><div class='add'>+ * result.</div><div class='add'>+ */</div><div class='add'>+</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='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.div(other)  -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ * Performs integer division: returns integer value.</div><div class='add'>+ */</div><div class='add'>+</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'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big % other         -&gt; Numeric</div><div class='add'>+ *     big.modulo(other)   -&gt; Numeric</div><div class='add'>+ *</div><div class='add'>+ *  Returns big modulo other. See Numeric.divmod for more</div><div class='add'>+ *  information.</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='add'>+{</div><div class='add'>+    VALUE z;</div><div class='ctx'> </div><div class='add'>+    switch (TYPE(y)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      default:</div><div class='add'>+	return rb_num_coerce_bin(x, y, '%');</div><div class='add'>+    }</div><div class='add'>+    bigdivmod(x, y, 0, &amp;z);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.remainder(numeric)    -&gt; number</div><div class='add'>+ *</div><div class='add'>+ *  Returns the remainder after dividing &lt;i&gt;big&lt;/i&gt; by &lt;i&gt;numeric&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     -1234567890987654321.remainder(13731)      #=&gt; -6966</div><div class='add'>+ *     -1234567890987654321.remainder(13731.24)   #=&gt; -9906.22531493148</div><div class='add'>+ */</div><div class='ctx'> static VALUE</div><div class='del'>-big_modulo(x, y, modulo)</div><div class='del'>-    VALUE x, y;</div><div class='del'>-    int modulo;</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='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='del'>-      case T_FLOAT:</div><div class='del'>-	y = dbl2big(RFLOAT(y)-&gt;value);</div><div class='add'>+      default:</div><div class='add'>+	return rb_num_coerce_bin(x, y, rb_intern("remainder"));</div><div class='add'>+    }</div><div class='add'>+    bigdivrem(x, y, 0, &amp;z);</div><div class='add'>+</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.divmod(numeric)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  See &lt;code&gt;Numeric#divmod&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+VALUE</div><div class='add'>+rb_big_divmod(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE div, mod;</div><div class='add'>+</div><div class='add'>+    switch (TYPE(y)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case T_BIGNUM:</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+	return rb_num_coerce_bin(x, y, rb_intern("divmod"));</div><div class='ctx'>     }</div><div class='del'>-    bigdivmod(x, y, 0, &amp;z, modulo);</div><div class='add'>+    bigdivmod(x, y, &amp;div, &amp;mod);</div><div class='ctx'> </div><div class='del'>-    return z;</div><div class='add'>+    return rb_assoc_new(bignorm(div), bignorm(mod));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-big_mod(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static int</div><div class='add'>+bdigbitsize(BDIGIT x)</div><div class='ctx'> {</div><div class='del'>-    return big_modulo(x, y, 1);</div><div class='add'>+    int size = 1;</div><div class='add'>+    int nb = BITSPERDIG / 2;</div><div class='add'>+    BDIGIT bits = (~0 &lt;&lt; nb);</div><div class='add'>+</div><div class='add'>+    if (!x) return 0;</div><div class='add'>+    while (x &gt; 1) {</div><div class='add'>+	if (x &amp; bits) {</div><div class='add'>+	    size += nb;</div><div class='add'>+	    x &gt;&gt;= nb;</div><div class='add'>+	}</div><div class='add'>+	x &amp;= ~bits;</div><div class='add'>+	nb /= 2;</div><div class='add'>+	bits &gt;&gt;= nb;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return size;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static VALUE big_lshift(VALUE, unsigned long);</div><div class='add'>+static VALUE big_rshift(VALUE, unsigned long);</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_remainder(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'>-    return big_modulo(x, y, 0);</div><div class='add'>+    if (n &lt; 0)</div><div class='add'>+	return big_lshift(x, (unsigned long)-n);</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='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-big_divmod(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+big_fdiv(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    VALUE div, mod;</div><div class='add'>+#define DBL_BIGDIG ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG)</div><div class='add'>+    VALUE z;</div><div class='add'>+    long l, ex, ey;</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    bigtrunc(x);</div><div class='add'>+    l = RBIGNUM_LEN(x) - 1;</div><div class='add'>+    ex = l * BITSPERDIG;</div><div class='add'>+    ex += bdigbitsize(BDIGITS(x)[l]);</div><div class='add'>+    ex -= 2 * DBL_BIGDIG * BITSPERDIG;</div><div class='add'>+    if (ex) x = big_shift(x, ex);</div><div class='ctx'> </div><div class='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='del'>-	break;</div><div class='del'>-</div><div class='add'>+	y = rb_int2big(FIX2LONG(y));</div><div class='add'>+      case T_BIGNUM: {</div><div class='add'>+	bigtrunc(y);</div><div class='add'>+	l = RBIGNUM_LEN(y) - 1;</div><div class='add'>+	ey = l * BITSPERDIG;</div><div class='add'>+	ey += bdigbitsize(BDIGITS(y)[l]);</div><div class='add'>+	ey -= DBL_BIGDIG * BITSPERDIG;</div><div class='add'>+	if (ey) y = big_shift(y, ey);</div><div class='add'>+      bignum:</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 DBL2NUM(INFINITY);</div><div class='add'>+	    if (l &lt; INT_MIN) return DBL2NUM(0.0);</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+	return DBL2NUM(ldexp(big2dbl(z), (int)l));</div><div class='add'>+      }</div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	y = dbl2big(RFLOAT(y)-&gt;value);</div><div class='add'>+	y = dbl2big(ldexp(frexp(RFLOAT_VALUE(y), &amp;i), DBL_MANT_DIG));</div><div class='add'>+	ey = i - DBL_MANT_DIG;</div><div class='add'>+	goto bignum;</div><div class='add'>+    }</div><div class='add'>+    rb_bug("big_fdiv");</div><div class='add'>+    /* NOTREACHED */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+  *     big.fdiv(numeric) -&gt; float</div><div class='add'>+ *</div><div class='add'>+ *  Returns the floating point result of dividing &lt;i&gt;big&lt;/i&gt; by</div><div class='add'>+ *  &lt;i&gt;numeric&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     -1234567890987654321.fdiv(13731)      #=&gt; -89910996357705.5</div><div class='add'>+ *     -1234567890987654321.fdiv(13731.24)   #=&gt; -89909424858035.7</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_big_fdiv(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    double dx, dy;</div><div class='add'>+</div><div class='add'>+    dx = big2dbl(x);</div><div class='add'>+    switch (TYPE(y)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	dy = (double)FIX2LONG(y);</div><div class='add'>+	if (isinf(dx))</div><div class='add'>+	    return big_fdiv(x, y);</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='add'>+	dy = rb_big2dbl(y);</div><div class='add'>+	if (isinf(dx) || isinf(dy))</div><div class='add'>+	    return big_fdiv(x, y);</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	dy = RFLOAT_VALUE(y);</div><div class='add'>+	if (isnan(dy))</div><div class='add'>+	    return y;</div><div class='add'>+	if (isinf(dx))</div><div class='add'>+	    return big_fdiv(x, y);</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+	return rb_num_coerce_bin(x, y, rb_intern("fdiv"));</div><div class='ctx'>     }</div><div class='del'>-    bigdivmod(x, y, &amp;div, &amp;mod, 1);</div><div class='add'>+    return DBL2NUM(dx / dy);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return assoc_new(div, mod);;</div><div class='add'>+static VALUE</div><div class='add'>+bigsqr(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return bigtrunc(bigmul0(x, x));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big ** exponent   -&gt; numeric</div><div class='add'>+ *</div><div class='add'>+ *  Raises _big_ to the _exponent_ power (which may be an integer, float,</div><div class='add'>+ *  or anything that will coerce to a number). The result may be</div><div class='add'>+ *  a Fixnum, Bignum, or Float</div><div class='add'>+ *</div><div class='add'>+ *    123456789 ** 2      #=&gt; 15241578750190521</div><div class='add'>+ *    123456789 ** 1.2    #=&gt; 5126464716.09932</div><div class='add'>+ *    123456789 ** -2     #=&gt; 6.5610001194102e-17</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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='add'>+    SIGNED_VALUE yy;</div><div class='add'>+</div><div class='ctx'>     if (y == INT2FIX(0)) return INT2FIX(1);</div><div class='ctx'>     switch (TYPE(y)) {</div><div class='ctx'>       case T_FLOAT:</div><div class='del'>-	d = RFLOAT(y)-&gt;value;</div><div class='add'>+	d = RFLOAT_VALUE(y);</div><div class='add'>+	if ((!RBIGNUM_SIGN(x) &amp;&amp; !BIGZEROP(x)) &amp;&amp; d != round(d))</div><div class='add'>+	    return rb_funcall(rb_complex_raw1(x), rb_intern("**"), 1, y);</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_BIGNUM:</div><div class='del'>-	Warn("in a**b, b may be too big");</div><div class='del'>-	d = big2dbl(y);</div><div class='add'>+	rb_warn("in a**b, b may be too big");</div><div class='add'>+	d = rb_big2dbl(y);</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       case T_FIXNUM:</div><div class='del'>-	yy = NUM2LONG(y);</div><div class='del'>-	if (yy &gt; 0) {</div><div class='del'>-	    VALUE z;</div><div class='del'>-</div><div class='del'>-	    z = x;</div><div class='del'>-	    for (;;) {</div><div class='del'>-		yy = yy - 1;</div><div class='del'>-		if (yy == 0) break;</div><div class='del'>-		while (yy % 2 == 0) {</div><div class='del'>-		    yy = yy / 2;</div><div class='del'>-		    x = big_mul(x, x);</div><div class='add'>+	yy = FIX2LONG(y);</div><div class='add'>+</div><div class='add'>+	if (yy &lt; 0)</div><div class='add'>+	    return rb_funcall(rb_rational_raw1(x), rb_intern("**"), 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 long xlen = RBIGNUM_LEN(x) - 1;</div><div class='add'>+	    const long xbits = ffs(RBIGNUM_DIGITS(x)[xlen]) + SIZEOF_BDIGITS*BITSPERDIG*xlen;</div><div class='add'>+	    const long BIGLEN_LIMIT = BITSPERDIG*1024*1024;</div><div class='add'>+</div><div class='add'>+	    if ((xbits &gt; BIGLEN_LIMIT) || (xbits * yy &gt; BIGLEN_LIMIT)) {</div><div class='add'>+		rb_warn("in a**b, b may be too big");</div><div class='add'>+		d = (double)yy;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    for (mask = FIXNUM_MAX + 1; mask; mask &gt;&gt;= 1) {</div><div class='add'>+		if (z) z = bigsqr(z);</div><div class='add'>+		if (yy &amp; mask) {</div><div class='add'>+		    z = z ? bigtrunc(bigmul0(z, x)) : x;</div><div class='ctx'> 		}</div><div class='del'>-		z = big_mul(z, x);</div><div class='ctx'> 	    }</div><div class='del'>-	    return z;</div><div class='add'>+	    return bignorm(z);</div><div class='ctx'> 	}</div><div class='del'>-	d = (double)yy;</div><div class='add'>+	/* NOTREACHED */</div><div class='ctx'> 	break;</div><div class='ctx'> </div><div class='ctx'>       default:</div><div class='del'>-	return num_coerce_bin(x, y);</div><div class='add'>+	return rb_num_coerce_bin(x, y, rb_intern("**"));</div><div class='ctx'>     }</div><div class='del'>-    return float_new(pow(big2dbl(x), d));</div><div class='add'>+    return DBL2NUM(pow(rb_big2dbl(x), d));</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_and(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static inline VALUE</div><div class='add'>+bit_coerce(VALUE x)</div><div class='add'>+{</div><div class='add'>+    while (!FIXNUM_P(x) &amp;&amp; TYPE(x) != T_BIGNUM) {</div><div class='add'>+	if (TYPE(x) == T_FLOAT) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "can't convert Float into Integer");</div><div class='add'>+	}</div><div class='add'>+	x = rb_to_int(x);</div><div class='add'>+    }</div><div class='add'>+    return x;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+bigand_int(VALUE x, long y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='del'>-    USHORT *ds1, *ds2, *zds;</div><div class='del'>-    unsigned int i, l1, l2;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long xn, zn;</div><div class='add'>+    long i;</div><div class='ctx'>     char sign;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(y)) {</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='add'>+    if (y == 0) return INT2FIX(0);</div><div class='add'>+    sign = (y &gt; 0);</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    zn = xn = RBIGNUM_LEN(x);</div><div class='add'>+#if SIZEOF_BDIGITS == SIZEOF_LONG</div><div class='add'>+    if (sign) {</div><div class='add'>+	y &amp;= xds[0];</div><div class='add'>+	return LONG2NUM(y);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	Check_Type(y, T_BIGNUM);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    z = bignew(zn, RBIGNUM_SIGN(x) || sign);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGITS == SIZEOF_LONG</div><div class='add'>+    i = 1;</div><div class='add'>+    zds[0] = xds[0] &amp; y;</div><div class='add'>+#else</div><div class='add'>+    {</div><div class='add'>+	BDIGIT_DBL num = y;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;(int)(sizeof(y)/sizeof(BDIGIT)); i++) {</div><div class='add'>+	    zds[i] = xds[i] &amp; BIGLO(num);</div><div class='add'>+	    num = BIGDN(num);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='add'>+#endif</div><div class='add'>+    while (i &lt; xn) {</div><div class='add'>+	zds[i] = sign?0:xds[i];</div><div class='add'>+	i++;</div><div class='add'>+    }</div><div class='add'>+    if (!RBIGNUM_SIGN(z)) get2comp(z);</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *     big &amp; numeric   -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Performs bitwise +and+ between _big_ and _numeric_.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	y = big_clone(y);</div><div class='del'>-	big_2comp(y);</div><div class='add'>+VALUE</div><div class='add'>+rb_big_and(VALUE xx, VALUE yy)</div><div class='add'>+{</div><div class='add'>+    volatile VALUE x, y, z;</div><div class='add'>+    BDIGIT *ds1, *ds2, *zds;</div><div class='add'>+    long i, l1, l2;</div><div class='add'>+    char sign;</div><div class='add'>+</div><div class='add'>+    x = xx;</div><div class='add'>+    y = bit_coerce(yy);</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	x = rb_big_clone(x);</div><div class='add'>+	get2comp(x);</div><div class='add'>+    }</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bigand_int(x, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = big_clone(x);</div><div class='del'>-	big_2comp(x);</div><div class='add'>+    if (!RBIGNUM_SIGN(y)) {</div><div class='add'>+	y = rb_big_clone(y);</div><div class='add'>+	get2comp(y);</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='add'>+    if (RBIGNUM_LEN(x) &gt; RBIGNUM_LEN(y)) {</div><div class='add'>+	l1 = RBIGNUM_LEN(y);</div><div class='add'>+	l2 = RBIGNUM_LEN(x);</div><div class='ctx'> 	ds1 = BDIGITS(y);</div><div class='ctx'> 	ds2 = BDIGITS(x);</div><div class='del'>-	sign = RBIGNUM(y)-&gt;sign;</div><div class='add'>+	sign = RBIGNUM_SIGN(y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	l1 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(y)-&gt;len;</div><div class='add'>+	l1 = RBIGNUM_LEN(x);</div><div class='add'>+	l2 = RBIGNUM_LEN(y);</div><div class='ctx'> 	ds1 = BDIGITS(x);</div><div class='ctx'> 	ds2 = BDIGITS(y);</div><div class='del'>-	sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+	sign = RBIGNUM_SIGN(x);</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'>+    z = bignew(l2, RBIGNUM_SIGN(x) || RBIGNUM_SIGN(y));</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;l1; i++) {</div><div class='hunk'>@@ -992,103 +3215,184 @@ big_and(x, y)</div><div class='ctx'>     for (; i&lt;l2; i++) {</div><div class='ctx'> 	zds[i] = sign?0:ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(z)-&gt;sign) big_2comp(z);</div><div class='add'>+    if (!RBIGNUM_SIGN(z)) get2comp(z);</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_or(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static VALUE</div><div class='add'>+bigor_int(VALUE x, long y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='del'>-    USHORT *ds1, *ds2, *zds;</div><div class='del'>-    unsigned int i, l1, l2;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long xn, zn;</div><div class='add'>+    long i;</div><div class='ctx'>     char sign;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(y)) {</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='add'>+    sign = (y &gt;= 0);</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    zn = xn = RBIGNUM_LEN(x);</div><div class='add'>+    z = bignew(zn, RBIGNUM_SIGN(x) &amp;&amp; sign);</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGITS == SIZEOF_LONG</div><div class='add'>+    i = 1;</div><div class='add'>+    zds[0] = xds[0] | y;</div><div class='add'>+#else</div><div class='add'>+    {</div><div class='add'>+	BDIGIT_DBL num = y;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;(int)(sizeof(y)/sizeof(BDIGIT)); i++) {</div><div class='add'>+	    zds[i] = xds[i] | BIGLO(num);</div><div class='add'>+	    num = BIGDN(num);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	Check_Type(y, T_BIGNUM);</div><div class='add'>+#endif</div><div class='add'>+    while (i &lt; xn) {</div><div class='add'>+	zds[i] = sign?xds[i]:(BDIGIT)(BIGRAD-1);</div><div class='add'>+	i++;</div><div class='ctx'>     }</div><div class='add'>+    if (!RBIGNUM_SIGN(z)) get2comp(z);</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *     big | numeric   -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Performs bitwise +or+ between _big_ and _numeric_.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_or(VALUE xx, VALUE yy)</div><div class='add'>+{</div><div class='add'>+    volatile VALUE x, y, z;</div><div class='add'>+    BDIGIT *ds1, *ds2, *zds;</div><div class='add'>+    long i, l1, l2;</div><div class='add'>+    char sign;</div><div class='add'>+</div><div class='add'>+    x = xx;</div><div class='add'>+    y = bit_coerce(yy);</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	y = big_clone(y);</div><div class='del'>-	big_2comp(y);</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	x = rb_big_clone(x);</div><div class='add'>+	get2comp(x);</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = big_clone(x);</div><div class='del'>-	big_2comp(x);</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bigor_int(x, FIX2LONG(y));</div><div class='add'>+    }</div><div class='add'>+    if (!RBIGNUM_SIGN(y)) {</div><div class='add'>+	y = rb_big_clone(y);</div><div class='add'>+	get2comp(y);</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='add'>+    if (RBIGNUM_LEN(x) &gt; RBIGNUM_LEN(y)) {</div><div class='add'>+	l1 = RBIGNUM_LEN(y);</div><div class='add'>+	l2 = RBIGNUM_LEN(x);</div><div class='ctx'> 	ds1 = BDIGITS(y);</div><div class='ctx'> 	ds2 = BDIGITS(x);</div><div class='del'>-	sign = RBIGNUM(y)-&gt;sign;</div><div class='add'>+	sign = RBIGNUM_SIGN(y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	l1 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(y)-&gt;len;</div><div class='add'>+	l1 = RBIGNUM_LEN(x);</div><div class='add'>+	l2 = RBIGNUM_LEN(y);</div><div class='ctx'> 	ds1 = BDIGITS(x);</div><div class='ctx'> 	ds2 = BDIGITS(y);</div><div class='del'>-	sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+	sign = RBIGNUM_SIGN(x);</div><div class='ctx'>     }</div><div class='del'>-    z = bignew(l2, RBIGNUM(x)-&gt;sign || RBIGNUM(y)-&gt;sign);</div><div class='add'>+    z = bignew(l2, RBIGNUM_SIGN(x) &amp;&amp; RBIGNUM_SIGN(y));</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;l1; i++) {</div><div class='ctx'> 	zds[i] = ds1[i] | ds2[i];</div><div class='ctx'>     }</div><div class='ctx'>     for (; i&lt;l2; i++) {</div><div class='del'>-	zds[i] = sign?ds2[i]:(BIGRAD-1);</div><div class='add'>+	zds[i] = sign?ds2[i]:(BDIGIT)(BIGRAD-1);</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(z)-&gt;sign) big_2comp(z);</div><div class='del'>-</div><div class='add'>+    if (!RBIGNUM_SIGN(z)) get2comp(z);</div><div class='ctx'>     return bignorm(z);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_xor(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+static VALUE</div><div class='add'>+bigxor_int(VALUE x, long y)</div><div class='ctx'> {</div><div class='ctx'>     VALUE z;</div><div class='del'>-    USHORT *ds1, *ds2, *zds;</div><div class='del'>-    unsigned int i, l1, l2;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long xn, zn;</div><div class='add'>+    long i;</div><div class='ctx'>     char sign;</div><div class='ctx'> </div><div class='del'>-    if (FIXNUM_P(y)) {</div><div class='del'>-	y = int2big(FIX2LONG(y));</div><div class='add'>+    sign = (y &gt;= 0) ? 1 : 0;</div><div class='add'>+    xds = BDIGITS(x);</div><div class='add'>+    zn = xn = RBIGNUM_LEN(x);</div><div class='add'>+    z = bignew(zn, !(RBIGNUM_SIGN(x) ^ sign));</div><div class='add'>+    zds = BDIGITS(z);</div><div class='add'>+</div><div class='add'>+#if SIZEOF_BDIGITS == SIZEOF_LONG</div><div class='add'>+    i = 1;</div><div class='add'>+    zds[0] = xds[0] ^ y;</div><div class='add'>+#else</div><div class='add'>+    {</div><div class='add'>+	BDIGIT_DBL num = y;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;(int)(sizeof(y)/sizeof(BDIGIT)); i++) {</div><div class='add'>+	    zds[i] = xds[i] ^ BIGLO(num);</div><div class='add'>+	    num = BIGDN(num);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	Check_Type(y, T_BIGNUM);</div><div class='add'>+#endif</div><div class='add'>+    while (i &lt; xn) {</div><div class='add'>+	zds[i] = sign?xds[i]:~xds[i];</div><div class='add'>+	i++;</div><div class='ctx'>     }</div><div class='add'>+    if (!RBIGNUM_SIGN(z)) get2comp(z);</div><div class='add'>+    return bignorm(z);</div><div class='add'>+}</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *     big ^ numeric   -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Performs bitwise +exclusive or+ between _big_ and _numeric_.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_xor(VALUE xx, VALUE yy)</div><div class='add'>+{</div><div class='add'>+    volatile VALUE x, y;</div><div class='add'>+    VALUE z;</div><div class='add'>+    BDIGIT *ds1, *ds2, *zds;</div><div class='add'>+    long i, l1, l2;</div><div class='add'>+    char sign;</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(y)-&gt;sign) {</div><div class='del'>-	y = big_clone(y);</div><div class='del'>-	big_2comp(y);</div><div class='add'>+    x = xx;</div><div class='add'>+    y = bit_coerce(yy);</div><div class='add'>+</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	x = rb_big_clone(x);</div><div class='add'>+	get2comp(x);</div><div class='add'>+    }</div><div class='add'>+    if (FIXNUM_P(y)) {</div><div class='add'>+	return bigxor_int(x, FIX2LONG(y));</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = big_clone(x);</div><div class='del'>-	big_2comp(x);</div><div class='add'>+    if (!RBIGNUM_SIGN(y)) {</div><div class='add'>+	y = rb_big_clone(y);</div><div class='add'>+	get2comp(y);</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='add'>+    if (RBIGNUM_LEN(x) &gt; RBIGNUM_LEN(y)) {</div><div class='add'>+	l1 = RBIGNUM_LEN(y);</div><div class='add'>+	l2 = RBIGNUM_LEN(x);</div><div class='ctx'> 	ds1 = BDIGITS(y);</div><div class='ctx'> 	ds2 = BDIGITS(x);</div><div class='del'>-	sign = RBIGNUM(y)-&gt;sign;</div><div class='add'>+	sign = RBIGNUM_SIGN(y);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	l1 = RBIGNUM(x)-&gt;len;</div><div class='del'>-	l2 = RBIGNUM(y)-&gt;len;</div><div class='add'>+	l1 = RBIGNUM_LEN(x);</div><div class='add'>+	l2 = RBIGNUM_LEN(y);</div><div class='ctx'> 	ds1 = BDIGITS(x);</div><div class='ctx'> 	ds2 = BDIGITS(y);</div><div class='del'>-	sign = RBIGNUM(x)-&gt;sign;</div><div class='add'>+	sign = RBIGNUM_SIGN(x);</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'>+    RBIGNUM_SET_SIGN(x, RBIGNUM_SIGN(x)?1:0);</div><div class='add'>+    RBIGNUM_SET_SIGN(y, RBIGNUM_SIGN(y)?1:0);</div><div class='add'>+    z = bignew(l2, !(RBIGNUM_SIGN(x) ^ RBIGNUM_SIGN(y)));</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'> </div><div class='ctx'>     for (i=0; i&lt;l1; i++) {</div><div class='hunk'>@@ -1097,209 +3401,398 @@ big_xor(x, y)</div><div class='ctx'>     for (; i&lt;l2; i++) {</div><div class='ctx'> 	zds[i] = sign?ds2[i]:~ds2[i];</div><div class='ctx'>     }</div><div class='del'>-    if (!RBIGNUM(z)-&gt;sign) big_2comp(z);</div><div class='add'>+    if (!RBIGNUM_SIGN(z)) get2comp(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_rshift _((VALUE,VALUE));</div><div class='add'>+static VALUE</div><div class='add'>+check_shiftdown(VALUE y, VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (!RBIGNUM_LEN(x)) return INT2FIX(0);</div><div class='add'>+    if (RBIGNUM_LEN(y) &gt; SIZEOF_LONG / SIZEOF_BDIGITS) {</div><div class='add'>+	return RBIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(-1);</div><div class='add'>+    }</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'>+ *     big &lt;&lt; numeric   -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Shifts big left _numeric_ positions (right if _numeric_ is negative).</div><div class='add'>+ */</div><div class='ctx'> </div><div class='ctx'> VALUE</div><div class='del'>-big_lshift(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_lshift(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long shift;</div><div class='add'>+    int neg = 0;</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+	if (FIXNUM_P(y)) {</div><div class='add'>+	    shift = FIX2LONG(y);</div><div class='add'>+	    if (shift &lt; 0) {</div><div class='add'>+		neg = 1;</div><div class='add'>+		shift = -shift;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	else if (TYPE(y) == T_BIGNUM) {</div><div class='add'>+	    if (!RBIGNUM_SIGN(y)) {</div><div class='add'>+		VALUE t = check_shiftdown(y, x);</div><div class='add'>+		if (!NIL_P(t)) return t;</div><div class='add'>+		neg = 1;</div><div class='add'>+	    }</div><div class='add'>+	    shift = big2ulong(y, "long", TRUE);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	y = rb_to_int(y);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    x = neg ? big_rshift(x, shift) : big_lshift(x, shift);</div><div class='add'>+    return bignorm(x);</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='ctx'> {</div><div class='del'>-    USHORT *xds, *zds;</div><div class='del'>-    int shift = NUM2INT(y);</div><div class='del'>-    unsigned int s1 = shift/BITSPERDIG;</div><div class='del'>-    unsigned int s2 = shift%BITSPERDIG;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long s1 = shift/BITSPERDIG;</div><div class='add'>+    int s2 = (int)(shift%BITSPERDIG);</div><div class='ctx'>     VALUE z;</div><div class='del'>-    unsigned long num = 0;</div><div class='del'>-    unsigned int len, i;</div><div class='add'>+    BDIGIT_DBL num = 0;</div><div class='add'>+    long len, i;</div><div class='ctx'> </div><div class='del'>-    if (shift &lt; 0) return big_rshift(x, INT2FIX(-shift));</div><div class='del'>-    xds = BDIGITS(x);</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='add'>+    len = RBIGNUM_LEN(x);</div><div class='add'>+    z = bignew(len+s1+1, RBIGNUM_SIGN(x));</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'>     for (i=0; i&lt;s1; i++) {</div><div class='ctx'> 	*zds++ = 0;</div><div class='ctx'>     }</div><div class='add'>+    xds = BDIGITS(x);</div><div class='ctx'>     for (i=0; i&lt;len; i++) {</div><div class='del'>-	num = num | *xds++&lt;&lt;s2;</div><div class='add'>+	num = num | (BDIGIT_DBL)*xds++&lt;&lt;s2;</div><div class='ctx'> 	*zds++ = BIGLO(num);</div><div class='ctx'> 	num = BIGDN(num);</div><div class='ctx'>     }</div><div class='ctx'>     *zds = BIGLO(num);</div><div class='del'>-    return bignorm(z);</div><div class='add'>+    return z;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *     big &gt;&gt; numeric   -&gt;  integer</div><div class='add'>+ *</div><div class='add'>+ * Shifts big right _numeric_ positions (left if _numeric_ is negative).</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_big_rshift(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    long shift;</div><div class='add'>+    int neg = 0;</div><div class='add'>+</div><div class='add'>+    for (;;) {</div><div class='add'>+	if (FIXNUM_P(y)) {</div><div class='add'>+	    shift = FIX2LONG(y);</div><div class='add'>+	    if (shift &lt; 0) {</div><div class='add'>+		neg = 1;</div><div class='add'>+		shift = -shift;</div><div class='add'>+	    }</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	else if (TYPE(y) == T_BIGNUM) {</div><div class='add'>+	    if (RBIGNUM_SIGN(y)) {</div><div class='add'>+		VALUE t = check_shiftdown(y, x);</div><div class='add'>+		if (!NIL_P(t)) return t;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		neg = 1;</div><div class='add'>+	    }</div><div class='add'>+	    shift = big2ulong(y, "long", TRUE);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	y = rb_to_int(y);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    x = neg ? big_lshift(x, shift) : big_rshift(x, shift);</div><div class='add'>+    return bignorm(x);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-big_rshift(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+big_rshift(VALUE x, unsigned long shift)</div><div class='ctx'> {</div><div class='del'>-    USHORT *xds, *zds;</div><div class='del'>-    int shift = NUM2INT(y);</div><div class='del'>-    unsigned int s1 = shift/BITSPERDIG;</div><div class='del'>-    unsigned int s2 = shift%BITSPERDIG;</div><div class='add'>+    BDIGIT *xds, *zds;</div><div class='add'>+    long s1 = shift/BITSPERDIG;</div><div class='add'>+    int s2 = (int)(shift%BITSPERDIG);</div><div class='ctx'>     VALUE z;</div><div class='del'>-    unsigned long num = 0;</div><div class='del'>-    unsigned int i = RBIGNUM(x)-&gt;len;</div><div class='del'>-    unsigned int j;</div><div class='add'>+    BDIGIT_DBL num = 0;</div><div class='add'>+    long i, j;</div><div class='add'>+    volatile VALUE save_x;</div><div class='ctx'> </div><div class='del'>-    if (shift &lt; 0) return big_lshift(x, INT2FIX(-shift));</div><div class='del'>-    if (s1 &gt; RBIGNUM(x)-&gt;len) {</div><div class='del'>-	if (RBIGNUM(x)-&gt;sign)</div><div class='add'>+    if (s1 &gt; RBIGNUM_LEN(x)) {</div><div class='add'>+	if (RBIGNUM_SIGN(x))</div><div class='ctx'> 	    return INT2FIX(0);</div><div class='ctx'> 	else</div><div class='ctx'> 	    return INT2FIX(-1);</div><div class='ctx'>     }</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	save_x = x = rb_big_clone(x);</div><div class='add'>+	get2comp(x);</div><div class='add'>+    }</div><div class='ctx'>     xds = BDIGITS(x);</div><div class='del'>-    i = RBIGNUM(x)-&gt;len; j = i - s1;</div><div class='del'>-    z = bignew(j, RBIGNUM(x)-&gt;sign);</div><div class='add'>+    i = RBIGNUM_LEN(x); j = i - s1;</div><div class='add'>+    if (j == 0) {</div><div class='add'>+	if (RBIGNUM_SIGN(x)) return INT2FIX(0);</div><div class='add'>+	else return INT2FIX(-1);</div><div class='add'>+    }</div><div class='add'>+    z = bignew(j, RBIGNUM_SIGN(x));</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	num = ((BDIGIT_DBL)~0) &lt;&lt; BITSPERDIG;</div><div class='add'>+    }</div><div class='ctx'>     zds = BDIGITS(z);</div><div class='ctx'>     while (i--, j--) {</div><div class='ctx'> 	num = (num | xds[i]) &gt;&gt; s2;</div><div class='ctx'> 	zds[j] = BIGLO(num);</div><div class='ctx'> 	num = BIGUP(xds[i]);</div><div class='ctx'>     }</div><div class='del'>-    return bignorm(z);</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	get2comp(z);</div><div class='add'>+    }</div><div class='add'>+    return z;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big[n] -&gt; 0, 1</div><div class='add'>+ *</div><div class='add'>+ *  Bit Reference---Returns the &lt;em&gt;n&lt;/em&gt;th bit in the (assumed) binary</div><div class='add'>+ *  representation of &lt;i&gt;big&lt;/i&gt;, where &lt;i&gt;big&lt;/i&gt;[0] is the least</div><div class='add'>+ *  significant bit.</div><div class='add'>+ *</div><div class='add'>+ *     a = 9**15</div><div class='add'>+ *     50.downto(0) do |n|</div><div class='add'>+ *       print a[n]</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     000101110110100000111000011110010100111100010111001</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_aref(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_aref(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='del'>-    USHORT *xds;</div><div class='del'>-    int shift = NUM2INT(y);</div><div class='del'>-    unsigned int s1, s2;</div><div class='add'>+    BDIGIT *xds;</div><div class='add'>+    BDIGIT_DBL num;</div><div class='add'>+    VALUE shift;</div><div class='add'>+    long i, s1, s2;</div><div class='ctx'> </div><div class='del'>-    if (shift &lt; 0) return INT2FIX(0);</div><div class='add'>+    if (TYPE(y) == T_BIGNUM) {</div><div class='add'>+	if (!RBIGNUM_SIGN(y))</div><div class='add'>+	    return INT2FIX(0);</div><div class='add'>+	bigtrunc(y);</div><div class='add'>+	if (RBIGNUM_LEN(y) &gt; DIGSPERLONG) {</div><div class='add'>+	  out_of_range:</div><div class='add'>+	    return RBIGNUM_SIGN(x) ? INT2FIX(0) : INT2FIX(1);</div><div class='add'>+	}</div><div class='add'>+	shift = big2ulong(y, "long", FALSE);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	i = NUM2LONG(y);</div><div class='add'>+	if (i &lt; 0) return INT2FIX(0);</div><div class='add'>+	shift = (VALUE)i;</div><div class='add'>+    }</div><div class='ctx'>     s1 = shift/BITSPERDIG;</div><div class='ctx'>     s2 = shift%BITSPERDIG;</div><div class='ctx'> </div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	if (s1 &gt;= RBIGNUM(x)-&gt;len) return INT2FIX(1);</div><div class='del'>-	x = big_clone(x);</div><div class='del'>-	big_2comp(x);</div><div class='add'>+    if (s1 &gt;= RBIGNUM_LEN(x)) goto out_of_range;</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	xds = BDIGITS(x);</div><div class='add'>+	i = 0; num = 1;</div><div class='add'>+	while (num += ~xds[i], ++i &lt;= s1) {</div><div class='add'>+	    num = BIGDN(num);</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	if (s1 &gt;= RBIGNUM(x)-&gt;len) return INT2FIX(0);</div><div class='add'>+	num = BDIGITS(x)[s1];</div><div class='ctx'>     }</div><div class='del'>-    xds = BDIGITS(x);</div><div class='del'>-    if (xds[s1] &amp; (1&lt;&lt;s2))</div><div class='add'>+    if (num &amp; ((BDIGIT_DBL)1&lt;&lt;s2))</div><div class='ctx'> 	return INT2FIX(1);</div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * call-seq:</div><div class='add'>+ *   big.hash   -&gt; fixnum</div><div class='add'>+ *</div><div class='add'>+ * Compute a hash based on the value of _big_.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_hash(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_hash(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    int i, len, key;</div><div class='del'>-    USHORT *digits;</div><div class='add'>+    st_index_t hash;</div><div class='ctx'> </div><div class='del'>-    key = 0; digits = BDIGITS(x);</div><div class='del'>-    for (i=0,len=RBIGNUM(x)-&gt;len; i&lt;RBIGNUM(x)-&gt;len; i++) {</div><div class='del'>-	key ^= *digits++;</div><div class='del'>-    }</div><div class='del'>-    return INT2FIX(key);</div><div class='add'>+    hash = rb_memhash(BDIGITS(x), sizeof(BDIGIT)*RBIGNUM_LEN(x)) ^ RBIGNUM_SIGN(x);</div><div class='add'>+    return INT2FIX(hash);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ * MISSING: documentation</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_coerce(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+rb_big_coerce(VALUE x, VALUE y)</div><div class='ctx'> {</div><div class='ctx'>     if (FIXNUM_P(y)) {</div><div class='del'>-	return assoc_new(int2big(FIX2LONG(y)), x);</div><div class='add'>+	return rb_assoc_new(rb_int2big(FIX2LONG(y)), x);</div><div class='add'>+    }</div><div class='add'>+    else if (TYPE(y) == T_BIGNUM) {</div><div class='add'>+       return rb_assoc_new(y, x);</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='del'>-	TypeError("can't coerce %s to Bignum", rb_class2name(CLASS_OF(y)));</div><div class='add'>+	rb_raise(rb_eTypeError, "can't coerce %s to Bignum",</div><div class='add'>+		 rb_obj_classname(y));</div><div class='ctx'>     }</div><div class='ctx'>     /* not reached */</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.abs -&gt; aBignum</div><div class='add'>+ *</div><div class='add'>+ *  Returns the absolute value of &lt;i&gt;big&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     -1234567890987654321.abs   #=&gt; 1234567890987654321</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_abs(x)</div><div class='del'>-    VALUE x;</div><div class='add'>+rb_big_abs(VALUE x)</div><div class='ctx'> {</div><div class='del'>-    if (!RBIGNUM(x)-&gt;sign) {</div><div class='del'>-	x = big_clone(x);</div><div class='del'>-	RBIGNUM(x)-&gt;sign = 1;</div><div class='add'>+    if (!RBIGNUM_SIGN(x)) {</div><div class='add'>+	x = rb_big_clone(x);</div><div class='add'>+	RBIGNUM_SET_SIGN(x, 1);</div><div class='ctx'>     }</div><div class='ctx'>     return x;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-/* !!!warnig!!!!</div><div class='del'>-   this is not really a random number!!</div><div class='del'>-*/</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.size -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the number of bytes in the machine representation of</div><div class='add'>+ *  &lt;i&gt;big&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     (256**10 - 1).size   #=&gt; 12</div><div class='add'>+ *     (256**20 - 1).size   #=&gt; 20</div><div class='add'>+ *     (256**40 - 1).size   #=&gt; 40</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-big_rand(max)</div><div class='del'>-    VALUE max;</div><div class='add'>+static VALUE</div><div class='add'>+rb_big_size(VALUE big)</div><div class='ctx'> {</div><div class='del'>-    struct RBignum *v;</div><div class='del'>-    int len;</div><div class='del'>-</div><div class='del'>-    len = RBIGNUM(max)-&gt;len;</div><div class='del'>-    v = RBIGNUM(bignew(len,1));</div><div class='del'>-    while (len--) {</div><div class='del'>-#ifdef HAVE_RANDOM</div><div class='del'>-	BDIGITS(v)[len] = random();</div><div class='del'>-#else</div><div class='del'>-	BDIGITS(v)[len] = rand();</div><div class='del'>-#endif</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    return big_mod(v, max);</div><div class='add'>+    return LONG2FIX(RBIGNUM_LEN(big)*SIZEOF_BDIGITS);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.odd? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;big&lt;/i&gt; is an odd number.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_size(big)</div><div class='del'>-    VALUE big;</div><div class='add'>+rb_big_odd_p(VALUE num)</div><div class='ctx'> {</div><div class='del'>-    return INT2FIX(RBIGNUM(big)-&gt;len*sizeof(USHORT));</div><div class='add'>+    if (BDIGITS(num)[0] &amp; 1) {</div><div class='add'>+	return Qtrue;</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     big.even? -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;big&lt;/i&gt; is an even number.</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-big_zero_p(big)</div><div class='del'>-    VALUE big;</div><div class='add'>+rb_big_even_p(VALUE num)</div><div class='ctx'> {</div><div class='del'>-    return FALSE;</div><div class='add'>+    if (BDIGITS(num)[0] &amp; 1) {</div><div class='add'>+	return Qfalse;</div><div class='add'>+    }</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  Bignum objects hold integers outside the range of</div><div class='add'>+ *  Fixnum. Bignum objects are created</div><div class='add'>+ *  automatically when integer calculations would otherwise overflow a</div><div class='add'>+ *  Fixnum. When a calculation involving</div><div class='add'>+ *  Bignum objects returns a result that will fit in a</div><div class='add'>+ *  Fixnum, the result is automatically converted.</div><div class='add'>+ *</div><div class='add'>+ *  For the purposes of the bitwise operations and &lt;code&gt;[]&lt;/code&gt;, a</div><div class='add'>+ *  Bignum is treated as if it were an infinite-length</div><div class='add'>+ *  bitstring with 2's complement representation.</div><div class='add'>+ *</div><div class='add'>+ *  While Fixnum values are immediate, Bignum</div><div class='add'>+ *  objects are not---assignment and parameter passing work with</div><div class='add'>+ *  references to objects, not the objects themselves.</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> void</div><div class='del'>-Init_Bignum()</div><div class='del'>-{</div><div class='del'>-    cBignum = rb_define_class("Bignum", cInteger);</div><div class='del'>-</div><div class='del'>-    rb_undef_method(CLASS_OF(cBignum), "new");</div><div class='del'>-</div><div class='del'>-    rb_define_method(cBignum, "to_s", big_to_s, 0);</div><div class='del'>-    rb_define_method(cBignum, "coerce", big_coerce, 1);</div><div class='del'>-    rb_define_method(cBignum, "-@", big_uminus, 0);</div><div class='del'>-    rb_define_method(cBignum, "+", big_plus, 1);</div><div class='del'>-    rb_define_method(cBignum, "-", big_minus, 1);</div><div class='del'>-    rb_define_method(cBignum, "*", big_mul, 1);</div><div class='del'>-    rb_define_method(cBignum, "/", big_div, 1);</div><div class='del'>-    rb_define_method(cBignum, "%", big_mod, 1);</div><div class='del'>-    rb_define_method(cBignum, "divmod", big_divmod, 1);</div><div class='del'>-    rb_define_method(cBignum, "remainder", big_remainder, 1);</div><div class='del'>-    rb_define_method(cBignum, "**", big_pow, 1);</div><div class='del'>-    rb_define_method(cBignum, "&amp;", big_and, 1);</div><div class='del'>-    rb_define_method(cBignum, "|", big_or, 1);</div><div class='del'>-    rb_define_method(cBignum, "^", big_xor, 1);</div><div class='del'>-    rb_define_method(cBignum, "~", big_neg, 0);</div><div class='del'>-    rb_define_method(cBignum, "&lt;&lt;", big_lshift, 1);</div><div class='del'>-    rb_define_method(cBignum, "&gt;&gt;", big_rshift, 1);</div><div class='del'>-    rb_define_method(cBignum, "[]", big_aref, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cBignum, "&lt;=&gt;", big_cmp, 1);</div><div class='del'>-    rb_define_method(cBignum, "==", big_eq, 1);</div><div class='del'>-    rb_define_method(cBignum, "eql?", big_eq, 1);</div><div class='del'>-    rb_define_method(cBignum, "hash", big_hash, 0);</div><div class='del'>-    rb_define_method(cBignum, "to_i", big_to_i, 0);</div><div class='del'>-    rb_define_method(cBignum, "to_f", big_to_f, 0);</div><div class='del'>-    rb_define_method(cBignum, "abs", big_abs, 0);</div><div class='del'>-    rb_define_method(cBignum, "size", big_size, 0);</div><div class='del'>-    rb_define_method(cBignum, "zero?", big_zero_p, 0);</div><div class='add'>+Init_Bignum(void)</div><div class='add'>+{</div><div class='add'>+    rb_cBignum = rb_define_class("Bignum", rb_cInteger);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cBignum, "to_s", rb_big_to_s, -1);</div><div class='add'>+    rb_define_method(rb_cBignum, "coerce", rb_big_coerce, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "-@", rb_big_uminus, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "+", rb_big_plus, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "-", rb_big_minus, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "*", rb_big_mul, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "/", rb_big_div, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "%", rb_big_modulo, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "div", rb_big_idiv, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "divmod", rb_big_divmod, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "modulo", rb_big_modulo, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "remainder", rb_big_remainder, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "fdiv", rb_big_fdiv, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "**", rb_big_pow, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "&amp;", rb_big_and, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "|", rb_big_or, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "^", rb_big_xor, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "~", rb_big_neg, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "&lt;&lt;", rb_big_lshift, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "&gt;&gt;", rb_big_rshift, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "[]", rb_big_aref, 1);</div><div class='add'>+</div><div class='add'>+    rb_define_method(rb_cBignum, "&lt;=&gt;", rb_big_cmp, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "==", rb_big_eq, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "&gt;", big_gt, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "&gt;=", big_ge, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "&lt;", big_lt, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "&lt;=", big_le, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "===", rb_big_eq, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "eql?", rb_big_eql, 1);</div><div class='add'>+    rb_define_method(rb_cBignum, "hash", rb_big_hash, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "to_f", rb_big_to_f, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "abs", rb_big_abs, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "magnitude", rb_big_abs, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "size", rb_big_size, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "odd?", rb_big_odd_p, 0);</div><div class='add'>+    rb_define_method(rb_cBignum, "even?", rb_big_even_p, 0);</div><div class='add'>+</div><div class='add'>+    power_cache_init();</div><div class='add'>+</div><div class='add'>+    big_three = rb_uint2big(3);</div><div class='add'>+    rb_gc_register_mark_object(big_three);</div><div class='ctx'> }</div><div class='head'>diff --git a/bin/erb b/bin/erb<br/>new file mode 100755<br/>index 0000000000..6b92ac2284<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/erb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bin/erb</a></div><div class='hunk'>@@ -0,0 +1,155 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+# Tiny eRuby --- ERB2</div><div class='add'>+# Copyright (c) 1999-2000,2002 Masatoshi SEKI</div><div class='add'>+# You can redistribute it and/or modify it under the same terms as Ruby.</div><div class='add'>+</div><div class='add'>+require 'erb'</div><div class='add'>+</div><div class='add'>+class ERB</div><div class='add'>+  module Main</div><div class='add'>+    def ARGV.switch</div><div class='add'>+      return nil if self.empty?</div><div class='add'>+      arg = self.shift</div><div class='add'>+      return nil if arg == '--'</div><div class='add'>+      if arg =~ /^-(.)(.*)/</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='add'>+        "-#{$1}"</div><div class='add'>+      else</div><div class='add'>+        self.unshift arg</div><div class='add'>+        nil</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    def ARGV.req_arg</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='add'>+    end</div><div class='add'>+</div><div class='add'>+    def trim_mode_opt(trim_mode, disable_percent)</div><div class='add'>+      return trim_mode if disable_percent</div><div class='add'>+      case trim_mode</div><div class='add'>+      when 0</div><div class='add'>+        return '%'</div><div class='add'>+      when 1</div><div class='add'>+        return '%&gt;'</div><div class='add'>+      when 2</div><div class='add'>+        return '%&lt;&gt;'</div><div class='add'>+      when '-'</div><div class='add'>+        return '%-'</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    module_function :trim_mode_opt</div><div class='add'>+</div><div class='add'>+    def run(factory=ERB)</div><div class='add'>+      trim_mode = 0</div><div class='add'>+      disable_percent = false</div><div class='add'>+      begin</div><div class='add'>+        while switch = ARGV.switch</div><div class='add'>+          case switch</div><div class='add'>+          when '-x'                        # ruby source</div><div class='add'>+            output = true</div><div class='add'>+          when '-n'                        # line number</div><div class='add'>+            number = true</div><div class='add'>+          when '-v'                        # verbose</div><div class='add'>+            $VERBOSE = true</div><div class='add'>+          when '--version'                 # version</div><div class='add'>+            STDERR.puts factory.version</div><div class='add'>+            exit</div><div class='add'>+          when '-d', '--debug'             # debug</div><div class='add'>+            $DEBUG = true</div><div class='add'>+          when '-r'                        # require</div><div class='add'>+            require ARGV.req_arg</div><div class='add'>+          when '-S'                        # security level</div><div class='add'>+            arg = ARGV.req_arg</div><div class='add'>+            raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/</div><div class='add'>+            safe_level = arg.to_i</div><div class='add'>+          when '-T'                        # trim mode</div><div class='add'>+            arg = ARGV.req_arg</div><div class='add'>+            if arg == '-'</div><div class='add'>+              trim_mode = arg</div><div class='add'>+              next</div><div class='add'>+            end</div><div class='add'>+            raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/</div><div class='add'>+            trim_mode = arg.to_i</div><div class='add'>+          when '-E', '--encoding'</div><div class='add'>+            arg = ARGV.req_arg</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='add'>+          when '-P'</div><div class='add'>+            disable_percent = true</div><div class='add'>+          when '--help'</div><div class='add'>+            raise "print this help"</div><div class='add'>+          else</div><div class='add'>+            raise "unknown switch #{switch.dump}"</div><div class='add'>+          end</div><div class='add'>+        end</div><div class='add'>+      rescue                               # usage</div><div class='add'>+        STDERR.puts $!.to_s</div><div class='add'>+        STDERR.puts File.basename($0) +</div><div class='add'>+          " [switches] [inputfile]"</div><div class='add'>+        STDERR.puts &lt;&lt;EOU</div><div class='add'>+  -x               print ruby script</div><div class='add'>+  -n               print ruby script with line number</div><div class='add'>+  -v               enable verbose mode</div><div class='add'>+  -d               set $DEBUG to true</div><div class='add'>+  -r library       load a library</div><div class='add'>+  -S safe_level    set $SAFE (0..4)</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='add'>+  -P               ignore lines which start with "%"</div><div class='add'>+EOU</div><div class='add'>+        exit 1</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+      $&lt;.set_encoding(Encoding::ASCII_8BIT, nil)</div><div class='add'>+      src = $&lt;.read</div><div class='add'>+      filename = $FILENAME</div><div class='add'>+      exit 2 unless src</div><div class='add'>+      trim = trim_mode_opt(trim_mode, disable_percent)</div><div class='add'>+      erb = factory.new(src.untaint, safe_level, trim)</div><div class='add'>+      erb.filename = filename</div><div class='add'>+      if output</div><div class='add'>+        if number</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='add'>+          end</div><div class='add'>+        else</div><div class='add'>+          puts erb.src</div><div class='add'>+        end</div><div class='add'>+      else</div><div class='add'>+        erb.run(TOPLEVEL_BINDING.taint)</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+    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.empty?</div><div class='add'>+      Encoding.default_internal = intern unless intern.nil? || intern.empty?</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='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if __FILE__ == $0</div><div class='add'>+  ERB::Main.run</div><div class='add'>+end</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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/>new file mode 100755<br/>index 0000000000..6c8465c802<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/irb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bin/irb</a></div><div class='hunk'>@@ -0,0 +1,20 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+#</div><div class='add'>+#   irb.rb - interactive ruby</div><div class='add'>+#   	$Release Version: 0.9.6 $</div><div class='add'>+#   	$Revision$</div><div class='add'>+#   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+require "irb"</div><div class='add'>+</div><div class='add'>+if __FILE__ == $0</div><div class='add'>+  IRB.start(__FILE__)</div><div class='add'>+else</div><div class='add'>+  # check -e option</div><div class='add'>+  if /^-e$/ =~ $0</div><div class='add'>+    IRB.start(__FILE__)</div><div class='add'>+  else</div><div class='add'>+    IRB.setup(__FILE__)</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/bin/rake b/bin/rake<br/>new file mode 100755<br/>index 0000000000..0de43c97ec<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/rake?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bin/rake</a></div><div class='hunk'>@@ -0,0 +1,32 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+</div><div class='add'>+#--</div><div class='add'>+# Copyright (c) 2003, 2004, 2005, 2006, 2007  Jim Weirich</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</div><div class='add'>+# deal in the Software without restriction, including without limitation the</div><div class='add'>+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or</div><div class='add'>+# sell 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</div><div class='add'>+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS</div><div class='add'>+# IN THE SOFTWARE.</div><div class='add'>+#++</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  require 'rubygems'</div><div class='add'>+rescue LoadError</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+require 'rake'</div><div class='add'>+</div><div class='add'>+Rake.application.run</div><div class='head'>diff --git a/bin/rdoc b/bin/rdoc<br/>new file mode 100755<br/>index 0000000000..20d866c220<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bin/rdoc</a></div><div class='hunk'>@@ -0,0 +1,40 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+#</div><div class='add'>+#  RDoc: Documentation tool for source code</div><div class='add'>+#        (see lib/rdoc/rdoc.rb for more information)</div><div class='add'>+#</div><div class='add'>+#  Copyright (c) 2003 Dave Thomas</div><div class='add'>+#  Released under the same terms as Ruby</div><div class='add'>+</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='add'>+</div><div class='add'>+require 'rdoc/rdoc'</div><div class='add'>+</div><div class='add'>+begin</div><div class='add'>+  r = RDoc::RDoc.new</div><div class='add'>+  r.document ARGV</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='add'>+end</div><div class='add'>+</div><div class='head'>diff --git a/bin/ri b/bin/ri<br/>new file mode 100755<br/>index 0000000000..7fbed0c099<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/ri?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bin/ri</a></div><div class='hunk'>@@ -0,0 +1,12 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+</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='add'>+</div><div class='add'>+require 'rdoc/ri/driver'</div><div class='add'>+</div><div class='add'>+RDoc::RI::Driver.run ARGV</div><div class='head'>diff --git a/bin/testrb b/bin/testrb<br/>new file mode 100755<br/>index 0000000000..e9046eb147<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bin/testrb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bin/testrb</a></div><div class='hunk'>@@ -0,0 +1,10 @@</div><div class='add'>+#!/usr/bin/env ruby</div><div class='add'>+require 'test/unit'</div><div class='add'>+tests = Test::Unit::AutoRunner.new(true)</div><div class='add'>+tests.options.banner.sub!(/\[options\]/, '\&amp; tests...')</div><div class='add'>+unless tests.process_args(ARGV)</div><div class='add'>+  abort tests.options.banner</div><div class='add'>+end</div><div class='add'>+files = tests.to_run</div><div class='add'>+$0 = files.size == 1 ? File.basename(files[0]) : files.to_s</div><div class='add'>+exit tests.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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..df58ca58f3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/runner.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/runner.rb</a></div><div class='hunk'>@@ -0,0 +1,393 @@</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'>+  $stress = 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(-q|--q(uiet))\z/</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'>+    -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'>+    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'>+  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 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'>+  pathes.each do |path|</div><div class='add'>+    $stderr.print "\n#{File.basename(path)} "</div><div class='add'>+    $stderr.puts if @verbose</div><div class='add'>+    load File.expand_path(path)</div><div class='add'>+  end</div><div class='add'>+  $stderr.puts</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 "PASS 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 "FAIL #{@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'>+  end</div><div class='add'>+  faildesc = yield</div><div class='add'>+  if !faildesc</div><div class='add'>+    $stderr.print '.'</div><div class='add'>+    $stderr.puts if @verbose</div><div class='add'>+  else</div><div class='add'>+    $stderr.print 'F'</div><div class='add'>+    $stderr.puts if @verbose</div><div class='add'>+    error faildesc, message</div><div class='add'>+  end</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 = '')</div><div class='add'>+  show_progress(message) {</div><div class='add'>+    result = get_result_string(testsrc, opt)</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 = '')</div><div class='add'>+  newtest</div><div class='add'>+  assert_check(testsrc, message) {|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)</div><div class='add'>+  newtest</div><div class='add'>+  opt = {}</div><div class='add'>+  opt = rest.pop if Hash === rest.last</div><div class='add'>+  message, ignore_signals = rest</div><div class='add'>+  message ||= ''</div><div class='add'>+  timeout = opt[:timeout]</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.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.*\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(/^/, '   ')</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)</div><div class='add'>+  filename = 'bootstraptest.tmp.rb'</div><div class='add'>+  File.open(filename, 'w') {|f|</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 = '')</div><div class='add'>+  if @ruby</div><div class='add'>+    filename = make_srcfile(src)</div><div class='add'>+    begin</div><div class='add'>+      `#{@ruby} -W0 #{opt} #{filename}`</div><div class='add'>+    ensure</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 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'>+  @errbuf.push "\##{@count} #{@location}: #{msg}  #{additional_message}"</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..e8df6684b6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_autoload.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_autoload.rb</a></div><div class='hunk'>@@ -0,0 +1,110 @@</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 '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'>+  proc{$SAFE=4; ZZZ.ok}.call</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'>+  proc{$SAFE=4; ZZZ.ok}.call</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 hoge;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')</div><div class='add'>+  module M; end</div><div class='add'>+  Thread.new{M.instance_eval('$SAFE=4; ZZZ.new.hoge')}.value</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 hoge;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')</div><div class='add'>+  module M; end</div><div class='add'>+  Thread.new{$SAFE=4; M.instance_eval('ZZZ.new.hoge')}.value</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 hoge;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')</div><div class='add'>+  Thread.new{$SAFE=4; eval('ZZZ.new.hoge')}.value</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 hoge;:ok;end;end"}</div><div class='add'>+  autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')</div><div class='add'>+  module M; end</div><div class='add'>+  Thread.new{eval('$SAFE=4; ZZZ.new.hoge')}.value</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..ea6768cc25<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_block.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_block.rb</a></div><div class='hunk'>@@ -0,0 +1,567 @@</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='head'>diff --git a/bootstraptest/test_class.rb b/bootstraptest/test_class.rb<br/>new file mode 100644<br/>index 0000000000..664dd2f166<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_class.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_class.rb</a></div><div class='hunk'>@@ -0,0 +1,159 @@</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'>+</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_eval.rb b/bootstraptest/test_eval.rb<br/>new file mode 100644<br/>index 0000000000..c347d50ac9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_eval.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_eval.rb</a></div><div class='hunk'>@@ -0,0 +1,321 @@</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 Fixnum</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'>+  begin</div><div class='add'>+    nil.instance_eval {</div><div class='add'>+      def a() :a end</div><div class='add'>+    }</div><div class='add'>+  rescue TypeError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:16796]'</div><div class='add'>+</div><div class='add'>+assert_equal 'ok', %q{</div><div class='add'>+  begin</div><div class='add'>+    nil.instance_exec {</div><div class='add'>+      def a() :a end</div><div class='add'>+    }</div><div class='add'>+  rescue TypeError</div><div class='add'>+    :ok</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:16796]'</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'>+  rescue SystemStackError</div><div class='add'>+  end</div><div class='add'>+}, '[ruby-core:25714]'</div><div class='head'>diff --git a/bootstraptest/test_exception.rb b/bootstraptest/test_exception.rb<br/>new file mode 100644<br/>index 0000000000..f7d5eeaa07<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_exception.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_exception.rb</a></div><div class='hunk'>@@ -0,0 +1,416 @@</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='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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..fc93a5a46c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_flow.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_flow.rb</a></div><div class='hunk'>@@ -0,0 +1,564 @@</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='head'>diff --git a/bootstraptest/test_fork.rb b/bootstraptest/test_fork.rb<br/>new file mode 100644<br/>index 0000000000..384294727f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_fork.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_fork.rb</a></div><div class='hunk'>@@ -0,0 +1,69 @@</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'>+  Thread.new { sleep 1; Thread.kill Thread.main }</div><div class='add'>+  Process.setrlimit(:NPROC, 1)</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'>+    if pid1 = fork</div><div class='add'>+      sleep 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'>+      if pid2 = fork</div><div class='add'>+        trap("USR1") { Time.now.to_s }</div><div class='add'>+        Process.wait2(pid2)</div><div class='add'>+      else</div><div class='add'>+        sleep 2</div><div class='add'>+      end</div><div class='add'>+      exit 0</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'>+  trap(:INT) { a.push(1) }</div><div class='add'>+  trap(:TERM) { a.push(2) }</div><div class='add'>+  pid = $$</div><div class='add'>+  begin</div><div class='add'>+    fork do</div><div class='add'>+      sleep 0.5</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'>+</div><div class='add'>+    sleep 1</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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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_io.rb b/bootstraptest/test_io.rb<br/>new file mode 100644<br/>index 0000000000..7304aebc26<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_io.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_io.rb</a></div><div class='hunk'>@@ -0,0 +1,106 @@</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.1</div><div class='add'>+  w.write "a"</div><div class='add'>+  sleep 0.1</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, TimeoutError, 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.1</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_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'>+    Thread.new { sleep rand*0.2; 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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..ab028e2c1e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_literal.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_literal.rb</a></div><div class='hunk'>@@ -0,0 +1,202 @@</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 'Fixnum',          '1234.class'</div><div class='add'>+assert_equal '1234',            '1_2_3_4'</div><div class='add'>+assert_equal 'Fixnum',          '1_2_3_4.class'</div><div class='add'>+assert_equal '18',              '0x12'</div><div class='add'>+assert_equal 'Fixnum',          '0x12.class'</div><div class='add'>+assert_equal '15',              '0o17'</div><div class='add'>+assert_equal 'Fixnum',          '0o17.class'</div><div class='add'>+assert_equal '5',               '0b101'</div><div class='add'>+assert_equal 'Fixnum',          '0b101.class'</div><div class='add'>+assert_equal '123456789012345678901234567890', '123456789012345678901234567890'</div><div class='add'>+assert_equal 'Bignum',          '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'>+# dynacmi 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 'Fixnum',          '__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='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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..2baf33539d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_method.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_method.rb</a></div><div class='hunk'>@@ -0,0 +1,1186 @@</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_equal 'wrong number of arguments (1 for 0)', %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_equal 'wrong number of arguments (0 for 1)', %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 %q{[:ok, :ok, :ok, :ok, :ok, :ok, :ng, :ng]}, %q{</div><div class='add'>+  $ans = []</div><div class='add'>+  class Foo</div><div class='add'>+    def m</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  c1 = c2 = nil</div><div class='add'>+</div><div class='add'>+  lambda{</div><div class='add'>+    $SAFE = 4</div><div class='add'>+    c1 = Class.new{</div><div class='add'>+      def m</div><div class='add'>+      end</div><div class='add'>+    }</div><div class='add'>+    c2 = Class.new(Foo){</div><div class='add'>+      alias mm m</div><div class='add'>+    }</div><div class='add'>+  }.call</div><div class='add'>+</div><div class='add'>+  def test</div><div class='add'>+    begin</div><div class='add'>+      yield</div><div class='add'>+    rescue SecurityError</div><div class='add'>+      $ans &lt;&lt; :ok</div><div class='add'>+    else</div><div class='add'>+      $ans &lt;&lt; :ng</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'>+  test{o1.m}</div><div class='add'>+  test{o2.mm}</div><div class='add'>+  test{o1.send :m}</div><div class='add'>+  test{o2.send :mm}</div><div class='add'>+  test{o1.public_send :m}</div><div class='add'>+  test{o2.public_send :mm}</div><div class='add'>+  test{o1.method(:m).call}</div><div class='add'>+  test{o2.method(:mm).call}</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'>+  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'>+  proc{</div><div class='add'>+    $SAFE = 2</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'>+  proc{</div><div class='add'>+    $SAFE = 3</div><div class='add'>+    class C</div><div class='add'>+      def m</div><div class='add'>+        :ng</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  }.call</div><div class='add'>+  begin</div><div class='add'>+    C.new.m</div><div class='add'>+  rescue SecurityError</div><div class='add'>+    :ok</div><div class='add'>+  end</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_202_496)</div><div class='add'>+    # FreeBSD fails this less than 4M + 8K 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='head'>diff --git a/bootstraptest/test_objectspace.rb b/bootstraptest/test_objectspace.rb<br/>new file mode 100644<br/>index 0000000000..862a94e376<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_objectspace.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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'>+    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..3d347004ea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_proc.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_proc.rb</a></div><div class='hunk'>@@ -0,0 +1,458 @@</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='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=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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..ef1c622ace<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_syntax.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_syntax.rb</a></div><div class='hunk'>@@ -0,0 +1,902 @@</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{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 tSTAR, 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}, %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..2494cccbf3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/bootstraptest/test_thread.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>bootstraptest/test_thread.rb</a></div><div class='hunk'>@@ -0,0 +1,454 @@</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{20100}, %q{</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</div><div class='add'>+}</div><div class='add'>+assert_equal %q{5000}, %q{</div><div class='add'>+  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'>+}</div><div class='add'>+assert_equal %q{5000}, %q{</div><div class='add'>+  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'>+}</div><div class='add'>+assert_equal %q{5000}, %q{</div><div class='add'>+  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'>+}</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</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 2}</div><div class='add'>+  th.join(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 2}</div><div class='add'>+  begin</div><div class='add'>+    Timeout.timeout(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 do // =~ "" end }</div><div class='add'>+    sleep 0.1</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 = Mutex.new, Mutex.new</div><div class='add'>+    Thread.new { m1.lock; sleep 1; m2.lock }</div><div class='add'>+    m2.lock; sleep 1; 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 = Mutex.new</div><div class='add'>+  Thread.new { m.lock }; sleep 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 = 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 = 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 = Mutex.new</div><div class='add'>+  Thread.new { m.lock; sleep 2 }</div><div class='add'>+  sleep 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 = Mutex.new</div><div class='add'>+  Thread.new { m.lock; sleep 2; m.unlock }</div><div class='add'>+  sleep 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'>+    10000.times { Thread.new(true) {|x| x == false } }</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</div><div class='add'>+      begin</div><div class='add'>+        m = Mutex.new</div><div class='add'>+        Thread.new { m.lock; sleep 1 }</div><div class='add'>+        sleep 0.3</div><div class='add'>+        parent = Thread.current</div><div class='add'>+        Thread.new do</div><div class='add'>+          sleep 0.3</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'>+        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 = Mutex.new</div><div class='add'>+  cond = 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 {sleep 1})[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'>+  f = proc {|s| /#{ sleep 1; s }/o }</div><div class='add'>+  [ Thread.new {            f.call("foo"); nil },</div><div class='add'>+    Thread.new { sleep 0.5; f.call("bar"); nil },</div><div class='add'>+  ].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/class.c b/class.c<br/>index fefc99d65e..df19812d15 100644<br/>--- a/<a href='/ruby.git/tree/class.c?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>class.c</a><br/>+++ b/<a href='/ruby.git/tree/class.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>class.c</a></div><div class='hunk'>@@ -1,647 +1,1549 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </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-1998 Yukihiro Matsumoto</div><div class='del'>-</div><div class='del'>-************************************************/</div><div class='del'>-</div><div class='del'>-#include "ruby.h"</div><div class='del'>-#include "node.h"</div><div class='del'>-#include "st.h"</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'>+/*!</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 "ruby/ruby.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+#include "method.h"</div><div class='add'>+#include "constant.h"</div><div class='add'>+#include "vm_core.h"</div><div class='add'>+#include "internal.h"</div><div class='ctx'> #include &lt;ctype.h&gt;</div><div class='ctx'> </div><div class='del'>-#ifdef USE_CWGUSI</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#endif</div><div class='del'>-</div><div class='ctx'> extern st_table *rb_class_tbl;</div><div class='add'>+static ID id_attached;</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'>+    rb_classext_t *ext = ALLOC(rb_classext_t);</div><div class='add'>+    NEWOBJ(obj, struct RClass);</div><div class='add'>+    OBJSETUP(obj, klass, flags);</div><div class='add'>+    obj-&gt;ptr = ext;</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_SUPER(obj) = 0;</div><div class='add'>+    RCLASS_IV_INDEX_TBL(obj) = 0;</div><div class='add'>+    return (VALUE)obj;</div><div class='add'>+}</div><div class='ctx'> </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'>-class_new(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, 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 = new_idhash();</div><div class='add'>+    RCLASS_SUPER(klass) = super;</div><div class='add'>+    RCLASS_M_TBL(klass) = st_init_numtable();</div><div class='ctx'> </div><div class='add'>+    OBJ_INFECT(klass, super);</div><div class='ctx'>     return (VALUE)klass;</div><div class='ctx'> }</div><div class='ctx'> </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='add'>+{</div><div class='add'>+    if (TYPE(super) != T_CLASS) {</div><div class='add'>+	rb_raise(rb_eTypeError, "superclass must be a Class (%s given)",</div><div class='add'>+		 rb_obj_classname(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='add'>+    if (super == rb_cClass) {</div><div class='add'>+	rb_raise(rb_eTypeError, "can't make subclass of Class");</div><div class='add'>+    }</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='ctx'> VALUE</div><div class='del'>-singleton_class_new(super)</div><div class='del'>-    VALUE super;</div><div class='add'>+rb_class_new(VALUE super)</div><div class='ctx'> {</div><div class='del'>-    VALUE klass = class_new(super);</div><div class='add'>+    Check_Type(super, T_CLASS);</div><div class='add'>+    rb_check_inheritable(super);</div><div class='add'>+    return rb_class_boot(super);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    FL_SET(klass, FL_SINGLETON);</div><div class='del'>-    return klass;</div><div class='add'>+struct clone_method_data {</div><div class='add'>+    st_table *tbl;</div><div class='add'>+    VALUE klass;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+VALUE rb_iseq_clone(VALUE iseqval, VALUE newcbase);</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+clone_method(ID mid, const rb_method_entry_t *me, struct clone_method_data *data)</div><div class='add'>+{</div><div class='add'>+    VALUE newiseqval;</div><div class='add'>+    if (me-&gt;def &amp;&amp; me-&gt;def-&gt;type == VM_METHOD_TYPE_ISEQ) {</div><div class='add'>+	rb_iseq_t *iseq;</div><div class='add'>+	newiseqval = rb_iseq_clone(me-&gt;def-&gt;body.iseq-&gt;self, data-&gt;klass);</div><div class='add'>+	GetISeqPtr(newiseqval, iseq);</div><div class='add'>+	rb_add_method(data-&gt;klass, mid, VM_METHOD_TYPE_ISEQ, iseq, me-&gt;flag);</div><div class='add'>+	RB_GC_GUARD(newiseqval);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	rb_method_entry_set(data-&gt;klass, mid, me, me-&gt;flag);</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'>-clone_method(mid, body, tbl)</div><div class='del'>-    ID mid;</div><div class='del'>-    NODE *body;</div><div class='del'>-    st_table *tbl;</div><div class='add'>+clone_const(ID key, const rb_const_entry_t *ce, st_table *tbl)</div><div class='ctx'> {</div><div class='del'>-    st_insert(tbl, mid, NEW_METHOD(body-&gt;nd_body, body-&gt;nd_noex));</div><div class='add'>+    rb_const_entry_t *nce = ALLOC(rb_const_entry_t);</div><div class='add'>+    *nce = *ce;</div><div class='add'>+    st_insert(tbl, key, (st_data_t)nce);</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+static int</div><div class='add'>+clone_const_i(st_data_t key, st_data_t value, st_data_t data)</div><div class='add'>+{</div><div class='add'>+    return clone_const((ID)key, (const rb_const_entry_t *)value, (st_table *)data);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='ctx'> VALUE</div><div class='del'>-singleton_class_clone(klass)</div><div class='del'>-    VALUE klass;</div><div class='add'>+rb_mod_init_copy(VALUE clone, VALUE orig)</div><div class='add'>+{</div><div class='add'>+    rb_obj_init_copy(clone, orig);</div><div class='add'>+    if (!FL_TEST(CLASS_OF(clone), FL_SINGLETON)) {</div><div class='add'>+	RBASIC(clone)-&gt;klass = rb_singleton_class_clone(orig);</div><div class='add'>+	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, (VALUE)clone);</div><div class='add'>+    }</div><div class='add'>+    RCLASS_SUPER(clone) = RCLASS_SUPER(orig);</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'>+	if (RCLASS_IV_TBL(clone)) {</div><div class='add'>+	    st_free_table(RCLASS_IV_TBL(clone));</div><div class='add'>+	}</div><div class='add'>+	RCLASS_IV_TBL(clone) = st_copy(RCLASS_IV_TBL(orig));</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'>+	if (RCLASS_CONST_TBL(clone)) {</div><div class='add'>+	    rb_free_const_table(RCLASS_CONST_TBL(clone));</div><div class='add'>+	}</div><div class='add'>+	RCLASS_CONST_TBL(clone) = st_init_numtable();</div><div class='add'>+	st_foreach(RCLASS_CONST_TBL(orig), clone_const_i, (st_data_t)RCLASS_CONST_TBL(clone));</div><div class='add'>+    }</div><div class='add'>+    if (RCLASS_M_TBL(orig)) {</div><div class='add'>+	struct clone_method_data data;</div><div class='add'>+</div><div class='add'>+	if (RCLASS_M_TBL(clone)) {</div><div class='add'>+	    rb_free_m_table(RCLASS_M_TBL(clone));</div><div class='add'>+	}</div><div class='add'>+	data.tbl = RCLASS_M_TBL(clone) = st_init_numtable();</div><div class='add'>+	data.klass = clone;</div><div class='add'>+	st_foreach(RCLASS_M_TBL(orig), clone_method,</div><div class='add'>+		   (st_data_t)&amp;data);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return clone;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* :nodoc: */</div><div class='add'>+VALUE</div><div class='add'>+rb_class_init_copy(VALUE clone, VALUE orig)</div><div class='ctx'> {</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='add'>+    }</div><div class='add'>+    return rb_mod_init_copy(clone, orig);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_singleton_class_clone(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+</div><div class='ctx'>     if (!FL_TEST(klass, FL_SINGLETON))</div><div class='ctx'> 	return klass;</div><div class='ctx'>     else {</div><div class='add'>+	struct clone_method_data data;</div><div class='ctx'> 	/* copy singleton(unnamed) class */</div><div class='del'>-	NEWOBJ(clone, struct RClass);</div><div class='del'>-	CLONESETUP(clone, klass);</div><div class='del'>-</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'>-	clone-&gt;m_tbl = new_idhash();</div><div class='del'>-	st_foreach(RCLASS(klass)-&gt;m_tbl, clone_method, clone-&gt;m_tbl);</div><div class='add'>+	VALUE clone = class_alloc((RBASIC(klass)-&gt;flags &amp; ~(FL_MARK)), 0);</div><div class='add'>+</div><div class='add'>+	if (BUILTIN_TYPE(obj) == T_CLASS) {</div><div class='add'>+	    RBASIC(clone)-&gt;klass = (VALUE)clone;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    RBASIC(clone)-&gt;klass = rb_singleton_class_clone(klass);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	RCLASS_SUPER(clone) = RCLASS_SUPER(klass);</div><div class='add'>+	if (RCLASS_IV_TBL(klass)) {</div><div class='add'>+	    RCLASS_IV_TBL(clone) = st_copy(RCLASS_IV_TBL(klass));</div><div class='add'>+	}</div><div class='add'>+	if (RCLASS_CONST_TBL(klass)) {</div><div class='add'>+	    RCLASS_CONST_TBL(clone) = st_init_numtable();</div><div class='add'>+	    st_foreach(RCLASS_CONST_TBL(klass), clone_const_i, (st_data_t)RCLASS_CONST_TBL(clone));</div><div class='add'>+	}</div><div class='add'>+	RCLASS_M_TBL(clone) = st_init_numtable();</div><div class='add'>+	data.tbl = RCLASS_M_TBL(clone);</div><div class='add'>+	data.klass = (VALUE)clone;</div><div class='add'>+	st_foreach(RCLASS_M_TBL(klass), clone_method,</div><div class='add'>+		   (st_data_t)&amp;data);</div><div class='add'>+	rb_singleton_class_attached(RBASIC(clone)-&gt;klass, (VALUE)clone);</div><div class='ctx'> 	FL_SET(clone, FL_SINGLETON);</div><div class='ctx'> 	return (VALUE)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'>-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='del'>-    if (FL_TEST(klass, FL_SINGLETON))</div><div class='del'>-	rb_iv_set(klass, "__attached__", obj);</div><div class='add'>+    if (FL_TEST(klass, FL_SINGLETON)) {</div><div class='add'>+	if (!RCLASS_IV_TBL(klass)) {</div><div class='add'>+	    RCLASS_IV_TBL(klass) = st_init_numtable();</div><div class='add'>+	}</div><div class='add'>+	st_insert(RCLASS_IV_TBL(klass), id_attached, obj);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_define_class_id(id, super)</div><div class='del'>-    ID id;</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#define METACLASS_OF(k) RBASIC(k)-&gt;klass</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'>+</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'>+ (rb_ivar_get(METACLASS_OF(klass), id_attached) == (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='ctx'>     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'>+	METACLASS_OF(klass) = METACLASS_OF(metaclass) = metaclass;</div><div class='add'>+    }</div><div class='add'>+    else {</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'>+	METACLASS_OF(klass) = metaclass;</div><div class='add'>+	METACLASS_OF(metaclass) = ENSURE_EIGENCLASS(tmp);</div><div class='add'>+    }</div><div class='add'>+</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_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(obj)-&gt;klass = klass;</div><div class='add'>+    rb_singleton_class_attached(klass, obj);</div><div class='add'>+</div><div class='add'>+    METACLASS_OF(klass) = METACLASS_OF(rb_class_real(orig_class));</div><div class='add'>+    return klass;</div><div class='add'>+}</div><div class='add'>+</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'>+    extern st_table *rb_class_tbl;</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'>+    st_add_direct(rb_class_tbl, id, obj);</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'>+    id_attached = rb_intern("__attached__");</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_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("BasicObject"), rb_cBasicObject);</div><div class='add'>+    RBASIC(rb_cClass)-&gt;klass</div><div class='add'>+	= RBASIC(rb_cModule)-&gt;klass</div><div class='add'>+	= RBASIC(rb_cObject)-&gt;klass</div><div class='add'>+	= RBASIC(rb_cBasicObject)-&gt;klass</div><div class='add'>+	= 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='add'>+VALUE</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='del'>-    if (!super) super = cObject;</div><div class='del'>-    klass = class_new(super);</div><div class='del'>-    rb_name_class(klass, id);</div><div class='del'>-    /* make metaclass */</div><div class='del'>-    RBASIC(klass)-&gt;klass = singleton_class_new(RBASIC(super)-&gt;klass);</div><div class='del'>-    singleton_class_attached(RBASIC(klass)-&gt;klass, klass);</div><div class='del'>-    rb_funcall(super, rb_intern("inherited"), 1, klass);</div><div class='add'>+    if (!super) super = rb_cObject;</div><div class='add'>+    klass = rb_class_new(super);</div><div class='add'>+    rb_make_metaclass(klass, RBASIC(super)-&gt;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'>+ * 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_define_class(name, super)</div><div class='del'>-    char *name;</div><div class='del'>-    VALUE super;</div><div class='add'>+rb_class_inherited(VALUE super, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    ID inherited;</div><div class='add'>+    if (!super) super = rb_cObject;</div><div class='add'>+    CONST_ID(inherited, "inherited");</div><div class='add'>+    return rb_funcall(super, inherited, 1, 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'>+ * 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'>+ *               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 NameError 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(const char *name, VALUE super)</div><div class='ctx'> {</div><div class='ctx'>     VALUE klass;</div><div class='ctx'>     ID id;</div><div class='ctx'> </div><div class='ctx'>     id = rb_intern(name);</div><div class='add'>+    if (rb_const_defined(rb_cObject, id)) {</div><div class='add'>+	klass = rb_const_get(rb_cObject, id);</div><div class='add'>+	if (TYPE(klass) != T_CLASS) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "%s is not a class", name);</div><div class='add'>+	}</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='add'>+	}</div><div class='add'>+	return klass;</div><div class='add'>+    }</div><div class='add'>+    if (!super) {</div><div class='add'>+	rb_warn("no super class for `%s', Object assumed", name);</div><div class='add'>+    }</div><div class='ctx'>     klass = rb_define_class_id(id, super);</div><div class='ctx'>     st_add_direct(rb_class_tbl, id, klass);</div><div class='add'>+    rb_name_class(klass, id);</div><div class='add'>+    rb_const_set(rb_cObject, id, klass);</div><div class='add'>+    rb_class_inherited(super, 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'>+ * 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 NameError 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'>-    char *name;</div><div class='del'>-    VALUE super;</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 NameError 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_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='add'>+    if (rb_const_defined_at(outer, id)) {</div><div class='add'>+	klass = rb_const_get_at(outer, id);</div><div class='add'>+	if (TYPE(klass) != T_CLASS) {</div><div class='add'>+	    rb_raise(rb_eTypeError, "%s is not a class", rb_id2name(id));</div><div class='add'>+	}</div><div class='add'>+	if (rb_class_real(RCLASS_SUPER(klass)) != super) {</div><div class='add'>+	    rb_name_error(id, "%s is already defined", rb_id2name(id));</div><div class='add'>+	}</div><div class='add'>+	return klass;</div><div class='add'>+    }</div><div class='add'>+    if (!super) {</div><div class='add'>+	rb_warn("no super class for `%s::%s', Object assumed",</div><div class='add'>+		rb_class2name(outer), rb_id2name(id));</div><div class='add'>+    }</div><div class='ctx'>     klass = rb_define_class_id(id, super);</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='del'>-    rb_set_class_path(klass, outer, name);</div><div class='add'>+    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'>-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, cModule, T_MODULE);</div><div class='add'>+    VALUE mdl = class_alloc(T_MODULE, rb_cModule);</div><div class='ctx'> </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 = new_idhash();</div><div class='add'>+    RCLASS_M_TBL(mdl) = st_init_numtable();</div><div class='ctx'> </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='del'>-    extern st_table *rb_class_tbl;</div><div class='del'>-    VALUE mdl = module_new();</div><div class='add'>+    VALUE mdl;</div><div class='ctx'> </div><div class='add'>+    mdl = rb_module_new();</div><div class='ctx'>     rb_name_class(mdl, id);</div><div class='ctx'> </div><div class='ctx'>     return mdl;</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'>-    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='ctx'> </div><div class='ctx'>     id = rb_intern(name);</div><div class='add'>+    if (rb_const_defined(rb_cObject, id)) {</div><div class='add'>+	module = rb_const_get(rb_cObject, id);</div><div class='add'>+	if (TYPE(module) == T_MODULE)</div><div class='add'>+	    return module;</div><div class='add'>+	rb_raise(rb_eTypeError, "%s is not a module", rb_obj_classname(module));</div><div class='add'>+    }</div><div class='ctx'>     module = rb_define_module_id(id);</div><div class='ctx'>     st_add_direct(rb_class_tbl, id, module);</div><div class='add'>+    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'>-    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='add'>+    if (rb_const_defined_at(outer, id)) {</div><div class='add'>+	module = rb_const_get_at(outer, id);</div><div class='add'>+	if (TYPE(module) == T_MODULE)</div><div class='add'>+	    return module;</div><div class='add'>+	rb_raise(rb_eTypeError, "%s::%s is not a module",</div><div class='add'>+		 rb_class2name(outer), rb_obj_classname(module));</div><div class='add'>+    }</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='ctx'> static VALUE</div><div class='del'>-include_class_new(module, super)</div><div class='del'>-    VALUE module, super;</div><div class='add'>+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, cClass, T_ICLASS);</div><div class='add'>+    VALUE klass = class_alloc(T_ICLASS, rb_cClass);</div><div class='ctx'> </div><div class='del'>-    klass-&gt;m_tbl = RCLASS(module)-&gt;m_tbl;</div><div class='del'>-    klass-&gt;iv_tbl = RCLASS(module)-&gt;iv_tbl;</div><div class='del'>-    klass-&gt;super = super;</div><div class='add'>+    if (BUILTIN_TYPE(module) == T_ICLASS) {</div><div class='add'>+	module = RBASIC(module)-&gt;klass;</div><div class='add'>+    }</div><div class='add'>+    if (!RCLASS_IV_TBL(module)) {</div><div class='add'>+	RCLASS_IV_TBL(module) = st_init_numtable();</div><div class='add'>+    }</div><div class='add'>+    if (!RCLASS_CONST_TBL(module)) {</div><div class='add'>+	RCLASS_CONST_TBL(module) = st_init_numtable();</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'>+    RCLASS_M_TBL(klass) = RCLASS_M_TBL(module);</div><div class='add'>+    RCLASS_SUPER(klass) = super;</div><div class='ctx'>     if (TYPE(module) == T_ICLASS) {</div><div class='ctx'> 	RBASIC(klass)-&gt;klass = RBASIC(module)-&gt;klass;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	RBASIC(klass)-&gt;klass = module;</div><div class='ctx'>     }</div><div class='add'>+    OBJ_INFECT(klass, module);</div><div class='add'>+    OBJ_INFECT(klass, super);</div><div class='ctx'> </div><div class='ctx'>     return (VALUE)klass;</div><div class='ctx'> }</div><div class='ctx'> </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;</div><div class='add'>+    VALUE p, c;</div><div class='add'>+    int changed = 0;</div><div class='ctx'> </div><div class='del'>-    if (NIL_P(module)) return;</div><div class='del'>-    if (klass == module) return;</div><div class='add'>+    rb_frozen_class_p(klass);</div><div class='add'>+    if (!OBJ_UNTRUSTED(klass)) {</div><div class='add'>+	rb_secure(4);</div><div class='add'>+    }</div><div class='ctx'> </div><div class='del'>-    switch (TYPE(module)) {</div><div class='del'>-      case T_MODULE:</div><div class='del'>-      case T_CLASS:</div><div class='del'>-      case T_ICLASS:</div><div class='del'>-	break;</div><div class='del'>-      default:</div><div class='add'>+    if (TYPE(module) != T_MODULE) {</div><div class='ctx'> 	Check_Type(module, T_MODULE);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='add'>+    OBJ_INFECT(klass, module);</div><div class='add'>+    c = klass;</div><div class='ctx'>     while (module) {</div><div class='add'>+	int superclass_seen = FALSE;</div><div class='add'>+</div><div class='add'>+	if (RCLASS_M_TBL(klass) == RCLASS_M_TBL(module))</div><div class='add'>+	    rb_raise(rb_eArgError, "cyclic include detected");</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'>-	    if (BUILTIN_TYPE(p) == T_ICLASS &amp;&amp;</div><div class='del'>-		RCLASS(p)-&gt;m_tbl == RCLASS(module)-&gt;m_tbl) {</div><div class='del'>-		if (RCLASS(module)-&gt;super) {</div><div class='del'>-		    rb_include_module(p, RCLASS(module)-&gt;super);</div><div class='add'>+	for (p = RCLASS_SUPER(klass); p; p = RCLASS_SUPER(p)) {</div><div class='add'>+	    switch (BUILTIN_TYPE(p)) {</div><div class='add'>+	      case T_ICLASS:</div><div class='add'>+		if (RCLASS_M_TBL(p) == RCLASS_M_TBL(module)) {</div><div class='add'>+		    if (!superclass_seen) {</div><div class='add'>+			c = p;  /* move insertion point */</div><div class='add'>+		    }</div><div class='add'>+		    goto skip;</div><div class='ctx'> 		}</div><div class='del'>-		return;</div><div class='add'>+		break;</div><div class='add'>+	      case T_CLASS:</div><div class='add'>+		superclass_seen = TRUE;</div><div class='add'>+		break;</div><div class='ctx'> 	    }</div><div class='ctx'> 	}</div><div class='del'>-	RCLASS(klass)-&gt;super =</div><div class='del'>-	    include_class_new(module, RCLASS(klass)-&gt;super);</div><div class='del'>-	klass = RCLASS(klass)-&gt;super;</div><div class='del'>-	module = RCLASS(module)-&gt;super;</div><div class='add'>+	c = RCLASS_SUPER(c) = include_class_new(module, RCLASS_SUPER(c));</div><div class='add'>+	if (RMODULE_M_TBL(module) &amp;&amp; RMODULE_M_TBL(module)-&gt;num_entries)</div><div class='add'>+	    changed = 1;</div><div class='add'>+      skip:</div><div class='add'>+	module = RCLASS_SUPER(module);</div><div class='ctx'>     }</div><div class='del'>-    rb_clear_cache();</div><div class='add'>+    if (changed) rb_clear_cache();</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     mod.included_modules -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns the list of modules included in &lt;i&gt;mod&lt;/i&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     module Mixin</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     module Outer</div><div class='add'>+ *       include Mixin</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     Mixin.included_modules   #=&gt; []</div><div class='add'>+ *     Outer.included_modules   #=&gt; [Mixin]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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='del'>-    VALUE ary = ary_new();</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='ctx'>     VALUE p;</div><div class='ctx'> </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='del'>-	    ary_push(ary, RBASIC(p)-&gt;klass);</div><div class='add'>+	    rb_ary_push(ary, RBASIC(p)-&gt;klass);</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'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     mod.include?(module)    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Returns &lt;code&gt;true&lt;/code&gt; if &lt;i&gt;module&lt;/i&gt; is included in</div><div class='add'>+ *  &lt;i&gt;mod&lt;/i&gt; or one of &lt;i&gt;mod&lt;/i&gt;'s ancestors.</div><div class='add'>+ *</div><div class='add'>+ *     module A</div><div class='add'>+ *     end</div><div class='add'>+ *     class B</div><div class='add'>+ *       include A</div><div class='add'>+ *     end</div><div class='add'>+ *     class C &lt; B</div><div class='add'>+ *     end</div><div class='add'>+ *     B.include?(A)   #=&gt; true</div><div class='add'>+ *     C.include?(A)   #=&gt; true</div><div class='add'>+ *     A.include?(A)   #=&gt; false</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-mod_ancestors(mod)</div><div class='del'>-    VALUE mod;</div><div class='add'>+rb_mod_include_p(VALUE mod, VALUE mod2)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary = ary_new();</div><div class='ctx'>     VALUE p;</div><div class='ctx'> </div><div class='del'>-    for (p = mod; p; p = RCLASS(p)-&gt;super) {</div><div class='add'>+    Check_Type(mod2, T_MODULE);</div><div class='add'>+    for (p = RCLASS_SUPER(mod); p; p = RCLASS_SUPER(p)) {</div><div class='add'>+	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='add'>+	    if (RBASIC(p)-&gt;klass == mod2) 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'>+ *     mod.ancestors -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of modules included in &lt;i&gt;mod&lt;/i&gt; (including</div><div class='add'>+ *  &lt;i&gt;mod&lt;/i&gt; itself).</div><div class='add'>+ *</div><div class='add'>+ *     module Mod</div><div class='add'>+ *       include Math</div><div class='add'>+ *       include Comparable</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     Mod.ancestors    #=&gt; [Mod, Comparable, Math]</div><div class='add'>+ *     Math.ancestors   #=&gt; [Math]</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_mod_ancestors(VALUE mod)</div><div class='add'>+{</div><div class='add'>+    VALUE p, ary = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    for (p = mod; p; p = RCLASS_SUPER(p)) {</div><div class='ctx'> 	if (FL_TEST(p, FL_SINGLETON))</div><div class='ctx'> 	    continue;</div><div class='ctx'> 	if (BUILTIN_TYPE(p) == T_ICLASS) {</div><div class='del'>-	    ary_push(ary, RBASIC(p)-&gt;klass);</div><div class='add'>+	    rb_ary_push(ary, RBASIC(p)-&gt;klass);</div><div class='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    ary_push(ary, p);</div><div class='add'>+	    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='add'>+#define VISI(x) ((x)&amp;NOEX_MASK)</div><div class='add'>+#define VISI_CHECK(x,f) (VISI(x) == (f))</div><div class='add'>+</div><div class='ctx'> static int</div><div class='del'>-ins_methods_i(key, body, ary)</div><div class='del'>-    ID key;</div><div class='del'>-    NODE *body;</div><div class='del'>-    VALUE ary;</div><div class='add'>+ins_methods_push(ID name, long type, VALUE ary, long visi)</div><div class='ctx'> {</div><div class='del'>-    if ((body-&gt;nd_noex&amp;(NOEX_PRIVATE|NOEX_PROTECTED)) == 0) {</div><div class='del'>-	VALUE name = str_new2(rb_id2name(key));</div><div class='add'>+    if (type == -1) return ST_CONTINUE;</div><div class='ctx'> </div><div class='del'>-	if (!ary_includes(ary, name)) {</div><div class='del'>-	    if (!body-&gt;nd_body) {</div><div class='del'>-		ary_push(ary, Qnil);</div><div class='del'>-	    }</div><div class='del'>-	    ary_push(ary, name);</div><div class='del'>-	}</div><div class='add'>+    switch (visi) {</div><div class='add'>+      case NOEX_PRIVATE:</div><div class='add'>+      case NOEX_PROTECTED:</div><div class='add'>+      case NOEX_PUBLIC:</div><div class='add'>+	visi = (type == visi);</div><div class='add'>+	break;</div><div class='add'>+      default:</div><div class='add'>+	visi = (type != NOEX_PRIVATE);</div><div class='add'>+	break;</div><div class='ctx'>     }</div><div class='del'>-    else if (body-&gt;nd_body &amp;&amp; nd_type(body-&gt;nd_body) == NODE_ZSUPER) {</div><div class='del'>-	ary_push(ary, Qnil);</div><div class='del'>-	ary_push(ary, str_new2(rb_id2name(key)));</div><div class='add'>+    if (visi) {</div><div class='add'>+	rb_ary_push(ary, ID2SYM(name));</div><div class='ctx'>     }</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_prot_i(key, body, ary)</div><div class='del'>-    ID key;</div><div class='del'>-    NODE *body;</div><div class='del'>-    VALUE ary;</div><div class='add'>+ins_methods_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='ctx'> {</div><div class='del'>-    if (!body-&gt;nd_body) {</div><div class='del'>-	ary_push(ary, Qnil);</div><div class='del'>-	ary_push(ary, str_new2(rb_id2name(key)));</div><div class='del'>-    }</div><div class='del'>-    else if (body-&gt;nd_noex &amp; NOEX_PROTECTED) {</div><div class='del'>-	VALUE name = str_new2(rb_id2name(key));</div><div class='add'>+    return ins_methods_push((ID)name, (long)type, (VALUE)ary, -1); /* everything but private */</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-	if (!ary_includes(ary, name)) {</div><div class='del'>-	    ary_push(ary, name);</div><div class='del'>-	}</div><div class='del'>-    }</div><div class='del'>-    else if (nd_type(body-&gt;nd_body) == NODE_ZSUPER) {</div><div class='del'>-	ary_push(ary, Qnil);</div><div class='del'>-	ary_push(ary, str_new2(rb_id2name(key)));</div><div class='del'>-    }</div><div class='del'>-    return ST_CONTINUE;</div><div class='add'>+static int</div><div class='add'>+ins_methods_prot_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    return ins_methods_push((ID)name, (long)type, (VALUE)ary, NOEX_PROTECTED);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static int</div><div class='del'>-ins_methods_priv_i(key, body, ary)</div><div class='del'>-    ID key;</div><div class='del'>-    NODE *body;</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'>-    if (!body-&gt;nd_body) {</div><div class='del'>-	ary_push(ary, Qnil);</div><div class='del'>-	ary_push(ary, str_new2(rb_id2name(key)));</div><div class='add'>+    return ins_methods_push((ID)name, (long)type, (VALUE)ary, NOEX_PRIVATE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ins_methods_pub_i(st_data_t name, st_data_t type, st_data_t ary)</div><div class='add'>+{</div><div class='add'>+    return ins_methods_push((ID)name, (long)type, (VALUE)ary, NOEX_PUBLIC);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+method_entry_i(st_data_t key, st_data_t value, st_data_t 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'>+    st_table *list = (st_table *)data;</div><div class='add'>+    long type;</div><div class='add'>+</div><div class='add'>+    if ((ID)key == ID_ALLOCATOR) {</div><div class='add'>+	return ST_CONTINUE;</div><div class='ctx'>     }</div><div class='del'>-    else if (body-&gt;nd_noex &amp; NOEX_PRIVATE) {</div><div class='del'>-	VALUE name = str_new2(rb_id2name(key));</div><div class='ctx'> </div><div class='del'>-	if (!ary_includes(ary, name)) {</div><div class='del'>-	    ary_push(ary, name);</div><div class='add'>+    if (!st_lookup(list, key, 0)) {</div><div class='add'>+	if (UNDEFINED_METHOD_ENTRY_P(me)) {</div><div class='add'>+	    type = -1; /* none */</div><div class='ctx'> 	}</div><div class='del'>-    }</div><div class='del'>-    else if (nd_type(body-&gt;nd_body) == NODE_ZSUPER) {</div><div class='del'>-	ary_push(ary, Qnil);</div><div class='del'>-	ary_push(ary, str_new2(rb_id2name(key)));</div><div class='add'>+	else {</div><div class='add'>+	    type = VISI(me-&gt;flag);</div><div class='add'>+	}</div><div class='add'>+	st_add_direct(list, key, type);</div><div class='ctx'>     }</div><div class='ctx'>     return ST_CONTINUE;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-method_list(mod, option, func)</div><div class='del'>-    VALUE mod;</div><div class='del'>-    int option;</div><div class='del'>-    int (*func)();</div><div class='add'>+class_instance_method_list(int argc, 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'>-    VALUE klass;</div><div class='del'>-    VALUE *p, *q, *pend;</div><div class='add'>+    int recur;</div><div class='add'>+    st_table *list;</div><div class='ctx'> </div><div class='del'>-    ary = ary_new();</div><div class='del'>-    for (klass = mod; klass; klass = RCLASS(klass)-&gt;super) {</div><div class='del'>-	st_foreach(RCLASS(klass)-&gt;m_tbl, func, ary);</div><div class='del'>-	if (!option) break;</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	recur = TRUE;</div><div class='ctx'>     }</div><div class='del'>-    p = q = RARRAY(ary)-&gt;ptr; pend = p + RARRAY(ary)-&gt;len;</div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	if (*p == Qnil) {</div><div class='del'>-	    p+=2;</div><div class='del'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	*q++ = *p++;</div><div class='add'>+    else {</div><div class='add'>+	VALUE r;</div><div class='add'>+	rb_scan_args(argc, argv, "01", &amp;r);</div><div class='add'>+	recur = RTEST(r);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    list = st_init_numtable();</div><div class='add'>+    for (; mod; mod = RCLASS_SUPER(mod)) {</div><div class='add'>+	st_foreach(RCLASS_M_TBL(mod), method_entry_i, (st_data_t)list);</div><div class='add'>+	if (BUILTIN_TYPE(mod) == T_ICLASS) continue;</div><div class='add'>+	if (obj &amp;&amp; FL_TEST(mod, FL_SINGLETON)) continue;</div><div class='add'>+	if (!recur) break;</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = q - RARRAY(ary)-&gt;ptr;</div><div class='add'>+    ary = rb_ary_new();</div><div class='add'>+    st_foreach(list, func, ary);</div><div class='add'>+    st_free_table(list);</div><div class='add'>+</div><div class='ctx'>     return ary;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</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. With no</div><div class='add'>+ *  argument, or with an argument that is &lt;code&gt;false&lt;/code&gt;, the</div><div class='add'>+ *  instance methods in &lt;i&gt;mod&lt;/i&gt; are returned, otherwise the methods</div><div class='add'>+ *  in &lt;i&gt;mod&lt;/i&gt; and &lt;i&gt;mod&lt;/i&gt;'s superclasses are returned.</div><div class='add'>+ *</div><div class='add'>+ *     module A</div><div class='add'>+ *       def method1()  end</div><div class='add'>+ *     end</div><div class='add'>+ *     class B</div><div class='add'>+ *       def method2()  end</div><div class='add'>+ *     end</div><div class='add'>+ *     class C &lt; B</div><div class='add'>+ *       def method3()  end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     A.instance_methods                #=&gt; [:method1]</div><div class='add'>+ *     B.instance_methods(false)         #=&gt; [:method2]</div><div class='add'>+ *     C.instance_methods(false)         #=&gt; [:method3]</div><div class='add'>+ *     C.instance_methods(true).length   #=&gt; 43</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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, VALUE *argv, VALUE mod)</div><div class='ctx'> {</div><div class='del'>-    VALUE option;</div><div class='add'>+    return class_instance_method_list(argc, argv, mod, 0, 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'>+ *     mod.protected_instance_methods(include_super=true)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of the protected instance methods defined in</div><div class='add'>+ *  &lt;i&gt;mod&lt;/i&gt;. If the optional parameter is not &lt;code&gt;false&lt;/code&gt;, the</div><div class='add'>+ *  methods of any ancestors are included.</div><div class='add'>+ */</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "01", &amp;option);</div><div class='del'>-    return method_list(mod, RTEST(option), ins_methods_i);</div><div class='add'>+VALUE</div><div class='add'>+rb_class_protected_instance_methods(int argc, VALUE *argv, VALUE mod)</div><div class='add'>+{</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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     mod.private_instance_methods(include_super=true)    -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of the private instance methods defined in</div><div class='add'>+ *  &lt;i&gt;mod&lt;/i&gt;. If the optional parameter is not &lt;code&gt;false&lt;/code&gt;, the</div><div class='add'>+ *  methods of any ancestors are included.</div><div class='add'>+ *</div><div class='add'>+ *     module Mod</div><div class='add'>+ *       def method1()  end</div><div class='add'>+ *       private :method1</div><div class='add'>+ *       def method2()  end</div><div class='add'>+ *     end</div><div class='add'>+ *     Mod.instance_methods           #=&gt; [:method2]</div><div class='add'>+ *     Mod.private_instance_methods   #=&gt; [:method1]</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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_private_instance_methods(int argc, VALUE *argv, VALUE mod)</div><div class='ctx'> {</div><div class='del'>-    VALUE option;</div><div class='add'>+    return class_instance_method_list(argc, argv, mod, 0, ins_methods_priv_i);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "01", &amp;option);</div><div class='del'>-    return method_list(mod, RTEST(option), ins_methods_prot_i);</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     mod.public_instance_methods(include_super=true)   -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns a list of the public instance methods defined in &lt;i&gt;mod&lt;/i&gt;.</div><div class='add'>+ *  If the optional parameter is not &lt;code&gt;false&lt;/code&gt;, the methods of</div><div class='add'>+ *  any ancestors are 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, 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='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.methods    -&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'>+ *</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; 57</div><div class='add'>+ */</div><div class='add'>+</div><div class='ctx'> VALUE</div><div class='del'>-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_obj_methods(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE option;</div><div class='add'>+  retry:</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	VALUE args[1];</div><div class='add'>+</div><div class='add'>+	args[0] = Qtrue;</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'>+    else {</div><div class='add'>+	VALUE recur;</div><div class='ctx'> </div><div class='del'>-    rb_scan_args(argc, argv, "01", &amp;option);</div><div class='del'>-    return method_list(mod, RTEST(option), ins_methods_priv_i);</div><div class='add'>+	rb_scan_args(argc, argv, "1", &amp;recur);</div><div class='add'>+	if (RTEST(recur)) {</div><div class='add'>+	    argc = 0;</div><div class='add'>+	    goto retry;</div><div class='add'>+	}</div><div class='add'>+	return rb_obj_singleton_methods(argc, argv, obj);</div><div class='add'>+    }</div><div class='ctx'> }</div><div class='ctx'> </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='ctx'> VALUE</div><div class='del'>-obj_singleton_methods(obj)</div><div class='del'>-    VALUE obj;</div><div class='add'>+rb_obj_protected_methods(int argc, VALUE *argv, VALUE obj)</div><div class='ctx'> {</div><div class='del'>-    VALUE ary;</div><div class='del'>-    VALUE klass;</div><div class='del'>-    VALUE *p, *q, *pend;</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, 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, 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='add'>+}</div><div class='ctx'> </div><div class='del'>-    ary = ary_new();</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.singleton_methods(all=true)    -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array of the names of singleton methods for &lt;i&gt;obj&lt;/i&gt;.</div><div class='add'>+ *  If the optional &lt;i&gt;all&lt;/i&gt; parameter is true, the list will include</div><div class='add'>+ *  methods in modules included in &lt;i&gt;obj&lt;/i&gt;.</div><div class='add'>+ *  Only public and protected singleton methods are returned.</div><div class='add'>+ *</div><div class='add'>+ *     module Other</div><div class='add'>+ *       def three() end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     class Single</div><div class='add'>+ *       def Single.four() end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     a = Single.new</div><div class='add'>+ *</div><div class='add'>+ *     def a.one()</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     class &lt;&lt; a</div><div class='add'>+ *       include Other</div><div class='add'>+ *       def two()</div><div class='add'>+ *       end</div><div class='add'>+ *     end</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='add'>+ */</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_obj_singleton_methods(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE recur, ary, klass;</div><div class='add'>+    st_table *list;</div><div class='add'>+</div><div class='add'>+    if (argc == 0) {</div><div class='add'>+	recur = Qtrue;</div><div class='add'>+    }</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'>-    while (klass &amp;&amp; FL_TEST(klass, FL_SINGLETON)) {</div><div class='del'>-	st_foreach(RCLASS(klass)-&gt;m_tbl, ins_methods_i, ary);</div><div class='del'>-	klass = RCLASS(klass)-&gt;super;</div><div class='del'>-    }</div><div class='del'>-    p = q = RARRAY(ary)-&gt;ptr; pend = p + RARRAY(ary)-&gt;len;</div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	if (*p == Qnil) {</div><div class='del'>-	    p+=2;</div><div class='del'>-	    continue;</div><div class='add'>+    list = st_init_numtable();</div><div class='add'>+    if (klass &amp;&amp; FL_TEST(klass, FL_SINGLETON)) {</div><div class='add'>+	st_foreach(RCLASS_M_TBL(klass), method_entry_i, (st_data_t)list);</div><div class='add'>+	klass = RCLASS_SUPER(klass);</div><div class='add'>+    }</div><div class='add'>+    if (RTEST(recur)) {</div><div class='add'>+	while (klass &amp;&amp; (FL_TEST(klass, FL_SINGLETON) || TYPE(klass) == T_ICLASS)) {</div><div class='add'>+	    st_foreach(RCLASS_M_TBL(klass), method_entry_i, (st_data_t)list);</div><div class='add'>+	    klass = RCLASS_SUPER(klass);</div><div class='ctx'> 	}</div><div class='del'>-	*q++ = *p++;</div><div class='ctx'>     }</div><div class='del'>-    RARRAY(ary)-&gt;len = q - RARRAY(ary)-&gt;ptr;</div><div class='add'>+    ary = rb_ary_new();</div><div class='add'>+    st_foreach(list, ins_methods_i, ary);</div><div class='add'>+    st_free_table(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|NOEX_CFUNC);</div><div class='add'>+    rb_add_method_cfunc(klass, mid, func, argc, NOEX_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'>-    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'>-</div><div class='del'>-    rb_add_method(klass, id, NEW_CFUNC(func, argc), </div><div class='del'>-		  ((name[0] == 'i' &amp;&amp; id == rb_intern("initialize"))?</div><div class='del'>-		   NOEX_PRIVATE:NOEX_PUBLIC)|NOEX_CFUNC);</div><div class='add'>+    rb_add_method_cfunc(klass, rb_intern(name), func, argc, NOEX_PUBLIC);</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'>-    char *name;</div><div class='del'>-    VALUE (*func)();</div><div class='del'>-    int argc;</div><div class='add'>+rb_define_protected_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),</div><div class='del'>-		  NOEX_PROTECTED|NOEX_CFUNC);</div><div class='add'>+    rb_add_method_cfunc(klass, rb_intern(name), func, argc, NOEX_PROTECTED);</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'>-    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),</div><div class='del'>-		  NOEX_PRIVATE|NOEX_CFUNC);</div><div class='add'>+    rb_add_method_cfunc(klass, rb_intern(name), func, argc, NOEX_PRIVATE);</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'>-    char *name;</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), 0, NOEX_UNDEF);</div><div class='add'>+    rb_add_method(klass, rb_intern(name), VM_METHOD_TYPE_UNDEF, 0, NOEX_UNDEF);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-VALUE</div><div class='del'>-rb_singleton_class(obj)</div><div class='del'>-    VALUE obj;</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='add'>+#define SPECIAL_SINGLETON(x,c) do {\</div><div class='add'>+    if (obj == (x)) {\</div><div class='add'>+	return (c);\</div><div class='add'>+    }\</div><div class='add'>+} while (0)</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='add'>+    VALUE klass;</div><div class='add'>+</div><div class='add'>+    if (FIXNUM_P(obj) || SYMBOL_P(obj)) {</div><div class='add'>+	rb_raise(rb_eTypeError, "can't define singleton");</div><div class='add'>+    }</div><div class='ctx'>     if (rb_special_const_p(obj)) {</div><div class='del'>-	TypeError("cannot define singleton");</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'>+	rb_bug("unknown immediate %p", (void *)obj);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (FL_TEST(RBASIC(obj)-&gt;klass, FL_SINGLETON) &amp;&amp;</div><div class='add'>+	rb_ivar_get(RBASIC(obj)-&gt;klass, id_attached) == obj) {</div><div class='add'>+	klass = RBASIC(obj)-&gt;klass;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	klass = rb_make_metaclass(obj, RBASIC(obj)-&gt;klass);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (OBJ_TAINTED(obj)) {</div><div class='add'>+	OBJ_TAINT(klass);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	FL_UNSET(klass, FL_TAINT);</div><div class='add'>+    }</div><div class='add'>+    if (OBJ_UNTRUSTED(obj)) {</div><div class='add'>+	OBJ_UNTRUST(klass);</div><div class='ctx'>     }</div><div class='del'>-    if (FL_TEST(RBASIC(obj)-&gt;klass, FL_SINGLETON)) {</div><div class='del'>-	return RBASIC(obj)-&gt;klass;</div><div class='add'>+    else {</div><div class='add'>+	FL_UNSET(klass, FL_UNTRUSTED);</div><div class='ctx'>     }</div><div class='del'>-    RBASIC(obj)-&gt;klass = singleton_class_new(RBASIC(obj)-&gt;klass);</div><div class='del'>-    singleton_class_attached(RBASIC(obj)-&gt;klass, obj);</div><div class='del'>-    return RBASIC(obj)-&gt;klass;</div><div class='add'>+    if (OBJ_FROZEN(obj)) OBJ_FREEZE(klass);</div><div class='add'>+</div><div class='add'>+    return klass;</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. 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 Fixnum 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 (TYPE(obj) == T_CLASS) (void)ENSURE_EIGENCLASS(klass);</div><div class='add'>+</div><div class='add'>+    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'>-    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'>-    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'>-    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='del'>-    rb_define_private_method(mKernel, name, func, argc);</div><div class='add'>+    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'>-    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'>-    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='ctx'> {</div><div class='ctx'>     rb_attr(klass, rb_intern(name), read, write, FALSE);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='add'>+int</div><div class='add'>+rb_obj_basic_to_s_p(VALUE obj)</div><div class='add'>+{</div><div class='add'>+    const rb_method_entry_t *me = rb_method_entry(CLASS_OF(obj), rb_intern("to_s"));</div><div class='add'>+    if (me &amp;&amp; me-&gt;def &amp;&amp; me-&gt;def-&gt;type == VM_METHOD_TYPE_CFUNC &amp;&amp;</div><div class='add'>+	me-&gt;def-&gt;body.cfunc.func == rb_any_to_s)</div><div class='add'>+	return 1;</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> #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='ctx'> </div><div class='ctx'> int</div><div class='del'>-#ifdef HAVE_STDARG_PROTOTYPES</div><div class='del'>-rb_scan_args(int argc, VALUE *argv, 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'>-    VALUE *argv;</div><div class='del'>-    char *fmt;</div><div class='del'>-    va_dcl</div><div class='del'>-#endif</div><div class='del'>-{</div><div class='del'>-    int n, i;</div><div class='del'>-    char *p = fmt;</div><div class='add'>+rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    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 == '*') {</div><div class='del'>-	var = va_arg(vargs, VALUE*);</div><div class='del'>-	*var = ary_new4(argc, argv);</div><div class='del'>-	return argc;</div><div class='del'>-    }</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;</div><div class='add'>+    VALUE hash = Qnil;</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'>-	    ArgError("Wrong # 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'>-	    *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='add'>+	    if (ISDIGIT(*p)) {</div><div class='add'>+		n_trail = *p - '0';</div><div class='add'>+		p++;</div><div class='add'>+		goto block_arg;</div><div class='add'>+	    }</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='add'>+	if (ISDIGIT(*p)) {</div><div class='add'>+	    n_trail = *p - '0';</div><div class='add'>+	    p++;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	goto error;</div><div class='add'>+  block_arg:</div><div class='add'>+    if (*p == ':') {</div><div class='add'>+	f_hash = 1;</div><div class='add'>+	p++;</div><div class='ctx'>     }</div><div class='del'>-</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'>-		*var = argv[i];</div><div class='del'>-	    }</div><div class='del'>-	    else {</div><div class='del'>-		*var = Qnil;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='add'>+    if (*p == '&amp;') {</div><div class='add'>+	f_block = 1;</div><div class='ctx'> 	p++;</div><div class='ctx'>     }</div><div class='add'>+    if (*p != '\0') {</div><div class='add'>+	rb_fatal("bad scan arg format: %s", fmt);</div><div class='add'>+    }</div><div class='add'>+    n_mand = n_lead + n_trail;</div><div class='add'>+</div><div class='add'>+    if (argc &lt; n_mand)</div><div class='add'>+	goto argc_error;</div><div class='ctx'> </div><div class='del'>-    if(*p == '*') {</div><div class='del'>-	var = va_arg(vargs, VALUE*);</div><div class='del'>-	if (argc &gt; i) {</div><div class='del'>-	    *var = ary_new4(argc-i, argv+i);</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='ctx'> 	}</div><div class='ctx'> 	else {</div><div class='del'>-	    *var = ary_new();</div><div class='add'>+	    hash = rb_check_convert_type(last, T_HASH, "Hash", "to_hash");</div><div class='add'>+	    if (!NIL_P(hash))</div><div class='add'>+		argc--;</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    else if (*p == '\0') {</div><div class='del'>-	if (argc &gt; i) {</div><div class='del'>-	    ArgError("Wrong # of arguments(%d for %d)", argc, i);</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 = 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 = 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='ctx'> 	}</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	goto error;</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) *var = rb_ary_new4(n_var, &amp;argv[argi]);</div><div class='add'>+	    argi += n_var;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    if (var) *var = rb_ary_new();</div><div class='add'>+	}</div><div class='add'>+    }</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 = 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='add'>+	if (rb_block_given_p()) {</div><div class='add'>+	    *var = rb_block_proc();</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    *var = Qnil;</div><div class='add'>+	}</div><div class='ctx'>     }</div><div class='del'>-</div><div class='ctx'>     va_end(vargs);</div><div class='add'>+</div><div class='add'>+    if (argi &lt; argc)</div><div class='add'>+	goto argc_error;</div><div class='add'>+</div><div class='ctx'>     return argc;</div><div class='ctx'> </div><div class='del'>-  error:</div><div class='del'>-    Fatal("bad scan arg format: %s", fmt);</div><div class='del'>-    return 0;</div><div class='add'>+  argc_error:</div><div class='add'>+    if (0 &lt; n_opt)</div><div class='add'>+	rb_raise(rb_eArgError, "wrong number of arguments (%d for %d..%d%s)",</div><div class='add'>+		 argc, n_mand, n_mand + n_opt, f_var ? "+" : "");</div><div class='add'>+    else</div><div class='add'>+	rb_raise(rb_eArgError, "wrong number of arguments (%d for %d%s)",</div><div class='add'>+		 argc, n_mand, f_var ? "+" : "");</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/>new file mode 100644<br/>index 0000000000..c9ef64111e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/common.mk?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>common.mk</a></div><div class='hunk'>@@ -0,0 +1,978 @@</div><div class='add'>+bin: $(PROGRAM) $(WPROGRAM)</div><div class='add'>+lib: $(LIBRUBY)</div><div class='add'>+dll: $(LIBRUBY_SO)</div><div class='add'>+</div><div class='add'>+.SUFFIXES: .inc .h .c .y .i</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'>+n=$(NULLCMD)</div><div class='add'>+ECHO1 = $(V:1=@$n)</div><div class='add'>+ECHO = $(ECHO1:0=@echo)</div><div class='add'>+</div><div class='add'>+RUBYLIB       = -</div><div class='add'>+RUBYOPT       = -</div><div class='add'>+RUN_OPTS      = --disable-gems</div><div class='add'>+</div><div class='add'>+SPEC_GIT_BASE = git://github.com/rubyspec</div><div class='add'>+MSPEC_GIT_URL = $(SPEC_GIT_BASE)/mspec.git</div><div class='add'>+RUBYSPEC_GIT_URL = $(SPEC_GIT_BASE)/rubyspec.git</div><div class='add'>+</div><div class='add'>+STATIC_RUBY   = static-ruby</div><div class='add'>+</div><div class='add'>+EXTCONF       = extconf.rb</div><div class='add'>+RBCONFIG      = ./.rbconfig.time</div><div class='add'>+LIBRUBY_EXTS  = ./.libruby-with-ext.time</div><div class='add'>+REVISION_H    = ./.revision.time</div><div class='add'>+PLATFORM_D    = ./$(PLATFORM_DIR)/.time</div><div class='add'>+RDOCOUT       = $(EXTOUT)/rdoc</div><div class='add'>+CAPIOUT       = doc/capi</div><div class='add'>+ID_H_TARGET   = -id.h-</div><div class='add'>+</div><div class='add'>+DMYEXT	      = dmyext.$(OBJEXT)</div><div class='add'>+NORMALMAINOBJ = main.$(OBJEXT)</div><div class='add'>+MAINOBJ       = $(NORMALMAINOBJ)</div><div class='add'>+EXTOBJS	      = </div><div class='add'>+DLDOBJS	      = $(DMYEXT)</div><div class='add'>+MINIOBJS      = $(ARCHMINIOBJS) dmyencoding.$(OBJEXT) dmyversion.$(OBJEXT) miniprelude.$(OBJEXT)</div><div class='add'>+ENC_MK        = enc.mk</div><div class='add'>+</div><div class='add'>+COMMONOBJS    = array.$(OBJEXT) \</div><div class='add'>+		bignum.$(OBJEXT) \</div><div class='add'>+		class.$(OBJEXT) \</div><div class='add'>+		compar.$(OBJEXT) \</div><div class='add'>+		complex.$(OBJEXT) \</div><div class='add'>+		dir.$(OBJEXT) \</div><div class='add'>+		dln_find.$(OBJEXT) \</div><div class='add'>+		enum.$(OBJEXT) \</div><div class='add'>+		enumerator.$(OBJEXT) \</div><div class='add'>+		error.$(OBJEXT) \</div><div class='add'>+		eval.$(OBJEXT) \</div><div class='add'>+		load.$(OBJEXT) \</div><div class='add'>+		proc.$(OBJEXT) \</div><div class='add'>+		file.$(OBJEXT) \</div><div class='add'>+		gc.$(OBJEXT) \</div><div class='add'>+		hash.$(OBJEXT) \</div><div class='add'>+		inits.$(OBJEXT) \</div><div class='add'>+		io.$(OBJEXT) \</div><div class='add'>+		marshal.$(OBJEXT) \</div><div class='add'>+		math.$(OBJEXT) \</div><div class='add'>+		node.$(OBJEXT) \</div><div class='add'>+		numeric.$(OBJEXT) \</div><div class='add'>+		object.$(OBJEXT) \</div><div class='add'>+		pack.$(OBJEXT) \</div><div class='add'>+		parse.$(OBJEXT) \</div><div class='add'>+		process.$(OBJEXT) \</div><div class='add'>+		random.$(OBJEXT) \</div><div class='add'>+		range.$(OBJEXT) \</div><div class='add'>+		rational.$(OBJEXT) \</div><div class='add'>+		re.$(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='add'>+		ruby.$(OBJEXT) \</div><div class='add'>+		safe.$(OBJEXT) \</div><div class='add'>+		signal.$(OBJEXT) \</div><div class='add'>+		sprintf.$(OBJEXT) \</div><div class='add'>+		st.$(OBJEXT) \</div><div class='add'>+		strftime.$(OBJEXT) \</div><div class='add'>+		string.$(OBJEXT) \</div><div class='add'>+		struct.$(OBJEXT) \</div><div class='add'>+		time.$(OBJEXT) \</div><div class='add'>+		transcode.$(OBJEXT) \</div><div class='add'>+		util.$(OBJEXT) \</div><div class='add'>+		variable.$(OBJEXT) \</div><div class='add'>+		compile.$(OBJEXT) \</div><div class='add'>+		debug.$(OBJEXT) \</div><div class='add'>+		iseq.$(OBJEXT) \</div><div class='add'>+		vm.$(OBJEXT) \</div><div class='add'>+		vm_dump.$(OBJEXT) \</div><div class='add'>+		thread.$(OBJEXT) \</div><div class='add'>+		cont.$(OBJEXT) \</div><div class='add'>+		$(BUILTIN_ENCOBJS) \</div><div class='add'>+		$(BUILTIN_TRANSOBJS) \</div><div class='add'>+		$(MISSING)</div><div class='add'>+</div><div class='add'>+EXPORTOBJS    = dln.$(OBJEXT) \</div><div class='add'>+		encoding.$(OBJEXT) \</div><div class='add'>+		version.$(OBJEXT) \</div><div class='add'>+		$(COMMONOBJS)</div><div class='add'>+</div><div class='add'>+OBJS          = $(EXPORTOBJS) prelude.$(OBJEXT)</div><div class='add'>+</div><div class='add'>+GOLFOBJS      = goruby.$(OBJEXT) golf_prelude.$(OBJEXT)</div><div class='add'>+</div><div class='add'>+PRELUDE_SCRIPTS = $(srcdir)/prelude.rb $(srcdir)/enc/prelude.rb $(DEFAULT_PRELUDES)</div><div class='add'>+GEM_PRELUDE = $(srcdir)/gem_prelude.rb</div><div class='add'>+YES_GEM_PRELUDE = $(GEM_PRELUDE)</div><div class='add'>+NO_GEM_PRELUDE =</div><div class='add'>+PRELUDES      = prelude.c miniprelude.c</div><div class='add'>+GOLFPRELUDES = golf_prelude.c</div><div class='add'>+</div><div class='add'>+SCRIPT_ARGS   =	--dest-dir="$(DESTDIR)" \</div><div class='add'>+		--extout="$(EXTOUT)" \</div><div class='add'>+		--mflags="$(MFLAGS)" \</div><div class='add'>+		--make-flags="$(MAKEFLAGS)"</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'>+INSTRUBY      =	$(SUDO) $(MINIRUBY) $(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='add'>+</div><div class='add'>+PRE_LIBRUBY_UPDATE = $(MINIRUBY) -e 'ARGV[1] or File.unlink(ARGV[0]) rescue nil' -- \</div><div class='add'>+			$(LIBRUBY_EXTS) $(LIBRUBY_SO_UPDATE)</div><div class='add'>+</div><div class='add'>+TESTSDIR      = $(srcdir)/test</div><div class='add'>+TESTWORKDIR   = testwork</div><div class='add'>+</div><div class='add'>+TESTRUN_SCRIPT = $(srcdir)/test.rb</div><div class='add'>+</div><div class='add'>+BOOTSTRAPRUBY = $(BASERUBY)</div><div class='add'>+</div><div class='add'>+COMPILE_PRELUDE = $(MINIRUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb</div><div class='add'>+</div><div class='add'>+all: showflags main docs</div><div class='add'>+</div><div class='add'>+main: showflags encs exts</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'>+	$(MESSAGE_END)</div><div class='add'>+</div><div class='add'>+.PHONY: showconfig</div><div class='add'>+showconfig:</div><div class='add'>+	@$(MESSAGE_BEGIN) \</div><div class='add'>+	"$(configure_args)" \</div><div class='add'>+	$(MESSAGE_END)</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): $(MKFILES) incs $(PREP) $(RBCONFIG) $(LIBRUBY)</div><div class='add'>+	@$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --command-output=$(EXTS_MK) $(EXTMK_ARGS) configure</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)</div><div class='add'>+</div><div class='add'>+$(MKMAIN_CMD): $(MKFILES) incs $(PREP) $(RBCONFIG) $(LIBRUBY)</div><div class='add'>+	@$(MINIRUBY) $(srcdir)/ext/extmk.rb --make="$(MAKE)" --command-output=$@ $(EXTMK_ARGS)</div><div class='add'>+</div><div class='add'>+prog: program wprogram</div><div class='add'>+</div><div class='add'>+loadpath: $(PREP) PHONY</div><div class='add'>+	$(MINIRUBY) -e 'p $$:'</div><div class='add'>+</div><div class='add'>+$(PREP): $(MKFILES)</div><div class='add'>+</div><div class='add'>+miniruby$(EXEEXT): config.status $(NORMALMAINOBJ) $(MINIOBJS) $(COMMONOBJS) $(DMYEXT) $(ARCHFILE)</div><div class='add'>+</div><div class='add'>+GORUBY = go$(RUBY_INSTALL_NAME)</div><div class='add'>+golf: $(LIBRUBY) $(GOLFOBJS) PHONY</div><div class='add'>+	$(Q) $(MAKE) $(MFLAGS) MAINOBJ="$(GOLFOBJS)" PROGRAM=$(GORUBY)$(EXEEXT) program</div><div class='add'>+capi: $(CAPIOUT)/.timestamp PHONY</div><div class='add'>+</div><div class='add'>+doc/capi/.timestamp: Doxyfile $(PREP)</div><div class='add'>+	$(Q) $(MAKEDIRS) doc/capi</div><div class='add'>+	$(ECHO) generating capi</div><div class='add'>+	$(Q) $(DOXYGEN) -b</div><div class='add'>+	$(Q) $(MINIRUBY) -e 'File.open("$(CAPIOUT)/.timestamp", "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'>+</div><div class='add'>+$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_A):	$(OBJS) $(DMYEXT) $(ARCHFILE)</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_SO):	$(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE) $(BUILTIN_ENCOBJS)</div><div class='add'>+</div><div class='add'>+$(LIBRUBY_EXTS):</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+$(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A)</div><div class='add'>+	@$(RM) $@</div><div class='add'>+	$(PURIFY) $(CC) $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(XLDFLAGS)</div><div class='add'>+</div><div class='add'>+ruby.imp: $(EXPORTOBJS)</div><div class='add'>+	@$(NM) -Pgp $(EXPORTOBJS) | \</div><div class='add'>+	awk 'BEGIN{print "#!"}; $$2~/^[BDT]$$/&amp;&amp;$$1!~/^(Init_|.*_threadptr_|\.)/{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='add'>+</div><div class='add'>+install-all: docs pre-install-all do-install-all post-install-all</div><div class='add'>+pre-install-all:: pre-install-local pre-install-ext pre-install-doc</div><div class='add'>+do-install-all: $(PROGRAM)</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='add'>+</div><div class='add'>+install-nodoc: pre-install-nodoc do-install-nodoc post-install-nodoc</div><div class='add'>+pre-install-nodoc:: pre-install-local pre-install-ext</div><div class='add'>+do-install-nodoc: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS)</div><div class='add'>+post-install-nodoc:: post-install-local post-install-ext</div><div class='add'>+</div><div class='add'>+install-local: pre-install-local do-install-local post-install-local</div><div class='add'>+pre-install-local:: pre-install-bin pre-install-lib pre-install-man</div><div class='add'>+do-install-local: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=local</div><div class='add'>+post-install-local:: post-install-bin post-install-lib post-install-man</div><div class='add'>+</div><div class='add'>+install-ext: pre-install-ext do-install-ext post-install-ext</div><div class='add'>+pre-install-ext:: pre-install-ext-arch pre-install-ext-comm</div><div class='add'>+do-install-ext: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext</div><div class='add'>+post-install-ext:: post-install-ext-arch post-install-ext-comm</div><div class='add'>+</div><div class='add'>+install-arch: pre-install-arch do-install-arch post-install-arch</div><div class='add'>+pre-install-arch:: pre-install-bin pre-install-ext-arch</div><div class='add'>+do-install-arch: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin --install=ext-arch</div><div class='add'>+post-install-arch:: post-install-bin post-install-ext-arch</div><div class='add'>+</div><div class='add'>+install-comm: pre-install-comm do-install-comm post-install-comm</div><div class='add'>+pre-install-comm:: pre-install-lib pre-install-ext-comm pre-install-man</div><div class='add'>+do-install-comm: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib --install=ext-comm --install=man</div><div class='add'>+post-install-comm:: post-install-lib post-install-ext-comm post-install-man</div><div class='add'>+</div><div class='add'>+install-bin: pre-install-bin do-install-bin post-install-bin</div><div class='add'>+pre-install-bin:: install-prereq</div><div class='add'>+do-install-bin: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin</div><div class='add'>+post-install-bin::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+install-lib: pre-install-lib do-install-lib post-install-lib</div><div class='add'>+pre-install-lib:: install-prereq</div><div class='add'>+do-install-lib: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib</div><div class='add'>+post-install-lib::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+install-ext-comm: pre-install-ext-comm do-install-ext-comm post-install-ext-comm</div><div class='add'>+pre-install-ext-comm:: install-prereq</div><div class='add'>+do-install-ext-comm: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-comm</div><div class='add'>+post-install-ext-comm::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+install-ext-arch: pre-install-ext-arch do-install-ext-arch post-install-ext-arch</div><div class='add'>+pre-install-ext-arch:: install-prereq</div><div class='add'>+do-install-ext-arch: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext-arch</div><div class='add'>+post-install-ext-arch::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+install-man: pre-install-man do-install-man post-install-man</div><div class='add'>+pre-install-man:: install-prereq</div><div class='add'>+do-install-man: $(PREP)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=man</div><div class='add'>+post-install-man::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</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)</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='add'>+what-where: no-install</div><div class='add'>+no-install: no-install-$(INSTALLDOC)</div><div class='add'>+what-where-all: no-install-all</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'>+what-where-nodoc: no-install-nodoc</div><div class='add'>+no-install-nodoc: pre-no-install-nodoc dont-install-nodoc post-no-install-nodoc</div><div class='add'>+pre-no-install-nodoc:: pre-no-install-local pre-no-install-ext</div><div class='add'>+dont-install-nodoc:  $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS)</div><div class='add'>+post-no-install-nodoc:: post-no-install-local post-no-install-ext</div><div class='add'>+</div><div class='add'>+what-where-local: no-install-local</div><div class='add'>+no-install-local: pre-no-install-local dont-install-local post-no-install-local</div><div class='add'>+pre-no-install-local:: pre-no-install-bin pre-no-install-lib pre-no-install-man</div><div class='add'>+dont-install-local: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=local</div><div class='add'>+post-no-install-local:: post-no-install-bin post-no-install-lib post-no-install-man</div><div class='add'>+</div><div class='add'>+what-where-ext: no-install-ext</div><div class='add'>+no-install-ext: pre-no-install-ext dont-install-ext post-no-install-ext</div><div class='add'>+pre-no-install-ext:: pre-no-install-ext-arch pre-no-install-ext-comm</div><div class='add'>+dont-install-ext: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=ext</div><div class='add'>+post-no-install-ext:: post-no-install-ext-arch post-no-install-ext-comm</div><div class='add'>+</div><div class='add'>+what-where-arch: no-install-arch</div><div class='add'>+no-install-arch: pre-no-install-arch dont-install-arch post-no-install-arch</div><div class='add'>+pre-no-install-arch:: pre-no-install-bin pre-no-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='add'>+post-no-install-arch:: post-no-install-lib post-no-install-man post-no-install-ext-arch</div><div class='add'>+</div><div class='add'>+what-where-comm: no-install-comm</div><div class='add'>+no-install-comm: pre-no-install-comm dont-install-comm post-no-install-comm</div><div class='add'>+pre-no-install-comm:: pre-no-install-lib pre-no-install-ext-comm pre-no-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='add'>+post-no-install-comm:: post-no-install-lib post-no-install-ext-comm post-no-install-man</div><div class='add'>+</div><div class='add'>+what-where-bin: no-install-bin</div><div class='add'>+no-install-bin: pre-no-install-bin dont-install-bin post-no-install-bin</div><div class='add'>+pre-no-install-bin:: install-prereq</div><div class='add'>+dont-install-bin: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=bin</div><div class='add'>+post-no-install-bin::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+what-where-lib: no-install-lib</div><div class='add'>+no-install-lib: pre-no-install-lib dont-install-lib post-no-install-lib</div><div class='add'>+pre-no-install-lib:: install-prereq</div><div class='add'>+dont-install-lib: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=lib</div><div class='add'>+post-no-install-lib::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+what-where-ext-comm: no-install-ext-comm</div><div class='add'>+no-install-ext-comm: pre-no-install-ext-comm dont-install-ext-comm post-no-install-ext-comm</div><div class='add'>+pre-no-install-ext-comm:: install-prereq</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='add'>+post-no-install-ext-comm::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+what-where-ext-arch: no-install-ext-arch</div><div class='add'>+no-install-ext-arch: pre-no-install-ext-arch dont-install-ext-arch post-no-install-ext-arch</div><div class='add'>+pre-no-install-ext-arch:: install-prereq</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='add'>+post-no-install-ext-arch::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+what-where-man: no-install-man</div><div class='add'>+no-install-man: pre-no-install-man dont-install-man post-no-install-man</div><div class='add'>+pre-no-install-man:: install-prereq</div><div class='add'>+dont-install-man: $(PREP)</div><div class='add'>+	$(INSTRUBY) -n --make="$(MAKE)" $(INSTRUBY_ARGS) --install=man</div><div class='add'>+post-no-install-man::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+install-doc: rdoc pre-install-doc do-install-doc post-install-doc</div><div class='add'>+pre-install-doc:: install-prereq</div><div class='add'>+do-install-doc: $(PROGRAM)</div><div class='add'>+	$(INSTRUBY) --make="$(MAKE)" $(INSTRUBY_ARGS) --install=rdoc --rdoc-output="$(RDOCOUT)"</div><div class='add'>+post-install-doc::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+rdoc: PHONY main</div><div class='add'>+	@echo Generating RDoc documentation</div><div class='add'>+	$(Q) $(XRUBY) "$(srcdir)/bin/rdoc" --encoding=UTF-8 --no-force-update --all --ri --op "$(RDOCOUT)" $(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" --encoding=UTF-8 --all --quiet -C $(RDOCFLAGS) "$(srcdir)"</div><div class='add'>+</div><div class='add'>+nodoc: PHONY</div><div class='add'>+</div><div class='add'>+what-where-doc: no-install-doc</div><div class='add'>+no-install-doc: pre-no-install-doc dont-install-doc post-no-install-doc</div><div class='add'>+pre-no-install-doc:: install-prereq</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='add'>+post-no-install-doc::</div><div class='add'>+	@$(NULLCMD)</div><div class='add'>+</div><div class='add'>+CLEAR_INSTALLED_LIST = clear-installed-list</div><div class='add'>+</div><div class='add'>+install-prereq: $(CLEAR_INSTALLED_LIST) 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='add'>+</div><div class='add'>+clean: clean-ext clean-local clean-enc clean-golf clean-rdoc clean-capi clean-extout clean-platform</div><div class='add'>+clean-local:: PHONY</div><div class='add'>+	@$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)</div><div class='add'>+	@$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) $(ARCHFILE) .*.time</div><div class='add'>+	@$(RM) y.tab.c y.output encdb.h transdb.h prelude.c config.log rbconfig.rb $(ruby_pc)</div><div class='add'>+clean-ext:: PHONY</div><div class='add'>+clean-golf: PHONY</div><div class='add'>+	@$(RM) $(GORUBY)$(EXEEXT) $(GOLFOBJS)</div><div class='add'>+clean-rdoc: 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'>+clean-docs: clean-rdoc clean-capi</div><div class='add'>+</div><div class='add'>+distclean: distclean-ext distclean-local distclean-enc distclean-golf distclean-extout distclean-platform</div><div class='add'>+distclean-local:: clean-local</div><div class='add'>+	@$(RM) $(MKFILES) yasmdata.rb *.inc</div><div class='add'>+	@$(RM) config.cache config.status config.status.lineno $(PRELUDES)</div><div class='add'>+	@$(RM) *~ *.bak *.stackdump core *.core gmon.out $(PREP)</div><div class='add'>+distclean-ext:: PHONY</div><div class='add'>+distclean-golf: clean-golf</div><div class='add'>+	@$(RM) $(GOLFPRELUDES)</div><div class='add'>+distclean-rdoc: PHONY</div><div class='add'>+distclean-capi: PHONY</div><div class='add'>+distclean-extout: clean-extout</div><div class='add'>+distclean-platform: clean-platform</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'>+	@$(RM) parse.c parse.h lex.c newline.c revision.h</div><div class='add'>+realclean-ext::</div><div class='add'>+realclean-golf: distclean-golf</div><div class='add'>+realclean-capi: PHONY</div><div class='add'>+realclean-extout: distclean-extout</div><div class='add'>+</div><div class='add'>+clean-enc distclean-enc realclean-enc: PHONY</div><div class='add'>+</div><div class='add'>+check: test test-all</div><div class='add'>+check-ruby: test test-ruby</div><div class='add'>+</div><div class='add'>+btest: miniruby$(EXEEXT) $(TEST_RUNNABLE)-btest</div><div class='add'>+no-btest: PHONY</div><div class='add'>+yes-btest: PHONY</div><div class='add'>+	$(BOOTSTRAPRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(MINIRUBY)" $(OPTS)</div><div class='add'>+</div><div class='add'>+btest-ruby: miniruby$(EXEEXT) $(RBCONFIG) $(PROGRAM) $(TEST_RUNNABLE)-btest-ruby</div><div class='add'>+no-btest-ruby: PHONY</div><div class='add'>+yes-btest-ruby: PHONY</div><div class='add'>+	@$(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM) -I$(srcdir)/lib" -q $(OPTS)</div><div class='add'>+</div><div class='add'>+test-sample: miniruby$(EXEEXT) $(RBCONFIG) $(PROGRAM) $(TEST_RUNNABLE)-test-sample</div><div class='add'>+no-test-sample: PHONY</div><div class='add'>+yes-test-sample: PHONY</div><div class='add'>+	@$(RUNRUBY) $(srcdir)/tool/rubytest.rb</div><div class='add'>+</div><div class='add'>+test-knownbugs: test-knownbug</div><div class='add'>+test-knownbug: miniruby$(EXEEXT) $(PROGRAM) $(RBCONFIG) $(TEST_RUNNABLE)-test-knownbug</div><div class='add'>+no-test-knownbug: PHONY</div><div class='add'>+yes-test-knownbug: PHONY</div><div class='add'>+	-$(RUNRUBY) "$(srcdir)/bootstraptest/runner.rb" --ruby="$(PROGRAM)" $(OPTS) $(srcdir)/KNOWNBUGS.rb</div><div class='add'>+</div><div class='add'>+test: test-sample btest-ruby test-knownbug</div><div class='add'>+</div><div class='add'>+test-all: $(TEST_RUNNABLE)-test-all</div><div class='add'>+yes-test-all: PHONY</div><div class='add'>+	$(RUNRUBY) "$(srcdir)/test/runner.rb" --ruby="$(RUNRUBY)" $(TESTS)</div><div class='add'>+TESTS_BUILD = mkmf</div><div class='add'>+no-test-all: PHONY</div><div class='add'>+	$(MINIRUBY) -I"$(srcdir)/lib" "$(srcdir)/test/runner.rb" $(TESTS_BUILD)</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: PHONY</div><div class='add'>+	$(RUNRUBY) "$(srcdir)/test/runner.rb" ruby</div><div class='add'>+</div><div class='add'>+extconf: $(PREP)</div><div class='add'>+	$(Q) $(MAKEDIRS) "$(EXTCONFDIR)"</div><div class='add'>+	$(RUNRUBY) -C "$(EXTCONFDIR)" $(EXTCONF) $(EXTCONFARGS)</div><div class='add'>+</div><div class='add'>+$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h $(PREP)</div><div class='add'>+	@$(MINIRUBY) $(srcdir)/tool/mkconfig.rb -timestamp=$@ \</div><div class='add'>+		-install_name=$(RUBY_INSTALL_NAME) \</div><div class='add'>+		-so_name=$(RUBY_SO_NAME) rbconfig.rb</div><div class='add'>+</div><div class='add'>+test-rubyspec-precheck:</div><div class='add'>+</div><div class='add'>+test-rubyspec: test-rubyspec-precheck</div><div class='add'>+	$(RUNRUBY) $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT)</div><div class='add'>+</div><div class='add'>+encs: enc trans</div><div class='add'>+encs enc trans: showflags $(ENC_MK) $(LIBRUBY) $(PREP)</div><div class='add'>+	$(ECHO) making $@</div><div class='add'>+	$(Q) $(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) $@</div><div class='add'>+</div><div class='add'>+enc: {$(VPATH)}encdb.h</div><div class='add'>+trans: {$(VPATH)}transdb.h</div><div class='add'>+</div><div class='add'>+$(ENC_MK): $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \</div><div class='add'>+	$(srcdir)/lib/mkmf.rb $(RBCONFIG)</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)" $@ $(ENCS)</div><div class='add'>+</div><div class='add'>+.PRECIOUS: $(MKFILES)</div><div class='add'>+</div><div class='add'>+.PHONY: PHONY all fake prereq incs srcs preludes help</div><div class='add'>+.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-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-sample 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</div><div class='add'>+</div><div class='add'>+PHONY:</div><div class='add'>+</div><div class='add'>+{$(VPATH)}parse.c: {$(VPATH)}parse.y $(srcdir)/tool/ytab.sed</div><div class='add'>+parse.h {$(VPATH)}parse.h: {$(VPATH)}parse.c</div><div class='add'>+</div><div class='add'>+{$(srcdir)}.y.c:</div><div class='add'>+	$(YACC) -d $(YFLAGS) -o y.tab.c $(SRC_FILE)</div><div class='add'>+	sed -f $(srcdir)/tool/ytab.sed -e "/^#/s!y\.tab\.c!$@!" y.tab.c &gt; $@.new</div><div class='add'>+	@$(MV) $@.new $@</div><div class='add'>+	sed -e "/^#line.*y\.tab\.h/d;/^#line.*parse\.y/d" y.tab.h &gt; $(@:.c=.h).new</div><div class='add'>+	@$(IFCHANGE) $(@:.c=.h) $(@:.c=.h).new</div><div class='add'>+	@$(RM) y.tab.c y.tab.h</div><div class='add'>+</div><div class='add'>+acosh.$(OBJEXT): {$(VPATH)}acosh.c</div><div class='add'>+alloca.$(OBJEXT): {$(VPATH)}alloca.c {$(VPATH)}config.h</div><div class='add'>+crypt.$(OBJEXT): {$(VPATH)}crypt.c</div><div class='add'>+dup2.$(OBJEXT): {$(VPATH)}dup2.c</div><div class='add'>+erf.$(OBJEXT): {$(VPATH)}erf.c</div><div class='add'>+finite.$(OBJEXT): {$(VPATH)}finite.c</div><div class='add'>+flock.$(OBJEXT): {$(VPATH)}flock.c</div><div class='add'>+memcmp.$(OBJEXT): {$(VPATH)}memcmp.c</div><div class='add'>+memmove.$(OBJEXT): {$(VPATH)}memmove.c</div><div class='add'>+mkdir.$(OBJEXT): {$(VPATH)}mkdir.c</div><div class='add'>+strchr.$(OBJEXT): {$(VPATH)}strchr.c</div><div class='add'>+strdup.$(OBJEXT): {$(VPATH)}strdup.c</div><div class='add'>+strerror.$(OBJEXT): {$(VPATH)}strerror.c</div><div class='add'>+strstr.$(OBJEXT): {$(VPATH)}strstr.c</div><div class='add'>+strtod.$(OBJEXT): {$(VPATH)}strtod.c</div><div class='add'>+strtol.$(OBJEXT): {$(VPATH)}strtol.c</div><div class='add'>+nt.$(OBJEXT): {$(VPATH)}nt.c</div><div class='add'>+os2.$(OBJEXT): {$(VPATH)}os2.c</div><div class='add'>+dl_os2.$(OBJEXT): {$(VPATH)}dl_os2.c</div><div class='add'>+ia64.$(OBJEXT): {$(VPATH)}ia64.s</div><div class='add'>+	$(CC) $(CFLAGS) -c $&lt;</div><div class='add'>+</div><div class='add'>+$(PLATFORM_D):</div><div class='add'>+	$(Q) $(MAKEDIRS) $(PLATFORM_DIR)</div><div class='add'>+	@exit &gt; $@</div><div class='add'>+</div><div class='add'>+win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c $(RUBY_H_INCLUDES) $(PLATFORM_D)</div><div class='add'>+win32/file.$(OBJEXT): {$(VPATH)}win32/file.c $(RUBY_H_INCLUDES) $(PLATFORM_D)</div><div class='add'>+</div><div class='add'>+###</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'>+ENCODING_H_INCLUDES= {$(VPATH)}encoding.h {$(VPATH)}oniguruma.h</div><div class='add'>+ID_H_INCLUDES      = {$(VPATH)}id.h {$(VPATH)}vm_opts.h</div><div class='add'>+VM_CORE_H_INCLUDES = {$(VPATH)}vm_core.h {$(VPATH)}thread_$(THREAD_MODEL).h \</div><div class='add'>+		     {$(VPATH)}node.h {$(VPATH)}method.h {$(VPATH)}atomic.h \</div><div class='add'>+		     $(ID_H_INCLUDES)</div><div class='add'>+</div><div class='add'>+array.$(OBJEXT): {$(VPATH)}array.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+bignum.$(OBJEXT): {$(VPATH)}bignum.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+class.$(OBJEXT): {$(VPATH)}class.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h \</div><div class='add'>+  {$(VPATH)}constant.h</div><div class='add'>+compar.$(OBJEXT): {$(VPATH)}compar.c $(RUBY_H_INCLUDES)</div><div class='add'>+complex.$(OBJEXT): {$(VPATH)}complex.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+dir.$(OBJEXT): {$(VPATH)}dir.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+dln.$(OBJEXT): {$(VPATH)}dln.c {$(VPATH)}dln.h $(RUBY_H_INCLUDES)</div><div class='add'>+dln_find.$(OBJEXT): {$(VPATH)}dln_find.c {$(VPATH)}dln.h $(RUBY_H_INCLUDES)</div><div class='add'>+dmydln.$(OBJEXT): {$(VPATH)}dmydln.c $(RUBY_H_INCLUDES)</div><div class='add'>+dmyext.$(OBJEXT): {$(VPATH)}dmyext.c</div><div class='add'>+dmyencoding.$(OBJEXT): {$(VPATH)}dmyencoding.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}regenc.h {$(VPATH)}util.h $(ENCODING_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}encoding.c {$(VPATH)}internal.h</div><div class='add'>+encoding.$(OBJEXT): {$(VPATH)}encoding.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}regenc.h {$(VPATH)}util.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+enum.$(OBJEXT): {$(VPATH)}enum.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h \</div><div class='add'>+  {$(VPATH)}util.h $(ID_H_INCLUDES)</div><div class='add'>+enumerator.$(OBJEXT): {$(VPATH)}enumerator.c $(RUBY_H_INCLUDES)</div><div class='add'>+error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}known_errors.inc \</div><div class='add'>+  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) $(ENCODING_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}debug.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}eval_intern.h {$(VPATH)}vm.h \</div><div class='add'>+  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_error.c \</div><div class='add'>+  {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}gc.h {$(VPATH)}iseq.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+load.$(OBJEXT): {$(VPATH)}load.c {$(VPATH)}eval_intern.h \</div><div class='add'>+  {$(VPATH)}util.h $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}dln.h {$(VPATH)}debug.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+file.$(OBJEXT): {$(VPATH)}file.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}dln.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+gc.$(OBJEXT): {$(VPATH)}gc.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \</div><div class='add'>+  {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}gc.h {$(VPATH)}io.h {$(VPATH)}eval_intern.h {$(VPATH)}util.h \</div><div class='add'>+  {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}constant.h</div><div class='add'>+hash.$(OBJEXT): {$(VPATH)}hash.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES)</div><div class='add'>+inits.$(OBJEXT): {$(VPATH)}inits.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+io.$(OBJEXT): {$(VPATH)}io.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \</div><div class='add'>+  {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h {$(VPATH)}internal.h</div><div class='add'>+main.$(OBJEXT): {$(VPATH)}main.c $(RUBY_H_INCLUDES) {$(VPATH)}debug.h \</div><div class='add'>+  {$(VPATH)}node.h</div><div class='add'>+marshal.$(OBJEXT): {$(VPATH)}marshal.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}internal.h</div><div class='add'>+math.$(OBJEXT): {$(VPATH)}math.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+node.$(OBJEXT): {$(VPATH)}node.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h</div><div class='add'>+numeric.$(OBJEXT): {$(VPATH)}numeric.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}util.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+object.$(OBJEXT): {$(VPATH)}object.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  {$(VPATH)}internal.h {$(VPATH)}constant.h</div><div class='add'>+pack.$(OBJEXT): {$(VPATH)}pack.c $(RUBY_H_INCLUDES) {$(VPATH)}encoding.h \</div><div class='add'>+  {$(VPATH)}oniguruma.h</div><div class='add'>+parse.$(OBJEXT): {$(VPATH)}parse.c $(RUBY_H_INCLUDES) {$(VPATH)}node.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) $(ID_H_INCLUDES) {$(VPATH)}regenc.h \</div><div class='add'>+  {$(VPATH)}regex.h {$(VPATH)}util.h {$(VPATH)}lex.c \</div><div class='add'>+  {$(VPATH)}defs/keywords {$(VPATH)}id.c {$(VPATH)}parse.y \</div><div class='add'>+  {$(VPATH)}parse.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+proc.$(OBJEXT): {$(VPATH)}proc.c {$(VPATH)}eval_intern.h \</div><div class='add'>+  $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}debug.h {$(VPATH)}internal.h {$(VPATH)}iseq.h</div><div class='add'>+process.$(OBJEXT): {$(VPATH)}process.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}util.h {$(VPATH)}io.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}siphash.c {$(VPATH)}siphash.h</div><div class='add'>+range.$(OBJEXT): {$(VPATH)}range.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+rational.$(OBJEXT): {$(VPATH)}rational.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+re.$(OBJEXT): {$(VPATH)}re.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \</div><div class='add'>+  {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}internal.h</div><div class='add'>+regcomp.$(OBJEXT): {$(VPATH)}regcomp.c {$(VPATH)}regparse.h \</div><div class='add'>+  {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h \</div><div class='add'>+  $(RUBY_H_INCLUDES)</div><div class='add'>+regenc.$(OBJEXT): {$(VPATH)}regenc.c {$(VPATH)}regint.h \</div><div class='add'>+  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)</div><div class='add'>+regerror.$(OBJEXT): {$(VPATH)}regerror.c {$(VPATH)}regint.h \</div><div class='add'>+  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)</div><div class='add'>+regexec.$(OBJEXT): {$(VPATH)}regexec.c {$(VPATH)}regint.h \</div><div class='add'>+  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)</div><div class='add'>+regparse.$(OBJEXT): {$(VPATH)}regparse.c {$(VPATH)}regparse.h \</div><div class='add'>+  {$(VPATH)}regint.h {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h \</div><div class='add'>+  $(RUBY_H_INCLUDES)</div><div class='add'>+regsyntax.$(OBJEXT): {$(VPATH)}regsyntax.c {$(VPATH)}regint.h \</div><div class='add'>+  {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)</div><div class='add'>+ruby.$(OBJEXT): {$(VPATH)}ruby.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}eval_intern.h $(VM_CORE_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}dln.h {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+safe.$(OBJEXT): {$(VPATH)}safe.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h</div><div class='add'>+signal.$(OBJEXT): {$(VPATH)}signal.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h</div><div class='add'>+sprintf.$(OBJEXT): {$(VPATH)}sprintf.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \</div><div class='add'>+  {$(VPATH)}regex.h {$(VPATH)}vsnprintf.c $(ENCODING_H_INCLUDES)</div><div class='add'>+st.$(OBJEXT): {$(VPATH)}st.c $(RUBY_H_INCLUDES)</div><div class='add'>+strftime.$(OBJEXT): {$(VPATH)}strftime.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}timev.h</div><div class='add'>+string.$(OBJEXT): {$(VPATH)}string.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \</div><div class='add'>+  {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+struct.$(OBJEXT): {$(VPATH)}struct.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h</div><div class='add'>+thread.$(OBJEXT): {$(VPATH)}thread.c {$(VPATH)}eval_intern.h \</div><div class='add'>+  $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}debug.h {$(VPATH)}thread_$(THREAD_MODEL).c $(ENCODING_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}internal.h {$(VPATH)}io.h</div><div class='add'>+transcode.$(OBJEXT): {$(VPATH)}transcode.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}transcode_data.h {$(VPATH)}internal.h</div><div class='add'>+cont.$(OBJEXT): {$(VPATH)}cont.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}gc.h {$(VPATH)}eval_intern.h \</div><div class='add'>+  {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+time.$(OBJEXT): {$(VPATH)}time.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(ENCODING_H_INCLUDES) {$(VPATH)}timev.h {$(VPATH)}internal.h</div><div class='add'>+util.$(OBJEXT): {$(VPATH)}util.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+variable.$(OBJEXT): {$(VPATH)}variable.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}node.h {$(VPATH)}util.h {$(VPATH)}encoding.h \</div><div class='add'>+  {$(VPATH)}oniguruma.h {$(VPATH)}internal.h {$(VPATH)}constant.h</div><div class='add'>+version.$(OBJEXT): {$(VPATH)}version.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}version.h $(srcdir)/version.h $(srcdir)/revision.h {$(VPATH)}config.h</div><div class='add'>+dmyversion.$(OBJEXT): {$(VPATH)}dmyversion.c version.$(OBJEXT)</div><div class='add'>+</div><div class='add'>+compile.$(OBJEXT): {$(VPATH)}compile.c {$(VPATH)}iseq.h \</div><div class='add'>+  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \</div><div class='add'>+  {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc {$(VPATH)}debug.h \</div><div class='add'>+  {$(VPATH)}optunifs.inc {$(VPATH)}opt_sc.inc {$(VPATH)}insns.inc \</div><div class='add'>+  {$(VPATH)}internal.h</div><div class='add'>+iseq.$(OBJEXT): {$(VPATH)}iseq.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \</div><div class='add'>+  $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \</div><div class='add'>+  {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+vm.$(OBJEXT): {$(VPATH)}vm.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \</div><div class='add'>+  {$(VPATH)}eval_intern.h $(RUBY_H_INCLUDES) $(ENCODING_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}vm_method.c {$(VPATH)}vm_eval.c \</div><div class='add'>+  {$(VPATH)}vm_insnhelper.c {$(VPATH)}vm_insnhelper.h {$(VPATH)}vm_exec.c \</div><div class='add'>+  {$(VPATH)}vm_exec.h {$(VPATH)}insns.def {$(VPATH)}vmtc.inc \</div><div class='add'>+  {$(VPATH)}vm.inc {$(VPATH)}insns.inc {$(VPATH)}debug.h \</div><div class='add'>+  {$(VPATH)}internal.h {$(VPATH)}vm.h {$(VPATH)}constant.h</div><div class='add'>+vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}addr2line.h</div><div class='add'>+debug.$(OBJEXT): {$(VPATH)}debug.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_intern.h \</div><div class='add'>+  {$(VPATH)}util.h {$(VPATH)}debug.h</div><div class='add'>+id.$(OBJEXT): {$(VPATH)}id.c $(RUBY_H_INCLUDES) $(ID_H_INCLUDES)</div><div class='add'>+miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+prelude.$(OBJEXT): {$(VPATH)}prelude.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}internal.h</div><div class='add'>+goruby.$(OBJEXT): {$(VPATH)}goruby.c {$(VPATH)}main.c $(RUBY_H_INCLUDES) \</div><div class='add'>+  {$(VPATH)}debug.h {$(VPATH)}node.h</div><div class='add'>+</div><div class='add'>+ascii.$(OBJEXT): {$(VPATH)}ascii.c {$(VPATH)}regenc.h {$(VPATH)}config.h \</div><div class='add'>+  {$(VPATH)}oniguruma.h {$(VPATH)}missing.h</div><div class='add'>+us_ascii.$(OBJEXT): {$(VPATH)}us_ascii.c {$(VPATH)}regenc.h \</div><div class='add'>+  {$(VPATH)}config.h {$(VPATH)}oniguruma.h {$(VPATH)}missing.h</div><div class='add'>+unicode.$(OBJEXT): {$(VPATH)}unicode.c {$(VPATH)}regint.h \</div><div class='add'>+  {$(VPATH)}config.h {$(VPATH)}defines.h {$(VPATH)}regenc.h \</div><div class='add'>+  {$(VPATH)}oniguruma.h {$(VPATH)}st.h {$(VPATH)}ruby.h \</div><div class='add'>+  {$(VPATH)}missing.h {$(VPATH)}intern.h {$(VPATH)}enc/unicode/name2ctype.h \</div><div class='add'>+  {$(VPATH)}subst.h</div><div class='add'>+</div><div class='add'>+utf_8.$(OBJEXT): {$(VPATH)}utf_8.c {$(VPATH)}regenc.h {$(VPATH)}config.h \</div><div class='add'>+  {$(VPATH)}oniguruma.h {$(VPATH)}missing.h</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) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo newline.c $(srcdir)/enc/trans/newline.trans</div><div class='add'>+newline.$(OBJEXT): {$(VPATH)}newline.c {$(VPATH)}defines.h \</div><div class='add'>+  {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \</div><div class='add'>+  {$(VPATH)}transcode_data.h {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}subst.h</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'>+srcs: {$(VPATH)}parse.c {$(VPATH)}lex.c {$(VPATH)}newline.c srcs-ext srcs-enc</div><div class='add'>+</div><div class='add'>+EXT_SRCS = $(srcdir)/ext/ripper/ripper.c $(srcdir)/ext/json/parser/parser.c</div><div class='add'>+</div><div class='add'>+srcs-ext: $(EXT_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) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) srcs</div><div class='add'>+</div><div class='add'>+incs: $(INSNS) {$(VPATH)}node_name.inc {$(VPATH)}encdb.h {$(VPATH)}transdb.h {$(VPATH)}known_errors.inc \</div><div class='add'>+      $(srcdir)/revision.h $(REVISION_H) enc/unicode/name2ctype.h</div><div class='add'>+</div><div class='add'>+insns: $(INSNS)</div><div class='add'>+</div><div class='add'>+id.h: parse.h $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl</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 --vpath=$(VPATH) parse.h</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'>+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'>+miniprelude.c: $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(BASERUBY) -I$(srcdir) $(srcdir)/tool/compile_prelude.rb $(srcdir)/prelude.rb $@</div><div class='add'>+</div><div class='add'>+prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) \</div><div class='add'>+	   $(srcdir)/lib/rubygems/defaults.rb $(srcdir)/lib/rubygems/custom_require.rb \</div><div class='add'>+	   $(PRELUDE_SCRIPTS) $(PREP)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(COMPILE_PRELUDE) $(PRELUDE_SCRIPTS) $@</div><div class='add'>+</div><div class='add'>+golf_prelude.c: $(srcdir)/tool/compile_prelude.rb $(RBCONFIG) $(srcdir)/prelude.rb $(srcdir)/golf_prelude.rb $(PREP)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(COMPILE_PRELUDE) $(srcdir)/golf_prelude.rb $@</div><div class='add'>+</div><div class='add'>+prereq: incs srcs preludes PHONY</div><div class='add'>+</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)/ChangeLog $(srcdir)/tool/file2lastrev.rb $(REVISION_FORCE)</div><div class='add'>+	@-$(BASERUBY) $(srcdir)/tool/file2lastrev.rb --revision.h "$(srcdir)" &gt; "$(srcdir)/revision.tmp"</div><div class='add'>+	@$(IFCHANGE) "--timestamp=$@" "$(srcdir)/revision.h" "$(srcdir)/revision.tmp"</div><div class='add'>+</div><div class='add'>+$(srcdir)/ext/ripper/ripper.c: parse.y</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) $(CHDIR) $(@D) &amp;&amp; $(exec) $(MAKE) -f depend $(MFLAGS) \</div><div class='add'>+		Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. RUBY=$(BASERUBY)</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=.</div><div class='add'>+</div><div class='add'>+##</div><div class='add'>+</div><div class='add'>+run: miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(MINIRUBY) $(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: miniruby$(EXEEXT) PHONY</div><div class='add'>+	$(MINIRUBY) $(srcdir)/tool/parse.rb $(TESTRUN_SCRIPT)</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'>+benchmark: $(PROGRAM) PHONY</div><div class='add'>+	$(BASERUBY) $(srcdir)/benchmark/driver.rb -v \</div><div class='add'>+	            --executables="$(COMPARE_RUBY); $(RUNRUBY)" \</div><div class='add'>+	            --pattern='bm_' --directory=$(srcdir)/benchmark $(OPTS)</div><div class='add'>+</div><div class='add'>+benchmark-each: $(PROGRAM) PHONY</div><div class='add'>+	$(BASERUBY) $(srcdir)/benchmark/driver.rb -v \</div><div class='add'>+	            --executables="$(COMPARE_RUBY); $(RUNRUBY)" \</div><div class='add'>+	            --pattern=$(ITEM) --directory=$(srcdir)/benchmark $(OPTS)</div><div class='add'>+</div><div class='add'>+tbench: $(PROGRAM) PHONY</div><div class='add'>+	$(BASERUBY) $(srcdir)/benchmark/driver.rb -v \</div><div class='add'>+	            --executables="$(COMPARE_RUBY); $(RUNRUBY)" \</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 b ruby_debug_breakpoint           &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'>+	gdb -x run.gdb --quiet --args $(PROGRAM) $(TESTRUN_SCRIPT)</div><div class='add'>+</div><div class='add'>+dist:</div><div class='add'>+	$(BASERUBY) $(srcdir)/tool/make-snapshot tmp $(RELNAME)</div><div class='add'>+</div><div class='add'>+up::</div><div class='add'>+	-@$(MAKE) $(MFLAGS) REVISION_FORCE=PHONY "$(REVISION_H)"</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:</div><div class='add'>+	@echo PROGRAM=$(PROGRAM)</div><div class='add'>+info-libruby_a:</div><div class='add'>+	@echo LIBRUBY_A=$(LIBRUBY_A)</div><div class='add'>+info-libruby_so:</div><div class='add'>+	@echo LIBRUBY_SO=$(LIBRUBY_SO)</div><div class='add'>+info-arch:</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'>+love: sudo-precheck up all test install test-all</div><div class='add'>+	@echo love is all you need</div><div class='add'>+</div><div class='add'>+sudo-precheck:</div><div class='add'>+	@$(SUDO) echo &gt; $(NULL)</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'>+	"  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'>+	"  test:            ruby core tests" \</div><div class='add'>+	"  test-all:        all ruby tests" \</div><div class='add'>+	"  test-rubyspec:   run RubySpec test suite" \</div><div class='add'>+	"  update-rubyspec: update local copy of RubySpec" \</div><div class='add'>+	"  benchmark:       benchmark this ruby and COMPARE_RUBY" \</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 staff" \</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'>+	"  http://redmine.ruby-lang.org/wiki/ruby/DeveloperHowto" \</div><div class='add'>+	$(MESSAGE_END)</div><div class='head'>diff --git a/compar.c b/compar.c<br/>index 846364ef49..65def78484 100644<br/>--- a/<a href='/ruby.git/tree/compar.c?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>compar.c</a><br/>+++ b/<a href='/ruby.git/tree/compar.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>compar.c</a></div><div class='hunk'>@@ -1,100 +1,215 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </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-1998 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='del'>-************************************************/</div><div class='add'>+**********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='ctx'> </div><div class='del'>-VALUE mComparable;</div><div class='add'>+VALUE rb_mComparable;</div><div class='ctx'> </div><div class='ctx'> static ID cmp;</div><div class='ctx'> </div><div class='add'>+void</div><div class='add'>+rb_cmperr(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    const char *classname;</div><div class='add'>+</div><div class='add'>+    if (SPECIAL_CONST_P(y)) {</div><div class='add'>+	y = rb_inspect(y);</div><div class='add'>+	classname = StringValuePtr(y);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	classname = rb_obj_classname(y);</div><div class='add'>+    }</div><div class='add'>+    rb_raise(rb_eArgError, "comparison of %s with %s failed",</div><div class='add'>+	     rb_obj_classname(x), classname);</div><div class='add'>+}</div><div class='add'>+</div><div class='ctx'> static VALUE</div><div class='del'>-cmp_eq(x, y)</div><div class='del'>-    VALUE x, y;</div><div class='add'>+cmp_eq(VALUE *a)</div><div class='ctx'> {</div><div class='del'>-    VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-    int t = NUM2INT(c);</div><div class='add'>+    VALUE c = rb_funcall(a[0], cmp, 1, a[1]);</div><div class='add'>+</div><div class='add'>+    if (NIL_P(c)) return Qfalse;</div><div class='add'>+    if (rb_cmpint(c, a[0], a[1]) == 0) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+cmp_failed(void)</div><div class='add'>+{</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (t == 0) return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj == other    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='add'>+ *  method, returning true if it returns 0. Also returns true if</div><div class='add'>+ *  _obj_ and _other_ are the same object.</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+cmp_equal(VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    VALUE a[2];</div><div class='add'>+</div><div class='add'>+    if (x == y) return Qtrue;</div><div class='add'>+</div><div class='add'>+    a[0] = x; a[1] = y;</div><div class='add'>+    return rb_rescue(cmp_eq, (VALUE)a, cmp_failed, 0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj &gt; other    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='add'>+ *  method, returning true if it returns 1.</div><div class='add'>+ */</div><div class='add'>+</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='ctx'>     VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-    int t = NUM2INT(c);</div><div class='ctx'> </div><div class='del'>-    if (t &gt; 0) return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    if (rb_cmpint(c, x, y) &gt; 0) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj &gt;= other    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='add'>+ *  method, returning true if it returns 0 or 1.</div><div class='add'>+ */</div><div class='add'>+</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='ctx'>     VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-    int t = NUM2INT(c);</div><div class='ctx'> </div><div class='del'>-    if (t &gt;= 0) return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    if (rb_cmpint(c, x, y) &gt;= 0) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj &lt; other    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='add'>+ *  method, returning true if it returns -1.</div><div class='add'>+ */</div><div class='add'>+</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='ctx'>     VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-    int t = NUM2INT(c);</div><div class='ctx'> </div><div class='del'>-    if (t &lt; 0) return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    if (rb_cmpint(c, x, y) &lt; 0) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj &lt;= other    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  Compares two objects based on the receiver's &lt;code&gt;&lt;=&gt;&lt;/code&gt;</div><div class='add'>+ *  method, returning true if it returns -1 or 0.</div><div class='add'>+ */</div><div class='add'>+</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='ctx'>     VALUE c = rb_funcall(x, cmp, 1, y);</div><div class='del'>-    int t = NUM2INT(c);</div><div class='ctx'> </div><div class='del'>-    if (t &lt;= 0) return TRUE;</div><div class='del'>-    return FALSE;</div><div class='add'>+    if (rb_cmpint(c, x, y) &lt;= 0) return Qtrue;</div><div class='add'>+    return Qfalse;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     obj.between?(min, max)    -&gt; true or false</div><div class='add'>+ *</div><div class='add'>+ *  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='add'>+ *  &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='add'>+ *  &lt;i&gt;max&lt;/i&gt; is greater than zero, &lt;code&gt;true&lt;/code&gt; otherwise.</div><div class='add'>+ *</div><div class='add'>+ *     3.between?(1, 5)               #=&gt; true</div><div class='add'>+ *     6.between?(1, 5)               #=&gt; false</div><div class='add'>+ *     'cat'.between?('ant', 'dog')   #=&gt; true</div><div class='add'>+ *     'gnu'.between?('ant', 'dog')   #=&gt; false</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</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'>-    VALUE c = rb_funcall(x, cmp, 1, min);</div><div class='del'>-    long t = NUM2LONG(c);</div><div class='del'>-    if (t &lt; 0) return FALSE;</div><div class='del'>-</div><div class='del'>-    c = rb_funcall(x, cmp, 1, max);</div><div class='del'>-    t = NUM2LONG(c);</div><div class='del'>-    if (t &gt; 0) return FALSE;</div><div class='del'>-    return TRUE;</div><div class='add'>+    if (RTEST(cmp_lt(x, min))) return Qfalse;</div><div class='add'>+    if (RTEST(cmp_gt(x, max))) return Qfalse;</div><div class='add'>+    return Qtrue;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  The &lt;code&gt;Comparable&lt;/code&gt; mixin is used by classes whose objects</div><div class='add'>+ *  may be ordered. The class must define the &lt;code&gt;&lt;=&gt;&lt;/code&gt; operator,</div><div class='add'>+ *  which compares the receiver against another object, returning -1, 0,</div><div class='add'>+ *  or +1 depending on whether the receiver is less than, equal to, or</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='add'>+ *  &lt;code&gt;&lt;=&gt;&lt;/code&gt; to implement the conventional comparison operators</div><div class='add'>+ *  (&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='add'>+ *  and &lt;code&gt;&gt;&lt;/code&gt;) and the method &lt;code&gt;between?&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     class SizeMatters</div><div class='add'>+ *       include Comparable</div><div class='add'>+ *       attr :str</div><div class='add'>+ *       def &lt;=&gt;(anOther)</div><div class='add'>+ *         str.size &lt;=&gt; anOther.str.size</div><div class='add'>+ *       end</div><div class='add'>+ *       def initialize(str)</div><div class='add'>+ *         @str = str</div><div class='add'>+ *       end</div><div class='add'>+ *       def inspect</div><div class='add'>+ *         @str</div><div class='add'>+ *       end</div><div class='add'>+ *     end</div><div class='add'>+ *</div><div class='add'>+ *     s1 = SizeMatters.new("Z")</div><div class='add'>+ *     s2 = SizeMatters.new("YY")</div><div class='add'>+ *     s3 = SizeMatters.new("XXX")</div><div class='add'>+ *     s4 = SizeMatters.new("WWWW")</div><div class='add'>+ *     s5 = SizeMatters.new("VVVVV")</div><div class='add'>+ *</div><div class='add'>+ *     s1 &lt; s2                       #=&gt; true</div><div class='add'>+ *     s4.between?(s1, s3)           #=&gt; false</div><div class='add'>+ *     s4.between?(s3, s5)           #=&gt; true</div><div class='add'>+ *     [ s3, s2, s5, s4, s1 ].sort   #=&gt; [Z, YY, XXX, WWWW, VVVVV]</div><div class='add'>+ *</div><div class='add'>+ */</div><div class='add'>+</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='del'>-    mComparable = rb_define_module("Comparable");</div><div class='del'>-    rb_define_method(mComparable, "==", cmp_eq, 1);</div><div class='del'>-    rb_define_method(mComparable, "&gt;", cmp_gt, 1);</div><div class='del'>-    rb_define_method(mComparable, "&gt;=", cmp_ge, 1);</div><div class='del'>-    rb_define_method(mComparable, "&lt;", cmp_lt, 1);</div><div class='del'>-    rb_define_method(mComparable, "&lt;=", cmp_le, 1);</div><div class='del'>-    rb_define_method(mComparable, "between?", cmp_between, 2);</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'>+    rb_mComparable = rb_define_module("Comparable");</div><div class='add'>+    rb_define_method(rb_mComparable, "==", cmp_equal, 1);</div><div class='add'>+    rb_define_method(rb_mComparable, "&gt;", cmp_gt, 1);</div><div class='add'>+    rb_define_method(rb_mComparable, "&gt;=", cmp_ge, 1);</div><div class='add'>+    rb_define_method(rb_mComparable, "&lt;", cmp_lt, 1);</div><div class='add'>+    rb_define_method(rb_mComparable, "&lt;=", cmp_le, 1);</div><div class='add'>+    rb_define_method(rb_mComparable, "between?", cmp_between, 2);</div><div class='ctx'> </div><div class='ctx'>     cmp = rb_intern("&lt;=&gt;");</div><div class='ctx'> }</div><div class='head'>diff --git a/compile.c b/compile.c<br/>new file mode 100644<br/>index 0000000000..f4211ed860<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/compile.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>compile.c</a></div><div class='hunk'>@@ -0,0 +1,5578 @@</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 "ruby/ruby.h"</div><div class='add'>+#include "internal.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'>+</div><div class='add'>+#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))</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_NONE,</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'>+    } 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 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 set;</div><div class='add'>+    int sp;</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 line_no;</div><div class='add'>+    int operand_size;</div><div class='add'>+    int sc_state;</div><div class='add'>+    VALUE *operands;</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'>+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'>+    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-&gt;compile_data-&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, "", (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'>+static inline ID</div><div class='add'>+r_id(ID id)</div><div class='add'>+{</div><div class='add'>+    return id;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+r_value(VALUE value)</div><div class='add'>+{</div><div class='add'>+    return value;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define debugi(header, id)                 r_id(id)</div><div class='add'>+#define debugp(header, value)              r_value(value)</div><div class='add'>+#define debugp_verbose(header, value)      r_value(value)</div><div class='add'>+#define debugp_verbose_node(header, value) r_value(value)</div><div class='add'>+#define debugp_param(header, value)        r_value(value)</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 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'>+</div><div class='add'>+/* create new label */</div><div class='add'>+#define NEW_LABEL(l) new_label_body(iseq, (l))</div><div class='add'>+</div><div class='add'>+#define iseq_filename(iseq) \</div><div class='add'>+  (((rb_iseq_t*)DATA_PTR(iseq))-&gt;filename)</div><div class='add'>+</div><div class='add'>+#define iseq_filepath(iseq) \</div><div class='add'>+  (((rb_iseq_t*)DATA_PTR(iseq))-&gt;filepath)</div><div class='add'>+</div><div class='add'>+#define NEW_ISEQVAL(node, name, type, line_no)       \</div><div class='add'>+  new_child_iseq(iseq, (node), (name), 0, (type), (line_no))</div><div class='add'>+</div><div class='add'>+#define NEW_CHILD_ISEQVAL(node, name, type, line_no)       \</div><div class='add'>+  new_child_iseq(iseq, (node), (name), iseq-&gt;self, (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'>+/* add an instruction with label operand */</div><div class='add'>+#define ADD_INSNL(seq, line, insn, label) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='add'>+           new_insn_body(iseq, (line), BIN(insn), 1, (VALUE)(label)))</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'>+#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), (VALUE)Qfalse, (VALUE)INT2FIX(0))</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), (VALUE)Qfalse, (VALUE)INT2FIX(VM_CALL_FCALL_BIT))</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_BIT))</div><div class='add'>+</div><div class='add'>+#define ADD_SEND_R(seq, line, id, argc, block, flag) \</div><div class='add'>+  ADD_ELEM((seq), (LINK_ELEMENT *) \</div><div class='add'>+           new_insn_send(iseq, (line), \</div><div class='add'>+                         (VALUE)(id), (VALUE)(argc), (VALUE)(block), (VALUE)(flag)))</div><div class='add'>+</div><div class='add'>+#define ADD_TRACE(seq, line, event) \</div><div class='add'>+  do { \</div><div class='add'>+      if ((event) == RUBY_EVENT_LINE &amp;&amp; iseq-&gt;coverage &amp;&amp; \</div><div class='add'>+	  (line) != iseq-&gt;compile_data-&gt;last_coverable_line) { \</div><div class='add'>+	  RARRAY_PTR(iseq-&gt;coverage)[(line) - 1] = INT2FIX(0); \</div><div class='add'>+	  iseq-&gt;compile_data-&gt;last_coverable_line = (line); \</div><div class='add'>+	  ADD_INSN1((seq), (line), trace, INT2FIX(RUBY_EVENT_COVERAGE)); \</div><div class='add'>+      } \</div><div class='add'>+      if (iseq-&gt;compile_data-&gt;option-&gt;trace_instruction) { \</div><div class='add'>+	  ADD_INSN1((seq), (line), trace, INT2FIX(event)); \</div><div class='add'>+      } \</div><div class='add'>+  }while(0);</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 ADD_CATCH_ENTRY(type, ls, le, iseqv, lc)		\</div><div class='add'>+    (rb_ary_push(iseq-&gt;compile_data-&gt;catch_table_ary,		\</div><div class='add'>+		 rb_ary_new3(5, (type),				\</div><div class='add'>+			     (VALUE)(ls) | 1, (VALUE)(le) | 1,	\</div><div class='add'>+			     (iseqv), (VALUE)(lc) | 1)))</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_POPED(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 'poped' is true */</div><div class='add'>+#define COMPILE_(anchor, desc, node, poped)  \</div><div class='add'>+  (debug_compile("== " desc "\n", \</div><div class='add'>+                 iseq_compile_each(iseq, (anchor), (node), (poped))))</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'>+/* error */</div><div class='add'>+#define COMPILE_ERROR(strs)                        \</div><div class='add'>+{                                                  \</div><div class='add'>+  VALUE tmp = GET_THREAD()-&gt;errinfo;               \</div><div class='add'>+  if (compile_debug) rb_compile_bug strs;          \</div><div class='add'>+  GET_THREAD()-&gt;errinfo = iseq-&gt;compile_data-&gt;err_info;  \</div><div class='add'>+  rb_compile_error strs;                           \</div><div class='add'>+  iseq-&gt;compile_data-&gt;err_info = GET_THREAD()-&gt;errinfo; \</div><div class='add'>+  GET_THREAD()-&gt;errinfo = tmp;                     \</div><div class='add'>+  ret = 0;                                         \</div><div class='add'>+  break;                                           \</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define ERROR_ARGS ruby_sourcefile, nd_line(node),</div><div class='add'>+</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'>+</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, name##_body__ = {{0,},}</div><div class='add'>+#define INIT_ANCHOR(name) \</div><div class='add'>+  (name##_body__.last = &amp;name##_body__.anchor, name = &amp;name##_body__)</div><div class='add'>+</div><div class='add'>+#define hide_obj(obj) do {OBJ_FREEZE(obj); RBASIC(obj)-&gt;klass = 0;} while (0)</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-&gt;compile_data-&gt;node_level</div><div class='add'>+#if 0</div><div class='add'>+static void debug_list(ISEQ_ARG_DECLARE LINK_ANCHOR *anchor);</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static void dump_disasm_list(LINK_ELEMENT *elem);</div><div class='add'>+</div><div class='add'>+static int insn_data_length(INSN *iobj);</div><div class='add'>+static int insn_data_line_no(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, int 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'>+</div><div class='add'>+static int iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *anchor, NODE * n, int);</div><div class='add'>+static int iseq_setup(rb_iseq_t *iseq, LINK_ANCHOR *anchor);</div><div class='add'>+static int iseq_optimize(rb_iseq_t *iseq, LINK_ANCHOR *anchor);</div><div class='add'>+static int iseq_insns_unification(rb_iseq_t *iseq, LINK_ANCHOR *anchor);</div><div class='add'>+</div><div class='add'>+static int iseq_set_local_table(rb_iseq_t *iseq, 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 *anchor, NODE * node);</div><div class='add'>+</div><div class='add'>+static int iseq_set_sequence_stackcaching(rb_iseq_t *iseq, LINK_ANCHOR *anchor);</div><div class='add'>+static int iseq_set_sequence(rb_iseq_t *iseq, LINK_ANCHOR *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'>+/*</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 *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 *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 *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) ADD_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(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-&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'>+#define ruby_sourcefile		RSTRING_PTR(iseq-&gt;filename)</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+iseq_add_mark_object_compile_time(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-&gt;compile_data-&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 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'>+	    int ret;</div><div class='add'>+	    COMPILE_ERROR((ruby_sourcefile, lobj-&gt;position,</div><div class='add'>+			   "%s: undefined label", rb_id2name((ID)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'>+    if (!NIL_P(iseq-&gt;compile_data-&gt;err_info)) {</div><div class='add'>+	rb_exc_raise(iseq-&gt;compile_data-&gt;err_info);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_compile_node(VALUE self, NODE *node)</div><div class='add'>+{</div><div class='add'>+    DECL_ANCHOR(ret);</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='add'>+    INIT_ANCHOR(ret);</div><div class='add'>+    GetISeqPtr(self, iseq);</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 (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;type) {</div><div class='add'>+	  case ISEQ_TYPE_BLOCK: {</div><div class='add'>+	    LABEL *start = iseq-&gt;compile_data-&gt;start_label = NEW_LABEL(0);</div><div class='add'>+	    LABEL *end = iseq-&gt;compile_data-&gt;end_label = NEW_LABEL(0);</div><div class='add'>+</div><div class='add'>+	    ADD_LABEL(ret, start);</div><div class='add'>+	    COMPILE(ret, "block body", node-&gt;nd_body);</div><div class='add'>+	    ADD_LABEL(ret, end);</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, 0, start);</div><div class='add'>+	    ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, end, 0, end);</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	  case ISEQ_TYPE_CLASS: {</div><div class='add'>+	    ADD_TRACE(ret, FIX2INT(iseq-&gt;line_no), RUBY_EVENT_CLASS);</div><div class='add'>+	    COMPILE(ret, "scoped node", node-&gt;nd_body);</div><div class='add'>+	    ADD_TRACE(ret, nd_line(node), RUBY_EVENT_END);</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	  case ISEQ_TYPE_METHOD: {</div><div class='add'>+	    ADD_TRACE(ret, FIX2INT(iseq-&gt;line_no), RUBY_EVENT_CALL);</div><div class='add'>+	    COMPILE(ret, "scoped node", node-&gt;nd_body);</div><div class='add'>+	    ADD_TRACE(ret, nd_line(node), RUBY_EVENT_RETURN);</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	  default: {</div><div class='add'>+	    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'>+	switch (iseq-&gt;type) {</div><div class='add'>+	  case ISEQ_TYPE_METHOD:</div><div class='add'>+	  case ISEQ_TYPE_CLASS:</div><div class='add'>+	  case ISEQ_TYPE_BLOCK:</div><div class='add'>+	  case ISEQ_TYPE_EVAL:</div><div class='add'>+	  case ISEQ_TYPE_MAIN:</div><div class='add'>+	  case ISEQ_TYPE_TOP:</div><div class='add'>+	    rb_compile_error(ERROR_ARGS "compile/should not be reached: %s:%d",</div><div class='add'>+			     __FILE__, __LINE__);</div><div class='add'>+	    break;</div><div class='add'>+	  case ISEQ_TYPE_RESCUE:</div><div class='add'>+	    iseq_set_exception_local_table(iseq);</div><div class='add'>+	    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'>+	    COMPILE_POPED(ret, "ensure", node);</div><div class='add'>+	    break;</div><div class='add'>+	  case ISEQ_TYPE_DEFINED_GUARD:</div><div class='add'>+	    iseq_set_local_table(iseq, 0);</div><div class='add'>+	    COMPILE(ret, "defined guard", node);</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    rb_bug("unknown scope");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (iseq-&gt;type == ISEQ_TYPE_RESCUE || iseq-&gt;type == ISEQ_TYPE_ENSURE) {</div><div class='add'>+	ADD_INSN2(ret, 0, getdynamic, INT2FIX(2), INT2FIX(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-&gt;compile_data-&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-&gt;compile_data-&gt;labels_table) {</div><div class='add'>+	validate_labels(iseq, iseq-&gt;compile_data-&gt;labels_table);</div><div class='add'>+    }</div><div class='add'>+#endif</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 long i;</div><div class='add'>+</div><div class='add'>+    iseq-&gt;iseq_encoded = ALLOC_N(VALUE, iseq-&gt;iseq_size);</div><div class='add'>+    MEMCPY(iseq-&gt;iseq_encoded, iseq-&gt;iseq, VALUE, iseq-&gt;iseq_size);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; iseq-&gt;iseq_size; /* */ ) {</div><div class='add'>+	int insn = (int)iseq-&gt;iseq_encoded[i];</div><div class='add'>+	int len = insn_len(insn);</div><div class='add'>+	iseq-&gt;iseq_encoded[i] = (VALUE)table[insn];</div><div class='add'>+	i += len;</div><div class='add'>+    }</div><div class='add'>+#else</div><div class='add'>+    iseq-&gt;iseq_encoded = iseq-&gt;iseq;</div><div class='add'>+#endif</div><div class='add'>+    return COMPILE_OK;</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'>+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-&gt;compile_data-&gt;storage_current;</div><div class='add'>+</div><div class='add'>+    if (storage-&gt;pos + size &gt; storage-&gt;size) {</div><div class='add'>+	unsigned long alloc_size = storage-&gt;size * 2;</div><div class='add'>+</div><div class='add'>+      retry:</div><div class='add'>+	if (alloc_size &lt; size) {</div><div class='add'>+	    alloc_size *= 2;</div><div class='add'>+	    goto retry;</div><div class='add'>+	}</div><div class='add'>+	storage-&gt;next = (void *)ALLOC_N(char, alloc_size +</div><div class='add'>+					sizeof(struct</div><div class='add'>+					       iseq_compile_data_storage));</div><div class='add'>+	storage = iseq-&gt;compile_data-&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'>+	storage-&gt;buff = (char *)(&amp;storage-&gt;buff + 1);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    ptr = (void *)&amp;storage-&gt;buff[storage-&gt;pos];</div><div class='add'>+    storage-&gt;pos += 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'>+/*</div><div class='add'>+ * elem1, elemX =&gt; elem1, elem2, elemX</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+INSERT_ELEM_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'>+#if 0 /* unused */</div><div class='add'>+/*</div><div class='add'>+ * elemX, elem1 =&gt; elemX, elem2, elem1</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+INSERT_ELEM_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'>+#endif</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'>+REPLACE_ELEM(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'>+REMOVE_ELEM(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(LINK_ANCHOR *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'>+#if 0 /* unused */</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+LAST_ELEMENT(LINK_ANCHOR *anchor)</div><div class='add'>+{</div><div class='add'>+  return anchor-&gt;last;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+POP_ELEMENT(ISEQ_ARG_DECLARE LINK_ANCHOR *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'>+#if 0 /* unused */</div><div class='add'>+static LINK_ELEMENT *</div><div class='add'>+SHIFT_ELEMENT(LINK_ANCHOR *anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *elem = anchor-&gt;anchor.next;</div><div class='add'>+    if (elem) {</div><div class='add'>+	anchor-&gt;anchor.next = elem-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    return elem;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if 0 /* unused */</div><div class='add'>+static int</div><div class='add'>+LIST_SIZE(LINK_ANCHOR *anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *elem = anchor-&gt;anchor.next;</div><div class='add'>+    int size = 0;</div><div class='add'>+    while (elem) {</div><div class='add'>+	size += 1;</div><div class='add'>+	elem = elem-&gt;next;</div><div class='add'>+    }</div><div class='add'>+    return size;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+LIST_SIZE_ZERO(LINK_ANCHOR *anchor)</div><div class='add'>+{</div><div class='add'>+    if (anchor-&gt;anchor.next == 0) {</div><div class='add'>+	return 1;</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'>+/*</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 *anc1, LINK_ANCHOR *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 *anc1, LINK_ANCHOR *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 0 /* unused */</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</div><div class='add'>+ * anc2: e1, e2, e3</div><div class='add'>+ */</div><div class='add'>+static void</div><div class='add'>+SWAP_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *anc1, LINK_ANCHOR *anc2)</div><div class='add'>+{</div><div class='add'>+    LINK_ANCHOR tmp = *anc2;</div><div class='add'>+</div><div class='add'>+    /* it has bug */</div><div class='add'>+    *anc2 = *anc1;</div><div class='add'>+    *anc1 = tmp;</div><div class='add'>+</div><div class='add'>+    verify_list("swap1", anc1);</div><div class='add'>+    verify_list("swap2", anc2);</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define SWAP_LIST(anc1, anc2) SWAP_LIST(iseq, (anc1), (anc2))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static LINK_ANCHOR *</div><div class='add'>+REVERSE_LIST(ISEQ_ARG_DECLARE LINK_ANCHOR *anc)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *first, *last, *elem, *e;</div><div class='add'>+    first = &amp;anc-&gt;anchor;</div><div class='add'>+    elem = first-&gt;next;</div><div class='add'>+    last = anc-&gt;last;</div><div class='add'>+</div><div class='add'>+    if (elem != 0) {</div><div class='add'>+	anc-&gt;anchor.next = last;</div><div class='add'>+	anc-&gt;last = elem;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* null list */</div><div class='add'>+	return anc;</div><div class='add'>+    }</div><div class='add'>+    while (elem) {</div><div class='add'>+	e = elem-&gt;next;</div><div class='add'>+	elem-&gt;next = elem-&gt;prev;</div><div class='add'>+	elem-&gt;prev = e;</div><div class='add'>+	elem = e;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    first-&gt;next = last;</div><div class='add'>+    last-&gt;prev = first;</div><div class='add'>+    anc-&gt;last-&gt;next = 0;</div><div class='add'>+</div><div class='add'>+    verify_list("reverse", anc);</div><div class='add'>+    return anc;</div><div class='add'>+}</div><div class='add'>+#if CPDEBUG &lt; 0</div><div class='add'>+#define REVERSE_LIST(anc) REVERSE_LIST(iseq, (anc))</div><div class='add'>+#endif</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 *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'>+#endif</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-&gt;compile_data-&gt;label_no++;</div><div class='add'>+    labelobj-&gt;sc_state = 0;</div><div class='add'>+    labelobj-&gt;sp = -1;</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'>+    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'>+    /* 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;line_no = line_no;</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, int 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 INSN *</div><div class='add'>+new_insn_send(rb_iseq_t *iseq, int line_no,</div><div class='add'>+	      VALUE id, VALUE argc, VALUE block, VALUE flag)</div><div class='add'>+{</div><div class='add'>+    INSN *iobj = 0;</div><div class='add'>+    VALUE *operands =</div><div class='add'>+      (VALUE *)compile_data_alloc(iseq, sizeof(VALUE) * 5);</div><div class='add'>+    operands[0] = id;</div><div class='add'>+    operands[1] = argc;</div><div class='add'>+    operands[2] = block;</div><div class='add'>+    operands[3] = flag;</div><div class='add'>+    operands[4] = INT2FIX(iseq-&gt;ic_size++);</div><div class='add'>+    iobj = new_insn_core(iseq, line_no, BIN(send), 5, operands);</div><div class='add'>+    return iobj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+new_child_iseq(rb_iseq_t *iseq, NODE *node,</div><div class='add'>+	       VALUE name, VALUE parent, enum iseq_type type, int line_no)</div><div class='add'>+{</div><div class='add'>+    VALUE ret;</div><div class='add'>+</div><div class='add'>+    debugs("[new_child_iseq]&gt; ---------------------------------------\n");</div><div class='add'>+    ret = rb_iseq_new_with_opt(node, name, iseq_filename(iseq-&gt;self), iseq_filepath(iseq-&gt;self), INT2FIX(line_no),</div><div class='add'>+			       parent, type, iseq-&gt;compile_data-&gt;option);</div><div class='add'>+    debugs("[new_child_iseq]&lt; ---------------------------------------\n");</div><div class='add'>+    iseq_add_mark_object(iseq, ret);</div><div class='add'>+    return ret;</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 *anchor)</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-&gt;compile_data-&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-&gt;compile_data-&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 4.1 (iseq_set_sequence)]\n");</div><div class='add'>+    iseq_set_sequence(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'>+    debugs("[compile step 4.2 (iseq_set_exception_table)]\n");</div><div class='add'>+    iseq_set_exception_table(iseq);</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 4.3 (set_optargs_table)] \n");</div><div class='add'>+    iseq_set_optargs_table(iseq);</div><div class='add'>+</div><div class='add'>+    debugs("[compile step 5 (iseq_translate_threaded_code)] \n");</div><div class='add'>+    rb_iseq_translate_threaded_code(iseq);</div><div class='add'>+</div><div class='add'>+    if (compile_debug &gt; 1) {</div><div class='add'>+	VALUE str = rb_iseq_disasm(iseq-&gt;self);</div><div class='add'>+	printf("%s\n", StringValueCStr(str));</div><div class='add'>+	fflush(stdout);</div><div class='add'>+    }</div><div class='add'>+    debugs("[compile step: finish]\n");</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'>+iseq_set_exception_local_table(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    ID id_dollar_bang;</div><div class='add'>+</div><div class='add'>+    CONST_ID(id_dollar_bang, "#$!");</div><div class='add'>+    iseq-&gt;local_table = (ID *)ALLOC_N(ID, 1);</div><div class='add'>+    iseq-&gt;local_table_size = 1;</div><div class='add'>+    iseq-&gt;local_size = iseq-&gt;local_table_size + 1;</div><div class='add'>+    iseq-&gt;local_table[0] = id_dollar_bang;</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_dyna_var_idx_at_raw(rb_iseq_t *iseq, ID id)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; iseq-&gt;local_table_size; i++) {</div><div class='add'>+	if (iseq-&gt;local_table[i] == id) {</div><div class='add'>+	    return 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(rb_iseq_t *iseq, ID id)</div><div class='add'>+{</div><div class='add'>+    int idx = get_dyna_var_idx_at_raw(iseq-&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(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;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;local_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_set_arguments(rb_iseq_t *iseq, LINK_ANCHOR *optargs, NODE *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'>+	NODE *node_aux = node_args-&gt;nd_next;</div><div class='add'>+	NODE *node_opt = node_args-&gt;nd_opt;</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'>+	NODE *node_init = 0;</div><div class='add'>+</div><div class='add'>+	if (nd_type(node_args) != NODE_ARGS) {</div><div class='add'>+	    rb_bug("iseq_set_arguments: NODE_ARGS is expected, but %s",</div><div class='add'>+		   ruby_node_name(nd_type(node_args)));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/*</div><div class='add'>+         * new argument information:</div><div class='add'>+         *   NODE_ARGS     [m: int,  o: NODE_OPT_ARG, -&gt;]</div><div class='add'>+         *   NODE_ARGS_AUX [r: ID,   b: ID,           -&gt;]</div><div class='add'>+         *   NODE_ARGS_AUX [Pst: id, Plen: int,       init: NODE*]</div><div class='add'>+         *  optarg information:</div><div class='add'>+         *   NODE_OPT_ARGS [idx,     expr,            next -&gt;]</div><div class='add'>+	 *  init arg:</div><div class='add'>+	 *   NODE_AND(m_init, p_init)</div><div class='add'>+	 *  if "r" is 1, it's means "{|x,|}" type block parameter.</div><div class='add'>+	 */</div><div class='add'>+</div><div class='add'>+	iseq-&gt;argc = (int)node_args-&gt;nd_frml;</div><div class='add'>+	debugs("  - argc: %d\n", iseq-&gt;argc);</div><div class='add'>+</div><div class='add'>+	if (node_aux) {</div><div class='add'>+	    rest_id = node_aux-&gt;nd_rest;</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 = (ID)node_aux-&gt;nd_body;</div><div class='add'>+	    node_aux = node_aux-&gt;nd_next;</div><div class='add'>+</div><div class='add'>+	    if (node_aux) {</div><div class='add'>+		ID post_start_id = node_aux-&gt;nd_pid;</div><div class='add'>+		iseq-&gt;arg_post_start = get_dyna_var_idx_at_raw(iseq, post_start_id);</div><div class='add'>+		iseq-&gt;arg_post_len = (int)node_aux-&gt;nd_plen;</div><div class='add'>+		node_init = node_aux-&gt;nd_next;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (node_opt) {</div><div class='add'>+	    NODE *node = node_opt;</div><div class='add'>+	    LABEL *label;</div><div class='add'>+	    VALUE labels = rb_ary_tmp_new(1);</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_POPED(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'>+	    i += 1;</div><div class='add'>+</div><div class='add'>+	    iseq-&gt;arg_opts = i;</div><div class='add'>+	    iseq-&gt;arg_opt_table = ALLOC_N(VALUE, i);</div><div class='add'>+	    MEMCPY(iseq-&gt;arg_opt_table, RARRAY_PTR(labels), VALUE, i);</div><div class='add'>+	    for (j = 0; j &lt; i; j++) {</div><div class='add'>+		iseq-&gt;arg_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'>+	else {</div><div class='add'>+	    iseq-&gt;arg_opts = 0;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (node_init) {</div><div class='add'>+	    if (node_init-&gt;nd_1st) { /* m_init */</div><div class='add'>+		COMPILE_POPED(optargs, "init arguments (m)", node_init-&gt;nd_1st);</div><div class='add'>+	    }</div><div class='add'>+	    if (node_init-&gt;nd_2nd) { /* p_init */</div><div class='add'>+		COMPILE_POPED(optargs, "init arguments (p)", node_init-&gt;nd_2nd);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (rest_id) {</div><div class='add'>+	    iseq-&gt;arg_rest = get_dyna_var_idx_at_raw(iseq, rest_id);</div><div class='add'>+</div><div class='add'>+	    if (iseq-&gt;arg_rest == -1) {</div><div class='add'>+		rb_bug("arg_rest: -1");</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (iseq-&gt;arg_post_start == 0) {</div><div class='add'>+		iseq-&gt;arg_post_start = iseq-&gt;arg_rest + 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;arg_block = get_dyna_var_idx_at_raw(iseq, block_id);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;arg_opts != 0 || iseq-&gt;arg_post_len != 0 ||</div><div class='add'>+	    iseq-&gt;arg_rest != -1 || iseq-&gt;arg_block != -1) {</div><div class='add'>+	    iseq-&gt;arg_simple = 0;</div><div class='add'>+</div><div class='add'>+	    /* set arg_size: size of arguments */</div><div class='add'>+	    if (iseq-&gt;arg_block != -1) {</div><div class='add'>+		iseq-&gt;arg_size = iseq-&gt;arg_block + 1;</div><div class='add'>+	    }</div><div class='add'>+	    else if (iseq-&gt;arg_post_len) {</div><div class='add'>+		iseq-&gt;arg_size = iseq-&gt;arg_post_start + iseq-&gt;arg_post_len;</div><div class='add'>+	    }</div><div class='add'>+	    else if (iseq-&gt;arg_rest != -1) {</div><div class='add'>+		iseq-&gt;arg_size = iseq-&gt;arg_rest + 1;</div><div class='add'>+	    }</div><div class='add'>+	    else if (iseq-&gt;arg_opts) {</div><div class='add'>+		iseq-&gt;arg_size = iseq-&gt;argc + iseq-&gt;arg_opts - 1;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		iseq-&gt;arg_size = iseq-&gt;argc;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    iseq-&gt;arg_simple = 1;</div><div class='add'>+	    iseq-&gt;arg_size = iseq-&gt;argc;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+	    if (iseq-&gt;arg_opts == 0 &amp;&amp; iseq-&gt;arg_post_len == 0 &amp;&amp; iseq-&gt;arg_rest == -1) {</div><div class='add'>+		if (iseq-&gt;argc == 1 &amp;&amp; last_comma == 0) {</div><div class='add'>+		    /* {|a|} */</div><div class='add'>+		    iseq-&gt;arg_simple |= 0x02;</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'>+	iseq-&gt;arg_simple = 1;</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, ID *tbl)</div><div class='add'>+{</div><div class='add'>+    int size;</div><div class='add'>+</div><div class='add'>+    if (tbl) {</div><div class='add'>+	size = (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'>+	iseq-&gt;local_table = (ID *)ALLOC_N(ID, size);</div><div class='add'>+	MEMCPY(iseq-&gt;local_table, tbl, ID, size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    iseq-&gt;local_size = iseq-&gt;local_table_size = size;</div><div class='add'>+    iseq-&gt;local_size += 1;</div><div class='add'>+    /*</div><div class='add'>+      if (lfp == dfp ) { // top, class, method</div><div class='add'>+	  dfp[-1]: svar</div><div class='add'>+      else {             // block</div><div class='add'>+          dfp[-1]: cref</div><div class='add'>+      }</div><div class='add'>+     */</div><div class='add'>+</div><div class='add'>+    debugs("iseq_set_local_table: %d, %d\n", iseq-&gt;local_size, iseq-&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 (TYPE(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'>+/**</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 *anchor)</div><div class='add'>+{</div><div class='add'>+    LABEL *lobj;</div><div class='add'>+    INSN *iobj;</div><div class='add'>+    struct iseq_insn_info_entry *insn_info_table;</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    VALUE *generated_iseq;</div><div class='add'>+</div><div class='add'>+    int k, pos, sp, stack_max = 0, line = 0;</div><div class='add'>+</div><div class='add'>+    /* set label position */</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+    k = pos = 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'>+		iobj = (INSN *)list;</div><div class='add'>+		line = iobj-&gt;line_no;</div><div class='add'>+		pos += insn_data_length(iobj);</div><div class='add'>+		k++;</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 *)list;</div><div class='add'>+		lobj-&gt;position = pos;</div><div class='add'>+		lobj-&gt;set = TRUE;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_NONE:</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'>+		if (adjust-&gt;line_no != -1) {</div><div class='add'>+		    pos += 2 /* insn + 1 operand */;</div><div class='add'>+		    k++;</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  default:</div><div class='add'>+	    dump_disasm_list(FIRST_ELEMENT(anchor));</div><div class='add'>+	    dump_disasm_list(list);</div><div class='add'>+	    rb_compile_error(RSTRING_PTR(iseq-&gt;filename), line,</div><div class='add'>+			     "error: set_sequence");</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'>+    /* make instruction sequence */</div><div class='add'>+    generated_iseq = ALLOC_N(VALUE, pos);</div><div class='add'>+    insn_info_table = ALLOC_N(struct iseq_insn_info_entry, k);</div><div class='add'>+    iseq-&gt;ic_entries = ALLOC_N(struct iseq_inline_cache_entry, iseq-&gt;ic_size);</div><div class='add'>+    MEMZERO(iseq-&gt;ic_entries, struct iseq_inline_cache_entry, iseq-&gt;ic_size);</div><div class='add'>+</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+    k = pos = 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'>+</div><div class='add'>+		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 &gt; stack_max) {</div><div class='add'>+		    stack_max = sp;</div><div class='add'>+		}</div><div class='add'>+</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[pos] = 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'>+		/* 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'>+		    dump_disasm_list(list);</div><div class='add'>+		    rb_compile_error(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;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'>+		    xfree(generated_iseq);</div><div class='add'>+		    xfree(insn_info_table);</div><div class='add'>+		    return 0;</div><div class='add'>+		}</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'>+			    lobj = (LABEL *)operands[j];</div><div class='add'>+			    if (!lobj-&gt;set) {</div><div class='add'>+				rb_compile_error(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;line_no,</div><div class='add'>+						 "unknown label");</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'>+			    generated_iseq[pos + 1 + j] =</div><div class='add'>+				lobj-&gt;position - (pos + 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'>+			    /*</div><div class='add'>+			     * [obj, label, ...]</div><div class='add'>+			     */</div><div class='add'>+			    int i;</div><div class='add'>+			    VALUE lits = operands[j];</div><div class='add'>+			    VALUE map = rb_hash_new();</div><div class='add'>+			    RHASH_TBL(map)-&gt;type = &amp;cdhash_type;</div><div class='add'>+</div><div class='add'>+			    for (i=0; i &lt; RARRAY_LEN(lits); i+=2) {</div><div class='add'>+				VALUE obj = rb_ary_entry(lits, i);</div><div class='add'>+				VALUE lv  = rb_ary_entry(lits, i+1);</div><div class='add'>+				lobj = (LABEL *)(lv &amp; ~1);</div><div class='add'>+</div><div class='add'>+				if (!lobj-&gt;set) {</div><div class='add'>+				    rb_compile_error(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;line_no,</div><div class='add'>+						     "unknown label");</div><div class='add'>+				}</div><div class='add'>+				if (!st_lookup(rb_hash_tbl(map), obj, 0)) {</div><div class='add'>+				    rb_hash_aset(map, obj, INT2FIX(lobj-&gt;position - (pos+len)));</div><div class='add'>+				}</div><div class='add'>+				else {</div><div class='add'>+				    rb_compile_warning(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;line_no,</div><div class='add'>+						       "duplicated when clause is ignored");</div><div class='add'>+				}</div><div class='add'>+			    }</div><div class='add'>+			    hide_obj(map);</div><div class='add'>+			    generated_iseq[pos + 1 + j] = map;</div><div class='add'>+			    iseq_add_mark_object(iseq, map);</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_LINDEX:</div><div class='add'>+		      case TS_DINDEX:</div><div class='add'>+		      case TS_NUM:	/* ulong */</div><div class='add'>+			generated_iseq[pos + 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'>+			    rb_iseq_t *block = 0;</div><div class='add'>+			    if (v) {</div><div class='add'>+				GetISeqPtr(v, block);</div><div class='add'>+			    }</div><div class='add'>+			    generated_iseq[pos + 1 + j] = (VALUE)block;</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[pos + 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'>+			    int ic_index = FIX2INT(operands[j]);</div><div class='add'>+			    IC ic = &amp;iseq-&gt;ic_entries[ic_index];</div><div class='add'>+			    if (UNLIKELY(ic_index &gt;= iseq-&gt;ic_size)) {</div><div class='add'>+				rb_bug("iseq_set_sequence: ic_index overflow: index: %d, size: %d",</div><div class='add'>+				       ic_index, iseq-&gt;ic_size);</div><div class='add'>+			    }</div><div class='add'>+			    generated_iseq[pos + 1 + j] = (VALUE)ic;</div><div class='add'>+			    break;</div><div class='add'>+			}</div><div class='add'>+		      case TS_ID: /* ID */</div><div class='add'>+			generated_iseq[pos + 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[pos + 1 + j] = (VALUE)entry;</div><div class='add'>+			}</div><div class='add'>+			break;</div><div class='add'>+		      default:</div><div class='add'>+			rb_compile_error(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;line_no,</div><div class='add'>+					 "unknown operand type: %c", type);</div><div class='add'>+			xfree(generated_iseq);</div><div class='add'>+			xfree(insn_info_table);</div><div class='add'>+			return 0;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		insn_info_table[k].line_no = iobj-&gt;line_no;</div><div class='add'>+		insn_info_table[k].position = pos;</div><div class='add'>+		insn_info_table[k].sp = sp;</div><div class='add'>+		pos += len;</div><div class='add'>+		k++;</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 *)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_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'>+		    if (orig_sp - sp &gt; 0) {</div><div class='add'>+			insn_info_table[k].line_no = adjust-&gt;line_no;</div><div class='add'>+			insn_info_table[k].position = pos;</div><div class='add'>+			insn_info_table[k].sp = sp;</div><div class='add'>+			k++;</div><div class='add'>+			generated_iseq[pos++] = BIN(adjuststack);</div><div class='add'>+			generated_iseq[pos++] = orig_sp - sp;</div><div class='add'>+		    }</div><div class='add'>+		    else if (orig_sp - sp == 0) {</div><div class='add'>+			/* jump to next insn */</div><div class='add'>+			insn_info_table[k].line_no = adjust-&gt;line_no;</div><div class='add'>+			insn_info_table[k].position = pos;</div><div class='add'>+			insn_info_table[k].sp = sp;</div><div class='add'>+			k++;</div><div class='add'>+			generated_iseq[pos++] = BIN(jump);</div><div class='add'>+			generated_iseq[pos++] = 0;</div><div class='add'>+		    }</div><div class='add'>+		    else {</div><div class='add'>+			rb_bug("iseq_set_sequence: adjust bug");</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'>+#if 0 /* XXX */</div><div class='add'>+    /* this check need dead code elimination */</div><div class='add'>+    if (sp != 1) {</div><div class='add'>+	rb_bug("SP is not 0 on %s (%d)\n", RSTRING_PTR(iseq-&gt;name), sp);</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    iseq-&gt;iseq = (void *)generated_iseq;</div><div class='add'>+    iseq-&gt;iseq_size = pos;</div><div class='add'>+    iseq-&gt;insn_info_table = insn_info_table;</div><div class='add'>+    iseq-&gt;insn_info_size = k;</div><div class='add'>+    iseq-&gt;stack_max = stack_max;</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'>+    VALUE *tptr, *ptr;</div><div class='add'>+    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-&gt;compile_data-&gt;catch_table_ary);</div><div class='add'>+    tptr = RARRAY_PTR(iseq-&gt;compile_data-&gt;catch_table_ary);</div><div class='add'>+</div><div class='add'>+    iseq-&gt;catch_table = tlen ? ALLOC_N(struct iseq_catch_table_entry, tlen) : 0;</div><div class='add'>+    iseq-&gt;catch_table_size = tlen;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; tlen; i++) {</div><div class='add'>+	ptr = RARRAY_PTR(tptr[i]);</div><div class='add'>+	entry = &amp;iseq-&gt;catch_table[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 = 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, 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'>+</div><div class='add'>+    iseq-&gt;compile_data-&gt;catch_table_ary = 0;	/* free */</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'>+</div><div class='add'>+    if (iseq-&gt;arg_opts != 0) {</div><div class='add'>+	for (i = 0; i &lt; iseq-&gt;arg_opts; i++) {</div><div class='add'>+	    iseq-&gt;arg_opt_table[i] =</div><div class='add'>+		label_get_position((LABEL *)iseq-&gt;arg_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'>+</div><div class='add'>+    list = lobj-&gt;link.next;</div><div class='add'>+    while (list) {</div><div class='add'>+	if (list-&gt;type == ISEQ_ELEMENT_INSN || list-&gt;type == ISEQ_ELEMENT_ADJUST) {</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'>+    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 (list-&gt;type == ISEQ_ELEMENT_INSN || list-&gt;type == ISEQ_ELEMENT_ADJUST) {</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 (list-&gt;type == ISEQ_ELEMENT_INSN || list-&gt;type == ISEQ_ELEMENT_ADJUST) {</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 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 *iobj = (INSN *)list;</div><div class='add'>+  again:</div><div class='add'>+    if (iobj-&gt;insn_id == BIN(jump)) {</div><div class='add'>+	INSN *niobj, *diobj, *piobj;</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'>+	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'>+	    REMOVE_ELEM(&amp;iobj-&gt;link);</div><div class='add'>+	}</div><div class='add'>+	else if (iobj != diobj &amp;&amp; diobj-&gt;insn_id == BIN(jump)) {</div><div class='add'>+	    if (OPERAND_AT(iobj, 0) != OPERAND_AT(diobj, 0)) {</div><div class='add'>+		OPERAND_AT(iobj, 0) = OPERAND_AT(diobj, 0);</div><div class='add'>+		goto again;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (diobj-&gt;insn_id == BIN(leave)) {</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'>+	     *  ...</div><div class='add'>+	     * LABEL:</div><div class='add'>+	     *  leave</div><div class='add'>+	     */</div><div class='add'>+	    INSN *eiobj = new_insn_core(iseq, iobj-&gt;line_no, BIN(leave),</div><div class='add'>+					diobj-&gt;operand_size, diobj-&gt;operands);</div><div class='add'>+	    INSN *popiobj = new_insn_core(iseq, iobj-&gt;line_no,</div><div class='add'>+					  BIN(pop), 0, 0);</div><div class='add'>+	    /* replace */</div><div class='add'>+	    REPLACE_ELEM((LINK_ELEMENT *)iobj, (LINK_ELEMENT *)eiobj);</div><div class='add'>+	    INSERT_ELEM_NEXT((LINK_ELEMENT *)eiobj, (LINK_ELEMENT *)popiobj);</div><div class='add'>+	    iobj = popiobj;</div><div class='add'>+	}</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'>+	else if ((piobj = (INSN *)get_prev_insn(iobj)) != 0 &amp;&amp;</div><div class='add'>+		 (piobj-&gt;insn_id == BIN(branchif) ||</div><div class='add'>+		  piobj-&gt;insn_id == BIN(branchunless))) {</div><div class='add'>+	    if (niobj == (INSN *)get_destination_insn(piobj)) {</div><div class='add'>+		piobj-&gt;insn_id = (piobj-&gt;insn_id == BIN(branchif))</div><div class='add'>+		  ? BIN(branchunless) : BIN(branchif);</div><div class='add'>+		OPERAND_AT(piobj, 0) = OPERAND_AT(iobj, 0);</div><div class='add'>+		REMOVE_ELEM(&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 (iobj-&gt;insn_id == BIN(branchif) ||</div><div class='add'>+	iobj-&gt;insn_id == BIN(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'>+	if (nobj-&gt;insn_id == BIN(jump)) {</div><div class='add'>+	    OPERAND_AT(iobj, 0) = OPERAND_AT(nobj, 0);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (do_tailcallopt &amp;&amp; iobj-&gt;insn_id == BIN(leave)) {</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_BIT, ...</div><div class='add'>+	 *  leave # unreachable</div><div class='add'>+	 */</div><div class='add'>+	INSN *piobj = (INSN *)get_prev_insn((INSN *)list);</div><div class='add'>+</div><div class='add'>+	if (piobj-&gt;insn_id == BIN(send) &amp;&amp;</div><div class='add'>+	    piobj-&gt;operands[2] == 0 /* block */</div><div class='add'>+	    ) {</div><div class='add'>+	    piobj-&gt;operands[3] = FIXNUM_OR(piobj-&gt;operands[3], VM_CALL_TAILCALL_BIT);</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'>+    int i, old_opsize = iobj-&gt;operand_size;</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'>+    /* printf("iobj-&gt;operand_size: %d\n", iobj-&gt;operand_size); */</div><div class='add'>+</div><div class='add'>+    if (iobj-&gt;operand_size &gt; old_opsize) {</div><div class='add'>+	iobj-&gt;operands = (VALUE *)compile_data_alloc(iseq, iobj-&gt;operand_size);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;iobj-&gt;operand_size; i++) {</div><div class='add'>+	iobj-&gt;operands[i] = INT2FIX(iseq-&gt;ic_size++);</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 (iobj-&gt;insn_id == BIN(send)) {</div><div class='add'>+	ID mid = SYM2ID(OPERAND_AT(iobj, 0));</div><div class='add'>+	int argc = FIX2INT(OPERAND_AT(iobj, 1));</div><div class='add'>+	VALUE block = OPERAND_AT(iobj, 2);</div><div class='add'>+	VALUE flag = OPERAND_AT(iobj, 3);</div><div class='add'>+</div><div class='add'>+	/* TODO: should be more sophisticated search */</div><div class='add'>+	if (block == 0 &amp;&amp; flag == INT2FIX(0)) {</div><div class='add'>+	    if (argc == 0) {</div><div class='add'>+		if (mid == idLength) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_length));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idSize) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_size));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idSucc) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_succ));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idNot) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_not));</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else if (argc == 1) {</div><div class='add'>+		if (0) {</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idPLUS) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_plus));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idMINUS) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_minus));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idMULT) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_mult));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idDIV) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_div));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idMOD) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_mod));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idEq) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_eq));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idNeq) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_neq));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idLT) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_lt));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idLE) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_le));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idGT) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_gt));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idGE) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_ge));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idLTLT) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_ltlt));</div><div class='add'>+		}</div><div class='add'>+		else if (mid == idAREF) {</div><div class='add'>+		    insn_set_specialized_instruction(iseq, iobj, BIN(opt_aref));</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_optimize(rb_iseq_t *iseq, LINK_ANCHOR *anchor)</div><div class='add'>+{</div><div class='add'>+    LINK_ELEMENT *list;</div><div class='add'>+    const int do_peepholeopt = iseq-&gt;compile_data-&gt;option-&gt;peephole_optimization;</div><div class='add'>+    const int do_tailcallopt = iseq-&gt;compile_data-&gt;option-&gt;tailcall_optimization;</div><div class='add'>+    const int do_si = iseq-&gt;compile_data-&gt;option-&gt;specialized_instruction;</div><div class='add'>+    const int do_ou = iseq-&gt;compile_data-&gt;option-&gt;operands_unification;</div><div class='add'>+    list = FIRST_ELEMENT(anchor);</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	if (list-&gt;type == ISEQ_ELEMENT_INSN) {</div><div class='add'>+	    if (do_peepholeopt) {</div><div class='add'>+		iseq_peephole_optimize(iseq, list, do_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'>+	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;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 *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 (list-&gt;type == ISEQ_ELEMENT_INSN) {</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 (li-&gt;type != ISEQ_ELEMENT_INSN ||</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, 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'>+		dump_disasm_list((LINK_ELEMENT *)iobj);</div><div class='add'>+		dump_disasm_list((LINK_ELEMENT *)lobj);</div><div class='add'>+		printf("\n-- %d, %d\n", lobj-&gt;sc_state, nstate);</div><div class='add'>+		rb_compile_error(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;line_no,</div><div class='add'>+				 "insn_set_sc_state error\n");</div><div class='add'>+		return 0;</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 *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'>+			    REPLACE_ELEM(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'>+			    REMOVE_ELEM(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'>+			    rb_compile_error(RSTRING_PTR(iseq-&gt;filename), iobj-&gt;line_no,</div><div class='add'>+					     "unreachable");</div><div class='add'>+			}</div><div class='add'>+			/* remove useless pop */</div><div class='add'>+			REMOVE_ELEM(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, 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'>+</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+compile_dstr_fragments(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int *cntp)</div><div class='add'>+{</div><div class='add'>+    NODE *list = node-&gt;nd_next;</div><div class='add'>+    VALUE lit = node-&gt;nd_lit;</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'>+	hide_obj(lit);</div><div class='add'>+	cnt++;</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, lit);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (list) {</div><div class='add'>+	COMPILE(ret, "each string", list-&gt;nd_head);</div><div class='add'>+	cnt++;</div><div class='add'>+	list = list-&gt;nd_next;</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 *ret, NODE * node)</div><div class='add'>+{</div><div class='add'>+    int cnt;</div><div class='add'>+    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 *ret, NODE * node)</div><div class='add'>+{</div><div class='add'>+    int cnt;</div><div class='add'>+    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_branch_condition(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * cond,</div><div class='add'>+			 LABEL *then_label, LABEL *else_label)</div><div class='add'>+{</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'>+	    compile_branch_condition(iseq, ret, cond-&gt;nd_1st, label,</div><div class='add'>+				     else_label);</div><div class='add'>+	    ADD_LABEL(ret, label);</div><div class='add'>+	    compile_branch_condition(iseq, ret, cond-&gt;nd_2nd, then_label,</div><div class='add'>+				     else_label);</div><div class='add'>+	    break;</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'>+	    compile_branch_condition(iseq, ret, cond-&gt;nd_1st, then_label,</div><div class='add'>+				     label);</div><div class='add'>+	    ADD_LABEL(ret, label);</div><div class='add'>+	    compile_branch_condition(iseq, ret, cond-&gt;nd_2nd, then_label,</div><div class='add'>+				     else_label);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+      case NODE_LIT:		/* NODE_LIT is always not true */</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+      case NODE_STR:</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'>+      default:</div><div class='add'>+	COMPILE(ret, "branch condition", cond);</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_(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE* node_root,</div><div class='add'>+	       VALUE opt_p, int poped)</div><div class='add'>+{</div><div class='add'>+    NODE *node = node_root;</div><div class='add'>+    int len = (int)node-&gt;nd_alen, line = (int)nd_line(node), i=0;</div><div class='add'>+    DECL_ANCHOR(anchor);</div><div class='add'>+</div><div class='add'>+    INIT_ANCHOR(anchor);</div><div class='add'>+    if (nd_type(node) != NODE_ZARRAY) {</div><div class='add'>+	while (node) {</div><div class='add'>+	    if (nd_type(node) != NODE_ARRAY) {</div><div class='add'>+		rb_bug("compile_array: This node is not NODE_ARRAY, but %s",</div><div class='add'>+		       ruby_node_name(nd_type(node)));</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    i++;</div><div class='add'>+	    if (opt_p &amp;&amp; nd_type(node-&gt;nd_head) != NODE_LIT) {</div><div class='add'>+		opt_p = Qfalse;</div><div class='add'>+	    }</div><div class='add'>+	    COMPILE_(anchor, "array element", node-&gt;nd_head, poped);</div><div class='add'>+	    node = node-&gt;nd_next;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (len != i) {</div><div class='add'>+	if (0) {</div><div class='add'>+	    rb_bug("node error: compile_array (%d: %d-%d)",</div><div class='add'>+		   (int)nd_line(node_root), len, i);</div><div class='add'>+	}</div><div class='add'>+	len = i;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (opt_p == Qtrue) {</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    VALUE ary = rb_ary_tmp_new(len);</div><div class='add'>+	    node = node_root;</div><div class='add'>+	    while (node) {</div><div class='add'>+		rb_ary_push(ary, node-&gt;nd_head-&gt;nd_lit);</div><div class='add'>+		node = node-&gt;nd_next;</div><div class='add'>+	    }</div><div class='add'>+	    OBJ_FREEZE(ary);</div><div class='add'>+	    iseq_add_mark_object_compile_time(iseq, ary);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node_root), duparray, ary);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN1(anchor, line, newarray, INT2FIX(len));</div><div class='add'>+	}</div><div class='add'>+	APPEND_LIST(ret, anchor);</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'>+compile_array(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE* node_root, VALUE opt_p)</div><div class='add'>+{</div><div class='add'>+    return compile_array_(iseq, ret, node_root, opt_p, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+case_when_optimizable_literal(NODE * 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 (TYPE(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_STR:</div><div class='add'>+	return node-&gt;nd_lit;</div><div class='add'>+    }</div><div class='add'>+    return Qfalse;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+when_vals(rb_iseq_t *iseq, LINK_ANCHOR *cond_seq, NODE *vals, LABEL *l1, VALUE special_literals)</div><div class='add'>+{</div><div class='add'>+    while (vals) {</div><div class='add'>+	VALUE lit;</div><div class='add'>+	NODE* val;</div><div class='add'>+</div><div class='add'>+	val = vals-&gt;nd_head;</div><div class='add'>+</div><div class='add'>+	if (special_literals &amp;&amp;</div><div class='add'>+	    (lit = case_when_optimizable_literal(val)) != Qfalse) {</div><div class='add'>+	    rb_ary_push(special_literals, lit);</div><div class='add'>+	    rb_ary_push(special_literals, (VALUE)(l1) | 1);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    special_literals = Qfalse;</div><div class='add'>+	}</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'>+	    OBJ_FREEZE(val-&gt;nd_lit);</div><div class='add'>+	    ADD_INSN1(cond_seq, nd_line(val), putobject, val-&gt;nd_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'>+	ADD_INSN1(cond_seq, nd_line(val), topn, INT2FIX(1));</div><div class='add'>+	ADD_SEND(cond_seq, nd_line(val), ID2SYM(idEqq), INT2FIX(1));</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 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 *ret, NODE *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'>+	VALUE dupidx;</div><div class='add'>+</div><div class='add'>+	COMPILE_POPED(ret, "masgn lhs (NODE_ATTRASGN)", node);</div><div class='add'>+	POP_ELEMENT(ret);        /* pop pop insn */</div><div class='add'>+	iobj = (INSN *)POP_ELEMENT(ret); /* pop send insn */</div><div class='add'>+</div><div class='add'>+	dupidx = iobj-&gt;operands[1];</div><div class='add'>+	dupidx = FIXNUM_INC(dupidx, 1);</div><div class='add'>+	iobj-&gt;operands[1] = dupidx;</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), topn, dupidx);</div><div class='add'>+	ADD_ELEM(ret, (LINK_ELEMENT *)iobj);</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);	/* result */</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);	/* rhs    */</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'>+	COMPILE_POPED(anchor, "nest masgn lhs", node);</div><div class='add'>+	REMOVE_ELEM(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'>+	COMPILE_POPED(anchor, "masgn lhs", node);</div><div class='add'>+	REMOVE_ELEM(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 void</div><div class='add'>+compile_massign_opt_lhs(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE *lhsn)</div><div class='add'>+{</div><div class='add'>+    if (lhsn) {</div><div class='add'>+	compile_massign_opt_lhs(iseq, ret, lhsn-&gt;nd_next);</div><div class='add'>+	compile_massign_lhs(iseq, ret, lhsn-&gt;nd_head);</div><div class='add'>+    }</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 *ret,</div><div class='add'>+		    NODE *rhsn, 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'>+    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'>+	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_IASGN2:</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_POPED(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 int</div><div class='add'>+compile_massign(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE *node, int poped)</div><div class='add'>+{</div><div class='add'>+    NODE *rhsn = node-&gt;nd_value;</div><div class='add'>+    NODE *splatn = node-&gt;nd_args;</div><div class='add'>+    NODE *lhsn = node-&gt;nd_head;</div><div class='add'>+    int lhs_splat = (splatn &amp;&amp; (VALUE)splatn != (VALUE)-1) ? 1 : 0;</div><div class='add'>+</div><div class='add'>+    if (!poped || splatn || !compile_massign_opt(iseq, ret, rhsn, lhsn)) {</div><div class='add'>+	int llen = 0;</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'>+	    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 (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN2(ret, nd_line(node), expandarray,</div><div class='add'>+		  INT2FIX(llen), INT2FIX(lhs_splat));</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'>+		NODE *postn = splatn-&gt;nd_2nd;</div><div class='add'>+		NODE *restn = splatn-&gt;nd_1st;</div><div class='add'>+		int num = (int)postn-&gt;nd_alen;</div><div class='add'>+		int flag = 0x02 | (((VALUE)restn == (VALUE)-1) ? 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 ((VALUE)restn != (VALUE)-1) {</div><div class='add'>+		    compile_massign_lhs(iseq, ret, restn);</div><div class='add'>+		}</div><div class='add'>+		while (postn) {</div><div class='add'>+		    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'>+		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_colon2(rb_iseq_t *iseq, NODE * node,</div><div class='add'>+	       LINK_ANCHOR *pref, LINK_ANCHOR *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_colon2 - 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_colon2 - 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'>+	compile_colon2(iseq, node-&gt;nd_head, pref, body);</div><div class='add'>+	debugi("compile_colon2 - 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'>+	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 VALUE</div><div class='add'>+compile_cpath(LINK_ANCHOR *ret, rb_iseq_t *iseq, 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 Qfalse;</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 Qfalse;</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 Qtrue;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define defined_expr defined_expr0</div><div class='add'>+static int</div><div class='add'>+defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *ret,</div><div class='add'>+	     NODE *node, LABEL **lfinish, VALUE needstr)</div><div class='add'>+{</div><div class='add'>+    const char *estr = 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'>+	estr = "nil";</div><div class='add'>+	break;</div><div class='add'>+      case NODE_SELF:</div><div class='add'>+	estr = "self";</div><div class='add'>+	break;</div><div class='add'>+      case NODE_TRUE:</div><div class='add'>+	estr = "true";</div><div class='add'>+	break;</div><div class='add'>+      case NODE_FALSE:</div><div class='add'>+	estr = "false";</div><div class='add'>+	break;</div><div class='add'>+</div><div class='add'>+      case NODE_ARRAY:{</div><div class='add'>+	NODE *vals = node;</div><div class='add'>+</div><div class='add'>+	do {</div><div class='add'>+	    defined_expr(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'>+	estr = "expression";</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'>+	estr = "local-variable";</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_expr(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'>+</div><div class='add'>+	if (rb_is_const_id(node-&gt;nd_mid)) {</div><div class='add'>+	    COMPILE(ret, "defined/colon2#nd_head", node-&gt;nd_head);</div><div class='add'>+	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_CONST),</div><div class='add'>+		      ID2SYM(node-&gt;nd_mid), needstr);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(ret, "defined/colon2#nd_head", node-&gt;nd_head);</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'>+	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_VCALL:</div><div class='add'>+      case NODE_FCALL:</div><div class='add'>+      case NODE_ATTRASGN:{</div><div class='add'>+	int self = TRUE;</div><div class='add'>+</div><div class='add'>+	switch (type) {</div><div class='add'>+	  case NODE_ATTRASGN:</div><div class='add'>+	    if (node-&gt;nd_recv == (NODE *)1) break;</div><div class='add'>+	  case NODE_CALL:</div><div class='add'>+	    self = FALSE;</div><div class='add'>+	    break;</div><div class='add'>+	  default:</div><div class='add'>+	    /* through */;</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'>+	if (node-&gt;nd_args) {</div><div class='add'>+	    defined_expr(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 (!self) {</div><div class='add'>+	    defined_expr(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_CVDECL:</div><div class='add'>+      case NODE_CVASGN:</div><div class='add'>+	estr = "assignment";</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (estr != 0) {</div><div class='add'>+	if (needstr != Qfalse) {</div><div class='add'>+	    VALUE str = rb_str_new2(estr);</div><div class='add'>+	    hide_obj(str);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), putstring, str);</div><div class='add'>+	    iseq_add_mark_object_compile_time(iseq, 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'>+#undef defined_expr</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+defined_expr(rb_iseq_t *iseq, LINK_ANCHOR *ret,</div><div class='add'>+	     NODE *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'>+	VALUE rescue = NEW_CHILD_ISEQVAL(NEW_NIL(),</div><div class='add'>+					 rb_str_concat(rb_str_new2</div><div class='add'>+						       ("defined guard in "),</div><div class='add'>+						       iseq-&gt;name),</div><div class='add'>+					 ISEQ_TYPE_DEFINED_GUARD, 0);</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'>+#define BUFSIZE 0x100</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+make_name_for_block(rb_iseq_t *iseq)</div><div class='add'>+{</div><div class='add'>+    int level = 1;</div><div class='add'>+    rb_iseq_t *ip = iseq;</div><div class='add'>+</div><div class='add'>+    if (iseq-&gt;parent_iseq != 0) {</div><div class='add'>+	while (ip-&gt;local_iseq != ip) {</div><div class='add'>+	    if (ip-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		level++;</div><div class='add'>+	    }</div><div class='add'>+	    ip = ip-&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 %s", RSTRING_PTR(ip-&gt;name));</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	return rb_sprintf("block (%d levels) in %s", level, RSTRING_PTR(ip-&gt;name));</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, NODE *node)</div><div class='add'>+{</div><div class='add'>+    enl-&gt;ensure_node = node;</div><div class='add'>+    enl-&gt;prev = iseq-&gt;compile_data-&gt;ensure_node_stack;	/* prev */</div><div class='add'>+    enl-&gt;erange = er;</div><div class='add'>+    iseq-&gt;compile_data-&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 *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-&gt;compile_data-&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 != 0) {</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-&gt;compile_data-&gt;ensure_node_stack = enlp-&gt;prev;</div><div class='add'>+	    ADD_LABEL(ensure_part, lstart);</div><div class='add'>+	    COMPILE_POPED(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-&gt;compile_data-&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 *args, NODE *argn, VALUE *flag)</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_BIT;</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'>+	    argc = INT2FIX(1);</div><div class='add'>+	    nsplat++;</div><div class='add'>+	    *flag |= VM_CALL_ARGS_SPLAT_BIT;</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 (next_is_array &amp;&amp; nsplat == 0) {</div><div class='add'>+		/* none */</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		if (nd_type(argn) == NODE_ARGSCAT) {</div><div class='add'>+		    ADD_INSN1(tmp, nd_line(argn), splatarray, 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'>+	    }</div><div class='add'>+	    INSERT_LIST(args_splat, tmp);</div><div class='add'>+	    nsplat++;</div><div class='add'>+	    *flag |= VM_CALL_ARGS_SPLAT_BIT;</div><div class='add'>+</div><div class='add'>+	    if (next_is_array) {</div><div class='add'>+		argc = INT2FIX(compile_array(iseq, args, argn-&gt;nd_head, Qfalse) + 1);</div><div class='add'>+		POP_ELEMENT(args);</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'>+	    argc = INT2FIX(compile_array(iseq, args, argn, Qfalse));</div><div class='add'>+	    POP_ELEMENT(args);</div><div class='add'>+	    break;</div><div class='add'>+	  }</div><div class='add'>+	  default: {</div><div class='add'>+	    rb_bug("setup_arg: unknown node: %s\n", ruby_node_name(nd_type(argn)));</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(args), concatarray);</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (!LIST_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_BIT) {</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'>+</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'>+  poped: This node will be poped</div><div class='add'>+ */</div><div class='add'>+static int</div><div class='add'>+iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)</div><div class='add'>+{</div><div class='add'>+    enum node_type type;</div><div class='add'>+</div><div class='add'>+    if (node == 0) {</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    debugs("node: NODE_NIL(implicit)\n");</div><div class='add'>+	    ADD_INSN(ret, iseq-&gt;compile_data-&gt;last_line, putnil);</div><div class='add'>+	}</div><div class='add'>+	return COMPILE_OK;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    iseq-&gt;compile_data-&gt;last_line = (int)nd_line(node);</div><div class='add'>+    debug_node_start(node);</div><div class='add'>+</div><div class='add'>+    type = nd_type(node);</div><div class='add'>+</div><div class='add'>+    if (node-&gt;flags &amp; NODE_FL_NEWLINE) {</div><div class='add'>+	ADD_TRACE(ret, nd_line(node), RUBY_EVENT_LINE);</div><div class='add'>+    }</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'>+	    COMPILE_(ret, "BLOCK body", node-&gt;nd_head,</div><div class='add'>+		     (node-&gt;nd_next == 0 &amp;&amp; poped == 0) ? 0 : 1);</div><div class='add'>+	    node = node-&gt;nd_next;</div><div class='add'>+	}</div><div class='add'>+	if (node) {</div><div class='add'>+	    COMPILE_(ret, "BLOCK next", node-&gt;nd_next, poped);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_IF:{</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'>+</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(nd_line(node));</div><div class='add'>+	else_label = NEW_LABEL(nd_line(node));</div><div class='add'>+	end_label = NEW_LABEL(nd_line(node));</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'>+	COMPILE_(then_seq, "then", node-&gt;nd_body, poped);</div><div class='add'>+	COMPILE_(else_seq, "else", node-&gt;nd_else, poped);</div><div class='add'>+</div><div class='add'>+	ADD_SEQ(ret, cond_seq);</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, then_label);</div><div class='add'>+	ADD_SEQ(ret, then_seq);</div><div class='add'>+	ADD_INSNL(ret, nd_line(node), jump, end_label);</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, else_label);</div><div class='add'>+	ADD_SEQ(ret, else_seq);</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, end_label);</div><div class='add'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CASE:{</div><div class='add'>+	NODE *vals;</div><div class='add'>+	NODE *tempnode = 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'>+	VALUE special_literals = rb_ary_tmp_new(1);</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'>+	if (node-&gt;nd_head == 0) {</div><div class='add'>+	    COMPILE_(ret, "when", node-&gt;nd_body, poped);</div><div class='add'>+	    break;</div><div class='add'>+	}</div><div class='add'>+	COMPILE(head, "case base", node-&gt;nd_head);</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'>+</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'>+	}</div><div class='add'>+</div><div class='add'>+	endlabel = NEW_LABEL(nd_line(node));</div><div class='add'>+	elselabel = NEW_LABEL(nd_line(node));</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(nd_line(node));</div><div class='add'>+	    ADD_LABEL(body_seq, l1);</div><div class='add'>+	    ADD_INSN(body_seq, nd_line(node), pop);</div><div class='add'>+	    COMPILE_(body_seq, "when body", node-&gt;nd_body, poped);</div><div class='add'>+	    ADD_INSNL(body_seq, nd_line(node), 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'>+		    special_literals = when_vals(iseq, cond_seq, vals, l1, special_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'>+		    special_literals = 0;</div><div class='add'>+		    COMPILE(cond_seq, "when/cond splat", vals);</div><div class='add'>+		    ADD_INSN1(cond_seq, nd_line(vals), checkincludearray, Qtrue);</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'>+		    rb_bug("NODE_CASE: unknown node (%s)",</div><div class='add'>+			   ruby_node_name(nd_type(vals)));</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		rb_bug("NODE_CASE: must be NODE_ARRAY, but 0");</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'>+	}</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, nd_line(node), pop);</div><div class='add'>+	    COMPILE_(cond_seq, "else", node, poped);</div><div class='add'>+	    ADD_INSNL(cond_seq, nd_line(node), 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(tempnode), pop);</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(cond_seq, nd_line(tempnode), putnil);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSNL(cond_seq, nd_line(tempnode), jump, endlabel);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (special_literals) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(tempnode), dup);</div><div class='add'>+	    ADD_INSN2(ret, nd_line(tempnode), opt_case_dispatch,</div><div class='add'>+		      special_literals, elselabel);</div><div class='add'>+	    iseq_add_mark_object_compile_time(iseq, special_literals);</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'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_WHEN:{</div><div class='add'>+	NODE *vals;</div><div class='add'>+	NODE *val;</div><div class='add'>+	NODE *orig_node = node;</div><div class='add'>+	LABEL *endlabel;</div><div class='add'>+	DECL_ANCHOR(body_seq);</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'>+	    LABEL *l1 = NEW_LABEL(nd_line(node));</div><div class='add'>+	    ADD_LABEL(body_seq, l1);</div><div class='add'>+	    COMPILE_(body_seq, "when", node-&gt;nd_body, poped);</div><div class='add'>+	    ADD_INSNL(body_seq, nd_line(node), 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'>+		rb_bug("NODE_WHEN: must be NODE_ARRAY, but 0");</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'>+		    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'>+		COMPILE(ret, "when2/cond splat", vals);</div><div class='add'>+		ADD_INSN1(ret, nd_line(vals), checkincludearray, Qfalse);</div><div class='add'>+		ADD_INSN(ret, nd_line(vals), pop);</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'>+		rb_bug("NODE_WHEN: unknown node (%s)",</div><div class='add'>+		       ruby_node_name(nd_type(vals)));</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'>+	COMPILE_(ret, "else", node, poped);</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'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OPT_N:</div><div class='add'>+      case NODE_WHILE:</div><div class='add'>+      case NODE_UNTIL:{</div><div class='add'>+	LABEL *prev_start_label = iseq-&gt;compile_data-&gt;start_label;</div><div class='add'>+	LABEL *prev_end_label = iseq-&gt;compile_data-&gt;end_label;</div><div class='add'>+	LABEL *prev_redo_label = iseq-&gt;compile_data-&gt;redo_label;</div><div class='add'>+	int prev_loopval_popped = iseq-&gt;compile_data-&gt;loopval_popped;</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-&gt;compile_data-&gt;start_label = NEW_LABEL(nd_line(node));	/* next  */</div><div class='add'>+	LABEL *redo_label = iseq-&gt;compile_data-&gt;redo_label = NEW_LABEL(nd_line(node));	/* redo  */</div><div class='add'>+	LABEL *break_label = iseq-&gt;compile_data-&gt;end_label = NEW_LABEL(nd_line(node));	/* break */</div><div class='add'>+	LABEL *end_label = NEW_LABEL(nd_line(node));</div><div class='add'>+</div><div class='add'>+	LABEL *next_catch_label = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *tmp_label = NULL;</div><div class='add'>+</div><div class='add'>+	iseq-&gt;compile_data-&gt;loopval_popped = 0;</div><div class='add'>+	push_ensure_entry(iseq, &amp;enl, 0, 0);</div><div class='add'>+</div><div class='add'>+	if (type == NODE_OPT_N || node-&gt;nd_state == 1) {</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, next_label);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    tmp_label = NEW_LABEL(nd_line(node));</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, tmp_label);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	ADD_LABEL(ret, next_catch_label);</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	ADD_INSNL(ret, nd_line(node), 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'>+	COMPILE_POPED(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 if (type == NODE_UNTIL) {</div><div class='add'>+	    /* untile */</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'>+	else {</div><div class='add'>+	    ADD_CALL_RECEIVER(ret, nd_line(node));</div><div class='add'>+	    ADD_CALL(ret, nd_line(node), ID2SYM(idGets), INT2FIX(0));</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchif, redo_label);</div><div class='add'>+	    /* opt_n */</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, end_label);</div><div class='add'>+</div><div class='add'>+	if (node-&gt;nd_state == Qundef) {</div><div class='add'>+	    /* ADD_INSN(ret, nd_line(node), putundef); */</div><div class='add'>+	    rb_bug("unsupported: putundef");</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_CATCH_ENTRY(CATCH_TYPE_BREAK, redo_label, break_label,</div><div class='add'>+			0, break_label);</div><div class='add'>+	ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, redo_label, break_label, 0,</div><div class='add'>+			next_catch_label);</div><div class='add'>+	ADD_CATCH_ENTRY(CATCH_TYPE_REDO, redo_label, break_label, 0,</div><div class='add'>+			iseq-&gt;compile_data-&gt;redo_label);</div><div class='add'>+</div><div class='add'>+	iseq-&gt;compile_data-&gt;start_label = prev_start_label;</div><div class='add'>+	iseq-&gt;compile_data-&gt;end_label = prev_end_label;</div><div class='add'>+	iseq-&gt;compile_data-&gt;redo_label = prev_redo_label;</div><div class='add'>+	iseq-&gt;compile_data-&gt;loopval_popped = prev_loopval_popped;</div><div class='add'>+	iseq-&gt;compile_data-&gt;ensure_node_stack = iseq-&gt;compile_data-&gt;ensure_node_stack-&gt;prev;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ITER:</div><div class='add'>+      case NODE_FOR:{</div><div class='add'>+	VALUE prevblock = iseq-&gt;compile_data-&gt;current_block;</div><div class='add'>+	LABEL *retry_label = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *retry_end_l = NEW_LABEL(nd_line(node));</div><div class='add'>+	ID mid = 0;</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'>+	    COMPILE(ret, "iter caller (for)", node-&gt;nd_iter);</div><div class='add'>+</div><div class='add'>+	    iseq-&gt;compile_data-&gt;current_block =</div><div class='add'>+		NEW_CHILD_ISEQVAL(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='add'>+				  ISEQ_TYPE_BLOCK, nd_line(node));</div><div class='add'>+</div><div class='add'>+	    mid = idEach;</div><div class='add'>+	    ADD_SEND_R(ret, nd_line(node), ID2SYM(idEach), INT2FIX(0),</div><div class='add'>+		       iseq-&gt;compile_data-&gt;current_block, INT2FIX(0));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    iseq-&gt;compile_data-&gt;current_block =</div><div class='add'>+		NEW_CHILD_ISEQVAL(node-&gt;nd_body, make_name_for_block(iseq),</div><div class='add'>+				  ISEQ_TYPE_BLOCK, nd_line(node));</div><div class='add'>+	    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 (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	iseq-&gt;compile_data-&gt;current_block = prevblock;</div><div class='add'>+</div><div class='add'>+	ADD_CATCH_ENTRY(CATCH_TYPE_BREAK, retry_label, retry_end_l, 0, retry_end_l);</div><div class='add'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_BREAK:{</div><div class='add'>+	unsigned long level = 0;</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;compile_data-&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, nd_line(node), iseq-&gt;compile_data-&gt;redo_label);</div><div class='add'>+	    COMPILE_(ret, "break val (while/until)", node-&gt;nd_stts, iseq-&gt;compile_data-&gt;loopval_popped);</div><div class='add'>+	    add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, iseq-&gt;compile_data-&gt;end_label);</div><div class='add'>+	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+	  break_by_insn:</div><div class='add'>+	    /* escape from block */</div><div class='add'>+	    COMPILE(ret, "break val (block)", node-&gt;nd_stts);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), throw, INT2FIX(level | 0x02) /* TAG_BREAK */ );</div><div class='add'>+	    if (poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&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'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_iseq_t *ip = iseq-&gt;parent_iseq;</div><div class='add'>+	    while (ip) {</div><div class='add'>+		if (!ip-&gt;compile_data) {</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 (ip-&gt;compile_data-&gt;redo_label != 0) {</div><div class='add'>+		    level = 0x8000;</div><div class='add'>+		    if (ip-&gt;compile_data-&gt;loopval_popped == 0) {</div><div class='add'>+			/* need value */</div><div class='add'>+			level |= 0x4000;</div><div class='add'>+		    }</div><div class='add'>+		    goto break_by_insn;</div><div class='add'>+		}</div><div class='add'>+		else if (ip-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		    level &lt;&lt;= 16;</div><div class='add'>+		    goto break_by_insn;</div><div class='add'>+		}</div><div class='add'>+		else if (ip-&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;parent_iseq;</div><div class='add'>+	    }</div><div class='add'>+	    COMPILE_ERROR((ERROR_ARGS "Invalid break"));</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_NEXT:{</div><div class='add'>+	unsigned long level = 0;</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;compile_data-&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'>+	    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, nd_line(node), iseq-&gt;compile_data-&gt;redo_label);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, iseq-&gt;compile_data-&gt;start_label);</div><div class='add'>+	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;compile_data-&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, nd_line(node), iseq-&gt;compile_data-&gt;start_label);</div><div class='add'>+	    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, nd_line(node), jump, iseq-&gt;compile_data-&gt;end_label);</div><div class='add'>+	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&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'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_iseq_t *ip;</div><div class='add'>+	    ip = iseq;</div><div class='add'>+	    while (ip) {</div><div class='add'>+		if (!ip-&gt;compile_data) {</div><div class='add'>+		    ip = 0;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		level = 0x8000 | 0x4000;</div><div class='add'>+		if (ip-&gt;compile_data-&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;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		else if (ip-&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;parent_iseq;</div><div class='add'>+	    }</div><div class='add'>+	    if (ip != 0) {</div><div class='add'>+		COMPILE(ret, "next val", node-&gt;nd_stts);</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), throw, INT2FIX(level | 0x03) /* TAG_NEXT */ );</div><div class='add'>+</div><div class='add'>+		if (poped) {</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), 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'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_REDO:{</div><div class='add'>+	if (iseq-&gt;compile_data-&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, nd_line(node), iseq-&gt;compile_data-&gt;redo_label);</div><div class='add'>+	    add_ensure_iseq(ret, iseq, 0);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, iseq-&gt;compile_data-&gt;redo_label);</div><div class='add'>+	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&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'>+	}</div><div class='add'>+	else if (iseq-&gt;compile_data-&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, nd_line(node), iseq-&gt;compile_data-&gt;start_label);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, iseq-&gt;compile_data-&gt;start_label);</div><div class='add'>+	    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_iseq_t *ip;</div><div class='add'>+	    unsigned long level;</div><div class='add'>+	    level = 0x8000 | 0x4000;</div><div class='add'>+	    ip = iseq;</div><div class='add'>+	    while (ip) {</div><div class='add'>+		if (!ip-&gt;compile_data) {</div><div class='add'>+		    ip = 0;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		if (ip-&gt;compile_data-&gt;redo_label != 0) {</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		else if (ip-&gt;type == ISEQ_TYPE_BLOCK) {</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		else if (ip-&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;parent_iseq;</div><div class='add'>+	    }</div><div class='add'>+	    if (ip != 0) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), throw, INT2FIX(level | 0x05) /* TAG_REDO */ );</div><div class='add'>+</div><div class='add'>+		if (poped) {</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), 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'>+	    }</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_RETRY:{</div><div class='add'>+	if (iseq-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), throw, INT2FIX(0x04) /* TAG_RETRY */ );</div><div class='add'>+</div><div class='add'>+	    if (poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), 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'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_BEGIN:{</div><div class='add'>+	COMPILE_(ret, "NODE_BEGIN", node-&gt;nd_body, poped);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_RESCUE:{</div><div class='add'>+	LABEL *lstart = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *lend = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *lcont = NEW_LABEL(nd_line(node));</div><div class='add'>+	VALUE rescue = NEW_CHILD_ISEQVAL(</div><div class='add'>+	    node-&gt;nd_resq,</div><div class='add'>+	    rb_str_concat(rb_str_new2("rescue in "), iseq-&gt;name),</div><div class='add'>+	    ISEQ_TYPE_RESCUE, nd_line(node));</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, lstart);</div><div class='add'>+	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, nd_line(node), pop);</div><div class='add'>+	    COMPILE(ret, "rescue else", node-&gt;nd_else);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN(ret, nd_line(node), nop);</div><div class='add'>+	ADD_LABEL(ret, lcont);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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, 0, lstart);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_RESBODY:{</div><div class='add'>+	NODE *resq = node;</div><div class='add'>+	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(nd_line(node));</div><div class='add'>+	    label_hit = NEW_LABEL(nd_line(node));</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'>+			COMPILE(ret, "rescue arg", narg-&gt;nd_head);</div><div class='add'>+			ADD_INSN2(ret, nd_line(node), getdynamic, INT2FIX(2), INT2FIX(0));</div><div class='add'>+			ADD_SEND(ret, nd_line(node), ID2SYM(idEqq), INT2FIX(1));</div><div class='add'>+			ADD_INSNL(ret, nd_line(node), 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_INSN2(ret, nd_line(node), getdynamic, INT2FIX(2), INT2FIX(0));</div><div class='add'>+		    COMPILE(ret, "rescue/cond splat", narg);</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), checkincludearray, Qtrue);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		    ADD_INSNL(ret, nd_line(node), branchif, label_hit);</div><div class='add'>+		    break;</div><div class='add'>+		  default:</div><div class='add'>+		    rb_bug("NODE_RESBODY: unknown node (%s)",</div><div class='add'>+			   ruby_node_name(nd_type(narg)));</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), putobject,</div><div class='add'>+			  rb_eStandardError);</div><div class='add'>+		ADD_INSN2(ret, nd_line(node), getdynamic, INT2FIX(2), INT2FIX(0));</div><div class='add'>+		ADD_SEND(ret, nd_line(node), ID2SYM(idEqq), INT2FIX(1));</div><div class='add'>+		ADD_INSNL(ret, nd_line(node), branchif, label_hit);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, label_miss);</div><div class='add'>+	    ADD_LABEL(ret, label_hit);</div><div class='add'>+	    COMPILE(ret, "resbody body", resq-&gt;nd_body);</div><div class='add'>+	    if (iseq-&gt;compile_data-&gt;option-&gt;tailcall_optimization) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), nop);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ENSURE:{</div><div class='add'>+	DECL_ANCHOR(ensr);</div><div class='add'>+	VALUE ensure = NEW_CHILD_ISEQVAL(node-&gt;nd_ensr,</div><div class='add'>+					 rb_str_concat(rb_str_new2</div><div class='add'>+						       ("ensure in "),</div><div class='add'>+						       iseq-&gt;name),</div><div class='add'>+					 ISEQ_TYPE_ENSURE, nd_line(node));</div><div class='add'>+	LABEL *lstart = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *lend = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *lcont = NEW_LABEL(nd_line(node));</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'>+	COMPILE_POPED(ensr, "ensure ensr", node-&gt;nd_ensr);</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'>+	COMPILE_(ret, "ensure head", node-&gt;nd_head, poped);</div><div class='add'>+	ADD_LABEL(ret, lend);</div><div class='add'>+	if (ensr-&gt;anchor.next == 0) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), nop);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_SEQ(ret, ensr);</div><div class='add'>+	}</div><div class='add'>+	ADD_LABEL(ret, lcont);</div><div class='add'>+</div><div class='add'>+	erange = iseq-&gt;compile_data-&gt;ensure_node_stack-&gt;erange;</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'>+	iseq-&gt;compile_data-&gt;ensure_node_stack = enl.prev;</div><div class='add'>+	break;</div><div class='add'>+      }</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(nd_line(node));</div><div class='add'>+	COMPILE(ret, "nd_1st", node-&gt;nd_1st);</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+	if (type == NODE_AND) {</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchunless, end_label);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchif, end_label);</div><div class='add'>+	}</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	COMPILE_(ret, "nd_2nd", node-&gt;nd_2nd, poped);</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, poped);</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;local_iseq-&gt;local_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'>+	COMPILE(ret, "rvalue", node-&gt;nd_value);</div><div class='add'>+</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), setlocal, INT2FIX(idx));</div><div class='add'>+</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'>+	COMPILE(ret, "dvalue", node-&gt;nd_value);</div><div class='add'>+	debugp_param("dassn id", rb_str_new2(rb_id2name(node-&gt;nd_vid) ? rb_id2name(node-&gt;nd_vid) : "*"));</div><div class='add'>+</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	idx = get_dyna_var_idx(iseq, node-&gt;nd_vid, &amp;lv, &amp;ls);</div><div class='add'>+</div><div class='add'>+	if (idx &lt; 0) {</div><div class='add'>+	    rb_bug("NODE_DASGN(_CURR): unknown id (%s)", rb_id2name(node-&gt;nd_vid));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN2(ret, nd_line(node), setdynamic,</div><div class='add'>+		  INT2FIX(ls - idx), INT2FIX(lv));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_GASGN:{</div><div class='add'>+	COMPILE(ret, "lvalue", node-&gt;nd_value);</div><div class='add'>+</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), 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'>+      case NODE_IASGN2:{</div><div class='add'>+	COMPILE(ret, "lvalue", node-&gt;nd_value);</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN2(ret, nd_line(node), setinstancevariable,</div><div class='add'>+		  ID2SYM(node-&gt;nd_vid), INT2FIX(iseq-&gt;ic_size++));</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_CDECL:{</div><div class='add'>+	COMPILE(ret, "lvalue", node-&gt;nd_value);</div><div class='add'>+</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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, nd_line(node), putspecialobject,</div><div class='add'>+		      INT2FIX(VM_SPECIAL_OBJECT_CONST_BASE));</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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, nd_line(node), 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'>+	COMPILE(ret, "cvasgn val", node-&gt;nd_value);</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), 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'>+	VALUE flag = 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 (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	}</div><div class='add'>+	COMPILE(ret, "NODE_OP_ASGN1 recv", node-&gt;nd_recv);</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);</div><div class='add'>+	    ADD_SEQ(ret, args);</div><div class='add'>+	}</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), dupn, FIXNUM_INC(argc, 1 + boff));</div><div class='add'>+	ADD_SEND_R(ret, nd_line(node), ID2SYM(idAREF), argc, Qfalse, LONG2FIX(flag));</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(nd_line(node));</div><div class='add'>+	    LABEL *lfin = NEW_LABEL(nd_line(node));</div><div class='add'>+</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	    if (id == 0) {</div><div class='add'>+		/* or */</div><div class='add'>+		ADD_INSNL(ret, nd_line(node), branchif, label);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		/* and */</div><div class='add'>+		ADD_INSNL(ret, nd_line(node), branchunless, label);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+</div><div class='add'>+	    COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body);</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    }</div><div class='add'>+	    if (flag &amp; VM_CALL_ARGS_SPLAT_BIT) {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), newarray, INT2FIX(1));</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), dupn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN(ret, nd_line(node), concatarray);</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), setn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),</div><div class='add'>+			   argc, Qfalse, LONG2FIX(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, nd_line(node), swap);</div><div class='add'>+		ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),</div><div class='add'>+			   FIXNUM_INC(argc, 1), Qfalse, LONG2FIX(flag));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, lfin);</div><div class='add'>+	    ADD_LABEL(ret, label);</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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'>+	    COMPILE(ret, "NODE_OP_ASGN1 args-&gt;body: ", node-&gt;nd_args-&gt;nd_body);</div><div class='add'>+	    ADD_SEND(ret, nd_line(node), ID2SYM(id), INT2FIX(1));</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), setn, FIXNUM_INC(argc, 2+boff));</div><div class='add'>+	    }</div><div class='add'>+	    if (flag &amp; VM_CALL_ARGS_SPLAT_BIT) {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), newarray, INT2FIX(1));</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), dupn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN(ret, nd_line(node), concatarray);</div><div class='add'>+		if (boff &gt; 0) {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), setn, INT2FIX(3));</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		}</div><div class='add'>+		ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),</div><div class='add'>+			   argc, Qfalse, LONG2FIX(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, nd_line(node), swap);</div><div class='add'>+		ADD_SEND_R(ret, nd_line(node), ID2SYM(idASET),</div><div class='add'>+			   FIXNUM_INC(argc, 1), Qfalse, LONG2FIX(flag));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	LABEL *lfin = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *lcfin = NEW_LABEL(nd_line(node));</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'>+	COMPILE(ret, "NODE_OP_ASGN2#recv", node-&gt;nd_recv);</div><div class='add'>+	ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	ADD_SEND(ret, nd_line(node), ID2SYM(node-&gt;nd_next-&gt;nd_vid),</div><div class='add'>+		 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, nd_line(node), dup);</div><div class='add'>+	    if (atype == 0) {</div><div class='add'>+		ADD_INSNL(ret, nd_line(node), branchif, lcfin);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSNL(ret, nd_line(node), branchunless, lcfin);</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), topn, INT2FIX(1));</div><div class='add'>+	    ADD_SEND(ret, nd_line(node), ID2SYM(node-&gt;nd_next-&gt;nd_aid),</div><div class='add'>+		     INT2FIX(1));</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, lfin);</div><div class='add'>+</div><div class='add'>+	    ADD_LABEL(ret, lcfin);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+</div><div class='add'>+	    ADD_LABEL(ret, lfin);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    if (poped) {</div><div class='add'>+		/* we can apply more optimize */</div><div class='add'>+		ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(ret, "NODE_OP_ASGN2 val", node-&gt;nd_value);</div><div class='add'>+	    ADD_SEND(ret, nd_line(node), ID2SYM(node-&gt;nd_next-&gt;nd_mid),</div><div class='add'>+		     INT2FIX(1));</div><div class='add'>+	    if (!poped) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), topn, INT2FIX(1));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_SEND(ret, nd_line(node), ID2SYM(node-&gt;nd_next-&gt;nd_aid),</div><div class='add'>+		     INT2FIX(1));</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</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(nd_line(node));</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(nd_line(node));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchunless, lassign);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    lassign = NEW_LABEL(nd_line(node));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	COMPILE(ret, "NODE_OP_ASGN_AND/OR#nd_head", node-&gt;nd_head);</div><div class='add'>+	ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+</div><div class='add'>+	if (nd_type(node) == NODE_OP_ASGN_AND) {</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchunless, lfin);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), branchif, lfin);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	ADD_LABEL(ret, lassign);</div><div class='add'>+	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 (poped) {</div><div class='add'>+	    /* we can apply more optimize */</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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_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'>+	ID mid = node-&gt;nd_mid;</div><div class='add'>+	VALUE argc;</div><div class='add'>+	VALUE flag = 0;</div><div class='add'>+	VALUE parent_block = iseq-&gt;compile_data-&gt;current_block;</div><div class='add'>+	iseq-&gt;compile_data-&gt;current_block = Qfalse;</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'>+	    if (mid == idBitblt) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), bitblt);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    else if (mid == idAnswer) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), 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-&gt;compile_data-&gt;labels_table;</div><div class='add'>+		ID 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-&gt;compile_data-&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 = SYM2ID(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(nd_line(node));</div><div class='add'>+			label-&gt;position = nd_line(node);</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'>+		}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+		if (mid == goto_id) {</div><div class='add'>+		    ADD_INSNL(ret, nd_line(node), 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) {</div><div class='add'>+	    COMPILE(recv, "recv", node-&gt;nd_recv);</div><div class='add'>+	}</div><div class='add'>+	else if (type == NODE_FCALL || type == NODE_VCALL) {</div><div class='add'>+	    ADD_CALL_RECEIVER(recv, nd_line(node));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* args */</div><div class='add'>+	if (nd_type(node) != NODE_VCALL) {</div><div class='add'>+	    argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag);</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 (nd_type(node)) {</div><div class='add'>+	  case NODE_VCALL:</div><div class='add'>+	    flag |= VM_CALL_VCALL_BIT;</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_BIT;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_SEND_R(ret, nd_line(node), ID2SYM(mid),</div><div class='add'>+		   argc, parent_block, LONG2FIX(flag));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE argc;</div><div class='add'>+	VALUE flag = 0;</div><div class='add'>+	VALUE parent_block = iseq-&gt;compile_data-&gt;current_block;</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(args);</div><div class='add'>+	iseq-&gt;compile_data-&gt;current_block = Qfalse;</div><div class='add'>+	if (nd_type(node) == NODE_SUPER) {</div><div class='add'>+	    argc = setup_args(iseq, args, node-&gt;nd_args, &amp;flag);</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'>+	    rb_iseq_t *liseq = iseq-&gt;local_iseq;</div><div class='add'>+</div><div class='add'>+	    argc = INT2FIX(liseq-&gt;argc);</div><div class='add'>+</div><div class='add'>+	    /* normal arguments */</div><div class='add'>+	    for (i = 0; i &lt; liseq-&gt;argc; i++) {</div><div class='add'>+		int idx = liseq-&gt;local_size - i;</div><div class='add'>+		ADD_INSN1(args, nd_line(node), getlocal, INT2FIX(idx));</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (!liseq-&gt;arg_simple) {</div><div class='add'>+		if (liseq-&gt;arg_opts) {</div><div class='add'>+		    /* optional arguments */</div><div class='add'>+		    int j;</div><div class='add'>+		    for (j = 0; j &lt; liseq-&gt;arg_opts - 1; j++) {</div><div class='add'>+			int idx = liseq-&gt;local_size - (i + j);</div><div class='add'>+			ADD_INSN1(args, nd_line(node), getlocal, INT2FIX(idx));</div><div class='add'>+		    }</div><div class='add'>+		    i += j;</div><div class='add'>+		    argc = INT2FIX(i);</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		if (liseq-&gt;arg_rest != -1) {</div><div class='add'>+		    /* rest argument */</div><div class='add'>+		    int idx = liseq-&gt;local_size - liseq-&gt;arg_rest;</div><div class='add'>+		    ADD_INSN1(args, nd_line(node), getlocal, INT2FIX(idx));</div><div class='add'>+		    argc = INT2FIX(liseq-&gt;arg_rest + 1);</div><div class='add'>+		    flag |= VM_CALL_ARGS_SPLAT_BIT;</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		if (liseq-&gt;arg_post_len) {</div><div class='add'>+		    /* post arguments */</div><div class='add'>+		    int post_len = liseq-&gt;arg_post_len;</div><div class='add'>+		    int post_start = liseq-&gt;arg_post_start;</div><div class='add'>+</div><div class='add'>+		    if (liseq-&gt;arg_rest != -1) {</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;local_size - (post_start + j);</div><div class='add'>+			    ADD_INSN1(args, nd_line(node), getlocal, INT2FIX(idx));</div><div class='add'>+			}</div><div class='add'>+			ADD_INSN1(args, nd_line(node), newarray, INT2FIX(j));</div><div class='add'>+			ADD_INSN (args, nd_line(node), concatarray);</div><div class='add'>+			/* argc is setteled 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;local_size - (post_start + j);</div><div class='add'>+			    ADD_INSN1(args, nd_line(node), getlocal, INT2FIX(idx));</div><div class='add'>+			}</div><div class='add'>+			argc = INT2FIX(post_len + post_start);</div><div class='add'>+		    }</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, nd_line(node), putobject,</div><div class='add'>+		  nd_type(node) == NODE_ZSUPER ? Qfalse : Qtrue);</div><div class='add'>+	ADD_SEQ(ret, args);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), invokesuper,</div><div class='add'>+		  argc, parent_block, LONG2FIX(flag));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	compile_array_(iseq, ret, node, Qtrue, poped);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_ZARRAY:{</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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'>+	NODE *n = node;</div><div class='add'>+	while (n) {</div><div class='add'>+	    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, nd_line(node), newarray, INT2FIX(node-&gt;nd_alen));</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</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'>+	VALUE size = 0;</div><div class='add'>+	int 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'>+	    compile_array(iseq, list, node-&gt;nd_head, Qfalse);</div><div class='add'>+	    size = OPERAND_AT(POP_ELEMENT(list), 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'>+	    size = INT2FIX(0);</div><div class='add'>+	    break;</div><div class='add'>+</div><div class='add'>+	  default:</div><div class='add'>+	    rb_bug("can't make hash with this node: %s", ruby_node_name(type));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), newhash, size);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_RETURN:{</div><div class='add'>+	rb_iseq_t *is = iseq;</div><div class='add'>+</div><div class='add'>+	if (is) {</div><div class='add'>+	    if (is-&gt;type == ISEQ_TYPE_TOP) {</div><div class='add'>+		COMPILE_ERROR((ERROR_ARGS "Invalid return"));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		LABEL *splabel = 0;</div><div class='add'>+</div><div class='add'>+		if (is-&gt;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, nd_line(node), 0);</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		COMPILE(ret, "return nd_stts (return val)", node-&gt;nd_stts);</div><div class='add'>+</div><div class='add'>+		if (is-&gt;type == ISEQ_TYPE_METHOD) {</div><div class='add'>+		    add_ensure_iseq(ret, iseq, 1);</div><div class='add'>+		    ADD_TRACE(ret, nd_line(node), RUBY_EVENT_RETURN);</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), leave);</div><div class='add'>+		    ADD_ADJUST_RESTORE(ret, splabel);</div><div class='add'>+</div><div class='add'>+		    if (!poped) {</div><div class='add'>+			ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), throw, INT2FIX(0x01) /* TAG_RETURN */ );</div><div class='add'>+		    if (poped) {</div><div class='add'>+			ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+		    }</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_YIELD:{</div><div class='add'>+	DECL_ANCHOR(args);</div><div class='add'>+	VALUE argc;</div><div class='add'>+	VALUE flag = 0;</div><div class='add'>+</div><div class='add'>+	INIT_ANCHOR(args);</div><div class='add'>+	if (iseq-&gt;type == ISEQ_TYPE_TOP) {</div><div class='add'>+	    COMPILE_ERROR((ERROR_ARGS "Invalid yield"));</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);</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_INSN2(ret, nd_line(node), invokeblock, argc, LONG2FIX(flag));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ID id = node-&gt;nd_vid;</div><div class='add'>+	    int idx = iseq-&gt;local_iseq-&gt;local_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_INSN1(ret, nd_line(node), getlocal, INT2FIX(idx));</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 (!poped) {</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'>+		rb_bug("unknown dvar (%s)", rb_id2name(node-&gt;nd_vid));</div><div class='add'>+	    }</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), getdynamic, INT2FIX(ls - idx), INT2FIX(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, nd_line(node), getglobal,</div><div class='add'>+		  ((VALUE)node-&gt;nd_entry | 1));</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), getinstancevariable,</div><div class='add'>+		      ID2SYM(node-&gt;nd_vid), INT2FIX(iseq-&gt;ic_size++));</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-&gt;compile_data-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+	    LABEL *lend = NEW_LABEL(nd_line(node));</div><div class='add'>+	    int ic_index = iseq-&gt;ic_size++;</div><div class='add'>+</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), getinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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, nd_line(node), putnil);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), getconstant, ID2SYM(node-&gt;nd_vid));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), 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, nd_line(node), putobject, node-&gt;nd_lit);</div><div class='add'>+	    ADD_INSN2(val, nd_line(node), 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'>+	    COMPILE(recv, "receiver", node-&gt;nd_recv);</div><div class='add'>+	    COMPILE(val, "value", node-&gt;nd_value);</div><div class='add'>+	    break;</div><div class='add'>+	  case NODE_MATCH3:</div><div class='add'>+	    COMPILE(recv, "receiver", node-&gt;nd_value);</div><div class='add'>+	    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-&gt;compile_data-&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, nd_line(node), 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_INSN(ret, nd_line(node), opt_regexpmatch2);</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, nd_line(node), ID2SYM(idEqTilde), INT2FIX(1));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    OBJ_FREEZE(node-&gt;nd_lit);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), putstring, node-&gt;nd_lit);</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 (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_XSTR:{</div><div class='add'>+	OBJ_FREEZE(node-&gt;nd_lit);</div><div class='add'>+	ADD_CALL_RECEIVER(ret, nd_line(node));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, node-&gt;nd_lit);</div><div class='add'>+	ADD_CALL(ret, nd_line(node), ID2SYM(idBackquote), INT2FIX(1));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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, nd_line(node));</div><div class='add'>+	compile_dstr(iseq, ret, node);</div><div class='add'>+	ADD_CALL(ret, nd_line(node), ID2SYM(idBackquote), INT2FIX(1));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	COMPILE(ret, "nd_body", node-&gt;nd_body);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), tostring);</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 (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DREGX_ONCE:{</div><div class='add'>+	/* TODO: once? */</div><div class='add'>+	LABEL *lend = NEW_LABEL(nd_line(node));</div><div class='add'>+	int ic_index = iseq-&gt;ic_size++;</div><div class='add'>+</div><div class='add'>+	ADD_INSN2(ret, nd_line(node), onceinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+</div><div class='add'>+	compile_dregx(iseq, ret, node);</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), setinlinecache, INT2FIX(ic_index));</div><div class='add'>+	ADD_LABEL(ret, lend);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (poped) {</div><div class='add'>+	    COMPILE(ret, "argscat head", node-&gt;nd_head);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), splatarray, Qfalse);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    COMPILE(ret, "argscat body", node-&gt;nd_body);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), splatarray, Qfalse);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(ret, "argscat head", node-&gt;nd_head);</div><div class='add'>+	    COMPILE(ret, "argscat body", node-&gt;nd_body);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (poped) {</div><div class='add'>+	    COMPILE(ret, "arsgpush head", node-&gt;nd_head);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), splatarray, Qfalse);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    COMPILE_(ret, "argspush body", node-&gt;nd_body, poped);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(ret, "arsgpush head", node-&gt;nd_head);</div><div class='add'>+	    COMPILE_(ret, "argspush body", node-&gt;nd_body, poped);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), newarray, INT2FIX(1));</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	COMPILE(ret, "splat", node-&gt;nd_head);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), splatarray, Qtrue);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE iseqval = NEW_ISEQVAL(node-&gt;nd_defn,</div><div class='add'>+				    rb_str_dup(rb_id2str(node-&gt;nd_mid)),</div><div class='add'>+				    ISEQ_TYPE_METHOD, nd_line(node));</div><div class='add'>+</div><div class='add'>+	debugp_param("defn/iseq", iseqval);</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putiseq, iseqval);</div><div class='add'>+	ADD_SEND (ret, nd_line(node), ID2SYM(id_core_define_method), INT2FIX(3));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	debugp_param("defn", iseqval);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_DEFS:{</div><div class='add'>+	VALUE iseqval = NEW_ISEQVAL(node-&gt;nd_defn,</div><div class='add'>+				    rb_str_dup(rb_id2str(node-&gt;nd_mid)),</div><div class='add'>+				    ISEQ_TYPE_METHOD, nd_line(node));</div><div class='add'>+</div><div class='add'>+	debugp_param("defs/iseq", iseqval);</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	COMPILE(ret, "defs: recv", node-&gt;nd_recv);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putiseq, iseqval);</div><div class='add'>+	ADD_SEND (ret, nd_line(node), ID2SYM(id_core_define_singleton_method), INT2FIX(3));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+	COMPILE(ret, "alias arg1", node-&gt;u1.node);</div><div class='add'>+	COMPILE(ret, "alias arg2", node-&gt;u2.node);</div><div class='add'>+	ADD_SEND(ret, nd_line(node), ID2SYM(id_core_set_method_alias), INT2FIX(3));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, ID2SYM(node-&gt;u1.id));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, ID2SYM(node-&gt;u2.id));</div><div class='add'>+	ADD_SEND(ret, nd_line(node), ID2SYM(id_core_set_variable_alias), INT2FIX(2));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_CBASE));</div><div class='add'>+	COMPILE(ret, "undef arg", node-&gt;u2.node);</div><div class='add'>+	ADD_SEND(ret, nd_line(node), ID2SYM(id_core_undef_method), INT2FIX(2));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE iseqval =</div><div class='add'>+	    NEW_CHILD_ISEQVAL(</div><div class='add'>+		node-&gt;nd_body,</div><div class='add'>+		rb_sprintf("&lt;class:%s&gt;", rb_id2name(node-&gt;nd_cpath-&gt;nd_mid)),</div><div class='add'>+		ISEQ_TYPE_CLASS, nd_line(node));</div><div class='add'>+	VALUE noscope = compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='add'>+	COMPILE(ret, "super", node-&gt;nd_super);</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defineclass,</div><div class='add'>+		  ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), iseqval, INT2FIX(noscope ? 3 : 0));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE iseqval = NEW_CHILD_ISEQVAL(</div><div class='add'>+	    node-&gt;nd_body,</div><div class='add'>+	    rb_sprintf("&lt;module:%s&gt;", rb_id2name(node-&gt;nd_cpath-&gt;nd_mid)),</div><div class='add'>+	    ISEQ_TYPE_CLASS, nd_line(node));</div><div class='add'>+</div><div class='add'>+	VALUE noscope = compile_cpath(ret, iseq, node-&gt;nd_cpath);</div><div class='add'>+	ADD_INSN (ret, nd_line(node), putnil); /* dummy */</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defineclass,</div><div class='add'>+		  ID2SYM(node-&gt;nd_cpath-&gt;nd_mid), iseqval, INT2FIX(noscope ? 5 : 2));</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE iseqval =</div><div class='add'>+	    NEW_ISEQVAL(node-&gt;nd_body, rb_str_new2("singletonclass"),</div><div class='add'>+			ISEQ_TYPE_CLASS, nd_line(node));</div><div class='add'>+</div><div class='add'>+	COMPILE(ret, "sclass#recv", node-&gt;nd_recv);</div><div class='add'>+	ADD_INSN (ret, nd_line(node), putnil);</div><div class='add'>+	CONST_ID(singletonclass, "singletonclass");</div><div class='add'>+	ADD_INSN3(ret, nd_line(node), defineclass,</div><div class='add'>+		  ID2SYM(singletonclass), iseqval, INT2FIX(1));</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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(nd_line(node));</div><div class='add'>+	    int ic_index = iseq-&gt;ic_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'>+	    compile_colon2(iseq, node, pref, body);</div><div class='add'>+	    if (LIST_SIZE_ZERO(pref)) {</div><div class='add'>+		if (iseq-&gt;compile_data-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+		    ADD_INSN2(ret, nd_line(node), getinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), 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-&gt;compile_data-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), 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, nd_line(node));</div><div class='add'>+	    COMPILE(ret, "colon2#nd_head", node-&gt;nd_head);</div><div class='add'>+	    ADD_CALL(ret, nd_line(node), ID2SYM(node-&gt;nd_mid),</div><div class='add'>+		     INT2FIX(1));</div><div class='add'>+	}</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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(nd_line(node));</div><div class='add'>+	int ic_index = iseq-&gt;ic_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-&gt;compile_data-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+	    ADD_INSN2(ret, nd_line(node), getinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, rb_cObject);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), getconstant, ID2SYM(node-&gt;nd_mid));</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;compile_data-&gt;option-&gt;inline_const_cache) {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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 (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE flag = type == NODE_DOT2 ? INT2FIX(0) : INT2FIX(1);</div><div class='add'>+	COMPILE(ret, "min", (NODE *) node-&gt;nd_beg);</div><div class='add'>+	COMPILE(ret, "max", (NODE *) node-&gt;nd_end);</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), newrange, flag);</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(nd_line(node));</div><div class='add'>+	LABEL *lfin = NEW_LABEL(nd_line(node));</div><div class='add'>+	LABEL *ltrue = NEW_LABEL(nd_line(node));</div><div class='add'>+	VALUE key = rb_sprintf("flipflag/%s-%p-%d",</div><div class='add'>+			       RSTRING_PTR(iseq-&gt;name), (void *)iseq,</div><div class='add'>+			       iseq-&gt;compile_data-&gt;flip_cnt++);</div><div class='add'>+</div><div class='add'>+	hide_obj(key);</div><div class='add'>+	iseq_add_mark_object_compile_time(iseq, key);</div><div class='add'>+	ADD_INSN2(ret, nd_line(node), getspecial, key, INT2FIX(0));</div><div class='add'>+	ADD_INSNL(ret, nd_line(node), branchif, lend);</div><div class='add'>+</div><div class='add'>+	/* *flip == 0 */</div><div class='add'>+	COMPILE(ret, "flip2 beg", node-&gt;nd_beg);</div><div class='add'>+	ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	ADD_INSNL(ret, nd_line(node), branchunless, lfin);</div><div class='add'>+	if (nd_type(node) == NODE_FLIP3) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), setspecial, key);</div><div class='add'>+	    ADD_INSNL(ret, nd_line(node), jump, lfin);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), setspecial, key);</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'>+	COMPILE(ret, "flip2 end", node-&gt;nd_end);</div><div class='add'>+	ADD_INSNL(ret, nd_line(node), branchunless, ltrue);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, Qfalse);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), setspecial, key);</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, ltrue);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putobject, Qtrue);</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, lfin);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_SELF:{</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    ADD_INSN1(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    if (iseq-&gt;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+		ADD_INSN2(ret, nd_line(node), getdynamic, INT2FIX(2), INT2FIX(0));</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		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;type == ISEQ_TYPE_RESCUE) {</div><div class='add'>+			break;</div><div class='add'>+		    }</div><div class='add'>+		    ip = ip-&gt;parent_iseq;</div><div class='add'>+		    level++;</div><div class='add'>+		}</div><div class='add'>+		if (ip) {</div><div class='add'>+		    ADD_INSN2(ret, nd_line(node), getdynamic, INT2FIX(2), INT2FIX(level));</div><div class='add'>+		}</div><div class='add'>+		else {</div><div class='add'>+		    ADD_INSN(ret, nd_line(node), 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 (!poped) {</div><div class='add'>+	    LABEL *lfinish[2];</div><div class='add'>+	    lfinish[0] = NEW_LABEL(nd_line(node));</div><div class='add'>+	    lfinish[1] = 0;</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), putnil);</div><div class='add'>+	    defined_expr(iseq, ret, node-&gt;nd_head, lfinish, Qtrue);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), swap);</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	    if (lfinish[1]) {</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'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_POSTEXE:{</div><div class='add'>+	LABEL *lend = NEW_LABEL(nd_line(node));</div><div class='add'>+	VALUE block = NEW_CHILD_ISEQVAL(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_BLOCK, nd_line(node));</div><div class='add'>+	int ic_index = iseq-&gt;ic_size++;</div><div class='add'>+</div><div class='add'>+	ADD_INSN2(ret, nd_line(node), onceinlinecache, lend, INT2FIX(ic_index));</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putiseq, block);</div><div class='add'>+	ADD_SEND (ret, nd_line(node), ID2SYM(id_core_set_postexe), INT2FIX(1));</div><div class='add'>+</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), setinlinecache, INT2FIX(ic_index));</div><div class='add'>+	ADD_LABEL(ret, lend);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</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 (!poped) {</div><div class='add'>+	    ADD_SEND(ret, nd_line(node), ID2SYM(idIntern), INT2FIX(0));</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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'>+	VALUE flag = 0;</div><div class='add'>+	VALUE argc;</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);</div><div class='add'>+</div><div class='add'>+	if (node-&gt;nd_recv == (NODE *) 1) {</div><div class='add'>+	    flag |= VM_CALL_FCALL_BIT;</div><div class='add'>+	    ADD_INSN(recv, nd_line(node), putself);</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    COMPILE(recv, "recv", node-&gt;nd_recv);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	debugp_param("argc", argc);</div><div class='add'>+	debugp_param("nd_mid", ID2SYM(node-&gt;nd_mid));</div><div class='add'>+</div><div class='add'>+	if (!poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), 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_BIT) {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), topn, INT2FIX(1));</div><div class='add'>+		if (flag &amp; VM_CALL_ARGS_SPLAT_BIT) {</div><div class='add'>+		    ADD_INSN1(ret, nd_line(node), putobject, INT2FIX(-1));</div><div class='add'>+		    ADD_SEND(ret, nd_line(node), ID2SYM(idAREF), INT2FIX(1));</div><div class='add'>+		}</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), setn, FIXNUM_INC(argc, 3));</div><div class='add'>+		ADD_INSN (ret, nd_line(node), pop);</div><div class='add'>+	    }</div><div class='add'>+	    else if (flag &amp; VM_CALL_ARGS_SPLAT_BIT) {</div><div class='add'>+		ADD_INSN(ret, nd_line(node), dup);</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), putobject, INT2FIX(-1));</div><div class='add'>+		ADD_SEND(ret, nd_line(node), ID2SYM(idAREF), INT2FIX(1));</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), setn, FIXNUM_INC(argc, 2));</div><div class='add'>+		ADD_INSN (ret, nd_line(node), pop);</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		ADD_INSN1(ret, nd_line(node), 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_R(ret, nd_line(node), ID2SYM(node-&gt;nd_mid), argc, 0, LONG2FIX(flag));</div><div class='add'>+	ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_OPTBLOCK:{</div><div class='add'>+	/* for optimize */</div><div class='add'>+	LABEL *redo_label = NEW_LABEL(0);</div><div class='add'>+	LABEL *next_label = NEW_LABEL(0);</div><div class='add'>+</div><div class='add'>+	iseq-&gt;compile_data-&gt;start_label = next_label;</div><div class='add'>+	iseq-&gt;compile_data-&gt;redo_label = redo_label;</div><div class='add'>+</div><div class='add'>+	ADD_LABEL(ret, redo_label);</div><div class='add'>+	COMPILE_(ret, "optblock body", node-&gt;nd_head, 1 /* pop */ );</div><div class='add'>+	ADD_LABEL(ret, next_label);</div><div class='add'>+	ADD_INSN(ret, 0, opt_checkenv);</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      case NODE_PRELUDE:{</div><div class='add'>+	COMPILE_POPED(ret, "prelude", node-&gt;nd_head);</div><div class='add'>+	COMPILE_(ret, "body", node-&gt;nd_body, poped);</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'>+	VALUE block = NEW_CHILD_ISEQVAL(node-&gt;nd_body, make_name_for_block(iseq), ISEQ_TYPE_BLOCK, nd_line(node));</div><div class='add'>+	VALUE argc = INT2FIX(0);</div><div class='add'>+	ADD_INSN1(ret, nd_line(node), putspecialobject, INT2FIX(VM_SPECIAL_OBJECT_VMCORE));</div><div class='add'>+	ADD_CALL_WITH_BLOCK(ret, nd_line(node), ID2SYM(idLambda), argc, block);</div><div class='add'>+</div><div class='add'>+	if (poped) {</div><div class='add'>+	    ADD_INSN(ret, nd_line(node), pop);</div><div class='add'>+	}</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      default:</div><div class='add'>+	rb_bug("iseq_compile_each: unknown node: %s", ruby_node_name(type));</div><div class='add'>+	return COMPILE_NG;</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 int</div><div class='add'>+insn_data_line_no(INSN *iobj)</div><div class='add'>+{</div><div class='add'>+    return insn_len(iobj-&gt;line_no);</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("%-16s", 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'>+	    printf("str: %"PRIxVALUE", type: %c\n", str, type);</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, "&lt;L%03d&gt;", 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 (iseq) {</div><div class='add'>+			val = iseq-&gt;self;</div><div class='add'>+		    }</div><div class='add'>+		    rb_str_concat(str, rb_inspect(val));</div><div class='add'>+		}</div><div class='add'>+		break;</div><div class='add'>+	      case TS_LINDEX:</div><div class='add'>+	      case TS_DINDEX:</div><div class='add'>+	      case TS_NUM:	/* ulong */</div><div class='add'>+	      case TS_VALUE:	/* VALUE */</div><div class='add'>+		rb_str_concat(str, rb_inspect(OPERAND_AT(iobj, j)));</div><div class='add'>+		break;</div><div class='add'>+	      case TS_ID:	/* ID */</div><div class='add'>+		rb_str_concat(str, rb_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_cat2(str, rb_id2name(entry-&gt;id));</div><div class='add'>+		}</div><div class='add'>+	      case TS_IC:	/* method 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_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'>+	      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(struct iseq_link_element *link)</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'>+	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(%4d)\n", pos, StringValueCStr(str),</div><div class='add'>+		       insn_data_line_no(iobj));</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("&lt;L%03d&gt;\n", lobj-&gt;label_no);</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	  case ISEQ_ELEMENT_NONE:</div><div class='add'>+	    {</div><div class='add'>+		printf("[none]\n");</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-&gt;label_no);</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'>+}</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; numberof(insn_name_info); i++) {</div><div class='add'>+	rb_ary_push(ary, rb_obj_freeze(rb_str_new2(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_convert_type(obj, T_SYMBOL, "Symbol", "to_sym");</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'>+    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'>+    VALUE sym_inspect;</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'>+    sym_inspect = rb_inspect(sym);</div><div class='add'>+    rb_raise(rb_eSyntaxError, "invalid exception symbol: %s",</div><div class='add'>+	     StringValuePtr(sym_inspect));</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'>+	VALUE v, type, *ptr, eiseqval;</div><div class='add'>+	LABEL *lstart, *lend, *lcont;</div><div class='add'>+	int sp;</div><div class='add'>+</div><div class='add'>+	RB_GC_GUARD(v) = rb_convert_type(RARRAY_PTR(exception)[i], T_ARRAY,</div><div class='add'>+					 "Array", "to_ary");</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_PTR(v);</div><div class='add'>+	type = get_exception_sym2type(ptr[0]);</div><div class='add'>+	if (ptr[1] == Qnil) {</div><div class='add'>+	    eiseqval = 0;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    eiseqval = rb_iseq_load(ptr[1], iseq-&gt;self, 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     = NUM2INT(ptr[5]);</div><div class='add'>+</div><div class='add'>+	ADD_CATCH_ENTRY(type, lstart, lend, eiseqval, lcont);</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 int</div><div class='add'>+iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *anchor,</div><div class='add'>+		VALUE body, struct st_table *labels_table)</div><div class='add'>+{</div><div class='add'>+    /* TODO: body should be frozen */</div><div class='add'>+    VALUE *ptr = RARRAY_PTR(body);</div><div class='add'>+    long i, len = RARRAY_LEN(body);</div><div class='add'>+    int j;</div><div class='add'>+    int line_no = 0;</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'>+	    LABEL *label = register_label(iseq, labels_table, obj);</div><div class='add'>+	    ADD_LABEL(anchor, label);</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 (TYPE(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_PTR(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'>+		RB_GC_GUARD(insn) = rb_inspect(insn);</div><div class='add'>+		rb_compile_error(RSTRING_PTR(iseq-&gt;filename), line_no,</div><div class='add'>+				 "unknown instruction: %s", RSTRING_PTR(insn));</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    if (argc != insn_len((VALUE)insn_id)-1) {</div><div class='add'>+		rb_compile_error(RSTRING_PTR(iseq-&gt;filename), line_no,</div><div class='add'>+				 "operand size mismatch");</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_DINDEX:</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'>+				if (TYPE(op) == T_ARRAY) {</div><div class='add'>+				    argv[j] = rb_iseq_load(op, iseq-&gt;self, Qnil);</div><div class='add'>+				}</div><div class='add'>+				else if (CLASS_OF(op) == rb_cISeq) {</div><div class='add'>+				    argv[j] = 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'>+				iseq_add_mark_object(iseq, argv[j]);</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_convert_type(op, T_SYMBOL, "Symbol", "to_sym");</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 (NUM2INT(op) &gt;= iseq-&gt;ic_size)</div><div class='add'>+			    iseq-&gt;ic_size = NUM2INT(op) + 1;</div><div class='add'>+			break;</div><div class='add'>+		      case TS_ID:</div><div class='add'>+			argv[j] = rb_convert_type(op, T_SYMBOL,</div><div class='add'>+						  "Symbol", "to_sym");</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'>+			    op = rb_convert_type(op, T_ARRAY, "Array", "to_ary");</div><div class='add'>+			    op = rb_ary_dup(op);</div><div class='add'>+			    for (i=0; i&lt;RARRAY_LEN(op); i+=2) {</div><div class='add'>+				VALUE sym = rb_ary_entry(op, i+1);</div><div class='add'>+				LABEL *label =</div><div class='add'>+				  register_label(iseq, labels_table, sym);</div><div class='add'>+				rb_ary_store(op, i+1, (VALUE)label | 1);</div><div class='add'>+			    }</div><div class='add'>+			    argv[j] = op;</div><div class='add'>+			    iseq_add_mark_object_compile_time(iseq, op);</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'>+    validate_labels(iseq, labels_table);</div><div class='add'>+    st_free_table(labels_table);</div><div class='add'>+    iseq_setup(iseq, anchor);</div><div class='add'>+    return COMPILE_OK;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define CHECK_ARRAY(v)   rb_convert_type((v), T_ARRAY, "Array", "to_ary")</div><div class='add'>+#define CHECK_STRING(v)  rb_convert_type((v), T_STRING, "String", "to_str")</div><div class='add'>+#define CHECK_SYMBOL(v)  rb_convert_type((v), T_SYMBOL, "Symbol", "to_sym")</div><div class='add'>+static inline VALUE CHECK_INTEGER(VALUE v) {(void)NUM2LONG(v); return v;}</div><div class='add'>+</div><div class='add'>+VALUE</div><div class='add'>+rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE locals, VALUE args,</div><div class='add'>+			 VALUE exception, VALUE body)</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    ID *tbl;</div><div class='add'>+    struct st_table *labels_table = st_init_numtable();</div><div class='add'>+    DECL_ANCHOR(anchor);</div><div class='add'>+    INIT_ANCHOR(anchor);</div><div class='add'>+</div><div class='add'>+    iseq-&gt;local_table_size = RARRAY_LENINT(locals);</div><div class='add'>+    iseq-&gt;local_table = tbl = (ID *)ALLOC_N(ID, iseq-&gt;local_table_size);</div><div class='add'>+    iseq-&gt;local_size = iseq-&gt;local_table_size + 1;</div><div class='add'>+</div><div class='add'>+    for (i=0; i&lt;RARRAY_LEN(locals); i++) {</div><div class='add'>+	VALUE lv = RARRAY_PTR(locals)[i];</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'>+    /* args */</div><div class='add'>+    if (FIXNUM_P(args)) {</div><div class='add'>+	iseq-&gt;arg_size = iseq-&gt;argc = FIX2INT(args);</div><div class='add'>+	iseq-&gt;arg_simple = 1;</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	int i = 0;</div><div class='add'>+	VALUE argc = CHECK_INTEGER(rb_ary_entry(args, i++));</div><div class='add'>+	VALUE arg_opt_labels = CHECK_ARRAY(rb_ary_entry(args, i++));</div><div class='add'>+	VALUE arg_post_len = CHECK_INTEGER(rb_ary_entry(args, i++));</div><div class='add'>+	VALUE arg_post_start = CHECK_INTEGER(rb_ary_entry(args, i++));</div><div class='add'>+	VALUE arg_rest = CHECK_INTEGER(rb_ary_entry(args, i++));</div><div class='add'>+	VALUE arg_block = CHECK_INTEGER(rb_ary_entry(args, i++));</div><div class='add'>+	VALUE arg_simple = CHECK_INTEGER(rb_ary_entry(args, i++));</div><div class='add'>+</div><div class='add'>+	iseq-&gt;argc = FIX2INT(argc);</div><div class='add'>+	iseq-&gt;arg_rest = FIX2INT(arg_rest);</div><div class='add'>+	iseq-&gt;arg_post_len = FIX2INT(arg_post_len);</div><div class='add'>+	iseq-&gt;arg_post_start = FIX2INT(arg_post_start);</div><div class='add'>+	iseq-&gt;arg_block = FIX2INT(arg_block);</div><div class='add'>+	iseq-&gt;arg_opts = RARRAY_LENINT(arg_opt_labels);</div><div class='add'>+	iseq-&gt;arg_opt_table = (VALUE *)ALLOC_N(VALUE, iseq-&gt;arg_opts);</div><div class='add'>+</div><div class='add'>+	if (iseq-&gt;arg_block != -1) {</div><div class='add'>+	    iseq-&gt;arg_size = iseq-&gt;arg_block + 1;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;arg_post_len) {</div><div class='add'>+	    iseq-&gt;arg_size = iseq-&gt;arg_post_start + iseq-&gt;arg_post_len;</div><div class='add'>+	}</div><div class='add'>+	else if (iseq-&gt;arg_rest != -1) {</div><div class='add'>+	    iseq-&gt;arg_size = iseq-&gt;arg_rest + 1;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    iseq-&gt;arg_size = iseq-&gt;argc + (iseq-&gt;arg_opts ? iseq-&gt;arg_opts - 1 : 0);</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;RARRAY_LEN(arg_opt_labels); i++) {</div><div class='add'>+	    iseq-&gt;arg_opt_table[i] =</div><div class='add'>+	      (VALUE)register_label(iseq, labels_table,</div><div class='add'>+				    rb_ary_entry(arg_opt_labels, i));</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	iseq-&gt;arg_simple = NUM2INT(arg_simple);</div><div class='add'>+    }</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_table);</div><div class='add'>+    return iseq-&gt;self;</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)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='add'>+    if (th-&gt;base_block &amp;&amp; (iseq = th-&gt;base_block-&gt;iseq)) {</div><div class='add'>+	while (iseq-&gt;type == ISEQ_TYPE_BLOCK ||</div><div class='add'>+	       iseq-&gt;type == ISEQ_TYPE_RESCUE ||</div><div class='add'>+	       iseq-&gt;type == ISEQ_TYPE_ENSURE ||</div><div class='add'>+	       iseq-&gt;type == ISEQ_TYPE_EVAL ||</div><div class='add'>+	       iseq-&gt;type == ISEQ_TYPE_MAIN</div><div class='add'>+	       ) {</div><div class='add'>+	    int i;</div><div class='add'>+</div><div class='add'>+	    for (i = 0; i &lt; iseq-&gt;local_table_size; i++) {</div><div class='add'>+		if (iseq-&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;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)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    rb_iseq_t *iseq;</div><div class='add'>+</div><div class='add'>+    if (th-&gt;base_block &amp;&amp; th-&gt;base_block-&gt;iseq) {</div><div class='add'>+	int i;</div><div class='add'>+	iseq = th-&gt;base_block-&gt;iseq-&gt;local_iseq;</div><div class='add'>+</div><div class='add'>+	for (i=0; i&lt;iseq-&gt;local_table_size; i++) {</div><div class='add'>+	    if (iseq-&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'>+int</div><div class='add'>+rb_parse_in_eval(void)</div><div class='add'>+{</div><div class='add'>+    return GET_THREAD()-&gt;parse_in_eval &gt; 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+rb_parse_in_main(void)</div><div class='add'>+{</div><div class='add'>+    return GET_THREAD()-&gt;parse_in_eval &lt; 0;</div><div class='add'>+}</div><div class='head'>diff --git a/complex.c b/complex.c<br/>new file mode 100644<br/>index 0000000000..5b1a5102a1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/complex.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>complex.c</a></div><div class='hunk'>@@ -0,0 +1,1994 @@</div><div class='add'>+/*</div><div class='add'>+  complex.c: Coded by Tadayoshi Funaba 2008-2011</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.h"</div><div class='add'>+#include "internal.h"</div><div class='add'>+#include &lt;math.h&gt;</div><div class='add'>+</div><div class='add'>+#define NDEBUG</div><div class='add'>+#include &lt;assert.h&gt;</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'>+</div><div class='add'>+VALUE rb_cComplex;</div><div class='add'>+</div><div class='add'>+static ID id_abs, id_abs2, id_arg, id_cmp, id_conj, id_convert,</div><div class='add'>+    id_denominator, id_divmod, id_eqeq_p, id_expt, id_fdiv,  id_floor,</div><div class='add'>+    id_idiv, id_imag, id_inspect, id_negate, id_numerator, id_quo,</div><div class='add'>+    id_real, id_real_p, id_to_f, id_to_i, id_to_r, id_to_s;</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; FIX2LONG(y) == 0)</div><div class='add'>+	return x;</div><div class='add'>+    else if (FIXNUM_P(x) &amp;&amp; FIX2LONG(x) == 0)</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_cmp(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'>+	long c = FIX2LONG(x) - FIX2LONG(y);</div><div class='add'>+	if (c &gt; 0)</div><div class='add'>+	    c = 1;</div><div class='add'>+	else if (c &lt; 0)</div><div class='add'>+	    c = -1;</div><div class='add'>+	return INT2FIX(c);</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_cmp, 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 VALUE</div><div class='add'>+f_gt_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 f_boolcast(FIX2LONG(x) &gt; FIX2LONG(y));</div><div class='add'>+    return 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_lt_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 f_boolcast(FIX2LONG(x) &lt; FIX2LONG(y));</div><div class='add'>+    return rb_funcall(x, '&lt;', 1, y);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+binop(mod, '%')</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 (FIXNUM_P(x) || TYPE(x) == T_BIGNUM)</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 (FIXNUM_P(y) || TYPE(y) == T_BIGNUM)</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; FIX2LONG(y) == 0)</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(abs2)</div><div class='add'>+fun1(arg)</div><div class='add'>+fun1(conj)</div><div class='add'>+fun1(denominator)</div><div class='add'>+fun1(floor)</div><div class='add'>+fun1(imag)</div><div class='add'>+fun1(inspect)</div><div class='add'>+fun1(negate)</div><div class='add'>+fun1(numerator)</div><div class='add'>+fun1(real)</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 (TYPE(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 (TYPE(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'>+fun1(to_s)</div><div class='add'>+</div><div class='add'>+fun2(divmod)</div><div class='add'>+</div><div class='add'>+inline static VALUE</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 f_boolcast(FIX2LONG(x) == FIX2LONG(y));</div><div class='add'>+    return rb_funcall(x, id_eqeq_p, 1, 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(idiv)</div><div class='add'>+fun2(quo)</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_negative_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    if (FIXNUM_P(x))</div><div class='add'>+	return f_boolcast(FIX2LONG(x) &lt; 0);</div><div class='add'>+    return rb_funcall(x, '&lt;', 1, ZERO);</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 VALUE</div><div class='add'>+f_zero_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    switch (TYPE(x)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	return f_boolcast(FIX2LONG(x) == 0);</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+	return Qfalse;</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+      {</div><div class='add'>+	  VALUE num = RRATIONAL(x)-&gt;num;</div><div class='add'>+</div><div class='add'>+	  return f_boolcast(FIXNUM_P(num) &amp;&amp; FIX2LONG(num) == 0);</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_eqeq_p, 1, 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'>+inline static VALUE</div><div class='add'>+f_one_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    switch (TYPE(x)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+	return f_boolcast(FIX2LONG(x) == 1);</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+	return Qfalse;</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+      {</div><div class='add'>+	  VALUE num = RRATIONAL(x)-&gt;num;</div><div class='add'>+	  VALUE den = RRATIONAL(x)-&gt;den;</div><div class='add'>+</div><div class='add'>+	  return f_boolcast(FIXNUM_P(num) &amp;&amp; FIX2LONG(num) == 1 &amp;&amp;</div><div class='add'>+			    FIXNUM_P(den) &amp;&amp; FIX2LONG(den) == 1);</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall(x, id_eqeq_p, 1, ONE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+f_kind_of_p(VALUE x, VALUE c)</div><div class='add'>+{</div><div class='add'>+    return rb_obj_is_kind_of(x, c);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</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'>+inline static VALUE</div><div class='add'>+k_integer_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cInteger);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+k_fixnum_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cFixnum);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+k_bignum_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cBignum);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+k_float_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cFloat);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+k_rational_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cRational);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+inline static VALUE</div><div class='add'>+k_complex_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_kind_of_p(x, rb_cComplex);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define k_exact_p(x) (!k_float_p(x))</div><div class='add'>+#define k_inexact_p(x) k_float_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'>+#define k_exact_one_p(x) (k_exact_p(x) &amp;&amp; f_one_p(x))</div><div class='add'>+</div><div class='add'>+#define get_dat1(x) \</div><div class='add'>+    struct RComplex *dat;\</div><div class='add'>+    dat = ((struct RComplex *)(x))</div><div class='add'>+</div><div class='add'>+#define get_dat2(x,y) \</div><div class='add'>+    struct RComplex *adat, *bdat;\</div><div class='add'>+    adat = ((struct RComplex *)(x));\</div><div class='add'>+    bdat = ((struct 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(obj, struct RComplex);</div><div class='add'>+    OBJSETUP(obj, klass, T_COMPLEX);</div><div class='add'>+</div><div class='add'>+    obj-&gt;real = real;</div><div class='add'>+    obj-&gt;imag = imag;</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(!k_complex_p(x));</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(!k_complex_p(x));</div><div class='add'>+    assert(!k_complex_p(y));</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'>+#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'>+    switch (TYPE(num)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+      case T_RATIONAL:</div><div class='add'>+	break;</div><div class='add'>+      default:</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'>+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_new1(VALUE klass, VALUE x)</div><div class='add'>+{</div><div class='add'>+    assert(!k_complex_p(x));</div><div class='add'>+    return nucomp_s_canonicalize_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_new2(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    assert(!k_complex_p(x));</div><div class='add'>+    return nucomp_s_canonicalize_internal(klass, x, y);</div><div class='add'>+}</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'>+static VALUE</div><div class='add'>+nucomp_f_complex(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    return rb_funcall2(rb_cComplex, id_convert, argc, argv);</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'>+#define imp2(n) \</div><div class='add'>+inline static VALUE \</div><div class='add'>+m_##n##_bang(VALUE x, VALUE y)\</div><div class='add'>+{\</div><div class='add'>+    return rb_math_##n(x, y);\</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+imp2(atan2)</div><div class='add'>+imp1(cos)</div><div class='add'>+imp1(cosh)</div><div class='add'>+imp1(exp)</div><div class='add'>+imp2(hypot)</div><div class='add'>+</div><div class='add'>+#define m_hypot(x,y) m_hypot_bang((x),(y))</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'>+imp1(sqrt)</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'>+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'>+    else {</div><div class='add'>+	get_dat1(x);</div><div class='add'>+</div><div class='add'>+	if (f_negative_p(dat-&gt;imag))</div><div class='add'>+	    return f_conj(m_sqrt(f_conj(x)));</div><div class='add'>+	else {</div><div class='add'>+	    VALUE a = f_abs(x);</div><div class='add'>+	    return f_complex_new2(rb_cComplex,</div><div class='add'>+				  m_sqrt_bang(f_div(f_add(a, dat-&gt;real), TWO)),</div><div class='add'>+				  m_sqrt_bang(f_div(f_sub(a, dat-&gt;real), TWO)));</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'>+inline static VALUE</div><div class='add'>+f_complex_polar(VALUE klass, VALUE x, VALUE y)</div><div class='add'>+{</div><div class='add'>+    assert(!k_complex_p(x));</div><div class='add'>+    assert(!k_complex_p(y));</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'>+	arg = ZERO;</div><div class='add'>+	break;</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'>+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'>+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'>+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'>+inline static VALUE</div><div class='add'>+f_addsub(VALUE self, VALUE other,</div><div class='add'>+	 VALUE (*func)(VALUE, VALUE), ID id)</div><div class='add'>+{</div><div class='add'>+    if (k_complex_p(other)) {</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 = (*func)(adat-&gt;real, bdat-&gt;real);</div><div class='add'>+	imag = (*func)(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'>+			      (*func)(dat-&gt;real, other), dat-&gt;imag);</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'>+/*</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'>+static VALUE</div><div class='add'>+nucomp_add(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    return f_addsub(self, other, f_add, '+');</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'>+static VALUE</div><div class='add'>+nucomp_sub(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    return f_addsub(self, other, f_sub, '-');</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'>+static VALUE</div><div class='add'>+nucomp_mul(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (k_complex_p(other)) {</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(f_mul(adat-&gt;real, bdat-&gt;real),</div><div class='add'>+		     f_mul(adat-&gt;imag, bdat-&gt;imag));</div><div class='add'>+	imag = f_add(f_mul(adat-&gt;real, bdat-&gt;imag),</div><div class='add'>+		     f_mul(adat-&gt;imag, bdat-&gt;real));</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'>+</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 (k_complex_p(other)) {</div><div class='add'>+	int flo;</div><div class='add'>+	get_dat2(self, other);</div><div class='add'>+</div><div class='add'>+	flo = (k_float_p(adat-&gt;real) || k_float_p(adat-&gt;imag) ||</div><div class='add'>+	       k_float_p(bdat-&gt;real) || k_float_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'>+ * For example:</div><div class='add'>+ *</div><div class='add'>+ *     Complex(10.0) / 3  #=&gt; (3.3333333333333335+(0/1)*i)</div><div class='add'>+ *     Complex(10)   / 3  #=&gt; ((10/3)+(0/1)*i)  # not (3+0i)</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'>+ * For example:</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'>+ * For example:</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 (k_rational_p(other) &amp;&amp; f_one_p(f_denominator(other)))</div><div class='add'>+	other = f_numerator(other); /* c14n */</div><div class='add'>+</div><div class='add'>+    if (k_complex_p(other)) {</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 (k_complex_p(other)) {</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 (k_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 = f_complex_new2(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), f_negate(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 (k_bignum_p(other))</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'>+static VALUE</div><div class='add'>+nucomp_eqeq_p(VALUE self, VALUE other)</div><div class='add'>+{</div><div class='add'>+    if (k_complex_p(other)) {</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_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 (TYPE(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, "%s can't be coerced into %s",</div><div class='add'>+	     rb_obj_classname(other), rb_obj_classname(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'>+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 (k_float_p(dat-&gt;real) &amp;&amp; !k_float_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 (!k_float_p(dat-&gt;real) &amp;&amp; k_float_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 m_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'>+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'>+ */</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 m_atan2_bang(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'>+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'>+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'>+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'>+ * For example:</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 LONG2FIX(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 (k_complex_p(other)) {</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 VALUE</div><div class='add'>+f_signbit(VALUE x)</div><div class='add'>+{</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'>+    switch (TYPE(x)) {</div><div class='add'>+      case T_FLOAT: {</div><div class='add'>+	double f = RFLOAT_VALUE(x);</div><div class='add'>+	return f_boolcast(!isnan(f) &amp;&amp; signbit(f));</div><div class='add'>+      }</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 VALUE</div><div class='add'>+f_tpositive_p(VALUE x)</div><div class='add'>+{</div><div class='add'>+    return f_boolcast(!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, 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'>+static VALUE</div><div class='add'>+nucomp_to_s(VALUE self)</div><div class='add'>+{</div><div class='add'>+    return f_format(self, f_to_s);</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'>+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, f_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'>+/* :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'>+    get_dat1(self);</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'>+    dat-&gt;real = RARRAY_PTR(a)[0];</div><div class='add'>+    dat-&gt;imag = RARRAY_PTR(a)[1];</div><div class='add'>+    rb_copy_generic_ivar(self, a);</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'>+static VALUE nucomp_s_convert(int argc, VALUE *argv, VALUE klass);</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'>+/*</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.</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_inexact_p(dat-&gt;imag) || f_nonzero_p(dat-&gt;imag)) {</div><div class='add'>+	VALUE s = f_to_s(self);</div><div class='add'>+	rb_raise(rb_eRangeError, "can't convert %s into Integer",</div><div class='add'>+		 StringValuePtr(s));</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.</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_inexact_p(dat-&gt;imag) || f_nonzero_p(dat-&gt;imag)) {</div><div class='add'>+	VALUE s = f_to_s(self);</div><div class='add'>+	rb_raise(rb_eRangeError, "can't convert %s into Float",</div><div class='add'>+		 StringValuePtr(s));</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'>+ * If the imaginary part is exactly 0, returns the real part as a Rational,</div><div class='add'>+ * otherwise a RangeError is raised.</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_inexact_p(dat-&gt;imag) || f_nonzero_p(dat-&gt;imag)) {</div><div class='add'>+	VALUE s = f_to_s(self);</div><div class='add'>+	rb_raise(rb_eRangeError, "can't convert %s into Rational",</div><div class='add'>+		 StringValuePtr(s));</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'>+ * If the imaginary part is exactly 0, returns the real part as a Rational,</div><div class='add'>+ * otherwise a RangeError is raised.</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_inexact_p(dat-&gt;imag) || f_nonzero_p(dat-&gt;imag)) {</div><div class='add'>+       VALUE s = f_to_s(self);</div><div class='add'>+       rb_raise(rb_eRangeError, "can't convert %s into Rational",</div><div class='add'>+                StringValuePtr(s));</div><div class='add'>+    }</div><div class='add'>+    return rb_funcall2(dat-&gt;real, rb_intern("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'>+ *    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'>+static VALUE comp_pat0, comp_pat1, comp_pat2, a_slash, a_dot_and_an_e,</div><div class='add'>+    null_string, underscores_pat, an_underscore;</div><div class='add'>+</div><div class='add'>+#define WS "\\s*"</div><div class='add'>+#define DIGITS "(?:[0-9](?:_[0-9]|[0-9])*)"</div><div class='add'>+#define NUMERATOR "(?:" DIGITS "?\\.)?" DIGITS "(?:[eE][-+]?" DIGITS ")?"</div><div class='add'>+#define DENOMINATOR DIGITS</div><div class='add'>+#define NUMBER "[-+]?" NUMERATOR "(?:\\/" DENOMINATOR ")?"</div><div class='add'>+#define NUMBERNOS NUMERATOR "(?:\\/" DENOMINATOR ")?"</div><div class='add'>+#define PATTERN0 "\\A" WS "(" NUMBER ")@(" NUMBER ")" WS</div><div class='add'>+#define PATTERN1 "\\A" WS "([-+])?(" NUMBER ")?[iIjJ]" WS</div><div class='add'>+#define PATTERN2 "\\A" WS "(" NUMBER ")(([-+])(" NUMBERNOS ")?[iIjJ])?" WS</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+make_patterns(void)</div><div class='add'>+{</div><div class='add'>+    static const char comp_pat0_source[] = PATTERN0;</div><div class='add'>+    static const char comp_pat1_source[] = PATTERN1;</div><div class='add'>+    static const char comp_pat2_source[] = PATTERN2;</div><div class='add'>+    static const char underscores_pat_source[] = "_+";</div><div class='add'>+</div><div class='add'>+    if (comp_pat0) return;</div><div class='add'>+</div><div class='add'>+    comp_pat0 = rb_reg_new(comp_pat0_source, sizeof comp_pat0_source - 1, 0);</div><div class='add'>+    rb_gc_register_mark_object(comp_pat0);</div><div class='add'>+</div><div class='add'>+    comp_pat1 = rb_reg_new(comp_pat1_source, sizeof comp_pat1_source - 1, 0);</div><div class='add'>+    rb_gc_register_mark_object(comp_pat1);</div><div class='add'>+</div><div class='add'>+    comp_pat2 = rb_reg_new(comp_pat2_source, sizeof comp_pat2_source - 1, 0);</div><div class='add'>+    rb_gc_register_mark_object(comp_pat2);</div><div class='add'>+</div><div class='add'>+    a_slash = rb_usascii_str_new2("/");</div><div class='add'>+    rb_gc_register_mark_object(a_slash);</div><div class='add'>+</div><div class='add'>+    a_dot_and_an_e = rb_usascii_str_new2(".eE");</div><div class='add'>+    rb_gc_register_mark_object(a_dot_and_an_e);</div><div class='add'>+</div><div class='add'>+    null_string = rb_usascii_str_new2("");</div><div class='add'>+    rb_gc_register_mark_object(null_string);</div><div class='add'>+</div><div class='add'>+    underscores_pat = rb_reg_new(underscores_pat_source,</div><div class='add'>+				 sizeof underscores_pat_source - 1, 0);</div><div class='add'>+    rb_gc_register_mark_object(underscores_pat);</div><div class='add'>+</div><div class='add'>+    an_underscore = rb_usascii_str_new2("_");</div><div class='add'>+    rb_gc_register_mark_object(an_underscore);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define id_match rb_intern("match")</div><div class='add'>+#define f_match(x,y) rb_funcall((x), id_match, 1, (y))</div><div class='add'>+</div><div class='add'>+#define id_gsub_bang rb_intern("gsub!")</div><div class='add'>+#define f_gsub_bang(x,y,z) rb_funcall((x), id_gsub_bang, 2, (y), (z))</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+string_to_c_internal(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE s;</div><div class='add'>+</div><div class='add'>+    s = self;</div><div class='add'>+</div><div class='add'>+    if (RSTRING_LEN(s) == 0)</div><div class='add'>+	return rb_assoc_new(Qnil, self);</div><div class='add'>+</div><div class='add'>+    {</div><div class='add'>+	VALUE m, sr, si, re, r, i;</div><div class='add'>+	int po;</div><div class='add'>+</div><div class='add'>+	m = f_match(comp_pat0, s);</div><div class='add'>+	if (!NIL_P(m)) {</div><div class='add'>+	    sr = rb_reg_nth_match(1, m);</div><div class='add'>+	    si = rb_reg_nth_match(2, m);</div><div class='add'>+	    re = rb_reg_match_post(m);</div><div class='add'>+	    po = 1;</div><div class='add'>+	}</div><div class='add'>+	if (NIL_P(m)) {</div><div class='add'>+	    m = f_match(comp_pat1, s);</div><div class='add'>+	    if (!NIL_P(m)) {</div><div class='add'>+		sr = Qnil;</div><div class='add'>+		si = rb_reg_nth_match(1, m);</div><div class='add'>+		if (NIL_P(si))</div><div class='add'>+		    si = rb_usascii_str_new2("");</div><div class='add'>+		{</div><div class='add'>+		    VALUE t;</div><div class='add'>+</div><div class='add'>+		    t = rb_reg_nth_match(2, m);</div><div class='add'>+		    if (NIL_P(t))</div><div class='add'>+			t = rb_usascii_str_new2("1");</div><div class='add'>+		    rb_str_concat(si, t);</div><div class='add'>+		}</div><div class='add'>+		re = rb_reg_match_post(m);</div><div class='add'>+		po = 0;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (NIL_P(m)) {</div><div class='add'>+	    m = f_match(comp_pat2, s);</div><div class='add'>+	    if (NIL_P(m))</div><div class='add'>+		return rb_assoc_new(Qnil, self);</div><div class='add'>+	    sr = rb_reg_nth_match(1, m);</div><div class='add'>+	    if (NIL_P(rb_reg_nth_match(2, m)))</div><div class='add'>+		si = Qnil;</div><div class='add'>+	    else {</div><div class='add'>+		VALUE t;</div><div class='add'>+</div><div class='add'>+		si = rb_reg_nth_match(3, m);</div><div class='add'>+		t = rb_reg_nth_match(4, m);</div><div class='add'>+		if (NIL_P(t))</div><div class='add'>+		    t = rb_usascii_str_new2("1");</div><div class='add'>+		rb_str_concat(si, t);</div><div class='add'>+	    }</div><div class='add'>+	    re = rb_reg_match_post(m);</div><div class='add'>+	    po = 0;</div><div class='add'>+	}</div><div class='add'>+	r = INT2FIX(0);</div><div class='add'>+	i = INT2FIX(0);</div><div class='add'>+	if (!NIL_P(sr)) {</div><div class='add'>+	    if (strchr(RSTRING_PTR(sr), '/'))</div><div class='add'>+		r = f_to_r(sr);</div><div class='add'>+	    else if (strpbrk(RSTRING_PTR(sr), ".eE"))</div><div class='add'>+		r = f_to_f(sr);</div><div class='add'>+	    else</div><div class='add'>+		r = f_to_i(sr);</div><div class='add'>+	}</div><div class='add'>+	if (!NIL_P(si)) {</div><div class='add'>+	    if (strchr(RSTRING_PTR(si), '/'))</div><div class='add'>+		i = f_to_r(si);</div><div class='add'>+	    else if (strpbrk(RSTRING_PTR(si), ".eE"))</div><div class='add'>+		i = f_to_f(si);</div><div class='add'>+	    else</div><div class='add'>+		i = f_to_i(si);</div><div class='add'>+	}</div><div class='add'>+	if (po)</div><div class='add'>+	    return rb_assoc_new(rb_complex_polar(r, i), re);</div><div class='add'>+	else</div><div class='add'>+	    return rb_assoc_new(rb_complex_new2(r, i), re);</div><div class='add'>+    }</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'>+    VALUE a = string_to_c_internal(self);</div><div class='add'>+    if (NIL_P(RARRAY_PTR(a)[0]) || RSTRING_LEN(RARRAY_PTR(a)[1]) &gt; 0) {</div><div class='add'>+	VALUE s = f_inspect(self);</div><div class='add'>+	rb_raise(rb_eArgError, "invalid value for convert(): %s",</div><div class='add'>+		 StringValuePtr(s));</div><div class='add'>+    }</div><div class='add'>+    return RARRAY_PTR(a)[0];</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define id_gsub rb_intern("gsub")</div><div class='add'>+#define f_gsub(x,y,z) rb_funcall((x), id_gsub, 2, (y), (z))</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'>+ * For example:</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'>+static VALUE</div><div class='add'>+string_to_c(VALUE self)</div><div class='add'>+{</div><div class='add'>+    VALUE s, a, backref;</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'>+    s = f_gsub(self, underscores_pat, an_underscore);</div><div class='add'>+    a = string_to_c_internal(s);</div><div class='add'>+</div><div class='add'>+    rb_backref_set(backref);</div><div class='add'>+</div><div class='add'>+    if (!NIL_P(RARRAY_PTR(a)[0]))</div><div class='add'>+	return RARRAY_PTR(a)[0];</div><div class='add'>+    return rb_complex_new1(INT2FIX(0));</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'>+    switch (TYPE(a1)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	break;</div><div class='add'>+      case T_STRING:</div><div class='add'>+	a1 = string_to_c_strict(a1);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    switch (TYPE(a2)) {</div><div class='add'>+      case T_FIXNUM:</div><div class='add'>+      case T_BIGNUM:</div><div class='add'>+      case T_FLOAT:</div><div class='add'>+	break;</div><div class='add'>+      case T_STRING:</div><div class='add'>+	a2 = string_to_c_strict(a2);</div><div class='add'>+	break;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_backref_set(backref);</div><div class='add'>+</div><div class='add'>+    switch (TYPE(a1)) {</div><div class='add'>+      case 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'>+    switch (TYPE(a2)) {</div><div class='add'>+      case 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'>+    switch (TYPE(a1)) {</div><div class='add'>+      case 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'>+#define id_PI rb_intern("PI")</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 rb_const_get(rb_mMath, id_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'>+ *</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'>+/*</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'>+    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'>+ *    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'>+ * In ruby, you can create complex object with Complex, Complex::rect,</div><div class='add'>+ * Complex::polar or to_c method.</div><div class='add'>+ *</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'>+#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_abs2 = rb_intern("abs2");</div><div class='add'>+    id_arg = rb_intern("arg");</div><div class='add'>+    id_cmp = rb_intern("&lt;=&gt;");</div><div class='add'>+    id_conj = rb_intern("conj");</div><div class='add'>+    id_convert = rb_intern("convert");</div><div class='add'>+    id_denominator = rb_intern("denominator");</div><div class='add'>+    id_divmod = rb_intern("divmod");</div><div class='add'>+    id_eqeq_p = rb_intern("==");</div><div class='add'>+    id_expt = rb_intern("**");</div><div class='add'>+    id_fdiv = rb_intern("fdiv");</div><div class='add'>+    id_floor = rb_intern("floor");</div><div class='add'>+    id_idiv = rb_intern("div");</div><div class='add'>+    id_imag = rb_intern("imag");</div><div class='add'>+    id_inspect = rb_intern("inspect");</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 = rb_intern("real");</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_to_s = rb_intern("to_s");</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_method(rb_cComplex, "%");</div><div class='add'>+    rb_undef_method(rb_cComplex, "&lt;");</div><div class='add'>+    rb_undef_method(rb_cComplex, "&lt;=");</div><div class='add'>+    rb_undef_method(rb_cComplex, "&lt;=&gt;");</div><div class='add'>+    rb_undef_method(rb_cComplex, "&gt;");</div><div class='add'>+    rb_undef_method(rb_cComplex, "&gt;=");</div><div class='add'>+    rb_undef_method(rb_cComplex, "between?");</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'>+#if 0 /* NUBY */</div><div class='add'>+    rb_undef_method(rb_cComplex, "//");</div><div class='add'>+#endif</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, "+", nucomp_add, 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_define_method(rb_cComplex, "marshal_dump", nucomp_marshal_dump, 0);</div><div class='add'>+    rb_define_method(rb_cComplex, "marshal_load", nucomp_marshal_load, 1);</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_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'>+    make_patterns();</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'>+    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'>+</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 d62857905a..0000000000<br/>--- a/<a href='/ruby.git/tree/config.guess?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config.guess</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,885 +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, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.</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'>-# Written by Per Bothner &lt;bothner@cygnus.com&gt;.</div><div class='del'>-# The master version of this file is at the FSF in /home/gd/gnu/lib.</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 system type (host/target name).</div><div class='del'>-#</div><div class='del'>-# Only a few systems have been added to this list; please add others</div><div class='del'>-# (but try to keep the structure clean).</div><div class='del'>-#</div><div class='del'>-</div><div class='del'>-# Modified for Human68k by K.Okabe 1997.07.09</div><div class='del'>-# Last change: 1997.07.09</div><div class='del'>-</div><div class='del'>-case "$KSH_VERSION" in</div><div class='del'>-*X6*)</div><div class='del'>-  echo m68k-sharp-human</div><div class='del'>-  exit 0 ;;</div><div class='del'>-*)</div><div class='del'>-  ;;</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 8/24/94.)</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'>-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15</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'>-    alpha:OSF1:*:*)</div><div class='del'>-	if test $UNAME_RELEASE = "V4.0"; then</div><div class='del'>-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`</div><div class='del'>-	fi</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'>-	cat &lt;&lt;EOF &gt;dummy.s</div><div class='del'>-	.globl main</div><div class='del'>-	.ent main</div><div class='del'>-main:</div><div class='del'>-	.frame \$30,0,\$26,0</div><div class='del'>-	.prologue 0</div><div class='del'>-	.long 0x47e03d80 # implver $0</div><div class='del'>-	lda \$2,259</div><div class='del'>-	.long 0x47e20c21 # amask $2,$1</div><div class='del'>-	srl \$1,8,\$2</div><div class='del'>-	sll \$2,2,\$2</div><div class='del'>-	sll \$0,3,\$0</div><div class='del'>-	addl \$1,\$0,\$0</div><div class='del'>-	addl \$2,\$0,\$0</div><div class='del'>-	ret \$31,(\$26),1</div><div class='del'>-	.end main</div><div class='del'>-EOF</div><div class='del'>-	${CC-cc} dummy.s -o dummy 2&gt;/dev/null</div><div class='del'>-	if test "$?" = 0 ; then</div><div class='del'>-		./dummy</div><div class='del'>-		case "$?" in</div><div class='del'>-			7)</div><div class='del'>-				UNAME_MACHINE="alpha"</div><div class='del'>-				;;</div><div class='del'>-			15)</div><div class='del'>-				UNAME_MACHINE="alphaev5"</div><div class='del'>-				;;</div><div class='del'>-			14)</div><div class='del'>-				UNAME_MACHINE="alphaev56"</div><div class='del'>-				;;</div><div class='del'>-			10)</div><div class='del'>-				UNAME_MACHINE="alphapca56"</div><div class='del'>-				;;</div><div class='del'>-			16)</div><div class='del'>-				UNAME_MACHINE="alphaev6"</div><div class='del'>-				;;</div><div class='del'>-		esac</div><div class='del'>-	fi</div><div class='del'>-	rm -f dummy.s dummy</div><div class='del'>-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`</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-cbm-sysv4</div><div class='del'>-	exit 0;;</div><div class='del'>-    amiga:NetBSD:*:*)</div><div class='del'>-      echo m68k-cbm-netbsd${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'>-    arc64:OpenBSD:*:*)</div><div class='del'>-	echo mips64el-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'>-    hkmips:OpenBSD:*:*)</div><div class='del'>-	echo mips-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 mips-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'>-    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'>-    arm32:NetBSD:*:*)</div><div class='del'>-	echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    SR2?01: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*:*:*)</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'>-    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=`(head -1 /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'>-    atari*:NetBSD:*:*)</div><div class='del'>-	echo m68k-atari-netbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    atari*:OpenBSD:*:*)</div><div class='del'>-	echo m68k-unknown-openbsd${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    sun3*:NetBSD:*:*)</div><div class='del'>-	echo m68k-sun-netbsd${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'>-    mac68k:NetBSD:*:*)</div><div class='del'>-	echo m68k-apple-netbsd${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'>-    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'>-    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:*:*)</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'>-	sed 's/^	//' &lt;&lt; EOF &gt;dummy.c</div><div class='del'>-	int main (argc, argv) int argc; char **argv; {</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-cc} dummy.c -o dummy \</div><div class='del'>-	  &amp;&amp; ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \</div><div class='del'>-	  &amp;&amp; rm dummy.c dummy &amp;&amp; exit 0</div><div class='del'>-	rm -f dummy.c dummy</div><div class='del'>-	echo mips-mips-riscos${UNAME_RELEASE}</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 -o $UNAME_PROCESSOR = mc88110 ] ; then</div><div class='del'>-	if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \</div><div class='del'>-	     -o ${TARGET_BINARY_INTERFACE}x = x ] ; 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 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'>-    *: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'>-		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-cc} dummy.c -o dummy &amp;&amp; ./dummy &amp;&amp; rm dummy.c dummy &amp;&amp; exit 0</div><div class='del'>-		rm -f dummy.c dummy</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:*:4)</div><div class='del'>-	if /usr/sbin/lsattr -EHl proc0 | 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=4.${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 NetBSD 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/[3478]??:HP-UX:*:*)</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/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;</div><div class='del'>-	    9000/8?? )            HP_ARCH=hppa1.0 ;;</div><div class='del'>-	esac</div><div class='del'>-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`</div><div class='del'>-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    3050*:HI-UX:*:*)</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-cc} dummy.c -o dummy &amp;&amp; ./dummy &amp;&amp; rm dummy.c dummy &amp;&amp; exit 0</div><div class='del'>-	rm -f dummy.c dummy</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'>-    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*X-MP:*:*:*)</div><div class='del'>-	echo xmp-cray-unicos</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    CRAY*Y-MP:*:*:*)</div><div class='del'>-	echo ymp-cray-unicos${UNAME_RELEASE}</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'>-	exit 0 ;;</div><div class='del'>-    CRAY*TS:*:*:*)</div><div class='del'>-	echo t90-cray-unicos${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    CRAY-2:*:*:*)</div><div class='del'>-	echo cray2-cray-unicos</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    F300:UNIX_System_V:*:*)</div><div class='del'>-        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`</div><div class='del'>-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`</div><div class='del'>-        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"</div><div class='del'>-        exit 0 ;;</div><div class='del'>-    F301:UNIX_System_V:*:*)</div><div class='del'>-       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`</div><div class='del'>-       exit 0 ;;</div><div class='del'>-    hp3[0-9][05]:NetBSD:*:*)</div><div class='del'>-	echo m68k-hp-netbsd${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'>-    i?86:BSD/386:*:* | *:BSD/OS:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:FreeBSD:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:NetBSD:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:OpenBSD:*:*)</div><div class='del'>-	echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    *:*:*BOW*:*)</div><div class='del'>-	echo i386-pc-bow</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:CYGWIN*:*)</div><div class='del'>-	echo i386-pc-cygwin32</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    i*:MINGW*:*)</div><div class='del'>-	echo i386-pc-mingw32</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    p*:CYGWIN*:*)</div><div class='del'>-	echo powerpcle-unknown-cygwin32</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'>-	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'>-    *: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.</div><div class='del'>-	ld_help_string=`ld --help 2&gt;&amp;1`</div><div class='del'>-	ld_supported_emulations=`echo $ld_help_string \</div><div class='del'>-			 | sed -ne '/supported emulations:/!d</div><div class='del'>-				    s/[ 	][ 	]*/ /g</div><div class='del'>-				    s/.*supported emulations: *//</div><div class='del'>-				    s/ .*//</div><div class='del'>-				    p'`</div><div class='del'>-        case "$ld_supported_emulations" in</div><div class='del'>-	  i?86linux)  echo "${UNAME_MACHINE}-pc-linux-aout"      ; exit 0 ;;</div><div class='del'>-	  i?86coff)   echo "${UNAME_MACHINE}-pc-linux-coff"      ; exit 0 ;;</div><div class='del'>-	  sparclinux) echo "${UNAME_MACHINE}-unknown-linux-aout" ; exit 0 ;;</div><div class='del'>-	  m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-aout" ; exit 0 ;;</div><div class='del'>-	  elf32ppc)   echo "powerpc-unknown-linux"               ; exit 0 ;;</div><div class='del'>-	esac</div><div class='del'>-</div><div class='del'>-	if test "${UNAME_MACHINE}" = "alpha" ; then</div><div class='del'>-		sed 's/^	//'  &lt;&lt;EOF &gt;dummy.s</div><div class='del'>-		.globl main</div><div class='del'>-		.ent main</div><div class='del'>-	main:</div><div class='del'>-		.frame \$30,0,\$26,0</div><div class='del'>-		.prologue 0</div><div class='del'>-		.long 0x47e03d80 # implver $0</div><div class='del'>-		lda \$2,259</div><div class='del'>-		.long 0x47e20c21 # amask $2,$1</div><div class='del'>-		srl \$1,8,\$2</div><div class='del'>-		sll \$2,2,\$2</div><div class='del'>-		sll \$0,3,\$0</div><div class='del'>-		addl \$1,\$0,\$0</div><div class='del'>-		addl \$2,\$0,\$0</div><div class='del'>-		ret \$31,(\$26),1</div><div class='del'>-		.end main</div><div class='del'>-EOF</div><div class='del'>-		LIBC=""</div><div class='del'>-		${CC-cc} dummy.s -o dummy 2&gt;/dev/null</div><div class='del'>-		if test "$?" = 0 ; then</div><div class='del'>-			./dummy</div><div class='del'>-			case "$?" in</div><div class='del'>-			7)</div><div class='del'>-				UNAME_MACHINE="alpha"</div><div class='del'>-				;;</div><div class='del'>-			15)</div><div class='del'>-				UNAME_MACHINE="alphaev5"</div><div class='del'>-				;;</div><div class='del'>-			14)</div><div class='del'>-				UNAME_MACHINE="alphaev56"</div><div class='del'>-				;;</div><div class='del'>-			10)</div><div class='del'>-				UNAME_MACHINE="alphapca56"</div><div class='del'>-				;;</div><div class='del'>-			16)</div><div class='del'>-				UNAME_MACHINE="alphaev6"</div><div class='del'>-				;;</div><div class='del'>-			esac	</div><div class='del'>-</div><div class='del'>-			objdump --private-headers dummy | \</div><div class='del'>-			  grep ld.so.1 &gt; /dev/null</div><div class='del'>-			if test "$?" = 0 ; then</div><div class='del'>-				LIBC="-libc1"</div><div class='del'>-			fi</div><div class='del'>-		fi	</div><div class='del'>-		rm -f dummy.s dummy</div><div class='del'>-		echo ${UNAME_MACHINE}-unknown-linux${LIBC} ; exit 0</div><div class='del'>-	elif test "${UNAME_MACHINE}" = "mips" ; then</div><div class='del'>-	  cat &gt;dummy.c &lt;&lt;EOF</div><div class='del'>-main(argc, argv)</div><div class='del'>-     int argc;</div><div class='del'>-     char *argv[];</div><div class='del'>-{</div><div class='del'>-#ifdef __MIPSEB__</div><div class='del'>-  printf ("%s-unknown-linux\n", argv[1]);</div><div class='del'>-#endif</div><div class='del'>-#ifdef __MIPSEL__</div><div class='del'>-  printf ("%sel-unknown-linux\n", argv[1]);</div><div class='del'>-#endif</div><div class='del'>-  return 0;</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-	  ${CC-cc} dummy.c -o dummy 2&gt;/dev/null &amp;&amp; ./dummy "${UNAME_MACHINE}" &amp;&amp; rm dummy.c dummy &amp;&amp; exit 0</div><div class='del'>-	  rm -f dummy.c dummy</div><div class='del'>-	else</div><div class='del'>-	  case "${UNAME_MACHINE}" in</div><div class='del'>-	  i?86)</div><div class='del'>-	    VENDOR=pc;</div><div class='del'>-	    ;;</div><div class='del'>-	  *)</div><div class='del'>-	    VENDOR=unknown;</div><div class='del'>-	    ;;</div><div class='del'>-	  esac</div><div class='del'>-	  echo ${UNAME_MACHINE}-${VENDOR}-linux</div><div class='del'>-	  exit 0</div><div class='del'>-	fi ;;</div><div class='del'>-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions</div><div class='del'>-# are messed up and put the nodename in both sysname and nodename.</div><div class='del'>-    i?86:DYNIX/ptx:4*:*)</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:*:4.*:* | i?86:SYSTEM_V:4.*:*)</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_RELEASE}</div><div class='del'>-	else</div><div class='del'>-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}</div><div class='del'>-	fi</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|egrep Release|sed -e 's/.*= //')`</div><div class='del'>-		(/bin/uname -X|egrep i80486 &gt;/dev/null) &amp;&amp; UNAME_MACHINE=i486</div><div class='del'>-		(/bin/uname -X|egrep '^Machine.*Pentium' &gt;/dev/null) \</div><div class='del'>-			&amp;&amp; UNAME_MACHINE=i586</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'>-        # 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'>-    M68*:*:R3V[567]*:*)</div><div class='del'>-	test -r /sysV68 &amp;&amp; echo 'm68k-motorola-sysv' &amp;&amp; exit 0 ;;</div><div class='del'>-    3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*: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.*:*)</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'>-    i?86:LynxOS:2.*:*)</div><div class='del'>-	echo i386-unknown-lynxos${UNAME_RELEASE}</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.*:* | PowerPC:LynxOS:2.*:*)</div><div class='del'>-	echo rs6000-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*: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:CPunix: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'>-    mc68*:A/UX:*:*)</div><div class='del'>-	echo m68k-apple-aux${UNAME_RELEASE}</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    X680[02346]0:Human68k:*:*)</div><div class='del'>-	echo m68k-sharp-human</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'>-    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)</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'>-    DS/90*:*:*:V20*)</div><div class='del'>-  	echo sparc-fujitsu-uxpds</div><div class='del'>-  	exit 0 ;;</div><div class='del'>-    BeBox:BeOS:*:*)</div><div class='del'>-        echo powerpc-be-beos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    BeMac:BeOS:*:*)</div><div class='del'>-        echo powerpc-apple-beos</div><div class='del'>-	exit 0 ;;</div><div class='del'>-    BePC:BeOS:*:*)</div><div class='del'>-	echo i586-pc-beos</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'>-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'>-</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'>-  printf ("vax-dec-bsd\n"); exit (0);</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-cc} dummy.c -o dummy 2&gt;/dev/null &amp;&amp; ./dummy &amp;&amp; rm dummy.c dummy &amp;&amp; exit 0</div><div class='del'>-rm -f dummy.c dummy</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'>-#echo '(Unable to guess system type)' 1&gt;&amp;2</div><div class='del'>-</div><div class='del'>-exit 1</div><div class='head'>diff --git a/config.sub b/config.sub<br/>deleted file mode 100644<br/>index 9775812226..0000000000<br/>--- a/<a href='/ruby.git/tree/config.sub?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config.sub</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,966 +0,0 @@</div><div class='del'>-#! /bin/sh</div><div class='del'>-# Configuration validation subroutine script, version 1.1.</div><div class='del'>-#   Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.</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'>-# 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'>-if [ x$1 = x ]</div><div class='del'>-then</div><div class='del'>-	echo Configuration name missing. 1&gt;&amp;2</div><div class='del'>-	echo "Usage: $0 CPU-MFR-OPSYS" 1&gt;&amp;2</div><div class='del'>-	echo "or     $0 ALIAS" 1&gt;&amp;2</div><div class='del'>-	echo where ALIAS is a recognized configuration type. 1&gt;&amp;2</div><div class='del'>-	exit 1</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-# First pass through any local machine types.</div><div class='del'>-case $1 in</div><div class='del'>-	*local*)</div><div class='del'>-		echo $1</div><div class='del'>-		exit 0</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'>-# 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'>-  linux-gnu*)</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)</div><div class='del'>-		os=</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'>-	-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'>-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'>-	tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \</div><div class='del'>-		| arme[lb] | pyramid | mn10200 | mn10300 \</div><div class='del'>-		| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \</div><div class='del'>-		| alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \</div><div class='del'>-		| i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \</div><div class='del'>-		| mips64 | mipsel | mips64el | mips64orion | mips64orionel \</div><div class='del'>-		| mipstx39 | mipstx39el \</div><div class='del'>-		| sparc | sparclet | sparclite | sparc64 | v850)</div><div class='del'>-		basic_machine=$basic_machine-unknown</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[3456]86)</div><div class='del'>-	  basic_machine=$basic_machine-pc</div><div class='del'>-	  ;;</div><div class='del'>-	i[3456]86-TOWNS*)</div><div class='del'>-	  basic_machine=`echo $basic_machine | sed -e 's/-TOWNS.*/-TOWNS/'`</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'>-	vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \</div><div class='del'>-	      | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \</div><div class='del'>-	      | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \</div><div class='del'>-	      | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \</div><div class='del'>-	      | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \</div><div class='del'>-	      | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \</div><div class='del'>-	      | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \</div><div class='del'>-	      | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \</div><div class='del'>-	      | sparc64-* | mips64-* | mipsel-* \</div><div class='del'>-	      | mips64el-* | mips64orion-* | mips64orionel-*  \</div><div class='del'>-	      | mipstx39-* | mipstx39el-* \</div><div class='del'>-	      | f301-*)</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'>-	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'>-	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'>-	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-cbm</div><div class='del'>-		;;</div><div class='del'>-	amigaos | amigados)</div><div class='del'>-		basic_machine=m68k-cbm</div><div class='del'>-		os=-amigaos</div><div class='del'>-		;;</div><div class='del'>-	amigaunix | amix)</div><div class='del'>-		basic_machine=m68k-cbm</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'>-	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'>-	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 | ymp)</div><div class='del'>-		basic_machine=ymp-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	cray2)</div><div class='del'>-		basic_machine=cray2-cray</div><div class='del'>-		os=-unicos</div><div class='del'>-		;;</div><div class='del'>-	[ctj]90-cray)</div><div class='del'>-		basic_machine=c90-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'>-	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'>-	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'>-	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'>-	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'>-	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'>-	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'>-	hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)</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'>-	i370-ibm* | ibm*)</div><div class='del'>-		basic_machine=i370-ibm</div><div class='del'>-		os=-mvs</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[3456]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[3456]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[3456]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[3456]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'>-	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'>-	miniframe)</div><div class='del'>-		basic_machine=m68000-convergent</div><div class='del'>-		;;</div><div class='del'>-	mipsel*-linux*)</div><div class='del'>-		basic_machine=mipsel-unknown</div><div class='del'>-		os=-linux</div><div class='del'>-		;;</div><div class='del'>-	mips*-linux*)</div><div class='del'>-		basic_machine=mips-unknown</div><div class='del'>-		os=-linux</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'>-	ncr3000)</div><div class='del'>-		basic_machine=i486-ncr</div><div class='del'>-		os=-sysv4</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'>-	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'>-	np1)</div><div class='del'>-		basic_machine=np1-gould</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)</div><div class='del'>-		basic_machine=i586-intel</div><div class='del'>-		;;</div><div class='del'>-	pentiumpro | p6)</div><div class='del'>-		basic_machine=i686-intel</div><div class='del'>-		;;</div><div class='del'>-	pentium-* | p5-*)</div><div class='del'>-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	pentiumpro-* | p6-*)</div><div class='del'>-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`</div><div class='del'>-		;;</div><div class='del'>-	k5)</div><div class='del'>-		# We don't have specific support for AMD's K5 yet, so just call it a Pentium</div><div class='del'>-		basic_machine=i586-amd</div><div class='del'>-		;;</div><div class='del'>-	nexen)</div><div class='del'>-		# We don't have specific support for Nexgen yet, so just call it a Pentium</div><div class='del'>-		basic_machine=i586-nexgen</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=rs6000-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'>-	ps2)</div><div class='del'>-		basic_machine=i386-ibm</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'>-	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'>-	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'>-	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'>-	symmetry)</div><div class='del'>-		basic_machine=i386-sequent</div><div class='del'>-		os=-dynix</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'>-	tower | tower-32)</div><div class='del'>-		basic_machine=m68k-ncr</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'>-	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'>-	xmp)</div><div class='del'>-		basic_machine=xmp-cray</div><div class='del'>-		os=-unicos</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'>-	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'>-	mips)</div><div class='del'>-		if [ x$os = x-linux ]; then</div><div class='del'>-			basic_machine=mips-unknown</div><div class='del'>-		else</div><div class='del'>-			basic_machine=mips-mips</div><div class='del'>-		fi</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'>-	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'>-	sparc)</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'>-	*)</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'>-	human)</div><div class='del'>-		basic_machine=m68k-sharp</div><div class='del'>-		os=-human</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-gnu|'`</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* | -netbsd* | -openbsd* | -freebsd* | -riscix* \</div><div class='del'>-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \</div><div class='del'>-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \</div><div class='del'>-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \</div><div class='del'>-	      | -cygwin32* | -pe* | -psos* | -moss* | -proelf* \</div><div class='del'>-	      | -linux* | -bow*  | -rhapsody* | -openstep* )</div><div class='del'>-	# Remember, each alternative MUST END IN *, to match a version number.</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'>-	-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'>-	-ctix* | -uts*)</div><div class='del'>-		os=-sysv</div><div class='del'>-		;;</div><div class='del'>-	-ns2 )</div><div class='del'>-	        os=-nextstep2</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'>-	-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'>-	-xenix)</div><div class='del'>-		os=-xenix</div><div class='del'>-		;;</div><div class='del'>-	-uxpds)</div><div class='del'>-		os=-uxpds</div><div class='del'>-		;;</div><div class='del'>-	-human)</div><div class='del'>-		;;</div><div class='del'>-	-beos)</div><div class='del'>-	        os=-beos</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*-semi)</div><div class='del'>-		os=-aout</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'>-	*-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'>-	*-ibm)</div><div class='del'>-		os=-aix</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'>-	f301-fujitsu)</div><div class='del'>-		os=-uxpv</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'>-			-hpux*)</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*)</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'>-			-vxsim* | -vxworks*)</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'>-		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='head'>diff --git a/config_h.dj b/config_h.dj<br/>deleted file mode 100644<br/>index 2a81c29594..0000000000<br/>--- a/<a href='/ruby.git/tree/config_h.dj?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config_h.dj</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,64 +0,0 @@</div><div class='del'>-#define THREAD 1</div><div class='del'>-#define SIZEOF_INT 4</div><div class='del'>-#define SIZEOF_LONG 4</div><div class='del'>-#define SIZEOF_VOIDP 4</div><div class='del'>-#define HAVE_PROTOTYPES 1</div><div class='del'>-#define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-#define HAVE_ATTR_NORETURN 1</div><div class='del'>-#define HAVE_DIRENT_H 1</div><div class='del'>-#define STDC_HEADERS 1</div><div class='del'>-#define HAVE_STDLIB_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_PWD_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_SYS_WAIT_H 1</div><div class='del'>-#define HAVE_STRING_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_ST_BLKSIZE 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 vfork fork</div><div class='del'>-#define HAVE_DUP2 1</div><div class='del'>-#define HAVE_SETENV 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_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_STRDUP 1</div><div class='del'>-#define HAVE_FMOD 1</div><div class='del'>-#define HAVE_RANDOM 1</div><div class='del'>-#define HAVE_WAITPID 1</div><div class='del'>-#define HAVE_GETCWD 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_SETITIMER 1*/</div><div class='del'>-#define HAVE_GETGROUPS 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 POSIX_SIGNAL 1</div><div class='del'>-#define BSD_SETPGRP setpgrp</div><div class='del'>-#define RSHIFT(x,y) ((x)&gt;&gt;y)</div><div class='del'>-#define FILE_COUNT _cnt</div><div class='del'>-#define DLEXT ".o"</div><div class='del'>-#define RUBY_LIB "/usr/local/lib/ruby"</div><div class='del'>-#define RUBY_SITE_LIB "/usr/local/lib/ruby/site_ruby"</div><div class='del'>-#define RUBY_ARCHLIB "/usr/local/lib/ruby/i386-djgpp"</div><div class='del'>-#define RUBY_SITE_ARCHLIB "/usr/local/lib/ruby/site_ruby/i386-djgpp"</div><div class='del'>-#define RUBY_PLATFORM "i386-djgpp"</div><div class='head'>diff --git a/config_s.dj b/config_s.dj<br/>deleted file mode 100644<br/>index d6d3836613..0000000000<br/>--- a/<a href='/ruby.git/tree/config_s.dj?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>config_s.dj</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,49 +0,0 @@</div><div class='del'>-s%@CFLAGS@%-g -O2%g</div><div class='del'>-s%@CPPFLAGS@%%g</div><div class='del'>-s%@CXXFLAGS@%%g</div><div class='del'>-s%@DEFS@% -DTHREAD=1 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_ATTR_NORETURN=1 -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_FILE_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_PWD_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_STRING_H=1 -DHAVE_UTIME_H=1 -DHAVE_MEMORY_H=1 -DHAVE_DIRECT_H=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=gid_t -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -Dvfork=fork -DHAVE_DUP2=1 -DHAVE_SETENV=1 -DHAVE_MEMMOVE=1 -DHAVE_MKDIR=1 -DHAVE_STRCASECMP=1 -DHAVE_STRERROR=1 -DHAVE_STRFTIME=1 -DHAVE_STRCHR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOUL=1 -DHAVE_STRDUP=1 -DHAVE_FMOD=1 -DHAVE_RANDOM=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_TRUNCATE=1 -DHAVE_CHSIZE=1 -DHAVE_TIMES=1 -DHAVE_UTIMES=1 -DHAVE_FCNTL=1 -DHAVE_SETITIMER=1 -DHAVE_GETGROUPS=1 -DHAVE_SIGPROCMASK=1 -DHAVE_SIGACTION=1 -DHAVE_SETSID=1 -DPOSIX_SIGNAL=1 -DBSD_SETPGRP=setpgrp -DRSHIFT=\(x,y\)\ \(\(x\)\&gt;\&gt;y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DRUBY_LIB=\"/usr/local/lib/ruby\" -DRUBY_SITE_LIB=\"/usr/local/lib/ruby/site_ruby\" -DRUBY_ARCHLIB=\"/usr/local/lib/ruby/i386-djgpp\" -DRUBY_SITE_ARCHLIB=\"/usr/local/lib/ruby/site_ruby/i386-djgpp\" -DRUBY_PLATFORM=\"i386-djgpp\" %g</div><div class='del'>-s%@LDFLAGS@%%g</div><div class='del'>-s%@LIBS@%-lm %g</div><div class='del'>-s%@exec_prefix@%${prefix}%g</div><div class='del'>-s%@prefix@%/usr/local%g</div><div class='del'>-s%@program_transform_name@%s,x,x,%g</div><div class='del'>-s%@bindir@%${exec_prefix}/bin%g</div><div class='del'>-s%@sbindir@%${exec_prefix}/sbin%g</div><div class='del'>-s%@libexecdir@%${exec_prefix}/libexec%g</div><div class='del'>-s%@datadir@%${prefix}/share%g</div><div class='del'>-s%@sysconfdir@%${prefix}/etc%g</div><div class='del'>-s%@sharedstatedir@%${prefix}/com%g</div><div class='del'>-s%@localstatedir@%${prefix}/var%g</div><div class='del'>-s%@libdir@%${exec_prefix}/lib%g</div><div class='del'>-s%@includedir@%${prefix}/include%g</div><div class='del'>-s%@oldincludedir@%/usr/include%g</div><div class='del'>-s%@infodir@%${prefix}/info%g</div><div class='del'>-s%@mandir@%${prefix}/man%g</div><div class='del'>-s%@host@%i386-pc-djgpp%g</div><div class='del'>-s%@host_alias@%i386-djgpp%g</div><div class='del'>-s%@host_cpu@%i386%g</div><div class='del'>-s%@host_vendor@%pc%g</div><div class='del'>-s%@host_os@%djgpp%g</div><div class='del'>-s%@CC@%gcc%g</div><div class='del'>-s%@CPP@%gcc -E%g</div><div class='del'>-s%@YACC@%bison -y%g</div><div class='del'>-s%@RANLIB@%ranlib%g</div><div class='del'>-s%@AR@%ar%g</div><div class='del'>-s%@INSTALL_PROGRAM@%${INSTALL}%g</div><div class='del'>-s%@INSTALL_DATA@%${INSTALL} -m 644%g</div><div class='del'>-s%@SET_MAKE@%%g</div><div class='del'>-s%@LIBOBJS@% crypt.o flock.o snprintf.o%g</div><div class='del'>-s%@ALLOCA@%%g</div><div class='del'>-s%@DLDFLAGS@%%g</div><div class='del'>-s%@STATIC@%%g</div><div class='del'>-s%@CCDLFLAGS@%%g</div><div class='del'>-s%@LDSHARED@%ld%g</div><div class='del'>-s%@DLEXT@%o%g</div><div class='del'>-s%@STRIP@%strip%g</div><div class='del'>-s%@EXTSTATIC@%%g</div><div class='del'>-s%@binsuffix@%.exe%g</div><div class='del'>-s%@setup@%Setup%g</div><div class='del'>-s%@LIBRUBY@%libruby.a%g</div><div class='del'>-s%@LIBRUBYARG@%libruby.a%g</div><div class='del'>-s%@SOLIBS@%%g</div><div class='del'>-s%@arch@%i386-djgpp%g</div><div class='head'>diff --git a/configure b/configure<br/>deleted file mode 100644<br/>index b3e31db719..0000000000<br/>--- a/<a href='/ruby.git/tree/configure?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>configure</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,4273 +0,0 @@</div><div class='del'>-#! /bin/sh</div><div class='del'>-</div><div class='del'>-# Guess values for system-dependent variables and create Makefiles.</div><div class='del'>-# Generated automatically using autoconf version 2.12 </div><div class='del'>-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.</div><div class='del'>-#</div><div class='del'>-# This configure script is free software; the Free Software Foundation</div><div class='del'>-# gives unlimited permission to copy, distribute and modify it.</div><div class='del'>-</div><div class='del'>-# Defaults:</div><div class='del'>-ac_help=</div><div class='del'>-ac_default_prefix=/usr/local</div><div class='del'>-# Any additions from configure.in:</div><div class='del'>-ac_help="$ac_help</div><div class='del'>---without-gcc             never use gcc"</div><div class='del'>-ac_help="$ac_help</div><div class='del'>---disable-thread          never use user-level thread"</div><div class='del'>-ac_help="$ac_help</div><div class='del'>---enable-fat-binary       build a NeXT/Apple Multi Architecture Binary. "</div><div class='del'>-ac_help="$ac_help</div><div class='del'>---with-dln-a-out          use dln_a_out if possible"</div><div class='del'>-ac_help="$ac_help</div><div class='del'>---with-static-linked-ext  link external modules statically"</div><div class='del'>-</div><div class='del'>-# Initialize some variables set by options.</div><div class='del'>-# The variables have the same names as the options, with</div><div class='del'>-# dashes changed to underlines.</div><div class='del'>-build=NONE</div><div class='del'>-cache_file=./config.cache</div><div class='del'>-exec_prefix=NONE</div><div class='del'>-host=NONE</div><div class='del'>-no_create=</div><div class='del'>-nonopt=NONE</div><div class='del'>-no_recursion=</div><div class='del'>-prefix=NONE</div><div class='del'>-program_prefix=NONE</div><div class='del'>-program_suffix=NONE</div><div class='del'>-program_transform_name=s,x,x,</div><div class='del'>-silent=</div><div class='del'>-site=</div><div class='del'>-srcdir=</div><div class='del'>-target=NONE</div><div class='del'>-verbose=</div><div class='del'>-x_includes=NONE</div><div class='del'>-x_libraries=NONE</div><div class='del'>-bindir='${exec_prefix}/bin'</div><div class='del'>-sbindir='${exec_prefix}/sbin'</div><div class='del'>-libexecdir='${exec_prefix}/libexec'</div><div class='del'>-datadir='${prefix}/share'</div><div class='del'>-sysconfdir='${prefix}/etc'</div><div class='del'>-sharedstatedir='${prefix}/com'</div><div class='del'>-localstatedir='${prefix}/var'</div><div class='del'>-libdir='${exec_prefix}/lib'</div><div class='del'>-includedir='${prefix}/include'</div><div class='del'>-oldincludedir='/usr/include'</div><div class='del'>-infodir='${prefix}/info'</div><div class='del'>-mandir='${prefix}/man'</div><div class='del'>-</div><div class='del'>-# Initialize some other variables.</div><div class='del'>-subdirs=</div><div class='del'>-MFLAGS= MAKEFLAGS=</div><div class='del'>-# Maximum number of lines to put in a shell here document.</div><div class='del'>-ac_max_here_lines=12</div><div class='del'>-</div><div class='del'>-ac_prev=</div><div class='del'>-for ac_option</div><div class='del'>-do</div><div class='del'>-</div><div class='del'>-  # If the previous option needs an argument, assign it.</div><div class='del'>-  if test -n "$ac_prev"; then</div><div class='del'>-    eval "$ac_prev=\$ac_option"</div><div class='del'>-    ac_prev=</div><div class='del'>-    continue</div><div class='del'>-  fi</div><div class='del'>-</div><div class='del'>-  case "$ac_option" in</div><div class='del'>-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;</div><div class='del'>-  *) ac_optarg= ;;</div><div class='del'>-  esac</div><div class='del'>-</div><div class='del'>-  # Accept the important Cygnus configure options, so we can diagnose typos.</div><div class='del'>-</div><div class='del'>-  case "$ac_option" in</div><div class='del'>-</div><div class='del'>-  -bindir | --bindir | --bindi | --bind | --bin | --bi)</div><div class='del'>-    ac_prev=bindir ;;</div><div class='del'>-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)</div><div class='del'>-    bindir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -build | --build | --buil | --bui | --bu)</div><div class='del'>-    ac_prev=build ;;</div><div class='del'>-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)</div><div class='del'>-    build="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -cache-file | --cache-file | --cache-fil | --cache-fi \</div><div class='del'>-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)</div><div class='del'>-    ac_prev=cache_file ;;</div><div class='del'>-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \</div><div class='del'>-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)</div><div class='del'>-    cache_file="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)</div><div class='del'>-    ac_prev=datadir ;;</div><div class='del'>-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \</div><div class='del'>-  | --da=*)</div><div class='del'>-    datadir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -disable-* | --disable-*)</div><div class='del'>-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`</div><div class='del'>-    # Reject names that are not valid shell variable names.</div><div class='del'>-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then</div><div class='del'>-      { echo "configure: error: $ac_feature: invalid feature name" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    fi</div><div class='del'>-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`</div><div class='del'>-    eval "enable_${ac_feature}=no" ;;</div><div class='del'>-</div><div class='del'>-  -enable-* | --enable-*)</div><div class='del'>-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`</div><div class='del'>-    # Reject names that are not valid shell variable names.</div><div class='del'>-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then</div><div class='del'>-      { echo "configure: error: $ac_feature: invalid feature name" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    fi</div><div class='del'>-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`</div><div class='del'>-    case "$ac_option" in</div><div class='del'>-      *=*) ;;</div><div class='del'>-      *) ac_optarg=yes ;;</div><div class='del'>-    esac</div><div class='del'>-    eval "enable_${ac_feature}='$ac_optarg'" ;;</div><div class='del'>-</div><div class='del'>-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \</div><div class='del'>-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \</div><div class='del'>-  | --exec | --exe | --ex)</div><div class='del'>-    ac_prev=exec_prefix ;;</div><div class='del'>-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \</div><div class='del'>-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \</div><div class='del'>-  | --exec=* | --exe=* | --ex=*)</div><div class='del'>-    exec_prefix="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -gas | --gas | --ga | --g)</div><div class='del'>-    # Obsolete; use --with-gas.</div><div class='del'>-    with_gas=yes ;;</div><div class='del'>-</div><div class='del'>-  -help | --help | --hel | --he)</div><div class='del'>-    # Omit some internal or obsolete options to make the list less imposing.</div><div class='del'>-    # This message is too long to be a string in the A/UX 3.1 sh.</div><div class='del'>-    cat &lt;&lt; EOF</div><div class='del'>-Usage: configure [options] [host]</div><div class='del'>-Options: [defaults in brackets after descriptions]</div><div class='del'>-Configuration:</div><div class='del'>-  --cache-file=FILE       cache test results in FILE</div><div class='del'>-  --help                  print this message</div><div class='del'>-  --no-create             do not create output files</div><div class='del'>-  --quiet, --silent       do not print \`checking...' messages</div><div class='del'>-  --version               print the version of autoconf that created configure</div><div class='del'>-Directory and file names:</div><div class='del'>-  --prefix=PREFIX         install architecture-independent files in PREFIX</div><div class='del'>-                          [$ac_default_prefix]</div><div class='del'>-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX</div><div class='del'>-                          [same as prefix]</div><div class='del'>-  --bindir=DIR            user executables in DIR [EPREFIX/bin]</div><div class='del'>-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]</div><div class='del'>-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]</div><div class='del'>-  --datadir=DIR           read-only architecture-independent data in DIR</div><div class='del'>-                          [PREFIX/share]</div><div class='del'>-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]</div><div class='del'>-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR</div><div class='del'>-                          [PREFIX/com]</div><div class='del'>-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]</div><div class='del'>-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]</div><div class='del'>-  --includedir=DIR        C header files in DIR [PREFIX/include]</div><div class='del'>-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]</div><div class='del'>-  --infodir=DIR           info documentation in DIR [PREFIX/info]</div><div class='del'>-  --mandir=DIR            man documentation in DIR [PREFIX/man]</div><div class='del'>-  --srcdir=DIR            find the sources in DIR [configure dir or ..]</div><div class='del'>-  --program-prefix=PREFIX prepend PREFIX to installed program names</div><div class='del'>-  --program-suffix=SUFFIX append SUFFIX to installed program names</div><div class='del'>-  --program-transform-name=PROGRAM</div><div class='del'>-                          run sed PROGRAM on installed program names</div><div class='del'>-EOF</div><div class='del'>-    cat &lt;&lt; EOF</div><div class='del'>-Host type:</div><div class='del'>-  --build=BUILD           configure for building on BUILD [BUILD=HOST]</div><div class='del'>-  --host=HOST             configure for HOST [guessed]</div><div class='del'>-  --target=TARGET         configure for TARGET [TARGET=HOST]</div><div class='del'>-Features and packages:</div><div class='del'>-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)</div><div class='del'>-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]</div><div class='del'>-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]</div><div class='del'>-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)</div><div class='del'>-  --x-includes=DIR        X include files are in DIR</div><div class='del'>-  --x-libraries=DIR       X library files are in DIR</div><div class='del'>-EOF</div><div class='del'>-    if test -n "$ac_help"; then</div><div class='del'>-      echo "--enable and --with options recognized:$ac_help"</div><div class='del'>-    fi</div><div class='del'>-    exit 0 ;;</div><div class='del'>-</div><div class='del'>-  -host | --host | --hos | --ho)</div><div class='del'>-    ac_prev=host ;;</div><div class='del'>-  -host=* | --host=* | --hos=* | --ho=*)</div><div class='del'>-    host="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -includedir | --includedir | --includedi | --included | --include \</div><div class='del'>-  | --includ | --inclu | --incl | --inc)</div><div class='del'>-    ac_prev=includedir ;;</div><div class='del'>-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \</div><div class='del'>-  | --includ=* | --inclu=* | --incl=* | --inc=*)</div><div class='del'>-    includedir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -infodir | --infodir | --infodi | --infod | --info | --inf)</div><div class='del'>-    ac_prev=infodir ;;</div><div class='del'>-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)</div><div class='del'>-    infodir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -libdir | --libdir | --libdi | --libd)</div><div class='del'>-    ac_prev=libdir ;;</div><div class='del'>-  -libdir=* | --libdir=* | --libdi=* | --libd=*)</div><div class='del'>-    libdir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \</div><div class='del'>-  | --libexe | --libex | --libe)</div><div class='del'>-    ac_prev=libexecdir ;;</div><div class='del'>-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \</div><div class='del'>-  | --libexe=* | --libex=* | --libe=*)</div><div class='del'>-    libexecdir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -localstatedir | --localstatedir | --localstatedi | --localstated \</div><div class='del'>-  | --localstate | --localstat | --localsta | --localst \</div><div class='del'>-  | --locals | --local | --loca | --loc | --lo)</div><div class='del'>-    ac_prev=localstatedir ;;</div><div class='del'>-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \</div><div class='del'>-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \</div><div class='del'>-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)</div><div class='del'>-    localstatedir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)</div><div class='del'>-    ac_prev=mandir ;;</div><div class='del'>-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)</div><div class='del'>-    mandir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -nfp | --nfp | --nf)</div><div class='del'>-    # Obsolete; use --without-fp.</div><div class='del'>-    with_fp=no ;;</div><div class='del'>-</div><div class='del'>-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \</div><div class='del'>-  | --no-cr | --no-c)</div><div class='del'>-    no_create=yes ;;</div><div class='del'>-</div><div class='del'>-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \</div><div class='del'>-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)</div><div class='del'>-    no_recursion=yes ;;</div><div class='del'>-</div><div class='del'>-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \</div><div class='del'>-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \</div><div class='del'>-  | --oldin | --oldi | --old | --ol | --o)</div><div class='del'>-    ac_prev=oldincludedir ;;</div><div class='del'>-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \</div><div class='del'>-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \</div><div class='del'>-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)</div><div class='del'>-    oldincludedir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)</div><div class='del'>-    ac_prev=prefix ;;</div><div class='del'>-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)</div><div class='del'>-    prefix="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -program-prefix | --program-prefix | --program-prefi | --program-pref \</div><div class='del'>-  | --program-pre | --program-pr | --program-p)</div><div class='del'>-    ac_prev=program_prefix ;;</div><div class='del'>-  -program-prefix=* | --program-prefix=* | --program-prefi=* \</div><div class='del'>-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)</div><div class='del'>-    program_prefix="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -program-suffix | --program-suffix | --program-suffi | --program-suff \</div><div class='del'>-  | --program-suf | --program-su | --program-s)</div><div class='del'>-    ac_prev=program_suffix ;;</div><div class='del'>-  -program-suffix=* | --program-suffix=* | --program-suffi=* \</div><div class='del'>-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)</div><div class='del'>-    program_suffix="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -program-transform-name | --program-transform-name \</div><div class='del'>-  | --program-transform-nam | --program-transform-na \</div><div class='del'>-  | --program-transform-n | --program-transform- \</div><div class='del'>-  | --program-transform | --program-transfor \</div><div class='del'>-  | --program-transfo | --program-transf \</div><div class='del'>-  | --program-trans | --program-tran \</div><div class='del'>-  | --progr-tra | --program-tr | --program-t)</div><div class='del'>-    ac_prev=program_transform_name ;;</div><div class='del'>-  -program-transform-name=* | --program-transform-name=* \</div><div class='del'>-  | --program-transform-nam=* | --program-transform-na=* \</div><div class='del'>-  | --program-transform-n=* | --program-transform-=* \</div><div class='del'>-  | --program-transform=* | --program-transfor=* \</div><div class='del'>-  | --program-transfo=* | --program-transf=* \</div><div class='del'>-  | --program-trans=* | --program-tran=* \</div><div class='del'>-  | --progr-tra=* | --program-tr=* | --program-t=*)</div><div class='del'>-    program_transform_name="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \</div><div class='del'>-  | -silent | --silent | --silen | --sile | --sil)</div><div class='del'>-    silent=yes ;;</div><div class='del'>-</div><div class='del'>-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)</div><div class='del'>-    ac_prev=sbindir ;;</div><div class='del'>-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \</div><div class='del'>-  | --sbi=* | --sb=*)</div><div class='del'>-    sbindir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -sharedstatedir | --sharedstatedir | --sharedstatedi \</div><div class='del'>-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \</div><div class='del'>-  | --sharedst | --shareds | --shared | --share | --shar \</div><div class='del'>-  | --sha | --sh)</div><div class='del'>-    ac_prev=sharedstatedir ;;</div><div class='del'>-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \</div><div class='del'>-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \</div><div class='del'>-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \</div><div class='del'>-  | --sha=* | --sh=*)</div><div class='del'>-    sharedstatedir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -site | --site | --sit)</div><div class='del'>-    ac_prev=site ;;</div><div class='del'>-  -site=* | --site=* | --sit=*)</div><div class='del'>-    site="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)</div><div class='del'>-    ac_prev=srcdir ;;</div><div class='del'>-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)</div><div class='del'>-    srcdir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \</div><div class='del'>-  | --syscon | --sysco | --sysc | --sys | --sy)</div><div class='del'>-    ac_prev=sysconfdir ;;</div><div class='del'>-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \</div><div class='del'>-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)</div><div class='del'>-    sysconfdir="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -target | --target | --targe | --targ | --tar | --ta | --t)</div><div class='del'>-    ac_prev=target ;;</div><div class='del'>-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)</div><div class='del'>-    target="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -v | -verbose | --verbose | --verbos | --verbo | --verb)</div><div class='del'>-    verbose=yes ;;</div><div class='del'>-</div><div class='del'>-  -version | --version | --versio | --versi | --vers)</div><div class='del'>-    echo "configure generated by autoconf version 2.12"</div><div class='del'>-    exit 0 ;;</div><div class='del'>-</div><div class='del'>-  -with-* | --with-*)</div><div class='del'>-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`</div><div class='del'>-    # Reject names that are not valid shell variable names.</div><div class='del'>-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then</div><div class='del'>-      { echo "configure: error: $ac_package: invalid package name" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    fi</div><div class='del'>-    ac_package=`echo $ac_package| sed 's/-/_/g'`</div><div class='del'>-    case "$ac_option" in</div><div class='del'>-      *=*) ;;</div><div class='del'>-      *) ac_optarg=yes ;;</div><div class='del'>-    esac</div><div class='del'>-    eval "with_${ac_package}='$ac_optarg'" ;;</div><div class='del'>-</div><div class='del'>-  -without-* | --without-*)</div><div class='del'>-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`</div><div class='del'>-    # Reject names that are not valid shell variable names.</div><div class='del'>-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then</div><div class='del'>-      { echo "configure: error: $ac_package: invalid package name" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    fi</div><div class='del'>-    ac_package=`echo $ac_package| sed 's/-/_/g'`</div><div class='del'>-    eval "with_${ac_package}=no" ;;</div><div class='del'>-</div><div class='del'>-  --x)</div><div class='del'>-    # Obsolete; use --with-x.</div><div class='del'>-    with_x=yes ;;</div><div class='del'>-</div><div class='del'>-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \</div><div class='del'>-  | --x-incl | --x-inc | --x-in | --x-i)</div><div class='del'>-    ac_prev=x_includes ;;</div><div class='del'>-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \</div><div class='del'>-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)</div><div class='del'>-    x_includes="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -x-libraries | --x-libraries | --x-librarie | --x-librari \</div><div class='del'>-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)</div><div class='del'>-    ac_prev=x_libraries ;;</div><div class='del'>-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \</div><div class='del'>-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)</div><div class='del'>-    x_libraries="$ac_optarg" ;;</div><div class='del'>-</div><div class='del'>-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    ;;</div><div class='del'>-</div><div class='del'>-  *)</div><div class='del'>-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then</div><div class='del'>-      echo "configure: warning: $ac_option: invalid host type" 1&gt;&amp;2</div><div class='del'>-    fi</div><div class='del'>-    if test "x$nonopt" != xNONE; then</div><div class='del'>-      { echo "configure: error: can only configure for one host and one target at a time" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    fi</div><div class='del'>-    nonopt="$ac_option"</div><div class='del'>-    ;;</div><div class='del'>-</div><div class='del'>-  esac</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-if test -n "$ac_prev"; then</div><div class='del'>-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1&gt;&amp;2; exit 1; }</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15</div><div class='del'>-</div><div class='del'>-# File descriptor usage:</div><div class='del'>-# 0 standard input</div><div class='del'>-# 1 file creation</div><div class='del'>-# 2 errors and warnings</div><div class='del'>-# 3 some systems may open it to /dev/tty</div><div class='del'>-# 4 used on the Kubota Titan</div><div class='del'>-# 6 checking for... messages and results</div><div class='del'>-# 5 compiler messages saved in config.log</div><div class='del'>-if test "$silent" = yes; then</div><div class='del'>-  exec 6&gt;/dev/null</div><div class='del'>-else</div><div class='del'>-  exec 6&gt;&amp;1</div><div class='del'>-fi</div><div class='del'>-exec 5&gt;./config.log</div><div class='del'>-</div><div class='del'>-echo "\</div><div class='del'>-This file contains any messages produced by compilers while</div><div class='del'>-running configure, to aid debugging if configure makes a mistake.</div><div class='del'>-" 1&gt;&amp;5</div><div class='del'>-</div><div class='del'>-# Strip out --no-create and --no-recursion so they do not pile up.</div><div class='del'>-# Also quote any args containing shell metacharacters.</div><div class='del'>-ac_configure_args=</div><div class='del'>-for ac_arg</div><div class='del'>-do</div><div class='del'>-  case "$ac_arg" in</div><div class='del'>-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \</div><div class='del'>-  | --no-cr | --no-c) ;;</div><div class='del'>-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \</div><div class='del'>-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;</div><div class='del'>-  *" "*|*"	"*|*[\[\]\~\#\$\^\&amp;\*\(\)\{\}\\\|\;\&lt;\&gt;\?]*)</div><div class='del'>-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;</div><div class='del'>-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;</div><div class='del'>-  esac</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-# NLS nuisances.</div><div class='del'>-# Only set these to C if already set.  These must not be set unconditionally</div><div class='del'>-# because not all systems understand e.g. LANG=C (notably SCO).</div><div class='del'>-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!</div><div class='del'>-# Non-C LC_CTYPE values break the ctype check.</div><div class='del'>-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi</div><div class='del'>-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi</div><div class='del'>-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi</div><div class='del'>-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi</div><div class='del'>-</div><div class='del'>-# confdefs.h avoids OS command line length limits that DEFS can exceed.</div><div class='del'>-rm -rf conftest* confdefs.h</div><div class='del'>-# AIX cpp loses on an empty file, so make sure it contains at least a newline.</div><div class='del'>-echo &gt; confdefs.h</div><div class='del'>-</div><div class='del'>-# A filename unique to this package, relative to the directory that</div><div class='del'>-# configure is in, which we can look for to find out if srcdir is correct.</div><div class='del'>-ac_unique_file=ruby.h</div><div class='del'>-</div><div class='del'>-# Find the source files, if location was not specified.</div><div class='del'>-if test -z "$srcdir"; then</div><div class='del'>-  ac_srcdir_defaulted=yes</div><div class='del'>-  # Try the directory containing this script, then its parent.</div><div class='del'>-  ac_prog=$0</div><div class='del'>-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`</div><div class='del'>-  test "x$ac_confdir" = "x$ac_prog" &amp;&amp; ac_confdir=.</div><div class='del'>-  srcdir=$ac_confdir</div><div class='del'>-  if test ! -r $srcdir/$ac_unique_file; then</div><div class='del'>-    srcdir=..</div><div class='del'>-  fi</div><div class='del'>-else</div><div class='del'>-  ac_srcdir_defaulted=no</div><div class='del'>-fi</div><div class='del'>-if test ! -r $srcdir/$ac_unique_file; then</div><div class='del'>-  if test "$ac_srcdir_defaulted" = yes; then</div><div class='del'>-    { echo "configure: error: can not find sources in $ac_confdir or .." 1&gt;&amp;2; exit 1; }</div><div class='del'>-  else</div><div class='del'>-    { echo "configure: error: can not find sources in $srcdir" 1&gt;&amp;2; exit 1; }</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`</div><div class='del'>-</div><div class='del'>-# Prefer explicitly selected file to automatically selected ones.</div><div class='del'>-if test -z "$CONFIG_SITE"; then</div><div class='del'>-  if test "x$prefix" != xNONE; then</div><div class='del'>-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"</div><div class='del'>-  else</div><div class='del'>-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-for ac_site_file in $CONFIG_SITE; do</div><div class='del'>-  if test -r "$ac_site_file"; then</div><div class='del'>-    echo "loading site script $ac_site_file"</div><div class='del'>-    . "$ac_site_file"</div><div class='del'>-  fi</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-if test -r "$cache_file"; then</div><div class='del'>-  echo "loading cache $cache_file"</div><div class='del'>-  . $cache_file</div><div class='del'>-else</div><div class='del'>-  echo "creating cache $cache_file"</div><div class='del'>-  &gt; $cache_file</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-ac_ext=c</div><div class='del'>-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.</div><div class='del'>-ac_cpp='$CPP $CPPFLAGS'</div><div class='del'>-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1&gt;&amp;5'</div><div class='del'>-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1&gt;&amp;5'</div><div class='del'>-cross_compiling=$ac_cv_prog_cc_cross</div><div class='del'>-</div><div class='del'>-if (echo "testing\c"; echo 1,2,3) | grep c &gt;/dev/null; then</div><div class='del'>-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.</div><div class='del'>-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn &gt;/dev/null; then</div><div class='del'>-    ac_n= ac_c='</div><div class='del'>-' ac_t='	'</div><div class='del'>-  else</div><div class='del'>-    ac_n=-n ac_c= ac_t=</div><div class='del'>-  fi</div><div class='del'>-else</div><div class='del'>-  ac_n= ac_c='\c' ac_t=</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# Check whether --with-gcc or --without-gcc was given.</div><div class='del'>-if test "${with_gcc+set}" = set; then</div><div class='del'>-  withval="$with_gcc"</div><div class='del'>-  </div><div class='del'>-	case $withval in</div><div class='del'>-	no)	CC=cc</div><div class='del'>-		without_gcc=yes;;</div><div class='del'>-	yes)	CC=gcc</div><div class='del'>-		without_gcc=no;;</div><div class='del'>-	*)	CC=$withval</div><div class='del'>-		without_gcc=$withval;;</div><div class='del'>-	esac</div><div class='del'>-else</div><div class='del'>-  without_gcc=no</div><div class='del'>-fi</div><div class='del'>-</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'>-  { echo "configure: 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)" 1&gt;&amp;2; exit 1; }</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-rb_thread=yes</div><div class='del'>-# Check whether --enable-thread or --disable-thread was given.</div><div class='del'>-if test "${enable_thread+set}" = set; then</div><div class='del'>-  enableval="$enable_thread"</div><div class='del'>-  </div><div class='del'>-	rb_thread=$enableval</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test $rb_thread = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define THREAD 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-ac_aux_dir=</div><div class='del'>-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do</div><div class='del'>-  if test -f $ac_dir/install-sh; then</div><div class='del'>-    ac_aux_dir=$ac_dir</div><div class='del'>-    ac_install_sh="$ac_aux_dir/install-sh -c"</div><div class='del'>-    break</div><div class='del'>-  elif test -f $ac_dir/install.sh; then</div><div class='del'>-    ac_aux_dir=$ac_dir</div><div class='del'>-    ac_install_sh="$ac_aux_dir/install.sh -c"</div><div class='del'>-    break</div><div class='del'>-  fi</div><div class='del'>-done</div><div class='del'>-if test -z "$ac_aux_dir"; then</div><div class='del'>-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1&gt;&amp;2; exit 1; }</div><div class='del'>-fi</div><div class='del'>-ac_config_guess=$ac_aux_dir/config.guess</div><div class='del'>-ac_config_sub=$ac_aux_dir/config.sub</div><div class='del'>-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# Make sure we can run config.sub.</div><div class='del'>-if $ac_config_sub sun4 &gt;/dev/null 2&gt;&amp;1; then :</div><div class='del'>-else { echo "configure: error: can not run $ac_config_sub" 1&gt;&amp;2; exit 1; }</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking host system type""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:597: checking host system type" &gt;&amp;5</div><div class='del'>-</div><div class='del'>-host_alias=$host</div><div class='del'>-case "$host_alias" in</div><div class='del'>-NONE)</div><div class='del'>-  case $nonopt in</div><div class='del'>-  NONE)</div><div class='del'>-    if host_alias=`$ac_config_guess`; then :</div><div class='del'>-    else { echo "configure: error: can not guess host type; you must specify one" 1&gt;&amp;2; exit 1; }</div><div class='del'>-    fi ;;</div><div class='del'>-  *) host_alias=$nonopt ;;</div><div class='del'>-  esac ;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-host=`$ac_config_sub $host_alias`</div><div class='del'>-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`</div><div class='del'>-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`</div><div class='del'>-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`</div><div class='del'>-echo "$ac_t""$host" 1&gt;&amp;6</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-fat_binary=no</div><div class='del'>-# Check whether --enable-fat-binary or --disable-fat-binary was given.</div><div class='del'>-if test "${enable_fat_binary+set}" = set; then</div><div class='del'>-  enableval="$enable_fat_binary"</div><div class='del'>-   fat_binary=$enableval  </div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-      if test "$fat_binary" = yes ; then</div><div class='del'>-</div><div class='del'>-    echo $ac_n "checking target architecture ""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:628: checking target architecture " &gt;&amp;5</div><div class='del'>-</div><div class='del'>-    if test "$host_os" = "rhapsody" ; then</div><div class='del'>-        echo -n "Rhapsody: "</div><div class='del'>-	if test "$TARGET_ARCHS" = "" ; then</div><div class='del'>-           TARGET_ARCHS="ppc i486"</div><div class='del'>-  	fi</div><div class='del'>-    else</div><div class='del'>-  	echo -n "NeXTSTEP/OPENSTEP: "</div><div class='del'>-        if test "$TARGET_ARCHS" = "" ; then</div><div class='del'>-           if test `/usr/bin/arch` = "m68k" ; then</div><div class='del'>-               TARGET_ARCHS="m68k i486"</div><div class='del'>-           else</div><div class='del'>-               TARGET_ARCHS="m68k `/usr/bin/arch`"</div><div class='del'>-           fi</div><div class='del'>-        fi</div><div class='del'>-    fi</div><div class='del'>-    # /usr/lib/arch_tool -archify_list $TARGET_ARCHS</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'>-        echo -n " $archs"</div><div class='del'>-    done</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define NEXT_FAT_BINARY  1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    echo "."</div><div class='del'>-fi </div><div class='del'>-</div><div class='del'>-if test "$program_transform_name" = s,x,x,; then</div><div class='del'>-  program_transform_name=</div><div class='del'>-else</div><div class='del'>-  # Double any \ or $.  echo might interpret backslashes.</div><div class='del'>-  cat &lt;&lt;\EOF_SED &gt; conftestsed</div><div class='del'>-s,\\,\\\\,g; s,\$,$$,g</div><div class='del'>-EOF_SED</div><div class='del'>-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"</div><div class='del'>-  rm -f conftestsed</div><div class='del'>-fi</div><div class='del'>-test "$program_prefix" != NONE &amp;&amp;</div><div class='del'>-  program_transform_name="s,^,${program_prefix},; $program_transform_name"</div><div class='del'>-# Use a double $ so make ignores it.</div><div class='del'>-test "$program_suffix" != NONE &amp;&amp;</div><div class='del'>-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"</div><div class='del'>-</div><div class='del'>-# sed with no file args requires a program.</div><div class='del'>-test "$program_transform_name" = "" &amp;&amp; program_transform_name="s,x,x,"</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# Extract the first word of "gcc", so it can be a program name with args.</div><div class='del'>-set dummy gcc; ac_word=$2</div><div class='del'>-echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:681: checking for $ac_word" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test -n "$CC"; then</div><div class='del'>-  ac_cv_prog_CC="$CC" # Let the user override the test.</div><div class='del'>-else</div><div class='del'>-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"</div><div class='del'>-  for ac_dir in $PATH; do</div><div class='del'>-    test -z "$ac_dir" &amp;&amp; ac_dir=.</div><div class='del'>-    if test -f $ac_dir/$ac_word; then</div><div class='del'>-      ac_cv_prog_CC="gcc"</div><div class='del'>-      break</div><div class='del'>-    fi</div><div class='del'>-  done</div><div class='del'>-  IFS="$ac_save_ifs"</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-CC="$ac_cv_prog_CC"</div><div class='del'>-if test -n "$CC"; then</div><div class='del'>-  echo "$ac_t""$CC" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test -z "$CC"; then</div><div class='del'>-  # Extract the first word of "cc", so it can be a program name with args.</div><div class='del'>-set dummy cc; ac_word=$2</div><div class='del'>-echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:710: checking for $ac_word" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test -n "$CC"; then</div><div class='del'>-  ac_cv_prog_CC="$CC" # Let the user override the test.</div><div class='del'>-else</div><div class='del'>-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"</div><div class='del'>-  ac_prog_rejected=no</div><div class='del'>-  for ac_dir in $PATH; do</div><div class='del'>-    test -z "$ac_dir" &amp;&amp; ac_dir=.</div><div class='del'>-    if test -f $ac_dir/$ac_word; then</div><div class='del'>-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then</div><div class='del'>-        ac_prog_rejected=yes</div><div class='del'>-	continue</div><div class='del'>-      fi</div><div class='del'>-      ac_cv_prog_CC="cc"</div><div class='del'>-      break</div><div class='del'>-    fi</div><div class='del'>-  done</div><div class='del'>-  IFS="$ac_save_ifs"</div><div class='del'>-if test $ac_prog_rejected = yes; then</div><div class='del'>-  # We found a bogon in the path, so make sure we never use it.</div><div class='del'>-  set dummy $ac_cv_prog_CC</div><div class='del'>-  shift</div><div class='del'>-  if test $# -gt 0; then</div><div class='del'>-    # We chose a different compiler from the bogus one.</div><div class='del'>-    # However, it has the same basename, so the bogon will be chosen</div><div class='del'>-    # first if we set CC to just the basename; use the full file name.</div><div class='del'>-    shift</div><div class='del'>-    set dummy "$ac_dir/$ac_word" "$@"</div><div class='del'>-    shift</div><div class='del'>-    ac_cv_prog_CC="$@"</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-CC="$ac_cv_prog_CC"</div><div class='del'>-if test -n "$CC"; then</div><div class='del'>-  echo "$ac_t""$CC" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-  test -z "$CC" &amp;&amp; { echo "configure: error: no acceptable cc found in \$PATH" 1&gt;&amp;2; exit 1; }</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:758: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" &gt;&amp;5</div><div class='del'>-</div><div class='del'>-ac_ext=c</div><div class='del'>-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.</div><div class='del'>-ac_cpp='$CPP $CPPFLAGS'</div><div class='del'>-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1&gt;&amp;5'</div><div class='del'>-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1&gt;&amp;5'</div><div class='del'>-cross_compiling=$ac_cv_prog_cc_cross</div><div class='del'>-</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 768 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-main(){return(0);}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:772: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  ac_cv_prog_cc_works=yes</div><div class='del'>-  # If we can't run a trivial program, we are probably using a cross compiler.</div><div class='del'>-  if (./conftest; exit) 2&gt;/dev/null; then</div><div class='del'>-    ac_cv_prog_cc_cross=no</div><div class='del'>-  else</div><div class='del'>-    ac_cv_prog_cc_cross=yes</div><div class='del'>-  fi</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  ac_cv_prog_cc_works=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_prog_cc_works" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_prog_cc_works = no; then</div><div class='del'>-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1&gt;&amp;2; exit 1; }</div><div class='del'>-fi</div><div class='del'>-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:792: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" &gt;&amp;5</div><div class='del'>-echo "$ac_t""$ac_cv_prog_cc_cross" 1&gt;&amp;6</div><div class='del'>-cross_compiling=$ac_cv_prog_cc_cross</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:797: checking whether we are using GNU C" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.c &lt;&lt;EOF</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-  yes;</div><div class='del'>-#endif</div><div class='del'>-EOF</div><div class='del'>-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:806: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }; } | egrep yes &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  ac_cv_prog_gcc=yes</div><div class='del'>-else</div><div class='del'>-  ac_cv_prog_gcc=no</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_prog_gcc" 1&gt;&amp;6</div><div class='del'>-</div><div class='del'>-if test $ac_cv_prog_gcc = yes; then</div><div class='del'>-  GCC=yes</div><div class='del'>-  ac_test_CFLAGS="${CFLAGS+set}"</div><div class='del'>-  ac_save_CFLAGS="$CFLAGS"</div><div class='del'>-  CFLAGS=</div><div class='del'>-  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:821: checking whether ${CC-cc} accepts -g" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo 'void f(){}' &gt; conftest.c</div><div class='del'>-if test -z "`${CC-cc} -g -c conftest.c 2&gt;&amp;1`"; then</div><div class='del'>-  ac_cv_prog_cc_g=yes</div><div class='del'>-else</div><div class='del'>-  ac_cv_prog_cc_g=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_prog_cc_g" 1&gt;&amp;6</div><div class='del'>-  if test "$ac_test_CFLAGS" = set; then</div><div class='del'>-    CFLAGS="$ac_save_CFLAGS"</div><div class='del'>-  elif test $ac_cv_prog_cc_g = yes; then</div><div class='del'>-    CFLAGS="-g -O2"</div><div class='del'>-  else</div><div class='del'>-    CFLAGS="-O2"</div><div class='del'>-  fi</div><div class='del'>-else</div><div class='del'>-  GCC=</div><div class='del'>-  test "${CFLAGS+set}" = set || CFLAGS="-g"</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:849: checking how to run the C preprocessor" &gt;&amp;5</div><div class='del'>-# On Suns, sometimes $CPP names a directory.</div><div class='del'>-if test -n "$CPP" &amp;&amp; test -d "$CPP"; then</div><div class='del'>-  CPP=</div><div class='del'>-fi</div><div class='del'>-if test -z "$CPP"; then</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-    # This must be in double quotes, not single quotes, because CPP may get</div><div class='del'>-  # substituted into the Makefile and "${CC-cc}" will confuse make.</div><div class='del'>-  CPP="${CC-cc} -E"</div><div class='del'>-  # On the NeXT, cc -E runs the code through the compiler's parser,</div><div class='del'>-  # not just through cpp.</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 864 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-Syntax Error</div><div class='del'>-EOF</div><div class='del'>-ac_try="$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out"</div><div class='del'>-{ (eval echo configure:870: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }</div><div class='del'>-ac_err=`grep -v '^ *+' conftest.out`</div><div class='del'>-if test -z "$ac_err"; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  echo "$ac_err" &gt;&amp;5</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  CPP="${CC-cc} -E -traditional-cpp"</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 881 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-Syntax Error</div><div class='del'>-EOF</div><div class='del'>-ac_try="$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out"</div><div class='del'>-{ (eval echo configure:887: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }</div><div class='del'>-ac_err=`grep -v '^ *+' conftest.out`</div><div class='del'>-if test -z "$ac_err"; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  echo "$ac_err" &gt;&amp;5</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  CPP=/lib/cpp</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-  ac_cv_prog_CPP="$CPP"</div><div class='del'>-fi</div><div class='del'>-  CPP="$ac_cv_prog_CPP"</div><div class='del'>-else</div><div class='del'>-  ac_cv_prog_CPP="$CPP"</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$CPP" 1&gt;&amp;6</div><div class='del'>-</div><div class='del'>-if test $ac_cv_prog_gcc = yes; then</div><div class='del'>-    echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:911: checking whether ${CC-cc} needs -traditional" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-    ac_pattern="Autoconf.*'x'"</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 917 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sgtty.h&gt;</div><div class='del'>-Autoconf TIOCGETP</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "$ac_pattern" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_prog_gcc_traditional=yes</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_prog_gcc_traditional=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-  if test $ac_cv_prog_gcc_traditional = no; then</div><div class='del'>-    cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 935 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;termio.h&gt;</div><div class='del'>-Autoconf TCGETA</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "$ac_pattern" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_prog_gcc_traditional=yes</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_prog_gcc_traditional" 1&gt;&amp;6</div><div class='del'>-  if test $ac_cv_prog_gcc_traditional = yes; then</div><div class='del'>-    CC="$CC -traditional"</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-for ac_prog in 'bison -y' byacc</div><div class='del'>-do</div><div class='del'>-# Extract the first word of "$ac_prog", so it can be a program name with args.</div><div class='del'>-set dummy $ac_prog; ac_word=$2</div><div class='del'>-echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:961: checking for $ac_word" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test -n "$YACC"; then</div><div class='del'>-  ac_cv_prog_YACC="$YACC" # Let the user override the test.</div><div class='del'>-else</div><div class='del'>-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"</div><div class='del'>-  for ac_dir in $PATH; do</div><div class='del'>-    test -z "$ac_dir" &amp;&amp; ac_dir=.</div><div class='del'>-    if test -f $ac_dir/$ac_word; then</div><div class='del'>-      ac_cv_prog_YACC="$ac_prog"</div><div class='del'>-      break</div><div class='del'>-    fi</div><div class='del'>-  done</div><div class='del'>-  IFS="$ac_save_ifs"</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-YACC="$ac_cv_prog_YACC"</div><div class='del'>-if test -n "$YACC"; then</div><div class='del'>-  echo "$ac_t""$YACC" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-test -n "$YACC" &amp;&amp; break</div><div class='del'>-done</div><div class='del'>-test -n "$YACC" || YACC="yacc"</div><div class='del'>-</div><div class='del'>-# Extract the first word of "ranlib", so it can be a program name with args.</div><div class='del'>-set dummy ranlib; ac_word=$2</div><div class='del'>-echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:993: checking for $ac_word" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test -n "$RANLIB"; then</div><div class='del'>-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.</div><div class='del'>-else</div><div class='del'>-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"</div><div class='del'>-  for ac_dir in $PATH; do</div><div class='del'>-    test -z "$ac_dir" &amp;&amp; ac_dir=.</div><div class='del'>-    if test -f $ac_dir/$ac_word; then</div><div class='del'>-      ac_cv_prog_RANLIB="ranlib"</div><div class='del'>-      break</div><div class='del'>-    fi</div><div class='del'>-  done</div><div class='del'>-  IFS="$ac_save_ifs"</div><div class='del'>-  test -z "$ac_cv_prog_RANLIB" &amp;&amp; ac_cv_prog_RANLIB=":"</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-RANLIB="$ac_cv_prog_RANLIB"</div><div class='del'>-if test -n "$RANLIB"; then</div><div class='del'>-  echo "$ac_t""$RANLIB" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-for ac_prog in ar aal</div><div class='del'>-do</div><div class='del'>-# Extract the first word of "$ac_prog", so it can be a program name with args.</div><div class='del'>-set dummy $ac_prog; ac_word=$2</div><div class='del'>-echo $ac_n "checking for $ac_word""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1025: checking for $ac_word" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test -n "$AR"; then</div><div class='del'>-  ac_cv_prog_AR="$AR" # Let the user override the test.</div><div class='del'>-else</div><div class='del'>-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"</div><div class='del'>-  for ac_dir in $PATH; do</div><div class='del'>-    test -z "$ac_dir" &amp;&amp; ac_dir=.</div><div class='del'>-    if test -f $ac_dir/$ac_word; then</div><div class='del'>-      ac_cv_prog_AR="$ac_prog"</div><div class='del'>-      break</div><div class='del'>-    fi</div><div class='del'>-  done</div><div class='del'>-  IFS="$ac_save_ifs"</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-AR="$ac_cv_prog_AR"</div><div class='del'>-if test -n "$AR"; then</div><div class='del'>-  echo "$ac_t""$AR" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-test -n "$AR" &amp;&amp; break</div><div class='del'>-done</div><div class='del'>-test -n "$AR" || AR="ar"</div><div class='del'>-</div><div class='del'>-# Find a good install program.  We prefer a C program (faster),</div><div class='del'>-# so one script is as good as another.  But avoid the broken or</div><div class='del'>-# incompatible versions:</div><div class='del'>-# SysV /etc/install, /usr/sbin/install</div><div class='del'>-# SunOS /usr/etc/install</div><div class='del'>-# IRIX /sbin/install</div><div class='del'>-# AIX /bin/install</div><div class='del'>-# AFS /usr/afsws/bin/install, which mishandles nonexistent args</div><div class='del'>-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"</div><div class='del'>-# ./install, which can be erroneously created by make from ./install.sh.</div><div class='del'>-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1065: checking for a BSD compatible install" &gt;&amp;5</div><div class='del'>-if test -z "$INSTALL"; then</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="${IFS}:"</div><div class='del'>-  for ac_dir in $PATH; do</div><div class='del'>-    # Account for people who put trailing slashes in PATH elements.</div><div class='del'>-    case "$ac_dir/" in</div><div class='del'>-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;</div><div class='del'>-    *)</div><div class='del'>-      # OSF1 and SCO ODT 3.0 have their own names for install.</div><div class='del'>-      for ac_prog in ginstall installbsd scoinst install; do</div><div class='del'>-        if test -f $ac_dir/$ac_prog; then</div><div class='del'>-	  if test $ac_prog = install &amp;&amp;</div><div class='del'>-            grep dspmsg $ac_dir/$ac_prog &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-	    # AIX install.  It has an incompatible calling convention.</div><div class='del'>-	    # OSF/1 installbsd also uses dspmsg, but is usable.</div><div class='del'>-	    :</div><div class='del'>-	  else</div><div class='del'>-	    ac_cv_path_install="$ac_dir/$ac_prog -c"</div><div class='del'>-	    break 2</div><div class='del'>-	  fi</div><div class='del'>-	fi</div><div class='del'>-      done</div><div class='del'>-      ;;</div><div class='del'>-    esac</div><div class='del'>-  done</div><div class='del'>-  IFS="$ac_save_IFS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-  if test "${ac_cv_path_install+set}" = set; then</div><div class='del'>-    INSTALL="$ac_cv_path_install"</div><div class='del'>-  else</div><div class='del'>-    # As a last resort, use the slow shell script.  We don't cache a</div><div class='del'>-    # path for INSTALL within a source directory, because that will</div><div class='del'>-    # break other packages using the cache if that directory is</div><div class='del'>-    # removed, or if the path is relative.</div><div class='del'>-    INSTALL="$ac_install_sh"</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$INSTALL" 1&gt;&amp;6</div><div class='del'>-</div><div class='del'>-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.</div><div class='del'>-# It thinks the first close brace ends the variable substitution.</div><div class='del'>-test -z "$INSTALL_PROGRAM" &amp;&amp; INSTALL_PROGRAM='${INSTALL}'</div><div class='del'>-</div><div class='del'>-test -z "$INSTALL_DATA" &amp;&amp; INSTALL_DATA='${INSTALL} -m 644'</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1115: checking whether ${MAKE-make} sets \${MAKE}" &gt;&amp;5</div><div class='del'>-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftestmake &lt;&lt;\EOF</div><div class='del'>-all:</div><div class='del'>-	@echo 'ac_maketemp="${MAKE}"'</div><div class='del'>-EOF</div><div class='del'>-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.</div><div class='del'>-eval `${MAKE-make} -f conftestmake 2&gt;/dev/null | grep temp=`</div><div class='del'>-if test -n "$ac_maketemp"; then</div><div class='del'>-  eval ac_cv_prog_make_${ac_make}_set=yes</div><div class='del'>-else</div><div class='del'>-  eval ac_cv_prog_make_${ac_make}_set=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftestmake</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  SET_MAKE=</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-  SET_MAKE="MAKE=${MAKE-make}"</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# checks for UNIX variants that set C preprocessor variables</div><div class='del'>-ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`</div><div class='del'>-echo $ac_n "checking for minix/config.h""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1145: checking for minix/config.h" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1150 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;minix/config.h&gt;</div><div class='del'>-EOF</div><div class='del'>-ac_try="$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out"</div><div class='del'>-{ (eval echo configure:1155: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }</div><div class='del'>-ac_err=`grep -v '^ *+' conftest.out`</div><div class='del'>-if test -z "$ac_err"; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_$ac_safe=yes"</div><div class='del'>-else</div><div class='del'>-  echo "$ac_err" &gt;&amp;5</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_$ac_safe=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  MINIX=yes</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-MINIX=</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$MINIX" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define _POSIX_SOURCE 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define _POSIX_1_SOURCE 2</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define _MINIX 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking size of int""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1194: checking size of int" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1202 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  FILE *f=fopen("conftestval", "w");</div><div class='del'>-  if (!f) exit(1);</div><div class='del'>-  fprintf(f, "%d\n", sizeof(int));</div><div class='del'>-  exit(0);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1213: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_sizeof_int=`cat conftestval`</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_sizeof_int=0</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$ac_cv_sizeof_int" 1&gt;&amp;6</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define SIZEOF_INT $ac_cv_sizeof_int</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking size of long""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1233: checking size of long" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1241 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  FILE *f=fopen("conftestval", "w");</div><div class='del'>-  if (!f) exit(1);</div><div class='del'>-  fprintf(f, "%d\n", sizeof(long));</div><div class='del'>-  exit(0);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1252: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_sizeof_long=`cat conftestval`</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_sizeof_long=0</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$ac_cv_sizeof_long" 1&gt;&amp;6</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define SIZEOF_LONG $ac_cv_sizeof_long</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking size of void*""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1272: checking size of void*" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_sizeof_voidp'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1280 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  FILE *f=fopen("conftestval", "w");</div><div class='del'>-  if (!f) exit(1);</div><div class='del'>-  fprintf(f, "%d\n", sizeof(void*));</div><div class='del'>-  exit(0);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1291: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_sizeof_voidp=`cat conftestval`</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_sizeof_voidp=0</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$ac_cv_sizeof_voidp" 1&gt;&amp;6</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define SIZEOF_VOIDP $ac_cv_sizeof_voidp</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for prototypes""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1312: checking for prototypes" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'rb_cv_have_prototypes'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1317 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-int foo(int x) { return 0; }</div><div class='del'>-int main() {</div><div class='del'>-return foo(10);</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1324: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_have_prototypes=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_have_prototypes=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$rb_cv_have_prototypes" 1&gt;&amp;6</div><div class='del'>-if test "$rb_cv_have_prototypes" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_PROTOTYPES 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for variable length prototypes and stdarg.h""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1345: checking for variable length prototypes and stdarg.h" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'rb_cv_stdarg'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1350 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</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'>-</div><div class='del'>-int main() {</div><div class='del'>-return foo(10, "", 3.14);</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1367: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_stdarg=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_stdarg=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$rb_cv_stdarg" 1&gt;&amp;6</div><div class='del'>-if test "$rb_cv_stdarg" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_STDARG_PROTOTYPES 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for gcc attribute noreturn""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1388: checking for gcc attribute noreturn" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'rb_cv_have_attr_noreturn'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1393 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-void exit(int x) __attribute__ ((noreturn));</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1400: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_have_attr_noreturn=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_have_attr_noreturn=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$rb_cv_have_attr_noreturn" 1&gt;&amp;6</div><div class='del'>-if test "$rb_cv_have_attr_noreturn" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_ATTR_NORETURN 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$host_os" in</div><div class='del'>-nextstep*)	;;</div><div class='del'>-openstep*)	;;</div><div class='del'>-rhapsody*)	;;</div><div class='del'>-human*)		;;</div><div class='del'>-beos*)		;;</div><div class='del'>-*) LIBS="-lm $LIBS";;</div><div class='del'>-esac</div><div class='del'>-echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1429: checking for crypt in -lcrypt" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-lcrypt  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1437 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char crypt();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-crypt()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1448: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_lib=HAVE_LIB`echo crypt | sed -e 's/[^a-zA-Z0-9_]/_/g' \</div><div class='del'>-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_lib 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  LIBS="-lcrypt $LIBS"</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1476: checking for dlopen in -ldl" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-ldl  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1484 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char dlopen();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-dlopen()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1495: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/[^a-zA-Z0-9_]/_/g' \</div><div class='del'>-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_lib 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  LIBS="-ldl $LIBS"</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-	# Dynamic linking for SunOS/Solaris and SYSV</div><div class='del'>-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1523: checking for shl_load in -ldld" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-ldld  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1531 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char shl_load();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-shl_load()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1542: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_lib=HAVE_LIB`echo dld | sed -e 's/[^a-zA-Z0-9_]/_/g' \</div><div class='del'>-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_lib 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  LIBS="-ldld $LIBS"</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-	# Dynamic linking for HP-UX</div><div class='del'>-echo $ac_n "checking for setlocale in -lxpg4""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1570: checking for setlocale in -lxpg4" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo xpg4'_'setlocale | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-lxpg4  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1578 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char setlocale();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-setlocale()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1589: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_lib=HAVE_LIB`echo xpg4 | sed -e 's/[^a-zA-Z0-9_]/_/g' \</div><div class='del'>-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_lib 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  LIBS="-lxpg4 $LIBS"</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-	# FreeBSD needs this</div><div class='del'>-</div><div class='del'>-ac_header_dirent=no</div><div class='del'>-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h</div><div class='del'>-do</div><div class='del'>-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`</div><div class='del'>-echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1622: checking for $ac_hdr that defines DIR" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1627 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;$ac_hdr&gt;</div><div class='del'>-int main() {</div><div class='del'>-DIR *dirp = 0;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1635: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_dirent_$ac_safe=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_dirent_$ac_safe=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_hdr 1</div><div class='del'>-EOF</div><div class='del'>- ac_header_dirent=$ac_hdr; break</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-done</div><div class='del'>-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.</div><div class='del'>-if test $ac_header_dirent = dirent.h; then</div><div class='del'>-echo $ac_n "checking for opendir in -ldir""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1660: checking for opendir in -ldir" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-ldir  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1668 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char opendir();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-opendir()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1679: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  LIBS="$LIBS -ldir"</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-echo $ac_n "checking for opendir in -lx""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1701: checking for opendir in -lx" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-lx  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1709 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char opendir();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-opendir()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1720: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  LIBS="$LIBS -lx"</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for ANSI C header files""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1743: checking for ANSI C header files" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1748 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;stdarg.h&gt;</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-#include &lt;float.h&gt;</div><div class='del'>-EOF</div><div class='del'>-ac_try="$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out"</div><div class='del'>-{ (eval echo configure:1756: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }</div><div class='del'>-ac_err=`grep -v '^ *+' conftest.out`</div><div class='del'>-if test -z "$ac_err"; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_header_stdc=yes</div><div class='del'>-else</div><div class='del'>-  echo "$ac_err" &gt;&amp;5</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_header_stdc=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-if test $ac_cv_header_stdc = yes; then</div><div class='del'>-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1773 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;string.h&gt;</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "memchr" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_header_stdc=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test $ac_cv_header_stdc = yes; then</div><div class='del'>-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1791 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "free" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_header_stdc=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test $ac_cv_header_stdc = yes; then</div><div class='del'>-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.</div><div class='del'>-if test "$cross_compiling" = yes; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1812 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;ctype.h&gt;</div><div class='del'>-#define ISLOWER(c) ('a' &lt;= (c) &amp;&amp; (c) &lt;= 'z')</div><div class='del'>-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))</div><div class='del'>-#define XOR(e, f) (((e) &amp;&amp; !(f)) || (!(e) &amp;&amp; (f)))</div><div class='del'>-int main () { int i; for (i = 0; i &lt; 256; i++)</div><div class='del'>-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);</div><div class='del'>-exit (0); }</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1823: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_header_stdc=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_header_stdc" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_header_stdc = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define STDC_HEADERS 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-for ac_hdr in stdlib.h unistd.h limits.h sys/file.h sys/ioctl.h pwd.h \</div><div class='del'>-		 sys/select.h sys/time.h sys/times.h sys/param.h sys/wait.h\</div><div class='del'>-		 syscall.h a.out.h string.h utime.h memory.h direct.h</div><div class='del'>-do</div><div class='del'>-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`</div><div class='del'>-echo $ac_n "checking for $ac_hdr""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1852: checking for $ac_hdr" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1857 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;$ac_hdr&gt;</div><div class='del'>-EOF</div><div class='del'>-ac_try="$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out"</div><div class='del'>-{ (eval echo configure:1862: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }</div><div class='del'>-ac_err=`grep -v '^ *+' conftest.out`</div><div class='del'>-if test -z "$ac_err"; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_$ac_safe=yes"</div><div class='del'>-else</div><div class='del'>-  echo "$ac_err" &gt;&amp;5</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_$ac_safe=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_hdr 1</div><div class='del'>-EOF</div><div class='del'>- </div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1890: checking for uid_t in sys/types.h" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1895 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "uid_t" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_uid_t=yes</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_uid_t=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_type_uid_t" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_type_uid_t = no; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define uid_t int</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define gid_t int</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for size_t""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1924: checking for size_t" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1929 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#if STDC_HEADERS</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#endif</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "size_t[^a-zA-Z_0-9]" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_size_t=yes</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_size_t=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$ac_cv_type_size_t" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_type_size_t = no; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define size_t unsigned</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1957: checking for st_blksize in struct stat" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1962 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-struct stat s; s.st_blksize;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:1970: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_st_blksize=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_st_blksize=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_struct_st_blksize" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_struct_st_blksize = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_ST_BLKSIZE 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-save_LIBOJBS="$LIBOBJS"</div><div class='del'>-echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:1992: checking for st_blocks in struct stat" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 1997 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-struct stat s; s.st_blocks;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2005: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_st_blocks=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_st_blocks=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_struct_st_blocks" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_struct_st_blocks = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_ST_BLOCKS 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  LIBOBJS="$LIBOBJS fileblocks.o"</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-LIBOBJS="$save_LIBOBJS"</div><div class='del'>-echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2029: checking for st_rdev in struct stat" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2034 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-struct stat s; s.st_rdev;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2042: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_st_rdev=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_st_rdev=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_struct_st_rdev" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_struct_st_rdev = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_ST_RDEV 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2064: checking type of array argument to getgroups" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-  ac_cv_type_getgroups=cross</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2072 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</div><div class='del'>-/* Thanks to Mike Rendell for this test.  */</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#define NGID 256</div><div class='del'>-#undef MAX</div><div class='del'>-#define MAX(x, y) ((x) &gt; (y) ? (x) : (y))</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  gid_t gidset[NGID];</div><div class='del'>-  int i, n;</div><div class='del'>-  union { gid_t gval; long lval; }  val;</div><div class='del'>-</div><div class='del'>-  val.lval = -1;</div><div class='del'>-  for (i = 0; i &lt; NGID; i++)</div><div class='del'>-    gidset[i] = val.gval;</div><div class='del'>-  n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,</div><div class='del'>-                 gidset);</div><div class='del'>-  /* Exit non-zero if getgroups seems to require an array of ints.  This</div><div class='del'>-     happens when gid_t is short but getgroups modifies an array of ints.  */</div><div class='del'>-  exit ((n &gt; 0 &amp;&amp; gidset[n] != val.gval) ? 1 : 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2097: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-    ac_cv_type_getgroups=gid_t</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_type_getgroups=int</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test $ac_cv_type_getgroups = cross; then</div><div class='del'>-        cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2111 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "getgroups.*int.*gid_t" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_getgroups=gid_t</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_getgroups=int</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_type_getgroups" 1&gt;&amp;6</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define GETGROUPS_T $ac_cv_type_getgroups</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking return type of signal handlers""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2135: checking return type of signal handlers" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2140 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;signal.h&gt;</div><div class='del'>-#ifdef signal</div><div class='del'>-#undef signal</div><div class='del'>-#endif</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-extern "C" void (*signal (int, void (*)(int)))(int);</div><div class='del'>-#else</div><div class='del'>-void (*signal ()) ();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-int i;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2157: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_signal=void</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_signal=int</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_type_signal" 1&gt;&amp;6</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RETSIGTYPE $ac_cv_type_signal</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works</div><div class='del'>-# for constant arguments.  Useless!</div><div class='del'>-echo $ac_n "checking for working alloca.h""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2178: checking for working alloca.h" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2183 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;alloca.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-char *p = alloca(2 * sizeof(int));</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2190: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_header_alloca_h=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_header_alloca_h=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_header_alloca_h" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_header_alloca_h = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_ALLOCA_H 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for alloca""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2211: checking for alloca" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2216 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</div><div class='del'>-#ifdef __GNUC__</div><div class='del'>-# define alloca __builtin_alloca</div><div class='del'>-#else</div><div class='del'>-# if HAVE_ALLOCA_H</div><div class='del'>-#  include &lt;alloca.h&gt;</div><div class='del'>-# else</div><div class='del'>-#  ifdef _AIX</div><div class='del'>- #pragma alloca</div><div class='del'>-#  else</div><div class='del'>-#   ifndef alloca /* predefined by HP cc +Olibcalls */</div><div class='del'>-char *alloca ();</div><div class='del'>-#   endif</div><div class='del'>-#  endif</div><div class='del'>-# endif</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-char *p = (char *) alloca(1);</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2239: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_func_alloca_works=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_func_alloca_works=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_func_alloca_works" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_func_alloca_works = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_ALLOCA 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test $ac_cv_func_alloca_works = no; then</div><div class='del'>-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions</div><div class='del'>-  # that cause trouble.  Some versions do not even contain alloca or</div><div class='del'>-  # contain a buggy version.  If you still want to use their alloca,</div><div class='del'>-  # use ar to extract alloca.o from them instead of compiling alloca.c.</div><div class='del'>-  ALLOCA=alloca.o</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define C_ALLOCA 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2271: checking whether alloca needs Cray hooks" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2276 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#if defined(CRAY) &amp;&amp; ! defined(CRAY2)</div><div class='del'>-webecray</div><div class='del'>-#else</div><div class='del'>-wenotbecray</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "webecray" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_os_cray=yes</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_os_cray=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_os_cray" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_os_cray = yes; then</div><div class='del'>-for ac_func in _getb67 GETB67 getb67; do</div><div class='del'>-  echo $ac_n "checking for $ac_func""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2301: checking for $ac_func" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2306 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* System header to define __stub macros and hopefully few prototypes,</div><div class='del'>-    which can conflict with char $ac_func(); below.  */</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char $ac_func();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-/* The GNU C library defines this for functions which it implements</div><div class='del'>-    to always fail with ENOSYS.  Some functions are actually named</div><div class='del'>-    something starting with __ and the normal name is an alias.  */</div><div class='del'>-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)</div><div class='del'>-choke me</div><div class='del'>-#else</div><div class='del'>-$ac_func();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2329: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define CRAY_STACKSEG_END $ac_func</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  break</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-done</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2356: checking stack direction for C alloca" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-  ac_cv_c_stack_direction=0</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2364 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-find_stack_direction ()</div><div class='del'>-{</div><div class='del'>-  static char *addr = 0;</div><div class='del'>-  auto char dummy;</div><div class='del'>-  if (addr == 0)</div><div class='del'>-    {</div><div class='del'>-      addr = &amp;dummy;</div><div class='del'>-      return find_stack_direction ();</div><div class='del'>-    }</div><div class='del'>-  else</div><div class='del'>-    return (&amp;dummy &gt; addr) ? 1 : -1;</div><div class='del'>-}</div><div class='del'>-main ()</div><div class='del'>-{</div><div class='del'>-  exit (find_stack_direction() &lt; 0);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2383: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_c_stack_direction=1</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_c_stack_direction=-1</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_c_stack_direction" 1&gt;&amp;6</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define STACK_DIRECTION $ac_cv_c_stack_direction</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for pid_t""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2405: checking for pid_t" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2410 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#if STDC_HEADERS</div><div class='del'>-#include &lt;stdlib.h&gt;</div><div class='del'>-#include &lt;stddef.h&gt;</div><div class='del'>-#endif</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "pid_t[^a-zA-Z_0-9]" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_pid_t=yes</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_type_pid_t=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-echo "$ac_t""$ac_cv_type_pid_t" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_type_pid_t = no; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define pid_t int</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`</div><div class='del'>-echo $ac_n "checking for vfork.h""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2439: checking for vfork.h" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2444 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;vfork.h&gt;</div><div class='del'>-EOF</div><div class='del'>-ac_try="$ac_cpp conftest.$ac_ext &gt;/dev/null 2&gt;conftest.out"</div><div class='del'>-{ (eval echo configure:2449: \"$ac_try\") 1&gt;&amp;5; (eval $ac_try) 2&gt;&amp;5; }</div><div class='del'>-ac_err=`grep -v '^ *+' conftest.out`</div><div class='del'>-if test -z "$ac_err"; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_$ac_safe=yes"</div><div class='del'>-else</div><div class='del'>-  echo "$ac_err" &gt;&amp;5</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_header_$ac_safe=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_VFORK_H 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for working vfork""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2474: checking for working vfork" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-  echo $ac_n "checking for vfork""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2480: checking for vfork" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2485 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* System header to define __stub macros and hopefully few prototypes,</div><div class='del'>-    which can conflict with char vfork(); below.  */</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char vfork();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-/* The GNU C library defines this for functions which it implements</div><div class='del'>-    to always fail with ENOSYS.  Some functions are actually named</div><div class='del'>-    something starting with __ and the normal name is an alias.  */</div><div class='del'>-#if defined (__stub_vfork) || defined (__stub___vfork)</div><div class='del'>-choke me</div><div class='del'>-#else</div><div class='del'>-vfork();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2508: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_vfork=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_vfork=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if eval "test \"`echo '$ac_cv_func_'vfork`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2529 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Thanks to Paul Eggert for this test.  */</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/stat.h&gt;</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'>-#ifdef HAVE_VFORK_H</div><div class='del'>-#include &lt;vfork.h&gt;</div><div class='del'>-#endif</div><div class='del'>-/* On some sparc systems, changes by the child to local and incoming</div><div class='del'>-   argument registers are propagated back to the parent.</div><div class='del'>-   The compiler is told about this with #include &lt;vfork.h&gt;,</div><div class='del'>-   but some compilers (e.g. gcc -O) don't grok &lt;vfork.h&gt;.</div><div class='del'>-   Test for this by using a static variable whose address</div><div class='del'>-   is put into a register that is clobbered by the vfork.  */</div><div class='del'>-static</div><div class='del'>-#ifdef __cplusplus</div><div class='del'>-sparc_address_test (int arg)</div><div class='del'>-#else</div><div class='del'>-sparc_address_test (arg) int arg;</div><div class='del'>-#endif</div><div class='del'>-{</div><div class='del'>-  static pid_t child;</div><div class='del'>-  if (!child) {</div><div class='del'>-    child = vfork ();</div><div class='del'>-    if (child &lt; 0) {</div><div class='del'>-      perror ("vfork");</div><div class='del'>-      _exit(2);</div><div class='del'>-    }</div><div class='del'>-    if (!child) {</div><div class='del'>-      arg = getpid();</div><div class='del'>-      write(-1, "", 0);</div><div class='del'>-      _exit (arg);</div><div class='del'>-    }</div><div class='del'>-  }</div><div class='del'>-}</div><div class='del'>-main() {</div><div class='del'>-  pid_t parent = getpid ();</div><div class='del'>-  pid_t child;</div><div class='del'>-</div><div class='del'>-  sparc_address_test ();</div><div class='del'>-</div><div class='del'>-  child = vfork ();</div><div class='del'>-</div><div class='del'>-  if (child == 0) {</div><div class='del'>-    /* Here is another test for sparc vfork register problems.</div><div class='del'>-       This test uses lots of local variables, at least</div><div class='del'>-       as many local variables as main has allocated so far</div><div class='del'>-       including compiler temporaries.  4 locals are enough for</div><div class='del'>-       gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe.</div><div class='del'>-       A buggy compiler should reuse the register of parent</div><div class='del'>-       for one of the local variables, since it will think that</div><div class='del'>-       parent can't possibly be used any more in this routine.</div><div class='del'>-       Assigning to the local variable will thus munge parent</div><div class='del'>-       in the parent process.  */</div><div class='del'>-    pid_t</div><div class='del'>-      p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),</div><div class='del'>-      p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();</div><div class='del'>-    /* Convince the compiler that p..p7 are live; otherwise, it might</div><div class='del'>-       use the same hardware register for all 8 local variables.  */</div><div class='del'>-    if (p != p1 || p != p2 || p != p3 || p != p4</div><div class='del'>-	|| p != p5 || p != p6 || p != p7)</div><div class='del'>-      _exit(1);</div><div class='del'>-</div><div class='del'>-    /* On some systems (e.g. IRIX 3.3),</div><div class='del'>-       vfork doesn't separate parent from child file descriptors.</div><div class='del'>-       If the child closes a descriptor before it execs or exits,</div><div class='del'>-       this munges the parent's descriptor as well.</div><div class='del'>-       Test for this by closing stdout in the child.  */</div><div class='del'>-    _exit(close(fileno(stdout)) != 0);</div><div class='del'>-  } else {</div><div class='del'>-    int status;</div><div class='del'>-    struct stat st;</div><div class='del'>-</div><div class='del'>-    while (wait(&amp;status) != child)</div><div class='del'>-      ;</div><div class='del'>-    exit(</div><div class='del'>-	 /* Was there some problem with vforking?  */</div><div class='del'>-	 child &lt; 0</div><div class='del'>-</div><div class='del'>-	 /* Did the child fail?  (This shouldn't happen.)  */</div><div class='del'>-	 || status</div><div class='del'>-</div><div class='del'>-	 /* Did the vfork/compiler bug occur?  */</div><div class='del'>-	 || parent != getpid()</div><div class='del'>-</div><div class='del'>-	 /* Did the file descriptor bug occur?  */</div><div class='del'>-	 || fstat(fileno(stdout), &amp;st) != 0</div><div class='del'>-	 );</div><div class='del'>-  }</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2624: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_func_vfork_works=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_func_vfork_works=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_func_vfork_works" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_func_vfork_works = no; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define vfork fork</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2647: checking for 8-bit clean memcmp" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-  ac_cv_func_memcmp_clean=no</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2655 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</div><div class='del'>-main()</div><div class='del'>-{</div><div class='del'>-  char c0 = 0x40, c1 = 0x80, c2 = 0x81;</div><div class='del'>-  exit(memcmp(&amp;c0, &amp;c2, 1) &lt; 0 &amp;&amp; memcmp(&amp;c1, &amp;c2, 1) &lt; 0 ? 0 : 1);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2665: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_func_memcmp_clean=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_func_memcmp_clean=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_func_memcmp_clean" 1&gt;&amp;6</div><div class='del'>-test $ac_cv_func_memcmp_clean = no &amp;&amp; LIBOBJS="$LIBOBJS memcmp.o"</div><div class='del'>-</div><div class='del'>-for ac_func in dup2 setenv memmove mkdir strcasecmp strerror strftime\</div><div class='del'>-		 strchr strstr strtoul strdup crypt flock snprintf</div><div class='del'>-do</div><div class='del'>-echo $ac_n "checking for $ac_func""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2686: checking for $ac_func" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2691 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* System header to define __stub macros and hopefully few prototypes,</div><div class='del'>-    which can conflict with char $ac_func(); below.  */</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char $ac_func();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-/* The GNU C library defines this for functions which it implements</div><div class='del'>-    to always fail with ENOSYS.  Some functions are actually named</div><div class='del'>-    something starting with __ and the normal name is an alias.  */</div><div class='del'>-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)</div><div class='del'>-choke me</div><div class='del'>-#else</div><div class='del'>-$ac_func();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2714: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_func 1</div><div class='del'>-EOF</div><div class='del'>- </div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-LIBOBJS="$LIBOBJS ${ac_func}.o"</div><div class='del'>-fi</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-for ac_func in fmod killpg drand48 random wait4 waitpid syscall getcwd\</div><div class='del'>-	      truncate chsize times utimes fcntl lockf setitimer\</div><div class='del'>-	      setruid seteuid setreuid setrgid setegid setregid\</div><div class='del'>-	      setpgrp2 getpgid getgroups getpriority\</div><div class='del'>-	      dlopen sigprocmask sigaction _setjmp setpgrp setsid</div><div class='del'>-do</div><div class='del'>-echo $ac_n "checking for $ac_func""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2747: checking for $ac_func" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2752 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* System header to define __stub macros and hopefully few prototypes,</div><div class='del'>-    which can conflict with char $ac_func(); below.  */</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char $ac_func();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-/* The GNU C library defines this for functions which it implements</div><div class='del'>-    to always fail with ENOSYS.  Some functions are actually named</div><div class='del'>-    something starting with __ and the normal name is an alias.  */</div><div class='del'>-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)</div><div class='del'>-choke me</div><div class='del'>-#else</div><div class='del'>-$ac_func();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2775: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_func 1</div><div class='del'>-EOF</div><div class='del'>- </div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-if test "$ac_cv_func_strftime" = no; then</div><div class='del'>-    echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2801: checking whether struct tm is in sys/time.h or time.h" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2806 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-struct tm *tp; tp-&gt;tm_sec;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2814: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_tm=time.h</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_tm=sys/time.h</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_struct_tm" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_struct_tm = sys/time.h; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define TM_IN_SYS_TIME 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2835: checking for tm_zone in struct tm" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2840 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;$ac_cv_struct_tm&gt;</div><div class='del'>-int main() {</div><div class='del'>-struct tm tm; tm.tm_zone;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2848: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_tm_zone=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_struct_tm_zone=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_struct_tm_zone" 1&gt;&amp;6</div><div class='del'>-if test "$ac_cv_struct_tm_zone" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_TM_ZONE 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo $ac_n "checking for tzname""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2868: checking for tzname" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2873 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;time.h&gt;</div><div class='del'>-#ifndef tzname /* For SGI.  */</div><div class='del'>-extern char *tzname[]; /* RS6000 and others reject char **tzname.  */</div><div class='del'>-#endif</div><div class='del'>-int main() {</div><div class='del'>-atoi(*tzname);</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2883: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_var_tzname=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_var_tzname=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_var_tzname" 1&gt;&amp;6</div><div class='del'>-  if test $ac_cv_var_tzname = yes; then</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_TZNAME 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-    cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2905 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-extern int daylight; int i = daylight;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:2912: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define HAVE_DAYLIGHT 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</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'>-   cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define POSIX_SIGNAL 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo $ac_n "checking for BSD signal semantics""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2932: checking for BSD signal semantics" &gt;&amp;5</div><div class='del'>-  if eval "test \"`echo '$''{'rb_cv_bsd_signal'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 2940 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</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'>-EOF</div><div class='del'>-if { (eval echo configure:2962: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  rb_cv_bsd_signal=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  rb_cv_bsd_signal=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-  echo "$ac_t""$rb_cv_bsd_signal" 1&gt;&amp;6</div><div class='del'>-  if test "$rb_cv_bsd_signal" = yes; then</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define BSD_SIGNAL 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$ac_cv_func_setpgrp2" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define BSD_GETPGRP getpgrp2</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define BSD_SETPGRP setpgrp2</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo $ac_n "checking whether getpgrp() has arg""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:2996: checking whether getpgrp() has arg" &gt;&amp;5</div><div class='del'>-  if eval "test \"`echo '$''{'rb_cv_bsdgetpgrp'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3001 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-getpgrp(0);</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3008: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_bsdgetpgrp=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_bsdgetpgrp=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-  echo "$ac_t""$rb_cv_bsdgetpgrp" 1&gt;&amp;6</div><div class='del'>-  if test "$rb_cv_bsdgetpgrp" = yes; then</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define BSD_GETPGRP getpgrp</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  fi</div><div class='del'>-</div><div class='del'>-  echo $ac_n "checking whether setpgrp() has args""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3029: checking whether setpgrp() has args" &gt;&amp;5</div><div class='del'>-  if eval "test \"`echo '$''{'rb_cv_bsdsetpgrp'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3034 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;unistd.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-setpgrp(1, 1);</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3041: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_bsdsetpgrp=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_bsdsetpgrp=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-  echo "$ac_t""$rb_cv_bsdsetpgrp" 1&gt;&amp;6</div><div class='del'>-  if test "$rb_cv_bsdsetpgrp" = yes; then</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define BSD_SETPGRP setpgrp</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3063: checking whether byte ordering is bigendian" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_cv_c_bigendian=unknown</div><div class='del'>-# See if sys/param.h defines the BYTE_ORDER macro.</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3070 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/param.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN</div><div class='del'>- bogus endian macros</div><div class='del'>-#endif</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3081: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  # It does; now see whether it defined to BIG_ENDIAN or not.</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3085 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;sys/types.h&gt;</div><div class='del'>-#include &lt;sys/param.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-#if BYTE_ORDER != BIG_ENDIAN</div><div class='del'>- not big endian</div><div class='del'>-#endif</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3096: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_c_bigendian=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_c_bigendian=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-if test $ac_cv_c_bigendian = unknown; then</div><div class='del'>-if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3116 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-main () {</div><div class='del'>-  /* Are we little or big endian?  From Harbison&amp;Steele.  */</div><div class='del'>-  union</div><div class='del'>-  {</div><div class='del'>-    long l;</div><div class='del'>-    char c[sizeof (long)];</div><div class='del'>-  } u;</div><div class='del'>-  u.l = 1;</div><div class='del'>-  exit (u.c[sizeof (long) - 1] == 1);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3129: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_c_bigendian=no</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_c_bigendian=yes</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_c_bigendian" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_c_bigendian = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define WORDS_BIGENDIAN 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether char is unsigned""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3153: checking whether char is unsigned" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$GCC" = yes; then</div><div class='del'>-  # GCC predefines this symbol on systems where it applies.</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3160 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#ifdef __CHAR_UNSIGNED__</div><div class='del'>-  yes</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-if (eval "$ac_cpp conftest.$ac_ext") 2&gt;&amp;5 |</div><div class='del'>-  egrep "yes" &gt;/dev/null 2&gt;&amp;1; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_c_char_unsigned=yes</div><div class='del'>-else</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  ac_cv_c_char_unsigned=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3182 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* volatile prevents gcc2 from optimizing the test away on sparcs.  */</div><div class='del'>-#if !defined(__STDC__) || __STDC__ != 1</div><div class='del'>-#define volatile</div><div class='del'>-#endif</div><div class='del'>-main() {</div><div class='del'>-  volatile char c = 255; exit(c &lt; 0);</div><div class='del'>-}</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3192: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  ac_cv_c_char_unsigned=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  ac_cv_c_char_unsigned=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "$ac_t""$ac_cv_c_char_unsigned" 1&gt;&amp;6</div><div class='del'>-if test $ac_cv_c_char_unsigned = yes &amp;&amp; test "$GCC" != yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define __CHAR_UNSIGNED__ 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking whether right shift preserve sign bit""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3217: checking whether right shift preserve sign bit" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'rb_cv_rshift_sign'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3225 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</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'>-EOF</div><div class='del'>-if { (eval echo configure:3237: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  rb_cv_rshift_sign=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  rb_cv_rshift_sign=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-  echo "$ac_t""$rb_cv_rshift_sign" 1&gt;&amp;6</div><div class='del'>-if test "$rb_cv_rshift_sign" = yes; then</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define RSHIFT(x,y) ((x)&gt;&gt;y)</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define RSHIFT(x,y) (((x)&lt;0) ? ~((~(x))&gt;&gt;y) : (x)&gt;&gt;y)</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo $ac_n "checking count field in FILE structures""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3265: checking count field in FILE structures" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'rb_cv_fcnt'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3270 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-FILE *f = stdin; f-&gt;_cnt = 0;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3277: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_fcnt="_cnt"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-if test "$rb_cv_fcnt" = ""; then</div><div class='del'>-    cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3287 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-FILE *f = stdin; f-&gt;__cnt = 0;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3294: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_fcnt="__cnt"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-if test "$rb_cv_fcnt" = ""; then</div><div class='del'>-    cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3305 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-FILE *f = stdin; f-&gt;_r = 0;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3312: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_fcnt="_r"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-if test "$rb_cv_fcnt" = ""; then</div><div class='del'>-    cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3323 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-#include &lt;stdio.h&gt;</div><div class='del'>-int main() {</div><div class='del'>-FILE *f = stdin; f-&gt;readCount = 0;</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3330: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_fcnt="readCount"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_fcnt="not found"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$rb_cv_fcnt" = "not found"; then</div><div class='del'>-  echo "$ac_t""not found(OK if using GNU libc)" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""$rb_cv_fcnt" 1&gt;&amp;6</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define FILE_COUNT $rb_cv_fcnt</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-# Check whether --with-dln-a-out or --without-dln-a-out was given.</div><div class='del'>-if test "${with_dln_a_out+set}" = set; then</div><div class='del'>-  withval="$with_dln_a_out"</div><div class='del'>-  </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</div><div class='del'>-else</div><div class='del'>-  with_dln_a_out=no</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-case "$host_os" in</div><div class='del'>-    linux*)</div><div class='del'>-  echo $ac_n "checking whether ELF binaries are produced""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3369: checking whether ELF binaries are produced" &gt;&amp;5</div><div class='del'>-  if eval "test \"`echo '$''{'rb_cv_linux_elf'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3377 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</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'>-EOF</div><div class='del'>-if { (eval echo configure:3397: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  rb_cv_linux_elf=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  rb_cv_linux_elf=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-  echo "$ac_t""$rb_cv_linux_elf" 1&gt;&amp;6</div><div class='del'>-  if test "$rb_cv_linux_elf" = no; then</div><div class='del'>-    with_dln_a_out=yes</div><div class='del'>-    host_os=linux-a.out</div><div class='del'>-  else</div><div class='del'>-    LDFLAGS="-rdynamic"</div><div class='del'>-  fi;;</div><div class='del'>-esac</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-STATIC=</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'>-  echo $ac_n "checking whether OS depend dynamic link works""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3427: checking whether OS depend dynamic link works" &gt;&amp;5</div><div class='del'>-  if test "$GCC" = yes; then</div><div class='del'>-    case "$host_os" in</div><div class='del'>-    nextstep*)	;;</div><div class='del'>-    openstep*)	;;</div><div class='del'>-    rhapsody*)	;;</div><div class='del'>-    human*)	;;</div><div class='del'>-    cygwin32*)	CCDLFLAGS=-DDLLIMPORT;;</div><div class='del'>-    *) CCDLFLAGS=-fpic;;</div><div class='del'>-    esac</div><div class='del'>-  else</div><div class='del'>-    case "$host_os" in</div><div class='del'>-	hpux*)		CCDLFLAGS='+z';;</div><div class='del'>-	solaris*|irix*)	CCDLFLAGS='-K pic' ;;</div><div class='del'>-	sunos*)		CCDLFLAGS='-pic' ;;</div><div class='del'>-	esix*|uxpds*)   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 "$host_os" in</div><div class='del'>-	hpux*)		DLDFLAGS="-E"</div><div class='del'>-			LDSHARED='ld -b'</div><div class='del'>-			LDFLAGS="-Wl,-E"</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	solaris*) 	LDSHARED='ld -G'</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 -ignore_unresolved'</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'>-	esix*|uxpds*) 	LDSHARED="ld -G"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	linux*) 	LDSHARED="gcc -shared"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	freebsd*) 	LDSHARED="ld -Bshareable"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	netbsd*) 	LDSHARED="ld -Bshareable"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	openbsd*) 	LDSHARED="ld -Bshareable"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	nextstep*)	LDSHARED='cc -r'</div><div class='del'>-			LDFLAGS="-u libsys_s"</div><div class='del'>-			DLDFLAGS="$ARCH_FLAG" </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'>-			DLDFLAGS="$ARCH_FLAG"</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'>-			DLDFLAGS="$ARCH_FLAG"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	aix*)		LDSHARED='../../miniruby ../aix_ld.rb $(TARGET)'</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'>-	beos*) 		LDSHARED="ld -xms"</div><div class='del'>-			case "$host_cpu" in</div><div class='del'>-			  powerpc*)</div><div class='del'>-			    DLDFLAGS="-f ruby.exp -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o"</div><div class='del'>-                            ;;</div><div class='del'>-			  *)</div><div class='del'>-			    DLDFLAGS="ruby.def -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'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	cygwin32*)	LDSHARED='../../miniruby ../cygwin32_ld.rb' ;;</div><div class='del'>-	*) 		LDSHARED='ld' ;;</div><div class='del'>-  esac</div><div class='del'>-  echo "$ac_t""$rb_cv_dlopen" 1&gt;&amp;6</div><div class='del'>-fi</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'>-    echo $ac_n "checking whether matz's dln works""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3507: checking whether matz's dln works" &gt;&amp;5</div><div class='del'>-    cat confdefs.h &gt; config.h</div><div class='del'>-    if eval "test \"`echo '$''{'rb_cv_dln_a_out'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3513 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</div><div class='del'>-#define USE_DLN_A_OUT</div><div class='del'>-#include "dln.c"</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3523: \"$ac_compile\") 1&gt;&amp;5; (eval $ac_compile) 2&gt;&amp;5; }; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_dln_a_out=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  rb_cv_dln_a_out=no</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-    echo "$ac_t""$rb_cv_dln_a_out" 1&gt;&amp;6</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'>-      cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define USE_DLN_A_OUT 1</div><div class='del'>-EOF</div><div class='del'>-</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=o</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".o"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  CCDLFLAGS=</div><div class='del'>-else</div><div class='del'>-  case "$host_os" in</div><div class='del'>-    hpux*)	DLEXT=sl</div><div class='del'>-	 	cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".sl"</div><div class='del'>-EOF</div><div class='del'>-;;</div><div class='del'>-    nextstep*)	DLEXT=o</div><div class='del'>-	 	cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".o"</div><div class='del'>-EOF</div><div class='del'>-;;</div><div class='del'>-    openstep*)	DLEXT=bundle</div><div class='del'>-	 	cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".bundle"</div><div class='del'>-EOF</div><div class='del'>-;;</div><div class='del'>-    rhapsody*)	DLEXT=bundle</div><div class='del'>-	 	cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".bundle"</div><div class='del'>-EOF</div><div class='del'>-;;</div><div class='del'>-    cygwin32*)	DLEXT=dll</div><div class='del'>-	 	cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".dll"</div><div class='del'>-EOF</div><div class='del'>-;;</div><div class='del'>-    *)		DLEXT=so</div><div class='del'>-    		cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define DLEXT ".so"</div><div class='del'>-EOF</div><div class='del'>-;;</div><div class='del'>-  esac</div><div class='del'>-fi</div><div class='del'>-</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 "$host_os" in</div><div class='del'>-  linux*)</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'>-esac</div><div class='del'>-</div><div class='del'>-EXTSTATIC=</div><div class='del'>-# Check whether --with-static-linked-ext or --without-static-linked-ext was given.</div><div class='del'>-if test "${with_static_linked_ext+set}" = set; then</div><div class='del'>-  withval="$with_static_linked_ext"</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'>-fi</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-case "$host_os" in</div><div class='del'>-  human*)</div><div class='del'>-    echo $ac_n "checking for _harderr in -lsignal""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3625: checking for _harderr in -lsignal" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo signal'_'_harderr | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-lsignal  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3633 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char _harderr();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-_harderr()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3644: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_lib=HAVE_LIB`echo signal | sed -e 's/[^a-zA-Z0-9_]/_/g' \</div><div class='del'>-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_lib 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  LIBS="-lsignal $LIBS"</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-    echo $ac_n "checking for hmemset in -lhmem""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3672: checking for hmemset in -lhmem" &gt;&amp;5</div><div class='del'>-ac_lib_var=`echo hmem'_'hmemset | sed 'y%./+-%__p_%'`</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  ac_save_LIBS="$LIBS"</div><div class='del'>-LIBS="-lhmem  $LIBS"</div><div class='del'>-cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3680 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char hmemset();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-hmemset()</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3691: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_lib_$ac_lib_var=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-LIBS="$ac_save_LIBS"</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_lib=HAVE_LIB`echo hmem | sed -e 's/[^a-zA-Z0-9_]/_/g' \</div><div class='del'>-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_lib 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-  LIBS="-lhmem $LIBS"</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-    for ac_func in select</div><div class='del'>-do</div><div class='del'>-echo $ac_n "checking for $ac_func""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3721: checking for $ac_func" &gt;&amp;5</div><div class='del'>-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3726 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-/* System header to define __stub macros and hopefully few prototypes,</div><div class='del'>-    which can conflict with char $ac_func(); below.  */</div><div class='del'>-#include &lt;assert.h&gt;</div><div class='del'>-/* Override any gcc2 internal prototype to avoid an error.  */</div><div class='del'>-/* We use char because int might match the return type of a gcc2</div><div class='del'>-    builtin and then its argument prototype would still apply.  */</div><div class='del'>-char $ac_func();</div><div class='del'>-</div><div class='del'>-int main() {</div><div class='del'>-</div><div class='del'>-/* The GNU C library defines this for functions which it implements</div><div class='del'>-    to always fail with ENOSYS.  Some functions are actually named</div><div class='del'>-    something starting with __ and the normal name is an alias.  */</div><div class='del'>-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)</div><div class='del'>-choke me</div><div class='del'>-#else</div><div class='del'>-$ac_func();</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-; return 0; }</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3749: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest; then</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=yes"</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -rf conftest*</div><div class='del'>-  eval "ac_cv_func_$ac_func=no"</div><div class='del'>-fi</div><div class='del'>-rm -f conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then</div><div class='del'>-  echo "$ac_t""yes" 1&gt;&amp;6</div><div class='del'>-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`</div><div class='del'>-  cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define $ac_tr_func 1</div><div class='del'>-EOF</div><div class='del'>- </div><div class='del'>-else</div><div class='del'>-  echo "$ac_t""no" 1&gt;&amp;6</div><div class='del'>-fi</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-    echo $ac_n "checking whether PD libc _dtos18 fail to convert big number""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3774: checking whether PD libc _dtos18 fail to convert big number" &gt;&amp;5</div><div class='del'>-    if eval "test \"`echo '$''{'rb_cv_missing__dtos18'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3782 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</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'>-</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3794: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  rb_cv_missing__dtos18=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  rb_cv_missing__dtos18=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-    echo "$ac_t""$rb_cv_missing__dtos18" 1&gt;&amp;6</div><div class='del'>-    if test "$rb_cv_missing__dtos18" = yes; then</div><div class='del'>-      cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define MISSING__DTOS18 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    fi</div><div class='del'>-    echo $ac_n "checking whether PD libc fconvert fail to round""... $ac_c" 1&gt;&amp;6</div><div class='del'>-echo "configure:3816: checking whether PD libc fconvert fail to round" &gt;&amp;5</div><div class='del'>-    if eval "test \"`echo '$''{'rb_cv_missing_fconvert'+set}'`\" = set"; then</div><div class='del'>-  echo $ac_n "(cached) $ac_c" 1&gt;&amp;6</div><div class='del'>-else</div><div class='del'>-  if test "$cross_compiling" = yes; then</div><div class='del'>-    { echo "configure: error: can not run test program while cross compiling" 1&gt;&amp;2; exit 1; }</div><div class='del'>-else</div><div class='del'>-  cat &gt; conftest.$ac_ext &lt;&lt;EOF</div><div class='del'>-#line 3824 "configure"</div><div class='del'>-#include "confdefs.h"</div><div class='del'>-</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'>-</div><div class='del'>-EOF</div><div class='del'>-if { (eval echo configure:3837: \"$ac_link\") 1&gt;&amp;5; (eval $ac_link) 2&gt;&amp;5; } &amp;&amp; test -s conftest &amp;&amp; (./conftest; exit) 2&gt;/dev/null</div><div class='del'>-then</div><div class='del'>-  rb_cv_missing_fconvert=yes</div><div class='del'>-else</div><div class='del'>-  echo "configure: failed program was:" &gt;&amp;5</div><div class='del'>-  cat conftest.$ac_ext &gt;&amp;5</div><div class='del'>-  rm -fr conftest*</div><div class='del'>-  rb_cv_missing_fconvert=no</div><div class='del'>-fi</div><div class='del'>-rm -fr conftest*</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-    echo "$ac_t""$rb_cv_missing_fconvert" 1&gt;&amp;6</div><div class='del'>-    if test "$rb_cv_missing_fconvert" = yes; then</div><div class='del'>-      cat &gt;&gt; confdefs.h &lt;&lt;\EOF</div><div class='del'>-#define MISSING_FCONVERT 1</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    fi</div><div class='del'>-    LIBOBJS="$LIBOBJS x68.o"</div><div class='del'>-    CFLAGS="$CFLAGS -fansi-only -cc1-stack=196608 -cpp-stack=2694144"</div><div class='del'>-    binsuffix=.x</div><div class='del'>-    setup=Setup.x68</div><div class='del'>-    ;;</div><div class='del'>-  cygwin32*)</div><div class='del'>-    binsuffix=.exe</div><div class='del'>-    setup=Setup</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    binsuffix=</div><div class='del'>-    setup=Setup</div><div class='del'>-    ;;</div><div class='del'>-esac</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'>-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" = yes ; then</div><div class='del'>-  CFLAGS="$CFLAGS $ARCH_FLAG"</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-LIBRUBY='libruby.a'</div><div class='del'>-LIBRUBYARG='libruby.a'</div><div class='del'>-SOLIBS=</div><div class='del'>-if test "$host_os" = "beos"; then</div><div class='del'>-  CFLAGS="$CFLAGS -relax_pointers"</div><div class='del'>-  LIBRUBY='libruby.so'</div><div class='del'>-  LIBRUBYARG='-lruby'</div><div class='del'>-  SOLIBS='-lnet'</div><div class='del'>-  echo creating ruby.def</div><div class='del'>-  case "$host_cpu" in</div><div class='del'>-    powerpc*)</div><div class='del'>-      cp beos/ruby.def.in ruby.exp</div><div class='del'>-      ;;</div><div class='del'>-    *)</div><div class='del'>-      echo EXPORTS &gt; ruby.def</div><div class='del'>-      cat beos/ruby.def.in &gt;&gt; ruby.def</div><div class='del'>-      ;;</div><div class='del'>-  esac</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$enable_shared" = 'yes'; then</div><div class='del'>-  LIBRUBY='libruby.so'</div><div class='del'>-  LIBRUBYARG='-L./ -lruby'</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$host_os" in</div><div class='del'>-	nextstep*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe"</div><div class='del'>-		;;</div><div class='del'>-	openstep*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe"</div><div class='del'>-		;;</div><div class='del'>-	rhasody*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe -no-precomp"</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'>-</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-</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'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_LIB "${prefix}/lib/${RUBY_INSTALL_NAME}"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_SITE_LIB "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-if test "$fat_binary" = yes ; then</div><div class='del'>-    arch="fat-${host_os}"</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_THIN_ARCHLIB "${prefix}/lib/${RUBY_INSTALL_NAME}/" __ARCHITECTURE__ "-${host_os}" </div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_SITE_THIN_ARCHLIB "${prefix}/lib/${RUBY_INSTALL_NAME}/" __ARCHITECTURE__ "-${host_os}" </div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_ARCHLIB "${prefix}/lib/${RUBY_INSTALL_NAME}/${arch}"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_SITE_ARCHLIB "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby/${arch}"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_PLATFORM __ARCHITECTURE__ "-${host_os}" </div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-else</div><div class='del'>-    arch="${host_cpu}-${host_os}"</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_ARCHLIB "${prefix}/lib/${RUBY_INSTALL_NAME}/${arch}"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_SITE_ARCHLIB "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby/${arch}"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-    cat &gt;&gt; confdefs.h &lt;&lt;EOF</div><div class='del'>-#define RUBY_PLATFORM "${arch}"</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-echo "creating config.h"</div><div class='del'>-cat confdefs.h &gt; config.h</div><div class='del'>-</div><div class='del'>-trap '' 1 2 15</div><div class='del'>-cat &gt; confcache &lt;&lt;\EOF</div><div class='del'>-# This file is a shell script that caches the results of configure</div><div class='del'>-# tests run on this system so they can be shared between configure</div><div class='del'>-# scripts and configure runs.  It is not useful on other systems.</div><div class='del'>-# If it contains results you don't want to keep, you may remove or edit it.</div><div class='del'>-#</div><div class='del'>-# By default, configure uses ./config.cache as the cache file,</div><div class='del'>-# creating it if it does not exist already.  You can give configure</div><div class='del'>-# the --cache-file=FILE option to use a different cache file; that is</div><div class='del'>-# what configure does when it calls configure scripts in</div><div class='del'>-# subdirectories, so they share the cache.</div><div class='del'>-# Giving --cache-file=/dev/null disables caching, for debugging configure.</div><div class='del'>-# config.status only pays attention to the cache file if you give it the</div><div class='del'>-# --recheck option to rerun configure.</div><div class='del'>-#</div><div class='del'>-EOF</div><div class='del'>-# The following way of writing the cache mishandles newlines in values,</div><div class='del'>-# but we know of no workaround that is simple, portable, and efficient.</div><div class='del'>-# So, don't put newlines in cache variables' values.</div><div class='del'>-# Ultrix sh set writes to stderr and can't be redirected directly,</div><div class='del'>-# and sets the high bit in the cache file unless we assign to the vars.</div><div class='del'>-(set) 2&gt;&amp;1 |</div><div class='del'>-  case `(ac_space=' '; set) 2&gt;&amp;1` in</div><div class='del'>-  *ac_space=\ *)</div><div class='del'>-    # `set' does not quote correctly, so add quotes (double-quote substitution</div><div class='del'>-    # turns \\\\ into \\, and sed turns \\ into \).</div><div class='del'>-    sed -n \</div><div class='del'>-      -e "s/'/'\\\\''/g" \</div><div class='del'>-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    # `set' quotes correctly as required by POSIX, so do not add quotes.</div><div class='del'>-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'</div><div class='del'>-    ;;</div><div class='del'>-  esac &gt;&gt; confcache</div><div class='del'>-if cmp -s $cache_file confcache; then</div><div class='del'>-  :</div><div class='del'>-else</div><div class='del'>-  if test -w $cache_file; then</div><div class='del'>-    echo "updating cache $cache_file"</div><div class='del'>-    cat confcache &gt; $cache_file</div><div class='del'>-  else</div><div class='del'>-    echo "not updating unwritable cache $cache_file"</div><div class='del'>-  fi</div><div class='del'>-fi</div><div class='del'>-rm -f confcache</div><div class='del'>-</div><div class='del'>-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15</div><div class='del'>-</div><div class='del'>-test "x$prefix" = xNONE &amp;&amp; prefix=$ac_default_prefix</div><div class='del'>-# Let make expand exec_prefix.</div><div class='del'>-test "x$exec_prefix" = xNONE &amp;&amp; exec_prefix='${prefix}'</div><div class='del'>-</div><div class='del'>-# Any assignment to VPATH causes Sun make to only execute</div><div class='del'>-# the first set of double-colon rules, so remove it if not needed.</div><div class='del'>-# If there is a colon in the path, we need to keep it.</div><div class='del'>-if test "x$srcdir" = x.; then</div><div class='del'>-  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15</div><div class='del'>-</div><div class='del'>-# Transform confdefs.h into DEFS.</div><div class='del'>-# Protect against shell expansion while executing Makefile rules.</div><div class='del'>-# Protect against Makefile macro expansion.</div><div class='del'>-cat &gt; conftest.defs &lt;&lt;\EOF</div><div class='del'>-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g</div><div class='del'>-s%[ 	`~#$^&amp;*(){}\\|;'"&lt;&gt;?]%\\&amp;%g</div><div class='del'>-s%\[%\\&amp;%g</div><div class='del'>-s%\]%\\&amp;%g</div><div class='del'>-s%\$%$$%g</div><div class='del'>-EOF</div><div class='del'>-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`</div><div class='del'>-rm -f conftest.defs</div><div class='del'>-</div><div class='del'>-</div><div class='del'>-# Without the "./", some shells look in PATH for config.status.</div><div class='del'>-: ${CONFIG_STATUS=./config.status}</div><div class='del'>-</div><div class='del'>-echo creating $CONFIG_STATUS</div><div class='del'>-rm -f $CONFIG_STATUS</div><div class='del'>-cat &gt; $CONFIG_STATUS &lt;&lt;EOF</div><div class='del'>-#! /bin/sh</div><div class='del'>-# Generated automatically by configure.</div><div class='del'>-# Run this file to recreate the current configuration.</div><div class='del'>-# This directory was configured as follows,</div><div class='del'>-# on host `(hostname || uname -n) 2&gt;/dev/null | sed 1q`:</div><div class='del'>-#</div><div class='del'>-# $0 $ac_configure_args</div><div class='del'>-#</div><div class='del'>-# Compiler output produced by configure, useful for debugging</div><div class='del'>-# configure, is in ./config.log if it exists.</div><div class='del'>-</div><div class='del'>-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"</div><div class='del'>-for ac_option</div><div class='del'>-do</div><div class='del'>-  case "\$ac_option" in</div><div class='del'>-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)</div><div class='del'>-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"</div><div class='del'>-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;</div><div class='del'>-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)</div><div class='del'>-    echo "$CONFIG_STATUS generated by autoconf version 2.12"</div><div class='del'>-    exit 0 ;;</div><div class='del'>-  -help | --help | --hel | --he | --h)</div><div class='del'>-    echo "\$ac_cs_usage"; exit 0 ;;</div><div class='del'>-  *) echo "\$ac_cs_usage"; exit 1 ;;</div><div class='del'>-  esac</div><div class='del'>-done</div><div class='del'>-</div><div class='del'>-ac_given_srcdir=$srcdir</div><div class='del'>-ac_given_INSTALL="$INSTALL"</div><div class='del'>-</div><div class='del'>-trap 'rm -fr `echo "Makefile ext/extmk.rb" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15</div><div class='del'>-EOF</div><div class='del'>-cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF</div><div class='del'>-</div><div class='del'>-# Protect against being on the right side of a sed subst in config.status.</div><div class='del'>-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&amp;%]/\\\\&amp;/g;</div><div class='del'>- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' &gt; conftest.subs &lt;&lt;\\CEOF</div><div class='del'>-$ac_vpsub</div><div class='del'>-$extrasub</div><div class='del'>-s%@CFLAGS@%$CFLAGS%g</div><div class='del'>-s%@CPPFLAGS@%$CPPFLAGS%g</div><div class='del'>-s%@CXXFLAGS@%$CXXFLAGS%g</div><div class='del'>-s%@DEFS@%$DEFS%g</div><div class='del'>-s%@LDFLAGS@%$LDFLAGS%g</div><div class='del'>-s%@LIBS@%$LIBS%g</div><div class='del'>-s%@exec_prefix@%$exec_prefix%g</div><div class='del'>-s%@prefix@%$prefix%g</div><div class='del'>-s%@program_transform_name@%$program_transform_name%g</div><div class='del'>-s%@bindir@%$bindir%g</div><div class='del'>-s%@sbindir@%$sbindir%g</div><div class='del'>-s%@libexecdir@%$libexecdir%g</div><div class='del'>-s%@datadir@%$datadir%g</div><div class='del'>-s%@sysconfdir@%$sysconfdir%g</div><div class='del'>-s%@sharedstatedir@%$sharedstatedir%g</div><div class='del'>-s%@localstatedir@%$localstatedir%g</div><div class='del'>-s%@libdir@%$libdir%g</div><div class='del'>-s%@includedir@%$includedir%g</div><div class='del'>-s%@oldincludedir@%$oldincludedir%g</div><div class='del'>-s%@infodir@%$infodir%g</div><div class='del'>-s%@mandir@%$mandir%g</div><div class='del'>-s%@host@%$host%g</div><div class='del'>-s%@host_alias@%$host_alias%g</div><div class='del'>-s%@host_cpu@%$host_cpu%g</div><div class='del'>-s%@host_vendor@%$host_vendor%g</div><div class='del'>-s%@host_os@%$host_os%g</div><div class='del'>-s%@CC@%$CC%g</div><div class='del'>-s%@CPP@%$CPP%g</div><div class='del'>-s%@YACC@%$YACC%g</div><div class='del'>-s%@RANLIB@%$RANLIB%g</div><div class='del'>-s%@AR@%$AR%g</div><div class='del'>-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g</div><div class='del'>-s%@INSTALL_DATA@%$INSTALL_DATA%g</div><div class='del'>-s%@SET_MAKE@%$SET_MAKE%g</div><div class='del'>-s%@LIBOBJS@%$LIBOBJS%g</div><div class='del'>-s%@ALLOCA@%$ALLOCA%g</div><div class='del'>-s%@DLDFLAGS@%$DLDFLAGS%g</div><div class='del'>-s%@STATIC@%$STATIC%g</div><div class='del'>-s%@CCDLFLAGS@%$CCDLFLAGS%g</div><div class='del'>-s%@LDSHARED@%$LDSHARED%g</div><div class='del'>-s%@DLEXT@%$DLEXT%g</div><div class='del'>-s%@STRIP@%$STRIP%g</div><div class='del'>-s%@EXTSTATIC@%$EXTSTATIC%g</div><div class='del'>-s%@binsuffix@%$binsuffix%g</div><div class='del'>-s%@setup@%$setup%g</div><div class='del'>-s%@LIBRUBY@%$LIBRUBY%g</div><div class='del'>-s%@LIBRUBYARG@%$LIBRUBYARG%g</div><div class='del'>-s%@SOLIBS@%$SOLIBS%g</div><div class='del'>-s%@arch@%$arch%g</div><div class='del'>-</div><div class='del'>-CEOF</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF</div><div class='del'>-</div><div class='del'>-# Split the substitutions into bite-sized pieces for seds with</div><div class='del'>-# small command number limits, like on Digital OSF/1 and HP-UX.</div><div class='del'>-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.</div><div class='del'>-ac_file=1 # Number of current file.</div><div class='del'>-ac_beg=1 # First line for current file.</div><div class='del'>-ac_end=$ac_max_sed_cmds # Line after last line for current file.</div><div class='del'>-ac_more_lines=:</div><div class='del'>-ac_sed_cmds=""</div><div class='del'>-while $ac_more_lines; do</div><div class='del'>-  if test $ac_beg -gt 1; then</div><div class='del'>-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs &gt; conftest.s$ac_file</div><div class='del'>-  else</div><div class='del'>-    sed "${ac_end}q" conftest.subs &gt; conftest.s$ac_file</div><div class='del'>-  fi</div><div class='del'>-  if test ! -s conftest.s$ac_file; then</div><div class='del'>-    ac_more_lines=false</div><div class='del'>-    rm -f conftest.s$ac_file</div><div class='del'>-  else</div><div class='del'>-    if test -z "$ac_sed_cmds"; then</div><div class='del'>-      ac_sed_cmds="sed -f conftest.s$ac_file"</div><div class='del'>-    else</div><div class='del'>-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"</div><div class='del'>-    fi</div><div class='del'>-    ac_file=`expr $ac_file + 1`</div><div class='del'>-    ac_beg=$ac_end</div><div class='del'>-    ac_end=`expr $ac_end + $ac_max_sed_cmds`</div><div class='del'>-  fi</div><div class='del'>-done</div><div class='del'>-if test -z "$ac_sed_cmds"; then</div><div class='del'>-  ac_sed_cmds=cat</div><div class='del'>-fi</div><div class='del'>-EOF</div><div class='del'>-</div><div class='del'>-cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF</div><div class='del'>-</div><div class='del'>-CONFIG_FILES=\${CONFIG_FILES-"Makefile ext/extmk.rb"}</div><div class='del'>-EOF</div><div class='del'>-cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF</div><div class='del'>-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then</div><div class='del'>-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".</div><div class='del'>-  case "$ac_file" in</div><div class='del'>-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`</div><div class='del'>-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;</div><div class='del'>-  *) ac_file_in="${ac_file}.in" ;;</div><div class='del'>-  esac</div><div class='del'>-</div><div class='del'>-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.</div><div class='del'>-</div><div class='del'>-  # Remove last slash and all that follows it.  Not all systems have dirname.</div><div class='del'>-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`</div><div class='del'>-  if test "$ac_dir" != "$ac_file" &amp;&amp; test "$ac_dir" != .; then</div><div class='del'>-    # The file is in a subdirectory.</div><div class='del'>-    test ! -d "$ac_dir" &amp;&amp; mkdir "$ac_dir"</div><div class='del'>-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"</div><div class='del'>-    # A "../" for each directory in $ac_dir_suffix.</div><div class='del'>-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`</div><div class='del'>-  else</div><div class='del'>-    ac_dir_suffix= ac_dots=</div><div class='del'>-  fi</div><div class='del'>-</div><div class='del'>-  case "$ac_given_srcdir" in</div><div class='del'>-  .)  srcdir=.</div><div class='del'>-      if test -z "$ac_dots"; then top_srcdir=.</div><div class='del'>-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;</div><div class='del'>-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;</div><div class='del'>-  *) # Relative path.</div><div class='del'>-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"</div><div class='del'>-    top_srcdir="$ac_dots$ac_given_srcdir" ;;</div><div class='del'>-  esac</div><div class='del'>-</div><div class='del'>-  case "$ac_given_INSTALL" in</div><div class='del'>-  [/$]*) INSTALL="$ac_given_INSTALL" ;;</div><div class='del'>-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;</div><div class='del'>-  esac</div><div class='del'>-</div><div class='del'>-  echo creating "$ac_file"</div><div class='del'>-  rm -f "$ac_file"</div><div class='del'>-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."</div><div class='del'>-  case "$ac_file" in</div><div class='del'>-  *Makefile*) ac_comsub="1i\\</div><div class='del'>-# $configure_input" ;;</div><div class='del'>-  *) ac_comsub= ;;</div><div class='del'>-  esac</div><div class='del'>-</div><div class='del'>-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`</div><div class='del'>-  sed -e "$ac_comsub</div><div class='del'>-s%@configure_input@%$configure_input%g</div><div class='del'>-s%@srcdir@%$srcdir%g</div><div class='del'>-s%@top_srcdir@%$top_srcdir%g</div><div class='del'>-s%@INSTALL@%$INSTALL%g</div><div class='del'>-" $ac_file_inputs | (eval "$ac_sed_cmds") &gt; $ac_file</div><div class='del'>-fi; done</div><div class='del'>-rm -f conftest.s*</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-cat &gt;&gt; $CONFIG_STATUS &lt;&lt;EOF</div><div class='del'>-</div><div class='del'>-EOF</div><div class='del'>-cat &gt;&gt; $CONFIG_STATUS &lt;&lt;\EOF</div><div class='del'>-</div><div class='del'>-exit 0</div><div class='del'>-EOF</div><div class='del'>-chmod +x $CONFIG_STATUS</div><div class='del'>-rm -fr confdefs* $ac_clean_files</div><div class='del'>-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1</div><div class='del'>-</div><div class='head'>diff --git a/configure.bat b/configure.bat<br/>deleted file mode 100644<br/>index 093d43549d..0000000000<br/>--- a/<a href='/ruby.git/tree/configure.bat?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>configure.bat</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,6 +0,0 @@</div><div class='del'>-@echo off</div><div class='del'>-sed -f top.sed Makefile.in &gt;Makefile</div><div class='del'>-sed -f top.sed ext/extmk.rb.in &gt; ext\extmk.rb</div><div class='del'>-copy ext\Setup.dj ext\Setup</div><div class='del'>-copy config_h.dj config.h</div><div class='del'>-copy config_s.dj config.status</div><div class='head'>diff --git a/configure.in b/configure.in<br/>index 9ddce9983e..b006a01a81 100644<br/>--- a/<a href='/ruby.git/tree/configure.in?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>configure.in</a><br/>+++ b/<a href='/ruby.git/tree/configure.in?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>configure.in</a></div><div class='hunk'>@@ -1,99 +1,789 @@</div><div class='ctx'> dnl Process this file with autoconf to produce a configure script.</div><div class='del'>-AC_INIT(ruby.h)</div><div class='add'>+dnl {</div><div class='add'>+AC_INIT()</div><div class='add'>+AC_CONFIG_AUX_DIR(tool)</div><div class='add'>+</div><div class='add'>+AC_PREREQ(2.60)</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_PREREQ_AC],</div><div class='add'>+	[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]), [$1]), [-1],</div><div class='add'>+		AC_MSG_ERROR([Autoconf version ]$1[ or higher is required]$2))])</div><div class='add'>+</div><div class='add'>+dnl environment section {</div><div class='add'>+</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'>+	[</div><div class='add'>+		AS_CASE(["$withval"],[*ruby*],[BASERUBY=$withval],[AC_MSG_ERROR(need ruby)])</div><div class='add'>+	],</div><div class='add'>+	[</div><div class='add'>+		BASERUBY="ruby"</div><div class='add'>+	])</div><div class='add'>+test "`RUBYOPT=- $BASERUBY -e 'p 42' 2&gt;/dev/null`" = 42 ||</div><div class='add'>+    BASERUBY="echo executable host ruby is required.  use --with-baseruby option.; false"</div><div class='add'>+AC_SUBST(BASERUBY)</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'>+test "$rb_cv_mingw32" = yes &amp;&amp; target_os="mingw32"</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'>+[cppflags=$CPPFLAGS</div><div class='add'>+CPPFLAGS='-o conftest.i'</div><div class='add'>+AC_TRY_CPP([], rb_cv_cppoutfile=yes, rb_cv_cppoutfile=no)</div><div class='add'>+CPPFLAGS=$cppflags</div><div class='add'>+rm -f conftest*])</div><div class='add'>+if test "$rb_cv_cppoutfile" = yes; then</div><div class='add'>+  CPPOUTFILE='-o conftest.i'</div><div class='add'>+elif test "$rb_cv_cppoutfile" = no; then</div><div class='add'>+  CPPOUTFILE='&gt; conftest.i'</div><div class='add'>+elif test -n "$rb_cv_cppoutfile"; then</div><div class='add'>+  CPPOUTFILE="$rb_cv_cppoutfile"</div><div class='add'>+fi</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'>+[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='add'>+  rb_cv_prog_gnu_ld=yes</div><div class='add'>+else</div><div class='add'>+  rb_cv_prog_gnu_ld=no</div><div class='add'>+fi</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]*\)/\1=\2/p' $srcdir/include/ruby/version.h`</div><div class='add'>+for v in MAJOR MINOR TEENY; do</div><div class='add'>+    if eval "test \"\$$v\" = ''"; then</div><div class='add'>+	AC_MSG_ERROR(could not determine $v number from version.h)</div><div class='add'>+    fi</div><div class='add'>+done</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'>+RUBY_PROGRAM_VERSION=`sed -n 's/^#define RUBY_VERSION "\(.*\)"/\1/p' $srcdir/version.h`</div><div class='add'>+AC_SUBST(RUBY_PROGRAM_VERSION)</div><div class='add'>+RUBY_RELEASE_DATE=`sed -n 's/^#define RUBY_RELEASE_DATE "\(.*\)"/\1/p' $srcdir/version.h`</div><div class='add'>+AC_SUBST(RUBY_RELEASE_DATE)</div><div class='add'>+if test "$MAJOR" = "1"; then</div><div class='add'>+  AC_DEFINE(CANONICALIZATION_FOR_MATHN)</div><div class='add'>+fi</div><div class='ctx'> </div><div class='ctx'> 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'>-		without_gcc=yes;;</div><div class='del'>-	yes)	CC=gcc</div><div class='del'>-		without_gcc=no;;</div><div class='del'>-	*)	CC=$withval</div><div class='del'>-		without_gcc=$withval;;</div><div class='del'>-	esac], [without_gcc=no])</div><div class='add'>+AC_CANONICAL_BUILD</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='ctx'> dnl If the user switches compilers, we can't believe the cache</div><div class='ctx'> if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"</div><div class='ctx'> then</div><div class='del'>-  AC_ERROR(cached CC is different -- throw away $cache_file</div><div class='add'>+  AC_MSG_ERROR(cached CC is different -- throw away $cache_file</div><div class='ctx'> (it is also a good idea to do 'make clean' before compiling))</div><div class='ctx'> fi</div><div class='add'>+AS_CASE(["$build_os"],</div><div class='add'>+  [darwin11.*], [</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'>+      [xclang|x/usr/bin/clang],     [: ${CXX=clang++}])</div><div class='add'>+  ])</div><div class='add'>+test -z "$CC" || ac_cv_prog_CC="$CC"</div><div class='ctx'> </div><div class='del'>-dnl checks for thread</div><div class='del'>-rb_thread=yes</div><div class='del'>-AC_ARG_ENABLE(thread, [--disable-thread          never use user-level thread], [</div><div class='del'>-	rb_thread=$enableval</div><div class='del'>-])</div><div class='del'>-if test $rb_thread = yes; then</div><div class='del'>-  AC_DEFINE(THREAD)</div><div class='add'>+if test "$program_prefix" = NONE; then</div><div class='add'>+  program_prefix=</div><div class='ctx'> fi</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='ctx'> </div><div class='del'>-AC_CANONICAL_HOST</div><div class='add'>+AC_CANONICAL_TARGET</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='ctx'> </div><div class='del'>-dnl checks for fat-binary</div><div class='del'>-fat_binary=no</div><div class='del'>-AC_ARG_ENABLE( fat-binary,</div><div class='del'>-       [--enable-fat-binary       build a NeXT/Apple Multi Architecture Binary. ],</div><div class='del'>-       [ fat_binary=$enableval ] )</div><div class='del'>-      if test "$fat_binary" = yes ; then</div><div class='add'>+AC_DEFUN([RUBY_APPEND_OPTION],</div><div class='add'>+	[# RUBY_APPEND_OPTION($1, $2)</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'>+	[{ for rb_opt in $2; do # RUBY_APPEND_OPTIONS($1, $2)</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, $2)</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'>+	[{ unset rb_opts; for rb_opt in $2; do # RUBY_PREPEND_OPTIONS($1, $2)</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='ctx'> </div><div class='del'>-    AC_MSG_CHECKING( target architecture )</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='ctx'> </div><div class='del'>-    if test "$host_os" = "rhapsody" ; then</div><div class='del'>-        echo -n "Rhapsody: "</div><div class='del'>-	if test "$TARGET_ARCHS" = "" ; then</div><div class='del'>-           TARGET_ARCHS="ppc i486"</div><div class='del'>-  	fi</div><div class='del'>-    else</div><div class='del'>-  	echo -n "NeXTSTEP/OPENSTEP: "</div><div class='del'>-        if test "$TARGET_ARCHS" = "" ; then</div><div class='del'>-           if test `/usr/bin/arch` = "m68k" ; then</div><div class='del'>-               TARGET_ARCHS="m68k i486"</div><div class='del'>-           else</div><div class='del'>-               TARGET_ARCHS="m68k `/usr/bin/arch`"</div><div class='del'>-           fi</div><div class='del'>-        fi</div><div class='del'>-    fi</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 " $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'>+if test ${target_archs+set}; then</div><div class='add'>+    AC_MSG_CHECKING([target architectures])</div><div class='add'>+    target_archs=`echo $target_archs | tr , ' '`</div><div class='ctx'>     # /usr/lib/arch_tool -archify_list $TARGET_ARCHS</div><div class='del'>-    for archs in $TARGET_ARCHS </div><div class='add'>+    for archs in $target_archs</div><div class='ctx'>     do</div><div class='del'>-        ARCH_FLAG="$ARCH_FLAG -arch $archs "</div><div class='del'>-        echo -n " $archs"</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='ctx'>     done</div><div class='del'>-    AC_DEFINE( NEXT_FAT_BINARY )</div><div class='del'>-    echo "."</div><div class='del'>-fi </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'>+    if test "${universal_binary-no}" = yes; then</div><div class='add'>+	RUBY_PREREQ_AC(2.63, [ to compile universal binary])</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'>+    else</div><div class='add'>+	if test x"$target_cpu" != x"${target_archs}"; then</div><div class='add'>+	    echo 'int main(){return 0;}' &gt; conftest.c</div><div class='add'>+	    if $CC $CFLAGS $ARCH_FLAG -o conftest conftest.c &gt; /dev/null 2&gt;&amp;1; then</div><div class='add'>+		rm -fr conftest.*</div><div class='add'>+	    else</div><div class='add'>+		RUBY_DEFAULT_ARCH("$target_archs")</div><div class='add'>+	    fi</div><div class='add'>+	fi</div><div class='add'>+	target_cpu=${target_archs}</div><div class='add'>+    fi</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'>+else</div><div class='add'>+    if test x"$target_alias" = x; then</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'>+    fi</div><div class='add'>+    target_archs="$target_cpu"</div><div class='add'>+fi</div><div class='add'>+if test "${target_archs}" != "${rb_cv_target_archs-${target_archs}}"; then</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'>+else</div><div class='add'>+    rb_cv_target_archs=${target_archs}</div><div class='add'>+fi</div><div class='add'>+if test "x${ARCH_FLAG}" != x; then</div><div class='add'>+    CFLAGS="$CFLAGS ${ARCH_FLAG}"</div><div class='add'>+    LDFLAGS="${LDFLAGS+$LDFLAGS }${ARCH_FLAG}"</div><div class='add'>+fi</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='ctx'> </div><div class='ctx'> AC_ARG_PROGRAM</div><div class='ctx'> </div><div class='ctx'> 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'>+if test -z "${CFLAGS+set}"; then</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'>+fi</div><div class='add'>+if test -z "${CXXFLAGS+set}"; then</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'>+fi</div><div class='add'>+</div><div class='add'>+if test x"${build}" != x"${host}"; then</div><div class='add'>+  AC_CHECK_TOOL(CC, gcc)</div><div class='add'>+fi</div><div class='ctx'> AC_PROG_CC</div><div class='add'>+AC_PROG_CXX</div><div class='ctx'> AC_PROG_GCC_TRADITIONAL</div><div class='del'>-AC_PROG_YACC</div><div class='del'>-AC_PROG_RANLIB</div><div class='del'>-AC_SUBST(AR)</div><div class='del'>-AC_CHECK_PROGS(AR, ar aal, ar)</div><div class='del'>-AC_PROG_INSTALL</div><div class='add'>+AC_SUBST(GCC)</div><div class='add'>+if test "$GCC" = yes; then</div><div class='add'>+    linker_flag=-Wl,</div><div class='add'>+    : ${optflags=-O3}</div><div class='add'>+    RUBY_APPEND_OPTIONS(XCFLAGS, ["-include ruby/config.h" "-include ruby/missing.h"])</div><div class='add'>+else</div><div class='add'>+    linker_flag=</div><div class='add'>+fi</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'>+AC_SUBST(OUTFLAG)</div><div class='add'>+AC_SUBST(COUTFLAG)</div><div class='add'>+</div><div class='add'>+RUBY_MINGW32</div><div class='add'>+RUBY_UNIVERSAL_ARCH</div><div class='add'>+if test "$target_cpu" != "$host_cpu" -a "$GCC" = yes -a "$cross_compiling" = no -a "$universal_binary" = no; then</div><div class='add'>+    RUBY_DEFAULT_ARCH("$target_cpu")</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'>+if test -z "$AR"; then</div><div class='add'>+  AC_CHECK_PROGS(AR, aal, ar)</div><div class='add'>+fi</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'>+    ])</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='ctx'> AC_PROG_MAKE_SET</div><div class='add'>+AC_PROG_INSTALL</div><div class='add'>+AC_PROG_MKDIR_P</div><div class='add'>+if test "x$MKDIR_P" = "x -d"; then</div><div class='add'>+  if test x"$as_mkdir_p" != xfalse; then</div><div class='add'>+    MKDIR_P='mkdir -p'</div><div class='add'>+    echo "use 'mkdir -p' as MKDIR_P"</div><div class='add'>+  else</div><div class='add'>+    AC_MSG_ERROR([mkdir -p is required])</div><div class='add'>+  fi</div><div class='add'>+fi</div><div class='add'>+MAKEDIRS="$MKDIR_P"</div><div class='add'>+AC_SUBST(MAKEDIRS)</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='ctx'> </div><div class='ctx'> # checks for UNIX variants that set C preprocessor variables</div><div class='del'>-AC_MINIX</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'>+if test -e conf$$.dir/src/cdcmd; then</div><div class='add'>+    read CHDIR &lt; conf$$.dir/src/cdcmd 2&gt; /dev/null</div><div class='add'>+else</div><div class='add'>+    CHDIR=cd</div><div class='add'>+fi</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'>+dnl }</div><div class='add'>+dnl 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'>+if test "${ac_c_werror_flag+set}"; then</div><div class='add'>+  rb_c_werror_flag="$ac_c_werror_flag"</div><div class='add'>+else</div><div class='add'>+  unset rb_c_werror_flag</div><div class='add'>+fi</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'>+if test "${rb_c_werror_flag+set}"; then</div><div class='add'>+  ac_c_werror_flag="$rb_c_werror_flag"</div><div class='add'>+else</div><div class='add'>+  unset ac_c_werror_flag</div><div class='add'>+fi])</div><div class='add'>+</div><div class='add'>+AC_DEFUN(RUBY_TRY_CFLAGS, [</div><div class='add'>+    AC_MSG_CHECKING([whether ]$1[ is accepted])</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])</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'>+rb_cv_warnflags="$warnflags"</div><div class='add'>+if test "$GCC:${warnflags+set}:no" = yes::no; then</div><div class='add'>+    particular_werror_flags=yes</div><div class='add'>+    for wflag in -Wno-unused-parameter -Wno-parentheses -Wno-long-long \</div><div class='add'>+		 -Wno-missing-field-initializers \</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'>+		 ; do</div><div class='add'>+	if test "$particular_werror_flags" = yes; then</div><div class='add'>+	    wflag=`echo x$wflag | sed 's/^x-Werror-/-Werror=/;s/^x//'`</div><div class='add'>+	else</div><div class='add'>+	    wflag=`echo x$wflag | sed 's/^x-Werror=/-W/;s/^x//'`</div><div class='add'>+	fi</div><div class='add'>+	ok=no</div><div class='add'>+	RUBY_TRY_CFLAGS($wflag, [warnflags="${warnflags+$warnflags }$wflag" ok=yes])</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'>+		warnflags="${warnflags+$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'>+fi</div><div class='add'>+if test "$GCC" = yes; then</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'>+fi</div><div class='add'>+test $ac_cv_prog_cc_g = yes &amp;&amp; : ${debugflags=-g}</div><div class='add'>+</div><div class='add'>+if test "$GCC" = ""; then</div><div class='add'>+    AS_CASE(["$target_os"],[aix*],[warnflags="-qinfo=por"])</div><div class='add'>+fi</div><div class='add'>+if test "$GCC" = yes; then</div><div class='add'>+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([</div><div class='add'>+	@%:@if !(defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4)</div><div class='add'>+	@%:@error not GCC 4 or later</div><div class='add'>+	&gt;&gt;&gt;not GCC 4 or later&lt;&lt;&lt;</div><div class='add'>+	@%:@endif])],</div><div class='add'>+	[visibility_option=yes], [visibility_option=no])</div><div class='add'>+    if test "$visibility_option" = yes; then</div><div class='add'>+	RUBY_TRY_CFLAGS(-fvisibility=hidden, [visibility_option=yes], [visibility_option=no])</div><div class='add'>+    fi</div><div class='add'>+    AC_SUBST(WERRORFLAG, "-Werror")</div><div class='add'>+    if test "$visibility_option" = yes; then</div><div class='add'>+	RUBY_APPEND_OPTION(XCFLAGS, -fvisibility=hidden)</div><div class='add'>+    else</div><div class='add'>+	RUBY_TRY_LDFLAGS([-Wl,-unexported_symbol,_Init_*], [visibility_option=ld], [visibility_option=no])</div><div class='add'>+    fi</div><div class='add'>+    test "$visibility_option" = no || OBJCOPY=:</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+if test "$GCC" = yes; then</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'>+    ])</div><div class='add'>+fi</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'>+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'>+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"],[mingw*], [ac_cv_type_off_t=yes;ac_cv_sizeof_off_t=8])</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'>+</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'>+[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'>+    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}"])</div><div class='add'>+	done</div><div class='add'>+    done</div><div class='add'>+    }])</div><div class='add'>+    m4_ifval([$2][$3], [case "${AS_TR_SH(ac_cv_sizeof_$1)}" in</div><div class='add'>+    #(</div><div class='add'>+    [SIZEOF_*]);;</div><div class='add'>+    #(</div><div class='add'>+    *)])</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'>+    if test ${t-0} != 0; then</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'>+    fi</div><div class='add'>+    m4_ifval([$2][$3], [;; esac])</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'>+	    echo "@%:@${cond+el}if defined(__${t}__) || defined(__${t}) || defined(_${t}) || defined($t)"</div><div class='add'>+	    echo "@%:@define AS_TR_CPP(SIZEOF_$1) [$[s / rb_cv_char_bit]]"</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'>+])</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)</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'>+</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(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'>+if test "[$rb_cv_pri_prefix_]AS_TR_SH($1)" != NONE; then</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'>+fi</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+if test "x$ac_cv_type_long_long" = xyes; then</div><div class='add'>+    RUBY_CHECK_PRINTF_PREFIX(long long, ll I64, LL)</div><div class='add'>+elif test "x$ac_cv_type___int64" = xyes; then</div><div class='add'>+    RUBY_CHECK_PRINTF_PREFIX(__int64, ll I64, LL)</div><div class='add'>+fi</div><div class='ctx'> </div><div class='del'>-AC_CHECK_SIZEOF(int)</div><div class='del'>-AC_CHECK_SIZEOF(long)</div><div class='del'>-AC_CHECK_SIZEOF(void*)</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'>+	  [</div><div class='add'>+	    AC_COMPILE_IFELSE(</div><div class='add'>+		[AC_LANG_BOOL_COMPILE_TRY([AC_INCLUDES_DEFAULT([$4])], [($n)-1 &gt; 0])],</div><div class='add'>+		[u=U])])</div><div class='add'>+	if test x"$t" = x; then</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'>+	fi</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'>+    test "${AS_TR_SH(ac_cv_type_[$1])}" = "yes" &amp;&amp; n="$1"</div><div class='add'>+    AC_DEFINE_UNQUOTED(rb_[$1], $n)</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, [@%:@include &lt;sys/resource.h&gt;])</div><div class='ctx'> </div><div class='del'>-AC_MSG_CHECKING(for prototypes)</div><div class='del'>-AC_CACHE_VAL(rb_cv_have_prototypes,</div><div class='add'>+AC_CACHE_CHECK(for prototypes, rb_cv_have_prototypes,</div><div class='ctx'>   [AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],</div><div class='ctx'> 	rb_cv_have_prototypes=yes,</div><div class='ctx'> 	rb_cv_have_prototypes=no)])</div><div class='del'>-AC_MSG_RESULT($rb_cv_have_prototypes)</div><div class='ctx'> if test "$rb_cv_have_prototypes" = yes; then</div><div class='ctx'>   AC_DEFINE(HAVE_PROTOTYPES)</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-AC_MSG_CHECKING(for variable length prototypes and stdarg.h)</div><div class='del'>-AC_CACHE_VAL(rb_cv_stdarg,</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'>+if test "$rb_cv_tokenpaste" = ansi; then</div><div class='add'>+  AC_DEFINE(TOKEN_PASTE(x,y),[x##y])</div><div class='add'>+else</div><div class='add'>+  AC_DEFINE(TOKEN_PASTE(x,y),[x/**/y])</div><div class='add'>+fi</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'>+if test x"$rb_cv_stringization" != xno -a "$rb_cv_stringization" != "#expr"; then</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'>+fi</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'>+if test "$rb_cv_string_literal_concatenation" = no; then</div><div class='add'>+  AC_DEFINE(NO_STRING_LITERAL_CONCATENATION,1)</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for variable length prototypes and stdarg.h, rb_cv_stdarg,</div><div class='ctx'>   [AC_TRY_COMPILE([</div><div class='ctx'> #include &lt;stdarg.h&gt;</div><div class='ctx'> int foo(int x, ...) {</div><div class='hunk'>@@ -107,75 +797,843 @@ int foo(int x, ...) {</div><div class='ctx'> ], [return foo(10, "", 3.14);],</div><div class='ctx'> 	rb_cv_stdarg=yes,</div><div class='ctx'> 	rb_cv_stdarg=no)])</div><div class='del'>-AC_MSG_RESULT($rb_cv_stdarg)</div><div class='ctx'> if test "$rb_cv_stdarg" = yes; then</div><div class='ctx'>   AC_DEFINE(HAVE_STDARG_PROTOTYPES)</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-AC_MSG_CHECKING(for gcc attribute noreturn)</div><div class='del'>-AC_CACHE_VAL(rb_cv_have_attr_noreturn,</div><div class='del'>-  [AC_TRY_COMPILE([void exit(int x) __attribute__ ((noreturn));], [],</div><div class='del'>-	rb_cv_have_attr_noreturn=yes,</div><div class='del'>-	rb_cv_have_attr_noreturn=no)])</div><div class='del'>-AC_MSG_RESULT($rb_cv_have_attr_noreturn)</div><div class='del'>-if test "$rb_cv_have_attr_noreturn" = yes; then</div><div class='del'>-  AC_DEFINE(HAVE_ATTR_NORETURN)</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'>+if test "$rb_cv_va_args_macro" = yes; then</div><div class='add'>+  AC_DEFINE(HAVE_VA_ARGS_MACRO)</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+AC_DEFUN([RUBY_DEFINE_IF], [dnl</div><div class='add'>+    m4_ifval([$1],[test "$1" &amp;&amp; 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)</div><div class='add'>+    m4_ifval([$1],[test "$1" &amp;&amp; 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_FUNC_ATTRIBUTE(attrib, macroname, cachevar, condition)</div><div class='add'>+AC_DEFUN([RUBY_FUNC_ATTRIBUTE], [dnl</div><div class='add'>+m4_ifval([$2], dnl</div><div class='add'>+  [AS_VAR_PUSHDEF([attrib],[$2])], dnl</div><div class='add'>+  [AS_VAR_PUSHDEF([attrib],[FUNC_]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_func_][$1])]dnl</div><div class='add'>+)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 [$1] function attribute, rbcv,</div><div class='add'>+[rbcv=x</div><div class='add'>+RUBY_WERROR_FLAG([</div><div class='add'>+for mac in "__attribute__ (($1)) x" "x __attribute__ (($1))" "__declspec($1) x" 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[(x) $mac]</div><div class='add'>+m4_ifval([$4],${rbcv_cond+[@%:@else]}</div><div class='add'>+${rbcv_cond+[@%:@define ]attrib[(x) x]}</div><div class='add'>+${rbcv_cond+[@%:@endif]})</div><div class='add'>+    attrib[(void conftest_attribute_check(void));], [],</div><div class='add'>+    [rbcv="$mac"; break])</div><div class='add'>+done</div><div class='add'>+])])</div><div class='add'>+if test "$rbcv" != x; then</div><div class='add'>+    RUBY_DEFINE_IF([${rbcv_cond}], attrib[(x)], $rbcv)</div><div class='add'>+fi</div><div class='add'>+AS_VAR_POPDEF([attrib])</div><div class='add'>+AS_VAR_POPDEF([rbcv])</div><div class='add'>+])</div><div class='add'>+</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(noinline, NOINLINE)</div><div class='add'>+</div><div class='add'>+if_i386=${universal_binary+[defined __i386__]}</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(stdcall,  [], [], ${if_i386})</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(cdecl,    [], [], ${if_i386})</div><div class='add'>+RUBY_FUNC_ATTRIBUTE(fastcall, [], [], ${if_i386})</div><div class='add'>+</div><div class='add'>+if test "$GCC" = yes; then</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'>+    if test "$rb_cv_gcc_function_alias" != no; then</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'>+    fi</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'>+			__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'>+		    ],</div><div class='add'>+		    [rb_cv_gcc_atomic_builtins=yes],</div><div class='add'>+		    [rb_cv_gcc_atomic_builtins=no])])</div><div class='add'>+    if test "$rb_cv_gcc_atomic_builtins" = yes; then</div><div class='add'>+	AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS)</div><div class='add'>+    fi</div><div class='add'>+fi</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'>+if test "$rb_cv_func_exported" != no; then</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_FUNC_EXPORTED, [$rb_cv_func_exported extern])</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='add'>+RUBY_APPEND_OPTION(XCFLAGS, -DRUBY_EXPORT)</div><div class='add'>+</div><div class='add'>+dnl }</div><div class='add'>+dnl header and library section {</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_ARG_ENABLE(win95,</div><div class='add'>+	AS_HELP_STRING([--enable-win95], [enable Windows 95 series support]),</div><div class='add'>+  [AS_CASE(["$enableval"],[yes|no],[enable_win95=$enableval],[unset enable_win95])])</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'>+AC_ARG_ENABLE(pthread,</div><div class='add'>+       AS_HELP_STRING([--enable-pthread], [obsolete, and ignored]))</div><div class='add'>+</div><div class='ctx'> dnl Checks for libraries.</div><div class='del'>-case "$host_os" in</div><div class='del'>-nextstep*)	;;</div><div class='del'>-openstep*)	;;</div><div class='del'>-rhapsody*)	;;</div><div class='del'>-human*)		;;</div><div class='del'>-beos*)		;;</div><div class='del'>-*) LIBS="-lm $LIBS";;</div><div class='del'>-esac</div><div class='add'>+AS_CASE(["$target_os"],[*bsd*|dragonfly*],[],[ac_cv_func_daemon=no])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[solaris*], [</div><div class='add'>+		AC_DEFINE(SIZEOF_STRUCT_DIRENT_TOO_SMALL, 1)</div><div class='add'>+		LIBS="-lm $LIBS"</div><div class='add'>+		],</div><div class='add'>+# GNU Hurd</div><div class='add'>+[gnu*], [</div><div class='add'>+		AC_DEFINE(SIZEOF_STRUCT_DIRENT_TOO_SMALL, 1)</div><div class='add'>+		LIBS="-lm $LIBS"</div><div class='add'>+		],</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)</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'>+		if test $macosx_10_5 = yes; then</div><div class='add'>+		    ac_cv_header_ucontext_h=no</div><div class='add'>+		else</div><div class='add'>+		    AC_DEFINE(BROKEN_SETREUID, 1)</div><div class='add'>+		    AC_DEFINE(BROKEN_SETREGID, 1)</div><div class='add'>+		fi</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_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'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+    int i;</div><div class='add'>+    for (i = 0; i &lt; 128*128; i++) {</div><div class='add'>+	char salt[2], buf[256], *s;</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'>+#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'>+		   buf+2, s+2);</div><div class='add'>+#endif</div><div class='add'>+	    return 1;</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'>+	            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'>+                if test "$rb_cv_broken_crypt" = yes; then</div><div class='add'>+                  AC_DEFINE(BROKEN_CRYPT, 1)</div><div class='add'>+                fi</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'>+[human*], [	ac_cv_func_getpgrp_void=yes</div><div class='add'>+		ac_cv_func_setitimer=no</div><div class='add'>+		AC_CHECK_LIB(signal, _harderr)</div><div class='add'>+		AC_CHECK_LIB(hmem, hmemset)</div><div class='add'>+		AC_CHECK_FUNCS(select)</div><div class='add'>+		AC_CACHE_CHECK(whether PD libc _dtos18 fail to convert big number,</div><div class='add'>+		   rb_cv_missing__dtos18,</div><div class='add'>+		[AC_TRY_RUN([</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+int</div><div class='add'>+main()</div><div class='add'>+{</div><div class='add'>+   char buf[256];</div><div class='add'>+   sprintf(buf, "%g", 1e+300);</div><div class='add'>+   return (strcmp (buf, "1e+300") ? 0 : 1);</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+		rb_cv_missing__dtos18=yes, rb_cv_missing__dtos18=no, rb_cv_missing__dtos18=no)])</div><div class='add'>+		if test "$rb_cv_missing__dtos18" = yes; then</div><div class='add'>+		    AC_DEFINE(MISSING__DTOS18)</div><div class='add'>+		fi</div><div class='add'>+		AC_CACHE_CHECK(whether PD libc fconvert fail to round,</div><div class='add'>+			       rb_cv_missing_fconvert,</div><div class='add'>+		[AC_TRY_RUN([</div><div class='add'>+#include &lt;stdio.h&gt;</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'>+  char buf[256];</div><div class='add'>+  sprintf(buf, "%f", log(exp(1.0)));</div><div class='add'>+  return (strcmp (buf, "1.000000") ? 0 : 1);</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+		rb_cv_missing_fconvert=yes, rb_cv_missing_fconvert=no, rb_cv_missing_fconvert=no)])</div><div class='add'>+		if test "$rb_cv_missing_fconvert" = yes; then</div><div class='add'>+		    AC_DEFINE(MISSING_FCONVERT)</div><div class='add'>+		fi</div><div class='add'>+		],</div><div class='add'>+[beos*|haiku*], [</div><div class='add'>+		ac_cv_func_link=no</div><div class='add'>+		ac_cv_func_sched_yield=no</div><div class='add'>+		ac_cv_func_pthread_attr_setinheritsched=no</div><div class='add'>+		AS_CASE(["$target_os"],</div><div class='add'>+		[beos*], [ ac_cv_header_net_socket_h=yes],</div><div class='add'>+		[haiku*], [ ac_cv_func_shutdown=no])</div><div class='add'>+		LIBS="$LIBS" # m lib is include in root under BeOS/Haiku</div><div class='add'>+		],</div><div class='add'>+[cygwin*], [	ac_cv_header_langinfo_h=yes</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 -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_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_link=yes</div><div class='add'>+		ac_cv_func_fseeko=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'>+		rb_cv_large_fd_select=yes</div><div class='add'>+		AC_LIBOBJ([langinfo])</div><div class='add'>+		: ${enable_win95=maybe}</div><div class='add'>+		],</div><div class='add'>+[os2-emx*], [	LIBS="-lm $LIBS"</div><div class='add'>+		ac_cv_lib_dir_opendir=no],</div><div class='add'>+[msdosdjgpp*], [</div><div class='add'>+		LIBS="-lm $LIBS"</div><div class='add'>+		ac_cv_func_getpgrp_void=yes</div><div class='add'>+		ac_cv_func_setitimer=no</div><div class='add'>+		ac_cv_sizeof_rlim_t=4</div><div class='add'>+		ac_cv_func_fork=no</div><div class='add'>+		ac_cv_func_setrlimit=no</div><div class='add'>+		ac_cv_header_sys_socket_h=no</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'>+[dragonfly*], [	LIBS="-lm $LIBS"</div><div class='add'>+		],</div><div class='add'>+[bow], [	ac_cv_func_setitimer=no</div><div class='add'>+		],</div><div class='add'>+[superux*], [	ac_cv_func_setitimer=no</div><div class='add'>+		],</div><div class='add'>+[	LIBS="-lm $LIBS"])</div><div class='ctx'> AC_CHECK_LIB(crypt, crypt)</div><div class='ctx'> AC_CHECK_LIB(dl, dlopen)	# Dynamic linking for SunOS/Solaris and SYSV</div><div class='ctx'> AC_CHECK_LIB(dld, shl_load)	# Dynamic linking for HP-UX</div><div class='del'>-AC_CHECK_LIB(xpg4, setlocale)	# FreeBSD needs this</div><div class='add'>+AC_CHECK_LIB(socket, socketpair)	# SunOS/Solaris</div><div class='add'>+AC_CHECK_LIB(rt, clock_gettime)	# GNU/Linux</div><div class='add'>+if test "${enable_win95}" = maybe; then</div><div class='add'>+    AC_HAVE_LIBRARY(unicows, [enable_win95=yes], [enable_win95=no])</div><div class='add'>+fi</div><div class='add'>+if test "${enable_win95}" = yes; then</div><div class='add'>+    AC_DEFINE(WIN95)</div><div class='add'>+    LIBS="-lunicows $LIBS"</div><div class='add'>+fi</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'>+if test "$ac_cv_header_net_socket_h" = yes; then</div><div class='add'>+    ac_cv_header_sys_socket_h=${ac_cv_header_sys_socket_h=no}</div><div class='add'>+else</div><div class='add'>+    ac_cv_header_sys_socket_h=${ac_cv_header_sys_socket_h=yes}</div><div class='add'>+fi</div><div class='ctx'> </div><div class='ctx'> dnl Checks for header files.</div><div class='ctx'> AC_HEADER_DIRENT</div><div class='del'>-AC_HEADER_STDC</div><div class='del'>-AC_CHECK_HEADERS(stdlib.h unistd.h limits.h sys/file.h sys/ioctl.h pwd.h \</div><div class='del'>-		 sys/select.h sys/time.h sys/times.h sys/param.h sys/wait.h\</div><div class='del'>-		 syscall.h a.out.h string.h utime.h memory.h direct.h)</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'>+AC_CHECK_HEADERS(limits.h sys/file.h sys/ioctl.h sys/syscall.h\</div><div class='add'>+		 fcntl.h sys/fcntl.h sys/select.h sys/time.h sys/times.h sys/param.h\</div><div class='add'>+		 syscall.h pwd.h grp.h a.out.h utime.h direct.h sys/resource.h \</div><div class='add'>+		 sys/mkdev.h sys/utime.h xti.h netinet/in_systm.h float.h ieeefp.h \</div><div class='add'>+		 ucontext.h intrinsics.h langinfo.h locale.h sys/sendfile.h time.h \</div><div class='add'>+		 net/socket.h sys/socket.h process.h)</div><div class='ctx'> </div><div class='del'>-dnl Checks for typedefs, structures, and compiler characteristics.</div><div class='del'>-AC_TYPE_UID_T</div><div class='ctx'> AC_TYPE_SIZE_T</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='ctx'> AC_STRUCT_ST_BLKSIZE</div><div class='del'>-save_LIBOJBS="$LIBOBJS"</div><div class='ctx'> AC_STRUCT_ST_BLOCKS</div><div class='del'>-LIBOBJS="$save_LIBOBJS"</div><div class='ctx'> AC_STRUCT_ST_RDEV</div><div class='add'>+RUBY_CHECK_SIZEOF([struct stat.st_size], [int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+if test "$ac_cv_member_struct_stat_st_blocks" = yes; then</div><div class='add'>+    RUBY_CHECK_SIZEOF([struct stat.st_blocks], [int long "long long"], [], [@%:@include &lt;sys/stat.h&gt;])</div><div class='add'>+fi</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'>+</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'>+</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])])</div><div class='add'>+if test "$rb_cv_large_fd_select" = yes; then</div><div class='add'>+    AC_DEFINE(HAVE_RB_FD_INIT, 1)</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+dnl RUBY_DEFINT TYPENAME, SIZE, [SIGNED-OR-UNSIGNED], [INCLUDES = DEFAULT-INCLUDES]</div><div class='add'>+AC_DEFUN([RUBY_DEFINT], [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'>+    [ rb_cv_type_$1=no])])])</div><div class='add'>+if test "${rb_cv_type_$1}" != no; then</div><div class='add'>+    AC_DEFINE([HAVE_]AS_TR_CPP($1), 1)</div><div class='add'>+    if test "${rb_cv_type_$1}" = yes; then</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'>+    else</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([$rb_cv_type_$1]))</div><div class='add'>+    fi</div><div class='add'>+fi</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'>+for addr in __libc_stack_end _SEND; do</div><div class='add'>+  AC_TRY_LINK(</div><div class='add'>+    [extern void *$addr;],</div><div class='add'>+    [if (!$addr) return 1;],</div><div class='add'>+    [rb_cv_stack_end_address="$addr"; break])</div><div class='add'>+done])</div><div class='add'>+if test $rb_cv_stack_end_address != no; then</div><div class='add'>+  AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for gc_mark and gc_children stack frame approximate size(word), rb_cv_gc_mark_stackframe_word,</div><div class='add'>+[save_CFLAGS="$CFLAGS"</div><div class='add'>+CFLAGS="-O0"</div><div class='add'>+AC_TRY_RUN([</div><div class='add'>+int word;</div><div class='add'>+char *stack_start;</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+set_stackframe_word()</div><div class='add'>+{</div><div class='add'>+    int dumy = 42;</div><div class='add'>+    int diff;</div><div class='add'>+</div><div class='add'>+    if (stack_start &lt; (char *)&amp;dumy) {</div><div class='add'>+        diff = (int)((char *)&amp;dumy - stack_start);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+        diff = (int)(stack_start - (char *)&amp;dumy);</div><div class='add'>+    }</div><div class='add'>+    word = (diff/sizeof(void *));</div><div class='add'>+    if ((diff % sizeof(void *)) != 0) {</div><div class='add'>+        word++;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+gc_mark_children(void *p1, void *p2, int lev)</div><div class='add'>+{</div><div class='add'>+    void *obj = p2;</div><div class='add'>+</div><div class='add'>+    set_stackframe_word(p1,p2,lev);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+gc_mark(void *p1, void *p2, int lev)</div><div class='add'>+{</div><div class='add'>+    void *obj = p2;</div><div class='add'>+</div><div class='add'>+    gc_mark_children(p1,p2,lev++);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+main() {</div><div class='add'>+  int dumy = 42;</div><div class='add'>+</div><div class='add'>+  stack_start = (char *)&amp;dumy;</div><div class='add'>+  gc_mark(0, 0, 255);</div><div class='add'>+  return word;</div><div class='add'>+}</div><div class='add'>+],</div><div class='add'>+  [rb_cv_gc_mark_stackframe_word="$?"],</div><div class='add'>+  [rb_cv_gc_mark_stackframe_word="$?"],</div><div class='add'>+  [rb_cv_gc_mark_stackframe_word="30"])</div><div class='add'>+CFLAGS="$save_CFLAGS"])</div><div class='add'>+AC_DEFINE_UNQUOTED(GC_MARK_STACKFRAME_WORD, $rb_cv_gc_mark_stackframe_word)</div><div class='add'>+</div><div class='ctx'> </div><div class='ctx'> dnl Checks for library functions.</div><div class='ctx'> AC_TYPE_GETGROUPS</div><div class='ctx'> AC_TYPE_SIGNAL</div><div class='del'>-AC_FUNC_ALLOCA</div><div class='del'>-AC_FUNC_VFORK</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'>+if test "x$ALLOCA" = "x"; then</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'>+    if test "x$rb_cv_dynamic_alloca" = "x__chkstk"; then</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'>+    fi</div><div class='add'>+fi</div><div class='ctx'> AC_FUNC_MEMCMP</div><div class='del'>-AC_REPLACE_FUNCS(dup2 setenv memmove mkdir strcasecmp strerror strftime\</div><div class='del'>-		 strchr strstr strtoul strdup crypt flock snprintf)</div><div class='del'>-AC_CHECK_FUNCS(fmod killpg drand48 random wait4 waitpid syscall getcwd\</div><div class='del'>-	      truncate chsize times utimes fcntl lockf setitimer\</div><div class='del'>-	      setruid seteuid setreuid setrgid setegid setregid\</div><div class='del'>-	      setpgrp2 getpgid getgroups getpriority\</div><div class='del'>-	      dlopen sigprocmask sigaction _setjmp setpgrp setsid)</div><div class='del'>-if test "$ac_cv_func_strftime" = no; then</div><div class='del'>-    AC_STRUCT_TIMEZONE</div><div class='del'>-    AC_TRY_LINK([],</div><div class='del'>-	 [extern int daylight; int i = daylight;], AC_DEFINE(HAVE_DAYLIGHT))</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'>+AC_REPLACE_FUNCS(dup2 memmove strerror\</div><div class='add'>+		 strchr strstr crypt flock\</div><div class='add'>+		 isnan finite isinf hypot acosh erf tgamma lgamma_r cbrt \</div><div class='add'>+                 strlcpy strlcat ffs setproctitle)</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'>+</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'>+if test "$rb_cv_have_signbit" = yes; then</div><div class='add'>+  AC_DEFINE(HAVE_SIGNBIT)</div><div class='add'>+else</div><div class='add'>+  AC_LIBOBJ([signbit])</div><div class='add'>+fi</div><div class='add'>+AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall __syscall chroot getcwd eaccess\</div><div class='add'>+	      truncate ftruncate ftello chsize times utimes utimensat fcntl lockf lstat\</div><div class='add'>+	      truncate64 ftruncate64 ftello64 fseeko fseeko64 \</div><div class='add'>+	      link symlink readlink readdir_r fsync fdatasync fchown posix_fadvise\</div><div class='add'>+	      setitimer setruid seteuid setreuid setresuid socketpair\</div><div class='add'>+	      setrgid setegid setregid setresgid issetugid pause lchown lchmod\</div><div class='add'>+	      getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\</div><div class='add'>+	      getpriority getrlimit setrlimit sysconf close getgrnam_r\</div><div class='add'>+	      dlopen sigprocmask sigaction sigsetjmp _setjmp _longjmp\</div><div class='add'>+	      setsid telldir seekdir fchmod cosh sinh tanh log2 round\</div><div class='add'>+	      setuid setgid daemon select_large_fdset setenv unsetenv\</div><div class='add'>+              mktime timegm gmtime_r clock_gettime gettimeofday poll ppoll\</div><div class='add'>+              pread sendfile shutdown sigaltstack dl_iterate_phdr)</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'>+if test "$rb_cv_unsetenv_return_value" = no; then</div><div class='add'>+  AC_DEFINE(VOID_UNSETENV)</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK(for __builtin_setjmp, ac_cv_func___builtin_setjmp,</div><div class='add'>+[AC_TRY_LINK([@%:@include &lt;setjmp.h&gt;</div><div class='add'>+    jmp_buf jb; void t(v) int v; {__builtin_longjmp(jb, v);}],</div><div class='add'>+    [__builtin_setjmp(jb);],</div><div class='add'>+    [ac_cv_func___builtin_setjmp=yes],</div><div class='add'>+    [ac_cv_func___builtin_setjmp=no])</div><div class='add'>+])</div><div class='add'>+</div><div class='add'>+test x$ac_cv_func__longjmp = xno &amp;&amp; ac_cv_func__setjmp=no</div><div class='add'>+</div><div class='add'>+AC_MSG_CHECKING(for setjmp type)</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_prefix=__builtin_],</div><div class='add'>+	[_setjmp], [ setjmp_prefix=_],</div><div class='add'>+	[sigsetjmp], [ setjmp_prefix=sig],</div><div class='add'>+	[setjmp], [ setjmp_prefix=],</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'>+if test ${setjmp_prefix+set}; then</div><div class='add'>+    if test "${setjmp_prefix}" &amp;&amp; eval test '$ac_cv_func_'${setjmp_prefix}setjmp = no; then</div><div class='add'>+	AC_MSG_ERROR(${setjmp_prefix}setjmp is not available)</div><div class='add'>+    fi</div><div class='add'>+elif test "$ac_cv_func___builtin_setjmp" = yes; then</div><div class='add'>+    setjmp_prefix=__builtin_</div><div class='add'>+elif test "$ac_cv_func__setjmp" = yes; then</div><div class='add'>+    setjmp_prefix=_</div><div class='add'>+elif test "$ac_cv_func_sigsetjmp" = yes; then</div><div class='add'>+    AS_CASE([$target_os],[solaris*|cygwin*],[setjmp_prefix=],[setjmp_prefix=sig])</div><div class='add'>+else</div><div class='add'>+    setjmp_prefix=</div><div class='add'>+fi</div><div class='add'>+if test x$setjmp_prefix = xsig; then</div><div class='add'>+    setjmp_sigmask=yes</div><div class='add'>+else</div><div class='add'>+    unset setjmp_sigmask</div><div class='add'>+fi</div><div class='add'>+AC_MSG_RESULT(${setjmp_prefix}setjmp)</div><div class='add'>+AC_DEFINE_UNQUOTED([RUBY_SETJMP(env)], [${setjmp_prefix}setjmp(env${setjmp_sigmask+,0})])</div><div class='add'>+AC_DEFINE_UNQUOTED([RUBY_LONGJMP(env,val)], [${setjmp_prefix}longjmp(env,val)])</div><div class='add'>+AC_DEFINE_UNQUOTED(RUBY_JMP_BUF, ${setjmp_sigmask+${setjmp_prefix}}jmp_buf)</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'>+if test "$use_setreuid" = yes; then</div><div class='add'>+    AC_DEFINE(USE_SETREUID)</div><div class='add'>+    AC_DEFINE(USE_SETREGID)</div><div class='add'>+fi</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([#include &lt;time.h&gt;],</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'>+if test "$rb_cv_member_struct_tm_tm_gmtoff" = yes; then</div><div class='add'>+  AC_DEFINE(HAVE_STRUCT_TM_TM_GMTOFF)</div><div class='add'>+fi</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'>+if test "$rb_cv_have_daylight" = yes; then</div><div class='add'>+  AC_DEFINE(HAVE_DAYLIGHT)</div><div class='add'>+fi</div><div class='add'>+AC_DEFUN([RUBY_CHECK_VARTYPE], [dnl</div><div class='add'>+AC_CACHE_CHECK([for external $1], AS_TR_SH(rb_cv_var_$1),</div><div class='add'>+  [AS_TR_SH(rb_cv_var_$1)=no</div><div class='add'>+  AC_TRY_COMPILE([</div><div class='add'>+#ifndef _XOPEN_SOURCE</div><div class='add'>+#define _XOPEN_SOURCE 1</div><div class='add'>+#endif</div><div class='add'>+$2</div><div class='add'>+;</div><div class='add'>+const volatile void *volatile t;],</div><div class='add'>+    [t = &amp;(&amp;$1)[0];],</div><div class='add'>+    [for t in $3; do</div><div class='add'>+      AC_TRY_COMPILE([</div><div class='add'>+#ifndef _XOPEN_SOURCE</div><div class='add'>+#define _XOPEN_SOURCE 1</div><div class='add'>+#endif</div><div class='add'>+$2</div><div class='add'>+;</div><div class='add'>+extern $t $1;</div><div class='add'>+const volatile void *volatile t;],</div><div class='add'>+        [t = &amp;(&amp;$1)[0];],</div><div class='add'>+        [AS_TR_SH(rb_cv_var_$1)=$t; break])</div><div class='add'>+    done])])</div><div class='add'>+if test "${AS_TR_SH(rb_cv_var_$1)}" != no; then</div><div class='add'>+  AC_DEFINE(AS_TR_CPP(HAVE_VAR_$1))</div><div class='add'>+  AC_DEFINE_UNQUOTED(AS_TR_CPP(TYPEOF_VAR_$1), ${AS_TR_SH(rb_cv_var_$1)})</div><div class='add'>+fi])</div><div class='add'>+RUBY_CHECK_VARTYPE(timezone, [@%:@include &lt;time.h&gt;], [long int])</div><div class='add'>+RUBY_CHECK_VARTYPE(altzone, [@%:@include &lt;time.h&gt;], [long int])</div><div class='add'>+AC_CHECK_FUNCS(timezone)</div><div class='add'>+if test "$ac_cv_func_timezone" = yes; then</div><div class='add'>+  AC_CACHE_CHECK([whether timezone requires zero arguments], rb_cv_func_timezone_void,</div><div class='add'>+    [AC_TRY_COMPILE([@%:@include &lt;time.h&gt;],</div><div class='add'>+      [(void)timezone(0, 0);],</div><div class='add'>+      [rb_cv_func_timezone_void=no],</div><div class='add'>+      [rb_cv_func_timezone_void=yes])]</div><div class='add'>+  )</div><div class='add'>+  if test $rb_cv_func_timezone_void = yes; then</div><div class='add'>+    AC_DEFINE(TIMEZONE_VOID)</div><div class='add'>+  fi</div><div class='add'>+fi</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'>+if test "$rb_cv_negative_time_t" = yes; then</div><div class='add'>+  AC_DEFINE(NEGATIVE_TIME_T)</div><div class='add'>+fi</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=yes)])</div><div class='add'>+if test "$rb_cv_localtime_overflow" = no; then</div><div class='add'>+  AC_DEFINE(LOCALTIME_OVERFLOW_PROBLEM)</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='ctx'> if test "$ac_cv_func_sigprocmask" = yes &amp;&amp; test "$ac_cv_func_sigaction" = yes; then</div><div class='ctx'>    AC_DEFINE(POSIX_SIGNAL)</div><div class='ctx'> else</div><div class='del'>-  AC_MSG_CHECKING(for BSD signal semantics)</div><div class='del'>-  AC_CACHE_VAL(rb_cv_bsd_signal,</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='ctx'>     [AC_TRY_RUN([</div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='ctx'> #include &lt;signal.h&gt;</div><div class='hunk'>@@ -196,226 +1654,556 @@ main()</div><div class='ctx'> }</div><div class='ctx'> ],</div><div class='ctx'> 	rb_cv_bsd_signal=yes,</div><div class='del'>-	rb_cv_bsd_signal=no)])</div><div class='del'>-  AC_MSG_RESULT($rb_cv_bsd_signal)</div><div class='add'>+	rb_cv_bsd_signal=no,</div><div class='add'>+	rb_cv_bsd_signal=$ac_cv_func_sigsetmask)])</div><div class='ctx'>   if test "$rb_cv_bsd_signal" = yes; then</div><div class='ctx'>     AC_DEFINE(BSD_SIGNAL)</div><div class='ctx'>   fi</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-if test "$ac_cv_func_setpgrp2" = yes; then</div><div class='del'>-  AC_DEFINE(BSD_GETPGRP, getpgrp2)</div><div class='del'>-  AC_DEFINE(BSD_SETPGRP, setpgrp2)</div><div class='del'>-else</div><div class='del'>-  AC_MSG_CHECKING(whether getpgrp() has arg)</div><div class='del'>-  AC_CACHE_VAL(rb_cv_bsdgetpgrp,</div><div class='del'>-    [AC_TRY_COMPILE([#include &lt;unistd.h&gt;], [getpgrp(0);],</div><div class='del'>-      rb_cv_bsdgetpgrp=yes,</div><div class='del'>-      rb_cv_bsdgetpgrp=no)])</div><div class='del'>-  AC_MSG_RESULT($rb_cv_bsdgetpgrp)</div><div class='del'>-  if test "$rb_cv_bsdgetpgrp" = yes; then</div><div class='del'>-    AC_DEFINE(BSD_GETPGRP, getpgrp)</div><div class='del'>-  fi</div><div class='del'>-</div><div class='del'>-  AC_MSG_CHECKING(whether setpgrp() has args)</div><div class='del'>-  AC_CACHE_VAL(rb_cv_bsdsetpgrp,</div><div class='del'>-    [AC_TRY_COMPILE([#include &lt;unistd.h&gt;], [setpgrp(1, 1);],</div><div class='del'>-	rb_cv_bsdsetpgrp=yes,</div><div class='del'>-	rb_cv_bsdsetpgrp=no)])</div><div class='del'>-  AC_MSG_RESULT($rb_cv_bsdsetpgrp)</div><div class='del'>-  if test "$rb_cv_bsdsetpgrp" = yes; then</div><div class='del'>-    AC_DEFINE(BSD_SETPGRP, setpgrp)</div><div class='del'>-  fi</div><div class='add'>+if test "$ac_cv_func_getpgid" = no; then</div><div class='add'>+AC_FUNC_GETPGRP</div><div class='add'>+fi</div><div class='add'>+if test "$ac_cv_func_setpgid:$ac_cv_func_setpgrp" = no:yes; then</div><div class='add'>+AC_FUNC_SETPGRP</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-AC_C_BIGENDIAN</div><div class='del'>-AC_CHAR_UNSIGNED</div><div class='add'>+if test x"$target_cpu" = xia64; then</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'>+    if test $rb_cv___libc_ia64_register_backing_store_base = yes; then</div><div class='add'>+      AC_DEFINE(HAVE___LIBC_IA64_REGISTER_BACKING_STORE_BASE)</div><div class='add'>+    fi</div><div class='add'>+fi</div><div class='ctx'> </div><div class='del'>-AC_MSG_CHECKING(whether right shift preserve sign bit)</div><div class='del'>-AC_CACHE_VAL(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='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='ctx'> 	rb_cv_rshift_sign=yes,</div><div class='ctx'> 	rb_cv_rshift_sign=no)])</div><div class='del'>-  AC_MSG_RESULT($rb_cv_rshift_sign)</div><div class='ctx'> if test "$rb_cv_rshift_sign" = yes; then</div><div class='del'>-  AC_DEFINE(RSHIFT(x,y), ((x)&gt;&gt;y))</div><div class='add'>+  AC_DEFINE(RSHIFT(x,y), ((x)&gt;&gt;(int)(y)))</div><div class='ctx'> else</div><div class='del'>-  AC_DEFINE(RSHIFT(x,y), (((x)&lt;0) ? ~((~(x))&gt;&gt;y) : (x)&gt;&gt;y))</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='ctx'> fi</div><div class='ctx'> </div><div class='del'>-AC_MSG_CHECKING([count field in FILE structures])</div><div class='del'>-AC_CACHE_VAL(rb_cv_fcnt,</div><div class='del'>-[AC_TRY_COMPILE([#include &lt;stdio.h&gt;],</div><div class='del'>-	[FILE *f = stdin; f-&gt;_cnt = 0;], rb_cv_fcnt="_cnt", )</div><div class='del'>-if test "$rb_cv_fcnt" = ""; then</div><div class='del'>-    AC_TRY_COMPILE([#include &lt;stdio.h&gt;],</div><div class='del'>-	[FILE *f = stdin; f-&gt;__cnt = 0;], rb_cv_fcnt="__cnt", )</div><div class='add'>+test "$rb_cv_fcnt" = "not found" &amp;&amp; rb_cv_fcnt="not found (OK if using GNU libc)"</div><div class='add'>+AC_CACHE_CHECK([read count field in FILE structures], rb_cv_fcnt,</div><div class='add'>+[rb_cv_fcnt="not found (OK if using GNU libc)"</div><div class='add'>+for fcnt in	dnl</div><div class='add'>+     _cnt	dnl</div><div class='add'>+     __cnt	dnl</div><div class='add'>+     _r		dnl</div><div class='add'>+     readCount	dnl</div><div class='add'>+     _rcount	dnl for emx0.9c</div><div class='add'>+; do</div><div class='add'>+    AC_TRY_COMPILE([#include &lt;stdio.h&gt;</div><div class='add'>+],</div><div class='add'>+	[FILE *f = stdin; f-&gt;$fcnt = 0;],</div><div class='add'>+	[rb_cv_fcnt="$fcnt"; break])</div><div class='add'>+done])</div><div class='add'>+AS_CASE("$rb_cv_fcnt",</div><div class='add'>+	["not found"*], [rb_cv_fcnt="not found"],</div><div class='add'>+	[AC_DEFINE_UNQUOTED(FILE_COUNT, $rb_cv_fcnt)])</div><div class='add'>+</div><div class='add'>+AC_CACHE_CHECK([read buffer ptr field in FILE structures], rb_cv_frptr,</div><div class='add'>+[for frptr in	dnl</div><div class='add'>+     _IO_read_ptr dnl</div><div class='add'>+     _ptr	dnl</div><div class='add'>+     __ptr	dnl</div><div class='add'>+     bufpos	dnl</div><div class='add'>+     _p	dnl</div><div class='add'>+     __bufpos	dnl</div><div class='add'>+; do</div><div class='add'>+    AC_TRY_COMPILE([#include &lt;stdio.h&gt;</div><div class='add'>+],</div><div class='add'>+	[FILE *f = stdin; char buf[256]; f-&gt;$frptr = buf;],</div><div class='add'>+	rb_cv_frptr="$frptr"; break,</div><div class='add'>+	rb_cv_frptr="not found")</div><div class='add'>+done])</div><div class='add'>+if test "$rb_cv_frptr" != "not found"; then</div><div class='add'>+  AC_DEFINE_UNQUOTED(FILE_READPTR, $rb_cv_frptr)</div><div class='add'>+</div><div class='add'>+  if test "$rb_cv_fcnt" = "not found"; then</div><div class='add'>+    AC_CACHE_CHECK([read buffer end field in FILE structures], rb_cv_frend,</div><div class='add'>+    [for frend in	dnl</div><div class='add'>+         _IO_read_end	dnl</div><div class='add'>+         bufread 	dnl</div><div class='add'>+         __bufread 	dnl</div><div class='add'>+    ; do</div><div class='add'>+        AC_TRY_COMPILE([#include &lt;stdio.h&gt;</div><div class='add'>+    ],</div><div class='add'>+	[FILE *f = stdin; char buf[256]; f-&gt;$frend = buf;],</div><div class='add'>+	rb_cv_frend="$frend"; break,</div><div class='add'>+	rb_cv_frend="not found")</div><div class='add'>+    done])</div><div class='add'>+    if test "$rb_cv_frend" != "not found"; then</div><div class='add'>+      AC_DEFINE_UNQUOTED(FILE_READEND, $rb_cv_frend)</div><div class='add'>+    fi</div><div class='add'>+  fi</div><div class='ctx'> fi</div><div class='del'>-if test "$rb_cv_fcnt" = ""; then</div><div class='del'>-    AC_TRY_COMPILE([#include &lt;stdio.h&gt;],</div><div class='del'>-	[FILE *f = stdin; f-&gt;_r = 0;], rb_cv_fcnt="_r", )</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'>+</div><div class='add'>+if test "$ac_cv_func_sysconf" = yes; then</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'>+  if test "$rb_cv_have_sc_[]m4_tolower($1)" = yes; then</div><div class='add'>+    AC_DEFINE(HAVE__SC_$1)</div><div class='add'>+  fi</div><div class='add'>+  ])</div><div class='add'>+  RUBY_CHECK_SYSCONF(CLK_TCK)</div><div class='ctx'> fi</div><div class='del'>-if test "$rb_cv_fcnt" = ""; then</div><div class='del'>-    AC_TRY_COMPILE([#include &lt;stdio.h&gt;],</div><div class='del'>-	[FILE *f = stdin; f-&gt;readCount = 0;],</div><div class='del'>-	rb_cv_fcnt="readCount", rb_cv_fcnt="not found")</div><div class='del'>-fi])</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='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'>+if test "${universal_binary-no}" = yes ; then</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'>+	if test x$stack_dir = x; then</div><div class='add'>+	    stack_dir=$dir</div><div class='add'>+	elif test x$stack_dir != x$dir; then</div><div class='add'>+	    stack_dir=no</div><div class='add'>+	fi</div><div class='add'>+    done</div><div class='add'>+    CFLAGS="$save_CFLAGS" LDFLAGS="$save_LDFLAGS"</div><div class='add'>+    if test x$stack_dir = xno; then</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'>+    else</div><div class='add'>+	AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $stack_dir)</div><div class='add'>+    fi</div><div class='ctx'> 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='add'>+    RUBY_STACK_GROW_DIRECTION($target_cpu, dir)</div><div class='add'>+    AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $dir)</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-dnl wheather use dln_a_out ot not</div><div class='del'>-AC_ARG_WITH(dln-a-out, [--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='add'>+if test x"$enable_pthread" = xyes; then</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'>+	if test "$rb_with_pthread" = "yes"; then break; fi</div><div class='add'>+    done</div><div class='add'>+    if test x"$rb_with_pthread" = xyes; then</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*], [LIBS="-pthread $LIBS"],</div><div class='add'>+		    [LIBS="-l$pthread_lib $LIBS"])])</div><div class='add'>+    else</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'>+    fi</div><div class='add'>+    AC_CHECK_FUNCS(sched_yield pthread_attr_setinheritsched \</div><div class='add'>+	pthread_getattr_np pthread_attr_get_np pthread_attr_getstack\</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_condattr_setclock pthread_sigmask)</div><div class='add'>+fi</div><div class='add'>+if test x"$ac_cv_header_ucontext_h" = xyes; then</div><div class='add'>+    if test x"$rb_with_pthread" = xyes; then</div><div class='add'>+	AC_CHECK_FUNCS(getcontext setcontext)</div><div class='add'>+    fi</div><div class='add'>+fi</div><div class='ctx'> </div><div class='del'>-case "$host_os" in</div><div class='del'>-    linux*)</div><div class='del'>-  AC_MSG_CHECKING(whether ELF binaries are produced)</div><div class='del'>-  AC_CACHE_VAL(rb_cv_linux_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='add'>+if test "$ac_cv_func_fork" = "yes" -a "$rb_with_pthread" = "yes"; then</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='ctx'> #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='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='ctx'> }</div><div class='del'>-],</div><div class='del'>-	rb_cv_linux_elf=yes,</div><div class='del'>-	rb_cv_linux_elf=no,</div><div class='del'>-	[:])])</div><div class='del'>-  AC_MSG_RESULT($rb_cv_linux_elf)</div><div class='del'>-  if test "$rb_cv_linux_elf" = no; then</div><div class='del'>-    with_dln_a_out=yes</div><div class='del'>-    host_os=linux-a.out</div><div class='del'>-  else</div><div class='del'>-    LDFLAGS="-rdynamic"</div><div class='del'>-  fi;;</div><div class='del'>-esac</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'>+fi</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+[freebsd*], [</div><div class='add'>+    AC_CHECK_HEADERS([/usr/local/include/execinfo.h])</div><div class='add'>+    if test "x$ac_cv_header__usr_local_include_execinfo_h" = xyes; then :</div><div class='add'>+	RUBY_APPEND_OPTION(CPPFLAGS, -I/usr/local/include)</div><div class='add'>+	LDFLAGS="${LDFLAGS:+$LDFLAGS }-L/usr/local/lib"</div><div class='add'>+	DLDFLAGS="${DLDFLAGS:+$DLDFLAGS }-L/usr/local/lib"</div><div class='add'>+	AC_CHECK_LIB([execinfo], [backtrace])</div><div class='add'>+    fi])</div><div class='add'>+AC_CHECK_FUNCS(backtrace)</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'>+dnl }</div><div class='add'>+dnl 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'>+	    if test "$enable_shared" = yes; then</div><div class='add'>+		AC_MSG_ERROR(dln_a_out can not make shared library)</div><div class='add'>+	    fi</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 | cat -e`"],</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'>+if test "$rb_cv_binary_elf" = yes; then</div><div class='add'>+  AC_DEFINE(USE_ELF)</div><div class='add'>+  if test "$with_dln_a_out" = yes; then</div><div class='add'>+    AC_MSG_ERROR(dln_a_out does not work with ELF)</div><div class='add'>+  fi</div><div class='add'>+  AC_LIBOBJ([addr2line])</div><div class='add'>+fi</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'>+    if test "$rb_cv_binary_elf" = no; then</div><div class='add'>+	with_dln_a_out=yes</div><div class='add'>+    else</div><div class='add'>+	LDFLAGS="$LDFLAGS -rdynamic"</div><div class='add'>+    fi])</div><div class='add'>+LIBEXT=a</div><div class='ctx'> </div><div class='ctx'> AC_SUBST(DLDFLAGS)dnl</div><div class='add'>+AC_SUBST(ARCH_FLAG)dnl</div><div class='ctx'> </div><div class='ctx'> AC_SUBST(STATIC)dnl</div><div class='ctx'> AC_SUBST(CCDLFLAGS)dnl</div><div class='ctx'> AC_SUBST(LDSHARED)dnl</div><div class='add'>+AC_SUBST(LDSHAREDXX)dnl</div><div class='ctx'> AC_SUBST(DLEXT)dnl</div><div class='add'>+AC_SUBST(DLEXT2)dnl</div><div class='add'>+AC_SUBST(LIBEXT)dnl</div><div class='ctx'> </div><div class='ctx'> STATIC=</div><div class='add'>+: ${PATHFLAG=''}</div><div class='ctx'> </div><div class='ctx'> if test "$with_dln_a_out" != yes; then</div><div class='ctx'>   rb_cv_dlopen=unknown</div><div class='ctx'>   AC_MSG_CHECKING(whether OS depend dynamic link works)</div><div class='ctx'>   if test "$GCC" = yes; then</div><div class='del'>-    case "$host_os" in</div><div class='del'>-    nextstep*)	;;</div><div class='del'>-    openstep*)	;;</div><div class='del'>-    rhapsody*)	;;</div><div class='del'>-    human*)	;;</div><div class='del'>-    cygwin32*)	CCDLFLAGS=-DDLLIMPORT;;</div><div class='del'>-    *) CCDLFLAGS=-fpic;;</div><div class='del'>-    esac</div><div class='add'>+    AS_CASE(["$target_os"],</div><div class='add'>+    [nextstep*|openstep*|rhapsody*|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'>+    [human*|bsdi*|beos*|haiku*|cygwin*|mingw*|aix*|interix*], [ ],</div><div class='add'>+    [</div><div class='add'>+      RUBY_APPEND_OPTION(CCDLFLAGS, -fPIC)])</div><div class='ctx'>   else</div><div class='del'>-    case "$host_os" in</div><div class='del'>-	hpux*)		CCDLFLAGS='+z';;</div><div class='del'>-	solaris*|irix*)	CCDLFLAGS='-K pic' ;;</div><div class='del'>-	sunos*)		CCDLFLAGS='-pic' ;;</div><div class='del'>-	esix*|uxpds*)   CCDLFLAGS='-Kpic' ;;</div><div class='del'>-	*)		CCDLFLAGS='' ;;</div><div class='del'>-    esac</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'>+  fi</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'>+  if test "$enable_rpath" = yes; then</div><div class='add'>+    RPATHFLAG=" ${linker_flag}-R%1\$-s"</div><div class='ctx'>   fi</div><div class='ctx'> </div><div class='del'>-  case "$host_os" in</div><div class='del'>-	hpux*)		DLDFLAGS="-E"</div><div class='del'>-			LDSHARED='ld -b'</div><div class='del'>-			LDFLAGS="-Wl,-E"</div><div class='del'>-			rb_cv_dlopen=yes;;</div><div class='del'>-	solaris*) 	LDSHARED='ld -G'</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 -ignore_unresolved'</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'>-	esix*|uxpds*) 	LDSHARED="ld -G"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	linux*) 	LDSHARED="gcc -shared"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	freebsd*) 	LDSHARED="ld -Bshareable"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	netbsd*) 	LDSHARED="ld -Bshareable"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	openbsd*) 	LDSHARED="ld -Bshareable"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	nextstep*)	LDSHARED='cc -r'</div><div class='del'>-			LDFLAGS="-u libsys_s"</div><div class='del'>-			DLDFLAGS="$ARCH_FLAG" </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'>-			DLDFLAGS="$ARCH_FLAG"</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'>-			DLDFLAGS="$ARCH_FLAG"</div><div class='del'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	aix*)		LDSHARED='../../miniruby ../aix_ld.rb $(TARGET)'</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'>-	beos*) 		LDSHARED="ld -xms"</div><div class='del'>-			case "$host_cpu" in</div><div class='del'>-			  powerpc*)</div><div class='del'>-			    DLDFLAGS="-f ruby.exp -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o"</div><div class='del'>-                            ;;</div><div class='del'>-			  *)</div><div class='del'>-			    DLDFLAGS="ruby.def -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'>-			rb_cv_dlopen=yes ;;</div><div class='del'>-	cygwin32*)	LDSHARED='../../miniruby ../cygwin32_ld.rb' ;;</div><div class='del'>-	*) 		LDSHARED='ld' ;;</div><div class='del'>-  esac</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'>+			if test "$rb_cv_prog_gnu_ld" = no; then</div><div class='add'>+			    RPATHFLAG=' +b %1$-s'</div><div class='add'>+			fi</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[solaris*], [ 	if test "$GCC" = yes; then</div><div class='add'>+			    : ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			    if test "$rb_cv_prog_gnu_ld" = yes; then</div><div class='add'>+				LDFLAGS="$LDFLAGS -Wl,-E"</div><div class='add'>+			    fi</div><div class='add'>+			else</div><div class='add'>+			    : ${LDSHARED='$(CC) -G'}</div><div class='add'>+			fi</div><div class='add'>+			if test "$ac_cv_sizeof_voidp" = 8; then</div><div class='add'>+			    : ${LIBPATHENV=LD_LIBRARY_PATH_64}</div><div class='add'>+			fi</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], [</div><div class='add'>+			: ${LDSHARED='$(CC) -shared'}</div><div class='add'>+			if test "$rb_cv_binary_elf" = yes; then</div><div class='add'>+			    LDFLAGS="$LDFLAGS -Wl,-export-dynamic"</div><div class='add'>+			fi</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'>+			if test "$rb_cv_binary_elf" = yes; then</div><div class='add'>+			    LDFLAGS="$LDFLAGS -rdynamic"</div><div class='add'>+			    DLDFLAGS="$DLDFLAGS "'-Wl,-soname,$(.TARGET)'</div><div class='add'>+			else</div><div class='add'>+			  test "$GCC" = yes &amp;&amp; test "$rb_cv_prog_gnu_ld" = yes || LDSHARED="ld -Bshareable"</div><div class='add'>+			fi</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[openbsd*], [	: ${LDSHARED='$(CC) -shared ${CCDLFLAGS}'}</div><div class='add'>+			if test "$rb_cv_binary_elf" = yes; then</div><div class='add'>+			    LDFLAGS="$LDFLAGS -Wl,-E"</div><div class='add'>+			fi</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[nextstep*], [	: ${LDSHARED='$(CC) -r -nostdlib'}</div><div class='add'>+			LDFLAGS="$LDFLAGS -u libsys_s"</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[openstep*], [	: ${LDSHARED='$(CC) -dynamic -bundle -undefined suppress'}</div><div class='add'>+			: ${LDFLAGS=""}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[rhapsody*], [	: ${LDSHARED='$(CC) -dynamic -bundle -undefined suppress'}</div><div class='add'>+			: ${LDFLAGS=""}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[darwin*], [	: ${LDSHARED='$(CC) -dynamic -bundle'}</div><div class='add'>+			: ${DLDFLAGS="${linker_flag}-undefined${linker_flag:+,}dynamic_lookup ${linker_flag}-multiply_defined${linker_flag:+,}suppress ${linker_flag}-flat_namespace"}</div><div class='add'>+			: ${LDFLAGS=""}</div><div class='add'>+			: ${LIBPATHENV=DYLD_LIBRARY_PATH}</div><div class='add'>+			# /usr/local/include is always searched for</div><div class='add'>+			# some reason, but /usr/local/lib is not.</div><div class='add'>+			hdr=`find /usr/local/include -name \*.h -type f | sed 's:^/usr/local/include/::;q'`</div><div class='add'>+			if test -n "$hdr" &amp;&amp; $CC -E -include "$hdr" -xc /dev/null 2&gt;/dev/null | fgrep -q "$hdr"; then</div><div class='add'>+			    $CC -print-search-dirs | grep -q '^libraries:.*:/usr/local/lib/*' ||</div><div class='add'>+			    echo " $LDFLAGS " | grep -q ' -L */usr/local/lib/* ' ||</div><div class='add'>+			    LDFLAGS="${LDFLAGS:+$LDFLAGS }-L/usr/local/lib"</div><div class='add'>+			fi</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'>+			DLDFLAGS='-eInit_$(TARGET)'</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=SHLIB_PATH}</div><div class='add'>+			RPATHFLAG=" ${linker_flag}-blibpath:%1\$-s:${prefix}/lib:${LIBPATH:-/usr/lib:/lib}"</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[human*], [	: ${DLDFLAGS=''}</div><div class='add'>+			: ${LDSHARED=''}</div><div class='add'>+			: ${LDFLAGS=''}</div><div class='add'>+			: ${LINK_SO='ar cru $@ $(OBJS)'}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[beos*], [	AS_CASE(["$target_cpu"],</div><div class='add'>+			  [powerpc*], [</div><div class='add'>+			    : ${LDSHARED="ld -xms"}</div><div class='add'>+			    DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'</div><div class='add'>+			    LDFLAGS="$LDFLAGS -L/boot/home/config/lib -lbe -lroot"</div><div class='add'>+			    ],</div><div class='add'>+			  [i586*], [</div><div class='add'>+			    : ${LDSHARED="ld -shared"}</div><div class='add'>+			    DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -L/boot/home/config/lib \$(topdir)/_APP_ -lbe -lroot"</div><div class='add'>+			    LDFLAGS="$LDFLAGS -L/boot/develop/lib/x86 -L/boot/home/config/lib -lbe -lroot"</div><div class='add'>+			    ])</div><div class='add'>+			: ${LIBPATHENV=LIBRARY_PATH}</div><div class='add'>+			rb_cv_dlopen=yes],</div><div class='add'>+	[haiku*], [	AS_CASE(["$target_cpu"],</div><div class='add'>+			  [powerpc*], [</div><div class='add'>+			    : ${LDSHARED="ld -xms"}</div><div class='add'>+			    DLDFLAGS="$DLDFLAGS "'-export Init_$(TARGET) -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'</div><div class='add'>+                            ],</div><div class='add'>+			  [i586*], [</div><div class='add'>+			    : ${LDSHARED="ld -shared"}</div><div class='add'>+			    DLDFLAGS="$DLDFLAGS -L/boot/develop/lib/x86 -lbe -lroot"</div><div class='add'>+			    ])</div><div class='add'>+			: ${LIBPATHENV=LIBRARY_PATH}</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 $(if $(filter-out -g -g0,$(debugflags)),,-s)'}</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=""}</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'>+	[os2-emx*], [	LDFLAGS="$LDFLAGS -Zomf"</div><div class='add'>+			],</div><div class='add'>+	[ 	: ${LDSHARED='ld'}])</div><div class='ctx'>   AC_MSG_RESULT($rb_cv_dlopen)</div><div class='ctx'> fi</div><div class='add'>+if test "${LDSHAREDXX}" = ""; then</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'>+fi</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(TRY_LINK)</div><div class='ctx'> </div><div class='ctx'> dln_a_out_works=no</div><div class='ctx'> if test "$ac_cv_header_a_out_h" = yes; then</div><div class='ctx'>   if test "$with_dln_a_out" = yes || test "$rb_cv_dlopen" = unknown; then</div><div class='del'>-    AC_MSG_CHECKING(whether matz's dln works)</div><div class='ctx'>     cat confdefs.h &gt; config.h</div><div class='del'>-    AC_CACHE_VAL(rb_cv_dln_a_out,</div><div class='add'>+    AC_CACHE_CHECK(whether matz's dln works, rb_cv_dln_a_out,</div><div class='ctx'>     [AC_TRY_COMPILE([</div><div class='ctx'> #define USE_DLN_A_OUT</div><div class='ctx'> #include "dln.c"</div><div class='ctx'> ],</div><div class='del'>-	[], </div><div class='add'>+	[],</div><div class='ctx'> 	rb_cv_dln_a_out=yes,</div><div class='ctx'> 	rb_cv_dln_a_out=no)])</div><div class='del'>-    AC_MSG_RESULT($rb_cv_dln_a_out)</div><div class='ctx'>     if test "$rb_cv_dln_a_out" = yes; then</div><div class='ctx'>       dln_a_out_works=yes</div><div class='ctx'>       AC_DEFINE(USE_DLN_A_OUT)</div><div class='hunk'>@@ -429,169 +2217,547 @@ if test "$dln_a_out_works" = yes; then</div><div class='ctx'>   else</div><div class='ctx'>     STATIC=-Bstatic</div><div class='ctx'>   fi</div><div class='del'>-  DLEXT=o</div><div class='del'>-  AC_DEFINE(DLEXT, ".o")</div><div class='add'>+  DLEXT=so</div><div class='ctx'>   CCDLFLAGS=</div><div class='ctx'> else</div><div class='del'>-  case "$host_os" in</div><div class='del'>-    hpux*)	DLEXT=sl</div><div class='del'>-	 	AC_DEFINE(DLEXT, ".sl");;</div><div class='del'>-    nextstep*)	DLEXT=o</div><div class='del'>-	 	AC_DEFINE(DLEXT, ".o");;</div><div class='del'>-    openstep*)	DLEXT=bundle</div><div class='del'>-	 	AC_DEFINE(DLEXT, ".bundle");;</div><div class='del'>-    rhapsody*)	DLEXT=bundle</div><div class='del'>-	 	AC_DEFINE(DLEXT, ".bundle");;</div><div class='del'>-    cygwin32*)	DLEXT=dll</div><div class='del'>-	 	AC_DEFINE(DLEXT, ".dll");;</div><div class='del'>-    *)		DLEXT=so</div><div class='del'>-    		AC_DEFINE(DLEXT, ".so");;</div><div class='del'>-  esac</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-AC_SUBST(STRIP)dnl</div><div class='add'>+  AS_CASE(["$target_os"],</div><div class='add'>+    [hpux*], [</div><div class='add'>+	DLEXT=sl],</div><div class='add'>+    [nextstep*|openstep*|rhapsody*|darwin*], [</div><div class='add'>+	RUBY_APPEND_OPTION(XLDFLAGS, [-Wl,-u,_objc_msgSend])</div><div class='add'>+	DLEXT=bundle],</div><div class='add'>+    [os2-emx*], [</div><div class='add'>+	LOAD_RELATIVE=1</div><div class='add'>+	DLEXT=dll],</div><div class='add'>+    [cygwin*|mingw*|*djgpp*], [</div><div class='add'>+	LOAD_RELATIVE=1</div><div class='add'>+	DLEXT=so],</div><div class='add'>+    [</div><div class='add'>+	DLEXT=so])</div><div class='add'>+fi</div><div class='add'>+if test "$rb_cv_dlopen:$load_relative" = yes:yes; then</div><div class='add'>+    AC_CHECK_FUNCS(dladdr)</div><div class='add'>+    if test "$ac_cv_func_dladdr" = yes; then</div><div class='add'>+	LOAD_RELATIVE=1</div><div class='add'>+    else</div><div class='add'>+	unset load_relative</div><div class='add'>+    fi</div><div class='add'>+fi</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='ctx'> if test "$with_dln_a_out" = yes; then</div><div class='ctx'>   STRIP=true</div><div class='ctx'> else</div><div class='del'>-  STRIP=strip</div><div class='add'>+  AC_CHECK_TOOL(STRIP, strip, :)dnl</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-case "$host_os" in</div><div class='del'>-  linux*)</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'>-esac</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'>+  [nextstep* | openstep* | rhapsody* | darwin*], [</div><div class='add'>+	STRIP="$STRIP -A -n"])</div><div class='ctx'> </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='ctx'> EXTSTATIC=</div><div class='ctx'> AC_SUBST(EXTSTATIC)dnl</div><div class='ctx'> 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 "$host_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_MSG_CHECKING(whether PD libc _dtos18 fail to convert big number)</div><div class='del'>-    AC_CACHE_VAL(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)])</div><div class='del'>-    AC_MSG_RESULT($rb_cv_missing__dtos18)</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_MSG_CHECKING(whether PD libc fconvert fail to round)</div><div class='del'>-    AC_CACHE_VAL(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)])</div><div class='del'>-    AC_MSG_RESULT($rb_cv_missing_fconvert)</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'>-    LIBOBJS="$LIBOBJS x68.o"</div><div class='del'>-    CFLAGS="$CFLAGS -fansi-only -cc1-stack=196608 -cpp-stack=2694144"</div><div class='del'>-    binsuffix=.x</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])])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+  [human*], [</div><div class='ctx'>     setup=Setup.x68</div><div class='del'>-    ;;</div><div class='del'>-  cygwin32*)</div><div class='del'>-    binsuffix=.exe</div><div class='del'>-    setup=Setup</div><div class='del'>-    ;;</div><div class='del'>-  *)</div><div class='del'>-    binsuffix=</div><div class='add'>+    ],</div><div class='add'>+  dnl OS/2 environment w/ Autoconf 2.1x for EMX</div><div class='add'>+  [os2-emx], [</div><div class='add'>+    setup=Setup.emx</div><div class='add'>+    ],</div><div class='add'>+  [*djgpp*], [</div><div class='add'>+    setup=Setup.dj</div><div class='add'>+    ],</div><div class='add'>+  [</div><div class='ctx'>     setup=Setup</div><div class='del'>-    ;;</div><div class='del'>-esac</div><div class='add'>+    ])</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-</div><div class='del'>-AC_SUBST(binsuffix)</div><div class='ctx'> AC_SUBST(setup)</div><div class='ctx'> </div><div class='ctx'> if test "$prefix" = NONE; then</div><div class='ctx'>   prefix=$ac_default_prefix</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-if test "$fat_binary" = yes ; then</div><div class='del'>-  CFLAGS="$CFLAGS $ARCH_FLAG"</div><div class='add'>+if test x"$cross_compiling" = xyes; then</div><div class='add'>+  test x"$MINIRUBY" = x &amp;&amp; MINIRUBY="${RUBY-$BASERUBY} -I`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='$(MINIRUBY) -I`cd $(srcdir)/lib; pwd`'</div><div class='add'>+  XRUBY='$(MINIRUBY)'</div><div class='add'>+  TEST_RUNNABLE=no</div><div class='add'>+else</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='$(MINIRUBY) $(srcdir)/tool/runruby.rb --extout=$(EXTOUT)'</div><div class='add'>+  XRUBY='$(RUNRUBY)'</div><div class='add'>+  TEST_RUNNABLE=yes</div><div class='ctx'> fi</div><div class='add'>+AC_SUBST(TEST_RUNNABLE)</div><div class='add'>+AC_SUBST(MINIRUBY)</div><div class='add'>+AC_SUBST(PREP)</div><div class='add'>+AC_SUBST(RUNRUBY)</div><div class='add'>+AC_SUBST(XRUBY)</div><div class='add'>+AC_SUBST(EXTOUT, [${EXTOUT=.ext}])</div><div class='ctx'> </div><div class='del'>-LIBRUBY='libruby.a'</div><div class='del'>-LIBRUBYARG='libruby.a'</div><div class='add'>+FIRSTMAKEFILE=""</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='ctx'> SOLIBS=</div><div class='del'>-if test "$host_os" = "beos"; then</div><div class='del'>-  CFLAGS="$CFLAGS -relax_pointers"</div><div class='del'>-  LIBRUBY='libruby.so'</div><div class='del'>-  LIBRUBYARG='-lruby'</div><div class='del'>-  SOLIBS='-lnet'</div><div class='del'>-  echo creating ruby.def</div><div class='del'>-  case "$host_cpu" in</div><div class='del'>-    powerpc*)</div><div class='del'>-      cp beos/ruby.def.in ruby.exp</div><div class='del'>-      ;;</div><div class='del'>-    *)</div><div class='del'>-      echo EXPORTS &gt; ruby.def</div><div class='del'>-      cat beos/ruby.def.in &gt;&gt; ruby.def</div><div class='del'>-      ;;</div><div class='del'>-  esac</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-if test "$enable_shared" = 'yes'; then</div><div class='del'>-  LIBRUBY='libruby.so'</div><div class='del'>-  LIBRUBYARG='-L./ -lruby'</div><div class='del'>-fi</div><div class='del'>-</div><div class='del'>-case "$host_os" in</div><div class='del'>-	nextstep*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe"</div><div class='del'>-		;;</div><div class='del'>-	openstep*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe"</div><div class='del'>-		;;</div><div class='del'>-	rhasody*)</div><div class='del'>-    	CFLAGS="$CFLAGS -pipe -no-precomp"</div><div class='del'>-		;;</div><div class='del'>-	*)</div><div class='del'>-		;;	</div><div class='del'>-esac</div><div class='ctx'> </div><div class='add'>+AS_CASE(["$target_os"],</div><div class='add'>+  [cygwin*|mingw*|beos*|haiku*|openstep*|nextstep*|rhapsody*|darwin*|os2-emx*], [</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='ctx'> </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], [RUBY_SO_NAME='$(RUBY_BASE_NAME)'])</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).so.$(MAJOR).$(MINOR).$(TEENY)'</div><div class='add'>+LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so'</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='$(libdir)'</div><div class='add'>+LIBRUBY_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'>+  test -z "$CCDLFLAGS" || CFLAGS="$CFLAGS $CCDLFLAGS"</div><div class='add'>+  ENABLE_SHARED=yes</div><div class='add'>+  if test "$rb_cv_binary_elf" = yes; then</div><div class='add'>+    SOLIBS='$(LIBS)'</div><div class='add'>+  fi</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'>+  if test "$bindir" = '${exec_prefix}/bin'; then</div><div class='add'>+    AS_CASE(["$libdir"], ['${exec_prefix}/'*], [libdir_basename=`basename "$libdir"`])</div><div class='add'>+  fi</div><div class='add'>+  AC_DEFINE_UNQUOTED(LIBDIR_BASENAME, ["${libdir_basename}"])</div><div class='add'>+</div><div class='add'>+  AS_CASE(["$target_os"],</div><div class='add'>+    [sunos4*], [</div><div class='add'>+	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'</div><div class='add'>+	],</div><div class='add'>+    [linux* | gnu* | k*bsd*-gnu | atheos* | kopensolaris*-gnu], [</div><div class='add'>+	LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR)'</div><div class='add'>+	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).so'</div><div class='add'>+	if test "$load_relative" = yes; then</div><div class='add'>+	    LIBRUBY_RPATHFLAGS="'-Wl,-rpath,\$\${ORIGIN}/../${libdir_basename}'"</div><div class='add'>+	    LIBRUBY_RELATIVE=yes</div><div class='add'>+	fi</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).so.$(MAJOR)$(MINOR)'</div><div class='add'>+	if test "$rb_cv_binary_elf" != "yes" ; then</div><div class='add'>+	    LIBRUBY_SO="$LIBRUBY_SO.\$(TEENY)"</div><div class='add'>+	    LIBRUBY_ALIASES=''</div><div class='add'>+	fi</div><div class='add'>+	],</div><div class='add'>+    [netbsd*], [</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR).$(TEENY)'</div><div class='add'>+	LIBRUBY_DLDFLAGS='-Wl,-soname,lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR)'</div><div class='add'>+	if test "$rb_cv_binary_elf" = yes; then # ELF platforms</div><div class='add'>+	   LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR)$(MINOR) lib$(RUBY_SO_NAME).so'</div><div class='add'>+	else	# a.out platforms</div><div class='add'>+	   LIBRUBY_ALIASES=""</div><div class='add'>+	fi</div><div class='add'>+	],</div><div class='add'>+    [openbsd*], [</div><div class='add'>+	SOLIBS='$(LIBS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).so.$(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).so.$(MAJOR)'</div><div class='add'>+	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).so.$(MAJOR).$(MINOR).$(TEENY) lib$(RUBY_SO_NAME).so'</div><div class='add'>+	if test "$GCC" = yes; then</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$DLDFLAGS "'-Wl,-h,$(@F)'</div><div class='add'>+	else</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$DLDFLAGS "'-h $(@F)'</div><div class='add'>+	fi</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_SO='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR).$(TEENY)'</div><div class='add'>+	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).sl.$(MAJOR).$(MINOR) lib$(RUBY_SO_NAME).sl'</div><div class='add'>+	],</div><div class='add'>+    [aix*], [</div><div class='add'>+	LIBRUBY_DLDFLAGS="${linker_flag}-bnoentry $XLDFLAGS"</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'>+    [beos*], [</div><div class='add'>+	AS_CASE(["$target_cpu"],</div><div class='add'>+	[powerpc*], [</div><div class='add'>+	    LIBRUBY_DLDFLAGS='-f ruby.exp -lnet -lbe -lroot glue-noinit.a init_term_dyn.o start_dyn.o'</div><div class='add'>+	    ])</div><div class='add'>+	],</div><div class='add'>+    [darwin*], [</div><div class='add'>+	RUBY_SO_NAME="$RUBY_SO_NAME"'.$(MAJOR).$(MINOR).$(TEENY)'</div><div class='add'>+	LIBRUBY_LDSHARED='$(CC) -dynamiclib'</div><div class='add'>+	if test "$load_relative" = yes; then</div><div class='add'>+	    libprefix="@executable_path/../${libdir_basename}"</div><div class='add'>+	    LIBRUBY_RELATIVE=yes</div><div class='add'>+	fi</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-install_name '${libprefix}'/$(LIBRUBY_SO)'</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-current_version $(MAJOR).$(MINOR).$(TEENY)'</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-compatibility_version $(ruby_version)'</div><div class='add'>+	if test "$visibility_option" = ld; then</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_Init_*'</div><div class='add'>+	    LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,*_threadptr_*'</div><div class='add'>+	fi</div><div class='add'>+	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "' $(XLDFLAGS)'</div><div class='add'>+	LIBRUBY_SO='lib$(RUBY_SO_NAME).dylib'</div><div class='add'>+	LIBRUBY_ALIASES='lib$(RUBY_BASE_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_INSTALL_NAME).dylib'</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'>+], [</div><div class='add'>+  LIBRUBYARG_SHARED=</div><div class='add'>+])</div><div class='add'>+if test "$enable_rpath" = yes; then</div><div class='add'>+    test -z "$LIBRUBY_RPATHFLAGS" || LIBRUBY_RPATHFLAGS="$LIBRUBY_RPATHFLAGS "</div><div class='add'>+    LIBRUBY_RPATHFLAGS="$LIBRUBY_RPATHFLAGS${linker_flag}-R ${linker_flag}${libprefix} -L\$(libdir)"</div><div class='add'>+    LIBRUBYARG_SHARED="$LIBRUBY_RPATHFLAGS $LIBRUBYARG_SHARED"</div><div class='add'>+    LIBRUBYARG_STATIC="$LIBRUBY_RPATHFLAGS $LIBRUBYARG_STATIC"</div><div class='add'>+fi</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'>+if test "$EXEEXT" = .exe; then</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'>+fi</div><div class='add'>+</div><div class='add'>+dnl }</div><div class='add'>+dnl 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 neither rdoc indexes nor 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=yes])</div><div class='add'>+</div><div class='add'>+if test "$install_doc" != no; then</div><div class='add'>+    if test "$install_rdoc" != no; then</div><div class='add'>+	RDOCTARGET="rdoc"</div><div class='add'>+    else</div><div class='add'>+	RDOCTARGET="nodoc"</div><div class='add'>+    fi</div><div class='add'>+    if test "$install_capi" != no -a -n "$DOXYGEN"; then</div><div class='add'>+	CAPITARGET="capi"</div><div class='add'>+    else</div><div class='add'>+	CAPITARGET="nodoc"</div><div class='add'>+    fi</div><div class='add'>+else</div><div class='add'>+    RDOCTARGET="nodoc"</div><div class='add'>+    CAPITARGET="nodoc"</div><div class='add'>+fi</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'>+if test "$rb_with_pthread" = "yes"; then</div><div class='add'>+    THREAD_MODEL=pthread</div><div class='add'>+fi</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'>+MINIDLNOBJ=dmydln.o</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'>+    [nextstep*|openstep*], [</div><div class='add'>+	RUBY_APPEND_OPTION(CPPFLAGS, -I/usr/local/include)</div><div class='add'>+	],</div><div class='add'>+    [rhapsody*], [</div><div class='add'>+	RUBY_APPEND_OPTIONS(CFLAGS, -pipe -no-precomp)</div><div class='add'>+	],</div><div class='add'>+    [darwin*], [</div><div class='add'>+	RUBY_APPEND_OPTION(CFLAGS, -pipe)</div><div class='add'>+	],</div><div class='add'>+    [human*], [</div><div class='add'>+	AC_LIBOBJ([x68.o])</div><div class='add'>+	CFLAGS="$CFLAGS -fansi-only"</div><div class='add'>+	XCFLAGS="$XCFLAGS -cc1-stack=262144 -cpp-stack=2694144"</div><div class='add'>+	EXEEXT=.x</div><div class='add'>+	OBJEXT=o</div><div class='add'>+	],</div><div class='add'>+    [os2-emx], [</div><div class='add'>+	AC_LIBOBJ([os2])</div><div class='add'>+	CFLAGS="$CFLAGS -DOS2"</div><div class='add'>+	LIBRUBY_A=`echo $LIBRUBY_A | sed 's/^lib//'`</div><div class='add'>+	LIBRUBY_SO=`echo $LIBRUBY_SO | sed 's/^lib//'`</div><div class='add'>+	LIBRUBY_ALIASES=`for i in $LIBRUBY_ALIASES; do echo "$i"; done | sed 's/^lib//'`</div><div class='add'>+	],</div><div class='add'>+    [osf*], [</div><div class='add'>+	if test "$GCC" != "yes" ; then</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'>+	fi</div><div class='add'>+	],</div><div class='add'>+    [beos*], [</div><div class='add'>+	AS_CASE(["$target_cpu"],[powerpc*], [CFLAGS="$CFLAGS -relax_pointers"])</div><div class='add'>+	CPPFLAGS="$CPPFLAGS -I/boot/home/config/include"</div><div class='add'>+	],</div><div class='add'>+    [cygwin*|mingw*], [</div><div class='add'>+	RUBY_SO_NAME="${RUBY_SO_NAME}${MAJOR}${MINOR}${TEENY}"</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'>+	    if test x"$enable_shared" = xyes; then</div><div class='add'>+		LIBRUBY_SO='cyg$(RUBY_SO_NAME)'.dll</div><div class='add'>+		LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'</div><div class='add'>+	    fi</div><div class='add'>+	    ],</div><div class='add'>+	[mingw*], [</div><div class='add'>+	    RUBY_SO_NAME="${rb_cv_msvcrt}-${RUBY_SO_NAME}"</div><div class='add'>+	    if test x"${target_cpu}" != xi386; then</div><div class='add'>+		RUBY_SO_NAME="${target_cpu}-${RUBY_SO_NAME}"</div><div class='add'>+	    fi</div><div class='add'>+	    if test x"$enable_shared" = xyes; then</div><div class='add'>+		LIBRUBY_SO='$(RUBY_SO_NAME)'.dll</div><div class='add'>+		LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'</div><div class='add'>+	    fi</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'>+	if test x"$enable_shared" = xyes; then</div><div class='add'>+	    LIBRUBY='lib$(RUBY_SO_NAME).dll.a'</div><div class='add'>+	else</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'>+	fi</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'>+    [*msdosdjgpp*], [</div><div class='add'>+	FIRSTMAKEFILE=GNUmakefile:djgpp/GNUmakefile.in</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_DEFINE(RUBY_DEBUG_ENV)])</div><div class='add'>+</div><div class='add'>+AS_CASE(["$FIRSTMAKEFILE"], [*GNUmakefile:*], [gnumake=yes], [</div><div class='add'>+    AC_MSG_CHECKING([for 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'>+	echo "include Makefile" &gt; GNUmakefile</div><div class='add'>+	echo "-include uncommon.mk" &gt;&gt; GNUmakefile</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'>+    echo 'A=1' &gt; conftest.dir/Makefile</div><div class='add'>+    echo 'B=$(A:1=@:)' &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'>+    if (cd conftest.dir; ${MAKE-make} &gt;/dev/null 2&gt;/dev/null); then</div><div class='add'>+	NULLCMD=:</div><div class='add'>+    else</div><div class='add'>+	echo 'A=1' &gt; conftest.dir/Makefile</div><div class='add'>+	echo 'B=$(A:1=@true)' &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'>+	if (cd conftest.dir; ${MAKE-make} &gt;/dev/null 2&gt;/dev/null); then</div><div class='add'>+	    NULLCMD=true</div><div class='add'>+	else</div><div class='add'>+	    AC_MSG_ERROR(no candidate for safe null command)</div><div class='add'>+	fi</div><div class='add'>+    fi</div><div class='add'>+    rm -fr conftest.dir</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'>+if test "${universal_binary-no}" = yes ; then</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'>+fi</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'>+if test -n "${cflags+set}"; then</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'>+fi</div><div class='add'>+if test -n "${cxxflags+set}"; then</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'>+fi</div><div class='add'>+if test "${ARCH_FLAG}"; then</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'>+fi</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 "'${optflags} ${debugflags} ${warnflags}'])dnl</div><div class='add'>+AC_SUBST(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(XCFLAGS)dnl</div><div class='add'>+AC_SUBST(XLDFLAGS)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_ALIASES)</div><div class='ctx'> AC_SUBST(LIBRUBY)</div><div class='ctx'> AC_SUBST(LIBRUBYARG)</div><div class='add'>+AC_SUBST(LIBRUBYARG_STATIC)</div><div class='add'>+AC_SUBST(LIBRUBYARG_SHARED)</div><div class='ctx'> 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'>+MAKEFILES="Makefile `echo $FIRSTMAKEFILE | sed 's/:.*//'`"</div><div class='add'>+MAKEFILES="`echo $MAKEFILES`"</div><div class='add'>+AC_SUBST(MAKEFILES)</div><div class='ctx'> </div><div class='ctx'> ri_prefix=</div><div class='ctx'> test "$program_prefix" != NONE &amp;&amp;</div><div class='hunk'>@@ -601,31 +2767,330 @@ ri_suffix=</div><div class='ctx'> test "$program_suffix" != NONE &amp;&amp;</div><div class='ctx'>   ri_suffix=$program_suffix</div><div class='ctx'> </div><div class='del'>-RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}"</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_LIB, "${prefix}/lib/${RUBY_INSTALL_NAME}")</div><div class='del'>-AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby")</div><div class='del'>-AC_SUBST(arch)dnl</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'>+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'>+	    [if test "x$withval" = xno; then</div><div class='add'>+		AC_MSG_ERROR([No ruby, No libprefix])</div><div class='add'>+	    fi</div><div class='add'>+	    rubylibprefix="$withval"])</div><div class='add'>+RUBY_LIB_PREFIX=`eval echo \\"${rubylibprefix}\\"`</div><div class='add'>+AC_SUBST(rubylibprefix)</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'>+RIDIR=`eval echo \\"${ridir}\\"`</div><div class='add'>+AC_SUBST(ridir)</div><div class='add'>+AC_SUBST(RI_BASE_NAME)</div><div class='ctx'> </div><div class='del'>-if test "$fat_binary" = yes ; then</div><div class='del'>-    arch="fat-${host_os}"</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'>+if test ${RUBY_LIB_VERSION_STYLE+set}; then</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"${srcdir}" -I"${srcdir}/include" conftest.c | sed '/^ruby_version=/!d;s/ //g'`"</div><div class='add'>+    eval $ruby_version</div><div class='add'>+else</div><div class='add'>+    RUBY_LIB_VERSION="\"${ruby_version}\""</div><div class='add'>+fi</div><div class='ctx'> </div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_THIN_ARCHLIB,</div><div class='del'>-                 "${prefix}/lib/${RUBY_INSTALL_NAME}/" __ARCHITECTURE__ "-${host_os}" )</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]]]),</div><div class='add'>+            [sitedir=$withval],</div><div class='add'>+            [sitedir='${rubylibprefix}/site_ruby'])</div><div class='add'>+dir="${sitedir}"</div><div class='add'>+until SITE_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${SITE_DIR}"; do</div><div class='add'>+    dir="${SITE_DIR}"</div><div class='add'>+done</div><div class='ctx'> </div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_SITE_THIN_ARCHLIB,</div><div class='del'>-                 "${prefix}/lib/${RUBY_INSTALL_NAME}/" __ARCHITECTURE__ "-${host_os}" )</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]]]),</div><div class='add'>+            [vendordir=$withval],</div><div class='add'>+            [vendordir='${rubylibprefix}/vendor_ruby'])</div><div class='add'>+dir="${vendordir}"</div><div class='add'>+until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "x${dir}" = "x${VENDOR_DIR}"; do</div><div class='add'>+    dir="${VENDOR_DIR}"</div><div class='add'>+done</div><div class='ctx'> </div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/${arch}")</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby/${arch}")</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_PLATFORM,  __ARCHITECTURE__ "-${host_os}" )</div><div class='add'>+if test "${LOAD_RELATIVE+set}"; then</div><div class='add'>+    AC_DEFINE_UNQUOTED(LOAD_RELATIVE, $LOAD_RELATIVE)</div><div class='add'>+    RUBY_EXEC_PREFIX=""</div><div class='add'>+    RUBY_LIB_PREFIX="`eval echo "$RUBY_LIB_PREFIX" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"</div><div class='add'>+    RUBY_SITE_LIB_PATH="`eval echo "$SITE_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"</div><div class='add'>+    RUBY_VENDOR_LIB_PATH="`eval echo "$VENDOR_DIR" | sed 's|^NONE/|/|;s|^'"$prefix"'/|/|'`"</div><div class='add'>+else</div><div class='add'>+    RUBY_EXEC_PREFIX="`eval echo \\"$exec_prefix/\\" | sed 's|^NONE/|'"$prefix"'/|;s|/$||'`"</div><div class='add'>+    RUBY_LIB_PREFIX="`eval echo \\"$RUBY_LIB_PREFIX\\" | sed 's|^NONE/|'"$prefix"'/|'`"</div><div class='add'>+    RUBY_SITE_LIB_PATH="`eval echo \\"$SITE_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"</div><div class='add'>+    RUBY_VENDOR_LIB_PATH="`eval echo \\"$VENDOR_DIR\\" | sed 's|^NONE/|'"$prefix"'/|'`"</div><div class='add'>+fi</div><div class='add'>+</div><div class='add'>+pat=`echo "$RUBY_LIB_PREFIX/" | tr -c '\012' .`'\(.*\)'</div><div class='add'>+AS_CASE(["$RUBY_SITE_LIB_PATH"],</div><div class='add'>+  ["$RUBY_LIB_PREFIX/"*], [</div><div class='add'>+    RUBY_SITE_LIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_SITE_LIB_PATH\" : \"$pat\"`"'"'</div><div class='add'>+    ],</div><div class='add'>+  [</div><div class='add'>+    RUBY_SITE_LIB_PATH="\"${RUBY_SITE_LIB_PATH}\""</div><div class='add'>+    ])</div><div class='add'>+AS_CASE(["$RUBY_VENDOR_LIB_PATH"],</div><div class='add'>+  ["$RUBY_LIB_PREFIX/"*], [</div><div class='add'>+    RUBY_VENDOR_LIB_PATH='RUBY_LIB_PREFIX"/'"`expr \"$RUBY_VENDOR_LIB_PATH\" : \"$pat\"`"'"'</div><div class='add'>+    ],</div><div class='add'>+  [</div><div class='add'>+    RUBY_VENDOR_LIB_PATH="\"${RUBY_VENDOR_LIB_PATH}\""</div><div class='add'>+    ])</div><div class='add'>+pat=`echo "$RUBY_EXEC_PREFIX/" | tr -c '\012' .`'\(.*\)'</div><div class='add'>+AS_CASE(["$RUBY_LIB_PREFIX"],</div><div class='add'>+  ["$RUBY_EXEC_PREFIX/"*], [</div><div class='add'>+    RUBY_LIB_PREFIX='RUBY_EXEC_PREFIX"/'"`expr \"$RUBY_LIB_PREFIX\" : \"$pat\"`"'"'</div><div class='add'>+    ],</div><div class='add'>+  [</div><div class='add'>+    RUBY_LIB_PREFIX="\"${RUBY_LIB_PREFIX}\""</div><div class='add'>+    ])</div><div class='add'>+</div><div class='add'>+if test ${RUBY_LIB_VERSION_STYLE+set}; then</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION_STYLE, $RUBY_LIB_VERSION_STYLE)</div><div class='add'>+else</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_LIB_VERSION, [$RUBY_LIB_VERSION])</div><div class='add'>+fi</div><div class='add'>+AC_DEFINE_UNQUOTED(RUBY_EXEC_PREFIX, "${RUBY_EXEC_PREFIX}")</div><div class='add'>+AC_DEFINE_UNQUOTED(RUBY_LIB_PREFIX, ${RUBY_LIB_PREFIX})</div><div class='add'>+if test "x$SITE_DIR" = xno; then</div><div class='add'>+    AC_DEFINE(NO_RUBY_SITE_LIB)</div><div class='add'>+else</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_SITE_LIB, ${RUBY_SITE_LIB_PATH})</div><div class='add'>+fi</div><div class='add'>+if test "x$VENDOR_DIR" = xno; then</div><div class='add'>+    AC_DEFINE(NO_RUBY_VENDOR_LIB)</div><div class='ctx'> else</div><div class='del'>-    arch="${host_cpu}-${host_os}"</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/${arch}")</div><div class='del'>-    AC_DEFINE_UNQUOTED(RUBY_SITE_ARCHLIB, "${prefix}/lib/${RUBY_INSTALL_NAME}/site_ruby/${arch}")</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_VENDOR_LIB, ${RUBY_VENDOR_LIB_PATH})</div><div class='add'>+fi</div><div class='add'>+</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(sitedir)dnl</div><div class='add'>+AC_SUBST(vendordir)dnl</div><div class='add'>+</div><div class='add'>+configure_args=$ac_configure_args</div><div class='add'>+AC_SUBST(configure_args)dnl</div><div class='add'>+</div><div class='add'>+if test "${universal_binary-no}" = yes ; then</div><div class='add'>+    arch="universal-${target_os}"</div><div class='add'>+    AC_CACHE_CHECK(whether __ARCHITECTURE__ is available, rb_cv_architecture_available,</div><div class='add'>+	AC_TRY_COMPILE([const char arch[] = __ARCHITECTURE__;], [puts(arch);],</div><div class='add'>+	     [rb_cv_architecture_available=yes], [rb_cv_architecture_available=no]))</div><div class='add'>+    if test "${rb_cv_architecture_available}" = yes; then</div><div class='add'>+	AC_DEFINE_UNQUOTED(RUBY_PLATFORM_CPU, __ARCHITECTURE__)</div><div class='add'>+    else</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'>+    fi</div><div class='add'>+    ints='long int'</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'>+else</div><div class='add'>+    arch="${target_cpu}-${target_os}"</div><div class='ctx'>     AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}")</div><div class='ctx'> fi</div><div class='ctx'> </div><div class='del'>-echo "creating config.h"</div><div class='del'>-cat confdefs.h &gt; config.h</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'>+test ${sitearch+set} &amp;&amp; AC_DEFINE_UNQUOTED(RUBY_SITEARCH, "${sitearch}")</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'>+if test "$search_path" != ""; then</div><div class='add'>+    AC_DEFINE_UNQUOTED(RUBY_SEARCH_PATH,"$search_path")</div><div class='add'>+fi</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_BASE_NAME}-${ruby_version}'])</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(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_SUBST(rubyhdrdir)dnl</div><div class='add'>+AC_SUBST(sitehdrdir)dnl</div><div class='add'>+AC_SUBST(vendorhdrdir)dnl</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'>+		CPPFLAGS="$CPPFLAGS `echo \"$PATH_SEPARATOR$withval\" | sed \"s|$PATH_SEPARATOR\([[^$PATH_SEPARATOR]*]\)| -I\1/include|g;s/^ //\"`"</div><div class='add'>+		set -x</div><div class='add'>+		val=`IFS="$PATH_SEPARATOR"</div><div class='add'>+		    for dir in $withval; do</div><div class='add'>+			echo x ${LIBPATHFLAG} ${RPATHFLAG} |</div><div class='add'>+			sed -E 's/^x *//;s'"${PATH_SEPARATOR}"'%1\\$-s|%s'"${IFS}${dir}/lib${IFS}g"</div><div class='add'>+		    done | tr '\012' ' '`</div><div class='add'>+		set +x</div><div class='add'>+		LDFLAGS="$LDFLAGS${LDFLAGS:+ }$val"</div><div class='add'>+		DLDFLAGS="$DLDFLAGS${DLDFLAGS:+ }$val"</div><div class='add'>+	])</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|doc], [MANTYPE=$withval],</div><div class='add'>+			[AC_MSG_ERROR(invalid man type: $withval)])</div><div class='add'>+		])</div><div class='add'>+if test -z "$MANTYPE"; then</div><div class='add'>+	AC_PATH_PROGS(NROFF, nroff awf, /bin/false, "/usr/bin:/usr/ucb")</div><div class='add'>+	if ${NROFF} -mdoc ${srcdir}/man/ruby.1 &gt;/dev/null 2&gt;&amp;1; then</div><div class='add'>+		MANTYPE=doc</div><div class='add'>+	else</div><div class='add'>+		MANTYPE=man</div><div class='add'>+	fi</div><div class='add'>+fi</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'>+if test x"$enable_rubygems" = xno; then</div><div class='add'>+    AC_DEFINE(DISABLE_RUBYGEMS, 1)</div><div class='add'>+    USE_RUBYGEMS=NO</div><div class='add'>+else</div><div class='add'>+    USE_RUBYGEMS=YES</div><div class='add'>+fi</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'>+${srcdir}/tool/ifchange "${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 `basename $e .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 `basename $e .trans`"'.c';</div><div class='add'>+  BUILTIN_TRANSOBJS="$BUILTIN_TRANSOBJS `basename $e .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'>+AC_MSG_RESULT($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'>+AC_CONFIG_FILES($FIRSTMAKEFILE)</div><div class='add'>+AC_CONFIG_FILES(Makefile, [{</div><div class='add'>+	if test -d "$srcdir/.svn"; then</div><div class='add'>+	    VCS='svn'</div><div class='add'>+	    VCSUP='$(VCS) up $(SVNUPOPTIONS)'</div><div class='add'>+	elif test -d "$srcdir/.git/svn"; then</div><div class='add'>+	    VCS='git svn'</div><div class='add'>+	    VCSUP='$(VCS) rebase $(GITSVNREBASEOPTIONS)'</div><div class='add'>+	elif test -d "$srcdir/.git"; then</div><div class='add'>+	    VCS='git'</div><div class='add'>+	    VCSUP='$(VCS) pull $(GITPULLOPTIONS)'</div><div class='add'>+	else</div><div class='add'>+	    VCS='echo cannot'</div><div class='add'>+	    VCSUP='$(VCS)'</div><div class='add'>+	fi</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'>+	if test "$gnumake" != yes; then</div><div class='add'>+	    echo ['$(MKFILES): $(srcdir)/common.mk']</div><div class='add'>+	    sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk</div><div class='add'>+	else</div><div class='add'>+	    echo 'distclean-local::; @$(RM) GNUmakefile uncommon.mk'</div><div class='add'>+	fi</div><div class='add'>+    } &gt; confmk$$.tmp &amp;&amp; mv -f confmk$$.tmp Makefile &amp;&amp;</div><div class='add'>+    {</div><div class='add'>+	grep '^ruby:' Makefile &gt; /dev/null ||</div><div class='add'>+	${MAKE-make} info-program | grep '^PROGRAM=ruby$' &gt; /dev/null ||</div><div class='add'>+	echo 'ruby: $(PROGRAM);' &gt;&gt; Makefile</div><div class='add'>+    }],</div><div class='add'>+[EXEEXT='$EXEEXT' gnumake='$gnumake'])</div><div class='add'>+</div><div class='add'>+AC_ARG_WITH([ruby-pc],</div><div class='add'>+	    AC_HELP_STRING([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_CONFIG_FILES($ruby_pc:template/ruby.pc.in,</div><div class='add'>+    [</div><div class='add'>+    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'>+    then</div><div class='add'>+	mv -f ruby.tmp.pc $ruby_pc</div><div class='add'>+    else</div><div class='add'>+	exit 1</div><div class='add'>+    fi</div><div class='add'>+    ],</div><div class='add'>+    [ruby_pc='$ruby_pc' PKG_CONFIG='$PKG_CONFIG'])</div><div class='ctx'> </div><div class='del'>-AC_OUTPUT(Makefile ext/extmk.rb)</div><div class='add'>+AC_OUTPUT</div><div class='add'>+dnl }</div><div class='add'>+dnl }</div><div class='head'>diff --git a/constant.h b/constant.h<br/>new file mode 100644<br/>index 0000000000..8232910737<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/constant.h?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>constant.h</a></div><div class='hunk'>@@ -0,0 +1,34 @@</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_PUBLIC    = 0x00,</div><div class='add'>+    CONST_PRIVATE   = 0x01</div><div class='add'>+} rb_const_flag_t;</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'>+    VALUE value;            /* 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, VALUE *argv, VALUE obj);</div><div class='add'>+VALUE rb_mod_public_constant(int argc, VALUE *argv, VALUE obj);</div><div class='add'>+void rb_free_const_table(st_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'>+</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..1e42974145<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/cont.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>cont.c</a></div><div class='hunk'>@@ -0,0 +1,1525 @@</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 "ruby/ruby.h"</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'>+#if ((defined(_WIN32) &amp;&amp; _WIN32_WINNT &gt;= 0x0400) || (defined(HAVE_GETCONTEXT) &amp;&amp; defined(HAVE_SETCONTEXT))) &amp;&amp; !defined(__NetBSD__) &amp;&amp; !defined(sun) &amp;&amp; !defined(FIBER_USE_NATIVE)</div><div class='add'>+#define FIBER_USE_NATIVE 1</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'>+/* 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'>+#elif !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'>+#define FIBER_MACHINE_STACK_ALLOCATION_SIZE  (0x10000)</div><div class='add'>+#endif</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'>+typedef struct rb_context_struct {</div><div class='add'>+    enum context_type type;</div><div class='add'>+    VALUE self;</div><div class='add'>+    int argc;</div><div class='add'>+    VALUE value;</div><div class='add'>+    VALUE *vm_stack;</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+    size_t vm_stack_slen;  /* length of stack (head of th-&gt;stack) */</div><div class='add'>+    size_t vm_stack_clen;  /* length of control frames (tail of th-&gt;stack) */</div><div class='add'>+#endif</div><div class='add'>+    VALUE *machine_stack;</div><div class='add'>+    VALUE *machine_stack_src;</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    VALUE *machine_register_stack;</div><div class='add'>+    VALUE *machine_register_stack_src;</div><div class='add'>+    int machine_register_stack_size;</div><div class='add'>+#endif</div><div class='add'>+    rb_thread_t saved_thread;</div><div class='add'>+    rb_jmpbuf_t jmpbuf;</div><div class='add'>+    size_t machine_stack_size;</div><div class='add'>+} rb_context_t;</div><div class='add'>+</div><div class='add'>+enum fiber_status {</div><div class='add'>+    CREATED,</div><div class='add'>+    RUNNING,</div><div class='add'>+    TERMINATED</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#if FIBER_USE_NATIVE &amp;&amp; !defined(_WIN32)</div><div class='add'>+#define MAX_MAHINE_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_MAHINE_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'>+typedef struct rb_fiber_struct {</div><div class='add'>+    rb_context_t cont;</div><div class='add'>+    VALUE prev;</div><div class='add'>+    enum fiber_status status;</div><div class='add'>+    struct rb_fiber_struct *prev_fiber;</div><div class='add'>+    struct rb_fiber_struct *next_fiber;</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'>+#endif</div><div class='add'>+#endif</div><div class='add'>+} rb_fiber_t;</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 *stat));</div><div class='add'>+</div><div class='add'>+#define THREAD_MUST_BE_RUNNING(th) do { \</div><div class='add'>+	if (!(th)-&gt;tag) rb_raise(rb_eThreadError, "not running thread");	\</div><div class='add'>+    } while (0)</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'>+    RUBY_MARK_ENTER("cont");</div><div class='add'>+    if (ptr) {</div><div class='add'>+	rb_context_t *cont = ptr;</div><div class='add'>+	rb_gc_mark(cont-&gt;value);</div><div class='add'>+	rb_thread_mark(&amp;cont-&gt;saved_thread);</div><div class='add'>+	rb_gc_mark(cont-&gt;saved_thread.self);</div><div class='add'>+</div><div class='add'>+	if (cont-&gt;vm_stack) {</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+	    rb_gc_mark_locations(cont-&gt;vm_stack,</div><div class='add'>+				 cont-&gt;vm_stack + cont-&gt;vm_stack_slen + cont-&gt;vm_stack_clen);</div><div class='add'>+#else</div><div class='add'>+	    rb_gc_mark_localtion(cont-&gt;vm_stack,</div><div class='add'>+				 cont-&gt;vm_stack, cont-&gt;saved_thread.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'>+		rb_thread_t *th;</div><div class='add'>+                rb_fiber_t *fib = (rb_fiber_t*)cont;</div><div class='add'>+		GetThreadPtr(cont-&gt;saved_thread.self, th);</div><div class='add'>+		if ((th-&gt;fiber != cont-&gt;self) &amp;&amp; fib-&gt;status == RUNNING) {</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'>+    RUBY_FREE_ENTER("cont");</div><div class='add'>+    if (ptr) {</div><div class='add'>+	rb_context_t *cont = ptr;</div><div class='add'>+	RUBY_FREE_UNLESS_NULL(cont-&gt;saved_thread.stack); fflush(stdout);</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_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'>+#ifdef _WIN32</div><div class='add'>+	    if (GET_THREAD()-&gt;fiber != cont-&gt;self &amp;&amp; cont-&gt;type != ROOT_FIBER_CONTEXT) {</div><div class='add'>+		/* don't delete root fiber handle */</div><div class='add'>+		rb_fiber_t *fib = (rb_fiber_t*)cont;</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 (GET_THREAD()-&gt;fiber != cont-&gt;self) {</div><div class='add'>+                rb_fiber_t *fib = (rb_fiber_t*)cont;</div><div class='add'>+                if (fib-&gt;context.uc_stack.ss_sp) {</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;context.uc_stack.ss_sp, fib-&gt;context.uc_stack.ss_size);</div><div class='add'>+		}</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_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;vm_stack);</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'>+    }</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'>+    if (cont) {</div><div class='add'>+	size = sizeof(*cont);</div><div class='add'>+	if (cont-&gt;vm_stack) {</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+	    size_t n = (cont-&gt;vm_stack_slen + cont-&gt;vm_stack_clen);</div><div class='add'>+#else</div><div class='add'>+	    size_t n = cont-&gt;saved_thread.stack_size;</div><div class='add'>+#endif</div><div class='add'>+	    size += n * sizeof(*cont-&gt;vm_stack);</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'>+    }</div><div class='add'>+    return size;</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'>+    RUBY_MARK_ENTER("cont");</div><div class='add'>+    if (ptr) {</div><div class='add'>+	rb_fiber_t *fib = ptr;</div><div class='add'>+	rb_gc_mark(fib-&gt;prev);</div><div class='add'>+	cont_mark(&amp;fib-&gt;cont);</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'>+fiber_link_join(rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    VALUE current_fibval = rb_fiber_current();</div><div class='add'>+    rb_fiber_t *current_fib;</div><div class='add'>+    GetFiberPtr(current_fibval, current_fib);</div><div class='add'>+</div><div class='add'>+    /* join fiber link */</div><div class='add'>+    fib-&gt;next_fiber = current_fib-&gt;next_fiber;</div><div class='add'>+    fib-&gt;prev_fiber = current_fib;</div><div class='add'>+    current_fib-&gt;next_fiber-&gt;prev_fiber = fib;</div><div class='add'>+    current_fib-&gt;next_fiber = fib;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+fiber_link_remove(rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    fib-&gt;prev_fiber-&gt;next_fiber = fib-&gt;next_fiber;</div><div class='add'>+    fib-&gt;next_fiber-&gt;prev_fiber = fib-&gt;prev_fiber;</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'>+    RUBY_FREE_ENTER("fiber");</div><div class='add'>+    if (ptr) {</div><div class='add'>+	rb_fiber_t *fib = ptr;</div><div class='add'>+	if (fib-&gt;cont.type != ROOT_FIBER_CONTEXT &amp;&amp;</div><div class='add'>+	    fib-&gt;cont.saved_thread.local_storage) {</div><div class='add'>+	    st_free_table(fib-&gt;cont.saved_thread.local_storage);</div><div class='add'>+	}</div><div class='add'>+	fiber_link_remove(fib);</div><div class='add'>+</div><div class='add'>+	cont_free(&amp;fib-&gt;cont);</div><div class='add'>+    }</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'>+    if (ptr) {</div><div class='add'>+	size = sizeof(*fib);</div><div class='add'>+	if (fib-&gt;cont.type != ROOT_FIBER_CONTEXT) {</div><div class='add'>+	    size += st_memsize(fib-&gt;cont.saved_thread.local_storage);</div><div class='add'>+	}</div><div class='add'>+	size += cont_memsize(&amp;fib-&gt;cont);</div><div class='add'>+    }</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;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;machine_stack_start &gt; th-&gt;machine_stack_end) {</div><div class='add'>+	size = cont-&gt;machine_stack_size = th-&gt;machine_stack_start - th-&gt;machine_stack_end;</div><div class='add'>+	cont-&gt;machine_stack_src = th-&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;machine_stack_end - th-&gt;machine_stack_start;</div><div class='add'>+	cont-&gt;machine_stack_src = th-&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'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+cont_save_thread(rb_context_t *cont, rb_thread_t *th)</div><div class='add'>+{</div><div class='add'>+    /* save thread context */</div><div class='add'>+    cont-&gt;saved_thread = *th;</div><div class='add'>+    /* saved_thread-&gt;machine_stack_(start|end) should be NULL */</div><div class='add'>+    /* because it may happen GC afterward */</div><div class='add'>+    cont-&gt;saved_thread.machine_stack_start = 0;</div><div class='add'>+    cont-&gt;saved_thread.machine_stack_end = 0;</div><div class='add'>+#ifdef __ia64</div><div class='add'>+    cont-&gt;saved_thread.machine_register_stack_start = 0;</div><div class='add'>+    cont-&gt;saved_thread.machine_register_stack_end = 0;</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_thread.local_storage = 0;</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'>+static VALUE</div><div class='add'>+cont_capture(volatile int *stat)</div><div class='add'>+{</div><div class='add'>+    rb_context_t *cont;</div><div class='add'>+    rb_thread_t *th = GET_THREAD(), *sth;</div><div class='add'>+    volatile VALUE contval;</div><div class='add'>+</div><div class='add'>+    THREAD_MUST_BE_RUNNING(th);</div><div class='add'>+    rb_vm_stack_to_heap(th);</div><div class='add'>+    cont = cont_new(rb_cContinuation);</div><div class='add'>+    contval = cont-&gt;self;</div><div class='add'>+    sth = &amp;cont-&gt;saved_thread;</div><div class='add'>+</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+    cont-&gt;vm_stack_slen = th-&gt;cfp-&gt;sp + th-&gt;mark_stack_len - th-&gt;stack;</div><div class='add'>+    cont-&gt;vm_stack_clen = th-&gt;stack + th-&gt;stack_size - (VALUE*)th-&gt;cfp;</div><div class='add'>+    cont-&gt;vm_stack = ALLOC_N(VALUE, cont-&gt;vm_stack_slen + cont-&gt;vm_stack_clen);</div><div class='add'>+    MEMCPY(cont-&gt;vm_stack, th-&gt;stack, VALUE, cont-&gt;vm_stack_slen);</div><div class='add'>+    MEMCPY(cont-&gt;vm_stack + cont-&gt;vm_stack_slen, (VALUE*)th-&gt;cfp, VALUE, cont-&gt;vm_stack_clen);</div><div class='add'>+#else</div><div class='add'>+    cont-&gt;vm_stack = ALLOC_N(VALUE, th-&gt;stack_size);</div><div class='add'>+    MEMCPY(cont-&gt;vm_stack, th-&gt;stack, VALUE, th-&gt;stack_size);</div><div class='add'>+#endif</div><div class='add'>+    sth-&gt;stack = 0;</div><div class='add'>+</div><div class='add'>+    cont_save_machine_stack(th, cont);</div><div class='add'>+</div><div class='add'>+    if (ruby_setjmp(cont-&gt;jmpbuf)) {</div><div class='add'>+	volatile VALUE value;</div><div class='add'>+</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 cont-&gt;self;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static 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(), *sth = &amp;cont-&gt;saved_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'>+	VALUE fib;</div><div class='add'>+</div><div class='add'>+	th-&gt;fiber = sth-&gt;fiber;</div><div class='add'>+	fib = th-&gt;fiber ? th-&gt;fiber : th-&gt;root_fiber;</div><div class='add'>+</div><div class='add'>+	if (fib) {</div><div class='add'>+	    rb_fiber_t *fcont;</div><div class='add'>+	    GetFiberPtr(fib, fcont);</div><div class='add'>+	    th-&gt;stack_size = fcont-&gt;cont.saved_thread.stack_size;</div><div class='add'>+	    th-&gt;stack = fcont-&gt;cont.saved_thread.stack;</div><div class='add'>+	}</div><div class='add'>+#ifdef CAPTURE_JUST_VALID_VM_STACK</div><div class='add'>+	MEMCPY(th-&gt;stack, cont-&gt;vm_stack, VALUE, cont-&gt;vm_stack_slen);</div><div class='add'>+	MEMCPY(th-&gt;stack + sth-&gt;stack_size - cont-&gt;vm_stack_clen,</div><div class='add'>+	       cont-&gt;vm_stack + cont-&gt;vm_stack_slen, VALUE, cont-&gt;vm_stack_clen);</div><div class='add'>+#else</div><div class='add'>+	MEMCPY(th-&gt;stack, cont-&gt;vm_stack, VALUE, sth-&gt;stack_size);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* fiber */</div><div class='add'>+	th-&gt;stack = sth-&gt;stack;</div><div class='add'>+	th-&gt;stack_size = sth-&gt;stack_size;</div><div class='add'>+	th-&gt;local_storage = sth-&gt;local_storage;</div><div class='add'>+	th-&gt;fiber = cont-&gt;self;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    th-&gt;cfp = sth-&gt;cfp;</div><div class='add'>+    th-&gt;safe_level = sth-&gt;safe_level;</div><div class='add'>+    th-&gt;raised_flag = sth-&gt;raised_flag;</div><div class='add'>+    th-&gt;state = sth-&gt;state;</div><div class='add'>+    th-&gt;status = sth-&gt;status;</div><div class='add'>+    th-&gt;tag = sth-&gt;tag;</div><div class='add'>+    th-&gt;protect_tag = sth-&gt;protect_tag;</div><div class='add'>+    th-&gt;errinfo = sth-&gt;errinfo;</div><div class='add'>+    th-&gt;first_proc = sth-&gt;first_proc;</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;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'>+	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");</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_thread_t *sth = &amp;fib-&gt;cont.saved_thread;</div><div class='add'>+</div><div class='add'>+#ifdef _WIN32</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'>+    sth-&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'>+    makecontext(context, rb_fiber_start, 0);</div><div class='add'>+    sth-&gt;machine_stack_start = (VALUE*)(ptr + STACK_DIR_UPPER(0, size));</div><div class='add'>+    sth-&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(), *sth = &amp;newfib-&gt;cont.saved_thread;</div><div class='add'>+</div><div class='add'>+    if (newfib-&gt;status != RUNNING) {</div><div class='add'>+	fiber_initialize_machine_stack_context(newfib, FIBER_MACHINE_STACK_ALLOCATION_SIZE);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* restore thread context */</div><div class='add'>+    cont_restore_thread(&amp;newfib-&gt;cont);</div><div class='add'>+    th-&gt;machine_stack_maxsize = sth-&gt;machine_stack_maxsize;</div><div class='add'>+    if (sth-&gt;machine_stack_end &amp;&amp; (newfib != oldfib)) {</div><div class='add'>+	rb_bug("fiber_setcontext: sth-&gt;machine_stack_end has non zero value");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    /* save  oldfib's machine stack */</div><div class='add'>+    if (oldfib-&gt;status != TERMINATED) {</div><div class='add'>+	STACK_GROW_DIR_DETECTION;</div><div class='add'>+	SET_MACHINE_STACK_END(&amp;th-&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;machine_stack_start - th-&gt;machine_stack_end;</div><div class='add'>+	    oldfib-&gt;cont.machine_stack = th-&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;machine_stack_end - th-&gt;machine_stack_start;</div><div class='add'>+	    oldfib-&gt;cont.machine_stack = th-&gt;machine_stack_start;</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_thread.machine_stack_start = th-&gt;machine_stack_start;</div><div class='add'>+    th-&gt;machine_stack_start = sth-&gt;machine_stack_start;</div><div class='add'>+    /* oldfib-&gt;machine_stack_end should be NULL */</div><div class='add'>+    oldfib-&gt;cont.saved_thread.machine_stack_end = 0;</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-&gt;cont.self) {</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'>+</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'>+#elif defined(__FreeBSD__) /* FreeBSD 9 doesn't work with swapcontext */</div><div class='add'>+    if (!ruby_setjmp(oldfib-&gt;cont.jmpbuf)) {</div><div class='add'>+	if (newfib-&gt;status != RUNNING) {</div><div class='add'>+	    if (setcontext(&amp;newfib-&gt;context) &lt; 0) {</div><div class='add'>+		rb_bug("context switch between fiber failed");</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    ruby_longjmp(newfib-&gt;cont.jmpbuf, 1);</div><div class='add'>+	}</div><div class='add'>+    }</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 &lt;code&gt;Kernel#callcc&lt;/code&gt;,</div><div class='add'>+ *  after having &lt;code&gt;require&lt;/code&gt;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'>+ *  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 &lt;code&gt;Continuation&lt;/code&gt; 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 &lt;code&gt;callcc&lt;/code&gt;</div><div class='add'>+ *  to return (as will falling through the end of the block). The</div><div class='add'>+ *  value returned by the &lt;code&gt;callcc&lt;/code&gt; 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 &lt;code&gt;Continuation&lt;/code&gt; for more details. Also see</div><div class='add'>+ *  &lt;code&gt;Kernel::throw&lt;/code&gt; 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, 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'>+/*</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-&gt;saved_thread.self != 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_thread.protect_tag != th-&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_thread.fiber) {</div><div class='add'>+	rb_fiber_t *fcont;</div><div class='add'>+	GetFiberPtr(cont-&gt;saved_thread.fiber, fcont);</div><div class='add'>+</div><div class='add'>+	if (th-&gt;fiber != cont-&gt;saved_thread.fiber) {</div><div class='add'>+	    rb_raise(rb_eRuntimeError, "continuation called across fiber");</div><div class='add'>+	}</div><div class='add'>+    }</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 small 4KB stack. This enables the fiber to be paused from deeply</div><div class='add'>+ *  nested function calls within the fiber block.</div><div class='add'>+ *</div><div class='add'>+ *  When a fiber is created it will not run automatically. Rather it must be</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'>+#define FIBER_VM_STACK_SIZE (4 * 1024)</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'>+};</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 = ALLOC(rb_fiber_t);</div><div class='add'>+    memset(fib, 0, sizeof(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;prev = Qnil;</div><div class='add'>+    fib-&gt;status = CREATED;</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'>+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_thread_t *th = &amp;cont-&gt;saved_thread;</div><div class='add'>+</div><div class='add'>+    /* initialize cont */</div><div class='add'>+    cont-&gt;vm_stack = 0;</div><div class='add'>+</div><div class='add'>+    th-&gt;stack = 0;</div><div class='add'>+    th-&gt;stack_size = 0;</div><div class='add'>+</div><div class='add'>+    fiber_link_join(fib);</div><div class='add'>+</div><div class='add'>+    th-&gt;stack_size = FIBER_VM_STACK_SIZE;</div><div class='add'>+    th-&gt;stack = ALLOC_N(VALUE, th-&gt;stack_size);</div><div class='add'>+</div><div class='add'>+    th-&gt;cfp = (void *)(th-&gt;stack + th-&gt;stack_size);</div><div class='add'>+    th-&gt;cfp--;</div><div class='add'>+    th-&gt;cfp-&gt;pc = 0;</div><div class='add'>+    th-&gt;cfp-&gt;sp = th-&gt;stack + 1;</div><div class='add'>+    th-&gt;cfp-&gt;bp = 0;</div><div class='add'>+    th-&gt;cfp-&gt;lfp = th-&gt;stack;</div><div class='add'>+    *th-&gt;cfp-&gt;lfp = 0;</div><div class='add'>+    th-&gt;cfp-&gt;dfp = th-&gt;stack;</div><div class='add'>+    th-&gt;cfp-&gt;self = Qnil;</div><div class='add'>+    th-&gt;cfp-&gt;flag = 0;</div><div class='add'>+    th-&gt;cfp-&gt;iseq = 0;</div><div class='add'>+    th-&gt;cfp-&gt;proc = 0;</div><div class='add'>+    th-&gt;cfp-&gt;block_iseq = 0;</div><div class='add'>+    th-&gt;cfp-&gt;me = 0;</div><div class='add'>+    th-&gt;tag = 0;</div><div class='add'>+    th-&gt;local_storage = st_init_numtable();</div><div class='add'>+</div><div class='add'>+    th-&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;th-&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 VALUE</div><div class='add'>+return_fiber(void)</div><div class='add'>+{</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    VALUE curr = rb_fiber_current();</div><div class='add'>+    GetFiberPtr(curr, fib);</div><div class='add'>+</div><div class='add'>+    if (fib-&gt;prev == Qnil) {</div><div class='add'>+	rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+	if (th-&gt;root_fiber != curr) {</div><div class='add'>+	    return th-&gt;root_fiber;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    rb_raise(rb_eFiberError, "can't yield from root fiber");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	VALUE prev = fib-&gt;prev;</div><div class='add'>+	fib-&gt;prev = Qnil;</div><div class='add'>+	return prev;</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE rb_fiber_transfer(VALUE fib, int argc, VALUE *argv);</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+rb_fiber_terminate(rb_fiber_t *fib)</div><div class='add'>+{</div><div class='add'>+    VALUE value = fib-&gt;cont.value;</div><div class='add'>+    fib-&gt;status = TERMINATED;</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;context.uc_stack.ss_sp;</div><div class='add'>+    terminated_machine_stack.size = fib-&gt;context.uc_stack.ss_size / sizeof(VALUE);</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'>+    rb_fiber_transfer(return_fiber(), 1, &amp;value);</div><div class='add'>+}</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 *th = GET_THREAD();</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    rb_context_t *cont;</div><div class='add'>+    rb_proc_t *proc;</div><div class='add'>+    int state;</div><div class='add'>+</div><div class='add'>+    GetFiberPtr(th-&gt;fiber, fib);</div><div class='add'>+    cont = &amp;fib-&gt;cont;</div><div class='add'>+</div><div class='add'>+    TH_PUSH_TAG(th);</div><div class='add'>+    if ((state = EXEC_TAG()) == 0) {</div><div class='add'>+	int argc;</div><div class='add'>+	VALUE *argv, args;</div><div class='add'>+	GetProcPtr(cont-&gt;saved_thread.first_proc, proc);</div><div class='add'>+	args = cont-&gt;value;</div><div class='add'>+	argv = (argc = cont-&gt;argc) &gt; 1 ? RARRAY_PTR(args) : &amp;args;</div><div class='add'>+	cont-&gt;value = Qnil;</div><div class='add'>+	th-&gt;errinfo = Qnil;</div><div class='add'>+	th-&gt;local_lfp = proc-&gt;block.lfp;</div><div class='add'>+	th-&gt;local_svar = Qnil;</div><div class='add'>+</div><div class='add'>+	fib-&gt;status = RUNNING;</div><div class='add'>+	cont-&gt;value = rb_vm_invoke_proc(th, proc, proc-&gt;block.self, argc, argv, 0);</div><div class='add'>+    }</div><div class='add'>+    TH_POP_TAG();</div><div class='add'>+</div><div class='add'>+    if (state) {</div><div class='add'>+	if (state == TAG_RAISE) {</div><div class='add'>+	    th-&gt;thrown_errinfo = th-&gt;errinfo;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    th-&gt;thrown_errinfo =</div><div class='add'>+	      rb_vm_make_jump_tag_but_local_jump(state, th-&gt;errinfo);</div><div class='add'>+	}</div><div class='add'>+	RUBY_VM_SET_INTERRUPT(th);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    rb_fiber_terminate(fib);</div><div class='add'>+    rb_bug("rb_fiber_start: unreachable");</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'>+    rb_fiber_t *fib;</div><div class='add'>+    /* no need to allocate vm stack */</div><div class='add'>+    fib = fiber_t_alloc(fiber_alloc(rb_cFiber));</div><div class='add'>+    fib-&gt;cont.type = ROOT_FIBER_CONTEXT;</div><div class='add'>+#if FIBER_USE_NATIVE</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    fib-&gt;fib_handle = ConvertThreadToFiber(0);</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+    fib-&gt;status = RUNNING;</div><div class='add'>+    fib-&gt;prev_fiber = fib-&gt;next_fiber = fib;</div><div class='add'>+</div><div class='add'>+    return fib;</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'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    if (th-&gt;fiber == 0) {</div><div class='add'>+	/* save root */</div><div class='add'>+	rb_fiber_t *fib = root_fiber_alloc(th);</div><div class='add'>+	th-&gt;root_fiber = th-&gt;fiber = fib-&gt;cont.self;</div><div class='add'>+    }</div><div class='add'>+    return th-&gt;fiber;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+fiber_store(rb_fiber_t *next_fib)</div><div class='add'>+{</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+</div><div class='add'>+    if (th-&gt;fiber) {</div><div class='add'>+	GetFiberPtr(th-&gt;fiber, fib);</div><div class='add'>+	cont_save_thread(&amp;fib-&gt;cont, th);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	/* create current fiber */</div><div class='add'>+	fib = root_fiber_alloc(th);</div><div class='add'>+	th-&gt;root_fiber = th-&gt;fiber = fib-&gt;cont.self;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+#if !FIBER_USE_NATIVE</div><div class='add'>+    cont_save_machine_stack(th, &amp;fib-&gt;cont);</div><div class='add'>+</div><div class='add'>+    if (ruby_setjmp(fib-&gt;cont.jmpbuf)) {</div><div class='add'>+#else /* FIBER_USE_NATIVE */</div><div class='add'>+    {</div><div class='add'>+	fiber_setcontext(next_fib, fib);</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_MAHINE_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</div><div class='add'>+#endif</div><div class='add'>+	/* restored */</div><div class='add'>+	GetFiberPtr(th-&gt;fiber, fib);</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'>+#if !FIBER_USE_NATIVE</div><div class='add'>+    else {</div><div class='add'>+	return Qundef;</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static inline VALUE</div><div class='add'>+fiber_switch(VALUE fibval, int argc, VALUE *argv, int is_resume)</div><div class='add'>+{</div><div class='add'>+    VALUE value;</div><div class='add'>+    rb_fiber_t *fib;</div><div class='add'>+    rb_context_t *cont;</div><div class='add'>+    rb_thread_t *th = GET_THREAD();</div><div class='add'>+</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+    cont = &amp;fib-&gt;cont;</div><div class='add'>+</div><div class='add'>+    if (cont-&gt;saved_thread.self != 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_thread.protect_tag != th-&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 (fib-&gt;status == TERMINATED) {</div><div class='add'>+	value = rb_exc_new2(rb_eFiberError, "dead fiber called");</div><div class='add'>+	if (th-&gt;fiber != fibval) {</div><div class='add'>+	    GetFiberPtr(th-&gt;fiber, fib);</div><div class='add'>+	    if (fib-&gt;status != TERMINATED) rb_exc_raise(value);</div><div class='add'>+	    fibval = th-&gt;root_fiber;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    fibval = fib-&gt;prev;</div><div class='add'>+	    if (NIL_P(fibval)) fibval = th-&gt;root_fiber;</div><div class='add'>+	}</div><div class='add'>+	GetFiberPtr(fibval, fib);</div><div class='add'>+	cont = &amp;fib-&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'>+	{</div><div class='add'>+	    VALUE oldfibval;</div><div class='add'>+	    rb_fiber_t *oldfib;</div><div class='add'>+	    oldfibval = rb_fiber_current();</div><div class='add'>+	    GetFiberPtr(oldfibval, oldfib);</div><div class='add'>+	    fiber_setcontext(fib, oldfib);</div><div class='add'>+	}</div><div class='add'>+#else</div><div class='add'>+	cont_restore_0(cont, &amp;value);</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (is_resume) {</div><div class='add'>+	fib-&gt;prev = rb_fiber_current();</div><div class='add'>+    }</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'>+    value = fiber_store(fib);</div><div class='add'>+#if !FIBER_USE_NATIVE</div><div class='add'>+    if (value == Qundef) {</div><div class='add'>+	cont_restore_0(cont, &amp;value);</div><div class='add'>+	rb_bug("rb_fiber_resume: unreachable");</div><div class='add'>+    }</div><div class='add'>+#endif</div><div class='add'>+    RUBY_VM_CHECK_INTS();</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 fib, int argc, VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    return fiber_switch(fib, argc, argv, 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, 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 != Qnil || 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'>+</div><div class='add'>+    return fiber_switch(fibval, 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, VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_transfer(return_fiber(), argc, argv);</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;</div><div class='add'>+    rb_fiber_t	*fib;</div><div class='add'>+</div><div class='add'>+    GetThreadPtr(thval, th);</div><div class='add'>+    if (th-&gt;root_fiber &amp;&amp; th-&gt;root_fiber != th-&gt;fiber) {</div><div class='add'>+	GetFiberPtr(th-&gt;root_fiber, fib);</div><div class='add'>+	th-&gt;local_storage = fib-&gt;cont.saved_thread.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'>+    rb_fiber_t *fib;</div><div class='add'>+    GetFiberPtr(fibval, fib);</div><div class='add'>+    return fib-&gt;status != TERMINATED ? Qtrue : Qfalse;</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'>+static VALUE</div><div class='add'>+rb_fiber_m_transfer(int argc, VALUE *argv, VALUE fib)</div><div class='add'>+{</div><div class='add'>+    return rb_fiber_transfer(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.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'>+</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;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'>+}</div><div class='add'>+</div><div class='add'>+#if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='add'>+#pragma GCC visibility push(default)</div><div class='add'>+#endif</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'>+#if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='add'>+#pragma GCC visibility pop</div><div class='add'>+#endif</div><div class='head'>diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in<br/>new file mode 100644<br/>index 0000000000..19d1727dd7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/cygwin/GNUmakefile.in?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>cygwin/GNUmakefile.in</a></div><div class='hunk'>@@ -0,0 +1,107 @@</div><div class='add'>+include Makefile</div><div class='add'>+-include uncommon.mk</div><div class='add'>+</div><div class='add'>+ENABLE_SHARED=@ENABLE_SHARED@</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'>+</div><div class='add'>+ifeq (@target_os@,cygwin)</div><div class='add'>+  DLL_BASE_NAME := $(LIBRUBY_SO:.dll=)</div><div class='add'>+else</div><div class='add'>+  DLL_BASE_NAME := $(RUBY_SO_NAME)</div><div class='add'>+  DLLWRAP += -mno-cygwin</div><div class='add'>+  VPATH := $(VPATH):$(srcdir)/win32</div><div class='add'>+  STUBPROGRAM = rubystub$(EXEEXT)</div><div class='add'>+  IGNOREDPATTERNS = %~ .% %.orig %.rej \#%\#</div><div class='add'>+  SCRIPTPROGRAMS = $(addsuffix $(EXEEXT),$(filter-out $(IGNOREDPATTERNS),$(notdir $(wildcard $(srcdir)/bin/*))))</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifneq ($(ENABLE_SHARED),yes)</div><div class='add'>+  RUBY_EXP = $(RUBY_INSTALL_NAME).exp</div><div class='add'>+  EXTOBJS = $(RUBY_EXP)</div><div class='add'>+  LIBRUBYARG = $(LIBRUBY_A)</div><div class='add'>+  LIBRUBY_SO =</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+ifeq ($(RUBY_INSTALL_NAME),ruby)</div><div class='add'>+  RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w</div><div class='add'>+else</div><div class='add'>+  RUBYW_INSTALL_NAME = $(subst ruby,rubyw,$(RUBY_INSTALL_NAME))</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+WPROGRAM = $(RUBYW_INSTALL_NAME)$(EXEEXT)</div><div class='add'>+SOLIBS := $(DLL_BASE_NAME).res.@OBJEXT@ $(SOLIBS)</div><div class='add'>+EXTOBJS += $(if $(filter-out $(RUBYW_INSTALL_NAME),$(@:$(EXEEXT)=)),$(RUBY_INSTALL_NAME),$(@:$(EXEEXT)=)).res.$(OBJEXT)</div><div class='add'>+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='add'>+</div><div class='add'>+ruby: $(PROGRAM)</div><div class='add'>+rubyw: $(WPROGRAM)</div><div class='add'>+stub: $(STUBPROGRAM)</div><div class='add'>+scriptbin: $(SCRIPTPROGRAMS)</div><div class='add'>+</div><div class='add'>+%$(EXEEXT): bin/% $(STUBPROGRAM)</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'>+</div><div class='add'>+$(LIBRUBY): $(RUBY_EXP) $(LIBRUBY_SO)</div><div class='add'>+$(RUBY_EXP) $(LIBRUBY_SO): $(DLL_BASE_NAME).res.@OBJEXT@</div><div class='add'>+</div><div class='add'>+%.res.@OBJEXT@: %.rc</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='add'>+</div><div class='add'>+$(RCFILES): $(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='add'>+	  -ruby_name=$(RUBY_INSTALL_NAME) -rubyw_name=$(RUBYW_INSTALL_NAME) \</div><div class='add'>+	  -so_name=$(DLL_BASE_NAME) \</div><div class='add'>+	  . $(icondirs) $(srcdir)/win32</div><div class='add'>+</div><div class='add'>+$(PROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@</div><div class='add'>+$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@OBJEXT@</div><div class='add'>+	@rm -f $@</div><div class='add'>+	$(ECHO) linking $@</div><div class='add'>+	$(Q) $(PURIFY) $(CC) -mwindows -e $(SYMBOL_PREFIX)mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \</div><div class='add'>+	  $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@</div><div class='add'>+$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@ stub.@OBJEXT@</div><div class='add'>+	@rm -f $@</div><div class='add'>+	$(ECHO) linking $@</div><div class='add'>+	$(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) \</div><div class='add'>+	  stub.@OBJEXT@ $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@</div><div class='add'>+</div><div class='add'>+$(RUBY_EXP): $(LIBRUBY_A)</div><div class='add'>+	$(ECHO) creating $@</div><div class='add'>+	$(Q) $(DLLWRAP) \</div><div class='add'>+	  --output-exp=$(RUBY_EXP) \</div><div class='add'>+	  --export-all $(LIBRUBY_A) $(LIBS) -o $(PROGRAM)</div><div class='add'>+	$(Q) $(LDSHARED) $(DLDFLAGS) $(OBJS) dmyext.o $(SOLIBS) -o $(PROGRAM)</div><div class='add'>+	@rm -f $(PROGRAM)</div><div class='add'>+</div><div class='add'>+GNUmakefile:	$(srcdir)/cygwin/GNUmakefile.in</div><div class='add'>+</div><div class='add'>+ifeq (@target_os@,mingw32)</div><div class='add'>+$(OBJS) $(MAINOBJ): win32.h</div><div class='add'>+</div><div class='add'>+dir.$(OBJEXT) win32.$(OBJEXT): win32/dir.h</div><div class='add'>+endif</div><div class='add'>+</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='add'>+ifeq (@target_os@,cygwin)</div><div class='add'>+cygwin-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)$(TEENY).dll: $(LIBRUBY_A) $(RUBYDEF)</div><div class='add'>+	$(ECHO) generating $@</div><div class='add'>+	$(Q) @DLLWRAP@ -s --def=$(RUBYDEF) -o $@</div><div class='add'>+endif</div><div class='add'>+</div><div class='add'>+clean-local::</div><div class='add'>+	@$(RM) $(RUBY_EXP) $(RCFILES:.rc=.res.@OBJEXT@)</div><div class='add'>+	@$(RM) $(RCFILES)</div><div class='head'>diff --git a/debug.c b/debug.c<br/>new file mode 100644<br/>index 0000000000..dcc710bc4a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/debug.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>debug.c</a></div><div class='hunk'>@@ -0,0 +1,162 @@</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 "debug.h"</div><div class='add'>+#include "eval_intern.h"</div><div class='add'>+#include "vm_core.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 {</div><div class='add'>+        RUBY_ENCODING_INLINE_MAX = ENCODING_INLINE_MAX,</div><div class='add'>+        RUBY_ENCODING_SHIFT = ENCODING_SHIFT,</div><div class='add'>+        RUBY_ENC_CODERANGE_MASK    = ENC_CODERANGE_MASK,</div><div class='add'>+        RUBY_ENC_CODERANGE_UNKNOWN = ENC_CODERANGE_UNKNOWN,</div><div class='add'>+        RUBY_ENC_CODERANGE_7BIT    = ENC_CODERANGE_7BIT,</div><div class='add'>+        RUBY_ENC_CODERANGE_VALID   = ENC_CODERANGE_VALID,</div><div class='add'>+        RUBY_ENC_CODERANGE_BROKEN  = ENC_CODERANGE_BROKEN,</div><div class='add'>+        RUBY_FL_MARK        = FL_MARK,</div><div class='add'>+        RUBY_FL_RESERVED    = FL_RESERVED,</div><div class='add'>+        RUBY_FL_FINALIZE    = FL_FINALIZE,</div><div class='add'>+        RUBY_FL_TAINT       = FL_TAINT,</div><div class='add'>+        RUBY_FL_UNTRUSTED   = FL_UNTRUSTED,</div><div class='add'>+        RUBY_FL_EXIVAR      = FL_EXIVAR,</div><div class='add'>+        RUBY_FL_FREEZE      = FL_FREEZE,</div><div class='add'>+        RUBY_FL_SINGLETON   = FL_SINGLETON,</div><div class='add'>+        RUBY_FL_USER0       = FL_USER0,</div><div class='add'>+        RUBY_FL_USER1       = FL_USER1,</div><div class='add'>+        RUBY_FL_USER2       = FL_USER2,</div><div class='add'>+        RUBY_FL_USER3       = FL_USER3,</div><div class='add'>+        RUBY_FL_USER4       = FL_USER4,</div><div class='add'>+        RUBY_FL_USER5       = FL_USER5,</div><div class='add'>+        RUBY_FL_USER6       = FL_USER6,</div><div class='add'>+        RUBY_FL_USER7       = FL_USER7,</div><div class='add'>+        RUBY_FL_USER8       = FL_USER8,</div><div class='add'>+        RUBY_FL_USER9       = FL_USER9,</div><div class='add'>+        RUBY_FL_USER10      = FL_USER10,</div><div class='add'>+        RUBY_FL_USER11      = FL_USER11,</div><div class='add'>+        RUBY_FL_USER12      = FL_USER12,</div><div class='add'>+        RUBY_FL_USER13      = FL_USER13,</div><div class='add'>+        RUBY_FL_USER14      = FL_USER14,</div><div class='add'>+        RUBY_FL_USER15      = FL_USER15,</div><div class='add'>+        RUBY_FL_USER16      = FL_USER16,</div><div class='add'>+        RUBY_FL_USER17      = FL_USER17,</div><div class='add'>+        RUBY_FL_USER18      = FL_USER18,</div><div class='add'>+        RUBY_FL_USHIFT      = FL_USHIFT,</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'>+} ruby_dummy_gdb_enums;</div><div class='add'>+</div><div class='add'>+const VALUE RUBY_FL_USER19    = FL_USER19;</div><div class='add'>+const SIGNED_VALUE RUBY_NODE_LMASK = NODE_LMASK;</div><div class='add'>+const VALUE RUBY_ENCODING_MASK  = ENCODING_MASK;</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'>+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'>+	VALUE str;</div><div class='add'>+	str = rb_inspect(obj);</div><div class='add'>+	fprintf(stderr, "DBG&gt; %s: %s\n", header,</div><div class='add'>+		obj == (VALUE)(SIGNED_VALUE)-1 ? "" : StringValueCStr(str));</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'>+static void</div><div class='add'>+set_debug_option(const char *str, int len, void *arg)</div><div class='add'>+{</div><div class='add'>+#define SET_WHEN(name, var) 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'>+	    extern int var;	    \</div><div class='add'>+	    var = 1;		    \</div><div class='add'>+	    return;			    \</div><div class='add'>+	}				    \</div><div class='add'>+    } while (0)</div><div class='add'>+    SET_WHEN("gc_stress", *ruby_initial_gc_stress_ptr);</div><div class='add'>+    SET_WHEN("core", ruby_enable_coredump);</div><div class='add'>+#if defined _WIN32 &amp;&amp; defined _MSC_VER &amp;&amp; _MSC_VER &gt;= 1400</div><div class='add'>+    SET_WHEN("rtc_error", ruby_w32_rtc_error);</div><div class='add'>+#endif</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'>+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.h b/debug.h<br/>new file mode 100644<br/>index 0000000000..f1d11304f0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/debug.h?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>debug.h</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  debug.h - YARV Debug function interface</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: 04/08/25 02:33:49 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'>+#ifndef RUBY_DEBUG_H</div><div class='add'>+#define RUBY_DEBUG_H</div><div class='add'>+</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "node.h"</div><div class='add'>+</div><div class='add'>+#if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='add'>+#pragma GCC visibility push(default)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define dpv(h,v) ruby_debug_print_value(-1, 0, (h), (v))</div><div class='add'>+#define dp(v)    ruby_debug_print_value(-1, 0, "", (v))</div><div class='add'>+#define dpi(i)   ruby_debug_print_id(-1, 0, "", (i))</div><div class='add'>+#define dpn(n)   ruby_debug_print_node(-1, 0, "", (n))</div><div class='add'>+</div><div class='add'>+#define bp()     ruby_debug_breakpoint()</div><div class='add'>+</div><div class='add'>+VALUE ruby_debug_print_value(int level, int debug_level, const char *header, VALUE v);</div><div class='add'>+ID    ruby_debug_print_id(int level, int debug_level, const char *header, ID id);</div><div class='add'>+NODE *ruby_debug_print_node(int level, int debug_level, const char *header, const NODE *node);</div><div class='add'>+int   ruby_debug_print_indent(int level, int debug_level, int indent_level);</div><div class='add'>+void  ruby_debug_breakpoint(void);</div><div class='add'>+void  ruby_debug_gc_check_func(void);</div><div class='add'>+void ruby_set_debug_option(const char *str);</div><div class='add'>+</div><div class='add'>+#if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='add'>+#pragma GCC visibility pop</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#endif /* RUBY_DEBUG_H */</div><div class='head'>diff --git a/defines.h b/defines.h<br/>deleted file mode 100644<br/>index 1a857581fb..0000000000<br/>--- a/<a href='/ruby.git/tree/defines.h?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>defines.h</a><br/>+++ /dev/null</div><div class='hunk'>@@ -1,56 +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'>-/* define RUBY_USE_EUC/SJIS for default kanji-code */</div><div class='del'>-#if defined(MSDOS) || defined(__CYGWIN32__) || defined(__human68k__) || defined(__MACOS__)</div><div class='del'>-#undef RUBY_USE_EUC</div><div class='del'>-#define RUBY_USE_SJIS</div><div class='del'>-#else</div><div class='del'>-#define RUBY_USE_EUC</div><div class='del'>-#undef RUBY_USE_SJIS</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef NeXT</div><div class='del'>-#define DYNAMIC_ENDIAN		/* determine endian at runtime */</div><div class='del'>-#ifndef __APPLE__</div><div class='del'>-#define S_IXUSR _S_IXUSR        /* execute/search permission, owner */</div><div class='del'>-#endif</div><div class='del'>-#define S_IXGRP 0000010         /* execute/search permission, group */</div><div class='del'>-#define S_IXOTH 0000001         /* execute/search permission, other */</div><div class='del'>-#endif /* NeXT */</div><div class='del'>-</div><div class='del'>-#ifdef NT</div><div class='del'>-#include "missing/nt.h"</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifndef EXTERN</div><div class='del'>-#define EXTERN extern</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#ifdef sparc</div><div class='del'>-#define FLUSH_REGISTER_WINDOWS asm("ta 3")</div><div class='del'>-#else</div><div class='del'>-#define FLUSH_REGISTER_WINDOWS /* empty */</div><div class='del'>-#endif</div><div class='del'>-</div><div class='del'>-#if defined(__human68k__) || defined(__CYGWIN32__)</div><div class='del'>-#undef HAVE_RANDOM</div><div class='del'>-#undef HAVE_SETITIMER</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/default_gems b/defs/default_gems<br/>new file mode 100644<br/>index 0000000000..030d84f6f5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/default_gems?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>defs/default_gems</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+# gem		versioning file			[executable files under bin]</div><div class='add'>+rake		lib/rake/version.rb		[rake]</div><div class='add'>+rdoc		lib/rdoc.rb			[rdoc ri]</div><div class='add'>+minitest	lib/minitest/unit.rb</div><div class='add'>+json		ext/json/lib/json/version.rb</div><div class='add'>+io-console	ext/io/console/io-console.gemspec</div><div class='add'>+bigdecimal	ext/bigdecimal/bigdecimal.gemspec</div><div class='head'>diff --git a/defs/keywords b/defs/keywords<br/>new file mode 100644<br/>index 0000000000..1b5719aa85<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/keywords?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>defs/keywords</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+%{</div><div class='add'>+struct kwtable {const char *name; int id[2]; enum lex_state_e 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(const char *, unsigned int);</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</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</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..3cebe90a8e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/known_errors.def?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>defs/known_errors.def</a></div><div class='hunk'>@@ -0,0 +1,145 @@</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='head'>diff --git a/defs/lex.c.src b/defs/lex.c.src<br/>new file mode 100644<br/>index 0000000000..1b5719aa85<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/lex.c.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>defs/lex.c.src</a></div><div class='hunk'>@@ -0,0 +1,53 @@</div><div class='add'>+%{</div><div class='add'>+struct kwtable {const char *name; int id[2]; enum lex_state_e 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(const char *, unsigned int);</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</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</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..1ac613dbea<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/opt_insn_unif.def?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>defs/opt_insn_unif.def</a></div><div class='hunk'>@@ -0,0 +1,29 @@</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'>+putobject setdynamic</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'>+putstring setdynamic</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..5ca1d74028<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/defs/opt_operand.def?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>defs/opt_operand.def</a></div><div class='hunk'>@@ -0,0 +1,59 @@</div><div class='add'>+#</div><div class='add'>+# configration 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'>+__END__</div><div class='add'>+</div><div class='add'>+getlocal 2</div><div class='add'>+getlocal 3</div><div class='add'>+getlocal 4</div><div class='add'>+</div><div class='add'>+setlocal 2</div><div class='add'>+setlocal 3</div><div class='add'>+setlocal 4</div><div class='add'>+</div><div class='add'>+getdynamic *, 0</div><div class='add'>+getdynamic 1, 0</div><div class='add'>+getdynamic 2, 0</div><div class='add'>+getdynamic 3, 0</div><div class='add'>+getdynamic 4, 0</div><div class='add'>+</div><div class='add'>+setdynamic *, 0</div><div class='add'>+setdynamic 1, 0</div><div class='add'>+setdynamic 2, 0</div><div class='add'>+setdynamic 3, 0</div><div class='add'>+setdynamic 4, 0</div><div class='add'>+</div><div class='add'>+putobject INT2FIX(0)</div><div class='add'>+putobject INT2FIX(1)</div><div class='add'>+putobject Qtrue</div><div class='add'>+putobject Qfalse</div><div class='add'>+</div><div class='add'>+# CALL</div><div class='add'>+send *, *, Qfalse, 0, *</div><div class='add'>+send *, 0, Qfalse, 0, *</div><div class='add'>+send *, 1, Qfalse, 0, *</div><div class='add'>+send *, 2, Qfalse, 0, *</div><div class='add'>+send *, 3, Qfalse, 0, *</div><div class='add'>+</div><div class='add'>+# FCALL</div><div class='add'>+send *, *, Qfalse, 0x04, *</div><div class='add'>+send *, 0, Qfalse, 0x04, *</div><div class='add'>+send *, 1, Qfalse, 0x04, *</div><div class='add'>+send *, 2, Qfalse, 0x04, *</div><div class='add'>+send *, 3, Qfalse, 0x04, *</div><div class='add'>+</div><div class='add'>+# VCALL</div><div class='add'>+send *, 0, Qfalse, 0x0c, *</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'>+</div><div class='add'>+</div><div class='head'>diff --git a/dir.c b/dir.c<br/>index 44f662e2e8..387a2490b6 100644<br/>--- a/<a href='/ruby.git/tree/dir.c?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dir.c</a><br/>+++ b/<a href='/ruby.git/tree/dir.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dir.c</a></div><div class='hunk'>@@ -1,38 +1,41 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </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-1998 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 2000  Network Applied Communication Laboratory, Inc.</div><div class='add'>+  Copyright (C) 2000  Information-technology Promotion Agency, Japan</div><div class='ctx'> </div><div class='del'>-************************************************/</div><div class='add'>+**********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "ruby.h"</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+#include "ruby/encoding.h"</div><div class='add'>+#include "internal.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='ctx'> </div><div class='del'>-#ifdef HAVE_SYS_PARAM_H</div><div class='del'>-# include &lt;sys/param.h&gt;</div><div class='del'>-#else</div><div class='del'>-# define MAXPATHLEN 1024</div><div class='del'>-#endif</div><div class='ctx'> #ifdef HAVE_UNISTD_H</div><div class='ctx'> #include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if HAVE_DIRENT_H</div><div class='add'>+#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='del'>-#elif HAVE_DIRECT_H</div><div class='add'>+#elif defined HAVE_DIRECT_H &amp;&amp; !defined _WIN32</div><div class='ctx'> # include &lt;direct.h&gt;</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'>-# define NAMLEN(dirent) (dirent)-&gt;d_namlen</div><div class='add'>+# if !defined __NeXT__</div><div class='add'>+#  define NAMLEN(dirent) (dirent)-&gt;d_namlen</div><div class='add'>+# else</div><div class='add'>+#  /* On some versions of NextStep, d_namlen is always zero, so avoid it. */</div><div class='add'>+#  define NAMLEN(dirent) strlen((dirent)-&gt;d_name)</div><div class='add'>+# endif</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'>@@ -42,234 +45,930 @@</div><div class='ctx'> # if HAVE_NDIR_H</div><div class='ctx'> #  include &lt;ndir.h&gt;</div><div class='ctx'> # endif</div><div class='del'>-# if defined(NT) &amp;&amp; defined(_MSC_VER)</div><div class='del'>-#  include "missing/dir.h"</div><div class='add'>+# ifdef _WIN32</div><div class='add'>+#  include "win32/dir.h"</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='ctx'> </div><div class='del'>-#ifndef NT</div><div class='add'>+#ifndef HAVE_STDLIB_H</div><div class='ctx'> char *getenv();</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef USE_CWGUSI</div><div class='del'>-# include &lt;sys/errno.h&gt;</div><div class='add'>+#ifndef HAVE_STRING_H</div><div class='add'>+char *strchr(char*,char);</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static VALUE cDir;</div><div class='add'>+#include &lt;ctype.h&gt;</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-free_dir(dir)</div><div class='add'>+#include "ruby/util.h"</div><div class='add'>+</div><div class='add'>+#if !defined HAVE_LSTAT &amp;&amp; !defined lstat</div><div class='add'>+#define lstat stat</div><div class='add'>+#endif</div><div class='add'>+</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'>+#endif</div><div class='add'>+</div><div class='add'>+#define rb_sys_fail_path(path) rb_sys_fail_str(path)</div><div class='add'>+</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'>+#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='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='add'>+</div><div class='add'>+static char *</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='add'>+{</div><div class='add'>+    const int nocase = flags &amp; FNM_CASEFOLD;</div><div class='add'>+    const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+    unsigned int c1, c2;</div><div class='add'>+    int r;</div><div class='add'>+    int ok = 0, not = 0;</div><div class='add'>+</div><div class='add'>+    if (p &gt;= pend) return NULL;</div><div class='add'>+    if (*p == '!' || *p == '^') {</div><div class='add'>+	not = 1;</div><div class='add'>+	p++;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (*p != ']') {</div><div class='add'>+	const char *t1 = p;</div><div class='add'>+	if (escape &amp;&amp; *t1 == '\\')</div><div class='add'>+	    t1++;</div><div class='add'>+	if (!*t1)</div><div class='add'>+	    return NULL;</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='add'>+	if (p[0] == '-' &amp;&amp; p[1] != ']') {</div><div class='add'>+	    const char *t2 = p + 1;</div><div class='add'>+	    int r2;</div><div class='add'>+	    if (escape &amp;&amp; *t2 == '\\')</div><div class='add'>+		t2++;</div><div class='add'>+	    if (!*t2)</div><div class='add'>+		return NULL;</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, r) == 0)) {</div><div class='add'>+		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='add'>+	}</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='add'>+		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='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ok == not ? NULL : (char *)p + 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* If FNM_PATHNAME is set, only path element will be matched. (upto '/' or '\0')</div><div class='add'>+   Otherwise, entire string will be matched.</div><div class='add'>+   End marker itself won't be compared.</div><div class='add'>+   And if function succeeds, *pcur reaches end marker.</div><div class='add'>+*/</div><div class='add'>+#define UNESCAPE(p) (escape &amp;&amp; *(p) == '\\' ? (p) + 1 : (p))</div><div class='add'>+#define ISEND(p) (!*(p) || (pathname &amp;&amp; *(p) == '/'))</div><div class='add'>+#define RETURN(val) return *pcur = p, *scur = s, (val);</div><div class='add'>+</div><div class='add'>+static int</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='add'>+{</div><div class='add'>+    const int period = !(flags &amp; FNM_DOTMATCH);</div><div class='add'>+    const int pathname = flags &amp; FNM_PATHNAME;</div><div class='add'>+    const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+    const int nocase = flags &amp; FNM_CASEFOLD;</div><div class='add'>+</div><div class='add'>+    const char *ptmp = 0;</div><div class='add'>+    const char *stmp = 0;</div><div class='add'>+</div><div class='add'>+    const char *p = *pcur;</div><div class='add'>+    const char *pend = p + strlen(p);</div><div class='add'>+    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='add'>+</div><div class='add'>+    if (period &amp;&amp; *s == '.' &amp;&amp; *UNESCAPE(p) != '.') /* leading period */</div><div class='add'>+	RETURN(FNM_NOMATCH);</div><div class='add'>+</div><div class='add'>+    while (1) {</div><div class='add'>+	switch (*p) {</div><div class='add'>+	  case '*':</div><div class='add'>+	    do { p++; } while (*p == '*');</div><div class='add'>+	    if (ISEND(UNESCAPE(p))) {</div><div class='add'>+		p = UNESCAPE(p);</div><div class='add'>+		RETURN(0);</div><div class='add'>+	    }</div><div class='add'>+	    if (ISEND(s))</div><div class='add'>+		RETURN(FNM_NOMATCH);</div><div class='add'>+	    ptmp = p;</div><div class='add'>+	    stmp = s;</div><div class='add'>+	    continue;</div><div class='add'>+</div><div class='add'>+	  case '?':</div><div class='add'>+	    if (ISEND(s))</div><div class='add'>+		RETURN(FNM_NOMATCH);</div><div class='add'>+	    p++;</div><div class='add'>+	    Inc(s, send, enc);</div><div class='add'>+	    continue;</div><div class='add'>+</div><div class='add'>+	  case '[': {</div><div class='add'>+	    const char *t;</div><div class='add'>+	    if (ISEND(s))</div><div class='add'>+		RETURN(FNM_NOMATCH);</div><div class='add'>+	    if ((t = bracket(p + 1, pend, s, send, flags, enc)) != 0) {</div><div class='add'>+		p = t;</div><div class='add'>+		Inc(s, send, enc);</div><div class='add'>+		continue;</div><div class='add'>+	    }</div><div class='add'>+	    goto failed;</div><div class='add'>+	  }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	/* ordinary */</div><div class='add'>+	p = UNESCAPE(p);</div><div class='add'>+	if (ISEND(s))</div><div class='add'>+	    RETURN(ISEND(p) ? 0 : FNM_NOMATCH);</div><div class='add'>+	if (ISEND(p))</div><div class='add'>+	    goto failed;</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='add'>+	    goto failed;</div><div class='add'>+	p += r;</div><div class='add'>+	Inc(s, send, enc);</div><div class='add'>+	continue;</div><div class='add'>+</div><div class='add'>+      failed: /* try next '*' position */</div><div class='add'>+	if (ptmp &amp;&amp; stmp) {</div><div class='add'>+	    p = ptmp;</div><div class='add'>+	    Inc(stmp, send, enc); /* !ISEND(*stmp) */</div><div class='add'>+	    s = stmp;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+	RETURN(FNM_NOMATCH);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</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='add'>+{</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='add'>+    const int period = !(flags &amp; FNM_DOTMATCH);</div><div class='add'>+    const int pathname = flags &amp; FNM_PATHNAME;</div><div class='add'>+</div><div class='add'>+    const char *ptmp = 0;</div><div class='add'>+    const char *stmp = 0;</div><div class='add'>+</div><div class='add'>+    if (pathname) {</div><div class='add'>+	while (1) {</div><div class='add'>+	    if (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='add'>+		do { p += 3; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='add'>+		ptmp = p;</div><div class='add'>+		stmp = s;</div><div class='add'>+	    }</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='add'>+		if (*p &amp;&amp; *s) {</div><div class='add'>+		    p++;</div><div class='add'>+		    s++;</div><div class='add'>+		    continue;</div><div class='add'>+		}</div><div class='add'>+		if (!*p &amp;&amp; !*s)</div><div class='add'>+		    return 0;</div><div class='add'>+	    }</div><div class='add'>+	    /* failed : try next recursion */</div><div class='add'>+	    if (ptmp &amp;&amp; stmp &amp;&amp; !(period &amp;&amp; *stmp == '.')) {</div><div class='add'>+		while (*stmp &amp;&amp; *stmp != '/') Inc(stmp, send, enc);</div><div class='add'>+		if (*stmp) {</div><div class='add'>+		    p = ptmp;</div><div class='add'>+		    stmp++;</div><div class='add'>+		    s = stmp;</div><div class='add'>+		    continue;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+	    return FNM_NOMATCH;</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+	return fnmatch_helper(&amp;p, &amp;s, flags, enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+VALUE rb_cDir;</div><div class='add'>+</div><div class='add'>+struct dir_data {</div><div class='ctx'>     DIR *dir;</div><div class='add'>+    VALUE path;</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+dir_mark(void *ptr)</div><div class='ctx'> {</div><div class='del'>-    if (dir) closedir(dir);</div><div class='add'>+    struct dir_data *dir = ptr;</div><div class='add'>+    rb_gc_mark(dir-&gt;path);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE dir_close _((VALUE));</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'>+    if (dir) {</div><div class='add'>+	if (dir-&gt;dir) closedir(dir-&gt;dir);</div><div class='add'>+    }</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 ptr ? sizeof(struct dir_data) : 0;</div><div class='add'>+}</div><div class='add'>+</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'>+};</div><div class='add'>+</div><div class='add'>+static VALUE dir_close(VALUE);</div><div class='add'>+</div><div class='add'>+#define GlobPathValue(str, safe) \</div><div class='add'>+    /* can contain null bytes as separators */	\</div><div class='add'>+    (!RB_TYPE_P((str), T_STRING) ?		\</div><div class='add'>+     (void)FilePathValue(str) :			\</div><div class='add'>+     (void)(check_safe_glob((str), (safe)),		\</div><div class='add'>+      check_glob_encoding(str), (str)))</div><div class='add'>+#define check_safe_glob(str, safe) ((safe) ? rb_check_safe_obj(str) : (void)0)</div><div class='add'>+#define check_glob_encoding(str) rb_enc_check((str), rb_enc_from_encoding(rb_usascii_encoding()))</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_open(dir_class, dirname)</div><div class='del'>-    VALUE dir_class, dirname;</div><div class='add'>+dir_s_alloc(VALUE klass)</div><div class='ctx'> {</div><div class='del'>-    VALUE obj;</div><div class='del'>-    DIR *dirp;</div><div class='add'>+    struct dir_data *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='del'>-    Check_SafeStr(dirname);</div><div class='add'>+    dirp-&gt;dir = NULL;</div><div class='add'>+    dirp-&gt;path = Qnil;</div><div class='add'>+    dirp-&gt;enc = NULL;</div><div class='ctx'> </div><div class='del'>-    dirp = opendir(RSTRING(dirname)-&gt;ptr);</div><div class='del'>-    if (dirp == NULL) {</div><div class='add'>+    return obj;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.new( string ) -&gt; aDir</div><div class='add'>+ *</div><div class='add'>+ *  Returns a new directory object for the named directory.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_initialize(int argc, VALUE *argv, VALUE dir)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dp;</div><div class='add'>+    rb_encoding  *fsenc;</div><div class='add'>+    VALUE dirname, opt, orig;</div><div class='add'>+    static VALUE sym_enc;</div><div class='add'>+</div><div class='add'>+    if (!sym_enc) {</div><div class='add'>+	sym_enc = ID2SYM(rb_intern("encoding"));</div><div class='add'>+    }</div><div class='add'>+    fsenc = rb_filesystem_encoding();</div><div class='add'>+</div><div class='add'>+    argc = 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 = rb_hash_aref(opt, sym_enc);</div><div class='add'>+	if (!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'>+    GlobPathValue(dirname, FALSE);</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='add'>+    if (dp-&gt;dir) closedir(dp-&gt;dir);</div><div class='add'>+    dp-&gt;dir = NULL;</div><div class='add'>+    dp-&gt;path = Qnil;</div><div class='add'>+    dp-&gt;enc = fsenc;</div><div class='add'>+    dp-&gt;dir = opendir(RSTRING_PTR(dirname));</div><div class='add'>+    if (dp-&gt;dir == NULL) {</div><div class='ctx'> 	if (errno == EMFILE || errno == ENFILE) {</div><div class='del'>-	    gc_gc();</div><div class='del'>-	    dirp = opendir(RSTRING(dirname)-&gt;ptr);</div><div class='add'>+	    rb_gc();</div><div class='add'>+	    dp-&gt;dir = opendir(RSTRING_PTR(dirname));</div><div class='ctx'> 	}</div><div class='del'>-	if (dirp == NULL) {</div><div class='del'>-	    rb_sys_fail(RSTRING(dirname)-&gt;ptr);</div><div class='add'>+	if (dp-&gt;dir == NULL) {</div><div class='add'>+	    rb_sys_fail_path(orig);</div><div class='ctx'> 	}</div><div class='ctx'>     }</div><div class='add'>+    dp-&gt;path = orig;</div><div class='ctx'> </div><div class='del'>-    obj = Data_Wrap_Struct(dir_class, 0, free_dir, dirp);</div><div class='add'>+    return dir;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    if (iterator_p()) {</div><div class='del'>-	return rb_ensure(rb_yield, obj, dir_close, obj);</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.open( string ) -&gt; aDir</div><div class='add'>+ *     Dir.open( string ) {| aDir | block } -&gt; anObject</div><div class='add'>+ *</div><div class='add'>+ *  With no block, &lt;code&gt;open&lt;/code&gt; is a synonym for</div><div class='add'>+ *  &lt;code&gt;Dir::new&lt;/code&gt;. If a block is present, it is passed</div><div class='add'>+ *  &lt;i&gt;aDir&lt;/i&gt; as a parameter. The directory is closed at the end of</div><div class='add'>+ *  the block, and &lt;code&gt;Dir::open&lt;/code&gt; returns the value of the</div><div class='add'>+ *  block.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_open(int argc, VALUE *argv, VALUE klass)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dp;</div><div class='add'>+    VALUE dir = TypedData_Make_Struct(klass, struct dir_data, &amp;dir_data_type, dp);</div><div class='add'>+</div><div class='add'>+    dir_initialize(argc, argv, dir);</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	return rb_ensure(rb_yield, dir, dir_close, dir);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    return obj;</div><div class='add'>+    return dir;</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='del'>-    Fail("closed directory");</div><div class='add'>+    rb_raise(rb_eIOError, "closed directory");</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define GetDIR(obj, dirp) {\</div><div class='del'>-    Data_Get_Struct(obj, DIR, dirp);\</div><div class='del'>-    if (dirp == NULL) dir_closed();\</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;</div><div class='add'>+    if (!OBJ_UNTRUSTED(dir) &amp;&amp; rb_safe_level() &gt;= 4)</div><div class='add'>+	rb_raise(rb_eSecurityError, "Insecure: operation on trusted Dir");</div><div class='add'>+    rb_check_frozen(dir);</div><div class='add'>+    dirp = rb_check_typeddata(dir, &amp;dir_data_type);</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='add'>+#define GetDIR(obj, dirp) ((dirp) = dir_check(obj))</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.inspect -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Return a string describing this Dir object.</div><div class='add'>+ */</div><div class='ctx'> static VALUE</div><div class='del'>-dir_read(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+dir_inspect(VALUE dir)</div><div class='ctx'> {</div><div class='del'>-    DIR *dirp;</div><div class='add'>+    struct dir_data *dirp;</div><div class='add'>+</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='add'>+    }</div><div class='add'>+    return rb_funcall(dir, rb_intern("to_s"), 0, 0);</div><div class='add'>+}</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'>+ *</div><div class='add'>+ *  Returns the path parameter passed to &lt;em&gt;dir&lt;/em&gt;'s constructor.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("..")</div><div class='add'>+ *     d.path   #=&gt; ".."</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_path(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dirp;</div><div class='add'>+</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 HAVE_READDIR_R</div><div class='add'>+# define READDIR(dir, enc, entry, dp) (readdir_r((dir), (entry), &amp;(dp)) == 0 &amp;&amp; (dp) != 0)</div><div class='add'>+#elif defined _WIN32</div><div class='add'>+# define READDIR(dir, enc, entry, dp) (((dp) = rb_w32_readdir_with_enc((dir), (enc))) != 0)</div><div class='add'>+#else</div><div class='add'>+# define READDIR(dir, enc, entry, dp) (((dp) = readdir(dir)) != 0)</div><div class='add'>+#endif</div><div class='add'>+#if defined HAVE_READDIR_R</div><div class='add'>+# define IF_HAVE_READDIR_R(something) something</div><div class='add'>+#else</div><div class='add'>+# define IF_HAVE_READDIR_R(something) /* nothing */</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined SIZEOF_STRUCT_DIRENT_TOO_SMALL</div><div class='add'>+# include &lt;limits.h&gt;</div><div class='add'>+# define NAME_MAX_FOR_STRUCT_DIRENT 255</div><div class='add'>+# if defined NAME_MAX</div><div class='add'>+#  if NAME_MAX_FOR_STRUCT_DIRENT &lt; NAME_MAX</div><div class='add'>+#   undef  NAME_MAX_FOR_STRUCT_DIRENT</div><div class='add'>+#   define NAME_MAX_FOR_STRUCT_DIRENT NAME_MAX</div><div class='add'>+#  endif</div><div class='add'>+# endif</div><div class='add'>+# if defined _POSIX_NAME_MAX</div><div class='add'>+#  if NAME_MAX_FOR_STRUCT_DIRENT &lt; _POSIX_NAME_MAX</div><div class='add'>+#   undef  NAME_MAX_FOR_STRUCT_DIRENT</div><div class='add'>+#   define NAME_MAX_FOR_STRUCT_DIRENT _POSIX_NAME_MAX</div><div class='add'>+#  endif</div><div class='add'>+# endif</div><div class='add'>+# if defined _XOPEN_NAME_MAX</div><div class='add'>+#  if NAME_MAX_FOR_STRUCT_DIRENT &lt; _XOPEN_NAME_MAX</div><div class='add'>+#   undef  NAME_MAX_FOR_STRUCT_DIRENT</div><div class='add'>+#   define NAME_MAX_FOR_STRUCT_DIRENT _XOPEN_NAME_MAX</div><div class='add'>+#  endif</div><div class='add'>+# endif</div><div class='add'>+# define DEFINE_STRUCT_DIRENT \</div><div class='add'>+  union { \</div><div class='add'>+    struct dirent dirent; \</div><div class='add'>+    char dummy[offsetof(struct dirent, d_name) + \</div><div class='add'>+	       NAME_MAX_FOR_STRUCT_DIRENT + 1]; \</div><div class='add'>+  }</div><div class='add'>+# define STRUCT_DIRENT(entry) ((entry).dirent)</div><div class='add'>+#else</div><div class='add'>+# define DEFINE_STRUCT_DIRENT struct dirent</div><div class='add'>+# define STRUCT_DIRENT(entry) (entry)</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.read -&gt; string or nil</div><div class='add'>+ *</div><div class='add'>+ *  Reads the next entry from &lt;em&gt;dir&lt;/em&gt; and returns it as a string.</div><div class='add'>+ *  Returns &lt;code&gt;nil&lt;/code&gt; at the end of the stream.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("testdir")</div><div class='add'>+ *     d.read   #=&gt; "."</div><div class='add'>+ *     d.read   #=&gt; ".."</div><div class='add'>+ *     d.read   #=&gt; "config.h"</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_read(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    struct dir_data *dirp;</div><div class='ctx'>     struct dirent *dp;</div><div class='add'>+    IF_HAVE_READDIR_R(DEFINE_STRUCT_DIRENT entry);</div><div class='ctx'> </div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='ctx'>     errno = 0;</div><div class='del'>-    dp = readdir(dirp);</div><div class='del'>-    if (dp)</div><div class='del'>-	return str_taint(str_new(dp-&gt;d_name, NAMLEN(dp)));</div><div class='add'>+    if (READDIR(dirp-&gt;dir, dirp-&gt;enc, &amp;STRUCT_DIRENT(entry), dp)) {</div><div class='add'>+	return rb_external_str_new_with_enc(dp-&gt;d_name, NAMLEN(dp), dirp-&gt;enc);</div><div class='add'>+    }</div><div class='ctx'>     else if (errno == 0) {	/* end of stream */</div><div class='ctx'> 	return Qnil;</div><div class='ctx'>     }</div><div class='ctx'>     else {</div><div class='ctx'> 	rb_sys_fail(0);</div><div class='ctx'>     }</div><div class='add'>+    return Qnil;		/* not reached */</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.each { |filename| block }  -&gt; dir</div><div class='add'>+ *     dir.each                       -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block once for each entry in this directory, passing the</div><div class='add'>+ *  filename of each entry as a parameter 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'>+ *     d = Dir.new("testdir")</div><div class='add'>+ *     d.each  {|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 .</div><div class='add'>+ *     Got ..</div><div class='add'>+ *     Got config.h</div><div class='add'>+ *     Got main.rb</div><div class='add'>+ */</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='ctx'> {</div><div class='del'>-    DIR *dirp;</div><div class='add'>+    struct dir_data *dirp;</div><div class='ctx'>     struct dirent *dp;</div><div class='del'>-    VALUE file;</div><div class='add'>+    IF_HAVE_READDIR_R(DEFINE_STRUCT_DIRENT entry);</div><div class='ctx'> </div><div class='add'>+    RETURN_ENUMERATOR(dir, 0, 0);</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='del'>-    for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {</div><div class='del'>-	file = str_taint(str_new(dp-&gt;d_name, NAMLEN(dp)));</div><div class='del'>-	rb_yield(file);</div><div class='add'>+    rewinddir(dirp-&gt;dir);</div><div class='add'>+    while (READDIR(dirp-&gt;dir, dirp-&gt;enc, &amp;STRUCT_DIRENT(entry), dp)) {</div><div class='add'>+	rb_yield(rb_external_str_new_with_enc(dp-&gt;d_name, NAMLEN(dp), dirp-&gt;enc));</div><div class='add'>+	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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.pos -&gt; integer</div><div class='add'>+ *     dir.tell -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Returns the current position in &lt;em&gt;dir&lt;/em&gt;. See also</div><div class='add'>+ *  &lt;code&gt;Dir#seek&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("testdir")</div><div class='add'>+ *     d.tell   #=&gt; 0</div><div class='add'>+ *     d.read   #=&gt; "."</div><div class='add'>+ *     d.tell   #=&gt; 12</div><div class='add'>+ */</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'>-    DIR *dirp;</div><div class='del'>-    int pos;</div><div class='add'>+    struct dir_data *dirp;</div><div class='add'>+    long pos;</div><div class='ctx'> </div><div class='del'>-#if !defined(__CYGWIN32__) &amp;&amp; !defined(__BEOS__)</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='del'>-    pos = telldir(dirp);</div><div class='del'>-    return int2inum(pos);</div><div class='add'>+    pos = telldir(dirp-&gt;dir);</div><div class='add'>+    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='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.seek( integer ) -&gt; dir</div><div class='add'>+ *</div><div class='add'>+ *  Seeks to a particular location in &lt;em&gt;dir&lt;/em&gt;. &lt;i&gt;integer&lt;/i&gt;</div><div class='add'>+ *  must be a value returned by &lt;code&gt;Dir#tell&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("testdir")   #=&gt; #&lt;Dir:0x401b3c40&gt;</div><div class='add'>+ *     d.read                   #=&gt; "."</div><div class='add'>+ *     i = d.tell               #=&gt; 12</div><div class='add'>+ *     d.read                   #=&gt; ".."</div><div class='add'>+ *     d.seek(i)                #=&gt; #&lt;Dir:0x401b3c40&gt;</div><div class='add'>+ *     d.read                   #=&gt; ".."</div><div class='add'>+ */</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='del'>-    DIR *dirp;</div><div class='add'>+    struct dir_data *dirp;</div><div class='add'>+    long p = NUM2LONG(pos);</div><div class='ctx'> </div><div class='del'>-#if !defined(__CYGWIN32__) &amp;&amp; !defined(__BEOS__)</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='del'>-    seekdir(dirp, NUM2INT(pos));</div><div class='add'>+    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='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.pos( integer ) -&gt; integer</div><div class='add'>+ *</div><div class='add'>+ *  Synonym for &lt;code&gt;Dir#seek&lt;/code&gt;, but returns the position</div><div class='add'>+ *  parameter.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("testdir")   #=&gt; #&lt;Dir:0x401b3c40&gt;</div><div class='add'>+ *     d.read                   #=&gt; "."</div><div class='add'>+ *     i = d.pos                #=&gt; 12</div><div class='add'>+ *     d.read                   #=&gt; ".."</div><div class='add'>+ *     d.pos = i                #=&gt; 12</div><div class='add'>+ *     d.read                   #=&gt; ".."</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_set_pos(VALUE dir, VALUE pos)</div><div class='add'>+{</div><div class='add'>+    dir_seek(dir, pos);</div><div class='add'>+    return pos;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.rewind -&gt; dir</div><div class='add'>+ *</div><div class='add'>+ *  Repositions &lt;em&gt;dir&lt;/em&gt; to the first entry.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("testdir")</div><div class='add'>+ *     d.read     #=&gt; "."</div><div class='add'>+ *     d.rewind   #=&gt; #&lt;Dir:0x401b3fb0&gt;</div><div class='add'>+ *     d.read     #=&gt; "."</div><div class='add'>+ */</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='del'>-    DIR *dirp;</div><div class='add'>+    struct dir_data *dirp;</div><div class='ctx'> </div><div class='add'>+    if (rb_safe_level() &gt;= 4 &amp;&amp; !OBJ_UNTRUSTED(dir)) {</div><div class='add'>+	rb_raise(rb_eSecurityError, "Insecure: can't close");</div><div class='add'>+    }</div><div class='ctx'>     GetDIR(dir, dirp);</div><div class='del'>-    rewinddir(dirp);</div><div class='add'>+    rewinddir(dirp-&gt;dir);</div><div class='ctx'>     return dir;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     dir.close -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Closes the directory stream. Any further attempts to access</div><div class='add'>+ *  &lt;em&gt;dir&lt;/em&gt; will raise an &lt;code&gt;IOError&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *     d = Dir.new("testdir")</div><div class='add'>+ *     d.close   #=&gt; nil</div><div class='add'>+ */</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='del'>-    DIR *dirp;</div><div class='add'>+    struct dir_data *dirp;</div><div class='ctx'> </div><div class='del'>-    Data_Get_Struct(dir, DIR, dirp);</div><div class='del'>-    if (dirp == NULL) dir_closed();</div><div class='del'>-    closedir(dirp);</div><div class='del'>-    DATA_PTR(dir) = NULL;</div><div class='add'>+    GetDIR(dir, dirp);</div><div class='add'>+    closedir(dirp-&gt;dir);</div><div class='add'>+    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'>+dir_chdir(VALUE path)</div><div class='add'>+{</div><div class='add'>+    if (chdir(RSTRING_PTR(path)) &lt; 0)</div><div class='add'>+	rb_sys_fail_path(path);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int chdir_blocking = 0;</div><div class='add'>+static VALUE chdir_thread = Qnil;</div><div class='add'>+</div><div class='add'>+struct chdir_data {</div><div class='add'>+    VALUE old_path, new_path;</div><div class='add'>+    int done;</div><div class='add'>+};</div><div class='add'>+</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'>+chdir_yield(struct chdir_data *args)</div><div class='ctx'> {</div><div class='del'>-    VALUE path;</div><div class='del'>-    char *dist = "";</div><div class='add'>+    dir_chdir(args-&gt;new_path);</div><div class='add'>+    args-&gt;done = TRUE;</div><div class='add'>+    chdir_blocking++;</div><div class='add'>+    if (chdir_thread == Qnil)</div><div class='add'>+	chdir_thread = rb_thread_current();</div><div class='add'>+    return rb_yield(args-&gt;new_path);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+chdir_restore(struct chdir_data *args)</div><div class='add'>+{</div><div class='add'>+    if (args-&gt;done) {</div><div class='add'>+	chdir_blocking--;</div><div class='add'>+	if (chdir_blocking == 0)</div><div class='add'>+	    chdir_thread = Qnil;</div><div class='add'>+	dir_chdir(args-&gt;old_path);</div><div class='add'>+    }</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'>+ *     Dir.chdir( [ string] ) -&gt; 0</div><div class='add'>+ *     Dir.chdir( [ string] ) {| path | block }  -&gt; anObject</div><div class='add'>+ *</div><div class='add'>+ *  Changes the current working directory of the process to the given</div><div class='add'>+ *  string. When called without an argument, changes the directory to</div><div class='add'>+ *  the value of the environment variable &lt;code&gt;HOME&lt;/code&gt;, or</div><div class='add'>+ *  &lt;code&gt;LOGDIR&lt;/code&gt;. &lt;code&gt;SystemCallError&lt;/code&gt; (probably</div><div class='add'>+ *  &lt;code&gt;Errno::ENOENT&lt;/code&gt;) if the target directory does not exist.</div><div class='add'>+ *</div><div class='add'>+ *  If a block is given, it is passed the name of the new current</div><div class='add'>+ *  directory, and the block is executed with that as the current</div><div class='add'>+ *  directory. The original working directory is restored when the block</div><div class='add'>+ *  exits. The return value of &lt;code&gt;chdir&lt;/code&gt; is the value of the</div><div class='add'>+ *  block. &lt;code&gt;chdir&lt;/code&gt; blocks can be nested, but in a</div><div class='add'>+ *  multi-threaded program an error will be raised if a thread attempts</div><div class='add'>+ *  to open a &lt;code&gt;chdir&lt;/code&gt; block while another thread has one</div><div class='add'>+ *  open.</div><div class='add'>+ *</div><div class='add'>+ *     Dir.chdir("/var/spool/mail")</div><div class='add'>+ *     puts Dir.pwd</div><div class='add'>+ *     Dir.chdir("/tmp") do</div><div class='add'>+ *       puts Dir.pwd</div><div class='add'>+ *       Dir.chdir("/usr") do</div><div class='add'>+ *         puts Dir.pwd</div><div class='add'>+ *       end</div><div class='add'>+ *       puts Dir.pwd</div><div class='add'>+ *     end</div><div class='add'>+ *     puts Dir.pwd</div><div class='add'>+ *</div><div class='add'>+ *  &lt;em&gt;produces:&lt;/em&gt;</div><div class='add'>+ *</div><div class='add'>+ *     /var/spool/mail</div><div class='add'>+ *     /tmp</div><div class='add'>+ *     /usr</div><div class='add'>+ *     /tmp</div><div class='add'>+ *     /var/spool/mail</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_chdir(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE path = Qnil;</div><div class='ctx'> </div><div class='ctx'>     rb_secure(2);</div><div class='ctx'>     if (rb_scan_args(argc, argv, "01", &amp;path) == 1) {</div><div class='del'>-	Check_SafeStr(path);</div><div class='del'>-	dist = RSTRING(path)-&gt;ptr;</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='del'>-	dist = getenv("HOME");</div><div class='add'>+	const char *dist = getenv("HOME");</div><div class='ctx'> 	if (!dist) {</div><div class='ctx'> 	    dist = getenv("LOGDIR");</div><div class='add'>+	    if (!dist) rb_raise(rb_eArgError, "HOME/LOGDIR not set");</div><div class='ctx'> 	}</div><div class='add'>+	path = rb_str_new2(dist);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (chdir_blocking &gt; 0) {</div><div class='add'>+	if (!rb_block_given_p() || rb_thread_current() != chdir_thread)</div><div class='add'>+	    rb_warn("conflicting chdir during another chdir block");</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (chdir(dist) &lt; 0)</div><div class='del'>-	rb_sys_fail(dist);</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	struct chdir_data args;</div><div class='add'>+</div><div class='add'>+	args.old_path = rb_str_encode_ospath(rb_dir_getwd());</div><div class='add'>+	args.new_path = path;</div><div class='add'>+	args.done = FALSE;</div><div class='add'>+	return rb_ensure(chdir_yield, (VALUE)&amp;args, chdir_restore, (VALUE)&amp;args);</div><div class='add'>+    }</div><div class='add'>+    dir_chdir(path);</div><div class='ctx'> </div><div class='ctx'>     return INT2FIX(0);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-static VALUE</div><div class='del'>-dir_s_getwd(dir)</div><div class='del'>-    VALUE dir;</div><div class='add'>+VALUE</div><div class='add'>+rb_dir_getwd(void)</div><div class='ctx'> {</div><div class='del'>-    char path[MAXPATHLEN];</div><div class='add'>+    char *path;</div><div class='add'>+    VALUE cwd;</div><div class='ctx'> </div><div class='del'>-#ifdef HAVE_GETCWD</div><div class='del'>-    if (getcwd(path, sizeof(path)) == 0) rb_sys_fail(path);</div><div class='del'>-#else</div><div class='del'>-    extern char *getwd();</div><div class='del'>-    if (getwd(path) == 0) rb_sys_fail(path);</div><div class='del'>-#endif</div><div class='add'>+    rb_secure(4);</div><div class='add'>+    path = my_getcwd();</div><div class='add'>+    cwd = rb_tainted_str_new2(path);</div><div class='add'>+    rb_enc_associate(cwd, rb_filesystem_encoding());</div><div class='ctx'> </div><div class='del'>-    return str_taint(str_new2(path));</div><div class='add'>+    xfree(path);</div><div class='add'>+    return cwd;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.getwd -&gt; string</div><div class='add'>+ *     Dir.pwd -&gt; string</div><div class='add'>+ *</div><div class='add'>+ *  Returns the path to the current working directory of this process as</div><div class='add'>+ *  a string.</div><div class='add'>+ *</div><div class='add'>+ *     Dir.chdir("/tmp")   #=&gt; 0</div><div class='add'>+ *     Dir.getwd           #=&gt; "/tmp"</div><div class='add'>+ */</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_getwd(VALUE dir)</div><div class='add'>+{</div><div class='add'>+    return rb_dir_getwd();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+check_dirname(volatile VALUE *dir)</div><div class='ctx'> {</div><div class='del'>-#if !defined(DJGPP) &amp;&amp; !defined(NT) &amp;&amp; !defined(__human68k__) &amp;&amp; !defined(USE_CWGUSI) &amp;&amp; !defined(__BEOS__)</div><div class='add'>+    VALUE d = *dir;</div><div class='add'>+    char *path, *pend;</div><div class='add'>+    long len;</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+</div><div class='ctx'>     rb_secure(2);</div><div class='del'>-    Check_SafeStr(path);</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'>+    }</div><div class='add'>+    *dir = rb_str_encode_ospath(d);</div><div class='add'>+}</div><div class='ctx'> </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'>+#if defined(HAVE_CHROOT)</div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.chroot( string ) -&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  Changes this process's idea of the file system root. Only a</div><div class='add'>+ *  privileged process may make this call. Not available on all</div><div class='add'>+ *  platforms. On Unix systems, see &lt;code&gt;chroot(2)&lt;/code&gt; for more</div><div class='add'>+ *  information.</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_chroot(VALUE dir, VALUE path)</div><div class='add'>+{</div><div class='add'>+    check_dirname(&amp;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='add'>+#define dir_s_chroot rb_f_notimplement</div><div class='ctx'> #endif</div><div class='del'>-}</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.mkdir( string [, integer] ) -&gt; 0</div><div class='add'>+ *</div><div class='add'>+ *  Makes a new directory named by &lt;i&gt;string&lt;/i&gt;, with permissions</div><div class='add'>+ *  specified by the optional parameter &lt;i&gt;anInteger&lt;/i&gt;. The</div><div class='add'>+ *  permissions may be modified by the value of</div><div class='add'>+ *  &lt;code&gt;File::umask&lt;/code&gt;, and are ignored on NT. Raises a</div><div class='add'>+ *  &lt;code&gt;SystemCallError&lt;/code&gt; if the directory cannot be created. See</div><div class='add'>+ *  also the discussion of permissions in the class documentation for</div><div class='add'>+ *  &lt;code&gt;File&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *    Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=&gt; 0</div><div class='add'>+ *</div><div class='add'>+ */</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='ctx'>     VALUE path, vmode;</div><div class='ctx'>     int mode;</div><div class='ctx'> </div><div class='del'>-    rb_secure(2);</div><div class='ctx'>     if (rb_scan_args(argc, argv, "11", &amp;path, &amp;vmode) == 2) {</div><div class='ctx'> 	mode = NUM2INT(vmode);</div><div class='ctx'>     }</div><div class='hunk'>@@ -277,193 +976,1117 @@ dir_s_mkdir(argc, argv, obj)</div><div class='ctx'> 	mode = 0777;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    Check_SafeStr(path);</div><div class='del'>-#if !defined(NT) &amp;&amp; !defined(USE_CWGUSI)</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='del'>-#else</div><div class='del'>-    if (mkdir(RSTRING(path)-&gt;ptr) == -1)</div><div class='del'>-	rb_sys_fail(RSTRING(path)-&gt;ptr);</div><div class='del'>-#endif</div><div class='add'>+    check_dirname(&amp;path);</div><div class='add'>+    if (mkdir(RSTRING_PTR(path), mode) == -1)</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'>+/*</div><div class='add'>+ *  call-seq:</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='add'>+ *</div><div class='add'>+ *  Deletes the named directory. Raises a subclass of</div><div class='add'>+ *  &lt;code&gt;SystemCallError&lt;/code&gt; if the directory isn't empty.</div><div class='add'>+ */</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'>-    rb_secure(2);</div><div class='del'>-    Check_SafeStr(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'>+    check_dirname(&amp;dir);</div><div class='add'>+    if (rmdir(RSTRING_PTR(dir)) &lt; 0)</div><div class='add'>+	rb_sys_fail_path(dir);</div><div class='add'>+</div><div class='add'>+    return INT2FIX(0);</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    return TRUE;</div><div class='add'>+static VALUE</div><div class='add'>+sys_warning_1(VALUE mesg)</div><div class='add'>+{</div><div class='add'>+    rb_sys_warning("%s:%s", strerror(errno), (const char *)mesg);</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='del'>-#define isdelim(c) ((c)==' '||(c)=='\t'||(c)=='\n'||(c)=='\0')</div><div class='add'>+#define GLOB_VERBOSE	(1U &lt;&lt; (sizeof(int) * CHAR_BIT - 1))</div><div class='add'>+#define sys_warning(val) \</div><div class='add'>+    (void)((flags &amp; GLOB_VERBOSE) &amp;&amp; rb_protect(sys_warning_1, (VALUE)(val), 0))</div><div class='ctx'> </div><div class='del'>-char **glob_filename();</div><div class='del'>-extern char *glob_error_return;</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_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='del'>-static void</div><div class='del'>-push_globs(ary, s)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    char *s;</div><div class='add'>+/*</div><div class='add'>+ * ENOTDIR can be returned by stat(2) if a non-leaf element of the path</div><div class='add'>+ * is not a directory.</div><div class='add'>+ */</div><div class='add'>+#define to_be_ignored(e) ((e) == ENOENT || (e) == ENOTDIR)</div><div class='add'>+</div><div class='add'>+/* System call with warning */</div><div class='add'>+static int</div><div class='add'>+do_stat(const char *path, struct stat *pst, int flags)</div><div class='add'>+</div><div class='add'>+{</div><div class='add'>+    int ret = stat(path, pst);</div><div class='add'>+    if (ret &lt; 0 &amp;&amp; !to_be_ignored(errno))</div><div class='add'>+	sys_warning(path);</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+do_lstat(const char *path, struct stat *pst, int flags)</div><div class='add'>+{</div><div class='add'>+    int ret = lstat(path, pst);</div><div class='add'>+    if (ret &lt; 0 &amp;&amp; !to_be_ignored(errno))</div><div class='add'>+	sys_warning(path);</div><div class='add'>+</div><div class='add'>+    return ret;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static DIR *</div><div class='add'>+do_opendir(const char *path, int flags, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    DIR *dirp;</div><div class='add'>+#ifdef _WIN32</div><div class='add'>+    volatile VALUE tmp;</div><div class='add'>+    if (enc != rb_usascii_encoding() &amp;&amp;</div><div class='add'>+	enc != rb_ascii8bit_encoding() &amp;&amp;</div><div class='add'>+	enc != rb_utf8_encoding()) {</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(path);</div><div class='add'>+    if (dirp == NULL &amp;&amp; !to_be_ignored(errno))</div><div class='add'>+	sys_warning(path);</div><div class='add'>+</div><div class='add'>+    return dirp;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Return nonzero if S has any special globbing chars in it.  */</div><div class='add'>+static int</div><div class='add'>+has_magic(const char *p, const char *pend, int flags, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    char **fnames, **ff;</div><div class='add'>+    const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+    const int nocase = flags &amp; FNM_CASEFOLD;</div><div class='add'>+</div><div class='add'>+    register char c;</div><div class='add'>+</div><div class='add'>+    while (p &lt; pend &amp;&amp; (c = *p++) != 0) {</div><div class='add'>+	switch (c) {</div><div class='add'>+	  case '*':</div><div class='add'>+	  case '?':</div><div class='add'>+	  case '[':</div><div class='add'>+	    return 1;</div><div class='add'>+</div><div class='add'>+	  case '\\':</div><div class='add'>+	    if (escape &amp;&amp; !(c = *p++))</div><div class='add'>+		return 0;</div><div class='add'>+	    continue;</div><div class='add'>+</div><div class='add'>+	  default:</div><div class='add'>+	    if (!FNM_SYSCASE &amp;&amp; ISALPHA(c) &amp;&amp; nocase)</div><div class='add'>+		return 1;</div><div class='add'>+	}</div><div class='ctx'> </div><div class='del'>-    fnames = glob_filename(s);</div><div class='del'>-    if (fnames == (char**)-1) rb_sys_fail(s);</div><div class='del'>-    ff = fnames;</div><div class='del'>-    while (*ff) {</div><div class='del'>-	ary_push(ary, str_taint(str_new2(*ff)));</div><div class='del'>-	free(*ff);</div><div class='del'>-	ff++;</div><div class='add'>+	p = Next(p-1, pend, enc);</div><div class='ctx'>     }</div><div class='del'>-    if (fnames != &amp;glob_error_return) {</div><div class='del'>-        free(fnames);</div><div class='add'>+</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Find separator in globbing pattern. */</div><div class='add'>+static char *</div><div class='add'>+find_dirsep(const char *p, const char *pend, int flags, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+</div><div class='add'>+    register char c;</div><div class='add'>+    int open = 0;</div><div class='add'>+</div><div class='add'>+    while ((c = *p++) != 0) {</div><div class='add'>+	switch (c) {</div><div class='add'>+	  case '[':</div><div class='add'>+	    open = 1;</div><div class='add'>+	    continue;</div><div class='add'>+	  case ']':</div><div class='add'>+	    open = 0;</div><div class='add'>+	    continue;</div><div class='add'>+</div><div class='add'>+	  case '/':</div><div class='add'>+	    if (!open)</div><div class='add'>+		return (char *)p-1;</div><div class='add'>+	    continue;</div><div class='add'>+</div><div class='add'>+	  case '\\':</div><div class='add'>+	    if (escape &amp;&amp; !(c = *p++))</div><div class='add'>+		return (char *)p-1;</div><div class='add'>+	    continue;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	p = Next(p-1, pend, enc);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    return (char *)p-1;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/* Remove escaping backslashes */</div><div class='ctx'> static void</div><div class='del'>-push_braces(ary, s)</div><div class='del'>-    VALUE ary;</div><div class='del'>-    char *s;</div><div class='add'>+remove_backslashes(char *p, rb_encoding *enc)</div><div class='ctx'> {</div><div class='del'>-    char buf[MAXPATHLEN];</div><div class='del'>-    char *p, *t, *b;</div><div class='del'>-    char *lbrace, *rbrace;</div><div class='add'>+    register const char *pend = p + strlen(p);</div><div class='add'>+    char *t = p;</div><div class='add'>+    char *s = p;</div><div class='ctx'> </div><div class='del'>-    p = s;</div><div class='del'>-    lbrace = rbrace = 0;</div><div class='ctx'>     while (*p) {</div><div class='del'>-	if (*p == '{') {</div><div class='del'>-	    lbrace = p;</div><div class='add'>+	if (*p == '\\') {</div><div class='add'>+	    if (t != s)</div><div class='add'>+		memmove(t, s, p - s);</div><div class='add'>+	    t += p - s;</div><div class='add'>+	    s = ++p;</div><div class='add'>+	    if (!*p) break;</div><div class='add'>+	}</div><div class='add'>+	Inc(p, pend, enc);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    while (*p++);</div><div class='add'>+</div><div class='add'>+    if (t != s)</div><div class='add'>+	memmove(t, s, p - s); /* move '\0' too */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/* Globing pattern */</div><div class='add'>+enum glob_pattern_type { PLAIN, MAGICAL, RECURSIVE, MATCH_ALL, MATCH_DIR };</div><div class='add'>+</div><div class='add'>+struct glob_pattern {</div><div class='add'>+    char *str;</div><div class='add'>+    enum glob_pattern_type type;</div><div class='add'>+    struct glob_pattern *next;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static void glob_free_pattern(struct glob_pattern *list);</div><div class='add'>+</div><div class='add'>+static struct glob_pattern *</div><div class='add'>+glob_make_pattern(const char *p, const char *e, int flags, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    struct glob_pattern *list, *tmp, **tail = &amp;list;</div><div class='add'>+    int dirsep = 0; /* pattern is terminated with '/' */</div><div class='add'>+</div><div class='add'>+    while (p &lt; e &amp;&amp; *p) {</div><div class='add'>+	tmp = GLOB_ALLOC(struct glob_pattern);</div><div class='add'>+	if (!tmp) goto error;</div><div class='add'>+	if (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/') {</div><div class='add'>+	    /* fold continuous RECURSIVEs (needed in glob_helper) */</div><div class='add'>+	    do { p += 3; while (*p == '/') p++; } while (p[0] == '*' &amp;&amp; p[1] == '*' &amp;&amp; p[2] == '/');</div><div class='add'>+	    tmp-&gt;type = RECURSIVE;</div><div class='add'>+	    tmp-&gt;str = 0;</div><div class='add'>+	    dirsep = 1;</div><div class='add'>+	}</div><div class='add'>+	else {</div><div class='add'>+	    const char *m = find_dirsep(p, e, flags, enc);</div><div class='add'>+	    int magic = has_magic(p, m, flags, enc);</div><div class='add'>+	    char *buf;</div><div class='add'>+</div><div class='add'>+	    if (!magic &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) &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='add'>+	    if (!buf) {</div><div class='add'>+		GLOB_FREE(tmp);</div><div class='add'>+		goto error;</div><div class='add'>+	    }</div><div class='add'>+	    memcpy(buf, p, m-p);</div><div class='add'>+	    buf[m-p] = '\0';</div><div class='add'>+	    tmp-&gt;type = magic ? MAGICAL : PLAIN;</div><div class='add'>+	    tmp-&gt;str = buf;</div><div class='add'>+	    if (*m) {</div><div class='add'>+		dirsep = 1;</div><div class='add'>+		p = m + 1;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		dirsep = 0;</div><div class='add'>+		p = m;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	*tail = tmp;</div><div class='add'>+	tail = &amp;tmp-&gt;next;</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    tmp = GLOB_ALLOC(struct glob_pattern);</div><div class='add'>+    if (!tmp) {</div><div class='add'>+      error:</div><div class='add'>+	*tail = 0;</div><div class='add'>+	glob_free_pattern(list);</div><div class='add'>+	return 0;</div><div class='add'>+    }</div><div class='add'>+    tmp-&gt;type = dirsep ? MATCH_DIR : MATCH_ALL;</div><div class='add'>+    tmp-&gt;str = 0;</div><div class='add'>+    *tail = tmp;</div><div class='add'>+    tmp-&gt;next = 0;</div><div class='add'>+</div><div class='add'>+    return list;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+glob_free_pattern(struct glob_pattern *list)</div><div class='add'>+{</div><div class='add'>+    while (list) {</div><div class='add'>+	struct glob_pattern *tmp = list;</div><div class='add'>+	list = list-&gt;next;</div><div class='add'>+	if (tmp-&gt;str)</div><div class='add'>+	    GLOB_FREE(tmp-&gt;str);</div><div class='add'>+	GLOB_FREE(tmp);</div><div class='add'>+    }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static char *</div><div class='add'>+join_path(const char *path, int dirsep, const char *name)</div><div class='add'>+{</div><div class='add'>+    long len = strlen(path);</div><div class='add'>+    long len2 = strlen(name)+(dirsep?1:0)+1;</div><div class='add'>+    char *buf = GLOB_ALLOC_N(char, len+len2);</div><div class='add'>+</div><div class='add'>+    if (!buf) return 0;</div><div class='add'>+    memcpy(buf, path, len);</div><div class='add'>+    if (dirsep) {</div><div class='add'>+	buf[len++] = '/';</div><div class='add'>+    }</div><div class='add'>+    buf[len] = '\0';</div><div class='add'>+    strlcat(buf+len, name, len2);</div><div class='add'>+    return buf;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+enum answer { YES, NO, UNKNOWN };</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'>+#ifndef S_ISLNK</div><div class='add'>+#  ifndef S_IFLNK</div><div class='add'>+#    define S_ISLNK(m) (0)</div><div class='add'>+#  else</div><div class='add'>+#    define S_ISLNK(m) (((m) &amp; S_IFMT) == S_IFLNK)</div><div class='add'>+#  endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+struct glob_args {</div><div class='add'>+    void (*func)(const char *, VALUE, void *);</div><div class='add'>+    const char *path;</div><div class='add'>+    VALUE value;</div><div class='add'>+    rb_encoding *enc;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static VALUE</div><div class='add'>+glob_func_caller(VALUE val)</div><div class='add'>+{</div><div class='add'>+    struct glob_args *args = (struct glob_args *)val;</div><div class='add'>+</div><div class='add'>+    (*args-&gt;func)(args-&gt;path, args-&gt;value, args-&gt;enc);</div><div class='add'>+    return Qnil;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define glob_call_func(func, path, arg, enc) (*(func))((path), (arg), (enc))</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+glob_helper(</div><div class='add'>+    const char *path,</div><div class='add'>+    int dirsep, /* '/' should be placed before appending child entry's name to 'path'. */</div><div class='add'>+    enum answer exist, /* Does 'path' indicate an existing entry? */</div><div class='add'>+    enum answer isdir, /* Does 'path' indicate a directory or a symlink to a directory? */</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'>+    ruby_glob_func *func,</div><div class='add'>+    VALUE arg,</div><div class='add'>+    rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    struct stat st;</div><div class='add'>+    int status = 0;</div><div class='add'>+    struct glob_pattern **cur, **new_beg, **new_end;</div><div class='add'>+    int plain = 0, magical = 0, recursive = 0, match_all = 0, match_dir = 0;</div><div class='add'>+    int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+</div><div class='add'>+    for (cur = beg; cur &lt; end; ++cur) {</div><div class='add'>+	struct glob_pattern *p = *cur;</div><div class='add'>+	if (p-&gt;type == RECURSIVE) {</div><div class='add'>+	    recursive = 1;</div><div class='add'>+	    p = p-&gt;next;</div><div class='add'>+	}</div><div class='add'>+	switch (p-&gt;type) {</div><div class='add'>+	  case PLAIN:</div><div class='add'>+	    plain = 1;</div><div class='add'>+	    break;</div><div class='add'>+	  case MAGICAL:</div><div class='add'>+	    magical = 1;</div><div class='ctx'> 	    break;</div><div class='add'>+	  case MATCH_ALL:</div><div class='add'>+	    match_all = 1;</div><div class='add'>+	    break;</div><div class='add'>+	  case MATCH_DIR:</div><div class='add'>+	    match_dir = 1;</div><div class='add'>+	    break;</div><div class='add'>+	  case RECURSIVE:</div><div class='add'>+	    rb_bug("continuous RECURSIVEs");</div><div class='add'>+	}</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (*path) {</div><div class='add'>+	if (match_all &amp;&amp; exist == UNKNOWN) {</div><div class='add'>+	    if (do_lstat(path, &amp;st, flags) == 0) {</div><div class='add'>+		exist = YES;</div><div class='add'>+		isdir = S_ISDIR(st.st_mode) ? YES : S_ISLNK(st.st_mode) ? UNKNOWN : NO;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		exist = NO;</div><div class='add'>+		isdir = NO;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (match_dir &amp;&amp; isdir == UNKNOWN) {</div><div class='add'>+	    if (do_stat(path, &amp;st, flags) == 0) {</div><div class='add'>+		exist = YES;</div><div class='add'>+		isdir = S_ISDIR(st.st_mode) ? YES : NO;</div><div class='add'>+	    }</div><div class='add'>+	    else {</div><div class='add'>+		exist = NO;</div><div class='add'>+		isdir = NO;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+	if (match_all &amp;&amp; exist == YES) {</div><div class='add'>+	    status = glob_call_func(func, path, arg, enc);</div><div class='add'>+	    if (status) return status;</div><div class='add'>+	}</div><div class='add'>+	if (match_dir &amp;&amp; isdir == YES) {</div><div class='add'>+	    char *tmp = join_path(path, dirsep, "");</div><div class='add'>+	    if (!tmp) return -1;</div><div class='add'>+	    status = glob_call_func(func, tmp, arg, enc);</div><div class='add'>+	    GLOB_FREE(tmp);</div><div class='add'>+	    if (status) return status;</div><div class='ctx'> 	}</div><div class='del'>-	p++;</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    if (exist == NO || isdir == NO) return 0;</div><div class='add'>+</div><div class='add'>+    if (magical || recursive) {</div><div class='add'>+	struct dirent *dp;</div><div class='add'>+	DIR *dirp;</div><div class='add'>+	IF_HAVE_READDIR_R(DEFINE_STRUCT_DIRENT entry);</div><div class='add'>+	dirp = do_opendir(*path ? path : ".", flags, enc);</div><div class='add'>+	if (dirp == NULL) return 0;</div><div class='add'>+</div><div class='add'>+	while (READDIR(dirp, enc, &amp;STRUCT_DIRENT(entry), dp)) {</div><div class='add'>+	    char *buf = join_path(path, dirsep, dp-&gt;d_name);</div><div class='add'>+	    enum answer new_isdir = UNKNOWN;</div><div class='add'>+</div><div class='add'>+	    if (!buf) {</div><div class='add'>+		status = -1;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+	    if (recursive &amp;&amp; strcmp(dp-&gt;d_name, ".") != 0 &amp;&amp; strcmp(dp-&gt;d_name, "..") != 0</div><div class='add'>+		&amp;&amp; fnmatch("*", rb_usascii_encoding(), dp-&gt;d_name, flags) == 0) {</div><div class='add'>+#ifndef _WIN32</div><div class='add'>+		if (do_lstat(buf, &amp;st, flags) == 0)</div><div class='add'>+		    new_isdir = S_ISDIR(st.st_mode) ? YES : S_ISLNK(st.st_mode) ? UNKNOWN : NO;</div><div class='add'>+		else</div><div class='add'>+		    new_isdir = NO;</div><div class='add'>+#else</div><div class='add'>+		new_isdir = dp-&gt;d_isdir ? (!dp-&gt;d_isrep ? YES : UNKNOWN) : NO;</div><div class='add'>+#endif</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, (end - beg) * 2);</div><div class='add'>+	    if (!new_beg) {</div><div class='add'>+		GLOB_FREE(buf);</div><div class='add'>+		status = -1;</div><div class='add'>+		break;</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    for (cur = beg; cur &lt; end; ++cur) {</div><div class='add'>+		struct glob_pattern *p = *cur;</div><div class='add'>+		if (p-&gt;type == RECURSIVE) {</div><div class='add'>+		    if (new_isdir == YES) /* not symlink but real directory */</div><div class='add'>+			*new_end++ = p; /* append recursive pattern */</div><div class='add'>+		    p = p-&gt;next; /* 0 times recursion */</div><div class='add'>+		}</div><div class='add'>+		if (p-&gt;type == PLAIN || p-&gt;type == MAGICAL) {</div><div class='add'>+		    if (fnmatch(p-&gt;str, enc, dp-&gt;d_name, flags) == 0)</div><div class='add'>+			*new_end++ = p-&gt;next;</div><div class='add'>+		}</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    status = glob_helper(buf, 1, YES, new_isdir, new_beg, new_end,</div><div class='add'>+				 flags, func, arg, enc);</div><div class='add'>+	    GLOB_FREE(buf);</div><div class='add'>+	    GLOB_FREE(new_beg);</div><div class='add'>+	    if (status) break;</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	closedir(dirp);</div><div class='add'>+    }</div><div class='add'>+    else if (plain) {</div><div class='add'>+	struct glob_pattern **copy_beg, **copy_end, **cur2;</div><div class='add'>+</div><div class='add'>+	copy_beg = copy_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='add'>+	if (!copy_beg) return -1;</div><div class='add'>+	for (cur = beg; cur &lt; end; ++cur)</div><div class='add'>+	    *copy_end++ = (*cur)-&gt;type == PLAIN ? *cur : 0;</div><div class='add'>+</div><div class='add'>+	for (cur = copy_beg; cur &lt; copy_end; ++cur) {</div><div class='add'>+	    if (*cur) {</div><div class='add'>+		char *buf;</div><div class='add'>+		char *name;</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='add'>+		if (!name) {</div><div class='add'>+		    status = -1;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		memcpy(name, (*cur)-&gt;str, len);</div><div class='add'>+		if (escape) remove_backslashes(name, enc);</div><div class='add'>+</div><div class='add'>+		new_beg = new_end = GLOB_ALLOC_N(struct glob_pattern *, end - beg);</div><div class='add'>+		if (!new_beg) {</div><div class='add'>+		    GLOB_FREE(name);</div><div class='add'>+		    status = -1;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		*new_end++ = (*cur)-&gt;next;</div><div class='add'>+		for (cur2 = cur + 1; cur2 &lt; copy_end; ++cur2) {</div><div class='add'>+		    if (*cur2 &amp;&amp; fnmatch((*cur2)-&gt;str, enc, name, flags) == 0) {</div><div class='add'>+			*new_end++ = (*cur2)-&gt;next;</div><div class='add'>+			*cur2 = 0;</div><div class='add'>+		    }</div><div class='add'>+		}</div><div class='add'>+</div><div class='add'>+		buf = join_path(path, dirsep, name);</div><div class='add'>+		GLOB_FREE(name);</div><div class='add'>+		if (!buf) {</div><div class='add'>+		    GLOB_FREE(new_beg);</div><div class='add'>+		    status = -1;</div><div class='add'>+		    break;</div><div class='add'>+		}</div><div class='add'>+		status = glob_helper(buf, 1, UNKNOWN, UNKNOWN, new_beg,</div><div class='add'>+				     new_end, flags, func, arg, enc);</div><div class='add'>+		GLOB_FREE(buf);</div><div class='add'>+		GLOB_FREE(new_beg);</div><div class='add'>+		if (status) break;</div><div class='add'>+	    }</div><div class='add'>+	}</div><div class='add'>+</div><div class='add'>+	GLOB_FREE(copy_beg);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return status;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ruby_glob0(const char *path, int flags, ruby_glob_func *func, VALUE arg, rb_encoding *enc)</div><div class='add'>+{</div><div class='add'>+    struct glob_pattern *list;</div><div class='add'>+    const char *root, *start;</div><div class='add'>+    char *buf;</div><div class='add'>+    size_t n;</div><div class='add'>+    int status;</div><div class='add'>+</div><div class='add'>+    start = root = path;</div><div class='add'>+    flags |= FNM_SYSCASE;</div><div class='add'>+#if defined DOSISH</div><div class='add'>+    root = rb_enc_path_skip_prefix(root, root + strlen(root), enc);</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+    if (root &amp;&amp; *root == '/') root++;</div><div class='add'>+</div><div class='add'>+    n = root - start;</div><div class='add'>+    buf = GLOB_ALLOC_N(char, n + 1);</div><div class='add'>+    if (!buf) return -1;</div><div class='add'>+    MEMCPY(buf, start, char, n);</div><div class='add'>+    buf[n] = '\0';</div><div class='add'>+</div><div class='add'>+    list = glob_make_pattern(root, root + strlen(root), flags, enc);</div><div class='add'>+    if (!list) {</div><div class='add'>+	GLOB_FREE(buf);</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='add'>+    status = glob_helper(buf, 0, UNKNOWN, UNKNOWN, &amp;list, &amp;list + 1, flags, func, arg, enc);</div><div class='add'>+    glob_free_pattern(list);</div><div class='add'>+    GLOB_FREE(buf);</div><div class='add'>+</div><div class='add'>+    return status;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</div><div class='add'>+ruby_glob(const char *path, int flags, ruby_glob_func *func, VALUE arg)</div><div class='add'>+{</div><div class='add'>+    return ruby_glob0(path, flags &amp; ~GLOB_VERBOSE, func, arg,</div><div class='add'>+		      rb_ascii8bit_encoding());</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_glob_caller(const char *path, VALUE a, void *enc)</div><div class='add'>+{</div><div class='add'>+    int status;</div><div class='add'>+    struct glob_args *args = (struct glob_args *)a;</div><div class='add'>+</div><div class='add'>+    args-&gt;path = path;</div><div class='add'>+    rb_protect(glob_func_caller, a, &amp;status);</div><div class='add'>+    return status;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+rb_glob2(const char *path, int flags,</div><div class='add'>+	 void (*func)(const char *, VALUE, void *), VALUE arg,</div><div class='add'>+	 rb_encoding* enc)</div><div class='add'>+{</div><div class='add'>+    struct glob_args args;</div><div class='add'>+</div><div class='add'>+    args.func = func;</div><div class='add'>+    args.value = arg;</div><div class='add'>+    args.enc = enc;</div><div class='add'>+</div><div class='add'>+    if (flags &amp; FNM_SYSCASE) {</div><div class='add'>+	rb_warning("Dir.glob() ignores File::FNM_CASEFOLD");</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    return ruby_glob0(path, flags | GLOB_VERBOSE, rb_glob_caller, (VALUE)&amp;args,</div><div class='add'>+		      enc);</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='add'>+{</div><div class='add'>+    int status = rb_glob2(path, 0, func, arg, rb_ascii8bit_encoding());</div><div class='add'>+    if (status) GLOB_JUMP_TAG(status);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static void</div><div class='add'>+push_pattern(const char *path, VALUE ary, void *enc)</div><div class='add'>+{</div><div class='add'>+    rb_ary_push(ary, rb_external_str_new_with_enc(path, strlen(path), enc));</div><div class='add'>+}</div><div class='add'>+</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)</div><div class='add'>+{</div><div class='add'>+    const int escape = !(flags &amp; FNM_NOESCAPE);</div><div class='add'>+    const char *p = str;</div><div class='add'>+    const char *pend = p + strlen(p);</div><div class='add'>+    const char *s = p;</div><div class='add'>+    const char *lbrace = 0, *rbrace = 0;</div><div class='add'>+    int nest = 0, status = 0;</div><div class='add'>+</div><div class='ctx'>     while (*p) {</div><div class='del'>-	if (*p == '}' &amp;&amp; lbrace) {</div><div class='add'>+	if (*p == '{' &amp;&amp; nest++ == 0) {</div><div class='add'>+	    lbrace = p;</div><div class='add'>+	}</div><div class='add'>+	if (*p == '}' &amp;&amp; --nest &lt;= 0) {</div><div class='ctx'> 	    rbrace = p;</div><div class='ctx'> 	    break;</div><div class='ctx'> 	}</div><div class='del'>-	p++;</div><div class='add'>+	if (*p == '\\' &amp;&amp; escape) {</div><div class='add'>+	    if (!*++p) break;</div><div class='add'>+	}</div><div class='add'>+	Inc(p, pend, enc);</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-    if (lbrace) {</div><div class='add'>+    if (lbrace &amp;&amp; rbrace) {</div><div class='add'>+	size_t len = strlen(s) + 1;</div><div class='add'>+	char *buf = GLOB_ALLOC_N(char, len);</div><div class='add'>+	long shift;</div><div class='add'>+</div><div class='add'>+	if (!buf) return -1;</div><div class='ctx'> 	memcpy(buf, s, lbrace-s);</div><div class='del'>-	b = buf + (lbrace-s);</div><div class='add'>+	shift = (lbrace-s);</div><div class='ctx'> 	p = lbrace;</div><div class='del'>-	while (*p != '}') {</div><div class='del'>-	    t = p + 1;</div><div class='del'>-	    for (p = t; *p!='}' &amp;&amp; *p!=','; p++) {</div><div class='del'>-		/* skip inner braces */</div><div class='del'>-		if (*p == '{') while (*p!='}') p++;</div><div class='add'>+	while (p &lt; rbrace) {</div><div class='add'>+	    const char *t = ++p;</div><div class='add'>+	    nest = 0;</div><div class='add'>+	    while (p &lt; rbrace &amp;&amp; !(*p == ',' &amp;&amp; nest == 0)) {</div><div class='add'>+		if (*p == '{') nest++;</div><div class='add'>+		if (*p == '}') nest--;</div><div class='add'>+		if (*p == '\\' &amp;&amp; escape) {</div><div class='add'>+		    if (++p == rbrace) break;</div><div class='add'>+		}</div><div class='add'>+		Inc(p, pend, enc);</div><div class='ctx'> 	    }</div><div class='del'>-	    memcpy(b, t, p-t);</div><div class='del'>-	    strcpy(b+(p-t), rbrace+1);</div><div class='del'>-	    push_braces(ary, buf);</div><div class='add'>+	    memcpy(buf+shift, t, p-t);</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);</div><div class='add'>+	    if (status) break;</div><div class='ctx'> 	}</div><div class='add'>+	GLOB_FREE(buf);</div><div class='ctx'>     }</div><div class='del'>-    else {</div><div class='del'>-	push_globs(ary, s);</div><div class='add'>+    else if (!lbrace &amp;&amp; !rbrace) {</div><div class='add'>+	status = (*func)(s, arg, enc);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='add'>+    return status;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+struct brace_args {</div><div class='add'>+    ruby_glob_func *func;</div><div class='add'>+    VALUE value;</div><div class='add'>+    int flags;</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+glob_brace(const char *path, VALUE val, void *enc)</div><div class='add'>+{</div><div class='add'>+    struct brace_args *arg = (struct brace_args *)val;</div><div class='add'>+</div><div class='add'>+    return ruby_glob0(path, arg-&gt;flags, arg-&gt;func, arg-&gt;value, enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+ruby_brace_glob0(const char *str, int flags, ruby_glob_func *func, VALUE arg,</div><div class='add'>+		 rb_encoding* enc)</div><div class='add'>+{</div><div class='add'>+    struct brace_args args;</div><div class='add'>+</div><div class='add'>+    args.func = func;</div><div class='add'>+    args.value = arg;</div><div class='add'>+    args.flags = flags;</div><div class='add'>+    return ruby_brace_expand(str, flags, glob_brace, (VALUE)&amp;args, enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+int</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_glob0(str, flags &amp; ~GLOB_VERBOSE, func, arg,</div><div class='add'>+			    rb_ascii8bit_encoding());</div><div class='add'>+}</div><div class='add'>+</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='add'>+{</div><div class='add'>+    return ruby_brace_glob0(str, flags &amp; ~GLOB_VERBOSE, func, arg, enc);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+push_glob(VALUE ary, VALUE str, int flags)</div><div class='add'>+{</div><div class='add'>+    struct glob_args args;</div><div class='add'>+    rb_encoding *enc = rb_enc_get(str);</div><div class='add'>+</div><div class='add'>+    if (enc == rb_usascii_encoding()) enc = rb_filesystem_encoding();</div><div class='add'>+    args.func = push_pattern;</div><div class='add'>+    args.value = ary;</div><div class='add'>+    args.enc = enc;</div><div class='add'>+</div><div class='add'>+    RB_GC_GUARD(str);</div><div class='add'>+    return ruby_brace_glob0(RSTRING_PTR(str), flags | GLOB_VERBOSE,</div><div class='add'>+			    rb_glob_caller, (VALUE)&amp;args, enc);</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> static VALUE</div><div class='del'>-dir_s_glob(dir, str)</div><div class='del'>-    VALUE dir, str;</div><div class='add'>+rb_push_glob(VALUE str, int flags) /* '\0' is delimiter */</div><div class='ctx'> {</div><div class='del'>-    char *p, *pend;</div><div class='del'>-    char buf[MAXPATHLEN];</div><div class='del'>-    char *t, *t0;</div><div class='del'>-    int nest;</div><div class='add'>+    long offset = 0;</div><div class='ctx'>     VALUE ary;</div><div class='ctx'> </div><div class='del'>-    Check_SafeStr(str);</div><div class='del'>-    if (RSTRING(str)-&gt;len &gt; MAXPATHLEN) {</div><div class='del'>-	ArgError("pathname too long (%d bytes)", RSTRING(str)-&gt;len);</div><div class='add'>+    GlobPathValue(str, TRUE);</div><div class='add'>+    ary = rb_ary_new();</div><div class='add'>+</div><div class='add'>+    while (offset &lt; RSTRING_LEN(str)) {</div><div class='add'>+	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'>+			   flags);</div><div class='add'>+	if (status) GLOB_JUMP_TAG(status);</div><div class='add'>+	if (offset &gt;= RSTRING_LEN(str)) break;</div><div class='add'>+	p += strlen(p) + 1;</div><div class='add'>+	pend = RSTRING_PTR(str) + RSTRING_LEN(str);</div><div class='add'>+	while (p &lt; pend &amp;&amp; !*p)</div><div class='add'>+	    p++;</div><div class='add'>+	offset = p - RSTRING_PTR(str);</div><div class='ctx'>     }</div><div class='del'>-    ary = ary_new();</div><div class='ctx'> </div><div class='del'>-    p = RSTRING(str)-&gt;ptr;</div><div class='del'>-    pend = p + RSTRING(str)-&gt;len;</div><div class='add'>+    return ary;</div><div class='add'>+}</div><div class='ctx'> </div><div class='del'>-    while (p &lt; pend) {</div><div class='del'>-	t = buf;</div><div class='del'>-	while (p &lt; pend &amp;&amp; isdelim(*p)) p++;</div><div class='del'>-	while (p &lt; pend &amp;&amp; !isdelim(*p)) {</div><div class='del'>-	    *t++ = *p++;</div><div class='del'>-	}</div><div class='del'>-	*t = '\0';</div><div class='del'>-	t0 = buf;</div><div class='del'>-	nest = 0;</div><div class='del'>-	while (t0 &lt; t) {</div><div class='del'>-	    if (*t0 == '{') nest+=2;</div><div class='del'>-	    if (*t0 == '}') nest+=3;</div><div class='del'>-	    t0++;</div><div class='del'>-	}</div><div class='del'>-	if (nest == 0) {</div><div class='del'>-	    push_globs(ary, buf);</div><div class='del'>-	}</div><div class='del'>-	else if (nest % 5 == 0) {</div><div class='del'>-	    push_braces(ary, buf);</div><div class='del'>-	}</div><div class='del'>-	/* else unmatched braces */</div><div class='add'>+static VALUE</div><div class='add'>+dir_globs(long argc, VALUE *argv, int flags)</div><div class='add'>+{</div><div class='add'>+    VALUE ary = rb_ary_new();</div><div class='add'>+    long i;</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; argc; ++i) {</div><div class='add'>+	int status;</div><div class='add'>+	VALUE str = argv[i];</div><div class='add'>+	GlobPathValue(str, TRUE);</div><div class='add'>+	status = push_glob(ary, str, flags);</div><div class='add'>+	if (status) GLOB_JUMP_TAG(status);</div><div class='add'>+    }</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'>+ *     Dir[ array ]                 -&gt; array</div><div class='add'>+ *     Dir[ string [, string ...] ] -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Equivalent to calling</div><div class='add'>+ *  &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='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='add'>+ *</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_aref(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    if (argc == 1) {</div><div class='add'>+	return rb_push_glob(argv[0], 0);</div><div class='add'>+    }</div><div class='add'>+    return dir_globs(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'>+ *     Dir.glob( pattern, [flags] ) -&gt; array</div><div class='add'>+ *     Dir.glob( pattern, [flags] ) {| filename | block }  -&gt; nil</div><div class='add'>+ *</div><div class='add'>+ *  Returns the filenames found by expanding &lt;i&gt;pattern&lt;/i&gt; which is</div><div class='add'>+ *  an +Array+ of the patterns or the pattern +String+, either as an</div><div class='add'>+ *  &lt;i&gt;array&lt;/i&gt; or as parameters to the block. Note that this pattern</div><div class='add'>+ *  is not a regexp (it's closer to a shell glob). See</div><div class='add'>+ *  &lt;code&gt;File::fnmatch&lt;/code&gt; for the meaning of the &lt;i&gt;flags&lt;/i&gt;</div><div class='add'>+ *  parameter. Note that case sensitivity depends on your system (so</div><div class='add'>+ *  &lt;code&gt;File::FNM_CASEFOLD&lt;/code&gt; is ignored), as does the order</div><div class='add'>+ *  in which the results are returned.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;*&lt;/code&gt;::        Matches any file. Can be restricted by</div><div class='add'>+ *                          other values in the glob. &lt;code&gt;*&lt;/code&gt;</div><div class='add'>+ *                          will match all files; &lt;code&gt;c*&lt;/code&gt; will</div><div class='add'>+ *                          match all files beginning with</div><div class='add'>+ *                          &lt;code&gt;c&lt;/code&gt;; &lt;code&gt;*c&lt;/code&gt; will match</div><div class='add'>+ *                          all files ending with &lt;code&gt;c&lt;/code&gt;; and</div><div class='add'>+ *                          &lt;code&gt;\*c\*&lt;/code&gt; will match all files that</div><div class='add'>+ *                          have &lt;code&gt;c&lt;/code&gt; in them (including at</div><div class='add'>+ *                          the beginning or end). Equivalent to</div><div class='add'>+ *                          &lt;code&gt;/ .* /x&lt;/code&gt; in regexp. Note, this</div><div class='add'>+ *                          will not match Unix-like hidden files (dotfiles).</div><div class='add'>+ *                          In order to include those in the match results,</div><div class='add'>+ *                          you must use something like "{*,.*}".</div><div class='add'>+ *  &lt;code&gt;**&lt;/code&gt;::       Matches directories recursively.</div><div class='add'>+ *  &lt;code&gt;?&lt;/code&gt;::        Matches any one character. Equivalent to</div><div class='add'>+ *                          &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='add'>+ *  &lt;code&gt;[set]&lt;/code&gt;::    Matches any one character in +set+.</div><div class='add'>+ *                          Behaves exactly like character sets in</div><div class='add'>+ *                          Regexp, including set negation</div><div class='add'>+ *                          (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='add'>+ *  &lt;code&gt;{p,q}&lt;/code&gt;::    Matches either literal &lt;code&gt;p&lt;/code&gt; or</div><div class='add'>+ *                          literal &lt;code&gt;q&lt;/code&gt;. Matching literals</div><div class='add'>+ *                          may be more than one character in length.</div><div class='add'>+ *                          More than two literals may be specified.</div><div class='add'>+ *                          Equivalent to pattern alternation in</div><div class='add'>+ *                          regexp.</div><div class='add'>+ *  &lt;code&gt;\&lt;/code&gt;::        Escapes the next metacharacter.</div><div class='add'>+ *                          Note that this means you cannot use backslash in windows</div><div class='add'>+ *                          as part of a glob, i.e. Dir["c:\\foo*"] will not work</div><div class='add'>+ *                          use Dir["c:/foo*"] instead</div><div class='add'>+ *</div><div class='add'>+ *     Dir["config.?"]                     #=&gt; ["config.h"]</div><div class='add'>+ *     Dir.glob("config.?")                #=&gt; ["config.h"]</div><div class='add'>+ *     Dir.glob("*.[a-z][a-z]")            #=&gt; ["main.rb"]</div><div class='add'>+ *     Dir.glob("*.[^r]*")                 #=&gt; ["config.h"]</div><div class='add'>+ *     Dir.glob("*.{rb,h}")                #=&gt; ["main.rb", "config.h"]</div><div class='add'>+ *     Dir.glob("*")                       #=&gt; ["config.h", "main.rb"]</div><div class='add'>+ *     Dir.glob("*", File::FNM_DOTMATCH)   #=&gt; [".", "..", "config.h", "main.rb"]</div><div class='add'>+ *</div><div class='add'>+ *     rbfiles = File.join("**", "*.rb")</div><div class='add'>+ *     Dir.glob(rbfiles)                   #=&gt; ["main.rb",</div><div class='add'>+ *                                         #    "lib/song.rb",</div><div class='add'>+ *                                         #    "lib/song/karaoke.rb"]</div><div class='add'>+ *     libdirs = File.join("**", "lib")</div><div class='add'>+ *     Dir.glob(libdirs)                   #=&gt; ["lib"]</div><div class='add'>+ *</div><div class='add'>+ *     librbfiles = File.join("**", "lib", "**", "*.rb")</div><div class='add'>+ *     Dir.glob(librbfiles)                #=&gt; ["lib/song.rb",</div><div class='add'>+ *                                         #    "lib/song/karaoke.rb"]</div><div class='add'>+ *</div><div class='add'>+ *     librbfiles = File.join("**", "lib", "*.rb")</div><div class='add'>+ *     Dir.glob(librbfiles)                #=&gt; ["lib/song.rb"]</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+dir_s_glob(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE str, rflags, ary;</div><div class='add'>+    int flags;</div><div class='add'>+</div><div class='add'>+    if (rb_scan_args(argc, argv, "11", &amp;str, &amp;rflags) == 2)</div><div class='add'>+	flags = NUM2INT(rflags);</div><div class='add'>+    else</div><div class='add'>+	flags = 0;</div><div class='add'>+</div><div class='add'>+    ary = rb_check_array_type(str);</div><div class='add'>+    if (NIL_P(ary)) {</div><div class='add'>+	ary = rb_push_glob(str, flags);</div><div class='add'>+    }</div><div class='add'>+    else {</div><div class='add'>+	volatile VALUE v = ary;</div><div class='add'>+	ary = dir_globs(RARRAY_LEN(v), RARRAY_PTR(v), flags);</div><div class='add'>+    }</div><div class='add'>+</div><div class='add'>+    if (rb_block_given_p()) {</div><div class='add'>+	rb_ary_each(ary);</div><div class='add'>+	return Qnil;</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_foreach(io, dirname)</div><div class='del'>-    VALUE io, dirname;</div><div class='add'>+dir_open_dir(int argc, VALUE *argv)</div><div class='add'>+{</div><div class='add'>+    VALUE dir = rb_funcall2(rb_cDir, rb_intern("open"), argc, argv);</div><div class='add'>+    struct dir_data *dirp;</div><div class='add'>+</div><div class='add'>+    TypedData_Get_Struct(dir, struct dir_data, &amp;dir_data_type, dirp);</div><div class='add'>+    return dir;</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'>+ *     Dir.foreach( dirname ) {| filename | block }  -&gt; nil</div><div class='add'>+ *     Dir.foreach( dirname )                        -&gt; an_enumerator</div><div class='add'>+ *</div><div class='add'>+ *  Calls the block once for each entry in the named directory, passing</div><div class='add'>+ *  the filename of each entry as a parameter 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.foreach("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 .</div><div class='add'>+ *     Got ..</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_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 = rb_funcall(cDir, rb_intern("open"), 1, dirname);</div><div class='del'>-    return rb_ensure(dir_each, 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, dir, dir_close, dir);</div><div class='add'>+    return Qnil;</div><div class='ctx'> }</div><div class='ctx'> </div><div class='add'>+/*</div><div class='add'>+ *  call-seq:</div><div class='add'>+ *     Dir.entries( dirname ) -&gt; array</div><div class='add'>+ *</div><div class='add'>+ *  Returns an array containing all of the filenames in the given</div><div class='add'>+ *  directory. Will raise a &lt;code&gt;SystemCallError&lt;/code&gt; if the named</div><div class='add'>+ *  directory doesn't exist.</div><div class='add'>+ *</div><div class='add'>+ *     Dir.entries("testdir")   #=&gt; [".", "..", "config.h", "main.rb"]</div><div class='add'>+ *</div><div class='add'>+ */</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='ctx'> {</div><div class='ctx'>     VALUE dir;</div><div class='ctx'> </div><div class='del'>-    dir = rb_funcall(cDir, rb_intern("open"), 1, dirname);</div><div class='add'>+    dir = dir_open_dir(argc, argv);</div><div class='ctx'>     return rb_ensure(rb_Array, dir, dir_close, dir);</div><div class='ctx'> }</div><div class='ctx'> </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 &lt;i&gt;path&lt;/i&gt; matches against &lt;i&gt;pattern&lt;/i&gt; The</div><div class='add'>+ *  pattern is not a regular expression; instead it follows rules</div><div class='add'>+ *  similar to shell filename globbing. It may contain the following</div><div class='add'>+ *  metacharacters:</div><div class='add'>+ *</div><div class='add'>+ *  &lt;code&gt;*&lt;/code&gt;::        Matches any file. Can be restricted by</div><div class='add'>+ *                          other values in the glob. &lt;code&gt;*&lt;/code&gt;</div><div class='add'>+ *                          will match all files; &lt;code&gt;c*&lt;/code&gt; will</div><div class='add'>+ *                          match all files beginning with</div><div class='add'>+ *                          &lt;code&gt;c&lt;/code&gt;; &lt;code&gt;*c&lt;/code&gt; will match</div><div class='add'>+ *                          all files ending with &lt;code&gt;c&lt;/code&gt;; and</div><div class='add'>+ *                          &lt;code&gt;\*c*&lt;/code&gt; will match all files that</div><div class='add'>+ *                          have &lt;code&gt;c&lt;/code&gt; in them (including at</div><div class='add'>+ *                          the beginning or end). Equivalent to</div><div class='add'>+ *                          &lt;code&gt;/ .* /x&lt;/code&gt; in regexp.</div><div class='add'>+ *  &lt;code&gt;**&lt;/code&gt;::       Matches directories recursively or files</div><div class='add'>+ *                          expansively.</div><div class='add'>+ *  &lt;code&gt;?&lt;/code&gt;::        Matches any one character. Equivalent to</div><div class='add'>+ *                          &lt;code&gt;/.{1}/&lt;/code&gt; in regexp.</div><div class='add'>+ *  &lt;code&gt;[set]&lt;/code&gt;::    Matches any one character in +set+.</div><div class='add'>+ *                          Behaves exactly like character sets in</div><div class='add'>+ *                          Regexp, including set negation</div><div class='add'>+ *                          (&lt;code&gt;[^a-z]&lt;/code&gt;).</div><div class='add'>+ *  &lt;code&gt;\&lt;/code&gt;::        Escapes the next metacharacter.</div><div class='add'>+ *</div><div class='add'>+ *  &lt;i&gt;flags&lt;/i&gt; is a bitwise OR of the &lt;code&gt;FNM_xxx&lt;/code&gt;</div><div class='add'>+ *  parameters. The same glob pattern and flags are used by</div><div class='add'>+ *  &lt;code&gt;Dir::glob&lt;/code&gt;.</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'>+ *     File.fnmatch('c{at,ub}s', 'cats')       #=&gt; false # { } isn't supported</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_NOESACPE 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='add'>+ *     File.fnmatch('.*',  '.profile')                      #=&gt; true</div><div class='add'>+ *</div><div class='add'>+ *     rbfiles = '**' '/' '*.rb' # you don't have to do like this. just write in single string.</div><div class='add'>+ *     File.fnmatch(rbfiles, 'main.rb')                    #=&gt; false</div><div class='add'>+ *     File.fnmatch(rbfiles, './main.rb')                  #=&gt; false</div><div class='add'>+ *     File.fnmatch(rbfiles, 'lib/song.rb')                #=&gt; true</div><div class='add'>+ *     File.fnmatch('**.rb', 'main.rb')                    #=&gt; true</div><div class='add'>+ *     File.fnmatch('**.rb', './main.rb')                  #=&gt; false</div><div class='add'>+ *     File.fnmatch('**.rb', 'lib/song.rb')                #=&gt; true</div><div class='add'>+ *     File.fnmatch('*',           'dave/.profile')                      #=&gt; true</div><div class='add'>+ *</div><div class='add'>+ *     pattern = '*' '/' '*'</div><div class='add'>+ *     File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME)  #=&gt; false</div><div class='add'>+ *     File.fnmatch(pattern, 'dave/.profile', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true</div><div class='add'>+ *</div><div class='add'>+ *     pattern = '**' '/' 'foo'</div><div class='add'>+ *     File.fnmatch(pattern, 'a/b/c/foo', File::FNM_PATHNAME)     #=&gt; true</div><div class='add'>+ *     File.fnmatch(pattern, '/a/b/c/foo', File::FNM_PATHNAME)    #=&gt; true</div><div class='add'>+ *     File.fnmatch(pattern, 'c:/a/b/c/foo', File::FNM_PATHNAME)  #=&gt; true</div><div class='add'>+ *     File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME)    #=&gt; false</div><div class='add'>+ *     File.fnmatch(pattern, 'a/.b/c/foo', File::FNM_PATHNAME | File::FNM_DOTMATCH) #=&gt; true</div><div class='add'>+ */</div><div class='add'>+static VALUE</div><div class='add'>+file_s_fnmatch(int argc, VALUE *argv, VALUE obj)</div><div class='add'>+{</div><div class='add'>+    VALUE pattern, path;</div><div class='add'>+    VALUE rflags;</div><div class='add'>+    int flags;</div><div class='add'>+</div><div class='add'>+    if (rb_scan_args(argc, argv, "21", &amp;pattern, &amp;path, &amp;rflags) == 3)</div><div class='add'>+	flags = NUM2INT(rflags);</div><div class='add'>+    else</div><div class='add'>+	flags = 0;</div><div class='add'>+</div><div class='add'>+    StringValue(pattern);</div><div class='add'>+    FilePathStringValue(path);</div><div class='add'>+</div><div class='add'>+    if (fnmatch(RSTRING_PTR(pattern), rb_enc_get(pattern), RSTRING_PTR(path),</div><div class='add'>+		flags) == 0)</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'>+ *    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_scan_args(argc, argv, "01", &amp;user);</div><div class='add'>+    if (!NIL_P(user)) {</div><div class='add'>+	SafeStringValue(user);</div><div class='add'>+	u = StringValueCStr(user);</div><div class='add'>+    }</div><div class='add'>+    return rb_home_dir(u, rb_str_new(0, 0));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ *  Objects of class &lt;code&gt;Dir&lt;/code&gt; are directory streams representing</div><div class='add'>+ *  directories in the underlying file system. They provide a variety of</div><div class='add'>+ *  ways to list directories and their contents. See also</div><div class='add'>+ *  &lt;code&gt;File&lt;/code&gt;.</div><div class='add'>+ *</div><div class='add'>+ *  The directory used in these examples contains the two regular files</div><div class='add'>+ *  (&lt;code&gt;config.h&lt;/code&gt; and &lt;code&gt;main.rb&lt;/code&gt;), the parent</div><div class='add'>+ *  directory (&lt;code&gt;..&lt;/code&gt;), and the directory itself</div><div class='add'>+ *  (&lt;code&gt;.&lt;/code&gt;).</div><div class='add'>+ */</div><div class='ctx'> void</div><div class='del'>-Init_Dir()</div><div class='del'>-{</div><div class='del'>-    cDir = rb_define_class("Dir", cObject);</div><div class='del'>-</div><div class='del'>-    rb_include_module(cDir, mEnumerable);</div><div class='del'>-</div><div class='del'>-    rb_define_singleton_method(cDir, "new", dir_s_open, 1);</div><div class='del'>-    rb_define_singleton_method(cDir, "open", dir_s_open, 1);</div><div class='del'>-    rb_define_singleton_method(cDir, "foreach", dir_foreach, 1);</div><div class='del'>-    rb_define_singleton_method(cDir, "entries", dir_entries, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_method(cDir,"read", dir_read, 0);</div><div class='del'>-    rb_define_method(cDir,"each", dir_each, 0);</div><div class='del'>-    rb_define_method(cDir,"rewind", dir_rewind, 0);</div><div class='del'>-    rb_define_method(cDir,"tell", dir_tell, 0);</div><div class='del'>-    rb_define_method(cDir,"seek", dir_seek, 1);</div><div class='del'>-    rb_define_method(cDir,"close", dir_close, 0);</div><div class='del'>-</div><div class='del'>-    rb_define_singleton_method(cDir,"chdir", dir_s_chdir, -1);</div><div class='del'>-    rb_define_singleton_method(cDir,"getwd", dir_s_getwd, 0);</div><div class='del'>-    rb_define_singleton_method(cDir,"pwd", dir_s_getwd, 0);</div><div class='del'>-    rb_define_singleton_method(cDir,"chroot", dir_s_chroot, 1);</div><div class='del'>-    rb_define_singleton_method(cDir,"mkdir", dir_s_mkdir, -1);</div><div class='del'>-    rb_define_singleton_method(cDir,"rmdir", dir_s_rmdir, 1);</div><div class='del'>-    rb_define_singleton_method(cDir,"delete", dir_s_rmdir, 1);</div><div class='del'>-    rb_define_singleton_method(cDir,"unlink", dir_s_rmdir, 1);</div><div class='del'>-</div><div class='del'>-    rb_define_singleton_method(cDir,"glob", dir_s_glob, 1);</div><div class='del'>-    rb_define_singleton_method(cDir,"[]", dir_s_glob, 1);</div><div class='add'>+Init_Dir(void)</div><div class='add'>+{</div><div class='add'>+    rb_cDir = rb_define_class("Dir", rb_cObject);</div><div class='add'>+</div><div class='add'>+    rb_include_module(rb_cDir, rb_mEnumerable);</div><div class='add'>+</div><div class='add'>+    rb_define_alloc_func(rb_cDir, dir_s_alloc);</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'>+</div><div class='add'>+    rb_define_method(rb_cDir,"initialize", dir_initialize, -1);</div><div class='add'>+    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='add'>+    rb_define_method(rb_cDir,"read", dir_read, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"each", dir_each, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"rewind", dir_rewind, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"tell", dir_tell, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"seek", dir_seek, 1);</div><div class='add'>+    rb_define_method(rb_cDir,"pos", dir_tell, 0);</div><div class='add'>+    rb_define_method(rb_cDir,"pos=", dir_set_pos, 1);</div><div class='add'>+    rb_define_method(rb_cDir,"close", dir_close, 0);</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"chdir", dir_s_chdir, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"getwd", dir_s_getwd, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"pwd", dir_s_getwd, 0);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"chroot", dir_s_chroot, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"mkdir", dir_s_mkdir, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"rmdir", dir_s_rmdir, 1);</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"delete", dir_s_rmdir, 1);</div><div class='add'>+    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='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"glob", dir_s_glob, -1);</div><div class='add'>+    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); /* in file.c */</div><div class='add'>+    rb_define_singleton_method(rb_cDir,"exists?", rb_file_directory_p, 1); /* in file.c */</div><div class='add'>+</div><div class='add'>+    rb_define_singleton_method(rb_cFile,"fnmatch", file_s_fnmatch, -1);</div><div class='add'>+    rb_define_singleton_method(rb_cFile,"fnmatch?", file_s_fnmatch, -1);</div><div class='add'>+</div><div class='add'>+    rb_file_const("FNM_NOESCAPE", INT2FIX(FNM_NOESCAPE));</div><div class='add'>+    rb_file_const("FNM_PATHNAME", INT2FIX(FNM_PATHNAME));</div><div class='add'>+    rb_file_const("FNM_DOTMATCH", INT2FIX(FNM_DOTMATCH));</div><div class='add'>+    rb_file_const("FNM_CASEFOLD", INT2FIX(FNM_CASEFOLD));</div><div class='add'>+    rb_file_const("FNM_SYSCASE", INT2FIX(FNM_SYSCASE));</div><div class='ctx'> }</div><div class='head'>diff --git a/dln.c b/dln.c<br/>index 9fe4208f4c..44410f75e4 100644<br/>--- a/<a href='/ruby.git/tree/dln.c?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dln.c</a><br/>+++ b/<a href='/ruby.git/tree/dln.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dln.c</a></div><div class='hunk'>@@ -1,26 +1,37 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </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-1998 Yukihiro Matsumoto</div><div class='add'>+  Copyright (C) 1993-2007 Yukihiro Matsumoto</div><div class='ctx'> </div><div class='del'>-************************************************/</div><div class='add'>+**********************************************************************/</div><div class='ctx'> </div><div class='del'>-#include "config.h"</div><div class='del'>-#include "defines.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='del'>-char *dln_argv0;</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='ctx'> </div><div class='del'>-#ifdef _AIX</div><div class='del'>-#pragma alloca</div><div class='add'>+#ifdef USE_DLN_A_OUT</div><div class='add'>+char *dln_argv0;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_ALLOCA_H) &amp;&amp; !defined(__GNUC__)</div><div class='add'>+#if defined(HAVE_ALLOCA_H)</div><div class='ctx'> #include &lt;alloca.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -30,24 +41,29 @@ char *dln_argv0;</div><div class='ctx'> # include &lt;strings.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='add'>+#ifndef xmalloc</div><div class='ctx'> void *xmalloc();</div><div class='ctx'> void *xcalloc();</div><div class='ctx'> void *xrealloc();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define free(x) xfree(x)</div><div class='ctx'> </div><div class='ctx'> #include &lt;stdio.h&gt;</div><div class='del'>-#ifndef NT</div><div class='del'>-# ifndef USE_CWGUSI</div><div class='del'>-#  include &lt;sys/file.h&gt;</div><div class='del'>-# endif</div><div class='del'>-#else</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='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='ctx'> #ifdef HAVE_SYS_PARAM_H</div><div class='ctx'> # include &lt;sys/param.h&gt;</div><div class='del'>-#else</div><div class='add'>+#endif</div><div class='add'>+#ifndef MAXPATHLEN</div><div class='ctx'> # define MAXPATHLEN 1024</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='hunk'>@@ -55,58 +71,85 @@ void *xrealloc();</div><div class='ctx'> # include &lt;unistd.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifndef NT</div><div class='del'>-char *strdup();</div><div class='add'>+#ifndef _WIN32</div><div class='ctx'> char *getenv();</div><div class='ctx'> #endif</div><div class='ctx'> </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='add'>+#if defined(__APPLE__) &amp;&amp; defined(__MACH__)   /* Mac OS X */</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='add'>+#if defined(__BEOS__) || defined(__HAIKU__)</div><div class='ctx'> # include &lt;image.h&gt;</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-int eaccess();</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='add'>+#endif</div><div class='ctx'> </div><div class='del'>-#if defined(HAVE_DLOPEN) &amp;&amp; !defined(USE_DLN_A_OUT) &amp;&amp; !defined(__CYGWIN32__) &amp;&amp; !defined(_AIX)</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='ctx'> #ifndef FUNCNAME_PATTERN</div><div class='del'>-# if defined(__hp9000s300) || defined(__NetBSD__) || defined(__BORLANDC__) || (defined(__FreeBSD__) &amp;&amp; __FreeBSD__ &lt; 3) || defined(NeXT) || defined(__WATCOMC__)</div><div class='del'>-#  define FUNCNAME_PATTERN "_Init_%.200s"</div><div class='add'>+# if defined(__hp9000s300) || ((defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)) &amp;&amp; !defined(__ELF__)) || defined(__BORLANDC__) || defined(NeXT) || defined(__WATCOMC__) || defined(MACOSX_DYLD)</div><div class='add'>+#  define FUNCNAME_PREFIX "_Init_"</div><div class='ctx'> # else</div><div class='del'>-#  define FUNCNAME_PATTERN "Init_%.200s"</div><div class='add'>+#  define FUNCNAME_PREFIX "Init_"</div><div class='ctx'> # endif</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-static void</div><div class='del'>-init_funcname(buf, file)</div><div class='del'>-    char *buf, *file;</div><div class='del'>-{</div><div class='del'>-    char *p, *slash;</div><div class='del'>-</div><div class='del'>-    /* Load the file as an object one */</div><div class='del'>-    for (p = file, slash = p-1; *p; p++) /* Find position of last '/' */</div><div class='del'>-#ifdef __MACOS__</div><div class='del'>-	if (*p == ':') slash = p;</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 (*p == '/') slash = p;</div><div class='add'>+#define isdirsep(x) ((x) == '/')</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-    sprintf(buf, FUNCNAME_PATTERN, slash + 1);</div><div class='del'>-    for (p = buf; *p; p++) {         /* Delete suffix it 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='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='add'>+#define init_funcname(buf, file) do {\</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='add'>+    if (!tmp) {\</div><div class='add'>+	dln_memerror();\</div><div class='add'>+    }\</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='add'>+} while (0)</div><div class='add'>+</div><div class='ctx'> #ifdef USE_DLN_A_OUT</div><div class='ctx'> </div><div class='ctx'> #ifndef LIBC_NAME</div><div class='hunk'>@@ -122,16 +165,15 @@ init_funcname(buf, file)</div><div class='ctx'> static int dln_errno;</div><div class='ctx'> </div><div class='ctx'> #define DLN_ENOEXEC	ENOEXEC	/* Exec format error */</div><div class='del'>-#define DLN_ECONFL	201	/* Symbol name conflict */</div><div class='del'>-#define DLN_ENOINIT	202	/* No inititalizer given */</div><div class='del'>-#define DLN_EUNDEF	203	/* Undefine symbol remains */</div><div class='del'>-#define DLN_ENOTLIB	204	/* Not a library file */</div><div class='del'>-#define DLN_EBADLIB	205	/* Malformed library file */</div><div class='del'>-#define DLN_EINIT	206	/* Not initialized */</div><div class='add'>+#define DLN_ECONFL	1201	/* Symbol name conflict */</div><div class='add'>+#define DLN_ENOINIT	1202	/* No initializer given */</div><div class='add'>+#define DLN_EUNDEF	1203	/* Undefine symbol remains */</div><div class='add'>+#define DLN_ENOTLIB	1204	/* Not a library file */</div><div class='add'>+#define DLN_EBADLIB	1205	/* Malformed library file */</div><div class='add'>+#define DLN_EINIT	1206	/* Not initialized */</div><div class='ctx'> </div><div class='ctx'> static int dln_init_p = 0;</div><div class='ctx'> </div><div class='del'>-#include "st.h"</div><div class='ctx'> #include &lt;ar.h&gt;</div><div class='ctx'> #include &lt;a.out.h&gt;</div><div class='ctx'> #ifndef N_COMM</div><div class='hunk'>@@ -143,16 +185,16 @@ 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='add'>+#include "ruby/util.h"</div><div class='add'>+#include "ruby/st.h"</div><div class='add'>+</div><div class='ctx'> static st_table *sym_tbl;</div><div class='ctx'> static st_table *undef_tbl;</div><div class='ctx'> </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'>@@ -222,10 +264,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'>@@ -248,10 +287,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'>@@ -292,9 +328,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'>@@ -314,17 +348,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'>-    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'>@@ -356,7 +389,7 @@ dln_init(prog)</div><div class='ctx'> 	if (c != '!') goto err_noexec;</div><div class='ctx'> </div><div class='ctx'> 	p = buf;</div><div class='del'>-	/* skip forwading spaces */</div><div class='add'>+	/* skip forwarding spaces */</div><div class='ctx'> 	while (read(fd, &amp;c, 1) == 1) {</div><div class='ctx'> 	    if (c == '\n') goto err_noexec;</div><div class='ctx'> 	    if (c != '\t' &amp;&amp; c != ' ') {</div><div class='hunk'>@@ -368,6 +401,10 @@ dln_init(prog)</div><div class='ctx'> 	while (read(fd, p, 1) == 1) {</div><div class='ctx'> 	    if (*p == '\n' || *p == '\t' || *p == ' ') break;</div><div class='ctx'> 	    p++;</div><div class='add'>+	    if (p-buf &gt;= MAXPATHLEN) {</div><div class='add'>+		dln_errno = ENAMETOOLONG;</div><div class='add'>+		return -1;</div><div class='add'>+	    }</div><div class='ctx'> 	}</div><div class='ctx'> 	*p = '\0';</div><div class='ctx'> </div><div class='hunk'>@@ -385,11 +422,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'>@@ -423,27 +456,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'>@@ -461,10 +493,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'>-    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'>@@ -492,15 +521,12 @@ link_undef(name, base, reloc)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct reloc_arg {</div><div class='del'>-    char *name;</div><div class='add'>+    const char *name;</div><div class='ctx'>     long value;</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='hunk'>@@ -561,9 +587,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'>-    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'>@@ -578,10 +602,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'>@@ -592,12 +613,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'>-    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'>@@ -606,7 +624,6 @@ load_1(fd, disp, need_init)</div><div class='ctx'>     struct nlist *sym;</div><div class='ctx'>     struct nlist *end;</div><div class='ctx'>     int init_p = 0;</div><div class='del'>-    char buf[256];</div><div class='ctx'> </div><div class='ctx'>     if (load_header(fd, &amp;hdr, disp) == -1) return -1;</div><div class='ctx'>     if (INVALID_OBJECT(hdr)) {</div><div class='hunk'>@@ -615,8 +632,12 @@ load_1(fd, disp, need_init)</div><div class='ctx'>     }</div><div class='ctx'>     reloc = load_reloc(fd, &amp;hdr, disp);</div><div class='ctx'>     if (reloc == NULL) return -1;</div><div class='add'>+</div><div class='ctx'>     syms = load_sym(fd, &amp;hdr, disp);</div><div class='del'>-    if (syms == NULL) return -1;</div><div class='add'>+    if (syms == NULL) {</div><div class='add'>+	free(reloc);</div><div class='add'>+	return -1;</div><div class='add'>+    }</div><div class='ctx'> </div><div class='ctx'>     sym = syms;</div><div class='ctx'>     end = syms + (hdr.a_syms / sizeof(struct nlist));</div><div class='hunk'>@@ -629,7 +650,7 @@ load_1(fd, disp, need_init)</div><div class='ctx'> 	    char *key = sym-&gt;n_un.n_name;</div><div class='ctx'> </div><div class='ctx'> 	    if (st_lookup(sym_tbl, sym[1].n_un.n_name, &amp;old_sym)) {</div><div class='del'>-		if (st_delete(undef_tbl, &amp;key, NULL)) {</div><div class='add'>+		if (st_delete(undef_tbl, (st_data_t*)&amp;key, NULL)) {</div><div class='ctx'> 		    unlink_undef(key, old_sym-&gt;n_value);</div><div class='ctx'> 		    free(key);</div><div class='ctx'> 		}</div><div class='hunk'>@@ -642,7 +663,7 @@ load_1(fd, disp, need_init)</div><div class='ctx'> 		st_foreach(reloc_tbl, reloc_repl, &amp;data);</div><div class='ctx'> </div><div class='ctx'> 		st_insert(undef_tbl, strdup(sym[1].n_un.n_name), NULL);</div><div class='del'>-		if (st_delete(undef_tbl, &amp;key, NULL)) {</div><div class='add'>+		if (st_delete(undef_tbl, (st_data_t*)&amp;key, NULL)) {</div><div class='ctx'> 		    free(key);</div><div class='ctx'> 		}</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -710,7 +731,7 @@ load_1(fd, disp, need_init)</div><div class='ctx'> 	    }</div><div class='ctx'> </div><div class='ctx'> 	    key = sym-&gt;n_un.n_name;</div><div class='del'>-	    if (st_delete(undef_tbl, &amp;key, NULL) != 0) {</div><div class='add'>+	    if (st_delete(undef_tbl, (st_data_t*)&amp;key, NULL) != 0) {</div><div class='ctx'> 		unlink_undef(key, sym-&gt;n_value);</div><div class='ctx'> 		free(key);</div><div class='ctx'> 	    }</div><div class='hunk'>@@ -763,7 +784,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,18 +840,19 @@ load_1(fd, disp, need_init)</div><div class='ctx'>     if (need_init) {</div><div class='ctx'> 	int len;</div><div class='ctx'> 	char **libs_to_be_linked = 0;</div><div class='add'>+	char *buf;</div><div class='ctx'> </div><div class='ctx'> 	if (undef_tbl-&gt;num_entries &gt; 0) {</div><div class='ctx'> 	    if (load_lib(libc) == -1) goto err_exit;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	init_funcname(buf, need_init);</div><div class='add'>+	init_funcname(&amp;buf, need_init);</div><div class='ctx'> 	len = strlen(buf);</div><div class='ctx'> </div><div class='ctx'> 	for (sym = syms; sym&lt;end; sym++) {</div><div class='ctx'> 	    char *name = sym-&gt;n_un.n_name;</div><div class='ctx'> 	    if (name[0] == '_' &amp;&amp; sym-&gt;n_value &gt;= block) {</div><div class='del'>-		if (strcmp(name+1, "libs_to_be_linked") == 0) {</div><div class='add'>+		if (strcmp(name+1, "dln_libs_to_be_linked") == 0) {</div><div class='ctx'> 		    libs_to_be_linked = (char**)sym-&gt;n_value;</div><div class='ctx'> 		}</div><div class='ctx'> 		else if (strcmp(name+1, buf) == 0) {</div><div class='hunk'>@@ -872,12 +894,9 @@ 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'>-    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='del'>-    int offset;</div><div class='add'>+    long offset;</div><div class='ctx'> </div><div class='ctx'>     if (st_lookup(lib_tbl, key, &amp;offset) == 0) return ST_CONTINUE;</div><div class='ctx'>     target_offset = offset;</div><div class='hunk'>@@ -885,17 +904,17 @@ search_undef(key, value, lib_tbl)</div><div class='ctx'> }</div><div class='ctx'> </div><div class='ctx'> struct symdef {</div><div class='del'>-    int str_index;</div><div class='add'>+    int rb_str_index;</div><div class='ctx'>     int lib_offset;</div><div class='ctx'> };</div><div class='ctx'> </div><div class='del'>-char *dln_library_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'>-    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'>@@ -913,19 +932,22 @@ load_lib(lib)</div><div class='ctx'>     dln_errno = DLN_EBADLIB;</div><div class='ctx'> </div><div class='ctx'>     if (lib[0] == '-' &amp;&amp; lib[1] == 'l') {</div><div class='del'>-	char *p = alloca(strlen(lib) + 4);</div><div class='del'>-	sprintf(p, "lib%s.a", lib+2);</div><div class='add'>+	long len = strlen(lib) + 4;</div><div class='add'>+	char *p = alloca(len);</div><div class='add'>+	snprintf(p, len, "lib%s.a", lib+2);</div><div class='ctx'> 	lib = p;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='ctx'>     /* library search path: */</div><div class='ctx'>     /* look for environment variable DLN_LIBRARY_PATH first. */</div><div class='del'>-    /* then variable dln_library_path. */</div><div class='add'>+    /* then variable dln_librrb_ary_path. */</div><div class='ctx'>     /* if path is still NULL, use "." for path. */</div><div class='ctx'>     path = getenv("DLN_LIBRARY_PATH");</div><div class='del'>-    if (path == NULL) path = dln_library_path;</div><div class='add'>+    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'>@@ -952,7 +974,7 @@ load_lib(lib)</div><div class='ctx'> 	base = (struct symdef*)(data + 1);</div><div class='ctx'> 	name_base = (char*)(base + nsym) + sizeof(int);</div><div class='ctx'> 	while (nsym &gt; 0) {</div><div class='del'>-	    char *name = name_base + base-&gt;str_index;</div><div class='add'>+	    char *name = name_base + base-&gt;rb_str_index;</div><div class='ctx'> </div><div class='ctx'> 	    st_insert(lib_tbl, name, base-&gt;lib_offset + sizeof(ahdr));</div><div class='ctx'> 	    nsym--;</div><div class='hunk'>@@ -1029,8 +1051,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'>-    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'>@@ -1055,8 +1076,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'>-    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'>@@ -1068,20 +1088,15 @@ 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'>-# ifdef __NetBSD__</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='del'>-#ifdef hpux</div><div class='add'>+#ifdef __hpux</div><div class='ctx'> #include &lt;errno.h&gt;</div><div class='ctx'> #include "dl.h"</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef _AIX</div><div class='add'>+#if defined(_AIX)</div><div class='ctx'> #include &lt;ctype.h&gt;	/* for isdigit()	*/</div><div class='ctx'> #include &lt;errno.h&gt;	/* for global errno	*/</div><div class='ctx'> #include &lt;sys/ldr.h&gt;</div><div class='hunk'>@@ -1092,15 +1107,45 @@ dln_sym(name)</div><div class='ctx'> #include &lt;mach-o/rld.h&gt;</div><div class='ctx'> #else</div><div class='ctx'> #include &lt;mach-o/dyld.h&gt;</div><div class='add'>+#ifndef NSLINKMODULE_OPTION_BINDNOW</div><div class='add'>+#define NSLINKMODULE_OPTION_BINDNOW 1</div><div class='add'>+#endif</div><div class='add'>+#endif</div><div class='add'>+#else</div><div class='add'>+#ifdef MACOSX_DYLD</div><div class='add'>+#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'>-#ifdef _WIN32</div><div class='add'>+#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</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'>-static char *</div><div class='del'>-dln_strerror()</div><div class='add'>+#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</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='add'>+static const char *</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'>@@ -1109,7 +1154,7 @@ dln_strerror()</div><div class='ctx'>       case DLN_ECONFL:</div><div class='ctx'> 	return "Symbol name conflict";</div><div class='ctx'>       case DLN_ENOINIT:</div><div class='del'>-	return "No inititalizer given";</div><div class='add'>+	return "No initializer given";</div><div class='ctx'>       case DLN_EUNDEF:</div><div class='ctx'> 	return "Unresolved symbols";</div><div class='ctx'>       case DLN_ENOTLIB:</div><div class='hunk'>@@ -1126,122 +1171,136 @@ 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'>-#ifdef _WIN32</div><div class='del'>-    static char message[1024];</div><div class='del'>-    FormatMessage(</div><div class='del'>-	FORMAT_MESSAGE_FROM_SYSTEM,</div><div class='del'>-	NULL,</div><div class='del'>-	GetLastError(),</div><div class='del'>-	MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),</div><div class='del'>-	message,</div><div class='del'>-	sizeof message,</div><div class='del'>-	NULL);</div><div class='del'>-</div><div class='del'>-    return message;</div><div class='add'>+}</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+#if defined(_AIX) &amp;&amp; ! defined(_IA64)</div><div class='add'>+static void</div><div class='add'>+aix_loaderror(const char *pathname)</div><div class='add'>+{</div><div class='add'>+  char *message[1024], errbuf[1024];</div><div class='add'>+  int i;</div><div class='add'>+#define ERRBUF_APPEND(s) strncat(errbuf, (s), sizeof(errbuf)-strlen(errbuf)-1)</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='add'>+    }</div><div class='add'>+    ERRBUF_APPEND("\n");</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='add'>+#endif</div><div class='ctx'> </div><div class='add'>+#if defined _WIN32 &amp;&amp; defined RUBY_EXPORT</div><div class='add'>+HANDLE rb_libruby_handle(void);</div><div class='ctx'> </div><div class='del'>-#ifdef _AIX</div><div class='del'>-static void</div><div class='del'>-aix_loaderror(char *pathname)</div><div class='add'>+static int</div><div class='add'>+rb_w32_check_imported(HMODULE ext, HMODULE mine)</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 errno;</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 allignment 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'>-    sprintf(errbuf, "load failed - %.200s ", 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].errno &amp;&amp; load_errtab[i].errstr)</div><div class='del'>-		ERRBUF_APPEND(load_errtab[i].errstr);</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='ctx'> 	}</div><div class='del'>-	while (isdigit(*message[i])) message[i]++ ; </div><div class='del'>-	ERRBUF_APPEND(message[i]);</div><div class='del'>-	ERRBUF_APPEND("\n");</div><div class='add'>+	desc++;</div><div class='ctx'>     }</div><div class='del'>-    errbuf[strlen(errbuf)-1] = '\0';	/* trim off last newline */</div><div class='del'>-    LoadError(errbuf);</div><div class='del'>-    return;</div><div class='add'>+    return 1;</div><div class='ctx'> }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-void</div><div class='del'>-dln_load(file)</div><div class='del'>-    char *file;</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='add'>+</div><div class='add'>+void*</div><div class='add'>+dln_load(const char *file)</div><div class='ctx'> {</div><div class='del'>-#ifdef _WIN32</div><div class='add'>+#if !defined(_AIX) &amp;&amp; !defined(NeXT)</div><div class='add'>+    const char *error = 0;</div><div class='add'>+#define DLN_ERROR() (error = dln_strerror(), strcpy(ALLOCA_N(char, strlen(error) + 1), error))</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if defined _WIN32 &amp;&amp; !defined __CYGWIN__</div><div class='ctx'>     HINSTANCE handle;</div><div class='del'>-    char winfile[255];</div><div class='add'>+    char winfile[MAXPATHLEN];</div><div class='add'>+    char message[1024];</div><div class='ctx'>     void (*init_fct)();</div><div class='del'>-    char buf[MAXPATHLEN];</div><div class='add'>+    char *buf;</div><div class='add'>+</div><div class='add'>+    if (strlen(file) &gt;= MAXPATHLEN) dln_loaderror("filename too long");</div><div class='ctx'> </div><div class='ctx'>     /* Load the file as an object one */</div><div class='del'>-    init_funcname(buf, file);</div><div class='add'>+    init_funcname(&amp;buf, file);</div><div class='ctx'> </div><div class='del'>-#ifdef __CYGWIN32__</div><div class='del'>-    cygwin32_conv_to_win32_path(file, winfile);</div><div class='del'>-#else</div><div class='del'>-    strcpy(winfile, file);</div><div class='del'>-#endif</div><div class='add'>+    strlcpy(winfile, file, sizeof(winfile));</div><div class='ctx'> </div><div class='ctx'>     /* Load file */</div><div class='del'>-    if ((handle =</div><div class='del'>-	LoadLibraryExA(winfile, NULL, LOAD_WITH_ALTERED_SEARCH_PATH)) == NULL) {</div><div class='del'>-        printf("LoadLibraryExA\n");</div><div class='add'>+    if ((handle = LoadLibrary(winfile)) == NULL) {</div><div class='add'>+	error = dln_strerror();</div><div class='ctx'> 	goto failed;</div><div class='ctx'>     }</div><div class='ctx'> </div><div class='del'>-#ifdef __CYGWIN32__</div><div class='del'>-    init_fct = (void(*)())GetProcAddress(handle, "impure_setup");</div><div class='del'>-</div><div class='del'>-    if (init_fct)</div><div class='del'>-	init_fct(_impure_ptr);</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 library version";</div><div class='add'>+	goto failed;</div><div class='add'>+    }</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='ctx'>     if ((init_fct = (void(*)())GetProcAddress(handle, buf)) == NULL) {</div><div class='del'>-        printf("GetProcAddress %s\n", buf);</div><div class='del'>-	goto failed;</div><div class='add'>+	dln_loaderror("%s - %s\n%s", dln_strerror(), buf, file);</div><div class='ctx'>     }</div><div class='add'>+</div><div class='ctx'>     /* Call the init code */</div><div class='ctx'>     (*init_fct)();</div><div class='del'>-    return;</div><div class='add'>+    return handle;</div><div class='ctx'> #else</div><div class='ctx'> #ifdef USE_DLN_A_OUT</div><div class='ctx'>     if (load(file) == -1) {</div><div class='add'>+	error = dln_strerror();</div><div class='ctx'> 	goto failed;</div><div class='ctx'>     }</div><div class='del'>-    return;</div><div class='add'>+    return 0;</div><div class='ctx'> #else</div><div class='ctx'> </div><div class='del'>-    char buf[MAXPATHLEN];</div><div class='add'>+    char *buf;</div><div class='ctx'>     /* Load the file as an object one */</div><div class='del'>-    init_funcname(buf, file);</div><div class='add'>+    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'>@@ -1249,28 +1308,41 @@ dln_load(file)</div><div class='ctx'> 	void *handle;</div><div class='ctx'> 	void (*init_fct)();</div><div class='ctx'> </div><div class='del'>-# ifndef RTLD_LAZY</div><div class='del'>-#  define RTLD_LAZY 1</div><div class='del'>-# endif</div><div class='del'>-# ifndef RTLD_GLOBAL</div><div class='del'>-#  define RTLD_GLOBAL 0</div><div class='del'>-# endif</div><div class='add'>+#ifndef RTLD_LAZY</div><div class='add'>+# define RTLD_LAZY 1</div><div class='add'>+#endif</div><div class='add'>+#ifdef __INTERIX</div><div class='add'>+# undef RTLD_GLOBAL</div><div class='add'>+#endif</div><div class='add'>+#ifndef RTLD_GLOBAL</div><div class='add'>+# define RTLD_GLOBAL 0</div><div class='add'>+#endif</div><div class='ctx'> </div><div class='ctx'> 	/* Load file */</div><div class='ctx'> 	if ((handle = (void*)dlopen(file, RTLD_LAZY|RTLD_GLOBAL)) == NULL) {</div><div class='add'>+	    error = dln_strerror();</div><div class='ctx'> 	    goto failed;</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	if ((init_fct = (void(*)())dlsym(handle, buf)) == NULL) {</div><div class='add'>+	init_fct = (void(*)())(VALUE)dlsym(handle, buf);</div><div class='add'>+#if defined __SYMBIAN32__</div><div class='add'>+	if (init_fct == NULL) {</div><div class='add'>+	    init_fct = (void(*)())dlsym(handle, "1"); /* Some Symbian versions do not support symbol table in DLL, ordinal numbers only */</div><div class='add'>+	}</div><div class='add'>+#endif</div><div class='add'>+	if (init_fct == NULL) {</div><div class='add'>+	    error = DLN_ERROR();</div><div class='add'>+	    dlclose(handle);</div><div class='ctx'> 	    goto failed;</div><div class='ctx'> 	}</div><div class='ctx'> 	/* Call the init code */</div><div class='ctx'> 	(*init_fct)();</div><div class='del'>-	return;</div><div class='add'>+</div><div class='add'>+	return handle;</div><div class='ctx'>     }</div><div class='ctx'> #endif /* USE_DLN_DLOPEN */</div><div class='ctx'> </div><div class='del'>-#ifdef hpux</div><div class='add'>+#ifdef __hpux</div><div class='ctx'> #define DLN_DEFINED</div><div class='ctx'>     {</div><div class='ctx'> 	shl_t lib = NULL;</div><div class='hunk'>@@ -1281,411 +1353,173 @@ 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'>-	    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'>-		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='del'>-	return;</div><div class='add'>+	return (void*)lib;</div><div class='ctx'>     }</div><div class='ctx'> #endif /* hpux */</div><div class='ctx'> </div><div class='del'>-#ifdef _AIX</div><div class='add'>+#if defined(_AIX) &amp;&amp; ! defined(_IA64)</div><div class='ctx'> #define DLN_DEFINED</div><div class='ctx'>     {</div><div class='ctx'> 	void (*init_fct)();</div><div class='ctx'> </div><div class='del'>-	init_fct = (void(*)())load(file, 1, 0);</div><div class='add'>+	init_fct = (void(*)())load((char*)file, 1, 0);</div><div class='ctx'> 	if (init_fct == NULL) {</div><div class='ctx'> 	    aix_loaderror(file);</div><div class='ctx'> 	}</div><div class='add'>+	if (loadbind(0, (void*)dln_load, (void*)init_fct) == -1) {</div><div class='add'>+	    aix_loaderror(file);</div><div class='add'>+	}</div><div class='ctx'> 	(*init_fct)();</div><div class='del'>-	return;</div><div class='add'>+	return (void*)init_fct;</div><div class='ctx'>     }</div><div class='ctx'> #endif /* _AIX */</div><div class='ctx'> </div><div class='del'>-#ifdef NeXT</div><div class='add'>+#if defined(NeXT) || 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='add'>+    sunshine@sunshineco.com,</div><div class='ctx'>     and... Miss ARAI Akino(^^;)</div><div class='ctx'>  ----------------------------------------------------*/</div><div class='del'>-#if NS_TARGET_MAJOR &lt; 4 /* NeXTSTEP rld functions */</div><div class='add'>+#if defined(NeXT) &amp;&amp; (NS_TARGET_MAJOR &lt; 4)/* NeXTSTEP rld functions */</div><div class='add'>+</div><div class='ctx'>     {</div><div class='add'>+        NXStream* s;</div><div class='ctx'> 	unsigned long init_address;</div><div class='ctx'> 	char *object_files[2] = {NULL, NULL};</div><div class='ctx'> </div><div class='ctx'> 	void (*init_fct)();</div><div class='del'>-	</div><div class='del'>-	object_files[0] = file;</div><div class='del'>-	</div><div class='add'>+</div><div class='add'>+	object_files[0] = (char*)file;</div><div class='add'>+</div><div class='add'>+	s = NXOpenFile(2,NX_WRITEONLY);</div><div class='add'>+</div><div class='ctx'> 	/* Load object file, if return value ==0 ,  load failed*/</div><div class='del'>-	if(rld_load(NULL, NULL, object_files, NULL) == 0) {</div><div class='del'>-	    LoadError("Failed to load %.200s", file);</div><div class='add'>+	if(rld_load(s, NULL, object_files, NULL) == 0) {</div><div class='add'>+	    NXFlush(s);</div><div class='add'>+	    NXClose(s);</div><div class='add'>+	    dln_loaderror("Failed to load %.200s", file);</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='ctx'> 	/* lookup the initial function */</div><div class='del'>-	if(rld_lookup(NULL, buf, &amp;init_address) == 0) {</div><div class='del'>-	    LoadError("Failed to lookup Init function %.200s",file);</div><div class='add'>+	if(rld_lookup(s, buf, &amp;init_address) == 0) {</div><div class='add'>+	    NXFlush(s);</div><div class='add'>+	    NXClose(s);</div><div class='add'>+	    dln_loaderror("Failed to lookup Init function %.200s", file);</div><div class='ctx'> 	}</div><div class='ctx'> </div><div class='del'>-	 /* Cannot call *init_address directory, so copy this value to</div><div class='del'>-	    funtion pointer */</div><div class='add'>+	NXFlush(s);</div><div class='add'>+	NXClose(s);</div><div class='ctx'> </div><div class='add'>+	/* Cannot call *init_address directory, so copy this value to</div><div class='add'>+	   function pointer */</div><div class='ctx'> 	init_fct = (void(*)())init_address;</div><div class='ctx'> 	(*init_fct)();</div><div class='del'>-	return ;</div><div class='add'>+	return (void*)init_address;</div><div class='ctx'>     }</div><div class='ctx'> #else/* OPENSTEP dyld functions */</div><div class='del'>-	{</div><div class='del'>-	int dyld_result ;</div><div class='del'>-	NSObjectFileImage obj_file ; /* handle, but not use it */</div><div class='add'>+    {</div><div class='add'>+	int dyld_result;</div><div class='add'>+	NSObjectFileImage obj_file; /* handle, but not use it */</div><div class='ctx'> 	/* "file" is module file name .</div><div class='del'>-	   "buf" is initial function name with "_" . */</div><div class='add'>+	   "buf" is pointer to initial function name with "_" . */</div><div class='ctx'> </div><div class='ctx'> 	void (*init_fct)();</div><div class='ctx'> </div><div class='ctx'> </div><div class='del'>-    dyld_result = NSCreateObjectFileImageFromFile( file, &amp;obj_file );</div><div class='add'>+	dyld_result = NSCreateObjectFileImageFromFile(file, &amp;obj_file);</div><div class='ctx'> </div><div class='del'>-    if (dyld_result != NSObjectFileImageSuccess)</div><div class='del'>-    {</div><div class='del'>-	    LoadError("Failed to load %.200s", file);</div><div class='del'>-    }</div><div class='del'>-</div><div class='del'>-    NSLinkModule(obj_file, file, TRUE);</div><div class='add'>+	if (dyld_result != NSObjectFileImageSuccess) {</div><div class='add'>+	    dln_loaderror("Failed to load %.200s", file);</div><div class='add'>+	}</div><div class='ctx'> </div><div class='add'>+	NSLinkModule(obj_file, file, NSLINKMODULE_OPTION_BINDNOW);</div><div class='ctx'> </div><div class='ctx'> 	/* lookup the initial function */</div><div class='del'>-	 /*NSIsSymbolNameDefined require function name without "_" */</div><div class='del'>-    if( NSIsSymbolNameDefined( buf + 1 ) )</div><div class='del'>-    {</div><div class='del'>-	    LoadError("Failed to lookup Init function %.200s",file);</div><div class='add'>+	if(!NSIsSymbolNameDefined(buf)) {</div><div class='add'>+	    dln_loaderror("Failed to lookup Init function %.200s",file);</div><div class='ctx'> 	}</div><div class='del'>-</div><div class='del'>-	/* NSLookupAndBindSymbol require function name with "_" !! */</div><div class='del'>-</div><div class='del'>-	init_fct = NSAddressOfSymbol( NSLookupAndBindSymbol( buf ) );</div><div class='add'>+	init_fct = NSAddressOfSymbol(NSLookupAndBindSymbol(buf));</div><div class='ctx'> 	(*init_fct)();</div><div class='ctx'> </div><div class='del'>-</div><div class='del'>-	return ;</div><div class='add'>+	return (void*)init_fct;</div><div class='ctx'>     }</div><div class='ctx'> #endif /* rld or dyld */</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-#ifdef __BEOS__</div><div class='add'>+#if defined(__BEOS__) || defined(__HAIKU__)</div><div class='ctx'> # define DLN_DEFINED</div><div class='ctx'>     {</div><div class='ctx'>       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='add'>+      image_id img_id;    /* extension module unique id */</div><div class='add'>+      void (*init_fct)(); /* initialize function for extension module */</div><div class='ctx'> </div><div class='del'>-      /* load extention module */</div><div class='add'>+      /* load extension module */</div><div class='ctx'>       img_id = load_add_on(file);</div><div class='ctx'>       if (img_id &lt;= 0) {</div><div class='del'>-	LoadError("Failed to load %.200s", file);</div><div class='add'>+	dln_loaderror("Failed to load add_on %.200s error_code=%x",</div><div class='add'>+	  file, img_id);</div><div class='ctx'>       }</div><div class='del'>-      </div><div class='add'>+</div><div class='ctx'>       /* 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='add'>+      /* The Be Book KernelKit Images section described to use</div><div class='add'>+	 B_SYMBOL_TYPE_TEXT for symbol of function, not</div><div class='add'>+	 B_SYMBOL_TYPE_CODE. Why ? */</div><div class='add'>+      /* strcat(init_fct_symname, "__Fv"); */  /* parameter nothing. */</div><div class='add'>+      /* "__Fv" dont need! The Be Book Bug ? */</div><div class='ctx'>       err_stat = get_image_symbol(img_id, buf,</div><div class='del'>-				  B_SYMBOL_TYPE_TEXT, &amp;init_fct);</div><div class='add'>+				  B_SYMBOL_TYPE_TEXT, (void **)&amp;init_fct);</div><div class='ctx'> </div><div class='ctx'>       if (err_stat != B_NO_ERROR) {</div><div class='del'>-	    char real_name[1024];</div><div class='del'>-	    strcpy(real_name, buf);</div><div class='del'>-	    strcat(real_name, "__Fv");</div><div class='add'>+	char real_name[MAXPATHLEN];</div><div class='add'>+</div><div class='add'>+	strlcpy(real_name, buf, MAXPATHLEN);</div><div class='add'>+	strlcat(real_name, "__Fv", MAXPATHLEN);</div><div class='ctx'>         err_stat = get_image_symbol(img_id, real_name,</div><div class='del'>-				  B_SYMBOL_TYPE_TEXT, &amp;init_fct);</div><div class='add'>+				    B_SYMBOL_TYPE_TEXT, (void **)&amp;init_fct);</div><div class='ctx'>       }</div><div class='ctx'> </div><div class='ctx'>       if ((B_BAD_IMAGE_ID == err_stat) || (B_BAD_INDEX == err_stat)) {</div><div class='ctx'> 	unload_add_on(img_id);</div><div class='del'>-	LoadError("Failed to lookup Init function %.200s", file);</div><div class='add'>+	dln_loaderror("Failed to lookup Init function %.200s", file);</div><div class='ctx'>       }</div><div class='ctx'>       else if (B_NO_ERROR != err_stat) {</div><div class='ctx'> 	char errmsg[] = "Internal of BeOS version. %.200s (symbol_name = %s)";</div><div class='ctx'> 	unload_add_on(img_id);</div><div class='del'>-	LoadError(errmsg, strerror(err_stat), buf);</div><div class='add'>+	dln_loaderror(errmsg, strerror(err_stat), buf);</div><div class='ctx'>       }</div><div class='ctx'> </div><div class='ctx'>       /* call module initialize function. */</div><div class='ctx'>       (*init_fct)();</div><div class='del'>-      return;</div><div class='add'>+      return (void*)img_id;</div><div class='ctx'>     }</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'>-      extern LoadError();</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'>-	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'>-	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'>-	LoadError("Unresolved symbols - %s" , file);</div><div class='del'>-      }</div><div class='del'>-	</div><div class='del'>-      init_fct = (void (*)())symAddr;</div><div class='del'>-      (*init_fct)();</div><div class='del'>-      return;</div><div class='del'>-    }</div><div class='del'>-#endif /* __MACOS__ */</div><div class='add'>+#endif /* __BEOS__ || __HAIKU__ */</div><div class='ctx'> </div><div class='ctx'> #ifndef DLN_DEFINED</div><div class='del'>-    rb_notimplement("dynamic link not supported");</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'>-    LoadError("%s - %s", dln_strerror(), file);</div><div class='add'>+    dln_loaderror("%s - %s", error, file);</div><div class='ctx'> #endif</div><div class='del'>-}</div><div class='ctx'> </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'>-    char *fname;</div><div class='del'>-    char *path;</div><div class='del'>-{</div><div class='del'>-#if defined(__human68k__)</div><div class='del'>-    if (!path)</div><div class='del'>-	path = getenv("path");</div><div class='del'>-    if (!path)</div><div class='del'>-	path = "/usr/local/bin;/usr/ucb;/usr/bin;/bin;.";</div><div class='del'>-#else</div><div class='del'>-    if (!path) path = getenv("PATH");</div><div class='del'>-    if (!path) path = "/usr/local/bin:/usr/ucb:/usr/bin:/bin:.";</div><div class='del'>-#endif</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'>-    char *fname;</div><div class='del'>-    char *path;</div><div class='del'>-{</div><div class='del'>-    if (!path) path = ".";</div><div class='del'>-    return dln_find_1(fname, path, 0);</div><div class='del'>-}</div><div class='del'>-</div><div class='del'>-#if defined(__CYGWIN32__)</div><div class='del'>-char *</div><div class='del'>-conv_to_posix_path(win32, posix)</div><div class='del'>-    char *win32;</div><div class='del'>-    char *posix;</div><div class='del'>-{</div><div class='del'>-    char *first = win32;</div><div class='del'>-    char *p = win32;</div><div class='del'>-    char *dst = posix;</div><div class='del'>-</div><div class='del'>-    for (p = win32; *p; p++)</div><div class='del'>-	if (*p == ';') {</div><div class='del'>-	    *p = 0;</div><div class='del'>-	    cygwin32_conv_to_posix_path(first, posix);</div><div class='del'>-	    posix += strlen(posix);</div><div class='del'>-	    *posix++ = ':';</div><div class='del'>-	    first = p + 1;</div><div class='del'>-	    *p = ';';</div><div class='del'>-	}</div><div class='del'>-    cygwin32_conv_to_posix_path(first, posix);</div><div class='del'>-    return dst;</div><div class='del'>-}</div><div class='del'>-#endif</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'>-</div><div class='del'>-#if defined(__CYGWIN32__)</div><div class='del'>-    char rubypath[MAXPATHLEN];</div><div class='del'>-    conv_to_posix_path(path, rubypath);</div><div class='del'>-    path = rubypath;</div><div class='del'>-#endif</div><div class='del'>-#ifndef __MACOS__</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'>-#if defined(MSDOS) || defined(NT) || defined(__human68k__)</div><div class='del'>-    if (fname[0] == '\\') return fname;</div><div class='del'>-    if (strlen(fname) &gt; 2 &amp;&amp; fname[1] == ':') 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'>-#endif</div><div class='del'>-#endif /* __MACOS__ */</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'>-#if !defined(MSDOS)  &amp;&amp; !defined(NT) &amp;&amp; !defined(__human68k__) &amp;&amp; !defined(__MACOS__)</div><div class='del'>-	ep = strchr(dp, ':');</div><div class='del'>-#else</div><div class='del'>-	ep = strchr(dp, ';');</div><div class='del'>-#endif</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(MSDOS) || defined(NT) || defined(__human68k__)</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'>-#ifdef __MACOS__</div><div class='del'>-		*bp++ = ':';</div><div class='del'>-#else</div><div class='del'>-		*bp++ = '/';</div><div class='del'>-#endif</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'>-	    continue;</div><div class='del'>-	}</div><div class='del'>-	memcpy(bp, fname, i + 1);</div><div class='del'>-</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 (eaccess(fbuf, X_OK) == 0) return fbuf;</div><div class='del'>-	}</div><div class='del'>-#if defined(MSDOS) || defined(NT) || defined(__human68k__)</div><div class='del'>-	if (exe_flag) {</div><div class='del'>-	    static const char *extension[] = {</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'>-#else</div><div class='del'>-		".r", ".R", ".x", ".X", ".bat", ".BAT",</div><div class='del'>-#endif</div><div class='del'>-		(char *) NULL</div><div class='del'>-	    };</div><div class='del'>-	    int j;</div><div class='del'>-</div><div class='del'>-	    for (j = 0; extension[j]; 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'>-		if (stat(fbuf, &amp;st) == 0)</div><div class='del'>-		    return fbuf;</div><div class='del'>-	    }</div><div class='del'>-	}</div><div class='del'>-#endif /* MSDOS or NT or __human68k__ */</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='add'>+    return 0;			/* dummy return */</div><div class='ctx'> }</div><div class='head'>diff --git a/dln.h b/dln.h<br/>index 7af1f63a9d..abbd6d85a3 100644<br/>--- a/<a href='/ruby.git/tree/dln.h?h=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dln.h</a><br/>+++ b/<a href='/ruby.git/tree/dln.h?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dln.h</a></div><div class='hunk'>@@ -1,30 +1,50 @@</div><div class='del'>-/************************************************</div><div class='add'>+/**********************************************************************</div><div class='ctx'> </div><div class='ctx'>   dln.h -</div><div class='ctx'> </div><div class='ctx'>   $Author$</div><div class='del'>-  $Revision$</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'>-************************************************/</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='ctx'> #ifndef DLN_H</div><div class='ctx'> #define DLN_H</div><div class='ctx'> </div><div class='del'>-#ifndef _</div><div class='del'>-#ifndef __STDC__</div><div class='del'>-# define _(args) ()</div><div class='del'>-#else</div><div class='add'>+#ifdef __cplusplus</div><div class='add'>+# ifndef  HAVE_PROTOTYPES</div><div class='add'>+#  define HAVE_PROTOTYPES 1</div><div class='add'>+# endif</div><div class='add'>+# ifndef  HAVE_STDARG_PROTOTYPES</div><div class='add'>+#  define HAVE_STDARG_PROTOTYPES 1</div><div class='add'>+# endif</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#undef _</div><div class='add'>+#ifdef HAVE_PROTOTYPES</div><div class='ctx'> # define _(args) args</div><div class='add'>+#else</div><div class='add'>+# define _(args) ()</div><div class='ctx'> #endif</div><div class='add'>+</div><div class='add'>+#if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='add'>+#pragma GCC visibility push(default)</div><div class='ctx'> #endif</div><div class='ctx'> </div><div class='del'>-char *dln_find_exe _((char*,char*));</div><div class='del'>-char *dln_find_file _((char*,char*));</div><div class='add'>+DEPRECATED(char *dln_find_exe(const char*,const char*));</div><div class='add'>+DEPRECATED(char *dln_find_file(const char*,const char*));</div><div class='add'>+char *dln_find_exe_r(const char*,const char*,char*,size_t);</div><div class='add'>+char *dln_find_file_r(const char*,const char*,char*,size_t);</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 _((char*));</div><div class='add'>+void *dln_load(const char*);</div><div class='add'>+</div><div class='add'>+#if defined __GNUC__ &amp;&amp; __GNUC__ &gt;= 4</div><div class='add'>+#pragma GCC visibility pop</div><div class='add'>+#endif</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..7ce3a957ed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dln_find.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dln_find.c</a></div><div class='hunk'>@@ -0,0 +1,320 @@</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_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'>+#define dln_warning rb_warning</div><div class='add'>+#define dln_warning_arg</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'>+#define dln_warning fprintf</div><div class='add'>+#define dln_warning_arg stderr,</div><div class='add'>+static void dln_loaderror(const char *format, ...);</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'>+#ifndef xmalloc</div><div class='add'>+void *xmalloc();</div><div class='add'>+void *xcalloc();</div><div class='add'>+void *xrealloc();</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#define free(x) xfree(x)</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_SYS_PARAM_H</div><div class='add'>+# include &lt;sys/param.h&gt;</div><div class='add'>+#endif</div><div class='add'>+#ifndef MAXPATHLEN</div><div class='add'>+# define MAXPATHLEN 1024</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'>+#ifndef _WIN32</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'>+</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'>+{</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'>+#if defined(_WIN32)</div><div class='add'>+	path = "/usr/local/bin;/usr/ucb;/usr/bin;/bin;.";</div><div class='add'>+#else</div><div class='add'>+	path = "/usr/local/bin:/usr/ucb:/usr/bin:/bin:.";</div><div class='add'>+#endif</div><div class='add'>+    }</div><div class='add'>+    buf = dln_find_1(fname, path, buf, size, 1);</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'>+{</div><div class='add'>+    if (!path) path = ".";</div><div class='add'>+    return dln_find_1(fname, path, buf, size, 0);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static char fbuf[MAXPATHLEN];</div><div class='add'>+</div><div class='add'>+char *</div><div class='add'>+dln_find_exe(const char *fname, const char *path)</div><div class='add'>+{</div><div class='add'>+    return dln_find_exe_r(fname, path, fbuf, sizeof(fbuf));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+char *</div><div class='add'>+dln_find_file(const char *fname, const char *path)</div><div class='add'>+{</div><div class='add'>+    return dln_find_file_r(fname, path, fbuf, sizeof(fbuf));</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'>+{</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 /* _WIN32 or __EMX__ */</div><div class='add'>+</div><div class='add'>+	if (stat(fbuf, &amp;st) == 0) {</div><div class='add'>+	    if (exe_flag == 0) return fbuf;</div><div class='add'>+	    /* looking for executable */</div><div class='add'>+	    if (!S_ISDIR(st.st_mode) &amp;&amp; eaccess(fbuf, X_OK) == 0)</div><div class='add'>+		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/>new file mode 100644<br/>index 0000000000..2c8aacc06a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dmydln.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dmydln.c</a></div><div class='hunk'>@@ -0,0 +1,7 @@</div><div class='add'>+#include "ruby/ruby.h"</div><div class='add'>+</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='head'>diff --git a/dmyencoding.c b/dmyencoding.c<br/>new file mode 100644<br/>index 0000000000..1bd1106e69<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dmyencoding.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dmyencoding.c</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+#define NO_LOCALE_CHARMAP 1</div><div class='add'>+#include "encoding.c"</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=v1_9_3_326&amp;id=ee5ab9cc136baf18756abc6bd5d136a0231f973e'>dmyext.c</a><br/>+++ b/<a href='/ruby.git/tree/dmyext.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>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/dmyversion.c b/dmyversion.c<br/>new file mode 100644<br/>index 0000000000..279c6ea95a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/dmyversion.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>dmyversion.c</a></div><div class='hunk'>@@ -0,0 +1,2 @@</div><div class='add'>+#define NO_INITIAL_LOAD_PATH 1</div><div class='add'>+#include "version.c"</div><div class='head'>diff --git a/doc/ChangeLog-1.8.0 b/doc/ChangeLog-1.8.0<br/>new file mode 100644<br/>index 0000000000..e16c7f4f20<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-1.8.0?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/ChangeLog-1.8.0</a></div><div class='hunk'>@@ -0,0 +1,24350 @@</div><div class='add'>+Mon Aug  4 17:21:19 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (class_instance_method_list): methods defined in</div><div class='add'>+	  singleton class and extended modules should be included.</div><div class='add'>+	  [ruby-dev:21119]</div><div class='add'>+</div><div class='add'>+Mon Aug  4 13:05:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_proc): should specify YIELD_FUNC_SVALUE.</div><div class='add'>+	  [ruby-dev:21107]</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should not call w_extended for USRMARSHAL</div><div class='add'>+	  dump. [ruby-dev:21106]</div><div class='add'>+</div><div class='add'>+Mon Aug  4 10:42:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb: Flushed io in the</div><div class='add'>+	  Console::TestRunner so that it will output immediately.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 10:27:22 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.h: remove unnecessary parentheses.  [ruby-dev:20879]</div><div class='add'>+</div><div class='add'>+Mon Aug  4 10:00:47 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (receive_responses): raise exception to</div><div class='add'>+	client_thread. Thanks to William Webber.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 09:22:53 2003  William Webber &lt;wew@williamwebber.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: convert RD to RDoc.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 02:34:05 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_utime): never use utime() of C runtime.</div><div class='add'>+	  [ruby-talk:77782]</div><div class='add'>+</div><div class='add'>+Sun Aug  3 23:56:50 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): should propagate previous block for</div><div class='add'>+	  super call.  [ruby-talk:77884]</div><div class='add'>+</div><div class='add'>+Sun Aug  3 22:07:47 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: support 'validatecommand' option of </div><div class='add'>+	  TkEntry/TkSpinbox widget</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/{demos-en,demos-jp}/spin.rb: add</div><div class='add'>+</div><div class='add'>+Sun Aug  3 19:25:28 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): clear exception flag temporarily.</div><div class='add'>+	  [ruby-dev:21090]</div><div class='add'>+</div><div class='add'>+Sun Aug  3 18:03:44 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.h (re_mbctab): should refer to RUBY_EXPORT.  [ruby-ext:02199]</div><div class='add'>+</div><div class='add'>+	* lib/un.h (help): new.  % ruby -run -e help cp</div><div class='add'>+</div><div class='add'>+Sun Aug  3 08:53:06 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/{demos-en,demos-jp}/image3.rb: add </div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: bug fix on Tk object ID management</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tktext.rb: ditto</div><div class='add'>+</div><div class='add'>+Sun Aug  3 02:55:52 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: modify macro to detect 'MacOS X' [ruby-talk:77849]</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/lib/tcltk.rb: bug fix ( NOT MAINTAINED : only</div><div class='add'>+	  for running 'line2.rb' demo. )</div><div class='add'>+</div><div class='add'>+Sun Aug  3 02:45:06 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): get rid of buffer overflow.</div><div class='add'>+</div><div class='add'>+Sat Aug  2 23:51:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): clearerr(3) before raising exception, since</div><div class='add'>+	  exception may be captured by rescue. [ruby-talk:77794]</div><div class='add'>+</div><div class='add'>+Sat Aug  2 09:58:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix --- TkGrid failed to treat </div><div class='add'>+	  RELATIVE PLACEMENT</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/, demos-jp/: add or modify some</div><div class='add'>+	  widget demo scripts</div><div class='add'>+</div><div class='add'>+Sat Aug  2 20:59:38 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb: change an option name.</div><div class='add'>+	  :SSLCertStore -&gt; :SSLCertificateStore.</div><div class='add'>+</div><div class='add'>+Sat Aug  2 19:18:40 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: respond_to? needs 2nd argument.</div><div class='add'>+	  Thanks Jim Bob.  [ruby-talk:77796]</div><div class='add'>+</div><div class='add'>+Sat Aug  2 15:11:54 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (--no-undefined): annoying option removed.</div><div class='add'>+</div><div class='add'>+Sat Aug  2 14:53:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (pkg_config): get configuration by pkg-config.  [new]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: use pkg_config.</div><div class='add'>+</div><div class='add'>+Sat Aug  2 13:45:17 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: add "#pragma weak" for __libc_ia64_register_backing_store_base.</div><div class='add'>+	  [ruby-dev:21072]</div><div class='add'>+</div><div class='add'>+Sat Aug  2 14:02:39 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): find regular class name if not set.</div><div class='add'>+	  [ruby-dev:20496]</div><div class='add'>+</div><div class='add'>+Sat Aug  2 09:58:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix --- forgot to entry a widget class </div><div class='add'>+	  name of 'labelframe' widget</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/{demos-en,demos-jp}/{labelframe.rb,paned1.rb,</div><div class='add'>+	  paned2.rb,spin.rb}: add demo-scripts to the JP/EN widget demos</div><div class='add'>+</div><div class='add'>+Sat Aug  2 05:04:30 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: bug fix of TkEntry#delete</div><div class='add'>+</div><div class='add'>+	* ext/tk/samples/: bug fix of some widget demos</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: support &lt;TkVariable object&gt; == &lt;Symbol&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/*.rb: freeze some object for security reason</div><div class='add'>+</div><div class='add'>+Sat Aug  2 03:30:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_singleton_methods): should not go up to</div><div class='add'>+	  ancestors unless the recursive flag is set. [ruby-list:38007]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): expand [] to nil if avalue is set.</div><div class='add'>+	   [ruby-dev:21058]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_key): use env_keys to avoid environment modify</div><div class='add'>+	  on the fly.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_value): use env_values for safety.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each): allocate environment array first.</div><div class='add'>+</div><div class='add'>+Fri Aug  2 03:20:00 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/store.rb (YAML::Store#initialize): filename is first</div><div class='add'>+	  argument.  Thanks Kent Dahl.</div><div class='add'>+</div><div class='add'>+Sat Aug  2 00:49:31 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: refine document.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:57:45 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_locations): no need to swap arguments.</div><div class='add'>+</div><div class='add'>+	* gc.c (STACK_LENGTH): insufficient for growing up stack</div><div class='add'>+	  architectures.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc, Init_stack) ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:33:36 2003  Masatoshi Seki  &lt;mas@snow.local.&gt;</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: set dldpath on darwin.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:07:38 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: convert RD to RDoc. Thanks William Webber.</div><div class='add'>+	  [ruby-doc:456]</div><div class='add'>+</div><div class='add'>+Fri Aug  1 19:48:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_write_m): forgot to declare</div><div class='add'>+	  "self", making it default to "int".</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_simple_write): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): should mark backing store region on IA64.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 18:51:10 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: bug fix --- preprocessor errors occur on OpenBSD-current</div><div class='add'>+</div><div class='add'>+Fri Aug  1 17:13:23 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: should replace literally.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 16:22:57 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable, rb_io_check_writable): ensure not</div><div class='add'>+	  closed at first.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): check readable always.  (ruby-bugs:PR#1069)</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_byte): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 16:02:46 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_PENDING_PTR): cast to get rid of warnings.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_send_io, unix_recv_io): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 15:53:24 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (isInternalCmd): shouldn't return if find end of str.</div><div class='add'>+	  [ruby-talk:77678]</div><div class='add'>+</div><div class='add'>+Fri Aug  1 13:45:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): propagate previous block if a block is</div><div class='add'>+	  given.  [ruby-talk:77577]</div><div class='add'>+</div><div class='add'>+Fri Aug  1 09:54:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): array length may be changed during the</div><div class='add'>+	  block execution. [ruby-talk:77579]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_reject_bang): length may be changed during the block</div><div class='add'>+	  execution.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_clear): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 04:58:55 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix --- forget to eval given block to </div><div class='add'>+	  TkRoot.new method</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkoptdb-safeTk.rb: new sample script</div><div class='add'>+</div><div class='add'>+Fri Aug  1 00:52:58 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): IA64 requires STACK_LEVEL_MAX to be less than</div><div class='add'>+	  magic number when optimizer turned on, regardless of rlimit</div><div class='add'>+	  values.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 23:44:00 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: import erb-2.0.4b4.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 23:04:45 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/resource.en, ext/tk/sample/resource.jp: </div><div class='add'>+	  wrong resource file format</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk::Encoding.{encoding_convertfrom, </div><div class='add'>+	  encoding_convertto}</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkOptionDB.read_with_encoding to read </div><div class='add'>+	  non-utf8 resource file</div><div class='add'>+</div><div class='add'>+Thu Jul 31 23:02:47 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: revert getenv()'s prototype. use it only when _WIN32</div><div class='add'>+	  is not defined.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 20:52:40 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: (IMPORTANT BUG FIX) scan of event keywords</div><div class='add'>+	  doesn't work on recent versions of Tck/Tk</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: initialize error of instance variable on </div><div class='add'>+	  TkComposite</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: initialize error on encoding-system on </div><div class='add'>+	  MultiTkIp</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: trouble on destroying widgets</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/, demos-jp/: add JP and EN version of </div><div class='add'>+	  Ruby/Tk widget demos</div><div class='add'>+</div><div class='add'>+Thu Jul 31 15:25:12 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_collect): must get length of array for each</div><div class='add'>+	  iteration. reported on [ruby-talk:77500], and fixed by</div><div class='add'>+	  K.Sasada &lt;ko1@namikilab.tuat.ac.jp&gt; on [ruby-talk:77504]</div><div class='add'>+</div><div class='add'>+Thu Jul 31 14:11:54 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: move gmake specific features</div><div class='add'>+	  into GNUmakefile.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 12:36:11 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb, lib/erb.rb: add explicit trim mode.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 04:59:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_coerce_relop): export function.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 08:18:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: A useful return code is now set if tests fail when</div><div class='add'>+	  running automatically using the Console::TestRunner.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 07:59:18 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: wrap the command-proc of TkScale --- pass </div><div class='add'>+	  the numeric object to the proc</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: better support for widgets created on </div><div class='add'>+	  Tk interpreter (without Ruby)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: a little more stable on Multiple Tk </div><div class='add'>+	  interpreters running</div><div class='add'>+</div><div class='add'>+Thu Jul 31 00:17:19 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (return_code): obsolete.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (last_response_code): new method. lastresp is now</div><div class='add'>+	  alias to last_response_code.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (last_response): new method.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 23:55:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): check has been dropped. "_dump must return</div><div class='add'>+	  string." [ruby-dev:21024]</div><div class='add'>+</div><div class='add'>+Wed Jul 30 22:35:19 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): allow multiple directories separated</div><div class='add'>+	  by File::PATH_SEPARATOR.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): DLDFLAGS include $LDFLAGS again.</div><div class='add'>+	  [ruby-talk:76894]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): not default $LDFLAGS to LDFLAGS for</div><div class='add'>+	  ruby itself, but default $DLDFLAGS to DLDFLAGS.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 16:17:06 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): marshal_dump should not take any</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 15:54:04 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): should initialize</div><div class='add'>+	  instance variables. [ruby-talk:77362]</div><div class='add'>+</div><div class='add'>+Wed Jul 30 15:39:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -F set compiled regular expression to $;.</div><div class='add'>+	  [ruby-talk:77381]</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): no setter type check for $;</div><div class='add'>+</div><div class='add'>+Wed Jul 30 15:10:02 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_raise): snprintf() termination moved to</div><div class='add'>+	  win32/win32.c.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (valid_filename, str_grow): unused.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NTLoginName, ChildRecord): make static.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): argument check.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): should not call CloseHandle() when</div><div class='add'>+	  OpenProcess() failed.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_vsnprintf, rb_w32_snprintf): ensure buffer</div><div class='add'>+	  terminated.  [ruby-talk:69672]</div><div class='add'>+</div><div class='add'>+Wed Jul 30 10:54:10 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (get): fix wrong argument name. Thanks to William</div><div class='add'>+	  Webber.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 10:31:37 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): append unchanged portion</div><div class='add'>+	  after overflow.  [ruby-dev:21006]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/extconf.rb: check if iconv() 2nd argument is const.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 09:31:55 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (os2-emx): renamed from os2_emx, add flags to</div><div class='add'>+	  CFLAGS and LDFLAGS, and remove lib prefix.  [ruby-dev:20993]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_rename): retry with removing new file on</div><div class='add'>+	  DOSISH.  [ruby-dev:21007]</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb (sendmsg, recvmsg): check functions.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_send_io, unix_recv_io): raise</div><div class='add'>+	  NotImplementedError unless system calls are available.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_initialize): rename from sock_init()</div><div class='add'>+	  to get rid of conflict with OS/2 socket library.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 07:23:14 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: fix lack of methods for TkEntry</div><div class='add'>+</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='add'>+	  ext/tk/sample/safe-tk.rb, ext/tk/sample/tktimer2.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp.new_* accept a block to </div><div class='add'>+	  eval under the new interpreter</div><div class='add'>+</div><div class='add'>+Wed Jul 30 04:36:30 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</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='add'>+	  Tk interpreters' status for a little more safety</div><div class='add'>+</div><div class='add'>+Wed Jul 30 02:37:12 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): if object responds to 'marshal_dump',</div><div class='add'>+	  Marshal.dump uses it to dump object.  unlike '_dump',</div><div class='add'>+	  marshal_dump returns any kind of object.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): restore instance by calling</div><div class='add'>+	  'marshal_load' method.  unlike '_load', it's an instance</div><div class='add'>+	  method, to handle cyclic reference.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): all objects read from file should be</div><div class='add'>+	  tainted. [ruby-core:01325]</div><div class='add'>+</div><div class='add'>+Wed Jul 30 01:47:51 2003  Hugh Sasse  &lt;hgs@dmu.ac.uk&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout::timeout): execute immediately if sec is</div><div class='add'>+	  zero.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 01:36:18 2003  Aron Griffis  &lt;ruby-talk@griffis1.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socks_init): typo fixed. [ruby-talk:77232]</div><div class='add'>+</div><div class='add'>+Wed Jul 30 00:48:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: the default value for --enable-socks is</div><div class='add'>+	  taken from ENV["SOCKS_SERVER"]. [ruby-talk:77232]</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): add -W option. -W0 to shut up all warning</div><div class='add'>+	  messages. [ruby-talk:77227]</div><div class='add'>+</div><div class='add'>+	* error.c (rb_warn): no message will be printed if the value of</div><div class='add'>+	  $VERBOSE is "nil", i.e. perfect silence.</div><div class='add'>+</div><div class='add'>+	* ruby.c (verbose_setter): $VERBOSE value is either true, false,</div><div class='add'>+	  or nil.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): no "read" check for $stdin.  in addition some</div><div class='add'>+	  function names has been changed.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 23:10:19 2003  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match_exec): incorrect multibyte match.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 22:36:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (send0): do taint check only when $SAFE &gt; 0</div><div class='add'>+</div><div class='add'>+Tue Jul 29 19:20:34 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (install): support preserve timestamp.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install): use FileUtils::install preserve mode.</div><div class='add'>+</div><div class='add'>+	* lib/un.rb: new.  % ruby -run -e cp -- -p foo bar</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use un.rb instead of ftools.rb.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add lib/un.rb.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (INSTALL_PROG, INSTALL_DATA): modify verbose messages.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 18:55:22 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: unify coding style.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 17:27:59 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (LLONG_MIN): fix typo.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 16:38:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP::send0): add taint check.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 15:41:02 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install): preserve the timestamp for Mac OS X ranlib</div><div class='add'>+	  problem.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 01:14:51 2003  Rick Ohnemus  &lt;rick_ohnemus@acm.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (LLONG_MIN): wrong value.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 22:57:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_getc): $stdin may not be IO. [ruby-dev:20973]</div><div class='add'>+</div><div class='add'>+Tue Jul 29 16:20:36 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: bug fix and </div><div class='add'>+	  change mainloop_abort_on_no_widget_cmd =&gt; mainloop_abort_on_exception</div><div class='add'>+	  ( to avoid thread timing trouble on accessing destroyed widgets )</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: change default mode of </div><div class='add'>+	  mainloop_abort_on_exception on multi-tk.rb</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix a bug of the procedure for </div><div class='add'>+	  'Delete' button on the safe-Tk frmae</div><div class='add'>+</div><div class='add'>+Tue Jul 29 12:22:28 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: prefixed many constants and definitions</div><div class='add'>+	  with YAML_ to avoid name clash.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.h: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 12:15:37 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: add real prototype to getenv().</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: add arguments to definitions of functions if possible.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 08:05:30 2003  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/tkdialog.rb, ext/tk/lib/tktext.rb, </div><div class='add'>+	  ext/tk/sample/tkbiff.rb, ext/tk/sample/tkdialog.rb, </div><div class='add'>+	  ext/tk/sample/tkform.rb: bug fix ( tested with Ruby/Tk widget demo )</div><div class='add'>+</div><div class='add'>+Tue Jul 29 04:22:08 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: Added 'syck' yacc prefixes.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck: Added ruby.h reference to source files.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 03:53:28 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/https.rb (use_ssl=): raise ProtocolError if</div><div class='add'>+	  connection is set up already.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 01:45:32 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: use RTEST()</div><div class='add'>+</div><div class='add'>+Tue Jul 29 01:24:32 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: bug fix and pack options are pssed</div><div class='add'>+	  to the safeTk container</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/safe-tk.rb: add example for pack options of </div><div class='add'>+	  safeTk container</div><div class='add'>+</div><div class='add'>+Mon Jul 28 23:23:08 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): IO should include File::Const.</div><div class='add'>+	  [ruby-dev:20964]</div><div class='add'>+</div><div class='add'>+Mon Jul 28 18:53:03 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check again after pkg-config for MinGW on</div><div class='add'>+	  Cygwin.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 15:32:04 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_gets): only "gets" should set $_.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getline): should not set $_ here.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_to_s): argf.to_s returns "ARGF".</div><div class='add'>+</div><div class='add'>+	* io.c (set_defout_var, set_deferr_var): make $defout and $deferr</div><div class='add'>+	  obsolete.</div><div class='add'>+</div><div class='add'>+	* io.c (set_input_var, set_output_var): allow $stdin, $stdout,</div><div class='add'>+	  $stderr not to be instance of IO.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_readline): forward method to current_file. gets,</div><div class='add'>+	  readline, readlines, getc, readchar, tell, seek, pos=, rewind,</div><div class='add'>+	  fileno, to_io, eof, each_line, each_byte, binmode, and closed?</div><div class='add'>+	  as well.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_forward): utility function to forward method to</div><div class='add'>+	  current_file.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 06:10:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/lib/tk/multi-tk.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/lib/tk/multi-tk.rb: add methods depend on Tcl's 'interp' command</div><div class='add'>+</div><div class='add'>+	* ext/lib/tk/multi-tk.rb: suppot safe-level control of each interpreter</div><div class='add'>+</div><div class='add'>+Mon Jul 28 03:08:47 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: each() should return self.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 01:35:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): defer rb_str_modify() to actual</div><div class='add'>+	  modify point.  other methods, replace, tr, delete, squeeze,</div><div class='add'>+	  lstrip, and rstrip as well.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): remove trailing '\0' at the end</div><div class='add'>+	  of string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lstrip_bang): do not strip '\0' from the left.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 21:16:30 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: better support MinGW.  add</div><div class='add'>+	  dir_config("kerberos") and with_config("pkg-config").</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: initialize global variables to avoid warnings.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 19:35:06 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add some methods to support</div><div class='add'>+	  multiple interpreters (low level)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: new library to support multiple Tk </div><div class='add'>+	  interpreters (high level)</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/demo/safeTk.rb: new sample of safeTk interpreter</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/safe-tk.rb: new sample of multi-tk.rb</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix and add feature to supprt multi-tk</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: ditto</div><div class='add'>+</div><div class='add'>+Sun Jul 27 14:43:37 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: fix breakpoint parameter parsing/checking.</div><div class='add'>+	  (?:(file|class):)(line_number|method)</div><div class='add'>+</div><div class='add'>+Sun Jul 27 10:21:28 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/unix.rb: add UNIXFileOwner, UNIXFileGroup.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 03:10:43 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): avoid dup2() equal handles not to close itself and</div><div class='add'>+	  to get rid of a msvcrt bug.  [ruby-dev:20919]</div><div class='add'>+</div><div class='add'>+Sun Jul 27 00:37:16 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: use GetWindowsDirectory, not GetSystemDirectory.</div><div class='add'>+	  [ruby-talk:77073]</div><div class='add'>+</div><div class='add'>+Sat Jul 26 21:25:21 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fdopen): set errno if it's zero on win32 platforms.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (TO_SOCKET): define special version when</div><div class='add'>+	  _WIN32 is defined. this is ruby's problem, not OpenSSL.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: remove some old comments.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 14:26:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkCore::chooseDirectory): back up wrongly</div><div class='add'>+	  removed method.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 14:14:12 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: includes Enumerable as well as IO.</div><div class='add'>+	  [ruby-talk:77058]</div><div class='add'>+</div><div class='add'>+Sat Jul 26 07:00:53 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: fix % line.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 05:31:09 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: fix comment.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_debug): should enable if no va-args</div><div class='add'>+	  macro supplied.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 04:04:36 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: refine va-args macro detection.</div><div class='add'>+	  [ruby-talk:76983]</div><div class='add'>+</div><div class='add'>+Sat Jul 26 01:33:51 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_setup): need to pass the real</div><div class='add'>+	  socket to SSL_get_fd on native win32 platforms.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 01:20:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_missing): "const_missing" should not</div><div class='add'>+	  appear in the caller(); add call frame adjustment.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): simplify call frame adjustment.</div><div class='add'>+</div><div class='add'>+Fri Jul 26 00:04:25 2003  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/sample: add samples.</div><div class='add'>+	  - cert2text.rb: dump certificate file as text.</div><div class='add'>+	  - crlstore.rb: CRL store implementation.  Fetch CRL via HTTP when</div><div class='add'>+	    http-access2 is installed.</div><div class='add'>+	  - certstore.rb: certificate store implementation.</div><div class='add'>+	  - cert_store_view.rb: certificate store viewer with FXRuby.  Uses</div><div class='add'>+	    c_rehash.rb, crlstore.rb and certstore.rb.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 16:43:03 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add TclTkIp#create_slave, </div><div class='add'>+	  TclTkIp#_make_safe and TclTkIp#safe?</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/MANUAL.euc: modify descriptions</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix [ruby-talk:76980] and modify to </div><div class='add'>+	  support multi Tk IPs</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: modify to support multi Tk IPs</div><div class='add'>+</div><div class='add'>+Fri Jul 25 15:47:39 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for BN_rand_range() and</div><div class='add'>+	  BN_pseudo_rand_range().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_s_rand_range): should raise </div><div class='add'>+	  NotImplementedError if BN_rand_range() wan not defined.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_s_pseudo_rand_range): should raise </div><div class='add'>+	  NotImplementedError if BN_pseudo_rand_range() wan not defined.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_s_encrypt): avoid compiler</div><div class='add'>+	  warning for OpenSSL-0.9.6.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7si_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 14:34:55 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_s_gethostbyname): was using</div><div class='add'>+	  uninitialized size_t value. [ruby-talk:76946]</div><div class='add'>+</div><div class='add'>+Fri Jul 25 13:38:38 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_options_m): use rb_reg_options() to mask internal</div><div class='add'>+	  flags.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): allow nil as third argument and</div><div class='add'>+	  ignore, and mask code flags if the argument is given.</div><div class='add'>+	  [ruby-dev:20885]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_options): get common flags directly.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 03:52:21 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/dbm.rb: replace indexes with values_at.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 02:55:59 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for libsocket and libnsl.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: use pkg-config to build CFLAGS and LDFLAGS.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 01:27:59 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emitter_flush): accepts count</div><div class='add'>+	  of bytes to flush.  anchor offsets now functional.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h (syck_emitter_flush): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: URI escaping now supported.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 16:41:31 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_type): check if a type is defined.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): check size of a type.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: check if type DBM is defined.</div><div class='add'>+	  [ruby-talk:76693]</div><div class='add'>+</div><div class='add'>+Thu Jul 24 16:18:40 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog (add-log-time-format): "%c" contains timezone on</div><div class='add'>+	  XEmacs.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 16:05:22 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_C_VOLATILE): check if volatile works.</div><div class='add'>+</div><div class='add'>+	* defines.h (volatile): removed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_group): Thread#group.  [new]</div><div class='add'>+</div><div class='add'>+Thu Jul 24 15:50:42 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for win32 OpenSSL libraries.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for __VA_ARGS__.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: avoid non C99 compiler errors.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 13:32:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_add): no warning for terminated threads.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 13:09:26 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: added.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 11:21:10 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/extconf.rb: removed unnecessary backward</div><div class='add'>+	  compatibility stuff.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 11:09:10 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: revert use of dir_config.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 09:58:32 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/lib/win32/resolv.rb: added.</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: support Win32 platforms. based on Tietew's work</div><div class='add'>+	  [ruby-dev:15573].</div><div class='add'>+</div><div class='add'>+Thu Jul 24 04:05:46 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ssl.h: undef X509_NAME and PKCS7_SIGNER_INFO to</div><div class='add'>+	  avoid name confliction on mswin32.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ssl.c (ossl_protect_obj2bio): avoid VC++ warnings</div><div class='add'>+	  in function prototype.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ssl.c (ossl_protect_membio2str): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ssl.c (ossl_protect_x509_ary2sk): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 03:44:04 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: cut check for OpenSSL version</div><div class='add'>+</div><div class='add'>+Thu Jul 24 03:41:30 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): need at least one statement after</div><div class='add'>+	  label.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 01:48:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::[]): should return StringIO (or</div><div class='add'>+	  Tempfile) for multipart/form.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_const): give warning for non constant</div><div class='add'>+	  name. [ruby-core:01287]</div><div class='add'>+</div><div class='add'>+Thu Jul 24 01:51:08 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick: imported.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: added webrick files.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 01:32:04 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (tmpdir): new method.  remove TMPDIR.</div><div class='add'>+	  use GetSystemWindowsDirectory(GetSystemDirectory), not GetTempPath.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 01:08:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl: imported.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 23:06:59 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (DOSISH): better Cygwin support.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 19:13:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): the receiver may be empty string.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 18:43:00 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: import erb-2.0.4b1.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 18:21:52 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait: imported.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 16:07:35 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: unify indentation</div><div class='add'>+</div><div class='add'>+	* configure.in: add --enable-setreuid option</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: TclTkIp.new accepts 'ip-name' and 'options'</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: support arguments of TclTkIp.new</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk*.rb: preparations for multi-Tk interpreter support</div><div class='add'>+</div><div class='add'>+Wed Jul 23 15:49:01 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lstrip_bang): strip NUL along with white</div><div class='add'>+	  spaces. [ruby-talk:76659]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 14:19:17 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (log_src, checking_for, create_header):</div><div class='add'>+	  Logging.message is printf like format.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 10:11:15 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (check_iconv): check if Iconv instance.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): stringify argument.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 02:39:46 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: add a module for raw syscalls to control UID/GID</div><div class='add'>+</div><div class='add'>+	* process.c: add modules for portable UID/GID control</div><div class='add'>+</div><div class='add'>+Tue Jul 22 19:16:40 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_failure_initialize): limit</div><div class='add'>+	  inspect message.  [ruby-dev:20785]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (rb_str_derive): share with original</div><div class='add'>+	  string if possible.  [ruby-dev:20785]</div><div class='add'>+</div><div class='add'>+Tue Jul 22 17:22:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_missing): new method. [ruby-core:00441]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_at): allow "const_missing" hook.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_missing): rename from rb_undefined to clarify.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize_0): update exit status if any of END proc</div><div class='add'>+	  raises SystemExit. [ruby-core:01256]</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_trap_exit): wrap rb_eval_cmd</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): reduce rb_protect().</div><div class='add'>+</div><div class='add'>+Tue Jul 22 17:15:57 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST (lib/cgi/session/pstore.rb, lib/yaml/baseemitter.rb):</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 10:52:19 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: remove charcters after "\000" and regularize path.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 02:22:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_equal): should not use rb_equal().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): should return nil for non string</div><div class='add'>+	  operand to conform comparable convention. [ruby-dev:20759]</div><div class='add'>+</div><div class='add'>+Tue Jul 22 00:19:19 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: new library to get temporary directory path,</div><div class='add'>+	  using GetTempPath on Win32 environment.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: now uses tmpdir.rb.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb, ib/drb/unix.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 21 01:53:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value_cstr): check null byte in the string</div><div class='add'>+	  before retrieving C ptr.  accessed via macro StringValueCStr.</div><div class='add'>+</div><div class='add'>+	* file.c: use StringValueCStr to retrieve paths to system calls.</div><div class='add'>+</div><div class='add'>+	* file.c (sys_fail2): raise error for two operand system calls</div><div class='add'>+	  such as rename, link, symlink.  (ruby-bugs PR#1047)</div><div class='add'>+</div><div class='add'>+Sun Jul 20 11:03:25 2003  UENO Katsuhiro  &lt;katsu@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_read_header): gz-&gt;z.input may be nil after</div><div class='add'>+	  finishing reading a gzip header.</div><div class='add'>+</div><div class='add'>+Sat Jul 19 22:25:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match2): add warning to "~string".</div><div class='add'>+	  [ruby-list:37751]</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP::open): takes block.  suggested by Gavin</div><div class='add'>+	  Sinclair in [ruby-core:01237].</div><div class='add'>+</div><div class='add'>+Sat Jul 19 19:03:24 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/stdlib.c: add bsearch().</div><div class='add'>+</div><div class='add'>+Sat Jul 19 12:34:45 2003  David Black  &lt;dblack@superlink.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: import.</div><div class='add'>+</div><div class='add'>+Sat Jul 19 11:27:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc: import.</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_add): should return group for terminated thread</div><div class='add'>+	  case.</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_add): do not raise ThreadError on terminated</div><div class='add'>+	  thread addition for compatibility.  just warning.</div><div class='add'>+</div><div class='add'>+Sat Jul 19 04:50:56 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb, ext/iconv/extconf.rb: make wrapper</div><div class='add'>+	  script which maps charset names.  [ruby-dev:20625]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (charset_map): charset name map.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_dfree): no exception while</div><div class='add'>+	  finalization.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_s_conv): new method Iconv.conv.</div><div class='add'>+	  [ruby-dev:20588]</div><div class='add'>+</div><div class='add'>+Sat Jul 19 03:09:18 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/lib/win32/registry.rb (Win32::Registry::Error):</div><div class='add'>+	  inherit StandardError instead of SystemCallError.</div><div class='add'>+</div><div class='add'>+Sat Jul 19 02:00:39 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): extra calls of method_added.  [ruby-talk:76361]</div><div class='add'>+</div><div class='add'>+Fri Jul 18 18:44:22 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): clear $INSTALLFILES.  [ruby-dev:20727]</div><div class='add'>+</div><div class='add'>+Fri Jul 18 17:34:39 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (rm_f): use FileUtils.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (modified?): return mtime of the target if</div><div class='add'>+	  it exists and newer than times.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_files): add a current directory</div><div class='add'>+	  file even if it does not exist yet.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): do not add $LDFLAGS to</div><div class='add'>+	  DLDFLAGS.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): check whether Makefile is newer</div><div class='add'>+	  than depend and MANIFEST.</div><div class='add'>+</div><div class='add'>+Fri Jul 18 14:57:19 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (make_cmdvector): recognize quote within string.</div><div class='add'>+	  based on Nobu's patch ([ruby-win32:450]). [ruby-talk:75853]</div><div class='add'>+</div><div class='add'>+Fri Jul 18 13:04:36 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): VCALL is called only for LOCAL_ID.  no</div><div class='add'>+	  check required.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): primary:tFID generates NODE_FCALL.</div><div class='add'>+	  [ruby-dev:20641]</div><div class='add'>+</div><div class='add'>+Thu Jul 17 18:50:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_captures): rename from "groups".</div><div class='add'>+</div><div class='add'>+Thu Jul 17 17:57:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_clear_cache_by_class): check both klass and origin.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 13:46:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init): set ruby_running to true after</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 13:42:53 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (File::makedirs): do not handle "//" as a directory.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 06:40:28 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: recover and fix typo : Tk.chooseDirectory </div><div class='add'>+	  (Tk8.4 feature)</div><div class='add'>+</div><div class='add'>+Wed Jul 16 16:23:58 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_new): call svalue_to_avalue for yield argument.</div><div class='add'>+</div><div class='add'>+Wed Jul 16 00:31:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_disable_super, rb_enable_super): deprecate.</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_s_alloc): re-implement group struct.</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_add): add check for enclose and frozen status.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 19:50:49 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method, rb_alias): need to clear cache by</div><div class='add'>+	  ID when method defined in parent class is cached for</div><div class='add'>+	  grand child classes.  [ruby-dev:20672]</div><div class='add'>+</div><div class='add'>+Tue Jul 15 14:38:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: remove elements conversion to_f, to_i, to_r.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session/pstore.rb: add new file.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 03:30:41 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_mark_emitter): forgot to rb_gc_mark the </div><div class='add'>+	  outgoing IO object.</div><div class='add'>+</div><div class='add'>+Sun Jul 13 14:55:36 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getgroups, proc_setmaxgroups): fix typo.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 17:01:28 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_entry): add prototype to avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 04:43:57 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c: new emitter code.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: Emitter class.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: Load Syck emitter, if available.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/stream.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/baseemitter.rb: underlying class for all emitters.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: use BaseEmitter abstraction.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/emitter.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 04:23:13 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undef): need to clear cache for inherited class.</div><div class='add'>+	  (rubicon/builtin/TestModulePrivate.rb:test_undef_method)</div><div class='add'>+</div><div class='add'>+Sat Jul 12 01:21:54 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_svalue): typo.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): rb_prohibit_interrupt must not underflow.</div><div class='add'>+</div><div class='add'>+	* parse.y (NODE_STRTERM, tokadd_string, parse_string): moved</div><div class='add'>+	  string nest level from a static variable to NODE_STRTERM, to</div><div class='add'>+	  preserve it from word to word in %W/%w.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 22:37:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): needs ruby.imp even with gcc.</div><div class='add'>+	  (ruby-bugs:PR#1007)</div><div class='add'>+</div><div class='add'>+Fri Jul 11 18:37:37 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: do not handle directories. [ruby-dev:20613]</div><div class='add'>+</div><div class='add'>+Fri Jul 11 16:09:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): exp should be less than MDMAXEXPT.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 07:17:47 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: not create a Tcl/Tk interpreter if already </div><div class='add'>+	  defined TkCore::INTERP</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bugfix on TkWindow#configure</div><div class='add'>+</div><div class='add'>+Thu Jul 10 14:42:02 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): nan takes a dummy argument on Cygwin 1.5.0.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 23:50:46 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (mbctab_sjis): 0x80 is not shift jis first byte.</div><div class='add'>+	  [ruby-dev:20516]</div><div class='add'>+</div><div class='add'>+Wed Jul  9 15:38:28 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: do not install shared libraries as man pages.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: support text-mount on Cygwin.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 11:09:57 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_entry): add prototype to avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 03:48:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): put rb_load_file() in a thread critical</div><div class='add'>+	  section. [ruby-dev:20490]</div><div class='add'>+</div><div class='add'>+	* eval.c (compile): put rb_compile_string() in a thread critical</div><div class='add'>+	  section.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 02:35:41 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): should not warn if constant is not</div><div class='add'>+	  defined. (ruby-bugs-ja PR#509)</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2dbl): give a warning on overflow.</div><div class='add'>+	  (ruby-bugs-ja PR#510)</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): change MDMAXEXPT from 511 to 308.</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_to_uv): long is sufficient.  LONG_LONG is not</div><div class='add'>+	  required.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 01:43:16 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str): support 32 bit (without `long long' type)</div><div class='add'>+	  machines. (ruby-bugs-ja PR#512)</div><div class='add'>+</div><div class='add'>+Mon Jul  7 10:22:46 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb (gdbm_compat, qdbm): add check for gdbm_compat</div><div class='add'>+	  and qdbm.</div><div class='add'>+</div><div class='add'>+Mon Jul  7 01:34:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): k-&gt;super maybe NULL if klass is Kernel.</div><div class='add'>+	   [ruby-dev:20519]</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): clear method cache when freeing class/module.</div><div class='add'>+</div><div class='add'>+Sat Jul  5  23:32:06 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_remove_method): allow "remove_method" to accept</div><div class='add'>+	  multiple arguments.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 00:22:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (NEW_NODE): cast arguments to rb_node_newnode().</div><div class='add'>+</div><div class='add'>+Fri Jul  4 21:48:44 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c, ext/syck/syck.c, ext/syck/syck.h,</div><div class='add'>+	  ext/syck/token.c: C++ style comments are not allowed.</div><div class='add'>+	  (ruby-bugs:PR#1008)</div><div class='add'>+</div><div class='add'>+Thu Jul  3 23:41:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb: add optional exception argument for compatibility</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 14:22:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_values_at): extract common procedure from</div><div class='add'>+	  rb_ary_values_at.  follow DRY principle.</div><div class='add'>+</div><div class='add'>+	* re.c (match_values_at): values_at should understand ranges.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_values_at): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (inspect_struct): inspect format changed; add "struct "</div><div class='add'>+	  at the top.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): "%p" specifier for inspect output.</div><div class='add'>+	  (RCR#69)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_undef_method): allow "undef_method" to accept</div><div class='add'>+	  multiple arguments. (RCR#146)</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb: put timeout in Timeout module. (RCR#121)</div><div class='add'>+	  [ruby-talk:61028]</div><div class='add'>+</div><div class='add'>+	* re.c (match_groups): new method added. (RCR#139)</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_of): should exclude constant defined</div><div class='add'>+	  in Object, unless retrieving constants of Object.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 12:13:05 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (VPATH): convert from Windows form to Unix form on </div><div class='add'>+	  MinGW.  This fixes the build with GNU make 3.80-1 for Cygwin.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 23:27:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): do not allocate new string if original</div><div class='add'>+	  is frozen or already have copy-on-write entry. [ruby-talk:74940]</div><div class='add'>+</div><div class='add'>+Wed Jul  2 13:22:39 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_shared_replace): clear flags before copy.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): override visibility mode for module_eval</div><div class='add'>+	  etc. (ruby-bugs-ja PR#505)</div><div class='add'>+</div><div class='add'>+Wed Jul  2 11:45:34 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: synchronize document with source code.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 11:39:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: unify SMTP and SMTPCommand.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new exception class SMTPError.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new exception class SMTPAuthenticationError.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new exception class SMTPServerBusy.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new exception class SMTPSyntaxError.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new exception class SMTPFatalError.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new exception class SMTPUnknownError.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: change critical section protect algorithm.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (SMTP#do_start): check authentication args</div><div class='add'>+	  before all.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method send_message (alias send_mail).</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method open_message_stream (alias ready).</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: POPBadResponse is a POPError.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POPMail#pop): ban ReadAdapter.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POPMail#top): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POP3Command): change critical section protect</div><div class='add'>+	  algorithm.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POP3Command#auth): USER and PASS should be one</div><div class='add'>+	  critical block.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POP3Command#retr): ban `dest' argument using</div><div class='add'>+	  iterator.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POP3Command#top): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: #read_message_to -&gt; #each_message_chunk</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: #D -&gt; #LOG</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: #D_off -&gt; #LOG_off</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: #D_on -&gt; #LOG_on</div><div class='add'>+</div><div class='add'>+Wed Jul  2 11:10:47 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: set old class aliases for backward</div><div class='add'>+	  compatibility. [ruby-talk:74863]</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 01:32:40 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (Net::POP3#start): typofix.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 22:08:19 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkWindow include TkWinfo</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: treat unknown widget classes as subclasses</div><div class='add'>+	  of TkWindow</div><div class='add'>+</div><div class='add'>+Tue Jul  1 19:02:12 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): should use mbclen instead of mblen.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 10:36:19 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class, rb_define_module): also set constant under</div><div class='add'>+	  Object.  [ruby-dev:20445]</div><div class='add'>+</div><div class='add'>+	* object.c (boot_defclass): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_at, rb_const_get_0, rb_mod_const_at,</div><div class='add'>+	  rb_const_defined, mod_av_set, rb_const_assign): toplevel constants</div><div class='add'>+	  are now under Object, rb_class_tbl remains for GC.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 17:53:06 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (mnew): ignore metaclasses have no influence, for rklass.</div><div class='add'>+	  [ruby-talk:74706]</div><div class='add'>+</div><div class='add'>+Sun Jun 29 06:59:07 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb, lib/drb/invokemethod.rb: import drb-2.0.4</div><div class='add'>+	  (use LocalJumpError#reason)</div><div class='add'>+</div><div class='add'>+Sat Jun 28 12:28:54 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_stack_grow_dir): check stack growing direction.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_restore_context): prior configuration macro.</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_stack_length): always return the address of lower edge.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_locations): remove margin.  [ruby-dev:20462]</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc, Init_stack): prior configuration macro.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): add safety margin.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 14:41:22 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): remove white spaces on the head of</div><div class='add'>+	  the last element, when limit is specified.  [ruby-talk:74506]</div><div class='add'>+</div><div class='add'>+Fri Jun 27 03:24:54 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): need to check if closed after thread switch.</div><div class='add'>+	  [ruby-dev:20351]</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): fixed wrong fix.  should move backward</div><div class='add'>+	  first only when matching from the end.</div><div class='add'>+</div><div class='add'>+Thu Jun 26 21:34:49 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (class_instance_method_list): get rid of warning about</div><div class='add'>+	  arguement type mismatch, and inline method_list().</div><div class='add'>+	  [ruby-core:01198]</div><div class='add'>+</div><div class='add'>+Wed Jun 25 14:40:33 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</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='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: instances of a subclass of TkToplevel or </div><div class='add'>+	  TkFrame are created with ":class=&gt;subclass" option as default.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkoptdb.rb: add a new part</div><div class='add'>+</div><div class='add'>+Wed Jun 25 12:52:58 2003  Matthew Dempsky  &lt;jivera@flame.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_generic_class_instance_methods): merge argument</div><div class='add'>+	  check (and warning) into one function; following DRY principle.</div><div class='add'>+	  [ruby-core:01193]</div><div class='add'>+</div><div class='add'>+Wed Jun 25 05:49:10 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add widget destroy hook binding to TkBindTag::ALL</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: Although requiring manual control of GC, </div><div class='add'>+	  memory eating problem of TkCanvas Items is fixed.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tktext.rb: add some methods and bug fix</div><div class='add'>+</div><div class='add'>+Wed Jun 25 00:14:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (autoload_delete): should delete Qundef from iv_tbl.</div><div class='add'>+	  (ruby-bugs-ja PR#504)</div><div class='add'>+</div><div class='add'>+Tue Jun 24 16:46:07 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix on TkToplevel, TkFrame,</div><div class='add'>+	  TkPanedwindow, TkOptionDB</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkOptionDB --- make it more secure to use procs </div><div class='add'>+	  defined on resourceDB</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkoptdb.rb, resource.ja, resource.en: </div><div class='add'>+	  sample script how to use TkOptionDB.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 14:22:41 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/types.rb: replaced Kernel::Hash reference with Object::Hash</div><div class='add'>+	  from [ruby-talk:74270]</div><div class='add'>+</div><div class='add'>+Tue Jun 24 17:59:30 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): show yielded block position not only yielding</div><div class='add'>+	  point.  [ruby-dev:20441]</div><div class='add'>+</div><div class='add'>+Tue Jun 24 16:47:07 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTPHeader#proxy_basic_auth): missing `@'.</div><div class='add'>+	  Thanks Douglas Koszerek. (ruby-bugs:PR975)</div><div class='add'>+</div><div class='add'>+Tue Jun 24 14:31:17 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess: have wrongly returned "alphaev56-unknown-linux-"</div><div class='add'>+	  on Linux/Alpha. [ruby-dev:20434]</div><div class='add'>+</div><div class='add'>+Tue Jun 24 04:54:46 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: always add -mieee for gcc/alpha. [ruby-dev:20429]</div><div class='add'>+</div><div class='add'>+Tue Jun 24 02:40:09 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): need to check number of arguments.</div><div class='add'>+	  [ruby-talk:74189]</div><div class='add'>+</div><div class='add'>+Mon Jun 23 23:59:56 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_close): missing prototype. [ruby-dev:20422]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_do_not_rev_lookup_set): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (foletype_guid, foletype_progid): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): length argument of sprintf() is an</div><div class='add'>+	  int.</div><div class='add'>+</div><div class='add'>+Mon Jun 23 23:28:14 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add wince files.</div><div class='add'>+</div><div class='add'>+	* ext/tk/MANIFEST: add sample/tkmenubutton.rb.</div><div class='add'>+</div><div class='add'>+Mon Jun 23 17:40:58 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (find_dirsep): get rid of warnings.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): temporary value might be disposed by GC.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_has_value, env_index): should not increment NULL.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read, rb_io_sysread): not read when length is 0.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): ensure initialized IO.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_init_copy): sychronize file pointer.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): make exception proof.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): Fixnum 0 matched end of string.</div><div class='add'>+</div><div class='add'>+Mon Jun 23 16:18:12 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): initialize flags.</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): initialize v[6] even when argc is 10 to</div><div class='add'>+	  avoid valgrind error.</div><div class='add'>+</div><div class='add'>+Mon Jun 23 14:22:44 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix on TkRoot and TkToplevel</div><div class='add'>+</div><div class='add'>+Mon Jun 23 08:24:01 2003  Florian Frank  &lt;flori@nixe.ping.de&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): generate sequence according to "succ"</div><div class='add'>+	  order.  formerly check was done by dictionary order.</div><div class='add'>+	  [ruby-talk:74138]</div><div class='add'>+</div><div class='add'>+Mon Jun 23 00:27:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value): fill constant empty string along</div><div class='add'>+	  with setting ELTS_SHARED if str-&gt;ptr is NULL. [ruby-core:01179]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value_ptr): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_check_string_type): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 22 23:42:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): move END(0) check before mbclen2().</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): reduce END(0) check.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): accept fixnum mode.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): replace strchr() by memchr(), einfo may</div><div class='add'>+	  contain "\0".</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): range check for "@" move; initialize check</div><div class='add'>+	  for "m".</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): avoid buffer overflow.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): expand buffer until readlink</div><div class='add'>+	  succeed.</div><div class='add'>+</div><div class='add'>+Sun Jun 22 16:17:02 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkRoot.new and TkToplevel.new accept Wm </div><div class='add'>+	  commands as elements</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkMenu --- add some methods</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkOptionMenubutton --- bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmenubutton.rb: sample of TkMenubutton and </div><div class='add'>+	  TkOptionMenubutton</div><div class='add'>+</div><div class='add'>+Sat Jun 21 23:15:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should not propagate distination tag if</div><div class='add'>+	  tag is already handled in this level. (ruby-bugs-ja PR#501)</div><div class='add'>+</div><div class='add'>+	* object.c (str_to_id): check for empty string before intern. </div><div class='add'>+	  [ruby-talk:74006]</div><div class='add'>+</div><div class='add'>+Sat Jun 21 13:56:09 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub: undefine HAVE__SETJMP.</div><div class='add'>+</div><div class='add'>+	* wince/resource.rb: include winver.h in wince3.0.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 12:55:17 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</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='add'>+</div><div class='add'>+	* ext/tk/sample/tktimer2.rb: add comments about the usage of a </div><div class='add'>+	  TkTimer object.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 08:47:22 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk*.rb: remove direct-accesses to TkComm::INTERP and</div><div class='add'>+	  TkComm::INITIALIZE_TARGETS</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk*.rb: use TkINTERP_SETUP_SCRIPTS constant for setting </div><div class='add'>+	  up the interpreter</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: support to create a safe interpreter </div><div class='add'>+	  with safe-Tk</div><div class='add'>+</div><div class='add'>+Fri Jun 20 23:28:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should not propagate TAG_BREAK and</div><div class='add'>+	  TAG_RETURN from orphan Proc object. [ruby-core:01148]</div><div class='add'>+</div><div class='add'>+Fri Jun 20 15:04:28 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (PATH_ENV): name of PATH environment. [new]. </div><div class='add'>+</div><div class='add'>+	* defines.h (ENV_IGNORECASE): define for case insensitive platforms</div><div class='add'>+	  to access environment variables.</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_exe): use PATH_ENV instead of "PATH".</div><div class='add'>+</div><div class='add'>+	* hash.c (env_delete, rb_f_getenv, env_fetch, rb_env_path_tainted,</div><div class='add'>+	  env_aset): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 14:52:46 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: Tk interpreter returns TAINTED strings.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 03:09:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (new_yield): distinguish "yield 1,2" and "yield [1,2]". </div><div class='add'>+	  [ruby-dev:20360]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): support new_yield() change.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): warn for Foo::BAR when BAR is a</div><div class='add'>+	  toplevel constant (i.e. a constant defined under Object).</div><div class='add'>+	  [ruby-list:36935]</div><div class='add'>+</div><div class='add'>+	* parse.y (no_blockarg): separate no block argument check and</div><div class='add'>+	  ret_args argument processing. </div><div class='add'>+</div><div class='add'>+Fri Jun 20 00:45:19 2003  NAKAMURA, Hiroshi &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: import csv module.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 22:51:41 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</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='add'>+	  lib/drb/timeridconv.rb, lib/drb/unix.rb: import drb-2.0.4b3</div><div class='add'>+</div><div class='add'>+Thu Jun 19 16:14:43 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_do_one_event): change default</div><div class='add'>+	  value of the argument</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_do_one_event): returns true/false</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add TclTkLib::EventFlag::NONE ( == 0 )</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add set_no_event_wait() and </div><div class='add'>+	  get_no_event_wait()</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/MANUAL.euc: modify</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/README.euc: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: change default value of TkCore.do_one_event </div><div class='add'>+	  argument</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkCore.set_no_event_wait(wait) and </div><div class='add'>+	  TkCore.get_no_event_wait</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.exit ( == destroy root widget )</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: rename TkAfter =&gt; TkTimer (TkAfter is</div><div class='add'>+	  an alias name)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: set_callback returns self</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: continue() raises an exception, if already </div><div class='add'>+	  running or no procedure.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: skip() raises an exception, if not running.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktimer2.rb: new sample for TkTimer class.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 16:13:54 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: add library path to include standard libraries.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 13:13:10 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_delete, rb_f_getenv, env_fetch): case insensitive to</div><div class='add'>+	  access environment variables on DOSISH platforms.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 00:51:47 2003  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): out_of_range check after adjusting</div><div class='add'>+	  end point. [ruby-dev:20370]</div><div class='add'>+</div><div class='add'>+Wed Jun 18 23:59:11 2003  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): the first argument to arg_cancat() should</div><div class='add'>+	  be NODE_LIST. [ruby-core:01151]</div><div class='add'>+</div><div class='add'>+Wed Jun 18 23:41:27 2003  Marc Cartright  &lt;marc@isri.unlv.edu&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): In a particular situation,</div><div class='add'>+	  deflate/inflate will return Z_BUF_ERROR, even though another call</div><div class='add'>+	  is required by the zlib library.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 19:46:21 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: rename 'no_create' option to 'without_creating'</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkWindow#pack_in, TkWindow#grid_in, </div><div class='add'>+	  TkWindow#place_in</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkWindow#bind_class and TkWindow#database_class</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkBindTag.new_by_name and TkDatabaseClass </div><div class='add'>+	  for binding to database class</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: check varname whether already exsist or not. </div><div class='add'>+	  (TkVarAccess.new)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkTextWin#bbox returns an array of four numbers</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: autoload TkDialog2, TkWarning2</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: scan event callback arguments and convert</div><div class='add'>+	  to proper type</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkBindTag.new accepts a block</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: If given taglist, TkWindow#bindtags(taglist) </div><div class='add'>+	  returns taglist</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkWindow#bindtags=(taglist)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Tk.focue and Tk.focus_lastfor return nil </div><div class='add'>+	  if there is no target widget.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Tk::Wm.client returns the argument string </div><div class='add'>+	  when setting name</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkGrid.columnconfiginfo and rowconfiginfo </div><div class='add'>+	  given a slot return a number.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkWindow.grid_columnconfiginfo and </div><div class='add'>+	  grid_rowconfiginfo --- ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: rename and define alias :: TkOption ==&gt; TkOptionDB</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: define alias :: TkTimer ==&gt; TkAfter</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: some instance methods change from public to private</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: some TkComm methods change to module functions</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add support for -displayof option to some </div><div class='add'>+	  TkWinfo methods</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bind, bind_append and bind_remove --- </div><div class='add'>+	  returns the target of event-binding</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk8.4 features</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkPaneWindow</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkdialog.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkdialog.rb: some methods return self</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkdialog.rb: add TkTextMark#+(mod) and TkTextMark#-(mod)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkdialog.rb: add some methods</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: bug fix and some methods return self</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: some methods return self</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: TkEntry#bbox returns an array of four numbers</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: scan validatecommand arguments and </div><div class='add'>+	  convert to proper type</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkbgerror.rb: support to define a error handler by user</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: [ruby-talk:60759]</div><div class='add'>+</div><div class='add'>+Wed Jun 18 13:50:06 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should dispatch based on ID type.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 12:53:42 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): should restore scope_vmode during yield.</div><div class='add'>+	  [ruby-dev:20361]</div><div class='add'>+</div><div class='add'>+Wed Jun 18 01:13:36 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_load_handler): merge key implemented.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (transfer_find_i): removed use of String#=~ in favor</div><div class='add'>+	    of Regexp#match.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: YAML::try_implicit returns.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: Regexps added for type matching.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/emitter.rb: fix String + nil error.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 17:01:08 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: added grammar for certain empty sequence entries.</div><div class='add'>+</div><div class='add'>+	* ext/syck/handler.c, ext/syck/syck.c, ext/syck/syck.h: track bad anchors.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: added pause token, tag possible circular references.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: parsing YMD time as Date instance.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: ditto. DomainType, PrivateType, BadAlias classes.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 21:28:27 2003  Ariff Abdullah &lt;skywizard@time.net.my&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir): need to set errno. [ruby-talk:73761]</div><div class='add'>+</div><div class='add'>+Mon Jun 16 19:01:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove rb_cBlock.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 18:06:33 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_fix2uint): renamed from rb_fix2int on IA64.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 17:02:57 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): format the message for localjump_error().</div><div class='add'>+</div><div class='add'>+Mon Jun 16 16:23:56 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_callback): use rb_block_proc() instead of</div><div class='add'>+	  rb_block_new().</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ev_on_event): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 16:06:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_alloc): re-unification of Block and Proc.  Block</div><div class='add'>+	  class is no longer available.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 14:43:14 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: undefine HAVE_GETGROUPS.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 16:58:41 2003  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (calculate_must_string): should handle option_set</div><div class='add'>+	  properly. [ruby-talk:73481]</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): a bug in flag manipulation.</div><div class='add'>+	  [ruby-talk:73549]</div><div class='add'>+</div><div class='add'>+Sat Jun 14 17:59:59 2003  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_arity): should handle NODE_BMETHOD and</div><div class='add'>+	  NODE_DMETHOD. [ruby-core:01138]</div><div class='add'>+</div><div class='add'>+Fri Jun 13 09:24:39 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (storebinary): seek correctly. Thanks, William Webber.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (putbinaryfile): rescue FTPPermError.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 22:13:13 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb : add 'no_create' option to widget</div><div class='add'>+	  initialize method. </div><div class='add'>+</div><div class='add'>+	* ext/tk/MANIFEST : forgot to commit when added tkmacpkg.rb</div><div class='add'>+	  and tkwinpkg.rb</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/README : ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 21:14:11 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb : widget configure returns self (for method</div><div class='add'>+	  call chain)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkmacpkg.rb : Mac resource (not new but not</div><div class='add'>+	  included until now)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkwinpkg.rb : Win DDE and registry (not new but not </div><div class='add'>+	  included until now)</div><div class='add'>+</div><div class='add'>+Tue Jun 10 14:26:30 2003  why the lucky stiff  &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: preserve newlines prepended to a block.</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.c (syck_match_implicit): added !merge and !default.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/constants.rb: remove '\z' escape.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/emitter.rb: ensure reset of @seq_map shortcut flag.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/encoding.rb: remove Unicode translation methods.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: improved round-tripping of Strings.</div><div class='add'>+	  [ruby-core:1134]</div><div class='add'>+</div><div class='add'>+Tue Jun 10 01:07:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb::eval_input): warn and exit if $SAFE &gt;=3</div><div class='add'>+	  after input evaluation.</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb::eval_input): untaint input string.  now</div><div class='add'>+	  irb works for levels 1 and 2.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 19:02:33 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: checks presence of grp.h and setgroups().</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getgroups, proc_setgroups): raise</div><div class='add'>+	  NotImplementedError unless available.  [ruby-talk:73014]</div><div class='add'>+</div><div class='add'>+Mon Jun  9 18:09:11 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fixed 100% CPU problem of Tk.mainloop</div><div class='add'>+</div><div class='add'>+Mon Jun  9 15:50:24 2003  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: renewal Tk.mainloop</div><div class='add'>+</div><div class='add'>+Sun Jun  8 13:37:21 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/setup.mak: set SUBSYSTEM in each platform.</div><div class='add'>+</div><div class='add'>+	* wince/stdlib.c: fix mblen() bug.</div><div class='add'>+</div><div class='add'>+Sat Jun  7 22:22:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_loader_transfer): should not use</div><div class='add'>+	  rb_cProc directly, since type_proc may be Proc, Block, or</div><div class='add'>+	  Method.</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr0): class and module statements should not be</div><div class='add'>+	  warned for "void value expression". [ruby-talk:72989]</div><div class='add'>+</div><div class='add'>+Sat Jun  7 01:46:41 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_final): should determine type by respond_to?</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl): should not depend on respond_to?</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): rb_check_string_type().</div><div class='add'>+</div><div class='add'>+Fri Jun  6 20:29:14 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): needs to be exception proof.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_handle, rb_longjmp): bails out when exception</div><div class='add'>+	  reentered.  (ruby-bugs-ja:PR#487), [ruby-core:01119],</div><div class='add'>+	  [ruby-core:01122]</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): pre-allocates critical error objects.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 20:29:14 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (cmd_brace_block, do_block, brace_block): initialize block</div><div class='add'>+	  variables at the beginning of the block.  [ruby-talk:72521]</div><div class='add'>+</div><div class='add'>+Fri Jun  6 18:49:11 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): new functions.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 18:33:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): eliminate rb_f_lambda() call.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_scan_args): ditto.</div><div class='add'>+</div><div class='add'>+	* signal.c (sig_trap): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_trace_var): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_callback): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ev_on_event): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 16:10:01 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: define Net::HTTPResponse#to_ary for backward</div><div class='add'>+	  compatibility.  [ruby-talk:72927]</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: add warning.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 13:30:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): $SAFE is turned off in the finalization.</div><div class='add'>+	  Each END proc should preserve its own $SAFE level. [ruby-core:01119]</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): remove unused variable "hash".</div><div class='add'>+	  [ruby-core:01120]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_str_new): freeze strings from ENV. [ruby-talk:72860]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_first): optional argument to retrieve first n</div><div class='add'>+	  elements.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_last): optional argument to retrieve last n</div><div class='add'>+	  elements.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 21:31:55 2003  Takaaki Uematsu &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/stdlib.c: add mblen().</div><div class='add'>+</div><div class='add'>+Thu Jun  5 18:33:46 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_s_allocate,curses_finalize):</div><div class='add'>+	  avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 17:44:11 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_mark): was a bit heavy on the GC.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::transfer): added.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 16:11:50 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='add'>+	  (MISSING): link with missing/erf.c.</div><div class='add'>+</div><div class='add'>+	* missing.h (erf, erfc): fix prototype.</div><div class='add'>+</div><div class='add'>+	* missing/erf.c: new. [ruby-list:37753]</div><div class='add'>+</div><div class='add'>+Thu Jun  5 15:09:06 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_erf,math_erfc): new function. [ruby-list:37753]</div><div class='add'>+</div><div class='add'>+Thu Jun  5 14:49:43 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: using GC nodes caused segfault. [ruby-core:1071]</div><div class='add'>+</div><div class='add'>+Thu Jun  5 13:48:57 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: directives choked on a period.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.y: anchors work above a collection. [ruby-core:1071]</div><div class='add'>+</div><div class='add'>+	* ext/syck/handler.c, ext/syck/syck.c: ensure a fresh strtable between</div><div class='add'>+	  parser iterations.</div><div class='add'>+</div><div class='add'>+Wed Jun  4 12:06:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize): no longer need to turn off $DEBUG in the</div><div class='add'>+	  finalizer. (ruby-bugs-ja PR#473)</div><div class='add'>+</div><div class='add'>+Tue Jun  3 22:20:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): should search superclass method based on</div><div class='add'>+	  orig_func, not last_func.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 09:59:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): inheritance line adjustment moved from</div><div class='add'>+	  rb_call(). [ruby-core:01113]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use rb_call_super() to follow DRY principle.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 02:20:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (push_values_at): Array#values_at should work with</div><div class='add'>+	  ranges too.</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): length calculation was wrong.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): should set T_ICLASS in the frame-&gt;last_class.</div><div class='add'>+	  [ruby-core:01110]</div><div class='add'>+</div><div class='add'>+Sun Jun  1 21:50:01 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: should not use def file, use ld with</div><div class='add'>+	  --export-all-symbols option on Cygwin/MinGW.</div><div class='add'>+</div><div class='add'>+	* defines.h: ditto.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/defs.h: avoid warnings on Cygwin.</div><div class='add'>+</div><div class='add'>+Sun Jun 01 13:33:49 2003 Takaaki Uematsu &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/string_wce.c: add strpbrk() for hpcpro support.</div><div class='add'>+</div><div class='add'>+	* wince/setup.mak: add hpcpro(CE2.11) &amp; armv4t(CE.NET) support.</div><div class='add'>+</div><div class='add'>+	* wince/resource.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun  1 10:38:28 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): autoloaded constants under a module</div><div class='add'>+	  belong to the module.  [ruby-core:01094], [ruby-dev:20309]</div><div class='add'>+</div><div class='add'>+Sat May 31 04:36:54 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): should handle multibyte name.</div><div class='add'>+</div><div class='add'>+Fri May 30 23:18:01 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_mktime): seconds calculated wrong.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: flexibility to anchors and transfer methods on</div><div class='add'>+	  collections.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: hex escapes.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/basenode.rb: YamlNode references changed to YAML::BaseNode.</div><div class='add'>+</div><div class='add'>+Fri May 30 22:28:04 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2uint, rb_fix2int): new function to convert</div><div class='add'>+	  values over INT_MAX.  [ruby-core:01099]</div><div class='add'>+</div><div class='add'>+	* ruby.h (NUM2UINT, FIX2INT): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 30 15:01:05 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: preserve any indentation past an explicit</div><div class='add'>+	  indentation.</div><div class='add'>+</div><div class='add'>+Fri May 30 14:55:44 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_Array): exclude Kernel#to_a instead of Object#to_a.</div><div class='add'>+	 (ruby-bugs-ja:PR#483)</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch#parse_arg): not splat.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch#conv_arg): splat if no</div><div class='add'>+	  conversion supplied.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::PlacedArgument#parse):</div><div class='add'>+	  override next switch after argument conversion.</div><div class='add'>+</div><div class='add'>+Fri May 30 14:41:34 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/handler.c, ext/syck/syck.h: removed syck_fold_format().</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: flexibility for aliases and anchors.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: folding now handled in the tokenizer.</div><div class='add'>+</div><div class='add'>+Fri May 30 06:21:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): should delete autoloaded</div><div class='add'>+	  symbol itself before load.  [ruby-core:01097]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_const): must not return Qundef.</div><div class='add'>+</div><div class='add'>+Thu May 29 14:59:10 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (_CRTIMP): redefine _CRTIMP on MinGW.</div><div class='add'>+</div><div class='add'>+	* configure.in: remove '-D__USE_CRTIMP' from XCFLAGS on MinGW.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtMakeCmdVector): handle quotes only if not instring.</div><div class='add'>+</div><div class='add'>+Thu May 29 09:11:01 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined, ev_const_get), variable.c</div><div class='add'>+	  (rb_const_get_at, rb_const_get, rb_mod_remove_const): use Qundef</div><div class='add'>+	  as autoload marker.  [ruby-dev:18103], [ruby-dev:18184]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_autoload, rb_mod_autoload_p): new method;</div><div class='add'>+	  Module#autoload, Module#autoload?.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload, rb_autoload_load, rb_autoload_p):</div><div class='add'>+	  manage autoload constants per classes/modules.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_at, rb_const_defined): return false</div><div class='add'>+	  for autoloading constants.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class, rb_define_module), eval.c (rb_eval),</div><div class='add'>+	  variable.c (rb_mod_const_at, rb_const_assign): removed autoload</div><div class='add'>+	  stuff.</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes; rb_autoload, rb_autoload_load,</div><div class='add'>+	  rb_autoload_p.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::PlacedArgument::parse):</div><div class='add'>+	  do not treat unmatched argument as an option.</div><div class='add'>+</div><div class='add'>+Wed May 28 08:44:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): type dispatch should be based on</div><div class='add'>+	  rb_check_string_type(), not FIXNUM_P(), because values may be a</div><div class='add'>+	  bignum.  [ruby-talk:72257]</div><div class='add'>+</div><div class='add'>+Tue May 27 20:33:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, util.c: removed duplicated includes/defines.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_addrinfo): get rid of SEGV at NULL ptr</div><div class='add'>+	  String.  increase buffer size for 64bit platforms.</div><div class='add'>+</div><div class='add'>+Tue May 27 02:34:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): should pass the current klass value to</div><div class='add'>+	  block_invoke, which may be called via "super". [ruby-core:01077]</div><div class='add'>+</div><div class='add'>+	* eval.c (block_invoke): now takes 4th argument "klass".</div><div class='add'>+</div><div class='add'>+	* eval.c (block_alloc): should propagate BLOCK_PROC to</div><div class='add'>+	  ruby_block.</div><div class='add'>+</div><div class='add'>+Mon May 26 23:51:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): should not use "yield" method, use "call"</div><div class='add'>+	  instead. (ruby-bugs-ja PR#476)</div><div class='add'>+</div><div class='add'>+Mon May 26 21:39:46 2003  MoonWolf  &lt;moonwolf@moonwolf.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb, lib/optparse.rb, lib/tracer.rb: use Method#to_block</div><div class='add'>+	  instead of deprecated Method#to_proc.  (ruby-bugs-ja:PR#477)</div><div class='add'>+</div><div class='add'>+Mon May 26 21:21:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::parse,</div><div class='add'>+	  OptionParser::order): use {Block,Proc}#call instead of deprecated</div><div class='add'>+	  #yield.</div><div class='add'>+</div><div class='add'>+Mon May 26 16:39:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): Block/Proc separation. [huge change]</div><div class='add'>+</div><div class='add'>+	* eval.c (block_arity): returns exact arity number for Procs out</div><div class='add'>+	  of methods. also gives 1 for {|a|..}.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match): revert use of String#index for</div><div class='add'>+	  invocation like string =~ string.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_Array): move Object#to_a exclusion hack from</div><div class='add'>+	  splat_value().  need to be in eval.c for a while.</div><div class='add'>+</div><div class='add'>+Sun May 25 23:48:21 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_pack): should negate negative bignum.</div><div class='add'>+	  (ruby-bugs-ja:PR#474)</div><div class='add'>+</div><div class='add'>+Sun May 25 03:27:25 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: support LOGIN authentication, based on</div><div class='add'>+	  the patch by Kazuhiko Izawa. [ruby-talk:78981]</div><div class='add'>+</div><div class='add'>+Sat May 24 18:19:51 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub: add eMbedded Visual C++ 4.0 support.</div><div class='add'>+</div><div class='add'>+	* wince/resource.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/configure.bat: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/mkexports.rb: delete japanese comments.</div><div class='add'>+</div><div class='add'>+Fri May 23 18:34:05 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): get rid of reentering while debug warning.</div><div class='add'>+	  (ruby-bugs-ja:PR473)</div><div class='add'>+</div><div class='add'>+Fri May 23 15:16:16 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): sign-extend if sizeof long is bigger than</div><div class='add'>+	  32.  (ruby-bugs-ja:PR#472)</div><div class='add'>+</div><div class='add'>+Fri May 23 14:19:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize): turn off ruby_debug flag before calling</div><div class='add'>+	  at_exit procs and finalizers. (ruby-bugs-ja:PR473)</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_mainloop_core): OK to block if</div><div class='add'>+	  there's no other thread. (ruby-bugs:PR#861)</div><div class='add'>+</div><div class='add'>+Thu May 22 18:07:46 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: single- and double-quoted root-level fix.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::object_maker): can create object attributes (such as</div><div class='add'>+	  found in Exception class)</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: roundtripping of Exception and subclasses.</div><div class='add'>+</div><div class='add'>+Fri May 23 01:26:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_clone): defer copying freezing state after</div><div class='add'>+	  calling initialize_copy().  [ruby-dev:20276]</div><div class='add'>+</div><div class='add'>+Thu May 22 17:12:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): use rb_thread_critical instead of DEFER_INTS.</div><div class='add'>+	  [ruby-dev:20272]</div><div class='add'>+</div><div class='add'>+	* marshal.c: try to make ArgumentError and TypeError consistent.</div><div class='add'>+	  [ruby-core:01068]</div><div class='add'>+</div><div class='add'>+Thu May 22 15:46:37 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_define_alloc_func): need not to disable</div><div class='add'>+	  rb_call_super() for allocation functions. [ruby-core:1065]</div><div class='add'>+</div><div class='add'>+Thu May 22 06:21:33 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_err_handler): raise ArgumentError on</div><div class='add'>+	  malformed YAML.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: String#to_yaml was missing space indicators at</div><div class='add'>+	  the end of a line.</div><div class='add'>+</div><div class='add'>+Thu May 22 05:43:24 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_load): root-level false was returning</div><div class='add'>+	  nil.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: root-level transfer method bug.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: root-level empty gave a parse error.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: Symbol#to_yaml generating method call error.</div><div class='add'>+</div><div class='add'>+Thu May 22 02:46:38 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): splat NODE_RESTARY.  [ruby-dev:20268]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_fd_close): raise for writing threads.</div><div class='add'>+	  [ruby-dev:20269]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close, io_reopen): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): keep stdio objects for stdin, stdout,</div><div class='add'>+	  and stderr.  [ruby-dev:19442]</div><div class='add'>+</div><div class='add'>+Thu May 22 01:11:15 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (strings, word_list): must create new instance always.</div><div class='add'>+	  http://yowaken.dip.jp/tdiary/20030521.html#p02</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): slight optimization.</div><div class='add'>+</div><div class='add'>+Wed May 21 23:07:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): should not specify errno explicitly.</div><div class='add'>+	  [ruby-dev:20264]</div><div class='add'>+</div><div class='add'>+Wed May 21 20:51:47 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,</div><div class='add'>+	  wince/Makefile.sub: update dependencies.</div><div class='add'>+</div><div class='add'>+Wed May 21 17:44:16 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): prohibit specifying errno for</div><div class='add'>+	  subclasses of SystemCallError.  in addition, if initialize is</div><div class='add'>+	  called for SystenCallError instance, its class be changed.</div><div class='add'>+	  [ruby-dev:20257]</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): to protect thread context switch, finalizers</div><div class='add'>+	  are wrapped in DEFER_INTS/ENABLE_INTS.</div><div class='add'>+</div><div class='add'>+Wed May 21 13:26:08 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: get rid of warnings.</div><div class='add'>+</div><div class='add'>+Tue May 20 18:59:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context): prohibit rb_gc_force_recycle()</div><div class='add'>+	  on thread saved ruby_dyna_vars. [ruby-dev:20236]</div><div class='add'>+</div><div class='add'>+Tue May 20 17:39:15 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (init_copy): call initialize_copy at the end of copy</div><div class='add'>+	  process.</div><div class='add'>+</div><div class='add'>+Tue May 20 17:15:55 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): use Errno constants as default</div><div class='add'>+	  errno for subclasses.  [ruby-dev:20241]</div><div class='add'>+</div><div class='add'>+Tue May 20 15:26:25 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.h: define ST_DATA_T_DEFINED for portability.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: add typedef, st_data_t for Ruby 1.6.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_st_free_nodes): return int.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_add_sym): cast the data to st_data_t</div><div class='add'>+	  to avoid error on bcc32.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_lookup_sym): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_free_parser): NULL is not integer.</div><div class='add'>+</div><div class='add'>+Tue May 20 13:29:04 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): set errno after calling raise().</div><div class='add'>+</div><div class='add'>+Tue May 20 10:51:26 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): create exception instance by ordinal</div><div class='add'>+	  method.  [ruby-dev:20033]</div><div class='add'>+</div><div class='add'>+	* error.c (rb_name_error, rb_sys_fail): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_to_s, exit_status, name_err_name,</div><div class='add'>+	  nometh_err_args, syserr_errno, syserr_eqq): access</div><div class='add'>+	  attributes.</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_initialize, nometh_err_initialize,</div><div class='add'>+	  syserr_initialize): initialize attributes.</div><div class='add'>+</div><div class='add'>+Tue May 20 10:26:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): give warning for multiple values for a</div><div class='add'>+	  block parameter.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_values): a function to yield multiple values.</div><div class='add'>+</div><div class='add'>+	* array.c (sort_1): use rb_yield_values.</div><div class='add'>+</div><div class='add'>+	* enum.c (min_ii, max_ii): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_update_block_i, delete_if_i, select_i,</div><div class='add'>+	  each_pair_i, env_each, env_reject_bang, env_select,</div><div class='add'>+	  env_update_i): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_each_pair): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (top_include): should include module in the current self,</div><div class='add'>+	  not ruby_top_self. [ruby-dev:20198]</div><div class='add'>+</div><div class='add'>+	* eval.c (top_include): stop inclusion to ruby_wrapper; give</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Mon May 19 18:54:30 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c, ext/syck/implicit.c: expanded character set to</div><div class='add'>+	  allow UTF-8, other Ruby encodings.</div><div class='add'>+</div><div class='add'>+Mon May 19 16:47:00 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c, ext/syck/syck.h, ext/syck/token.c, ext/syck/gram.c:</div><div class='add'>+	  count line numbers only if line pointer has increased.</div><div class='add'>+</div><div class='add'>+Tue May 20 00:45:40 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_braces): do not push_braces() unless rbrace is found.</div><div class='add'>+	  (ruby-bugs-ja:PR#469)</div><div class='add'>+</div><div class='add'>+Tue May 20 00:09:41 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_finalize_syswait): join (using Thread#value)</div><div class='add'>+	  before detach pid. [ruby-talk:71519]</div><div class='add'>+</div><div class='add'>+Mon May 19 23:02:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_FRAME): save outer ruby_block. [ruby-list:37677],</div><div class='add'>+	  [ruby-dev:20202]</div><div class='add'>+</div><div class='add'>+	* eval.c (BEGIN_CALLARGS): restore outer block by using</div><div class='add'>+	  ruby_block-&gt;outer.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): do not alter block-&gt;prev, but block-&gt;outer.</div><div class='add'>+</div><div class='add'>+	* array.c (get_inspect_tbl): warning on wrong condition.</div><div class='add'>+</div><div class='add'>+Mon May 19 16:13:57 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c: add #include "version.h".</div><div class='add'>+</div><div class='add'>+	* hash.c: ditto.</div><div class='add'>+</div><div class='add'>+	* string.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon May 19 15:33:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_xvalue): renamed exitstatus to exit_value</div><div class='add'>+	  since it's not exit "status" after all.</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_error): add reason to LocalJumpError.</div><div class='add'>+</div><div class='add'>+	* compar.c (rb_cmpint): raise error via rb_cmperr(), if cmp value</div><div class='add'>+	  is nil. now take new 2 arguments.</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): 2003-05-16 fix was incomplete.</div><div class='add'>+	  (ruby-bugs-ja:PR#458)</div><div class='add'>+</div><div class='add'>+Mon May 19 14:42:50 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cmp): stupid comparison fixed.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): ARGF.path added (alias to ARGF.filename).</div><div class='add'>+	  [ruby-dev:20197]</div><div class='add'>+</div><div class='add'>+Mon May 19 13:58:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (init_copy): rename copy_object as initialize_copy,</div><div class='add'>+	  since it works as copy constructor.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): initialize_copy should always be</div><div class='add'>+	  private, like initialize.</div><div class='add'>+</div><div class='add'>+Mon May 19 13:51:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): \n \r \f \v quoting was wrong.</div><div class='add'>+	  [ruby-dev:20203]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): rb_reg_quote(" ") should be "\\ ", not</div><div class='add'>+	  "\\s".</div><div class='add'>+</div><div class='add'>+Mon May 19 08:08:51 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: use warn() instead of $stderr.puts().</div><div class='add'>+</div><div class='add'>+	* sample/cal.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat May 17 12:02:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (get_inspect_tbl): check whether inspect_tbl value is a</div><div class='add'>+	  valid array. (ruby-bugs-ja PR#65)</div><div class='add'>+</div><div class='add'>+	* array.c (inspect_ensure,rb_protect_inspect,rb_inspecting_p):</div><div class='add'>+	  use get_inspect_tbl().</div><div class='add'>+</div><div class='add'>+Sat May 17 11:50:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_abort): call exit(1) if exception is raised.  This</div><div class='add'>+	  patch was made by Nobuyoshi Nakada &lt;nobu.nokada@softhome.net&gt; on</div><div class='add'>+	  2002-05-30.  (ruby-bugs-ja PR#236)</div><div class='add'>+</div><div class='add'>+	* signal.c: disable Ruby's interrupt handler at the beginning.</div><div class='add'>+	  (ruby-bugs-ja PR#236)</div><div class='add'>+</div><div class='add'>+Sat May 17 02:17:42 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (Integer::denominator): fixed typo.</div><div class='add'>+	  (ruby-bugs-ja:PR#466)</div><div class='add'>+</div><div class='add'>+Sat May 17 00:18:11 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): connect() after EINPROGRESS</div><div class='add'>+	  returns EINVAL on some platforms, need to check true error</div><div class='add'>+	  status.  [ruby-core:01037]</div><div class='add'>+</div><div class='add'>+Sat May 17 00:21:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_allocate_instance): singleton class check</div><div class='add'>+	  moved to rb_obj_alloc(). (ruby-bugs-ja PR#345)</div><div class='add'>+</div><div class='add'>+Fri May 16 23:55:50 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): should escape white space characters,</div><div class='add'>+	  \t, \f, \n, \r. (ruby-bugs-ja PR#231)</div><div class='add'>+</div><div class='add'>+Fri May 16 12:40:40 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): chain previous block to the pushing block.</div><div class='add'>+	  [ruby-list:37677]</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): does not compare with numbers for</div><div class='add'>+	  interchangeability. (ruby-bugs-ja:PR#458)</div><div class='add'>+</div><div class='add'>+Thu May 15 21:55:54 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: fixes to one-line documents and end of stream</div><div class='add'>+	  documents.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c, ext/syck/syck.h: add root_on_error to parser</div><div class='add'>+	  struct, specifying the symbol to be returned on a parse error.</div><div class='add'>+</div><div class='add'>+Thu May 15 18:44:31 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Redirect#initialize): call super to</div><div class='add'>+	  initialize mesg.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Meta#charset): call block to guess charset</div><div class='add'>+	  if block is given and charset is not given.</div><div class='add'>+</div><div class='add'>+Thu May 15 16:55:16 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_le): returns nil if two classes/modules are not</div><div class='add'>+	  in class-superclass relationship.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cmp): uses new rb_mod_le() behavior.</div><div class='add'>+</div><div class='add'>+Thu May 15 07:45:30 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c, ext/syck/implicit.c: timestamp repairs to</div><div class='add'>+	  timezone and milliseconds.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_parser_reset_levels): duplicate string literal</div><div class='add'>+	  to avoid warning.</div><div class='add'>+</div><div class='add'>+Thu May 15 13:26:48 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_instance_methods): default will be changed in</div><div class='add'>+	  1.8.1.</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdio): better message.</div><div class='add'>+</div><div class='add'>+Thu May 15 13:18:11 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdio): $stdin, $stdout, $stderr now became read-only.</div><div class='add'>+</div><div class='add'>+	* variable.c (readonly_setter): message changed.</div><div class='add'>+</div><div class='add'>+Thu May 15 09:50:51 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_parser_pop_level): add prototype.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_strndup): should return value.</div><div class='add'>+</div><div class='add'>+Thu May 15 09:32:25 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): fix typo and add signal 0 support.</div><div class='add'>+</div><div class='add'>+Wed May 14 20:09:26 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: sequence-in-map shortcut, transfer methods on</div><div class='add'>+	  sequence-in-sequence, memory leak in mapping merge.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: memory leak in domain anchoring.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb, lib/yaml/types.rb: eliminated 1.6.x code.</div><div class='add'>+</div><div class='add'>+Wed May 14 19:56:43 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: add prototypes to avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+Wed May 14 12:23:46 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#start): should check whether HTTP</div><div class='add'>+	  session is opened before finishing. (ruby-bugs-ja:PR#463)</div><div class='add'>+</div><div class='add'>+Wed May 14 09:12:55 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: reduce warning. (ruby-bugs-ja:PR#462)</div><div class='add'>+</div><div class='add'>+Tue May 13 22:31:04 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb, lib/yaml/types.rb: using Object#object_id</div><div class='add'>+	  rather than deprecated Object#id.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: changed ASCII escapes to octal notation.</div><div class='add'>+</div><div class='add'>+	* ext/Setup*: added entries for static linking of Syck extension.</div><div class='add'>+</div><div class='add'>+Tue May 13 20:31:58 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add '--Wl,--enable-auto-import' to DLDFLAGS</div><div class='add'>+	  on Cygwin/MinGW.</div><div class='add'>+</div><div class='add'>+	* configure.in: add '-D__USE_CRTIMP' to XCFLAGS on MinGW.</div><div class='add'>+</div><div class='add'>+	* ext/syck/handler.c: add proper casts.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue May 13 17:58:08 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, bcc32/Makefile.sub, win32/Makefile.sub: define</div><div class='add'>+	  HAVE_FSYNC.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (fsync): define as _commit().</div><div class='add'>+</div><div class='add'>+Tue May 13 15:35:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match_exec): \Z changed to be consistent with new $</div><div class='add'>+	  (endbuf) behavior.</div><div class='add'>+</div><div class='add'>+Tue May 13 14:48:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_pos): use $deferr for output instead of stderr</div><div class='add'>+	  directly.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print,error_handle,rb_longjmp,rb_thread_schedule):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Tue May 13 06:34:19 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: object and struct loading</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: YAML::detect_implicit will discover typing for a Ruby</div><div class='add'>+	  string</div><div class='add'>+</div><div class='add'>+	* ext/syck/: Fixed portable comments, misuse of NULL and methods without</div><div class='add'>+	  return VALUEs.</div><div class='add'>+</div><div class='add'>+Mon May 12 18:08:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): new variable $deferr which is default output</div><div class='add'>+	  port of error messages.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_warn_m): new method "warn". [new]</div><div class='add'>+</div><div class='add'>+	* error.c (warn_print): use $deferr.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (err_append): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 11 13:50:12 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: refine to_s test.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::ObjectMixin#pretty_print): refine to_s handling.</div><div class='add'>+</div><div class='add'>+Sun May 11 06:32:13 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.c, ext/syck/rubyext.c: transfer methods applied to</div><div class='add'>+	  native loading</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: fix for transfer methods on same indentation as nested</div><div class='add'>+	  mapping</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: all type names in lowercase</div><div class='add'>+</div><div class='add'>+Sat May 10 19:55:18 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c ext/syck/handler.c ext/syck/implicit.c</div><div class='add'>+	  ext/syck/node.c ext/syck/rubyext.c ext/syck/syck.c</div><div class='add'>+	  ext/syck/syck.h ext/syck/token.c: updated to Syck 0.27</div><div class='add'>+</div><div class='add'>+	* lib/yaml/loader.rb: new YAML::Loader class</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: loading of type families leverages YAML::DefaultLoader</div><div class='add'>+</div><div class='add'>+Sat May 10 19:00:08 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/string.c: file removed.</div><div class='add'>+</div><div class='add'>+	* wince/stdlib.c: file added.</div><div class='add'>+</div><div class='add'>+Sat May 10 16:17:02 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (decode_utf7): new method.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (encode_utf7): new method.</div><div class='add'>+</div><div class='add'>+Fri May  9 21:25:50 2003  why the lucky stiff &lt;ruby-cvs@whytheluckystiff.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby/ext/syck, ruby/lib/yaml: Initial checkin of YAML substances.</div><div class='add'>+</div><div class='add'>+Fri May  9 16:38:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): It should be possible to reopen closed IO.</div><div class='add'>+	  [ruby-talk:70941]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): inherit original file mode unless specified.</div><div class='add'>+</div><div class='add'>+Thu May  8 18:44:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): check odd alignment stack on m68k machines.</div><div class='add'>+</div><div class='add'>+Thu May  8 12:56:04 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c (rb_cmperr): raise comparison failure.</div><div class='add'>+</div><div class='add'>+	* intern.h: prototype; rb_cmperr</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_gt, flo_ge, flo_lt, flo_le, fix_gt, fix_ge,</div><div class='add'>+	  fix_lt, fix_le): should fail unless the argument is comparable.</div><div class='add'>+	  (ruby-bugs-ja:PR#456)</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_upto, int_downto): should fail unless the</div><div class='add'>+	  argument is comparable.  (ruby-bugs-ja:PR#454)</div><div class='add'>+</div><div class='add'>+Wed May  7 13:30:11 2003  Masahiro TANAKA  &lt;masa@ir.isas.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): better error treatment of float values.</div><div class='add'>+</div><div class='add'>+Tue May  6 17:51:54 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: rename method: POP3#mail_size -&gt; n_mails</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: rename method: POP3#bytes -&gt; n_bytes</div><div class='add'>+</div><div class='add'>+Tue May  6 17:21:01 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/.cvsignore: new file.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/.cvsignore: new file.</div><div class='add'>+</div><div class='add'>+Tue May  6 14:39:36 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_methods): list singleton methods if recur</div><div class='add'>+	  argument is false;  list all methods otherwise.</div><div class='add'>+</div><div class='add'>+Mon May  5 21:19:25 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_values_at): new method to replace</div><div class='add'>+	  select(index..).</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_values_at): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_values_at): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (DBM::VERSION): defined.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/testgdbm.rb: replace select with values_at.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/testsdbm.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/testdbm.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/testdbm.rb (setup): DBM.open(path, 0400) cause EACCESS</div><div class='add'>+	  on Berkeley DB[234].</div><div class='add'>+</div><div class='add'>+Mon May  5 22:57:07 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/cal.rb: use values_at instead of select.</div><div class='add'>+</div><div class='add'>+	* sample/biorhythm.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon May  5 18:59:45 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: substitute 'select' with 'values_at'.</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon May  5 00:46:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_values_at): new method to replace select(index..).</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_values_at,env_values_at): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (match_values_at): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_values_at): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (match_select): add iterator behavior.</div><div class='add'>+</div><div class='add'>+Sun May  4 19:08:53 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: synchronized with date2 3.3.2.</div><div class='add'>+</div><div class='add'>+Sun May  4 15:21:18 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ESMTP -&gt; SMTP transition wrongly fails.</div><div class='add'>+</div><div class='add'>+Sun May  4 15:06:37 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: APOP did not work.  [ruby-dev:20149]</div><div class='add'>+</div><div class='add'>+Sat May  3 21:14:29 2003  Johan Holmberg  &lt;holmberg@iar.se&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c, ext/digest/sha2/sha2.c, ext/iconv/iconv.c,</div><div class='add'>+	  ext/racc/cparse/cparse.c: include "ruby.h" at the top to shut up</div><div class='add'>+	  "_FILE_OFFSET_BITS redefined" warning on Solaris.</div><div class='add'>+</div><div class='add'>+Sat May  3 11:00:12 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_protected_instance_methods): now gives</div><div class='add'>+	  warnings to show migration path.  The default will be reversed</div><div class='add'>+	  on Jan 2004.</div><div class='add'>+</div><div class='add'>+Sat May  3 00:58:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_methods): now accepts recurse parameter.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::initialize): instance_methods</div><div class='add'>+	  etc. now recurse by default.  need to specify false.</div><div class='add'>+</div><div class='add'>+Sat May  3 00:22:00 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: reintroduce Protocol.protocol_param.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri May  2 23:29:53 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: remove Protocol class.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (SMTP): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POP3): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: remove Command class.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (SMTPCommand): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POP3Command): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: remove APOPCommand class.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: remove Code class and its all subclasses.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: remove Response class and its all</div><div class='add'>+	  subclasses.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (POPMail): new method unique_id (alias uidl).</div><div class='add'>+</div><div class='add'>+Fri May  2 18:17:37 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_gt): raises ArgumentError when "&lt;=&gt;" give nil.</div><div class='add'>+	  inspired by discussion on comp.lang.python.</div><div class='add'>+</div><div class='add'>+Fri May  2 17:37:01 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::initialize): updated to</div><div class='add'>+	  support 2003-04-23 change in cgi.rb [ruby-core:1002]</div><div class='add'>+</div><div class='add'>+Fri May  2 17:21:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (method_list): classify methods based on nearest</div><div class='add'>+	  visibility. [ruby-dev:20127]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_instance_methods): recurse by default.  other</div><div class='add'>+	  method listing methods as well.</div><div class='add'>+</div><div class='add'>+Fri May  2 09:38:06 2003  Warren Brown  &lt;wkb@airmail.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ljust): now takes optional argument to specify</div><div class='add'>+	  pad string. [ruby-talk:70482]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rjust): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_center): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): utility function.</div><div class='add'>+</div><div class='add'>+Fri May  2 04:10:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): call singleton_method_added or</div><div class='add'>+	  method_added for every method definition (after ruby_running).</div><div class='add'>+	  [ruby-talk:70471]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_reverse_bang): Array#reverse! should not return</div><div class='add'>+	  nil even for arrays sized less than 2.</div><div class='add'>+</div><div class='add'>+Thu May  1 23:18:01 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): should not block after reading all argument</div><div class='add'>+	  files. (ruby-bugs-ja PR#449)</div><div class='add'>+</div><div class='add'>+Fri May  2 15:10:41 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: use hashes to pass options.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new option mkdir(:mode), mkdir_p(:mode).</div><div class='add'>+</div><div class='add'>+	* instruby.rb: follow fileutils.rb feature change.</div><div class='add'>+</div><div class='add'>+Thu May  1 08:24:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match_exec): $ _always_ matches at the end of string.</div><div class='add'>+</div><div class='add'>+Wed Apr 30 14:12:00 2003  wanowa.kimura@nifty.ne.jp (kimura wataru)</div><div class='add'>+</div><div class='add'>+	* net/imap.rb: support THREAD extension.</div><div class='add'>+</div><div class='add'>+Sun Apr 27 23:13:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): disallow negative radix.</div><div class='add'>+	  [ruby-dev:20087]</div><div class='add'>+</div><div class='add'>+Sat Apr 26 23:34:42 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (open_args): warning message changed to "don't put space</div><div class='add'>+	  before argument parentheses".</div><div class='add'>+</div><div class='add'>+Sat Apr 26 14:25:00 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/ : files removed.</div><div class='add'>+	           (config, dll.mak, exe.mak, mswince-ruby17.def,</div><div class='add'>+	            io.c, process.c, signal.c, string.c, time.c)</div><div class='add'>+</div><div class='add'>+	* wince/ : files added.</div><div class='add'>+	           (assert.c, Makefile.sub, mkexports.rb, io_wce.c,</div><div class='add'>+	            process_wce.c, signal_wce.c, string_wce.c,</div><div class='add'>+	            time_wce.c)</div><div class='add'>+</div><div class='add'>+	* wince/configure.bat : like mswin32 style.</div><div class='add'>+</div><div class='add'>+	* wince/direct.c : remove "static" at _currentdir.</div><div class='add'>+</div><div class='add'>+	* wince/io.h : change definition.</div><div class='add'>+</div><div class='add'>+	* wince/stdio.c : _fdopen -&gt; fdopen.</div><div class='add'>+</div><div class='add'>+	* wince/process.h : add _P_OVERLAY.</div><div class='add'>+</div><div class='add'>+	* wince/time.h : change definition.</div><div class='add'>+</div><div class='add'>+	* wince/wincemain.c : add wce_SetCurrentDir.</div><div class='add'>+</div><div class='add'>+	* wince/wince.c : add wce_SetCurrentDir and wce_fopen.</div><div class='add'>+	                  fix GetModuleFileNameA to return correct "lpFileName".</div><div class='add'>+</div><div class='add'>+	* wince/wince.h : remove #ifdef.</div><div class='add'>+</div><div class='add'>+	* wince/sys/utime.h, utime.c : rename _utime to utime.</div><div class='add'>+</div><div class='add'>+	* wince/sys/stat.c : expand relative directory in stat.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 06:33:04 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): ARGF.read() should read all argument files.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 18:46:00 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: STACK_LEVEL_MAX=65535 on mswince.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 18:40:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): read should not span two files. [ruby-dev:20073]</div><div class='add'>+</div><div class='add'>+Fri Apr 25 18:19:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (splat_value): split splat_value() and avalue_splat().</div><div class='add'>+</div><div class='add'>+	* io.c: there's no way to set non-IO value to current_file, thus</div><div class='add'>+	  no need for argf_forward().</div><div class='add'>+</div><div class='add'>+Fri Apr 25 02:03:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): Proc#yield should pass through retry and</div><div class='add'>+	  break like keyword yield. [ruby-talk:70034]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): orphan Proc now raises LocalJumpError for</div><div class='add'>+	  break and retry again.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ARGSCAT should splat the argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (splat_value): splat operation function.</div><div class='add'>+</div><div class='add'>+Thu Apr 24 23:37:02 2003  Dave Thomas  &lt;dave@thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix#minor):  Used Range#size, which no longer</div><div class='add'>+	  exists.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (new!): Complex.new had been made private, but</div><div class='add'>+	  Kernel#Complex called it. Re-exposed as new!.</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix.row_vector): Fix method name typo</div><div class='add'>+</div><div class='add'>+Thu Apr 24 19:40:02 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: add -Wl,--no-undefined to LDSHARED only</div><div class='add'>+	  if GNU ld is 2.11 or later.</div><div class='add'>+</div><div class='add'>+Wed Apr 23 14:05:40 2003  Dave Thomas &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (include?): Support non-IPAddr parameters.</div><div class='add'>+	  [ruby-core:00980]</div><div class='add'>+</div><div class='add'>+Wed Apr 23 13:31:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::[]): always return Value</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+Wed Apr 23 08:39:27 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/extconf.rb: bccwin32 is win32 too.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 20:58:00 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: don't call VirtualQuery in ruby_init_loadpath()</div><div class='add'>+	  on mswince.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 19:08:53 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (save_mantissa, load_mantissa): for interoperability</div><div class='add'>+	  should count cut-down bit from topmost.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 09:20:40 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_ambiguous): hopefully better message.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::initialize_query): to_ary</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 06:06:22 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Resource#hash): use XOR to accumulate</div><div class='add'>+	  hash value.</div><div class='add'>+</div><div class='add'>+	* lib/tsort.rb (TSort#each_strongly_connected_component): don't use</div><div class='add'>+	  block argument.</div><div class='add'>+	  (each_strongly_connected_component_from): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 21:59:48 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c: one more digit for decimal point.  [ruby-talk:69808]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 21:25:59 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_is_finite_p): use finite() if available.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (isinf, isnan): define as macro.</div><div class='add'>+	  [ruby-win32:00533]</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub: no longer use</div><div class='add'>+	  missing/isinf.c, missing/isnan.c.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 18:36:28 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): unnecessarily long buffer was used</div><div class='add'>+	  for radix 9.  [ruby-dev:20057]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 17:44:34 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_append, value_expr0, assign_in_cond,</div><div class='add'>+	  warn_unless_e_option, warning_unless_e_option, range_op,</div><div class='add'>+	  cond0): adjust line number in warning.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 00:47:42 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: avoid the MSVCRT *printf problem(float).</div><div class='add'>+	  [ruby-dev:20037]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 00:11:15 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): append least mantissa bits to get rid</div><div class='add'>+	  of roundoff problem.  [ruby-talk:69518]</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): load least mantissa bits.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 23:24:25 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtInitialize): set the floating-point control word</div><div class='add'>+	  on bcc32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h, bcc32/Makefile.sub: use missing/isinf.c, should not</div><div class='add'>+	  use _finite() because it returns 0 if NaN.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 03:09:30 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (void_expr0): node might become NULL after calling</div><div class='add'>+	  remove_begin().</div><div class='add'>+</div><div class='add'>+Sat Apr 19 21:55:10 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup*: Add zlib and remove bogus and obsolete entries.</div><div class='add'>+</div><div class='add'>+Sat Apr 19 14:47:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): use rb_gc_mark_maybe() to mark registered C</div><div class='add'>+	  addresses.  C variables may not hold valid reference to Ruby</div><div class='add'>+	  objects. [ruby-core:00975]</div><div class='add'>+</div><div class='add'>+Sat Apr 19 00:56:13 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_eql): should compare values with "eql?".</div><div class='add'>+</div><div class='add'>+Fri Apr 18 23:29:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_check): &lt;=&gt; returns nil for invalid values;</div><div class='add'>+	  should check.</div><div class='add'>+</div><div class='add'>+Fri Apr 18 15:26:50 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_raise): workaround for some implementations of</div><div class='add'>+	  vsnprintf.</div><div class='add'>+</div><div class='add'>+Fri Apr 18 02:23:42 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): should not set RE_OPTIMIZE_ANCHOR,</div><div class='add'>+	  if anychar_repeat is enclosed by parentheses.</div><div class='add'>+</div><div class='add'>+Fri Apr 18 01:49:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): improved conversion accuracy.</div><div class='add'>+</div><div class='add'>+Thu Apr 17 14:39:23 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (each_pair): add prototype to avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): follow readline 4.2</div><div class='add'>+	  prototype.</div><div class='add'>+</div><div class='add'>+Thu Apr 17 14:22:36 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): warn only range literals whose both side are</div><div class='add'>+	  literals.  [ruby-core:00964]</div><div class='add'>+</div><div class='add'>+Thu Apr 17 11:10:59 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: add the defined operator for bcc32.</div><div class='add'>+</div><div class='add'>+Wed Apr 16 00:14:06 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-special-char-p): should test at the</div><div class='add'>+	  point if no argument.  fixed by Michael Scholz</div><div class='add'>+	  &lt;scholz-micha@gmx.de&gt;.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 19:35:08 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: rm_r should raise Errno::ENOENT if file</div><div class='add'>+	  does not exist ([ruby-core:958]).  Thanks Johan Holmberg.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 19:12:21 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_hash): new methods Struct#hash, Struct#eql?.</div><div class='add'>+	  (ruby-bugs:PR#758)</div><div class='add'>+</div><div class='add'>+Tue Apr 15 16:05:11 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_fix2str): buffer was insufficient.</div><div class='add'>+	  (ruby-bugs-ja:PR#431)</div><div class='add'>+</div><div class='add'>+Mon Apr 14 19:45:56 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): root must follow buf when</div><div class='add'>+	  reallocated.  [ruby-talk:69339], [ruby-dev:20025]</div><div class='add'>+</div><div class='add'>+Mon Apr 14 03:22:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h (struct OpenFile): add noraise flag to finalizer.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): define $/, $-0, and $\ as string-only</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): does not generate empty string if</div><div class='add'>+	  the receiver is empty.</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): should raise error on EBADF for readable</div><div class='add'>+	  IOs as well.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 15:54:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum, rb_big2str): allow 2-36 as radix.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_fix2str): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): ditto.</div><div class='add'>+</div><div class='add'>+Sun Apr 13 03:20:31 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func): remove COMMON_HEADERS at first for</div><div class='add'>+	  performance.</div><div class='add'>+</div><div class='add'>+Sat Apr 12 20:59:40 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-beginning-of-arg): substitute</div><div class='add'>+	  ruby-backward-arg.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): fixed wrong</div><div class='add'>+	  indentation in brace block and parentheses.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-forward-sexp, ruby-backward-sexp):</div><div class='add'>+	  support special char literal, and negative arguments.</div><div class='add'>+</div><div class='add'>+Sat Apr 12 17:52:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat): use rb_check_convert_type() to retrieve IO.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 19:00:14 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_stat): check arguments.  [ruby-dev:20007]</div><div class='add'>+	  [ruby-win32:535]</div><div class='add'>+</div><div class='add'>+Fri Apr 11 15:56:08 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (coerce_rescue): prevent inspected String from GC.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq, rb_dbl_cmp, flo_gt, flo_ge, flo_lt, flo_le,</div><div class='add'>+	  flo_eql): correct NaN comparison.  (ruby-bugs:PR#744)</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: NaN comparison test.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 14:48:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat): dereference using StringValuePtr().</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_stat): use rb_stat(). [ruby-dev:20007]</div><div class='add'>+</div><div class='add'>+Fri Apr 11 10:51:08 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb (Benchmark::bm): get rid of warning.</div><div class='add'>+	  [ruby-talk:69124]</div><div class='add'>+</div><div class='add'>+Fri Apr 11 02:41:35 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdin): assigned value must respond to "read" and</div><div class='add'>+	  "getc".</div><div class='add'>+</div><div class='add'>+	* io.c (set_outfile): assigned value must respond to "write".</div><div class='add'>+	  (ruby-bugs-ja:PR#425)</div><div class='add'>+</div><div class='add'>+Thu Apr 10 21:12:19 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: Exception line was accidentaly removed.</div><div class='add'>+	  [ruby-dev:19989]</div><div class='add'>+</div><div class='add'>+Thu Apr 10 18:42:13 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_times): added some checks for request size.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 03:22:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_name): always return empty string for</div><div class='add'>+	  anonymous class/module.  (ruby-bugs-ja PR#424)</div><div class='add'>+</div><div class='add'>+	* config.sub: stop forcing addition of -gnu to -linux.</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): refactoring.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class_path): __tmp__classpath__ handling moved</div><div class='add'>+	  from classname().</div><div class='add'>+</div><div class='add'>+Thu Apr 10 01:52:24 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_is_method): indefinite return value.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 00:39:32 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): /[\--\-]/ was warned.  warn /]/.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: escape `]' in regexp.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 00:27:07 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): RSTRING(format)-&gt;ptr might become NULL.</div><div class='add'>+</div><div class='add'>+Wed Apr  9 23:54:50 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_obj_remove_instance_variable): better message.</div><div class='add'>+	  [ruby-talk:68987]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_const): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_get): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_set): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr  9 21:51:20 2003  Dave Thomas  &lt;Dave@Thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): Allow UnboundMethod as</div><div class='add'>+	  parameter.</div><div class='add'>+</div><div class='add'>+Wed Apr  9 18:30:58 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (top_include): include module to wrapper module if</div><div class='add'>+	  wrapper is present. experimental.  [ruby-list:37539]</div><div class='add'>+</div><div class='add'>+Wed Apr  9 17:24:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_children): introduce this function again; this</div><div class='add'>+	  is required when stack was very tight. [ruby-talk:68916]</div><div class='add'>+</div><div class='add'>+Wed Apr  9 15:49:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): small typo.</div><div class='add'>+</div><div class='add'>+Wed Apr  9 15:35:04 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: include &lt;unistd.h&gt; only when</div><div class='add'>+	  HAVE_UNISTD_H is defined.</div><div class='add'>+</div><div class='add'>+Wed Apr  9 14:05:00 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): preserve extended module on struct.</div><div class='add'>+	  (ruby-bugs-ja:PR#422)</div><div class='add'>+</div><div class='add'>+Wed Apr  9 03:43:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (BIGZEROP): macro to determine if x is a bignum zero.</div><div class='add'>+</div><div class='add'>+Tue Apr  8 11:49:31 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): make Method and UnboundMethod independent.</div><div class='add'>+	  They are like instance and its class. [ruby-core:00941]</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): disallow global variables like "$1ve".</div><div class='add'>+	  [ruby-core:00945]</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump): Marshal.dump(0, false) should cause an</div><div class='add'>+	  error. (ruby-bugs-ja PR#421)</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): warn if '-' is the edge of</div><div class='add'>+	  character range.</div><div class='add'>+</div><div class='add'>+Mon Apr  7 15:49:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_unpack_sockaddr_in): remove struct</div><div class='add'>+	  size check.  getnameinfo(3) can handle. [ruby-dev:19967]</div><div class='add'>+</div><div class='add'>+Mon Apr  7 01:33:31 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): do not call rb_sys_fail() when required data</div><div class='add'>+	  length is zero. (ruby-bugs-ja PR#420)</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_proc): should raise TypeError, instead of</div><div class='add'>+	  returning error causing Proc.  Following the principle of "fail</div><div class='add'>+	  early".  [ruby-core:00927]</div><div class='add'>+</div><div class='add'>+Sun Apr  6 18:29:21 2003  UENO Katsuhiro  &lt;katsu@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: the return value of GzipReader#getc must be</div><div class='add'>+	  unsigned.</div><div class='add'>+</div><div class='add'>+Sun Apr  6 00:35:37 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/exyacc.rb: use Regexp in gsub!.</div><div class='add'>+</div><div class='add'>+Sat Apr  5 23:41:28 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): small but serious typo.</div><div class='add'>+</div><div class='add'>+Sat Apr  5 04:23:05 2003  Warren Brown  &lt;wkb@airmail.net&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): was decrementing width even if there</div><div class='add'>+	  is no sign character.</div><div class='add'>+</div><div class='add'>+Sat Apr  5 01:41:28 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (backtrace): skip internal allocator frame.</div><div class='add'>+	  (ruby-bugs-ja PR#416)</div><div class='add'>+</div><div class='add'>+Fri Apr  4 10:53:22 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): should prepare mrhs by svalue_to_mrhs().</div><div class='add'>+</div><div class='add'>+Wed Apr  2 15:11:23 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (3.3): clarified -1 as free for</div><div class='add'>+	  Data_Wrap_Struct().  [ruby-dev:19881]</div><div class='add'>+</div><div class='add'>+Mon Mar 31 11:11:36 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): use "inspect" for T_OBJECT as well.</div><div class='add'>+</div><div class='add'>+Mon Mar 31 10:50:48 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_reject_bang): untaint key string.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_delete_m): execute block only if deleting key does</div><div class='add'>+	  not exist.</div><div class='add'>+</div><div class='add'>+Sat Mar 29 17:54:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): do not call rb_str_buf_cat() with NULL ptr,</div><div class='add'>+	  which causes SEGV; jump to grow instead. [ruby-dev:19944]</div><div class='add'>+</div><div class='add'>+Sat Mar 29 15:19:48 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb, ext/extmk.rb, lib/benchmark.rb, lib/cgi.rb,</div><div class='add'>+	  lib/debug.rb, lib/getoptlong.rb, lib/optparse.rb, lib/time.rb,</div><div class='add'>+	  lib/date/format.rb, lib/irb/ruby-lex.rb lib/uri/common.rb: revert</div><div class='add'>+	  escape for `-' in character class.</div><div class='add'>+</div><div class='add'>+Sat Mar 29 09:48:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_svalue): use rb_check_array_type() again.</div><div class='add'>+	  Clarify how "to_ary" and "to_a" work. [ruby-talk:68155]</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_avalue): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_mrhs): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): unary splat to use to_a, but we need a hack to</div><div class='add'>+	  exclude Object#to_a until it's removed.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Array): check obj.respond_to?("to_a").  Currently</div><div class='add'>+	  all object respond_to "to_a", but Object#to_a will be removed.</div><div class='add'>+</div><div class='add'>+	* range.c (Init_Range): undefine to_ary.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar 29 09:47:52 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST (ext/aix_mksym.rb): remove obsolete file.</div><div class='add'>+</div><div class='add'>+Fri Mar 29 06:21:24 2003  UENO Katsuhiro  &lt;katsu@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib: merge from rough.</div><div class='add'>+</div><div class='add'>+Fri Mar 28 19:33:39 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class_path): hold temporary class path in a</div><div class='add'>+	  instance variable to get rid of GC.  [ruby-dev:19932]</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): remove temporary class path when exact</div><div class='add'>+	  name found.</div><div class='add'>+</div><div class='add'>+Fri Mar 28 18:29:23 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): do not warn if "-" is at the top</div><div class='add'>+	  or last of character class.</div><div class='add'>+</div><div class='add'>+Thu Mar 27 12:10:15 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): fix [:name:] handling.</div><div class='add'>+	  /[\[:digit:]]/ was treated as /[[:digit:]]/.</div><div class='add'>+	  /[[:-@]/ was treated as /[\[:\-@]/.</div><div class='add'>+	  /[%-[:digit:]]/ was treated as /[%-\[:digit:]\]/.</div><div class='add'>+</div><div class='add'>+Thu Mar 27 03:26:40 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_capitalize_bang): check length before upcase</div><div class='add'>+	  first character.  (ruby-bugs:PR#697)</div><div class='add'>+</div><div class='add'>+Wed Mar 26 20:25:10 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): break if path list end, even for too long</div><div class='add'>+	  path names.  (ruby-bugs-ja:PR#412)</div><div class='add'>+</div><div class='add'>+Wed Mar 26 13:19:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_splat): new function to do unary * (splat)</div><div class='add'>+	  operator.</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_svalue,svalue_to_avalue,svalue_to_mrhs): do</div><div class='add'>+	  not use implicit "to_ary" conversion.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (GetWINDOW,GetMOUSE): add taint check.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_init_screen): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (os_each_obj): prohibit ObjectSpace#each_object in safe</div><div class='add'>+	  mode ($SAFE &gt;= 4).</div><div class='add'>+</div><div class='add'>+Tue Mar 25 23:26:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): return "DEFAULT" and "IGNORE" respectively for</div><div class='add'>+	  previous sighandler SIG_DFL and SIG_IGN. [ruby-talk:67860]</div><div class='add'>+</div><div class='add'>+Tue Mar 25 12:24:15 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): call avalue_to_mrhs() to assign block</div><div class='add'>+	  parameter |a|. [ruby-dev:19897]</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_set_argv): freeze argument strings.</div><div class='add'>+</div><div class='add'>+Tue Mar 25 12:01:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): should check rb_secure(4).</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_getwd): should check rb_secure(4).</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_infect): function version of OBJ_INFECT().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_secure_update): new function to check object update.</div><div class='add'>+</div><div class='add'>+Tue Mar 25 10:18:05 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: should infect also return values of</div><div class='add'>+	  #inspect.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: use snprintf() instead of sprintf().</div><div class='add'>+</div><div class='add'>+Mon Mar 24 16:55:04 2003  Takaaki Tateishi &lt;ttate@ttsky.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c: added rb_secure(4). (Thanks to Minero Aoki)</div><div class='add'>+</div><div class='add'>+	* ext/dl/sym.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/ptr.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 24 00:09:02 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_append): warn unused literal.</div><div class='add'>+</div><div class='add'>+Sun Mar 23 22:22:04 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb (tr!, delete!, szueeze!): add empty string checking.</div><div class='add'>+</div><div class='add'>+Sun Mar 23 19:54:53 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): use free() if dfree is -1.</div><div class='add'>+</div><div class='add'>+Sat Mar 22 15:50:29 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): try search_time_t if mktime/timegm is failed.</div><div class='add'>+</div><div class='add'>+Sat Mar 22 13:26:33 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb, lib/jcode.rb, ext/tk/lib/tk.rb: reorder character</div><div class='add'>+	  class /[\]\[]/ to /[\[\]]/ for readability.</div><div class='add'>+</div><div class='add'>+Sat Mar 22 12:44:15 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb, lib/uri/common.rb: escape `[', `]', `-' in</div><div class='add'>+	  character class in regexp to avoid warning.</div><div class='add'>+</div><div class='add'>+Sat Mar 22 07:39:32 2003  Ulf Betlehem  &lt;flu@iki.fi&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fread): may lose data on nonblocking read.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 23:40:41 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): fix previous change.</div><div class='add'>+</div><div class='add'>+	* instruby.rb, ext/extmk.rb, ext/tk/lib/tk.rb, lib/benchmark.rb,</div><div class='add'>+	  lib/cgi.rb, lib/debug.rb, lib/getoptlong.rb, lib/jcode.rb,</div><div class='add'>+	  lib/optparse.rb, lib/time.rb, lib/date/format.rb,</div><div class='add'>+	  lib/irb/ruby-lex.rb: escape `[', `]', `-' in character class in</div><div class='add'>+	  regexp to avoid warning.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 23:23:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): give warning for unescaped square</div><div class='add'>+	  brackets and minus in character class. [ruby-dev:19868]</div><div class='add'>+</div><div class='add'>+Fri Mar 21 18:12:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (bmcall): missing type.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 01:29:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): copy sign bits only if value is</div><div class='add'>+	  negative.</div><div class='add'>+</div><div class='add'>+	* missing.h: include &lt;stdarg.h&gt; or &lt;varargs.h&gt; if HAVE_VSNPRINTF</div><div class='add'>+	  is not defined.</div><div class='add'>+</div><div class='add'>+Thu Mar 20 18:31:37 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#order!): follow recent change</div><div class='add'>+	  of proc argument.</div><div class='add'>+</div><div class='add'>+Thu Mar 20 16:12:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): change format specifier to "%.15g" to</div><div class='add'>+	  avoid unnecessary 9s (e.g. 99.59999999999999). (ruby-bugs-ja PR#406)</div><div class='add'>+</div><div class='add'>+Thu Mar 20 16:03:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, primary): get rid of SEGV at empty or invalid</div><div class='add'>+	  condition.  (ruby-bugs-ja:PR#410)</div><div class='add'>+</div><div class='add'>+	* parse.y (cond_negative): negate condition node when NODE_NOT.</div><div class='add'>+</div><div class='add'>+Thu Mar 20 10:45:29 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (bmcall): add volatile to avoid GC problem.</div><div class='add'>+</div><div class='add'>+Thu Mar 20 10:10:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (load_dyna): clear ruby_errinfo. (ruby-bugs-ja PR#409)</div><div class='add'>+</div><div class='add'>+Wed Mar 19 23:05:30 2003  NAKAMURA, Hiroshi &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb (trace_func): save and recover Thread.critical state.</div><div class='add'>+	  Fixed by Fukumoto Atsushi &lt;fukumoto@imasy.or.jp&gt; [ruby-dev:19830]</div><div class='add'>+</div><div class='add'>+Wed Mar 19 02:55:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): make str empty if given. (ruby-bugs-ja PR#408)</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_sysread): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 18 18:24:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c: do not override min and max.</div><div class='add'>+</div><div class='add'>+Sun Mar 16 12:29:55 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (object_address_group): use to_s instead of name</div><div class='add'>+	  to get name of class.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 08:53:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): octal left most digit for negative</div><div class='add'>+	  numbers may be '3'. (ruby-bugs-ja PR#407)</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): should prefix sign bits if bignum is</div><div class='add'>+	  negative, using sign_bits().</div><div class='add'>+</div><div class='add'>+Wed Mar 12 16:48:19 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (prep_stdio): set binmode only if the file descriptor</div><div class='add'>+	  is not connected to a terminal on Cygwin.</div><div class='add'>+</div><div class='add'>+Wed Mar 12 11:23:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_mrhs): split argument passing and assignment</div><div class='add'>+	  conversion.</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_mrhs): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_svalue): avalue_to_svalue([[1,2]]) should be</div><div class='add'>+	  [[1,2]], not [1,2] to wrap-around.</div><div class='add'>+</div><div class='add'>+Tue Mar 11 21:00:59 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: Digest string wrongly included '\n' when user</div><div class='add'>+	  name is too long (ruby-bugs-ja:PR#404).</div><div class='add'>+</div><div class='add'>+Tue Mar 11 20:07:01 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: speeding up by avoiding extra flush.</div><div class='add'>+	  (suggested by Brian Candler &lt;B.Candler@pobox.com&gt; [ruby-talk:66516])</div><div class='add'>+</div><div class='add'>+Tue Mar 11 04:30:12 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): remove unnecessary array unpacking; it should</div><div class='add'>+	  be handled before massign() by svalue_to_mrhs().</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_mrhs): '*a = v' value conversion to avalue</div><div class='add'>+	  (i.e. [1] =&gt; [[1]], [1,2] =&gt; [1,2]).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use svalue_to_mrhs.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): break from "Proc#yield" is legal.</div><div class='add'>+</div><div class='add'>+Mon Mar 10 23:19:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): need world writable directory check for</div><div class='add'>+	  relative paths too.</div><div class='add'>+</div><div class='add'>+Mon Mar 10 11:23:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): world writable directory check if</div><div class='add'>+	  $SAFE &gt;= 1 (was $SAFE &gt;= 2).</div><div class='add'>+</div><div class='add'>+Mon Mar 10 01:59:47 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: do not dispatch LIST when a mailbox is empty.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: merge the 'STAT' patch from Frank S.Fejes</div><div class='add'>+	  &lt;frank@oopdreams.com&gt;, with modifications (listed below).</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: new method Net::POP#mail_size.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: new method Net::POP#bytes.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: new method Net::POPCommand#stat.</div><div class='add'>+</div><div class='add'>+Sun Mar  9 19:30:25 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir, mkdir_p): revert.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (umask): umask 0022, not 0.</div><div class='add'>+</div><div class='add'>+Sun Mar  9 17:09:40 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir, mkdir_p): set mode to 0755.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (fake.rb): set ALT_SEPARATOR to the default value.</div><div class='add'>+</div><div class='add'>+Sat Mar  8 11:30:59 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): fix a bug not to expand in assignment to sole</div><div class='add'>+	  lhs.  [ruby-dev:19766]</div><div class='add'>+</div><div class='add'>+Fri Mar  7 21:57:25 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (Kernel.pp): module function.</div><div class='add'>+	  (MatchData#pretty_print): new method.</div><div class='add'>+</div><div class='add'>+Fri Mar  7 20:27:19 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb (find_tcl, find_tk): return true if</div><div class='add'>+	  non-versioned found.  [ruby-dev:19759]</div><div class='add'>+</div><div class='add'>+Fri Mar  7 15:05:35 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: add QDBM support.</div><div class='add'>+</div><div class='add'>+Fri Mar  7 12:59:39 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): deal with sole lhs, assign rest args from</div><div class='add'>+	  converted array.  [ruby-dev:19751]</div><div class='add'>+</div><div class='add'>+Fri Mar  7 03:31:36 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): :"symbol string" style should not contain `\0'.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_detach): new method Process.detach(pid) which</div><div class='add'>+	  create background watcher thread to issue waitpid. [new]</div><div class='add'>+</div><div class='add'>+	* process.c (rb_detach_process): utility function to detach</div><div class='add'>+	  process from C code.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_finalize_syswait): terminate watcher thread,</div><div class='add'>+	  and detach child process (by creating new idle waitpid watcher</div><div class='add'>+	  thread).</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_syswait): may lost signal stopped child.</div><div class='add'>+</div><div class='add'>+Fri Mar  7 00:30:33 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c: no longer use inline-asms.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/extconf.rb: no need to add gcc options.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 13:02:10 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reswords): fix reswords list.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 12:13:21 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: better YACC support on HP-UX.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 05:55:20 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cat): remove ptr NULL check and MEMZERO(). ptr</div><div class='add'>+	  must be non NULL.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 23:12:07 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, bcc32/Makefile.sub, win32/Makefile.sub: define</div><div class='add'>+	  RUBY_EXPORT to export symbols.</div><div class='add'>+</div><div class='add'>+	* defines.h: use RUBY_EXTERN instead of EXTERN.</div><div class='add'>+</div><div class='add'>+	* intern.h, re.h, ruby.h, rubysig.h: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: remove EXTERN definition.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 17:54:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aref): raise TypeError if index is a symbol.</div><div class='add'>+	  [ruby-list:37217]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aset): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 14:39:11 2001  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c: HP-UX support.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 15:08:08 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: better HP-UX support.</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 10:11:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): do not call rb_io_close() directly, call</div><div class='add'>+	  "close" method instead. [ruby-dev:19717]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_open): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_hash): remove DEFER_INTS.  all do_hash() calls in</div><div class='add'>+	  st.c are at the top of functions.  No reentrant problem.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 01:19:21 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/MANIFEST: Exclude .cvsignore. [found by: eban]</div><div class='add'>+</div><div class='add'>+Tue Mar  4 01:17:08 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/MANIFEST: Belatedly add lib/win32/registry.rb.</div><div class='add'>+	  [found by: eban]</div><div class='add'>+</div><div class='add'>+Tue Mar  4 00:33:04 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: Belatedly add Test::Unit files.  D'oh!</div><div class='add'>+</div><div class='add'>+Sun Mar  2 09:51:47 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_nbyte): should output always via rb_io_write().</div><div class='add'>+</div><div class='add'>+	* marshal.c (dump_ensure): ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump): should call "binmode" method, if it</div><div class='add'>+	  responds to.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): should input always via "getc" method.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes0): should input always via "read" method.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): need not to set up FILE* fp;</div><div class='add'>+</div><div class='add'>+Mon Mar  3 11:29:04 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): parse 'lhs = a rescue b' as 'lhs=(a rescue b)'.</div><div class='add'>+</div><div class='add'>+Mon Mar  3 02:53:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fread): should not clearerr() if there's no filled</div><div class='add'>+	  buffer (i.e. rb_io_fread() returning zero).</div><div class='add'>+</div><div class='add'>+Mon Mar  3 01:42:35 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): escaped char syntax.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): ditto.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): no deep indent for</div><div class='add'>+	  block.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-backward-arg): skip arguments backward.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): too deep indentation.</div><div class='add'>+</div><div class='add'>+Fri Feb 28 23:50:32 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (map_errno): map OS error to errno. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (pipe_exec, CreateChild, poll_child_status, waitpid,</div><div class='add'>+	  kill, link, rb_w32_rename, unixtime_to_filetime, rb_w32_utime): use</div><div class='add'>+	  map_errno() instead of using GetLastError() directly.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select, rb_w32_accept, rb_w32_bind,</div><div class='add'>+	  rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname,</div><div class='add'>+	  rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv,</div><div class='add'>+	  rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt,</div><div class='add'>+	  rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr,</div><div class='add'>+	  rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname,</div><div class='add'>+	  rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport,</div><div class='add'>+	  rb_w32_fclose, rb_w32_close): map winsock error to errno.</div><div class='add'>+</div><div class='add'>+Fri Feb 28 22:54:10 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (flock): supports larger files, and maps error</div><div class='add'>+	  code.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_asynchronize): returns errno from child</div><div class='add'>+	  thread.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_fclose, rb_w32_close): ensures unlocked.</div><div class='add'>+</div><div class='add'>+Wed Feb 26 17:38:16 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: replace Kernel.open as well.</div><div class='add'>+</div><div class='add'>+Tue Feb 25 23:03:08 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (DEBUGGER__::Context#debug_command): bp filename must</div><div class='add'>+	  be the basename of it.  [ruby-talk:65644]</div><div class='add'>+</div><div class='add'>+Mon Feb 24 17:49:35 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): zero clear ruby_eval_tree_begin if</div><div class='add'>+	  compilation failed.</div><div class='add'>+</div><div class='add'>+Mon Feb 24 08:06:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new): need no MEMZERO().</div><div class='add'>+</div><div class='add'>+Sun Feb 23 17:57:06 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils (fu_stream_blksize): wrong logical condition.</div><div class='add'>+	  (and -&gt; or).</div><div class='add'>+</div><div class='add'>+Sat Feb 22 03:12:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_gt): use rb_num_coerce_cmp() instead of</div><div class='add'>+	  rb_num_coerce_bin.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_ge, fix_lt, fix_le): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_gt, flo_ge, flo_lt, flo_le): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 22 02:45:20 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_create): may called from place higher than</div><div class='add'>+	  rb_gc_stack_start.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): update rb_gc_stack_start if it is lower (or</div><div class='add'>+	  higher if stack grows down) than the previous value.</div><div class='add'>+</div><div class='add'>+Fri Feb 21 21:03:41 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils#copy_stream.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils#compare_file.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils#compare_stream.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils#rmtree (alias of rm_rf).</div><div class='add'>+</div><div class='add'>+Fri Feb 21 17:19:27 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): do not need to abort if a DLEXT file</div><div class='add'>+	  is not found.</div><div class='add'>+</div><div class='add'>+Fri Feb 21 13:39:25 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp_m): should use LONG2NUM().</div><div class='add'>+</div><div class='add'>+Fri Feb 21 12:45:50 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp_m): two small bugs fixed.</div><div class='add'>+</div><div class='add'>+Fri Feb 21 08:03:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): inline rb_gc_mark_children().</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): new tactics to increase malloc_limit mildly.</div><div class='add'>+</div><div class='add'>+Fri Feb 21 05:16:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp_m): return nil if str2 does not respond to</div><div class='add'>+	  both "to_str" and "&lt;=&gt;".</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_gt): return nil if "&lt;=&gt;" returns nil (means</div><div class='add'>+	  incomparable).</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_ge, cmp_lt, cmp_le): ditto.</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_between): use RTEST(), since cmp_lt and cmp_gt may</div><div class='add'>+	  return nil.</div><div class='add'>+</div><div class='add'>+Thu Feb 20 19:05:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): main thread swapped by fork() may</div><div class='add'>+	  terminate rb_thread_start_0() successfully. call ruby_stop(0);</div><div class='add'>+	  this change was suggested by Rudi Cilibrasi</div><div class='add'>+	  &lt;cilibrar@drachma.ugcs.caltech.edu&gt;.</div><div class='add'>+</div><div class='add'>+Thu Feb 20 18:44:51 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): fix wrong behavior for root file.</div><div class='add'>+	  expand_path("..", "//machine/share") =&gt; "//machine/share"</div><div class='add'>+	  expand_path("..", "c:/a") =&gt; "c:/"</div><div class='add'>+	  expand_path("..", "/a") =&gt; "/"</div><div class='add'>+</div><div class='add'>+Thu Feb 20 18:11:01 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): should not upward beyond share name.</div><div class='add'>+</div><div class='add'>+Thu Feb 20 15:45:33 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h (strtoul): fix prototype of strtoul.</div><div class='add'>+</div><div class='add'>+Thu Feb 20 10:11:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (clhs): allow "Foo::Bar = x".</div><div class='add'>+</div><div class='add'>+Thu Feb 20 04:07:06 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): "self[n]=x" can be legal even when "[]=" is</div><div class='add'>+	  private.  changes submitted in [ruby-talk:63982]</div><div class='add'>+</div><div class='add'>+	* parse.y (aryset): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (attrset): "self.foo=x" can be legal even when "foo="</div><div class='add'>+	  is private.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): private "[]=" and "foo=" support.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval, assign): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 20 03:58:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): "foo=" should not always be public.</div><div class='add'>+</div><div class='add'>+Thu Feb 20 01:23:59 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_restore_context): inhibit interrupts in</div><div class='add'>+	  critical section while context switching.  [ruby-talk:64785]</div><div class='add'>+</div><div class='add'>+Wed Feb 19 18:27:42 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (nd_cpath): nested class/module declaration.</div><div class='add'>+	  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_children): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (cpath): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 18 21:39:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): should not report uninitialized warning by</div><div class='add'>+	  attribute reader method.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_attr_get): new function to get instance variable</div><div class='add'>+	  without uninitialized warning.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_to_io): should prefetch argv.</div><div class='add'>+</div><div class='add'>+Tue Feb 18 00:13:50 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-comment-column): customize comment</div><div class='add'>+	  column.  [new]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-deep-indent-paren): deep indentation</div><div class='add'>+	  parentheses.  [new]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): fix for / after $?.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial, ruby-calculate-indent):</div><div class='add'>+	  deep indentation support.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-forward-sexp, ruby-backward-sexp):</div><div class='add'>+	  move forward/backward across one balanced expression.  [new]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-indent-exp): indent balanced</div><div class='add'>+	  expression.  [new]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-electric-brace): indent before</div><div class='add'>+	  show matching parenthesis.  (contributed by NABEYA Kenichi)</div><div class='add'>+</div><div class='add'>+Mon Feb 17 14:36:56 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir, rb_w32_utime): need parens.</div><div class='add'>+</div><div class='add'>+Mon Feb 17 14:13:25 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (link): implement with CreateHardLink().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (rb_w32_utime): enable utime() to</div><div class='add'>+	  directory if on NT. [new] (ruby-bugs-ja:PR#393)</div><div class='add'>+</div><div class='add'>+Mon Feb 17 13:28:51 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): strip last slash when path is</div><div class='add'>+	  root.</div><div class='add'>+</div><div class='add'>+Sun Feb 16 19:22:31 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): buffer might be reallocated while</div><div class='add'>+	  expanding default directory.</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): default directory was being</div><div class='add'>+	  ignored if path was full path with no drive letter, under</div><div class='add'>+	  DOSISH.</div><div class='add'>+</div><div class='add'>+Sun Feb 16 03:14:33 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (prep_stdio, Init_io): always set binmode on Cygwin.</div><div class='add'>+</div><div class='add'>+Sat Feb 15 01:01:45 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): fix surplus path separators while</div><div class='add'>+	  expanding at root directory.  [ruby-dev:19572]</div><div class='add'>+</div><div class='add'>+Fri Feb 14 14:25:24 2003  akira yamada  &lt;akira@arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb, lib/uri/ldap.rb, lib/uri/mailto.ldap: all foo=()</div><div class='add'>+	  returns arguments passed by caller.</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (Generic#to_str, Generic#to_s): removed to_str.</div><div class='add'>+	  Suggested by Tanaka Akira &lt;akr@m17n.org&gt; at [ruby-dev:19475].</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (Generic#==): should not generate an URI object</div><div class='add'>+	  from argument. Suggested by Tanaka Akira &lt;akr@m17n.org&gt; at</div><div class='add'>+	  [ruby-dev:19475].</div><div class='add'>+</div><div class='add'>+Thu Feb 13 11:54:50 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath): ensures buffer terminated</div><div class='add'>+	  before use strncpy().</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): avoid SEGV at -S with no arguments.</div><div class='add'>+	  script argument is in effect only when -e is not given.</div><div class='add'>+	  (ruby-bugs-ja:PR#391)</div><div class='add'>+</div><div class='add'>+Thu Feb 13 01:30:10 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): current thread may be dead when</div><div class='add'>+	  deadlock.  (ruby-bugs:PR#588)</div><div class='add'>+</div><div class='add'>+Thu Feb 13 00:28:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): step might be float 0 &lt; x &lt; 1.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): pause if no runnable thread when</div><div class='add'>+	  there's only one thread.</div><div class='add'>+</div><div class='add'>+Thu Feb 13 00:09:47 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (strrdirsep): ignore trailing directory separators.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): File.expand_path(".","/") should</div><div class='add'>+	  return "/".  (ruby-bugs-ja:PR#389)</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): also ignore trailing directory</div><div class='add'>+	  separators, in compliance with SUSv3.  (ruby-bugs-ja:PR#390)</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_dirname, rb_file_s_extname): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_dirname): append "." if drive only.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_split): get rid of converting twice.</div><div class='add'>+</div><div class='add'>+Mon Feb 10 20:55:15 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args): add '-n' to $mflags BEFORE "--".</div><div class='add'>+	  do not add DESTDIR if already included in $mflags.</div><div class='add'>+</div><div class='add'>+Mon Feb 10 19:54:30 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils#uptodate?): use mtime for</div><div class='add'>+	  comparison.</div><div class='add'>+</div><div class='add'>+Mon Feb 10 10:14:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_to_a): return value should be an Array if the</div><div class='add'>+	  receiver is an instance of subclass of Array.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_s): return value should be a String if the</div><div class='add'>+	  receiver is an instance of subclass of String.</div><div class='add'>+</div><div class='add'>+Mon Feb 10 03:33:42 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_sysopen): rb_file_sysopen_internal() needs four</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+Sun Feb  9 15:16:04 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (HAVE_RB_DEFINE_ALLOC_FUNC, RB_CVAR_SET_4ARGS):</div><div class='add'>+	  define to 1.</div><div class='add'>+</div><div class='add'>+	* ruby.h (NORETURN_STYLE_NEW): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb  9 12:28:18 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): add libdir to LIBPATH unless cross</div><div class='add'>+	  compiling.</div><div class='add'>+</div><div class='add'>+Sun Feb  9 08:34:45 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: 4xx raises Net::ProtoServerError, 5xx raises</div><div class='add'>+	  Net::ProtoFatalError (for backward compatibility).</div><div class='add'>+</div><div class='add'>+Sun Feb  9 07:07:26 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils.pwd (really).</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: FileUtils.pwd, cmp, identical?, uptodate? does</div><div class='add'>+	  not accept any option.</div><div class='add'>+</div><div class='add'>+Sat Feb  8 18:35:30 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-forward-string): fixed void variable</div><div class='add'>+	  error.</div><div class='add'>+</div><div class='add'>+Sat Feb  8 16:23:11 2003  NABEYA Kenichi  &lt;kenichi@nabeya.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords): method name can</div><div class='add'>+	  be delimited by tab.</div><div class='add'>+</div><div class='add'>+Sat Feb  8 03:57:32 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/workspace.rb, lib/irb/ext/math-mode.rb,</div><div class='add'>+	  lib/irb/ext/multi-irb.rb, lib/irb/lc/error.rb,</div><div class='add'>+	  lib/irb/lc/help-message, lib/irb/lc/ja/error.rb,</div><div class='add'>+	  lib/shell/command-processor.rb, lib/shell/error.rb,</div><div class='add'>+	  lib/shell/filter.rb: Fix typos and grammos. [approved by: keiju]</div><div class='add'>+</div><div class='add'>+Sat Feb  8 03:34:28 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (HAVE_RB_DEFINE_ALLOC_FUNC): New boolean macro to make</div><div class='add'>+	  it easier to write extensions that work with both ~1.6 and 1.8~.</div><div class='add'>+</div><div class='add'>+	* intern.h (RB_CVAR_SET_4ARGS): Ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.h (NORETURN_STYLE_NEW): Ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  8 00:47:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): calls method_missing when superclass method</div><div class='add'>+	  does not exist.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): now handles "no super" case.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_get): Object#instance_variable_get: new</div><div class='add'>+	  method to get instance variable value without eval(). [new]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_set): Object#instance_variable_set: new</div><div class='add'>+	  method to set instance variable value without eval(). [new]</div><div class='add'>+</div><div class='add'>+Fri Feb  7 15:35:21 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, re.c (rb_memsearch): returns long.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): should return offset position.</div><div class='add'>+</div><div class='add'>+Fri Feb  7 15:30:15 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should propagate self to super</div><div class='add'>+	  methods.  [ruby-dev:19510]</div><div class='add'>+</div><div class='add'>+Thu Feb  6 19:04:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): should not preset "kcode" unless</div><div class='add'>+	  encoding is explicitly specified.</div><div class='add'>+</div><div class='add'>+Thu Feb  6 19:01:32 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils.pwd.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: default label is ''.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: using module_eval again, to avoid ruby's bug.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: fix wrong examples in rdoc.</div><div class='add'>+</div><div class='add'>+Thu Feb  6 17:43:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (Complex#==): should not raise error by type</div><div class='add'>+	  mismatch.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (Rational#==): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb  6 11:44:40 2003  MoonWolf  &lt;moonwolf@moonwolf.com&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): 3rd argument was ignored.</div><div class='add'>+</div><div class='add'>+Thu Feb  6 01:09:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): return 0 for empty string (was</div><div class='add'>+	  returning nil).</div><div class='add'>+</div><div class='add'>+Wed Feb  5 19:41:37 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: dispatch code restructured to make it openable</div><div class='add'>+	  that has `open' method.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: Location: field may has a relative URI.</div><div class='add'>+	  pointed out by erik eriksson &lt;ee@opera.com&gt;.</div><div class='add'>+</div><div class='add'>+Wed Feb  5 17:11:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): no .&lt;digit&gt; float literal anymore.</div><div class='add'>+</div><div class='add'>+Tue Feb  4 16:11:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal): a == b is true when b is non T_ARRAY</div><div class='add'>+	  object, if b has "to_ary" and b == a.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_equal): a == b is true when b is non T_HASH</div><div class='add'>+	  object, if b has "to_hash" and b == a.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): a == b is true when b is non T_STRING</div><div class='add'>+	  object, if b has "to_str" and b == a.</div><div class='add'>+</div><div class='add'>+Mon Feb  3 23:46:48 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_getline): should not increment lineno at EOF.</div><div class='add'>+</div><div class='add'>+Mon Feb  3 16:49:19 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): default Object#=== now calls "=="</div><div class='add'>+	  internally.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): should honor option status of</div><div class='add'>+	  original regexp.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal): ary2 should be T_ARRAY (no to_ary</div><div class='add'>+	  conversion).</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_eql): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): str2 should be T_STRING (no to_str</div><div class='add'>+	  conversion).</div><div class='add'>+</div><div class='add'>+Mon Feb  3 16:32:52 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch): a little improvement.</div><div class='add'>+</div><div class='add'>+Mon Feb  3 13:18:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch): algorithm body of String#index.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): "to_str" removed.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): should not rely on Exception#to_str</div><div class='add'>+</div><div class='add'>+	* eval.c (compile_error): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (err_append): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  1 23:56:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_merge): Hash#merge, non destructive "update".</div><div class='add'>+	  now there's also Hash#merge! which is an alias to "update".</div><div class='add'>+</div><div class='add'>+Fri Jan 31 14:16:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): search using Karp-Rabin algorithm.</div><div class='add'>+</div><div class='add'>+Fri Jan 31 12:45:11 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_obj_classname): new function.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): should preserve original's class (but not</div><div class='add'>+	  hidden singleton class).</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y: backout EXPR_CMDARG removal.</div><div class='add'>+</div><div class='add'>+Fri Jan 31 09:40:07 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::List::accept): default</div><div class='add'>+	  pattern must not be nil.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::make_switch): NoArgument doesn't</div><div class='add'>+	  override other styles.</div><div class='add'>+</div><div class='add'>+Thu Jan 30 16:46:43 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::PlacedArgument): added.</div><div class='add'>+	  if the next argument doesn't start with '-', use it as the</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::make_switch): fixed a bug of</div><div class='add'>+	  pattern.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (Array): no need to guard.</div><div class='add'>+</div><div class='add'>+Thu Jan 30 08:27:19 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): removed a sludge.</div><div class='add'>+</div><div class='add'>+Wed Jan 29 03:24:39 2003  Michal Rokos  &lt;michal@rokos.homeip.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): memory leak fixed.</div><div class='add'>+</div><div class='add'>+Tue Jan 28 04:45:03 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args), ext/extmk.rb (parse_args): Prepend a</div><div class='add'>+	  hyphen to the first argument of MAKEFLAGS only if appropriate.</div><div class='add'>+	  Remove wrong comments.</div><div class='add'>+</div><div class='add'>+Mon Jan 27 03:30:06 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (get_syserror): use snprintf() instead of sprintf(). pointed</div><div class='add'>+	  out by knu.</div><div class='add'>+</div><div class='add'>+Mon Jan 27 02:06:38 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (get_syserror): some Windows' errno have 5 digits. pointed</div><div class='add'>+	  out by znz.</div><div class='add'>+</div><div class='add'>+Sun Jan 26 19:23:10 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb ($mflags.set?): Check $make instead of $nmake, since</div><div class='add'>+	  there is no such a variable.</div><div class='add'>+</div><div class='add'>+	* instruby.rb ($mflags.set?), ext/extmk.rb ($mflags.set?): Return</div><div class='add'>+	  false if unmatched.</div><div class='add'>+</div><div class='add'>+Sun Jan 26 19:08:30 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Embed rdoc style comments.</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb (shellwords): Use String#lstrip!.</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb (shellwords): Recognize an object that</div><div class='add'>+	  responds to to_str() by using String.new().</div><div class='add'>+</div><div class='add'>+Sun Jan 26 17:53:04 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args), ext/extmk.rb (parse_args): Detect -n</div><div class='add'>+	  and emulate a dry run.  Use 'make' in case no --make argument is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+Sun Jan 26 07:18:42 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: re-define individual methods verbosely rather than</div><div class='add'>+	  including FileUtils::Verbose, in order to suppress messages from</div><div class='add'>+	  FileUtils#cmp.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (makedirs): make same directory only once even if</div><div class='add'>+	  dryrun.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Verbose, FileUtils::NoWrite):</div><div class='add'>+	  re-define methods with define_method instead of module_eval.</div><div class='add'>+</div><div class='add'>+Sun Jan 26 03:37:18 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb, ext/extmk.rb, Makefile.in, win32/Makefile.sub,</div><div class='add'>+	  bcc32/Makefile.sub: Replace the complicated MFLAGS/MAKEFLAGS</div><div class='add'>+	  parser with something plain and comprehensible.  This fixes a</div><div class='add'>+	  bug where make flags were wrongly reordered and the resulted</div><div class='add'>+	  command line often did not make sense especially when BSD make</div><div class='add'>+	  is used with extra arguments given.  Tested with FreeBSD and</div><div class='add'>+	  Linux by me and mswin32, bccwin32 and mingw by usa.</div><div class='add'>+</div><div class='add'>+Fri Jan 24 18:15:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: tMINUS should have lower precedence than tPOW.</div><div class='add'>+</div><div class='add'>+Fri Jan 24 05:12:55 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): deal</div><div class='add'>+	  with escaped $ and ? at the end of strings.  [ruby-talk:62297]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords): added defined?.</div><div class='add'>+</div><div class='add'>+Thu Jan 23 17:25:04 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): do not warn discarding already undefined</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: undef quo before replacing.</div><div class='add'>+</div><div class='add'>+Thu Jan 23 15:49:57 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): missing arguments.</div><div class='add'>+</div><div class='add'>+Thu Jan 23 14:56:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: modified to support "quo".</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_quo): should return most exact quotient value,</div><div class='add'>+	  i.e. float by default, rational if available.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_div): "div" should return x.divmod(x)[0].</div><div class='add'>+</div><div class='add'>+Thu Jan 23 13:24:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): was accessing garbage argv value.</div><div class='add'>+</div><div class='add'>+Thu Jan 23 06:37:01 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: should not contain destdir in shebang line.</div><div class='add'>+</div><div class='add'>+Wed Jan 22 23:19:57 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (pipe_exec): remove unnecessary SetStdHandle().</div><div class='add'>+</div><div class='add'>+Wed Jan 22 20:20:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): syntaxify tPOW negative number hack.</div><div class='add'>+</div><div class='add'>+	* parse.y (negate_lit): new function to negate literal numeric</div><div class='add'>+	  values in compile time.</div><div class='add'>+</div><div class='add'>+Wed Jan 22 15:36:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match_exec): charset info may be stored in MBC</div><div class='add'>+	  region when $KCODE != NONE.</div><div class='add'>+</div><div class='add'>+Wed Jan 22 14:22:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (set_syserr): should preserve duplicated error names.</div><div class='add'>+</div><div class='add'>+Tue Jan 21 20:29:31 2003  Michal Rokos  &lt;michal@rokos.homeip.net&gt;</div><div class='add'>+</div><div class='add'>+	* mkmf.rb: make possible to add files to clean and distclean targets</div><div class='add'>+</div><div class='add'>+Tue Jan 21 18:05:25 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (LIBRUBY_A): link dmyext.</div><div class='add'>+</div><div class='add'>+Tue Jan 21 16:59:18 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: use real interpreter pathname at shebang line.</div><div class='add'>+	  [ruby-dev:19370]</div><div class='add'>+</div><div class='add'>+Tue Jan 21 16:22:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): put back old ** behavior for negative number</div><div class='add'>+	  right operand.</div><div class='add'>+</div><div class='add'>+Tue Jan 21 14:46:12 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: Use Test::Unit.</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb: Ditto</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: Ditto</div><div class='add'>+</div><div class='add'>+	* lib/tsort.rb: Ditto</div><div class='add'>+</div><div class='add'>+Tue Jan 21 04:15:50 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: Use redefined `to_s' as well as `inspect'.</div><div class='add'>+	  Useless `pretty_print' methods removed.</div><div class='add'>+	  (PP::ObjectMixin#pretty_print_inspect): new method.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 21:48:43 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MANTYPE): Detect if the system's nroff(1) groks</div><div class='add'>+	  mdoc.  Provide a new option --with-mantype={doc|man} in case the</div><div class='add'>+	  check does not work as expected.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (MANTYPE): Define MANTYPE and pass it to</div><div class='add'>+	  instruby.rb.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Convert mdoc manpages to man for systems which</div><div class='add'>+	  nroff(1) does not grok mdoc.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 21:25:18 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (self.open): If a block is given, call it with</div><div class='add'>+	  tempfile as an argument and automatically close the tempfile</div><div class='add'>+	  when the block terminates.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 21:02:50 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Properly put nested braces, parentheses and angles.</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Add support for .An and .Aq/.Ao/.Ac.</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Add support for .Dl.</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Make .Pf macro actually work.</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Properly handle .Os.</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Correctly omit spaces around punctuation</div><div class='add'>+	  characters.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 19:43:41 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: Make this work as a library.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 18:22:40 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): purge too many goto's.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 17:50:05 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb (parse_macro): Understand .Ux.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 17:32:56 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: New file.  A mdoc to man converter ported from</div><div class='add'>+	  Perl.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 15:40:15 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: Properly close .Bl with .El.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 04:14:17 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (egrep_cpp): use inspect to show options.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): prior configured directories to</div><div class='add'>+	  defaults.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): extract first word to determine</div><div class='add'>+	  make command type.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 02:15:53 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/aix_mksym.rb: no longer used.</div><div class='add'>+</div><div class='add'>+Mon Jan 20 00:17:16 2003  Matt Armstrong  &lt;matt@lickey.com&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): under windows, make eaccess() just call</div><div class='add'>+	  access(). [ruby-core:716], [ruby-bugs:PR#556]</div><div class='add'>+</div><div class='add'>+Sun Jan 19 23:08:18 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb (shellwords): A backslash ('\') in single</div><div class='add'>+	  quotes should not be regarded as meta character.  This bug or</div><div class='add'>+	  maybe feature was inherited from Perl's shellwords.pl.</div><div class='add'>+</div><div class='add'>+Sun Jan 19 14:01:12 2003  UENO Katsuhiro  &lt;unnie@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (is_in_list): should work well with UTF-8.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match_exec): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 18 14:53:49 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): should not erase all 0s, but</div><div class='add'>+	  squeeze into one.  [ruby-dev:19377]</div><div class='add'>+</div><div class='add'>+Fri Jan 17 03:33:42 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): Fix a bug caused by an uninitialized</div><div class='add'>+	  variable v, that a bignum unexpectedly gets converted into a</div><div class='add'>+	  string with its higher figures all filled with ./f/7/1,</div><div class='add'>+	  depending on the base.  This bug seems to have been introduced</div><div class='add'>+	  in rev.1.27.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): Use switch instead of a sequence of</div><div class='add'>+	  else-if's.</div><div class='add'>+</div><div class='add'>+Wed Jan 15 15:18:38 2003  moumar  &lt;moumar@netcourrier.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ARCHFILE): set even unless --enable-shared on</div><div class='add'>+	  AIX.  [ruby-talk:61466]</div><div class='add'>+</div><div class='add'>+	* marshal.c (math.h): should be included after ruby.h on AIX.</div><div class='add'>+	  [ruby-talk:61366]</div><div class='add'>+</div><div class='add'>+Tue Jan 14 21:47:56 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): do not search adding .rb/.so suffixes if</div><div class='add'>+	  the suffix specified.  [ruby-dev:18702]</div><div class='add'>+	  http://moonrock.jp/~don/d/200211.html#d08_t1</div><div class='add'>+</div><div class='add'>+Tue Jan 14 18:36:41 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_all): now works without block.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_any): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 14 01:21:32 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): not always set binmode.</div><div class='add'>+</div><div class='add'>+Mon Jan 13 20:45:19 2003  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (list_append): avoid O(n) search using node-&gt;nd_next-&gt;nd_end.</div><div class='add'>+</div><div class='add'>+	* parse.y (list_concat): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_ARRY nd_end adoption.</div><div class='add'>+</div><div class='add'>+Mon Jan 13 02:22:11 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/win32.rb: eliminate unnecessary "A" adding.</div><div class='add'>+</div><div class='add'>+Sun Jan 12 16:07:17 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): inherit binmode from $defout.</div><div class='add'>+</div><div class='add'>+Sat Jan 11 22:50:47 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/win32.rb: compatibility improvement.</div><div class='add'>+</div><div class='add'>+Sat Jan 11 01:44:16 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_IO_NEED): added more tests.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): seek after synchronized write.</div><div class='add'>+</div><div class='add'>+Fri Jan 10 01:23:45 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): syntax</div><div class='add'>+	  classes are not allowed inside character classes.</div><div class='add'>+	  [ruby-talk:60996]</div><div class='add'>+</div><div class='add'>+Thu Jan  9 23:28:01 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: AC_MSG_FAILURE is a new macro in 2.54b or later.</div><div class='add'>+</div><div class='add'>+Thu Jan  9 17:05:24 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_IO_NEED): check whether fseek() and</div><div class='add'>+	  fflush() are needed.</div><div class='add'>+</div><div class='add'>+	* io.c (flush_before_seek): flush write stream only.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): seek instead of flush if the last</div><div class='add'>+	  operation was write.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_writable): seek instead of flush if the last</div><div class='add'>+	  operation was read.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub: needs to seek between</div><div class='add'>+	  R/W.</div><div class='add'>+</div><div class='add'>+Thu Jan  9 16:31:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not discard nested NODE_BLOCK.</div><div class='add'>+</div><div class='add'>+Thu Jan  9 15:12:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): NODE_NOT elimination for if/unless/while/until node.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan  9 13:26:18 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.h, st.c: Back out the introduction of st_*_func_t.  Some</div><div class='add'>+	  compilers complain about function type mismatch.</div><div class='add'>+</div><div class='add'>+Thu Jan  9 02:10:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): reduce recursive rb_eval() call by using sort</div><div class='add'>+	  of continuation passing style.</div><div class='add'>+</div><div class='add'>+Wed Jan  8 17:10:32 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/lib/win32/registry.rb: added. [new]</div><div class='add'>+</div><div class='add'>+Wed Jan  8 15:54:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove ruby_last_node and assignments seems to be</div><div class='add'>+	  unnecessary</div><div class='add'>+</div><div class='add'>+	* intern.h: debug does not run if ID_ALLOCATOR is zero.</div><div class='add'>+</div><div class='add'>+Wed Jan  8 15:04:11 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): treat fixnums specially to boost.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): remove rb_scan_args() for small speedup.</div><div class='add'>+</div><div class='add'>+Tue Jan  7 17:56:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_avalue): should return converted array.</div><div class='add'>+</div><div class='add'>+Tue Jan  7 07:48:01 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_local_variables): skip $_, $~ and flip states in</div><div class='add'>+	  dynamic variables.  [ruby-core:00681]</div><div class='add'>+</div><div class='add'>+Tue Jan  7 02:46:29 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_clear): new Hash compatible method.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_shift, env_invert, env_replace, env_update): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 23:36:29 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.h, st.c: Introduce new conventional typedef's, st_data_t,</div><div class='add'>+	  st_compare_func_t, st_hash_func_t and st_each_func_t.</div><div class='add'>+</div><div class='add'>+	* st.h, st.c: Do explicit function declarations and do not rely on</div><div class='add'>+	  implicit declarations.</div><div class='add'>+</div><div class='add'>+	* class.c, eval.c, gc.c, hash.c, marshal.c, parse.y, variable.c:</div><div class='add'>+	  Add proper casts to avoid warnings.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 20:44:43 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_check_array_type): Declare rb_check_array_type().</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5ossl.c: Include stdio.h for sprintf() and</div><div class='add'>+	  string.h for memcmp().</div><div class='add'>+</div><div class='add'>+	* ext/dl/ptr.c: Include ctype.h for isdigit().</div><div class='add'>+</div><div class='add'>+Mon Jan  6 18:43:17 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: improve DOSISH drive letter support.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 18:31:45 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (ln): add ' -f' in the verbose message.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cp_r): add 'p' in the verbose message.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 16:44:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): dispatch based on "to_str".</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_times, rb_ary_equal): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 13:26:35 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_exec_v): follow to proc_spawn_v(). call do_aspawn()</div><div class='add'>+	  on Win32.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): call do_spawn() on Win32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (do_spawn, do_aspawn): add mode flag.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_v, rb_f_system): follow above change.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 05:11:15 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: make $0 normal variable.</div><div class='add'>+</div><div class='add'>+Mon Jan  6 02:32:46 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): needs meta class.</div><div class='add'>+</div><div class='add'>+Sun Jan  5 22:54:05 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (ln): `argv' is not a argument.</div><div class='add'>+</div><div class='add'>+Sun Jan  5 17:44:37 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): set $0 temporarily while loading</div><div class='add'>+	  extconf.rb.</div><div class='add'>+</div><div class='add'>+Sun Jan  5 14:46:46 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: need paren in regexp(make -n install).</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (sysquote): do not need to quote on mswin/bccwin/mingw.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb ($mflags): uniq items and remove '-' and '--'.</div><div class='add'>+	  move options to the lead.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (install): model on the real install</div><div class='add'>+	  command(message).</div><div class='add'>+</div><div class='add'>+Sun Jan  5 09:36:46 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath): under Windows, get the module</div><div class='add'>+	  path from an internal address instead of hard coded library</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in, bcc32/Makefile.sub,</div><div class='add'>+	  win32/Makefile.sub (CPPFLAGS): removed LIBRUBY_SO macro.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): no longer</div><div class='add'>+	  depends on makefiles.</div><div class='add'>+</div><div class='add'>+Sun Jan  5 04:17:05 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (SET_STACK_END): Issue a FLUSH_REGISTER_WINDOWS here too.</div><div class='add'>+	  This fixes make test on FreeBSD/sparc64.</div><div class='add'>+</div><div class='add'>+Sun Jan  5 03:43:47 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (FLUSH_REGISTER_WINDOWS): Make the flushw call an</div><div class='add'>+	  inline function so it can be used as an expression.</div><div class='add'>+</div><div class='add'>+	* eval.c (EXEC_TAG, THREAD_SAVE_CONTEXT): Consistently call</div><div class='add'>+	  FLUSH_REGISTER_WINDOWS before calling setjmp(). (I suspect that</div><div class='add'>+	  every setjmp() implementation should take care of register</div><div class='add'>+	  windows, though)</div><div class='add'>+</div><div class='add'>+Sun Jan  5 03:12:32 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (utimbuf): use utimbuf instead of _utimbuf if defined _WIN32.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LIBS): use oldnames.lib.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getcwd): follow above change.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/direct.c, wince/direct.h (getcwd): ditto.</div><div class='add'>+</div><div class='add'>+	* wince/io.h: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/string.c, wince/wince.h (stricmp, strnicmp): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  4 15:18:50 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): use same logic as DJGPP on win32 ports.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (do_aspawn): [new]. for arrayed</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): add new argument for real filename of</div><div class='add'>+	  executing process.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtHasRedirection, pipe_exec): follow above change.</div><div class='add'>+</div><div class='add'>+Sat Jan  4 14:29:52 2003  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set rb_cv_need_io_flush_between_seek=yes.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): define NEED_IO_FLUSH_BETWEE_SEEK.</div><div class='add'>+	  (pointed out by moriq [ruby-dev:19299])</div><div class='add'>+</div><div class='add'>+Sat Jan  4 03:12:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): exact class match is not required.  relax</div><div class='add'>+	  the restriction to subclasses.</div><div class='add'>+</div><div class='add'>+Sat Jan  4 01:33:40 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_lchmod): get rid of gcc-3 -O3 warning.</div><div class='add'>+</div><div class='add'>+Fri Jan  3 22:26:07 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_times): need to initialize first.</div><div class='add'>+</div><div class='add'>+Fri Jan  3 01:10:17 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): call "inherited" before executing class body.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class): call "inherited" after defining the</div><div class='add'>+	  constant.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_under): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan  2 19:37:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): expand first element if RHS is an array and</div><div class='add'>+	  its size is 1, and LHS has concrete assignment target (i.e. LHS</div><div class='add'>+	  has target(s) other than *var).</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): avoid unnecessary avalue/svalue conversion.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): ditto</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_update): do not allocate unused array if rpl is</div><div class='add'>+	  nil (i.e. merely removing elements).</div><div class='add'>+</div><div class='add'>+Thu Jan  2 13:55:08 2003  Mathieu Bouchard  &lt;matju@sympatico.ca&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): should resize supplied string if it's shorter</div><div class='add'>+	  than expected.</div><div class='add'>+</div><div class='add'>+Thu Jan  2 11:01:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (bmcall): arguments should be an array.</div><div class='add'>+</div><div class='add'>+Wed Jan  1 18:18:45 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: better DJGPP support. add GNUmakefile.</div><div class='add'>+</div><div class='add'>+	* djgpp/GNUmakefile: new.</div><div class='add'>+</div><div class='add'>+Wed Jan  1 04:16:18 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (struct RNode): Change argc from int to long.  Otherwise</div><div class='add'>+	  NEW_CFUNC() sets argc to a wrong value on platforms where</div><div class='add'>+	  sizeof(int) != sizeof(long) and the byte order is big-endian.</div><div class='add'>+	  This fixes breakage on FreeBSD/sparc64.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 23:22:50 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): removed awkward conversion between yvalue,</div><div class='add'>+	  mvalue, etc.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): new parameter added to tell whether val is</div><div class='add'>+	  an array value or not.</div><div class='add'>+</div><div class='add'>+	* parse.y (yield_args): restructuring: new nodes: NODE_RESTARY2,</div><div class='add'>+	  NODE_SVALUE; removed node: NODE_RESTARGS.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 21:13:51 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, {win32,bcc32}/Makefile.sub: add new target:</div><div class='add'>+	  what-where, no-install.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: add const: CROSS_COMPILING.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: no-install support.  add MAKEDIRS macro.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: add !ifdef .. !endif for Borland make.</div><div class='add'>+</div><div class='add'>+	* process.c: improve DJGPP support.  system "ls", "-l".</div><div class='add'>+</div><div class='add'>+Tue Dec 31 20:16:37 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h (NI_MAXHOST): Define NI_MAXHOST and</div><div class='add'>+	  NI_MAXSERV only if they are not defined yet.  This fixes build</div><div class='add'>+	  on such platforms as OpenBSD.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 20:07:49 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb (find_tcl, find_tk): Look for both</div><div class='add'>+	  lib{tcl,tk}M.N and lib{tcl,tk}MN on all platforms.  *BSD have</div><div class='add'>+	  Tcl/Tk libraries named this way.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 19:48:21 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Improve OpenBSD support. [obtained from: OpenBSD</div><div class='add'>+	  ports]</div><div class='add'>+</div><div class='add'>+	* dln.c (FUNCNAME_PATTERN): Ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 19:21:02 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_transpose): Properly declare ary as a VALUE.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_chmod): Do not directly cast an int to void *</div><div class='add'>+	  to avoid a warning.</div><div class='add'>+</div><div class='add'>+	* defines.h (FLUSH_REGISTER_WINDOWS): Add support for</div><div class='add'>+	  FreeBSD/sparc64.  miniruby still coredumps in a different place,</div><div class='add'>+	  though.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 07:47:15 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): readjusted.</div><div class='add'>+</div><div class='add'>+	* parse.y (heredoc_identifier): readjusted.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): make EOL codes of single-quoted</div><div class='add'>+	  here-documents consistent.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): reduced unnecessary conditionals.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 04:49:51 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: mdoc'ify.</div><div class='add'>+</div><div class='add'>+Tue Dec 31 01:30:29 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): do not accept " __END__\n".  ([ruby-dev:19245])</div><div class='add'>+</div><div class='add'>+Mon Dec 30 21:10:59 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): use strncmp instead of strcmp.</div><div class='add'>+	  accept "__END__\r\n".  ([ruby-dev:19241])</div><div class='add'>+</div><div class='add'>+Mon Dec 30 20:32:14 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_frame): should mark frame-&gt;node.</div><div class='add'>+</div><div class='add'>+Mon Dec 30 19:10:30 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: split --make argument contains options, assume</div><div class='add'>+	  the first word of --make-flags is always options even unless</div><div class='add'>+	  preceded by -, and ignore letter-case of options if nmake.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: extract -n option also from --make and</div><div class='add'>+	  --make-flags.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub: not prepend - to</div><div class='add'>+	  $(MFLAGS)</div><div class='add'>+</div><div class='add'>+Mon Dec 30 16:44:14 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): should share the shared string if</div><div class='add'>+	  present, instead of the original string.  (ruby-bugs:PR#528)</div><div class='add'>+</div><div class='add'>+Mon Dec 30 05:10:00 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_svr_init): local host to</div><div class='add'>+	  init_inetsock() is VALUE but not pointer.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_unpack_sockaddr_in): get rid of</div><div class='add'>+	  gcc-3 -O3 warning.</div><div class='add'>+</div><div class='add'>+Sun Dec 29 23:45:53 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): adjust GC trigger.</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname_len): get rid of gcc-3 -O3 warning.</div><div class='add'>+</div><div class='add'>+	* eval.c (copy_node_scope): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_foreach, delete_if_i, select_i, each_value_i,</div><div class='add'>+	  each_key_i, each_pair_i, envix): ditto.</div><div class='add'>+</div><div class='add'>+	* range.c (range_each_func): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_chmod): ditto.</div><div class='add'>+</div><div class='add'>+Sun Dec 29 15:30:37 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_parseargs): should not inherit ftools.rb's</div><div class='add'>+	  misfeature.</div><div class='add'>+</div><div class='add'>+Sun Dec 29 05:08:13 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cmp): return false if file size differs.</div><div class='add'>+</div><div class='add'>+Sat Dec 28 19:21:24 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: remove junk args.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): remove a trouble library</div><div class='add'>+	  before making a shared library.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: invoke instruby.rb with the --make-flags option.</div><div class='add'>+</div><div class='add'>+Sat Dec 28 03:09:58 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#[]): improvement. thanks to Kazuhiro NISHIYAMA</div><div class='add'>+	  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+Sat Dec 28 00:34:03 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {win32,bcc32}/Makefile.sub: remove `=' from --make-flags options.</div><div class='add'>+	  nmake quotes args if included `=' in args.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: use getopts.rb.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb (-DDBM_HDR): substitute ' with " to avoid</div><div class='add'>+	  a error on Win32.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: add prototypes to avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 21:41:57 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak, win32/setup.mak(-prologue-): move srcdir from</div><div class='add'>+	  CPP input or UNC path will be removed as a comment.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 17:55:00 2002  Takaaki Uematsu  &lt;mail@uema2.cjb.net&gt;</div><div class='add'>+</div><div class='add'>+	* wince/config, wince/configure.bat: replace 1.7 with 1.8</div><div class='add'>+	  in macros.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 13:28:14 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: fileutils.rb accepts only one argument.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 13:23:29 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_parseargs): reject illegal options</div><div class='add'>+	  correctly.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (uptodate?): parameter declaration was wrong.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: change coding styles.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 09:25:22 2002  ABE Shigeru  &lt;shiger-a@nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_times): avoid WindowsXP crash using volatile</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 02:56:58 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: check only `-' option, and use fileutils instead of</div><div class='add'>+	  ftools.</div><div class='add'>+</div><div class='add'>+Fri Dec 27 02:45:17 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: Telnet#print not add "\n".</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: cgi['key'] is equal cgi['key'][0]</div><div class='add'>+</div><div class='add'>+Thu Dec 26 22:33:18 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (create_makefile): check only `-' option.</div><div class='add'>+</div><div class='add'>+	* configure.in: cleanups for MinGW. remove -D__NO_ISOCEXT in $CFLAGS.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: prototypes for isinf, isnan are not needed on MinGW.</div><div class='add'>+</div><div class='add'>+Thu Dec 26 19:22:00 2002  YOSHIDA Kazuhiro &lt;moriq@moriq.com&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (-prologue-): moved srcdir macro definition.</div><div class='add'>+	  [ruby-win32:420].</div><div class='add'>+</div><div class='add'>+Wed Dec 25 18:26:44 2002  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): fixed wrong \G behavior.  (ruby-bugs-ja:PR#377)</div><div class='add'>+</div><div class='add'>+Wed Dec 25 16:41:16 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match_exec): fix odd \G behavior based on the patch</div><div class='add'>+	  from Nobu.</div><div class='add'>+</div><div class='add'>+Wed Dec 25 11:05:11 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak (-generic-): removed garbages.</div><div class='add'>+</div><div class='add'>+Wed Dec 25 10:36:20 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub (RUBY_SO_NAME, config.h):</div><div class='add'>+	  use $(MAJOR) and $(MINOR). based on Nobu's patch. [ruby-win32:413]</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak, win32/setup.mak (-prologue-): define MAJOR, MINOR</div><div class='add'>+	  and TEENY from version.h. based on Nobu's patch. [ruby-win32:413]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): add HAVE_FLOAT_H.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (parse.obj): depend on win32/win32.h.</div><div class='add'>+</div><div class='add'>+Tue Dec 24 23:49:16 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb: Use Object#class rather than Object#type.</div><div class='add'>+</div><div class='add'>+Tue Dec 24 23:37:40 2002  TADA Tadashi &lt;sho@spc.gr.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (Cookie::parse), lib/cgi-lib.rb (initialize): Do not</div><div class='add'>+	  pass to split() a bare string longer than 2 characters as</div><div class='add'>+	  separator.</div><div class='add'>+</div><div class='add'>+Tue Dec 24 19:19:24 2002  Tietew &lt;tietew@tietew.net&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (DBL_MAX_10_EXP): fix typo. [ruby-dev:19175]</div><div class='add'>+</div><div class='add'>+Tue Dec 24 17:02:46 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undefined): use NoMethodError instead of fatal.</div><div class='add'>+</div><div class='add'>+Tue Dec 24 02:12:45 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/README: Synchronize with reality.</div><div class='add'>+</div><div class='add'>+Tue Dec 24 02:05:51 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST, lib/README, lib/ipaddr.rb: Add ipaddr.rb from rough.</div><div class='add'>+</div><div class='add'>+Sun Dec 22 04:07:47 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_alloc): allocator takes only one argument.</div><div class='add'>+</div><div class='add'>+Sun Dec 22 02:49:25 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_alloc), dir.c (dir_s_alloc), eval.c (thgroup_s_alloc),</div><div class='add'>+	  file.c (rb_stat_s_alloc), hash.c (hash_alloc), io.c (io_alloc),</div><div class='add'>+	  object.c (rb_module_s_alloc, rb_class_allocate_instance),</div><div class='add'>+	  re.c (match_alloc, rb_reg_s_alloc), string.c (str_alloc),</div><div class='add'>+	  time.c (time_s_alloc), ext/digest/digest.c (rb_digest_base_alloc),</div><div class='add'>+	  ext/tcltklib/tcltklib.c (ip_alloc),</div><div class='add'>+	  ext/win32ole/win32ole.c (fole_s_allocate, fev_s_allocate)</div><div class='add'>+	  : add prototype to get rid of VC++ warnings.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_alloc): allocator takes only one argument.</div><div class='add'>+</div><div class='add'>+Sun Dec 22 00:36:43 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): accept pure ruby libraries.</div><div class='add'>+</div><div class='add'>+Sat Dec 21 23:59:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_i): should not show ID_ALLOCATOR.</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_prot_i): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_priv_i): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_pub_i): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undefined): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 21 07:27:24 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): keywords must not be</div><div class='add'>+	  preceded by @ or $.</div><div class='add'>+</div><div class='add'>+Fri Dec 20 20:29:04 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c,</div><div class='add'>+	  ext/dl/handle.c, ext/dl/ptr.c, ext/dl/sym.c, ext/gdbm/gdbm.c,</div><div class='add'>+	  ext/iconv/iconv.c, ext/sdbm/init.c, ext/stringio/stringio.c,</div><div class='add'>+	  ext/strscan/strscan.c, ext/tcltklib/tcltklib.c,</div><div class='add'>+	  ext/win32ole/win32ole.c: use rb_define_alloc_func().</div><div class='add'>+</div><div class='add'>+Fri Dec 20 18:29:04 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fwrite): separated from io_write().</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_byten): use rb_io_fwrite() to support non-blocking</div><div class='add'>+	  IO, and added error check.</div><div class='add'>+</div><div class='add'>+	* rubyio.h: prototypes; rb_io_fwrite</div><div class='add'>+</div><div class='add'>+Fri Dec 20 17:40:59 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): should not remove Class#allocate.</div><div class='add'>+</div><div class='add'>+	* lib/profiler.rb: separate profiling functions, without</div><div class='add'>+	  trace_func and at_exit setting.</div><div class='add'>+</div><div class='add'>+Fri Dec 20 16:20:04 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (do_block): split "do" block and tLBRACE_ARG block.</div><div class='add'>+</div><div class='add'>+	* parse.y (cmd_brace_block): new tLBRACE_ARG block rule</div><div class='add'>+</div><div class='add'>+	* parse.y (command): can take optional cmd_brace_block; use %prec</div><div class='add'>+	  to resolve shift/reduce conflict. (ruby-bugs-ja PR#372)</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize): trace_func should be cleared here (after</div><div class='add'>+	  executing exit procs and finalizers).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_define_alloc_func): new allocation framework, based</div><div class='add'>+	  on Nobu's work [ruby-dev:19116].  "allocate" method is no longer</div><div class='add'>+	  used for object allocation.</div><div class='add'>+</div><div class='add'>+Fri Dec 20 05:06:49 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/README, lib/cgi/ftplib.rb, lib/telnet.rb: Delete ftplib.rb</div><div class='add'>+	  and telnet.rb.  It has been quite some time sinc they were</div><div class='add'>+	  obsoleted and made to emit warnings.</div><div class='add'>+</div><div class='add'>+Fri Dec 20 04:58:22 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Embed Rdoc style comments.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Add length as an alias for size.</div><div class='add'>+</div><div class='add'>+Fri Dec 20 03:57:32 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Add Tempfile#close!() as a shorthand for</div><div class='add'>+	  Tempfile#close(true).</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Add Tempfile#{unlink,delete}().</div><div class='add'>+</div><div class='add'>+Fri Dec 20 03:53:01 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/README, lib/cgi/final.rb, lib/cgi/session.rb: Delete</div><div class='add'>+	  final.rb, which was obsoleted long ago.</div><div class='add'>+</div><div class='add'>+Fri Dec 20 00:16:06 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match_pre, rb_reg_match_post, match_to_a,</div><div class='add'>+	  match_select): return instances of same class as the original</div><div class='add'>+	  string.  [ruby-dev:19119]</div><div class='add'>+</div><div class='add'>+Thu Dec 19 22:55:49 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (DBL_EPSILON): fix typo.</div><div class='add'>+</div><div class='add'>+Thu Dec 19 22:35:20 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): avoid [BUG] at multiple attribute assignment.</div><div class='add'>+</div><div class='add'>+Thu Dec 19 01:00:09 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): use DBL_EPSILON.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_check_array_type): new function: return an array</div><div class='add'>+	  (convert if possible), or nil.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_check_string_type): new function: return a string</div><div class='add'>+	  (convert if possible), or nil.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_dbl_cmp): returns nil if values are not</div><div class='add'>+	  comparable.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_cmp,flo_cmp): use rb_num_coerce_cmp()</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_cmp): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_coerce_cmp): new coercing function for "&lt;=&gt;",</div><div class='add'>+	  which does not raise TypeError.</div><div class='add'>+</div><div class='add'>+	* numeric.c (do_coerce): can be suppress exception now.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cmp): should return nil for non class/module</div><div class='add'>+	  objects.</div><div class='add'>+</div><div class='add'>+Thu Dec 19 04:21:10 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: add a missing ||. (found by: ruby -wc)</div><div class='add'>+</div><div class='add'>+Wed Dec 18 17:53:05 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_eqq): return false if the argument is not a</div><div class='add'>+	  string.  now returns boolean value.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): argument should be T_MODULE, not</div><div class='add'>+	  T_class, nor T_ICLASS.</div><div class='add'>+</div><div class='add'>+Wed Dec 18 03:52:55 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): handle tail shared string.</div><div class='add'>+	  (ruby-bugs-ja:PR#370)</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup_frozen): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 17 21:08:29 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_ATTRASGN): new node, assignment to attribute.</div><div class='add'>+	  [ruby-core:00637].</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined, rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (attrset, node_assign): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): tail sharing.  [ruby-core:00650]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_nth_match): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 17 16:52:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): "defined?" should return "assignment" for</div><div class='add'>+	  attribute assignment (e.g. a.foo=b) and indexed assignment</div><div class='add'>+	  (e.g. a[2] = 44).</div><div class='add'>+</div><div class='add'>+	* parse.y (aryset): use NODE_ATTRASGN.</div><div class='add'>+</div><div class='add'>+Tue Dec 17 04:03:45 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: new file.</div><div class='add'>+</div><div class='add'>+Tue Dec 17 00:28:19 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (utimbuf): need to define for VC++.</div><div class='add'>+</div><div class='add'>+Mon Dec 16 15:53:20 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): get rid of overrun.  (pointed out by akr</div><div class='add'>+	  [ruby-list:36773])</div><div class='add'>+</div><div class='add'>+Sun Dec 15 21:16:44 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): add $(topdir) to $LIBPATH if $extmk.</div><div class='add'>+	  remove adding $(archdir) to $LIBPATH.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 12:15:00 2002  Takaaki Uematsu &lt;mail@uema2.cjb.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, defines.h, dir.c, dir.h, dln.c, error.c,</div><div class='add'>+	  eval.c, file.c, hash.c, io.c, main.c, missing.c,</div><div class='add'>+	  process.c, ruby.c, rubysig.h, signal.c, st.c, util.c, util.h,</div><div class='add'>+	  bcc/Makefile.sub, win32/Makefile.sub, win32/win32.h,</div><div class='add'>+	  ext/Win32API/Win32API.c, ext/socket/getaddrinfo.c,</div><div class='add'>+	  ext/socket/getnameinfo.c, ext/socket/socket.c,</div><div class='add'>+	  ext/tcltklib/stubs.c</div><div class='add'>+	  : replace "NT" with "_WIN32", add DOSISH_DRIVE_LETTER</div><div class='add'>+	* wince/exe.mak : delete \r at the end of lines.</div><div class='add'>+	* wince/mswince-ruby17.def : delete rb_obj_become</div><div class='add'>+</div><div class='add'>+Sun Dec 15 11:43:26 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dispose_string): dispose String object.</div><div class='add'>+</div><div class='add'>+	* parse.y (heredoc_restore, here_document): fix memory leak.</div><div class='add'>+</div><div class='add'>+Sat Dec 14 14:25:00 2002  Takaaki Uematsu &lt;mail@uema2.cjb.net&gt;</div><div class='add'>+</div><div class='add'>+	* wince/sys : add stat.c, stat.h, timeb.c, timeb.h,</div><div class='add'>+		      types.h, utime.c, utime.h</div><div class='add'>+	* wince/dll.mak : object file name changed.</div><div class='add'>+	* wince/io.c : add empty dup2().</div><div class='add'>+	* wince/io.h : add dup2 definition.</div><div class='add'>+</div><div class='add'>+Sat Dec 14 01:51:29 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb (rb_check): support for GNU dbm 1.8.3.</div><div class='add'>+	  (-with-dbm-type=gdbm_compat). link against -lgdbm_compat</div><div class='add'>+	  and -lgdbm.</div><div class='add'>+</div><div class='add'>+Fri Dec 13 23:42:16 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb (db_check): check existence of the function</div><div class='add'>+	  in the specified library before checking it in libc.</div><div class='add'>+</div><div class='add'>+Fri Dec 13 17:15:49 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (generic_ivar_get): should always warn uninitialized</div><div class='add'>+	  instance variables.</div><div class='add'>+</div><div class='add'>+Fri Dec 13 12:33:22 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): rescue clause was ignored.</div><div class='add'>+</div><div class='add'>+Thu Dec 12 18:19:14 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_PROG_GNU_LD): add $CFLAGS, $CPPFLAGS, $LDFLAGS</div><div class='add'>+	  to the option of $CC.</div><div class='add'>+</div><div class='add'>+	* configure.in: set LIBRUBYARG to '-l$(RUBY_SO_NAME)' if the</div><div class='add'>+	  target os is cygwin and --disable-shared option is supplied.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): expand config["LIBRUBY"] and</div><div class='add'>+	  config["LIBRUBY_A"].  don't link $LIBRUBYARG_STATIC if</div><div class='add'>+	  --disable-shared option is supplied.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CPPOUTFILE): should be a better message.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/extconf.rb: join with a space.</div><div class='add'>+</div><div class='add'>+Thu Dec 12 17:27:19 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_hash): define Regexp#hash to make regexps to be</div><div class='add'>+	  hash keys.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): define Regexp#eql? (alias to Regexp#==).</div><div class='add'>+</div><div class='add'>+Thu Dec 12 16:26:31 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): singleton class instance can't be loaded.</div><div class='add'>+	  (ruby-bugs-ja:PR#366)</div><div class='add'>+</div><div class='add'>+Wed Dec 11 23:35:43 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (create_makefile): -no-undefined -&gt; --no-undefined.</div><div class='add'>+</div><div class='add'>+Wed Dec 11 17:54:59 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): takes optional second argument to specify a</div><div class='add'>+	  string to be written.  the string should not be frozen.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_sysread): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 11 11:30:28 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_copy): renamed "become".</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_copy): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 11 00:45:00 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb (GetoptLong::Error): provide a common ancestor</div><div class='add'>+	  for GetoptLong error classes (RCR#129).</div><div class='add'>+</div><div class='add'>+Tue Dec 10 17:42:39 2002  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_copy_object): fixed memory leak.</div><div class='add'>+</div><div class='add'>+Tue Dec 10 17:30:35 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_limits): fix the limit of 4 bytes UTF-8 sequence.</div><div class='add'>+</div><div class='add'>+Tue Dec 10 12:01:15 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (mnew): original class of method defined in module should</div><div class='add'>+	  be the module not intermediate class.  [ruby-dev:19040]</div><div class='add'>+</div><div class='add'>+Tue Dec 10 01:16:52 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): preceding ".." for negative numbers</div><div class='add'>+	  still left;  removed.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): should not prepend '0' if width &gt; prec</div><div class='add'>+	  for example "%5.3d".</div><div class='add'>+</div><div class='add'>+Sat Dec  7 18:14:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): add Process.exit and Process.abort</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_to_uv): raise ArgumentError for malformed/redundant</div><div class='add'>+	  UTF-8 sequences.</div><div class='add'>+</div><div class='add'>+Fri Dec  6 03:46:00 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (last_status_set): add pid attribute to Process::Status.</div><div class='add'>+</div><div class='add'>+Wed Dec  4 17:31:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (uv_to_utf8): limit maximum length of the encoded string</div><div class='add'>+	  to 6 bytes, even when the platform supports 8 bytes long integers.</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_to_uv): do not decode sequences longer than 6 bytes.</div><div class='add'>+</div><div class='add'>+	* object.c (copy_object): use "copy_object" method, not "become".</div><div class='add'>+</div><div class='add'>+Wed Dec  4 16:37:11 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (copy_object): copy finalizers as well if any.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_copy_finalizer): new function to copy finalizers.</div><div class='add'>+</div><div class='add'>+Tue Dec  3 01:13:41 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP.singleline_pp): new method.</div><div class='add'>+</div><div class='add'>+Sun Dec  1 23:04:03 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::new): same as OptionParser#on but</div><div class='add'>+	  returns new OptionParser::switch.</div><div class='add'>+</div><div class='add'>+Sun Dec  1 22:43:29 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_stat): empty path is invalid, and return</div><div class='add'>+	  ENOENT rather than EBADF in such case.  [ruby-talk:57177]</div><div class='add'>+</div><div class='add'>+Fri Nov 29 18:01:48 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_to_uv): added checks for malformed or redundant</div><div class='add'>+	  UTF-8 sequences.</div><div class='add'>+</div><div class='add'>+Thu Nov 28 12:08:30 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: Avoid the use of "clean::" in favor of "clean:" in</div><div class='add'>+	  order not to let make(1) choke if there is another dependency on</div><div class='add'>+	  the target added in a depend file.</div><div class='add'>+</div><div class='add'>+Thu Nov 28 02:40:42 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: Make sure to dig the destination directory before</div><div class='add'>+	  installing a file there.  Formerly "make install" could fail</div><div class='add'>+	  depending on make(1)'s mood of the moment, especially when -jN</div><div class='add'>+	  is given.</div><div class='add'>+</div><div class='add'>+Wed Nov 27 17:39:38 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: Cut redundancy.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: Do not leak ident.</div><div class='add'>+</div><div class='add'>+Wed Nov 27 17:25:29 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c, ext/syslog/test.rb: Syslog.close should</div><div class='add'>+	  raise RuntimeError when not opened.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c, ext/syslog/test.rb:</div><div class='add'>+	  Syslog.{ident,options,facility,mask} should all return nil when</div><div class='add'>+	  not opened.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c, ext/syslog/test.rb: Change back the output</div><div class='add'>+	  format of inspect().</div><div class='add'>+</div><div class='add'>+Wed Nov 27 16:25:43 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/test.rb: Switch from RUnit to Test::Unit.</div><div class='add'>+</div><div class='add'>+Wed Nov 27 16:14:12 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: Fix a problem where Syslog.ident was not</div><div class='add'>+	  marked and could thus be GC'd.</div><div class='add'>+</div><div class='add'>+Wed Nov 27 16:11:53 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/test.rb: Switch from RUnit to Test::Unit.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/test.rb: The output format of inspect() is slightly</div><div class='add'>+	  altered.</div><div class='add'>+</div><div class='add'>+Wed Nov 27 06:43:26 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exit_initialize): add SystemExit#initialize to set</div><div class='add'>+	  instance variable status.  (ruby-bugs-ja:PR#362)</div><div class='add'>+	  Now accepts status as optional first argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_handle): now SystemExit have status always.</div><div class='add'>+</div><div class='add'>+	* eval.c (system_exit): just instantiate SystemExit without raise.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): initialize SystemExit properly.</div><div class='add'>+</div><div class='add'>+Tue Nov 26 10:17:04 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname_len): remove MAXPATHLEN dependency.</div><div class='add'>+</div><div class='add'>+Mon Nov 25 19:55:38 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): return true if not dynamic and not static.</div><div class='add'>+</div><div class='add'>+Mon Nov 25 01:08:40 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: revert and add the MAXPATHLEN definition on mswin32/mingw32.</div><div class='add'>+</div><div class='add'>+Sun Nov 24 20:36:53 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: move the MAXPATHLEN definition in front.</div><div class='add'>+</div><div class='add'>+Fri Nov 22 22:55:01 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): preceding ".." for negative</div><div class='add'>+	  hexadecimal numbers should not appear if prec (e.g. %.4) is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+	* pack.c (NUM2I32): support platforms which does not have 32bit</div><div class='add'>+	  integers (e.g. Cray).</div><div class='add'>+</div><div class='add'>+Fri Nov 22 19:20:36 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Install batch files on Windows. [Submitted by usa]</div><div class='add'>+</div><div class='add'>+Fri Nov 22 18:31:46 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): node may be NULL.</div><div class='add'>+</div><div class='add'>+Thu Nov 21 20:53:06 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: changes coding style.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 21 20:17:08 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: changes coding style.</div><div class='add'>+</div><div class='add'>+Thu Nov 21 20:04:06 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: should not overwrite Host: header.</div><div class='add'>+	  (This patch is contributed by sean@ruby-lang.org)</div><div class='add'>+</div><div class='add'>+Thu Nov 21 20:01:33 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: support Proxy-Authorization.</div><div class='add'>+	  (This patch is contributed by Alexander Bokovoy)</div><div class='add'>+</div><div class='add'>+Thu Nov 21 11:03:39 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): should not terminate searching with</div><div class='add'>+	  empty path, just ignore.</div><div class='add'>+</div><div class='add'>+	* dir.c: remove &lt;sys/parm.h&gt; inclusion.</div><div class='add'>+</div><div class='add'>+Wed Nov 20 02:07:12 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_eq,cmp_gt,cmp_ge,cmp_lt,cmp_le): check using</div><div class='add'>+	  rb_cmpint().</div><div class='add'>+</div><div class='add'>+	* error.c (init_syserr): remove sys_nerr dependency.</div><div class='add'>+</div><div class='add'>+Wed Nov 20 01:52:21 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_cmp): added to satisfy Comparable assumption.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): "initialize" should be public if it is a</div><div class='add'>+	  singleton method.</div><div class='add'>+</div><div class='add'>+Tue Nov 19 22:37:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): avoid dereferencing if size == 0.</div><div class='add'>+	  (ruby-bugs-ja:PR#360)</div><div class='add'>+</div><div class='add'>+Tue Nov 19 20:40:39 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): should return nil if an operand is not a</div><div class='add'>+	  number nor time. (ruby-bugs-ja:PR#359)</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_cmp): should return nil if an operand is not</div><div class='add'>+	  File::Stat.</div><div class='add'>+</div><div class='add'>+Tue Nov 19 14:35:09 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): iterates over items in the receiver.</div><div class='add'>+	  zipped with nil if argument arrays are shorter.  if arrays are</div><div class='add'>+	  longer, left items are ignored.  now works with blocks.</div><div class='add'>+</div><div class='add'>+	* enum.c (zip_i): changed for new behavior.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_transpose): added. [new]</div><div class='add'>+</div><div class='add'>+Tue Nov 19 05:12:21 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Do not install various working files under bin/.</div><div class='add'>+</div><div class='add'>+Tue Nov 19 05:07:39 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: not rewrite installed scripts when dry-run mode.</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct::initialize): should symbolize keys</div><div class='add'>+	  instead of values.</div><div class='add'>+</div><div class='add'>+Tue Nov 19 02:24:10 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Rewrite installed scripts' shebang lines.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Use File.join() where appropriate.</div><div class='add'>+</div><div class='add'>+Tue Nov 19 01:53:35 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/irb: Moved from sample/irb.rb.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Install script files under bin/ with ruby's program</div><div class='add'>+	  prefix and suffix.</div><div class='add'>+</div><div class='add'>+Mon Nov 18 02:13:36 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Make this library thread safe.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Do not pick a name which was once used and is</div><div class='add'>+	  still scheduled for removal.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: A lock file need not and must not be scheduled</div><div class='add'>+	  for removal.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Compare Max_try with the number of mkdir</div><div class='add'>+	  failures instead of the suffix counter.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: Overall cleanup and add some important notices.</div><div class='add'>+</div><div class='add'>+Sun Nov 17 22:57:31 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): garbage returned.  (ruby-bugs-ja:PR#358)</div><div class='add'>+</div><div class='add'>+Fri Nov 15 07:40:08 2002  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* observer.rb: raise NoMethodError instead of NameError.</div><div class='add'>+	  [ruby-dev:18788]</div><div class='add'>+</div><div class='add'>+	* ostruct.rb: ditto.  fix a bug in inspect which called String#+ with</div><div class='add'>+	  Symbol.  [ruby-dev:18788]</div><div class='add'>+</div><div class='add'>+	* profile.rb: illegal use of Array#sort!.  replaced it with non-bang</div><div class='add'>+	  method.  [ruby-dev:18792]</div><div class='add'>+</div><div class='add'>+Thu Nov 14 22:40:29 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY_A): append -static.  [ruby-dev:18689]</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): linker</div><div class='add'>+	  argument to link static/shared library respectively.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (LIBRUBYARG_STATIC, LIBRUBYARG_SHARED): added.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (LIBRUBY_A): install to libdir.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command): link static library of ruby, or</div><div class='add'>+	  try_run fails unless LIBRUBY_SO is installed.  [ruby-dev:18646]</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): toplevel caller was missing.</div><div class='add'>+	  [ruby-dev:18754]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_to_s): adjust created line number.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary, do_block, brace_block): adjust line number of</div><div class='add'>+	  block to beginning line, instead of the first statement inside</div><div class='add'>+	  the block.</div><div class='add'>+</div><div class='add'>+Thu Nov 14 08:23:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_acos): check errno after operation.  ditto for</div><div class='add'>+	  asin, acosh, atanh, log, log10 and sqrt.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): initialize should always be private.</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): add rescue modifier rule.</div><div class='add'>+</div><div class='add'>+	* parse.y (command_call): return, break and next with argument is</div><div class='add'>+	  now part of this rule.</div><div class='add'>+</div><div class='add'>+Wed Nov 13 16:22:38 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (DLDFLAGS): removed -Wl,-no-undefined to</div><div class='add'>+	  ext/extmk.rb, in order to allow references to symbols in other</div><div class='add'>+	  extension libraries for mkmf.rb.  [ruby-dev:18724]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): exit when make failed.</div><div class='add'>+</div><div class='add'>+Sun Nov 10 03:46:18 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: retire contain?() and add superset?(),</div><div class='add'>+	  proper_superset?() subset?(), and proper_subset?().</div><div class='add'>+	  [obtained from: Jason Voegele's set.rb]</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: define several aliases: union() for |(),</div><div class='add'>+	  difference() for -(), and intersection() for &amp;().</div><div class='add'>+	  [obtained from: Jason Voegele's set.rb]</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: deal with a s/id/object_id/ leftover.</div><div class='add'>+</div><div class='add'>+Sat Nov  9 16:06:57 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c: should include "util.h" for ruby_strdup.</div><div class='add'>+</div><div class='add'>+Sat Nov  9 11:39:45 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove ENABLE_TRACE/DISABLE_TRACE to trace child nodes of</div><div class='add'>+	  c-call. [ruby-dev:18699]</div><div class='add'>+</div><div class='add'>+Fri Nov  8 04:16:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): "a" in "a /5" should be considered as a local</div><div class='add'>+	  variable. [experimental]</div><div class='add'>+</div><div class='add'>+Thu Nov  7 09:51:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): should enable trace for non-cfunc nodes.</div><div class='add'>+	  [ruby-dev:18645]</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_orphan): a block created in a different thread is</div><div class='add'>+	  orphan.  [ruby-dev:17471]</div><div class='add'>+</div><div class='add'>+Wed Nov  6 16:57:06 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_method): do not set NOEX_CFUNC if klass is</div><div class='add'>+	  really a module, whose methods must be safe for reciever's type.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): nosuper should not be inherited unless the</div><div class='add'>+	  overwritten method is an undef placeholder.</div><div class='add'>+</div><div class='add'>+Tue Nov  5 00:46:04 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: Properly pass the given target to</div><div class='add'>+	  make(1). [pointed out by eban]</div><div class='add'>+</div><div class='add'>+Mon Nov  4 20:03:53 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb, lib/mkmf.rb: use CONFIG["ENABLE_SHARED"] instead of</div><div class='add'>+	  checking whether CONFIG["configure-args"] includes "--enable-shared".</div><div class='add'>+</div><div class='add'>+Mon Nov  4 16:49:14 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): allow 'when'-less case statement; persuaded</div><div class='add'>+	  by Sean Chittenden.</div><div class='add'>+</div><div class='add'>+Mon Nov  4 06:28:09 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, ext/extmk.rb, bcc32/Makefile.sub,</div><div class='add'>+	  win32/Makefile.sub: Introduce better command line syntax</div><div class='add'>+	  (--make/--make-flags/--extstatic) to extmk.rb and instruby.rb.</div><div class='add'>+	  Previously such command as 'make -j3 install' with pmake doesn't</div><div class='add'>+	  fail.  Formerly extmk.rb was receiving "make -j 3 -j 3" via the</div><div class='add'>+	  command line arguments and just ended up recognizing the first</div><div class='add'>+	  "3" as destdir. [with help of usa]</div><div class='add'>+</div><div class='add'>+Mon Nov  4 03:59:51 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getopts.rb: Do not choke on characters that cannot be used</div><div class='add'>+	  in a variable name.  Replace them with `_'.  Define a hash named</div><div class='add'>+	  $OPT for convenience.</div><div class='add'>+</div><div class='add'>+Sat Nov  2 00:38:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): added Object#object_id, new name for</div><div class='add'>+	  Object#id. [new]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_id_obsolete): give warning for Object#id.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_intern): added Fixnum#to_sym. [new]</div><div class='add'>+</div><div class='add'>+	* object.c (sym_to_sym): rename from Symbol#intern</div><div class='add'>+</div><div class='add'>+Fri Nov  1 14:21:06 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): added Enumerable#zip. [new]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): added Array#zip.</div><div class='add'>+</div><div class='add'>+Thu Oct 31 20:10:18 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (init_syserr): remove sys_nerr dependency.</div><div class='add'>+</div><div class='add'>+Thu Oct 31 09:31:51 2002  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_export_method): undef'ed method visibility should not</div><div class='add'>+	  be changed.</div><div class='add'>+</div><div class='add'>+Wed Oct 30 17:00:47 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_public_method_defined, etc.): new methods:</div><div class='add'>+	  public_method_defined?, private_method_defined?,</div><div class='add'>+	  protected_method_defined?</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_public_methods): new method</div><div class='add'>+	  Object#public_methods.</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_i): Object#methods should list both public</div><div class='add'>+	  and protected methods.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_public_instance_methods): new method</div><div class='add'>+	  Module#public_instance_methods.</div><div class='add'>+</div><div class='add'>+Wed Oct 30 06:29:00 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, file.c, gc.c, io.c, object.c, ruby.c, ruby.h, struct.c,</div><div class='add'>+	  ext/socket/socket.c: differentiate long and int; use proper</div><div class='add'>+	  printf type specifiers and do casts where appropriate.</div><div class='add'>+</div><div class='add'>+Wed Oct 30 04:07:33 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print, rb_longjmp, rb_thread_schedule): flush</div><div class='add'>+	  error message.  [ruby-dev:18582]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): added.  just clean up without exit.</div><div class='add'>+	  [ruby-dev:18582]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec): added.  execute main evaluation tree without</div><div class='add'>+	  exit.  [ruby-dev:18582]</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes; ruby_cleanup, ruby_exec</div><div class='add'>+</div><div class='add'>+Tue Oct 29 02:00:08 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): use dummy_makefile to create dummy</div><div class='add'>+	  Makefile.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_executable0): EXEEXT is optional.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dummy_makefile): make dummy Makefile content.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): define EXTLIB replacing -l.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($bccwin): detect Borland make by help message.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CLEANINGS): common rules to clean.</div><div class='add'>+</div><div class='add'>+Mon Oct 28 01:27:17 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* djgpp/config.sed (@program_transform_name@): use `%', not `,'.</div><div class='add'>+</div><div class='add'>+Sun Oct 27 22:59:50 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb(78) : The unnecessary error when installing by bccwin32</div><div class='add'>+	                     is controlled.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb(773) : Also in the case of bccwin32, the path was added.</div><div class='add'>+</div><div class='add'>+Sun Oct 27 17:07:25 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* djgpp/*: sync with the latest.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb: flush $stdout.</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_PENDING_COUNT, READ_DATA_PENDING_PTR):</div><div class='add'>+	  undef these macros on DJGPP.</div><div class='add'>+</div><div class='add'>+Sat Oct 26 10:11:47 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (nd_type): cast the value to int.</div><div class='add'>+</div><div class='add'>+Sat Oct 26 04:27:35 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_indexes, fdbm_select): add a missing</div><div class='add'>+	  argument and prevent coredump when a nonexistent key is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_indexes, fsdbm_select): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 26 03:28:43 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c: use a common set of alloca() #ifdef's.  This fixes</div><div class='add'>+	  the build with Intel C Compiler for Linux.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): declare old_func with a real type, not</div><div class='add'>+	  just type modifiers.</div><div class='add'>+</div><div class='add'>+Fri Oct 25 02:55:01 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): RSTRING(str)-&gt;ptr might become NULL.</div><div class='add'>+	  [ruby-dev:18581]</div><div class='add'>+</div><div class='add'>+Thu Oct 24 21:57:02 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBPATHFLAG): avoid $ substitution.</div><div class='add'>+	  [ruby-dev:18577]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): expand $srcdir.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb: should not override $CFLAGS, but</div><div class='add'>+	  append.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (config_string): use given config hash.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (.rc.res): directory part may be empty in</div><div class='add'>+	  Borland make.</div><div class='add'>+</div><div class='add'>+Thu Oct 24 03:38:07 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): site-install target for backward</div><div class='add'>+	  compatibility.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): libdir prior to topdir.</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBPATHFLAG): should escape $.  [ruby-dev:18572]</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: never substitute escaped $$.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: not install LIBRUBY_SO unless enable-shared.</div><div class='add'>+	  [ruby-dev:18569]</div><div class='add'>+</div><div class='add'>+Wed Oct 23 19:16:06 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): added NODE_DSYM, symbol literal with</div><div class='add'>+	  interpolation.</div><div class='add'>+</div><div class='add'>+	* node.h: ditto.</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes; rb_is_junk_id, rb_str_dump, rb_str_intern</div><div class='add'>+</div><div class='add'>+	* object.c (sym_inspect): escape and quote for non-alphanumeric</div><div class='add'>+	  symbols.</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym, tokadd_string, yylex): extended symbol literals.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_is_junk_id): added.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump, rb_str_intern) : make extern.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): deffile should be removed by</div><div class='add'>+	  distclean, not clean.</div><div class='add'>+</div><div class='add'>+Tue Oct 22 23:56:41 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): add dir_config("opt").</div><div class='add'>+</div><div class='add'>+Tue Oct 22 19:44:03 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat : The command line when calling setup.mak is</div><div class='add'>+	                        corrected.</div><div class='add'>+</div><div class='add'>+	* bcc32/readme.bcc32 : It follows up about the option of configure.bat.</div><div class='add'>+</div><div class='add'>+Tue Oct 22 15:23:19 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: add dryrun mode.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): add install: target to dummy Makefile.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): avoid Borland make's quirk behavior.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command): opt is not a makefile macro.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub ($(LIBRUBY_SO) $(LIBRUBY)): EXTOBJS were not</div><div class='add'>+	  linked.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (ext/extinit.obj): missing.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (TRY_LINK): options have to place before any</div><div class='add'>+	  non-option arguments.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (TRY_LINK): need -link and -libpath options.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub (RANLIB): logical</div><div class='add'>+	  operator never work with command.com.</div><div class='add'>+</div><div class='add'>+Tue Oct 22 00:59:59 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CPPOUTFILE): fix cache file bug.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command): put 'opt' after conftest.c for</div><div class='add'>+	  static linking.</div><div class='add'>+</div><div class='add'>+Mon Oct 21 22:53:02 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (XCFLAGS): CFLAGS to compile ruby itself.</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBEXT): suffix for static libraries.</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBPATHFLAG): switch template to specify library</div><div class='add'>+	  path.</div><div class='add'>+</div><div class='add'>+	* configure.in (LINK_SO): command to link shared objects.</div><div class='add'>+</div><div class='add'>+	* configure.in (DEFFILE, ARCHFILE): miscellaneous system dependent</div><div class='add'>+	  files.</div><div class='add'>+</div><div class='add'>+	* configure.in (EXPORT_PREFIX): prefix to exported symbols on</div><div class='add'>+	  Windows.</div><div class='add'>+</div><div class='add'>+	* configure.in (COMMON_LIBS, COMMON_MACROS, COMMON_HEADERS):</div><div class='add'>+	  libraries, macros and headers used in common.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBYW_INSTALL_NAME, rubyw_install_name): GUI mode</div><div class='add'>+	  executable name.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (CFLAGS): append XCFLAGS.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (PREP): miscellaneous system dependent files.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (ruby.imp, ext/extinit.o): moved from ext/extmk.rb.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (fake.rb): CROSS_COMPILING keeps building platform.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (MAKEFILES): depend on *.in and config.status.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (parse.c): replace "y.tab.c" with actual name for</div><div class='add'>+	  byacc.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb: integrated.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: propagate MFLAGS.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): make dummy Makefile to clean even if no</div><div class='add'>+	  Makefile is made.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (older): accept multiple file names and Time</div><div class='add'>+	  objects.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (xsystem): split and quote.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (cpp_include): make include directives.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func): try whether specified function is</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_files): default to site-install.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (checking_for): added.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_executable0): just find executable file with</div><div class='add'>+	  no message.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_header): output header file is variable.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): separate sections.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): initialize global variables.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, bcc32/Makefile.sub (CPP, AR): added.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (ARCH): fixed to i386.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, bcc32/Makefile.sub (miniruby): should not</div><div class='add'>+	  link EXTOBJS.</div><div class='add'>+</div><div class='add'>+	* ext/dl/extconf.rb: use try_cpp to cross compile.</div><div class='add'>+</div><div class='add'>+	* ext/dl/extconf.rb: not modify files in source directory.</div><div class='add'>+</div><div class='add'>+Fri Oct 18 23:11:21 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr0): allow return/break/next/redo/retry in rhs</div><div class='add'>+	  of logical operator.  [ruby-dev:18534]</div><div class='add'>+</div><div class='add'>+	* parse.y (remove_begin): eliminate useless NODE_BEGIN.</div><div class='add'>+	  [ruby-dev:18535]</div><div class='add'>+</div><div class='add'>+Fri Oct 18 01:02:44 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c, eval.c: Use (*_NSGetEnviron()) instead of environ on</div><div class='add'>+	  Darwin for namespace cleanness.  [ruby-core:00537]</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): Fix Darwin support that has been disabled and</div><div class='add'>+	  switch to using it on Darwin instead of the system dlopen().</div><div class='add'>+	  [ruby-core:00541]</div><div class='add'>+</div><div class='add'>+Thu Oct 17 19:17:56 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_byten): added; write n bytes from s to arg.</div><div class='add'>+</div><div class='add'>+	* marshal.c (dump): flush buffered data.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump, r_byte, r_bytes0, marshal_load): unify</div><div class='add'>+	  marshaling I/O.  [ruby-talk:53368]</div><div class='add'>+</div><div class='add'>+Thu Oct 17 12:58:24 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: stat.blksize might be 0/nil.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: change coding style.</div><div class='add'>+</div><div class='add'>+Wed Oct 16 22:35:53 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): disallow mixed usage of numbered and</div><div class='add'>+	  unnumbered arguments.  [ruby-dev:18531]</div><div class='add'>+	  get rid of memory leak at exception.  [ruby-core:00460]</div><div class='add'>+</div><div class='add'>+Wed Oct 16 13:36:29 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_global_entry): not add global entry until</div><div class='add'>+	  initialized to avoid accessing it while GC.  [ruby-dev:18514]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_alias_variable): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 16 01:03:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str_to_dbl): RString ptr might be NULL.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): p pointer might be NULL.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str_to_inum): RString ptr might be NULL.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): str pointer might be NULL.</div><div class='add'>+</div><div class='add'>+Sat Oct 12 23:44:11 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_putc): wrong condition to fill or flush on</div><div class='add'>+	  bccwin32.  [ruby-win32:408]</div><div class='add'>+</div><div class='add'>+Fri Oct 11 15:58:06 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): rescue modifier is now an operator with</div><div class='add'>+	  precedence right below assignments. i.e. "a = b rescue c" now</div><div class='add'>+	  parsed as "a = (b rescue c)", not as "(a = b) rescue c". [new]</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+Fri Oct 11 06:05:30 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_fclose, rb_w32_close): use closesocket()</div><div class='add'>+	  for socket.  [ruby-win32:382]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSockets): set NtSocketsInitialized.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: prototypes; rb_w32_fclose, rb_w32_close</div><div class='add'>+</div><div class='add'>+Fri Oct 11 00:24:57 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xmalloc, ruby_xrealloc): restrict total allocation</div><div class='add'>+	  size according to memories consumed by live objects.</div><div class='add'>+	  [ruby-dev:18482]</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): estimate how live objects consume memories.</div><div class='add'>+</div><div class='add'>+Thu Oct 10 17:26:12 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c (ruby_tcltk_stubs): fix memory leak.</div><div class='add'>+	  [ruby-dev:18478]</div><div class='add'>+</div><div class='add'>+Thu Oct 10 15:20:18 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb (WeakRef::@@final): use Hash#delete.</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb (WeakRef::__getobj__): examine if alive or not by</div><div class='add'>+	  ID_REV_MAP to deal with recycled object.  [ruby-dev:18472]</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb (WeakRef::weakref_alive?): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct  9 07:11:25 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): also adjust heaps_limits when free unused heap</div><div class='add'>+	  page.  [ruby-core:00526]</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): condition to retry can occur.</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): returned 0 wrongly if no error occurred.</div><div class='add'>+</div><div class='add'>+Tue Oct  8 14:19:07 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): must check returned value from fwrite() before</div><div class='add'>+	  test with ferror().  (ruby-bugs-ja:PR#350)</div><div class='add'>+</div><div class='add'>+Tue Oct  8 10:55:23 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb (PrettyPrint.singleline_format): new method.</div><div class='add'>+</div><div class='add'>+Mon Oct  7 16:43:07 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): bignum zero's len should not be 0.</div><div class='add'>+</div><div class='add'>+Mon Oct  7 15:36:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): wrong condition check for Bignum zero.</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): need to add Bignum#div.</div><div class='add'>+</div><div class='add'>+Sun Oct  6 00:49:15 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should not pass blocks to the loaded file.</div><div class='add'>+	  [ruby-dev:18458]</div><div class='add'>+</div><div class='add'>+Fri Oct  4 20:25:38 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_interrupt, rb_thread_signal_raise): no need to</div><div class='add'>+	  save dead thread context. (same as [ruby-dev:18322])</div><div class='add'>+	  (ruby-bugs-ja:PR#349)</div><div class='add'>+</div><div class='add'>+Fri Oct  4 13:05:58 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_PROG_GNU_LD): check whether the linker is GNU ld.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (create_makefile): add -Wl,-no-undefined to $DLDFLAGS</div><div class='add'>+	  on Linux if GNU ld is used and --enable-shared is specified.</div><div class='add'>+</div><div class='add'>+Fri Oct  4 02:21:16 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rshift): num should be initialized by carry</div><div class='add'>+	  bits if x is negative.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): len for bignum zero is 1, not 0.</div><div class='add'>+</div><div class='add'>+Thu Oct  3 20:22:11 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/mkexports.rb: to work on cygwin via telnet.</div><div class='add'>+	  [ruby-win32:358]</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_invoke): requires command name</div><div class='add'>+	  argument.  [ruby-dev:18438]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init, ruby_options): Init_stack() with local</div><div class='add'>+	  location.  (ruby-bugs-ja:PR#277)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): disable trace call.  [ruby-dev:18074]</div><div class='add'>+</div><div class='add'>+	* eval.c (eval, rb_load): enable trace call.  [ruby-dev:18074]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): set source file name for extension</div><div class='add'>+	  libraries.  [ruby-dev:18445]</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): prefer address of argument rather than local</div><div class='add'>+	  variable to initialize rb_gc_stack_start.</div><div class='add'>+</div><div class='add'>+	* ruby.c (translate_char): translate a character in a string;</div><div class='add'>+	  DOSISH only.  [ruby-dev:18274]</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath): added argv[0] handling under</div><div class='add'>+	  Human68K.  [ruby-dev:18274]</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): translate directory separator in $0 to</div><div class='add'>+	  '/'.  [ruby-dev:18274]</div><div class='add'>+</div><div class='add'>+Thu Oct  3 00:27:26 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::initialize): use Object#class</div><div class='add'>+	  instead of deprecated Object#type.</div><div class='add'>+</div><div class='add'>+Wed Oct  2 23:32:48 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_IO_NEED_FLUSH): check whether fflush()</div><div class='add'>+	  is needed.</div><div class='add'>+</div><div class='add'>+	* io.c (flush_before_seek): flush before seek if buffered data</div><div class='add'>+	  may remain.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): flush if the last operation was</div><div class='add'>+	  write.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_writable): flush if the last operation was</div><div class='add'>+	  read.</div><div class='add'>+</div><div class='add'>+	* rubyio.h (FMODE_RBUF): added.</div><div class='add'>+</div><div class='add'>+Wed Oct  2 23:09:20 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_wait_readable): handle retryable errors.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_wait_writable): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_send): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_send): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (afdl): made private structures constant.</div><div class='add'>+</div><div class='add'>+	* rubyio.h: prototype; rb_io_wait_readable(), rb_io_wait_writable().</div><div class='add'>+</div><div class='add'>+Wed Oct  2 13:03:58 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set ac_cv_func_setitimer to "no" on Cygwin.</div><div class='add'>+</div><div class='add'>+Wed Oct  2 10:59:29 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): free unused heap page to reduce process size if</div><div class='add'>+	  possible.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_type): deprecated Object#type; use Object#class.</div><div class='add'>+</div><div class='add'>+Tue Oct  1 23:48:32 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_sock): no need for special finalizer,</div><div class='add'>+	  socket descriptor is no longer duplicated in 1.7.</div><div class='add'>+	  [ruby-talk:50732]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (rb_w32_fddup, rb_w32_fdclose):</div><div class='add'>+	  delete.</div><div class='add'>+</div><div class='add'>+Mon Sep 30 20:29:10 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_inspect): not need to raise IOError for closed</div><div class='add'>+	  stream.  [ruby-talk:51871]</div><div class='add'>+</div><div class='add'>+Mon Sep 30 03:48:15 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_check): need no Fixnum check.</div><div class='add'>+</div><div class='add'>+Sun Sep 29 18:30:24 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open_osfhandle): adjust</div><div class='add'>+	  rb_w32_open_osfhandle() with _open_osfhandle().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_accept, rb_w32_socket): return -1 on</div><div class='add'>+	  error.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: should use file descriptor instead of SOCKET.</div><div class='add'>+</div><div class='add'>+Sun Sep 29 06:33:03 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (is_socket, rb_w32_select, rb_w32_accept, rb_w32_bind,</div><div class='add'>+	  rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname,</div><div class='add'>+	  rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv,</div><div class='add'>+	  rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt,</div><div class='add'>+	  rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr,</div><div class='add'>+	  rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname,</div><div class='add'>+	  rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport):</div><div class='add'>+	  need to protect WSAGetLastError() by RUBY_CRITICAL. [ruby-talk:51778]</div><div class='add'>+</div><div class='add'>+Sat Sep 28 20:06:36 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* keywords: add braces around initializers.</div><div class='add'>+</div><div class='add'>+Sat Sep 28 13:19:29 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_become): should check self-assignment after</div><div class='add'>+	  conversion.</div><div class='add'>+</div><div class='add'>+Sat Sep 28 10:40:44 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_become): Hash#become should check added</div><div class='add'>+	  self-assignment.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): metaclass of a superclass may be</div><div class='add'>+	  NULL at boot time.</div><div class='add'>+</div><div class='add'>+Sat Sep 28 09:50:03 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: The condition judgment without necessity was deleted.</div><div class='add'>+</div><div class='add'>+Fri Sep 27 18:40:42 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_deadlock): more verbose message at deadlock.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 27 13:24:35 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): Class#inherited should be called after the</div><div class='add'>+	  execution of the class body.</div><div class='add'>+</div><div class='add'>+Fri Sep 27 02:41:53 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1: Use OpenSSL's SHA1 engine if available.  It is</div><div class='add'>+	  much faster than what we have now (sha1.[ch]).  Add a knob</div><div class='add'>+	  (--with-bundled-sha1) to extconf.rb which makes it use the</div><div class='add'>+	  bundled one anyway.</div><div class='add'>+</div><div class='add'>+Fri Sep 27 02:25:14 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160: Use OpenSSL's RMD160 engine if available.  It</div><div class='add'>+	  is much faster than what we have now (rmd160.[ch]).  Add a knob</div><div class='add'>+	  (--with-bundled-rmd160) to extconf.rb which makes it use the</div><div class='add'>+	  bundled one anyway.</div><div class='add'>+</div><div class='add'>+Fri Sep 27 01:23:39 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5: Use OpenSSL's MD5 engine if available.  It is</div><div class='add'>+	  much faster than what we have now (md5.[ch]).  Add a knob</div><div class='add'>+	  (--with-bundled-md5) to extconf.rb which makes it use the</div><div class='add'>+	  bundled one anyway.</div><div class='add'>+</div><div class='add'>+Thu Sep 26 22:44:21 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_s_digest): Fix a double</div><div class='add'>+	  free() bug mingled with allocation framework deployment.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_s_hexdigest): Get rid of</div><div class='add'>+	  redundant struct allocation.</div><div class='add'>+</div><div class='add'>+Thu Sep 26 09:52:52 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): remove "return outside of method" check at</div><div class='add'>+	  compile time.</div><div class='add'>+</div><div class='add'>+Wed Sep 25 23:51:29 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): must not closedir() when exception raised</div><div class='add'>+	  while globbing "**".</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_uclass): unused variable.</div><div class='add'>+</div><div class='add'>+	* re.c (match_clone): unused.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): get rid of implicit promotion from</div><div class='add'>+	  plain char to int.</div><div class='add'>+</div><div class='add'>+Wed Sep 25 17:46:46 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (libpathflag): restore ENV['LIB'] when some error</div><div class='add'>+	  occurred.</div><div class='add'>+</div><div class='add'>+Wed Sep 25 16:14:51 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): p1 may exceed pend limit.</div><div class='add'>+</div><div class='add'>+Mon Sep 23 23:22:43 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): must not clear ruby_current_node, or</div><div class='add'>+	  backtrace cannot be generated.</div><div class='add'>+</div><div class='add'>+	* intern.h (ruby_yyparse): rather than yyparse().</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): nextc() returns -1 at end of input, not 0.</div><div class='add'>+</div><div class='add'>+	* parse.y (newline_node): reduce duplicated newline node.</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat): get rid of warning.</div><div class='add'>+</div><div class='add'>+	* parse.y (new_evstr): fixed junk code.</div><div class='add'>+</div><div class='add'>+Mon Sep 23 19:57:52 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_MINGW32): new macro. check for the MinGW</div><div class='add'>+	  compiler environment.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: refactoring.</div><div class='add'>+</div><div class='add'>+Mon Sep 23 08:27:11 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): forget to terminate with nul.</div><div class='add'>+</div><div class='add'>+Mon Sep 23 02:46:29 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): should set toplevel visibility again here.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not rely on ruby_class == rb_cObject</div><div class='add'>+	  check.   Besides allow implicit publicity for attribute set</div><div class='add'>+	  methods.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): need not to check class_nest, just set</div><div class='add'>+	  whether method is an attrset or not.</div><div class='add'>+</div><div class='add'>+Sun Sep 22 21:49:42 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): should not call trace function while</div><div class='add'>+	  compilation.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): also inside c-func.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): preserve source file/line for each</div><div class='add'>+	  require.</div><div class='add'>+</div><div class='add'>+Sun Sep 22 17:08:11 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): p might be at the top of the</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Sat Sep 21 23:28:28 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): class of metaclass should be</div><div class='add'>+	  metaclass of superclass, unless class itself is a metaclass;</div><div class='add'>+	  class of metaclass of metaclass should point back to self.</div><div class='add'>+	  eh, confusing, isn't it.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): check if its class is singleton</div><div class='add'>+	  AND attached to self.</div><div class='add'>+</div><div class='add'>+Sat Sep 21 22:23:41 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_raise): no need to save dead thread context.</div><div class='add'>+	  [ruby-dev:18322]</div><div class='add'>+</div><div class='add'>+Fri Sep 20 23:02:01 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_append): eliminate unused literal nodes.</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat): refined literal concatenation.</div><div class='add'>+</div><div class='add'>+Fri Sep 20 19:43:40 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Merge rough/lib/set.rb rev.1.5-1.15.</div><div class='add'>+</div><div class='add'>+Wed Sep 18 12:41:16 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should define class/module under ruby_cbase.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should set class/module path based on</div><div class='add'>+	  ruby_cbase, not ruby_class.</div><div class='add'>+</div><div class='add'>+	* eval.c (module_setup): use ruby_cbase instead of ruby_class.</div><div class='add'>+</div><div class='add'>+Tue Sep 17 21:06:04 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_die): put thread dead state.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_atfork): free stack buffer at fork too.</div><div class='add'>+</div><div class='add'>+Tue Sep 17 01:13:31 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_nesting): load wrapping module should appear in</div><div class='add'>+	  Module#nesting list. (ruby-bugs-ja:PR#328)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_remove): free stack buffer on remove.</div><div class='add'>+</div><div class='add'>+Tue Sep 17 00:58:35 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: add parameter prototype.</div><div class='add'>+</div><div class='add'>+	* re.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 15 21:14:22 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir, rb_w32_stat): Corresponds to</div><div class='add'>+	  the unjust path containing ".</div><div class='add'>+</div><div class='add'>+Sun Sep 15 19:48:55 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (OUTFLAG, CPPOUTFILE): moved from lib/mkmf.rb.</div><div class='add'>+	  check whether ${CPP} accepts the -o option.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (OUTFLAG, CPPOUTFILE): ditto.</div><div class='add'>+</div><div class='add'>+	* djgpp/config.sed (OUTFLAG, CPPOUTFILE): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (OUTFLAG, CPPOUTFILE): use CONFIG.</div><div class='add'>+	  make easy to understand log.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (val): should not strip.</div><div class='add'>+</div><div class='add'>+Sat Sep 14 20:13:42 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c(rb_sys_fail): remove case EPIPE on bcc32 .</div><div class='add'>+</div><div class='add'>+Fri Sep 13 23:39:49 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_func_caller): add prototype to get rid of warning.</div><div class='add'>+</div><div class='add'>+Fri Sep 13 18:35:12 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): avoid uninitialized global/class variable</div><div class='add'>+	  warnings at `||='.  [ruby-dev:18278]</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, arg): ditto</div><div class='add'>+</div><div class='add'>+Fri Sep 13 13:28:04 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($INSTALLFILES): avoid warning when $VERBOSE mode.</div><div class='add'>+</div><div class='add'>+Thu Sep 12 23:20:10 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak    : Control of a message.</div><div class='add'>+</div><div class='add'>+	* bcc32/makefile.sub : include resource.</div><div class='add'>+</div><div class='add'>+Thu Sep 12 18:10:03 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): fixed freeing buffer.  (ruby-bugs-ja:PR#332)</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): should pass matched path.  (ruby-bugs-ja:PR#333)</div><div class='add'>+</div><div class='add'>+Thu Sep 12 00:09:32 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_trap_eval): preserve thread status and so on.</div><div class='add'>+	  [ruby-talk:40337], [ruby-core:00019]</div><div class='add'>+</div><div class='add'>+Wed Sep 11 21:25:52 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* pp.rb (ARGF.pretty_print): implemented.</div><div class='add'>+	  (PP.pp): arguments reordered.</div><div class='add'>+</div><div class='add'>+Wed Sep 11 18:55:38 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_to_s): refined format.  [ruby-dev:18215]</div><div class='add'>+</div><div class='add'>+Wed Sep 11 17:47:17 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (rb_w32_getpid): negate pid under Win9x.</div><div class='add'>+	  [ruby-dev:18262]</div><div class='add'>+</div><div class='add'>+Wed Sep 11 12:58:57 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (get_pat): Add an extra argument "quote".</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match_m): Do not bother to convert if a regexp</div><div class='add'>+	  is given.</div><div class='add'>+</div><div class='add'>+Wed Sep 11 11:33:40 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: remove unnecessary `.dll' from filename of</div><div class='add'>+	  dll's resource file.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: ditto. [ruby-dev:17103]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto. [ruby-dev:17103]</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: ditto. [ruby-dev:17103]</div><div class='add'>+</div><div class='add'>+Wed Sep 11 09:59:46 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_wait_readable): added.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_wait_writable): added.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read_retryable): added.</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): retry on EINTR, ERESTART and EWOULDBLOCK.</div><div class='add'>+	  [ruby-dev:17855], [ruby-dev:17878], [ruby-core:00444]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fread): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_byte): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 11 09:29:24 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (ext): make directory `ext' on compile dir.</div><div class='add'>+	  [ruby-dev:18255]</div><div class='add'>+</div><div class='add'>+Wed Sep 11 00:41:10 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): initialize orig_func too.</div><div class='add'>+	  (ruby-bugs-ja:PR#330)</div><div class='add'>+</div><div class='add'>+Wed Sep 11 00:01:32 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): prevent memory leak using rb_protect().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_associate): no need to check freeze flag.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_resize): should honor STR_ASSOC flag on</div><div class='add'>+	  resize.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_resize): proper STR_ASSOC handling.  pointed</div><div class='add'>+	  out by Michal Rokos.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cat): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_append): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_append): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 10 23:35:46 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): restore line number after here documents.</div><div class='add'>+	  (ruby-bugs-ja:PR#331)</div><div class='add'>+</div><div class='add'>+	* parse.y (heredoc_restore): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 10 18:26:52 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb ($INCFLAGS): new var for -I$(topdir).</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: add #define WIN32_LEAN_AND_MEAN to improve compile</div><div class='add'>+	  times.</div><div class='add'>+</div><div class='add'>+Tue Sep 10 17:16:14 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (miniruby): shouldn't link $(EXTOBJS).</div><div class='add'>+	  [ruby-dev:17059]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub ($(LIBRUBY_A), $(LIBRUBY)): avoid lib.exe's</div><div class='add'>+	  warning. [ruby-dev:17059]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: remove unnecessary rules. [ruby-dev:17059]</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat, win32/setup.mak, win32/README.win32: enable to</div><div class='add'>+	  pass some arguments to configure. [ruby-dev:17059]</div><div class='add'>+</div><div class='add'>+Mon Sep  9 23:43:33 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (S_I?USR): define only if not mingw32.</div><div class='add'>+</div><div class='add'>+Mon Sep  9 11:21:04 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_set_string): reinitialize</div><div class='add'>+	  properly.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_become): added self-assign check</div><div class='add'>+	  and experimental auto-conversion to StringIO.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_reopen): added.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Sun Sep  8 21:29:25 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_free): prototype; struct time_object -&gt; void *.</div><div class='add'>+	  avoid GCC warnings.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb, ext/extmk.rb ($LINK, $CPP): move to lib/mkmf.rb.</div><div class='add'>+</div><div class='add'>+Sun Sep  8 19:02:28 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: prototype; time_free() to avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: prototype; invoke_queue_handler() to avoid</div><div class='add'>+	  VC++ warning.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_stat): remove S_IWGRP and S_IWOTH bits from</div><div class='add'>+	  st_mode.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (S_I*): define if not defined.</div><div class='add'>+</div><div class='add'>+Sun Sep  8 14:38:31 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: modify program_prefix only if specified</div><div class='add'>+	  --program-prefix.</div><div class='add'>+</div><div class='add'>+	* configure.in: don't generate ext/extmk.rb.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: execute directly $(srcdir)/ext/extmk.rb.</div><div class='add'>+	  remove -Cext option, "Dir::chdir 'ext'" in ext/extmk.rb.</div><div class='add'>+</div><div class='add'>+	* {win32,bccwin32}/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: renamed from ext/extmk.rb.in.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (module Logging): create log files (mkmf.log)</div><div class='add'>+	  in each extension module directories.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (macro_defined?): new method.</div><div class='add'>+</div><div class='add'>+	* ext/.cvsignore: remove extmk.rb.</div><div class='add'>+</div><div class='add'>+	* ext/*/.cvsignore: add "*.def".</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_struct_member): moved from ext/socket/extconf.rb.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: use macro_defined? instead of egrep_cpp.</div><div class='add'>+</div><div class='add'>+	* ext/etc/extconf.rb: use have_struct_member.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: add prefix HAVE_ST_ to PW_ macros.</div><div class='add'>+</div><div class='add'>+Sun Sep  8 14:36:40 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat : Control of a message.</div><div class='add'>+	* bcc32/makefile.sub  : @(sitearch) typo.</div><div class='add'>+	* ext/extmk.rb.in     : [bccwin32] libdir is added to a library path.</div><div class='add'>+	* lib/mkmf.rb         : ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep  7 23:32:56 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (inferior-ruby-error-regexp-alist): regexp</div><div class='add'>+	  alist for error message from ruby.</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (inferior-ruby-mode): fixed for Emacs.</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (ruby-send-region): compilation-parse-errors</div><div class='add'>+	  doesn't parse first line, so insert separators before each</div><div class='add'>+	  evaluations.</div><div class='add'>+</div><div class='add'>+Sat Sep  7 19:46:57 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Disallow Set.new(false).  Add even more tests.</div><div class='add'>+	  [Submitted by: "Christoph" &lt;chr_news@gmx.net&gt;]</div><div class='add'>+</div><div class='add'>+Sat Sep  7 19:23:56 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Fix a bug in flatten()'s recursive set detection.</div><div class='add'>+	  [Submitted by: "Christoph" &lt;chr_news@gmx.net&gt;]  Some tests</div><div class='add'>+	  against the bug are added.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Resurrect the test suite by putting it after</div><div class='add'>+	  __END__ and executing `eval DATA.read'.</div><div class='add'>+</div><div class='add'>+Sat Sep  7 08:41:39 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_gc_mark_parser): ruby_eval_tree is marked in eval.c.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 20:01:38 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($CC): command to compile C source.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (logging): added.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_compile): added.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (egrep_cpp): use internal grep when pattern is</div><div class='add'>+	  Regexp, otherwise use external egrep command but get rid of</div><div class='add'>+	  pipe of command.com.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_func): local variable should be volatile not</div><div class='add'>+	  to be eliminated by optimization.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): link with CONFIG["LIBS"].</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): emit .SUFFIXES:.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 12:11:22 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_gc_mark_parser): should mark ALL global variables</div><div class='add'>+	  defined in parse.y.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 01:15:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xmalloc): remove MALLOC_LIMIT to avoid frequent</div><div class='add'>+	  garbage collection.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 11:47:37 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_gc_mark_parser): should mark global variables</div><div class='add'>+	  defined in parse.y.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 10:34:32 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): RSTRING(line)-&gt;ptr might be NULL.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 10:26:37 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: should not put non-NODE-VALUEs in the semantic stack.</div><div class='add'>+</div><div class='add'>+Fri Sep  6 05:48:26 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_path_check): nothing to check under DOSISH.</div><div class='add'>+	  [ruby-list:35772]</div><div class='add'>+</div><div class='add'>+Fri Sep  6 05:03:50 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): should mark parser.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_gc_mark_parser): new function.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_gc_mark_parser): added.</div><div class='add'>+</div><div class='add'>+Thu Sep  5 18:32:32 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path2class): should not use rb_eval_string().</div><div class='add'>+</div><div class='add'>+Thu Sep  5 17:18:22 2002  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: fix memory leak in dln_load (ruby-core:405) and</div><div class='add'>+	  in load_1 (ruby-core:407)</div><div class='add'>+</div><div class='add'>+Thu Sep  5 15:43:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_extended): should allow marshaling of object which</div><div class='add'>+	  is extended by named module.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): super may be T_ICLASS, need to skip.</div><div class='add'>+</div><div class='add'>+Thu Sep  5 13:09:22 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): overriding false constant with class/module</div><div class='add'>+	  definition should be error.  (PR#327)</div><div class='add'>+</div><div class='add'>+Thu Sep  5 01:24:26 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* extmk.rb (create_makefile): add macro MAKEDIRS, INSTALL_PROG,</div><div class='add'>+	  INSTALL_DATA.</div><div class='add'>+</div><div class='add'>+	* extmk.rb (create_makefile): support for building to any directory.</div><div class='add'>+</div><div class='add'>+	* extmk.rb (xsystem): move to mkmf.rb.</div><div class='add'>+</div><div class='add'>+	* mkmf.rb (xsystem): support for extmk.rb</div><div class='add'>+</div><div class='add'>+	* mkmf.rb ($CPP): remove '-E' option.  add CPPFLAGS.</div><div class='add'>+</div><div class='add'>+Wed Sep  4 16:15:17 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: ==(o) should be aware of all the Set variant</div><div class='add'>+	  instances, not just those of its subclasses. [Submitted by:</div><div class='add'>+	  "Christoph" &lt;chr_news@gmx.net&gt;]</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: - Fix eql?(). [ditto]</div><div class='add'>+</div><div class='add'>+Wed Sep  4 15:23:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): obj.meta.super.meta should be equal</div><div class='add'>+	  to obj.meta.meta.super (ruby-bugs-ja:PR#324).</div><div class='add'>+</div><div class='add'>+Wed Sep  4 05:10:16 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): the warning message "invalid</div><div class='add'>+	  character syntax" was never issued (ruby-bugs-ja:PR#323).</div><div class='add'>+</div><div class='add'>+Wed Sep  4 01:08:45 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes): do not use alloca (ruby-bugs:PR#382).</div><div class='add'>+</div><div class='add'>+Tue Sep  3 17:12:59 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* extmk.rb: require mkmf.rb.  remove duplicate methods.</div><div class='add'>+	  use Config::CONFIG["FOO"] instead of @FOO@.</div><div class='add'>+</div><div class='add'>+	* mkmf.rb: support for extmk.rb.</div><div class='add'>+</div><div class='add'>+Mon Sep  2 23:01:50 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): MatchData must be rb_cMatch.</div><div class='add'>+	  (ruby-bugs-ja:PR#319)</div><div class='add'>+</div><div class='add'>+Mon Sep  2 21:21:46 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): does reclaim nodes in also compile time, if we</div><div class='add'>+	  can.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): omit GC if we can.</div><div class='add'>+</div><div class='add'>+	* parse.y (ruby_parser_stack_on_heap): new function.</div><div class='add'>+</div><div class='add'>+	* intern.h (ruby_parser_stack_on_heap): added.</div><div class='add'>+</div><div class='add'>+Mon Sep  2 18:45:07 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_copy_generic_ivar): remove old generic instance</div><div class='add'>+	  variable table if it exists.</div><div class='add'>+</div><div class='add'>+Sun Sep  1 15:54:33 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess: fixed for Linux/PPC.</div><div class='add'>+</div><div class='add'>+Sat Aug 31 09:38:12 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): metaclass of a metaclass is a</div><div class='add'>+	  metaclass itself.</div><div class='add'>+</div><div class='add'>+Fri Aug 30 22:45:16 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Added.</div><div class='add'>+</div><div class='add'>+Fri Aug 30 20:58:54 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_Call): typo.</div><div class='add'>+</div><div class='add'>+Fri Aug 30 19:45:52 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_assign): st_delete() takes pointer to key.</div><div class='add'>+</div><div class='add'>+Fri Aug 30 19:40:28 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_Call): RSTRING()-&gt;ptr may be</div><div class='add'>+	  NULL.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_guess): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_completion_append_character):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getaddrinfo, sock_s_getnameinfo):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_toUTF8, ip_fromUTF8): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 30 01:32:17 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): superclass of a metaclass</div><div class='add'>+	  should be a metaclass of superclass.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eq): two instances must belong to a same class to</div><div class='add'>+	  be equal.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eql): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_taint_check): frozen check added.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_become): frozen check added.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_become): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_become): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_become): ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (time_become): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_become): should call rb_ary_modify().</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_become): should call rb_hash_modify().</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_equal): should not use NUM2LONG(), since &lt;=&gt; may</div><div class='add'>+	  return bignum.</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_gt, cmp_ge, cmp_lt, cmp_le, cmp_between): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 29 23:34:42 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/MakeFile.sub (sitearch): add.</div><div class='add'>+</div><div class='add'>+Thu Aug 29 13:36:42 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): should use off_t instead of long.</div><div class='add'>+</div><div class='add'>+Thu Aug 29 00:55:55 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): yield loaded objects, not intermediates.</div><div class='add'>+	  (ruby-bugs-ja:PR#296)</div><div class='add'>+</div><div class='add'>+Thu Aug 29 00:06:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_become): should not free ptr if it's shared.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_alias): prohibit making an alias named "allocate" if</div><div class='add'>+	  klass is a metaclass.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 23:59:15 2002  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c: remove #ifdef SIGINT for struct signals.</div><div class='add'>+</div><div class='add'>+	* variable.c: get rid of fix length buffer in rb_class_path.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 23:34:32 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): data was lost when raw mode.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 22:57:34 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value_ptr): StringValuePtr() should never</div><div class='add'>+	  return NULL pointer.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 19:12:46 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_initialize): RSTRING(mode)-&gt;ptr</div><div class='add'>+	  can be NULL.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): fix buffer overflow.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 18:19:55 2002  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: fix memory leak in rb_stat_init.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 17:45:03 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): negate pid under Win9x.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 16:36:40 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ar): don't check ar twice.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 15:00:29 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): should check if str-&gt;ptr is 0.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): ditto.</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'>+	* string.c (rb_str_intern): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 28 11:37:35 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: define SIGINT and SIGKILL if not defined.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: remove definition of SIGINT and SIGKILL.</div><div class='add'>+</div><div class='add'>+Tue Aug 27 19:50:27 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): prevent ruby_sourcefile from GC.</div><div class='add'>+</div><div class='add'>+Tue Aug 27 15:03:35 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): $LOAD_PATH must not be empty.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 27 02:35:21 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eq): class check should be based on range.class,</div><div class='add'>+	  instead of Range to work with Range.dup.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eql): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 26 18:17:56 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_dup): need to preserve metaclass and flags.</div><div class='add'>+</div><div class='add'>+Mon Aug 26 10:44:18 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): had a buffer overrun.</div><div class='add'>+</div><div class='add'>+Sun Aug 25 20:10:32 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#form): fix ruby-bugs-ja:PR#280, add default action.</div><div class='add'>+</div><div class='add'>+Sat Aug 24 15:32:16 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): restore source file/line, as trace</div><div class='add'>+	  function installed in required library with -r option can be</div><div class='add'>+	  called while parsing.  (ruby-bugs:PR#372)</div><div class='add'>+</div><div class='add'>+	* eval.c (module_setup): unused variable.  [ruby-core:00358]</div><div class='add'>+</div><div class='add'>+Sat Aug 24 14:59:02 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_class): integrate singleton check into a function</div><div class='add'>+	  to follow DRY principle.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_uclass): should check singleton method.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): dmark and dfree functions must be match</div><div class='add'>+	  for T_DATA type.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): class of the duped object must be match</div><div class='add'>+	  to the class of the original.</div><div class='add'>+</div><div class='add'>+Sat Aug 24 13:57:28 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.rfc2822, Time#rfc2822): preserve localtimeness.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: pretty_print_cycled is renamed to pretty_print_cycle.</div><div class='add'>+</div><div class='add'>+Fri Aug 23 23:59:57 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_call): check receiver is defined.</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_call): removed.</div><div class='add'>+</div><div class='add'>+Fri Aug 23 23:39:17 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): do not escape \t, \f, \r, \n, for they are</div><div class='add'>+	  not regular expression metacharacters.</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_alloc): use time_free instead of free (null check,</div><div class='add'>+	  also serves for type mark).</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_at): check dfree function too.</div><div class='add'>+</div><div class='add'>+Fri Aug 23 17:06:48 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: RUBY_SO_NAME is msvcrt-rubyXX on mswin32/mingw32.</div><div class='add'>+</div><div class='add'>+	* configure.in (sitearch): new var.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb, lib/mkmf.rb (sitearch): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, win32/setup.mak (sitearch): ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 21 16:53:00 2002  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* *.c: int, long types cleanup.</div><div class='add'>+</div><div class='add'>+	* parse.y: ditto.</div><div class='add'>+</div><div class='add'>+	* re.h, regex.h, ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 21 16:43:19 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): should not modify the global</div><div class='add'>+	  variable curr_thread.</div><div class='add'>+</div><div class='add'>+Wed Aug 21 16:14:26 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set ac_cv_func__setjmp to "no" on Cygwin.</div><div class='add'>+</div><div class='add'>+	* configure.in: set ac_cv_func_crypt to "no" on MinGW.</div><div class='add'>+</div><div class='add'>+Tue Aug 20 21:47 2002  KONISHI Hiromasa  &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c          (rb_io_fread): remove case EPIPE on bcc32 .</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getc): clear EPIPE error on bcc32.</div><div class='add'>+</div><div class='add'>+Tue Aug 20 19:39:03 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): accept drive letter on Cygwin.</div><div class='add'>+</div><div class='add'>+	* file.c (is_absolute_path): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 20 12:12:25 2002  Tietew &lt;tietew@tietew.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_putc): output via rb_io_write().</div><div class='add'>+</div><div class='add'>+Mon Aug 19 19:01:55 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (inf-ruby-keys): ruby-send-definition</div><div class='add'>+	  conflicted with ruby-insert-end.</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (inferior-ruby-mode): compilation-minor-mode.</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (ruby-send-region): send as here document to</div><div class='add'>+	  adjust source file/line.  [ruby-talk:47113], [ruby-dev:17965]</div><div class='add'>+</div><div class='add'>+	* misc/inf-ruby.el (ruby-send-terminator): added to make unique</div><div class='add'>+	  terminator.</div><div class='add'>+</div><div class='add'>+Mon Aug 19 17:08:19 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): frozen check should be moved here</div><div class='add'>+	  from rb_reg_initialize().</div><div class='add'>+</div><div class='add'>+Mon Aug 19 15:38:44 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): comparison should be done as signed long.</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): should return int, not VALUE.</div><div class='add'>+</div><div class='add'>+Mon Aug 19 12:38:33 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context, rb_thread_restore_context):</div><div class='add'>+	  save/restore SEH chain on MS-Windows at thread switch.</div><div class='add'>+	  [ruby-win32:273]</div><div class='add'>+</div><div class='add'>+	* eval.c (win32_get_exception_list, win32_set_exception_list):</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+Sat Aug 17 23:01:25 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): *a - *b may overflow.</div><div class='add'>+</div><div class='add'>+Sat Aug 17 00:25:08 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_new): len*sizeof(VALUE) may be a positive value.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 16 15:58:16 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (NOFILE): define NOFILE as 64 if not defined.</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandler_t): rename to sh_t on dietlibc.</div><div class='add'>+</div><div class='add'>+Fri Aug 16 15:37:04 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): new decimal and octal string.</div><div class='add'>+</div><div class='add'>+Fri Aug 16 13:17:11 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_allocate_instance): move singleton class</div><div class='add'>+	  check from rb_obj_alloc().</div><div class='add'>+</div><div class='add'>+Fri Aug 16 11:47:24 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fread): renamed from io_fread and made extern.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes0): check if successfully read, use</div><div class='add'>+	  rb_io_fread() instead of fread() to be preemptive.</div><div class='add'>+	  (ruby-bugs-ja:PR#294, 295)</div><div class='add'>+</div><div class='add'>+	* rubyio.h (rb_io_fread): added.</div><div class='add'>+</div><div class='add'>+Fri Aug 16 07:57:26 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (compile_error): must not clear ruby_sourcefile here.</div><div class='add'>+	  (ruby-bugs:PR#364).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): set ruby_sourcefile before making</div><div class='add'>+	  backtrace.</div><div class='add'>+</div><div class='add'>+Thu Aug 15 20:38:58 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_current_node) : added to set sourceline on demand.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_pos, error_print, rb_longjmp, assign): set source</div><div class='add'>+	  file/line.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): store current node instead of file/line, and</div><div class='add'>+	  preserve it at return.</div><div class='add'>+</div><div class='add'>+	* eval.c (module_setup): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (struct thread): store node instead of file/line.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_raise): ditto.</div><div class='add'>+</div><div class='add'>+	* intern.h (ruby_current_node): added.</div><div class='add'>+</div><div class='add'>+	* intern.h (ruby_set_current_source): added.</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, arg): not fix position of assignment.</div><div class='add'>+</div><div class='add'>+	* parse.y (node_assign): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): clear current node.</div><div class='add'>+</div><div class='add'>+Thu Aug 15 00:48:46 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): should not modify frozen Regexp.</div><div class='add'>+</div><div class='add'>+Tue Aug 13 18:33:18 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): allocation framework.</div><div class='add'>+</div><div class='add'>+Tue Aug 13 15:32:14 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_replace): should copy ifnone.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_dup): should preserve HASH_PROC_DEFAULT and</div><div class='add'>+	  HASH_DELETED flags.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_shift): shift from empty hash should not return</div><div class='add'>+	  its default proc.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_default_proc): new method. [new]</div><div class='add'>+</div><div class='add'>+Tue Aug 13 00:37:11 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aref): no need for Bignum check.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aset): explicit Bignum check removed.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_aref): normalize bignum before bit-op.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rand): max may be Bignum zero.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): should normalize bignums, to avoid</div><div class='add'>+	  returning fixable bignum value.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_uint2big): there should be no zero sized bignum.</div><div class='add'>+</div><div class='add'>+Mon Aug 12 23:45:28 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: extmake() that works properly for both tkutil</div><div class='add'>+	  (tk/tkutil.so) and digest/sha1.</div><div class='add'>+</div><div class='add'>+Mon Aug 12 22:29:35 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): Correct the position of #endif.</div><div class='add'>+</div><div class='add'>+Mon Aug 12 17:25:06 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_equal): should check HASH_PROC_DEFAULT too.</div><div class='add'>+</div><div class='add'>+Mon Aug 12 16:15:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_cmp): raise for NaN.  (ruby-bugs-ja:PR#284).</div><div class='add'>+</div><div class='add'>+Sun Aug 11 09:34:07 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): set line number from all nodes.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_to_s): show source file/line if available.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): register TYPE_BIGNUM regardless real type.</div><div class='add'>+</div><div class='add'>+Sat Aug 10 23:47:16 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_cmp): use dbl2big() for Floats, instead of</div><div class='add'>+	  big2dbl().</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): rb_big_zero_p() removed.  There may be</div><div class='add'>+	  Bignum zero.</div><div class='add'>+</div><div class='add'>+Fri Aug  9 13:31:40 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/extconf.rb: check existence of &lt;windows.h&gt;.</div><div class='add'>+</div><div class='add'>+Thu Aug  8 09:37:02 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (NilClass): must provide conversion block.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (String): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug  8 00:45:15 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): new argument added for original method name.</div><div class='add'>+	  preserve original method name in frame-&gt;orig_func.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): use frame-&gt;orig_func, not last_func.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_call): supply data-&gt;oid also to rb_call0().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_allocate_instance): call rb_obj_alloc() when</div><div class='add'>+	  called from alias, thus invoke original "allocate".</div><div class='add'>+</div><div class='add'>+	* eval.c (remove_method): removing allocate from classes should</div><div class='add'>+	  cause NameError.</div><div class='add'>+</div><div class='add'>+Wed Aug  7 22:12:54 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion::convert): returned</div><div class='add'>+	  all values not first one.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::parse): return values as</div><div class='add'>+	  is.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::order): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/optparse/time.rb: prior time.rb.</div><div class='add'>+</div><div class='add'>+	* lib/optparse/uri.rb: require standard uri module.  thanks to</div><div class='add'>+	  Minero Aoki.</div><div class='add'>+</div><div class='add'>+Wed Aug  7 09:51:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_equal): should check default values.</div><div class='add'>+</div><div class='add'>+Wed Aug  7 08:44:32 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: reduce goto.</div><div class='add'>+</div><div class='add'>+Tue Aug  6 15:19:39 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): must return -1 if unmatched.</div><div class='add'>+</div><div class='add'>+Mon Aug  5 22:41:18 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add lib/racc/parser.rb.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: code refine.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/MANIFEST: add depend.</div><div class='add'>+</div><div class='add'>+Sun Aug  4 22:30:50 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: follow allocation framework.</div><div class='add'>+</div><div class='add'>+Sat Aug  3 21:23:56 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): set constant in cbase scope.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  2 09:12:32 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: follow allocation framework.</div><div class='add'>+</div><div class='add'>+Fri Aug  2 01:21:52 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): update RSTRING len.</div><div class='add'>+</div><div class='add'>+Thu Aug  1 17:47:15 2002  Tachino Nobuhiro &lt;tachino@jp.fujitsu.com&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_string): ignore backslashed spaces in %w.</div><div class='add'>+</div><div class='add'>+Thu Aug  1 14:14:15 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find): do not use rb_eval_cmd(); should not accept</div><div class='add'>+	  a string for if_none.</div><div class='add'>+</div><div class='add'>+Wed Jul 31 14:11:43 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undef): undef should be done for klass, not ruby_class.</div><div class='add'>+</div><div class='add'>+Tue Jul 30 19:48:51 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-accurate-end-of-block): restrict search</div><div class='add'>+	  region.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): reversed wrong patch.</div><div class='add'>+</div><div class='add'>+Tue Jul 30 17:21:13 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-accurate-end-of-block): incomplete block</div><div class='add'>+	  caused infinite loop.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): returns nil unless</div><div class='add'>+	  delimiters found.</div><div class='add'>+</div><div class='add'>+Tue Jul 30 15:24:07 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c (ruby_tcltk_stubs): win32_getenv returns</div><div class='add'>+	  the same address always, so allocate string by ruby_strdup.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: prototype; rb_w32_open_osfhandle().</div><div class='add'>+</div><div class='add'>+Tue Jul 30 09:11:07 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join_m): add parameter type declaration.</div><div class='add'>+</div><div class='add'>+Tue Jul 30 08:37:11 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_error): add parameter type declaration.</div><div class='add'>+</div><div class='add'>+Mon Jul 29 16:00:54 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: always use File.expand_path for $top_srcdir.</div><div class='add'>+</div><div class='add'>+Sat Jul 27 23:07:52 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_to_int): default to_int implementation for every</div><div class='add'>+	  numeric class.</div><div class='add'>+</div><div class='add'>+Sat Jul 27 08:09:03 2002  Booker C. Bense  &lt;bbense@slac.stanford.edu&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): initial part of the string was never copied</div><div class='add'>+	  to the quoted string.</div><div class='add'>+</div><div class='add'>+Fri Jul 26 23:03:53 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): no need to convert to string twice.</div><div class='add'>+</div><div class='add'>+Fri Jul 26 18:32:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): wrong indent at modifiers</div><div class='add'>+	  after ?.</div><div class='add'>+</div><div class='add'>+Fri Jul 26 16:01:16 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): use Regexp in gsub.</div><div class='add'>+</div><div class='add'>+	* sample/mkproto.rb: ditto and fix bug.</div><div class='add'>+</div><div class='add'>+Fri Jul 26 14:31:06 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c: replace with Mersenne Twister RNG.</div><div class='add'>+</div><div class='add'>+Fri Jul 26 12:14:48 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): modify to accept a code like "m (a){...}".</div><div class='add'>+</div><div class='add'>+Thu Jul 25 09:05:02 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-delimiter): include here document.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-deep-arglist): skips spaces after</div><div class='add'>+	  parenthesis when 'space.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-imenu-create-index): fix for nested</div><div class='add'>+	  classes.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-accurate-end-of-block): added.  scan a</div><div class='add'>+	  block in the order.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): support for here document.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): splitted from</div><div class='add'>+	  ruby-parse-region.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-move-to-block): skips RD style comments.</div><div class='add'>+</div><div class='add'>+Wed Jul 24 09:47:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (jump_tag_but_local_jump): preserve retval in</div><div class='add'>+	  LocalJumpError exceptions.</div><div class='add'>+</div><div class='add'>+	* parse.y (command): no more check for "super outside of method".</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): should set last_class and</div><div class='add'>+	  last_func in the block-&gt;frame.</div><div class='add'>+</div><div class='add'>+Mon Jul 22 17:23:00 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_handle): should handle TAG_THROW as well.</div><div class='add'>+</div><div class='add'>+Fri Jul 19 10:52:32 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): new decimal notation '0d4567'.</div><div class='add'>+</div><div class='add'>+Thu Jul 18 11:52:02 2002  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (set_socket): new method.</div><div class='add'>+</div><div class='add'>+Thu Jul 18 06:51:24 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): fix typo.</div><div class='add'>+</div><div class='add'>+Wed Jul 17 18:41:28 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): new octal notation '0o777'.</div><div class='add'>+</div><div class='add'>+Mon Jul 15 18:36:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): every string_content node should</div><div class='add'>+	  return string only.  use NODE_EVSTR to coercing.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_EVSTR support.</div><div class='add'>+</div><div class='add'>+Mon Jul 15 10:35:35 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (heredoc_identifier): fix typo.</div><div class='add'>+</div><div class='add'>+Sat Jul 13 09:30:04 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat_string): wrong optimization.</div><div class='add'>+</div><div class='add'>+Sat Jul 13 01:25:38 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::open, close): new.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb, lib/optparse: import.</div><div class='add'>+</div><div class='add'>+Fri Jul 12 06:34:05 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: rename HTTP.get_uri get_response.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.get_print accepts URI objects.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.get had not work with URI objects.</div><div class='add'>+</div><div class='add'>+Fri Jul 12 02:15:58 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match): fix for string match.</div><div class='add'>+</div><div class='add'>+Fri Jul 12 00:02:50 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_gets_internal): fixed for record</div><div class='add'>+	  separator longer than 1.</div><div class='add'>+</div><div class='add'>+Thu Jul 11 17:59:20 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): avoid unnecessary string allocation.</div><div class='add'>+</div><div class='add'>+	* string.c (get_pat): quote metacharacters before compiling a</div><div class='add'>+	  string into a regex.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): special treatment of strings of size</div><div class='add'>+	  1, but AWK emulation.  now uses get_pat().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match_m): quote metacharacters.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match2): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 11 12:59:23 2002  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: untaint strings read from /etc/hosts and</div><div class='add'>+	  /etc/resolv.conf to prevent SecurityError when $SAFE==1.</div><div class='add'>+</div><div class='add'>+Thu Jul 11 09:00:43 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang): if there's no corresponding</div><div class='add'>+	  substring, slice! should return nil without exception.</div><div class='add'>+</div><div class='add'>+Tue Jul  9 20:03:55 2002 Keiju Ishitsuka &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* irb 0.9</div><div class='add'>+</div><div class='add'>+Sat Jul  6 07:35:02 2002  Jamie Herre  &lt;jfh@gettysgroup.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_insert): type fixed.</div><div class='add'>+</div><div class='add'>+Fri Jul  5 09:17:00 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): accept separator value nil as well.</div><div class='add'>+</div><div class='add'>+Fri Jul  5 08:59:15 2002  Michal Rokos &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c: Fix bug in enum_sort_by and some code indents</div><div class='add'>+</div><div class='add'>+Fri Jul  5 05:00:40 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#initialize): improvement for mod_ruby.</div><div class='add'>+	  thanks to Sean Chittenden &lt;sean@ruby-lang.org&gt;, Shugo Maeda</div><div class='add'>+	  &lt;shugo@modruby.net&gt;</div><div class='add'>+</div><div class='add'>+Fri Jul  5 00:10:09 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_become): was leaking memory.</div><div class='add'>+</div><div class='add'>+Thu Jul  4 23:43:26 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove useless function str_extend_p().</div><div class='add'>+</div><div class='add'>+Wed Jul  3 14:26:40 2002  Sean Chittenden  &lt;sean@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (get): new method.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (putt): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (binary): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (binary=): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  3 13:57:53 2002  Sean Chittenden  &lt;sean@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (getbinaryfile): the second argument (localfile)</div><div class='add'>+	  is now optional.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (gettextfile): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  3 13:45:42 2002  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: use &amp;block and yield for speed.</div><div class='add'>+</div><div class='add'>+Wed Jul  3 02:32:31 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#initialize): improvement for mod_ruby.</div><div class='add'>+</div><div class='add'>+Tue Jul  2 14:53:10 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): should not alter other</div><div class='add'>+	  classes/modules by inclusion.  by this fix, local order may not</div><div class='add'>+	  be preserved for some cases.</div><div class='add'>+</div><div class='add'>+	* class.c (include_class_new): module may be T_ICLASS; retrieve</div><div class='add'>+	  original module information.</div><div class='add'>+</div><div class='add'>+Tue Jul  2 14:13:11 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#header): accept any type as value.</div><div class='add'>+</div><div class='add'>+Sun Jun 30 17:05:29 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (seekdir, telldir): add ac_cv_func_telldir=yes,</div><div class='add'>+	  ac_cv_func_seekdir=yes for MinGW.</div><div class='add'>+</div><div class='add'>+Sat Jun 29 01:43:32 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_finalize, pipe_popen): two-way pipe support for win32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (ChildRecord, FindFreeChildSlot): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (pipe_exec): new function for two-way</div><div class='add'>+	  pipe support for win32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (FindPipedChildSlot, rb_w32_popen,</div><div class='add'>+	  rb_w32_pclose): removed functions for two-way pipe support for win32.</div><div class='add'>+</div><div class='add'>+Fri Jun 28 23:49:34 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): change names of local variables because their</div><div class='add'>+	  names are overlapped.</div><div class='add'>+</div><div class='add'>+Fri Jun 28 17:54:07 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: fix object address.</div><div class='add'>+</div><div class='add'>+Thu Jun 27 23:55:50 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_stat): fix buffer overflow. (ruby-bugs:PR#329)</div><div class='add'>+</div><div class='add'>+Thu Jun 27 20:57:45 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb, lib/pp.rb: convenience methods added.</div><div class='add'>+</div><div class='add'>+Thu Jun 27 15:22:18 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb: re-implemented for incremental output to handle</div><div class='add'>+	  huge data.  API is changed a bit.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: adapt new pretty printing API.</div><div class='add'>+</div><div class='add'>+Thu Jun 27 08:28:18 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat_string): non-string last expression in</div><div class='add'>+	  #{} was ignored when followed by literal.</div><div class='add'>+</div><div class='add'>+Thu Jun 27 03:42:04 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): need to process backslashes properly.</div><div class='add'>+</div><div class='add'>+Wed Jun 26 17:33:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_any_to_a): declare Object#to_a to be obsolete.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Array): do not convert nil into [] automagically.</div><div class='add'>+</div><div class='add'>+Wed Jun 26 15:40:00 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (words, qwords): word list literal rules.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): %W: word list literal with interpolation. [new]</div><div class='add'>+</div><div class='add'>+Tue Jun 25 18:53:34 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string1, xstring, regexp): moved lex_strnest</div><div class='add'>+	  initialization to string_contents/xstring_contents.</div><div class='add'>+</div><div class='add'>+Tue Jun 25 19:24:38 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: remove definition rb_loaderror().</div><div class='add'>+</div><div class='add'>+Tue Jun 25 00:34:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): use "to_int" instead of</div><div class='add'>+	  "to_i". [experimental]</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_f): new method.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): Symbols and nil should cause error.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Float): nil should cause error.</div><div class='add'>+</div><div class='add'>+Tue Jun 25 00:21:00 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: remark definition rb_loaderror().</div><div class='add'>+</div><div class='add'>+Tue Jun 25 00:14:07 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_dvar): allow back references in interpolation.</div><div class='add'>+</div><div class='add'>+Mon Jun 24 16:32:31 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_EVSTR is no longer used.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): not enforce to make assigned variables dynamic.</div><div class='add'>+</div><div class='add'>+	* parse.y (string): split rules to strings/xstring/regexp to allow</div><div class='add'>+	  arbitrary statements inside string interpolation.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): splitted into three phases.</div><div class='add'>+</div><div class='add'>+	* parse.y (literall_append, literal_concat): added.</div><div class='add'>+	  append/concatenate string literals.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (valid_syntax): adjust line number for BEGIN.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): get rid of nested string.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_rb): site-install didn't work properly.</div><div class='add'>+</div><div class='add'>+Sun Jun 23 00:19:10 2002  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb, sample/cal.rb, sample/goodfriday.rb:</div><div class='add'>+	  updated to the new version (based on date2 3.3).</div><div class='add'>+</div><div class='add'>+Sat Jun 22 14:41:33 2002  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_addrinfo): make all 3 versions of</div><div class='add'>+	  getaddrinfo happy.  [ruby-core:00184]</div><div class='add'>+</div><div class='add'>+Fri Jun 21 18:49:58 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): __END__ should not be effective within</div><div class='add'>+	  string literals.</div><div class='add'>+</div><div class='add'>+Thu Jun 20 21:09:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): get rid of</div><div class='add'>+	  libreadline's bug. (ruby-bugs-ja:PR#268)</div><div class='add'>+</div><div class='add'>+Thu Jun 20 17:10:27 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftool.rb (BUFSIZE): tuning, set buffer length to 8192.</div><div class='add'>+</div><div class='add'>+	* configure.in (__NO_ISOCEXT): add for mingw-runtime 2.0-2.</div><div class='add'>+</div><div class='add'>+	* configure.in (__MSVCRT__): removed because it is defined</div><div class='add'>+	  in the GCC specs.</div><div class='add'>+</div><div class='add'>+Wed Jun 19 14:46:18 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb (xsystem): open the log file if xsystem</div><div class='add'>+	  is called.</div><div class='add'>+</div><div class='add'>+Wed Jun 19 01:01:13 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): should be aware of __END__ within here</div><div class='add'>+	  documents.</div><div class='add'>+</div><div class='add'>+Wed Jun 19 00:50:50 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ? followed by successive word characters is</div><div class='add'>+	  ternary operator not numeric literal.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): commands after break/next/rescue can take</div><div class='add'>+	  arguments.  (ruby-bugs-ja:PR#265)</div><div class='add'>+</div><div class='add'>+Tue Jun 18 19:20:16 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: remove unnecessary exports. (ruby-dev:17418)</div><div class='add'>+</div><div class='add'>+Tue Jun 18 12:50:17 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should pushback proper char after '&lt;&lt;'.</div><div class='add'>+</div><div class='add'>+	* parse.y (range_op, cond0, cond): get rid of doubled warnings.</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr): reduce recursion level.</div><div class='add'>+</div><div class='add'>+	* parse.y (logop): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 17 11:11:34 2002  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_crypt): result need not be tainted always.</div><div class='add'>+</div><div class='add'>+Mon Jun 17 10:51:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): need to preserve dln_strerror() result,</div><div class='add'>+	  calling other dl family can clear it.</div><div class='add'>+</div><div class='add'>+Sat Jun 15 22:56:37 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): obsolete '?&lt;whitespace&gt;'; use '?\s', '?\n',</div><div class='add'>+	  etc, instead.</div><div class='add'>+</div><div class='add'>+Sat Jun 15 18:51:13 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): Use lstat() instead of stat() so it catches</div><div class='add'>+	  a dead symlink.  Given a dead symlink named "a", Dir.glob("?")</div><div class='add'>+	  did catch it but Dir.glob("a") somehow didn't.</div><div class='add'>+</div><div class='add'>+Sat Jun 15 01:59:05 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): no here document after a dot.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should have set lex_state after '`'.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should have set lex_state properly after</div><div class='add'>+	  tOP_ASGN.</div><div class='add'>+</div><div class='add'>+Fri Jun 14 21:01:48 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/mkexports.rb: insert sleep(1) for win9x.</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat: change return code LF -&gt; CRLF for win9x.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: fix rb_w32_open_osfhandle()</div><div class='add'>+</div><div class='add'>+Fri Jun 14 15:22:19 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (read_escape): deny zero-width hexadecimal character.</div><div class='add'>+	  (ruby-bugs-ja:PR#260)</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_escape): ditto.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 14 00:49:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2dbl): return canonical HUGE_VAL for infinity.</div><div class='add'>+</div><div class='add'>+Thu Jun 13 09:43:37 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_avalue): v may be Qundef.  This fix was</div><div class='add'>+	  suggested by Guy Decoux.</div><div class='add'>+</div><div class='add'>+Thu Jun 13 00:33:49 2002  takuma ozawa  &lt;metal@mine.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): use rb_hash_aset() instead of calling</div><div class='add'>+	  st_insert() directly, to dup&amp;freeze string keys.</div><div class='add'>+</div><div class='add'>+Thu Jun 13 00:12:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): proper error message for "@@0".</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): paren to parse_string() must be zero for</div><div class='add'>+	  unparenthesized strings.</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): broken string when unterminated "#{".</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): had a bug in 1 element enumeration.</div><div class='add'>+</div><div class='add'>+Wed Jun 12 18:04:44 2002  akira yamada  &lt;akira@arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* uri/common.rb (REGEXP::PATTERN::X_ABS_URI): 'file:/foo' is valid.</div><div class='add'>+</div><div class='add'>+	* uri/generic.rb (Generic#xxx=): should return substituted value.</div><div class='add'>+	  (ruby-dev:16728.)</div><div class='add'>+</div><div class='add'>+	* test/generic.rb (test_set_component): added tests for the above</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+Wed Jun 12 02:38:00 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): fix typo.</div><div class='add'>+</div><div class='add'>+Wed Jun 12 01:10:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): 'do' should return kDO_BLOCK on EXPR_ENDARG.</div><div class='add'>+</div><div class='add'>+	* parse.y (singleton): "def (()).a end" dumped core.</div><div class='add'>+</div><div class='add'>+	* parse.y (range_op): node may be null.</div><div class='add'>+</div><div class='add'>+	* parse.y (match_gen): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 11 19:20:34 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBY): rename to lib$(LIBRUBY_SO).a on Cygwin/MinGW.</div><div class='add'>+</div><div class='add'>+	* configure.in, cygwin/GNUmakefile: use dllwrap when --disable-shared</div><div class='add'>+	  is specified.</div><div class='add'>+</div><div class='add'>+Tue Jun 11 17:12:04 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): void value check for "..", "...", "!", and "not".</div><div class='add'>+</div><div class='add'>+	* parse.y (match_gen): void value check for "=~".</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr): check NODE_AND and NODE_OR recursively.</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): void value check added for conditionals.</div><div class='add'>+</div><div class='add'>+Tue Jun 11 13:18:47 2002  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (noop): new method.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (site): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 11 13:15:41 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: set PROCESSOR_LEVEL to 6 if it's too big value.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 11 12:37:46 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat fix.</div><div class='add'>+</div><div class='add'>+Tue Jun 11 10:18:23 2002  KONISHI Hiromasa &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* new platform [bccwin32] merged.</div><div class='add'>+	  - create new folder bcc32</div><div class='add'>+	  - modify any files for bccwin32</div><div class='add'>+	      error.c, file.c, hash.c, io.c, instruby.rb,</div><div class='add'>+	      ext/extmk.rb.in,</div><div class='add'>+	      lib/mkmf.rb, lib/ftools.rb,</div><div class='add'>+	      ext/digest/defs.h,</div><div class='add'>+	      ext/dl/depend, ext/dl/dl.c, ext/dl/sym.c, ext/dl/extconf.rb,</div><div class='add'>+	      ext/socket/extconf.rb,</div><div class='add'>+	      ext/pty/extconf.rb,</div><div class='add'>+	      ext/tcltklib/extconf.rb</div><div class='add'>+	      ext/Win32API/Win32API.c,</div><div class='add'>+	      win32/dir.h, win32/win32.c, win32/win32.h, win32/resource.rb</div><div class='add'>+</div><div class='add'>+Mon Jun 10 19:02:19 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_lshift): negative shift count means right shift.</div><div class='add'>+	  (ruby-bugs-ja:PR#248)</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): return -1 when left side operand is</div><div class='add'>+	  negative. (ruby-bugs-ja:PR#247)</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `0_' should be an error. (ruby-bugs-ja:PR#249)</div><div class='add'>+</div><div class='add'>+Mon Jun 10 01:53:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ruby_frame-&gt;last_func may be null, if it's</div><div class='add'>+	  called outside of a method.</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): use INT2NUM, not INT2FIX for tUMINUS.</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): unnecessary negative tPOW treatment.</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_escape): wrong backslash escapement.</div><div class='add'>+</div><div class='add'>+Sun Jun  9 17:40:41 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: change the callback mechanism.</div><div class='add'>+</div><div class='add'>+Sat Jun  8 00:48:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt,arg): too much void value check.</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt,arg): need to check void value on rules which does</div><div class='add'>+	  not use node_assign().</div><div class='add'>+</div><div class='add'>+Thu Jun  6 19:50:39 2002  KONISHI Hiromasa &lt;H_Konishi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/biorhythm.rb (getPosiiton,etc)</div><div class='add'>+	  fix at changing Date module ( Date is changed Fixnum to Rational )</div><div class='add'>+</div><div class='add'>+Thu Jun  6 17:42:39 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): need not to taint hostnames.</div><div class='add'>+</div><div class='add'>+Thu Jun  6 12:04:30 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): use sub! instead of []= because</div><div class='add'>+	  []= causes exception.</div><div class='add'>+</div><div class='add'>+Thu Jun  6 11:42:15 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (Queue::pop): get rid of race condition.</div><div class='add'>+</div><div class='add'>+Wed Jun  5 01:56:47 2002  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: Stop the running zombi-eventloop when</div><div class='add'>+	  mainloop_watchdog is killed.</div><div class='add'>+</div><div class='add'>+Tue Jun  4 23:09:24 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_include): should be based on "&lt;=&gt;", whereas</div><div class='add'>+	  member? still is based on "each".</div><div class='add'>+</div><div class='add'>+	* range.c (range_min,range_max): redefine methods based on "&lt;=&gt;".</div><div class='add'>+</div><div class='add'>+Tue Jun  4 18:28:37 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: The IPv6 stack of Cygwin is still incomplete.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/extconf.rb: refactoring.</div><div class='add'>+</div><div class='add'>+Tue Jun  4 07:03:33 2002  Hidetoshi NAGAI &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkfont.rb:  Fix bugs on TkFont.init_widget_font for Tk8.x.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: Add self to 1st argument of interval- </div><div class='add'>+	  and loop-proc</div><div class='add'>+	  TkAfter#current_interval returns an interval (sleep) time value</div><div class='add'>+	  TkAfter#current_args returns an array of arguments</div><div class='add'>+	  TkAfter#return_value returns a return value of last loop-proc</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk*.rb: Allow to use Symbols for parameters.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: (TkcItem) Add 'coords' parameter to the </div><div class='add'>+	  canvas item constructor (for new notation of constructor).</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: New 'mainloop' and 'mainloop_watchdog'.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: (Tk.restart) Add 'app-name' paramater and</div><div class='add'>+	  'use' parameter.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Add new parameter 'widgetname' to the widget</div><div class='add'>+	  constructor to support effective use of Resource Database. </div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkOption::get always returns a tainted string.</div><div class='add'>+</div><div class='add'>+Tue Jun  4 00:45:50 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h: typo.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (gai_strerror): make literals const.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_inetsock): ensures resources are</div><div class='add'>+	  freed at exceptions.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_unixsock): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_connect): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun  3 20:39:51 2002  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb : change PLATFORM with RUBY_PLATFORM.</div><div class='add'>+</div><div class='add'>+Mon Jun  3 07:07:07 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): check if identifier is terminated.</div><div class='add'>+	  (ruby-bugs-ja:PR#239)</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should pushback proper char after '**'.</div><div class='add'>+	  (ruby-bugs-ja:PR#240)</div><div class='add'>+</div><div class='add'>+Mon Jun  3 05:56:17 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): should raise error if an indexing string</div><div class='add'>+	  is not found in the receiver.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): "%d" should convert objects into</div><div class='add'>+	  integers using Integer().</div><div class='add'>+</div><div class='add'>+Sat Jun  1 19:20:07 2002  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole: merge from rough.</div><div class='add'>+</div><div class='add'>+Fri May 31 17:11:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::size): added.</div><div class='add'>+</div><div class='add'>+Thu May 30 12:52:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): iteration done using "+" if elements are</div><div class='add'>+	  Numeric.  Otherwise using "succ".</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): iteration done using "succ".  If the</div><div class='add'>+	  elements does not respond to "succ", raise TypeError.  As a</div><div class='add'>+	  result, all Enumerable methods, e.g. collect, require elements</div><div class='add'>+	  to respond to "succ".</div><div class='add'>+</div><div class='add'>+	* range.c (range_member): comparison done using "each", if</div><div class='add'>+	  elements are non-Numeric or no-"succ" objects.  Otherwise</div><div class='add'>+	  compare using "&lt;=&gt;".</div><div class='add'>+</div><div class='add'>+	* range.c (Init_Range): remove "size" and "length".</div><div class='add'>+</div><div class='add'>+Thu May 30 09:16:36 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: if StringIO is usable then use it.</div><div class='add'>+</div><div class='add'>+Wed May 29 18:55:47 2002  KONISHI Hiromasa &lt;H_Konishi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* function renames my* and win32_* to rb_w32_* in win32/win32.c</div><div class='add'>+	  fixed files win32/win32.c, win32/win32.h, win32/dir.h,</div><div class='add'>+	              hash.c, rubysig.h, signal.c, ext/socket/socket.c</div><div class='add'>+</div><div class='add'>+Wed May 29 17:32:55 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (tmcmp, search_time_t): activate unless HAVE_TIMEGM.</div><div class='add'>+</div><div class='add'>+Wed May 29 13:45:15 2002  Wakou Aoyama  &lt;wakou@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: not use const if GET, HEAD. check multipart form head.</div><div class='add'>+</div><div class='add'>+Tue May 28 17:56:02 2002  Sean Chittenden  &lt;sean@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: yyparse #defines moved from intern.h</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): access prefixed "ruby_yydebug".</div><div class='add'>+</div><div class='add'>+	* applied modifies to pacify some of gcc -Wall warnings.</div><div class='add'>+</div><div class='add'>+Tue May 28 14:07:00 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): no more ugly hack for "**", so that "-2**2" to be</div><div class='add'>+	  parsed as "(-2)**2", whereas "- 2**2" or "-(2)**2" to be parsed</div><div class='add'>+	  as "-(2**2)".</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): '-2' to be literal fixnum. [new]</div><div class='add'>+</div><div class='add'>+Tue May 28 12:13:37 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (scope_node): trick to keep the node has a scope.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_EVSTR: write back local_tbl to the node.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_SCOPE: hold the scope node in ruby_scope.</div><div class='add'>+</div><div class='add'>+	* eval.c (module_setup): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): ditto.</div><div class='add'>+</div><div class='add'>+	* node.h (NEW_DASGN, NEW_DASGN_CURR): remove surplus semicolons.</div><div class='add'>+</div><div class='add'>+Fri May 24 09:06:29 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): nil test against v[6] (usec).</div><div class='add'>+</div><div class='add'>+Thu May 23 16:39:21 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): option parsing problem.</div><div class='add'>+	  (ruby-bugs-ja:PR#233)</div><div class='add'>+</div><div class='add'>+Thu May 23 09:13:56 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): removed "-*-" support for #! line.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_sysopen): new method to get a raw file</div><div class='add'>+	  descriptor. [new]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_sysaccept): new method to return an</div><div class='add'>+	  accepted socket fd (integer). [new]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_sysaccept,sock_sysaccept): ditto.</div><div class='add'>+</div><div class='add'>+Wed May 22 21:26:47 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -T consumes digits only.</div><div class='add'>+</div><div class='add'>+Wed May 22 20:18:31 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: need not link vsnprintf.o on MinGW.</div><div class='add'>+</div><div class='add'>+Wed May 22 18:34:23 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): Here-document label ate '-'.</div><div class='add'>+</div><div class='add'>+Tue May 21 13:25:18 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords): symbols end with</div><div class='add'>+	  '_'.</div><div class='add'>+</div><div class='add'>+Tue May 21 04:48:37 2002  Sean Chittenden &lt;sean@chittenden.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi-lib.rb: Checking for constant MOD_RUBY instead of</div><div class='add'>+	  environment variable. Remove a mod_ruby warning and use</div><div class='add'>+	  Apache::request.headers_out[] instead.</div><div class='add'>+</div><div class='add'>+Tue May 21 01:16:46 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (bodystmt): ensure clause was executed on else clause</div><div class='add'>+	  without rescue clause.</div><div class='add'>+</div><div class='add'>+Tue May 21 00:20:25 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/ptr.c: rename PtrData::alloc to PtrData::malloc.</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/struct.c: rename Struct#alloc to Struct#malloc.</div><div class='add'>+</div><div class='add'>+Mon May 20 14:29:14 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): should do exact match for Module#==.</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_eq): returns 'false' if &lt;=&gt; returns 'nil'.</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_gt,cmp_ge,cmp_lt,cmp_le,cmp_between): ditto.</div><div class='add'>+</div><div class='add'>+Mon May 20 13:28:52 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_clone): writing stream was not copied properly.</div><div class='add'>+</div><div class='add'>+Sat May 18 21:38:11 2002  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb, lib/parsedate.rb:</div><div class='add'>+	  updated to the new version (based on date2 3.2.1).</div><div class='add'>+</div><div class='add'>+Sat May 18 21:18:00 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): add VC++4/5 support about noreturn</div><div class='add'>+	  directive.</div><div class='add'>+</div><div class='add'>+Sat May 18 02:16:41 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): should propagate taintedness.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 17 16:16:19 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: use eval instead of './miniruby -c',</div><div class='add'>+	  in order to check a syntax error.</div><div class='add'>+</div><div class='add'>+Thu May 16 14:46:34 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): cleanup conditional compilation.</div><div class='add'>+</div><div class='add'>+Wed May 15 06:13:35 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): need to preserve errno before</div><div class='add'>+	  calling rb_trap_exec().</div><div class='add'>+</div><div class='add'>+	* regex.c (calculate_must_string): a bug in charset/charset_not</div><div class='add'>+	  parsing.</div><div class='add'>+</div><div class='add'>+Tue May 14 18:17:44 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: config.h inlined.  and catch up with the</div><div class='add'>+	  latest change.</div><div class='add'>+</div><div class='add'>+	* win32/config.h.in: no longer used.</div><div class='add'>+</div><div class='add'>+Tue May 14 14:49:05 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (is_pointer_to_heap): avoid GCC 3.1 warnings.</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c (timezone): it should take no argument on Cygwin.</div><div class='add'>+</div><div class='add'>+Tue May 14 03:07:35 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_clear_cache_by_class): new function.</div><div class='add'>+</div><div class='add'>+	* eval.c (set_method_visibility): should have clear cache for</div><div class='add'>+	  updated visibility.</div><div class='add'>+</div><div class='add'>+Mon May 13 14:38:33 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* djgpp/config.hin, djgpp/config.sed: catch up with the latest change.</div><div class='add'>+</div><div class='add'>+Mon May 13 01:59:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): default format precision to be "%.16g".</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): use own strtod(3) implementation to avoid</div><div class='add'>+	  locale hell.  Due to this change "0xff".to_f no longer returns 255.0</div><div class='add'>+</div><div class='add'>+Sun May 12 03:01:08 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h: add for missing/*.c.</div><div class='add'>+</div><div class='add'>+	* ruby.h: add `#include "missing.h"'.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add the dependency of missing.h by gcc -MM.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add missing.h</div><div class='add'>+</div><div class='add'>+Sat May 11 23:24:52 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: enable dl's stack emulation for constructing function call.</div><div class='add'>+</div><div class='add'>+Sat May 11 10:52:09 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): remove escaping backslashes.</div><div class='add'>+</div><div class='add'>+Sat May 11 02:46:43 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_yvalue): new function to distinguish yvalue</div><div class='add'>+	  (no-arg == Qundef) from svalue (no-arg == Qnil).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): use avalue_to_yvalue().</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): warn if val == Qundef where it means rhs is</div><div class='add'>+	  void (e.g. yield without value or call without argument).</div><div class='add'>+</div><div class='add'>+Fri May 10 19:00:47 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): preserve line number begins here</div><div class='add'>+	  document.</div><div class='add'>+</div><div class='add'>+Fri May 10 01:55:44 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): added an argument to limit time to wait</div><div class='add'>+	  the thread.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join_m): new. and added optional argument.</div><div class='add'>+</div><div class='add'>+Wed May  8 23:48:40 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr): need not to warn for WHILE and UNTIL,</div><div class='add'>+	  since they can have return value (via valued break).</div><div class='add'>+</div><div class='add'>+Tue May  7 17:13:40 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: forgot to add '-Wl,' to the gcc option on Cygwin/MinGW.</div><div class='add'>+</div><div class='add'>+Tue May  7 15:41:33 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_try): should initialize exceptions</div><div class='add'>+	  properly. (ruby-bugs-ja:PR#232)</div><div class='add'>+</div><div class='add'>+Tue May  7 15:28:03 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): The destination of the goto jump was wrong.</div><div class='add'>+</div><div class='add'>+Tue May  7 09:17:51 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (superclass): undesirable "unexpected return" when the</div><div class='add'>+	  superclass is not a Class.</div><div class='add'>+</div><div class='add'>+Sun May  5 06:53:45 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: exclude topdir from the system configuration</div><div class='add'>+	  section and prevent it from being overridden.</div><div class='add'>+</div><div class='add'>+Fri May  3 20:19:00 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add #include &lt;errno.h&gt; in AC_CHECK_DECLS().</div><div class='add'>+</div><div class='add'>+	* win32/config.h.in: define HAVE_DECL_SYS_NERR.</div><div class='add'>+</div><div class='add'>+Thu May  2 23:42:40 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): # also should be quoted.</div><div class='add'>+</div><div class='add'>+Thu May  2 18:27:13 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: use 'do...end' instead of '{}' for</div><div class='add'>+	  Borland make.</div><div class='add'>+</div><div class='add'>+Thu May  2 08:01:56 2002  Chris Thomas  &lt;kenshin@apple.com&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: use HAVE_DECL_SYS_NERR instead of platform names.</div><div class='add'>+</div><div class='add'>+Tue Apr 30 09:23:05 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): better iteration condition for float</div><div class='add'>+	  values;  suggested by Masahiro TANAKA &lt;masa@ir.isas.ac.jp&gt;.</div><div class='add'>+</div><div class='add'>+Tue Apr 30 05:59:42 2002  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): step (for Range#step method) &lt;= 0 makes no</div><div class='add'>+	  sense, thus ArgError will be raised.</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): Range#each method is special case for</div><div class='add'>+	  Range#step(1)</div><div class='add'>+</div><div class='add'>+Mon Apr 29 18:46:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): load must be done from an absolute path if</div><div class='add'>+	  $SAFE &gt;= 4.</div><div class='add'>+</div><div class='add'>+Sun Apr 28 17:01:56 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (insert): fix prototype for ANSI C.</div><div class='add'>+</div><div class='add'>+Fri Apr 26 13:47:15 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_partition): new method. [new]</div><div class='add'>+</div><div class='add'>+Fri Apr 26 13:41:00 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): quote whitespaces for /x cases.</div><div class='add'>+</div><div class='add'>+Fri Apr 26 06:48:23 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/ptr.c (cary2ary): missing break in switch statements.</div><div class='add'>+</div><div class='add'>+Fri Apr 26 09:35:47 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_new): make Proc from C function. [new]</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_proc_new): prototype.</div><div class='add'>+</div><div class='add'>+Wed Apr 24 14:56:46 2002  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_to_proc): return self. [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): no need to convert if block is Proc.</div><div class='add'>+</div><div class='add'>+Wed Apr 24 14:21:41 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set size of the initial stack from</div><div class='add'>+	  2MB to 32MB on MinGW/Cygwin.</div><div class='add'>+</div><div class='add'>+Wed Apr 24 14:06:35 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): try to reduce residual on Float operations.</div><div class='add'>+</div><div class='add'>+Wed Apr 24 06:48:31 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_flags): both 'r+b' and 'rb+' should be allowed.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_modenum): ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr 24 01:16:14 2002  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_mark): must check if ptr is NULL</div><div class='add'>+	  first.  [ruby-talk:38873]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): should print depend file when</div><div class='add'>+	  make is other than nmake.</div><div class='add'>+</div><div class='add'>+Wed Apr 24 00:37:12 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): use `{$(srcdir)}' directive instead</div><div class='add'>+	  of `$(srcdir)/' when including depend file.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): add `{$(srcdir)}' when including depend</div><div class='add'>+	  file.</div><div class='add'>+</div><div class='add'>+Tue Apr 23 12:58:18 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_memerror): rename from mem_error, and exported.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_GC): pre-allocate NoMemoryError instance.</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): error message changed from "failed to</div><div class='add'>+	  convert" to "cannot convert", since it does not try to convert</div><div class='add'>+	  if an object does not respond to the converting method.</div><div class='add'>+</div><div class='add'>+Mon Apr 22 09:31:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): convert Method to Proc using</div><div class='add'>+	  rb_check_convert_type().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_check_convert_type): always convert T_DATA</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): should not terminate main_thread by</div><div class='add'>+	  Fatal error.</div><div class='add'>+</div><div class='add'>+	* regex.c (is_in_list): need to not exclude NUL and NEWLINE.</div><div class='add'>+</div><div class='add'>+Sat Apr 20 00:19:13 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): wrong backslash escapement.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): do not escape embedded space</div><div class='add'>+	  characters.</div><div class='add'>+</div><div class='add'>+Fri Apr 19 22:03:40 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: add -DNT to $CFLAGS instead of $CPPFLAGS.</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 19 17:24:22 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): T_DATA process patch from Joel VanderWerf</div><div class='add'>+	  &lt;vjoel@PATH.Berkeley.EDU&gt;.  This is temporary hack; it remains</div><div class='add'>+	  undocumented, and it will be removed when marshaling is</div><div class='add'>+	  re-designed.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 19 17:10:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): Integer#step is moved to Numeric#step;</div><div class='add'>+	  Fixnum#step is merged into this method.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_dotimes): Fixnum#times is merged.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_upto): Fixnum#upto is merged.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_downto): Fixnum#downto is merged.</div><div class='add'>+</div><div class='add'>+Fri Apr 19 16:22:55 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: include &lt;windows.h&gt;, &lt;winsock.h&gt; on _WIN32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: include &lt;mswsock.h&gt; on __MINGW32__.</div><div class='add'>+</div><div class='add'>+	* configure.in: cleanup for autoconf 2.5x.</div><div class='add'>+</div><div class='add'>+	* configure.in: use gcc -shared instead of dllwrap on Cygwin/MinGW.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb: get rid of "--def=".</div><div class='add'>+</div><div class='add'>+Fri Apr 19 14:57:44 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_to_s): remove redundant shy group.</div><div class='add'>+</div><div class='add'>+Fri Apr 19 01:08:20 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): current thread may be THREAD_STOPPED,</div><div class='add'>+	  for example when terminated from signal handler.</div><div class='add'>+</div><div class='add'>+Thu Apr 18 19:03:15 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): remove /p support.</div><div class='add'>+</div><div class='add'>+	* regex.h: ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 18 17:01:43 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/ptr.c (rb_dlptr_cast): removed.</div><div class='add'>+</div><div class='add'>+Thu Apr 18 17:01:43 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_to_s): new function for Regexp#to_s.</div><div class='add'>+</div><div class='add'>+Wed Apr 17 23:55:34 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup*, ext/bigfloat/*: Back out the import of BigFloat in</div><div class='add'>+	  favor of its forthcoming successor, BigDecimal.</div><div class='add'>+</div><div class='add'>+Wed Apr 17 16:53:33 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): should treat backslash specially in</div><div class='add'>+	  escaping.</div><div class='add'>+</div><div class='add'>+Wed Apr 17 08:16:41 2002  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: complete off_t handling; missing argument for</div><div class='add'>+	  fptr_finalize(); polished rb_scan_args call.</div><div class='add'>+</div><div class='add'>+Wed Apr 17 00:01:59 2002  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: wrap multi-statement macro by do { } while (0)</div><div class='add'>+</div><div class='add'>+	* eval.c, numeric,c, sprintf.c, util.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr 16 08:59:50 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): convert mrhs to mvalue.</div><div class='add'>+</div><div class='add'>+Mon Apr 15 18:12:57 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): check `y == x' if y is neither Fixnum,</div><div class='add'>+	  Bignum, nor Float.</div><div class='add'>+</div><div class='add'>+Mon Apr 15 09:27:31 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): should treat 'U' in character unit, not in</div><div class='add'>+	  byte unit.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_initialize): should clear backtrace information.</div><div class='add'>+</div><div class='add'>+Sat Apr 13 23:42:43 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_cleanup): should close IO created by IO.new(fd).</div><div class='add'>+</div><div class='add'>+	* rubyio.h: remove FMODE_FDOPEN</div><div class='add'>+</div><div class='add'>+Fri Apr 12 12:54:04 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: use missing/acosh.c.</div><div class='add'>+</div><div class='add'>+	* win32/config.h.in: define HAVE_COSH, HAVE_SINH, and HAVE_TANH.</div><div class='add'>+</div><div class='add'>+Fri Apr 12 02:58:55 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_select): fix typo.</div><div class='add'>+</div><div class='add'>+Fri Apr 12 00:34:17 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST (missing/acosh.c): added.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (missing/acosh.c): ditto.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (missing/fileblocks.c): ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_REPLACE_FUNCS): check acosh() on behalf of</div><div class='add'>+	  inverse hyperbolic functions, asinh() and atanh().</div><div class='add'>+</div><div class='add'>+	* missing/acosh.c: added for acosh(), asinh() and atanh().</div><div class='add'>+</div><div class='add'>+Thu Apr 11 20:01:44 2002  Masahiro Tomita  &lt;tommy@tmtm.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): check error if written data is less than</div><div class='add'>+	  specified size to detect EPIPE.</div><div class='add'>+</div><div class='add'>+Thu Apr 11 19:10:37 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (remain_size): IO#read returns "" if file.size == 0.</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): add check for initstate(3).</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 11 09:31:19 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/ptr.c: raise() -&gt; rb_raise(). (Thanks Tetsuya Watanabe)</div><div class='add'>+</div><div class='add'>+	* ext/dl/sym.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 11 07:57:48 2002  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ruby_verbose should be surrounded by RTEST().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str2cstr): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (void_expr): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (void_stmts): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_get): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr 11 07:02:31 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: Add dl.txt instead of README and README.html.</div><div class='add'>+</div><div class='add'>+Thu Apr 11 01:55:52 2002  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: support for multipart form.</div><div class='add'>+</div><div class='add'>+Wed Apr 10 18:42:23 2002  Tachino Nobuhiro &lt;tachino@jp.fujitsu.com&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): should have proceed link when link-&gt;path</div><div class='add'>+	  was non existing symbolic link.</div><div class='add'>+</div><div class='add'>+Wed Apr 10 17:30:19 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_obj_remove_instance_variable): raise NameError if</div><div class='add'>+	  specified instance variable is not defined.</div><div class='add'>+</div><div class='add'>+	* variable.c (generic_ivar_remove): modified to check ivar</div><div class='add'>+	  existence.</div><div class='add'>+</div><div class='add'>+Wed Apr 10 14:16:45 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords): fontify symbols for</div><div class='add'>+	  unary operators and aset.</div><div class='add'>+</div><div class='add'>+Tue Apr  9 13:40:31 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_link0): need expand macro in command, sync with</div><div class='add'>+	  ext/extmk.rb.in.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_cpp): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (egrep_cpp): ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr  9 12:44:59 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (check_modifiable): performance</div><div class='add'>+	  improvement.  avoid calling rb_str_modify() twice.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_putc): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_write): ditto, and use</div><div class='add'>+	  rb_str_cat() as possible.</div><div class='add'>+</div><div class='add'>+Tue Apr  9 05:17:48 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_select): fix index references and make</div><div class='add'>+	  MatchData#select actually work.</div><div class='add'>+</div><div class='add'>+Tue Apr  9 00:20:52 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): new method based on the proposal</div><div class='add'>+	  (and patch) from Mike Hall. [new]</div><div class='add'>+</div><div class='add'>+Mon Apr  8 04:50:51 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_handle): default to 1 unless status is set.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): guard error_handle() with PROT_NONE.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_stop): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr  8 01:22:24 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_acosh): added. [new]</div><div class='add'>+</div><div class='add'>+	* math.c (math_asinh): ditto.</div><div class='add'>+</div><div class='add'>+	* math.c (math_atanh): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_each_pair): method added. [new]</div><div class='add'>+</div><div class='add'>+Sat Apr  6 02:04:49 2002  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): wrong condition; was creating</div><div class='add'>+	  unnecessary singleton class.</div><div class='add'>+</div><div class='add'>+Sat Apr  6 01:09:41 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): simplifies the condition.</div><div class='add'>+</div><div class='add'>+	* bignum.c (get2comp): calculate proper carry over.</div><div class='add'>+</div><div class='add'>+Fri Apr  5 05:07:28 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: Add dl/struct.rb.</div><div class='add'>+</div><div class='add'>+Thu Apr  4 14:08:52 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/lib/dl/import.rb: Get rid of ineffective</div><div class='add'>+	  encoding/decoding procedures.</div><div class='add'>+</div><div class='add'>+Thu Apr  4 01:08:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_step): step may be a float less than 1.</div><div class='add'>+</div><div class='add'>+Wed Apr  3 20:42:34 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: Merge Nakada's patch.</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.h: define StringValuePtr for ruby-1.6.</div><div class='add'>+</div><div class='add'>+Wed Apr  3 15:37:24 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: Add dl/types.rb.</div><div class='add'>+</div><div class='add'>+Wed Apr  3 01:54:10 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (enable_config): follow lib/mkmf.rb.</div><div class='add'>+</div><div class='add'>+Tue Apr  2 19:59:13 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl: Merge from rough.</div><div class='add'>+</div><div class='add'>+Tue Apr  2 15:17:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (CPPFLAGS): remove @includedir@.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr  2 15:09:05 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_addrinfo): should clear addrinfo hints.</div><div class='add'>+</div><div class='add'>+Mon Apr  1 23:48:12 2002  Takaaki Tateishi &lt;ttate@kt.jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: install any files using $INSTALLFILES.</div><div class='add'>+	  (see also [ruby-dev:16683])</div><div class='add'>+</div><div class='add'>+Mon Apr  1 17:25:50 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_cleanup): need flush even when io will not be</div><div class='add'>+	  closed.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): was calling wrong function</div><div class='add'>+	  rb_io_mode_flags().</div><div class='add'>+</div><div class='add'>+Mon Apr  1 16:52:00 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (each_pair): moved prototype before the</div><div class='add'>+	  definition.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c (call_scaniter): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr  1 15:11:40 2002  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: prototype; call_scaniter().</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: prototype; each_pair().</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: prototypes; _timer_for_tcl() and ip_ruby(),</div><div class='add'>+	  Nobu's patch at [ruby-dev:14483].</div><div class='add'>+</div><div class='add'>+Mon Apr  1 10:56:40 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_setter): it's OK to assign nil to $~.</div><div class='add'>+</div><div class='add'>+Mon Apr  1 03:55:46 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_cleanup): do not close IO created by for_fd().</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): mark IO created by for_fd</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_s_for_fd): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 29 20:21:58 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): default FLAGS to empty strings.</div><div class='add'>+</div><div class='add'>+Fri Mar 29 16:36:52 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (arg_config): should use Shellwords::shellwords like</div><div class='add'>+	  ext/extmk.rb.in.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (enable_config): default had priority over command</div><div class='add'>+	  line options and configure_args.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: support autoconf 2.53 style variables from</div><div class='add'>+	  environment.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: add directory options.</div><div class='add'>+</div><div class='add'>+Fri Mar 29 15:49:29 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/README.win32: follow recent changes.</div><div class='add'>+</div><div class='add'>+Fri Mar 29 14:44:05 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): DRY patch from /Christoph applied.</div><div class='add'>+</div><div class='add'>+Thu Mar 28 18:58:13 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): reflect user defined $CC in</div><div class='add'>+	  config.status.</div><div class='add'>+</div><div class='add'>+Thu Mar 28 18:03:51 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: add taint check.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: #getch/#get_byte should set regexp</div><div class='add'>+	  registers.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: remove useless #include directive.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: refactor struct strscanner.</div><div class='add'>+</div><div class='add'>+Thu Mar 28 14:51:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_addrinfo): should specify socktype</div><div class='add'>+	  from outside.</div><div class='add'>+</div><div class='add'>+Wed Mar 27 17:04:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_binmode): should call next_argv() to initialize ARGF.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_filename): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_file): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 27 14:47:32 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_PENDING): configure.in has supported for uClibc,</div><div class='add'>+	  so remove uClibc stuff.</div><div class='add'>+</div><div class='add'>+Wed Mar 27 13:14:43 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_sysseek): new method based on a patch from Aristarkh</div><div class='add'>+	  A Zagorodnikov &lt;xm@bolotov-team.ru&gt;. [new]</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_PENDING): use !feof(fp) for default behavior.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 20:28:50 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.get accepts URI.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method HTTP.get_uri.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: add some HTTP 1.1 response codes.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 20:25:28 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* doc/net/protocol.rd.ja, smtp.rd.ja, pop.rd.ja: removed.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: remove doc/net/* entries.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 18:45:15 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (FILE_READPTR): check bufread instead of bufend</div><div class='add'>+	  for uClibc.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (arg_config): should use Shellwords::shellwords.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 01:56:33 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): while/until statement modifiers to "begin"</div><div class='add'>+	  statement now work as "do .. while" even when begin statement</div><div class='add'>+	  has "rescue" or "ensure" [new].</div><div class='add'>+</div><div class='add'>+	* parse.y (bodystmt): rescue/ensure is allowed at every bodies,</div><div class='add'>+	  i.e. method bodies, begin bodies, class bodies[new], and module</div><div class='add'>+	  bodies[new].</div><div class='add'>+</div><div class='add'>+Mon Mar 25 22:10:04 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_addrinfo): should specify ai_socktype</div><div class='add'>+	  for getaddrinfo hints.</div><div class='add'>+</div><div class='add'>+Mon Mar 25 17:18:48 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): local variable 'maxnest' was</div><div class='add'>+	  uninitialized.</div><div class='add'>+</div><div class='add'>+Mon Mar 25 16:53:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_abort): embed aborting message into exception</div><div class='add'>+	  object [new].</div><div class='add'>+</div><div class='add'>+	* eval.c (terminate_process): utility function for exit and abort.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 14:04:47 2002  okabe katsuyuki &lt;HGC02147@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: support VC++.NET.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 14:00:17 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigfloat/bigfloat.c: Fix the initializer's function name</div><div class='add'>+	  according to the new library name. (pointed out by nobu)</div><div class='add'>+</div><div class='add'>+Tue Mar 26 11:12:01 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new file.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 03:23:50 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (pp): return nil like p.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 01:48:01 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigfloat/extconf.rb: Downcase the library name. (BigFloat.so</div><div class='add'>+	  -&gt; bigfloat.so)</div><div class='add'>+</div><div class='add'>+	* ext/bigfloat/bigfloat.c (BigFloat_inspect): Alter the inspect</div><div class='add'>+	  format not to look like an array. (pointed out by akr)</div><div class='add'>+</div><div class='add'>+	* ext/bigfloat/bigfloat.c (BigFloat_hash): Implement BigFloat#hash.</div><div class='add'>+</div><div class='add'>+	* ext/bigfloat/bigfloat.c (BigFloat_dump, BigFloat_load):</div><div class='add'>+	  Support marshaling.</div><div class='add'>+</div><div class='add'>+Tue Mar 26 00:38:11 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (FILE_READPTR): check _p for 4.4BSD.</div><div class='add'>+</div><div class='add'>+Mon Mar 25 23:39:25 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (FILE_READPTR): new.  for IO#gets improvement.</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_PENDING_PTR): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (remain_size): separated from read_all().</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): argument changed.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): new.  get a line and append to string.</div><div class='add'>+</div><div class='add'>+	* io.c (swallow): new.  swallow continuous line delimiters.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): add delimiter argument.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): performance improvement.</div><div class='add'>+</div><div class='add'>+Mon Mar 25 19:30:25 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (arg_config): get rid of single quotes</div><div class='add'>+	  for autoconf 2.53.</div><div class='add'>+</div><div class='add'>+Mon Mar 25 17:49:41 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (mbc_startpos_func): VC6 seems to be unable to</div><div class='add'>+	  understand forward declaration for static variables.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): local variable 'maxnest' was</div><div class='add'>+	  uninitialized.</div><div class='add'>+</div><div class='add'>+Mon Mar 25 13:24:20 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_do_not_rev_lookup_set): should not be</div><div class='add'>+	  allowed when $SAFE &gt; 3.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_ready): THREAD_TO_KILL threads should not turn</div><div class='add'>+	  into THREAD_RUNNABLE on wakeup.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_list): THREAD_TO_KILL threads should be in the</div><div class='add'>+	  list.</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_list): ditto; by moving gid clearance from</div><div class='add'>+	  rb_thread_cleanup().</div><div class='add'>+</div><div class='add'>+Mon Mar 25 11:06:19 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_argv0): unused unless USE_DLN_A_OUT.</div><div class='add'>+</div><div class='add'>+	* regex.c (mbc_startpos_func): should be static.</div><div class='add'>+</div><div class='add'>+Sun Mar 24 12:19:09 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): "*/bar" (with FNM_PATHNAME flag) does not</div><div class='add'>+	  match "foo/bar".</div><div class='add'>+</div><div class='add'>+Sun Mar 24 00:46:05 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (push_element): avoid warning for djgpp.</div><div class='add'>+</div><div class='add'>+Sat Mar 23 01:50:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): files on /proc filesystem with zero stat size,</div><div class='add'>+	  may have contents.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 18:07:29 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_s_gethostbyname): refactored.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_gethostbyname): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 16:46:54 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: replace mkdir with mkpath to compile racc/cparse.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 16:22:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* the VMS support patch submitted by Akiyoshi, Masamichi</div><div class='add'>+	  &lt;Masamichi.Akiyoshi@jp.compaq.com&gt; is merged.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 16:27:24 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/racc/MANIFEST, cparse.c, depend, extconf.rb: new files.</div><div class='add'>+</div><div class='add'>+	* lib/README: add racc/parser.rb.</div><div class='add'>+</div><div class='add'>+	* ext/Setup*: add racc/cparse.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 15:04:03 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): changing ruby_class is OK, but should not</div><div class='add'>+	  alter cbase.</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under_i): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 15:44:38 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/MANIFEST, strscan.c, depend, extconf.rb: new files.</div><div class='add'>+</div><div class='add'>+	* ext/Setup*: add strscan entry.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 14:32:14 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Protocol#start should return self.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 14:14:21 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: fix arguments to create exceptions.</div><div class='add'>+	  Patch from matt@lickey.com.  (ruby-bugs:PR#278)</div><div class='add'>+</div><div class='add'>+Fri Mar 22 13:51:11 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigfloat/.cvsignore, ext/bigfloat/MANIFEST: BigFloat 1.1.8</div><div class='add'>+	  has been imported.  Add .cvsignore and MANIFEST.</div><div class='add'>+</div><div class='add'>+Fri Mar 22 04:07:55 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_printf): discard meaningless prefix ".." for '%u'.</div><div class='add'>+</div><div class='add'>+Thu Mar 21 01:11:37 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): fix install path (prefix).</div><div class='add'>+</div><div class='add'>+Thu Mar 21 01:03:05 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/configsub.rb: latest autoconf style support.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 22:16:25 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: close duplicated $stdout before renaming rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 21:54:17 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: made variables configurable.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): updates RUBY_PLATFORM from</div><div class='add'>+	  Makefile.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): ditto. and use recent</div><div class='add'>+	  autoconf format.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (clean): separate ext and local clean up.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (distclean): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/config.status.in: no longer used.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 20:12:35 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_list): a temporary table must be freed.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 19:44:09 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: don't touch rbconfig.rb if there is a trouble.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 16:05:37 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): should check receiver only once.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): should handle NODE_NEWLINE.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 11:29:25 2002  Aristarkh A Zagorodnikov  &lt;xm@xml-objects.com&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): memory leak fixed.</div><div class='add'>+</div><div class='add'>+Wed Mar 20 00:36:43 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_getcwd): the content of buf is uncertain and must</div><div class='add'>+	  not be printed when getcwd(buf, size) has failed.</div><div class='add'>+</div><div class='add'>+Mon Mar 18 22:19:52 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (check_modifiable): wrong declaration.</div><div class='add'>+</div><div class='add'>+Mon Mar 18 18:04:05 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest: add depend file.</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/MANIFEST: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/MANIFEST: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syslog: ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 18 17:18:06 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_abort): should not bypass cleanup.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (check_modifiable): void function.</div><div class='add'>+</div><div class='add'>+Mon Mar 18 12:52:01 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/extconf.rb: workaround for GNU libiconv.</div><div class='add'>+</div><div class='add'>+Mon Mar 18 10:55:03 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): part of multi-byte sequence must not</div><div class='add'>+	  match to paren.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_qstring): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_quotedwords): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): handle multi-byte characters.</div><div class='add'>+</div><div class='add'>+Mon Mar 18 10:31:20 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find): catch a value before recycle.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_all): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_any): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_max): ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 17 20:08:04 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/depend: added.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/depend: added.</div><div class='add'>+</div><div class='add'>+Sat Mar 16 22:43:53 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/fileblocks.c: add for autoconf.</div><div class='add'>+</div><div class='add'>+Sat Mar 16 15:30:40 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): should clear last_match if pos is out of</div><div class='add'>+	  string range.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar 16 09:04:58 2002  Koji Arai &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): use the first iterated element as the</div><div class='add'>+	  initial value when omitted.</div><div class='add'>+</div><div class='add'>+	* enum.c (inject_i): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (Init_Enumerable): Enumerable#inject now takes variable</div><div class='add'>+	  count arguments.</div><div class='add'>+</div><div class='add'>+Fri Mar 15 19:47:31 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSockets): remove duplicated lines.</div><div class='add'>+</div><div class='add'>+Fri Mar 15 17:44:08 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c, intern.h (rb_ull2big, rb_ll2big, rb_ull2inum, rb_ll2inum,</div><div class='add'>+	  big2ull, rb_big2ull, rb_big2ll): use LONG_LONG macro instead of</div><div class='add'>+	  long long.</div><div class='add'>+</div><div class='add'>+	* numeric.c, intern.h, ruby.h (rb_num2ll, rb_num2ull): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.h: use _I64_MAX and _I64_MIN if they are defined (for VC++).</div><div class='add'>+</div><div class='add'>+Fri Mar 15 14:02:43 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: fixed document, Iconv#new is no longer an</div><div class='add'>+	  iterator. thanks to Tanaka Akira &lt;akr@m17n.org&gt;.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 22:17:45 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv: imported.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 16:42:37 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class): should handle autoload.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 16:18:12 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: autoconf 2.53 support. use AC_LIBOBJ.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 00:29:12 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match): should clear $~ if operand is nil.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match2): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 12:32:59 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: fixed frozen string bug.  ungetc no</div><div class='add'>+	  longer raises on readonly stream unless modifies actually.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 08:57:41 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): avoid SEGV when a block given.</div><div class='add'>+</div><div class='add'>+Thu Mar 14 00:16:02 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat_set): must make str independent after</div><div class='add'>+	  rb_reg_search() matched.</div><div class='add'>+</div><div class='add'>+Wed Mar 13 19:05:15 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: FNM_PERIOD is obsoleted and FNM_DOTMATCH is introduced</div><div class='add'>+	  instead, which has the opposite meaning of FNM_PERIOD.</div><div class='add'>+</div><div class='add'>+	* dir.c: Dir::glob now accepts optional FNM_* flags via the second</div><div class='add'>+	  argument, whereas Dir::[] doesn't.</div><div class='add'>+</div><div class='add'>+Wed Mar 13 18:36:55 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getopts.rb: single_options can be nil[*], and is not not</div><div class='add'>+	  optional. ([*]Pointed out by gotoken)</div><div class='add'>+</div><div class='add'>+Wed Mar 13 17:23:46 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure: merge Jonathan Baker's large file support patch</div><div class='add'>+	  [ruby-talk:35316], with read_all patch in [ruby-talk:35470].</div><div class='add'>+</div><div class='add'>+Wed Mar 13 04:06:48 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_abort): optional message argument that be printed</div><div class='add'>+	  on termination.</div><div class='add'>+</div><div class='add'>+Tue Mar 12 17:12:06 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: don't complete domains for absolute FQNs.</div><div class='add'>+</div><div class='add'>+Mon Mar 11 23:08:48 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tsort.rb: new file.</div><div class='add'>+</div><div class='add'>+Mon Mar 11 21:03:37 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio: new.</div><div class='add'>+</div><div class='add'>+Mon Mar 11 18:03:37 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): '\0111' should be '\011' plus '1',</div><div class='add'>+	  since octal literals are formed by three digits at most.</div><div class='add'>+</div><div class='add'>+Mon Mar 11 14:44:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): module inclusion using extend() should</div><div class='add'>+	  also be detected.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd): cbase should not be NULL; it should be</div><div class='add'>+	  either ruby_wrapper or Object.</div><div class='add'>+</div><div class='add'>+Sun Mar 10 02:18:22 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_with_index): should return self.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setpgrp): should return value for non-void function.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getpgid): should raise exception if getpgid() return -1.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ljust): should return a duplicated string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rjust): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_center): ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar  9 08:45:58 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb (have_struct_member): don't print checked</div><div class='add'>+	  result.</div><div class='add'>+</div><div class='add'>+Fri Mar  8 12:19:15 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: use its own thread group for background threads.</div><div class='add'>+</div><div class='add'>+Fri Mar  8 02:21:32 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (cvar_cbase): utility function to find innermost non</div><div class='add'>+	  singleton cbase.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): adopt new cvar behavior.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar  7 20:08:25 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_source_filename): added. holds unique strings for file</div><div class='add'>+	  names with GC space.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): mark source file name.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_GC): initialize source file name table.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_source_filename): added.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string): use rb_source_filename().</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_script): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar  6 17:58:08 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): use LoadLibrary instead of LoadLibraryEx.</div><div class='add'>+</div><div class='add'>+Wed Mar  6 16:50:37 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_clone): should not call rb_obj_clone(), since</div><div class='add'>+	  Module does not provide "allocate".</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): should create new singleton class</div><div class='add'>+	  if obj is a class or module and attached object is different,</div><div class='add'>+	  which means metaclass of singleton class is sought.</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_alloc): now follows allocation framework.</div><div class='add'>+</div><div class='add'>+Tue Mar  5 05:56:29 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getopts.rb: Rewrite to fix some bugs and complete features.</div><div class='add'>+	  - Accept options with the colon in the first argument;</div><div class='add'>+	    getopts("a:bcd:") is equivalent to getopts("bc", "a:", "d:").</div><div class='add'>+	  - Do not discard the argument that caused an error.</div><div class='add'>+	  - Do not discard '-', which commonly stands for stdin or stdout.</div><div class='add'>+	  - Allow specifying a long option with a value using '='.</div><div class='add'>+	    (command --long-option=value)</div><div class='add'>+	  - Stop reading options when it meets a non-option argument.</div><div class='add'>+</div><div class='add'>+Mon Mar  4 13:19:18 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (dir_config): Sync with mkmf.rb: Fix a bug where</div><div class='add'>+	  --with-xx-{include,lib} is ignored when --with-xx-dir is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+Mon Mar  4 00:09:55 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should initialize outer class variables from</div><div class='add'>+	  methods in singleton class definitions.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar  1 11:29:10 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/{addinfo.h,getaddrinfo.c} (gai_strerror): add const</div><div class='add'>+	  qualifier only for uClibc.</div><div class='add'>+</div><div class='add'>+Fri Mar  1 11:22:51 2002  Amos Gouaux  &lt;amos+ruby@utdallas.edu&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: added document.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (getquotaroot): new method.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (setacl): remove the rights if the rights</div><div class='add'>+	  parameter is nil.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (getacl): return an array of MailboxACLItem.</div><div class='add'>+</div><div class='add'>+Fri Mar  1 06:25:49 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb (have_struct_member): new method.</div><div class='add'>+	  check msg_control and msg_accrights in struct msghdr.  check</div><div class='add'>+	  sys/uio.h.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: include sys/uio.h if available.</div><div class='add'>+	  (thread_read_select): new function.</div><div class='add'>+	  (unix_send_io): ditto.</div><div class='add'>+	  (unix_recv_io): ditto.</div><div class='add'>+	  (unix_s_socketpair): ditto.</div><div class='add'>+	  (Init_socket): define UNIXSocket#send_io, UNIXSocket#recv_io,</div><div class='add'>+	  UNIXSocket.socketpair and UNIXSocket.pair.</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): fix typo.</div><div class='add'>+</div><div class='add'>+Wed Feb 27 16:30:50 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_include): load modules in argument order.</div><div class='add'>+</div><div class='add'>+	* st.c (st_init_table_with_size): num_bins should be prime numbers</div><div class='add'>+	  (no decrement).</div><div class='add'>+</div><div class='add'>+	* st.c (rehash): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 27 13:18:49 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_PENDING): uClibc support.</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/{addinfo.h,getaddrinfo.c} (gai_strerror): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 27 07:05:17 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.c: Merge from rough.  Fix a couple of</div><div class='add'>+	  off-by-one errors in Aaron Gifford's code.</div><div class='add'>+</div><div class='add'>+	  Obtained from:  KAME via FreeBSD</div><div class='add'>+	  KAME PR:        393</div><div class='add'>+	  FreeBSD PR:     kern/34242</div><div class='add'>+</div><div class='add'>+Wed Feb 27 03:36:47 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_select): 1.7 behavior.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_select): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/sdbm.c (fsdbm_select): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_delete): adopt Hash#delete behavior.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/sdbm.c (fsdbm_delete): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: need not to dup key to the block.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/sdbm.c : replace RuntimeError with SDBMError.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 21:34:07 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_2comp): void function cannot return any value.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 16:52:12 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): NoMethod error messages for true, false,</div><div class='add'>+	  nil must respond visibility like for other objects.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 15:41:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): call trace_func for if/while conditions.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): separate r_regist from proc calling.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 11:25:50 2002  akira yamada  &lt;akira@arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb: merge0 should return [oth, oth] if oth is</div><div class='add'>+	  absolute URI.</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb: registry part must not be allowed for any</div><div class='add'>+	  schemes for the Internet. (RFC2396, section 3.2.2 and 3.2.1.)</div><div class='add'>+</div><div class='add'>+Mon Feb 25 21:22:41 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: Merge from rough.  Use SafeStringValue().</div><div class='add'>+</div><div class='add'>+Mon Feb 25 21:12:08 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: Merge from rough.  Turn Syslog into a</div><div class='add'>+	  module keeping backward compatibility intact.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 19:35:48 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (system): test with scripts under the source</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 15:14:01 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_inspect): should not dump core for unbound</div><div class='add'>+	  singleton methods.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_to_s): better description.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 13:32:13 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell.rb (Shell::expand_path): relative to @cwd.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 06:30:11 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_select): should path the assoc list.</div><div class='add'>+</div><div class='add'>+Sun Feb 24 17:20:22 2002  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/*/*.h: Merge from rough.</div><div class='add'>+	  - Avoid namespace pollution. (MD5_* -&gt; rb_Digest_MD5_*, etc.)</div><div class='add'>+</div><div class='add'>+Sat Feb 23 21:12:13 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_syswait): thread kludge; should be fixed to</div><div class='add'>+	  support native thread.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 21:20:53 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: set read_timeout dynamically.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: @@newimpl is always true in the main trunk.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.port -&gt; default_port</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPResponse.read_response_status -&gt;</div><div class='add'>+	  read_status_line</div><div class='add'>+</div><div class='add'>+Fri Feb 22 19:56:15 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.status.in: set LIBRUBY_SO.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 03:34:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (get2comp): need to specify to carry or not.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_inspect): embed path info.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 11:30:01 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb: FillGroup implemented.</div><div class='add'>+</div><div class='add'>+Thu Feb 21 21:40:18 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): remove unnecessary -L option from</div><div class='add'>+	  LIBS macro.</div><div class='add'>+</div><div class='add'>+Thu Feb 21 02:49:12 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): wrong # comment treatment.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 15:15:03 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes; rb_io_addstr(), rb_io_printf(),</div><div class='add'>+	  rb_io_print(), rb_io_puts()</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_addstr): make extern.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_printf): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_print): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 13:41:35 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close): return Qnil.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 12:41:59 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_cmp): should handle Qundef in keys.</div><div class='add'>+</div><div class='add'>+	* eval.c (remove_method): should not remove a empty method to</div><div class='add'>+	  implement "undef".</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should allow singleton class def for</div><div class='add'>+	  true/false/nil.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 21:43:32 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: rename Protocol.port to default_port.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: rename BufferedSocket class to</div><div class='add'>+	  InternetMessageIO.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: rename InternetMessageIO#write_pendstr to</div><div class='add'>+	  write_message.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: new method</div><div class='add'>+	  InternetMessageIO#through_message.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: rename InternetMessageIO#read_pendstr to</div><div class='add'>+	  read_message_to.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: rename InternetMessageIO#read_pendlist to</div><div class='add'>+	  each_list_item</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Now block size is 1024.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new methods SMTP#esmtp? and #esmtp=.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Using singleton method syntax instead of</div><div class='add'>+	  singleton class clause, to avoid behavior change of class</div><div class='add'>+	  variables in ruby 1.7.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPResponse class does not inherit from</div><div class='add'>+	  Net::Response.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: divide HTTP#connecting into</div><div class='add'>+	  {begin,end}_transport.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: unused class Accumulator removed.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Net::HTTP reads response. not HTTPRequest.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: proxy related class-instance-variables are not</div><div class='add'>+	  initialized correctly.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 20:20:12 2002  Ed Sinjiashvili  &lt;edsin@swes.saren.ru&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): backslash escape was done wrong.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 17:10:25 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): do not fail on world writable *parent*</div><div class='add'>+	  directories too.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 15:51:41 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): do not warn on world writable *parent*</div><div class='add'>+	  directories.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): should preserve ancestor order in</div><div class='add'>+	  the included class/module.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 14:45:32 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): should check directory sticky bits.</div><div class='add'>+</div><div class='add'>+	* process.c (security): need not to warn twice.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): complete restoration before calling</div><div class='add'>+	  r_regist().</div><div class='add'>+</div><div class='add'>+Tue Feb 19 14:24:36 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): operators in the "op" rule should make</div><div class='add'>+	  lex_state EXPR_ARG on EXPR_FNAME and EXPR_DOT.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 13:38:10 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string_wrap): should hide the toplevel local</div><div class='add'>+	  variable bindings by PUSH_SCOPE().</div><div class='add'>+</div><div class='add'>+Tue Feb 19 13:21:51 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c: fix prototypes of xmalloc(), xcalloc() and xrealloc().</div><div class='add'>+</div><div class='add'>+Tue Feb 19 13:16:08 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): don't fail pushed EOF back.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 20:48:40 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): avoid infinite loop at comment.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 14:06:28 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-block-hanging-re): rescue block was too</div><div class='add'>+	  indented.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 13:56:44 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr_value, arg_value, primary_value): value_expr()</div><div class='add'>+	  check in place.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): "&amp;nil" should clear block given.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 02:05:56 2002  Wolfgang Jahrling &lt;wolfgang@pro-linux.de&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_braces): remove MAXPATHLEN dependency.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_globd): ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname): ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c (load_1): ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in: add GNU/Hurd switches.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 17:44:26 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): allows comment in template strings.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 23:41:37 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (Config::expand): expand ${} too.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (try_link0): expand command.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (try_cpp): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (extmake): default $LIBPATH to $libdir</div><div class='add'>+</div><div class='add'>+Sun Feb 17 21:39:24 2002  Tetsuya Watanabe  &lt;tetsuya.watanabe@nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5init.c (Init_md5): rb_cvar_declare() is</div><div class='add'>+	  replaced by rb_cvar_set().</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/rmd160init.c (Init_rmd160): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/sha1init.c (Init_sha1): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2init.c (Init_sha2): ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 18:10:09 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class): warn unless superclass is specified</div><div class='add'>+	  explicitly.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_under): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 16 02:11:08 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords): fontify</div><div class='add'>+	  instance/class/global variables start with '_'.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 14:40:38 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): replace rb_cvar_declare() by rb_cvar_set().</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): 4th argument (warn) added; define new</div><div class='add'>+	  class variable if it's not defined yet.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_declare): removed.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 13:36:58 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rshift): should properly convert the negative</div><div class='add'>+	  value to 2's compliment.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 17:38:35 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: avoid SEGV at OP_ASIGN to pseudo variable.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 14:13:16 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (Init_Struct): should undefine "allocate" for Struct</div><div class='add'>+	  class (it's redefined in the subclasses).</div><div class='add'>+</div><div class='add'>+Wed Feb 13 17:58:12 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): local variable declaration order was changed</div><div class='add'>+	  since 1.6</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): ditto.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): add templates 'q' and 'Q'.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_pack): new utility function.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 01:21:34 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): should emit CVASGN within the method</div><div class='add'>+	  body.</div><div class='add'>+</div><div class='add'>+Mon Feb 11 06:13:53 2002  Matt Armstrong  &lt;matt@lickey.com&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): should not warn even if no match found.</div><div class='add'>+</div><div class='add'>+Mon Feb 11 04:25:54 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): clean up class variable behavior.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_class_variables): need not to call rb_cvar_singleton().</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_singleton): removed.</div><div class='add'>+</div><div class='add'>+Mon Feb 11 00:10:41 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): skip begpos.</div><div class='add'>+</div><div class='add'>+Sun Feb 10 16:52:53 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): avoid SEGV on '#' only input.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 23:07:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): singleton check should be moved from yycompile</div><div class='add'>+	  to here.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): check should be added here too.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 05:31:48 2002  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.Proxy should use self for proxy-class's</div><div class='add'>+	  super class.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: initialize HTTP.proxy_port by HTTP.port.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 01:27:33 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): should inherit "in_single" if eval happened</div><div class='add'>+	  in a singleton method.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): class variables from singleton methods defined</div><div class='add'>+	  within singleton class statement should work like ones defined</div><div class='add'>+	  by singleton def statements.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 13:44:08 2002  akira yamada  &lt;akira@arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* uri/common.rb (URI::join): new method.</div><div class='add'>+</div><div class='add'>+	* uri/generic.rb (Generic#merge): URI.parse("http://a/")+"b" should</div><div class='add'>+	  return "http://a/b" but it returned "http://a//b".</div><div class='add'>+</div><div class='add'>+	* uri/generic.rb (Generic#check_path): corrected error message,</div><div class='add'>+	  @path -&gt; v</div><div class='add'>+</div><div class='add'>+Thu Feb  7 00:18:43 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): flag when buffered write is done.</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): do not raise error on EBADF if write</div><div class='add'>+	  buffer is empty.</div><div class='add'>+</div><div class='add'>+Wed Feb  6 17:18:54 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: keep old config.h unless changed.</div><div class='add'>+</div><div class='add'>+Wed Feb  6 13:28:53 2002  Amos Gouaux  &lt;amos+ruby@utdallas.edu&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: OpenSSL support.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (setquota): unset quota if the second argument</div><div class='add'>+	  is nil.</div><div class='add'>+</div><div class='add'>+Wed Feb  6 13:05:11 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_readlines): avoid calling GetOpenFile() repeatedly.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_line): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_getline): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: should include &lt;time.h&gt; to get proper CLK_TCK.</div><div class='add'>+</div><div class='add'>+Wed Feb  6 02:10:30 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): ignore EBADF when f and f2 use same</div><div class='add'>+	  descriptor.</div><div class='add'>+</div><div class='add'>+Tue Feb  5 16:17:20 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): should raise error when fclose fails.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_inspect): proper output format to distinguish</div><div class='add'>+	  methods and singleton methods.</div><div class='add'>+</div><div class='add'>+Mon Feb  4 22:44:58 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): should terminate.</div><div class='add'>+</div><div class='add'>+Mon Feb  4 15:38:29 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_real): should not follow ICLASS link</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): should follow ICLASS link explicitly.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb  1 19:10:04 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes for new functions; rb_cstr_to_inum(),</div><div class='add'>+	  rb_str_to_inum(), rb_cstr_to_dbl(), rb_str_to_dbl()</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): changed from rb_cstr2inum(), and</div><div class='add'>+	  added argument badcheck to be consistent with parser. [new]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str_to_inum): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): wrapper of rb_cstr_to_inum() now.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str2inum): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): float number parser. [new]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str_to_dbl): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Float): use rb_cstr_to_dbl() for strict check.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): use rb_str_to_inum() for strict check.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_f): use rb_str_to_dbl() with less check.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): use rb_str_to_inum() with less check.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hex): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_oct): ditto.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (obj2long): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): use rb_cstr_to_inum() for strict check.</div><div class='add'>+</div><div class='add'>+Fri Feb  1 17:46:39 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (mbc_startpos): become macro.</div><div class='add'>+</div><div class='add'>+	* regex.c (euc_startpos): added for improvement.</div><div class='add'>+</div><div class='add'>+	* regex.c (sjis_startpos): ditto.</div><div class='add'>+</div><div class='add'>+	* regex.c (utf8_startpos): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb  1 00:03:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): print dev, rdev in hexadecimal.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 20:45:33 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): prior --with flag.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (arg_config): avoid special variables for</div><div class='add'>+	  font-lock-mode.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 13:22:36 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (File::Stat#pretty_print): print rdev_major and rdev_minor.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 15:58:04 2002  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_adjust_startpos): fix for SJIS and UTF-8.</div><div class='add'>+</div><div class='add'>+	* regex.c (mbc_startpos): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 13:37:05 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): should set regs.allocated.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 02:25:38 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_adjust_startpos): search start of multibyte</div><div class='add'>+	  backward.</div><div class='add'>+</div><div class='add'>+	* regex.c (mbc_startpos): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 17:59:20 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: `major' and `minor' macro needs sys/mkdev.h on SunOS 5.x.</div><div class='add'>+</div><div class='add'>+	* configure.in: add check for `sys/mkdev.h'.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: don't print a mode File::Stat as decimal number.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 19:16:58 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): shouldn't yield unless block given.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 18:33:18 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): strict check for numbers.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 18:01:01 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_rdev_major): added. [new]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_rdev_minor): added. [new]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): print mode in octal.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 13:29:41 2002  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): defined?(Foo::Baz) should check constants</div><div class='add'>+	  only, no methods.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): should not dump core on defined?(a::b)</div><div class='add'>+	  where a is not a class nor a module.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 02:50:12 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove dup and clone from TrueClass,</div><div class='add'>+	  FalseClass, and NilClass.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): Array#fill takes block to get the value to</div><div class='add'>+	  fill.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 20:05:18 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): to_i(0) auto-detects base radix.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize): fill by the block evaluation value</div><div class='add'>+	  if block is given.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 17:48:43 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (solaris): add '-shared' only for GNU ld.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 17:16:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): detect cyclic module inclusion.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 02:17:56 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): need not to free thread stacks at</div><div class='add'>+	  process termination.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fetch): use the block to get the default value</div><div class='add'>+	  if the block is given.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): should check time only if BOTH</div><div class='add'>+	  WAIT_SELECT and WAIT_TIME.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 11:49:05 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): should update rklass field.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_update): if a block is given, yields [key,</div><div class='add'>+	  value1, value2] to the block to resolve conflict.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 05:42:01 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): no need to consider KANJI</div><div class='add'>+	  characters, if the length of separator is 1 (byte).</div><div class='add'>+</div><div class='add'>+Wed Jan 23 16:07:31 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (Init_Array): remove Array#filter.</div><div class='add'>+</div><div class='add'>+Wed Jan 23 13:27:44 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): restore source file/line after yield.</div><div class='add'>+</div><div class='add'>+Wed Jan 23 02:00:14 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_initialize): should accept zero argument.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cmp): should raise ArgumentError if</div><div class='add'>+	  inheritance/inclusion relation between two classes/modules is</div><div class='add'>+	  not defined. [new]</div><div class='add'>+</div><div class='add'>+Tue Jan 22 17:45:23 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fsync): new method. [new]</div><div class='add'>+</div><div class='add'>+Mon Jan 21 22:57:18 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal): must define sighandler_t for every</div><div class='add'>+	  occasion.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 08:25:30 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_stop): should not trace error handler.</div><div class='add'>+</div><div class='add'>+	* signal.c (install_sighandler): do not install sighandler unless</div><div class='add'>+	  the old value is SIG_DFL.</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): should not raise exception on O_NONBLOCK io.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_set_pos): seek should return dir, pos= should not.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 02:31:45 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): need not to clear method cache for NODE_CLASS,</div><div class='add'>+	  NODE_SCLASS.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): need not to clear method cache on class/module</div><div class='add'>+	  finalization.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 23:38:03 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fetch): index out of range raises exception</div><div class='add'>+	  unless optional second argument is specified.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 17:32:09 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_new): block check moved from initialize to this</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_open): open should call initialize too. IO#for_fd</div><div class='add'>+	  also calls initialize. [new]</div><div class='add'>+</div><div class='add'>+Fri Jan 18 10:26:33 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): replace INT2FIX() by INT2NUM() since</div><div class='add'>+	  errno value may not fit in Fixnum size on Hurd.</div><div class='add'>+</div><div class='add'>+	* error.c (set_syserr): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 10:12:00 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_svr_s_open): fix typo.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 02:27:48 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): returns nil if block given.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_byte): should return self.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_m): close check added.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_seek): should return pos.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 01:21:53 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (fixpos): orig may be (NODE*)1, which should not be</div><div class='add'>+	  dereferenced.</div><div class='add'>+</div><div class='add'>+Thu Jan 17 16:21:42 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): allow "retry" from within argument passed</div><div class='add'>+	  block. [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_error): should preserve exit status in the</div><div class='add'>+	  exception object. [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should raise exception for "break" if it's</div><div class='add'>+	  yielding, not calling. [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should NOT raise exception for "break". [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should allow block argument relay even in</div><div class='add'>+	  the tainted mode.</div><div class='add'>+</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='add'>+Thu Jan 17 04:51:48 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: support subclassing by proper "initialize"</div><div class='add'>+	  calling convention. [new]</div><div class='add'>+</div><div class='add'>+Wed Jan 16 18:25:08 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c: primes should be primes.</div><div class='add'>+</div><div class='add'>+Wed Jan 16 12:29:14 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (timeout): new optional argument to specify an</div><div class='add'>+	  exception class.</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: use Resolv::ResolvTimeout for internal timeout to</div><div class='add'>+	  avoid problem with timeout of application.</div><div class='add'>+</div><div class='add'>+Wed Jan 16 11:12:30 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Float): remove underscores between digits.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): reject prefix followed by spaces only.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_inherited): should use Object when no super</div><div class='add'>+	  class.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 01:11:44 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): method defined? check should honor</div><div class='add'>+	  protected too.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 13:06:02 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should not pass tainted block, if $SAFE &gt; 0.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 09:31:41 2002  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_cvar): should pass the char*.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 05:06:25 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): [new]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_id): use rb_make_metaclass(), don't</div><div class='add'>+	  call Class#inherited hook.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_inherited): [new]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class): call Class#inherited hook here.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_under): ditto after class path is set.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): use rb_make_metaclass().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): same as rb_define_class_under().</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes of rb_make_metaclass() and</div><div class='add'>+	  rb_class_inherited().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_s_new): use rb_make_metaclass() and</div><div class='add'>+	  rb_class_inherited().</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): use rb_make_metaclass().</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): use rb_class_inherited().</div><div class='add'>+</div><div class='add'>+Thu Jan 10 19:15:15 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): should clear cache by id always.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_disable_super): no longer need to clear cache before</div><div class='add'>+	  rb_add_method().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_export_method): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undef): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_modfunc): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan 10 11:42:47 2002  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: Modify copyright in resource script.</div><div class='add'>+</div><div class='add'>+Thu Jan 10 07:15:44 2002  takuma ozawa  &lt;metal@mine.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_select): should propagate taintness.</div><div class='add'>+</div><div class='add'>+Thu Jan 10 00:54:57 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_set_default): Hash#default= should return the</div><div class='add'>+	  new value.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 20:21:09 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): indentation after</div><div class='add'>+	  comment at beginning of buffer failed.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (font-lock-defaults): unless XEmacs, set</div><div class='add'>+	  font-lock variables in ruby-mode-hook.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 15:56:20 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): accepts optional base argument. [new]</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_fix2str): should not handle negative fixnum values</div><div class='add'>+	  int32 via calling sprintf() directly.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 15:54:02 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): clear replaced method from the cache.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 12:38:47 2002  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time#xmlschema): new optional argument</div><div class='add'>+	  fractional_seconds to specify a number of digits of</div><div class='add'>+	  fractional part of the time.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 13:18:11 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_member): beginning check was</div><div class='add'>+	  wrong. [ruby-talk:30252]</div><div class='add'>+</div><div class='add'>+Sat Jan  5 03:07:34 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new2): NULL pointer check added.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 00:19:12 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): strdup()'ed twice.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 18:29:10 2002  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module_under): should locate predefined</div><div class='add'>+	  module using rb_const_defined_at().</div><div class='add'>+</div><div class='add'>+Fri Jan  4 17:23:49 2002  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-forward-string): forward a string. [new]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-region): handle nested parentheses</div><div class='add'>+	  in a string and terminators in #{}.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 23:34:25 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): add -I. to CPPFLAGS.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): srcdir support(.def and depend file).</div><div class='add'>+</div><div class='add'>+Wed Jan  2 11:51:56 2002  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): abandon vfork.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan  1 02:16:48 2002  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: add dir_config.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (fake.rb): set RUBY_VERSION.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 14:20:46 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): always store copy of filename.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_compile_file): no longer need to strdup() here.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 05:26:40 2001  Ferris McCormick  &lt;fmccor@inforead.com&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: sparc linux needs different FLUSH_REGISTER_WINDOWS</div><div class='add'>+</div><div class='add'>+Mon Dec 31 04:27:28 2001  Minero Aoki  &lt;aamine@mx.edit.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Protocol#start returns the return value of</div><div class='add'>+	  block.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: set timeout limit by default.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: new methods WriteAdapter#write, puts,</div><div class='add'>+	  print, printf.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: rename HTTP#get2 to request_get, post2 to</div><div class='add'>+	  request_post ...</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: should not resolve HELO domain automatically.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 00:59:16 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb (have_library): accept -lm</div><div class='add'>+	  unconditionally on mswin32/mingw32.</div><div class='add'>+</div><div class='add'>+Sat Dec 29 01:55:42 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): abandon stclass optimization.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 14:39:05 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_cmpint): fixed typo.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 18:43:04 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): deny "0_".</div><div class='add'>+</div><div class='add'>+Thu Dec 27 01:54:02 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): allow "0\n" and so on.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 19:24:21 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_invalid_str): utility function to show inspect()'ed</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): prints invalid strings in inspect()'ed</div><div class='add'>+	  format.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Float): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 02:41:29 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_convert_type): no longer use rb_rescue().</div><div class='add'>+</div><div class='add'>+Tue Dec 25 18:32:16 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): initialize taint status of match object.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 02:37:49 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb, lib/prettyprint.rb: new files.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 02:11:17 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_convert_type): check method response check before</div><div class='add'>+	  invoking rb_rescue().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_check_convert_type): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 02:37:40 2001  Le Wang  &lt;lewang@bigfoot.com&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords):</div><div class='add'>+	  fix font-lock problem [ruby-talk:29296].</div><div class='add'>+</div><div class='add'>+Sat Dec 22 22:52:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval): wrong cast to time_t.</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 20:33:34 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): make up "#$;" handling.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:18:17 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.h, ruby.h, util.h: enable prototypes in C++.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 15:12:41 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): result should not be negative unless</div><div class='add'>+	  NEGATIVE_TIME_T is defined.</div><div class='add'>+</div><div class='add'>+	* time.c (time_new_internal): should check tv_sec overflow too.</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval): should check time_t range when time is</div><div class='add'>+	  initialized from float.</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): uses modf(3).</div><div class='add'>+</div><div class='add'>+Fri Dec 21 03:15:52 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): must not convert Method to Proc.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 01:17:57 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (with_destdir): new.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: prefix target directories with $(DESTDIR) all.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: no need to mkdir $(libdir)</div><div class='add'>+</div><div class='add'>+Thu Dec 20 14:08:20 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: rename Net::Socket to Net::BufferedSocket</div><div class='add'>+</div><div class='add'>+Thu Dec 20 13:51:52 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): add frozen class/module check.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_declare): add frozen class/module check.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 01:01:50 2001  takuma ozawa  &lt;metal@mine.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_to_a): should propagate taint.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 16:58:29 2001  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: new methods</div><div class='add'>+	  Readline::basic_word_break_characters,</div><div class='add'>+	  Readline::basic_word_break_characters=,</div><div class='add'>+	  Readline::completer_word_break_characters,</div><div class='add'>+	  Readline::completer_word_break_characters=,</div><div class='add'>+	  Readline::basic_quote_characters,</div><div class='add'>+	  Readline::basic_quote_characters=,</div><div class='add'>+	  Readline::completer_quote_characters,</div><div class='add'>+	  Readline::completer_quote_characters=,</div><div class='add'>+	  Readline::filename_quote_characters,</div><div class='add'>+	  Readline::filename_quote_characters=.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 14:05:00 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): define_method should follow</div><div class='add'>+	  default method visibility.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): should warn if the default method visibility</div><div class='add'>+	  is "module_function" (can be error).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): should define class/module method</div><div class='add'>+	  also if the visibility is "module_function".</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): should call hook method</div><div class='add'>+	  "method_added", and "singleton_method_added".</div><div class='add'>+</div><div class='add'>+Wed Dec 19 11:42:13 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: use RESIZE_CAPA for capacity change.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 03:08:40 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: date.rb is not required anymore.</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: fix document.  refine IPv6 regex.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 23:24:53 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): add listen method to</div><div class='add'>+	  TCPServer and UNIXServer.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 17:54:53 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: Hash#indexes -&gt; Hash#select.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 01:02:13 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): should not select a thread which is</div><div class='add'>+	  not yet initialized.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 18:53:49 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): swap arguments of OBJ_INFECT.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 16:52:20 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: add prototypes.</div><div class='add'>+	  rb_gc_enable(), rb_gc_disable(), rb_gc_start(), rb_str_new5()</div><div class='add'>+	  rb_str_buf_append(), rb_str_buf_cat(), rb_str_buf_cat2(),</div><div class='add'>+	  rb_str_dup_frozen()</div><div class='add'>+</div><div class='add'>+	* ruby.h: added declaration.</div><div class='add'>+	  rb_defout, rb_stdin, rb_stdout, rb_stderr, ruby_errinfo</div><div class='add'>+</div><div class='add'>+	* rubyio.h: changed double include guard macro to RUBYIO_H.</div><div class='add'>+</div><div class='add'>+	* array.c (inspect_call): make static.</div><div class='add'>+</div><div class='add'>+	* eval.c (dvar_asgn): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_read): ditto.</div><div class='add'>+</div><div class='add'>+	* lex.c (rb_reserved_word): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: (req_list_head, req_list_last): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 15:41:24 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): wrong boundary check.</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 15:19:32 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: new method `gmtoff', `gmt_offset' and `utc_offset'.</div><div class='add'>+	  (time_utc_offset): new function.</div><div class='add'>+	  (Init_Time): bind above methods to `time_utc_offset'.</div><div class='add'>+</div><div class='add'>+	* time.c: 64bit time_t support.</div><div class='add'>+	  (time_s_at): use NUM2LONG instead of NUM2INT for tv_sec.</div><div class='add'>+	  (time_arg): initialize tm_isdst correctly.</div><div class='add'>+	  use long to initialize tm_year.</div><div class='add'>+	  (search_time_t): renamed from `make_time_t'.</div><div class='add'>+	  (make_time_t): call `timegm' and `mktime' instead of `search_time_t'</div><div class='add'>+	  if available.</div><div class='add'>+	  (time_to_i): use LONG2NUM instead of INT2NUM.</div><div class='add'>+	  (time_localtime): check localtime failure.</div><div class='add'>+	  (time_gmtime): check gmtime failure.</div><div class='add'>+	  (time_year): use LONG2NUM instead of INT2FIX.</div><div class='add'>+	  (time_to_a): use long for tm_year.</div><div class='add'>+	  (time_dump): check tm_year which is not representable with 17bit.</div><div class='add'>+	  (time_load): initialize tm_isdst.</div><div class='add'>+</div><div class='add'>+	* configure.in: check existence of `mktime' and `timegm'.</div><div class='add'>+	  check existence of tm_gmtoff field of struct tm.</div><div class='add'>+	  fix negative time_t for 64bit time_t.</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c: fix overflow by tm_year + 1900.</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: use Time#utc_offset.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 00:02:04 2001  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (find_class_path): should initialize iv_tbl if it's</div><div class='add'>+	  NULL.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 04:23:36 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: new method Net::POP3.APOP</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: set default Content-Type to</div><div class='add'>+	  x-www-form-urlencoded (causes warning)</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: remove Net::NetPrivate module.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 00:16:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class): should return the existing class if</div><div class='add'>+	  the class is already defined and its superclass is identical to</div><div class='add'>+	  the specified superclass.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_under): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module): should return the existing module if</div><div class='add'>+	  the module is already defined.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 09:52:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_new_internal): avoid loop to calculate negative</div><div class='add'>+	  div, mod.</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): should handle Bignums.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 17:39:16 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_pop): should ELTS_SHARED flag check before</div><div class='add'>+	  REALLOC.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 12:45:28 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match_m): should convert an argument into</div><div class='add'>+	  regexp if it's a string.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 03:40:23 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_select): Array#select(n,m,...) now works like</div><div class='add'>+	  Array#indexes(n,m,..). [new, experimental]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_select): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_select): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (match_select): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_select): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 03:17:19 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_real): follow included modules.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 23:37:51 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.h: change prototype of ruby_qsort() to accord with its</div><div class='add'>+	  definition.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 20:30:01 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (STR_ASSOC): use FL_USER3 instead of FL_USER2.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 17:40:02 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): make up pushback call.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 02:09:28 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_modify): should copy the internal buffer if the</div><div class='add'>+	  modifying buffer is shared.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_shared): make an internal buffer of an array</div><div class='add'>+	  to be shared.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift): avoid sliding an internal buffer by</div><div class='add'>+	  using shared buffer.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): avoid copying the buffer.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 01:06:56 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): should freeze __FILE__ string.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 18:06:26 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: calls on_connect before conn_command</div><div class='add'>+</div><div class='add'>+Sat Dec  8 23:27:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): old behavior restored.  rationale: a) if you</div><div class='add'>+	  want to call to_s for arrays, you can just call print a, "\n".</div><div class='add'>+	  b) to_s wastes memory if array (and sum of its contents) is</div><div class='add'>+	  huge.  c) now any object that has to_ary is treated as an array,</div><div class='add'>+	  using rb_check_convert_type().</div><div class='add'>+</div><div class='add'>+Sat Dec  8 22:40:38 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_initialize): now accepts a block to calculate</div><div class='add'>+	  the default value. [new]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aref): call "default" method to get the value</div><div class='add'>+	  corresponding to the non existing key.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_default): get the default value based on the</div><div class='add'>+	  block given to 'new'.  Now it takes an optional "key" argument.</div><div class='add'>+	  "default" became the method to get the value for non existing</div><div class='add'>+	  key.  Users may override "default" method to change the hash</div><div class='add'>+	  behavior.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_set_default): clear the flag if a block is given</div><div class='add'>+	  to 'new'</div><div class='add'>+</div><div class='add'>+Sat Dec  8 02:29:54 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): undef Data.allocate, left Data.new.</div><div class='add'>+</div><div class='add'>+Fri Dec  7 19:12:14 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: SMTP.new requires at least one arg.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: POP.new requires at least one arg.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: uses "raise *Error.new" instead of simple raise.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.new requires at least one arg.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: changes implicit start algorithm.</div><div class='add'>+</div><div class='add'>+Fri Dec  7 15:49:39 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ignore adding -Wl,-R to DLDFLAGS when the directory</div><div class='add'>+	  is $topdir.</div><div class='add'>+</div><div class='add'>+Fri Dec  7 13:58:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_scrollok): use RTEST().</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_idlok): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_keypad): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_idlok): idlok() may return void on</div><div class='add'>+	  some platforms; so don't use return value.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_scrollok): ditto for consistency.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: replace FIX2INT() by typechecking NUM2INT().</div><div class='add'>+</div><div class='add'>+Fri Dec  7 09:51:00 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): should not process immature #$x and</div><div class='add'>+	  #@x interpolation, e.g #@#@ etc.</div><div class='add'>+</div><div class='add'>+Fri Dec  7 03:21:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): sort_by does not have to be stable always.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): call qsort directly to gain performance.</div><div class='add'>+</div><div class='add'>+Thu Dec  6 18:52:28 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: add -Wl,-R flags to DLDFLAGS on netbsdelf.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec  6 09:15:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_qsort): ruby_qsort(qs6) is now native thread safe.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): it must be a bug if it's called when</div><div class='add'>+	  errno == 0.</div><div class='add'>+</div><div class='add'>+Wed Dec  5 23:36:56 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (WC2MBC1ST): should not pass through &gt; 0x80 number in UTF-8.</div><div class='add'>+</div><div class='add'>+Wed Dec  5 20:05:18 2001  Florian Frank  &lt;flori@ping.de&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_send): should raise EWOULDBLOCK</div><div class='add'>+	  exception.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_send): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  4 17:43:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (DUPSETUP): new SETUP macro for duplication.</div><div class='add'>+</div><div class='add'>+	* time.c (time_dup): implement in Time class using DUPSETUP.</div><div class='add'>+</div><div class='add'>+	* time.c (time_getlocaltime): new method;  probably requires</div><div class='add'>+	  better name than getlocaltime. [new,experimental]</div><div class='add'>+</div><div class='add'>+	* time.c (time_getgmtime): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_dup): uses DUPSETUP.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): uses DUPSETUP.  now properly copies</div><div class='add'>+	  instance variables too.</div><div class='add'>+</div><div class='add'>+Tue Dec  4 03:49:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): EAGAIN/EWOULDBLOCK should not terminate and</div><div class='add'>+	  throw away the input.</div><div class='add'>+</div><div class='add'>+	* time.c (time_new_internal): underflow adjustment must not use</div><div class='add'>+	  negative div/mod.</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): should consider tv_usec on non Fixnum number</div><div class='add'>+	  comparison.</div><div class='add'>+Sun Dec  9 23:00:54 2001  Keiju Ishitsuka &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+	* matrix.rb: Vector#* bug. reported from Massimiliano Mirra</div><div class='add'>+	  &lt;info@chromatic-harp.com&gt;.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 22:15:59 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): should replace with last elements.</div><div class='add'>+</div><div class='add'>+Mon Dec  3 16:06:57 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: remove -L/usr/local/lib.</div><div class='add'>+</div><div class='add'>+	* configure.in: add -Wl,-export-dynamic on NetBSD.</div><div class='add'>+</div><div class='add'>+Mon Dec  3 16:04:16 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: not use X11BASE, since it's not always set.</div><div class='add'>+</div><div class='add'>+Mon Dec  3 13:53:49 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime): buffer length condition was wrong.</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): should backup buf to the original</div><div class='add'>+	  buffer.</div><div class='add'>+</div><div class='add'>+Mon Dec  3 09:59:08 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): must detect result overflow.</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (time_new_internal): round usec overflow and underflow</div><div class='add'>+	  here.</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): move operand overflow/underflow check to</div><div class='add'>+	  time_new_internal().</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): should consider tv_usec too.</div><div class='add'>+</div><div class='add'>+Mon Dec  3 03:32:22 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: apply patch from NetBSD's pkgsrc (patch-aa).</div><div class='add'>+</div><div class='add'>+Sun Dec  2 22:01:52 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use GCC, not without_gcc. remove without_gcc.</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: check for curses.h.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: check if $CFLAGS includes DBM_HDR.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 12:13:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_gmtime): time_modify() should be called even if tm</div><div class='add'>+	  struct is not calculated yet.</div><div class='add'>+</div><div class='add'>+Fri Nov 30 17:02:55 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set target_cpu to i386 on cygwin and mingw32.</div><div class='add'>+</div><div class='add'>+	* configure.in: default --enable-shared to yes on cygwin and mingw32.</div><div class='add'>+</div><div class='add'>+Fri Nov 30 00:25:28 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: Appendix B is duplicated.</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 29 00:28:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): object with to_str must be treated as a</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Wed Nov 28 18:46:28 2001  Ville Mattila  &lt;mulperi@iki.fi&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): should subtract timeofday() from</div><div class='add'>+	  limit, not reverse.</div><div class='add'>+</div><div class='add'>+Wed Nov 28 16:03:28 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (scan_hex): x is not a hexadecimal digit.</div><div class='add'>+</div><div class='add'>+Wed Nov 28 13:38:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): should treat the case that</div><div class='add'>+	  select(2) returns 0, if a thread is under both WAIT_SELECT and</div><div class='add'>+	  WAIT_TIME.  Jakub Travnik &lt;J.Travnik@sh.cvut.cz&gt; actually fixed</div><div class='add'>+	  this bug.</div><div class='add'>+</div><div class='add'>+Tue Nov 27 02:15:25 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): must distinguish -0.0 from 0.0.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 20:57:24 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup*, ext/syslog/*: import the "syslog" module from the</div><div class='add'>+	  rough ruby project.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 16:14:42 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_all): tweak mark order for little bit better scan.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 16:54:59 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mypopen): fixed that mypclose() didn't really close</div><div class='add'>+	  pipe.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): set STARTF_USESTDHANDLES flag only</div><div class='add'>+	  when some handles are passed.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 16:31:28 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_i): slight performance boost.</div><div class='add'>+</div><div class='add'>+Sun Nov 25 21:02:18 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): change types of second and third arguments</div><div class='add'>+	  from char to int.</div><div class='add'>+</div><div class='add'>+Thu Nov 22 20:15:28 2001  TAMURA Takashi  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_rest): should call gc_mark_children(), not gc_mark().</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): may cause infinite loop.</div><div class='add'>+</div><div class='add'>+Thu Nov 22 00:28:13 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): should check nesting parentheses in #{}.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 12:22:52 2001  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI#header: do not set Apache.request.status for</div><div class='add'>+	  Location: if Apache.request.status is already set.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 02:24:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (pst_wstopsig): returns nil unless WIFSTOPPED() is</div><div class='add'>+	  non-zero.</div><div class='add'>+</div><div class='add'>+	* process.c (pst_wtermsig): returns nil unless WIFSIGNALED() is</div><div class='add'>+	  non-zero.</div><div class='add'>+</div><div class='add'>+	* process.c (pst_wexitstatus): returns nil unless WIFEXITED() is</div><div class='add'>+	  non-zero.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 00:17:54 2001  Ville Mattila  &lt;mulperi@iki.fi&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): tv_sec and tv_usec should not be</div><div class='add'>+	  negative.</div><div class='add'>+</div><div class='add'>+	* signal.c (posix_signal): do not set SA_RESTART for SIGVTALRM.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 21:09:22 2001  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args2): block_arg may follow the first argument in</div><div class='add'>+	  call_args2.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 02:01:15 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_check): should avoid stack length check during</div><div class='add'>+	  raising SystemStackError exception.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 01:07:13 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): should not terminate string interpolation</div><div class='add'>+	  with newlines in here-docs and newline terminated strings.</div><div class='add'>+</div><div class='add'>+Mon Nov 19 17:58:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_modfunc): should follow NODE_ZSUPER link; based</div><div class='add'>+	  on Guy Decoux's patch in [ruby-talk:25478].</div><div class='add'>+</div><div class='add'>+Mon Nov 19 16:09:33 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): there was buffer overrun.</div><div class='add'>+</div><div class='add'>+Mon Nov 19 14:14:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): term can be any character.</div><div class='add'>+</div><div class='add'>+Mon Nov 19 04:58:42 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (header): support for Apache. thanks to</div><div class='add'>+	  Shugo Maeda &lt;shugo@ruby-lang.org&gt;.</div><div class='add'>+</div><div class='add'>+Sun Nov 18 19:37:55 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: needless conditionals.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): parse error at unterminated regex /#{.</div><div class='add'>+	  (ruby-bugs-ja:PR#142)</div><div class='add'>+</div><div class='add'>+Sat Nov 17 12:37:39 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): should give length to utf8_to_uv().</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_to_uv): add length check.</div><div class='add'>+</div><div class='add'>+Sat Nov 17 01:41:52 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* massages: replace "wrong #" by "wrong number".</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): output Infinity and NaN explicitly.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): support new explicit float format.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_wait_for): select may cause ERESTART on</div><div class='add'>+	  Solaris.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 15:29:39 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): non-nil separator must be converted to</div><div class='add'>+	  String.  and separators' total length was wrong.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 03:37:17 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): remove USE_WIN32_RTL_ENV block since it's</div><div class='add'>+	  obsoleted.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h: sort out #if 0 - #endif or others.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 00:07:12 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_to_s): if rb_output_fs is nil, insert newlines</div><div class='add'>+	  between array elements (use rb_default_rs as newline literal)</div><div class='add'>+	  [experimental].</div><div class='add'>+</div><div class='add'>+Wed Nov 14 15:16:23 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (init_mark_stack): no need to clear mark_stack.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_all): need to handle finalizer mark.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_rest): use MEMCPY instead of memcpy.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): earlier const check to avoid pusing special</div><div class='add'>+	  constants into mark stack.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 01:12:07 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (waitpid): fix wait count.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (poll_child_status): rename from wait_child().</div><div class='add'>+</div><div class='add'>+Wed Nov 14 01:33:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_to_s): 'to_s' now takes optional argument to</div><div class='add'>+	  specify radix. [new]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_to_s): ditto. [new]</div><div class='add'>+</div><div class='add'>+Tue Nov 13 19:50:30 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: do not override CC if set.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 16:49:16 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mypopen): return error status instead of calling</div><div class='add'>+	  rb_sys_fail().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_spawn): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 14:39:11 2001  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandle): should not re-register sighandler if</div><div class='add'>+	  POSIX_SIGNAL is defined.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 12:55:59 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_spawn): use CreateChild() instead of calling</div><div class='add'>+	  CreateProcess() directly. Original patches comes from Patrick Cheng.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mypopen): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mypclose): use rb_syswait() instead of waiting in this</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (waitpid): use wait_child() instead of _cwait().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): added. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wait_child): added. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (FindFirstChildSlot): added. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (FindChildSlot): added. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (FindPipedChildSlot): added. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CloseChildHandle): added. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (FindFreeChildSlot): added. [new]</div><div class='add'>+</div><div class='add'>+Tue Nov 13 12:38:12 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (envix): use GET_ENVIRON and FREE_ENVIRON to get environment</div><div class='add'>+	  variables list.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_keys): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_key): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_values): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_keys): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_value): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_to_a): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_size): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_empty_p): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_has_value): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_index): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_to_hash): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (win32_getenv): use static buffer.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (win32_get_environ): get environment</div><div class='add'>+	  variables list. [new]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (win32_free_environ): free environment</div><div class='add'>+	  variables list. [new]</div><div class='add'>+</div><div class='add'>+Mon Nov 12 16:48:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): errat array may be empty.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 01:30:37 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd): should not upgrade safe level unless</div><div class='add'>+	  explicitly specified by argument newly added.</div><div class='add'>+</div><div class='add'>+	* signal.c (sig_trap): should not allow tainted trap closure.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_trace_var): should not allow trace_var on safe</div><div class='add'>+	  level higher than 3.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_trace_var): should not allow tainted trace</div><div class='add'>+	  closure.</div><div class='add'>+</div><div class='add'>+Sun Nov 11 00:12:23 2001  TAMURA Takashi  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: do not use static stack until system stack overflows.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 03:57:09 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): should call Exception#exception instead of</div><div class='add'>+	  calling rb_exc_new3() directly.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_exception): set "mesg" directly to the clone.  it</div><div class='add'>+	  might be better to set mesg via some method for flexibility.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 00:14:24 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (cvar_override_check): should print original module</div><div class='add'>+	  name, if 'a' is T_ICLASS.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): float '1_.0' should not be allowed.</div><div class='add'>+</div><div class='add'>+	* variable.c (var_getter): should care about var as Qfalse</div><div class='add'>+	  (ruby-bugs#PR199).</div><div class='add'>+</div><div class='add'>+Fri Nov  9 13:50:06 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.status.in: make CFLAGS same as Makefile's one.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 20:20:37 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_trap_eval): avoid annoying warning with signal.</div><div class='add'>+	  [ruby-talk:23225]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): adjust caller source file/line while</div><div class='add'>+	  evaluating optional arguments.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 18:41:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (cmpint): &lt;=&gt; or block for {min,max} may return bignum.</div><div class='add'>+</div><div class='add'>+	* array.c (sort_1): use rb_compint.</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (min_ii): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (min_ii): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (max_i): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (max_ii): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 18:21:02 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): forgot to initialize 'p'.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 14:52:15 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: use String#dump to generate Ruby string literal.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 15:46:54 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eql): should override 'eql?'</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_hash): should override 'hash' too.</div><div class='add'>+</div><div class='add'>+Tue Nov  6 14:38:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (security): always give warning for insecure PATH.</div><div class='add'>+</div><div class='add'>+	* dir.c (my_getcwd): do not rely on MAXPATHLEN.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov  6 14:17:14 2001  Amos Gouaux &lt;amos+ruby@utdallas.edu&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (getquota_response): use astring for mailbox</div><div class='add'>+	  names.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (getacl_response): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov  5 17:09:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): should not call rb_f_block_given_p().</div><div class='add'>+</div><div class='add'>+Sat Nov  3 23:33:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): should terminate string by NUL.</div><div class='add'>+</div><div class='add'>+Sat Nov  3 22:28:51 2001  Keiju Ishitsuka &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* matrix.rb (Matrix#column_vectors, Matrix#row_vectors): ditto bug.</div><div class='add'>+	  this bug report and fix by tsutomu@nucba.ac.jp.</div><div class='add'>+</div><div class='add'>+	* forwardable.rb: change raise to Kernel::raise</div><div class='add'>+</div><div class='add'>+Sat Nov  3 10:11:57 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): better error message.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 14:08:42 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_aref): idx may be a Bignum.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_aref): negative index must return zero.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 13:23:50 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): should NOT treat last element of</div><div class='add'>+	  structs and arrays specially.</div><div class='add'>+</div><div class='add'>+Wed Oct 31 16:59:25 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): should initialize ruby_frame-&gt;self;</div><div class='add'>+</div><div class='add'>+Wed Oct 31 15:09:28 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_VARS): should not set DVAR_DONT_RECYCLE if _old</div><div class='add'>+	  ruby_vars is already force_recycled.</div><div class='add'>+</div><div class='add'>+Wed Oct 31 10:28:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): handles mark stack overflow.</div><div class='add'>+</div><div class='add'>+	* gc.c (PUSH_MARK): use static mark stack, no more recursion.</div><div class='add'>+</div><div class='add'>+Wed Oct 31 02:44:06 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI::Cookie::parse(): Ignore duplicate keys caused by</div><div class='add'>+	  Netscape bug.</div><div class='add'>+</div><div class='add'>+Tue Oct 30 18:21:51 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: follow the change of rb_io_puts().</div><div class='add'>+</div><div class='add'>+Tue Oct 30 14:04:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): do smart chomp if $/ == '\n'. [new]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): don't treat Array specially.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_cmp): should convert bignum to float.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_eval): can't modify untainted binding.</div><div class='add'>+</div><div class='add'>+Mon Oct 29 16:08:30 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): should preserve p0 value.</div><div class='add'>+</div><div class='add'>+Mon Oct 29 14:56:44 2001  Usaku Nakamura &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_protect_inspect): follow the change of array.c.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): follow the change of rb_protect().</div><div class='add'>+</div><div class='add'>+	* eval.c (method_proc, umethod_proc, rb_catch): cast the first</div><div class='add'>+	  parameter of rb_iterate() to avoid VC++ warning.</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_update, fsdbm_replace): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 29 07:57:31 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): should allow interpolation of $-x.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): empty iv_tbl may cause infinite loop.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (cvar_override_check): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 27 23:01:19 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): convert Bignum to Float, instead of</div><div class='add'>+	  reverse.</div><div class='add'>+</div><div class='add'>+Fri Oct 26 06:19:29 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_localtime): getting tm should not be prohibited for</div><div class='add'>+	  frozen time objects.</div><div class='add'>+</div><div class='add'>+	* time.c (time_gmtime): ditto.</div><div class='add'>+</div><div class='add'>+	* version.c (Init_version): freeze RUBY_VERSION,</div><div class='add'>+	  RUBY_RELEASE_DATE, and RUBY_PLATFORM.</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): freeze File::SEPARATOR, ALT_SEPARATOR and</div><div class='add'>+	  PATH_SEPARATOR.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_cmp): should check operand type before calling</div><div class='add'>+	  get_stat().</div><div class='add'>+</div><div class='add'>+Thu Oct 25 10:28:15 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd): should not invoke "call" with a block on</div><div class='add'>+	  any occasion.</div><div class='add'>+</div><div class='add'>+Wed Oct 24 03:25:31 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_aref): idx may be a Bignum.</div><div class='add'>+</div><div class='add'>+Tue Oct 23 01:21:19 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): fix self switching in Proc#call</div><div class='add'>+	  (ruby-bugs-ja#PR108) and GC failure.  use Qundef instead of 0</div><div class='add'>+	  to direct not switching self.</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (call_end_proc): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_yield): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 23 01:15:43 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_global_entry): reconstruct global variable</div><div class='add'>+	  aliasing (sharing global_entry-&gt;var with other global_entry).</div><div class='add'>+</div><div class='add'>+	* variable.c (undef_getter): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (undef_setter): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (val_setter): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (mark_global_entry): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_hooked_variable): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_trace_var): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (remove_trace): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_untrace_var): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gvar_get): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (trace_en): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gvar_set): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gvar_defined): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_alias_variable): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 22 18:53:55 2001  Masahiro Tanaka  &lt;masa@stars.gsfc.nasa.gov&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_remainder): a bug in Numeric#remainder.</div><div class='add'>+</div><div class='add'>+Mon Oct 22 15:21:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): END might be called within END</div><div class='add'>+	  block.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_clone): should not copy class name, since clone</div><div class='add'>+	  should remain anonymous.</div><div class='add'>+</div><div class='add'>+Fri Oct 19 23:40:37 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (remove_trace): should not access already freed area.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_untrace_var): fix memory leak.</div><div class='add'>+</div><div class='add'>+Fri Oct 19 17:55:14 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_uclass): cloned class is not user</div><div class='add'>+	  class. (ruby-bugs-ja#PR103)</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): Struct subclass couldn't</div><div class='add'>+	  load. (ruby-bugs-ja#PR104)</div><div class='add'>+</div><div class='add'>+Wed Oct 17 14:12:50 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (alias_fixup): added. ad hoc support for ordinary</div><div class='add'>+	  global variable aliasing. when original entry is set, make the</div><div class='add'>+	  alias to refer directly as possible.</div><div class='add'>+</div><div class='add'>+	* variable.c (alias_getter, alias_setter): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_alias_variable): ditto. and no need to mark alias</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gvar_defined): refer the original entry of an alias.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 23:29:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): self in a block given to define_method now be</div><div class='add'>+	  switched to the receiver of the method.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): added new parameter to allow self</div><div class='add'>+	  switching.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 21:38:15 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): check stack level with rb_stack_check().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h (rb_stack_check): added. [new]</div><div class='add'>+</div><div class='add'>+Tue Oct 16 13:18:47 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_initialize): optional block with</div><div class='add'>+	  Module.new. [new] (from 2001-10-10)</div><div class='add'>+</div><div class='add'>+Tue Oct 16 00:07:06 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): disallow alpha-numeric and mbchar for</div><div class='add'>+	  terminator of %string.</div><div class='add'>+</div><div class='add'>+Mon Oct 15 18:00:05 2001  Pit Capitain  &lt;pit@capitain.de&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): wrong increment for non alphanumeric</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Mon Oct 15 05:23:02 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): support "%B".</div><div class='add'>+</div><div class='add'>+Wed Oct 10 03:11:47 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_clone): should copy internal data too.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_clone): Numeric should not be copied by clone.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_clone): should check immediate values.</div><div class='add'>+</div><div class='add'>+	* parse.y (command): `yield' should take command_args.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_quotedwords): %w(...) is not a string.</div><div class='add'>+</div><div class='add'>+Tue Oct  9 18:40:35 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): activate the case NT.</div><div class='add'>+</div><div class='add'>+Tue Oct  9 17:08:00 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_status_name): separated from</div><div class='add'>+	  rb_thread_inspect(). return string expression for thread status.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_status, rb_thread_inspect): use</div><div class='add'>+	  thread_status_name().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_priority_set): return the priority not but</div><div class='add'>+	  self.</div><div class='add'>+</div><div class='add'>+Sat Oct  6 23:07:08 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_MATCH3 was confusing left and right. sigh.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 15:19:46 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_unique): should not dump anonymous class.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 11:59:13 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_s_new): revived.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): define Proc.new instead of Proc.allocate to</div><div class='add'>+	  inhibit from creating uninitialized Proc.</div><div class='add'>+</div><div class='add'>+Thu Oct  4 14:11:03 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): EALREADY is the equivalent</div><div class='add'>+	  for EINPROGRESS in ws2_32.lib.</div><div class='add'>+</div><div class='add'>+Wed Oct  3 20:11:06 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_alloc): avoid infinite recursion.</div><div class='add'>+</div><div class='add'>+Wed Oct  3 16:49:49 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (rb_gdbm_fetch): str is a VALUE now.</div><div class='add'>+</div><div class='add'>+Wed Oct  3 13:32:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): better allocation type check for</div><div class='add'>+	  TYPE_UCLASS. usage of allocation framework is disabled for now.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class_path): Module may have subclass.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_update): should maintain original negative</div><div class='add'>+	  offset.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat_set): ditto</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_nth_match): should check negative nth.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_nth_defined): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct  2 19:12:47 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (catname): allow trailing '/' for the destination.</div><div class='add'>+</div><div class='add'>+Tue Oct  2 18:31:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should override existing class.</div><div class='add'>+</div><div class='add'>+Tue Oct  2 17:08:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_alloc): general instance allocation framework.</div><div class='add'>+	  use of NEWOBJ() is deprecated except within 'allocate' method.</div><div class='add'>+</div><div class='add'>+Tue Oct  2 08:04:52 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): TYPE_UCLASS check should be inversed.</div><div class='add'>+</div><div class='add'>+Mon Oct  1 19:18:54 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_addr): getsockname(2) may result len = 0.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_peeraddr): getpeername(2) may result</div><div class='add'>+	  len = 0.</div><div class='add'>+</div><div class='add'>+Mon Oct  1 09:59:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat_set): support function for new argument</div><div class='add'>+	  pattern String#[re,offset] = val. [new]</div><div class='add'>+</div><div class='add'>+Sat Sep 29 02:30:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_BLOCK): rb_gc_force_recycle() was called too much.</div><div class='add'>+	  Should not be called if SCOPE_DONT_RECYCLE is set.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 22:21:52 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aref_m): new argument pattern</div><div class='add'>+	  String#[re,offset]. [new]</div><div class='add'>+</div><div class='add'>+Wed Sep 26 19:02:39 2001  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: allow 'primary[] = arg'</div><div class='add'>+</div><div class='add'>+Tue Sep 25 10:46:42 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (isInternalCmd): check return value of NtMakeCmdVector</div><div class='add'>+	  (Tietew &lt;tietew@tietew.net&gt;'s patch).</div><div class='add'>+</div><div class='add'>+Mon Sep 24 00:55:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): should return an instance of</div><div class='add'>+	  receiver's class.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize): Array.new([1,2,3]) =&gt; [1,2,3]. [new]</div><div class='add'>+</div><div class='add'>+Sat Sep 22 22:16:08 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse): should return an instance of</div><div class='add'>+	  receiver's class.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_times): ditto</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ljust): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rjust): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_center): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 22 12:13:39 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): retrieves file, line information from binding.</div><div class='add'>+</div><div class='add'>+Thu Sep 20 21:25:00 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (MATCH_DATA): access via rb_svar().</div><div class='add'>+</div><div class='add'>+Thu Sep 20 15:20:00 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h (rb_svar): return reference to special variable</div><div class='add'>+	  from local variable index. [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use rb_svar() for NODE_FLIP{2,3}.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_(backref|lastline)_(get|set)): access via rb_svar().</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): push dynamic variables.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_yield): push special variables as dynamic</div><div class='add'>+	  variables($_, $~ and FLIP states).</div><div class='add'>+</div><div class='add'>+Thu Sep 20 15:20:00 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, parse.y (rb_is_local_id): return true if the ID is</div><div class='add'>+	  local symbol. [new]</div><div class='add'>+</div><div class='add'>+	* parse.y (internal_id): make new ID for internal use. [new]</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): allocate internal ID for NODE_FLIP{2,3}.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_local_variables): use rb_is_local_id() to select</div><div class='add'>+	  visible local variables.</div><div class='add'>+</div><div class='add'>+Thu Sep 20 15:20:00 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): SCOPE_SHARED is removed.</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h (rb_thread_scope_shared_p): removed. special</div><div class='add'>+	  variables are no longer shared by threads.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): MATCHDATA is no longer shared by threads.</div><div class='add'>+</div><div class='add'>+Tue Sep 18 11:44:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_init): String.new() =&gt; "" [new]</div><div class='add'>+</div><div class='add'>+Tue Sep 11 20:53:56 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_path): new method.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): wrap DIR into struct, along with path</div><div class='add'>+	  information.</div><div class='add'>+</div><div class='add'>+Sat Sep  8 07:13:42 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: waitfor(): improvement. thanks to</div><div class='add'>+	  nobu.nakada@nifty.ne.jp</div><div class='add'>+</div><div class='add'>+Sat Sep  8 04:34:17 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_restore_context): save current value of</div><div class='add'>+	  lastline and lastmatch in the thread struct for later restore.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context): restore lastline and lastmatch.</div><div class='add'>+</div><div class='add'>+Fri Sep  7 11:27:56 2001  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): should handle negative float value.</div><div class='add'>+</div><div class='add'>+Fri Sep  7 09:44:44 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: waitfor(): bug fix.</div><div class='add'>+</div><div class='add'>+Fri Sep  7 07:11:34 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI#doctype(): bug fix (html4Fr).</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb, lib/cgi.rb: remove VERSION, RELEASE_DATE,</div><div class='add'>+	  VERSION_CODE, RELEASE_CODE. please use REVISION.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI#header(): bug fix.</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb, lib/cgi.rb: concat --&gt; +=</div><div class='add'>+</div><div class='add'>+Thu Sep  6 17:38:18 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): raise if environment variable HOME/LOGDIR</div><div class='add'>+	  not set.</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): avoid infinite loop on a file name with</div><div class='add'>+	  wildcard characters. (ruby-bugs#PR177)</div><div class='add'>+</div><div class='add'>+Thu Sep  6 14:25:15 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_s_hexdigest): remove a debug</div><div class='add'>+	  print.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 13:56:14 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_s_digest,</div><div class='add'>+	  rb_digest_base_s_hexdigest): ensure that a string is given.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 13:28:51 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb (_regexp_quote): fix quote handling, again.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 07:28:56 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): add const qualifiers to ext.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_find_file_ext): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 07:16:14 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): remove duplicating constants.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 03:15:24 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): should check whole ancestors to</div><div class='add'>+	  avoid duplicate module inclusion.</div><div class='add'>+</div><div class='add'>+Wed Sep  5 20:02:27 2001  Shin'ya Adzumi  &lt;adzumi@denpa.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): should check backslash before updating "now"</div><div class='add'>+	  position.</div><div class='add'>+</div><div class='add'>+Wed Sep  5 17:41:11 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb (_regexp_quote): fix quote handling.</div><div class='add'>+</div><div class='add'>+Tue Sep  4 01:03:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): to_s to be alias to inspect.</div><div class='add'>+</div><div class='add'>+Mon Sep  3 22:46:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should support 'keyword='.</div><div class='add'>+</div><div class='add'>+Mon Sep  3 20:26:08 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_find_file_ext): changed from rb_find_file_noext().</div><div class='add'>+</div><div class='add'>+Mon Sep  3 15:12:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): should not adjust argc/argv if -e option</div><div class='add'>+	  is supplied.</div><div class='add'>+</div><div class='add'>+Mon Sep  3 14:11:17 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c: unbreak the build on *BSD with gcc 3.0.1 by removing</div><div class='add'>+	  the conflicting declaration of sys_nerr for *BSD.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 18:50:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): should not alter origargv[].</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): long strings for $0 dumped core.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 09:50:54 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): prevent SEGV when val is longer than the</div><div class='add'>+	  original arguments.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): initialize total length of</div><div class='add'>+	  original arguments at first.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 14:05:28 2001  Brian F. Feldman  &lt;green@FreeBSD.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): use setprogtitle() if it's available.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 03:49:11 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): accept integer flags as mode.</div><div class='add'>+</div><div class='add'>+Fri Aug 31 19:46:05 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): extension table can be supplied from</div><div class='add'>+	  outside.  renamed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): replace rb_find_file_noext by</div><div class='add'>+	  rb_find_file_ext.</div><div class='add'>+</div><div class='add'>+Fri Aug 31 19:26:55 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): should also check feature without</div><div class='add'>+	  extension.</div><div class='add'>+</div><div class='add'>+Fri Aug 31 13:06:33 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): do not rely on decimal point to be '.'</div><div class='add'>+</div><div class='add'>+Wed Aug 29 02:18:53 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): ternary ? can be followed by newline.</div><div class='add'>+</div><div class='add'>+Tue Aug 28 00:40:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): should check static linked libraries</div><div class='add'>+	  before raising exception.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 15:17:40 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal): check identity equality first.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_equal): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 14:38:17 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_strerror): fix a bug that sometimes made null message on</div><div class='add'>+	  win32 (Tietew &lt;tietew@tietew.net&gt;'s patch).</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mystrerror): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 03:15:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): undef Integer::new.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 00:46:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_WHILE should update result for each</div><div class='add'>+	  conditional evaluation.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_UNTIL should return last evaluated value</div><div class='add'>+	  (or value given to break).</div><div class='add'>+</div><div class='add'>+Thu Aug 23 21:59:38 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_i): fix typo.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 10:10:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): should not dump core for "defined?(())".</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): recv can be an instance of descender of</div><div class='add'>+	  oklass if oklass is a Module.</div><div class='add'>+</div><div class='add'>+Wed Aug 22 23:20:03 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_equal): check identity equality first.</div><div class='add'>+</div><div class='add'>+Wed Aug 22 19:58:59 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (intersect_fds): counts intersecting fds.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): only fds requested by</div><div class='add'>+	  each thread count as select_value.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 22:28:09 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (group_member): should check real gid only.</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): do not cache euid, since effective euid may be</div><div class='add'>+	  changed via Process.euid=().</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): return -1 unless every specified access mode</div><div class='add'>+	  is permitted.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 16:09:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): while/until returns the value which is given</div><div class='add'>+	  to break.</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr): using while/until/class/def as an</div><div class='add'>+	  expression is now gives a warning, not an error.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 11:56:02 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eqq): should compare strings based on magical</div><div class='add'>+	  increment (using String#upto), not dictionary order.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 19:53:16 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb: fix support for cross-compiling.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: fix support for autoconf 2.52.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 17:24:15 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): new method for Schewartzian transformed</div><div class='add'>+	  stable sort.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 16:09:05 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_av_set): detect constant overriding for built-in</div><div class='add'>+	  classes/modules.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 15:14:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_escape): escaped backslashes too much.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 13:24:08 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): 'iter' here should be an array.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 12:43:08 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should retrieve __member__ data from</div><div class='add'>+	  non-singleton class.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 23:11:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): class variable override check added.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): ditto</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_declare): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 17 12:13:48 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Protocol.new requires at least one arg.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 17 00:49:51 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): handle backslash escaping of delimiter here.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 23:03:40 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: prevent recursive malloc calls on NEC UX/4800.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 13:54:04 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): fix typo.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 09:53:28 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): avoid VC++6 warning.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 03:50:33 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtCmdGlob): avoid VC++ warning.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: add -I$(srcdir) to CPPFLAGS.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 04:59:15 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/*/extconf.rb: really fix so that they build from any</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 04:04:02 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb: fix so that they build from any</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 01:59:19 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/defs.h: Define NO_UINT64_T instead of emitting an</div><div class='add'>+	  error to fail.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb: Do not exit on error, and utilize</div><div class='add'>+	  NO_UINT64_T to detect if the system has a 64bit integer type.</div><div class='add'>+</div><div class='add'>+Tue Aug 14 21:14:07 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb: do not create Makefile when no 64bit</div><div class='add'>+	  integer type is detected.</div><div class='add'>+</div><div class='add'>+Tue Aug 14 17:09:12 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): new method.</div><div class='add'>+</div><div class='add'>+Tue Aug 14 11:49:00 2001  TOYOFUKU Chikanobu  &lt;toyofuku@juice.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp): remove needless conditional.</div><div class='add'>+</div><div class='add'>+Tue Aug 14 03:23:25 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lstrip_bang) `return Qnil' was missing.</div><div class='add'>+</div><div class='add'>+Mon Aug 13 14:16:46 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c, marshal.c: Detypo: s/SIZEOF_ING/SIZEOF_INT/.</div><div class='add'>+</div><div class='add'>+Sun Aug 12 15:01:58 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cat): fix buffer overflow.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_append): nothing to append actually when `str2'</div><div class='add'>+	  is empty.</div><div class='add'>+</div><div class='add'>+Sat Aug 11 14:43:47 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_inspecting_p): initialize inspect_key if it is</div><div class='add'>+	  not initialized yet.</div><div class='add'>+</div><div class='add'>+Fri Aug 10 22:14:37 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): operands of logical operators are not treated</div><div class='add'>+	  as conditional expression anymore, but propagate conditional</div><div class='add'>+	  status if used in conditionals.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 09:10:32 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: fix problems with BC++ (ruby-bugs#PR161).</div><div class='add'>+</div><div class='add'>+Mon Aug  6 23:47:46 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): associates p/P strings once at last</div><div class='add'>+	  (reverted to 1.26).</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_associate): associates an Array at once, not</div><div class='add'>+	  but a String. realloc's when str_buf.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 17:01:33 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_gc_mark_threads): should mark ruby_cref.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 14:31:37 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_divmod): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 03:29:03 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lstrip_bang): new method.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): new method.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 00:35:03 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_modify): should check frozen and taint</div><div class='add'>+	  status.</div><div class='add'>+</div><div class='add'>+Sun Aug  5 19:28:39 2001  Nobuyoshi Nakada &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_associate): should consider STR_ASSOC too.</div><div class='add'>+</div><div class='add'>+Sun Aug  5 07:46:18 2001  Nobuyoshi Nakada &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undefined): do not recurse if method_missing is</div><div class='add'>+	  undefined.</div><div class='add'>+</div><div class='add'>+Thu Aug  2 21:37:32 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid): now all arguments are optional.</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): waitpid is now alias to wait.</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): waitpid2 is now alias to wait2.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): made public.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_getpty): avoid disturbing SIGCHLD using</div><div class='add'>+	  thread and rb_waitpid.</div><div class='add'>+</div><div class='add'>+Thu Aug  2 11:23:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getpgrp): now takes no argument on all</div><div class='add'>+	  platforms.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setpgrp): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug  2 01:29:42 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (strrdirsep): removed meaningless code.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): reverted to 1.66.</div><div class='add'>+</div><div class='add'>+Wed Aug  1 16:17:47 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_pack_sockaddr_in): added</div><div class='add'>+	  Socket::pack_sockaddr_in(). [new]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_pack_sockaddr_un): added</div><div class='add'>+	  Socket::pack_sockaddr_un(). [new]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_pack_sockaddr_in): added</div><div class='add'>+	  Socket::unpack_sockaddr_in(). [new]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_pack_sockaddr_un): added</div><div class='add'>+	  Socket::unpack_sockaddr_un(). [new]</div><div class='add'>+</div><div class='add'>+Wed Aug  1 15:42:16 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): avoid VC++ warning.</div><div class='add'>+</div><div class='add'>+Tue Jul 31 17:30:53 2001  Usaku Nakamura  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (Init_marshal): fix typos.</div><div class='add'>+</div><div class='add'>+Tue Jul 31 15:16:39 2001  Nobuyoshi Nakada &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (last_status_set): nothing returned, should be void.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (load_addr_info): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 31 12:11:42 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (Init_marshal): new constant Marshal::MAJOR_VERSION</div><div class='add'>+	  and Marshal::MINOR_VERSION.</div><div class='add'>+</div><div class='add'>+Tue Jul 31 07:18:04 2001  Nobuyoshi Nakada &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): scans per path element not per</div><div class='add'>+	  byte/character, including fix of [ruby-talk:18152] and</div><div class='add'>+	  multi-byte pathname support.</div><div class='add'>+</div><div class='add'>+Tue Jul 31 11:52:10 2001  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): ruby_verbose test should be wrapped by</div><div class='add'>+	  RTEST().</div><div class='add'>+</div><div class='add'>+Mon Jul 30 17:54:23 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_index): should return nil (not the default</div><div class='add'>+	  value) if value is not in the hash.</div><div class='add'>+</div><div class='add'>+Mon Jul 30 12:55:47 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_div): new method added.  alias to '/' which</div><div class='add'>+	  should be preserved even if '/' is redefined (e.g. by</div><div class='add'>+	  mathn). [new]</div><div class='add'>+</div><div class='add'>+Mon Jul 30 11:12:14 2001  Amos Gouaux &lt;amos+ruby@utdallas.edu&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: added new commands for managing folder quotas</div><div class='add'>+	  and folder ACLs.</div><div class='add'>+</div><div class='add'>+Mon Jul 30 03:19:53 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): "0 ff".hex should return 0, not 255.</div><div class='add'>+</div><div class='add'>+Fri Jul 27 22:29:41 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): fixed using CharNext().</div><div class='add'>+</div><div class='add'>+Fri Jul 27 18:07:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): extension should be guessed using</div><div class='add'>+	  rb_find_file_noext().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): should call rb_feature_p() after</div><div class='add'>+	  extension completion.</div><div class='add'>+</div><div class='add'>+Fri Jul 27 16:25:52 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): add CHECK_INTS before next, redo, retry to</div><div class='add'>+	  avoid potential uninterruptable infinite loop.</div><div class='add'>+</div><div class='add'>+Thu Jul 26 11:27:12 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_noext, rb_find_file): fix tilde expansion</div><div class='add'>+	  problem.</div><div class='add'>+</div><div class='add'>+Wed Jul 25 17:54:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): use CharNext() to expand.</div><div class='add'>+</div><div class='add'>+Wed Jul 25 17:16:26 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: add some missing function prototypes.</div><div class='add'>+</div><div class='add'>+Wed Jul 25 15:50:05 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): should not expand "." and ".."</div><div class='add'>+	  not following dirsep.</div><div class='add'>+</div><div class='add'>+Wed Jul 25 12:15:32 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_noext): should update f by expanded path.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 24 23:10:47 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (strrdirsep): multi-byte pathname and DOSish separator</div><div class='add'>+	  support. originally comes from Patrick Cheng. [new]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename, rb_file_s_dirname): use</div><div class='add'>+	  strrdirsep(). comes from Patrick Cheng.</div><div class='add'>+</div><div class='add'>+	* file.c (is_absolute_path): restricted in DOSish absolute path</div><div class='add'>+	  with drive letter, and UNC support. originally comes from</div><div class='add'>+	  Patrick Cheng.</div><div class='add'>+</div><div class='add'>+	* file.c (getcwd): define macro using getwd() unless provided.</div><div class='add'>+</div><div class='add'>+Tue Jul 24 19:23:15 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: dig the target subdirectory for</div><div class='add'>+	  lib/* files properly in case of create_makefile("dir/name").</div><div class='add'>+</div><div class='add'>+Mon Jul 23 00:26:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provide_feature): should not tweak extension used for</div><div class='add'>+	  loading.</div><div class='add'>+</div><div class='add'>+Sun Jul 22 21:16:43 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: introduce a couple of new make</div><div class='add'>+	  variables: CLEANFILES and DISTCLEANFILES.  They'd typically be</div><div class='add'>+	  defined in a file "depend".</div><div class='add'>+</div><div class='add'>+Sat Jul 21 09:40:10 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): use fread(3) if PENDING_COUNT is available.</div><div class='add'>+</div><div class='add'>+Fri Jul 20 22:55:01 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xrealloc): fix a dangling bug which led memory</div><div class='add'>+	  reallocation to fail even though the second try after a GC</div><div class='add'>+	  succeeds.</div><div class='add'>+</div><div class='add'>+Fri Jul 20 03:00:46 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_include_p): Module#include? added. [new]</div><div class='add'>+</div><div class='add'>+Fri Jul 20 01:05:50 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (ignorecase_setter): give warning on modifying $=.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): new method. [new]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_eql): separated from rb_str_equal(), make it</div><div class='add'>+	  always be case sensitive. [new]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): made it always be case sensitive.</div><div class='add'>+</div><div class='add'>+Thu Jul 19 13:03:15 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): should not include path in $" value</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): should return 0 explicitly on failure.</div><div class='add'>+</div><div class='add'>+Tue Jul 17 11:44:40 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: enable volatile directive with VC++.</div><div class='add'>+</div><div class='add'>+	* regex.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 17 06:01:12 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* doc/net/smtp.rd.ja, pop.rd.ja, http.rd.ja: new files.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add doc/net/{http,pop,smtp}.rd.ja.</div><div class='add'>+</div><div class='add'>+Tue Jul 17 11:22:01 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (NUM_FAILURE_ITEMS): was confusing NUM_REG_ITEMS and</div><div class='add'>+	  NUM_NONREG_ITEMS, which have happened to be same value.</div><div class='add'>+</div><div class='add'>+Tue Jul 17 11:08:34 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: modify RM macro because command.com/cmd.exe don't</div><div class='add'>+	  recognize single quotation as quote character.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 17 01:38:15 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_new): subclass check moved to this function.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_boot): check less version of rb_class_new().</div><div class='add'>+</div><div class='add'>+Man Jul 16 13:21:30 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_load_ok): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Jul 16 12:58:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should preserve iter status for embedded</div><div class='add'>+	  frame in the block.</div><div class='add'>+</div><div class='add'>+Mon Jul 16 00:04:39 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): may overrun buffer on stack.</div><div class='add'>+</div><div class='add'>+Sun Jul 15 01:38:28 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_insert): forgot to call rb_str_modify().</div><div class='add'>+</div><div class='add'>+Sat Jul 14 12:26:30 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/*/extconf.rb: fix so that they build from any</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+Sat Jul 14 06:20:17 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP#proxy? did not worked.</div><div class='add'>+</div><div class='add'>+Sat Jul 14 02:56:19 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: support multi-level ext/ directories.</div><div class='add'>+	  (e.g. you can have ext/foo, ext/foo/bar and ext/foo/baz)</div><div class='add'>+</div><div class='add'>+Sat Jul 14 02:55:02 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/.cvsignore: let cvs ignore extinit.c.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 23:47:35 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): should consider reverse search.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 22:26:09 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use File::split to split a target into a prefix and</div><div class='add'>+	  a module name.  This also works around a just found bug of</div><div class='add'>+	  String#rindex.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 02:36:10 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): warn only when invoked from multiple</div><div class='add'>+	  threads or block is not given.</div><div class='add'>+</div><div class='add'>+Thu Jul 12 15:11:48 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): workaround for the setup of</div><div class='add'>+	  Cygwin socket(EALREADY).</div><div class='add'>+</div><div class='add'>+Mon Jul  9 16:49:30 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: modify RM macro.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul  8 20:52:02 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: fix a wrong function name: rb_iglob() -&gt; rb_globi().</div><div class='add'>+</div><div class='add'>+Sun Jul  8 16:04:35 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: rename HTTP#request_by_name to send_request.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (ProtoSocket#read): modify typo.</div><div class='add'>+</div><div class='add'>+Sat Jul  7 17:45:35 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_convert_type): should use rb_rescue(), not rb_rescue2().</div><div class='add'>+</div><div class='add'>+	* range.c (range_init): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 18:01:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): copies (actually does not free)</div><div class='add'>+	  generic_ivar on dupif original owns them.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 02:15:06 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: a tempfile must be created with mode 0600.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 20:28:53 2001  Tietew &lt;tietew@tietew.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): should propagate taint mark.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_kconv): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 14:54:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): revamp for simpler implementation.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_noext): use String object, instead of</div><div class='add'>+	  passing char* around.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 22:01:02 2001  Mitsuhiro Kondo  &lt;kondo@nik-prt.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): should use NSLINKMODULE_OPTION_BINDNOW.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 13:44:03 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): local variables 'c' remain uninitialized on</div><div class='add'>+	  xflag.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 10:00:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): prefetched escaped character too early.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 08:58:30 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): add argument check for attr_readers.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 04:22:44 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP#request_by_name): arg order changes.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 04:07:36 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP#request_by_name): bug fix.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: does not write Connection: by default.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: "start" for started protocol is an error.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: "finish" for finished protocol is an error.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 03:17:31 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method HTTP#request_by_name (test)</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new class HTTPGenericRequest</div><div class='add'>+</div><div class='add'>+Tue Jul  3 23:58:29 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: distclean should remove mkmf.log as well.</div><div class='add'>+</div><div class='add'>+Tue Jul  3 18:35:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string_wrap): should push frame (and adjust</div><div class='add'>+	  cbase) before wrapped eval.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): should update ruby_class always after all.</div><div class='add'>+</div><div class='add'>+Tue Jul  3 14:56:27 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): do not change wrapper information.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0):  preserve wrapper information.</div><div class='add'>+</div><div class='add'>+Tue Jul  3 08:59:50 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_name_error): raise NameError instead of LoadError.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 17:22:00 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_exception): clone the receiver exception instead of</div><div class='add'>+	  creating brand new exception object of the receiver.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 09:53:12 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string_wrap): extend new ruby_top_self, not</div><div class='add'>+	  original self.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd): respect ruby_wrapper if set.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): do not update ruby_class unless scope is not</div><div class='add'>+	  provided.</div><div class='add'>+</div><div class='add'>+Sun Jul  1 10:51:15 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): preserve wrapper information.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 30 02:55:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (void_expr): too much warnings for void context</div><div class='add'>+	  (e.g. foo[1] that can be mere Proc call).</div><div class='add'>+</div><div class='add'>+Fri Jun 29 17:23:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_name_error): new function to raise NameError with</div><div class='add'>+	  name attribute set.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): set name and args in the exception</div><div class='add'>+	  object. [new]</div><div class='add'>+</div><div class='add'>+	* error.c (name_name): NameError#name - new method.</div><div class='add'>+</div><div class='add'>+	* error.c (nometh_args): NoMethodError#args - new method.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 15:29:31 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lex.c (rb_reserved_word): lex_state after tRESCUE should be</div><div class='add'>+	  EXPR_MID.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 00:21:28 2001  Keiju Ishitsuka &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: resolve 'ruby -w' warnings.</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb: resolve 'ruby -w' warnings.</div><div class='add'>+</div><div class='add'>+	* lib/irb/multi-irb.rb: resolve 'ruby -w' warnings.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: fix problem for "\\M-\\..." and "\\C-\\..."</div><div class='add'>+	  and resolve 'ruby -w' warnings.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-token.rb: fix typo</div><div class='add'>+</div><div class='add'>+	* lib/shell/command-processor.rb: resolve 'ruby -w' warnings.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 08:53:26 2001  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: new methods POP3.auth_only, POP3#auth_only</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.Proxy returns self if ADDRESS is nil.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: new method ProtocolError#response</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb,smtp.rb,pop.rb,http.rb: add document.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 18:42:42 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): allocation size of the heap unit is doubled for</div><div class='add'>+	  each allocation.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 09:54:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (isdelim): space, tab, and newline are no longer</div><div class='add'>+	  delimiters for glob patterns.</div><div class='add'>+</div><div class='add'>+Sat Jun 23 22:28:52 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_avalue): new conversion scheme between single</div><div class='add'>+	  value and array values.</div><div class='add'>+</div><div class='add'>+	* eval.c (avalue_to_svalue): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): REXPAND now uses avalue_to_svalue(), return</div><div class='add'>+	  and yield too.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): use avalue_to_svalue().</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): Proc#call gives avaules, whereas</div><div class='add'>+	  Proc#yield gives mvalues.</div><div class='add'>+</div><div class='add'>+	* eval.c (bmcall): convert given value (svalue) to avalue.</div><div class='add'>+</div><div class='add'>+Sat Jun 23 18:28:52 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_event): a non-void function</div><div class='add'>+	  should return a value.</div><div class='add'>+</div><div class='add'>+Fri Jun 22 23:17:28 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): workaround for the setup of</div><div class='add'>+	  Cygwin socket.</div><div class='add'>+</div><div class='add'>+Fri Jun 22 23:11:17 2001 Keiju Ishitsuka &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb: fix for require "kconv" problem</div><div class='add'>+</div><div class='add'>+Fri Jun 22 18:08:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): no mvalue_to_svalue conversion here.</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): takes svalue, convert it to mvalue inside.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): parameters for yield/return are always</div><div class='add'>+	  svalues now.</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_mvalue): more strict conversion.</div><div class='add'>+</div><div class='add'>+	* eval.c (mvalue_to_svalue): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 22 17:12:23 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (new_size): prime hash size enabled.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): SO_* constants added.</div><div class='add'>+</div><div class='add'>+Tue Jun 19 22:24:07 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_setjmp): avoid GCC 3.0 warnings.</div><div class='add'>+</div><div class='add'>+Tue Jun 19 18:19:30 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: add new methods:</div><div class='add'>+	  Readline::completion_append_character and</div><div class='add'>+	  Readline::completion_append_character=.</div><div class='add'>+</div><div class='add'>+Tue Jun 19 16:29:50 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_mvalue): new function to convert from svalue</div><div class='add'>+	  to mvalue. [experimental]</div><div class='add'>+</div><div class='add'>+	* eval.c (mvalue_to_svalue): new function to convert from mvalue</div><div class='add'>+	  to svalue.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use mvalue_to_svalue().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): use mvalue_to_svalue().</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): proper mvalue handling.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 17:38:50 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): searches ".rb" and ".so" at the same</div><div class='add'>+	  time.  previous behavior (search ".rb", then ".so") has a</div><div class='add'>+	  security risk (ruby-bugs#PR140).</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_to_ary): new function to replace internal</div><div class='add'>+	  rb_Array(), which never calls to_a, but to_ary (rb_Array() might</div><div class='add'>+	  call both). [new]</div><div class='add'>+</div><div class='add'>+Mon Jun 18 00:43:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (PUSH_FAILURE_POINT): push option status again.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): avoid pushing unnecessary</div><div class='add'>+	  option_set.</div><div class='add'>+</div><div class='add'>+Sat Jun 16 10:58:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): tainted string is OK if wrapped *and*</div><div class='add'>+	  $SAFE &gt;= 4.</div><div class='add'>+</div><div class='add'>+Thu Jun 14 16:27:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): should not nail down higher blocks</div><div class='add'>+	  before preserving original context (i.e. should not alter</div><div class='add'>+	  original context).</div><div class='add'>+</div><div class='add'>+Wed Jun 13 19:34:59 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (Init_Dir): add a new method File::fnmatch? along with</div><div class='add'>+	  File::Constants::FNM_*.  While I am here, FNM_NOCASE is renamed</div><div class='add'>+	  to FNM_CASEFOLD which is commonly used by *BSD and GNU libc.</div><div class='add'>+</div><div class='add'>+Wed Jun 13 09:33:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_yield): new method equivalent to Proc#call but no</div><div class='add'>+	  check for number of arguments. [new]</div><div class='add'>+</div><div class='add'>+Tue Jun 12 14:21:28 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: target_prefix is only for installation, not for</div><div class='add'>+	  build.</div><div class='add'>+</div><div class='add'>+Tue Jun 12 00:41:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_eq): new method Method#==. [new]</div><div class='add'>+</div><div class='add'>+Mon Jun 11 14:29:41 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* confgure.in: add RUBY_CANONICAL_BUILD.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 17:31:47 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (STR_NO_ORIG): STR_NO_ORIG value was different between</div><div class='add'>+	  string.c and gc.c</div><div class='add'>+</div><div class='add'>+Sat Jun  9 22:10:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should convert *non-array at the end of</div><div class='add'>+	  arguments by using Array().</div><div class='add'>+</div><div class='add'>+Sat Jun  9 17:04:30 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): readline library leaves their environment</div><div class='add'>+	  strings uncopied.  "free" check revised.</div><div class='add'>+</div><div class='add'>+Sat Jun  9 16:31:03 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: Use -F and -T for mswin32 because cl.exe doesn't</div><div class='add'>+	  support -o officially and cl.exe considers that *.cc and *.cxx are</div><div class='add'>+	  OBJs.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: Use del instead of rm.</div><div class='add'>+	  All these changes are derived from Nobuyoshi Nakada's patch.</div><div class='add'>+	  Thanks.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 22:37:40 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): avoid __builtin_frame_address(2) to retrieve</div><div class='add'>+	  stack bottom line.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 18:14:12 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (numhash): should shuffle bits by dividing by prime number.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 17:05:21 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): multiple assignment behavior fixed, which</div><div class='add'>+	  results "*a = nil" makes "a == []" now.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 15:25:09 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): should set SCOPE_PUBLIC before calling</div><div class='add'>+	  dln_load().</div><div class='add'>+</div><div class='add'>+Thu Jun  7 17:28:00 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): exclude kDO_BLOCK too much by false condition.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 23:02:36 2001  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/sync.rb: bug fix if obj.initialize has parameters when</div><div class='add'>+	  obj.extend(Sync_m)</div><div class='add'>+</div><div class='add'>+	* lib/mutex_m.rb: modified bit</div><div class='add'>+</div><div class='add'>+Wed Jun  6 16:11:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should check if tainted even when wrap is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 14:34:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mrhs_basic): "*arg" should always be expanded by REXPAND.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): too much optimization for the</div><div class='add'>+	  cases like /(.|a)b/.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 23:58:43 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (fc_i): removed vast string allocation.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 16:45:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): NameError went under StandardError,</div><div class='add'>+	  and NoMethodError went under NameError.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 16:40:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): non identifier symbols should be</div><div class='add'>+	  categorized as ID_JUNK. [new]</div><div class='add'>+</div><div class='add'>+Tue Jun  5 16:15:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_at): use hash table as internal</div><div class='add'>+	  data. [new]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_of): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_list): new function to convert internal</div><div class='add'>+	  data (hash table) to array of strings.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_s_constants): data handling scheme has changed.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 15:16:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): should not call rb_secure(), for</div><div class='add'>+	  last_func may not be set.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl): ioctl should accept any integer within C long</div><div class='add'>+	  range.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 13:41:13 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/extconf.rb: use egrep_cpp.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 12:44:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): wrong type check for modules.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should not dump anonymous classes/modules.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 01:19:34 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): use rb_file_sysopen_internal() if the 3rd</div><div class='add'>+	  argument (permission flags) is given. [new, should be backported?]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_binmode): mode string (e.g. "r+") to flags to</div><div class='add'>+	  open(2).</div><div class='add'>+</div><div class='add'>+Mon Jun  4 23:55:54 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_REXPAND expand an array of 1 element as</div><div class='add'>+	  the element itself. [new, should be backported?]</div><div class='add'>+</div><div class='add'>+	* parse.y (ret_args): should treat "*[a]" in rhs expression as</div><div class='add'>+	  "a", not "[a]".</div><div class='add'>+</div><div class='add'>+Mon Jun  4 04:14:53 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: don't destroy argument.</div><div class='add'>+</div><div class='add'>+Sat Jun  2 23:23:05 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): should push option modifier at the</div><div class='add'>+	  right place.</div><div class='add'>+</div><div class='add'>+Sat Jun  2 23:05:20 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: don't use module_function for Class.</div><div class='add'>+</div><div class='add'>+Sat Jun  2 00:02:22 2001  Keiju Ishitsuka &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* irb messages: fix typos.</div><div class='add'>+</div><div class='add'>+Fri Jun  1 17:26:24 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (replace_i): ignore when key == Qundef.</div><div class='add'>+</div><div class='add'>+Fri Jun  1 16:50:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args2): confusion with list_append() and</div><div class='add'>+	  list_concat() was fixed.</div><div class='add'>+</div><div class='add'>+Fri Jun  1 15:01:40 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): fixed 'print CGI::bar() {}, "\n"' syntax</div><div class='add'>+	  breakage, adding new lex_state status.  sigh. [new]</div><div class='add'>+</div><div class='add'>+Fri Jun  1 11:21:04 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use waitpid on mingw32.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: include &lt;ndbm.h&gt;, not &lt;gdbm.h&gt;.</div><div class='add'>+</div><div class='add'>+Thu May 31 18:34:57 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_unlink): should not allow if $SAFE &gt;= 2.</div><div class='add'>+</div><div class='add'>+Thu May 31 17:23:25 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (Init_Range): define "to_ary".</div><div class='add'>+</div><div class='add'>+Thu May 31 13:30:25 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb, ext/configsub.rb: VERSION -&gt; RUBY_VERSION.</div><div class='add'>+</div><div class='add'>+Thu May 31 08:00:58 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/dir.h: re-add.</div><div class='add'>+</div><div class='add'>+Thu May 31 01:25:59 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: default --with-libc_r to `no' until the problem is</div><div class='add'>+	  fixed. (FreeBSD only)</div><div class='add'>+</div><div class='add'>+Tue May 29 17:24:23 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): unexpected SecurityError happens when -T4.</div><div class='add'>+</div><div class='add'>+Tue May 29 18:46:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): * \1 .. \9 should be</div><div class='add'>+	  backreferences always.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): backreferences corresponding to</div><div class='add'>+	  unclosed/unmatched parentheses should fail always.</div><div class='add'>+</div><div class='add'>+Tue May 29 16:35:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cat): use rb_str_buf_cat() if possible. [new]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_append): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat): remove unnecessary check (type,</div><div class='add'>+	  taint, modify) to gain performance.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_append): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_finish): removed.</div><div class='add'>+</div><div class='add'>+Tue May 29 02:05:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_new): buffering string function. [new]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_append): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_finish): ditto.</div><div class='add'>+</div><div class='add'>+Mon May 28 23:20:43 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove unnecessary AC_CANONICAL_BUILD</div><div class='add'>+</div><div class='add'>+	* defines.h: #define HAVE_SETITIMER on Cygwin(bug fixed).</div><div class='add'>+</div><div class='add'>+	* ruby.c: use relative path from LIBRUBY_SO.</div><div class='add'>+</div><div class='add'>+	* ruby.c: don't use -mwin32 option on Cygwin.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon May 28 22:12:01 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extconf.rb.in: make the priority of the make rule of .c</div><div class='add'>+	  higher than .C .</div><div class='add'>+</div><div class='add'>+Mon May 28 13:22:19 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): local time adjustment revised.</div><div class='add'>+</div><div class='add'>+Mon May 28 02:20:38 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): teach has_magic() to handle flags and get</div><div class='add'>+	  glob_helper to properly support FNM_NOESCAPE.</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): fix a bug when FNM_PATHNAME and FNM_PERIOD are</div><div class='add'>+	  specified at the same time.</div><div class='add'>+</div><div class='add'>+Sat May 26 09:55:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: accomplish extended syntax described in [ruby-talk:14525]</div><div class='add'>+	  using tSPC token. [new, experimental]</div><div class='add'>+</div><div class='add'>+Sat May 26 07:05:45 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add win32/dir.h .</div><div class='add'>+</div><div class='add'>+Fri May 25 20:03:51 2001  Pascal Rigaux  &lt;pixel@mandrakesoft.com&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): should exclude directories in executable</div><div class='add'>+	  file lookup.</div><div class='add'>+</div><div class='add'>+Fri May 25 18:00:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_singleton_methods): list methods in extended</div><div class='add'>+	  modules if optional argument is true. [new]</div><div class='add'>+</div><div class='add'>+Fri May 25 14:19:25 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): add taint status infection</div><div class='add'>+	  (OBJ_INFECT()).</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_crypt): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ljust): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rjust): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_center): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 25 05:39:03 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sha1/sha1-ruby.c (sha1_hexdigest): fix buffer overflow.  The</div><div class='add'>+	  buffer for a SHA-1 hexdigest needs to be 41 bytes in length.</div><div class='add'>+</div><div class='add'>+Fri May 25 01:47:39 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: update the entries I forgot to add or remove.</div><div class='add'>+</div><div class='add'>+Fri May 25 00:57:25 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sha1/sha1-ruby.c (sha1_new): separate initialize() from</div><div class='add'>+	  new().</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c (md5i_new): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 25 00:53:41 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: fix support for *BSD and set $CFLAGS</div><div class='add'>+	  properly.</div><div class='add'>+</div><div class='add'>+Thu May 24 16:10:33 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_member): check based on "&lt;=&gt;" comparison. [new]</div><div class='add'>+</div><div class='add'>+	* range.c (range_check): add "succ" check if first end is not a</div><div class='add'>+	  numeric.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eqq): comparison should based on "&lt;=&gt;".</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 24 16:08:21 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: autoconf 2.50 support.</div><div class='add'>+</div><div class='add'>+Thu May 24 14:23:35 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): need argument adjustment for C defined</div><div class='add'>+	  blocks too.</div><div class='add'>+</div><div class='add'>+Thu May 24 01:11:30 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: header search added. [new]</div><div class='add'>+</div><div class='add'>+Wed May 23 02:58:21 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): fix ad-hoc local time adjustment, using</div><div class='add'>+	  binary tree search.</div><div class='add'>+</div><div class='add'>+Tue May 22 17:10:35 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_alias_variable): should not allow variable</div><div class='add'>+	  aliasing if $SAFE &gt;= 4.</div><div class='add'>+</div><div class='add'>+Tue May 22 02:37:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): "break" and "next" to take optional expression,</div><div class='add'>+	  which is used as a value for termination. [new, experimental]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): "break" can give value to terminating method.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): "break" and "next" to take optional expression.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): "next" can give value to terminating "yield".</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_iterate): "break" can give value to terminating method.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): ditto.</div><div class='add'>+</div><div class='add'>+Mon May 21 13:15:25 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str): t should be protected from GC.</div><div class='add'>+</div><div class='add'>+Sat May 19 09:29:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_times): need not to check return value from</div><div class='add'>+	  times(2).</div><div class='add'>+</div><div class='add'>+Fri May 18 05:36:08 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (xsystem): backout the previous fix which was</div><div class='add'>+	  bogus.</div><div class='add'>+</div><div class='add'>+Fri May 18 05:19:55 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (xsystem): make a temporary fix to get $(...) macros</div><div class='add'>+	  properly expanded on a command execution.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (xsystem): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 18 03:45:55 2001  Brian F. Feldman  &lt;green@FreeBSD.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: unbreak "make install".  lib/* must be installed</div><div class='add'>+	  under $rubylibdir, not under $libdir.</div><div class='add'>+</div><div class='add'>+Fri May 18 01:28:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): break, next, redo, retry are moved from primary.</div><div class='add'>+</div><div class='add'>+Fri May 18 01:11:02 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sha1/sha1-ruby.c (sha1_new): get rid of an unneeded</div><div class='add'>+	  rb_obj_call_init() call.</div><div class='add'>+</div><div class='add'>+Fri May 18 01:03:55 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sha1/sha1.txt, ext/sha1/sha1.txt.jp: fix typos.</div><div class='add'>+</div><div class='add'>+Thu May 17 19:17:11 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell.rb, lib/shell/process-controller.rb,</div><div class='add'>+	  lib/shell/command-processor.rb: translate Japanese comments into</div><div class='add'>+	  English.</div><div class='add'>+</div><div class='add'>+Thu May 17 19:07:14 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/shell.rd.jp: RD'ify and make some fixes.</div><div class='add'>+</div><div class='add'>+	* doc/shell.rd: RD'ify, delete Japanese leftovers, make overall</div><div class='add'>+	  English fixes, and sync with doc/shell.rd.jp.</div><div class='add'>+</div><div class='add'>+Thu May 17 17:35:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): address of local_vars might change during eval.</div><div class='add'>+</div><div class='add'>+Thu May 17 07:27:09 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5.txt.jp, ext/sha1/sha1.txt.jp:</div><div class='add'>+	  s/SuperClass/Superclass/.</div><div class='add'>+</div><div class='add'>+Thu May 17 07:21:44 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup.dj, ext/Setup.emx, ext/Setup.nt, ext/Setup.x68:</div><div class='add'>+	  compile sha1 in as well as md5.</div><div class='add'>+</div><div class='add'>+	* ext/Setup: put sha1 in a comment.</div><div class='add'>+</div><div class='add'>+Thu May 17 07:16:38 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sha1/sha1.txt.jp: add the Japanese version derived from</div><div class='add'>+	  ext/md5/md5.txt.jp.</div><div class='add'>+</div><div class='add'>+	* ext/sha1/sha1.txt: revise the copyright info and reduce the</div><div class='add'>+	  difference from ext/md5/md5.txt.</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5.txt: reduce the difference from ext/sha1/sha1.txt.</div><div class='add'>+</div><div class='add'>+Thu May 17 07:11:35 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sha1/extconf.rb, ext/sha1/sha1.c: use WORDS_BIGENDIAN to</div><div class='add'>+	  detect the platform's endian.</div><div class='add'>+</div><div class='add'>+Thu May 17 06:31:30 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5.txt: make wording fixes, and mention the newly added</div><div class='add'>+	  method: "&lt;&lt;".</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5.txt.jp: ditto.</div><div class='add'>+</div><div class='add'>+Wed May 16 18:05:52 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c: add an instance method "&lt;&lt;" as an alias for</div><div class='add'>+	  "update". (inspired by Steve Coltrin's ruby-sha1)</div><div class='add'>+</div><div class='add'>+Tue May 15 17:46:37 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and): should not push frozen key string.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_or): ditto.</div><div class='add'>+</div><div class='add'>+Tue May 15 02:18:23 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: rescue ThreadError in case the thread is dead</div><div class='add'>+	  just before calling Thread#run.</div><div class='add'>+</div><div class='add'>+Mon May 14 13:50:22 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): should save context before raising</div><div class='add'>+	  deadlock, saved context for current thread might be obsolete.</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): non DST timezone shift supported (hopefully).</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): strict range detection for negative time_t.</div><div class='add'>+</div><div class='add'>+Mon May 14 11:54:20 2001  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c: SIGINFO added.</div><div class='add'>+</div><div class='add'>+Mon May 14 08:57:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_ensure): should not SEGV when prot_tag is NULL.</div><div class='add'>+</div><div class='add'>+Sun May 13 23:51:14 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: Modify copyright in resource script.</div><div class='add'>+</div><div class='add'>+Sun May 13 14:03:33 2001  Okada Jun  &lt;yun@be-in.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: fix Queue#pop and SizedQueue#max= to avoid</div><div class='add'>+	  deadlock.</div><div class='add'>+</div><div class='add'>+Sat May 12 15:43:55 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (kill): add support of signal 9 on mswin32/mingw32.</div><div class='add'>+</div><div class='add'>+Fri May 11 15:09:52 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (rb_string_value): add volatile to avoid compiler warning.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 11 03:35:33 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: Document find_library(), with_config() and</div><div class='add'>+	  dir_config().</div><div class='add'>+</div><div class='add'>+Fri May 11 03:34:20 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.jp: Remove the description of find_header() because</div><div class='add'>+	  such a function does not actually exist.</div><div class='add'>+</div><div class='add'>+	* README.EXT.jp: Update the description of dir_config().</div><div class='add'>+</div><div class='add'>+Fri May 11 02:42:05 2001  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* README, README.jp: Fix CVS access and mailing lists info.</div><div class='add'>+</div><div class='add'>+Fri May 11 02:00:44 2001  Ryo HAYASAKA  &lt;ryoh@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): access boundary bug.</div><div class='add'>+</div><div class='add'>+Thu May 10 02:40:47 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): prohibit dumping out singleton classes.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_to_s): distinguish singleton classes.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class2name): it's ok to reveal NilClass,</div><div class='add'>+	  TrueClass, FalseClass.</div><div class='add'>+</div><div class='add'>+Wed May  9 14:38:33 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): preserve and restore ruby_cref as well.</div><div class='add'>+</div><div class='add'>+Tue May  8 18:28:19 2001  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb lib/irb/multi-irb.rb lib/irb/ruby-lex.rb</div><div class='add'>+	  lib/irb/version.rb resolve ctrl-c problem</div><div class='add'>+</div><div class='add'>+Tue May  8 17:12:43 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): core dumped during instance_eval for</div><div class='add'>+	  special constants.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+Tue May  8 08:52:57 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/forwardable.rd, doc/forwardable.rd.jp: Hit `=begin' and</div><div class='add'>+	  `=end' in proper places so rd2 can format them without a problem.</div><div class='add'>+</div><div class='add'>+	* doc/irb/irb-tools.rd.jp, doc/irb/irb.rd, doc/irb/irb.rd.jp:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Tue May  8 08:38:53 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/forwardable.rd, doc/forwardable.rd.jp, lib/forwardable.rb:</div><div class='add'>+	  Import forwardable 1.1.</div><div class='add'>+</div><div class='add'>+Tue May  8 08:34:33 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/irb/irb-tools.rd.jp, doc/irb/irb.rd.jp: Convert from JIS to</div><div class='add'>+	  EUC.</div><div class='add'>+</div><div class='add'>+Tue May  8 03:46:39 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rbc.rb: Obsoleted by IRB.</div><div class='add'>+</div><div class='add'>+Mon May  7 15:58:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): "||=" should not warn for uninitialized instance</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): preserve and restore ruby_cref as well.</div><div class='add'>+</div><div class='add'>+Mon May  7 15:45:48 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (syscopy): chmod destination file only if</div><div class='add'>+	  it does not exist.</div><div class='add'>+</div><div class='add'>+Mon May  7 14:35:57 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_is_instance_of): takes only class/module as an</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Sun May  6 16:27:29 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): rb_reg_nth_defined() may return Qnil.</div><div class='add'>+</div><div class='add'>+Thu May  3 03:15:06 2001  SHIROYAMA Takayuki &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: get --enable-shared to work on MacOS X.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: make $(LIBRUBY_SO) depend on miniruby properly.</div><div class='add'>+	  Now `make -jN' should work without a problem.</div><div class='add'>+</div><div class='add'>+Thu May  3 02:07:45 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.h.in: add SIZEOF___INT64 definition.</div><div class='add'>+</div><div class='add'>+Wed May  2 20:39:35 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob, rb_globi): remove unnecessary FNM_PATHNAME.</div><div class='add'>+</div><div class='add'>+Wed May  2 11:46:13 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should not downgrade safe level.</div><div class='add'>+</div><div class='add'>+Wed May  2 03:07:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: allow specifying dbm-type explicitly.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: avoid gdbm if possible, because it leaks</div><div class='add'>+	  memory, whereas gdbm.so doesn't.  potential incompatibility.</div><div class='add'>+</div><div class='add'>+Wed May  2 02:02:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_insert): new method.</div><div class='add'>+</div><div class='add'>+Tue May  1 17:55:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): lex_state after RESCUE_MOD should be EXPR_BEG.</div><div class='add'>+</div><div class='add'>+Tue May  1 16:23:03 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_insert): new method.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_update): new utility function.</div><div class='add'>+</div><div class='add'>+Tue May  1 03:24:05 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb, lib/irb/frame.rb, lib/irb/xmp.rb,</div><div class='add'>+	  doc/irb/irb-tools.rd.jp: Merge from irb-tools 0.7.1.</div><div class='add'>+</div><div class='add'>+Tue May  1 03:07:17 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/irb.rb, lib/irb.rb, lib/irb/*, doc/irb/*: Merge from irb</div><div class='add'>+	  0.7.3.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Install help-message's too.</div><div class='add'>+</div><div class='add'>+	* lib/irb/main.rb: This file is not needed anymore.</div><div class='add'>+</div><div class='add'>+Fri Apr 27 09:27:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (set_outfile): should check if closed before assignment.</div><div class='add'>+</div><div class='add'>+Thu Apr 26 22:36:11 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in:  don't use tzname on Cygwin 1.3.1+.</div><div class='add'>+</div><div class='add'>+	* configure.in: add -mieee/-ieee to CFLAGS on OSF1/Alpha</div><div class='add'>+	  to disable "DIVISION BY ZERO" exception.</div><div class='add'>+</div><div class='add'>+Thu Apr 26 22:30:43 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should preserve value of ruby_errinfo.</div><div class='add'>+</div><div class='add'>+Thu Apr 26 10:36:09 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): infinite sleep should not cause</div><div class='add'>+	  dead lock.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 16:40:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten_bang): proper recursive detection.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 15:36:15 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under): need not to prohibit at safe level 4.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 15:22:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): p/P packs nil into NULL.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): p/P unpacks NULL into nil.</div><div class='add'>+</div><div class='add'>+Tue Apr 24 15:35:32 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): size check for P template.</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): wrong predicate when new $0 value is bigger</div><div class='add'>+	  than original space.</div><div class='add'>+</div><div class='add'>+Tue Apr 24 15:18:49 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: (dir_config) do not add the</div><div class='add'>+	  specified include directory if already included in $CPPFLAGS.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: (dir_config) return a more useful</div><div class='add'>+	  value, [include_dir, lib_dir].</div><div class='add'>+</div><div class='add'>+Mon Apr 23 14:43:59 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): should use NUM2ULONG()</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_const_get): check whether name is a class</div><div class='add'>+	  variable name.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_const_set): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_const_defined): ditto.</div><div class='add'>+</div><div class='add'>+Sat Apr 21 22:33:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): precision changed to "%.16g"</div><div class='add'>+</div><div class='add'>+Sat Apr 21 22:07:58 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): wrong retry behavior.</div><div class='add'>+</div><div class='add'>+Fri Apr 20 19:12:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_aref): a bug on long&gt;int architecture.</div><div class='add'>+</div><div class='add'>+Fri Apr 20 14:57:15 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string_wrap): should restore ruby_wrapper.</div><div class='add'>+</div><div class='add'>+Sun Apr 22 17:44:37 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add -mieee to CFLAGS on Linux/Alpha</div><div class='add'>+	  to disable "DIVISION BY ZERO" exception.</div><div class='add'>+</div><div class='add'>+	* configure.in: remove -ansi on OSF/1.</div><div class='add'>+</div><div class='add'>+Wed Apr 18 04:37:51 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI::Cookie: no use PATH_INFO.</div><div class='add'>+</div><div class='add'>+Wed Apr 18 00:24:40 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): char class at either edge of range</div><div class='add'>+	  should be invalid.</div><div class='add'>+</div><div class='add'>+Tue Apr 17 17:33:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (handle_rescue): use === to compare exception match.</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_eqq): comparison between SytemCallErrors should</div><div class='add'>+	  based on their error numbers.</div><div class='add'>+</div><div class='add'>+Tue Apr 17 16:54:39 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (safe_getter): should use INT2NUM().</div><div class='add'>+</div><div class='add'>+Tue Apr 17 15:12:56 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2long): 2**31 cannot fit in 31 bit long.</div><div class='add'>+</div><div class='add'>+Sat Apr 14 22:46:43 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (calculate_must_string): wrong length calculation.</div><div class='add'>+</div><div class='add'>+Sat Apr 14 13:37:32 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.status.in: no longer use missing/alloca.c.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 13 12:40:48 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): fixed memory leak.</div><div class='add'>+</div><div class='add'>+Fri Apr 13 16:41:18 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (none): should clear cmdarg_stack too.</div><div class='add'>+</div><div class='add'>+Fri Apr 13 06:19:29 2001  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fopen): use setvbuf() to avoid recursive malloc() on</div><div class='add'>+	  some platforms.</div><div class='add'>+</div><div class='add'>+Wed Apr 11 23:36:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_dev): device functions should honor stat field</div><div class='add'>+	  types (except long long such as dev_t).</div><div class='add'>+</div><div class='add'>+Wed Apr 11 18:07:53 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_nesting): should not push nil for nesting array.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_s_constants): should not search array by</div><div class='add'>+	  rb_mod_const_at() for nil (happens for singleton class).</div><div class='add'>+</div><div class='add'>+Wed Apr 11 13:29:26 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class_attached): should modify iv_tbl by</div><div class='add'>+	  itself, no longer use rb_iv_set() to avoid freeze check error.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get): error message "uninitialized constant</div><div class='add'>+	  Foo at Bar::Baz" instead of "uninitialized constantBar::Baz::Foo".</div><div class='add'>+</div><div class='add'>+Tue Apr 10 17:52:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_included): new hook called from rb_mod_include().</div><div class='add'>+</div><div class='add'>+Tue Apr 10 02:24:40 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (opt_i_set): should strdup() inplace_edit string.</div><div class='add'>+</div><div class='add'>+Mon Apr  9 23:29:54 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): need to push cref too.</div><div class='add'>+</div><div class='add'>+Mon Apr  9 15:20:21 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): raise NameError for "undefined local</div><div class='add'>+	  variable or method".</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): new exception NoMethodError.</div><div class='add'>+	  NameError moved under ScriptError again.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): use NoMethodError instead of NameError.</div><div class='add'>+</div><div class='add'>+Mon Apr  9 12:05:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): should redefine "new" class method.</div><div class='add'>+</div><div class='add'>+Mon Apr  9 11:56:52 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: fix typo.</div><div class='add'>+</div><div class='add'>+Fri Apr  6 01:46:35 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_CREF): sharing cref node was problematic.  maintain</div><div class='add'>+	  runtime cref list instead.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): copy defn node before registering.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): clear ruby_cref before loading.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 22:40:12 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get): no recursion to show full class path</div><div class='add'>+	  for modules.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_set_safe_level): should set safe level in curr_thread</div><div class='add'>+	  as well.</div><div class='add'>+</div><div class='add'>+	* eval.c (safe_setter): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 13:46:06 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_is_instance_of): nil belongs to false, not true.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 02:19:03 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): proper (I hope) daylight saving time</div><div class='add'>+	  handling for both US and Europe.  I HATE DST!</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_wait_for): non blocked signal interrupt should</div><div class='add'>+	  stop the interval.</div><div class='add'>+</div><div class='add'>+Wed Apr  4 03:47:03 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_eq): class check added.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_eq): typo fixed ("return" was omitted).</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): move NameError under StandardError.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_clone): should copy method bodies too.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): should trim trailing zero bdigits of</div><div class='add'>+	  remainder, even if dd == 0.</div><div class='add'>+</div><div class='add'>+	* file.c (check3rdbyte): safe string check moved here.</div><div class='add'>+</div><div class='add'>+Tue Apr  3 09:56:20 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): create def file only if</div><div class='add'>+	  it does not yet exist.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr  3 00:05:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): remove HAVE_TM_ZONE code since it</div><div class='add'>+	  sometimes reports wrong time.</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): remove unnecessary range check for</div><div class='add'>+	  platforms where negative time_t is available.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 16:52:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitall): should push Process::Status instead of</div><div class='add'>+	  Fixnum status.</div><div class='add'>+</div><div class='add'>+	* process.c (waitall_each): should add all entries in pid_tbl.</div><div class='add'>+	  these changes are inspired by Koji Arai.  Thanks.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_wait): should not iterate if pid_tbl is 0.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitall): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 14:25:49 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (wait): ensure reentrance.</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (wait): fix timeout support.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 12:40:45 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (media_subtype): return subtype.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 12:01:15 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (flag_list): capitalize flags.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 01:32:38 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: Introduce MAINLIBS.</div><div class='add'>+</div><div class='add'>+	* configure.in: Link libc_r against the ruby executable on</div><div class='add'>+	  FreeBSD, which is the first attempt to work around a certain</div><div class='add'>+	  problem regarding pthread on FreeBSD.  It should make ruby/libruby</div><div class='add'>+	  happy when it loads an extension to a library compiled and linked</div><div class='add'>+	  with -pthread.  Note, however, that libruby is _not_ linked with</div><div class='add'>+	  libc_r so as not to mess up pthread unfriendly stuff including</div><div class='add'>+	  apache+mod_ruby and vim6+ruby_interp.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 01:16:24 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: use ruby's opendir on mingw32.</div><div class='add'>+</div><div class='add'>+	* win32/dir.h, dir.c, Makefile: ditto.</div><div class='add'>+</div><div class='add'>+Sun Apr  1 23:26:14 2001  TOYOFUKU Chikanobu  &lt;toyofuku@juice.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flodivmod): a bug in no fmod case.</div><div class='add'>+</div><div class='add'>+Sun Apr  1 18:36:14 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (pst_wifsignaled): should apply WIFSIGNALED for status</div><div class='add'>+	  (int), not st (VALUE).</div><div class='add'>+</div><div class='add'>+Sat Mar 31 04:47:55 2001  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: add document and example code.</div><div class='add'>+</div><div class='add'>+Sat Mar 31 03:24:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): value of $/ and $\ are no longer restricted to</div><div class='add'>+	  strings.  type checks are done on demand.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): module inclusion should be check</div><div class='add'>+	  taints.</div><div class='add'>+</div><div class='add'>+	* ruby.h (STR2CSTR): replace to StringType() and StringTypePtr().</div><div class='add'>+</div><div class='add'>+	* ruby.h (rb_str2cstr): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 30 23:37:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should not copy toplevel local variables.  It</div><div class='add'>+	  cause variable/method ambiguity.  Thanks to L. Peter Deutsch.</div><div class='add'>+</div><div class='add'>+Fri Mar 30 22:56:56 2001  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: rename ContinueRequest to ContinuationRequest.</div><div class='add'>+</div><div class='add'>+Fri Mar 30 12:51:19 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): freeze check at first.</div><div class='add'>+</div><div class='add'>+Thu Mar 29 17:05:09 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): sprintf() and rb_intern() moved into</div><div class='add'>+	  conditional body.</div><div class='add'>+</div><div class='add'>+Wed Mar 28 23:43:00 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: add C++ rules in addition to C</div><div class='add'>+	  rules for the mswin32 platforms.</div><div class='add'>+</div><div class='add'>+Wed Mar 28 19:29:21 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: move C++ rules to the right place.</div><div class='add'>+</div><div class='add'>+Wed Mar 28 17:39:04 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_str2cstr): warn if string contains \0 and length</div><div class='add'>+	  value is ignored.</div><div class='add'>+</div><div class='add'>+Wed Mar 28 15:00:31 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class_clone): should copy class constant</div><div class='add'>+	  table as well.</div><div class='add'>+</div><div class='add'>+Wed Mar 28 14:23:23 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): sometimes cache was mistakenly left</div><div class='add'>+	  uncleared - based on the patch by K.Kosako.</div><div class='add'>+</div><div class='add'>+	* ruby.h: all Check_SafeStr()'s are replaced by SafeStr() to</div><div class='add'>+	  ensure 'to_str' be always effective.</div><div class='add'>+</div><div class='add'>+Wed Mar 28 09:52:33 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: disable global optimization.</div><div class='add'>+</div><div class='add'>+Tue Mar 27 15:00:54 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): should have clear method cache.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): should have raised exception for</div><div class='add'>+	  type error.</div><div class='add'>+</div><div class='add'>+Tue Mar 27 14:48:17 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: changed "extern INLINE" to "static inline".</div><div class='add'>+</div><div class='add'>+Mon Mar 26 23:19:33 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime): check whether strftime returns empty string.</div><div class='add'>+</div><div class='add'>+Mon Mar 26 21:16:56 2001  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: supports response handlers and multiple commands.</div><div class='add'>+</div><div class='add'>+Mon Mar 26 17:21:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove TMP_PROTECT_END to prevent C_ALLOCA crash.</div><div class='add'>+</div><div class='add'>+Mon Mar 26 14:04:41 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c: remove Init_win32api().</div><div class='add'>+</div><div class='add'>+Sun Mar 25 16:52:48 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_flock): do not trap EINTR.</div><div class='add'>+</div><div class='add'>+	* missing/flock.c (flock): returns the value from lockf(2)</div><div class='add'>+	  directly.</div><div class='add'>+</div><div class='add'>+Sat Mar 24 23:44:50 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined): should ignore toplevel cbase (Object).</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 17:37:52 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5.h: replace by independent md5 implementation</div><div class='add'>+	  contributed by L. Peter Deutsch (thanks).</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c: adopted to Deutsch's md5 implementation.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 17:26:19 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): string from P/p should be tainted.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 12:18:44 2001  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: curses on Mac OS X public beta does not</div><div class='add'>+	  have _maxx etc.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 10:50:31 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should truncate trailing zero short for</div><div class='add'>+	  bignums.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 09:49:02 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_intern): new method.</div><div class='add'>+</div><div class='add'>+Thu Mar 22 22:15:45 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/extconf.rb: add -fno-omit-frame-pointer.</div><div class='add'>+</div><div class='add'>+Thu Mar 22 18:17:36 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_nesting): should not include Object at the</div><div class='add'>+	  toplevel.</div><div class='add'>+</div><div class='add'>+Thu Mar 22 17:43:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: better inline function support.</div><div class='add'>+</div><div class='add'>+	* configure.in (NO_C_INLINE): check if inline is available for the</div><div class='add'>+	  C compiler.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 11:03:10 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): len calculation patch was wrong for</div><div class='add'>+	  machines SIZEOF_BDIGITS == SIZEOF_SHORT.</div><div class='add'>+</div><div class='add'>+	* gc.c: alloca prototype reorganized for C_ALLOCA machine.</div><div class='add'>+</div><div class='add'>+Wed Mar 21 23:07:45 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (win32_stat): WinNT/2k "//host/share" support.</div><div class='add'>+</div><div class='add'>+Wed Mar 21 08:05:35 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/dir.h: replace missing/dir.h .</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 21 01:26:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): sometimes confused symbol and reference.</div><div class='add'>+</div><div class='add'>+Tue Mar 20 23:09:33 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (win32_stat): UNC support.</div><div class='add'>+</div><div class='add'>+	* dir.c (extract_path): fix "./*" problem.</div><div class='add'>+</div><div class='add'>+Tue Mar 20 15:10:00 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): breaks loop after calling recursive</div><div class='add'>+	  glob_helper; all wild cards should be consumed; no need for</div><div class='add'>+	  further match.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): gives warning if no match found.</div><div class='add'>+</div><div class='add'>+Tue Mar 20 14:13:45 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_inspect): did allocate extra byte space.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 19:14:47 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (shortlen): shortlen should return number of bytes</div><div class='add'>+	  written.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 16:52:23 2001  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined): need not to check if cbase-&gt;nd_class</div><div class='add'>+	  is rb_cObject.</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 17:11:20 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_zone): return "UTC" for UTC time objects.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 16:27:32 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): flags should be initialized.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_f_kill): should use FIX2INT, not FIX2UINT.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 10:55:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): replace lstat() by stat() to follow symlink</div><div class='add'>+	  in the case like 'symlink/*'.</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): gave warning too much.</div><div class='add'>+</div><div class='add'>+Sun Mar 18 08:58:18 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: // === '' --&gt; //.match('')</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: cgi#header(): improvement for mod_ruby.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: cgi#rfc1123date(): improvement.</div><div class='add'>+	  thanks to TADA Tadashi &lt;sho@spc.gr.jp&gt;.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: cgi#rfc1123date(): document bug fix.</div><div class='add'>+	  thanks to Kazuhiro NISHIYAMA &lt;zn@mbf.nifty.com&gt;.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: cgi#header(): bug fix.</div><div class='add'>+	  thanks to IWATSUKI Hiroyuki &lt;don@na.rim.or.jp&gt;.</div><div class='add'>+</div><div class='add'>+Sat Mar 17 11:11:24 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): * should follow symlink, whereas ** should</div><div class='add'>+	  not follow.</div><div class='add'>+</div><div class='add'>+Thu Mar 15 01:28:02 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): block form of Dir.chdir. (RCR#U016).</div><div class='add'>+</div><div class='add'>+Fri Mar 16 17:14:17 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Set SOLIBS properly for all ELF and</div><div class='add'>+	  FreeBSD/NetBSD/OpenBSD a.out platforms so that the shlib</div><div class='add'>+	  dependencies are recorded in the libruby shlib.</div><div class='add'>+</div><div class='add'>+Wed Mar 14 16:41:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): raise FATAL just once to</div><div class='add'>+	  THREAD_TO_KILL.</div><div class='add'>+</div><div class='add'>+Wed Mar 14 10:41:34 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): 0 (= Qfalse) is a valid value, so that</div><div class='add'>+	  default self should be checked by klass == 0.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): should disallow '++1', '+-1', etc.</div><div class='add'>+</div><div class='add'>+Tue Mar 13 17:51:09 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined): add new parameter self for special</div><div class='add'>+	  const fallback.</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 13 16:39:45 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob_helper): fix drive letter handling on DOSISH.</div><div class='add'>+</div><div class='add'>+Tue Mar 13 14:54:39 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: add HTTPRequest#basic_auth.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: raise if only account or password is given.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: WriteAdapter#&lt;&lt; returns self.</div><div class='add'>+</div><div class='add'>+Tue Mar 13 14:41:16 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_seek_m): wrong calling sequence of rb_io_seek().</div><div class='add'>+</div><div class='add'>+Tue Mar 13 09:14:19 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): no special treatment of string literal in</div><div class='add'>+	  condition.</div><div class='add'>+</div><div class='add'>+Mon Mar 12 18:59:38 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): save/restore $libs and $LIBPATH.</div><div class='add'>+</div><div class='add'>+Sun Mar 11 18:13:34 2001  Masahiro Tanaka  &lt;masa@stars.gsfc.nasa.gov&gt;</div><div class='add'>+</div><div class='add'>+	* math.c: add acos, asin, atan, conh, sinh, tanh and hypot to Math.</div><div class='add'>+</div><div class='add'>+	* configure.in: check hypot availability.</div><div class='add'>+</div><div class='add'>+	* missing/hypot.c: public domain rewrite of hypot.</div><div class='add'>+</div><div class='add'>+Sun Mar 11 13:21:04 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (warn_unless_e_option): warning condition was wrong.</div><div class='add'>+</div><div class='add'>+	* parse.y (warning_unless_e_option): ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 11 00:55:31 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_rb): fix handling of destination path.</div><div class='add'>+</div><div class='add'>+Sat Mar 10 22:56:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_all): new method 'all?', which returns true if</div><div class='add'>+	  block returns true for all elements.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_any): new method 'any?', which returns true if</div><div class='add'>+	  block returns true for any of elements.</div><div class='add'>+</div><div class='add'>+Sat Mar 10 02:34:18 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_log, math_log10): use nan() instead of 0.0/0.0 on Cygwin.</div><div class='add'>+</div><div class='add'>+Fri Mar  9 09:56:19 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): do not give warning unless explicitly</div><div class='add'>+	  set to verbose.</div><div class='add'>+</div><div class='add'>+Fri Mar  9 02:07:53 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exit): give string value "exit" to SystemExit.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -v should not print version if</div><div class='add'>+	  proc_options called via moreswitches().</div><div class='add'>+</div><div class='add'>+Thu Mar  8 17:45:19 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: one write(2) per one line.</div><div class='add'>+</div><div class='add'>+Wed Mar  7 14:26:11 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_log, math_log10): should return NaN if x &lt; 0.0</div><div class='add'>+	  on Cygwin.</div><div class='add'>+</div><div class='add'>+Thu Mar  7 10:31:26 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): while/until modifier must work for empty body.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 22:53:58 2001  Kazuhiro Yoshida   &lt;moriq.kazuhiro@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_set_argv): clear ARGV contents before adding args.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 10:50:29 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): rescue and ensure clauses should be allowed</div><div class='add'>+	  to appear in singleton method body.</div><div class='add'>+</div><div class='add'>+Mon Mar  5 17:25:13 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_eq): compare Procs using blocktag equality.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_to_s): stringify according to block tag address.</div><div class='add'>+</div><div class='add'>+Mon Mar  5 17:19:56 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (gettimeofday): use GetLocalTime() instead of ftime()</div><div class='add'>+	  for high-resolution timing.</div><div class='add'>+</div><div class='add'>+Sun Mar  4 17:01:09 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): support backslash escape in String#tr.</div><div class='add'>+</div><div class='add'>+Sat Mar  3 16:15:16 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): push cbase if ruby_cbase != ruby_class, for</div><div class='add'>+	  example in the case NODE_DEFN/NODE_DEFS are called within</div><div class='add'>+	  module_eval.</div><div class='add'>+</div><div class='add'>+Wed Feb 28 11:02:41 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): delete! should take at least 1</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): add rb_gc() after loading to avoid</div><div class='add'>+	  extraordinary memory growth.</div><div class='add'>+</div><div class='add'>+Wed Feb 28 05:01:40 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob_helper): "./foo" should match "foo", not "./foo".</div><div class='add'>+</div><div class='add'>+Tue Feb 27 16:38:15 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): retrieve Object's constant if no current</div><div class='add'>+	  class is available (e.g. defining singleton class for Fixnums).</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined): check Object's constant if no current</div><div class='add'>+	  class is available (e.g. defining singleton class for Fixnums).</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval): negative time interval should not be</div><div class='add'>+	  allowed.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): ignore block to `call' always, despite of</div><div class='add'>+	  being orphan or not.</div><div class='add'>+</div><div class='add'>+Wed Feb 27 10:16:32 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): should check based on rb_block_given_p()</div><div class='add'>+	  and rb_f_block_given_p().</div><div class='add'>+</div><div class='add'>+Tue Feb 27 04:13:45 2001 Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (frame-address): --enable-frame-address to allow</div><div class='add'>+	  __builtin_frame_address() to be used.</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_length): use __builtin_frame_address() based on</div><div class='add'>+	  the macro USE_BUILTIN_FRAME_ADDRESS.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 26 16:20:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): call ruby_show_version() just once.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_open): returns the value from a block (if given).</div><div class='add'>+</div><div class='add'>+Mon Feb 26 14:29:04 2001  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: add C++ rules in addition to C</div><div class='add'>+	  rules.</div><div class='add'>+</div><div class='add'>+Mon Feb 26 00:04:52 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): should not modify ruby_block-&gt;frame.iter</div><div class='add'>+	  based on ruby_frame-&gt;iter altered by PUSH_ITER().</div><div class='add'>+</div><div class='add'>+Mon Feb 26 05:27:52 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: #telnetmode(), #binmode(): bug fix.</div><div class='add'>+	  thanks to nobu.nakada@nifty.ne.jp.</div><div class='add'>+</div><div class='add'>+Mon Feb 26 04:55:50 2001  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI#form(): bug fix.</div><div class='add'>+	  thanks to MoonWolf &lt;moonwolf@moonwolf.com&gt;.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI#rfc1123_date(): improvement.</div><div class='add'>+	  thanks to Tomoyasu Akita &lt;genzo-@dm4lab.to&gt;.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: CGI#header(): improvement for mod_ruby.</div><div class='add'>+	  thanks to Shugo Maeda &lt;shugo@ruby-lang.org&gt;.</div><div class='add'>+</div><div class='add'>+Sun Feb 25 02:45:30 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_rename): avoid Cygwin's bug.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 23:32:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_fd_close): should save current context before</div><div class='add'>+	  raising exception.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 22:14:00 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myrename): fix error handling.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 13:58:48 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: always close connection on request without</div><div class='add'>+	  body.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: change copyright.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 03:15:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdin): preserve original stdin.</div><div class='add'>+</div><div class='add'>+	* io.c (set_outfile): preserve original stdout/stderr.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 08:28:58 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: clear read buffer after reopen.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: refactoring.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: split module HTTPHeader from HTTPResponse.</div><div class='add'>+</div><div class='add'>+Tue Feb 20 23:45:35 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: add W* macro if not available.</div><div class='add'>+</div><div class='add'>+Tue Feb 20 16:37:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add check for negative time_t for gmtime(3).</div><div class='add'>+</div><div class='add'>+	* time.c (time_new_internal): no positive check if gmtime(3) can</div><div class='add'>+	  handle negative time_t.</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2long): should not raise RangeError for Bignum</div><div class='add'>+	  LONG_MIN value.</div><div class='add'>+</div><div class='add'>+Mon Feb 19 17:46:37 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): "a"[1,2] should return ""; need</div><div class='add'>+	  rubicon upgrade.</div><div class='add'>+</div><div class='add'>+Mon Feb 19 12:10:36 2001  Triet H. Lai  &lt;thlai@mail.usyd.edu.au&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_warning): new function to give warning with</div><div class='add'>+	  strerror() message.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob_helper): better error handling, along with</div><div class='add'>+	  performance tune.</div><div class='add'>+</div><div class='add'>+Mon Feb 19 01:55:43 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (secure_visibility): visibility check for untainted modules.</div><div class='add'>+</div><div class='add'>+Mon Feb 19 00:29:29 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sigpipe): sighandler which does nothing.</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): set sigpipe function for SIGPIPE.</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal): default SIGPIPE handler should be</div><div class='add'>+	  sigpipe function.</div><div class='add'>+</div><div class='add'>+Sun Feb 18 15:42:38 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: add dir_config.</div><div class='add'>+</div><div class='add'>+	* missing/flock.c: use fcntl(2) instead of lockf(2).</div><div class='add'>+</div><div class='add'>+Sun Feb 18 05:46:03 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Response#range_length was not debugged.</div><div class='add'>+</div><div class='add'>+Sun Feb 18 04:02:03 2001  Yasushi Shoji  &lt;yashi@yashi.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): wrong boundary check.</div><div class='add'>+</div><div class='add'>+Sun Feb 18 00:09:50 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: make file I/O faster on mswin32/mingw32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+	* rubysig.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 17 23:32:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): integer literal in condition should not be</div><div class='add'>+	  compared to lineno ($.).</div><div class='add'>+</div><div class='add'>+Fri Feb 16 01:44:56 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (set_outfile): f should be the FILE* from the assigning value.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_s_open): should not give default value</div><div class='add'>+	  to local_host.</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_times): move to Process::times.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_lchmod): new method File::lchmod.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_lchown): new method File::lchown.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 11:33:49 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (close): fixed reversed condition.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 08:34:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitall): new method based on a patch from Brian</div><div class='add'>+	  Fundakowski Feldman &lt;green@green.dyndns.org&gt;.</div><div class='add'>+</div><div class='add'>+	* process.c (last_status_set): objectify $? value (Process::Status).</div><div class='add'>+</div><div class='add'>+Wed Feb 14 17:28:24 2001  Shugo Maeda &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: supports unknown resp_text_code.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 00:44:17 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): support backslash escape of metacharacters</div><div class='add'>+	  and delimiters.</div><div class='add'>+</div><div class='add'>+	* dir.c (remove_backslases): remove backslashes from path before</div><div class='add'>+	  calling stat(2).</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): call rb_yield directly (via push_pattern) if</div><div class='add'>+	  block is given to the method.</div><div class='add'>+</div><div class='add'>+	* dir.c (push_pattern): do not call rb_ary_push; yield directly.</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_copy_prev): reduced ALLOC_N too much.</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_dup): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 13 23:05:38 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (lstat): should use rb_sys_stat if lstat(2) is not</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Tue Feb 13 08:43:10 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl): do not call ioctl/fcntl for f2, if f and f2</div><div class='add'>+	  have same fileno.</div><div class='add'>+</div><div class='add'>+Tue Feb 13 01:13:43 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): raise LocalJumpError if unexpected local jumps</div><div class='add'>+	  appear during load.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_close_read): don't call rb_thread_fd_close();</div><div class='add'>+	  it's supposed to be called by io_io_close().</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_close_read): do not modify f and f2.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_close_write): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_new): avoid dup(2) on sockets.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): preserve and clear in_single and in_def using</div><div class='add'>+	  stack to prevent nested method errors in singleton class bodies.</div><div class='add'>+</div><div class='add'>+Sun Feb 11 16:00:30 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_length): use __builtin_frame_address() only if</div><div class='add'>+	  GCC and i386 CPU.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc, Init_stack): ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in: add ac_cv_func_getpgrp_void=yes on DJGPP.</div><div class='add'>+</div><div class='add'>+Sat Feb 10 23:43:49 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_hash): dumped core on machines sizeof(int) != sizeof(long).</div><div class='add'>+</div><div class='add'>+Sat Feb 10 23:07:15 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_for_fd): IO::for_fd(fd) - new method.</div><div class='add'>+</div><div class='add'>+	* regex.c (PREV_IS_A_LETTER): should not treat c&gt;0x7f as a word</div><div class='add'>+	  character if -Kn.</div><div class='add'>+</div><div class='add'>+Sat Feb 10 00:00:30 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (win32_stat): replace stat to enable when pathname</div><div class='add'>+	  ends with '/' or '\' for mswin32 on Win9X / Win2k.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob_helper): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat, rb_file_s_stat, eaccess, check3rdbyte): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb  9 22:54:57 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath): convert '\\' to '/'</div><div class='add'>+	  before finding executable file path.</div><div class='add'>+</div><div class='add'>+Fri Feb  9 17:41:53 2001  Triet H. Lai  &lt;thlai@mail.usyd.edu.au&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob_helper): do not follow symbolic links.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 21:27:24 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_rb): fix handling of relative path.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): add srcdir.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 02:22:09 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: join HTTPReadResponse into HTTPResponse again.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: move http_version() from HTTPRequest to</div><div class='add'>+	  HTTPResponse.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: refactoring.</div><div class='add'>+</div><div class='add'>+Wed Feb  7 16:27:27 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: split HTTPResponse into HTTPReadResponse</div><div class='add'>+	  module.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: add Net::net_private.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Socket#reopen takes arg, open_timeout.</div><div class='add'>+</div><div class='add'>+Wed Feb  7 16:05:22 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_quotedwords): %w should allow parenthesis escape.</div><div class='add'>+</div><div class='add'>+Wed Feb  7 00:57:42 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_qstring): %q should allow terminator escape.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_options): new method to give an option values.</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): disable special treating of integer literal in</div><div class='add'>+	  conditional unless option -e is supplied.  changes current</div><div class='add'>+	  behavior.  experimental.</div><div class='add'>+</div><div class='add'>+	* parse.y (cond0): give warning for string/integer literals and</div><div class='add'>+	  dot operators in conditionals unless option -e is supplied.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_equal): all option flags should be same to be equal.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 21:30:44 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: call on_connect() on re-opening socket.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: also POP3 can use APOP auth.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 20:19:10 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: add HTTP#request.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: take HTTP 1.0 server into account (incomplete).</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: timeout for open/read.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: add Protocol#on_connect,on_disconnect.</div><div class='add'>+</div><div class='add'>+Mon Feb  5 23:15:46 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): make Interrupt a subclass of</div><div class='add'>+	  SignalException.</div><div class='add'>+</div><div class='add'>+Mon Feb 5 00:39:06 2001  KANEKO Naoshi  &lt;wbs01621@mail.wbs.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: use ISXXX() instead of isxxx().</div><div class='add'>+</div><div class='add'>+	* dln.c (aix_loaderror): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upcase_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_spawn): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtMakeCmdVector): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (opendir): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  3 14:44:53 2001  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_C_INLINE): check inline attribute.</div><div class='add'>+</div><div class='add'>+	* gc.c (is_pointer_to_heap): use inline rather than __inline__.</div><div class='add'>+</div><div class='add'>+	* pack.c (hex2num): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.h (rb_class_of, rb_type, rb_special_const_p): ditto.</div><div class='add'>+</div><div class='add'>+	* util.c (rb_class_of, rb_type, rb_special_const_p): defined in</div><div class='add'>+	  ruby.h.</div><div class='add'>+</div><div class='add'>+Fri Feb  2 16:14:51 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): returns self, even if its length is</div><div class='add'>+	  less than 2.</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_VARS): propagate DVAR_DONT_RECYCLE, if</div><div class='add'>+	  SCOPE_DONT_RECYCLE of ruby_scope is set.</div><div class='add'>+</div><div class='add'>+Wed Jan 31 22:27:29 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: gcc-2.95.2-7(Cygwin) support.</div><div class='add'>+	  add -mwin32 if available.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 30 17:56:48 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fetch): new method.</div><div class='add'>+</div><div class='add'>+Mon Jan 29 17:36:19 2001  TOYOFUKU Chikanobu  &lt;toyofuku@juice.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): nd_iter evaluation should be wrapped by</div><div class='add'>+	  BEGIN_CALLARGS and END_CALLARGS.</div><div class='add'>+</div><div class='add'>+Mon Jan 29 14:25:39 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): return from block jumps directory to</div><div class='add'>+	  block invoker.</div><div class='add'>+</div><div class='add'>+Mon Jan 29 01:40:27 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_independent): should not clear str-&gt;orig here.</div><div class='add'>+	  it's too early.</div><div class='add'>+</div><div class='add'>+Fri Jan 26 01:42:40 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: clarify do ambiguity, bit more complex but natural</div><div class='add'>+	  from my point of view.</div><div class='add'>+</div><div class='add'>+Wed Jan 24 14:58:08 2001  Akinori MUSHA  &lt;knu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: fix the problem that when running under mod_ruby</div><div class='add'>+	  header() outputs only one Set-Cookie line.</div><div class='add'>+</div><div class='add'>+Wed Jan 24 01:45:49 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_BLOCK_TAG): call rb_gc_force_recycle() if block has</div><div class='add'>+	  not been objectified.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): should nail down block-&gt;tag history to avoid</div><div class='add'>+	  rb_gc_force_recycle().</div><div class='add'>+</div><div class='add'>+Tue Jan 23 18:51:57 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): should finalize objects in</div><div class='add'>+	  deferred_final_list too.</div><div class='add'>+</div><div class='add'>+Tue Jan 23 16:10:12 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (os_live_obj): do not list terminated object.</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): support new T_BLKTAG tag.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (new_blktag): creation of new block tag, which holds</div><div class='add'>+	  destination of global jump and orphan status.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): break from orphan Proc object will raise a</div><div class='add'>+	  LocalJumpError exception.</div><div class='add'>+</div><div class='add'>+Mon Jan 22 16:33:16 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: autoconf 2.49 support.</div><div class='add'>+</div><div class='add'>+Mon Jan 22 00:32:44 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): behavior consistency with proc_call(). do</div><div class='add'>+	  not propagate `break'.</div><div class='add'>+</div><div class='add'>+Sat Jan 20 03:54:00 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): fixed serious syntax misbehavior.  do's</div><div class='add'>+	  preceding was too high.  a block in `foo bar do .. end' should</div><div class='add'>+	  be passed to `foo', not `bar'.</div><div class='add'>+</div><div class='add'>+	* parse.y (block_call): syntax restructure.</div><div class='add'>+</div><div class='add'>+Thu Jan 18 04:28:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_read): new method to call IO#read from</div><div class='add'>+	  pathname.  In addition, it accepts third optional argument to</div><div class='add'>+	  specify starting point.</div><div class='add'>+</div><div class='add'>+Wed Jan 17 13:28:26 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove DEFS definition.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/config.status.in: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 16 17:00:50 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: ignore EOFError for read.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: user specified header was not used.</div><div class='add'>+</div><div class='add'>+Mon Jan 15 16:00:07 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): should check associated pointer packed by</div><div class='add'>+	  pack("P").  Thus pointers can be retrieved only from pointer</div><div class='add'>+	  packed strings.  restriction added.</div><div class='add'>+</div><div class='add'>+Sun Jan 14 21:49:28 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): simple typo.  binary base should be 2,</div><div class='add'>+	  not '2'.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_last_match): should explicitly return nth match.</div><div class='add'>+</div><div class='add'>+Sun Jan 14 18:21:30 2001  Usaku Nakamura  &lt;usa@osb.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.status.in: add some field.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (isInternalCmd): ignore case for shell's internal</div><div class='add'>+	  command.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_spawn): recognize quoted command line.</div><div class='add'>+</div><div class='add'>+Sun Jan 14 04:10:27 2001  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (adding): too few "yield" in case of arg is</div><div class='add'>+	  not String/File.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: add http request object.</div><div class='add'>+</div><div class='add'>+Sat Jan 13 19:39:30 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): separate RE_OPTION_MULTILINE</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_options): add RE_OPTION_{POSIXLINE,RE_OPTION_MULTILINE,</div><div class='add'>+	  RE_OPTION_EXTENDED}</div><div class='add'>+</div><div class='add'>+Thu Jan 11 10:45:04 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h, win32/config.h.in: move NORETURN from win32.h</div><div class='add'>+	  to config.h.in.</div><div class='add'>+</div><div class='add'>+	* win32/config.h.in (inline): renamed from INLINE.</div><div class='add'>+</div><div class='add'>+	* djgpp/config.hin (INLINE): removed.</div><div class='add'>+</div><div class='add'>+Thu Jan 11 06:45:55 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_dup): should propagate FL_SINGLETON.</div><div class='add'>+</div><div class='add'>+	* object.c (inspect_obj): handles the case of no instance variable.</div><div class='add'>+</div><div class='add'>+Wed Jan 10 16:15:08 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: NORETURN macro is changed for VC++ 6.0.</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* djgpp/config.hin, win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 10 13:54:53 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setuid): use setresuid() if available.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgid): use setresgid() if available.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 10 01:50:45 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_C_INLINE): check inline attribute.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): forgot to call rb_str_modify().</div><div class='add'>+</div><div class='add'>+Tue Jan  9 17:41:40 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_taint): check frozen status before modifying</div><div class='add'>+	  taint status.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_untaint): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan  9 16:22:14 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): new method.</div><div class='add'>+</div><div class='add'>+Tue Jan  9 02:16:42 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): clear klass member of</div><div class='add'>+	  terminating object.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): raise exception for terminated object.</div><div class='add'>+</div><div class='add'>+Mon Jan  8 21:24:37 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): t2 might be too big for signed long; do</div><div class='add'>+	  not use rb_int2big(), but rb_uint2big().</div><div class='add'>+</div><div class='add'>+Mon Jan  8 21:35:10 2001  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): should restore modified path.</div><div class='add'>+</div><div class='add'>+Mon Jan  8 03:09:58 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_load_fail): new func to report LoadError.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): use rb_load_fail.</div><div class='add'>+</div><div class='add'>+Sat Jan  6 00:17:18 2001  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): avoid infinite loop(pack 'm2').</div><div class='add'>+</div><div class='add'>+Fri Jan  5 01:02:17 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize): should enclosed by PUSH_TAG/POP_TAG.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): link 2 of NODE_IFUNC should not be explicitly</div><div class='add'>+	  marked.  it may contain non object pointer.</div><div class='add'>+</div><div class='add'>+Tue Jan  2 00:20:06 2001  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_s_last_match): Regexp::last_match(nth) returns nth</div><div class='add'>+	  substring of the match  (alternative for $&amp; and $&lt;digit&gt;).</div><div class='add'>+</div><div class='add'>+Sun Dec 31 01:39:16 2000  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): wrong comparison for blocks.</div><div class='add'>+</div><div class='add'>+Sat Dec 30 19:28:50 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): should handle Symbol too.</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): should print original ptr value</div><div class='add'>+</div><div class='add'>+Sat Dec 30 03:14:22 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_iterate): NODE_CFUNC does not protect its data</div><div class='add'>+	  (nd_tval), so create new node NODE_IFUNC for iteration C</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): use NODE_IFUNC.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): support NODE_IFUNC.</div><div class='add'>+</div><div class='add'>+Fri Dec 29 11:41:55 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (mem_error): prohibit recursive mem_error().</div><div class='add'>+	  (ruby-bugs-ja:PR#36)</div><div class='add'>+</div><div class='add'>+Fri Dec 29 11:05:41 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_fd_writable): should not switch context if</div><div class='add'>+	  rb_thread_critical is set.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_wait_fd): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_wait_for): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): join during critical section causes</div><div class='add'>+	  deadlock.</div><div class='add'>+</div><div class='add'>+Fri Dec 29 00:38:46 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* m17n.c: new file - core functions of M17N.</div><div class='add'>+</div><div class='add'>+Tue Dec 26 18:46:41 2000  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: Avoid thread deadlock in debugging stopped thread.</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: Uncleared 'finish' state.</div><div class='add'>+</div><div class='add'>+Tue Dec 26 16:53:55 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): remove dvar node by rb_gc_force_recycle()</div><div class='add'>+	  more eagerly.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_binding): recycling should be stopped for outer</div><div class='add'>+	  scope too.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_new): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 26 15:45:35 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): should treat multibyte characters</div><div class='add'>+	  properly.</div><div class='add'>+</div><div class='add'>+Mon Dec 25 17:49:08 2000  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace_m): unexpected string share happens if</div><div class='add'>+	  replace is done for associated (STR_NO_ORIG) string.</div><div class='add'>+</div><div class='add'>+Tue Dec 26 15:01:53 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_p): should not call rb_io_flush() if rb_defout is not</div><div class='add'>+	  a IO (T_FILE).</div><div class='add'>+</div><div class='add'>+Mon Dec 25 15:52:39 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.6.2 released.</div><div class='add'>+</div><div class='add'>+Mon Dec 25 05:11:04 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: version 2.1.2 (some bug fixes).</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: Regexp::last_match[1] --&gt; $1</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 25 04:43:02 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: does not send HEAD on closing socket.</div><div class='add'>+</div><div class='add'>+Mon Dec 25 00:44:48 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_cmp): should use rb_str_cmp() if TYPE == T_STRING</div><div class='add'>+	  and CLASS_OF == rb_cString.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): should copy class of original too.</div><div class='add'>+</div><div class='add'>+Mon Dec 25 00:04:54 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): initial value of `max' changed to -1.</div><div class='add'>+</div><div class='add'>+Mon Dec 25 00:16:14 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace_m): copy-on-write replace.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should handle =&gt; after identifier as well as ==</div><div class='add'>+	  and =~.</div><div class='add'>+</div><div class='add'>+Sat Dec 23 23:55:57 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): Integer("") should not return 0.</div><div class='add'>+</div><div class='add'>+Sat Dec 23 11:55:57 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and): Array#&amp; should preserve original order.</div><div class='add'>+</div><div class='add'>+Sat Dec 23 03:44:16 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: set @closed false in Socket#reopen.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: add POP3.foreach, delete_all.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: add POP3#delete_all.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: add HTTP.version_1_1, version_1_2</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: refactoring.</div><div class='add'>+</div><div class='add'>+Fri Dec 22 23:11:12 2000  Ueno Katsuhiro  &lt;unnie@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_feature_p): ext might be null.</div><div class='add'>+</div><div class='add'>+Fri Dec 22 17:04:12 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myselect): avoid busy loop by adjusting fd_count.</div><div class='add'>+</div><div class='add'>+Fri Dec 22 15:07:55 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): prefix like '0x' had removed too much.</div><div class='add'>+</div><div class='add'>+Thu Dec 21 13:01:46 2000  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (makeport): don't use TCPsocket.getaddress.</div><div class='add'>+</div><div class='add'>+Wed Dec 20 12:00:15 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_lshift): should cast up to BDIGIT_DBL.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): disallow trailing '_' for numeric literals.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): allow `_' within converting string.</div><div class='add'>+</div><div class='add'>+	* eval.c (specific_eval): should take no argument if block is</div><div class='add'>+	  supplied.</div><div class='add'>+</div><div class='add'>+Tue Dec 19 13:44:50 2000  K.Kosako  &lt;kosako@sofnec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_p): should flush rb_defout, not stdout.</div><div class='add'>+</div><div class='add'>+Tue Dec 19 00:57:10 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): usec might overflow. (ruby-bugs-ja:PR#35)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_extend): Object#extend should take at least one</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* parse.y (mrhs_basic): should check value_expr($3), not $1.</div><div class='add'>+</div><div class='add'>+Mon Dec 18 23:18:39 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (mblen, __crt0_glob_function): add for multibyte</div><div class='add'>+	  on DJGPP 2.03.</div><div class='add'>+</div><div class='add'>+Mon Dec 18 18:10:30 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): usec might underflow (ruby-bugs-ja:#PR33).</div><div class='add'>+</div><div class='add'>+Mon Dec 18 08:11:20 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_set_default): should call rb_hash_modify().</div><div class='add'>+</div><div class='add'>+Sat Dec 16 02:58:26 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should clear ruby_errinfo on retry.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 14 13:06:18 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): prohibit frozen class/module.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_frozen_class_p): make external.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_frozen_class_p): prototyped.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_undef): prototyped not but rb_undef_method()</div><div class='add'>+	  which is also in ruby.h.</div><div class='add'>+</div><div class='add'>+Thu Dec 14 09:20:26 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: support -T1 on ruby 1.6.2</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: $1 --&gt; Regexp::last_match[1]</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 13 23:27:06 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): handles case statement without expr, which</div><div class='add'>+	  looks for any TRUE (non nil, non false) when expression.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): case expression should not be compstmt, but</div><div class='add'>+	  mere expr.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): case without following expression is now</div><div class='add'>+	  separated rule.</div><div class='add'>+</div><div class='add'>+Wed Dec 13 12:41:27 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): accept "--^M" for DOS line endings.</div><div class='add'>+</div><div class='add'>+Tue Dec 12 15:45:42 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (newline_node): cancel newline unification.</div><div class='add'>+</div><div class='add'>+Mon Dec 11 23:01:57 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): supports cases `?' precedes EOF and newline.</div><div class='add'>+</div><div class='add'>+Mon Dec 11 12:11:25 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_end_proc): some frame members were left</div><div class='add'>+	  uninitialized.</div><div class='add'>+</div><div class='add'>+Mon Dec 11 01:14:58 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_finalize): do not fclose stdin, stdout and</div><div class='add'>+	  stderr at exit.</div><div class='add'>+</div><div class='add'>+Sat Dec  9 17:34:48 2000  Tachino Nobuhiro &lt;tachino@open.nm.fujitsu.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): should check with kind_of?, not instance_of?</div><div class='add'>+</div><div class='add'>+	* time.c (time_eql): ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  8 17:23:25 2000  Tachino Nobuhiro &lt;tachino@open.nm.fujitsu.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): proper string precision treat.</div><div class='add'>+</div><div class='add'>+Fri Dec  8 10:44:05 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_cvar): Module#remove_class_variable</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+Thu Dec  7 17:35:51 2000  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_length): don't use __builtin_frame_address() on alpha.</div><div class='add'>+</div><div class='add'>+Wed Dec  6 18:07:13 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* djgpp/config.sed, win32/Makefile.sub: typo.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): avoid VC4.0 warnings.</div><div class='add'>+</div><div class='add'>+Wed Dec  6 13:38:08 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and): tuning, make hash from shorter operand.</div><div class='add'>+</div><div class='add'>+Wed Dec  6 01:28:50 2000  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): __builtin_frame_address() should not be used on</div><div class='add'>+	  MacOS X.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec  4 13:44:01 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb: consider multibyte. not /n.</div><div class='add'>+</div><div class='add'>+Mon Dec  4 09:49:36 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): output whole string contents. no more `...'</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): should propagate taintness.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_inspect): hash like human readable output.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_get): prohibiting instance variable access</div><div class='add'>+	  is too much restriction.</div><div class='add'>+</div><div class='add'>+	* class.c (method_list): retrieving information should not be</div><div class='add'>+	  restricted where $SAFE=4.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_singleton_methods): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_priority): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_local_aref): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_obj_instance_variables): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_at): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_class_variables): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): end_proc should be preserved.</div><div class='add'>+</div><div class='add'>+Sat Dec  2 22:32:43 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): || should accept exactly zero argument.</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): multiple right hand side for single assignment</div><div class='add'>+	  (e.g. a = 1,2) is allowed.</div><div class='add'>+</div><div class='add'>+Wed Nov 29 07:55:29 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_long): dumping long should be smaller than 32bit max.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_long): shorter long format for small integers(-123..122).</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_long): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 28 18:10:51 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): quick hack to implement</div><div class='add'>+	  on-the-fly method definition.  experimental.</div><div class='add'>+</div><div class='add'>+Mon Nov 27 17:00:35 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not redefine builtin classes/modules</div><div class='add'>+	  from within wrapped load.</div><div class='add'>+</div><div class='add'>+Mon Nov 27 08:57:33 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_end_proc): should be isolated from outer block.</div><div class='add'>+</div><div class='add'>+Mon Nov 27 00:10:08 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl): call ioctl/fcntl for fptr-&gt;f2 too.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_fork): call rb_thread_atfork() after creating</div><div class='add'>+	  child process.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_atfork): kill all other threads immediately,</div><div class='add'>+	  then turn the current thread into the main thread.</div><div class='add'>+</div><div class='add'>+Sat Nov 25 23:12:22 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): move calling point of rb_trap_exit after</div><div class='add'>+	  cleaning up threads.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize): new function to call EXIT trap, END</div><div class='add'>+	  procs and GC finalizers.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): prevent recursion.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): ditto.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_trap_exit): ditto. made static.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_fork): should swallow all exceptions from block</div><div class='add'>+	  execution.</div><div class='add'>+</div><div class='add'>+	* process.c (fork_rescue): should call ruby_finalize().</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): rb_gc() removed.  I don't remember why I put</div><div class='add'>+	  this here.  test code?</div><div class='add'>+</div><div class='add'>+Fri Nov 24 22:03:48 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (EXCL): exclusive information is now stored in an</div><div class='add'>+	  instance variable.  this enables proper marshal dump.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid): should clear rb_last_status ($?) if</div><div class='add'>+	  no pid was given by waitpid(2).</div><div class='add'>+</div><div class='add'>+Thu Nov 23 01:35:38 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid2): returns nil if no pid found.</div><div class='add'>+</div><div class='add'>+Wed Nov 22 23:45:15 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eq): new method.  Compares start and end of range</div><div class='add'>+	  respectively.</div><div class='add'>+</div><div class='add'>+Wed Nov 22 11:01:32 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_class_variables): should honor singleton</div><div class='add'>+	  class variable rule defined yesterday.</div><div class='add'>+</div><div class='add'>+Tue Nov 21 23:24:14 2000  Mitsuteru S Nakao  &lt;nakao@kuicr.kyoto-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flodivmod): missing second operand (typo).</div><div class='add'>+</div><div class='add'>+Tue Nov 21 03:39:41 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): marshal format compatibility check</div><div class='add'>+	  revised.   greater minor revision is UPWARD compatible;</div><div class='add'>+	  downward compatibility is not assured.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): clarify class variable behavior for</div><div class='add'>+	  singleton classes.  class variables within singleton class</div><div class='add'>+	  should be treated like within singleton method.</div><div class='add'>+</div><div class='add'>+Mon Nov 20 13:45:21 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): set ruby_sourceline before evaluating</div><div class='add'>+	  exceptions.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): defer finalization in GC during compilation or</div><div class='add'>+	  interrupt prohibit section.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): mark all nodes before sweeping if GC happened</div><div class='add'>+	  during compilation.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should treat class variables specially in a</div><div class='add'>+	  method defined in the singleton class.</div><div class='add'>+</div><div class='add'>+Mon Nov 20 10:20:21 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c, win32/win32.c, ruby.h: add rb_iglob().</div><div class='add'>+</div><div class='add'>+Mon Nov 20 00:18:16 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): should return nil for outbound start</div><div class='add'>+	  index.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): show format versions explicitly when</div><div class='add'>+	  format version mismatch happens.</div><div class='add'>+</div><div class='add'>+Sun Nov 19 06:13:24 2000  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c: use long for string/array length.</div><div class='add'>+</div><div class='add'>+	* pack.c (swaps): use bit-or(|) instead of plus(+).</div><div class='add'>+</div><div class='add'>+	* pack.c (swapl): ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov 18 15:18:16 2000  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): array size should be in long.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_concat): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_hash): ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov 18 14:07:20 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Socket#readline() reads until "\n", not "\r\n"</div><div class='add'>+</div><div class='add'>+Fri Nov 17 14:55:18 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): output should be NUL terminated.</div><div class='add'>+</div><div class='add'>+Fri Nov 17 02:54:15 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close): need not to flush before closing.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): should preserve last thread status when</div><div class='add'>+	  THREAD_TO_KILL.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_stop): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): wrap fflush by TRAP_BEG, TRAP_END.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): method defined within singleton class</div><div class='add'>+	  definition should behave like singleton method about class</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 16 23:06:07 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: can call {old,new}_implementation any times.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP#connecting, receive -&gt;</div><div class='add'>+	  common_oper, connecting.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: output warning if u_header includes</div><div class='add'>+	  duplicated header.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: not check Connection:/Proxy-Connection;</div><div class='add'>+	  always read until eof.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: detects and catches "break" from block.</div><div class='add'>+</div><div class='add'>+Thu Nov 16 16:32:45 2000  Masahiro Tanaka  &lt;masa@stars.gsfc.nasa.gov&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): should have incremented ny first.</div><div class='add'>+</div><div class='add'>+Thu Nov 16 14:58:00 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_new): duplicates file descriptor</div><div class='add'>+	  with myfddup() on mswin32/mingw32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: uses system original fdopen().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myfddup): newly added instead of myfdopen().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mybind, myconnect, mygetsockname, mygetsockopt,</div><div class='add'>+	  mylisten, mysetsockopt): now accept file descriptor only, not</div><div class='add'>+	  SOCKET.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myaccept, mysocket): return file descriptor,</div><div class='add'>+	  instead of SOCKET.</div><div class='add'>+</div><div class='add'>+Thu Nov 16 10:23:24 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): too strict check for nameless rest argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_arity): mere * should return -1.</div><div class='add'>+</div><div class='add'>+	* eval.c (intersect_fds): should check all FDs in the fd_set.</div><div class='add'>+</div><div class='add'>+Wed Nov 15 19:33:20 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): should clear method cache before calling hook.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_modfunc): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 13 22:44:52 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): print version to stderr.</div><div class='add'>+</div><div class='add'>+Mon Nov 13 19:02:08 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, io.c, process.c: the exit status of program must be</div><div class='add'>+	  multiplied 256 on mswin32 and msdosdjgpp(system(), ``).</div><div class='add'>+</div><div class='add'>+Sat Nov 11 22:57:38 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): uniformed treatment of -a**b, where a is a</div><div class='add'>+	  number literal;  hacky but behavior appears more consistent.</div><div class='add'>+</div><div class='add'>+	* parse.y (newline_node): reduce newline node (one per line).</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_srand): should be prohibited in safe level</div><div class='add'>+	  greater than 4.</div><div class='add'>+</div><div class='add'>+Sat Nov 11 22:37:36 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h: do not use rb_trap_immediate on win32.</div><div class='add'>+</div><div class='add'>+	* rubysig.h: new macros, ATOMIC_TEST, ATOMIC_SET, ATOMIC_INC,</div><div class='add'>+	  ATOMIC_DEC, RUBY_CRITICAL and new definition of TRAP_BEG,</div><div class='add'>+	  TRAP_END.</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xmalloc): should wrap malloc() by RUBY_CRITICAL.</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandle): better win32 sig handling.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (flock): better implementation.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myselect): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myaccept): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (waitpid): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myrename): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wait_events): support function for win32 signal</div><div class='add'>+	  handling.</div><div class='add'>+</div><div class='add'>+Sat Nov 11 08:34:18 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.31.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: initializes header in HTTP, not HTTPCommand.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, http.rb: rewrites proxy code.</div><div class='add'>+</div><div class='add'>+Fri Nov 10 16:15:53 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2long): use to_int, not to_i.</div><div class='add'>+</div><div class='add'>+	* error.c: T_SYMBOL was misplaced by T_UNDEF.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): eval("^") caused infinite loop.</div><div class='add'>+</div><div class='add'>+Thu Nov  9 14:22:13 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_taint_check): should check IO taintness; no</div><div class='add'>+	  operation for untainted IO should be allowed in the sandbox.</div><div class='add'>+</div><div class='add'>+	* rubyio.h (GetOpenFile): check IO taintness inside using</div><div class='add'>+	  rb_io_taint_check().</div><div class='add'>+</div><div class='add'>+Wed Nov  8 03:08:53 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): ensure fflush(3) would not block by calling</div><div class='add'>+	  rb_thread_fd_writable().</div><div class='add'>+</div><div class='add'>+Tue Nov  7 20:29:56 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.30.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb: Command#critical_ok -&gt; error_ok</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: reads header when also "100 Continue".</div><div class='add'>+</div><div class='add'>+Tue Nov  7 04:32:19 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): use bit shift to make y's MSB set.</div><div class='add'>+</div><div class='add'>+Mon Nov  6  1:22:49 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (warn_print): do not use err_append(), to ensure output</div><div class='add'>+	  to stderr.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_warn): use warn_print() instead of err_print().</div><div class='add'>+</div><div class='add'>+	* error.c (rb_warning): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): re-raise exceptions during load.</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): remove useless adjust</div><div class='add'>+</div><div class='add'>+Thu Nov  2 18:01:16 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): half-baked float support fixed.  This fix</div><div class='add'>+	  was originally proposed by K.Kosako &lt;kosako@sofnec.co.jp&gt;.</div><div class='add'>+</div><div class='add'>+Tue Oct 31 17:27:17 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: change digit size to `long|int' if long long is</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): support `long|int' digits.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 28 23:54:22 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): allow =end at the end of file (without a</div><div class='add'>+	  newline at the end).</div><div class='add'>+</div><div class='add'>+Fri Oct 27 10:00:27 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): should ignore trailing white spaces.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str2inum): string may not have sentinel NUL.</div><div class='add'>+</div><div class='add'>+Fri Oct 27 02:37:22 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): wrongly assigned base to c before</div><div class='add'>+	  badcheck check.</div><div class='add'>+</div><div class='add'>+Thu Oct 26 02:42:50 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Command#critical_ok</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: clear critical flag before go to SMTP</div><div class='add'>+</div><div class='add'>+Wed Oct 25 12:30:19 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_concat): replacing array might be the receiver</div><div class='add'>+	  itself.  do not call rb_ary_push_m.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): replacing array might be the receiver</div><div class='add'>+	  itself.  use memmove.</div><div class='add'>+</div><div class='add'>+Fri Oct 20 07:56:23 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ARGSPUSH should not modify args array.</div><div class='add'>+</div><div class='add'>+Thu Oct 19 14:58:17 2000  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (NUM2U32): should use NUM2ULONG().</div><div class='add'>+</div><div class='add'>+Tue Oct 17 17:30:34 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): ruby_sourcefile may be NULL.</div><div class='add'>+</div><div class='add'>+Tue Oct 17 16:36:28 2000  Wes Nakamura  &lt;wknaka@pobox.com&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (NATINT_U32): wrong use of sizeof.</div><div class='add'>+</div><div class='add'>+Tue Oct 17 12:48:20 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_abort): nil check against ruby_errinfo.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): use FOREACH_THREAD_FROM instead of</div><div class='add'>+	  FOREACH_THREAD, since curr_thread may be removed from thread ring.</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): errinfo should be Qnil.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): th-&gt;prev,th-&gt;next are now already</div><div class='add'>+	  initialized in THREAD_ALLOC.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 15:37:33 2000  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_inspect): tag size was shorter than required.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 14:25:18 2000  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_inspect): used `name' before initialization.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 14:06:00 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): use NATINT_U32 for 'l', 'L', and 'N'.</div><div class='add'>+</div><div class='add'>+	* pack.c (I32,U32): 32 bit sized integer.</div><div class='add'>+</div><div class='add'>+	* pack.c (OFF16,OFF32B): big endian offset for network byteorder.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 06:39:32 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: hex-alpha is not [a-h] but [a-f].</div><div class='add'>+</div><div class='add'>+Mon Oct 16 01:02:02 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): should not abort on exception if</div><div class='add'>+	  $SAFE &gt;= 4.</div><div class='add'>+</div><div class='add'>+	* parse.y (sym): symbols for class variable names.</div><div class='add'>+</div><div class='add'>+Sun Oct 15 01:49:18 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_flock): should accept interrupt.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_wait): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid2): wrong recursion.</div><div class='add'>+</div><div class='add'>+Sat Oct 14 03:32:13 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_alloc): should not link a new thread in the</div><div class='add'>+	  live thread ring before initialization.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 17:08:09 2000  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: new file.</div><div class='add'>+</div><div class='add'>+Thu Oct 12 18:56:28 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: POP3#reset</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: a code for "Switch Protocol" was wrongly 100.</div><div class='add'>+</div><div class='add'>+Thu Oct 12 01:23:38 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: bug fix: CGI::html(): PRETTY option didn't work.</div><div class='add'>+</div><div class='add'>+Thu Oct 12 00:03:02 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_inspect): should adjust string length.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_to_s): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 22:15:47 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_inspect): should adjust string length.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_any_to_s): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 18:13:50 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): should check insecure exit.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 14:29:51 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: 2nd arg for ProtocolError#initialize is</div><div class='add'>+	  optional.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: code refining.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 11:13:03 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): setter method (e.g. foo=) should always be</div><div class='add'>+	  public.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_raise): should not raise SecurityError if</div><div class='add'>+	  exception raised by the interpreter.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): skip all THREAD_KILLED threads</div><div class='add'>+	  before FOREACH_THREAD.</div><div class='add'>+</div><div class='add'>+Tue Oct 10 16:11:54 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): remove unused code for Cygwin.</div><div class='add'>+</div><div class='add'>+Tue Oct 10 09:49:23 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): FileTest.size should return 0 (not nil) for</div><div class='add'>+	  empty files.</div><div class='add'>+</div><div class='add'>+Sun Oct  8 13:20:26 2000  Guy Decoux  &lt;decoux@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_SCOPE): not just set SCOPE_DONT_RECYCLE, but do</div><div class='add'>+	  scope_dup().</div><div class='add'>+</div><div class='add'>+Sat Oct  7 15:10:50 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): unnecessary ALLOCA_N() was</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 14:50:24 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in, lib/mkmf.rb: remove "DESTDIR =".</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub, ruby.1: renamed -X to -C.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 12:50:52 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_plus): use to_ary(), not Check_Type().</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_concat): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): use __builtin_frame_address() for gcc.</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_length): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (assign_in_cond): stop warning till some better warning</div><div class='add'>+	  condition will be found.</div><div class='add'>+</div><div class='add'>+Thu Oct  5 18:02:39 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): should have propagated taint flag.</div><div class='add'>+	  (ruby-bugs:#PR64,65)</div><div class='add'>+</div><div class='add'>+Wed Oct  4 00:26:11 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_arity): proc{|a|}'s arity should be -1.</div><div class='add'>+</div><div class='add'>+Mon Oct  2 05:28:58 2000  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): minus at the end of pattern.</div><div class='add'>+</div><div class='add'>+Sun Oct  1 00:43:34 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: exp-name was wrong on cygwin and mingw32.</div><div class='add'>+</div><div class='add'>+Thu Sep 28 14:57:09 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): should try must_string calculation</div><div class='add'>+	  every time.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 23:47:44 2000  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, config.guess, config.sub: MacOS X support.</div><div class='add'>+</div><div class='add'>+Wed Sep 27 18:40:05 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.6.1 released.</div><div class='add'>+</div><div class='add'>+Wed Sep 27 16:13:05 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: variables should be expanded only if /\$\{?\w+\}?/.</div><div class='add'>+</div><div class='add'>+Tue Sep 26 18:09:51 2000  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: include &lt;math.h&gt;</div><div class='add'>+</div><div class='add'>+Tue Sep 26 15:59:50 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_dup): metaclasses of class/module should not be</div><div class='add'>+	  cleared by rb_obj_dup.</div><div class='add'>+</div><div class='add'>+Tue Sep 26 02:44:54 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (GC_MALLOC_LIMIT): size extended.</div><div class='add'>+</div><div class='add'>+	* regex.c (DOUBLE_STACK): use machine's stack region for regex</div><div class='add'>+	  stack if its size is small enough.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 18:13:07 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c: include &lt;defines.h&gt;.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): cache mismatch by method</div><div class='add'>+	  definition. need to clear_cache_by_id every time.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 13:31:45 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtCmdGlob): substitute '\\' with '/'.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 00:35:01 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: #undef HAVE_SETITIMER on cygwin.</div><div class='add'>+</div><div class='add'>+Sun Sep 24 03:01:53 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, http.rb: typo.</div><div class='add'>+</div><div class='add'>+Sat Sep 23 07:33:20 2000  Aleksi Niemela  &lt;aleksi.niemela@cinnober.com&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): nicer regexp error messages for</div><div class='add'>+	  invalid patterns.</div><div class='add'>+</div><div class='add'>+Sat Sep 23 03:06:25 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): should not require already</div><div class='add'>+	  provided features.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 15:46:21 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: too early parameter expansion in string.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 13:58:51 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: don't use default $:</div><div class='add'>+</div><div class='add'>+Fri Sep 22 13:42:50 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (PUSH_FAILURE_COUNT): avoid casting warning on alpha.</div><div class='add'>+</div><div class='add'>+	* regex.c (PUSH_FAILURE_POINT): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 10:16:21 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.h.in: add HAVE_TELLDIR, HAVE_SEEKDIR</div><div class='add'>+</div><div class='add'>+Thu Sep 21 19:04:34 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb (install_rb): check whether libdir is</div><div class='add'>+	  directory or not.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 17:23:05 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_symlink): use HAVE_SYMLINK.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): use HAVE_READLINK.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_tell): use HAVE_TELLDIR.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_seek): use HAVE_SEEKDIR.</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_CHECK_FUNCS): lstat, symlink, readlink,</div><div class='add'>+	  telldir, seekdir checks added.</div><div class='add'>+</div><div class='add'>+	* file.c (lstat): should use stat(2) if lstat(2) is not</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 15:59:23 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.29.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPReadAdapter -&gt; HTTPResponseReceiver</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (connecting): response is got in receive()</div><div class='add'>+</div><div class='add'>+Thu Sep 21 15:49:07 2000  Wayne Scott  &lt;wscott@ichips.intel.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (find): should not follow symbolic links;</div><div class='add'>+	  tuned performance too.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 23:21:38 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): two Ctrl-D was required to stop ruby at the</div><div class='add'>+	  beginning of stdin script read.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 14:01:45 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): detect infinite load loop.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): too weak filename comparison.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_alloc): avoid recycling still referenced</div><div class='add'>+	  dvar structures.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): fill dyna_vars field by ruby_dyna_vars.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 17:47:03 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.6.0 released.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 16:24:52 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (Init_marshal): provide marshal.so no more.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 14:01:01 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/setup.mak: include version number</div><div class='add'>+	  in RUBY_SO_NAME.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 13:07:47 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): was confusing $~ and $_.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 13:06:53 2000  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_f_kill): signum may be a negative number, should be</div><div class='add'>+	  treated by signed number.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 01:14:56 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provide): better feature handling.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): loading ruby library may be partial</div><div class='add'>+	  state.  checks in rb_thread_loading is integrated.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): better thread awareness.</div><div class='add'>+</div><div class='add'>+	* lib/irb/frame.rb: 6 (not 5) parameters for trace_func proc.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): should print error position even if</div><div class='add'>+	  get_backtrace() failed.</div><div class='add'>+</div><div class='add'>+Sat Sep 16 03:29:59 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): rb_provided() was called too early; does</div><div class='add'>+	  not work well with threads.</div><div class='add'>+</div><div class='add'>+	* parse.y (ensure): should distinguish empty ensure and non</div><div class='add'>+	  existing ensure.</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): extending File by class of FileTest was</div><div class='add'>+	  serious mistake.</div><div class='add'>+</div><div class='add'>+Thu Sep 14 02:46:54 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_yield): array strip should be done in this</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+Wed Sep 13 17:01:03 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): incomplete value comparison of bignums.</div><div class='add'>+</div><div class='add'>+Wed Sep 13 06:39:54 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_class_variables): Module#class_variables added.</div><div class='add'>+</div><div class='add'>+Wed Sep 13 06:09:26 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: bug fix: CGI::header(): output status header.</div><div class='add'>+</div><div class='add'>+Wed Sep 13 01:09:12 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): allow global variables like '$__a'.</div><div class='add'>+</div><div class='add'>+Tue Sep 12 22:28:43 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: avoid using terrible &lt;netinet/tcp.h&gt;</div><div class='add'>+	  on cygwin 1.1.5.</div><div class='add'>+</div><div class='add'>+Tue Sep 12 16:01:58 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): typo.</div><div class='add'>+</div><div class='add'>+Tue Sep 12 15:37:55 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): stripped array too much, should remove just</div><div class='add'>+	  for proc_call().</div><div class='add'>+</div><div class='add'>+Tue Sep 12 07:05:24 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: version 2.0.0: require ruby1.5.4 or later.</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: version 1.6.0</div><div class='add'>+</div><div class='add'>+Tue Sep 12 03:26:07 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): use to_ary to get an array if available.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Array): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 11 14:24:47 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): should not free the element of</div><div class='add'>+	  origenvironment.</div><div class='add'>+</div><div class='add'>+	* parse.y (command_call): kYIELD moved to this rule to allow</div><div class='add'>+	  'a = yield b'. (ruby-bugs-ja:#PR15)</div><div class='add'>+</div><div class='add'>+Mon Sep 11 01:27:54 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): proc#call([]) should pass single value to</div><div class='add'>+	  the block.</div><div class='add'>+</div><div class='add'>+	* eval.c (callargs): reduce array allocation.</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): precise check for argument number.</div><div class='add'>+</div><div class='add'>+Fri Sep  8 10:05:17 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (STR_NO_ORIG): should be FL_USER2.</div><div class='add'>+</div><div class='add'>+Thu Sep  7 14:17:51 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cat): should work even for concatenating same</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Wed Sep  6 17:06:38 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_declare): should check superclass's class</div><div class='add'>+	  variable first.</div><div class='add'>+</div><div class='add'>+Wed Sep  6 10:42:02 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): shift continuing line</div><div class='add'>+	  if previous line ends with modifier keyword.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-region): should not give up if</div><div class='add'>+	  modifiers are at the end of line.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): indented wrongly if modified</div><div class='add'>+	  statement was size 1.</div><div class='add'>+</div><div class='add'>+Wed Sep  6 10:41:19 2000  Kenichi Komiya  &lt;kom@mail1.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-region): modifier was not handled</div><div class='add'>+	  well on emacs19.</div><div class='add'>+</div><div class='add'>+Tue Sep  5 17:10:12 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): fixed zone string UTC for utc time object.</div><div class='add'>+</div><div class='add'>+Tue Sep  5 00:26:06 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): range worked wrongly on bm_search().</div><div class='add'>+</div><div class='add'>+Mon Sep  4 13:40:40 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: renamed libruby.a to libruby.{cygwin,mingw32}.a</div><div class='add'>+	  on cygwin and mingw32.</div><div class='add'>+</div><div class='add'>+Sun Sep  3 23:44:04 2000  Noriaki Harada  &lt;tenmei@maoh.office.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (NO_SAFE_RENAME): for BeOS too.</div><div class='add'>+</div><div class='add'>+Sun Sep  3 11:31:53 2000  Takaaki Tateishi  &lt;ttate@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rescue): no assignment was done if rescue body was</div><div class='add'>+	  empty.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 10:52:21 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args,aref_args): block_call can be the last</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* parse.y (COND_PUSH,COND_POP): maintain condition stack to allow</div><div class='add'>+	  kDO2 in parentheses in while/until/for conditions.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): generate kDO2 for EXPR_ARG outside of</div><div class='add'>+	  while/until/for condition.</div><div class='add'>+</div><div class='add'>+Fri Sep  1 10:36:29 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (aref_args,opt_call_args): add block_call to allow a</div><div class='add'>+	  method without parentheses and with block as a last argument.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_sort): should not return nil.</div><div class='add'>+</div><div class='add'>+	* re.c (match_aref): should use rb_reg_nth_match().</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_SCOPE): recycled scopes too much</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): extend room for stack allowance.</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_SCOPE): frees scope too much.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 14:28:39 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): T_SCOPE condition must be more precise.</div><div class='add'>+</div><div class='add'>+	* eval.c (scope_dup): should not make all duped scope orphan.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 10:11:47 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): allow stmt_rhs to be right hand side of multiple</div><div class='add'>+	  assignment.</div><div class='add'>+</div><div class='add'>+	* time.c (rb_time_timeval): type error should not mention the word</div><div class='add'>+	  'interval'.</div><div class='add'>+</div><div class='add'>+Wed Aug 30 23:21:20 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2long): use rb_Integer() instead of independent</div><div class='add'>+	  convert routine.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): now takes arbitrary number of exception types.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_convert_type): use rb_rescue2 now to handle NameError.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_convert_type): better error message.</div><div class='add'>+</div><div class='add'>+Wed Aug 30 17:09:14 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): AlphaNT support.</div><div class='add'>+</div><div class='add'>+Wed Aug 30 14:19:07 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (node_assign): should support NODE_CVASGN2 too.</div><div class='add'>+</div><div class='add'>+Wed Aug 30 11:31:47 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): add the</div><div class='add'>+	  arguments checking.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): add taint</div><div class='add'>+	  checking. allow String object in the third argument.</div><div class='add'>+</div><div class='add'>+Wed Aug 30 10:29:40 2000  Masahiro Tomita  &lt;tommy@tmtm.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_p): flush output buffer.</div><div class='add'>+</div><div class='add'>+Tue Aug 29 16:29:15 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): remove NODE_CVASGN3.</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): remove NODE_CVAR3.</div><div class='add'>+</div><div class='add'>+Tue Aug 29 02:02:14 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): handles create_makefile("a/b").</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): ditto</div><div class='add'>+</div><div class='add'>+Mon Aug 28 18:43:54 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): now handles class variables.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): class variable behavior revisited.</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): ditto.</div><div class='add'>+</div><div class='add'>+	* regex.c (PUSH_FAILURE_COUNT): push/pop interval count on failure</div><div class='add'>+	  stack.  this fix is inspired by the Emacs21 patch from Stefan</div><div class='add'>+	  Monnier &lt;monnier@cs.yale.edu&gt;.</div><div class='add'>+</div><div class='add'>+Fri Aug 25 15:24:39 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): should not follow __attached__.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_declare): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_av_set): second class variable assignment at the</div><div class='add'>+	  toplevel should not give warning.</div><div class='add'>+</div><div class='add'>+Fri Aug 25 01:18:36 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): prepare path for open file.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_setter): moved from io.c.</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): filename should be "-" for refreshed ARGF.</div><div class='add'>+</div><div class='add'>+Thu Aug 24 15:27:39 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socketport.h: use `extern int h_errno' if needed.</div><div class='add'>+</div><div class='add'>+Sat Aug 19 01:34:02 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c (sdbm_prep): flags should be or-ed by O_BINARY on</div><div class='add'>+	  Win32 too.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c (makroom): fill hole with 0 on Win32 too.</div><div class='add'>+</div><div class='add'>+Fri Aug 18 13:23:59 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should preserve and clear $! value before</div><div class='add'>+	  compilation.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 18 11:06:19 2000  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept): start GC on EMFILE/ENFILE.</div><div class='add'>+</div><div class='add'>+Thu Aug 17 16:04:48 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): should clear ruby_errinfo.</div><div class='add'>+</div><div class='add'>+Thu Aug 17 04:26:31 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.27.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: writing methods returns written byte size.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: send_mail accepts many destinations.</div><div class='add'>+</div><div class='add'>+Wed Aug 16 00:43:47 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_times): use CLK_TCK for HZ if it's defined.</div><div class='add'>+</div><div class='add'>+Tue Aug 15 17:30:59 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_dup): should set flag FRAME_MALLOC after</div><div class='add'>+	  argv allocation.</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_free): should not free argv if GC was called before</div><div class='add'>+	  frame_dup.</div><div class='add'>+</div><div class='add'>+Tue Aug 15 16:08:40 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add ac_cv_func_times=yes for mingw32.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mytimes): typo.</div><div class='add'>+</div><div class='add'>+Tue Aug 15 01:45:28 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): should return true at the end of ARGF without</div><div class='add'>+	  checking stdout if arguments are given.</div><div class='add'>+</div><div class='add'>+Mon Aug 14 10:34:32 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_status): status should return false for normal</div><div class='add'>+	  termination, nil for termination by exception.</div><div class='add'>+</div><div class='add'>+Fri Aug 11 15:43:46 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undef): give warning for undefining __id__, __send__.</div><div class='add'>+</div><div class='add'>+Thu Aug 10 08:05:03 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): returned current thread instead of</div><div class='add'>+	  continuation wrongly.</div><div class='add'>+</div><div class='add'>+Thu Aug 10 05:40:28 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: $CPPFLAGS should be initialized.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/depend: add stubs.o.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: use $CPPFLAGS instead of $CFLAGS.</div><div class='add'>+</div><div class='add'>+Wed Aug  9 16:31:48 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): thread status for continuations must be</div><div class='add'>+	  THREAD_KILLED, otherwise thread_free() breaks other threads.</div><div class='add'>+</div><div class='add'>+Wed Aug  9 13:24:25 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch]: emulate rename(2).</div><div class='add'>+</div><div class='add'>+Tue Aug  8 14:01:46 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: support --enable-tcltk_stubs</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c: created. examine candidate shared libraries.</div><div class='add'>+</div><div class='add'>+Mon Aug  7 13:59:12 2000  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (CLONESETUP): should copy flags before any potential</div><div class='add'>+	  object allocation.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): check for stack depth was needed.</div><div class='add'>+</div><div class='add'>+Sat Aug  5 16:43:43 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* djgpp/*: convert DOS line endings to UNIX style.</div><div class='add'>+</div><div class='add'>+	* djgpp/config.status: rename to config.sed for SFN.</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (compare, safe_unlink, chmod): avoid warnings.</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (move): typo. not `tpath', but `to'.</div><div class='add'>+</div><div class='add'>+Fri Aug  4 23:26:48 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): gives warning if a block is supplied.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): no warning for discarding if an alias for the</div><div class='add'>+	  method is already made.</div><div class='add'>+</div><div class='add'>+Fri Aug  4 16:32:29 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_reject_bang): returns nil if no element removed.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_reject_bang): returns nil if no element removed.</div><div class='add'>+</div><div class='add'>+Thu Aug  3 19:44:26 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_fd_writable): should return integer value.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_assoc): search array element whose length is</div><div class='add'>+	  longer than 0 (not 1).</div><div class='add'>+</div><div class='add'>+Wed Aug  2 18:27:47 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_wait_fd): prohibit thread context switch</div><div class='add'>+	  during compilation.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_cont_call): prohibit Continuation#call across threads.</div><div class='add'>+</div><div class='add'>+Wed Aug  2 08:22:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): clear malloc_memories to zero, to avoid potential</div><div class='add'>+	  super frequent GC invocation. (ruby-bugs:#PR48)</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): only add_heap() if GC trigger condition is</div><div class='add'>+	  satisfied.</div><div class='add'>+</div><div class='add'>+Tue Aug  1 16:41:58 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): global load path setting moved from</div><div class='add'>+	  ruby_prog_init().</div><div class='add'>+</div><div class='add'>+	* ruby.c (incpush): renamed.  push path entry at the END of the</div><div class='add'>+	  load path array.  This makes -I directories sorted in order in</div><div class='add'>+	  the arguments.</div><div class='add'>+</div><div class='add'>+Sat Jul 29 23:42:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_each): should check whether dir is closed during the</div><div class='add'>+	  block execution. (ruby-bugs:#PR47)</div><div class='add'>+</div><div class='add'>+Sat Jul 29 21:57:30 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangle): provide another buffer for the result.</div><div class='add'>+</div><div class='add'>+Wed Jul 26 10:09:01 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set SOLIBS to LIBS on Cygwin.</div><div class='add'>+</div><div class='add'>+	* configure.in: LIBRUBY_SO='$(RUBY_INSTALL_NAME)'.$target_os.dll</div><div class='add'>+	  on cygwin and mingw32. ruby-cygwin.dll is bad. why?</div><div class='add'>+</div><div class='add'>+Wed Jul 26 10:04:03 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): avoid full scan during compilation.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): add heap during no gc period (including</div><div class='add'>+	  compilation).</div><div class='add'>+</div><div class='add'>+Tue Jul 25 19:03:04 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: use puts instead of print, because</div><div class='add'>+	  Cygwin DLL's behavior is changed(or bug?).</div><div class='add'>+</div><div class='add'>+	* configure.in: LIBRUBY_SO='$(RUBY_INSTALL_NAME)'-$target_os.dll</div><div class='add'>+	  on cygwin and mingw32.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: ditto.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: $(SOLIBS) should be put after dmyext.@OBJEXT@.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: install $(LIBRUBY) to libdir</div><div class='add'>+	  if $(LIBRUBY) != $(LIBRUBY_A_).</div><div class='add'>+</div><div class='add'>+Tue Jul 25 15:16:00 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_p): redirect to $defout.</div><div class='add'>+</div><div class='add'>+Mon Jul 24 18:52:55 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (win32_getenv): should remove `static'.</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangle): support "/hoge;/foo"</div><div class='add'>+</div><div class='add'>+Mon Jul 24 10:28:55 2000  GOTO Kentaro  &lt;gotoken@math.sci.hokudai.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): raise exception if no argument is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+Sun Jul 23 12:55:04 2000  Dave Thomas  &lt;Dave@Thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): Support negative end position.</div><div class='add'>+</div><div class='add'>+Fri Jul 21 17:35:01 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (aref_args): command_call now be permitted as</div><div class='add'>+	  aref_args.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getpriority): getpriority(2) may return valid</div><div class='add'>+	  negative number.  use errno to detect error.</div><div class='add'>+</div><div class='add'>+	* marshal.c (dump_ensure): dumped string should be tainted if</div><div class='add'>+	  any among target objects is tainted.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_regist): restored object should be tainted if and</div><div class='add'>+	  only if the source is a file or a tainted string.</div><div class='add'>+</div><div class='add'>+Wed Jul 19 15:14:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): should use rb_int2big(), not rb_uint2big().</div><div class='add'>+</div><div class='add'>+Tue Jul 18 14:58:30 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): should treat SystemExit etc. properly.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): should check compile_for_eval, not</div><div class='add'>+	  ruby_in_eval.</div><div class='add'>+</div><div class='add'>+Mon Jul 17 04:29:50 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: converts extension of $objs into $OBJEXT.</div><div class='add'>+</div><div class='add'>+Sun Jul 16 03:02:34 2000  Dave Thomas &lt;dave@thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb: Change to use new ObjectSpace calls.</div><div class='add'>+</div><div class='add'>+Sat Jul 15 21:59:58 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not redefine __id__ nor __send__.</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): integrate final.rb features into the</div><div class='add'>+	  interpreter.  define_finalizer and undefine_finalizer was</div><div class='add'>+	  added to ObjectSpace.  plus, add_finalizer, remove_finalizer,</div><div class='add'>+	  and call_finalizer are deprecated now.</div><div class='add'>+</div><div class='add'>+Sat Jul 15 01:32:34 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_method): implements unbound method.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): should prohibit `module_function' for class</div><div class='add'>+	  Class.</div><div class='add'>+</div><div class='add'>+Fri Jul 14 17:19:59 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: use miniruby instead of sed.</div><div class='add'>+</div><div class='add'>+Fri Jul 14 12:49:50 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): need to check stdin, when next_p == -1.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): use io_fread() instead of fread(3).</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): should clearerr FILE if fd &lt; 3.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match_m): the result is exported, so it should be</div><div class='add'>+	  declared as busy.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should preserve errinfo even if return, break,</div><div class='add'>+	  etc. is called in rescue clause.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: install irb too.</div><div class='add'>+</div><div class='add'>+Wed Jul 12 15:32:57 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get): constants for builtin classes must</div><div class='add'>+	  have higher priority than constants from included modules at</div><div class='add'>+	  Object class.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): small embarrassing typo.</div><div class='add'>+</div><div class='add'>+Wed Jul 12 15:06:28 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use rb_const_get_at().</div><div class='add'>+</div><div class='add'>+	* variable.c (top_const_get): retrieve toplevel constants only,</div><div class='add'>+	  not ones of Object (and its included modules) in general.</div><div class='add'>+</div><div class='add'>+Wed Jul 12 15:04:11 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.26.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb:</div><div class='add'>+	  add module Net::NetPrivate and its inner classes</div><div class='add'>+	  {Read,Write}Adapter, Command, Socket,</div><div class='add'>+	  SMTPCommand, POP3Command, APOPCommand, HTTPCommand</div><div class='add'>+</div><div class='add'>+Wed Jul 12 13:10:30 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): defer bignorm().</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignorm): accepts accidental fixnums.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 16:54:17 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `@&lt;digit&gt;' is no longer a valid instance</div><div class='add'>+	  variable name.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 01:51:50 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_divmod): should not use Integer(float) for</div><div class='add'>+	  the right operand.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_remainder): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_modulo): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 15:27:16 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_finalize): should set rb_last_status when pclose().</div><div class='add'>+</div><div class='add'>+Mon Jul 10 09:07:54 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): print version number and such too.</div><div class='add'>+</div><div class='add'>+Sat Jul  8 23:08:40 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): should copy previous scopes to</div><div class='add'>+	  prevent rb_gc_force_recycle().</div><div class='add'>+</div><div class='add'>+Fri Jul  7 23:36:36 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h: move IN_EXPERIMENTAL and IN_LOOPBACKNET</div><div class='add'>+	  definitions to ext/socket/sockport.h.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: add getservbyport() and arpa/inet.h check.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (getaddrinfo): SOCK_RAW may not be</div><div class='add'>+	  defined (ex. BeOS, Palm OS 2.x or before).</div><div class='add'>+</div><div class='add'>+	* ext/socket/getnameinfo.c (getnameinfo): getservbyport() may not</div><div class='add'>+	  exist (ex. BeOS, Palm OS).</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockport.h: add IN_EXPERIMENTAL, IN_CLASSA_NSHIFT,</div><div class='add'>+	  IN_LOOPBACKNET, AF_UNSPEC, PF_UNSPEC and PF_INET.</div><div class='add'>+</div><div class='add'>+Fri Jul  7 03:30:00 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (aref_args): should allow Hash[:a=&gt;2] etc.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_aref): convert index by NUM2INT, not FIX2INT.</div><div class='add'>+	  (ruby-bugs:#PR37)</div><div class='add'>+</div><div class='add'>+	* time.c (time_localtime): should prohibit for frozen time.</div><div class='add'>+</div><div class='add'>+	* time.c (time_gmtime): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  6 19:12:12 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_s_open): should not terminate fptr; just clear it.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): should not call require_libraries()</div><div class='add'>+	  twice.</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): clear req_list_head.next after</div><div class='add'>+	  execution.</div><div class='add'>+</div><div class='add'>+Thu Jul  6 13:51:57 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_id): name may not be symbol nor fixnum.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_def): name may be nil.</div><div class='add'>+</div><div class='add'>+Thu Jul  6 02:09:06 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): new function to return remainder.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fixdivmod): now returns modulo, not remainder.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flodivmod): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_modulo): new method; alias to '%'.</div><div class='add'>+</div><div class='add'>+Thu Jul  6 00:51:43 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtCmdGlob): patterns should be separated and</div><div class='add'>+	  NUL terminated.</div><div class='add'>+</div><div class='add'>+Wed Jul  5 22:27:56 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: use ruby.def to make rubycw.dll.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: create target.def.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  5 09:47:14 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): Time::local, Time::gm now take 7th optional</div><div class='add'>+	  argument for usec.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_ceil, etc): default ceil, floor, round, truncate</div><div class='add'>+	  implementation for Numeric, using `to_f'.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): clear fptr-&gt;path after free() to prevent</div><div class='add'>+	  potential GC crash.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_s_open): terminate fptr unless null.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: specify FILE::CREAT|File::EXCL to open for</div><div class='add'>+	  better security.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_truncate): new method.</div><div class='add'>+</div><div class='add'>+Wed Jul  5 01:02:53 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: join ' ' -&gt; join(' ').</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 13:51:29 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: add methods added to Hash in 1.5.x.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_call): args may be Qundef (means no argument), do</div><div class='add'>+	  not call TYPE() for args.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 13:20:56 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: make command line must be single-quoted.</div><div class='add'>+	  $(RUBY_INSTALL_NAME) is command substitution in the POSIX sh.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 13:16:02 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (rb_type): should add T_UNDEF.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 09:30:35 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): supports EOF right after terminator.</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): argument is now optional (rand(max=0)).</div><div class='add'>+</div><div class='add'>+Tue Jul  4 01:50:49 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/ruby.def: remove ruby_mktemp.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 01:27:13 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): new function to rescue arbitrary exception.</div><div class='add'>+</div><div class='add'>+	* numeric.c (do_coerce): should catch NameError explicitly.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 00:15:23 2000  Dave Thomas  &lt;Dave@thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): forgot to register Numeric#remainder.</div><div class='add'>+</div><div class='add'>+Mon Jul  3 23:46:56 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myselect, myaccept): disable interrupt while</div><div class='add'>+	  executing accept() or select() to avoid Ctrl-C causes</div><div class='add'>+	  "unknown software exception (0xc0000029)".</div><div class='add'>+</div><div class='add'>+Mon Jul  3 18:35:41 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use null device if it exists for cross-compiling.</div><div class='add'>+</div><div class='add'>+Mon Jul  3 18:19:51 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.26.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (finish): do nothing unless active.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP#{get,post}2 again (for new impl).</div><div class='add'>+</div><div class='add'>+Mon Jul  3 16:47:22 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: librubys.a -&gt; lib$(RUBY_INSTALL_NAME)s.a</div><div class='add'>+</div><div class='add'>+	* configure.in: use AC_CANONICAL_{HOST,TARGET,BUILD}.</div><div class='add'>+</div><div class='add'>+Mon Jul  3 13:15:02 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_divmod): x * d + m = y where d, m = x.divmod(y).</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_divmod): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fixdivmod): does not depend C's undefined %</div><div class='add'>+	  behavior.  adopt to fmod(3m) behavior.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_mod): modulo now reserves fmod(3m) behavior.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_remainder): 'deprecated' warning.</div><div class='add'>+</div><div class='add'>+Mon Jul  3 10:27:28 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use AC_CANONICAL_SYSTEM.</div><div class='add'>+</div><div class='add'>+Sun Jul  2 21:17:37 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: support without --enable-shared for cygwin/mingw32.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: use null device if it exists for cross-compiling.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_mktemp): remove unused ruby_mktemp().</div><div class='add'>+</div><div class='add'>+Sun Jul  2 14:18:04 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (TMP_PROTECT_END): tmp__protect_tmp may be NULL.</div><div class='add'>+</div><div class='add'>+Sun Jul  2 03:37:50 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.25.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (each_crlf_line): beg = 0 is needed in adding{}</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: allow String for to_addr of SMTP#sendmail</div><div class='add'>+</div><div class='add'>+Sat Jul  1 15:22:35 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): should handle shift value more than</div><div class='add'>+	  sizeof(long).</div><div class='add'>+</div><div class='add'>+Sat Jul  1 15:22:35 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): the value from RTEST() is not valid Ruby</div><div class='add'>+	  object.  result should be either true or false.</div><div class='add'>+</div><div class='add'>+Sat Jul  1 09:30:06 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): was freeing invalid pointer.</div><div class='add'>+</div><div class='add'>+Sat Jul  1 03:25:56 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): command_call can be the last argument of</div><div class='add'>+	  call_args.  It had to be the only argument.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): should not dump core even for unsane mbc</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Fri Jun 30 01:36:20 2000  Aleksi Niemela  &lt;aleksi.niemela@cinnober.com&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_norm_arg): better, nicer error message.</div><div class='add'>+</div><div class='add'>+Thu Jun 29 07:45:33 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_send): destination may be packed</div><div class='add'>+	  struct sockaddr.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): Integer(nil) should be invalid, on the</div><div class='add'>+	  other hand, nil.to_i is OK.</div><div class='add'>+</div><div class='add'>+Wed Jun 28 17:26:06 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ip_recvfrom): udp_recvfrom and tcp_recvfrom</div><div class='add'>+	  is merged and moved to IPSocket#recvfrom.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getaddrinfo): family can be a</div><div class='add'>+	  strings such as "AF_INET" etc.</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): . and RUBYLIB added to $load_path</div><div class='add'>+	  just before -r procedure.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -e, - did not exec -r.</div><div class='add'>+</div><div class='add'>+Wed Jun 28 14:52:28 2000  Koga Youichirou &lt;y-koga@mms.mt.nec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* config.sub: NetBSD/hpcmips support.</div><div class='add'>+</div><div class='add'>+Wed Jun 28 10:11:06 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: gc trigger threshold changed; GC_NEWOBJ_LIMIT removed,</div><div class='add'>+	  FREE_MIN is increased to 4096.</div><div class='add'>+</div><div class='add'>+Tue Jun 27 22:39:28 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.24.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: modified each_crlf_line again.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: do_write_beg,do_write_end -&gt; writing{}</div><div class='add'>+	  do_write_do -&gt; do_write</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: can make proxy connection by passing</div><div class='add'>+	  addresses to HTTP.new, start.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP.new_implementation, old_implementation:</div><div class='add'>+	  can use 1.2 implementation of head, get, post, put.</div><div class='add'>+	  (see document)</div><div class='add'>+</div><div class='add'>+Tue Jun 27 12:05:10 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32.c (myfdclr): new function.</div><div class='add'>+</div><div class='add'>+	* win32.h: add FD_CLR.</div><div class='add'>+</div><div class='add'>+Mon Jun 26 23:41:41 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: add cast for ANSI style.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_data_object_alloc): use RUBY_DATA_FUNC.</div><div class='add'>+</div><div class='add'>+Mon Jun 26 22:20:03 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (is_socket, extract_file_fd): New function.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myfdopen): use is_socket().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myselect): return non socket files immediately</div><div class='add'>+	  if file and socket handles are mixed.</div><div class='add'>+</div><div class='add'>+Mon Jun 26 16:21:30 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): wait_for cleared too early.</div><div class='add'>+</div><div class='add'>+Mon Jun 26 09:15:31 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: remove obsolete 'F', 'D' specifiers.</div><div class='add'>+</div><div class='add'>+Sun Jun 25 00:55:03 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getnameinfo): `res' would not</div><div class='add'>+	  be assigned if TYPE(sa) == T_STRING.</div><div class='add'>+</div><div class='add'>+Sat Jun 24 14:36:29 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* config*.dj, configure.bat, top.sed: move to djgpp/.</div><div class='add'>+</div><div class='add'>+Sat Jun 24 02:34:17 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): call require_libraries() here to let</div><div class='add'>+	  debug.rb work properly.</div><div class='add'>+</div><div class='add'>+Fri Jun 23 22:34:51 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_lshift): reorder xds assignment to avoid</div><div class='add'>+	  reusing `x' as `len' by VC++ 6.0 SP3 compiler with -Ox switch.</div><div class='add'>+</div><div class='add'>+Fri Jun 23 01:11:27 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): should return empty string (""),</div><div class='add'>+	  if beg == str.size and len == zero, mostly for convenience and</div><div class='add'>+	  backward compatibility.</div><div class='add'>+</div><div class='add'>+	* parse.y (new_super): should tweak block_pass node for super too.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): last split element should not be nil,</div><div class='add'>+	  but "" when limit is specified.</div><div class='add'>+</div><div class='add'>+Thu Jun 22 17:27:46 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): str[n,m] now returns nil when n equals</div><div class='add'>+	  to str.size.</div><div class='add'>+</div><div class='add'>+Thu Jun 22 13:49:02 2000  Uechi Yasumasa &lt;uechi@ryucom.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: support resuming.</div><div class='add'>+</div><div class='add'>+Thu Jun 22 13:37:19 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_sleep_forever): merge pause() macro.</div><div class='add'>+</div><div class='add'>+Wed Jun 21 08:49:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not raise exception just by defining</div><div class='add'>+	  singleton class.</div><div class='add'>+</div><div class='add'>+Wed Jun 21 01:18:03 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: two macros RUBY_DATA_FUNC and RUBY_METHOD_FUNC are added</div><div class='add'>+	  to make writing C++ extensions easier.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_dup): internal classes should not be shared by dup.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_dup): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): ditto.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): renamed NotImplementError to</div><div class='add'>+	  NotImplementedError.</div><div class='add'>+</div><div class='add'>+Tue Jun 20 16:22:38 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): bug in DST boundary.</div><div class='add'>+</div><div class='add'>+Tue Jun 20 10:54:19 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add eval sitedir.</div><div class='add'>+</div><div class='add'>+Tue Jun 20 06:14:43 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: change: version syntax. old: x.yz, now: x.y.z</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 20 00:37:45 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_kcode_m): Regexp#kcode returns nil for code unfixed</div><div class='add'>+	  regexp object.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): bignum zero check was wrong.</div><div class='add'>+</div><div class='add'>+Mon Jun 19 10:48:28 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): forgot to add security check for class</div><div class='add'>+	  variable assignment.</div><div class='add'>+</div><div class='add'>+Sun Jun 18 22:49:13 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: single quoted sitedir.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: add DESTDIR for cross-compiling.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: add DESTDIR.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): force binmode if fname includes ".exe"</div><div class='add'>+	  on DOSISH.</div><div class='add'>+</div><div class='add'>+Sat Jun 17 23:22:17 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): should ignore negative precision given</div><div class='add'>+	  by &lt;%.*&gt;.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): should allow zero precision.</div><div class='add'>+</div><div class='add'>+Sat Jun 17 03:13:29 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_localtime): avoid unnecessary call of localtime.</div><div class='add'>+</div><div class='add'>+	* time.c (time_gmtime): avoid unnecessary call of gmtime.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_wait2): new method.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid): second argument made optional.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid2): new method.</div><div class='add'>+</div><div class='add'>+Sat Jun 17 00:05:00 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_clone): should initialize member fields.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 22:49:34 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_rewind): set lineno to zero.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 22:47:47 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.23.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: too many CRLF in last line.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 21:23:59 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add pause(2) checking.</div><div class='add'>+</div><div class='add'>+	* eval.c: define pause() if missing.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 18:41:58 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setsid): BSD-style setpgrp() don't return</div><div class='add'>+	  process group ID, but 0 or -1.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 16:23:35 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): gives detailed information;</div><div class='add'>+	  compatibility with ruby-1.4.x.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 05:18:45 2000  Yasuhiro Fukuma  &lt;yasuf@bsdclub.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: FreeBSD: do not link dummy libxpg4 which was</div><div class='add'>+	  merged into libc.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 03:17:36 2000  Satoshi Nojo  &lt;nojo@t-samukawa.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_length): use GetDBM. empty?, [] too.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_length): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_length): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 01:57:31 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_sleep_forever): pause(2) instead of sleep(3).</div><div class='add'>+</div><div class='add'>+Thu Jun 15 10:46:36 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): should propagate taintness from</div><div class='add'>+	  replacement string.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 17:01:41 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: add CONFIG['EXEEXT'] to the executable file name.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 14:50:00 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_f_sub): assign to $_ only if modification happens.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_f_gsub): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_f_chop): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_f_chomp): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): preserve file position by ftell/fseek, if io</div><div class='add'>+	  is a seekable.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_arity): wrong arity number for the methods with</div><div class='add'>+	  optional arguments.</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): opposite timezone shift (should be negative).</div><div class='add'>+</div><div class='add'>+Wed Jun 14 14:07:38 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: typo(ig/if).</div><div class='add'>+</div><div class='add'>+	* re.c: typo(re/reg). add rb_reg_check().</div><div class='add'>+</div><div class='add'>+	* time.c: remove unneeded declare(daylight, timezone).</div><div class='add'>+</div><div class='add'>+	* configure.in: add include &lt;time.h&gt; when daylight checking.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 11:36:52 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): modified for symbols.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 10:04:58 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memcmp): should compare according to ruby_ignorecase.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp): use rb_memcmp.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 04:58:53 2000  Dave Thomas  &lt;dave@thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_set_lineno): should have returned VALUE, not</div><div class='add'>+	  integer.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 09:29:42 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): dup should always propagate taintness.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 00:50:14 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: read_multipart(): if no content body then raise EOFError.</div><div class='add'>+</div><div class='add'>+Tue Jun 13 11:46:17 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setsid): try implement it using setpgrp() and</div><div class='add'>+	  ioctl(fd, TIOCNOTTY, NULL).</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): magic variable $= should affect regex</div><div class='add'>+	  pattern match.</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): use tm.tm_gmtoff if possible.</div><div class='add'>+</div><div class='add'>+	* time.c (time_zone): use tm.tm_zone if available.</div><div class='add'>+</div><div class='add'>+Tue Jun 13 01:50:57 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.22.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPResponse#body returns body.</div><div class='add'>+</div><div class='add'>+Mon Jun 12 23:41:54 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (daylight): avoid GCC optimization.</div><div class='add'>+</div><div class='add'>+Mon Jun 12 19:02:27 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: cygwin has strange timezone.</div><div class='add'>+</div><div class='add'>+	* time.c (time_zone): use tzname and daylight.</div><div class='add'>+</div><div class='add'>+Sat Jun 10 23:10:32 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_seek): whence is optional, default is SEEK_SET.</div><div class='add'>+</div><div class='add'>+Fri Jun  9 17:00:29 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.21.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: exception is raised with response object.</div><div class='add'>+</div><div class='add'>+Fri Jun  9 15:11:35 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): supports daylight saving time.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_safe_level): should retrieve current $SAFE</div><div class='add'>+	  value if a thread is the current thread.</div><div class='add'>+</div><div class='add'>+Thu Jun  8 14:25:45 2000  Hiroshi Igarashi  &lt;iga@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: add target `distclean' in Makefile for extlib.</div><div class='add'>+	  target `clean' doesn't remove Makefile.</div><div class='add'>+</div><div class='add'>+Thu Jun  8 13:34:03 2000  Dave Thomas  &lt;dave@thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: add nan?, infinite?, and finite? to Float</div><div class='add'>+</div><div class='add'>+Thu Jun  8 00:31:04 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.h: export re_mbctab properly on cygwin.</div><div class='add'>+</div><div class='add'>+	* dln.c: use dlopen instead of LoadLibrary on cygwin.</div><div class='add'>+</div><div class='add'>+Thu Jun  8 13:41:34 2000  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): might dump core.</div><div class='add'>+</div><div class='add'>+Tue Jun  6 03:29:12 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_foreach): now returns nil for consistency.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): modulo by small numbers was wrong.</div><div class='add'>+</div><div class='add'>+Mon Jun  5 00:18:08 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: avoid conflict with USHORT on mingw32.</div><div class='add'>+</div><div class='add'>+Mon Jun  5 00:13:35 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): =/== typo.</div><div class='add'>+</div><div class='add'>+Sun Jun  4 03:17:36 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: improve: CGI::pretty()</div><div class='add'>+</div><div class='add'>+Sun Jun  4 02:01:10 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: do not need to add -L$(topdir) in --enable-shared case.</div><div class='add'>+</div><div class='add'>+Sat Jun  3 13:50:06 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2name): should support constant attrset</div><div class='add'>+	  identifiers.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): Bignum#== should not raise exception.</div><div class='add'>+</div><div class='add'>+Fri Jun  2 11:24:48 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): open with a block returns the value from the</div><div class='add'>+	  block.  old behavior was back.</div><div class='add'>+</div><div class='add'>+Fri Jun  2 00:42:31 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): should clear priority for thread</div><div class='add'>+	  termination.</div><div class='add'>+</div><div class='add'>+Thu Jun  1 22:39:41 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.20.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: wrongly closed the socket twice</div><div class='add'>+	  when no Content-Length: was given.</div><div class='add'>+</div><div class='add'>+Thu Jun  1 00:59:15 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): convert Qundef to [].</div><div class='add'>+</div><div class='add'>+Wed May 31 20:45:59 2000  Dave Thomas  &lt;Dave@Thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang): wrong argument number.</div><div class='add'>+</div><div class='add'>+Wed May 31 12:37:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): print error message from END procs.</div><div class='add'>+</div><div class='add'>+Wed May 31 04:06:41 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: change: CGI#out() if "HEAD" == REQUEST_METHOD then</div><div class='add'>+	  output only HTTP header.</div><div class='add'>+</div><div class='add'>+Wed May 31 01:54:21 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): set main_thread-&gt;status to</div><div class='add'>+	  THREAD_TO_KILL, before raising deadlock error.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_deadlock): if curr_thread == main_thread, do</div><div class='add'>+	  not call rb_thread_restore_context()</div><div class='add'>+</div><div class='add'>+Tue May 30 23:33:41 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): add $(TARGET).ilk and *.pdb</div><div class='add'>+	  to cleanup files for mswin32.</div><div class='add'>+</div><div class='add'>+Mon May 29 10:41:10 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): should propagate taintness.</div><div class='add'>+</div><div class='add'>+Sun May 28 21:37:13 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: bug fix: DLEXT2.</div><div class='add'>+</div><div class='add'>+Sun May 28 19:21:43 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: use ruby's glob.</div><div class='add'>+</div><div class='add'>+	* dir.c: "glob" exported and renamed to "rb_glob".</div><div class='add'>+</div><div class='add'>+	* ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* main.c: turn off command line mingw32's globbing.</div><div class='add'>+</div><div class='add'>+Wed May 25 22:25:13 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: use "ftools" instead of "rm -f".</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu May 25 22:01:32 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: mswin32: remove obsolete USHORT definition.</div><div class='add'>+</div><div class='add'>+	* re.h: mswin32: use EXTERN instead of extern.</div><div class='add'>+</div><div class='add'>+	* regex.h: mswin32: export re_mbctab properly.</div><div class='add'>+</div><div class='add'>+	* win32/ruby.def: add ruby_ignorecase and regex.c's exports.</div><div class='add'>+</div><div class='add'>+Thu May 25 21:28:44 2000  Minero Aoki &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): escape un-printable character.</div><div class='add'>+</div><div class='add'>+Thu May 25 01:35:15 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_escape): forgot to add `\x' to hexadecimal</div><div class='add'>+	  escape sequences.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_dup): dup for normal object (T_OBJECT) copies</div><div class='add'>+	  instance variables only.</div><div class='add'>+</div><div class='add'>+Wed May 24 23:49:47 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_initialize): should provide initialize.</div><div class='add'>+</div><div class='add'>+Wed May 24 23:17:50 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile: remove unnecessary mv and rm command call.</div><div class='add'>+</div><div class='add'>+Wed May 24 21:01:04 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: use "" instead of &lt;&gt; to include ruby.h and rubyio.h</div><div class='add'>+	  for BeOS (PowerPC).</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): should check dln_find_file() result.</div><div class='add'>+</div><div class='add'>+	* win32/ruby.def: add rb_block_given_p.</div><div class='add'>+</div><div class='add'>+Wed May 24 16:32:45 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): popen does not take 3rd argument anymore.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): re may be zero, check before dereferencing.</div><div class='add'>+</div><div class='add'>+Wed May 24 16:03:06 2000  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: bug fix: CGI::escape(), CGI::Cookie::new()</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: improve: binmode(), telnetmode() interface</div><div class='add'>+</div><div class='add'>+Wed May 24 13:12:31 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-region): support `while .. do'</div><div class='add'>+	  etc. But corresponding keywords must be at the beginning of</div><div class='add'>+	  line.</div><div class='add'>+</div><div class='add'>+Tue May 23 23:50:12 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): wrong kcode value.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_new): forgot to initialize re-&gt;ptr.</div><div class='add'>+</div><div class='add'>+Tue May 23 08:36:24 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): forgot to restore old option</div><div class='add'>+	  status by (?ix-ix).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): anychar may match newline if</div><div class='add'>+	  RE_OPTION_MULTILINE or RE_OPTION_POSIXLINE is set.</div><div class='add'>+</div><div class='add'>+Mon May 22 22:45:06 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.19.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: do not use Regexp "p" option.</div><div class='add'>+</div><div class='add'>+Mon May 22 21:56:43 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_getmember): should use ID2SYM, not INT2NUM.</div><div class='add'>+</div><div class='add'>+Mon May 22 15:07:37 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): should check if the file really exists.</div><div class='add'>+</div><div class='add'>+Mon May 22 09:08:12 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): _exit(0) after processing block under the</div><div class='add'>+	  child process.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): flush stdout/stderr before subprocess</div><div class='add'>+	  termination.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_check_safe_str): insert rb_secure(4); operation</div><div class='add'>+	  requires untainted string should be prohibited in level 4.</div><div class='add'>+</div><div class='add'>+Sun May 21 21:17:00 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add Setup.dj for djgpp cross-compiling.</div><div class='add'>+</div><div class='add'>+	* Setup.dj: add readline.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: copy win32/win32.h to archlibdir on mingw32.</div><div class='add'>+</div><div class='add'>+Sun May 21 20:58:08 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: fix OFF16 and OFF32 definitions for Alpha and IRIX64.</div><div class='add'>+</div><div class='add'>+Sun May 21 17:31:37 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: support "make install" for cross-compiling.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ditto.</div><div class='add'>+</div><div class='add'>+Sun May 21 14:22:49 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: rename prep.rb to fake.rb.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Sat May 20 23:29:14 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_new): does not take block; "open" does.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_new): ditto.</div><div class='add'>+</div><div class='add'>+Fri May 19 07:44:26 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_open): Dir#open does not returns closed Dir if a</div><div class='add'>+	  block is given to the method.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): Regexp::new calls initialize now.</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): String#delete_at removed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset_m): should have checked argc != 2.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): select(2) was called too many.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): a bug in (?m) support.  Pointed</div><div class='add'>+	  out by Dave Thomas &lt;Dave@thomases.com&gt;.</div><div class='add'>+</div><div class='add'>+Thu May 18 23:55:26 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (search_undef): st_lookup()'s 3rd parameter should be</div><div class='add'>+	  a pointer of the variable which has the same size and alignment</div><div class='add'>+	  as `char *'.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol, w_object): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 18 18:00:35 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.18.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Net::Version was removed.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: use Socket.gethostname to get local host name.</div><div class='add'>+</div><div class='add'>+Thu May 18 13:34:57 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): should not have replaced</div><div class='add'>+	  thread_write_select() by rb_thread_fd_writable().</div><div class='add'>+</div><div class='add'>+Thu May 18 09:01:25 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, ext/extmk.rb.in, lib/mkmf.rb: remove BeOS R3 support.</div><div class='add'>+	  Make a shared library (libruby.so) only if the --enable-shared</div><div class='add'>+	  option is specified.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: no longer use libruby.so.LIB and import.h.</div><div class='add'>+</div><div class='add'>+	* io.c: fix READ_DATA_PENDING definition for BeOS (PowerPC).</div><div class='add'>+</div><div class='add'>+Wed May 17 14:14:23 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_new_1): use /m instead of /p.</div><div class='add'>+</div><div class='add'>+Wed May 17 02:22:03 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_polling): wait 0.06 second to let other</div><div class='add'>+	  processes run.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): avoid busy wait using rb_thread_polling.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_thread_flock): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): avoid calling value_expr() twice.</div><div class='add'>+</div><div class='add'>+Wed May 17 00:45:57 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): should check PLATFORMs, not O_BINARY, sigh...</div><div class='add'>+</div><div class='add'>+Wed May 17 00:40:15 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/config.h: add DLEXT2, now DLEXT on mswin32 is "so".</div><div class='add'>+</div><div class='add'>+	* win32/config.status: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/ruby.def: add symbol "rb_big_divmod".</div><div class='add'>+</div><div class='add'>+Tue May 16 19:45:32 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: use EXTERN instead of extern.</div><div class='add'>+</div><div class='add'>+	* win32/ruby.def: add rb_defout, rb_stdout, ruby_errinfo,</div><div class='add'>+	  ruby_sourceline, ruby_sourcefile to work with eruby</div><div class='add'>+	  reported by Hiroshi Saito &lt;HiroshiSaito@pob.org&gt;.</div><div class='add'>+	  Export both ruby_xmalloc and xmalloc etc.</div><div class='add'>+</div><div class='add'>+Tue May 16 17:00:05 2000  Masaki Fukushima  &lt;fukusima@goto.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): should check whether fds are null.</div><div class='add'>+</div><div class='add'>+Tue May 16 11:51:31 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): synchronize subprocess stdout/stderr.</div><div class='add'>+</div><div class='add'>+Mon May 15 15:38:09 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: exported symbols should be for xmalloc etc. are now</div><div class='add'>+	  prefixed by 'ruby_', e.g. ruby_xmalloc().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_select): remove busy wait for select.</div><div class='add'>+</div><div class='add'>+	* dir.c (glob): trailing path may be null, e.g. glob("**").</div><div class='add'>+</div><div class='add'>+Mon May 15 14:48:41 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_pid): new method; returns nil if no process attached</div><div class='add'>+	  to the IO.</div><div class='add'>+</div><div class='add'>+Mon May 15 01:18:20 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): _exit after Proc execution.</div><div class='add'>+</div><div class='add'>+Sun May 14 18:05:59 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: missing/nt.c -&gt; win32/win32.c</div><div class='add'>+</div><div class='add'>+	* configure.in: bug fix; static linking on mingw32.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: remove VPATH.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: Makefile set binmode with mingw32 on cygwin32.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/config.h: undef HAVE_SYS_FILE_H.</div><div class='add'>+</div><div class='add'>+Sun May 14 02:02:48 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: '/' should be escaped in character class.</div><div class='add'>+</div><div class='add'>+Sun May 14 00:54:43 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, ...: support mingw32.</div><div class='add'>+</div><div class='add'>+	* defines.h: ditto. undef EXTERN for tcl/tk on cygwin.</div><div class='add'>+</div><div class='add'>+	* ext/*/extconf.rb: replace PLATFORM with RUBY_PLATFORM.</div><div class='add'>+</div><div class='add'>+	* ext/socket/sockport.h: define IN_MULTICAST for missing IN_MULTICAST.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: remove declaration of rb_argv0.</div><div class='add'>+</div><div class='add'>+	* file.c: should check S_IXGRP, S_ISGID, not NT.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): should check _IOBIN, O_BINARY, not PLATFORMs.</div><div class='add'>+</div><div class='add'>+Sat May 13 14:21:15 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): should check whether a block is given.</div><div class='add'>+</div><div class='add'>+Fri May 12 17:33:44 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): charset_not should not exclude</div><div class='add'>+	  newline from matching set.</div><div class='add'>+</div><div class='add'>+Thu May 11 22:51:05 2000  Ryunosuke Ohshima  &lt;ryu@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): Bignum support.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 11 21:19:29 2000  Hiroshi Igarashi  &lt;iga@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: add missing declarations of ruby API functions.</div><div class='add'>+</div><div class='add'>+	* ruby.h: fix function name in declarations.</div><div class='add'>+</div><div class='add'>+Thu May 11 22:29:25 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/md5/depend: add $(topdir)/config.h dependency to md5c.o.</div><div class='add'>+</div><div class='add'>+	* ext/md5/extconf.rb: new file to add -DHAVE_CONFIG_H flag for Alpha.</div><div class='add'>+</div><div class='add'>+Thu May 11 10:55:52 2000  Ryunosuke Ohshima  &lt;ryu@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): packing BER compressed integer by `w'.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): unpacking BER.</div><div class='add'>+</div><div class='add'>+Thu May 11 00:37:55 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): remove in_brack.</div><div class='add'>+</div><div class='add'>+Wed May 10 12:51:18 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): move adding RUBYLIB and "." to the load</div><div class='add'>+	  path after #! line parsing.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): should parse backslash escape like `\c['</div><div class='add'>+	  here to avoid causing `unterminated regexp' error.</div><div class='add'>+</div><div class='add'>+Wed May 10 00:19:53 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST, beos/GNUmakefile.in, configure.in: no longer need</div><div class='add'>+	  beos/GNUmakefile.in to support BeOS R4.5.2 (Intel) as a result</div><div class='add'>+	  of eban's Makefile.in change.</div><div class='add'>+</div><div class='add'>+	* io.c: NOFILE is already defined on BeOS R4.5 (Intel) or later.</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: remove debug print.</div><div class='add'>+</div><div class='add'>+	* regex.c: don't use nested comment.</div><div class='add'>+</div><div class='add'>+Tue May  9 17:08:43 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): no longer convert nil into empty array.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): optional 3rd argument to give proc, which</div><div class='add'>+	  will be executed in spawned child process.</div><div class='add'>+</div><div class='add'>+Mon May  8 23:47:39 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): prev &amp; next should be initialized to zero.</div><div class='add'>+</div><div class='add'>+Mon May  8 23:17:36 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_init): remove possible buffer overrun.  This is</div><div class='add'>+	  suggested by Aleksi Niemela &lt;aleksi.niemela@cinnober.com&gt;.</div><div class='add'>+</div><div class='add'>+	* dln.c (init_funcname): ditto.</div><div class='add'>+</div><div class='add'>+Sat May  6 23:35:47 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lhs): should allow `obj.Attr = 5' type expression.</div><div class='add'>+</div><div class='add'>+Sat May  6 15:46:08 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: add a new configure option to force use</div><div class='add'>+	  of the WIDE Project's getaddrinfo(): --enbale-wide-getaddrinfo.</div><div class='add'>+</div><div class='add'>+Fri May  5 21:19:22 2000  MOROHOSHI Akihiko  &lt;moro@remus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): allow '$1foo' and such.</div><div class='add'>+</div><div class='add'>+Fri May  5 17:57:24 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.17.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: write also port number in Host: field.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: see Proxy-Connection: to decide socket connection.</div><div class='add'>+</div><div class='add'>+Fri May  5 03:25:15 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): charset_not for multibyte</div><div class='add'>+	  characters excluded too many characters.</div><div class='add'>+</div><div class='add'>+Tue May  2 13:23:43 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): little bit more impartial context</div><div class='add'>+	  switching.</div><div class='add'>+</div><div class='add'>+Tue May  2 09:50:03 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add DLDLIBS to set platform specific library</div><div class='add'>+	  for extensions.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: use @DLDLIBS@ instead of RUBY_PLATFORM choice.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use CONFIG["DLDLIBS"] instead of RUBY_PLATFORM choice.</div><div class='add'>+</div><div class='add'>+	* config_s.dj: add @DLDLIBS@.</div><div class='add'>+</div><div class='add'>+	* win32/config.status: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/ruby.def: regular maintenance.</div><div class='add'>+</div><div class='add'>+Mon May  1 23:42:44 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, eval.c: add DLEXT2. now DLEXT on Cygwin is "so".</div><div class='add'>+</div><div class='add'>+	* defines.h: use dllimport, dllexport for Cygwin 1.1.x.</div><div class='add'>+</div><div class='add'>+	* ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c: directly "call" in asm statement for</div><div class='add'>+	  gcc 2.95.x or newer.</div><div class='add'>+</div><div class='add'>+Sat Apr 29 04:58:12 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): performance improvement.</div><div class='add'>+</div><div class='add'>+Fri Apr 28 00:19:22 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): takes items to push.</div><div class='add'>+</div><div class='add'>+Wed Apr 26 15:23:02 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): insert carrying character just before</div><div class='add'>+	  the leftmost alpha numeric character.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): proper behavior for "".succ and "\377".succ.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): use realloc and memmove.</div><div class='add'>+</div><div class='add'>+Tue Apr 25 18:28:45 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.16.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: add SMTP AUTH</div><div class='add'>+</div><div class='add'>+Tue Apr 25 14:30:13 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets_internal): shortcut when rs == rb_default_rs.</div><div class='add'>+</div><div class='add'>+Sat Apr 22 23:14:41 2000  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: MacOS X support.</div><div class='add'>+</div><div class='add'>+Sat Apr 22 16:37:10 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.15.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  closing socket by watching both</div><div class='add'>+	  user header and server response</div><div class='add'>+</div><div class='add'>+Fri Apr 21 21:44:34 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): should set FMODE_SYNC.</div><div class='add'>+</div><div class='add'>+Thu Apr 20 16:59:22 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): `*lvalue = false' should assign `[false]' to</div><div class='add'>+	  lvalue.</div><div class='add'>+</div><div class='add'>+Wed Apr 19 08:35:08 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): generate singleton class for</div><div class='add'>+	  special constants: nil, true, false.</div><div class='add'>+</div><div class='add'>+Wed Apr 19 02:09:30 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): singleton method for nil, true,</div><div class='add'>+	  false is possible now.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr 18 18:54:25 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.14.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method HTTP#head2.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: get2/post2 does not raise exceptions.</div><div class='add'>+</div><div class='add'>+Mon Apr 17 15:16:31 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close): to detect some exceptional status, writable</div><div class='add'>+	  IO should be flushed before close;</div><div class='add'>+</div><div class='add'>+Sat Apr 15 18:29:00 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_collect_bang): Array#filter renamed.</div><div class='add'>+</div><div class='add'>+Fri Apr 14 19:47:11 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.13.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: accept illegal timestamp</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: when body was chunked, does not set Content-Length:</div><div class='add'>+</div><div class='add'>+Tue Apr 11 21:14:42 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* config_s.dj: add @sitedir@.</div><div class='add'>+	* configure.in: add --with-sitedir=DIR option.</div><div class='add'>+	* instruby.rb: use CONFIG["sitedir"].</div><div class='add'>+	* lib/mkmf.rb: support 'make site-install'.</div><div class='add'>+	* win32/config.status: add @sitedir@.</div><div class='add'>+</div><div class='add'>+Tue Apr 11 16:25:15 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_2comp): unnecessary lvalue cast removed.</div><div class='add'>+</div><div class='add'>+Tue Apr 11 02:25:53 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_fetch): new method.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump): accepts depth = nil for unlimited depth.</div><div class='add'>+</div><div class='add'>+Sun Apr  9 20:49:19 2000  Dave Thomas  &lt;Dave@Thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): Allow class variables to be expanded.</div><div class='add'>+</div><div class='add'>+Fri Apr  7 02:03:54 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): escape non-printable characters.</div><div class='add'>+</div><div class='add'>+Thu Apr  6 20:10:47 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): BeOS --program-suffix support.</div><div class='add'>+	* lib/mkmf.rb (create_makefile): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr  6 09:55:26 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): need rb_exc_new2() call on BeOS.</div><div class='add'>+</div><div class='add'>+Mon Apr  3 17:22:27 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): support tempfile.</div><div class='add'>+</div><div class='add'>+	* eval.c (catch_i): should supply argument.</div><div class='add'>+</div><div class='add'>+Sat Apr  1 22:50:28 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): wrong symbol restoration.</div><div class='add'>+</div><div class='add'>+Sat Apr  1 21:30:53 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_printf, rb_f_printf): should use rb_io_write.</div><div class='add'>+</div><div class='add'>+Sat Apr  1 00:16:05 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): should be clear flags</div><div class='add'>+	  before calling finalizers.</div><div class='add'>+</div><div class='add'>+	* eval.c (specific_eval): can be called without SecurityError, if</div><div class='add'>+	  $SAFE &gt;= 4.</div><div class='add'>+</div><div class='add'>+	* object.c (sym_inspect): inspect gives ":sym", to_s gives "sym".</div><div class='add'>+</div><div class='add'>+Fri Mar 31 22:07:04 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.12.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb:  update Net::Protocol::Proxy#connect</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb:  ReplyCode is not a class</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: header value format was change:</div><div class='add'>+	  values do not include header name</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: header is not a Hash, but HTTPResponse</div><div class='add'>+</div><div class='add'>+Thu Mar 30 12:19:44 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find): rb_eval_cmd() should be called with array.</div><div class='add'>+</div><div class='add'>+Tue Mar 28 13:57:05 2000  Clemens Hintze  &lt;c.hintze@gmx.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_invert): should return new hash.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_invert): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 28 00:58:03 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.11.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: does not</div><div class='add'>+	  dispatch any commands while dispatching command.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: failed to get error class of</div><div class='add'>+	  inherited ReplyCode</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: change feature of "get2", "post2"</div><div class='add'>+</div><div class='add'>+Mon Mar 27 01:34:58 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.10.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: return value of 'head' was wrong.</div><div class='add'>+</div><div class='add'>+Sun Mar 26 17:47:35 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.9.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: SMTP#do_ready wrongly took no arguments</div><div class='add'>+</div><div class='add'>+Sat Mar 25 23:21:10 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): symbols should be converted to ID before</div><div class='add'>+	  dumping out.</div><div class='add'>+</div><div class='add'>+Fri Mar 24 18:26:51 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_check): should have checked exact number of arguments.</div><div class='add'>+</div><div class='add'>+Fri Mar 24 21:02:11 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): should treat some symbols as the signal.</div><div class='add'>+</div><div class='add'>+Fri Mar 24 06:58:03 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.8.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  post, get2, post2, get_body</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: separate</div><div class='add'>+	  Command/Socket documentation.</div><div class='add'>+</div><div class='add'>+Thu Mar 23 02:26:14 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_finalize): fptr may be null.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_new): now calls `initialize'.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): actual open done in this method.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): class variables in singleton class definition</div><div class='add'>+	  is now handled properly (I hope).</div><div class='add'>+</div><div class='add'>+Wed Mar 22 21:49:36 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_delete_safe): skip already deleted entry.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_delete): modify brace miss.</div><div class='add'>+</div><div class='add'>+Wed Mar 22 08:53:58 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): do not push cbase if ruby_cbase == under.</div><div class='add'>+</div><div class='add'>+	* node.h (NEW_CREF0): preserve cbase nesting.</div><div class='add'>+</div><div class='add'>+Tue Mar 21 12:57:50 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_s_new): Class::new should call `inherited'.</div><div class='add'>+</div><div class='add'>+Sat Mar 18 12:36:09 2000  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_backtrace, make_backtrace): removed unused variable</div><div class='add'>+	  `lev'.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): calls `method_added' at attribute definition.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_modfunc): calls `singleton_method_added' while</div><div class='add'>+	  `module_function'.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): parameter to `method_added' and</div><div class='add'>+	  `singleton_method_added' is Symbol.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): caches IDs for `method_added' and</div><div class='add'>+	  `singleton_method_added'.</div><div class='add'>+</div><div class='add'>+Sat Mar 18 11:25:10 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rescue): allows `rescue Error in foo'.  experimental.</div><div class='add'>+	  which is better this or preparing alias `exception' for `$!'?</div><div class='add'>+</div><div class='add'>+Fri Mar 17 15:02:45 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_id): defining new autoload should be</div><div class='add'>+	  prohibited for $SAFE &gt; 4.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): autoload should be possible for</div><div class='add'>+	  $SAFE &gt; 4.</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): should handle T_ICLASS properly.</div><div class='add'>+</div><div class='add'>+Fri Mar 17 14:34:30 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): forgot to initialize str-&gt;orig.</div><div class='add'>+</div><div class='add'>+Fri Mar 17 01:24:59 2000  Dave Thomas  &lt;Dave@thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_clone): forgot to copy str-&gt;orig if STR_NO_ORIG</div><div class='add'>+	  is set by Array#pack.</div><div class='add'>+</div><div class='add'>+Wed Mar 15 21:25:04 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): 'result' is always duplicated</div><div class='add'>+	  before concat string.</div><div class='add'>+</div><div class='add'>+Wed Mar 15 17:26:05 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): unexpected recursive call removed.</div><div class='add'>+	  this bug was found by Satoshi Nojo &lt;nojo@t-samukawa.or.jp&gt;.</div><div class='add'>+</div><div class='add'>+Wed Mar 15 13:12:39 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): Thread.join removed finally.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): forgot to call rb_str_modify().</div><div class='add'>+</div><div class='add'>+Mon Mar 13 16:12:13 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): distinguish real orphan block and still</div><div class='add'>+	  on-stack block passed by block argument.</div><div class='add'>+</div><div class='add'>+Mon Mar 13 00:20:25 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_norm_arg): proper error message when constant comes</div><div class='add'>+	  in formal argument list.  this message is suggested by Muvaw</div><div class='add'>+	  Pnazte &lt;bugathlon@yahoo.com&gt;.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_raise): proper error message when the first</div><div class='add'>+	  argument is not an exception class/object.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): dup now postpone buffer copy as long as</div><div class='add'>+	  possible.  performance improved by lazy copying.</div><div class='add'>+</div><div class='add'>+Sun Mar 12 13:58:52 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_f_kill): should treat some symbols as the signal.</div><div class='add'>+</div><div class='add'>+Sat Mar 11 22:03:03 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub): performance tune by avoiding buffer copy.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): check if argv[0] is ID.</div><div class='add'>+</div><div class='add'>+Sat Mar 11 15:49:41 2000  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_aref): struct aref by symbol.</div><div class='add'>+</div><div class='add'>+Sat Mar 11 05:07:11 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setpriority): should return 0, not nil.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setpgid): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 10 18:14:54 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): confusing buf and path.  this bug found</div><div class='add'>+	  by &lt;decoux@moulon.inra.fr&gt;.</div><div class='add'>+</div><div class='add'>+Fri Mar 10 09:37:49 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add beos/GNUmakefile.in.</div><div class='add'>+	* configure.in: support BeOS R4.5.2 (Intel).</div><div class='add'>+	* beos/GNUmakefile.in: new file to support BeOS R4.5.2 (Intel).</div><div class='add'>+</div><div class='add'>+Thu Mar  9 11:13:32 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): fixed embarrassing brace bug.</div><div class='add'>+</div><div class='add'>+Thu Mar  9 01:36:32 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/flock.c: emulate missing flock() with fcntl().</div><div class='add'>+</div><div class='add'>+Thu Mar  9 00:29:35 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_to_s): returns ":sym".</div><div class='add'>+</div><div class='add'>+	* object.c (sym_id2name): separated from to_s; returns "sym".</div><div class='add'>+</div><div class='add'>+Wed Mar  8 19:16:19 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.7.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (connecting): returns header</div><div class='add'>+</div><div class='add'>+Wed Mar  8 02:08:43 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: escape expansion too early.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_f_scan): Kernel#scan added.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): support \cX et al.</div><div class='add'>+</div><div class='add'>+Tue Mar  7 01:44:27 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdin): simplified procedure, allows $stdin = DATA;</div><div class='add'>+	  experimental.</div><div class='add'>+</div><div class='add'>+	* io.c (set_outfile): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): new method Regexp#last_match added; it's an</div><div class='add'>+	  alternative for $~.</div><div class='add'>+</div><div class='add'>+	* configure.in (DEFAULT_KCODE): KCODE_NONE should be the default.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_rmdir): should return 0 on success.</div><div class='add'>+</div><div class='add'>+	* signal.c: remove CWGUSI support.</div><div class='add'>+</div><div class='add'>+Mon Mar  6 12:28:37 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol): support symbol object.</div><div class='add'>+</div><div class='add'>+	* util.c: make symbol as separated class.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): new exception RangeError.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ip_addrsetup): should check length of hostname.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ip_addrsetup): check newline at the end of</div><div class='add'>+	  hostname.  These fixes suggested by Muvaw Pnazte &lt;bugathlon@yahoo.com&gt;.</div><div class='add'>+</div><div class='add'>+Sun Mar  5 20:35:45 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): should call</div><div class='add'>+	  LoadLibrary() everytime and should assign the hdll to Win32API</div><div class='add'>+	  object(protect the hdll from GC).</div><div class='add'>+</div><div class='add'>+Sun Mar  5 18:49:06 2000  Nakada.Nobuyoshi  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-region): not treat method `begin'</div><div class='add'>+	  and `end' as reserved words.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-docs): ignore after `=begin'</div><div class='add'>+	  and `=end'.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords, hilit-set-mode-patterns):</div><div class='add'>+	  added `yield' to keywords.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-keywords, hilit-set-mode-patterns):</div><div class='add'>+	  matches keywords at end of buffer.</div><div class='add'>+</div><div class='add'>+Sun Mar  5 18:08:53 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.6.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  allow to omit 'start'</div><div class='add'>+</div><div class='add'>+Tue Feb 29 01:08:26 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_initialize): initialization done in `initialize';</div><div class='add'>+	  `initialize' should not be called more than once.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): default `initialize' should take zero</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_new): call `initialize' in Time::new.</div><div class='add'>+</div><div class='add'>+Sat Feb 26 22:39:31 2000  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): fix String#* with huge string.</div><div class='add'>+</div><div class='add'>+Sat Feb 26 00:14:59 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_new): call `initialize' in Dir::new.</div><div class='add'>+</div><div class='add'>+Fri Feb 25 23:01:49 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: export ruby_safe_level by EXTERN for mswin32.</div><div class='add'>+	* win32/ruby.def: regular maintenance.</div><div class='add'>+</div><div class='add'>+Fri Feb 25 22:12:46 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): IO#reopen should accept path as well.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_s_new): call `initialize' in String::new.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_new): call `initialize' in Hash::new.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_s_new): call `initialize' in Array::new.</div><div class='add'>+</div><div class='add'>+Fri Feb 25 12:50:20 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_timer): interval changed to 10ms from 50ms.</div><div class='add'>+</div><div class='add'>+Fri Feb 25 06:42:26 2000  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ip_addrsetup): hostp should remain NULL if</div><div class='add'>+	  host is nil.</div><div class='add'>+</div><div class='add'>+Thu Feb 24 16:53:47 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): priority check for sleep expired</div><div class='add'>+	  threads needed.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 14:22:32 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): forgot to initialize a local variable</div><div class='add'>+	  `taint'.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 07:40:55 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): renamed to MatchData, old name MatchingData</div><div class='add'>+	  remain as alias.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 00:20:21 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb, smtp.rb, pop.rb, http.rb: 1.1.5.</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb: rename to protocol.rb</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: ProtocolSocket -&gt; Net::Socket</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: Net::Socket#write, write_pendstr</div><div class='add'>+	  can take block</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new methods SMTP#ready SMTPCommand#write_mail</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: POPMail#pop can take block</div><div class='add'>+</div><div class='add'>+Sat Feb 19 23:58:51 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): pop_loop should not pop at forward jump.</div><div class='add'>+</div><div class='add'>+Fri Feb 18 17:15:40 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_clone): method objects are now clonable.</div><div class='add'>+</div><div class='add'>+Fri Feb 18 00:27:34 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_shared_variable_declare): shared variable (aka</div><div class='add'>+	  class/module variable) introduced.  prefix `@@'. experimental.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_scan_args): new format char '&amp;'.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 19:09:05 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mypopen): don't close handle if it is not assigned.</div><div class='add'>+	* win32/win32.c (my_open_osfhandle): support O_NOINHERIT flag.</div><div class='add'>+	* win32/win32.c (win32_getcwd): rename getcwd to win32_getcwd</div><div class='add'>+	  in order to avoid using the C/C++ runtime DLL's getcwd.</div><div class='add'>+	  Use CharNext() to process directory name.</div><div class='add'>+	* win32/win32.h: map getcwd to win32_getcwd.</div><div class='add'>+</div><div class='add'>+Wed Feb 16 00:32:49 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_arity): nd_rest is -1 for no rest argument.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_waitpid): returns nil when waitpid(2) returns 0.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 01:47:00 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_waitpid): pid_t should be signed.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 13:59:01 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): yylex yields wrong tokens for `:foo=~expr'.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): exit if reading file is empty.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 03:34:52 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `foo.bar=1' should be &lt;foo&gt;&lt;.&gt;&lt;bar&gt;&lt;=&gt;&lt;1&gt;,</div><div class='add'>+	  not &lt;foo&gt;&lt;.&gt;&lt;bar=&gt;&lt;1&gt;.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_restore_context): process according to</div><div class='add'>+	  RESTORE_* is moved after longjmp().</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_switch): new function to process RESTORE_*.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 16:19:49 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): don't access freed memory.</div><div class='add'>+</div><div class='add'>+	* ruby.c (add_modules): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 12:06:22 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_quotedwords): %w() need to split not only by mere</div><div class='add'>+	  spaces, but by all whitespaces.</div><div class='add'>+</div><div class='add'>+Thu Feb 10 02:12:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): did not support negative offset.</div><div class='add'>+</div><div class='add'>+Wed Feb  9 21:54:26 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c: gcc --traditional support.</div><div class='add'>+	  Rearrange headers to work AC_C_CONST.</div><div class='add'>+	* ext/socket/getnameinfo.c: ditto.</div><div class='add'>+	* ext/socket/socket.c: mswin32: use double instead of long long.</div><div class='add'>+</div><div class='add'>+Wed Feb  9 16:30:41 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_coerce): should return [y, x].</div><div class='add'>+</div><div class='add'>+Wed Feb  9 11:07:30 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): loadpath structure changed.</div><div class='add'>+</div><div class='add'>+Tue Feb  8 02:07:33 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): optimize for \G at top.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): \G introduced.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_bang): old behavior restored: bang method</div><div class='add'>+	  returns nil if string not changed.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): support independent subexpression</div><div class='add'>+	  `(?&gt;pattern)'.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 15:51:08 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): now understands interrupts under Ruby.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 07:51:52 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq_bang): always return an Array.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_compact_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_reject): returns a Hash, not an Array.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_reject): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 10:20:25 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): scan now leaves information about the last</div><div class='add'>+	  successful pattern match in $&amp;.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close): should not check closed IO.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 05:44:01 2000  Kentaro Inagaki  &lt;inagaki@tg.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recv): TRAP_BEG after retry entry.</div><div class='add'>+</div><div class='add'>+Wed Feb  2 22:33:45 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start): receives argument from outside, like</div><div class='add'>+	  `Thread::start(1,2,3){|a,b,c| ... }'.</div><div class='add'>+</div><div class='add'>+Wed Feb  2 22:14:40 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): should check regs-&gt;num_regs.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): remove matchcache, use static struct</div><div class='add'>+	  re_register instead.</div><div class='add'>+</div><div class='add'>+	* re.c (match_getter): avoid cloning match data.</div><div class='add'>+</div><div class='add'>+Wed Feb  2 17:12:15 2000  Dave Thomas  &lt;Dave@Thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* samples/eval.rb: Rescue new ScriptError exception</div><div class='add'>+</div><div class='add'>+Wed Feb  2 02:06:07 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub_bang): gsub! now leaves information about the</div><div class='add'>+	  last successful pattern match in $&amp;.</div><div class='add'>+</div><div class='add'>+Mon Jan 31 15:24:58 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_bang): bang method returns string always.</div><div class='add'>+	  experimental.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 17:58:09 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: arrange to use setitimer(2) for BOW, DJGPP</div><div class='add'>+</div><div class='add'>+	* defines.h: ditto. use random(3) on cygwin b20.1.</div><div class='add'>+</div><div class='add'>+Sun Jan 30 17:20:16 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: use getrlimit(2) on DJGPP.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 01:27:10 2000  GOTO Kentaro  &lt;gotoken@math.sci.hokudai.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob): glob pattern "/*" did not match.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 22:30:47 2000  Shigeo Kobayashi  &lt;shigeo@tinyforest.gr.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_modulo): wrong result for negative modulo.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 02:01:57 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_c): should use S_ISCHR.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_c): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): should propagate tainting.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 04:01:34 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_freeze): all objects made freezable.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 00:37:01 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use AC_CHECK_TOOL for cross compiling.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 19:01:54 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_protect_inspect): should be checked by id of</div><div class='add'>+	  objects; not by object themselves.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 18:48:08 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): too many warnings;  warned on every method</div><div class='add'>+	  overriding.  should be on method discarding.</div><div class='add'>+</div><div class='add'>+Mon Jan 24 02:56:44 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): -2.abs should be `(-2).abs' to accomplish the</div><div class='add'>+	  principle of less surprise.  `+2' too.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): when defining class is already there, and</div><div class='add'>+	  superclass differ, throw away the old class.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): gives warning again on constant</div><div class='add'>+	  redefinition.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): SyntaxError, NameError, LoadError and</div><div class='add'>+	  NotImplementError are subclasses of ScriptError&lt;Exception, not</div><div class='add'>+	  StandardError.  experimental.</div><div class='add'>+</div><div class='add'>+Sat Jan 22 00:00:41 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_quotedwords): no longer use `String#split'.</div><div class='add'>+	  and enable space escape within quoted word list.</div><div class='add'>+	  e.g. %w(a\ b\ c abc) =&gt; ["a b c", "abc"].</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang): new method `slice!'.</div><div class='add'>+</div><div class='add'>+Fri Jan 21 21:56:08 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.4.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: can receive messages which have</div><div class='add'>+	  no Content-Length:.</div><div class='add'>+</div><div class='add'>+Fri Jan 21 16:15:59 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_s_new): new class ThreadGroup.</div><div class='add'>+</div><div class='add'>+Tue Jan 18 12:24:28 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (Init_Struct): remove Struct's own hash and eql?.</div><div class='add'>+</div><div class='add'>+Sat Jan 15 22:21:08 2000  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (search_method): argument klass may be 0.</div><div class='add'>+</div><div class='add'>+Sat Jan 15 15:03:46 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_index): remove this method.</div><div class='add'>+</div><div class='add'>+	* enum.c: remove use of pointers to local variables. find,</div><div class='add'>+	  find_all, min, max, index, member?, each_with_index,</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): multiple assignment does not use to_a anymore.</div><div class='add'>+	  experimental.</div><div class='add'>+</div><div class='add'>+Fri Jan 14 12:22:04 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): use memmove instead of memcpy for</div><div class='add'>+	  overwrapping strings (e.g. a[1] = a).</div><div class='add'>+</div><div class='add'>+Thu Jan 13 11:12:40 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_add): use new node, ARGSPUSH.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 18:32:28 2000  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): forgot an argument to call w_ivar().</div><div class='add'>+</div><div class='add'>+Sun Jan  9 18:13:51 2000  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c: first was not defined unless HAVE_RANDOM.</div><div class='add'>+</div><div class='add'>+Sat Jan  8 19:02:49 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_sysread): raise IOError for buffered IO.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recv): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan  7 00:59:29 2000  Masahiro Tomita  &lt;tommy@tmtm.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): TRAP_BEG/TRAP_END added around getc().</div><div class='add'>+</div><div class='add'>+Thu Jan  6 00:39:54 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): should be initialized unless srand is</div><div class='add'>+	  called before.</div><div class='add'>+</div><div class='add'>+Wed Jan  5 16:59:34 2000  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.3.</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb: Session -&gt; Protocol, ...</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPCommand implementation was changed.</div><div class='add'>+</div><div class='add'>+Wed Jan  5 02:14:46 2000  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: Fix SEGV on empty parens with UMINUS or UPLUS.</div><div class='add'>+</div><div class='add'>+Tue Jan  4 22:25:54 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): `() while cond' dumped core.</div><div class='add'>+</div><div class='add'>+Tue Jan  4 06:04:14 2000  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: modify for cross-compiling.</div><div class='add'>+	  use target_* instead of host_*.</div><div class='add'>+	  use AC_CANONICAL_TARGET.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: ditto.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 13:26:14 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): force_recycle ruby_dyna_vars to gain</div><div class='add'>+	  performance.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete_at_m): takes same argument pattern with</div><div class='add'>+	  rb_ary_aref.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 10:12:26 2000  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h,util.c (rb_special_const_p): peep hole optimization.</div><div class='add'>+</div><div class='add'>+	* ruby.h,util.c (rb_test_false_or_nil): removed.</div><div class='add'>+</div><div class='add'>+	* ruby.h (RTEST, SPECIAL_CONST_P): peep hole optimization.</div><div class='add'>+</div><div class='add'>+	* ruby.h (FL_ABLE, FL_SET, FL_UNSET, FL_REVERSE): made expressions</div><div class='add'>+	  not statements.</div><div class='add'>+</div><div class='add'>+	* ruby.h (OBJ_INFECT): newly added macro which copies taint from</div><div class='add'>+	  `s' to `x'.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 02:04:18 2000  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_safe_level): new method.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): recycle dyna_var_map to reduce object</div><div class='add'>+	  allocation.</div><div class='add'>+</div><div class='add'>+Fri Dec 31 00:52:48 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: thread independent trace_func not needed.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 14:47:31 1999  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: specifies -soname in LIBRUBY_DLDFLAGS on linux</div><div class='add'>+	  platforms.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 10:51:27 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c,io.c,hash,c,re.c,string.c: `_m' suffix instead of</div><div class='add'>+	  `_method' for wrapper functions to implement method,</div><div class='add'>+	  e.g. `rb_str_join_m()'.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 02:08:02 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr2inum): non-numeric format check added.</div><div class='add'>+	  currently it works only with base == 0 (i.e. Integer()).</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str2inum): now takes VALUE to 1st argument.  null</div><div class='add'>+	  byte check added.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): unless replacement is an array,</div><div class='add'>+	  replacement shall be converted to array by `[replacement]', not</div><div class='add'>+	  by `replacement.to_a'.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_plus): right operand must be an array.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_concat): argument must be an array.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 12:35:47 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_finalize): mswin32: fix socket handle leak.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myfdclose): ditto.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 23:15:13 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (mypopen): raise catchable error instead of rb_fatal.</div><div class='add'>+	* win32/win32.c (mypclose): fix process handle leak.</div><div class='add'>+</div><div class='add'>+Sun Dec 26 16:17:11 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): use UINT2NUM</div><div class='add'>+	  instead of INT2NUM to set __dll__ and __proc__.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 00:08:59 1999  KANEKO Naoshi  &lt;wbs01621@mail.wbs.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_Call): remove 'dword ptr'</div><div class='add'>+	  from _asm.</div><div class='add'>+</div><div class='add'>+Fri Dec 24 10:26:47 1999  Koji Oda  &lt;oda@bsd1.qnes.nec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: use "C++" linkage.</div><div class='add'>+</div><div class='add'>+Fri Dec 24 02:00:57 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): should initialize th-&gt;trace.</div><div class='add'>+</div><div class='add'>+Fri Dec 24 00:43:39 1999  KANEKO Naoshi  &lt;wbs01621@mail.wbs.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): check for `fptr-&gt;f == NULL'.</div><div class='add'>+	* win32/win32.c (mypopen): STDERR does not work during ` function.</div><div class='add'>+</div><div class='add'>+Wed Dec 22 22:50:40 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.2.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTP support is enhanced a little</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: support proxy</div><div class='add'>+</div><div class='add'>+Tue Dec 21 17:21:28 1999  Koji Oda  &lt;oda@bsd1.qnes.nec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_finalize): mswin32: fix FILE* leak.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 05:33:56 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.1.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: support HTTP chunk</div><div class='add'>+</div><div class='add'>+Mon Dec 20 19:08:12 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): handle dir separator correctly.</div><div class='add'>+</div><div class='add'>+Sun Dec 19 22:56:31 1999  KANEKO Naoshi  &lt;wbs01621@mail.wbs.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb: support dosish root directory.</div><div class='add'>+	* win32/Makefile: ditto.</div><div class='add'>+	* win32/config.status: ditto.</div><div class='add'>+	* win32/win32.c (opendir): ditto.</div><div class='add'>+	* win32/win32.c (opendir): use CharPrev() to get last character</div><div class='add'>+	  of the directory name.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 03:00:01 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): check should be done by absolute path.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_ivar): should restore generic_ivar too.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_ivar): should dump generic_ivar too.</div><div class='add'>+</div><div class='add'>+Fri Dec 17 22:46:46 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb, http.rb: 1.1.0.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: test release</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb: support class swapping</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb: Socket#flush_rbuf</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb: doquote -&gt; Net.quote</div><div class='add'>+</div><div class='add'>+Fri Dec 17 19:27:43 1999  IWAMURO Motonori  &lt;iwa@mmp.fujitsu.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should initialize ruby_frame-&gt;last_class.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 01:35:29 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): option to change directory changed to</div><div class='add'>+	  `-C' like tar.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): argv boundary check for `-X'.</div><div class='add'>+</div><div class='add'>+Mon Dec 13 15:15:31 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_adjust_startpos): separate startpos adjustment</div><div class='add'>+	  because of major performance drawback.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): tainted status of the singleton</div><div class='add'>+	  class must be synchronized with the object.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): implement thread priority.</div><div class='add'>+</div><div class='add'>+Sat Dec 11 03:34:38 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_hashentry): key should be VALUE, not ID.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): should check next_p too.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 18:09:13 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_set_backtrace): forgot to declare a VALUE argument.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 14:19:31 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_taint): explicit tainting must be prohibited at</div><div class='add'>+	  level 4 to prevent polluting trusted object by untrusted code.</div><div class='add'>+</div><div class='add'>+	* file.c: file operations (stat, lstat, chmod, chown, umask,</div><div class='add'>+	  truncate, flock) are prohibited in level 2 (was level 4).</div><div class='add'>+</div><div class='add'>+Wed Dec  8 11:48:23 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): prohibiting require() in the secure mode</div><div class='add'>+	  cause serious autoloading error.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_obj_instance_variables): don't need to prohibit</div><div class='add'>+	  to get list of instance variable names of untainted objects.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_get): don't need to prohibit to get instance</div><div class='add'>+	  variables of untainted objects.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_const): should prohibit constant</div><div class='add'>+	  removals too.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 09:23:01 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should try autoloading before defining</div><div class='add'>+	  class/module at the toplevel.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 22:15:30 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Modified rb_cv_rshift_sign detect routine and</div><div class='add'>+	  more simple/fast RSHIFT() for hpux-10.x.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 11:16:30 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): calculate stack limit from rlimit where</div><div class='add'>+	  getrlimit(2) is available.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 09:57:33 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_ftype): should have removed mode_t.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 15:55:30 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): Fix -1 &gt;&gt; 32 returned 0 (should be -1).</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): Fix  1 &gt;&gt; -1 returned 0 (should be 2).</div><div class='add'>+</div><div class='add'>+Mon Dec  6 11:47:23 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): formatted string must be tainted if</div><div class='add'>+	  any of parameters is a tainted string.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): expanded file path need not to</div><div class='add'>+	  be tainted always.</div><div class='add'>+</div><div class='add'>+Sun Dec  5 20:25:29 1999  Katsuhiro Ueno  &lt;unnie@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): simple typo.</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): sizeof(RVALUE*), not sizeof(RVALUE).</div><div class='add'>+</div><div class='add'>+Sat Dec  4 01:40:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): adjust startpos for multibyte match unless</div><div class='add'>+	  the first pattern is forced byte match.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rand): should not use rand/random where drand48</div><div class='add'>+	  may be available.  RANDOM_NUMBER should be provided from outside.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 09:54:59 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (moreswitches): there may be trailing garbage at #!</div><div class='add'>+	  line.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): should check require 'feature.o' too.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 11:58:15 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_loading): should maintain loading_tbl.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:21:43 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_loading_done): wrong parameter to st_delete().</div><div class='add'>+</div><div class='add'>+Wed Dec  1 11:24:06 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_sflag): process -s properly (should not force `--').</div><div class='add'>+</div><div class='add'>+Wed Dec  1 09:47:33 1999  Kazunori NISHI  &lt;kazunori@swlab.csce.kyushu-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_method): should increment end too.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 18:00:45 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c: MARSHAL_MINOR incremented; format version is 4.2.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): distinguish class and module.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): save hash's default value.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): restore hash's default value.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 01:46:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_source): generated source string must be tainted if</div><div class='add'>+	  regex is tainted.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): basename should not be tainted</div><div class='add'>+	  unless the original path is tainted.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_dirname): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 20:42:13 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (stat_new): Struct::Stat -&gt; File::Stat; Stat is no longer</div><div class='add'>+	  a Struct.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 15:28:52 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path2class): evaluated value from path should be</div><div class='add'>+	  module or class.</div><div class='add'>+</div><div class='add'>+Fri Nov 26 18:12:49 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): should remove only end_procs defined</div><div class='add'>+	  within load wrapper.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): save and restore ruby_wrapper around loading.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mark_end_proc): mark end procs registered by END{} or</div><div class='add'>+	  at_exit{}.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_set_end_proc): should not call rb_global_variable()</div><div class='add'>+	  on heap address;  it crashed mod_ruby.</div><div class='add'>+</div><div class='add'>+Mon Nov 22 14:07:24 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): variable e_script should be visited by</div><div class='add'>+	  garbage collector.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 10:10:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (inspect_i): value may be nil, check revised.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 18:06:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob): recursive wildcard match by `**' ala zsh.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 11:44:26 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c: was returning void value.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 03:57:22 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: add methods Stat struct class to reduce stat(2).</div><div class='add'>+</div><div class='add'>+Thu Nov 18 16:18:27 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: mutual lock by flock(2).</div><div class='add'>+</div><div class='add'>+Thu Nov 18 11:44:13 1999  Masahiro Tomita  &lt;tommy@tmtm.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): should check bytes too.</div><div class='add'>+</div><div class='add'>+Wed Nov 17 02:40:40 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): $defout (alias of $&gt;) added.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 09:47:14 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: add mutual lock using symlink.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 16:50:34 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_grep): non matching grep returns an empty array, no</div><div class='add'>+	  longer returns nil.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_grep): grep with block returns collection of</div><div class='add'>+	  evaluated values of block over matched elements.</div><div class='add'>+</div><div class='add'>+Mon Nov 15 04:50:33 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_source): should not call rb_reg_expr_str()</div><div class='add'>+	  everytime.</div><div class='add'>+</div><div class='add'>+Sat Nov 13 07:34:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_constants): traverse superclasses to collect</div><div class='add'>+	  constants.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): modified for shared variables.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): search nested scope, then superclasses to</div><div class='add'>+	  assign shared variables within methods.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): remove warnings from constants modification,</div><div class='add'>+	  because they are no longer constants.</div><div class='add'>+</div><div class='add'>+	* parse.y (node_assign): modified for shared variables.</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): allow constant assignment in methods;</div><div class='add'>+	  constants should be called `shared variable'.</div><div class='add'>+</div><div class='add'>+Fri Nov 12 23:52:19 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): argument check for NT, __EMX__, DJGPP.</div><div class='add'>+</div><div class='add'>+Wed Nov 10 21:54:11 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_cmp): Fixed return without value.</div><div class='add'>+</div><div class='add'>+Wed Nov 10 17:57:06 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c: incorporate &lt;yasuf@big.or.jp&gt;'s sprintf patch at</div><div class='add'>+	  [ruby-dev:7754].</div><div class='add'>+</div><div class='add'>+Wed Nov 10 08:28:53 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): supply class parameter for each invocation.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 13:21:04 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: AC_MINIX move to before AC_EXEEXT and AC_OBJEXT.</div><div class='add'>+</div><div class='add'>+Mon Nov  8 19:52:29 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Renamed AC_CHAR_UNSIGNED to AC_C_CHAR_UNSIGNED.</div><div class='add'>+</div><div class='add'>+	* configure.in: Added default to AC_CHECK_SIZEOF().</div><div class='add'>+</div><div class='add'>+Mon Nov  8 14:28:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): rescue modifier added to the syntax.</div><div class='add'>+</div><div class='add'>+	* keywords: kRESCUE_MOD added.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_eval): fake outer scope when eval() called without</div><div class='add'>+	  bindings.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_binding): should copy last_class in the outer frame too.</div><div class='add'>+</div><div class='add'>+Sun Nov  7 18:31:04 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): last_class may be 0.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 19:26:55 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: Added depend entry make parse.@OBJEXT@ from parse.c</div><div class='add'>+	  for UCB make</div><div class='add'>+</div><div class='add'>+Thu Nov  4 17:41:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): \&lt; (wordbeg), \&gt; (wordend) disabled.</div><div class='add'>+</div><div class='add'>+Wed Nov  3 08:52:57 1999  Masaki Fukushima  &lt;fukusima@goto.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): forgot to use INT2FIX() around SEEK_SET, etc.</div><div class='add'>+</div><div class='add'>+Wed Nov  3 00:25:20 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_method): use mbclen2() to handle kcode</div><div class='add'>+	  option of regexp objects.</div><div class='add'>+</div><div class='add'>+Mon Nov  1 14:22:15 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): reduce recursive calls to rb_eval()</div><div class='add'>+	  case of ||= and &amp;&amp;= .</div><div class='add'>+</div><div class='add'>+Sun Oct 31 13:12:42 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): wrong [\W] match.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 16:57:30 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: new String methods (kconv, tojis, toeuc,</div><div class='add'>+	  tosjis).</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_at): now accepts optional second argument to</div><div class='add'>+	  specify micro second.</div><div class='add'>+</div><div class='add'>+Thu Oct 28 13:35:40 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_method): should be mbchar aware with</div><div class='add'>+	  single char separators.</div><div class='add'>+</div><div class='add'>+Wed Oct 27 12:57:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_srand): random seed should be unsigned.</div><div class='add'>+</div><div class='add'>+Tue Oct 26 23:58:15 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_collect): collect for better performance.</div><div class='add'>+</div><div class='add'>+Tue Oct 26 19:20:54 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): should register class/module objects.</div><div class='add'>+</div><div class='add'>+Sat Oct 23 15:59:39 1999  Takaaki Tateishi  &lt;ttate@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): should require at least one argument.</div><div class='add'>+</div><div class='add'>+Sat Oct 23 12:42:44 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_collect): collect without block will collect</div><div class='add'>+	  elements in enumerable.</div><div class='add'>+</div><div class='add'>+Thu Oct 21 16:14:19 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (moreswitches): function to process string option;</div><div class='add'>+	  the name is stolen from perl (not implementation).</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): use RUBYOPT environment variable to</div><div class='add'>+	  retrieve the default options.</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): use eban's fnmatch; do not depend on system's</div><div class='add'>+	  fnmatch (which may have portability problem) anymore.</div><div class='add'>+</div><div class='add'>+Wed Oct 20 15:14:24 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): should protect the generated object</div><div class='add'>+	  table (arg-&gt;data) from GC.</div><div class='add'>+</div><div class='add'>+Mon Oct 18 16:15:52 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_kconv): output should be NUL terminated.</div><div class='add'>+</div><div class='add'>+Mon Oct 18 09:03:01 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb: 1.0.3</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: new methods POP3Command#uidl, POPMail#uidl.</div><div class='add'>+</div><div class='add'>+Sun Oct 17 03:35:33 1999  Masaki Fukushima  &lt;fukusima@goto.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_pop): forgot some freeze checks.</div><div class='add'>+</div><div class='add'>+Sat Oct 16 12:57:53 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort): always returns the copied array.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 22:50:41 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (sys_nerr): on CYGWIN, it is _sys_nerr.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 01:32:31 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl) :need to use NUM2ULONG, not NUM2INT.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_Call): need to use NUM2ULONG,</div><div class='add'>+	  not NUM2INT.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 00:22:30 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): super class of the MatchingData, which was</div><div class='add'>+	  Data, to be Object.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): evaluate required libraries before load &amp;</div><div class='add'>+	  compiling the script.</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_getline): retrieve a line from the stream, saving</div><div class='add'>+	  lines in the table in debug mode.</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): treat the case ruby_sourcefile is null.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 02:00:10 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string): compile time string concatenation.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 07:28:09 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb: 1.0.2</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb: new method Session#set_pipe.</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb: add RD documentation.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 02:17:05 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_plus): remove recursion.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): detect modify attempt.</div><div class='add'>+</div><div class='add'>+Wed Oct 13 02:17:05 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should copy block to prevent modifications.</div><div class='add'>+	  tag in the structure should be updated from latest prot_tag.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_s_new): tag in struct BLOCK should not point into</div><div class='add'>+	  unused stack.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): iterate over generated matching filenames if</div><div class='add'>+	  the block is given to the method.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_at): new methods; at, first, last.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch): raises exception unless the default</div><div class='add'>+	  value is supplied.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): need not remove nil from value.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset): setting value to nil does not remove key</div><div class='add'>+	  anymore.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 22:29:04 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): length may be 0 or negative.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 13:26:27 1999  Jun-ichiro itojun Hagino  &lt;itojun@itojun.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (posix_signal): RETSIGTYPE may be void.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 03:28:03 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete_at): allows negative position.</div><div class='add'>+</div><div class='add'>+Mon Oct 11 17:42:25 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): should generate distinct ID_ATTRSET symbols</div><div class='add'>+	  for the name with multiple `='s at the end.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (CPPFLAGS): separate cpp flags from CFLAGS.</div><div class='add'>+</div><div class='add'>+Mon Oct 11 07:27:05 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not execute the `else' clause on the</div><div class='add'>+	  case the exceptions are handled by the `rescue' clause.</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal): ignore SIGPIPE by default.</div><div class='add'>+</div><div class='add'>+Wed Oct  6 17:13:19 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (addpath): rubylib_mangled_path() modified.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 12:42:32 1999  Kazuhiko Izawa  &lt;izawa@erec.che.tohoku.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): % in printf format should be %%.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 10:01:40 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_obj_instance_variables): should always return</div><div class='add'>+	  array for all object can have instance variables now.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 00:08:34 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (OFF16): need to adjust pointer address to pack/unpack on</div><div class='add'>+	  64bit machines.</div><div class='add'>+</div><div class='add'>+Sun Oct  3 03:05:59 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): mktime y2k problem.</div><div class='add'>+</div><div class='add'>+Sun Sep 26 16:54:45 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): `\r' handling for here documents.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 09:20:11 1999  Masahiro Tomita  &lt;tommy@tmtm.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: SOCKS5 support.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 07:33:23 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb: 1.0.1</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: APOP did not work.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: modify the way to make APOP challenge.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 00:35:30 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_include): should return boolean value.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): wrong comparison with mbc.</div><div class='add'>+</div><div class='add'>+	* eval.c (specific_eval): default sourcefile name should be</div><div class='add'>+	  "(eval)" for module_eval etc.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 00:06:07 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile: update rules.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): should not assign in char, it maybe -1.</div><div class='add'>+</div><div class='add'>+Tue Sep 21 23:57:54 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): should not propagate retval in</div><div class='add'>+	  trace_func.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 21:35:39 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myselect): assume non socket files are always</div><div class='add'>+	  readable/writable.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 01:08:02 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): should not block other threads.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_synchronized): renamed from rb_io_unbuffered(); do</div><div class='add'>+	  not call setbuf(NULL) anymore.</div><div class='add'>+</div><div class='add'>+Sat Sep 18 13:45:43 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.4.2 released.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 23:24:17 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): dumped core if no argument given.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 23:21:06 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (myselect): translate WSAEINTR, WSAENOTSOCK into</div><div class='add'>+	  UNIX errno constants.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 00:52:27 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): assignable() may return 0.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 20:46:23 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): was doubly evaluating the return expression.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 18:40:08 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.4.1 released.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 11:33:22 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match): should return nil.</div><div class='add'>+</div><div class='add'>+Wed Sep 15 22:46:37 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): should quote `-' too.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 15:23:22 1999  Nobuyoshi Nakada  &lt;nobu.nakada@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): no need to ignore `\r' here.</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): strip `\r' from text.</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): support `__END__\r\n' type terminator.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 10:49:19 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): needless RTEST(ruby_verbose) removed.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 09:10:11 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/session.rb, smtp.rb, pop.rb: 1.0.0</div><div class='add'>+</div><div class='add'>+Wed Sep  8 11:37:38 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): bit more strict comparison.</div><div class='add'>+</div><div class='add'>+Tue Sep  7 00:50:56 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): use rb_str_upto() for strings.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): set upper limit by comparing curr &lt;= end.</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): should check equality to handle magic</div><div class='add'>+	  increment.</div><div class='add'>+</div><div class='add'>+Mon Sep  6 22:43:33 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): break/next/redo available within -n/-p loop.</div><div class='add'>+</div><div class='add'>+Fri Sep  3 11:14:31 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_equal): should not raise exception; protect by</div><div class='add'>+	  rb_rescue().</div><div class='add'>+</div><div class='add'>+Thu Sep  2 05:23:05 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): use dirsep, instead of character</div><div class='add'>+	  literal '/'.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): reduce multiple dirsep at the top.</div><div class='add'>+</div><div class='add'>+Wed Sep  1 00:28:27 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): call rb_undefined() if a method appears not to</div><div class='add'>+	  be exist explicitly from cache.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_boundp): check method cache before calling</div><div class='add'>+	  rb_get_method_body().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_get_method_body): store method non-existence</div><div class='add'>+	  information in the cache.</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_srand): use getpid(2) to generate seed.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): do not apply partial mbc match for</div><div class='add'>+	  charset_not.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): put extended literal prefix (0xff)</div><div class='add'>+	  only before numeric literals, not before all &gt;0x80 char.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): put numeric literal in extended</div><div class='add'>+	  charset region, not normal charset bits.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): calculate fastmap for charset and</div><div class='add'>+	  charset_not to treat numeric literal (e.g. \246) specially.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 17:32:55 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should set return value (nil) explicitly if a</div><div class='add'>+	  value is omitted for return statement.</div><div class='add'>+</div><div class='add'>+Sun Aug 26 20:26:40 2001  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: restore terminal mode</div><div class='add'>+	  even if readline() interrupted.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: returned string need to</div><div class='add'>+	  be tainted.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: fixed memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: allow negative index.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: added Readline::HISTORY.size</div><div class='add'>+	  same as Readline::HISTORY.length</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: allow conditional parsing</div><div class='add'>+	  of the ~/.inputrc file by `$if Ruby'.</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: check whether the</div><div class='add'>+	  libreadline has the variable `rl_completion_append_character'</div><div class='add'>+	  (this feature was implemented from GNU readline 2.1).</div><div class='add'>+</div><div class='add'>+Thu Aug 26 15:06:11 1999  Masaki Fukushima  &lt;fukusima@goto.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): local variables may be placed beyond stack_end, so</div><div class='add'>+	  use an address from alloca(1) on non C_ALLOCA platforms.</div><div class='add'>+</div><div class='add'>+Thu Aug 26 01:24:17 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): "%%" is legal, but "%3.14%" is not.</div><div class='add'>+</div><div class='add'>+Mon Aug 23 00:00:54 1999  Tsukada Takuya  &lt;tsukada@fminn.nagano.nagano.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): wrong macro caused memory leak.</div><div class='add'>+</div><div class='add'>+Sat Aug 21 11:30:51 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ADJ): should not adjust addresses to data on heap.</div><div class='add'>+</div><div class='add'>+Fri Aug 20 20:50:58 1999  Kenji Nagasawa  &lt;kenn@hma.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (PATH_SEP): path separator is ";" for OS/2.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 10:50:43 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc): add volatile to avoid GCC optimize bug(?).</div><div class='add'>+</div><div class='add'>+Wed Aug 18 23:48:10 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* due to disk trouble, some change records were lost.  several</div><div class='add'>+	  modification made to eval.c, gc.c, io.c, pack.c,</div><div class='add'>+	  ext/extmk.rb.in, and lib/mkmf.rb.</div><div class='add'>+</div><div class='add'>+Fri Aug 13 15:41:39 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.4.0 released.</div><div class='add'>+</div><div class='add'>+Fri Aug 13 03:16:07 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_forward): since $stdout may be non-IO, ARGF.file is</div><div class='add'>+	  not guaranteed to be IO.  check and forwarding added to every ARGF</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+	* io.c (set_outfile): $stdout/$stderr may not be IO now.</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdin): $stdin may not be IO now.</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): round `end' to length as documented.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): preserve original stdin/stdout/stderr.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 13:44:33 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_load): require receives 1 argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_dup): should clear tmp to avoid dangling</div><div class='add'>+	  references.</div><div class='add'>+</div><div class='add'>+Wed Aug 11 13:33:13 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): no automatic aggregate initialization.</div><div class='add'>+</div><div class='add'>+	* eval.c (module_setup): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 11 18:18:41 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under_i): automatic aggregate initialization is an</div><div class='add'>+	  ANSI feature.</div><div class='add'>+</div><div class='add'>+Wed Aug 11 10:10:02 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): parse `[].length==0' as `([].length)==0', not</div><div class='add'>+	  `([].length=)=0'</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): parse `[].length!=0' as `([].length)!=0', not</div><div class='add'>+	  `([].length!)=0'</div><div class='add'>+</div><div class='add'>+	* parse.y (peek): peek-in lexical buffer.</div><div class='add'>+</div><div class='add'>+Wed Aug 11 00:34:05 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): bug on backward jump adjustment concerning</div><div class='add'>+	  stop_paren.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 14:54:25 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_guess): binary detection was wrong.</div><div class='add'>+</div><div class='add'>+Tue Aug 10 00:07:36 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_clone): should use CLONESETUP().</div><div class='add'>+</div><div class='add'>+Mon Aug  9 23:57:07 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (CLONESETUP): should have copied generic instance</div><div class='add'>+	  variables too.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 10:46:54 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: add check for &lt;arpa/nameser.h&gt; and</div><div class='add'>+	  &lt;resolv.h&gt;.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 13:19:06 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_cmp): comparing NaN should not return value.</div><div class='add'>+	  raises FloatDomainError.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 03:09:08 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_free): free copied frames too.</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_dup): should copy previous frames from stack to</div><div class='add'>+	  heap to preserve frame information.</div><div class='add'>+</div><div class='add'>+Fri Aug  6 15:01:07 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.3.7 - version 1.4 beta</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recv): UDPsocket#recvfrom now returns</div><div class='add'>+	  IPsocket#addr information.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subary): ary[-3,3] should not return nil.</div><div class='add'>+</div><div class='add'>+Thu Aug  5 10:58:01 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_mark): protect old ruby_frame from GC during it</div><div class='add'>+	  replaced by eval().</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): do not modify frame.prev; binding should preserve</div><div class='add'>+	  information about calling() too.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): no arity check for mere yield; but only for</div><div class='add'>+	  Proc#call.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 22:07:13 1999  Kazuhiro HIWADA  &lt;hiwada@kuee.kyoto-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_clone): should check if iv_tbl, m_tbl are</div><div class='add'>+	  initialized.</div><div class='add'>+</div><div class='add'>+Tue Aug  3 19:03:02 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_cmp): use rb_with_disable_interrupt() to ensure</div><div class='add'>+	  clearance of rb_prohibit_interrupt even on failure.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_with_disable_interrupt): new function added.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 23:23:44 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_create_0): set THREAD_RAISED flag on thread</div><div class='add'>+	  termination by exception.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): `$!' may not be nil for the threads</div><div class='add'>+	  created in rescue clause.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_status): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): should re-raise exception for already</div><div class='add'>+	  dead threads too.</div><div class='add'>+</div><div class='add'>+Fri Jul 30 17:56:54 1999  GOTO Kentaro  &lt;gotoken@math.sci.hokudai.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_ge): wrong comparison.</div><div class='add'>+</div><div class='add'>+Fri Jul 30 12:15:44 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: win32 support.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use append_library().</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 30 02:11:48 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): should return nil for deleting non</div><div class='add'>+	  existing item.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close): call rb_sys_wait() on explicit close.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_close): do not call rb_sys_wait() on finalize.</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under_i): cbase context should be maintained for</div><div class='add'>+	  Module#module_eval().  suggested by &lt;inaba@st.rim.or.jp&gt;.</div><div class='add'>+</div><div class='add'>+Wed Jul 28 01:18:28 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add -I$(hdrdir)/lib to install using ftools.</div><div class='add'>+</div><div class='add'>+	* util.c: use HAVE_FCNTL_H, not HAVE_FCNTL</div><div class='add'>+</div><div class='add'>+Wed Jul 28 18:24:45 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.3.6 - version 1.4 alpha</div><div class='add'>+</div><div class='add'>+Tue Jul 27 09:38:08 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): reduce recursive rb_eval() calls by</div><div class='add'>+	  NODE_BLOCKs.</div><div class='add'>+</div><div class='add'>+Tue Jul 27 01:20:40 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): drive letter patch.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 02:36:31 1999  Shugo Maeda  &lt;shugo@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should clear ruby_nerr.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): oldbt should not be empty to unshift.</div><div class='add'>+</div><div class='add'>+Sun Jul 25 12:09:16 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_braces): should treat nested braces.</div><div class='add'>+</div><div class='add'>+Fri Jul 23 02:49:49 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_clear): dummy argument added; suggested by</div><div class='add'>+	  &lt;eguchi@shizuokanet.ne.jp&gt;.  thanks.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 19:37:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): get_backtrace() may return Qnil.</div><div class='add'>+	  typecheck added.</div><div class='add'>+</div><div class='add'>+Tue Jul 20 14:36:43 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): do not treat String specially (for future</div><div class='add'>+	  override).</div><div class='add'>+</div><div class='add'>+Tue Jul 20 02:28:34 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_gets): $_ should be nil, when get returns nil.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_gets): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 19 17:13:09 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): should continue fastmap compile</div><div class='add'>+	  for anychar_repeat, for it's repeat anyway.</div><div class='add'>+</div><div class='add'>+Mon Jul 26 13:33:45 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb: replaced by faster code.</div><div class='add'>+</div><div class='add'>+Mon Jul 19 01:57:28 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: no longer use install program.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: use miniruby to install programs.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 00:06:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ipaddr): don't do reverse lookup if</div><div class='add'>+	  attribute do_not_reverse_lookup is set for socket classes.</div><div class='add'>+	  Experimental.  Note this is a global attribute.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 22:18:29 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_eof): use feof() to check EOF already met.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): should return nil at EOF.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 13:39:42 1999  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/telnet.rb: version 0.231.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 10:58:22 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): debug print removed.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 09:58:15 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* many files: clean up unused variables found by gcc -Wall.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: better cygwin support etc.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 01:37:50 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): the type of local variable `c'</div><div class='add'>+	  should be int, not char.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse): should always return copy.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 23:25:57 1999  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: better display &amp; frame treatment.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 21:16:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_each): returns self for normal termination;</div><div class='add'>+	  returns nil for break.</div><div class='add'>+</div><div class='add'>+	* string.c: non bang methods (e.g. String#sub) should always</div><div class='add'>+	  return copy of the receiver.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 21:09:15 1999  Masaki Fukushima  &lt;fukusima@goto.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (find_file): do not add empty string to the path.</div><div class='add'>+</div><div class='add'>+	* configure.in (with-search-path): should not add empty string if</div><div class='add'>+	  the option is not supplied.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 17:49:08 1999  Ryo HAYASAKA  &lt;hayasaka@univ21.u-aizu.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: move `#include "ruby.h"' forward.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 16:54:16 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.3.5 - version 1.4 alpha</div><div class='add'>+</div><div class='add'>+Wed Jul 14 23:45:33 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init): initialize for the first time only.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 00:15:19 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_index): re-defined; method to retrieve a key</div><div class='add'>+	  from the value.</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): member? should be re-defined for Hash.</div><div class='add'>+</div><div class='add'>+Tue Jul 12 13:54:51 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_sysopen): wrong number of argument.</div><div class='add'>+</div><div class='add'>+Mon Jul 12 11:52:35 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_missing): class name included in message.</div><div class='add'>+</div><div class='add'>+	* eval.c (print_undef): better error message.</div><div class='add'>+</div><div class='add'>+Sun Jul 11 05:36:17 1999  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: patch to show proper position.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 23:56:14 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): path conv. moved to conv_to_posix_path.</div><div class='add'>+</div><div class='add'>+	* dln.c (conv_to_posix_path): path conv. should be done.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 10:26:47 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (RANDOM_NUMBER): should place parentheses.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 11:00:51 1999  Shugo Maeda  &lt;shugo@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_div): division may be out of fixnum range.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): proper sign calculation to result.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 18:27:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_delete_safe): was modifying wrong slot.</div><div class='add'>+</div><div class='add'>+Mon Jul  5 13:17:46 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): close all files at exit.</div><div class='add'>+</div><div class='add'>+Fri Jul  2 18:00:21 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/Mail/README: Mail-0.3.0 added to the distribution.</div><div class='add'>+</div><div class='add'>+Fri Jul  2 01:45:32 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): avoid allocation of register</div><div class='add'>+	  variables for each invocation of re_match().  Suggested by</div><div class='add'>+	  Zasukhin Ruslan &lt;ruslan@paradigmasoft.com&gt;.  Thanks.</div><div class='add'>+</div><div class='add'>+Tue Jun 29 20:39:24 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkVariable): bug fix; should value type check</div><div class='add'>+	  be added?</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): a bug in paragraph mode.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): shifted too much to skip #!.</div><div class='add'>+</div><div class='add'>+Tue Jun 29 06:50:21 1999  Wakou Aoyama  &lt;wakou@fsinet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/CGI.rb: 0.30 - cleanup release, incompatible.</div><div class='add'>+</div><div class='add'>+	* lib/telnet.rb: 0.22 - timeout added.</div><div class='add'>+</div><div class='add'>+Tue Jun 29 10:49:25 1999  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: better Rhapsody support.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: Rhapsody/NEXTSTEP support.</div><div class='add'>+</div><div class='add'>+Tue Jun 29 01:42:13 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chld_changed): should use POSIX.1 style wait.</div><div class='add'>+</div><div class='add'>+Mon Jun 28 21:07:36 1999  KIMURA Koichi  &lt;kbk@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.nt: wrong result for have_library().</div><div class='add'>+</div><div class='add'>+Mon Jun 28 15:24:05 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/isinf.c: OSF/1 raises SIGFPE on one()/zero().</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): should search til EOS, for patterns may</div><div class='add'>+	  match beyond the end of range.</div><div class='add'>+</div><div class='add'>+Mon Jun 28 12:49:12 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): should not accept Time objects as an</div><div class='add'>+	  argument for it is time interval.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_sleep): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (test_s): should return nil for false condition.</div><div class='add'>+</div><div class='add'>+Mon Jun 28 12:23:52 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_dbl2big): typo.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_crypt): wrong message.</div><div class='add'>+</div><div class='add'>+Sun Jun 27 19:50:11 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_exit): should have treat signed integer status, not</div><div class='add'>+	  VALUE.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_exit_bang): should work like exit().</div><div class='add'>+</div><div class='add'>+Sun Jun 27 16:21:32 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): wrong position to search.</div><div class='add'>+</div><div class='add'>+Sat Jun 26 04:05:30 1999  Takaaki Tateishi  &lt;ttate@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (configure_args): --with-search-path to specify</div><div class='add'>+	  additional ruby search path.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): additional search path.</div><div class='add'>+</div><div class='add'>+Fri Jun 25 13:09:12 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): needed to initialize natint.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): add start_paren to avoid too much</div><div class='add'>+	  finalization on maybe_finalize_jump.</div><div class='add'>+</div><div class='add'>+Fri Jun 25 13:07:20 1999  Koji Oda  &lt;oda@bsd1.qnes.nec.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/isinf.c: include "config.h" added.</div><div class='add'>+</div><div class='add'>+Fri Jun 25 07:25:05 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: initialize $(topdir).</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install_rb): install lib/*.rb properly.</div><div class='add'>+</div><div class='add'>+	* configure.in (linux): specifies -rpath on --enable-shared.</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): ruby.imp must reside in $(topdir).</div><div class='add'>+</div><div class='add'>+Thu Jun 24 19:11:29 1999  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_str_extend): multi-byte identifier in expression</div><div class='add'>+	  interpolation in strings.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): support multi-byte char identifiers.</div><div class='add'>+</div><div class='add'>+Thu Jun 24 15:27:13 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg): check duplicate argument names.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): marking wrong member for NODE_ARGS.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): POSITION specifies start point, not</div><div class='add'>+	  end point.</div><div class='add'>+</div><div class='add'>+Thu Jun 24 13:00:17 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (print_mbc): wrong boundary.</div><div class='add'>+</div><div class='add'>+	* pack.c (uv_to_utf8): raises ArgError for too big value.</div><div class='add'>+</div><div class='add'>+Thu Jun 24 11:02:51 1999  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (uv_to_utf8): mask needed.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 21:03:56 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (struct RFile): remove iv_tbl from struct. instance</div><div class='add'>+	  variables are handled as generic ivs.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 22:06:26 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (utf8_to_uv): pack to 7 bytes sequence.</div><div class='add'>+</div><div class='add'>+	* pack.c (uv_to_utf8): wrong boundary.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): should treat as unsigned long.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 15:10:11 1999  Inaba Hiroto  &lt;inaba@sdd.tokyo-sc.toshiba.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): failed to parse nested braces.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): nested braces within #{} available.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 11:18:38 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (slow_search): wrong shift width for mbcs.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context): should not clear th-&gt;locals.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 02:06:14 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): UMINUS binds too tight with digits. changed so</div><div class='add'>+	  that -2**2 =&gt; -4.</div><div class='add'>+</div><div class='add'>+	* parse.y (close_paren): `do' for expr termination now works it</div><div class='add'>+	  used to be.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 18:26:42 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): should initialize local variable `j'.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 15:24:59 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): a bug for multiline heredoc.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 15:06:36 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_socket): forgot to return fd</div><div class='add'>+	  explicitly.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 13:34:12 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h (MakeOpenFile): should initialize member `iv_tbl'.</div><div class='add'>+</div><div class='add'>+Wed Jun 22 10:35:51 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets_internal): getc(3) may not set errno on</div><div class='add'>+	  interrupt.</div><div class='add'>+</div><div class='add'>+Mon Jun 21 22:39:28 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_required_libraries): ruby_sourceline should be</div><div class='add'>+	  cleared before loading libraries.</div><div class='add'>+</div><div class='add'>+	* io.c (set_stdin): do not use reopen(), so that we don't need to</div><div class='add'>+	  dup original stdin before assigning $stdin.</div><div class='add'>+</div><div class='add'>+Mon Jun 21 18:04:27 1999  Ryo HAYASAKA  &lt;hayasaka@univ21.u-aizu.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: include &lt;cdefs.h&gt; for solaris 2.6.</div><div class='add'>+</div><div class='add'>+Mon Jun 21 15:59:47 1999  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ip_addrsetup): forgot to put `else'.</div><div class='add'>+</div><div class='add'>+Mon Jun 21 15:38:37 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): remove rb_syswait() invocation to avoid</div><div class='add'>+	  wait4(2) within GC.  rb_syswait() moved to rb_io_fptr_close().</div><div class='add'>+</div><div class='add'>+Mon Jun 21 12:05:59 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): remove MAXPATHLEN restriction.</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c (md5_hexdigest): should have used "%02x".</div><div class='add'>+</div><div class='add'>+Sun Jun 20 19:50:38 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): should have checked string</div><div class='add'>+	  boundary.</div><div class='add'>+</div><div class='add'>+Sat Jun 19 22:24:12 1999  Kenji Nagasawa  &lt;kenn@hma.att.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* OS/2 patch improved.</div><div class='add'>+</div><div class='add'>+Fri Jun 18 08:30:17 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): add data length check.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (_timer_for_tcl): was doing busy-wait.</div><div class='add'>+</div><div class='add'>+Tue Jun 15 10:01:21 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove trailing slash from interpreter embedded</div><div class='add'>+	  shared library path.</div><div class='add'>+</div><div class='add'>+	* configure.in (INSTALL_DLLIB): install shared lib with 0555.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: changed mode for shared library into 0555.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 23:27:00 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_passwd): should return nil, not exception for</div><div class='add'>+	  call after last passwd entry.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 15:21:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_locations): add safety margin 1.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): should protect toplevel node tree.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_group): dumps core if there's no more group.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 01:50:25 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): Init_stack() was called too late; local</div><div class='add'>+	  variables happened to be higher (or lower) than stack_start.</div><div class='add'>+</div><div class='add'>+Thu Jun 10 16:41:48 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: do not call `initialize' for IO objects.  So with Array,</div><div class='add'>+	  Hash, Range, and Time objects.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_getch): made thread aware using</div><div class='add'>+	  rb_read_check().</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_getch): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_getstr): made (partially) thread</div><div class='add'>+	  aware using rb_read_check().</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_getstr): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_read_check): new function to help making something</div><div class='add'>+	  (like extension libraries) thread aware.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): `defined? super' should be true even for</div><div class='add'>+	  private superclass methods.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 13:42:10 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): template `Z' should be allowed.</div><div class='add'>+</div><div class='add'>+Wed Jun  9 13:26:38 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_loading): modified to avoid nested race</div><div class='add'>+	  condition of require().</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_invoke): queue invocation on non</div><div class='add'>+	  main threads.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_mainloop): flush invocation</div><div class='add'>+	  queues periodically.</div><div class='add'>+</div><div class='add'>+	* version.c (ruby_show_version): now print the message to stdout.</div><div class='add'>+</div><div class='add'>+	* version.c (ruby_show_copyright): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun  8 00:00:34 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): append sentinel (NUL) to the string.</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c (md5_hexdigest): new method to obtain</div><div class='add'>+	  printable hash string.</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c (md5_update): should return self.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): undocumented template 'U' for UTF8.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): should replace getc() with rb_getc().</div><div class='add'>+</div><div class='add'>+	* io.c (rb_getc): getc() replacement uses READ_DATA_PENDING() and</div><div class='add'>+	  rb_thread_wait_fd().</div><div class='add'>+</div><div class='add'>+Mon Jun  7 23:23:38 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_clone): should call CLOSESETUP().</div><div class='add'>+</div><div class='add'>+	* eval.c (bind_clone): should call CLONESETUP() for new clone.</div><div class='add'>+</div><div class='add'>+Sat Jun  5 10:32:40 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_oct): binary (e.g. 0b10111) support.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): raise warning, not exception.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): initialize parser internal variables.</div><div class='add'>+</div><div class='add'>+	* parse.y (close_paren): set lex_state to EXPR_PAREN after closing</div><div class='add'>+	  parenthesis.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): returns kDO for `do' right after method_call.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 11:05:30 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (read_backslash): should decode \b within class.</div><div class='add'>+</div><div class='add'>+Thu Jun  3 01:06:18 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): AIX improvement (aix_findmain removed).</div><div class='add'>+</div><div class='add'>+Wed Jun  2 00:41:31 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): new undocumented template Z which strips</div><div class='add'>+	  stuff after first null.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): should preserve specified length of the</div><div class='add'>+	  resulting string.</div><div class='add'>+</div><div class='add'>+Tue Jun  1 15:29:33 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_socket): retry after GC, if socket(2)</div><div class='add'>+	  failed on EMFILE or ENFILE.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_socketpair): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (module_setup): need to add PUSH_VAR/POP_VAR to clear</div><div class='add'>+	  dyna vars link list.</div><div class='add'>+</div><div class='add'>+	* version.h (RUBY_RELEASE_CODE): integer macro constant for source</div><div class='add'>+	  version detection.</div><div class='add'>+</div><div class='add'>+Sun May 30 22:19:12 1999  Kenji Nagasawa  &lt;kenn@tcp-ip.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: emx/gcc 0.9d now fixes things about</div><div class='add'>+	  AF_UNIX.</div><div class='add'>+</div><div class='add'>+	* process.c: OS/2 EMX kludge.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (strncasecmp.o): added dependency.</div><div class='add'>+</div><div class='add'>+Mon May 31 16:06:28 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.3.4 - preliminary release for 1.4</div><div class='add'>+</div><div class='add'>+Mon May 31 15:57:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_close): close on IO which main_thread is</div><div class='add'>+	  waiting cause serious exception, that vanishes the actual fd</div><div class='add'>+	  closing.  Invocation of rb_thread_fd_close() is deferred</div><div class='add'>+	  a little.</div><div class='add'>+</div><div class='add'>+Sat May 29 18:27:13 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): stack boundary check needed.</div><div class='add'>+</div><div class='add'>+Sat May 29 12:27:00 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_invoke): proper ref count management</div><div class='add'>+	  to avoid leak.  I HATE REF COUNTING!!</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): moved ruby_require_libraries() to handle `-r'</div><div class='add'>+	  from ruby_options() to avoid stack corruption for threads</div><div class='add'>+	  created in libraries.</div><div class='add'>+</div><div class='add'>+Sat May 29 02:22:12 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): when `for' appeared in blocks, it</div><div class='add'>+	  introduced new scope for local variables.</div><div class='add'>+</div><div class='add'>+Fri May 28 17:16:49 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): squeeze AND of the arguments.</div><div class='add'>+	  UNDOCUMENTED.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): new UNDOCUMENTED method.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): delete AND of the arg ranges.</div><div class='add'>+	  UNDOCUMENTED FEATURE for 1.3.x.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setipaddr): re-wrote using ip_addrsetup().</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ip_addrsetup): decode symbolic address</div><div class='add'>+	  &lt;broadcast&gt;.</div><div class='add'>+</div><div class='add'>+Thu May 27 12:27:42 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should handle NUL (\0) within strings.</div><div class='add'>+</div><div class='add'>+Tue May 25 16:45:11 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): syscall may return values other than zero</div><div class='add'>+	  on success.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): handle empty loop properly (hopefully).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): remove empty group check, because it does</div><div class='add'>+	  not help non-grouping parentheses (?:..).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): treating try_next, finalize_push</div><div class='add'>+	  wrong way.</div><div class='add'>+</div><div class='add'>+	* regex.c: remove some obsolete functions such as</div><div class='add'>+	  group_match_null_string_p().</div><div class='add'>+</div><div class='add'>+Mon May 24 14:47:54 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (read_backslash): read backslash by regex.</div><div class='add'>+</div><div class='add'>+Sun May 23 19:44:58 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (getDevice): portability patch.</div><div class='add'>+</div><div class='add'>+Fri May 21 23:01:26 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (GET_AI): should set error code.</div><div class='add'>+</div><div class='add'>+Thu May 20 03:43:44 1999  Jun-ichiro itojun Hagino  &lt;itojun@itojun.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: you should use sockaddr_storage to handle</div><div class='add'>+	  IPv6 addresses.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (getaddrinfo): prevent retrieving</div><div class='add'>+	  AF_INET6 address if hints.ai_flags == AI_PASSIVE.</div><div class='add'>+</div><div class='add'>+Wed May 19 12:27:07 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_end_proc): should protect exceptions.</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_rest_arg): allow just * for rest arg.</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_basic): allow * without formal argument.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): the variable `part' should be initialized.</div><div class='add'>+</div><div class='add'>+Tue May 18 15:25:45 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): a bug in range adjustment.</div><div class='add'>+</div><div class='add'>+Tue May 18 11:35:59 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (conv_to_posix_path): path_len argument added.</div><div class='add'>+</div><div class='add'>+Mon May 17 12:26:31 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rev): should treat Fixnum as signed long.</div><div class='add'>+</div><div class='add'>+	* eval.c (massign): add strict number check for yield (and call).</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_arity): new method to return number of arguments.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_arity): new method to return number of arguments.</div><div class='add'>+</div><div class='add'>+	* parse.y (read_escape): char may be unsigned.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): methods `&amp;', `|', `^' are added to nil.</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): it should be OK for [0..-len-1].</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): search for byte literal within mbcs.</div><div class='add'>+</div><div class='add'>+	* regex.c (is_in_list): parsh</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): should have not alter the loop</div><div class='add'>+	  variable `j' if TRASLATE_P().</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): escaped characters should be read</div><div class='add'>+	  by PATFETCH_RAW(c).</div><div class='add'>+</div><div class='add'>+Sat May 15 11:23:51 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): endline2 (\Z) should not match at the point</div><div class='add'>+	  between a newline and end-of-line, like endline ($).</div><div class='add'>+</div><div class='add'>+	* class.c (include_class_new): should initialize iv_tbl to share</div><div class='add'>+	  between module and iclass.</div><div class='add'>+</div><div class='add'>+Fri May 14 08:50:27 1999  Akira Endo  &lt;akendo@t3.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): it should be k != 0 to skip.</div><div class='add'>+</div><div class='add'>+Fri May 14 12:46:56 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_load): a bug in old marshal format support.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: make site_ruby directory.</div><div class='add'>+</div><div class='add'>+Fri May 14 10:18:02 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): a bug in inline `.*' etc.</div><div class='add'>+</div><div class='add'>+Fri May 14 09:58:46 1999  Minero Aoki  &lt;aamine@dp.u-netsurf.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (addpath): should have specified string length.</div><div class='add'>+</div><div class='add'>+Thu May 13 10:40:44 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string_wrap): new function.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): POSIX line match should alter</div><div class='add'>+	  behavior for `^' and `$' to begbuf and endbuf2 respectively.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: un-ANSI-fy function arguments.</div><div class='add'>+</div><div class='add'>+Wed May 12 14:19:38 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (iv_get): in case of inheritance of generated struct</div><div class='add'>+	  class, __member__ and __size__ should also be inherited.</div><div class='add'>+	  Thanks for Pros Yeboah &lt;yeboah@tu-harburg.de&gt;.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_gets_internal): should check number of arguments</div><div class='add'>+	  before checking rb_rs == rb_default_rs.  Thanks for Koji Arai</div><div class='add'>+	  &lt;JCA02266@nifty.ne.jp&gt;.</div><div class='add'>+</div><div class='add'>+Tue May 11 08:29:28 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): .?, .+ did not work.</div><div class='add'>+</div><div class='add'>+Mon May 10 00:59:33 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb: forgot to squeeze on reverse (complement) case.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_squeeze): should not set modify flag to be honest,</div><div class='add'>+	  if the string is not modified.</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal): SIGTERM should not be handled.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): seeking for longest match is now optional,</div><div class='add'>+	  which can be set using RE_OPTION_POSIXMATCH.  This satisfies</div><div class='add'>+	  POSIX longest match as much as Emacs's posix-* functions, which</div><div class='add'>+	  are known to be incomplete.</div><div class='add'>+</div><div class='add'>+Sun May  9 13:04:01 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getaddrinfo): conversion from</div><div class='add'>+	  Fixnums to C integers needed.</div><div class='add'>+</div><div class='add'>+Sun May  9 11:51:43 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eqq): reverse condition.</div><div class='add'>+</div><div class='add'>+	* range.c (range_s_new): default should be end inclusive.</div><div class='add'>+</div><div class='add'>+Sat May  8 03:27:51 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (thread_connect): replace nasty</div><div class='add'>+	  rb_thread_fd_writable() with rb_thread_select().</div><div class='add'>+</div><div class='add'>+Fri May  7 20:49:00 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (inet_pton): wrong parameter to</div><div class='add'>+	  inet_aton().</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h (__P): silly cut and paste typo.</div><div class='add'>+</div><div class='add'>+Fri May  7 17:03:57 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob): removed GPL'ed glob.c completely.</div><div class='add'>+</div><div class='add'>+Fri May  7 08:17:19 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/extconf.rb: sdbm extension added to the distribution.</div><div class='add'>+</div><div class='add'>+Fri May  7 01:42:20 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_s_gethostbyname): avoid using struct</div><div class='add'>+	  sockaddr_storage.</div><div class='add'>+</div><div class='add'>+Thu May  6 13:21:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_indexes): should not use rb_ary_concat().</div><div class='add'>+</div><div class='add'>+Thu May  4 12:34:18 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): there should be newline escape by</div><div class='add'>+	  backslashes in strings.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_qstring): ditto.</div><div class='add'>+</div><div class='add'>+Mon May  3 04:37:20 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: better search for libX11.</div><div class='add'>+</div><div class='add'>+	* range.c (range_s_new): embarrassing =/== typo.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): failed to set default kcode.</div><div class='add'>+</div><div class='add'>+Mon May  3 02:39:55 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (open_inet): typo (res and res0).</div><div class='add'>+</div><div class='add'>+Tue May  4 02:07:49 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: leave undefined $(VARIABLE) unexpanded in the</div><div class='add'>+	  Config::CONFIG hash table.</div><div class='add'>+</div><div class='add'>+Mon May  3 09:37:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): expand exactn{n} at compile time.</div><div class='add'>+	  handles stop_paren specially.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): expand x{n} at compile time.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): posix line match should be checked.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): a bug in anchor condition.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 18:57:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.3.3</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): position should be END point, not</div><div class='add'>+	  START point.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): pos means end point on reverse now.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_s_create): should clear ary-&gt;ptr to avoid</div><div class='add'>+	  potential gc crash.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 15:24:58 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h: compatibility hack for ipv4.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: itojun's ipv6 patches applied.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: detect ipv6 features based on itojun's</div><div class='add'>+	  ipv6 patches.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (enable_config): can handle --enable-xxx now.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (enable_config): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 30 05:22:23 1999  Shugo Maeda  &lt;shugo@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): last index should not append.</div><div class='add'>+</div><div class='add'>+Thu Apr 29 18:55:31 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (conv_to_posix_path): remove const from args.</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangle): remove Fatal(), the obsolete function.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 14:11:45 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (fname): lazy workaround for keywords did not work well.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: `--with-xxx=yyy' argument configuration.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: forgot to handle $`.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: better AIX link support proposed by</div><div class='add'>+	  &lt;komatsu@sarion.co.jp&gt;.</div><div class='add'>+</div><div class='add'>+Mon Apr 26 16:46:59 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: AIX shared library support modified.</div><div class='add'>+</div><div class='add'>+	* ext/aix_mksym.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): should allocate proper sized buffer</div><div class='add'>+	  for float numbers.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 00:00:16 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (operation): syntax like `a.[]=(1,2)' is allowed.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 23:54:09 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_binmode): binmode method added to ARGF.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 13:55:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_f_chomp): should assign the result to $_.  or maybe</div><div class='add'>+	  sub/gsub/chop/chomp should NOT assign $_ altogether.</div><div class='add'>+</div><div class='add'>+Thu Apr 22 16:50:54 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): call scope_dup() for all scopes in</div><div class='add'>+	  the interpreter stack.</div><div class='add'>+</div><div class='add'>+Tue Apr 20 11:24:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): `#' should be escaped.</div><div class='add'>+</div><div class='add'>+Tue Apr 20 02:32:42 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): option /p for posix match added.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): did not print options properly.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_s_open): initialize was called twice.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 18:56:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (DEFAULT_KCODE): can specify default code for</div><div class='add'>+	  $KCODE by --with-default-kcode=(euc|sjis|utf8|none).</div><div class='add'>+</div><div class='add'>+	* regex.c (IS_A_LETTER): a byte sequence shorter than mbc should</div><div class='add'>+	  not match with \w etc.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 13:49:11 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): should restore ruby_dyna_vars.</div><div class='add'>+</div><div class='add'>+Fri Apr 16 21:40:43 1999  Nobuyoshi Nakada  &lt;gea02117@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_backquote): pipe_open may return nil.</div><div class='add'>+</div><div class='add'>+	* io.c (f_open): rb_io_open may return nil.</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_foreach): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_readlines): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_defset): wrong message.</div><div class='add'>+</div><div class='add'>+Fri Apr 16 15:09:20 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str2inum): strtoul() returns long, not int.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): size of VALUE and ID may be different.</div><div class='add'>+</div><div class='add'>+	* util.c (mmprepare): int is too small to cast from pointers.</div><div class='add'>+</div><div class='add'>+	* config.guess: avoid 'linux-gnu' for alpha-unknown-linux.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 23:46:20 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangle): mangle path by RUBYLIB_PREFIX.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 23:52:51 1999  SHIROYAMA Takayuki  &lt;psi@fortune.nest.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_LMASK): should be long to avoid overflow.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 13:14:35 1999  Katsuyuki Komatsu  &lt;komatsu@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: AIX dynamic link.</div><div class='add'>+</div><div class='add'>+	* ext/aix_ld.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 12:19:09 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: Queue#{enq,deq} added.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 17:43:56 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): Hash::[] acts more like casting.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 00:33:52 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_stdio_set): warning for assignment to the variables</div><div class='add'>+	  $std{in,out,err}.</div><div class='add'>+</div><div class='add'>+Mon Apr 12 23:12:32 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): check for reopening same IO.</div><div class='add'>+</div><div class='add'>+Fri Apr  9 17:45:11 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_compile_string): bug for nested eval().</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): should pop non-greedy stack items on</div><div class='add'>+	  failure, after best_regs are fixed.</div><div class='add'>+</div><div class='add'>+Thu Apr  8 17:30:40 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (PACK_LENGTH_ADJUST): need to adjust for `*' length.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 23:28:44 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (void_check): add void context checks.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 12:23:42 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_at): should copy gmt-mode.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval_node): preserve ruby_eval_tree.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 14:00:34 1999  NAKAMURA, Hiroshi  &lt;nakahiro@sarion.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: wrong command interpreting.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 11:46:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.3.2</div><div class='add'>+</div><div class='add'>+Fri Apr  2 10:40:04 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): forgot to define IO::pipe.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 14:40:46 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): modified for rhs change.</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): unparenthesisized method calls can be right hand</div><div class='add'>+	  side expression of the assignment.</div><div class='add'>+</div><div class='add'>+Sat Mar 27 22:42:47 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_kconv): check size output_ctr before</div><div class='add'>+	  decrement.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 09:11:03 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_at): preserve gmt-mode for result.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_compile_string): do not use cur_mid, use</div><div class='add'>+	  compile_for_eval instead.</div><div class='add'>+</div><div class='add'>+	* st.c (PTR_NOT_EQUAL): wrong logical condition.</div><div class='add'>+</div><div class='add'>+Wed Mar 24 13:06:43 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): should clear cur_mid after compilation.</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): need to check type for ARGV.shift.</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_copy_prev): need to preserve outer scope as well as</div><div class='add'>+	  outer frames.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_compile_string): return can appear within eval().</div><div class='add'>+</div><div class='add'>+Tue Mar 23 10:15:07 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: AC_C_CONST check added.</div><div class='add'>+</div><div class='add'>+Tue Mar 23 02:07:35 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): preserve gmt-mode for result.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 01:32:37 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): adjust line numbers before expression</div><div class='add'>+	  interpolation within strings.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): defined? returns nil for false condition.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_nonzero_p): returns nil for false condition.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 13:07:43 1999  Keiju Ishitsuka  &lt;keiju@rational.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb: avoid leak for two weakrefs for one object.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 11:26:45 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): needed to eval END{} on exit.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exit): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 02:17:27 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal): handles terminating signals HUP, TERM,</div><div class='add'>+	  QUIT, PIPE, etc.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 15:47:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_and): bug in sign calculation.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_or): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): forgot to use to_io to retrieve IO, after</div><div class='add'>+	  calling select(2).</div><div class='add'>+</div><div class='add'>+Tue Mar 16 19:54:31 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: static linking cause infinite make loop.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 18:50:04 1999  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_s_gethostbyname): typo, not NUM2INT(),</div><div class='add'>+	  but INT2NUM().</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (mkhostent): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 12:31:44 1999  Ryo HAYASAKA  &lt;hayasaka@cheer.u-aizu.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (utime_internal): suppress warning by const.</div><div class='add'>+</div><div class='add'>+	* time.c (time_gmtime): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 10:23:05 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_clone): Time object can be cloned.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 03:13:10 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): argv[argc] should be NULL.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 22:12:08 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): typo in arg_num check at exit.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 16:42:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_dup): dup2 should copy class too.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 15:12:53 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: install program relative path check.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 14:05:25 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_new): 2nd argument is now option.</div><div class='add'>+	  Regexp::EXTENDED can be specified.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 10:47:49 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): str.index("") should always match at</div><div class='add'>+	  offset point.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): can specify end point exclusion.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): negative offset.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): begline should not match at the point</div><div class='add'>+	  between a newline and end-of-string.  endline neither.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): context_indep_anchors .</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): need not to push backslashes before</div><div class='add'>+	  escaped characters.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): re-raises exception within target.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 01:09:36 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_vi_editing_mode): wrong</div><div class='add'>+	  number of arguments.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 02:12:50 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (PACK_ITEM_ADJUST): "a".unpack("C3") =&gt; [97, nil, nil]</div><div class='add'>+</div><div class='add'>+Thu Mar 11 18:23:50 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): UDPsocket was omitted.</div><div class='add'>+</div><div class='add'>+Thu Mar 11 16:43:30 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (PACK_LENGTH_ADJUST): push fixed number of items per</div><div class='add'>+	  template to result array.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): I/N/C etc. push nil in the array for "".</div><div class='add'>+</div><div class='add'>+Tue Mar  9 00:19:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_unsetenv): use ruby_setenv(name, 0).</div><div class='add'>+</div><div class='add'>+	* hash.c (env_delete): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): do not check `beg&lt;end' to generate</div><div class='add'>+	  strings for the pattern like "a".upto("#a").</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): treat strings as special case.</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): no longer use upto for generic cases.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 14:21:32 1999  IKARASHI Akira  &lt;ikarashi@itlb.te.noda.sut.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): wrong end point calculation.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 02:19:12 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_index): MatchingData#index(n) added.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): ary[n..-1] returns an sub-array unless</div><div class='add'>+	  n is too small negative index.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match_method): Regexp#match(str) added.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_indexes): understands ranges as indexes.</div><div class='add'>+</div><div class='add'>+	* re.c (match_size): MatchingData#size added.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 01:04:57 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): modified for range.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aset): a[n..m] revisited.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 14:23:29 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subseq): a[n..m] revisited.</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): allow Const::method{}.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace_method): should replace original array.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 02:30:22 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove --disable-thread, thread feature is no</div><div class='add'>+	  longer optional.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 00:32:17 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (read_escape): wrong arguments for scan_oct,scan_hex.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 11:51:53 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): rename class names as</div><div class='add'>+	  TCPsocket -&gt; TCPSocket etc.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 19:46:42 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LDSHARED): use gcc -Wl,-G for solaris with gcc.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 17:04:19 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): backslashes do not concatenate comment lines</div><div class='add'>+	  anymore.</div><div class='add'>+</div><div class='add'>+Mon Mar  1 14:05:12 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): adjust argv for optional arguments.  super</div><div class='add'>+	  without arguments emit superclass method with the value from</div><div class='add'>+	  optional arguments.  enabled as experiment.</div><div class='add'>+</div><div class='add'>+Sun Feb 28 14:04:07 1999  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): backslash at the eof cause infinite loop</div><div class='add'>+</div><div class='add'>+Sun Feb 28 11:01:26 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): month range check added.</div><div class='add'>+</div><div class='add'>+Sat Feb 27 02:36:05 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): add escape as alias of quote.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): char-code can be specified now.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 18:45:36 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): bug for error message with newlines.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 12:00:04 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): future check modified to allow 1969-12-31</div><div class='add'>+	  at certain timezone.</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): year &gt;= 1000 should be past.</div><div class='add'>+</div><div class='add'>+	* version.c (Init_version): constant RELEASE_DATE added.</div><div class='add'>+</div><div class='add'>+Fri Feb 26 01:08:30 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): returns nil for out-of-range access.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): returns nil for out-of-range access.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_store): negative index message has changed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): reallocation needed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): allow char append to the string.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 23:30:17 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_load): tm_year should be packed in 17 bits, not 18.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 12:50:25 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/dup2.c: replaced by public domain version.</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): add `future check' in loops.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_num2dbl): forbid implicit conversion from nil, or</div><div class='add'>+	  strings.  thus `Time.now + str' should raise error.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Float): convert nil into 0.0.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): conversion method improved.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 03:27:50 1999  Shugo Maeda  &lt;shugo@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): should handle T_ICLASS properly.</div><div class='add'>+</div><div class='add'>+Thu Feb 25 00:04:00 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): global function Exception() removed.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class2name): returns "nil"/"true"/"false" for them.</div><div class='add'>+</div><div class='add'>+	* time.c (time_dump): time marshaling format compressed size from</div><div class='add'>+	  11 bytes to 8 bytes.  thanx to tadf@kt.rim.or.jp.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_call_init): should specify arguments explicitly.</div><div class='add'>+</div><div class='add'>+Wed Feb 24 15:43:28 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): comment concatenation requires preceding space</div><div class='add'>+	  before backslash at the end of line.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_pipe): global pipe is obsolete now.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove true.to_i, false.to_i.</div><div class='add'>+</div><div class='add'>+Tue Feb 23 14:21:41 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): warn if identifier! immediately followed by `='.</div><div class='add'>+</div><div class='add'>+Tue Feb 23 12:32:41 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): tilde expansion moved to find_file.</div><div class='add'>+</div><div class='add'>+	* eval.c (find_file): tilde expansion added.</div><div class='add'>+</div><div class='add'>+Tue Feb 23 10:50:20 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (require_method): require can handle multiple fnames.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_foreach_iter): hash key may be nil.</div><div class='add'>+</div><div class='add'>+Mon Feb 22 17:44:02 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): should not pop failure point on success for</div><div class='add'>+	  non-greedy matches.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): remove global_functions getc, readchar, ungetc,</div><div class='add'>+	  seek, tell, rewind.</div><div class='add'>+</div><div class='add'>+Sat Feb 20 22:54:26 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2long): no implicit conversion from boolean.</div><div class='add'>+</div><div class='add'>+Sat Feb 20 09:58:42 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): portable Infinity and NaN support.</div><div class='add'>+</div><div class='add'>+Sat Feb 20 07:13:31 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_sysopen): forgot to initialize a local variable.</div><div class='add'>+</div><div class='add'>+Fri Feb 19 23:05:07 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subseq): range check changed.</div><div class='add'>+</div><div class='add'>+	* marshal.c: increment MARSHAL_MINOR for Time format change.</div><div class='add'>+</div><div class='add'>+	* time.c (time_old_load): support old marshal format.</div><div class='add'>+</div><div class='add'>+	* time.c (time_load): changed for new format Y/M/D/h/m/s/usec.</div><div class='add'>+</div><div class='add'>+	* time.c (time_dump): marshal dump format has changed.</div><div class='add'>+</div><div class='add'>+Fri Feb 19 00:25:57 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): should reject "sep\0" and such.</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): Time#+ should not receive Time object</div><div class='add'>+	  operand.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): negative length raises exception now.</div><div class='add'>+</div><div class='add'>+	* array.c (beg_len): if end == -1, it points end of the array.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): negative length raises exception now.</div><div class='add'>+</div><div class='add'>+Thu Feb 18 20:57:04 1999  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime): strftime() may return 0 on success too.</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): `\0' within format string should not be</div><div class='add'>+	  omitted in the result.</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime): zero length format.</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_a): yday start with 1 now.</div><div class='add'>+</div><div class='add'>+	* time.c (time_zone): support for long timezone name.</div><div class='add'>+</div><div class='add'>+	* time.c (time_yday): yday start with 1 now.</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): minus calculation was wrong.</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): sec, usec should be at least `long', maybe</div><div class='add'>+	  they should be `time_t'.</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus): addition with float was wrong.</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): support for long timezone name.</div><div class='add'>+</div><div class='add'>+	* time.c (time_gm_or_local): too far future check moved.</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): treat 2 digit year as 69-99 =&gt; 1969-1999,</div><div class='add'>+	  00-68 =&gt; 2000-2068</div><div class='add'>+</div><div class='add'>+Thu Feb 18 03:56:47 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/fnmatch.c: moved to missing directory.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 16:22:26 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_alloc): actual initialization now be done in</div><div class='add'>+	  `initialize'.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 09:47:15 1999  okabe katsuyuki  &lt;hgc02147@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): use mbclen() instead of ismbchar().</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): should handle mbchars properly.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 01:25:26 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): stop comment concatenation by backslash follows</div><div class='add'>+	  after &gt;= 0x80 char.  may cause problem with Latin chars.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): exception in rb_obj_as_string() caused</div><div class='add'>+	  SEGV. protect it by PUSH_TAG/POP_TAG.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_exception): `Exception#exception' should return self.</div><div class='add'>+</div><div class='add'>+Wed Feb 17 01:12:22 1999  Hirotaka Ichikawa  &lt;hirotaka.ichikawa@tosmec.toshiba.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: BeOS patch.</div><div class='add'>+</div><div class='add'>+Tue Feb 16 14:25:00 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): should reallocate mbc space for</div><div class='add'>+	  character class unless current_mbctype is ASCII.</div><div class='add'>+</div><div class='add'>+Mon Feb 15 15:48:30 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: specify `-Wl,-E' only for GNU ld.</div><div class='add'>+</div><div class='add'>+Mon Feb 15 11:43:22 1999  GOTO Kentaro  &lt;gotoken@math.sci.hokudai.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_inspecting_p): should return Qfalse.</div><div class='add'>+</div><div class='add'>+Sun Feb 14 22:36:40 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): `%G' was omitted.</div><div class='add'>+</div><div class='add'>+Sun Feb 14 12:47:48 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): allow divide by zero on FreeBSD.</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): FloatDomainError added.</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_REPLACE_FUNCS): add checks for functions</div><div class='add'>+	  isinf, isnan, and finite.</div><div class='add'>+</div><div class='add'>+Sat Feb 13 01:24:16 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_create_0): should protect th-&gt;thread.</div><div class='add'>+</div><div class='add'>+Fri Feb 12 16:16:47 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): wrong mbc position.</div><div class='add'>+</div><div class='add'>+Fri Feb 12 16:21:17 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_fd_close):</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_close): tell scheduler that fd is closed.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (READ_CHECK): check if closed after thread context switch.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_close_read): do not check</div><div class='add'>+	  the return value from shutdown(2).</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_close_write): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_new): need to dup(fd) for close_read</div><div class='add'>+	  and close_write.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): handle newlines within #{}.</div><div class='add'>+</div><div class='add'>+	* regex.h: should replace symbols for ruby.</div><div class='add'>+</div><div class='add'>+Fri Feb 12 00:46:28 1999  Shugo Maeda  &lt;shugo@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object): should update the method name in message.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): limit should be converted into Fixnum.</div><div class='add'>+</div><div class='add'>+Wed Feb 10 15:20:03 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): empty pattern should not cause infinite</div><div class='add'>+	  pattern match loop.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): RE_OPTIMIZE_ANCHOR for /.*/, not</div><div class='add'>+	  for /(.|\n)/.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): `fixnum**nil' should raise TypeError.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): need to normalize results.</div><div class='add'>+</div><div class='add'>+Wed Feb 10 01:42:41 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): `(5**1).type' should be Integer.</div><div class='add'>+</div><div class='add'>+Tue Feb  9 01:22:49 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): do not ignore newlines in mbchars.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_s_open): mode can be specified by flags like</div><div class='add'>+	  open(2), e.g. File::open(path, File::CREAT|File::WRONLY).</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): bit-wise mode flags for pipes</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): bit flags for open.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 22:56:21 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): should not overwrite match data by</div><div class='add'>+	  regexp match within the block.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  6 03:06:17 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_getter): accessing $~ without matching caused SEGV.</div><div class='add'>+</div><div class='add'>+Fri Feb  5 22:11:08 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): binary literal support, like 0b01001.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): octal numbers can contain `_'s.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): warns if non-octal number follows immediately</div><div class='add'>+	  after octal literal.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): now need at least one digit after prefix such</div><div class='add'>+	  as 0x, or 0b.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_str2inum): recognize binary numbers like 0b0101.</div><div class='add'>+</div><div class='add'>+Fri Feb  5 03:26:56 1999  Yasuhiro Fukuma  &lt;yasuf@big.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -e without program prints error.</div><div class='add'>+</div><div class='add'>+Fri Feb  5 00:01:50 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (terms): needed to clear heredoc_end.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_div): allow float division by zero.</div><div class='add'>+</div><div class='add'>+Thu Feb  4 11:56:24 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/strtod.c: for compatibility.</div><div class='add'>+</div><div class='add'>+	* configure.in (strtod): add strtod compatible check.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2long): missing/vsnprintf.c does not support</div><div class='add'>+	  floating points.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 23:02:12 1999  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): use ismbchar() to get next char.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): wrong mbchar shift.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): needed to reset $KCODE after match.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_fastmap): mbchars should match with \w.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 22:35:12 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): too big float raise warning, not error.</div><div class='add'>+</div><div class='add'>+Tue Feb  2 23:41:42 1999  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): wrong boundary.</div><div class='add'>+</div><div class='add'>+	* regex.c (IS_A_LETTER): re_mbctab[c] may not be 1 for mbc.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): mbchar support for shifting ranges.</div><div class='add'>+</div><div class='add'>+	* regex.c (MBC2WC): wrong conversion.</div><div class='add'>+</div><div class='add'>+Wed Feb  3 15:03:16 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): need to escape parens if terminators are</div><div class='add'>+	  not any kind of parenthesis.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_qstring): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_string): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb  2 17:11:26 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): too small realloc condition.</div><div class='add'>+</div><div class='add'>+Mon Feb  1 10:01:17 1999  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): range check for the float literal.</div><div class='add'>+</div><div class='add'>+Sat Jan 30 18:34:16 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): -h option to show brief command description.</div><div class='add'>+</div><div class='add'>+Sat Jan 30 08:45:16 1999  IKARASHI Akira  &lt;ikarashi@itlb.te.noda.sut.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi-lib.rb: cookie support added.</div><div class='add'>+</div><div class='add'>+Sat Jan 30 13:38:24 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): mbchars should match with \w</div><div class='add'>+	  within character class.  Was matching with \W.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): \w should match with multi byte characters,</div><div class='add'>+	  not its first byte.</div><div class='add'>+</div><div class='add'>+Sat Jan 30 10:06:41 1999  Yoshida Masato  &lt;yoshidam@yoshidam.net&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_new): UTF-8 flag handle (/u, /U).</div><div class='add'>+</div><div class='add'>+	* re.c (rb_kcode): $KCODE handle for UTF-8.</div><div class='add'>+</div><div class='add'>+Sat Jan 30 01:51:16 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete_if): RTEST() missing.</div><div class='add'>+</div><div class='add'>+	* hash.c (delete_if_i): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (Init_Enumerable): select (=find_all), detect (=find)</div><div class='add'>+	  added as aliases.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 21:32:19 1999  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_f_setenv): SEGV caused by small typo.</div><div class='add'>+</div><div class='add'>+Fri Jan 29 00:15:58 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb (parsedate): support date format like</div><div class='add'>+	  23-Feb-93, which is required by HTTP/1.1.</div><div class='add'>+</div><div class='add'>+	* variable.c (find_class_path): avoid calling rb_iv_set().</div><div class='add'>+</div><div class='add'>+	* eval.c (backtrace): do not need to modify $SAFE internally.</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): inline __classid__ access.</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): needed to initialize wrapper.</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (makedirs): allows slash at the end of the path.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_fix_induced_from): ensure result to be Fixnum.</div><div class='add'>+</div><div class='add'>+Thu Jan 28 17:31:43 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): float format changed to "%16.10g".</div><div class='add'>+</div><div class='add'>+Thu Jan 28 02:13:11 1999  Yoshinori Toki  &lt;toki@freedom.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_store): expand allocated buffer by 3/2.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 17:50:02 1999  Kazuhiro HIWADA  &lt;hiwada@kuee.kyoto-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (dbl2big): raised error if double is too big to cast</div><div class='add'>+	  into long.  check added.</div><div class='add'>+</div><div class='add'>+Wed Jan 27 03:16:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_const_at): can't list constants of the</div><div class='add'>+	  untainted objects in safe mode.</div><div class='add'>+</div><div class='add'>+	* class.c (method_list): can't list methods of untainted objects</div><div class='add'>+	  in safe mode.</div><div class='add'>+</div><div class='add'>+Tue Jan 26 02:40:41 1999  GOTO Kentaro  &lt;gotoken@math.sci.hokudai.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* prec.c: Precision support for numbers.</div><div class='add'>+</div><div class='add'>+Thu Jan 21 19:08:14 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_raise): calls `exception' method, not `new'.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_exception): renamed from `new'.</div><div class='add'>+</div><div class='add'>+Wed Jan 20 03:39:48 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): rb_in_compile renamed to ruby_in_compile.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): define DATA if __END__ appeared in script.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 14:57:51 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): need to protect lex_lastline.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): disable %//, %'', %``.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 05:01:16 1999  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (beg_len): round range value too much.</div><div class='add'>+</div><div class='add'>+Mon Jan 18 13:02:27 1999  Kuroda Jun  &lt;jkuro@dwe.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_keys): strchr() may return NULL.</div><div class='add'>+</div><div class='add'>+Mon Jan 18 17:51:47 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (wdir): install libruby.a in archdir.</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (install): removes file before installing.</div><div class='add'>+</div><div class='add'>+Mon Jan 18 16:55:31 1999  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc): experimental continuation support.</div><div class='add'>+</div><div class='add'>+Sun Jan 17 19:45:37 1999  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): nil packing caused SEGV.</div><div class='add'>+</div><div class='add'>+Sat Jan 16 13:18:03 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): character (fixnum) can be append to</div><div class='add'>+	  strings</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift): unshift returns array.</div><div class='add'>+</div><div class='add'>+Sat Jan 16 01:39:19 1999  Yoshida Masato  &lt;yoshidam@tau.bekkoame.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_method): UTF-8 support.</div><div class='add'>+</div><div class='add'>+	* regex.c: UTF-8 support.</div><div class='add'>+</div><div class='add'>+Thu Jan 14 00:42:55 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): forget to add offset for null match.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_local_aset): can't modify in tainted mode.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_key): avoid generating temporary array.</div><div class='add'>+</div><div class='add'>+Wed Jan 13 23:58:50 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_f_setenv): name and value can be tainted.</div><div class='add'>+</div><div class='add'>+Wed Jan  6 02:42:08 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): forgot to define Bignum#===.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): if add_heap() is called during GC, objects on</div><div class='add'>+	  allocated heap page(s) are not marked, should not be recycled.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): should refer latest freelist.</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): modified to support performance patch.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_id): performance patch (no bignum for id).</div><div class='add'>+</div><div class='add'>+Tue Jan  5 01:56:18 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess: merge up-to-date from autoconf 2.12.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): avoid calling rb_protect_inspect() till</div><div class='add'>+	  it is really needed.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_inspect): show detailed information for the</div><div class='add'>+	  instance variables (infinite loop can avoid now).</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_inspect): avoid infinite loop.</div><div class='add'>+</div><div class='add'>+Sun Jan  3 01:37:58 1999  Takao KAWAMURA  &lt;kawamura@ike.tottori-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-end-of-defun): moved too much.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-variables): set paragraph-separator</div><div class='add'>+	  for the mode.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: proper font-lock for `def' and `nil' etc.</div><div class='add'>+</div><div class='add'>+Sat Jan  2 17:09:06 1999  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_jump_tag): new api to invoke JUMP_TAG.  tag values</div><div class='add'>+	  can obtained from rb_eval_string_protect()/rb_load_protect().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue): now catches all exceptions but SystemExit.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_string_protect): eval string with protection.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load_protect): load file with protection.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): avoid infinite loop for cyclic arrays.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_local_aref): thread local hash tables.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_equal): check exact equal before calling `=='.</div><div class='add'>+</div><div class='add'>+Thu Dec 31 22:28:53 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): feature names should be provided with</div><div class='add'>+	  DLEXT extension.</div><div class='add'>+</div><div class='add'>+	* marshal.c (Init_marshal): need to provide `marshal.so'.</div><div class='add'>+</div><div class='add'>+Wed Dec 30 02:29:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): do not call rb_ivar_set().</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): finalizers were called too early.</div><div class='add'>+</div><div class='add'>+Fri Dec 25 12:19:30 1998  Fukuda Masaki  &lt;fukuda@wni.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark): should not return on FL_EXIVAR.</div><div class='add'>+</div><div class='add'>+Fri Dec 25 11:56:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): proper scanning for temporary region.</div><div class='add'>+</div><div class='add'>+	* eval.c (TMP_ALLOC): protection for C_ALLOCA was broken.</div><div class='add'>+</div><div class='add'>+Thu Dec 24 18:26:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* development version 1.3 released.</div><div class='add'>+</div><div class='add'>+Thu Dec 24 00:17:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): top self should be set properly.</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): check __classpath__ if it is defined.</div><div class='add'>+</div><div class='add'>+	* variable.c (classname): invalid warning at -v with static linked</div><div class='add'>+	  ruby interpreter.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): modified for expr::Const support.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): invoke method expr::Const if expr is not class</div><div class='add'>+	  nor module.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): enable expr::identifier as method</div><div class='add'>+	  invocation.</div><div class='add'>+</div><div class='add'>+Wed Dec 23 03:04:36 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): avoid too many loop pops for (?:..).</div><div class='add'>+</div><div class='add'>+Tue Dec 22 18:01:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental version 1.1d1 released.</div><div class='add'>+</div><div class='add'>+Mon Dec 21 01:33:03 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (TMP_PROTECT): add volatile to ensure GC protection.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): calculate buffer size properly.</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_get_str): needed to return Qnil at EOS.</div><div class='add'>+</div><div class='add'>+	* eval.c (find_file): check policy modified, raise exception</div><div class='add'>+	  immediately for tainted load_path.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_f_setenv): do not depend on setenv() nor putenv().</div><div class='add'>+</div><div class='add'>+Thu Dec 17 06:29:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c (tk_s_new): use rb_obj_instance_eval(), instead</div><div class='add'>+	  of rb_yield_0().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): forgot to call find_file in some cases.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): `require "feature.so"' to load dynamic</div><div class='add'>+	  libraries.  old `require "feature.o"' is still OK.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): yield without value dumped core.</div><div class='add'>+</div><div class='add'>+Wed Dec 16 16:28:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental version 1.1d0 (pre1.2) released.</div><div class='add'>+</div><div class='add'>+Wed Dec 16 10:43:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): bound check before calling re_match().</div><div class='add'>+</div><div class='add'>+Tue Dec 15 13:59:01 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_to_s): returns class name for unset mesg.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_initialize): do not initialize @mesg by "".</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): __END__ should handle CR+LF newlines.</div><div class='add'>+</div><div class='add'>+Wed Dec  9 13:37:12 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (encodes): use buffering for B-encoding.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): Q-encoding by 'M'.</div><div class='add'>+</div><div class='add'>+Tue Dec  8 14:10:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (generic_ivar_get): any object can have instance</div><div class='add'>+	  variables now.  great improvement.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_name_class): do not set __classpath__ by default,</div><div class='add'>+	  use __classid__ instead.</div><div class='add'>+</div><div class='add'>+Mon Dec  7 22:08:22 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (struct RFile): IO objects can have instance variables now.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): allows `def obj::foo; .. end'.</div><div class='add'>+</div><div class='add'>+Mon Dec  7 18:24:50 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): $0 support for HP-UX.</div><div class='add'>+</div><div class='add'>+Mon Dec  7 01:30:28 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_strerror): better error messages on win32.</div><div class='add'>+</div><div class='add'>+Sat Dec  5 23:27:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): indentable here-doc delimiter by</div><div class='add'>+	  `&lt;&lt;-'.  Proposed by Clemens &lt;c.hintze@gmx.net&gt;.  Thanks.</div><div class='add'>+</div><div class='add'>+Thu Dec  3 16:50:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (realclean): trouble on install.</div><div class='add'>+</div><div class='add'>+Sun Nov 29 22:25:39 1998  Takaaki Tateishi  &lt;ttate@jaist.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (f_exec): check number of argument.</div><div class='add'>+</div><div class='add'>+Thu Nov 26 17:27:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c9 released.</div><div class='add'>+</div><div class='add'>+Wed Nov 25 13:07:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): do not copy additional data (STR_NO_ORIG).</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): reduce known memory leak (hard to remove).</div><div class='add'>+</div><div class='add'>+Wed Nov 25 03:41:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_init_table_with_size): round size up to prime number.</div><div class='add'>+</div><div class='add'>+Sat Nov 21 23:27:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset): reduce copying key strings.</div><div class='add'>+</div><div class='add'>+	* gc.c (looks_pointerp): declare as inline function if possible.</div><div class='add'>+</div><div class='add'>+	* st.c (PTR_NOT_EQUAL): compare hash values first before calling</div><div class='add'>+	  comparing function.</div><div class='add'>+</div><div class='add'>+	* st.c (ADD_DIRECT): save hash value in entries to reduce hash</div><div class='add'>+	  calculation.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): avoid rb_scan_args() to speed-up.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov 21 18:44:06 1998  Masaki Fukushima  &lt;fukusima@goto.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_s_now): had memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c (md5_new): had memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/md5/md5init.c (md5_clone): ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 20 23:23:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: do not propagate hash and eql?.</div><div class='add'>+</div><div class='add'>+Thu Nov 19 01:40:52 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-expr-beg): failed to find reserved</div><div class='add'>+	  word boundary.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): avoid calling `concat' method.  calls</div><div class='add'>+	  rb_ary_concat() directly for efficiency.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): actual rest arguments extended arrays too much.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 14:30:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_global_function): global functions now be</div><div class='add'>+	  module function of the Kernel.</div><div class='add'>+</div><div class='add'>+Wed Nov 18 10:48:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): SEGV on large files.</div><div class='add'>+</div><div class='add'>+Tue Nov 17 18:11:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c8 released.</div><div class='add'>+</div><div class='add'>+Tue Nov 17 16:58:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): assignment to attribute name start with capital</div><div class='add'>+	  should be allowed.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_alloc): needed to mark terminated threads too.</div><div class='add'>+</div><div class='add'>+Tue Nov 17 12:33:48 1998  Motoyuki Kasahara  &lt;m-kasahr@sra.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (create_makefile): Set `libdir' to `@libdir@',</div><div class='add'>+	  Set `pkglibdir' to `$libdir/$(RUBY_INSTALL_NAME)'.</div><div class='add'>+</div><div class='add'>+Tue Nov 17 10:30:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): %l%%c -&gt; %%l%c</div><div class='add'>+</div><div class='add'>+Tue Nov 17 01:08:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ret_args): distinguish `a' and `*a' for the arguments</div><div class='add'>+	  of yield and return.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): flip3 should work like sed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): flip{2,3} now have independent state for each</div><div class='add'>+	  scope to work fine with thread.</div><div class='add'>+</div><div class='add'>+Mon Nov 16 23:26:29 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): exec else clause if no exception raised.</div><div class='add'>+</div><div class='add'>+Sun Nov 15 15:44:07 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): bug in target.</div><div class='add'>+</div><div class='add'>+Sat Nov 14 11:02:05 1998  Motoyuki Kasahara  &lt;m-kasahr@sra.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (install): Give the argument `$(DESTDIR)' to</div><div class='add'>+	  `instruby.rb'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Recognize ARG[0] as `destdir'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Give the argument `destdir' to `extmk.rb'.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: Recognize ARG[1] as `$destdir'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Create the installation directories (bindir, libdir,</div><div class='add'>+	  archdir, pkglibdir, archdir, and mandir) under `destdir', and</div><div class='add'>+	  install all files under there.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: Likewise.</div><div class='add'>+</div><div class='add'>+Sat Nov 14 10:56:55 1998  Motoyuki Kasahara  &lt;m-kasahr@sra.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Add the variable `pkglibdir'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Set the variable `libdir' to `$(libdir)', not</div><div class='add'>+	  `$(libdir)/$(ruby_install_name)'. `libruby.so' and `libruby.so.LIB'</div><div class='add'>+	  are installed at `libdir'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Set the variable `archdir' to `$(pkglibdir)/$(arch)'.</div><div class='add'>+</div><div class='add'>+Fri Nov 13 19:43:29 1998  KIMURA Koichi  &lt;kbk@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/nt.c (SafeFree): wrong free offset.</div><div class='add'>+</div><div class='add'>+Thu Nov 12 20:11:53 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el: wrong highlight.</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): newline in regexp was ignored.</div><div class='add'>+</div><div class='add'>+Wed Nov 11 10:54:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): &lt;&lt;'FOO' should not escape anything.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): bare &lt;&lt; here-doc available, even though</div><div class='add'>+	  it's deprecated.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): return value should be tainted.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (setup_passwd): information (eg. GCOS name) should</div><div class='add'>+	  be tainted (modified at Perl Conference).</div><div class='add'>+</div><div class='add'>+Tue Nov 10 00:22:11 1998  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: elf support for FreeBSD 3.x</div><div class='add'>+</div><div class='add'>+Tue Nov 10 00:05:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): here document available in eval.</div><div class='add'>+</div><div class='add'>+Mon Nov  9 17:55:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c7 released.</div><div class='add'>+</div><div class='add'>+Fri Nov  6 19:25:27 1998  Takao KAWAMURA  &lt;kawamura@ike.tottori-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el: font-lock patch.</div><div class='add'>+</div><div class='add'>+Thu Nov  5 15:42:22 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/README, lib/README: simple description for each file.</div><div class='add'>+</div><div class='add'>+Wed Nov  4 18:14:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): attribute assignment should be called as public.</div><div class='add'>+</div><div class='add'>+Tue Nov  3 23:36:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): dumps core for negative char value.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): out of boundary access for empty</div><div class='add'>+	  regexp.</div><div class='add'>+</div><div class='add'>+Mon Nov  2 22:54:01 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): `str[str]' replaces first match.</div><div class='add'>+</div><div class='add'>+Mon Nov  2 18:24:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): was accessing modified status.</div><div class='add'>+</div><div class='add'>+Sun Nov  1 01:18:52 1998  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (xrealloc): size 0 needs round up to 1.</div><div class='add'>+</div><div class='add'>+Sat Oct 31 23:18:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_method): negative LIMIT means number of</div><div class='add'>+	  split fields are unlimited, as in perl.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_method): if LIMIT is unspecified,</div><div class='add'>+	  trailing null fields are stripped.</div><div class='add'>+</div><div class='add'>+Sat Oct 31 04:16:14 1998  Inaba Hiroto  &lt;inaba@st.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_aref): regexp index SEGVed.</div><div class='add'>+</div><div class='add'>+Fri Oct 30 14:33:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_match): returns nil for unmatch.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_entries): new method.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): do not push block, substitute it.</div><div class='add'>+</div><div class='add'>+Fri Oct 30 01:28:52 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_check): avoid &lt;=&gt; check for Fixnums.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_aset): accept negative index.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 22:00:54 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): access out of boundary fixed.</div><div class='add'>+</div><div class='add'>+Wed Oct 28 11:37:42 1998  TAMITO  &lt;tommy@valley.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_select): fd number comparison bug.</div><div class='add'>+</div><div class='add'>+Tue Oct 27 23:07:11 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): forgot to support %w()</div><div class='add'>+	  style array literal.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): unused block raises warning.</div><div class='add'>+</div><div class='add'>+Mon Oct 26 09:37:53 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (dvar_asgn_push): dvar pushed too many times if</div><div class='add'>+	  variable-in-block first appear in loops.</div><div class='add'>+</div><div class='add'>+Sun Oct 25 22:59:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (set_list_bits): was using wrong offset.</div><div class='add'>+</div><div class='add'>+Thu Oct 22 00:07:11 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_method): method retrieved from tainted object</div><div class='add'>+	  should be tainted too.</div><div class='add'>+</div><div class='add'>+	* eval.c (method_call): safe_level should be restored during</div><div class='add'>+	  Method#call.</div><div class='add'>+</div><div class='add'>+Wed Oct 21 14:21:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): new constants IO::SEEK_{SET,CUR,END}.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_ungetc): ungetc pushes a char back into STDIN.</div><div class='add'>+</div><div class='add'>+Mon Oct 19 11:50:00 1998  Motoyuki Kasahara  &lt;m-kasahr@sra.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: Load '@top_srcdir@/lib/find.rb', not</div><div class='add'>+	  '../lib/find.rb'.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: Distinguish between `top_srcdir' and `topdir'.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (CFLAGS): Add `-I.'.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): Give `@srcdir@/keywords' to gperf, not</div><div class='add'>+	  `keywords'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Use `CONFIG["bindir"]', instead of `prefix + "/bin"'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Use `CONFIG["libdir"]', instead of `prefix + "/lib"'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb Use `CONFIG["mandir"]', instead of `prefix + "/man"'.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (wdir): Add the variable to preserve the current</div><div class='add'>+	  working directory.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: Chdir to wdir before install `config.h' and</div><div class='add'>+	  `rbconfig.rb'.</div><div class='add'>+</div><div class='add'>+Mon Oct 19 10:07:01 1998  EGUCHI Osamu  &lt;eguchi@shizuokanet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): reduce recursive calls to rb_eval().</div><div class='add'>+</div><div class='add'>+Fri Oct 16 15:31:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_new_internal): timeval must be positive.</div><div class='add'>+</div><div class='add'>+Thu Oct 15 13:54:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): local variables can be accessed within right side</div><div class='add'>+	  expression in assignment, notably in blocks.</div><div class='add'>+</div><div class='add'>+Wed Oct 14 00:18:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (Init_Array): Array#=== is now for equal check, not</div><div class='add'>+	  inclusion check.</div><div class='add'>+</div><div class='add'>+	* parse.y (when_args): `when a, *b' style new syntax for array</div><div class='add'>+	  expansion in `case'.</div><div class='add'>+</div><div class='add'>+Tue Oct 13 14:30:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_untaint): taint marks can be unset.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): taint propagation for embedded strings.</div><div class='add'>+</div><div class='add'>+Mon Oct 12 13:27:15 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): check stack depth more frequently.</div><div class='add'>+</div><div class='add'>+Mon Oct 12 08:08:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_p): can print even in secure mode.</div><div class='add'>+</div><div class='add'>+Sun Oct 11 22:50:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): taint check for modification.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_set): taint check for modification.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_modify): taint check for modification.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_modify): taint check for modification.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_modify): taint check for modification.</div><div class='add'>+</div><div class='add'>+	* ruby.h (FL_TAINT): taint for all objects, not only strings.</div><div class='add'>+</div><div class='add'>+Fri Oct  9 17:01:14 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): read() returns "" at immediate EOF.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): read(nil) read all until EOF.</div><div class='add'>+</div><div class='add'>+Thu Oct  8 13:32:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_dump): marshal can dump Time object now.</div><div class='add'>+</div><div class='add'>+	* marshal.c (Init_marshal): rename marshal methods `_dump_to' to</div><div class='add'>+	  `_dump', `_load_from' to `_load'.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): "+=".intern generates proper symbol.</div><div class='add'>+</div><div class='add'>+Mon Oct  5 18:31:53 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c6 released.</div><div class='add'>+</div><div class='add'>+Fri Oct  2 14:22:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): `/\s*(--)$/ =~ "- --"' did not match,</div><div class='add'>+	  because of wrong optimize condition.</div><div class='add'>+</div><div class='add'>+Mon Oct  1 01:55:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern): should not raise exceptions.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): symbol like `:foo?=' should not be allowed.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: makes *.a for static link modules.</div><div class='add'>+</div><div class='add'>+Wed Sep 30 14:13:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start): supports making a subclass of the</div><div class='add'>+	  Thread class.</div><div class='add'>+</div><div class='add'>+Tue Sep 29 17:46:01 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): join is now an instance method.</div><div class='add'>+</div><div class='add'>+Fri Sep 25 12:01:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `@foo!' should be an error.</div><div class='add'>+</div><div class='add'>+Thu Sep 24 14:55:06 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (Init_etc): wrong field definition.</div><div class='add'>+</div><div class='add'>+Thu Sep 17 17:09:05 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): was creating FILE* for wrong fd.</div><div class='add'>+</div><div class='add'>+Tue Sep 15 05:28:11 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): forgot to fixup for the pattern</div><div class='add'>+	  like (?=(A)|(B)).</div><div class='add'>+</div><div class='add'>+Tue Sep 15 01:06:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets_internal): do not set $_ by default, only</div><div class='add'>+	  gets/readline set the variable.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_load): load toplevel class is set to anonymous</div><div class='add'>+	  module if safe_level &gt;= 5, to encapsulate modification.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_load): set frame properly.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): do not set $_.</div><div class='add'>+</div><div class='add'>+Mon Sep 14 14:42:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): beginning and end of the string, do not</div><div class='add'>+	  automatically match `\b'.</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): consume at least on character.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): wrong behavior for negative range.</div><div class='add'>+</div><div class='add'>+Sat Sep 12 21:21:26 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): range value should be maintained.</div><div class='add'>+</div><div class='add'>+Thu Sep 10 10:55:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (backref_error): yyerror does not understand formats.</div><div class='add'>+</div><div class='add'>+Tue Sep  8 18:05:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c5 released.</div><div class='add'>+</div><div class='add'>+Tue Sep  8 10:03:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_each_line): wrong line splitting with newline at</div><div class='add'>+	  top of the string.</div><div class='add'>+</div><div class='add'>+	* string.c: non bang methods return copied string.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_END): needed to initialize frame-&gt;argc;</div><div class='add'>+</div><div class='add'>+Fri Sep  4 11:27:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigadd): proper sign combination.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): wrong return value for \A.</div><div class='add'>+</div><div class='add'>+Thu Sep  3 14:08:14 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c4 released.</div><div class='add'>+</div><div class='add'>+Tue Sep  1 10:47:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (slow_search): do not compare llen and blen.  llen may</div><div class='add'>+	  be longer than blen, if little contains 0xff.</div><div class='add'>+</div><div class='add'>+	* regex.c (mbctab_euc): set 0x8e as multibyte character.</div><div class='add'>+</div><div class='add'>+	* string.c (str_inspect): mask character for octal output.</div><div class='add'>+</div><div class='add'>+Mon Aug 31 15:32:41 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): use calculated offset if exactn is the</div><div class='add'>+	  first opcode in the compiled regexp.</div><div class='add'>+</div><div class='add'>+	* regex.c (bm_search): use Boyer-Moore search for simple search.</div><div class='add'>+</div><div class='add'>+	* regex.c (must_instr): wrong length check if pattern includes</div><div class='add'>+	  byte escape by 0xff.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): need not to check current_mbctype.</div><div class='add'>+</div><div class='add'>+Sat Aug 29 16:31:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_check_safe_str): avoid calling rb_id2name() in normal</div><div class='add'>+	  cases to speed-up.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_raise): do not save context of terminated thread.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): mask \nnn over 256.</div><div class='add'>+</div><div class='add'>+Sat Aug 29 02:09:46 1998  Koji Arai  &lt;JCA02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): wrong buffer size check.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 01:57:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...).</div><div class='add'>+</div><div class='add'>+Fri Aug 28 12:25:33 1998  Hiroshi Igarashi  &lt;igarashi@ueda.info.waseda.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_require_modules): load modules in appearing order.</div><div class='add'>+</div><div class='add'>+Fri Aug 28 01:57:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): accepts (?ix-ix) and (?ix-ix:...).</div><div class='add'>+</div><div class='add'>+Thu Aug 27 12:54:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c3 released.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 14:40:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): check whether ruby_class is properly set,</div><div class='add'>+	  before accessing it.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_eval): ruby_class should be Qnil for</div><div class='add'>+	  special objects like Fixnums.</div><div class='add'>+</div><div class='add'>+	* ext/tkutil/tkutil.c (Init_tkutil): removes calls to</div><div class='add'>+	  rb_yield_0().  used instance_eval() instead in the tk.rb.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 11:47:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): pop non-greedy stack elements on success.</div><div class='add'>+</div><div class='add'>+Wed Aug 26 09:25:35 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: add #define environ for cygwin32.</div><div class='add'>+</div><div class='add'>+Tue Aug 25 08:57:41 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): temporarily freeze sorting array.</div><div class='add'>+</div><div class='add'>+Mon Aug 24 18:46:44 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): path check was too strict.</div><div class='add'>+</div><div class='add'>+Mon Aug 24 15:28:11 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arglist): opt_nl added after f_args.</div><div class='add'>+</div><div class='add'>+Fri Aug 21 01:06:01 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: grand renaming on socket.c.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (inet_aton): supply inet_aton for those</div><div class='add'>+	  systems that do not have it.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setipaddr): use inet_aton instead of</div><div class='add'>+	  inet_addr.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_s_gethostbyname): new method: works</div><div class='add'>+	  like Socket.gethostbyname but returning array contains ip-addrs</div><div class='add'>+	  as octet decimal string format like "127.0.0.1".</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (mkhostent): return format changed to</div><div class='add'>+	  [host, aliases, type, ipaddr..]  as documented.</div><div class='add'>+</div><div class='add'>+Wed Aug 19 00:31:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_ctl): forgot to place TRAP_END at right position.</div><div class='add'>+</div><div class='add'>+Fri Aug 14 11:01:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): save __FILE__, __LINE__ before</div><div class='add'>+	  executing trace_func, since trace function should not corrupt</div><div class='add'>+	  line number information.</div><div class='add'>+</div><div class='add'>+Thu Aug 13 15:09:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_s_new): was marking unallocated region on GC.</div><div class='add'>+</div><div class='add'>+Tue Aug 11 11:57:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c2 released.</div><div class='add'>+</div><div class='add'>+Mon Aug 10 14:05:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (f_system): removed fflush(stdin).</div><div class='add'>+</div><div class='add'>+Fri Aug  7 17:44:44 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (err_snprintf): replace sprintf for fixed sized buffer,</div><div class='add'>+	  with snprintf to avoid buffer over-run.  For systems which does</div><div class='add'>+	  dot provide snprintf, missing/snprintf.c added.</div><div class='add'>+</div><div class='add'>+Wed Aug  5 00:47:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): recycle match object.</div><div class='add'>+</div><div class='add'>+Mon Aug  3 09:17:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub_bang): do not allocate temporary string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): use inline replace.</div><div class='add'>+</div><div class='add'>+Wed Jul 29 00:36:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_s_new): the default value can be specified.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_default): method to set the default value.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_aref): now returns the default value.</div><div class='add'>+</div><div class='add'>+Tue Jul 28 13:03:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_s_new): argument to specify initial value is added.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_s_new): specifies size, not capacity.</div><div class='add'>+</div><div class='add'>+Mon Jul 27 12:39:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace): zero fill for expansion gap.</div><div class='add'>+</div><div class='add'>+	* regex.c (mbctab_euc): set flags on for 0xA1-0xFE.  suggested by</div><div class='add'>+	  &lt;inaba@st.rim.or.jp&gt;.</div><div class='add'>+</div><div class='add'>+	* string.c (str_inspect): consider current_mbctype.</div><div class='add'>+</div><div class='add'>+Sun Jul 26 15:37:11 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_s_new): Array.new(1&lt;&lt;30) dumps core.</div><div class='add'>+</div><div class='add'>+Fri Jul 24 13:40:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c1 released.</div><div class='add'>+</div><div class='add'>+Fri Jul 24 02:10:22 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes2): allocated buffer size was too short.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): saves all options, not only casefold flag.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_clone): now copies options properly.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_get_kcode): code number was wrong.</div><div class='add'>+</div><div class='add'>+Thu Jul 23 13:11:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): argument should be symbol or string.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 11:59:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (calculate_must_string): wrong offset added.</div><div class='add'>+</div><div class='add'>+Wed Jul 22 11:59:59 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (rehash): still had a GC problem.  fixed.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 13:19:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (gc_mark_threads): crashed on GC before thread allocation.</div><div class='add'>+</div><div class='add'>+	* st.c (rehash): GC during rehash caused SEGV.</div><div class='add'>+</div><div class='add'>+Tue Jul 21 01:25:10 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): integer formatter totally re-written.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): support uppercase hexadecimal.</div><div class='add'>+</div><div class='add'>+Sat Jul 18 00:14:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): proper sign position for %X and %O.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 14:10:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1c0 released.</div><div class='add'>+</div><div class='add'>+Fri Jul 17 08:01:49 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (f_exec): Check_SafeStr() added.</div><div class='add'>+</div><div class='add'>+	* process.c (f_system): Check_SafeStr() moved before fork().</div><div class='add'>+</div><div class='add'>+Thu Jul 16 22:58:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): substrings to the block should not be</div><div class='add'>+	  tainted.  use reg_nth_match(), not str_substr().</div><div class='add'>+</div><div class='add'>+	* string.c (str_substr): needed to transfer taint.</div><div class='add'>+</div><div class='add'>+Thu Jul 16 16:15:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (xmalloc): object allocation count added to GC trigger.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_save_context): avoid marking uninitialized stack</div><div class='add'>+	  in thread_mark.  GC may be triggered by REALLOC_N().</div><div class='add'>+</div><div class='add'>+Wed Jul 15 15:11:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_31.</div><div class='add'>+</div><div class='add'>+Wed Jul 15 15:05:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): exit() and abort() in threads now</div><div class='add'>+	  forwarded to main_thread.</div><div class='add'>+</div><div class='add'>+Tue Jul 14 14:03:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (obj_instance_variables): list names that is not</div><div class='add'>+	  instance variables.</div><div class='add'>+</div><div class='add'>+	* gc.c (GC_MALLOC_LIMIT): choose smaller limit value.</div><div class='add'>+</div><div class='add'>+Mon Jul 13 12:39:38 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (str2cstr): should not return NULL.</div><div class='add'>+</div><div class='add'>+Fri Jul 10 11:51:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): needed to add dyna_in_block() check.</div><div class='add'>+</div><div class='add'>+Thu Jul  9 17:38:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_30.</div><div class='add'>+</div><div class='add'>+Thu Jul  9 16:01:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (fmt_setup): format specifier for long needed.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix2str): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): no more ITIMER_REAL.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): thread finalization needed before</div><div class='add'>+	  aborting thread if thread_abort is set.</div><div class='add'>+</div><div class='add'>+Wed Jul  8 18:17:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_pow): abandon power by bignum (too big).</div><div class='add'>+</div><div class='add'>+Tue Jul  7 13:58:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_catch): add C level catch/throw feature.</div><div class='add'>+</div><div class='add'>+Mon Jul  6 15:18:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): proper return values for `||=' and `&amp;&amp;='.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 16:05:11 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_29.</div><div class='add'>+</div><div class='add'>+Fri Jul  3 11:20:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): byte should not extend sign bit.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): use FIX2LONG() instead of FIX2INT() for</div><div class='add'>+	  64bit architectures.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes): remove weird casting between pointer and int.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setsid): new method Process#setsid().</div><div class='add'>+</div><div class='add'>+Thu Jul  2 12:49:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): remove `write_bignum' label for 64bit</div><div class='add'>+	  architectures.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes): needs int, not long.</div><div class='add'>+</div><div class='add'>+Wed Jul  1 14:21:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_plus): should not allow addition with strings.</div><div class='add'>+</div><div class='add'>+Wed Jul  1 13:09:01 1998  Keiju ISHITSUKA  &lt;keiju@rational.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_uminus): wrong coerce direction.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 10:13:44 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_p): accepts arbitrary number of arguments.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): there's some case that iterator_p() returns</div><div class='add'>+	  true even if the_block was not set.  check added.</div><div class='add'>+</div><div class='add'>+Tue Jun 30 01:05:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (BEGIN_CALLARGS): adjust the_block before evaluating the</div><div class='add'>+	  receiver's value and the arguments.</div><div class='add'>+</div><div class='add'>+Fri Jun 26 18:02:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_28.</div><div class='add'>+</div><div class='add'>+Fri Jun 26 11:01:26 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_aset_method): needed to convert to string.</div><div class='add'>+</div><div class='add'>+Thu Jun 25 02:05:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): optimize for `.*' at beginning of the</div><div class='add'>+	  pattern.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): optimize for character class repeat at</div><div class='add'>+	  beginning of the pattern.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): detect optimization potential for</div><div class='add'>+	  the compiled patterns.</div><div class='add'>+</div><div class='add'>+Thu Jun 25 00:02:26 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_s_new): flag value was wrong.</div><div class='add'>+</div><div class='add'>+Wed Jun 24 23:45:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): wrong anchor handling for reverse search.</div><div class='add'>+</div><div class='add'>+Wed Jun 24 02:18:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs): `((a,b)),c = [[1,2]],3' assigns a=1,b=2,c=3.</div><div class='add'>+</div><div class='add'>+Tue Jun 23 11:46:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `&amp;&amp;=' and `||=' added.</div><div class='add'>+</div><div class='add'>+Sat Jun 20 02:53:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): nesting local variables should have higher</div><div class='add'>+	  priority than normal local variables for assignment too.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 18:28:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_27.</div><div class='add'>+</div><div class='add'>+Fri Jun 19 14:34:49 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): support hack for nested multiple assignment.</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs): nested multiple assignment.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): in-block variables now honors static scope.</div><div class='add'>+</div><div class='add'>+	* configure.in: RSHIFT check moved to configure.</div><div class='add'>+</div><div class='add'>+Thu Jun 18 16:46:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_26.</div><div class='add'>+</div><div class='add'>+Thu Jun 18 13:37:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_ftype): uses lstat(2) instead of stat(2).</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): there can be buffer overrun, check added.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_binding): handles in-block variables declared after</div><div class='add'>+	  binding's generation.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_floor): floor, ceil, round added to Float.</div><div class='add'>+</div><div class='add'>+Wed Jun 17 11:20:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable): nesting local variables should have higher</div><div class='add'>+	  priority than normal local variables.</div><div class='add'>+</div><div class='add'>+Tue Jun 16 12:30:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (str2inum): handles `+ddd'.</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): name parameter can be nil for unnamed</div><div class='add'>+	  structures.</div><div class='add'>+</div><div class='add'>+Mon Jun 15 16:30:10 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (class_s_inherited): prohibiting to make subclass of</div><div class='add'>+	  class Class.</div><div class='add'>+</div><div class='add'>+	* object.c (module_s_new): support for making subclass of Module.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): clear eval_tree before compiling.</div><div class='add'>+</div><div class='add'>+Fri Jun 12 17:58:18 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): write back the_dyna_var into the block.</div><div class='add'>+</div><div class='add'>+Thu Jun 11 18:19:18 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_25.</div><div class='add'>+</div><div class='add'>+	* eval.c (dvar_add_compiling): register dyna_var at compile time.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): RE_DUP_MAX iteration is too big.</div><div class='add'>+</div><div class='add'>+Wed Jun 10 15:12:04 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_eof): do not block other threads.</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): reserve SIGALRM for thread.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_create): use ITIMER_REAL also to avoid system</div><div class='add'>+	  call blocking.</div><div class='add'>+</div><div class='add'>+	* io.c (f_syscall): add TRAP_BEG, TRAP_END around system calls.</div><div class='add'>+</div><div class='add'>+	* io.c (io_ctl): add TRAP_BEG, TRAP_END around system calls.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_collect): did not collect false values.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_new2): forgot to initialize capa field.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 18:36:15 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): split dumped core for "\xff".</div><div class='add'>+</div><div class='add'>+Tue Jun  9 16:22:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_24.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 16:04:07 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c (kconv_guess): more precise decision for EUC,</div><div class='add'>+	  using jless algorithm (3 sequential EUC hiragana characters).</div><div class='add'>+</div><div class='add'>+Tue Jun  9 15:12:44 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c (kconv_guess): wrong guess for EUC as SJIS in</div><div class='add'>+	  some cases (0xe0 - 0xef).</div><div class='add'>+</div><div class='add'>+	* gc.c (xmalloc): insert size check for big (negative in signed)</div><div class='add'>+	  allocation size.</div><div class='add'>+</div><div class='add'>+Tue Jun  9 02:54:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb: wday moved to the last in the return values.</div><div class='add'>+</div><div class='add'>+Mon Jun  8 10:40:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_split_method): split dumped core for "\0".</div><div class='add'>+</div><div class='add'>+Sat Jun  6 22:50:52 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (calculate_must_string): wrong condition for</div><div class='add'>+	  {start,stop}_nowidth.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): various features imported from GNU regex.c</div><div class='add'>+	  0.12, such as nested grouping, avoiding infinite loop with empty</div><div class='add'>+	  match, etc.</div><div class='add'>+</div><div class='add'>+	* regex.c (register_info_type): now use union.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): more precise anchor(^) check.</div><div class='add'>+</div><div class='add'>+Wed Jun  3 18:07:54 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_raise): check rb_in_compile, not rb_in_eval.</div><div class='add'>+</div><div class='add'>+Mon Jun  1 05:26:06 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): casting to signed char* needed.</div><div class='add'>+</div><div class='add'>+Tue Jun  2 16:00:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_addrsetup): error check enhanced.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyaname): use strtoul(), if</div><div class='add'>+	  possible.</div><div class='add'>+</div><div class='add'>+Sat May 30 07:10:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_prepare_re): no more needless regular expression</div><div class='add'>+	  recompile on casefold conditions.</div><div class='add'>+</div><div class='add'>+Thu May 28 18:02:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (nil_plus): no more `+' method for nil.</div><div class='add'>+</div><div class='add'>+Wed May 27 17:33:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_fetch): new method.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): check whether translate table is set.</div><div class='add'>+</div><div class='add'>+Tue May 26 11:39:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_23.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): no UPLUS/UMINUS for 1st argument if</div><div class='add'>+	  parenthesises are omitted.</div><div class='add'>+</div><div class='add'>+Tue May 26 01:09:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): (?XI) for turns off the</div><div class='add'>+	  corresponding option.</div><div class='add'>+</div><div class='add'>+Mon May 25 12:38:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): inline i option (?i).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): inline x option (?x).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): x option for regexp.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_open): returns block's evaluated value.</div><div class='add'>+</div><div class='add'>+	* io.c (f_open): returns block's evaluated value.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_addstr): nil argument caused SEGV.</div><div class='add'>+</div><div class='add'>+Fri May 22 11:52:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): push mark on (?:), so that</div><div class='add'>+	  laststart check for {a,b} can be done.</div><div class='add'>+</div><div class='add'>+Thu May 21 17:31:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): wrong match (too non-greedy) for `{a,b}?'.</div><div class='add'>+</div><div class='add'>+	* io.c (io_lineno): new method IO#lineno, IO#lineno=.</div><div class='add'>+</div><div class='add'>+Wed May 20 06:04:43 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* BeOS patch.</div><div class='add'>+</div><div class='add'>+Wed May 20 16:32:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (BIGDN): use RSHIFT(), instead of mere `&gt;&gt;'.</div><div class='add'>+</div><div class='add'>+Tue May 19 16:36:26 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_22.</div><div class='add'>+</div><div class='add'>+Tue May 19 16:31:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): specification changed for in-block</div><div class='add'>+	  variable definition.</div><div class='add'>+</div><div class='add'>+	* eval.c (dyna_var_asgn): error in in-block variables' compile</div><div class='add'>+	  time definition.</div><div class='add'>+</div><div class='add'>+	* parse.y (str_extend): wrong nesting detection.</div><div class='add'>+</div><div class='add'>+Tue May 19 09:47:55 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num2int): re-defined (extensions may use this).</div><div class='add'>+</div><div class='add'>+Mon May 18 16:40:50 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (get_syserr): BeOS support.</div><div class='add'>+</div><div class='add'>+	* configure.in: modified for BeOS.</div><div class='add'>+</div><div class='add'>+	* string.c (str_dump): do not call isascii().</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): forgot to initialize end pointer.</div><div class='add'>+</div><div class='add'>+	* glob.c: #include &lt;alloca.h&gt; added.</div><div class='add'>+</div><div class='add'>+Mon May 18 14:52:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_21.</div><div class='add'>+</div><div class='add'>+Mon May 18 03:27:57 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_expand_path): optional second argument</div><div class='add'>+	  `default_directory' added.</div><div class='add'>+</div><div class='add'>+Sat May 16 22:06:52 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (RAISE_ERROR): wrong error message</div><div class='add'>+</div><div class='add'>+Fri May 15 14:43:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_20.</div><div class='add'>+</div><div class='add'>+Thu May 14 14:44:21 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sun4 cc patches for intern.h and regex.h.</div><div class='add'>+</div><div class='add'>+Thu May 14 14:03:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (RANDOM_MAX): guessing proper maximum value for random</div><div class='add'>+	  numbers.</div><div class='add'>+</div><div class='add'>+	* random.c (f_rand): use drand48 if possible.</div><div class='add'>+</div><div class='add'>+Wed May 13 19:05:20 1998  MAEDA shugo  &lt;shugo@aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* BeOS patches for io.c, error.c and config.guess.</div><div class='add'>+</div><div class='add'>+Wed May 13 14:56:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_19.</div><div class='add'>+</div><div class='add'>+	* most of the Mac and BeOS patches merged, except path separators.</div><div class='add'>+</div><div class='add'>+	* error.c (err_append): generated SyntaxError was String.</div><div class='add'>+</div><div class='add'>+	* ruby.h: xxx2INT, xxx2UINT checks values as int, not long.</div><div class='add'>+</div><div class='add'>+	* ruby.h: remove typedef's. INT, UINT, UCHAR, USHORT.</div><div class='add'>+</div><div class='add'>+Tue May 12 17:38:00 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_18.</div><div class='add'>+</div><div class='add'>+Tue May 12 11:38:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_errno): returns errno of the SystemCallError.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): saves errno in the Exception.</div><div class='add'>+</div><div class='add'>+	* error.c (set_syserr): no need to protect syserr_list.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_sys_fail): no more bufsize limit.</div><div class='add'>+</div><div class='add'>+	* error.c (set_syserr): integer value of errno can be accessed by</div><div class='add'>+	  Errno::EXXX::Errno.</div><div class='add'>+</div><div class='add'>+Sun May 10 03:10:33 1998  WATANABE Tetsuya  &lt;tetsu@jpn.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_tell etc.): moved from File class to IO class.</div><div class='add'>+</div><div class='add'>+Fri May  8 12:26:37 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): should be unsigned int (was signed int).</div><div class='add'>+</div><div class='add'>+Thu May  7 16:34:10 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): `V', `N' uses newly created NUM2UINT().</div><div class='add'>+</div><div class='add'>+	* ruby.h (NUM2UINT): new macro.</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2uint): try to convert bignum into UINT.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_match): needed to return false for match with nil.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): wrong condition to free string.</div><div class='add'>+</div><div class='add'>+Wed May  6 21:08:08 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): modified for DJGPP.</div><div class='add'>+</div><div class='add'>+Wed May  6 15:48:03 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_17.</div><div class='add'>+</div><div class='add'>+Wed May  6 01:37:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove global variable `errat'.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): embed error position information in the</div><div class='add'>+	  exception object.</div><div class='add'>+</div><div class='add'>+Sat May  2 12:20:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): supports reverse search.</div><div class='add'>+</div><div class='add'>+	* string.c (str_index_method): does update $~ etc.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_load): needed to clear the_dyna_vars.</div><div class='add'>+</div><div class='add'>+	* eval.c (dyna_var_asgn): do not push dyna_var, which is id == 0.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): NotImplementError is no longer</div><div class='add'>+	  StandardError, which is not handled by default rescue.</div><div class='add'>+</div><div class='add'>+Fri May  1 00:35:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): `-d' turns on verbose flag too.</div><div class='add'>+</div><div class='add'>+	* error.c (exception): last argument may be the superclass of the</div><div class='add'>+	  defining exception(s).</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): EOFError is now subclass of the IOError.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): forgot to define IOError.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): old Exception class renamed to</div><div class='add'>+	  StandardError.  Exception now replaces old GlobalExit.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): Exception is now the root of the</div><div class='add'>+	  Global Exits.  There's no longer GlobalExit class.</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_mktemp): check TMP, TMPDIR first.</div><div class='add'>+</div><div class='add'>+Thu Apr 30 01:08:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: call 'unknown', if proc not defined.</div><div class='add'>+</div><div class='add'>+	* eval.c (handle_rescue): default rescue handles `Exceptional' not</div><div class='add'>+	  only the instance of the `Exception's.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_raise): exception can be any object.</div><div class='add'>+</div><div class='add'>+	* time.c (time_gm_or_local): call time_gmtime or time_localtime.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_raise): raises TypeError if the class which is not a</div><div class='add'>+	  subclass of String is specified (checked in exc_new()).</div><div class='add'>+</div><div class='add'>+	* error.c (exc_new): need to check whether invalid class (not a</div><div class='add'>+	  subclass of String) is specified.</div><div class='add'>+</div><div class='add'>+Wed Apr 29 21:05:44 1998  WATANABE Hirofumi  &lt;eban@os.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): option '-e' via tempfile.</div><div class='add'>+</div><div class='add'>+Tue Apr 28 15:27:58 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_16.</div><div class='add'>+</div><div class='add'>+Tue Apr 28 00:07:38 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_is_proc): type check predicate.</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_is_block): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr 27 16:59:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gtk/gtk.c (Init_gtk): use timeout, not idle to avoid</div><div class='add'>+	  consuming CPU too much.</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: use tcltklib#_invoke instead of `_eval'.</div><div class='add'>+</div><div class='add'>+Mon Apr 27 16:59:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_sort): use dup, not clone.</div><div class='add'>+</div><div class='add'>+Mon Apr 27 13:46:27 1998  Tadahiro Maebashi  &lt;maebashi@iij.ad.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_invoke): invoke tcl command</div><div class='add'>+	  directly.  need not worry about escaping tcl characters.</div><div class='add'>+</div><div class='add'>+Mon Apr 27 12:04:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (f_rand): do not call srand() implicitly.</div><div class='add'>+</div><div class='add'>+Fri Apr 24 14:35:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_15.</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): dyna_var_asgn actually defines nested</div><div class='add'>+	  local variables in outer context.</div><div class='add'>+</div><div class='add'>+	* random.c (f_rand): call srand(), if it has not called yet.</div><div class='add'>+</div><div class='add'>+	* random.c (f_srand): use tv_usec as the default seed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): values of nested local variables should be</div><div class='add'>+	  independent.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): local variables wrong nested conditions.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 23:27:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (select_get_io): get IO object by `to_io'.</div><div class='add'>+</div><div class='add'>+	* io.c (io_to_io): method to retrieve IO object, from delegating</div><div class='add'>+	  object for example.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 16:52:37 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_14.</div><div class='add'>+</div><div class='add'>+	* string.c (str_modify): check for embedded pointer reference.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): ditto.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): p/P template to embed pointers.</div><div class='add'>+</div><div class='add'>+Wed Apr 22 00:07:10 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_rindex): embarrassing typo.</div><div class='add'>+</div><div class='add'>+Tue Apr 21 12:31:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_13.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB): supports --program-{prefix,suffix}.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_rindex): new method.</div><div class='add'>+</div><div class='add'>+	* io.c (io_binmode): should return self.</div><div class='add'>+</div><div class='add'>+Tue Apr 21 08:23:04 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): calling parse_string with wrong</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_aset): problem member assignment with name.</div><div class='add'>+</div><div class='add'>+Mon Apr 20 14:47:49 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_12.</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): args may be string (support for reduced</div><div class='add'>+	  implicit type conversion).</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: changed to use pack/unpack with `m' template.</div><div class='add'>+</div><div class='add'>+Mon Apr 20 06:23:20 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_remove_const): new method.</div><div class='add'>+</div><div class='add'>+Sat Apr 18 03:53:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_each_with_index): removed.  use Enumerable's</div><div class='add'>+	  each_with_index instead.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): check for super modules, since</div><div class='add'>+	  module's included modules may be changed.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 21:50:47 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_long): r_byte() may return signed byte.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 11:58:30 1998  NAGAI Hidetoshi  &lt;nagai@dumbo.ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_mainloop): thread and interrupt check.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 11:06:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (find_file): try to fopen() to check whether file exists.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_aset): struct member can be set by member name.</div><div class='add'>+</div><div class='add'>+Fri Apr 17 00:47:19 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: added m68k-human support</div><div class='add'>+</div><div class='add'>+	* file.c (LOCK_SH): defines moved.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_flatten_bang): simplified loop.</div><div class='add'>+</div><div class='add'>+Thu Apr 16 16:52:01 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_11.</div><div class='add'>+</div><div class='add'>+	* lib/tk.rb: thread support (experimental - maybe slow).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): trace event on exception in raising</div><div class='add'>+	  context, just before raising exception.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_s_members): forgot to check singletons.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_aref): members can be accessed by names too.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_flatten): new method.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): prints exception information with `-d'.</div><div class='add'>+</div><div class='add'>+	* object.c (any_to_s): remove class name restriction.</div><div class='add'>+</div><div class='add'>+Thu Apr 16 01:38:02 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (thread_flock): do not block other threads.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_trap_eval): signals are now delivered to the</div><div class='add'>+	  current thread again.  In case that the current thread is dead,</div><div class='add'>+	  signals are forwarded to the main thread.</div><div class='add'>+</div><div class='add'>+	* string.c (str_new4): need not to duplicate frozen strings.</div><div class='add'>+</div><div class='add'>+Wed Apr 15 08:33:47 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_inspect): remove restriction for struct names.</div><div class='add'>+</div><div class='add'>+Wed Apr 15 02:55:02 1998  Kazuya 'Sharl' Masuda  &lt;sharl@www.ufo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* x68 patches to config.sub, ext/extmk.rb.in</div><div class='add'>+</div><div class='add'>+Wed Apr 15 01:22:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_dup_frozen): do not duplicate frozen strings.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): allow nested parenthesises.</div><div class='add'>+</div><div class='add'>+	* io.c (obj_displayln): prints newline after `display'ing the</div><div class='add'>+	  receiver.</div><div class='add'>+</div><div class='add'>+	* io.c (io_puts): avoid generating "\n" each time.  use RS_default</div><div class='add'>+	  instead.</div><div class='add'>+</div><div class='add'>+	* io.c (f_p): ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr 14 22:18:17 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_aref): should not subtract negative index.</div><div class='add'>+</div><div class='add'>+Tue Apr 14 11:34:50 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_10.</div><div class='add'>+</div><div class='add'>+	* parse.y: token names prefixed by `t'.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_s_def): supports subclassing of Struct.</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_new): supports subclassing of IO.</div><div class='add'>+</div><div class='add'>+Mon Apr 13 11:07:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (f_binding): need to restore method name.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): raises SystemStackError, not Fatal.</div><div class='add'>+</div><div class='add'>+	* io.c (obj_display): same as `print self'.</div><div class='add'>+</div><div class='add'>+	* io.c (f_p): can now be called in the method form.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regsub): needed to be mbchar aware.</div><div class='add'>+</div><div class='add'>+Mon Apr 13 13:18:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_trap_eval): all signals delivered to main_thread.</div><div class='add'>+</div><div class='add'>+Mon Apr 13 12:47:03 1998  TAKAHASHI Masayoshi  &lt;maki@inac.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (kcode_set_option): did not set SJIS on SJIS condition.</div><div class='add'>+</div><div class='add'>+Sun Apr 12 22:14:07 1998  Kazunori NISHI  &lt;kazunori@swlab.csce.kyushu-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_uniq_bang): should be `==', not `='. embarrassing.</div><div class='add'>+</div><div class='add'>+Sat Apr 11 02:13:30 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_subseq): SEGVed for `[][1,1]'.</div><div class='add'>+</div><div class='add'>+Fri Apr 10 21:29:06 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_subseq): add check for beg larger than array length.</div><div class='add'>+</div><div class='add'>+Wed Apr  8 17:24:11 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_open): can be called with block (like IO#open).</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): print directory path on error.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chroot): ditto</div><div class='add'>+</div><div class='add'>+	* dir.c (Init_Dir): needed to override `new'.</div><div class='add'>+</div><div class='add'>+Thu Apr  9 18:24:58 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_09.</div><div class='add'>+</div><div class='add'>+	* string.c (str_cmp): do not depend on sentinel at the end of the</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+	* string.c (str_chomp_bang): forgot to set the sentinel.</div><div class='add'>+</div><div class='add'>+Wed Apr  8 00:59:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2int): converted int may be too big to fit in</div><div class='add'>+	  signed int.</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): `foo += 1' should not cause an error.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined): returned false even if the</div><div class='add'>+	  constant is defined at the top level.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_local_variables): dyna_var-&gt;id may be null.  should</div><div class='add'>+	  have checked before calling str_new2().</div><div class='add'>+</div><div class='add'>+Tue Apr  7 01:15:15 1998  Kaneko Naoshi  &lt;wbs01621@mail.wbs.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_regsub): need to check string boundary.</div><div class='add'>+</div><div class='add'>+Tue Apr  7 19:19:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_cmp): returns either 1, 0, -1.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_cmp): should check array length, too</div><div class='add'>+</div><div class='add'>+Tue Apr  7 18:50:16 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_08.</div><div class='add'>+</div><div class='add'>+Tue Apr  7 18:31:27 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (mandir): dll installation for cygwin32</div><div class='add'>+</div><div class='add'>+Tue Apr  7 01:16:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* config.sub (maybe_os): TOWNS support?</div><div class='add'>+</div><div class='add'>+	* config.guess: too strict check for libc versions on linuxes.</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_07.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_cmp): compare each element using `&lt;=&gt;'.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_each_with_index): yields [value, key] pair.</div><div class='add'>+</div><div class='add'>+	* class.c (class_protected_instance_methods): list protected</div><div class='add'>+	  method names.</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_i): exclude protected methods.</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_BLOCK): dynamic variables can be accessed from</div><div class='add'>+	  eval() with bindings.</div><div class='add'>+</div><div class='add'>+Mon Apr  6 14:49:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_yield): must return evaluated value.</div><div class='add'>+</div><div class='add'>+Fri Apr  3 13:07:29 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_schedule): context switch bypassed on wrong</div><div class='add'>+	  conditions.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_name_class): set classname by id before String</div><div class='add'>+	  class is initialized (1.0 behavior restored).</div><div class='add'>+</div><div class='add'>+Fri Apr  3 11:25:45 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num2int): no implicit conversion from string.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num2int): check whether `to_i' returns an Integer.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_zero_p): new method.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_nonzero_p): new method.  returns the receiver if</div><div class='add'>+	  it's not zero.</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_instance_eval): the_class should be the object's</div><div class='add'>+	  singleton class.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_s_new): message is converted into a string.</div><div class='add'>+</div><div class='add'>+Thu Apr  2 18:31:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_call_init): every object call `initialize'.</div><div class='add'>+</div><div class='add'>+Wed Apr  1 08:51:53 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): UNTIL_MOD should be for stmt, not only for expr.</div><div class='add'>+</div><div class='add'>+Wed Apr  1 01:20:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (true_and): boolean operators &amp;, | and ^.</div><div class='add'>+</div><div class='add'>+Tue Mar 31 13:23:58 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_compact_bang): returns nil, if it does not modify</div><div class='add'>+	  the array like String's bang methods.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_uniq_bang): new method to remove duplicate items.</div><div class='add'>+</div><div class='add'>+	* eval.c (bind_s_new): new method.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num2int): raise exception if Fixnums too big to</div><div class='add'>+	  convert into `int' in case that sizeof(int) &lt; sizeof(INT).</div><div class='add'>+</div><div class='add'>+	* string.c (str_center): SEGV on negative width.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): forgot to set sourcefile.</div><div class='add'>+</div><div class='add'>+Mon Mar 30 11:12:29 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (f_test): raises exception for unknown command.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): `class_eval': alias to the module_eval.</div><div class='add'>+</div><div class='add'>+Mon Mar 30 18:50:42 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_capitalize_bang): did not check string modification.</div><div class='add'>+</div><div class='add'>+	* string.c (str_delete_bang): wrong conversion.</div><div class='add'>+</div><div class='add'>+	* string.c (str_intern): typo in error message.</div><div class='add'>+</div><div class='add'>+Mon Mar 30 01:44:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_instance_eval): accepts block as evaluation body.</div><div class='add'>+	  No compilation needed each time.</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_module_eval): ditto</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_umask): umask did not return old values, if no</div><div class='add'>+	  argument given.</div><div class='add'>+</div><div class='add'>+Sun Mar 29 00:54:23 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (f_throw): nil returned always.</div><div class='add'>+</div><div class='add'>+Sat Mar 28 20:40:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_06.</div><div class='add'>+</div><div class='add'>+Sat Mar 28 16:07:11 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_closed): should not cause exception for closed IO.</div><div class='add'>+</div><div class='add'>+	* string.c (str_tr): returned nil for success.</div><div class='add'>+</div><div class='add'>+Sat Mar 28 00:47:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (f_local_variables): new method to return an array of</div><div class='add'>+	  local variable names.</div><div class='add'>+</div><div class='add'>+	* variable.c (obj_instance_variables): now returns an array of</div><div class='add'>+	  variable names, as described in the reference.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): honors default method visibility of the</div><div class='add'>+	  current scope.</div><div class='add'>+</div><div class='add'>+Fri Mar 27 13:49:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_05.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): `site_ruby' added to load_path.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): load-path order changed.  Paths in</div><div class='add'>+	  the RUBYLIB environment variable comes first in non-tainted</div><div class='add'>+	  mode.</div><div class='add'>+</div><div class='add'>+Thu Mar 26 11:51:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): new feature: `protected' methods.</div><div class='add'>+</div><div class='add'>+	* string.c (str_dump): new method.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): block argument can be nil, which means no</div><div class='add'>+	  block is supplied for the method.</div><div class='add'>+</div><div class='add'>+Wed Mar 25 21:20:13 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_reverse_bang): string copied to wrong place.</div><div class='add'>+</div><div class='add'>+Wed Mar 25 08:12:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_modulo): caused SEGV if left operand is not a</div><div class='add'>+	  float value.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_eval): optional third and fourth argument to specify</div><div class='add'>+	  file-name and line-number.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): file-name and line-number set properly.</div><div class='add'>+</div><div class='add'>+	* parse.y (assign_in_cond): literal assignment is now warning, not</div><div class='add'>+	  compile error.</div><div class='add'>+</div><div class='add'>+	* error.c (Warn): Warn() always print message, OTOH Waring()</div><div class='add'>+	  prints when verbose flag is set.</div><div class='add'>+</div><div class='add'>+Tue Mar 24 12:50:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): `.' should come last in the load-path.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): `__send__', alias for `send'.</div><div class='add'>+</div><div class='add'>+Mon Mar 23 12:44:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_chomp_bang): now takes `rs' as an argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_free): main_thread should not be freed.</div><div class='add'>+</div><div class='add'>+Fri Mar 20 16:40:34 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_chomp_bang): chomp! (and other ! methods) returns</div><div class='add'>+	  nil if it does not modify the string.</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_iter_s): should check last pattern since it</div><div class='add'>+	  may be matched to null.</div><div class='add'>+</div><div class='add'>+Thu Mar 19 13:48:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_04.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): `10e0.9' should cause syntax error.</div><div class='add'>+</div><div class='add'>+Wed Mar 18 17:46:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): new file object constant DATA.  Only</div><div class='add'>+	  available for the script from the file.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): forwarding failure point popped too much.</div><div class='add'>+</div><div class='add'>+Tue Mar 17 18:23:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_frexp): newly added.</div><div class='add'>+</div><div class='add'>+	* math.c (math_ldexp): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): calculates modulo.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_remainder): returns reminder, formerly introduced</div><div class='add'>+	  as modulo.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_modulo): calculates proper `modulo'.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): wrong sign for reminder.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 17:07:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_03.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 16:33:53 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_finalize): needed to add pipe_finalize to pipes on</div><div class='add'>+	  cygwin32.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 14:11:06 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_i): needed to consider NOEX_UNDEF.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 13:23:53 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_check_closed): check for `fptr-&gt;f2 == NULL'.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fptr_close): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 16 11:49:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_atexit): free()ing referencing pipe_list.</div><div class='add'>+</div><div class='add'>+	* range.c (range_length): returns zero, if the first is greater</div><div class='add'>+	  than the last.</div><div class='add'>+</div><div class='add'>+	* signal.c (trap_restore_mask): restore signal mask before raising</div><div class='add'>+	  exceptions and throws.</div><div class='add'>+</div><div class='add'>+Fri Mar 13 13:49:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_02.</div><div class='add'>+</div><div class='add'>+	* object.c (mod_clone): need to dups constants and instance</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): forgot to initialize body for NODE_DEFS.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): retrieve self from calling frame, since self</div><div class='add'>+	  changes sometimes.</div><div class='add'>+</div><div class='add'>+	* env.h (FRAME): need to save self in the calling frame.</div><div class='add'>+</div><div class='add'>+	* io.c (f_gets_method): rs should be initialized by RS.</div><div class='add'>+</div><div class='add'>+Thu Mar 12 15:33:57 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* experimental release 1.1b9_01.</div><div class='add'>+</div><div class='add'>+	* range.c (range_s_new): check values by `first &lt;= last'.</div><div class='add'>+</div><div class='add'>+	* parse.y (lastline_set): fixed offset for $_ and $~ in the local</div><div class='add'>+	  variable space.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 02:14:17 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_gets): handle normal case specially for speed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_disable_super): function to disable superclass's</div><div class='add'>+	  method explicitly.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): inherits previous method definition's</div><div class='add'>+	  NOEX_UNDEF-ness, if exists.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_method): disables superclass's overriding</div><div class='add'>+	  method by default.</div><div class='add'>+</div><div class='add'>+Wed Mar 11 01:40:48 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_gt,etc.): do not depend on `&lt;=&gt;', to handle NaN.</div><div class='add'>+</div><div class='add'>+Tue Mar 10 00:03:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): understands multiple options in #! line.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): support for [:alpha:] etc.</div><div class='add'>+</div><div class='add'>+Mon Mar  9 16:53:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.h (GetOpenFile): embed io_check_closed in GetOpenFile.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): zero padding failed for negative</div><div class='add'>+	  integers.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): failed to remove some bits.</div><div class='add'>+</div><div class='add'>+Sat Mar  7 21:51:46 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_i): body may be NULL for some case.</div><div class='add'>+</div><div class='add'>+Fri Mar  6 17:23:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (mbcinit): table driven mbchar detection.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_alloc): check for allocating instance for the</div><div class='add'>+	  primitive classes (mostly perfect).</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_finalize): restore original state at</div><div class='add'>+	  interpreter termination.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_addstr): forgot to check argument</div><div class='add'>+	  type (caused SEGV).  now uses STR2CSTR() macro.</div><div class='add'>+</div><div class='add'>+Thu Mar  5 13:47:39 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): accepts method object as block args.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_missing): use any_to_s() for stringify.</div><div class='add'>+</div><div class='add'>+Wed Mar  4 01:39:52 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_arg): new syntax - block argument in the</div><div class='add'>+	  calling arglist.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): no module search. simplified a lot.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): block arg support.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_block_arg): new syntax - block argument in the</div><div class='add'>+	  formal arglist.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 14:20:15 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (obj_method): returns bound method object.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): argument check for empty methods.</div><div class='add'>+</div><div class='add'>+	* ruby.h (NUM2CHR): new macro, originally from curses module.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 13:03:35 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_putc): new method.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 11:21:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_inspect): more strict charcode detection.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_stop): stopping only thread raises ThreadError</div><div class='add'>+	  exception.</div><div class='add'>+</div><div class='add'>+Tue Mar  3 08:04:56 1998  Tadayoshi Funaba  &lt;tadf@kt.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_alloc): incomplete struct initialization made</div><div class='add'>+	  GC to access unallocated addresses.</div><div class='add'>+</div><div class='add'>+Mon Mar  2 16:28:27 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_stop_method): remove Thread#stop.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 18:16:26 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b9 released.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 09:36:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_delete_nil): needed to compare value to nil, since</div><div class='add'>+	  nil is the valid key for hashes.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_foreach_iter): rehashing causes IndexError.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_foreach_iter): rehash check by pointer comparison.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 17:22:13 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (fname): convert reswords into symbols.</div><div class='add'>+</div><div class='add'>+	* parse.y (reswords): reserved words are now embedded in the</div><div class='add'>+	  syntax (sigh).</div><div class='add'>+</div><div class='add'>+	* parse.y: now reserved words can be method names safely.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 15:50:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_module_eval): clear the_scope's PRIVATE flag before</div><div class='add'>+	  calling eval().</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_call_finalizer_at_exit): run finalizers before any data</div><div class='add'>+	  object being freed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): needed to keep prot_tag-&gt;retval before</div><div class='add'>+	  evaluating the ensure clause.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 11:16:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): reserved words can be appear as method names at</div><div class='add'>+	  right after 'def' and `.'(dot), like foo.next.</div><div class='add'>+</div><div class='add'>+	* eval.c (return_check): checks for return out of thread (formerly</div><div class='add'>+	  done in return_value).</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_TAG): copy retval to outer level.</div><div class='add'>+</div><div class='add'>+	* eval.c (return_value): just set retval, no check, no unwinding.</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): line continuation by backslash at end of line.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): forgot to clear pending_exact on</div><div class='add'>+	  closing parentheses.</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): should not assign dyna_var to true, if it</div><div class='add'>+	  is already defined.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 14:35:03 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (obj_is_kind_of): no longer accepts true/false/nil.</div><div class='add'>+</div><div class='add'>+	* object.c ({true,false,nil}_to_i): can be converted into integers.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 12:11:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_s_quote): needed to be mbchar aware.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_s_new): wrong iter mark.</div><div class='add'>+</div><div class='add'>+Sat Feb 21 22:59:30 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (f_syscall): no argument check.</div><div class='add'>+</div><div class='add'>+Fri Feb 20 10:17:51 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b8 released.</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c (kconv_kconv): default output code now be</div><div class='add'>+	  determined according to the value of $KCODE.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_get_kcode): can retrieve $KCODE from C code.</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): if/unless modifiers returns nil, if condition is</div><div class='add'>+	  not established.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 11:06:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c (kconv_kconv): charcode can be specified by</div><div class='add'>+	  code name (JIS, SJIS, EUC like value of $KCODE).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): forgot to fixup_jump for (?:..).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): needed to clear pending_exact on</div><div class='add'>+	  non-registering grouping (?:...).</div><div class='add'>+</div><div class='add'>+Wed Feb 18 19:54:21 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): needed to set lex_state to EXPR_END.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 18:45:10 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* patches for cygwin32 applied.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 00:41:31 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): needed to be mbchar aware to increment one</div><div class='add'>+	  character.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): \Z matches newline just before the end of</div><div class='add'>+	  the string.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 00:04:32 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): Time.gm and Time.local now understands</div><div class='add'>+	  Time#to_a format.</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): replace happened twice for null pattern.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_search): null pattern should not match after newline</div><div class='add'>+	  at the end of string.</div><div class='add'>+</div><div class='add'>+	* time.c (time_isdst): now returns boolean value.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_check_type): treat special constants in messages.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): new form `::Const' to see toplevel constants.</div><div class='add'>+</div><div class='add'>+	* parse.y (cond): SEGV on `if ()'.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): some data needed explicit free().</div><div class='add'>+</div><div class='add'>+Mon Feb 16 23:55:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_free): release duplicated block informations.</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_copy_prev): duplicate outer block information into</div><div class='add'>+	  the heap, when proc/binding created.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 14:38:25 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mon): now 1 for January and so on.</div><div class='add'>+</div><div class='add'>+	* time.c (time_year): year in 19xx (no + 1900 needed anymore).</div><div class='add'>+</div><div class='add'>+Mon Feb 16 13:28:33 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): need to fetch mbchar's second byte</div><div class='add'>+	  without translation.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 12:29:27 1998  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (f_pass_block): pass iterator block to other method.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 08:16:11 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parse_regx): handle \s before read_escape().</div><div class='add'>+</div><div class='add'>+	* parse.y (read_escape): `\s' in strings as space.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 17:29:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b7 released.</div><div class='add'>+</div><div class='add'>+	* string.c (str_aset): string insertion by `str[n] = str2'.</div><div class='add'>+</div><div class='add'>+	* string.c (str_oct): does recognize `0x'.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (f_sprintf): use base 10 for conversion from string to</div><div class='add'>+	  integer.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 14:51:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (do_coerce): proper error message.</div><div class='add'>+</div><div class='add'>+	* string.c (str_sum): bug - masked by wrong value. (sigh..)</div><div class='add'>+</div><div class='add'>+Sat Feb  7 15:11:14 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_empty): new method</div><div class='add'>+</div><div class='add'>+Fri Feb  6 01:42:15 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_asctime): use asctime(3), not strftime(3).</div><div class='add'>+</div><div class='add'>+Thu Feb  5 18:58:46 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fptr_close): do not free path on close().</div><div class='add'>+</div><div class='add'>+	* array.c (ary_filter): new method.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_with_index): new method.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 14:10:35 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): singleton class def can be appeared inside</div><div class='add'>+	  method bodies.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_replace): replace content.</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace_method): replace content.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_replace_method): replace elements.</div><div class='add'>+</div><div class='add'>+	* string.c (str_succ_bang): String#succ!</div><div class='add'>+</div><div class='add'>+Thu Feb  5 18:20:30 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_upcase_bang): multi byte character support.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 13:55:26 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_reverse): SEGV on empty array reverse.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 12:24:07 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_to_a): non matching element should be nil.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_load_script): load script after all initialization.</div><div class='add'>+</div><div class='add'>+	* bignum.c (str2inum): need to interpret prefix `0' of `0x'.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 10:00:18 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): use `sizeof(INT)*8' instead of 32.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 14:09:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): grab environment region too.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 18:36:25 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): check `sh' to be exist.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 18:18:19 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_stdio_set): assignment to $stdin or $stdout does</div><div class='add'>+	  reopen() as well as $stderr.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 14:18:40 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (mod_ancestors): should not include singleton classes.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_type): should not return internal class.</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): unwillingly closes stdio streams.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 11:50:35 1998  Toshihiko SHIMOKAWA  &lt;toshi@csce.kyushu-u.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_addrsetup): forgot to use htons().</div><div class='add'>+</div><div class='add'>+Tue Jan 27 23:15:24 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* keywords: __FILE__, __LINE__ are available again.</div><div class='add'>+</div><div class='add'>+Fri Jan 23 14:19:28 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b6 released.</div><div class='add'>+</div><div class='add'>+	* object.c (mod_to_s): need to duplicate classpath.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_inspect): need to duplicate classpath.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 00:37:47 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (STR2CSTR): new macro to retrieve char*.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_method): `initialize' should always be</div><div class='add'>+	  private, even if it defined by C extensions.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): `initialize' should always be private.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 16:21:08 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): some singleton class def cause SEGV.</div><div class='add'>+</div><div class='add'>+	* eval.c (TMP_ALLOC): replace ALLOCA_N, where thread context</div><div class='add'>+	  switch may happen.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 01:43:42 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_FRAME): do not use ALLOCA_N().  crash on some</div><div class='add'>+	  platforms that use missing/alloca.c.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): too many pops for non register</div><div class='add'>+	  subexpr.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): open parentheses after identifiers are argument</div><div class='add'>+	  list, even if whitespaces have seen.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 15:19:59 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (terms): quoted word list by %w(a b c).</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: more accurate check for tcl/tk libs.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat): most of the FileTest methods (and function</div><div class='add'>+	  `test') accept File objects as the argument.</div><div class='add'>+</div><div class='add'>+Tue Jan 19 18:19:24 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in (install): there should be no newline after install:</div><div class='add'>+</div><div class='add'>+	* re.c (MIN): renamed from min().  there's a local variable named</div><div class='add'>+	  min in the file, so that some cpp will raise an error.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 16:30:05 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b5 released.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_syswait): no exception raised.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 00:43:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (CLONESETUP): copies its singleton classes too.</div><div class='add'>+</div><div class='add'>+	* class.c (singleton_class_attached): saves binded object in the</div><div class='add'>+	  singleton classes.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): calls singleton_method_added even in the</div><div class='add'>+	  singleton class clauses.</div><div class='add'>+</div><div class='add'>+Fri Jan 15 23:22:43 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -S does not recognize PATH.</div><div class='add'>+</div><div class='add'>+Thu Jan 15 02:03:12 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_clear_cache_by_id): clear only affected cache</div><div class='add'>+	  entries.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 02:14:48 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: new UDP/IP socket classes.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 10:00:18 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_cmp): ignorecase($=) works wrong.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 13:19:55 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b4 released.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_missing): class name omitted from the error message.</div><div class='add'>+</div><div class='add'>+	* error.c (exc_inspect): description changed.</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): GlobalExit's superclass did not filled,</div><div class='add'>+	  since GlobalExit created earlier than String.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 12:10:09 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (aryset): expr in the brackets can be null.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 21:13:56 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): keep stderr unclosed.</div><div class='add'>+</div><div class='add'>+	* io.c (io_errset): keep stderr unclosed.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 00:27:43 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: syntax modified for `while expr do .. end' etc.</div><div class='add'>+</div><div class='add'>+	* process.c (f_exec,f_system): can supply arbitrary name for the</div><div class='add'>+	  new process.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 16:59:13 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_basename): removes any extension by ".*".</div><div class='add'>+</div><div class='add'>+Sun Jan  4 19:36:22 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): needed to update lex_p (reading point).</div><div class='add'>+</div><div class='add'>+Sat Jan  3 19:14:14 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c,object.c: duplicate defines mKernel and cFinxnum.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 20:38:59 1998  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (NUM2CHAR): uses the first character for</div><div class='add'>+	  string arguments.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_fill): did not extend array for ranges.</div><div class='add'>+</div><div class='add'>+	* array.c (beg_len): did not return end pos bigger than size.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 02:09:16 1998  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): bug in nil check.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_fill): bug in nil check.</div><div class='add'>+</div><div class='add'>+Tue Dec 30 11:46:23 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_path_tainted): checks directories in PATH</div><div class='add'>+	  environment variable are not world writable.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): invoke specified interpreter if the #! line</div><div class='add'>+	  does not contain the word `ruby'.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 03:26:41 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (uscore_get): type information included in the error</div><div class='add'>+	  message.</div><div class='add'>+</div><div class='add'>+	* variable.c (f_untrace_var): does not free trace-data within</div><div class='add'>+	  trace procedure.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 02:50:29 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b3 released.</div><div class='add'>+</div><div class='add'>+	* ruby.h: inlining some functions on gcc 2.x</div><div class='add'>+</div><div class='add'>+Tue Dec 23 02:47:33 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): public/private information kept in the current</div><div class='add'>+	  scope, to remove undesired state from the class/module.</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): remove hidden limit of 100 bytes of</div><div class='add'>+	  result string, using malloc'ed buffer.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_update): merges the contents of another hash,</div><div class='add'>+	  overriding existing keys.</div><div class='add'>+</div><div class='add'>+	* regex.c (must_instr): totally re-written.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): try to allocate proper sized buffer using</div><div class='add'>+	  fstat(2) for speedup.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 00:27:28 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (must_instr): need to skip 2 bytes for mbchars.</div><div class='add'>+</div><div class='add'>+Fri Dec 19 01:18:29 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b2 released.</div><div class='add'>+</div><div class='add'>+	* eval.c (check_errat): check and convert (if necessary) traceback</div><div class='add'>+	  information before assigning to the variable $@.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_raise): optional third argument to specify traceback</div><div class='add'>+	  information.</div><div class='add'>+</div><div class='add'>+	* io.c (f_open): prevent infinite recursive call.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 19:33:47 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_rindex): now accepts regexp as index.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 18:42:50 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: modified to detect win32 socket lib.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 00:25:03 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_equal): checks for source and casefold and kcode matching.</div><div class='add'>+</div><div class='add'>+	* marshal.c: became built-in module.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (r_object): displays struct name for</div><div class='add'>+	  non-compatible struct.</div><div class='add'>+</div><div class='add'>+	* string.c (str_index_method): now searches character (fixnum) in</div><div class='add'>+	  the string.</div><div class='add'>+</div><div class='add'>+	* string.c (str_include): redefine `include?'.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): start_nowidth saves current stack position</div><div class='add'>+	  to stop_nowidth.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): add space to stop_nowidth to save</div><div class='add'>+	  runtime stack position.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 14:57:43 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): wrong exception for regexp that match with</div><div class='add'>+	  null string (use substr instead of subseq).</div><div class='add'>+</div><div class='add'>+Sat Dec 13 00:13:32 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): remove bare assocs from expr rule.</div><div class='add'>+</div><div class='add'>+	* rbconfig.rb: renamed from config.rb (it was too generic name).</div><div class='add'>+</div><div class='add'>+Fri Dec 12 00:50:25 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): warns if BEGIN or END appear in the method</div><div class='add'>+	  bodies.</div><div class='add'>+</div><div class='add'>+	* string.c (str_match): calls y =~ x if y is neither String nor</div><div class='add'>+	  Regexp so that eregex.rb works.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_at_exit): to register end proc.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_module_function): define 'function' method</div><div class='add'>+	  for the Module, not private method.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_function): function to define `function' method.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): inherit visibility from superclass's method</div><div class='add'>+	  except when it is set to `function'</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): new visibility status `function'.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): do not clear eval_tree. thus enable multiple</div><div class='add'>+	  command line script by option `-e'.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): END execute just once.</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): BEGIN/END built in the syntax.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 13:14:35 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (mod_le): Module (or Class) comparison.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_remove_method): raises NameError if named method does</div><div class='add'>+	  not exist.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: remove CHECK macro for BSD curses.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 12:44:01 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: sun4 cc patch</div><div class='add'>+</div><div class='add'>+Wed Dec 10 15:21:36 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_load): can supply evolution proc</div><div class='add'>+	  object as optional second argument.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_source): get source string of the regular expression.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 10:05:17 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b1 released.</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd): token buffer overrun.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): forgot to protect rb_argv0 from gc.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): call finalizers at process termination.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_call_finalizer_at_exit): call free proc for every Data</div><div class='add'>+	  Wrapper, and finalizer for specified objects at termination.</div><div class='add'>+</div><div class='add'>+	* version.c (show_version): version format changed.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): wrong match with non-greedy if they appear</div><div class='add'>+	  more than once in regular expressions.</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-expr-beg): forgot to handle modifiers.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 19:00:15 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_puts): just put a newline if no argument given.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_mainloop): thread-aware tk handle</div><div class='add'>+	  when $tk_thread_safe is set.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_mainloop): use Tcl_DoOneEvent()</div><div class='add'>+	  instead of Tk_MainLoop().</div><div class='add'>+</div><div class='add'>+Mon Dec  6 07:11:16 1997  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_puts): core dumped without any argument.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 18:17:17 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_remove_method): remove (not undef) a method from the</div><div class='add'>+	  class/module.</div><div class='add'>+</div><div class='add'>+	* variable.c (obj_remove_instance_variable): method to remove</div><div class='add'>+	  instance variables.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 13:50:29 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1b0 released.</div><div class='add'>+</div><div class='add'>+	* string.c (str_aref): called str_index for regexp.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 15:24:41 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_between): wrong comparison made.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 18:18:05 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: generate Makefile for extension modules out of ruby</div><div class='add'>+	  source tree. use like `ruby -r mkmf extconf.rb'.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix2str): enlarge buffer to prevent overflow on some</div><div class='add'>+	  machines.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): wrong line number generated after here-doc.</div><div class='add'>+</div><div class='add'>+Fri Nov 21 13:17:12 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): skip multibyte characters in comments.</div><div class='add'>+</div><div class='add'>+Wed Nov 19 17:19:20 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_a): nil.to_a =&gt; [].</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): wrong node generation.</div><div class='add'>+</div><div class='add'>+Tue Nov 18 10:13:08 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (Init_Array): Array#=== works as Array#include?</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): insert initialize code for jump_n,</div><div class='add'>+	  before entering loops.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): does not save registers unless $&amp; etc appear</div><div class='add'>+	  in the script.</div><div class='add'>+</div><div class='add'>+Mon Nov 17 13:01:43 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): add defined? check for receivers and</div><div class='add'>+	  arguments for calls.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_search): cache last match object.</div><div class='add'>+</div><div class='add'>+	* re.c (match_aref): $[0] etc. are available.</div><div class='add'>+</div><div class='add'>+Sat Nov 15 00:11:36 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_popen): "rb" detection</div><div class='add'>+</div><div class='add'>+Fri Nov 14 18:28:40 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): returns whole match if the pattern does</div><div class='add'>+	  not contain any parentheses.</div><div class='add'>+</div><div class='add'>+Thu Nov 13 14:39:06 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub): returns copy of the receiver string, even if</div><div class='add'>+	  any substitution occurred.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): no-width match by (?=..), (?!..).</div><div class='add'>+</div><div class='add'>+Wed Nov 12 13:44:47 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: remove coerce from Time class.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_match): non-greedy match by ??, *? +?, {n,m}?.</div><div class='add'>+</div><div class='add'>+Mon Nov 10 11:24:51 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): non-registering parens (?:..).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): new meta character \&lt; (wordbeg)</div><div class='add'>+	  and \&gt; (wordend).</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): embedded comment for regular</div><div class='add'>+	  expression by (?#...).</div><div class='add'>+</div><div class='add'>+Fri Nov  7 16:58:24 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): perl5 regexp \A and \Z available.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): can expand compile stack dynamically.</div><div class='add'>+</div><div class='add'>+	* regex.c (PUSH_FAILURE_POINT): wrong compare condition.</div><div class='add'>+</div><div class='add'>+Wed Nov  2 16:00:00 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sub_s): "".sub! "", "" =&gt; "\000"</div><div class='add'>+</div><div class='add'>+Fri Oct 31 15:52:10 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc): keyword assoc like {fg-&gt;"black"}.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 17:33:38 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_println): print with newline, which is not affected by</div><div class='add'>+	  the values of $/ and $\.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 16:54:01 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_chop_bang): "".chop caused SEGV.</div><div class='add'>+</div><div class='add'>+	* string.c (str_chomp_bang): method to chop out last newline.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 13:49:13 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb.in: library may have pathname contains `.'</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue): should not protect SystemError.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 10:58:53 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_with_open_stream): ensures to close stream.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 11:17:44 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_errset): value of $stderr can be changed (to any IO</div><div class='add'>+	  object).</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): $&lt; can be anything that responds to `write'.</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_with_open_file): ensures to close file.</div><div class='add'>+</div><div class='add'>+	* error.c (exception): create error under the current class/module.</div><div class='add'>+</div><div class='add'>+	* range.c (range_eqq): fixnum check for last needed too.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 12:52:30 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: Socket::Constants added.</div><div class='add'>+</div><div class='add'>+	* file.c: File::Constants added for inclusion.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_join): call ary_join() recursively for the 1st</div><div class='add'>+	  array element.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 12:18:29 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): wrong condition for #! check with -x.</div><div class='add'>+</div><div class='add'>+	* file.c (file_s_dirname): did return "" for "/a".</div><div class='add'>+</div><div class='add'>+Fri Oct 17 14:29:09 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: now works on alpha-linux.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigadd): some undefined side effect order assumed.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 17:49:24 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: function prototypes added.</div><div class='add'>+</div><div class='add'>+Mon Oct 13 16:54:18 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_class_id): call superclass's `inherited'</div><div class='add'>+	  method when making subclasses.</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): clear lex_lastline at the end of file.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): need to undef Class#append_features.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): no warning on extending classes or modules.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 11:17:50 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): the exception name follows after the error</div><div class='add'>+	  message.</div><div class='add'>+</div><div class='add'>+	* eval.c (compile_error): error message slightly changed.</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): script parsing will be terminated by __END__ at</div><div class='add'>+	  beginning of line.</div><div class='add'>+</div><div class='add'>+	* eval.c (compile_error): `__END__' is no longer a keyword.</div><div class='add'>+</div><div class='add'>+	* parse.y (nextc): protect lastline read from script stream.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 14:06:06 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha9 released.</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_append_features): renamed from extend_class.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): defining method calls `method_added'.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): exception while processing options must</div><div class='add'>+	  terminate the interpreter.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): wrong method configuration.  `new'</div><div class='add'>+	  should have been a singleton method.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 18:55:38 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/kconv/kconv.c (kconv_guess): code to guess character code</div><div class='add'>+	  from string.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 18:38:17 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: now encode/decode base64 by `m' template.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 10:51:10 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: needed to include lex.c in the distribution.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): f_require() called too early.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provide): module extensions should always be `.o'.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 11:38:31 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha8 released.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (r_object): remove temporal regist for</div><div class='add'>+	  structs. (caused problem if structs form cycles.)</div><div class='add'>+</div><div class='add'>+	* parse.y (match_gen): static binding for match(=~) calls</div><div class='add'>+	  with regexp literals.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 15:26:55 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: protect retval in struct tag from GC for C_ALLOCA.</div><div class='add'>+</div><div class='add'>+	* eval.c: no more pointer value from setjmp/longjmp.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 14:01:49 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_byte): argument must be char.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 10:30:22 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_const_at): global constants now belongs to the</div><div class='add'>+	  class Object.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): new global constant NIL.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (marshal_dump): try to set binmode.</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (r_object): forgot to re-regist structs in</div><div class='add'>+	  the object table.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): call Init_ext() before any require()</div><div class='add'>+	  calls by `-r'.</div><div class='add'>+</div><div class='add'>+Fri Sep 30 14:29:22 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (w_object): marshal dumped core.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 10:27:39 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: bignum test suits added.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): new pseudo variable `true' and `false'.</div><div class='add'>+</div><div class='add'>+	* parse.y: new keywords `true' and `false' added.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 13:37:58 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (forbid_setid): forbid some options in suid mode.</div><div class='add'>+</div><div class='add'>+	* ruby.h (NUM2DBL): new macro to convert into doubles.</div><div class='add'>+</div><div class='add'>+Mon Sep 27 09:53:48 1997  EGUCHI Osamu  &lt;eguchi@shizuokanet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: modified for speeding.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 18:27:59 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/from.rb: some extensions.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 13:15:56 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lhs): no more syntax error on `obj.CONSTANT = value'.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 14:41:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): deferred calling Init_ext() just before eval_node.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 13:27:24 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_isatty): forgot to return TRUE value.</div><div class='add'>+</div><div class='add'>+Fri Sep 25 11:10:58 1997  EGUCHI Osamu  &lt;eguchi@shizuokanet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: use _setjmp/_longjmp instead of setjmp/longjmp on some</div><div class='add'>+	  platforms.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 17:43:13 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): String#taint and String#taint? added.</div><div class='add'>+</div><div class='add'>+	* class.c (mod_ancestors): ancestors include the class itself.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 00:57:00 1997  Katsuyuki Okabe  &lt;HGC02147@niftyserve.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* X68000 patch.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 20:42:30 1997  EGUCHI Osamu  &lt;eguchi@shizuokanet.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (node_newnode): SEGV on null node setup.</div><div class='add'>+</div><div class='add'>+Mon Sep 22 11:22:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): wrong safe condition check.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 14:46:02 1997  MAEDA shugo  &lt;shugo@po.aianet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_inspect): garbage added to classpath.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 11:49:23 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (newtok): forgot to adjust buffer size when shrinking</div><div class='add'>+	  the token buffer.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find): rb_eval_cmd() does not return value.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): close fds on pipe exec. fcntl(fd, F_SETFD, 1)</div><div class='add'>+	  no longer used.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 17:54:25 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (f_test): problem if wrong command specified.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): close stdaux and stdprn for MSDOS.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): should not add path from environment</div><div class='add'>+	  variable, if ruby is running under setuid.</div><div class='add'>+</div><div class='add'>+	* process.c (init_ids): check suid check for setuid/seteuid etc.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 00:42:04 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): \w{3} and \W{3} did not work.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 10:31:48 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha7 released.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_new): no setbuf() for NT.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fopen,rb_fdopen): set close-on-exec for every fd.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 15:55:31 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/marshal/marshal.c (r_bytes0): extra big length check.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 16:27:14 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_fptr_atexit): clean up popen()'ed fptr.</div><div class='add'>+</div><div class='add'>+	* error.c (set_syserr): some system has error code that is bigger</div><div class='add'>+	  than sys_nerr. grrr.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 18:33:33 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_s_new): dereferenced nil for optional mode.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 10:26:03 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (class_instance_methods): do not include methods which</div><div class='add'>+	  are changed to private in subclasses.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 12:38:53 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (f_global_variables): list name of the global</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_id): returns unique integer.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 14:05:16 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha6 released.</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_s_constants): context sensitive constant list.</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_constants): no more `all' option.</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_const_of): the values for autoload classes are</div><div class='add'>+	  their name strings.</div><div class='add'>+</div><div class='add'>+	* class.c (class_instance_methods): no special treatment for</div><div class='add'>+	  singleton classes.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_singleton_methods): returns list of singleton</div><div class='add'>+	  method names.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): no here document after `class' keyword.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_load): expand path if fname begins with `~'.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 13:19:48 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_i): do not list undef'ed methods.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 13:42:48 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha5 released.</div><div class='add'>+</div><div class='add'>+	* object.c (mod_attr_reader): create methods to define attribute</div><div class='add'>+	  reader/write/accessor.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_define_attr): always defines accessors.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): alias occurred in the module body caused SEGV.</div><div class='add'>+</div><div class='add'>+	* parse.y: did not generate here document strings properly.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 11:43:57 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): heredoc dropped an extra character.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 11:10:21 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (class_instance_methods): same method names should not</div><div class='add'>+	  appear more than once.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): spaces can follow =begin/=end.</div><div class='add'>+</div><div class='add'>+	* variable.c (find_class_path): look for class_tbl also for</div><div class='add'>+	  unnamed fundamental classes, such as Object, String, etc.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_name_class): can't name class before String class</div><div class='add'>+	  is initialized.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): unrecognized dependency from GC to</div><div class='add'>+	  Array.</div><div class='add'>+</div><div class='add'>+	* variable.c (find_class_path): could not find class if Object's</div><div class='add'>+	  iv_tbl is NULL.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 13:12:05 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha4 released.</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_constants): wrong condition for singleton</div><div class='add'>+	  class.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): revised `=begin' skip code.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): forgot to free(eos).</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): spaces after `&lt;&lt;' prohibited for here</div><div class='add'>+	  documents to avoid confusing with operator `&lt;&lt;'.</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): separated from rb_eval().</div><div class='add'>+</div><div class='add'>+Wed Aug 27 11:32:42 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha3 released.</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_name): returns name of the class/module.</div><div class='add'>+</div><div class='add'>+	* parse.y (here_document): finally here document available now.</div><div class='add'>+</div><div class='add'>+	* variable.c (fc_i): some classes/modules does not have iv_tbl.</div><div class='add'>+</div><div class='add'>+	* variable.c (find_class_path): avoid infinite loop.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 13:43:47 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): undef'ing non-existing method will raise</div><div class='add'>+	  NameError exception.</div><div class='add'>+</div><div class='add'>+	* object.c (class_s_new): needed to create metaclass too.</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): no class name print for anonymous class.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): proper exception raised if raise() called</div><div class='add'>+	  without arguments, with $! or $@ set.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): superclass()'s method argument setting</div><div class='add'>+	  was wrong again.</div><div class='add'>+</div><div class='add'>+	* class.c (mod_ancestors): list superclasses and included modules</div><div class='add'>+	  in priority order.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 11:53:11 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha2 released.</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-parse-region): auto-indent now</div><div class='add'>+	  supports "\\" in the strings.</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_getmember): new API to get member value from C</div><div class='add'>+	  language side.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 21:39:05 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): remove unnecessary local variable</div><div class='add'>+	  initialize by nil.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 14:26:40 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): modified exception print format.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 16:10:58 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ruby-mode.el (ruby-calculate-indent): wrong indent level</div><div class='add'>+	  calculated with keyword operators.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 11:36:58 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): ary[0] += 1 cause SEGV</div><div class='add'>+</div><div class='add'>+Wed Aug 20 17:28:50 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): require() all modules after</div><div class='add'>+	  processing all options</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): more security checks added.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): insecure path on exec.</div><div class='add'>+</div><div class='add'>+	* hash.c (f_getenv): PATH modification security check.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 00:15:38 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha1 released.</div><div class='add'>+</div><div class='add'>+	* eval.c (mod_eval): work as normal eval() if second binding</div><div class='add'>+	  argument given.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): did not raise ArgumentError if too many</div><div class='add'>+	  arguments more than optional arguments (without rest arg).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): did not work well for op_asgn2 (attribute</div><div class='add'>+	  self assignment).</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): returns main thread.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 09:25:56 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (inspect_i): did not display T_DATA instance variables.</div><div class='add'>+</div><div class='add'>+	* parse.y: provides more accurate line number information.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_value): include value's backtrace information in</div><div class='add'>+	  the variable `$@'.</div><div class='add'>+</div><div class='add'>+	* eval.c (f_abort): print backtrace and exit.</div><div class='add'>+</div><div class='add'>+Sat Aug 16 00:17:44 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (class_new_instance): do not make instance from virtual</div><div class='add'>+	  classes.</div><div class='add'>+</div><div class='add'>+	* object.c (class_s_new): do not make subclass of singleton class.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 15:49:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): block context switch in the trace</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): clear method cache at class extension.</div><div class='add'>+</div><div class='add'>+	* object.c (obj_type): returns object's class even if it defines</div><div class='add'>+	  singleton methods.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 19:40:43 1997  WATANABE Hirofumi  &lt;watanabe@ase.ptg.sony.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): small typo caused SEGV.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:51:46 1997  Yukihiro Matsumoto  &lt;matz@netlab.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* version 1.1 alpha0 released.</div><div class='add'>+</div><div class='add'>+Local variables:</div><div class='add'>+add-log-time-format: (lambda ()</div><div class='add'>+  (let* ((time (current-time))</div><div class='add'>+  	 (diff (+ (cadr time) 32400))</div><div class='add'>+	  (lo (% diff 65536))</div><div class='add'>+	  (hi  (+ (car time) (/ diff 65536))))</div><div class='add'>+    (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))</div><div class='add'>+indent-tabs-mode: t</div><div class='add'>+tab-width: 8</div><div class='add'>+end:</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..d440e76965<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-1.9.3?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/ChangeLog-1.9.3</a></div><div class='hunk'>@@ -0,0 +1,80621 @@</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 poped 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 outerpolate 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-convertion 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'>+	  (commited 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.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 19:43:53 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: use strlcpy for error messages.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 16:41:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): returns dispatched result.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): also in ripper, saves in_def before restoring.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 12:30:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_header_ucontext_h): do not use ucontext.h on Mac</div><div class='add'>+	  OS X 10.5 or later.  merged from MacPorts.</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_daemon): daemon(3) is deprecated on Mac OS</div><div class='add'>+	  X 10.5 or later.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 11:37:07 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): use strlcpy() instead of strncpy().</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_p): ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 09:14:28 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_call): block should not be given to yield.</div><div class='add'>+	  [ruby-core:20583]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 23:48:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (sleep_timeval): cast tv_usec to long to shut up</div><div class='add'>+	  warnings on OSX.  [ruby-dev:37449]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 23:34:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_open): set FMODE_SYNC and FMODE_DUPLEX.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 23:29:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): revive global sub, gsub, chop, chomp</div><div class='add'>+	  only when auto looping options (-p/-n) is specified.</div><div class='add'>+	  [ruby-core:20570]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 22:48:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_open): new method PTY.open.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 21:24:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (get_device_once): use DEVICELEN instead of</div><div class='add'>+	  sizeof SlaveName.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 21:01:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): make it static.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 20:59:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (child_info): add slavename.</div><div class='add'>+	  (chfunc): use slavename.</div><div class='add'>+	  (establishShell): set slavename.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 20:16:46 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (EXTMK_ARGS): shouldn't use ``\"'' because cmd.exe eat</div><div class='add'>+	  ''\'' in such quotes.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 19:07:31 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): define CANONICALIZATION_FOR_MATHN</div><div class='add'>+	  to follow r20683.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 18:12:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake/packagetask.rb (Rake::PackageTask): small document</div><div class='add'>+	  update from okkez in [ruby-dev:37443]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 16:28:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_callee_setup_arg_complex): uses cfp from</div><div class='add'>+	  blockptr instead of the current cfp.  [ruby-core:20544]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 14:56:59 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_metaclass.rb: new test case for metaclass hierarchy.</div><div class='add'>+</div><div class='add'>+	* class.c (make_metametaclass): new function. extracted from</div><div class='add'>+	  rb_make_metaclass.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): uses make_metametaclass when called for a</div><div class='add'>+	  metaclass.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_singleton_class): creates a meta^(n+2)-class in</div><div class='add'>+	  addition to a meta^(n+1)-class when called for a meta^(n)-class.</div><div class='add'>+	  This is because the returned meta^(n+1) class must acts as an instance of</div><div class='add'>+	  Class, metaclass of Class, ..., meta^(n+1)-class of Class,</div><div class='add'>+	  Module, metaclass of Module, ..., meta^(n+1)-class of Module,</div><div class='add'>+	  Object, metaclass of Object, ..., meta^(n+2)-class of Object,</div><div class='add'>+	  BasicObject, metaclass of BasicObject, ..., meta^(n+2)-class of</div><div class='add'>+	  and BasicObject even when Class, Module, Object or BasicObject has</div><div class='add'>+	  not have its meta^(i)-class yet.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 15:13:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* id.h, template/id.h.tmpl (ruby_method_ids): sees YYTOKENTYPE too.</div><div class='add'>+	  [ruby-dev:37436]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 15:02:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (EXTMK_ARGS): needs MINIRUBY for cross-compile.</div><div class='add'>+	  [ruby-core:20131]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 14:39:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call0): NODE_ZSUPER supported.  [ruby-core:20480]</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call_super): uses method_missing().</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (method_missing): get rid of too large alloca.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (rb_call0, method_missing): uses idMethodMissing.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_add_method, remove_method, rb_undef): uses</div><div class='add'>+	  id__send__.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (Init_eval_method): removed IDs which are defined as</div><div class='add'>+	  immediate values.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 11:35:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_backtrace): defaults to script name for C functions.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 11:32:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangled_path, rubylib_mangled_path2): cannot use</div><div class='add'>+	  locale encoding before load path is initialized</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath_safe): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): loads encdb so that encodings can be</div><div class='add'>+	  loaded, then associates script name and load paths with the</div><div class='add'>+	  locale encoding.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 10:00:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (btest-ruby): use RUNRUBY instead of MINIRUBY to load the</div><div class='add'>+	  shared library.  [Bug #849]</div><div class='add'>+</div><div class='add'>+Sun Dec 14 22:31:19 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1_karatsuba): remove temporal bignum.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigsqr): call bigmul0(x, x) because it is faster than the</div><div class='add'>+	  original bigsqr at this point.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): a value returned from bigsqr is already</div><div class='add'>+	  truncated.</div><div class='add'>+</div><div class='add'>+Sun Dec 14 21:13:02 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1_karatsuba): fix comment and refactoring.</div><div class='add'>+</div><div class='add'>+Sun Dec 14 14:53:41 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1_balance, bigmul1_karatsuba): remove all</div><div class='add'>+	  rb_gc_force_recycle which causes memory leak.</div><div class='add'>+</div><div class='add'>+Sun Dec 14 14:26:11 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/README: directory structure changed</div><div class='add'>+</div><div class='add'>+Sun Dec 14 09:14:37 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* reverts r20713.</div><div class='add'>+</div><div class='add'>+Sun Dec 14 12:51:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_mul): faster multiplication by Karatsuba method and</div><div class='add'>+	  twice faster square than normal multiplication. [ruby-dev:37392]</div><div class='add'>+</div><div class='add'>+	* random.c (rb_rand_internal): used by Bignum#*.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: add some tests for above.</div><div class='add'>+</div><div class='add'>+Sun Dec 14 01:35:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (forked_child): new variable.</div><div class='add'>+	  (before_exec): don't call rb_thread_stop_timer_thread if</div><div class='add'>+	  forked_child.</div><div class='add'>+	  (after_exec): reset forked_child after rb_thread_start_timer_thread.</div><div class='add'>+	  (rb_fork): set forked_child just after fork in child.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (chfunc): extracted from establishShell.</div><div class='add'>+	  (establishShell): use rb_fork.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:37418]</div><div class='add'>+</div><div class='add'>+Sat Dec 13 22:17:30 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (help): describes more targets.</div><div class='add'>+	  based on a patch by Michael Klishin. [ruby-core:20523].</div><div class='add'>+</div><div class='add'>+Sat Dec 13 18:34:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_printable): wrong condition for string iteration.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 16:04:48 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (default_external): endless recursion during</div><div class='add'>+	  loading a locale encoding on some locale.</div><div class='add'>+	  fixed by Nobuyoshi Nakada.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 15:55:37 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): fixed default_internal is nil.</div><div class='add'>+	  (closes #862)</div><div class='add'>+</div><div class='add'>+Sat Dec 13 15:52:27 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_equal): remove documentation error "Otherwise,</div><div class='add'>+	  compares them as strings".  [ruby-dev:37398]</div><div class='add'>+</div><div class='add'>+	* string.c (sym_inspect): quote if symbol contains non-printable</div><div class='add'>+	  characters.  [ruby-dev:37398]</div><div class='add'>+</div><div class='add'>+Sat Dec 13 14:24:38 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/enc/test_utf16.rb: feature changed in r20626.</div><div class='add'>+	  follows it.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 13:41:44 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb: feature changed in r20626.</div><div class='add'>+	  follows it.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 13:03:20 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: use rb_usascii_str_new2 instead of rb_str_new2.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 12:48:57 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb: feature changed in r20626.</div><div class='add'>+	  follows it.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 12:38:16 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/test.rb (MinTest::Unit#location):</div><div class='add'>+	  skips user-defined assertions as MiniTest's.</div><div class='add'>+	  e.g. for test/ruby/test_m17n.rb.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 09:17:33 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 r4503.</div><div class='add'>+	* test/minitest/test_mini_test.rb: ditto.</div><div class='add'>+	* lib/miniunit/autorun.rb: added (as part of r4503).</div><div class='add'>+</div><div class='add'>+Sat Dec 13 08:35:14 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_canonicalization): renamed.</div><div class='add'>+</div><div class='add'>+	* ext/math/complex.c: followed the above change.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_canonicalization): renamed.</div><div class='add'>+</div><div class='add'>+	* ext/math/rational.c: followed the above change.</div><div class='add'>+</div><div class='add'>+	* configure.in: defines a new macro.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 01:10:03 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c</div><div class='add'>+	  (readline_s_get_completion_append_character): uses locale</div><div class='add'>+	  encoding but not ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 22:12:46 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c, rational.c: do not use RUBY_VERSION_CODE.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 21:41:36 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: r20662 reverted.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 19:29:07 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_external): default_internal can be</div><div class='add'>+	  nil, but default_external cannot.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_set_default_internal): adds rdoc.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_find): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 19:24:47 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (run, runruby, parse, gdb, gdb-ruby): you can also run</div><div class='add'>+	  other scripts than $(srcdir)/test.rb.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 19:13:43 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): changed the message</div><div class='add'>+	  of IOError to 'closed stdin' from 'stdin closed' if stdin was</div><div class='add'>+	  closed.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 19:00:49 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: used the ExportStringValue macro</div><div class='add'>+	  instead of the OutputStringValue macro. removed the</div><div class='add'>+	  OutputStringValue macro.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 16:23:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile0): ruby_eval_tree_begin is always 0 when</div><div class='add'>+	  ruby_eval_tree is 0.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 14:09:55 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_get_default_encoding): removed.</div><div class='add'>+	  Generalizing rb_default_{external,internal}_encoding seems to be</div><div class='add'>+	  difficult.</div><div class='add'>+	  default_external cannot be NULL even before detected. [ruby-dev:37390]</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_default_external_encoding): has its own</div><div class='add'>+	  implementation again.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_default_internal_encoding): ditto.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: added notice.</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangled_path, rubylib_mangled_path2): uses locale</div><div class='add'>+	  encoding but not ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): refers less to default_external.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 11:00:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_p): load path must be expanded.</div><div class='add'>+	  [ruby-dev:37388]</div><div class='add'>+</div><div class='add'>+Fri Dec 12 10:28:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_version): greps only the line that defines version.</div><div class='add'>+</div><div class='add'>+	* version.h (RUBY_VERSION_CODE, RUBY_RELEASE_CODE): removed.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 10:20:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c, rational.c: do not use RUBY_VERSION_CODE.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 10:19:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_string_value_ptr, rb_to_id): do not use a side</div><div class='add'>+	  effect expression in RSTRING_PTR.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): simplified the argument of</div><div class='add'>+	  RSTRING_LEN.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 23:48:00 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (sqrt): should pass nan to the original method.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 21:04:04 2008  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, lib/rss/maker/base.rb:</div><div class='add'>+	  RSS::Maker.[] returns a maker class corresponds to passed version.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_*.rb: add tests for RSS::Maker.[].</div><div class='add'>+</div><div class='add'>+Thu Dec 11 20:05:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_aliases_enc_i): skips default internal.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 19:31:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: extracted from lib/test/unit.rb.</div><div class='add'>+	  lib/test/unit/testcase.rb: ditto.</div><div class='add'>+	  at asakusa.rb.  [ruby-core:20014]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 19:23:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_dup_many): extracted from test_dup.</div><div class='add'>+	  test in ruby subprocess.  at asakusa.rb.  [ruby-dev:35648]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 19:16:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#=~): undefed.  at asakusa.rb.</div><div class='add'>+	  [ruby-core:19690]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 13:09:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_enc_error): raise EncodingCompatibilityError for</div><div class='add'>+	  encoding incompatibility.  [ruby-core:18600]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_enc): more consistent error message.</div><div class='add'>+	  [ruby-core:18611]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 13:36:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_set_default_encoding): allowed to set default</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encoding): removed Encoding::LOCALE.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_external): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_internal): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_internal): defines internal</div><div class='add'>+	  encoding as nil.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 11:11:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (size_t): needs stddef.h or stdlib.h.</div><div class='add'>+	  [ruby-core:20339]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 10:25:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb (TestBignum#test_convert): remove</div><div class='add'>+	  platform dependent call of Process.wait.  coverage should be</div><div class='add'>+	  accomplished by other method.  [ruby-dev:36062]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 10:18:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb (REXML::Document#write): require</div><div class='add'>+	  rexml/formatters/transitive if transitive flag is on.  a patch</div><div class='add'>+	  from akira yamada in [ruby-dev:36230].  fix #553</div><div class='add'>+</div><div class='add'>+	* lib/rexml/element.rb (REXML::Element#write): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/formatters/transitive.rb (REXML::Formatters::Transitive#write_element):</div><div class='add'>+	  add hack for IE.  [ruby-dev:36230]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 02:37:22 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check): should not raise EDOM exception for NaN</div><div class='add'>+	  value if operand is also NaN.  affects acos, asin, acosh, atanh,</div><div class='add'>+	  log, log2, log10, sqrt, gamma, lgamma. [ruby-dev:37357]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 02:23:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.pipeline_start): return an array of threads if a</div><div class='add'>+	  block is not given.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 01:48:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_round): should be round</div><div class='add'>+	  to integer.  [ruby-dev:37355]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_divmod): division should</div><div class='add'>+	  be integer.  [incompatible] [ruby-dev:37355]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 01:21:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_unlock): shut up warning.  a patch from</div><div class='add'>+	  Kazuhiro NISHIYAMA in [ruby-dev:37345]. fix #846</div><div class='add'>+</div><div class='add'>+Wed Dec 10 23:58:56 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: avoided warnings on cpp. [ruby-dev:37344]</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 10 21:32:02 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker.rb (RSS::Maker.[]): add.</div><div class='add'>+	  Suggested by Akinori MUSHA. Thanks!!! [ruby-dev:37210]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 12:56:32 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_rewind): If the enclosed object</div><div class='add'>+	  responds to a "rewind" method, call it; cf. [ruby-dev:37268]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 12:46:52 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next): Fix a typo: s/rewinded/rewound/.</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb (Prime::OldCompatibility#each): Ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 10 11:25:53 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): raise RegexpError when encoding</div><div class='add'>+	  is dummy encoding. [ruby-dev:37091]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 01:28:16 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (win32.obj): depend on headers.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 18:35:35 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans, cp850-tbl.rb, cp852-tbl.rb,</div><div class='add'>+	  cp855-tbl.rb, koi8-r-tbl.rb, koi8-u-tbl.rb, tis-620-tbl.rb:</div><div class='add'>+	  new single-byte transcodings (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), small cosmetic fixes</div><div class='add'>+</div><div class='add'>+Tue Dec  9 13:33:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each), gc.c (assign_heap_slot),</div><div class='add'>+	  (gc_mark_children), parse.y (vtable_alloc, vtable_free, vtable_add),</div><div class='add'>+	  proc.c (proc_to_s), thread.c (terminate_i, rb_thread_terminate_all),</div><div class='add'>+	  (thread_start_func_2, blocking_region_begin, blocking_region_end),</div><div class='add'>+	  (rb_thread_kill), thread_pthread.c (native_thread_create),</div><div class='add'>+	  (ubf_pthread_cond_signal), vm.c (check_env, thread_free), vm_dump.c</div><div class='add'>+	  (vm_env_dump_raw, vm_stack_dump_each, vm_thread_dump_state),</div><div class='add'>+	  (vm_call0): use void pointer for %p.</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_status), template/insns.inc.tmpl (ruby_vminsn_type),</div><div class='add'>+	  vm_insnhelper.h (BOP): ISO C forbids comma at end of enumerator</div><div class='add'>+	  list.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (check_cfunc): use function pointer.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 13:23:55 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_use_default_colors): add new</div><div class='add'>+	  method.  a patch from Giancarlo F Bellido</div><div class='add'>+	  &lt;support at coaxialhost.com&gt; in [ruby-core:20434].</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_tabsize_set): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_tabsize_get): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 12:08:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): fixed typo for T_STRUCT.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 11:50:46 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): fixed [ruby-dev:37295].</div><div class='add'>+	  Array#pack always has returned an US-ASCII string when</div><div class='add'>+	  the given format ended with 'u', 'M' or 'm'.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 03:21:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: fix for continued lines.  based on a patch from</div><div class='add'>+	  Marcus Rueckert &lt;darix AT opensu.se&gt; at [ruby-core:20420].</div><div class='add'>+</div><div class='add'>+Tue Dec  9 00:54:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): enc.mk in snapshot is dummy and should</div><div class='add'>+	  not deal with objects.  [ruby-core:20422]</div><div class='add'>+</div><div class='add'>+Tue Dec  9 00:17:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend (clean-srcs): split out from clean.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 23:34:18 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): fixed odd act of 'm*', 'M*', and 'P*'.</div><div class='add'>+	  just ignores '*' in these cases.</div><div class='add'>+	  [ruby-dev:37289]</div><div class='add'>+</div><div class='add'>+Mon Dec  8 18:31:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): fixed length for odd length string.</div><div class='add'>+	  [ruby-dev:37283]</div><div class='add'>+</div><div class='add'>+Mon Dec  8 11:28:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): added version, copyright, usage, yydebug,</div><div class='add'>+	  syntax to --dump option.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 11:15:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): source-encoding option.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 10:32:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_option_encoding_once): dry.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): checks extra argument for -E/--encoding.</div><div class='add'>+</div><div class='add'>+Sun Dec  7 23:47:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBPATHFLAG): use numbered specifier if RPATHFLAG</div><div class='add'>+	  is set.  [ruby-talk:322136]</div><div class='add'>+</div><div class='add'>+Sun Dec  7 23:17:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (LIBRUBY_SO): localizes non-public symbols.</div><div class='add'>+</div><div class='add'>+	* configure.in (OBJDUMP, OBJCOPY): for dealing with binary files.</div><div class='add'>+</div><div class='add'>+Sun Dec  7 17:44:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.capture3): renamed from Open3.poutput3.</div><div class='add'>+	  (Open3.capture2): renamed from Open3.poutput2.</div><div class='add'>+	  (Open3.capture2e): renamed from Open3.poutput2e.</div><div class='add'>+</div><div class='add'>+Sun Dec  7 11:48:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.poutput3): :binmode option implemented.</div><div class='add'>+	  (Open3.poutput2): ditto.</div><div class='add'>+	  (Open3.poutput2e): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec  6 18:33:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): added RM and CP.  [ruby-dev:37288]</div><div class='add'>+</div><div class='add'>+Sat Dec  6 17:51:35 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): 'u0' is not special differently from 'm0'.</div><div class='add'>+</div><div class='add'>+Sat Dec  6 14:35:06 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): set US-ASCII and CODERANGE_7BIT</div><div class='add'>+	  when quoted-printable ('M') and base64 ('m').</div><div class='add'>+	  [ruby-dev:37284]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 22:56:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_make_exception): single argument to raise may be</div><div class='add'>+	  string compatible object.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 21:45:45 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_{to_s,inspect}): performance improvement.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 21:42:44 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: inspect should not depend on to_s.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 21:18:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_truncate): return</div><div class='add'>+	  integer if no optional argument given. [incompatible]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_floor): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_ceil): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 19:06:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.pipeline_start): new method.</div><div class='add'>+	  (Open3.pipeline): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 18:55:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (run_exec_dup2): !save is false if Qnil.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 18:07:32 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read, rb_w32_write, rb_w32_isatty): check</div><div class='add'>+	  whether fd is valid.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 13:05:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_parameters): proc arguments are always optional.</div><div class='add'>+</div><div class='add'>+	* proc.c (get_proc_iseq, rb_proc_parameters): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 12:38:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence): uses rb_compile_warning() for</div><div class='add'>+	  warning at compilation time.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 12:35:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (ruby_iseq_compile, ruby_iseq_translate_threaded_code),</div><div class='add'>+	  (ruby_insns_name_array, ruby_iseq_build_from_ary): prefixed with</div><div class='add'>+	  ruby_.</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_iseq_load, ruby_insn_make_insn_table): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 10:01:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp_m): fixed rdoc.  pointed out by &lt;Thomas</div><div class='add'>+	  C. Mitchell AT gmail.com&gt; at [ruby-talk:321967]</div><div class='add'>+</div><div class='add'>+Fri Dec  5 07:58:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_binwrite): arg.offset should be updated after retry.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 03:29:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_get_load_path): returns the load path without</div><div class='add'>+	  touching.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_provided): new function to return the loading</div><div class='add'>+	  path in addition to rb_provided().</div><div class='add'>+</div><div class='add'>+	* load.c (search_required): sets path if loading.</div><div class='add'>+</div><div class='add'>+	* variable.c (autoload_provided): load paths are expanded to check</div><div class='add'>+	  if loading.</div><div class='add'>+</div><div class='add'>+	* variable.c (autoload_node): keeps autoload mark while loading.</div><div class='add'>+	  [ruby-core:20235]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): loops while autoload mark is set.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 01:37:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): ERROR_BROKEN_PIPE is not a real error</div><div class='add'>+	  at this point.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): use rb_w32_spawn() instead of rb_w32_pipe_exec()</div><div class='add'>+	  to use our own redirection scheme.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 01:35:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_to_proc): use hidden object.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 01:19:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): propagate taint status from format string to</div><div class='add'>+	  result string.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 00:34:10 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (run_exec_dup2): need to sort by reverted order when</div><div class='add'>+	  restoring fds.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 00:17:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_to_proc): caches Symbol procs, based on a patch from</div><div class='add'>+	  Shumpei Akai &lt;admin AT flexfrank.net&gt;.  [ruby-dev:37265]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 23:29:34 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (waitpid): fix bug of checking child slot.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (FindChildSlotByHandle): new.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 23:24:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.poutput3): new method.</div><div class='add'>+	  (Open3.poutput2): ditto.</div><div class='add'>+	  (Open3.poutput2e): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 23:02:13 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: follows changes in rubyspec project.</div><div class='add'>+	  inherits configurations from ruby.1.9.mspec.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 22:13:55 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb: added some tests.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 19:56:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.popen3): simplified.</div><div class='add'>+	  (Open3.popen_run): extracted from Open3.popen3.</div><div class='add'>+	  (Open3.popen2): new method.</div><div class='add'>+	  (Open3.popen2e): new method.</div><div class='add'>+	  (Open3.pipeline_rw): new method.</div><div class='add'>+	  (Open3.pipeline_r): new method.</div><div class='add'>+	  (Open3.pipeline_w): new method.</div><div class='add'>+	  (Open3.pipeline_run): new private method.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 19:16:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_fds): resolve cascaded child fd reference.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 16:58:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb (Gem#remove_leading_dot_dir): make</div><div class='add'>+	  this method private.  a patch from okkez in [ruby-dev:37245]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 16:19:18 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read_nonblock):</div><div class='add'>+	  OpenSSL::SSL::SSLSocket should implement read_nonblock.  a patch</div><div class='add'>+	  from Aaron Patterson in [ruby-core:20277].  fix: #814 [ruby-core:20241]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 16:16:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/gserver.rb: fixed type in sample code.  a report from Oleg</div><div class='add'>+	  Puchinin.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 14:54:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options.rb (Gem#add_update_sources_option):</div><div class='add'>+	  little documentation fix.  a patch from okkez.  [ruby-dev:37271]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 13:56:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_getch): avoid ISPRINT() macro which</div><div class='add'>+	  has an issue with OpenSolaris.  [ruby-core:20189]</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_getch): no ISPRINT(). [ruby-core:20294]</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal): EINVAL from sigaction(2) is not a bug.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 11:40:56 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (inspect_enumerator): Implement #inspect.</div><div class='add'>+	  [ruby-dev:37248]-[ruby-dev:37263]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 11:38:40 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_obj_respond_to): Remove a duplicated rdoc</div><div class='add'>+	  comment and fix a markup error.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 06:04:16 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: TkOptionMenubutton.new fails to treat</div><div class='add'>+	  'parent' and 'variable' options on a Hash argument.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 05:06:47 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix. use ::RubyVM instead of ::VM</div><div class='add'>+	  [ruby-list:45676]</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: update RELEASE_DATE</div><div class='add'>+</div><div class='add'>+Thu Dec  4 01:37:47 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nurat_{to_s,inspect}): provides better representation</div><div class='add'>+	  for in-finite imag part.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 01:22:41 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_signbit): NaN may be signed value.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 23:59:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (EXEC_OPTION_DUP2_CHILD): defined.</div><div class='add'>+	  (check_exec_redirect_fd): check :in, :out and :err.</div><div class='add'>+	  (check_exec_redirect): check [:child, fd].</div><div class='add'>+	  (check_exec_fds): validate EXEC_OPTION_DUP2_CHILD array.</div><div class='add'>+	  (run_exec_dup2_child): new function.</div><div class='add'>+	  (rb_run_exec_options): call run_exec_dup2_child.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 22:54:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): keyword_not can continue across newline.</div><div class='add'>+	  [ruby-core:20252]</div><div class='add'>+</div><div class='add'>+Wed Dec  3 22:40:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (simple_default_value): returns simplest assignment only.</div><div class='add'>+	  [ruby-core:20237]</div><div class='add'>+</div><div class='add'>+Wed Dec  3 21:30:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_redirect): accept :in, :out, :err as redirect</div><div class='add'>+	  target.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 21:18:27 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: revert.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 14:48:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_ruby_cmd, ip_invoke_with_position): must</div><div class='add'>+	  not access internal union directly.  [ruby-list:45670]</div><div class='add'>+</div><div class='add'>+Wed Dec  3 12:24:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc, rb_io_readchar): documentation correction from</div><div class='add'>+	  Emiel van de Laar.  [ruby-core:20212]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_readchar): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 09:26:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/xpath.rb (REXML::XPath.first): apply documentation</div><div class='add'>+	  patch from Ken Bloom in [ruby-core:20213].</div><div class='add'>+</div><div class='add'>+	* lib/rexml/xpath.rb (REXML::XPath.each): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 02:56:34 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: add a test.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 02:53:24 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb: add a test.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 02:26:07 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: add some tests.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 02:04:21 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (Init_pty): fix typo.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 19:22:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.popen3): merge hash options if given.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 15:31:42 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): use</div><div class='add'>+	  read_nonblock instead of sysread wrapped by timeout to boost</div><div class='add'>+	  performance.  a patch from Aaron Patterson in [ruby-core:20191].</div><div class='add'>+	  fix #806</div><div class='add'>+</div><div class='add'>+Mon Dec  1 23:23:52 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* set 1.9.1-p5000 into version number. [ruby-dev:36998]</div><div class='add'>+</div><div class='add'>+Mon Dec  1 15:48:47 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (register_sigaltstack): no need to define on non-sigaltstack</div><div class='add'>+	  platform.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 12:00:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_start): calls with exact argument number.</div><div class='add'>+	  [ruby-core:20088]</div><div class='add'>+</div><div class='add'>+Sun Nov 30 21:41:10 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/rake.1: new manual page</div><div class='add'>+</div><div class='add'>+Sun Nov 30 18:01:50 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb (TestRegexp#test_parse_curly_brace):</div><div class='add'>+	  now accepts quantifier on anchors again by r20391.</div><div class='add'>+</div><div class='add'>+Sat Nov 29 23:56:44 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/irb.1 (EXAMPLES): new section</div><div class='add'>+</div><div class='add'>+Sat Nov 29 19:19:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (is_invalid_quantifier_target): Perl and old Ruby</div><div class='add'>+	  accepts quantifier on anchors.  [ruby-core:20161]</div><div class='add'>+</div><div class='add'>+Sat Nov 29 18:28:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_getaddrinfo): should have updated for</div><div class='add'>+	  Mac OS X.  a patch from Shumpei Akai in [ruby-dev:37234]</div><div class='add'>+</div><div class='add'>+Sat Nov 29 00:18:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (fiber_alloc): separate allocation and initialization.</div><div class='add'>+	  allow subclass to override #initialize.   [ruby-core:20086]</div><div class='add'>+</div><div class='add'>+Fri Nov 28 18:31:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getaddrinfo): refactored to remove</div><div class='add'>+	  code duplication regarding getaddrinfo.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 17:52:26 2008  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/forwardable.rb: should be usable def_single_delegator for</div><div class='add'>+	  Class and Module.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 13:19:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (simple_default_value): extracts simplest default</div><div class='add'>+	  argument value.</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_parameters): returns parameter list.</div><div class='add'>+</div><div class='add'>+	* proc.c (get_proc_iseq, get_method_iseq): handles ifunc and</div><div class='add'>+	  bmethod.</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_parameters, rb_method_parameters): added</div><div class='add'>+	  Proc#parameters and Method#parameters.  [ruby-core:19759]</div><div class='add'>+</div><div class='add'>+Fri Nov 28 02:18:47 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): bigdecimal</div><div class='add'>+	  division (including modulo) should raise ZeroDivisionError as</div><div class='add'>+	  integer division. [incompatible]</div><div class='add'>+</div><div class='add'>+Fri Nov 28 00:12:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flodivmod): floating point division should raise</div><div class='add'>+	  ZeroDivisionError as integer division. [incompatible]</div><div class='add'>+</div><div class='add'>+Thu Nov 27 23:54:37 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): still needs to check stack depth during GC.</div><div class='add'>+</div><div class='add'>+	* gc.c (stack_check): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 21:41:29 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): should add padding for %%.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 16:32:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (register_sigaltstack): stores alt stack for debug</div><div class='add'>+	  purpose.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 16:12:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_sigaction_t): added.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 15:59:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_stack_check): no check if using sigaltstack.</div><div class='add'>+</div><div class='add'>+	* signal.c (ALT_STACK_SIZE): default minimum size is insufficient</div><div class='add'>+	  for method calls.</div><div class='add'>+</div><div class='add'>+	* signal.c (sigsegv): handles stack overflow if possible.</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_thread_stack_overflow): helper function to raise</div><div class='add'>+	  sysstack_error.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ruby_stack_overflowed_p): checks for stack</div><div class='add'>+	  overflow.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 10:40:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should return</div><div class='add'>+	  Integer for #div operation.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should raise</div><div class='add'>+	  ZeroDivisionError if divisor is zero.  [ruby-dev:37207]</div><div class='add'>+</div><div class='add'>+Wed Nov 26 23:15:47 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (STRFTIME): use rb_strftime() recursively, instead of</div><div class='add'>+	  platform's strftime().</div><div class='add'>+</div><div class='add'>+Wed Nov 26 22:46:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpException): bigdecimal zero</div><div class='add'>+	  division should raise FloatDomainError if mode</div><div class='add'>+	  VP_EXCEPTION_ZERODIVIDE is set.  [ruby-dev:37204]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_mode): should handle</div><div class='add'>+	  VP_EXCEPTION_ZERODIVIDE.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 15:16:07 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (rb_gdbm_nextkey): fix memory leak.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 03:17:48 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_r): raise exception</div><div class='add'>+	  for nan/inf conversion.  [ruby-dev:37187] fix #793</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 03:00:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpAlloc): avoid ALLOCA_N() to avoid</div><div class='add'>+	  segmentation fault caused by (insanely) long decimal values.</div><div class='add'>+	  [ruby-dev:37189] fix #794</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_to_i,</div><div class='add'>+	  BigDecimal_to_f, BigDecimal_to_s, BigDecimal_split,</div><div class='add'>+	  BigDecimal_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpToString): small performance</div><div class='add'>+	  improvement.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 00:26:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (STRFTIME): should add padding for %[xXrR] etc.</div><div class='add'>+	  [ruby-dev:37185] fix: #792</div><div class='add'>+</div><div class='add'>+Tue Nov 25 16:26:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_times): taint (and untrust) status should be</div><div class='add'>+	  inherited by "ary * 0".  [ruby-dev:37024]</div><div class='add'>+</div><div class='add'>+Tue Nov 25 15:54:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): should not swallow incomplete</div><div class='add'>+	  formatter, e.g. "%E".  [ruby-dev:37170] fix: #787</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): clear flags before processing unknown</div><div class='add'>+	  formatter, e.g. "%i".  [ruby-dev:37180]</div><div class='add'>+</div><div class='add'>+Tue Nov 25 10:35:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): "%^P" should convert to upper case.</div><div class='add'>+	  [ruby-dev:37180]</div><div class='add'>+</div><div class='add'>+Tue Nov 25 07:51:18 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (FMT): use "%0d" formatter for zero padding, not "%.d".</div><div class='add'>+	  [ruby-dev:37168]  fix: #768</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): %s to use zero padding by default.</div><div class='add'>+	  [ruby-dev:37180]</div><div class='add'>+</div><div class='add'>+Tue Nov 25 03:37:42 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt/tabset.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/blt/tabnotebook.rb:</div><div class='add'>+	  fix many bugs. Now, those work properly.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 03:26:04 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): treat infinite step specially.</div><div class='add'>+	  [ruby-dev:37157] fix: #781.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 01:23:25 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (strftime): ignores '_' flag for %[LN].</div><div class='add'>+</div><div class='add'>+Tue Nov 25 00:08:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): stops the timer thread during fork.</div><div class='add'>+	  [ruby-dev:37117]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_start_timer_thread): timer thread needs</div><div class='add'>+	  system_working to be set.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 23:27:28 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): The # flag should work with %a, %A, %b,</div><div class='add'>+	  %B, and %h.  [ruby-dev:37162]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 23:16:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (register_sigaltstack): should not add external</div><div class='add'>+	  variable (with some cosmetic changes).  [ruby-dev:37158]</div><div class='add'>+</div><div class='add'>+Mon Nov 24 22:57:25 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): A width specifier for %t and %n should</div><div class='add'>+	  work.  [ruby-dev:37160]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 22:07:07 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): The precision of %0N should be 9.</div><div class='add'>+	  [ruby-dev:37156]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 21:38:23 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): The default precision should be 1, not</div><div class='add'>+	  0.  [ruby-dev:37155]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 19:53:47 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (inspect): changed again.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 18:35:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: r20251 reverted.  The patched behavior do not round</div><div class='add'>+	  trip.  [ruby-core:19988]</div><div class='add'>+</div><div class='add'>+Sun Nov 23 16:04:05 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (default_handler, Init_signal): compile error if</div><div class='add'>+	  USE_SIGALTSTACK is not defined.</div><div class='add'>+</div><div class='add'>+Sun Nov 23 00:04:14 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ALT_STACK_SIZE): 4KB is not enough on Mac OS X.</div><div class='add'>+	  Uses SIGSTKSZ.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 21:29:54 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb (test_default_accessibility): test case for</div><div class='add'>+	  [ruby-dev:37124].</div><div class='add'>+</div><div class='add'>+Sat Nov 22 18:24:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_world_writable_p): should return nil for non</div><div class='add'>+	  world-writable files.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 10:31:25 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt.rb, ext/tk/lib/tkextlib/blt/vector.rb:</div><div class='add'>+	  fix NameError bug.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 03:41:22 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (get_device_once): abandon asynchronous exception</div><div class='add'>+	  that might cause serious problem if a program terminated early.</div><div class='add'>+	  asynchronous exception is a very bad thing anyway.  use</div><div class='add'>+	  Process.waitpid(pid) or PTY.check(pid) to poll program</div><div class='add'>+	  termination. if PTY.check is called with optional second</div><div class='add'>+	  argument being true, it raises an exception same as one from</div><div class='add'>+	  previous behavior.  [incompatible] fix: [ruby-core:19583]</div><div class='add'>+</div><div class='add'>+Fri Nov 21 22:24:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_escdelay_set): support ESCDELAY.  a</div><div class='add'>+	  patch from Giancarlo F Bellido &lt;support at coaxialhost.com&gt; in</div><div class='add'>+	  [ruby-core:19961].</div><div class='add'>+</div><div class='add'>+Fri Nov 21 22:17:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): -W description updated.  [ruby-core:19858]</div><div class='add'>+</div><div class='add'>+Fri Nov 21 21:50:54 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (register_sigaltstack): use alternative stack for</div><div class='add'>+	  SIGSEGV to avoid uncaught stack overflow. based on a patch from</div><div class='add'>+	  Hiro Yoshioka &lt;hyoshiok at miraclelinux.com&gt; in [ruby-dev:37134].</div><div class='add'>+	  [ruby-dev:36993]</div><div class='add'>+</div><div class='add'>+Fri Nov 21 16:06:54 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_free): th-&gt;vm may be NULL when pthread_create</div><div class='add'>+	  failed for ENOMEM.  [ruby-dev:37095]</div><div class='add'>+</div><div class='add'>+Thu Nov 20 07:33:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (Logger): should handle the case that cvs/svn do</div><div class='add'>+	  not expand $Id keyword.  [ruby-core:19991]</div><div class='add'>+</div><div class='add'>+Thu Nov 20 07:27:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/unit.rb (MiniTest::Assertions#capture_io): adjust</div><div class='add'>+	  indentation to shut up warning.  [ruby-core:19993]</div><div class='add'>+</div><div class='add'>+Wed Nov 19 17:48:05 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_mktime): return DateTime for a value</div><div class='add'>+	  out of range of Time.   [ruby-core:19919]</div><div class='add'>+</div><div class='add'>+Wed Nov 19 14:14:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (NOEX_MODFUNC): should be include NOEX_PRIVATE.</div><div class='add'>+	  [ruby-dev:37124]</div><div class='add'>+</div><div class='add'>+Wed Nov 19 03:01:04 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: fixed fails occasionally [ruby-dev:37119].</div><div class='add'>+	  thanks, shinichiro.h.</div><div class='add'>+</div><div class='add'>+Wed Nov 19 02:39:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_syserr): moved function definition itself from</div><div class='add'>+	  template/known_errors.inc.tmpl.</div><div class='add'>+</div><div class='add'>+Wed Nov 19 01:10:52 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbConn::alive?): fixed NoMethodError problem</div><div class='add'>+	  from NaHi [ruby-dev:37110].</div><div class='add'>+</div><div class='add'>+Wed Nov 19 01:05:26 2008  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): speed up</div><div class='add'>+	  continuation by copying only valid YARV stack.  [ruby-dev:37106]</div><div class='add'>+</div><div class='add'>+Wed Nov 19 00:03:13 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: according to RFC2822, -0000 means local time, +0000</div><div class='add'>+	  means UTC.  a patch from Chun Wang.   [ruby-core:19578]</div><div class='add'>+</div><div class='add'>+Tue Nov 18 23:02:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_eq): equivalence check should not done by pointer</div><div class='add'>+	  comparison, but should be based on iseq contents.   [ruby-dev:37101]</div><div class='add'>+</div><div class='add'>+Tue Nov 18 20:30:08 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#open_socket): SOCKSsocket is obsolete.</div><div class='add'>+	  a patch from Alan Johnson &lt;alan.wayne.johnson at gmail.com&gt; in</div><div class='add'>+	  [ruby-core:19982].</div><div class='add'>+</div><div class='add'>+Tue Nov 18 16:18:23 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (ProgName): fixed for svn, based on a patch from</div><div class='add'>+	  Nobuhiro IMAI at [ruby-dev:37108].</div><div class='add'>+</div><div class='add'>+Tue Nov 18 15:56:55 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#read_request_line):</div><div class='add'>+	  use possessive match for path retrieval to avoid huge recursion</div><div class='add'>+	  for insanely long path.</div><div class='add'>+</div><div class='add'>+Tue Nov 18 15:50:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): re might be NULL.</div><div class='add'>+</div><div class='add'>+	* regerror.c (onig_error_code_to_format): message updated.</div><div class='add'>+</div><div class='add'>+Tue Nov 18 09:42:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::make_switch): makes default</div><div class='add'>+	  conversion to splat.  [ruby-list:45645]</div><div class='add'>+</div><div class='add'>+Mon Nov 17 18:05:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend (LIBS): fixed for disable-shared.  [ruby-dev:37103]</div><div class='add'>+</div><div class='add'>+Mon Nov 17 11:12:24 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb: remove -K option.</div><div class='add'>+</div><div class='add'>+Mon Nov 17 02:19:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBRUBYARG_STATIC): fixed for --enable-rpath.</div><div class='add'>+</div><div class='add'>+Sat Nov 15 22:46:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): returns -1 unless ascii as well as</div><div class='add'>+	  rb_enc_ascget().  [ruby-dev:37097]</div><div class='add'>+</div><div class='add'>+Sat Nov 15 22:23:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LDSHARED): do not suppress debug info if higher debug</div><div class='add'>+	  level is given, on cygwin and mingw.</div><div class='add'>+</div><div class='add'>+Fri Nov 14 20:27:46 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja, vm_exec.c, vm_insnhelper.c: update</div><div class='add'>+	  filenames.</div><div class='add'>+</div><div class='add'>+Thu Nov 13 11:31:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_wait): gets rid of recursive deadlock.</div><div class='add'>+</div><div class='add'>+Thu Nov 13 06:08:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_{new,wait,release,destroy}): use Mutex so that</div><div class='add'>+	  circular requires fail with deadlock.  [ruby-core:19821]</div><div class='add'>+</div><div class='add'>+Wed Nov 12 07:16:01 2008  David Flanagan  &lt;david@think32&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_internal_encoding_once): fix typo in error string</div><div class='add'>+</div><div class='add'>+Wed Nov 12 03:30:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_{external,locale}_str_new_cstr): optimized</div><div class='add'>+	  versions for literal strings.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 03:28:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_require_safe): destroys barrier after successfully</div><div class='add'>+	  loaded, to get rid of loading same library again.  [ruby-core:19798]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_wait): can not wait destroyed barrier.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_destroy): destroys barrier so that no longer</div><div class='add'>+	  waited.</div><div class='add'>+</div><div class='add'>+Tue Nov 11 23:02:27 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/ruby.1 (RUBYOPT): wrote which option can appear.</div><div class='add'>+	  (--yydebug): wrote "do not use".</div><div class='add'>+	  (--dump): wrote "do not use".</div><div class='add'>+</div><div class='add'>+Tue Nov 11 21:22:28 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic#check_path): REL_PATH should a</div><div class='add'>+	  symbol.  [ruby-core:19805]</div><div class='add'>+</div><div class='add'>+Tue Nov 11 20:49:29 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix SEGV on Mac OS X 10.5.3 with pthread.</div><div class='add'>+	  a patch from Wataru Kimura in Bug #193 [ruby-core:17333].</div><div class='add'>+</div><div class='add'>+Tue Nov 11 20:39:27 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (inspect): reverted the previous change.</div><div class='add'>+</div><div class='add'>+Tue Nov 11 17:35:25 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_accept): secure fd before accept because if</div><div class='add'>+	  error causes in securing, cannot restore the state of accepted</div><div class='add'>+	  socket.</div><div class='add'>+	  fixed [ruby-core:19728]</div><div class='add'>+</div><div class='add'>+Tue Nov 11 14:40:40 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: unnecessary setup method</div><div class='add'>+	  (setup_really_needed?) removed</div><div class='add'>+</div><div class='add'>+Tue Nov 11 14:25:25 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans, macgreek-tbl.rb, macroman-tbl.rb,</div><div class='add'>+	  macromania-tbl.rb, macturkish-tbl.rb, macukraine-tbl.rb,</div><div class='add'>+	  ibm437-tbl.rb, ibm852-tbl.rb, ibm855-tbl.rb, ibm857-tbl.rb,</div><div class='add'>+	  ibm860-tbl.rb, ibm861-tbl.rb, ibm862-tbl.rb, ibm863-tbl.rb,</div><div class='add'>+	  ibm865-tbl.rb, ibm866-tbl.rb, ibm869-tbl.rb, ibm775-tbl.rb:</div><div class='add'>+	  new single-byte transcodings (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'>+Tue Nov 11 13:20:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_r): moved from</div><div class='add'>+	  bigdecimal/util, converted into C.  [ruby-dev:36805]</div><div class='add'>+</div><div class='add'>+Tue Nov 11 07:55:57 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (inspect): changed the format.</div><div class='add'>+</div><div class='add'>+Mon Nov 10 17:34:50 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/sdbm/test_sdbm.rb (TestSDBM#test_index): Reflect the method</div><div class='add'>+	  name change from #index to #key and remove a duplicated test</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+Mon Nov 10 10:50:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator.delegating_block): should not refer</div><div class='add'>+	  DelegateClass specific @delegate_dc_obj.  a patch from Erik</div><div class='add'>+	  Hollensbe in [ruby-core:19671].</div><div class='add'>+</div><div class='add'>+Mon Nov 10 09:54:21 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (ifs_open_socket): should retry without proto_buffer</div><div class='add'>+	  if cannot find the suitable protocol. a patch from Heesob Park.</div><div class='add'>+	  fixed [ruby-core:19713]</div><div class='add'>+</div><div class='add'>+Sun Nov  9 13:04:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_initialize_m): avoid unnecessary array</div><div class='add'>+	  allocation.</div><div class='add'>+</div><div class='add'>+Sun Nov  9 04:10:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (control_frame_dump): suppresses finished method name.</div><div class='add'>+</div><div class='add'>+Sun Nov  9 00:30:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): checks working flags again.</div><div class='add'>+</div><div class='add'>+Sun Nov  9 00:02:01 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session/pstore.rb: fix indentation.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 23:47:45 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (FileStore): use marshalized data.</div><div class='add'>+</div><div class='add'>+	* test/cgi/session_dir: add a session directory in test.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_session.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 21:57:03 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: remove debug code.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 21:33:53 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: fix indentation.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 18:11:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#do_CONNECT):</div><div class='add'>+	  use #bytesize instead of #size.  a patch submitted from</div><div class='add'>+	  raspberry lemon in [ruby-core:18571].</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb, lib/webrick/httpproxy.rb,</div><div class='add'>+	  lib/webrick/httprequest.rb, lib/webrick/httpservlet/cgi_runner.rb,</div><div class='add'>+	  lib/webrick/httpservlet/abstract.rb, lib/webrick/httpresponse.rb,</div><div class='add'>+	  lib/webrick/httpservlet/cgihandler.rb, lib/webrick/utils.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 17:31:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): ungetc position should</div><div class='add'>+	  not be changed from 1.8.  [ruby-core:19632]</div><div class='add'>+</div><div class='add'>+Sat Nov  8 17:15:08 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#make_switch): 1.9 Symbols respond</div><div class='add'>+	  to :match.  a patch from keith cascio, &lt;keith at ucla.edu&gt;.</div><div class='add'>+	  [ruby-core:19730]</div><div class='add'>+</div><div class='add'>+Sat Nov  8 12:10:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_index): make #index warn like Hash.</div><div class='add'>+	  [ruby-dev:37039]</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (Init_sdbm): typo fixed.  [ruby-dev:37039]</div><div class='add'>+</div><div class='add'>+Sat Nov  8 07:07:48 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: detect stdio buffer pointers for uClibc.  a patch</div><div class='add'>+	  from Brian Candler &lt;B.Candler at pobox.com&gt; in [ruby-core:12020].</div><div class='add'>+	  [ruby-core:19713]</div><div class='add'>+</div><div class='add'>+Sat Nov  8 06:51:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_index): make #index warn like Hash.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_key): new method.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 06:20:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: curses encoding should obey locale.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_getch): 1.9 getch should return one</div><div class='add'>+	  character string for single byte string.  wchar_t support may</div><div class='add'>+	  follow in the future.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 05:46:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): added write_lock to serialize.</div><div class='add'>+	  [ruby-core:19668]</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): mark write_lock.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): Mutex also needs to be</div><div class='add'>+	  deferred.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush, io_binwrite, fptr_finalize): serializes writing.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 05:31:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* safe.c (safe_setter): add warning for $SAFE=3.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 01:48:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (rb_thread_create_timer_thread): do not wait never</div><div class='add'>+	  coming signal if failed to create timer thread.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_cond_timedwait): returns error code.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): typo fixed.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 01:14:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer, rb_thread_create_timer_thread):</div><div class='add'>+	  handshakes properly.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 22:51:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): do not repeat.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 22:46:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): initializes mutex each time.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 21:23:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (thread_start_func_1): use already gotten stack info.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 12:26:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb#eval_input): remove extra  @context.prompt_i.</div><div class='add'>+	  [ruby-core:19718]</div><div class='add'>+</div><div class='add'>+Fri Nov  7 11:55:30 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* nkf.c: update to r1.188. fixes for 16bit environment.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 07:43:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_timer): pthread_cond_timedwait returns ETIMEDOUT</div><div class='add'>+	  when timed out.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 07:32:55 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: support Rational and Complex as 1.8</div><div class='add'>+	  does.  a patch from Hiroshi Moriyama in [ruby-dev:36899].</div><div class='add'>+</div><div class='add'>+Fri Nov  7 07:12:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (thread_timer): uses pthread_cond_timedwait always</div><div class='add'>+	  instead of pthread_kill.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 06:58:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): remove Symbol#===.  [ruby-dev:37026]</div><div class='add'>+</div><div class='add'>+Fri Nov  7 04:02:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_timer): uses timedwait on cygwin.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 02:00:12 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/entity.rb (unnormalized): do not call</div><div class='add'>+	  document.record_entity_expansion if document is nil.</div><div class='add'>+	  see &lt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502535&gt;.</div><div class='add'>+	  Thanks, Naohisa Goto.</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_document.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 01:24:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: binary encoding spec is no longer needed in 1.9.</div><div class='add'>+</div><div class='add'>+Thu Nov  6 22:21:23 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_stop_timer_thread): terminates timer thread</div><div class='add'>+	  immediately.</div><div class='add'>+</div><div class='add'>+Thu Nov  6 21:21:46 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_s_connect, fole_initialize,</div><div class='add'>+	  folevariant_initialize): check argument type of WIN32OLE.connect,</div><div class='add'>+	  WIN32OLE.new, WIN32OLE_VARIANT.new.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_s_new_exc, test_s_connect_exc):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb (test_s_new_exc): ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb: add assertion of</div><div class='add'>+	  WIN32OLE_METHOD.new.</div><div class='add'>+</div><div class='add'>+Tue Nov  4 13:08:01 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): now can specify ``-xname''</div><div class='add'>+	  instead of ``-x name''.</div><div class='add'>+</div><div class='add'>+Tue Nov  4 08:00:00 2008  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb(test_readchar): compare in same type.</div><div class='add'>+</div><div class='add'>+Tue Nov  4 03:28:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): do not repeat self in a recursive array.</div><div class='add'>+	  [ruby-dev:37019]</div><div class='add'>+</div><div class='add'>+Tue Nov  4 01:56:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_mutex_synchronize): fixed prototype.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_synchronize): fixed function name.</div><div class='add'>+</div><div class='add'>+Mon Nov  3 16:32:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h: needs RUBY_EXTERN instead of extern for mswin.</div><div class='add'>+</div><div class='add'>+Mon Nov  3 13:01:13 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_take_first_or_last): renamed rb_ary_partial more</div><div class='add'>+	  appropriately.</div><div class='add'>+	  (ary_take_pos_flags): new enum. makes the fourth argument of</div><div class='add'>+	  rb_ary_take_first_or_last more descriptive.</div><div class='add'>+	  (rb_ary_partial): renamed rb_ary_partial0 more appropriately.</div><div class='add'>+	  takes a new parameter klass for what class to instantiate.</div><div class='add'>+</div><div class='add'>+Mon Nov  3 13:00:26 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): rb_raise takes C values as arguments.</div><div class='add'>+	  [BUG] ranges turned into other value in a message of RangeError.</div><div class='add'>+</div><div class='add'>+Mon Nov  3 00:36:44 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: rename test class.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant_outarg.rb: add in order</div><div class='add'>+	  to use ADO instead of Internet Explorer.</div><div class='add'>+	  remove test/win32ole/test_win32ole_variant_with_ie.rb.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/orig_data.csv: ditto.</div><div class='add'>+</div><div class='add'>+Sun Nov  2 23:08:08 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb: add teardown.</div><div class='add'>+</div><div class='add'>+Sun Nov  2 22:12:41 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_event_free): invoke IConnectionPoint::Unadvise</div><div class='add'>+	  before invoking IConnectionPoint::Release.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb, test/win32ole/err_in_callback.rb,</div><div class='add'>+	  test/win32ole/test_err_in_callback.rb: Use ActiveX Data Object</div><div class='add'>+	  Library instead of InternetExplorer.</div><div class='add'>+</div><div class='add'>+Sun Nov  2 22:06:55 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: add RUNRUBYOPT. [ruby-dev:37009]</div><div class='add'>+</div><div class='add'>+Sun Nov  2 16:41:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (Init_zlib): defines readbyte instead redefining</div><div class='add'>+	  readchar.</div><div class='add'>+</div><div class='add'>+Sat Nov  1 07:09:40 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: Don't require rubygems/defaults.rb.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 21:58:50 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/converter.rb (RSS::Converter): use String#encode.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 21:28:14 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb</div><div class='add'>+	  (WEBrick::HTTPAuth::DigestAuth#initialize): fix typo.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 18:51:42 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_array_subclass): test for r20076.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 18:42:19 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_partial0): recovers the mistakenly changed feature at r19723.</div><div class='add'>+	  Array#[m,n] had returned an Array even for an instance of a</div><div class='add'>+	  subclass.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 18:05:05 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans, maccroatioan-tbl.rb,</div><div class='add'>+	  maccyrillic-tbl.rb, maciceland-tbl.rb: new single-byte</div><div class='add'>+	  transcodings (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'>+Fri Oct 31 12:51:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_globs): need taint check.  reported by steve</div><div class='add'>+	  &lt;oksteev at gmail.com&gt;</div><div class='add'>+</div><div class='add'>+Fri Oct 31 12:42:45 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_decrement_share): fix to work recycling</div><div class='add'>+	  shared-array without the following.  [ruby-dev:36991]</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_substitution): don't recycle substitution array.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 12:27:52 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: supports that the build directory != srcdir.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 11:35:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_internal): no alias "internal" if</div><div class='add'>+	  default internal is not set.  [ruby-dev:37000]</div><div class='add'>+</div><div class='add'>+Fri Oct 31 08:16:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): delays setting safe level.</div><div class='add'>+	  [ruby-dev:36997]</div><div class='add'>+</div><div class='add'>+Thu Oct 30 21:32:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): hide temporal array.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 14:45:45 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: refactoring to make it easier</div><div class='add'>+	  to add more transcodings (with Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-1-tbl.rb: new file to avoid having to</div><div class='add'>+	  treat ISO-8859-1 as special</div><div class='add'>+</div><div class='add'>+Thu Oct 30 14:10:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): templates a, A, Z should propagate encoding</div><div class='add'>+	  of original strings.  templates b, B, h, H brings ASCII-8BIT to</div><div class='add'>+	  the result.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 10:34:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (moreswitches): splits option string and passes arguments.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): checks if allowed in RUBYOPT.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): allows long style options in RUBYOPT.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): ditto in shebang.  [ruby-dev:36979]</div><div class='add'>+</div><div class='add'>+Thu Oct 30 09:31:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encoding): makes an alias for locale.</div><div class='add'>+	  [ruby-dev:36976]</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_external): ditto for external.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_default_internal): ditto for internal.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 03:30:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): should not set script encoding to</div><div class='add'>+	  ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): do not auto convert scripts even</div><div class='add'>+	  when default_internal is set.  [ruby-core:19579]</div><div class='add'>+</div><div class='add'>+Thu Oct 30 02:20:33 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): remove SEGV when replacing array with</div><div class='add'>+	  embedded one during sort.  [ruby-dev:36983]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_sort!): add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 01:44:23 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add some tests.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 01:32:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_splice): remove redundant check.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 01:24:55 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp): fix condition which always returned true</div><div class='add'>+	  because ENCODING_GET returns unsigned long.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 01:10:32 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_permutation): add a test that replaces</div><div class='add'>+	  array during permutation.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 23:31:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_check_dummy_enc): new function to check dummy</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upcase_bang): case conversion functions should</div><div class='add'>+	  not be applicable to strings in dummy encoding.  [ruby-dev:36985]</div><div class='add'>+</div><div class='add'>+Wed Oct 29 23:57:29 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): replacing array during sort broke</div><div class='add'>+	  invariant of array.  [ruby-dev:36983]</div><div class='add'>+</div><div class='add'>+Wed Oct 29 21:06:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_rewind): should reset fptr-&gt;readconv if it's</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+	* io.c (more_char): clear readconv at EOF.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb: should not read after EOF.  use rewind</div><div class='add'>+	  instead.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 20:45:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/utils.rb (start_server): provide a reference to log of</div><div class='add'>+	  webrick.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpproxy.rb, test/webrick/test_httpauth.rb,</div><div class='add'>+	  test/webrick/test_cgi.rb, test/webrick/test_httpserver.rb,</div><div class='add'>+	  test/webrick/test_server.rb, test/webrick/test_filehandler.rb: use</div><div class='add'>+	  webrick log as an assertion message.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 16:41:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): set encoding from packing string and UTF-8 for</div><div class='add'>+	  "U".  [ruby-core:19590]</div><div class='add'>+</div><div class='add'>+Wed Oct 29 15:50:00 2008  TAKANO Mitsuhiro (takano32)  &lt;tak@no32.tk&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (imp1, imp2): should declare type.</div><div class='add'>+	  [BUG] at IA-64</div><div class='add'>+</div><div class='add'>+Wed Oct 29 14:36:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (revision.h): have to be updated daily or by non-trivial</div><div class='add'>+	  commits.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 13:18:02 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* README, README.ja: Update the portability section.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 13:02:17 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_lib_xpg4_needed): Drop legacy FreeBSD</div><div class='add'>+	  support regarding libxpg4.  Those old versions of FreeBSD</div><div class='add'>+	  shipped with the library don't have a working pthread library</div><div class='add'>+	  anyway.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 11:50:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (dln-a-out): cannot make shared library nor work with</div><div class='add'>+	  ELF.  [ruby-core:19571]</div><div class='add'>+</div><div class='add'>+Wed Oct 29 11:00:25 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open): shouldn't seek here.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write): write to the end of the file when</div><div class='add'>+	  FAPPEND is specified.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 09:30:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file_internal): cache common interned IDs.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 00:43:39 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: uses macro in declarations.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 00:26:00 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open): need to seek to the end of the file when</div><div class='add'>+	  O_APPEND is specified.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 00:08:05 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (rb_math_{atan2,cos,cosh,hypot,log,sin,sinh,sqrt}): added.</div><div class='add'>+</div><div class='add'>+	* complex.c: follows the above change.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 23:29:06 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (kanji_convert): output unicode chars.</div><div class='add'>+	  [ruby-dev:36957]</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (numchar_getc): increase buffer size.</div><div class='add'>+	  reported and patched at [ruby-dev:36957] by mame.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 23:03:46 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: filled all patterns for testing</div><div class='add'>+	  vm_yield_setup_args.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 23:05:35 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: continues to support canonicalization *unofficially*</div><div class='add'>+	  for an odd library mathn for the time being (only 1.9.x).</div><div class='add'>+	  since grand mathn must be very very special library for us.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/mathn/*/*: follow the above changes.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 21:31:55 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): check EOF explicitly.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 20:59:12 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (extract_binmode): new function to extract binmode/textmode</div><div class='add'>+	  options from hash.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): use above function.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): recognize binmode/textmode options.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 20:15:49 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_readconv): now can specify the size of cbuf.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all, appendline, io_getc, rb_io_ungetc): follow above</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 19:00:51 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec): internal fds should be always</div><div class='add'>+	  binmode.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 17:21:18 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot.rb: merged from ruby_1_9_1.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 16:56:31 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: merged from ruby_1_9_1 branch.</div><div class='add'>+	  considers --program-suffix and prefix configure options.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb (@default_dir_re): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 16:13:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: use String#bytesize.</div><div class='add'>+</div><div class='add'>+Tue Oct 28 09:51:48 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: ignore some exceptions.</div><div class='add'>+	  [ruby-dev:36951]</div><div class='add'>+</div><div class='add'>+Tue Oct 28 09:19:40 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (RUNRUBY): now ruby requires something from</div><div class='add'>+	  gem_prelude, so need to set library path.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 22:29:11 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_args): supports optional parameters.</div><div class='add'>+	  Fixed [ruby-core:19503].</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_block_args): a new function. extracted</div><div class='add'>+	  from vm_yield_setup_args.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_block_args_complex): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: added tests for arguments on a Proc from</div><div class='add'>+	  Kernel#proc called.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 20:03:05 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/mathn/complex/complex.c: no need to define rb_cComplex because</div><div class='add'>+	  it's already defined at $(srcdir)/complex.c.</div><div class='add'>+</div><div class='add'>+	* ext/mathn/rational/rational.c: no need to define rb_cRational because</div><div class='add'>+	  it's already defined at $(srcdir)/rational.c.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 15:58:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): preserves $..  [ruby-dev:36937]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_init): initial value of $. should be 0.</div><div class='add'>+	  see [ruby-dev:36937].</div><div class='add'>+</div><div class='add'>+Mon Oct 27 15:38:38 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/minitest/test_mini_test.rb</div><div class='add'>+	  (test_assert_raises_triggered_different): the test failed when a</div><div class='add'>+	  file path in the backtrace contains something except [\w\/\.],</div><div class='add'>+	  e.g. hyphen, Japanese characters or backslash.</div><div class='add'>+</div><div class='add'>+	* test/minitest/test_mini_test.rb</div><div class='add'>+	  (test_assert_raises_triggered_subclass): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 15:32:08 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/minitest/test_mini_test.rb: fixed that r19958 made</div><div class='add'>+	  test-all fail when the ruby was built at $(srcdir).</div><div class='add'>+</div><div class='add'>+Mon Oct 27 12:04:58 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: reverted the changeset 19948 because it</div><div class='add'>+	  concealed unexpected behaviours of ruby.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 12:02:53 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert): should specify type of variable.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 11:34:56 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/minitest/test_mini_test.rb (test_filter_backtrace):</div><div class='add'>+	  fixed failure on Ruby built at out of $(srcdir).</div><div class='add'>+</div><div class='add'>+	* test/minitest/test_mini_test.rb (test_Filter_backtrace_unit_starts):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 10:02:47 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): the 3rd argument maybe Qnil.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 01:29:55 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/nkf/test_nkf.rb: add a test for [ruby-dev:36909].</div><div class='add'>+</div><div class='add'>+Mon Oct 27 01:05:48 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert): avoid GC.</div><div class='add'>+	  reported in [ruby-dev:36909] and patched [ruby-dev:36941] by mame.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 21:28:42 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/json/test_json.rb: remove dependency on permutation gem.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 19:18:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (blocking_region_{begin,end}): declared as inline.</div><div class='add'>+</div><div class='add'>+	* util.c (freedtoa): used only when MULTIPLE_THREADS is not defined.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe): serial is DWORD.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (sGroup): getgrent may not be available.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 18:11:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/{extconf.rb,wait.c}: needs sys/ioctl.h for fcntl on</div><div class='add'>+	  cygwin.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 18:18:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: disables debug and verbose flags to suppress failure</div><div class='add'>+	  messages.  interpolation does not occur inside single quotes.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 18:42:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_in_out_err): disables builtin rubygems</div><div class='add'>+	  to get rid of the interference.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (ruby): ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 13:30:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): use the given buffer to read when needs readconv.</div><div class='add'>+	  based on the patch by wanabe &lt;s.wanabe AT gmail.com&gt; at</div><div class='add'>+	  [ruby-dev:36931].</div><div class='add'>+</div><div class='add'>+Sun Oct 26 07:57:35 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Update to RubyGems 1.3.1 r1909.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 07:35:56 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/minitest/unit.rb: Imported minitest 1.3.0 r4429.</div><div class='add'>+	* test/minitest/*: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 02:16:29 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in ($MANTYPE): followed ruby.1, which had moved.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (:man): ditto.</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: fixed for the case Xr with 2 arguments.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 01:42:45 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/irb.1: new manual page.</div><div class='add'>+</div><div class='add'>+Sun Oct 26 00:11:48 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* man/ruby.1: moved into man/. added some descriptions.</div><div class='add'>+</div><div class='add'>+	* man/goruby.1: new file.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (:man): followed ruby.1.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 20:05:22 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_result): bug fix. The millisecond is 1/1000.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 11:12:40 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): updated the description of -E option.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 09:54:10 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb:  Fixed a bug in read_to_char() that would slurp</div><div class='add'>+	  whole files if the encoding was invalid.  It will now read</div><div class='add'>+	  up to 10 bytes ahead to find a valid character boundary or</div><div class='add'>+	  give up.  [ruby-core:19465]</div><div class='add'>+</div><div class='add'>+	* test/csv/test_features.rb, test/csv/test_table.rb, test/csv/test_row.rb:</div><div class='add'>+	  Loosened some tests to check for a compatible? Encoding instead</div><div class='add'>+	  of an exact Encoding.  [ruby-core:19470]</div><div class='add'>+</div><div class='add'>+Sat Oct 25 07:42:49 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc*: Update to RDoc 2.2.2 r192.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 04:00:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/us_ascii.c (us_ascii_mbc_enc_len): made static.  a patch by</div><div class='add'>+	  Tadashi Saito &lt;shiba AT mail2.accsnet.ne.jp&gt; at [ruby-dev:36916]</div><div class='add'>+</div><div class='add'>+	* signal.c (signal_buff): made static.  a patch by Tadashi Saito</div><div class='add'>+	  &lt;shiba AT mail2.accsnet.ne.jp&gt; at [ruby-dev:36915]</div><div class='add'>+</div><div class='add'>+	* util.c (freedtoa): made static to get rid of name clash.  a patch by</div><div class='add'>+	  Tadashi Saito &lt;shiba AT mail2.accsnet.ne.jp&gt; at [ruby-dev:36913]</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_dtoa): added prefix, ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 03:43:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lambda): need to adjust lpar_beg for both of the parser and</div><div class='add'>+	  ripper.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 01:29:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/mathn/rational/rational.c: undef duplicated macro definition</div><div class='add'>+	  first to shut up the warning.</div><div class='add'>+</div><div class='add'>+	* ext/mathn/rational/rational.c (rb_rational_new_mathn): specify</div><div class='add'>+	  omitted return value.</div><div class='add'>+</div><div class='add'>+Sat Oct 25 00:14:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): fixed sizes and randomness.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 23:04:42 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (sitedir): considers --program-prefix and</div><div class='add'>+	  --program-suffix.</div><div class='add'>+	  (vendordir): ditto.</div><div class='add'>+	  (rubyhdrdir): ditto.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (CONFIG["rubylibdir"]): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (:rdoc): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb (RDoc::RI::Paths): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 22:59:27 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_sample): add tests for size of</div><div class='add'>+	  returned array and randomness.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 21:50:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* id.h, template/id.h.tmpl (enum ruby_method_ids): reordered.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 21:19:45 2008  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/mathn/rational.c: change several global functions.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 21:05:38 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/html.rb: allow symbolized key.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_tag_helper.rb: add a test.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 20:54:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (exts): renamed to get rid of the existent directory.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 20:45:41 2008  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/mathn/rational.c: change several global functions to static</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 19:57:19 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): should have removed commented out</div><div class='add'>+	  unnecessary code.  [ruby-cvs:27131]</div><div class='add'>+</div><div class='add'>+Fri Oct 24 19:16:36 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* id.h (enum ruby_method_ids): ISO C forbids comma at end of</div><div class='add'>+	  enumerator list.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 18:29:00 2008  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: moved into ext/mathn/rational/rational.c and</div><div class='add'>+	  ext/mathn/complex/complex.c.</div><div class='add'>+	* ext/mathn: new mathn ext-libraries.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 18:21:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (TestArray#test_join): should restore</div><div class='add'>+	  global variable after the test.  [ruby-dev:36896]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb (TestHash#test_to_s): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 17:43:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lambda): need to adjust lpar_beg for ripper as well.</div><div class='add'>+	  [ruby-dev:36702]</div><div class='add'>+</div><div class='add'>+Fri Oct 24 16:13:12 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (read_multipart): change field value as String</div><div class='add'>+	  from StringIO or Tempfile when multipart parse except file field.</div><div class='add'>+	  add files method that can get uploaded files. [ruby-dev:36547]</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb: fix the test for core.rb.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 14:22:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ext): split out the target for extension library.</div><div class='add'>+</div><div class='add'>+	* common.mk (encs): depends on enc and trans.</div><div class='add'>+</div><div class='add'>+Fri Oct 24 10:23:24 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (TestSignal#test_exit_action): Thread</div><div class='add'>+	  may terminate before sysread. [ruby-dev:36835]</div><div class='add'>+</div><div class='add'>+Thu Oct 23 22:06:23 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* distruby.rb: removed. "make dist" uses tool/make-snapshot for the 1.9</div><div class='add'>+	  series. distruby.rb has been no longer used.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 17:30:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_instance_methods): rdoc fixed.  [ruby-core:19458]</div><div class='add'>+</div><div class='add'>+Thu Oct 23 16:19:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB.load_modules): catch LoadError explicitly.</div><div class='add'>+	  a patch from Daniel Berger &lt;Daniel.Berger at qwest.com&gt; in</div><div class='add'>+	  [ruby-core:19451].  fix [ruby-core:19450]</div><div class='add'>+</div><div class='add'>+Thu Oct 23 16:16:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyport): check if the port range.</div><div class='add'>+	  [ruby-core:19460]</div><div class='add'>+</div><div class='add'>+Thu Oct 23 14:08:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyname): unuse unnecessary</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyport): the port should be</div><div class='add'>+	  converted before the proto so that the #to_int of the former cannot</div><div class='add'>+	  alter the latter.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 10:55:08 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): use \u{ff} escape for UTF-8 encoding</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 09:26:22 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyport): cast to get rid of</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 08:06:03 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyport): port should be</div><div class='add'>+	  network byte order.  a patch from Dave Thomas in [ruby-core:19454].</div><div class='add'>+</div><div class='add'>+Thu Oct 23 01:26:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_conv_enc_opts): new function to convert with</div><div class='add'>+	  specifying ecflags and ecopts.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_newstr): specify ecflags and ecopts for</div><div class='add'>+	  conversion using above function.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_newstr): use own rb_econv_t for dummy</div><div class='add'>+	  encoding to handling stateful encoding (e.g. iso-2022-jp).</div><div class='add'>+	  [ruby-dev:36857]</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_getc): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 01:24:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_tmpsrc): get rid of side effects.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 00:10:01 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: separate data structure between rb_fiber_t and</div><div class='add'>+	  rb_context_t (rb_fiber_t includes rb_context_t).</div><div class='add'>+	  rb_fiber_t has double linked list of fibers in same threads.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 17:25:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): remove unnecessary flush before fork.</div><div class='add'>+	  a patch from Kazuhiro NISHIYAMA &lt;zn at mbf.nifty.com&gt;</div><div class='add'>+	  in [ruby-dev:36840].</div><div class='add'>+</div><div class='add'>+Wed Oct 22 16:27:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_args): should not drop arguments</div><div class='add'>+	  corresponding to default parameters.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 14:59:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_larglist): should not allow semicolon separated local</div><div class='add'>+	  variable declarations if formal argument list is not surrounded</div><div class='add'>+	  by parentheses, mostly because semicolon outside of parentheses</div><div class='add'>+	  appears to terminate the expression.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 14:52:17 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): no implicit strlen call.</div><div class='add'>+	  [ruby-dev:36854]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_external_str_new_cstr): new function to create</div><div class='add'>+	  string from external NUL terminated C string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_locale_str_new_cstr): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: now use rb_locale_str_new_cstr().</div><div class='add'>+</div><div class='add'>+	* test/sdbm/test_sdbm.rb (TestSDBM#test_delete_with_block):</div><div class='add'>+	  deleted key to the block may be a copy of specified key.</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb (TestDBM#test_delete_with_block): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 13:16:47 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (unescape_escaped_nonascii): back out the last change on</div><div class='add'>+	  the function.  [ruby-dev:36818]</div><div class='add'>+</div><div class='add'>+Wed Oct 22 07:09:19 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_ungetc): should be able to unget</div><div class='add'>+	  Fixnum.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): should convert unget</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetbyte): new method.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 05:46:25 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/vm.h: write a comment.</div><div class='add'>+</div><div class='add'>+	* common.mk: remove vm.h from any rules.</div><div class='add'>+	  vm.h is not needed on this version.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 05:39:39 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_concat_gen): concat target node should be NODE_ARRAY.</div><div class='add'>+	  [ruby-core:19413]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add tests.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 00:29:13 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb (test_core_03_notify): Fixed test failures</div><div class='add'>+	  [ruby-dev:36837].</div><div class='add'>+</div><div class='add'>+Wed Oct 22 00:22:06 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): wrong condition to</div><div class='add'>+	  calculate strlen().</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: add encoding support.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 23:12:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_write): should convert writing</div><div class='add'>+	  string to the encoding of the buffer.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_hash): typo fixed.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzwriter_write): oops, IO string conversion</div><div class='add'>+	  need to be done by to_s.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 22:38:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): should adjust argc, argv in struct</div><div class='add'>+	  foreach_arg.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 21:52:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzwriter_write): conversion should be done</div><div class='add'>+	  using to_str, not to_s.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzwriter_write): need proper conversion</div><div class='add'>+	  according to gz encoding.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_ungetc): convert string encoding</div><div class='add'>+	  before unget.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 21:33:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_nothing_raised): raise with backtrace.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 20:12:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_nothing_raised): set backtrace.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 18:17:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: remove obsolete prototype macros.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (struct gzfile): add encoding field to gzfile</div><div class='add'>+	  structure.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_getc): now works on characters.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_getbyte): new method to retrieve</div><div class='add'>+	  single byte.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_readbyte): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_each_byte): renamed from each_char</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_ungetc): allow unget strings.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_ungetbyte): renamed from ungetc.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 13:28:42 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c, include/ruby/intern.h (rb_io_ascii8bit_binmode): externed.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_sock): use rb_io_ascii8bit_binmode()</div><div class='add'>+	  instead of rb_io_binmode().</div><div class='add'>+</div><div class='add'>+Tue Oct 21 13:17:39 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* mdoc2man.rb: moved into tools/.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: followed the change of mdoc2man.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 11:34:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (strip_glibc_option, map_charset): check if</div><div class='add'>+	  encoding is a string.  based on the patch by Hiroshi Moriyama at</div><div class='add'>+	  [ruby-dev:36811].</div><div class='add'>+</div><div class='add'>+	* test/iconv/test_basic.rb (test_invalid_arguments): added tests.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 10:40:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_internal): should initialize fmode before using.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 08:56:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (parse_char_class): CCV_SB is only for single</div><div class='add'>+	  byte.  [ruby-dev:36786]</div><div class='add'>+</div><div class='add'>+Tue Oct 21 01:49:55 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): plain rb/wb should set ASCII-8BIT</div><div class='add'>+	  to the external_encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_internal): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (NEED_WRITECONV): no conversion when the external_encoding</div><div class='add'>+	  is ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+	* io.c (do_writeconv): skip ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 00:51:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ascii8bit_binmode): renamed from rb_io_binmode.</div><div class='add'>+	  (rb_io_binmode): don't change encoding conversion.</div><div class='add'>+	  (rb_io_binmode_m): call rb_io_ascii8bit_binmode.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 21:19:00 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (read_multipart): file's encoding is ascii-8bit</div><div class='add'>+	  from file field of multipart form.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 20:16:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (Init_zlib): add getbyte as an alias to getc.</div><div class='add'>+	  [ruby-dev:36801]</div><div class='add'>+</div><div class='add'>+Mon Oct 20 17:31:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_equal): should not compare recursively.</div><div class='add'>+	  [ruby-dev:36796]</div><div class='add'>+</div><div class='add'>+Mon Oct 20 16:48:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ExportStringValue): new macro to convert</div><div class='add'>+	  string in internal encoding to external to export.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_export): new function to do conversion to</div><div class='add'>+	  external encoding.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: encoding conversion support.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 15:42:02 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_locale_str_new): new function to convert string</div><div class='add'>+	  from locale to internal encoding.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 09:47:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: search srcdir/test/arg at first to find test/ruby</div><div class='add'>+	  directory when "ruby" is specified.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 08:20:01 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: support Encoding.default_internal.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: improve the strategy for searching Tcl/Tk headers.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 00:57:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (Test::Unit.setup_argv): call given block for</div><div class='add'>+	  filtering files.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: search srcdir/test/arg, srcdir/arg.</div><div class='add'>+</div><div class='add'>+	* bin/testrb: show usage if no files given.</div><div class='add'>+</div><div class='add'>+Sun Oct 19 21:19:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (srcs): removed ID_H_TARGET.</div><div class='add'>+</div><div class='add'>+	* tool/generic_erb.rb: always overwrites if no if-change option.</div><div class='add'>+	  sends the result to stdout if no output option.</div><div class='add'>+</div><div class='add'>+	* template/id.h.tmpl: shows which token differs.</div><div class='add'>+</div><div class='add'>+Sun Oct 19 18:15:15 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: adding WINDOWS-wwww encodings</div><div class='add'>+	  (wwww = 874/1250/1251/1253/1254/1255/1256/1257)</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* enc/trans/windows-wwww-tbl.rb: 8 new files</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added test_windows_wwww</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+Sun Oct 19 07:37:13 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb (log2,cbrt,frexp,ldexp,hypot,erf,erfc,gamma,lgamma):</div><div class='add'>+	  should be also provided as module function.  [ruby-dev:36787]</div><div class='add'>+</div><div class='add'>+Sun Oct 19 07:25:08 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* keywords, lex.c.src, opt_insn_unif.def, opt_operand.def: moved rarely changed</div><div class='add'>+	  input files for code generators into defs/ directory.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): followed keywords and lex.c.src.</div><div class='add'>+</div><div class='add'>+	* common.mk (parser.o): followed keywords.</div><div class='add'>+	  (INSNS): followed opt_*.def</div><div class='add'>+</div><div class='add'>+	* tools/instruction.rb: followed opt_*.def.</div><div class='add'>+</div><div class='add'>+Sun Oct 19 12:28:01 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/*:  Renamed tc_* files to test_* to fit in within Ruby's</div><div class='add'>+	  testing process.</div><div class='add'>+</div><div class='add'>+Sun Oct 19 00:15:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_nothing_thrown): don't intern.</div><div class='add'>+</div><div class='add'>+Sat Oct 18 14:40:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_sadded): remove newly defined singleton method</div><div class='add'>+	  that should not exist after exception handling.  [ruby-dev:36569]</div><div class='add'>+</div><div class='add'>+Sat Oct 18 14:27:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (opt_block_arg): allow trailing comma after usual</div><div class='add'>+	  arguments.  not after block argument.</div><div class='add'>+</div><div class='add'>+Sat Oct 18 13:30:53 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_external_str_new): a new function to convert from</div><div class='add'>+	  external encoding to internal encoding.  if something went</div><div class='add'>+	  wrong, it returns a string with the external encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_external_str_new_with_enc): same as above besides</div><div class='add'>+	  you can specify the source encoding.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_set_argv): use rb_external_str_new()</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0, ruby_script): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 18 04:08:18 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#initialize): now Tempfile.new takes</div><div class='add'>+	  keyword arguments to open().  [ruby-dev:36756]</div><div class='add'>+</div><div class='add'>+Sat Oct 18 17:10:10 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: added set_valid_byte_pattern</div><div class='add'>+	  to reduce coupling between table generation script and</div><div class='add'>+	  specific encodings.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: using set_valid_byte_pattern</div><div class='add'>+</div><div class='add'>+Sat Oct 18 16:39:39 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: in transcode_search_path, eliminated a warning</div><div class='add'>+	  on cygwin about pathlen potentially not being initialized</div><div class='add'>+</div><div class='add'>+Sat Oct 18 13:40:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_nothing_thrown): implemented.</div><div class='add'>+</div><div class='add'>+Sat Oct 18 01:33:22 2008  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: use added options for generic_erb.rb.</div><div class='add'>+</div><div class='add'>+Sat Oct 18 00:47:51 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: don't recycle shared-array while sort!.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 22:04:38 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: recycle shared-array when it isn't referenced.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 20:29:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): specify ARG_ENCODING_NONE instead of</div><div class='add'>+	  ARG_ENCODING_FIXED for Regexp.new("", nil, "n").  [ruby-dev:36761]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb (TestRegexp#test_initialize): test</div><div class='add'>+	  updated.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 19:46:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/ifchange, win32/ifchange.bat: --timestamp option added.</div><div class='add'>+</div><div class='add'>+	* tool/generic_erb.rb: --timestamp, --output and --if-change options</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 18:33:12 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_resize_capa): renamed RESIZE_CAPA.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 18:16:51 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_sqrt_bigdecimal):</div><div class='add'>+	  test updated.  a patch from TAKANO Mitsuhiro &lt;takano32 at jus.or.jp&gt; in</div><div class='add'>+	  [ruby-dev:36736].</div><div class='add'>+</div><div class='add'>+Fri Oct 17 18:14:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (uncommon.mk): ignores failures at loading.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/gemutilities.rb (RubyGemTestCase#build_rake_in):</div><div class='add'>+	  get rid of interference with other tests.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 18:06:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): String#encode without argument now</div><div class='add'>+	  behave as if :undef =&gt; :replace, :invalid =&gt; :replace specified.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_prepare_opts): should preserve options in</div><div class='add'>+	  any case.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 11:48:18 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_sock): sockets should be binmode.</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb (test_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 10:26:13 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/insns2vm.rb: remove -Kn option in shebang line because it's</div><div class='add'>+	  inconsistent with -Ks commandline option in common.mk.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 01:26:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): in_pos and out_pos never be</div><div class='add'>+	  NULL, now.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 00:39:19 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: sort the order of executing tests.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 00:24:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): reset encoding conversion.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 00:16:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_getc, rb_io_fread, rb_io_fwrite, rb_read_pending):</div><div class='add'>+	  remove deprecated functions which do not work.  [ruby-dev:36697]</div><div class='add'>+</div><div class='add'>+Thu Oct 16 23:48:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (TESTS): removed to re-enable test for minitest.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 23:37:11 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence): fix memory leak.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 23:27:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_equal): avoid incompatible character</div><div class='add'>+	  encodings error.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 23:23:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb (assert_equal): failure message changed.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 22:52:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit: removed test/unit.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: new compatibility layer using minitest.</div><div class='add'>+</div><div class='add'>+	* bin/testrb: use above.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 14:34:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, enc/depend (enc, trans): targets for sources.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 14:30:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (lib): installs all files other than README etc.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 09:48:03 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): changed the message to clarify the</div><div class='add'>+	  third option argument is now ignored.  [ruby-dev:36753]</div><div class='add'>+</div><div class='add'>+Thu Oct 16 08:14:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): no warning when default_external already</div><div class='add'>+	  set by -E.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_rubyopt):</div><div class='add'>+	  put -K after -E to set script encoding.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 06:20:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (TestTranscode#test_errors):</div><div class='add'>+	  String#encode now works without any argument. [ruby-dev:36740]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 23:48:22 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): REGEXP handling fixed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): need not to call rb_enc_check on</div><div class='add'>+	  regexp.</div><div class='add'>+</div><div class='add'>+	* re.c (unescape_escaped_nonascii): try ASCII-8BIT encoding for</div><div class='add'>+	  broken strings.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 23:11:10 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass): restored 1.8 behavior for</div><div class='add'>+	  DelegateClass as well.  [ruby-dev:36739]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 22:19:14 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (RESIZE_CAPA): check whether len is longer than capacity.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_compact_bang): resize ary before changing capacity.</div><div class='add'>+	  fixed [ruby-dev:36704]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 16:57:30 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h (RUBY_DESCRIPTION): remove unnecessary space.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 23:18:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator): simplified and restored 1.8</div><div class='add'>+	  behavior.  [ruby-dev:35986]</div><div class='add'>+</div><div class='add'>+Tue Oct 14 21:50:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (TESTS): skips minitest by default, since it interferes</div><div class='add'>+	  with test/unit.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 21:36:29 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (load_conv_function51932): check</div><div class='add'>+	  having IMultiLanguage2 or IMultiLanguage. [ruby-dev:36716]</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 20:45:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): $FILENAME and $* must be read-only.  [ruby-dev:36698]</div><div class='add'>+</div><div class='add'>+	* variable.c (*_getter, *_setter, *_marker): made public.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_gvar_*_{getter,setter,marker}): declared.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 20:32:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans (transcode_tblgen_singlebyte): renamed</div><div class='add'>+	  from transcode_tblgen_windows.</div><div class='add'>+	  (transcode_tblgen_iso8859): use transcode_tblgen_singlebyte.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 19:32:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): -U should be allowed in RUBYOPT</div><div class='add'>+	  environment variable.  [ruby-dev:36720]</div><div class='add'>+</div><div class='add'>+Tue Oct 14 14:11:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -U can be followed by other options.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 13:30:30 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: added windows-1252</div><div class='add'>+</div><div class='add'>+	* enc/trans/windows-1252-tbl.rb: new file</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: listed windows-1252 as '1byte'</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added test_windows_1252</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+Tue Oct 14 12:22:32 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_variable.rb (TestVariable#test_variable): add</div><div class='add'>+	  a test of [ruby-dev:36698].</div><div class='add'>+</div><div class='add'>+Tue Oct 14 11:14:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): should not raise error when</div><div class='add'>+	  default_internal is not set.  [ruby-core:19309]</div><div class='add'>+</div><div class='add'>+Tue Oct 14 11:14:26 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: check for invalid APOP timestamp. (CVE-2007-1558)</div><div class='add'>+	  [ruby-dev:36631]</div><div class='add'>+</div><div class='add'>+	* test/net/pop/test_pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 09:39:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_internal_encoding_once): check double contradicted</div><div class='add'>+	  specification of the encoding from command line.</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_external_encoding_once): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 08:28:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): allow reserved word to be keyword argument.</div><div class='add'>+</div><div class='add'>+Mon Oct 13 19:07:52 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (token_info_pop): show source filename. [ruby-dev:36710]</div><div class='add'>+</div><div class='add'>+Mon Oct 13 08:59:08 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (load_conv_function51932): support</div><div class='add'>+	  CP51932 on cygwin and mingw32. thanks to arton.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_cp51932): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 13 07:54:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): add -U command line option to specify</div><div class='add'>+	  utf-8 as default_internal.</div><div class='add'>+</div><div class='add'>+Mon Oct 13 07:42:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): String#encode() with no encoding</div><div class='add'>+	  specified transcode the string into Encoding.default_internal.</div><div class='add'>+	  inspired by [ruby-core:19298].</div><div class='add'>+</div><div class='add'>+Sun Oct 12 18:00:18 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (set_ole_codepage, ole_cp2encoding,</div><div class='add'>+	  ole_wc2mb, ole_vstr2wc, ole_mb2wc): support CP51932 (only mswin32).</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 12 12:03:38 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_insnhelper.h (ruby_vm_redefined_flag): apply optimization</div><div class='add'>+	  patch proposed by Paul Brannan.  [ruby-core:19171]</div><div class='add'>+</div><div class='add'>+Sun Oct 12 09:46:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): suppressed warnings on cygwin.</div><div class='add'>+</div><div class='add'>+Sat Oct 11 19:49:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): use utf-8 encoding directly.</div><div class='add'>+</div><div class='add'>+Sat Oct 11 10:20:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CLEANINGS): uses escaped form tabs to preventing the</div><div class='add'>+	  confusion.  [ruby-talk:317345]</div><div class='add'>+</div><div class='add'>+Sat Oct 11 08:51:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::Application#standard_exception_handling): removed</div><div class='add'>+	  unnecessary SystemExit, and exits with false instead of system</div><div class='add'>+	  dependent value.  [ruby-talk:317330]</div><div class='add'>+</div><div class='add'>+Sat Oct 11 03:54:05 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: optimize 'for' statement when one variable given.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_loop_for.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_loop_times.rb: modified.</div><div class='add'>+</div><div class='add'>+Sat Oct 11 12:09:05 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv/csv.rb:  Added support for Encoding::default_internal.</div><div class='add'>+	* lib/csv/csv.rb:  Switched to new Hash syntax.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 22:16:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (comment_at_top): needed for ripper too.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 22:07:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby.h: updated macros for headers.  [ruby-core:19275]</div><div class='add'>+</div><div class='add'>+Fri Oct 10 19:21:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (magic_comment_encoding): warns when ignored.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_magic_comment): replaces '-' with '_'.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): allows magic comments indented and the</div><div class='add'>+	  second line or later.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 17:26:50 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/parser.c (JSON_parse_string):</div><div class='add'>+	  associate encoding.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 10:18:21 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/*: reverted back to test/unit.</div><div class='add'>+	* test/test/*: ditto</div><div class='add'>+	* lib/minitest/*: Imported minitest 1.3.0 r4333.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 03:41:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): check if codepoint for %c is valid.</div><div class='add'>+	  [ruby-dev:36691]</div><div class='add'>+</div><div class='add'>+Fri Oct 10 01:55:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_names): minor improvement.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 00:21:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (ParseError.filter_backtrace): removes internal</div><div class='add'>+	  backtrace.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 00:11:16 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_add_converter): remove unnecessary NULL check.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 23:53:23 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-c-mode): buffer may not have file</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 23:30:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (run_exec_dup2): fix resource leak.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 23:19:02 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_run_exec_options): fix resource leak.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 22:13:58 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (test_remove_class_variable): add a test</div><div class='add'>+	  for Class#remove_class_variable.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb (test_remove_instance_variable): add a test</div><div class='add'>+	  for Object#remove_instance_variable.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 22:04:38 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_remove_cvar): fix r19711.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 21:17:50 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_lookup_sym): remove reading uninitialized</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 16:34:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/generator/extconf.rb: fix target.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 14:37:59 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: embeds the elements of an array into its</div><div class='add'>+	  struct RArray for # of elements &lt;= 3.</div><div class='add'>+</div><div class='add'>+	* array.c: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): following the change of struct RArray.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_ruby_cmp): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* proc.c (curry): ditto.</div><div class='add'>+</div><div class='add'>+	* .gdbinit: ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 11:29:33 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): new instance method Encoding#names,</div><div class='add'>+	  returns its name and alias names.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_names): defined for Encoding#names.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_names_i): defined for enc_names.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 08:47:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_fd_rw): should not block by select if</div><div class='add'>+	  there's only one thread living.  fixed [ruby-dev:36646].</div><div class='add'>+</div><div class='add'>+Wed Oct  8 20:59:52 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_init_cp): initialize WIN32OLE.codepage</div><div class='add'>+	  according to Encoding.default_internal and</div><div class='add'>+	  Encoding.default_external.</div><div class='add'>+</div><div class='add'>+Wed Oct  8 17:02:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/generator.rb (utf8_to_json):</div><div class='add'>+	  process each unpacked Unicode character.</div><div class='add'>+</div><div class='add'>+Wed Oct  8 15:00:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/parser.rb</div><div class='add'>+	  (JSON::Pure::Parser#parse_string): force_encoding("UTF-8").</div><div class='add'>+</div><div class='add'>+Wed Oct  8 11:56:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: assert_nothing_thrown,</div><div class='add'>+	  assert_raise, assert_not_equal, assert_no_match, assert_not_nil,</div><div class='add'>+	  assert_not_same are coming back as alias.</div><div class='add'>+</div><div class='add'>+Wed Oct  8 11:18:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (autoload_delete, autoload_file): should not delete</div><div class='add'>+	  autoload table, since it may be shared with duplicated modules.</div><div class='add'>+	  [ruby-core:19181]</div><div class='add'>+</div><div class='add'>+Wed Oct  8 02:38:28 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_default_internal_encoding): merged a patch from</div><div class='add'>+	  Michael Selig &lt;michael.selig at fs.com.au&gt; in [ruby-core:18985].</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ext_int_to_encs): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): support default internal encoding in -E</div><div class='add'>+	  option.</div><div class='add'>+</div><div class='add'>+Wed Oct  8 00:03:39 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (today,now): should produce own instances.</div><div class='add'>+	  [ruby-talk:317020]</div><div class='add'>+</div><div class='add'>+Tue Oct  7 16:43:51 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/generator.rb (utf8_to_json):</div><div class='add'>+	  force_encoding before gsub.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 16:35:41 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/generator.rb (utf8_to_json):</div><div class='add'>+	  downcase the result of Unicode escape.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 16:44:52 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI::QueryExtension::initialize_query): fix the</div><div class='add'>+	  condition.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_core.rb: bug fix encoding.</div><div class='add'>+	  thanks to TAKANO Mitsuhiro &lt;takano32 at jus.or.jp&gt; .</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb: temporary comment in.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 15:22:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): ignores T_ZOMBIE.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 12:45:20 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (TestModule#_wrap_assertion): add</div><div class='add'>+	  definition.  is this really needed?</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (TestModule#test_mod_constants): should</div><div class='add'>+	  not depend on global Module constants.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 12:38:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Assertions#assert_nothing_raised):</div><div class='add'>+	  should take optional message argument.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 12:18:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable): string comparison should be</div><div class='add'>+	  transitive.  [ruby-dev:36484]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb (TestM17NComb#test_str_eq): test</div><div class='add'>+	  updated.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 09:00:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_sqrt_bigdecimal): test</div><div class='add'>+	  updated.  a patch from TAKANO Mitsuhiro &lt;takano32 at jus.or.jp&gt;</div><div class='add'>+	  in [ruby-dev:36669].</div><div class='add'>+</div><div class='add'>+Sun Oct  5 23:34:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($config_h): now always defines for old libraries.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 23:06:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_mod_modfunc): method undefined in included module</div><div class='add'>+	  may not have nd_body.  [ruby-core:18738]</div><div class='add'>+</div><div class='add'>+Sun Oct  5 21:28:58 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: resolved conflicts of aliases.</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: avoided some warnings.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 18:51:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: remove debug code introduced by previous change.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 17:49:35 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_uri): set encoding to strio.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 17:39:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_set_encoding): defined for</div><div class='add'>+	  StringIO#set_encoding.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 11:24:42 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: come back definition of environ.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 09:19:49 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/utf8tbl.c: update table.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 22:50:14 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: Ruby no longer supports VMS.</div><div class='add'>+</div><div class='add'>+	* error.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vms/config.h: removed.</div><div class='add'>+</div><div class='add'>+	* vms/vms.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vms/vmsruby_private.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vms/vmsruby_private.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 22:44:23 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: Ruby no longer supports Windows CE.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* strftime.c: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/*: removed.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 22:35:06 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: Ruby no longer supports MacOS 9 or before.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/treectrl/demo.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c: ditto.</div><div class='add'>+</div><div class='add'>+	* file.c: ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* signal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 22:30:28 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: Ruby no longer supports MS-DOS.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/sdbm.h: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/util.h: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* strftime.c: ditto.</div><div class='add'>+</div><div class='add'>+	* util.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 22:14:15 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* djgpp/GNUmakefile.in: removed. Ruby no longer supports djgpp.</div><div class='add'>+</div><div class='add'>+	* djgpp/README.djgpp: ditto.</div><div class='add'>+</div><div class='add'>+	* djgpp/config.hin: ditto.</div><div class='add'>+</div><div class='add'>+	* djgpp/config.sed: ditto.</div><div class='add'>+</div><div class='add'>+	* djgpp/configure.bat: ditto.</div><div class='add'>+</div><div class='add'>+	* djgpp/mkver.sed: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.dj: ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c: removed djgpp supports.</div><div class='add'>+</div><div class='add'>+	* file.c: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* signal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* util.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 21:59:39 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* x68/_dtos18.c: removed. Ruby no longer supports human68k.</div><div class='add'>+</div><div class='add'>+	* x68/_round.c: ditto.</div><div class='add'>+</div><div class='add'>+	* x68/fconvert.c: ditto.</div><div class='add'>+</div><div class='add'>+	* x68/select.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.x68: ditto.</div><div class='add'>+</div><div class='add'>+	* missing/x68.c: ditto.</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_exe_r): removed human68k supports.</div><div class='add'>+	  (dln_find_1): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (Init_ext): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_sock): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (GC_MALLOC_LIMIT): ditto.</div><div class='add'>+	  (rb_setjmp, rb_jmpbuf): ditto.</div><div class='add'>+	  (mark_current_machine_context): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (PATH_ENV): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* LEGAL</div><div class='add'>+</div><div class='add'>+Sat Oct  4 19:02:36 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: no need to require the "lib/rational.rb".</div><div class='add'>+</div><div class='add'>+Sat Oct  4 19:02:59 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_enc_get): don't replicate encoding.</div><div class='add'>+	  [ruby-dev:36575]</div><div class='add'>+</div><div class='add'>+Sat Oct  4 18:47:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_external_encoding): defined.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_internal_encoding): defined.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (Init_stringio): define above.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 15:52:17 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/mini/test_mini_test.rb: recovered.</div><div class='add'>+	  It had been temporarily removed at r19645.</div><div class='add'>+</div><div class='add'>+	* test/mini/test_mini_mock.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/mini/test_mini_spec.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/**/*: replaced by miniunit.</div><div class='add'>+	  miniunit had been temporarily reverted at r19643 but</div><div class='add'>+	  now recovered.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 15:33:26 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (gdb-ruby): new target. it runs ruby under controlled by</div><div class='add'>+	  gdb.</div><div class='add'>+</div><div class='add'>+	* common.mk (dist): accepts RELNAME variable as the second argument of</div><div class='add'>+	  make-snapshot.rb.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 12:17:46 2008  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/irb/ext/save-history.rb: change load_history using File.expand_path. see [ruby-dev:36660]. Thanks Kouhei Sutou.</div><div class='add'>+	* lib/irb/irb/context.rb: convert string Symbol of instance variable names in IRB:Context#inspect.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 22:43:04 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/extconf.rb ($distcleanfiles): added callback-?.c into</div><div class='add'>+	  the distclean list.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 19:33:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure.rb (module JSON): remove Iconv dependency.</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/generator.rb (utf8_to_json): process as</div><div class='add'>+	  binary and remove Iconv dependency.</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/parser.rb (parse_string): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 14:04:05 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/{configure.bat,setup.mak,Makefile.sub): add --program-prefix</div><div class='add'>+	  configure option support.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 21:22:43 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI::QueryExtension): delete MorphingBody</div><div class='add'>+	  and replace like as 1.8's in multipart reading.</div><div class='add'>+	  see [ruby-dev:36443],</div><div class='add'>+	  reference from CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb : fixed multipart test.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 20:46:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): fix coderange.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 22:54:09 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/lightparser.rb, lib/debug.rb: remove unused when</div><div class='add'>+	  clauses.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 22:43:59 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc, lib/rexml, test/ruby/test_array.rb,</div><div class='add'>+	  test/ruby/test_unicode_escape.rb, test/scanf/test_scanf.rb,</div><div class='add'>+	  test/rss/rss-assertions.rb: fix indentation to remove warning.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 21:36:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): finalize deferred IO and Data.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): defers IO finalization.</div><div class='add'>+	  [ruby-dev:36646]</div><div class='add'>+</div><div class='add'>+Wed Oct  1 19:11:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump): fixed for check_dump_arg.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_dump): initializes dump_arg before any funcall.</div><div class='add'>+	  [ruby-dev:36648]</div><div class='add'>+</div><div class='add'>+Wed Oct  1 00:54:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): should use rb_str_subseq() which use</div><div class='add'>+	  offset and length by bytes.  [ruby-dev:36641]</div><div class='add'>+</div><div class='add'>+Wed Oct  1 00:29:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb (test_call, test_class): line number</div><div class='add'>+	  was changed at r19592.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 00:20:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_redirect): don't depend on rb_stdout and</div><div class='add'>+	  rb_stderr.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 23:06:58 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/mini/test_mini_test.rb: removed.</div><div class='add'>+	  Temporarily removed the tests for miniunit because of</div><div class='add'>+	  they depend on the miniunit version of test/unit,</div><div class='add'>+	  where test/unit was temporarily reverted to the state</div><div class='add'>+	  before importing miniunit.</div><div class='add'>+</div><div class='add'>+	* test/mini/test_mini_mock.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/mini/test_mini_spec.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 23:04:30 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/**/*: recovered.</div><div class='add'>+	  Temporarily reverts the changes of lib/test/unit/* in</div><div class='add'>+	  r19502 and r19501, in order to release 1.9.0-5.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 23:00:05 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: removed.</div><div class='add'>+	  Temporarily reverts the changes of lib/test/unit/* in</div><div class='add'>+	  r19543, r19534 and r19503, in order to release 1.9.0-5.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/deprecate.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/error.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 20:17:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): should honor value of the</div><div class='add'>+	  textmode: and binmode: options.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 17:04:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_sqrt_bigdecimal): wrong</div><div class='add'>+	  precision specification.  a patch from TAKANO Mitsuhiro</div><div class='add'>+	  &lt;takano32 at jus.or.jp&gt; in [ruby-dev:36634].</div><div class='add'>+</div><div class='add'>+Tue Sep 30 16:53:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): returns non zero.  [ruby-dev:36633]</div><div class='add'>+</div><div class='add'>+Tue Sep 30 16:52:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): add %&lt;name&gt;s style named argument</div><div class='add'>+	  support.  a patch from Yusuke Endoh &lt;mame at tsg.ne.jp&gt;</div><div class='add'>+	  in [ruby-dev:35851].</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): add gettext style named format</div><div class='add'>+	  (%{name}) support.  inspired by [ruby-dev:35852].</div><div class='add'>+</div><div class='add'>+	* sprintf.c (GETNAMEARG): should raise KeyError exception when no</div><div class='add'>+	  named argument found.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch): export fetch function.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 13:19:01 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_installer.rb: remove extra call to setup to</div><div class='add'>+	  fix ENV['HOME'] pollution.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 13:04:11 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mini/test.rb: Updated to 1.3.0 r4257.</div><div class='add'>+	* test/mini/*: added from r4257.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 07:46:07 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_markup_attribute_manager.rb: Test with clean</div><div class='add'>+	  SPECIALS.</div><div class='add'>+	* test/rubygems/gemutilities.rb: Restore ENV['HOME'] after test.</div><div class='add'>+	* test/runner.rb: Pass -n argument down to miniunit.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 01:02:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (token_info_push, token_info_pop): do nothing for evaled</div><div class='add'>+	  source.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 00:47:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: constified.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 23:32:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subseq): don't use rb_str_drop_bytes for short</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 22:54:29 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: added String#to_[rc].  moved def_canon.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 20:41:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subseq): use rb_str_drop_bytes if possible.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 20:22:20 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/*.rb: imported additional tests and some adjustments.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 20:13:05 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fev_initialize): initialization</div><div class='add'>+	  handler instance variable.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_typelib.rb (test_s_typelibs):</div><div class='add'>+	  fix the warning of shadowing outer local variable.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 19:59:00 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (rescue_callback): use rb_write_error</div><div class='add'>+	  instead of fprintf.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 01:51:54 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_info_formatting.rb (teardown): delete tmpdir for</div><div class='add'>+	  test.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 00:30:20 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/html.rb (CGI::HtmlExtension::{radio_group, checkbox_group}):</div><div class='add'>+	  can specify the false as checked or selected value.</div><div class='add'>+	  [ruby-core:18306], [ruby-core:18307]</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_tag_helper.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 23:08:38 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/html.rb (CGI::HtmlExtension::popup_menu):</div><div class='add'>+	  fix the calls #bytesize on array parameters. [ruby-core:18919]</div><div class='add'>+</div><div class='add'>+Sun Sep 28 22:44:26 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI::parse): ignore illegal query params.</div><div class='add'>+	  [ruby-dev:36618]</div><div class='add'>+</div><div class='add'>+Sun Sep 28 22:05:07 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence): check duplicated when clause.</div><div class='add'>+	  [ruby-dev:36616]</div><div class='add'>+</div><div class='add'>+Sun Sep 28 19:04:03 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/date/*.rb: imported a date test suite ruby 1.9 limited ed.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 18:40:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mini/test.rb (MINI_DIR): loaded path is expanded.</div><div class='add'>+</div><div class='add'>+	* lib/mini/test.rb (assert_match): get rid of confusion of</div><div class='add'>+	  ruby-mode.el.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 12:36:09 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_exec.c (vm_exec_core): add an UNLIKELY() hint.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.h (BASIC_OP_UNREDEFINED_P): add a LIKELY() hint.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 12:04:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new): sets empty string to coderange 7bit.</div><div class='add'>+	  [ruby-core:18993]</div><div class='add'>+</div><div class='add'>+Sun Sep 28 09:39:48 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb ({Fixnum,Bignum,Float}#**): may produce complex</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 09:05:53 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv/csv.rb:  Worked around some minor encoding changes in Ruby</div><div class='add'>+	  pointed out by Nobu.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 08:37:12 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: a hack to provide canonicalization.  This must be</div><div class='add'>+	  temporary, but this seems to be not bad for the time being.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 06:22:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Module#rake_extension, String#ext, String#pathmap): use</div><div class='add'>+	  built-in methods.</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (String#pathmap): fixed typo in rdoc.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 04:28:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rmext): preceding dots are not a part of extension.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 03:15:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_jump_tag_but_local_jump): exc is not used if val is nil.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 03:12:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (host_str): numeric address should be unsigned.</div><div class='add'>+	  [ruby-core:18971]</div><div class='add'>+</div><div class='add'>+Fri Sep 26 22:46:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary, brace_block): fix for line number.</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_location, rb_method_location): new methods</div><div class='add'>+	  {Proc,Method,UnboundMethod}#source_location.  [ruby-core:18452]</div><div class='add'>+</div><div class='add'>+Fri Sep 26 21:36:33 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (RUBY_VM_CHECK_INTS_TH): add an UNLIKELY hint.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 19:33:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_str_encode): renamed from</div><div class='add'>+	  rb_str_transcode.  [ruby-dev:36593]</div><div class='add'>+	  (rb_econv_has_convpath_p): renamed from rb_transcode_convertible.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 19:01:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb (test_inspect): fixed CPU bit</div><div class='add'>+	  size dependent test.  pointed out by TAKANO Mitsuhiro &lt;takano32 AT</div><div class='add'>+	  jus.or.jp&gt;.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 18:57:33 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb: Fix use of deprecated methods.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 18:39:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (dist): nothing is needed to run BASERUBY.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: new option -archname.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 18:24:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: safe customizable variables.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 17:37:18 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_mPrecision): removed.</div><div class='add'>+	  Precision module was temporarily removed at r19430.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 17:25:10 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (dist): Changed its dependencies and action.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 17:07:04 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_syserr): moved to the template.</div><div class='add'>+	  (errno_missing): removed. fixed [ruby-dev:35958].</div><div class='add'>+</div><div class='add'>+	* defs/known_errors.def: added. extracted from Init_syserr.</div><div class='add'>+</div><div class='add'>+	* templates/known_errors.inc.tmpl: added. Template for Init_syserr.</div><div class='add'>+	  c.f. [ruby-dev:35958].</div><div class='add'>+</div><div class='add'>+	* tools/generic_erb.rb: added. general purpose mapper which maps</div><div class='add'>+	  data+template into source code.</div><div class='add'>+</div><div class='add'>+	* common.mk (error.$(OBJEXT), incs, known_errors.inc):</div><div class='add'>+	  Fixed dependencies.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 17:02:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thlist_signal): clears the woken thread if nothing woke.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_wait): achieves the lock if no thread was</div><div class='add'>+	  waiting yet.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 12:04:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: should include &lt;ruby/io.h&gt;.</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 11:34:08 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_hooked_variable): cast to get rid of compiler</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 11:05:41 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c, include/ruby/encoding.c (rb_transcode_convertible):</div><div class='add'>+	  new function. checking the existence of converter.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 10:35:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (global_variable, struct trace_var): made function</div><div class='add'>+	  members more strict.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 09:55:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby{io,sig}.h: moved to include/ruby/backward.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 09:47:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/rubysig.h: old macros for backward compatibility.</div><div class='add'>+</div><div class='add'>+	* thread.c (BLOCKING_REGION): rewritten using helper functions.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 03:03:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (Init_vm_eval): define module_eval, class_eval and eval</div><div class='add'>+	  here for rdoc.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 00:40:30 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_inspect): fix SEGV for cyclic range object.</div><div class='add'>+	  [ruby-core:18835]</div><div class='add'>+</div><div class='add'>+Thu Sep 25 23:59:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: dependency updated.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 21:46:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_eUndefinedConversionError): renamed from</div><div class='add'>+	  rb_eConversionUndefinedError.</div><div class='add'>+	  (rb_eConverterNotFoundError): renamed from rb_eNoConverterError.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 21:23:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack, pack_unpack): 'm0' format (base64) complies with</div><div class='add'>+	  RFC 4648.  It adds no line feed when encoding, and raise ArgumentError</div><div class='add'>+	  if the encoded string contains non-alphabet (including CR and LF).</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: added.  This provides encoding/decoding method for</div><div class='add'>+	  Base64 in standard RFC 2045, Base64 in standard RFC 4648 and ``Base 64</div><div class='add'>+	  Encoding with URL and Filename SafeAlphabet'' in RFC 4648.</div><div class='add'>+</div><div class='add'>+	* test_pack.c, test/base64/test_base64.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 21:00:32 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fix btest-* rules [ruby-dev:36528].</div><div class='add'>+	  and remove obsolete rules.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 20:27:54 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): [BUG] Fixed a bus error</div><div class='add'>+	  on the case for metaclass of a class which includes a</div><div class='add'>+	  module.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 19:34:33 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/*: Update some new tests to use build_rake_in.</div><div class='add'>+	* test/rubygems/gemutilities.rb: Fix broken merge of rake detection.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 19:13:12 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Update to RubyGems 1.3.0 r1891.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 18:40:42 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): Made class of class of class</div><div class='add'>+	  from Class into its own eigenclass. Now meta^(n)-class</div><div class='add'>+	  hierarchy regresses infinitely, again.</div><div class='add'>+	  (This feature was decided on developer-meeting-20080922.)</div><div class='add'>+</div><div class='add'>+Thu Sep 25 16:01:07 2008  Jim Weirich  &lt;jim@tardis.local&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb: Update rake source to version 0.8.3.  This</div><div class='add'>+	  version includes some fixes for running Rake on windows.</div><div class='add'>+	  (1) better APPDATA/HOMExxx/USERPROFILE integration for</div><div class='add'>+	  system rakefiles, (2) Better handling of the :ruby command</div><div class='add'>+	  when installed in directory containing spaces.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 11:22:51 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc*: Update to RDoc 2.2.1 r185.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 02:08:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_enc): make it static.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 01:22:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mini/test.rb (Mini::Assertions#assert_raise): fixed typo.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 23:39:00 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb : revert last change.</div><div class='add'>+	  ( deprecated is assert_raises. )</div><div class='add'>+	* test/cgi/test_cgi_core.rb      : ditto.</div><div class='add'>+	* test/cgi/test_cgi_header.rb    : ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 23:12:49 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI::new, CGI::{accept_charset,accept_charset=}) :</div><div class='add'>+	  accept parameters either in a hash,</div><div class='add'>+	  string as a block. add the encoding validation process.</div><div class='add'>+	* test/cgi/test_cgi_core.rb : test for query encoding check.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 22:58:18 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): raise exception when the encoding of</div><div class='add'>+	  the string is dummy.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): remove nul characters even if the</div><div class='add'>+	  encoding of the string is not single byte optimizable.</div><div class='add'>+	  fixed [ruby-core:18844], reported by Michael Selig.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 19:01:45 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): workaround for VC++8 x64.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 17:44:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (Init_Complex), rational.c (Init_Rational): undefines</div><div class='add'>+	  default #allocate methods which call the allocator.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 17:02:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (Init_Complex), rational.c (Init_Rational): ID_ALLOCATOR</div><div class='add'>+	  differs from :allocate, and invisible in ruby level.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 15:58:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): removing mixed spaces and nuls at</div><div class='add'>+	  the end of strings.  [ruby-dev:36497]</div><div class='add'>+</div><div class='add'>+Wed Sep 24 15:13:04 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb : test for miniunit.</div><div class='add'>+	* test/cgi/test_cgi_core.rb      : ditto.</div><div class='add'>+	* test/cgi/test_cgi_header.rb    : ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 14:38:29 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: setup buffer with nul characters instead of spaces.</div><div class='add'>+	  fixed [ruby-dev:36493]</div><div class='add'>+</div><div class='add'>+Wed Sep 24 11:18:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_binread): offset argument was wrongly passed to</div><div class='add'>+	  internal IO#read call.  [ruby-core:18810]</div><div class='add'>+</div><div class='add'>+Wed Sep 24 07:38:23 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ruby/ruby.h should be included at the very first</div><div class='add'>+	  place in an entire compilation unit, as it includes</div><div class='add'>+	  ruby/config.h</div><div class='add'>+</div><div class='add'>+Wed Sep 24 06:41:24 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/*: removed test/unit.</div><div class='add'>+	* lib/test/*: added miniunit.</div><div class='add'>+	* lib/mini/*: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 04:45:35 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h, node.h: move node.h from include path.</div><div class='add'>+	  This change stop to install node.h because of saving ABI</div><div class='add'>+	  (node.h will be changed. Extensions should not depends on</div><div class='add'>+	   this file).</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, class.c, compile.c, debug.h, enum.c,</div><div class='add'>+	  gc.c, iseq.c, parse.y, ruby.c, signal.c, variable.c,</div><div class='add'>+	  vm.c, vm_core.h, vm_dump.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 04:09:13 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: remove unused frame values.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 04:07:07 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (signal_exec): execute rb_eval_cmd() directly.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 03:08:58 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/mailto.rb: fix indentation.</div><div class='add'>+	* lib/uri/generic.rb: ditto.</div><div class='add'>+	* lib/yaml.rb: ditto.</div><div class='add'>+	* lib/uri/cgi/core.rb: fix indentation and ambiguous argument warning.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 23:39:25 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv/csv.rb:  Improved the idea of whitespace and word characters used</div><div class='add'>+	  in substitutions during header conversion as suggested by Michael Selig.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 21:50:53 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_binwrite): allocate wbuf if nosync.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 21:45:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_body): use io_binwrite instead of io_fwrite.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 21:31:16 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational2.rb: updated.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex2.rb: added.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complexrational.rb: added.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 21:26:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): make the ordering consistent with</div><div class='add'>+	  String#&lt;=&gt;.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 20:52:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_binwrite): add nosync argument.</div><div class='add'>+	  (do_writeconv): extracted from io_fwrite.</div><div class='add'>+	  (io_fwrite): add nosync argument.  use do_writeconv.</div><div class='add'>+	  (io_write): add nosync argument.</div><div class='add'>+	  (io_write_m): new function for IO#write.</div><div class='add'>+	  (rb_p): don't append record separator.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 20:24:41 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (signal_exec): fix to use rb_proc_call().</div><div class='add'>+</div><div class='add'>+Tue Sep 23 20:06:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/formatters/pretty.rb (REXML::Formatters::Pretty#wrap):</div><div class='add'>+	  abandon wrapping if the line contains no space.  [ruby-dev:36045]</div><div class='add'>+</div><div class='add'>+Tue Sep 23 19:38:03 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (subtract): check tv_sec. reported by ko1.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 19:21:03 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_canonicalize_internal): does no apply</div><div class='add'>+	  canonicalization rule anymore.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_canonicalize_internal(_no_reduce)?): ditto.</div><div class='add'>+</div><div class='add'>+	* complex.c: removed class method new! and new.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 19:20:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_binread): a new method to read binary chunk from a</div><div class='add'>+	  file.  [ruby-core:18674]</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): wrong permission specified for read-open.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 18:24:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_obj_is_proc): declaration moved for rdoc.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 18:07:55 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (io.o): remove dependency for vm_core.h.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 17:56:44 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): fix typo in a document.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 17:50:35 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): write a document.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 17:14:31 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, include/ruby/intern.h (rb_thread_interrupted): added.</div><div class='add'>+</div><div class='add'>+	* io.c: use VALUE of thead instead of rb_tread_t to check interrupts.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 17:05:14 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, vm_core.h: move decl of rb_iseq_clone() to class.c.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 17:02:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.h (ruby_set_debug_option): declared.</div><div class='add'>+</div><div class='add'>+	* main.c: include debug.h.</div><div class='add'>+</div><div class='add'>+	* common.mk (main.$(OBJEXT)): dependency updated.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 16:59:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ENVMATCH, ENVNMATCH): reduced same code.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 16:55:11 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: fix comment and rename macro HAVE_RUBY_MVM_H to</div><div class='add'>+	  HAVE_RUBY_VM_H.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 16:41:31 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h, vm_core.h: move definition of</div><div class='add'>+	  RUBY_VM_METHOD_NODE to node.h.</div><div class='add'>+</div><div class='add'>+	* class.c, common.mk: remove useless inclusion.</div><div class='add'>+</div><div class='add'>+	* compile.h, iseq.h, vm_core.h: rename compile.h to iseq.h.</div><div class='add'>+	  move some definitions from vm_core.h to iseq.h.</div><div class='add'>+</div><div class='add'>+	* compile.c, iseq.c, vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c, compile.c: move some functions for parser</div><div class='add'>+	  from eval.c to compile.c.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, vm_core.h: move va_init_list() macro to</div><div class='add'>+	  vm_core.h.</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_new_top, rb_iseq_first_lineno): added.</div><div class='add'>+</div><div class='add'>+	* load.c, ruby.c: use rb_iseq_new_top() instead of</div><div class='add'>+	  rb_iseq_new() with ISEQ_TYPE_TOP constant directly.</div><div class='add'>+</div><div class='add'>+	* proc.c: use rb_iseq_first_lineno() instead of accessing</div><div class='add'>+	  iseq structure.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 16:17:54 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c (token_to_eventid): supper __ENCODING__</div><div class='add'>+	  keyword.  [ruby-dev:36478]</div><div class='add'>+</div><div class='add'>+Tue Sep 23 15:30:53 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, hash.c: remove unused inclusion.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 09:52:07 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_safe.c, safe.c: rename eval_safe.c to safe.c.</div><div class='add'>+</div><div class='add'>+	* common.mk, eval.c, safe.c, inits.c: separate safe.c from eval.c and</div><div class='add'>+	  make Init_safe().</div><div class='add'>+</div><div class='add'>+Tue Sep 23 09:20:00 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: clean up</div><div class='add'>+	  - remove blockinlining.$(OBJEXT) to built</div><div class='add'>+	  - make ENCODING_H_INCLDUES variable (include/ruby/encoding.h)</div><div class='add'>+	  - make VM_CORE_H_INCLUDES variable (vm_core.h)</div><div class='add'>+	  - simplify rules.</div><div class='add'>+	  - make depends rule to output depend status using gcc -MM.</div><div class='add'>+</div><div class='add'>+	* include/ruby/mvm.h, include/ruby/vm.h: rename mvm.h to vm.h.</div><div class='add'>+</div><div class='add'>+	* include/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* load.c: add inclusion explicitly.</div><div class='add'>+</div><div class='add'>+	* enumerator.c, object.c, parse.y, thread.c, vm_dump.c:</div><div class='add'>+	  remove useless inclusion.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: cleanup inclusion.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: rb_thread_t should be defined in this file.</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.c, vm_exec.c: rename vm_evalbody.c to vm_exec.c.</div><div class='add'>+</div><div class='add'>+	* vm.h, vm_exec.h: rename vm.h to vm_exec.h.</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, vm_insnhelper.h: rename insnhelper.h to vm_insnhelper.h.</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_insnhelper.c, vm_insnhelper.h:</div><div class='add'>+	  - rename vm_eval() to vm_exec_core().</div><div class='add'>+	  - rename vm_eval_body() to vm_exec().</div><div class='add'>+	  - cleanup include order.</div><div class='add'>+</div><div class='add'>+	* vm_method.c: fix comment.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 09:01:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (each_filename): return Enumerator if no block</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 08:25:56 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_aset): allow nil value to remove an entry.</div><div class='add'>+	  [ruby-dev:36465]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb (TestEnv#test_aset): test updated.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 08:07:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-keyword-end-re): emacs21 support.  a</div><div class='add'>+	  patch from Hiroshi Moriyama &lt;hiroshi at kvd.biglobe.ne.jp&gt; in</div><div class='add'>+	  [ruby-dev:36471].</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-in-ppss-context-p): ditto.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-here-doc-end-syntax):</div><div class='add'>+</div><div class='add'>+Tue Sep 23 02:07:52 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline_history.rb</div><div class='add'>+	  (Readline::TestHistory#test_each): checked return value.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 02:05:34 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Init_readline): used remove_history to</div><div class='add'>+	  check offset of history if unsupported clear_history.</div><div class='add'>+</div><div class='add'>+Mon Sep 22 17:39:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#open): should return a value from the</div><div class='add'>+	  block (if given).   [ruby-core:18394]</div><div class='add'>+</div><div class='add'>+Mon Sep 22 11:17:51 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (enum): ISO C forbids comma at end of</div><div class='add'>+	  enumerator list</div><div class='add'>+</div><div class='add'>+Mon Sep 22 10:15:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* LEGAL: updated file names removed and added.  [ruby-dev:36426]</div><div class='add'>+</div><div class='add'>+Mon Sep 22 02:39:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (get_default_external): add description.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 21:52:41 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): should check argc.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 21:20:24 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: added two macros.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 18:06:38 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_convert): checks argc.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_convert): ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 10:19:04 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_canonicalize_internal): checks exactness of</div><div class='add'>+	  imag only.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_convert): accepts non real value</div><div class='add'>+	  (Rational(a,b) as a/b).</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_convert): refined.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 09:37:57 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv/csv.rb:  Reworked CSV's parser and generator to be m17n.  Data</div><div class='add'>+	  is now parsed in the Encoding it is in without need for translation.</div><div class='add'>+	* lib/csv/csv.rb:  Improved inspect() messages for better IRb support.</div><div class='add'>+	* lib/csv/csv.rb:  Fixed header writing bug reported by Dov Murik.</div><div class='add'>+	* lib/csv/csv.rb:  Use custom separators in parsing header Strings as</div><div class='add'>+	  suggested by Shmulik Regev.</div><div class='add'>+	* lib/csv/csv.rb:  Added a :write_headers option for outputting headers.</div><div class='add'>+	* lib/csv/csv.rb:  Handle open() calls in binary mode whenever we can to</div><div class='add'>+	  workaround a Windows issue where line-ending translation can cause an</div><div class='add'>+	  off-by-one error in seeking back to a non-zero starting position after</div><div class='add'>+	  auto-discovery for :row_sep as suggested by Robert Battle.</div><div class='add'>+	* lib/csv/csv.rb:  Improved the parser to fail faster when fed some forms</div><div class='add'>+	  of invalid CSV that can be detected without reading ahead.</div><div class='add'>+	* lib/csv/csv.rb:  Added a :field_size_limit option to control CSV's</div><div class='add'>+	  lookahead and prevent the parser from biting off more data than</div><div class='add'>+	  it can chew.</div><div class='add'>+	* lib/csv/csv.rb:  Added readers for CSV attributes:  col_sep(), row_sep(),</div><div class='add'>+	  quote_char(), field_size_limit(), converters(), unconverted_fields?(),</div><div class='add'>+	  headers(), return_headers?(), write_headers?(), header_converters(),</div><div class='add'>+	  skip_blanks?(), and force_quotes?().</div><div class='add'>+	* lib/csv/csv.rb:  Cleaned up code syntax to be more inline with</div><div class='add'>+	  Ruby 1.9 than 1.8.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 07:43:16 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: an instance method image has been removed and</div><div class='add'>+	  uses "imag" instead of "image".</div><div class='add'>+</div><div class='add'>+	* complex.c: two instance method re and im are removed.</div><div class='add'>+</div><div class='add'>+	* rational.c: follows the above changes.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: ditto. and provides some obsolete methods.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 02:48:45 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/parse.c: use ruby_xfree().</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/parse.rl: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/unicode.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 21 02:40:20 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json: import JSON v 1.1.3.</div><div class='add'>+</div><div class='add'>+Sat Sep 20 11:43:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (summarize): separator "" should output new line.</div><div class='add'>+</div><div class='add'>+Sat Sep 20 08:07:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: strings which contain only US-ASCII don't force to have</div><div class='add'>+	  US-ASCII encoding. [ruby-dev:36400]</div><div class='add'>+</div><div class='add'>+Sat Sep 20 07:59:31 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): Regexps of ASCII Compatible encoding may</div><div class='add'>+	  contain non-ASCII characters. So in that case its encoding</div><div class='add'>+	  must keep original encoding.</div><div class='add'>+</div><div class='add'>+Sat Sep 20 07:44:56 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: prec.c is removed.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 22:37:25 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: uses f_(in)?exact_p macro.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): bignum**bignum - should calculate without</div><div class='add'>+	  rational.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: should override Math module at most once.</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: requires 'cmath' directly.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 20:48:06 2008  Yuki Sonoda  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* prec.c: removed. Precision will be redesigned and be back again.</div><div class='add'>+	  c.f. [ruby-dev:36352].</div><div class='add'>+</div><div class='add'>+	* common.mk (COMMON_OBJS): removed prec.o.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): removed Init_Precision.</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): removed inclusion of Precision.</div><div class='add'>+	  removed #induced_from from each class.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/known_classes.rb: removed the entry for Precision.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_prec.rb: removed.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb: removed tests for Precision.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fixnum.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 19:43:40 2008  Yuki Sonoda  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : Reverts the changeset 18994.</div><div class='add'>+	  Uses the official repository of rubyspec again.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 17:41:56 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: applied OS/2 support patch from Brendan Oakley</div><div class='add'>+	  &lt;gentux2 at gmail.com&gt; in [ruby-core:18707].</div><div class='add'>+</div><div class='add'>+Fri Sep 19 09:29:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: newer BeOS support.  a patch from Pete Goodeve</div><div class='add'>+	  &lt;pete.goodeve at computer.org&gt; in [ruby-core:18712].</div><div class='add'>+</div><div class='add'>+Fri Sep 19 03:41:25 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: fix memory violation. mentioned by mame [ruby-dev:36373]</div><div class='add'>+</div><div class='add'>+Fri Sep 19 01:07:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (string_cmp_ic): add text_end argument.</div><div class='add'>+	  (slow_search): call enclen with real string end.</div><div class='add'>+	  (map_search): add text_end argument.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 22:54:39 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_to_string): comment out</div><div class='add'>+	  fragments of unused code.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 22:35:03 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpCtoV): 1E1000...000 is interpreted as</div><div class='add'>+	  Infinity.  [ruby-dev:36159]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpPower): Infinity ** 1 returns</div><div class='add'>+	  Infinity instead of NaN.  [ruby-dev:36159]</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 22:20:08 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): introduce EncodingError which is a</div><div class='add'>+	  superclass for all encoding related exception classes,</div><div class='add'>+	  e.g. Encoding::CompatibilityError.  [ruby-dev:36371]</div><div class='add'>+</div><div class='add'>+	* transcode.c (Init_transcode): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 21:57:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable): make ascii8bit string to be</div><div class='add'>+	  compatible with any other encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp): use rb_str_comparable() instead of</div><div class='add'>+	  rb_enc_compatible() since &lt;=&gt; is a comparison anyway.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 21:37:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* grapheme cluster implementation reverted.  [ruby-dev:36375]</div><div class='add'>+</div><div class='add'>+Thu Sep 18 20:50:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::Application#standard_exception_handling):</div><div class='add'>+	  replaced magic numbers for exit status.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 20:37:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::ParseError#set_backtrace): omits</div><div class='add'>+	  OptionParser internal backtraces unless debug flag is set.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 20:02:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (unescape): skip '%' to make String#hex work</div><div class='add'>+	  correctly.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 19:51:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_karatsuba): free internal buffer eagerly.</div><div class='add'>+	  a patch from TOYOFUKU Chikanobu &lt;nobu_toyofuku at nifty.com&gt;</div><div class='add'>+	  in [ruby-dev:36217].</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 19:43:04 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (new_size): raise RuntimeError when st_table is too big.</div><div class='add'>+	  [ruby-dev:36354]</div><div class='add'>+</div><div class='add'>+Thu Sep 18 18:23:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): must take pointer argument to avoid GC</div><div class='add'>+	  problem.  StringValueCStr modifies the argument and it should be</div><div class='add'>+	  preserved while the string StringValueCStr returns is used.</div><div class='add'>+	  Since the string is used by caller, the modified argument should be</div><div class='add'>+	  hold by caller.  Actually</div><div class='add'>+	    GC.stress = true</div><div class='add'>+	    def (o=Object.new).to_str()</div><div class='add'>+	      "universal"+"_newline"</div><div class='add'>+	    end</div><div class='add'>+	    "\u3042".encode(o, "")</div><div class='add'>+	  causes curious warning:</div><div class='add'>+	    rb_define_const: invalid name `' for constant</div><div class='add'>+</div><div class='add'>+Thu Sep 18 17:32:44 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: add "Error" suffix for Encoding exception classes.</div><div class='add'>+	  a patch from Tadashi Saito &lt;shiba at mail2.accsnet.ne.jp&gt; in</div><div class='add'>+	  [ruby-dev:36346].</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): rename EncodingCompatibilityError to</div><div class='add'>+	  Encoding::CompatibilityError.  [ruby-dev:36366]</div><div class='add'>+</div><div class='add'>+Thu Sep 18 17:18:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): revert last change.  too early exception</div><div class='add'>+	  raising.</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): need not to take pointer argument.</div><div class='add'>+</div><div class='add'>+Sun Sep 18 02:22:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/bigdecimal/test_bigdecimal.rb: add tests to achieve over 90%</div><div class='add'>+	  test coverage of bigdecimal.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 21:50:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): don't use rb_enc_codepoint.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 19:55:33 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_convert): accepts complex</div><div class='add'>+	  value (Complex(a,b) as a+bi).</div><div class='add'>+</div><div class='add'>+Wed Sep 17 19:16:47 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_dup): avoid infinite loop.</div><div class='add'>+	  [ruby-dev:36326]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_dup): remove needless open.</div><div class='add'>+	  [ruby-dev:35957]</div><div class='add'>+</div><div class='add'>+Wed Sep 17 17:44:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): process option mode: and perm: as</div><div class='add'>+	  well.</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): move mode: and perm: related code to</div><div class='add'>+	  rb_io_extract_modeenc().</div><div class='add'>+</div><div class='add'>+Wed Sep 17 13:42:59 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/html.rb (checkbox_group,radio_group): bug fix</div><div class='add'>+	  use size instead of	bytesize.</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_tag_helper.rb: test for checkbox_group,radio_group.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 06:58:31 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: provides predicate real? instead of scalar?.</div><div class='add'>+</div><div class='add'>+	* complex.c: follows the above change.</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 01:56:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb: use __FILE__ instead of /dev/null.</div><div class='add'>+	  [ruby-dev:36327]</div><div class='add'>+</div><div class='add'>+Wed Sep 17 01:33:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingTypeST): add precise_ret</div><div class='add'>+	  argument for mbc_to_code.</div><div class='add'>+	  (ONIGENC_MBC_TO_CODE): provide NULL for precise_ret.</div><div class='add'>+	  (ONIGENC_MBC_PRECISE_CODEPOINT): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_mbc_precise_codepoint): defined.</div><div class='add'>+</div><div class='add'>+	* regenc.h (onigenc_single_byte_mbc_to_code): precise_ret argument</div><div class='add'>+	  added.</div><div class='add'>+	  (onigenc_mbn_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_single_byte_mbc_to_code): precise_ret argument</div><div class='add'>+	  added.</div><div class='add'>+	  (onigenc_mbn_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (count_utf8_lead_bytes_with_word): removed.</div><div class='add'>+	  (str_utf8_nth): removed.</div><div class='add'>+	  (str_utf8_offset): removed.</div><div class='add'>+	  (str_strlen): UTF-8 codepoint oriented optimization removed.</div><div class='add'>+	  (rb_str_substr): ditto.</div><div class='add'>+	  (enc_succ_char): use rb_enc_mbc_precise_codepoint.</div><div class='add'>+	  (enc_pred_char): ditto.</div><div class='add'>+	  (rb_str_succ): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_ascget): check length with</div><div class='add'>+	  rb_enc_mbc_precise_codepoint.</div><div class='add'>+	  (rb_enc_codepoint): use rb_enc_mbc_precise_codepoint.</div><div class='add'>+</div><div class='add'>+	* regexec.c (string_cmp_ic): add text_end argument.</div><div class='add'>+	  (match_at): check end of character after exact string matches.</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c (grapheme_table): defined for extended grapheme cluster</div><div class='add'>+	  boundary.</div><div class='add'>+	  (grapheme_cmp): defined.</div><div class='add'>+	  (get_grapheme_properties): defined.</div><div class='add'>+	  (grapheme_boundary_p): defined.</div><div class='add'>+	  (MAX_BYTES_LENGTH): defined.</div><div class='add'>+	  (comb_char_enc_len): defined.</div><div class='add'>+	  (mbc_to_code0): extracted from mbc_to_code.</div><div class='add'>+	  (mbc_to_code): use mbc_to_code0.</div><div class='add'>+	  (left_adjust_combchar_head): defined.</div><div class='add'>+	  (utf_8): use a extended grapheme cluster as a unit.</div><div class='add'>+</div><div class='add'>+	* enc/unicode.c (onigenc_unicode_mbc_case_fold): use</div><div class='add'>+	  ONIGENC_MBC_PRECISE_CODEPOINT to extract codepoints.</div><div class='add'>+	  (onigenc_unicode_get_case_fold_codes_by_str): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c (mbc_to_code): follow mbc_to_code field change.</div><div class='add'>+	  use onigenc_mbn_mbc_to_code.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c (mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gbk.c (gbk_mbc_to_code): follow mbc_to_code field and</div><div class='add'>+	  onigenc_mbn_mbc_to_code change.</div><div class='add'>+</div><div class='add'>+	* enc/cp949.c (cp949_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/big5.c (big5_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_tw.c (euctw_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_kr.c (euckr_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (gb18030_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32be.c (utf32be_mbc_to_code): follow mbc_to_code field</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16be.c (utf16be_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32le.c (utf32le_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16le.c (utf16le_mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 01:17:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): raise exception when unknown encoding is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 22:23:24 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI#header): performance improvement.</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_header.rb: exception class fixed.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 22:21:33 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): fix rdoc. (codepoint is integer)</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_codepoint): use UINT2NUM.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 21:48:55 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): Regexp#inspect should be US-ASCII.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 21:33:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_crypt): orthodox crypt() sees only first two bytes</div><div class='add'>+	  of salt.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 19:18:40 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_marshal_{dump,load}): preserve instance</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_marshal_{dump,load}): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 18:28:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets_m): rdoc updated.  limit counts in bytes.</div><div class='add'>+	  [ruby-core:18617]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_readlines, rb_f_gets): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_readbyte): rdoc updated.  [ruby-core:18617]</div><div class='add'>+</div><div class='add'>+Tue Sep 16 11:55:16 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_codepoint): add new methods, #codepoints</div><div class='add'>+	  and #each_codepoint.  a patch from Michael Selig</div><div class='add'>+	  &lt;michael.selig at fs.com.au&gt; in [ruby-core:18532].</div><div class='add'>+</div><div class='add'>+Tue Sep 16 11:24:44 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: add new constants.  a patch from</div><div class='add'>+	  IWAMURO Motonori &lt;deenheart+ruby at gmail.com&gt; in [ruby-dev:36309].</div><div class='add'>+</div><div class='add'>+Tue Sep 16 09:20:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_dup): exception should be</div><div class='add'>+	  raised from IO#dup.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 08:35:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_dup): this test might fail if</div><div class='add'>+	  there are any garbage IO objects.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 02:02:56 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat_ascii): codepoint is unsigned int.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (str_cat_char): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (prefix_escape): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 01:47:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (single_byte_optimizable): make function inline.  based</div><div class='add'>+	  on a patch from Michael Selig &lt;michael.selig at fs.com.au&gt; in</div><div class='add'>+	  [ruby-core:18532].</div><div class='add'>+</div><div class='add'>+	* string.c (str_modify_keep_cr): new function act as</div><div class='add'>+	  rb_str_modify(), but don't clear coderange</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): specialized for single byte strings.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice): preserve coderange.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang, rb_str_reverse_bang,</div><div class='add'>+	  rb_str_upcase_bang, rb_str_downcase_bang, tr_trans,</div><div class='add'>+	  rb_str_capitalize_bang, rb_str_swapcase_bang,</div><div class='add'>+	  rb_str_delete_bang, rb_str_chop_bang, rb_str_chomp_bang,</div><div class='add'>+	  rb_str_lstrip_bang, rb_str_rstrip_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_clear): preset coderange.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): specialized for splitting with a</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 00:57:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): use rb_enc_mbcput to generate ASCII</div><div class='add'>+	  incompatible characters properly.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 00:51:59 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Encoding#base_encoding): removed. [ruby-dev:36270]</div><div class='add'>+</div><div class='add'>+Tue Sep 16 00:40:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (STR1_LENGTH): defined.</div><div class='add'>+	  (makeSTR1LEN): defined.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: use makeSTR1LEN.  generate STR1 for 4 to</div><div class='add'>+	  259 bytes.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_transcoding): new field: output_index.</div><div class='add'>+	  (transcode_restartable0): use STR1_LENGTH.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 23:52:45 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c, include/ruby/ruby.h: rename rb_register_mark_object()</div><div class='add'>+	  to rb_gc_register_mark_object().</div><div class='add'>+</div><div class='add'>+	* eval.c, vm.c: initialize vm-&gt;mark_object_ary at</div><div class='add'>+	  Init_top_self().</div><div class='add'>+</div><div class='add'>+	* bignum.c, complex.c, encoding.c, ext/win32ole/win32ole.c,</div><div class='add'>+	  io.c, load.c, marshal.c, rational.c, ruby.c, vm.c:</div><div class='add'>+	  use rb_gc_register_mark_object() instead of</div><div class='add'>+	  rb_global_variable() or rb_gc_register_address().</div><div class='add'>+</div><div class='add'>+Mon Sep 15 23:37:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_opts): don't use to_sym.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 23:28:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_get_index): don't return -1.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): call FilePathValue before encoding</div><div class='add'>+	  conversion.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 22:11:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): specialized for 7bit characters in</div><div class='add'>+	  ASCII compatible strings.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): preserve 7bit/valid coderange flag.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): preserve previous coderange value.</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'>+	* encoding.c (rb_default_external_encoding): preserve</div><div class='add'>+	  default_external_encoding in a static variable.</div><div class='add'>+</div><div class='add'>+	* string.c (single_byte_optimizable): check coderange first, to</div><div class='add'>+	  reduce number of calling rb_enc_from_index().</div><div class='add'>+</div><div class='add'>+Mon Sep 15 20:57:00 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix#eql?): fixed [ruby-dev:36298].</div><div class='add'>+	  Reported by an anonymous user.</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Vector#eql?): ditto.</div><div class='add'>+</div><div class='add'>+	* (Matrix#compare_by_row_vectors): takes comparison</div><div class='add'>+	  strategy as an optional parameter.</div><div class='add'>+</div><div class='add'>+	* (Vector#compare_by): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 14:34:32 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (RUBY_MAX_CHAR_LEN): defined.</div><div class='add'>+</div><div class='add'>+	* encoding.c (str_cat_char): use RUBY_MAX_CHAR_LEN.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 13:53:33 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): accept other than strings and</div><div class='add'>+	  regexps. [ruby-core:18595]</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_get_index): works files and encodings.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 13:17:21 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_eql_p): new.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_hash): should use hash values of the elements.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_hash): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_cmp): removed an unused variable.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 11:11:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): resetsize_func and resetstate_func</div><div class='add'>+	  also returns ssize_t.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: follow the type change.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 10:28:10 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/matrix/test_matrix.rb (setup): typo.</div><div class='add'>+	  (test_equality): misdefinition of the expected working.</div><div class='add'>+	  Reported by an anonymous user.</div><div class='add'>+	  (test_hash): added.</div><div class='add'>+</div><div class='add'>+	* test/matrix/test_vector.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 03:33:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h: return output functions ssize_t.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): don't need to cast the result</div><div class='add'>+	  of output functions.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: follow the type change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 03:04:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h: output function takes output buffer size.</div><div class='add'>+</div><div class='add'>+	* transcode.c: give output buffer size for output functions.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: follow the type change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 02:37:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_encode): returns duplicated string if nothing</div><div class='add'>+	  changed.  [ruby-core:18578]</div><div class='add'>+</div><div class='add'>+Sun Sep 14 22:09:01 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/core.rb (CGI::parse): performance improvement</div><div class='add'>+</div><div class='add'>+Sun Sep 14 18:33:32 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: trivial changes.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 16:15:22 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Vector#eql?): typo of the method name as "eqn?".</div><div class='add'>+	  (Vector#eqn?): removed. Defined by mistake.</div><div class='add'>+	  Fixes [ruby-dev:36294]. Reported by weda &lt;weda AT</div><div class='add'>+	  issp.u-tokyo.ac.jp&gt; and an anonymous user.</div><div class='add'>+</div><div class='add'>+	* test/matrix/test_matrix.rb: added.</div><div class='add'>+</div><div class='add'>+	* test/matrix/test_vector.rb: added.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 16:07:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): associates the locale encoding with $0 as</div><div class='add'>+	  well as ARGV.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 13:48:03 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): added metameta-class initialization for</div><div class='add'>+	  BasicObject, Object, and Module.</div><div class='add'>+	  The metameta-classes of them are now the metaclass of Class, as the</div><div class='add'>+	  metameta-class of Class is.</div><div class='add'>+</div><div class='add'>+	* object.c (boot_defmetametaclass): added.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 10:10:43 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_{add,mul,sub}): omitted some shortcuts for preserving</div><div class='add'>+	  signed zero anyway.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_negate): new.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 04:15:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingTypeST): add end argument for</div><div class='add'>+	  left_adjust_char_head.</div><div class='add'>+	  (ONIGENC_LEFT_ADJUST_CHAR_HEAD): add end argument.</div><div class='add'>+	  (onigenc_get_left_adjust_char_head): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_left_char_head): add end argument.</div><div class='add'>+</div><div class='add'>+	* regenc.h (onigenc_single_byte_left_adjust_char_head): ditto.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_get_right_adjust_char_head): follow the interface</div><div class='add'>+	  change.</div><div class='add'>+	  (onigenc_get_right_adjust_char_head_with_prev): ditto.</div><div class='add'>+	  (onigenc_get_prev_char_head): ditto.</div><div class='add'>+	  (onigenc_step_back): ditto.</div><div class='add'>+	  (onigenc_get_left_adjust_char_head): ditto.</div><div class='add'>+	  (onigenc_single_byte_code_to_mbc): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c: ditto.</div><div class='add'>+</div><div class='add'>+	* string.c: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/cp949.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gbk.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_tw.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_kr.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16le.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16be.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32le.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32be.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 03:43:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (ONIGENC_STEP_BACK): add end argument.</div><div class='add'>+	  (onigenc_step_back): ditto.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_step_back): add end argument.</div><div class='add'>+</div><div class='add'>+	* regexec.c: follow the interface change.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 03:20:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (onigenc_get_prev_char_head): add end</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_prev_char): ditto.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_get_prev_char_head): add end argument.</div><div class='add'>+</div><div class='add'>+	* regparse.c: follow the interface change.</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* string.c: ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 02:04:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h</div><div class='add'>+	  (onigenc_get_right_adjust_char_head_with_prev): add end argument.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_get_right_adjust_char_head_with_prev): use end</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* regexec.c (forward_search_range): follow the interface change.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 01:38:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (onigenc_get_right_adjust_char_head): add</div><div class='add'>+	  end argument.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_right_char_head): add end argument.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_get_right_adjust_char_head): use end argument.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_adjust_startpos): follow the interface change.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c (backward_search_range): ditto.</div><div class='add'>+	  (onig_search): ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 14 00:43:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (ripper.o): it depends on ruby headers.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 19:27:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): don't need argc argument.</div><div class='add'>+	  (rb_io_s_pipe): update io_encoding_set call.</div><div class='add'>+	  (rb_io_set_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 18:46:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_transcoding): align state field.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 18:21:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (DECORATOR_P): renamed from SUPPLEMENTAL_CONVERSION.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 18:05:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use rb_enc_name.</div><div class='add'>+	  (make_readconv): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_opts): ditto.</div><div class='add'>+	  (econv_args): ditto.</div><div class='add'>+	  (decorate_convpath): ditto.</div><div class='add'>+	  (econv_set_replacement): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 11:15:38 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb: fixed typo.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 10:53:13 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: refined.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 03:44:52 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_prepare_opts): raise ArgumentError if</div><div class='add'>+	  a broken string is specified as a replacement.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 03:31:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_compile_file): use rb_file_open_str.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_generic): call validate_enc_binmode.</div><div class='add'>+	  (rb_file_open_str): call FilePathValue.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 02:58:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (validate_enc_binmode): extracted from rb_io_extract_modeenc.</div><div class='add'>+	  (rb_io_extract_modeenc): use validate_enc_binmode.</div><div class='add'>+	  (io_encoding_set): call validate_enc_binmode.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 02:50:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_prepare_opts): initialize *opt and return 0</div><div class='add'>+	  if opthash is nil.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 02:29:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: transcoder name renamed to use underscore.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 02:12:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_init_by_convpath_i): new function.</div><div class='add'>+	  (rb_econv_init_by_convpath): new function.</div><div class='add'>+	  (econv_init): use rb_econv_init_by_convpath.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 01:11:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_args): take snamev_p and dnamev_p to prevent</div><div class='add'>+	  possible GC problem.</div><div class='add'>+</div><div class='add'>+Sat Sep 13 00:38:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): take arg as VALUE * to prevent possible GC</div><div class='add'>+	  problem.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 23:19:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_add_transcoder_at): fix loop condition.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 22:39:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (decorator_names): extracted from rb_econv_open.</div><div class='add'>+	  (rb_econv_open): use decorator_names.</div><div class='add'>+	  (econv_args): extracted from econv_init.</div><div class='add'>+	  (econv_init): use econv_args.</div><div class='add'>+	  (decorate_convpath): new function.</div><div class='add'>+	  (search_convpath_i): new function.</div><div class='add'>+	  (econv_s_search_convpath): new method.</div><div class='add'>+	  (Init_transcode): new method defined.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 21:55:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_t): new field: num_allocated.</div><div class='add'>+	  (rb_econv_alloc): extracted from</div><div class='add'>+	  rb_econv_open_by_transcoder_entries.</div><div class='add'>+	  (rb_econv_add_transcoder_at): extracted from rb_econv_decorate_at</div><div class='add'>+	  and generalized</div><div class='add'>+	  (rb_econv_open_by_transcoder_entries): use rb_econv_alloc and</div><div class='add'>+	  rb_econv_add_transcoder_at.</div><div class='add'>+	  (rb_econv_add_converter): extracted from rb_econv_decorate_at.</div><div class='add'>+	  (rb_econv_decorate_at): use rb_econv_add_converter.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 21:22:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_t): new field: started.</div><div class='add'>+	  (rb_econv_open_by_transcoder_entries): initialize started field.</div><div class='add'>+	  (rb_econv_convert): set started field.</div><div class='add'>+	  (rb_econv_insert_output): ditto.</div><div class='add'>+	  (rb_econv_decorate_at): check started field instead of num_finished.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 20:28:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_single_byte_code_to_mbc): follow OnigEncoding</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 20:00:22 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (parse_exp): fix resource leak.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 01:21:22 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/node.c (syck_replace_str2): fix wrong check to free ptr.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 20:18:24 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb (teardown): get rid</div><div class='add'>+	  of infinite loop.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 19:12:56 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigCodePoint): unsigned long to unsigned int.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_codepoint): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codepoint): signed int to unsigned int.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_ascget): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (enc_succ_alnum_char): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upcase_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_downcase_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_capitalize_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_swapcase_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (struct tr): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): ditto.</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'>+	* string.c (rb_str_intern): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (char_casecmp): ditto.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c (mbc_to_code): to be 32bit clean.</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c (code_to_mbc): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (mbc_to_code): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (code_to_mbc): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 19:09:25 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: add attention for machine independent.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 15:23:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): adjust length for division and remainder.</div><div class='add'>+	  a patch from TOYOFUKU Chikanobu &lt;nobu_toyofuku at nifty.com&gt; in</div><div class='add'>+	  [ruby-dev:36231].</div><div class='add'>+</div><div class='add'>+Thu Sep 11 02:59:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_binwrite): extracted from io_fwrite.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 02:25:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_encoding): new function.</div><div class='add'>+	  (make_encobj): new function.</div><div class='add'>+	  (econv_s_asciicompat_encoding): use make_encoding.</div><div class='add'>+	  (rb_econv_open_exc): use SUPPLEMENTAL_CONVERSION.</div><div class='add'>+	  (econv_convpath): use encoding object in the result.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 02:14:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_convpath): new method.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 23:00:43 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: print "&lt;internal:prelude&gt;" instead of</div><div class='add'>+	  "prelude.rb" on stack trace.  [ruby-dev:36129]</div><div class='add'>+</div><div class='add'>+Wed Sep 10 21:19:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_karatsuba): remove unnecessary fixnum code.  a</div><div class='add'>+	  patch from TOYOFUKU Chikanobu &lt;nobu_toyofuku at nifty.com&gt; in</div><div class='add'>+	  [ruby-dev:36217].</div><div class='add'>+</div><div class='add'>+Wed Sep 10 21:09:32 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb: InternetExplorer should</div><div class='add'>+	  be closed.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/err_in_callback.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 18:25:19 2008  akira yamada  &lt;akira@rice.p.arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::Parser): new class.</div><div class='add'>+</div><div class='add'>+	* lib/uri/mailto.rb, lib/uri/generic.rb: follow the above change.</div><div class='add'>+</div><div class='add'>+	* test/uri/test_parser.rb: added tests for URI::Parser.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 10:35:32 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/cookie.rb (CGI::Cookie#to_s): performance improvement</div><div class='add'>+	  from http://jp.rubyist.net/magazine/?0023-Cgirb.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 10:12:29 2008  akira yamada  &lt;akira@arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/sync.rb (Sync_m#sync_exclusive): fixed</div><div class='add'>+	  typo. [ruby-dev:36233] [RubyForge#11680]</div><div class='add'>+</div><div class='add'>+Wed Sep 10 01:57:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (StrSet#hash): cache hash value.</div><div class='add'>+	  (ActionMap#hash): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 01:26:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (econv_after_output): renamed from</div><div class='add'>+	  econv_output_followed_by_input.</div><div class='add'>+	  (ECONV_AFTER_OUTPUT): renamed from ECONV_OUTPUT_FOLLOWED_BY_INPUT.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 01:16:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (get_replacement_character): don't return ASCII</div><div class='add'>+	  incompatible replacements.</div><div class='add'>+	  (make_replacement): don't convert the result of</div><div class='add'>+	  get_replacement_character.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 01:05:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans (rb_universal_newline): swap src_encoding</div><div class='add'>+	  and dst_encoding.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_decorate_at): call get_transcoder_entry only</div><div class='add'>+	  once.</div><div class='add'>+	  (rb_econv_binmode): follow universal_newline change.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 00:01:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): rename field: writeconv_stateless to</div><div class='add'>+	  writeconv_asciicompat.</div><div class='add'>+</div><div class='add'>+	* io.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 23:55:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): raise an error if ASCII incompatible string</div><div class='add'>+	  written for text mode IO without encoding conversion.</div><div class='add'>+	  (rb_io_extract_modeenc): binmode requirement changed.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 21:59:48 2008  Takeyuki Fujioka  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi*: split cgi.rb into four files. [ruby-dev:36041]</div><div class='add'>+</div><div class='add'>+Tue Sep  9 21:17:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_DECORATOR_MASK): merge</div><div class='add'>+	  ECONV_ENCODER_MASK and ECONV_DECORATOR_MASK.</div><div class='add'>+	  (ECONV_UNIVERSAL_NEWLINE_DECORATOR): renamed from</div><div class='add'>+	  ECONV_UNIVERSAL_NEWLINE_DECODER.</div><div class='add'>+	  (ECONV_CRLF_NEWLINE_DECORATOR): renamed from</div><div class='add'>+	  ECONV_CRLF_NEWLINE_ENCODER.</div><div class='add'>+	  (ECONV_CR_NEWLINE_DECORATOR): renamed from ECONV_CR_NEWLINE_ENCODER.</div><div class='add'>+	  (ECONV_XML_TEXT_DECORATOR): renamed from ECONV_XML_TEXT_ENCODER.</div><div class='add'>+	  (ECONV_XML_ATTR_CONTENT_DECORATOR): renamed from</div><div class='add'>+	  ECONV_XML_ATTR_CONTENT_ENCODER.</div><div class='add'>+	  (ECONV_STATEFUL_DECORATOR_MASK): renamed from</div><div class='add'>+	  ECONV_STATEFUL_ENCODER_MASK.</div><div class='add'>+	  (ECONV_XML_ATTR_QUOTE_DECORATOR): renamed from</div><div class='add'>+	  ECONV_XML_ATTR_CONTENT_DECORATOR.</div><div class='add'>+</div><div class='add'>+	* io.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* transcode.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 20:55:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open0): make it static.</div><div class='add'>+	  (rb_econv_open): place decorators at last.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 20:40:15 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (OpenSSL#test_client_session):</div><div class='add'>+	  Debian's openssl 0.9.8g-13 failed at assert(ssl.session_reused?),</div><div class='add'>+	  when use default SSLContext. [ruby-dev:36167]</div><div class='add'>+</div><div class='add'>+Tue Sep  9 20:34:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_t): last_trans_index removed.</div><div class='add'>+	  (rb_econv_open_by_transcoder_entries): follow the type change.</div><div class='add'>+	  (rb_econv_open0): ditto.</div><div class='add'>+	  (rb_econv_decorate_at): ditto.</div><div class='add'>+	  (rb_econv_binmode): ditto.</div><div class='add'>+	  (rb_econv_insert_output): simplified because there are no decorators</div><div class='add'>+	  at last.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 20:21:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): reverse the order of decoders.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 20:18:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open0): num_encoders and num_decoders removed.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 03:59:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): useless branch removed.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 02:18:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_decorate_at_first): declared.</div><div class='add'>+	  (rb_econv_decorate_at_last): declared.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_by_transcoder_entries): initialize</div><div class='add'>+	  replacement_enc.  allocate outbuf for the last transcoder.</div><div class='add'>+	  (rb_econv_open0): extracted from rb_econv_open.</div><div class='add'>+	  (rb_econv_open): use rb_econv_open0 and decorate the result using</div><div class='add'>+	  rb_econv_decorate_at_first and rb_econv_decorate_at_last.</div><div class='add'>+	  (rb_econv_decorate_at): new function.</div><div class='add'>+	  (rb_econv_decorate_at_first): ditto.</div><div class='add'>+	  (rb_econv_decorate_at_last): ditto.</div><div class='add'>+	  (rb_econv_binmode): fix iteration end condition.</div><div class='add'>+	  (econv_init): don't set source_encoding_name and</div><div class='add'>+	  destination_encoding_name because they are set in rb_econv_open0.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 01:10:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): make ec a local variable.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 00:20:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_asciicompat_encoding): check decoder.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 00:00:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_t): last_error.partial_input removed.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 23:24:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_asciicompat_encoding): renamed</div><div class='add'>+	  from rb_econv_stateless_encoding to apply stateless ASCII</div><div class='add'>+	  incompatible encodings such as UTF-16BE.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use rb_econv_asciicompat_encoding.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder_asciicompat_type_t): renamed from</div><div class='add'>+	  rb_transcoder_stateful_type_t.</div><div class='add'>+	  (rb_transcoder): use rb_transcoder_asciicompat_type_t.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the type change.</div><div class='add'>+	  (asciicompat_encoding_i): renamed from stateless_encoding_i.</div><div class='add'>+	  (rb_econv_asciicompat_encoding): renamed from</div><div class='add'>+	  rb_econv_stateless_encoding.</div><div class='add'>+	  (econv_s_asciicompat_encoding): method renamed.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: follow the type change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: follow the type change.</div><div class='add'>+	  rb_from_UTF_16BE to UTF-8 is asciicompat_decoder.</div><div class='add'>+	  rb_from_UTF_16LE to UTF-8 is asciicompat_decoder.</div><div class='add'>+	  rb_from_UTF_32BE to UTF-8 is asciicompat_decoder.</div><div class='add'>+	  rb_from_UTF_32LE to UTF-8 is asciicompat_decoder.</div><div class='add'>+	  UTF-8 to rb_to_UTF_16BE is asciicompat_encoder.</div><div class='add'>+	  UTF-8 to rb_to_UTF_16LE is asciicompat_encoder.</div><div class='add'>+	  UTF-8 to rb_to_UTF_32BE is asciicompat_encoder.</div><div class='add'>+	  UTF-8 to rb_to_UTF_32LE is asciicompat_encoder.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: follow the type change.  universal newline</div><div class='add'>+	  decoder is asciicompat_converter.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: follow the type change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 23:05:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_insert_output): "readagain" part should be</div><div class='add'>+	  after replacement.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 22:30:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): rename option name of Dir.open</div><div class='add'>+	  from :external_encoding to :encoding.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 22:16:20 2008  Takeyuki FUJIOKA  &lt;xibbar@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb : obsolete regex "n" option. [ruby-dev:36130]</div><div class='add'>+</div><div class='add'>+Mon Sep  8 18:13:20 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (getppid): typo. [ruby-dev:36202]</div><div class='add'>+</div><div class='add'>+	* process.c (get_ppid): mention the return value on Windows.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 18:15:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ArrayCode): less string substitutions.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 18:13:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_mRubyVMFrozenCore): registered for GC.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess_dregexp): fix GC problem on MacOS X with</div><div class='add'>+	  powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc.</div><div class='add'>+	  build 5367).</div><div class='add'>+</div><div class='add'>+Mon Sep  8 18:09:07 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): define SIZE_MAX for VC++6/7.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 17:46:09 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (filetime_to_unixtime): remove unused variable.</div><div class='add'>+	  [ruby-dev:36191]</div><div class='add'>+</div><div class='add'>+Mon Sep  8 13:47:39 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (TestIO#test_dup): add open in block.</div><div class='add'>+	  see [ruby-dev:35957].</div><div class='add'>+</div><div class='add'>+Mon Sep  8 07:09:42 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: some adjustments.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 06:50:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (XLDFLAGS): added --enable-auto-import for cygwin and</div><div class='add'>+	  mingw.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 02:04:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_set_replacement): renamed from</div><div class='add'>+	  rb_econv_set_replacemenet.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 01:10:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_tblgen): log message refined.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 00:58:04 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: removed unused code.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 00:04:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: upcase to iso-2022-jp.</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 23:46:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: stateless-iso-2022-jp is defined to avoid</div><div class='add'>+	  undefined conversion error between iso-2022-jp and the corresponding</div><div class='add'>+	  stateless encoding.</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c: replicate emacs-mule as stateless-iso-2022-jp.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 20:03:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans (hexstr): renamed from str1.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 19:45:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: use transcode_tblgen.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: generate an empty line after str1.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 19:16:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ActionMap#str_name): new method to</div><div class='add'>+	  generate a name base on string content.</div><div class='add'>+	  (ActionMap#gen_str): extracted from generate_info and use str_name.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 18:28:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ActionMap#generate_info): use a memo to</div><div class='add'>+	  avoid duplication for STR1.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 18:10:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (STR1): defined for a string up to 255 bytes.</div><div class='add'>+	  (STR1_BYTEINDEX): defined.</div><div class='add'>+	  (makeSTR1): defined.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: generate STR1.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): interpret STR1.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans (fun_so_escape_xml_chref): removed.  STR1 is</div><div class='add'>+	  used instead.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 17:54:45 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Mac OS X's crypt(2) is broken with invalid salt.</div><div class='add'>+	  [ruby-dev:35899]</div><div class='add'>+	* string.c (rb_str_crypt): ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 17:29:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: o4 is usable only if the first byte is</div><div class='add'>+	  f0-f7.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 12:44:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): choose ASCII compatible encoding as</div><div class='add'>+	  intermediate encoding if stateful encoder exists.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 12:09:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_XML_ATTR_CONTENT_ENCODER): defined.</div><div class='add'>+	  (ECONV_STATEFUL_ENCODER_MASK): defined.</div><div class='add'>+	  (ECONV_XML_ATTR_QUOTE_ENCODER): defined.</div><div class='add'>+	  (ECONV_XML_ATTR_ENCODER): removed.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans (rb_escape_xml_attr_content): defined.</div><div class='add'>+	  (rb_escape_xml_attr_quote): defined.</div><div class='add'>+	  (rb_escape_xml_attr): removed.</div><div class='add'>+</div><div class='add'>+	* io.c (NEED_WRITECONV): writeconv is required if supplemental</div><div class='add'>+	  converter is used.</div><div class='add'>+	  (make_writeconv): apply stateful encoder in writeconv.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the constant change.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 07:24:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/*.el:  merged the following patches from Nathan Weizenbaum</div><div class='add'>+	  &lt;nex342 at gmail.com&gt;.   [ruby-core:18424]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: improve here-doc performance.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: don't crash the whole mode if the Subversion</div><div class='add'>+	  $ keyword isn't interpolated.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: don't highlight keywords when they're the</div><div class='add'>+	  beginning of non-keyword symbols.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el, misc/ruby-electric.el: use regexp-opt where</div><div class='add'>+	  possible for more efficient regexps.</div><div class='add'>+</div><div class='add'>+	* misc/*.el: untabify, for internal consistency and consistency</div><div class='add'>+	  with standard Emacs elisp files.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: fix a variable-name error.</div><div class='add'>+</div><div class='add'>+	* misc/emacs-mode.el: don't set case-fold-search globally to nil;</div><div class='add'>+	  instead just set it when we need it.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 06:31:51 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): applied a patch from Nobuhiro Tachino</div><div class='add'>+	  in [ruby-dev:35948].  fix #491</div><div class='add'>+</div><div class='add'>+Sun Sep  7 03:37:05 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_block_optarg): allow default for block parameters as</div><div class='add'>+	  long as the value is primary.  a patch from Eric Mahurin</div><div class='add'>+	  &lt;eric.mahurin at gmail.com&gt; in [ruby-core:16880].</div><div class='add'>+</div><div class='add'>+Sun Sep  7 01:07:10 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): "1.upto 2 {|i| p i }" should be syntax error.</div><div class='add'>+	  [ruby-dev:36008]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_parse.rb (TestParse): update a test not to use</div><div class='add'>+	  recently fixed inconsistent syntax.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 00:37:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_ERROR_HANDLER_MASK): defined.</div><div class='add'>+	  (ECONV_DECODER_MASK): defined.</div><div class='add'>+	  (ECONV_ENCODER_MASK): defined.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): restrict ecflags for writeconv with</div><div class='add'>+	  ECONV_ERROR_HANDLER_MASK.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 23:03:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_XML_TEXT_ENCODER): renamed from</div><div class='add'>+	  ECONV_HTML_TEXT_ENCODER.</div><div class='add'>+	  (ECONV_XML_ATTR_ENCODER): renamed from ECONV_HTML_ATTR_ENCODER.</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* transcode.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 21:35:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: add some IPV6 constants. [ruby-dev:36175]</div><div class='add'>+</div><div class='add'>+Sat Sep  6 20:10:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_description): show ECONV_HTML_TEXT_ENCODER and</div><div class='add'>+	  ECONV_HTML_ATTR_ENCODER.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 20:06:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_binmode): check actual transcoders.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 19:54:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): fix last_tc.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 19:36:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): clear newline flags in writeconv_pre_ecflags.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 18:47:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): check ECONV_HTML_TEXT_ENCODER and</div><div class='add'>+	  ECONV_HTML_ATTR_ENCODER.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 18:38:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (allocate_converted_string): fix overflow condition.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 15:06:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (sym_html): new variable.</div><div class='add'>+	  (sym_text): ditto.</div><div class='add'>+	  (sym_attr): ditto.</div><div class='add'>+	  (econv_opts): check :html=&gt;:text and :html=&gt;:attr.</div><div class='add'>+	  (Init_transcode): initialize the above variables.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 14:46:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_HTML_TEXT_ENCODER): new constant.</div><div class='add'>+	  (ECONV_HTML_ATTR_ENCODER): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): check ECONV_HTML_TEXT_ENCODER and</div><div class='add'>+	  ECONV_HTML_ATTR_ENCODER.</div><div class='add'>+	  (Init_transcode): Encoding::Converter::HTML_TEXT_ENCODER and</div><div class='add'>+	  Encoding::Converter::HTML_ATTR_ENCODER defined.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 14:15:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (struct trans_open_t): defined to pass num_additional.</div><div class='add'>+	  (trans_open_i): use struct trans_open_t.</div><div class='add'>+	  (rb_econv_open): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 13:43:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans (fun_so_escape_html_attr): fix return type.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 12:43:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): needless branch removed.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 12:38:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): test condition simplified.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 12:25:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (stateless_encoding_i): ignore supplemental conversions.</div><div class='add'>+	  Encoding::Converter.stateless_encoding("html-attr-escaped") should be</div><div class='add'>+	  nil.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 12:19:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans (escape_html_attr_init): new function.</div><div class='add'>+	  (fun_so_escape_html_attr): new function.</div><div class='add'>+	  (escape_html_attr_finish): new function.</div><div class='add'>+	  (rb_escape_html_attr): use them to quote the converted result.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 07:54:36 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: uses f_real_p macro.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 07:27:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): fail for ASCII incompatible with</div><div class='add'>+	  newline conversion.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 07:24:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): raise an error for ASCII incompatible</div><div class='add'>+	  encoding without binmode.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 07:12:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem1): optimization by skipping zeros at the</div><div class='add'>+	  tail of digits.  a patch from TOYOFUKU Chikanobu</div><div class='add'>+	  &lt;nobu_toyofuku at nifty.com&gt; in [ruby-dev:36169].</div><div class='add'>+</div><div class='add'>+Sat Sep  6 06:28:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/escape.trans: new file.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 06:23:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (StrSet.parse): accept upper case</div><div class='add'>+	  hexadecimal digits.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 05:37:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (output_hex_charref): upcase hexadecimal digits.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 05:22:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_UNDEF_HEX_CHARREF): defined.</div><div class='add'>+</div><div class='add'>+	* transcode.c (output_hex_charref): new function.</div><div class='add'>+	  (rb_econv_convert): call output_hex_charref if</div><div class='add'>+	  ECONV_UNDEF_HEX_CHARREF.</div><div class='add'>+	  (Init_transcode): Encoding::Converter::UNDEF_HEX_CHARREF added.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 03:52:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_convert): use ECONV_INVALID_MASK and</div><div class='add'>+	  ECONV_UNDEF_MASK.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 06:05:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (DBL2NUM): renamed from DOUBLE2NUM.</div><div class='add'>+	  a patch from Tadashi Saito &lt;shiba at mail2.accsnet.ne.jp&gt;</div><div class='add'>+	  in [ruby-dev:36102].</div><div class='add'>+</div><div class='add'>+Sat Sep  6 04:44:06 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (Init_Proc): add '===' operator to use procs in when</div><div class='add'>+	  clause of the case statement.  inspired by &lt;http://www.aimred.com/news/developers/2008/08/14/unlocking_the_power_of_case_equality_proc/&gt;.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 03:18:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (allocate_converted_string): add arguments for a buffer</div><div class='add'>+	  allocated by caller.</div><div class='add'>+	  (rb_econv_insert_output): provide caller allocated buffer to</div><div class='add'>+	  allocate_converted_string.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 02:58:53 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode_enc_args): local variables renamed.</div><div class='add'>+	  (str_transcode0): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 02:23:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_s_stateless_encoding): new method.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 02:01:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (enc_arg): extracted from str_transcode_enc_args.</div><div class='add'>+	  (str_transcode_enc_args): use enc_arg.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 20:27:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_modestr_fmode): renamed from</div><div class='add'>+	  rb_io_mode_flags.</div><div class='add'>+	  (rb_io_modestr_oflags): renamed from rb_io_mode_modenum.</div><div class='add'>+	  (rb_io_oflags_fmode): renamed from rb_io_modenum_flags.</div><div class='add'>+	  (rb_io_mode_flags): defined as a macro.</div><div class='add'>+	  (rb_io_modenum_flags): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: follow the renaming with consistency.</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_redirect): call rb_io_modestr_oflags.</div><div class='add'>+</div><div class='add'>+	* ext/pty/depend: pty.o depends on io.h.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 20:12:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans (universal_newline_finish): new function.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 20:07:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_mode_modenum): moved from</div><div class='add'>+	  include/ruby/intern.h.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 19:59:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (MODENUM_MAX): removed.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 18:37:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_fallback_body): use read method unless readpartial</div><div class='add'>+	  is available.  [ruby-dev:36124]</div><div class='add'>+</div><div class='add'>+Fri Sep  5 18:16:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_create): strips glibc style option before</div><div class='add'>+	  charset mapping.  retries without options if they seemed causing</div><div class='add'>+	  error, and warns.  [ruby-dev:36147]</div><div class='add'>+</div><div class='add'>+Fri Sep  5 03:09:48 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_data_to_ary): make it static.</div><div class='add'>+</div><div class='add'>+	* thread.c (thgroup_enclose): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 02:56:37 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_recycle_stack_slot, thread_recycle_stack_count):</div><div class='add'>+	  make it static.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 02:40:38 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_critical): removed.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 01:22:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_mark): mark p-&gt;encs.ecopts.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 00:45:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): rename fields:</div><div class='add'>+	  from_encoding -&gt; src_encoding, to_encoding -&gt; dst_encoding.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 00:22:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: variables renamed for consistency.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 00:05:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (encodes): make buff fixed length to avoid SEGV by</div><div class='add'>+	  ruby -e '["a"*10000000].pack("m1000000000")'</div><div class='add'>+</div><div class='add'>+Thu Sep  4 23:47:05 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_mode): set exception mode</div><div class='add'>+	  correctly.  In spite of BigDecimal.mode(BigDecimal::EXCEPTION_ALL,</div><div class='add'>+	  true), BigDecimal.new("NaN") did not raise an exception previously.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 23:42:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_file_open_str): declared.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_str): defined.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_s_open): use rb_file_open_str instead of</div><div class='add'>+	  rb_file_open.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 23:18:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: record newline types met in universal</div><div class='add'>+	  newline decoder.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 23:05:54 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb (Prime::OldCompatibility#each): added compatibility to</div><div class='add'>+	    Ruby 1.8.7.</div><div class='add'>+	  (Prime#each): added more rdocs.</div><div class='add'>+	  (Prime#each): remembers the last value of the given block.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 21:53:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_init): accept an integer as 3rd argument as well.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 21:46:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (sym_partial_input): new variable.</div><div class='add'>+	  (econv_primitive_convert): accept a hash as 5th argument as well.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 21:04:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (sym_universal_newline_decoder): new variable.</div><div class='add'>+	  (sym_crlf_newline_encoder): ditto.</div><div class='add'>+	  (sym_cr_newline_encoder): ditto.</div><div class='add'>+	  (econv_opts): check newline converter options.</div><div class='add'>+	  (econv_init): make 3rd argument hash/nil only.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 21:03:28 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: rename some debug functions.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 20:57:54 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_check_trap_pending): added for compatibility.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: remove ruby/signal.h</div><div class='add'>+	  dependency.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 20:30:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (PType): defined unconditionally.</div><div class='add'>+</div><div class='add'>+	* transcode.c (PType): don't define here.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 20:19:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: variables renamed for consistency.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 19:40:50 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_record_get): to static function.</div><div class='add'>+	  (gc_profile_result): ditto.</div><div class='add'>+	  (gc_profile_report): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 19:20:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_enc_t): rename flags to ecflags.</div><div class='add'>+	  (rb_io_t): rename writeconv_pre_flags to writeconv_pre_ecflags.</div><div class='add'>+	  (MakeOpenFile): follow the renaming.</div><div class='add'>+</div><div class='add'>+	* io.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 19:10:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_INVALID_IGNORE): removed because</div><div class='add'>+	  it tend to cause security problem.  If the behaviour is really</div><div class='add'>+	  required, ECONV_INVALID_REPLACE with empty string can be used.</div><div class='add'>+	  For example, CVE-2006-2313, CVE-2008-1036, [ruby-core:15645],</div><div class='add'>+	  http://unicode.org/reports/tr36/</div><div class='add'>+	  (ECONV_UNDEF_IGNORE): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_convert): follow the above change.</div><div class='add'>+	  (econv_opts): ditto.</div><div class='add'>+	  (Init_transcode): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 13:22:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct rb_vm_struct): replaced signal staff with trap</div><div class='add'>+	  staff.</div><div class='add'>+</div><div class='add'>+	* signal.c (signal_buff): per process resource now.</div><div class='add'>+</div><div class='add'>+	* signal.c (trap_list): moved to VM.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_get_next_signal): reverted.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_trap_exit): trap_pending_list was no longer used.</div><div class='add'>+</div><div class='add'>+	* thread.c (timer_thread_function): delivers buffered per-process</div><div class='add'>+	  signals to each VMs.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_mark): marks trap_list.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 13:01:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (struct sysopen_struct, rb_sysopen_internal, rb_sysopen):</div><div class='add'>+	  constified.</div><div class='add'>+</div><div class='add'>+	* io.c: expanded ARGF members macros.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 10:43:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (citrus_decode_mapsrc): support older 1.8.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 10:33:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_next_argv, argf_set_encoding): copy struct wise.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 09:46:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): follow rb_str_transcode change.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 08:59:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): fix GC problem on Debian GNU/Linux (IA64)</div><div class='add'>+	  with gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21).</div><div class='add'>+	  There is no register/memory to contain load_path.  A register (r35)</div><div class='add'>+	  contains &amp;RARRAY_PTR(load_path), (char*)load_path + 32.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 03:10:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): new fields: encs.ecopts and</div><div class='add'>+	  writeconv_pre_ecopts.</div><div class='add'>+	  (MakeOpenFile): initialize them.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_str_transcode): take ecopts argument.</div><div class='add'>+	  (rb_econv_flags): removed.</div><div class='add'>+	  (rb_econv_prepare_opts): declared.</div><div class='add'>+	  (rb_econv_open_opts): declared.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use rb_econv_open_opts.</div><div class='add'>+	  (make_readconv): ditto.</div><div class='add'>+	  (io_fwrite): follow rb_str_transcode change.</div><div class='add'>+	  (rb_io_extract_modeenc): use rb_econv_prepare_opts.</div><div class='add'>+	  (rb_file_open_generic): initialize encs.ecopts.</div><div class='add'>+	  (rb_file_open_internal): ditto.</div><div class='add'>+	  (rb_io_reopen): ditto.</div><div class='add'>+	  (argf_ecopts): defined.</div><div class='add'>+	  (argf_next_argv): set encs.ecopts.</div><div class='add'>+	  (io_encoding_set): use rb_econv_prepare_opts.</div><div class='add'>+	  (argf_set_encoding): set argf_ecopts.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): mark encs.ecopts and writeconv_pre_ecopts</div><div class='add'>+	  in T_FILE.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): take ecopts argument. use</div><div class='add'>+	  rb_econv_open_opts.</div><div class='add'>+	  (rb_econv_flags): removed.</div><div class='add'>+	  (rb_econv_prepare_opts): defined.</div><div class='add'>+	  (rb_econv_open_opts): defined.</div><div class='add'>+	  (str_transcode0): take ecopts.</div><div class='add'>+	  (str_transcode): use rb_econv_prepare_opts.</div><div class='add'>+	  (rb_str_transcode): take ecopts.</div><div class='add'>+	  (econv_init): accept hash argument.</div><div class='add'>+	  (econv_insert_output): follow rb_str_transcode change.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 01:30:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_set_replacemenet): declared.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_t): new fields: replacement_str,</div><div class='add'>+	  replacement_len, replacement_enc and replacement_allocated.</div><div class='add'>+	  (get_replacement_character): make len as size_t.</div><div class='add'>+	  (rb_econv_open_by_transcoder_entries): initialize the new fields.</div><div class='add'>+	  (rb_econv_close): deallocate replacement_str if it allocated.</div><div class='add'>+	  (make_replacement): new function.</div><div class='add'>+	  (output_replacement_character): use make_replacement.</div><div class='add'>+	  (rb_econv_set_replacemenet): defined.</div><div class='add'>+	  (econv_get_replacement): new method.</div><div class='add'>+	  (econv_set_replacement): new method.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 01:12:03 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (filetime_to_timeval): new function, split from</div><div class='add'>+	  gettimeofday().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (gettimeofday): use above function.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (filetime_to_unixtime): ditto. [ruby-dev:36135]</div><div class='add'>+</div><div class='add'>+Thu Sep  4 01:00:57 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): avoid VC++6's bug.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 00:26:27 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): follow akr's previous commit.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 00:09:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_option_t): removed.  Since</div><div class='add'>+	  rb_econv_option_t has only one field, int flags, rb_econv_option_t is</div><div class='add'>+	  replaced by int.</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h: follow the above change.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 00:04:59 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: fix ruby/signal.h depending codes.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 00:01:45 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb (test_getpwuid, test_getgrgid): use</div><div class='add'>+	  Process.euid and egid instead of Etc.getlogin to identify current</div><div class='add'>+	  user which may be different from a login one (e.g., su command).</div><div class='add'>+</div><div class='add'>+Wed Sep  3 23:52:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb: check only typical use of</div><div class='add'>+	  setpwent/getpwent/endpwent and setgrent/getgrent/endgrent.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 23:33:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_transcoding): moved from transcode_data.h.</div><div class='add'>+	  (TRANSCODING_READBUF): ditto.</div><div class='add'>+	  (TRANSCODING_WRITEBUF): ditto.</div><div class='add'>+	  (TRANSCODING_STATE_EMBED_MAX): ditto.</div><div class='add'>+	  (TRANSCODING_STATE): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 23:03:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): remove stateful field.</div><div class='add'>+	  add state field.</div><div class='add'>+	  (TRANSCODING_STATE): defined.</div><div class='add'>+	  (rb_transcoder): add fields: state_size, state_init_func,</div><div class='add'>+	  state_fini_func.</div><div class='add'>+	  change rb_transcoding* argument to void*.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): use TRANSCODING_STATE for</div><div class='add'>+	  first arguments of transcoder functions.</div><div class='add'>+	  (rb_transcoding_open_by_transcoder): initialize state field.</div><div class='add'>+	  (rb_transcoding_close): finalize state field.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: provide state size/init/fini.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans (universal_newline_init): defined.</div><div class='add'>+	  (fun_so_universal_newline): take void* as a state pointer.</div><div class='add'>+	  (rb_universal_newline): provide state size/init/fini.</div><div class='add'>+	  (rb_crlf_newline): ditto.</div><div class='add'>+	  (rb_cr_newline): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans (iso2022jp_init): defined.</div><div class='add'>+	  (fun_si_iso2022jp_to_eucjp): take void* as a state pointer.</div><div class='add'>+	  (fun_so_iso2022jp_to_eucjp): ditto.</div><div class='add'>+	  (fun_so_eucjp_to_iso2022jp): ditto.</div><div class='add'>+	  (iso2022jp_reset_sequence_size): ditto.</div><div class='add'>+	  (finish_eucjp_to_iso2022jp): ditto.</div><div class='add'>+	  (rb_ISO_2022_JP_to_EUC_JP): provide state size/init/fini.</div><div class='add'>+	  (rb_EUC_JP_to_ISO_2022_JP): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans (fun_so_from_utf_16be): take void* as a</div><div class='add'>+	  state pointer.</div><div class='add'>+	  (fun_so_to_utf_16be): ditto.</div><div class='add'>+	  (fun_so_from_utf_16le): ditto.</div><div class='add'>+	  (fun_so_to_utf_16le): ditto.</div><div class='add'>+	  (fun_so_from_utf_32be): ditto.</div><div class='add'>+	  (fun_so_to_utf_32be): ditto.</div><div class='add'>+	  (fun_so_from_utf_32le): ditto.</div><div class='add'>+	  (fun_so_to_utf_32le): ditto.</div><div class='add'>+	  (rb_from_UTF_16BE): provide state size/init/fini.</div><div class='add'>+	  (rb_to_UTF_16BE): ditto.</div><div class='add'>+	  (rb_from_UTF_16LE): ditto.</div><div class='add'>+	  (rb_to_UTF_16LE): ditto.</div><div class='add'>+	  (rb_from_UTF_32BE): ditto.</div><div class='add'>+	  (rb_to_UTF_32BE): ditto.</div><div class='add'>+	  (rb_from_UTF_32LE): ditto.</div><div class='add'>+	  (rb_to_UTF_32LE): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans (fun_so_eucjp2sjis): take void* as a state</div><div class='add'>+	  pointer.</div><div class='add'>+	  (fun_so_sjis2eucjp): ditto.</div><div class='add'>+	  (rb_eucjp2sjis): provide state size/init/fini.</div><div class='add'>+	  (rb_sjis2eucjp): provide state size/init/fini.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 22:31:11 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Integer): moved into prime.rb.</div><div class='add'>+	  (Prime): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/prime.rb (Integer): moved from mathn.rb.</div><div class='add'>+	  (Integer.each_prime): added.</div><div class='add'>+	  (Integer#prime?): added.</div><div class='add'>+	  (Prime): moved from mathn.rb.</div><div class='add'>+	    Its implementation was rewritten. see [ruby-dev:35863].</div><div class='add'>+	    And patched by Keiju ISHITSUKA &lt;keiju@ishitsuka.com&gt;,</div><div class='add'>+	    see [ruby-dev:36128].</div><div class='add'>+	  (Prime.new):                     obsolete.</div><div class='add'>+	  (Prime.instance):                added.</div><div class='add'>+	  (Prime.each):                    added.</div><div class='add'>+	  (Prime.int_from_prime_division): added.</div><div class='add'>+	  (Prime.prime_division):          added.</div><div class='add'>+	  (Prime.prime?):                  added.</div><div class='add'>+	    Patch by TOYOFUKU Chikanobu</div><div class='add'>+	    &lt;nobu_toyofuku at nifty.com&gt; in [ruby-dev:36067].</div><div class='add'>+	  (Prime.cache):                   removed.</div><div class='add'>+	  (Prime.primes):                  removed.</div><div class='add'>+	  (Prime.primes_so_far):           removed.</div><div class='add'>+	  (Prime#int_from_prime_division): added.</div><div class='add'>+	  (Prime#prime_division):          added.</div><div class='add'>+	  (Prime#prime?):                  added.</div><div class='add'>+	  (Prime#primes):                  removed.</div><div class='add'>+	  (Prime#primes_so_far):           removed.</div><div class='add'>+	  (Prime::PseudoPrmeGenerator):    added.</div><div class='add'>+	  (Prime::EratosthenesGenerator):  added.</div><div class='add'>+	  (Prime::TrialDivisionGenerator): added.</div><div class='add'>+	  (Prime::Generator23):            added.</div><div class='add'>+	  (Prime::TrialDivision):          added.</div><div class='add'>+	    Extracted from the previous implementation of Prime</div><div class='add'>+	    by Keiju ISHITSUKA.</div><div class='add'>+	  (Prime::EratosthenesSieve):      added.</div><div class='add'>+</div><div class='add'>+	* lib/.document (prime.rb): added</div><div class='add'>+</div><div class='add'>+	* lib/README (prime.rb): added</div><div class='add'>+</div><div class='add'>+	* test/test_prime.rb: added.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 21:49:00 2008  David A. Black  &lt;dblack@rubypal.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: fixed bug involving matching literal '['</div><div class='add'>+</div><div class='add'>+	* test/scanf/test_scanf.rb: added test for scanf.rb fix</div><div class='add'>+</div><div class='add'>+Wed Sep  3 21:31:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (WORDINDEX_SHIFT_BITS): defined.</div><div class='add'>+	  (WORDINDEX2INFO): defined.</div><div class='add'>+	  (INFO2WORDINDEX): defined.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: use WORDINDEX2INFO.</div><div class='add'>+</div><div class='add'>+	* transcode.c: use INFO2WORDINDEX.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 21:19:51 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb: suppress warnings when goruby -v.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 21:07:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (BL_MIN_BYTE): defined.</div><div class='add'>+	  (BL_MAX_BYTE): defined.</div><div class='add'>+	  (BL_OFFSET): defined.</div><div class='add'>+	  (BL_ACTION): defined.</div><div class='add'>+	  (transcode_restartable0): use BL_MIN_BYTE, BL_MAX_BYTE and</div><div class='add'>+	  BL_ACTION.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 20:58:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (BYTE_ADDR): defined.</div><div class='add'>+	  (WORD_ADDR): ditto.</div><div class='add'>+	  (BL_BASE): use BYTE_ADDR and WORD_ADDR.</div><div class='add'>+	  (BL_INFO): use WORD_ADDR.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 20:47:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): new field: byte_array_length and</div><div class='add'>+	  word_array_length.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_generated_code): generate</div><div class='add'>+	  byte_array_length and word_array_length.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 20:34:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ArrayCode): new class.</div><div class='add'>+	  (ActionMap#gen_array_code): moved to ArrayCode.</div><div class='add'>+	  (ActionMap#numelt_array_code): ditto.</div><div class='add'>+	  (ActionMap#array_code_insert_at_last): ditto.</div><div class='add'>+	  (TRANSCODE_GENERATED_BYTES_CODE): use ArrayCode.</div><div class='add'>+	  (TRANSCODE_GENERATED_WORDS_CODE): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 20:08:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: new file.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 20:04:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ActionMap#gen_array_code): extracted from</div><div class='add'>+	  generate_lookup_node.</div><div class='add'>+	  (ActionMap#numelt_array_code): ditto.</div><div class='add'>+	  (ActionMap#array_code_insert_at_last): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 20:01:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_encoding_name): defined.</div><div class='add'>+	  (parser_tokadd_mbchar): show encoding in the message of</div><div class='add'>+	  "invalid multibyte char" error.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 19:28:04 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_method_missing): C99.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 19:18:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: fix test.</div><div class='add'>+	   [ruby-dev:35960]</div><div class='add'>+</div><div class='add'>+Wed Sep  3 17:48:32 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: check $(srcdir)/enc/trans before</div><div class='add'>+	  enc/trans.</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: keep names_t.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 16:54:46 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/signal.h: removed.</div><div class='add'>+</div><div class='add'>+	* common.mk, class.c, eval.c, eval_intern.h, file.c, gc.c, hash.c,</div><div class='add'>+	  io.c, process.c, signal.c: vm_core.h: ditto.</div><div class='add'>+	  Some unused external global variables are also removed.</div><div class='add'>+	 (rb_prohibit_interrupt, rb_trap_immediate, rb_trap_pending,</div><div class='add'>+	  rb_thread_critical)</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c, ext/openssl/ossl_x509store.c,</div><div class='add'>+	  ext/readline/readline.c, ext/socket/depend,</div><div class='add'>+	  ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 00:23:25 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_method_missing): copy arguments to allocated</div><div class='add'>+	  memory from machine stack.  [ruby-dev:36064]</div><div class='add'>+</div><div class='add'>+Tue Sep  2 22:20:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (base_element): removed.</div><div class='add'>+	  (BYTE_LOOKUP): removed.</div><div class='add'>+	  (BYTE_LOOKUP_BASE): don't cast.</div><div class='add'>+	  (BYTE_LOOKUP_INFO): ditto.</div><div class='add'>+	  (PType): unsigned int, instead of uintptr_t.</div><div class='add'>+	  (rb_transcoding): change type of next_field, conv_tree_start and</div><div class='add'>+	  word_array.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: generate word_array as array of unsigned</div><div class='add'>+	  int.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): follow the above type change.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 21:22:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: add prefix for byte_array and word_array.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 20:57:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: check foo.c only if foo.trans exists.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 19:19:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: error message improved.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 14:05:50 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans (from_UTF_8): rename from to_UTF_16BE</div><div class='add'>+	  because it was not collect.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 14:00:54 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c (svn:executable): dropped executable bit.</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb (svn:executable): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 12:58:58 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (COMPILERFLAG): new compiler flag to compile</div><div class='add'>+	  enc/trans/japanese*.c.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 12:37:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese_euc.trans: splitted from japanese.trans to avoid</div><div class='add'>+	  compiler limitation.  reported by usa.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese_sjis.trans: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 12:31:24 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (miniruby): new target.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 11:47:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (struct load_arg): data is now st_table.</div><div class='add'>+</div><div class='add'>+	* marshal.c (mark_load_arg): marks data and compat_tbl.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): no need to check if reentered.</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): make the wrapper with mark_load_arg.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 10:49:18 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (gettimeofday): easier calculation. use the definition</div><div class='add'>+	  of the Gregorian calendar.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 10:33:12 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (distclean-golf): moved golf_prelude.c here from</div><div class='add'>+	    distclean-local.</div><div class='add'>+	  (GOLFPRELUDE): added.</div><div class='add'>+	  (distclean-local): moved golf_prelude.c into distclean-golf.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 10:09:17 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (gettimeofday): calc tv_sec and tv_usec from system</div><div class='add'>+	  time by myself. [ruby-dev:36084]</div><div class='add'>+</div><div class='add'>+Tue Sep  2 04:00:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (o3): prevent sign extension on 64bit environment.</div><div class='add'>+	  (o4): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 03:26:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: comment removed in generated code.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 03:16:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: define TRANSCODE_TABLE_INFO in generated</div><div class='add'>+	  code.  use it in rb_transcoder.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: use TRANSCODE_TABLE_INFO.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 03:04:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: record infos and BYTE_LOOKUPs as index of</div><div class='add'>+	  word_array to avoid relocation.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): add word_array to get infos</div><div class='add'>+	  and BYTE_LOOKUPs.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (BYTE_LOOKUP_INFO): change return type to</div><div class='add'>+	  uintptr_t.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 02:48:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: don't need to cast offsets array.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 02:36:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: record offsets array as index of</div><div class='add'>+	  byte_array to avoid relocation.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): add byte_array to get offsets</div><div class='add'>+	  array.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (BYTE_LOOKUP_BASE): change return type to</div><div class='add'>+	  uintptr_t.</div><div class='add'>+	  (rb_transcoder): add fields: byte_array, word_array and word_size.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: follow rb_transcoder change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 02:05:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: make infos arrays and BYTE_LOOKUPs into</div><div class='add'>+	  single array.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 01:47:44 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean-golf): added.</div><div class='add'>+	  (distclean-golf): added.</div><div class='add'>+	  (realclean-golf): added.</div><div class='add'>+	  (clean): added clean-golf.</div><div class='add'>+	  (distclean): added distclean-golf.</div><div class='add'>+	  (realclean): added realclean-golf.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 01:31:45 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (realclean-local): added newline.c.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 01:19:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (BYTE_LOOKUP): change to uintptr_t array.</div><div class='add'>+	  (BYTE_LOOKUP_BASE): follow the type change.</div><div class='add'>+	  (BYTE_LOOKUP_INFO): ditto.</div><div class='add'>+	  (PType): ditto.</div><div class='add'>+	  (rb_transcoding): ditto.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: follow the type change.</div><div class='add'>+</div><div class='add'>+	* transcode.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 23:32:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (BYTE_LOOKUP_BASE): abstract accessor for</div><div class='add'>+	  BYTE_LOOKUP.</div><div class='add'>+	  (BYTE_LOOKUP_INFO): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): use BYTE_LOOKUP_BASE and</div><div class='add'>+	  BYTE_LOOKUP_INFO.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 23:14:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: gather infos arrays and BYTE_LOOKUPs.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 22:42:54 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (distclean): added RM_RF conftest.dSYM.</div><div class='add'>+	  Fixes distclean-ext problem on Mac OS X.</div><div class='add'>+	  (RM_RF): added.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 22:37:06 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb: limit entity expansion.  Thanks, Luka</div><div class='add'>+	  Treiber, Mitja Kolsek, and Michael Koziarski.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/entity.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rexml/test_document.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 22:20:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: make offsets arrays into single array.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 21:46:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: gather offsets arrays at top.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 21:09:04 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ./: removed rubyspec from svn:ignore subversion property.</div><div class='add'>+	  rubyspec directory is no longer used.</div><div class='add'>+</div><div class='add'>+	* spec: added mspec and rubyspec to svn:ignore.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 19:37:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: ValidEncoding['eucJP-ms'] defined.</div><div class='add'>+	  "\xA2\xAF".encode("utf-8", "eucJP-ms") should raise</div><div class='add'>+	  Encoding::ConversionUndefined, not Encoding::InvalidByteSequence.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 18:27:51 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (gettimeofday): shouldn't use mktime(3) because it's</div><div class='add'>+	  buggy about handling summer time.</div><div class='add'>+	  reported by Yoshikawa &lt;yoshixool AT gmail.com&gt; at [ruby-dev:36071]</div><div class='add'>+</div><div class='add'>+Mon Sep  1 17:07:23 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c (euc-jp-ms): euc-jp-ms is not an alias of EUC-JP</div><div class='add'>+	  but eucJP-ms.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans (eucJP-ms): eucJP-ms is the correct</div><div class='add'>+	  name of the encoding in Ruby. [ruby-dev:36070]</div><div class='add'>+</div><div class='add'>+Mon Sep  1 16:48:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5init.c (md5), ext/digest/rmd160/rmd160init.c</div><div class='add'>+	  (rmd160) ext/digest/sha1/sha1init.c (sha1),</div><div class='add'>+	  ext/digest/sha2/sha2init.c (sha256, sha384, sha512): constified.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 15:15:40 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: fix mapping priority.</div><div class='add'>+	  IBM extended is prior than NEC selected IBM.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:44:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_compile_tree): use the first</div><div class='add'>+	  mapping when some mappings are given for a character.</div><div class='add'>+	  [ruby-dev:36068]</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: expandtab.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:40:18 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT (Appendix A): fixed the name of class</div><div class='add'>+	  Enumerator. Enumerable::Enumerator was renamed just</div><div class='add'>+	  Enumerator at revision 18564.</div><div class='add'>+</div><div class='add'>+	* README.EXT (Appendix A): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:37:58 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: set ERB source filename for error message.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:37:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: transdb.c may not present.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:25:26 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: fix Ruby 1.8 compatibility.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: fix mapping priority. [ruby-dev:36068]</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:24:14 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_windows_31j): added.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 14:00:04 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT (Data-types): fixed for current status.</div><div class='add'>+	  (Manipulating Ruby data): mentioned some more functions.</div><div class='add'>+	  (Class/module definition): ditto.</div><div class='add'>+	  (Global variables shared between C and Ruby):</div><div class='add'>+	    fixed prototypes for the getter/setter's of global variables.</div><div class='add'>+	  (Appendix A): mentioned some more files.</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 11:31:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (copy_stream, fu_copy_stream0, copy_file): use</div><div class='add'>+	  IO.copy_stream to get rid of extraneous conversion.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 02:55:15 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): calc timezone offset by myself if system</div><div class='add'>+	  doesn't provide timezone info.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 02:48:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: change "illegal" to "invalid".</div><div class='add'>+</div><div class='add'>+Mon Sep  1 02:31:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_generated_code): defined for</div><div class='add'>+	  generating table at once.</div><div class='add'>+	  (transcode_tblgen): returns an empty string.</div><div class='add'>+	  (transcode_generate_node): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: use transcode_generated_code.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/korean.trans: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 02:10:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (citrus_decode_mapsrc): print logging</div><div class='add'>+	  message on STDERR.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 01:24:09 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/eucjp-tbl.rb: replace by previous Citrus maps.</div><div class='add'>+</div><div class='add'>+	* enc/trans/sjis-tbl.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 01:18:26 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: add table generator from Citrus maps.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: use Citrus maps.</div><div class='add'>+</div><div class='add'>+	* enc/trans/CP: add maps from Citrus.</div><div class='add'>+</div><div class='add'>+	* enc/trans/JIS: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Shift_JIS and EUC-JP doesn't support</div><div class='add'>+	  IBM extended characters.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 00:19:45 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (docs): removed a useless make target.</div><div class='add'>+	  tool/makedoc.rb was removed at revision 13919.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 20:49:42 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (numeric_abs2): new.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 18:22:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_devel?): checks if the compiler works.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 18:02:41 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Temporarily uses git://github.com/yugui/rubyspec.git</div><div class='add'>+	  until specs for 1.9 is merged into</div><div class='add'>+	  git://github.com/rubyspec/rubyspec.git.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 18:06:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode.c): set source_encoding and</div><div class='add'>+	  destination_encoding as encoding object.</div><div class='add'>+	  (ecerr_source_encoding): new method.</div><div class='add'>+	  (ecerr_destination_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 17:58:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.log_open): opens in binary mode to get rid of</div><div class='add'>+	  extra CR.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func, try_var, have_struct_member),</div><div class='add'>+	  (scalar_ptr_type?, scalar_type?): use MAIN_DOES_NOTHING.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (MAIN_DOES_NOTHING): defaults to ordinary main.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config): for MAIN_DOES_NOTHING for wince.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 17:30:35 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/README (How to run): added.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 17:28:25 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec (config): added.</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec (target): replaced the built ruby</div><div class='add'>+	  to runruby.rb.</div><div class='add'>+	  Improved $LOAD_PATH on running specs.</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec (flags): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 17:16:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): rename instance variable names</div><div class='add'>+	  for storing encoding names.</div><div class='add'>+	  (ecerr_source_encoding_name): method renamed.</div><div class='add'>+	  (ecerr_destination_encoding_name): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 16:57:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_putback): associate encoding to the result.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 16:43:56 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: rename RB_UBF_DFL to</div><div class='add'>+	  RUBY_UBF_IO and RUBY_UBF_PROCESS.</div><div class='add'>+	  Because there is no default (universal) unblocking function.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c, file.c, io.c, process.c, thread.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 16:42:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_insert_output): raise ArgumentError on failure.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 16:39:17 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 16:34:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans (us_ascii_map): don't define 8bit bytes.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 14:27:27 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_last_error): new method.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 14:17:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_convert): make two arguments,</div><div class='add'>+	  destination_byteoffset and destination_bytesize, optional.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 14:12:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): error message simplified.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 13:47:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c (rb_mCoverage): removed unneeded static variable.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_recv_io): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (mConst): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 13:45:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): fix for</div><div class='add'>+	  initialization of r18168.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 13:42:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c (ripper_init_eventids2): use rb_intern_const.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate.rb (generate_eventids1): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate.rb (generate_eventids2_table): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 12:56:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb (rb_dl_init_callbacks): fix indent.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 11:39:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_do_scan): fix usecnt decrement.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 04:38:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_putback): make max argument optional.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 04:35:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_putback): putback from last byte.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 04:27:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_putback): renamed from econv_primitive_putback.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 04:22:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_insert_output): renamed from</div><div class='add'>+	  econv_primitive_insert_output.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 04:20:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_econv.rb: follow econv_primitive_errinfo change.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 03:44:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_errinfo): 5th element (partial_input)</div><div class='add'>+	  removed from result.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 01:53:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb: split callback.h to callback-[0-9].c to reduce</div><div class='add'>+	  memory consumption on compilation.  [ruby-dev:31898]</div><div class='add'>+</div><div class='add'>+	* ext/dl/depend: add dependency for callback-[0-9].[co].</div><div class='add'>+</div><div class='add'>+Sun Aug 31 01:27:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb (foreach_proc_entry): extracted.</div><div class='add'>+	  (gencallback): ditto.</div><div class='add'>+	  (gen_push_proc_ary): ditto.</div><div class='add'>+	  (gen_push_addr_ary): ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 23:51:01 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_tuplebag.rb (test_has_expires_eh): fix failures</div><div class='add'>+	  [ruby-dev:35937].</div><div class='add'>+</div><div class='add'>+Sat Aug 30 23:38:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_import.rb: fix character code.</div><div class='add'>+</div><div class='add'>+	* ext/dl/test/test_func.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 22:23:31 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: added a static variable for nurat_to_f.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 20:05:41 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open, rb_w32_read, rb_w32_write): fallback to</div><div class='add'>+	  MSVCRT if text mode is specified. this case will not be used from</div><div class='add'>+	  ruby itself.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 19:49:38 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read): EOF is not error.</div><div class='add'>+	  ref [ruby-dev:36050]</div><div class='add'>+</div><div class='add'>+Sat Aug 30 18:17:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct token_info): constified.</div><div class='add'>+</div><div class='add'>+	* parse.y (token_info_get_column, token_info_has_nonspaces),</div><div class='add'>+	  (token_info_push, token_info_pop): constified.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 15:43:03 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (Init_ossl_config): memory leak fixed.</div><div class='add'>+	  a patch &lt;shinichiro.hamaji at gmail.com&gt; in [ruby-dev:35880].</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_do_scan): ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 14:58:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): fix for</div><div class='add'>+	  initialization of r18168.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 14:47:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb: fix continuation line detection.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 14:39:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb (rb_dl_init_callbacks): avoid GC problem which</div><div class='add'>+	  is caused by 'GC.stress=true; require "dl"'.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 11:54:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (token_info_push): -w warns indentation level mismatch.</div><div class='add'>+	  based on a patch from Yukina Yamano presented at RubyKaigi'07.</div><div class='add'>+	  See &lt;http://jp.rubyist.net/RubyKaigi2007/Log0609-LT06.html&gt; and</div><div class='add'>+	  &lt;http://www.logic-junction.com/products/rubyend.html&gt; (Japanese).</div><div class='add'>+</div><div class='add'>+Sat Aug 30 10:46:44 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: remove include pragma for "ruby/intern.h".</div><div class='add'>+</div><div class='add'>+Sat Aug 30 10:43:03 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove include pragma for "ruby/intern.h".</div><div class='add'>+</div><div class='add'>+Sat Aug 30 10:41:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake::Application#help): fix for OPTIONAL_ARGUMENT and</div><div class='add'>+	  multiple short options.  [ruby-dev:36051]</div><div class='add'>+</div><div class='add'>+Sat Aug 30 08:59:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_file_s_absolute_path),</div><div class='add'>+	  (rb_file_absolute_path): prototyped.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 08:09:36 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_compatible_p): use TYPE not BUILTIN_TYPE.</div><div class='add'>+	  [ruby-dev:36048]</div><div class='add'>+</div><div class='add'>+Sat Aug 30 07:48:48 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_compatible_p): add SPECIAL_CONST_P check.</div><div class='add'>+	  [ruby-dev:36048]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_compatible): fix test.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 02:48:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_freeze): update rdoc to mention RuntimeError</div><div class='add'>+	  (not TypeError any longer) would be raised.  [ruby-dev:35982]</div><div class='add'>+</div><div class='add'>+Sat Aug 30 01:55:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivmod): remove redundant code.  a patch from</div><div class='add'>+	  TOYOFUKU Chikanobu &lt;nobu_toyofuku at nifty.com&gt; in [ruby-dev:36044].</div><div class='add'>+</div><div class='add'>+Sat Aug 30 01:37:20 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#initialize): remove unused constants.  a patch</div><div class='add'>+	  from Takeyuki Fujioka in [ruby-dev:36046].</div><div class='add'>+</div><div class='add'>+Fri Aug 29 22:29:41 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c ({nucomp,numeric}_rect): new.</div><div class='add'>+</div><div class='add'>+	* complex.c: added some aliases</div><div class='add'>+	  (::rectangular, ::rect, #rectangular, #rect, #phase,</div><div class='add'>+	  #magnitude).</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_internal): should not strip any null</div><div class='add'>+	  bytes.</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r_internal): ditto.</div><div class='add'>+</div><div class='add'>+	* rational.c (i_gcd): reverted to nurat 0.0.2's one.</div><div class='add'>+</div><div class='add'>+	* numeric.c: added an alias (#magnitude).</div><div class='add'>+</div><div class='add'>+	* bignum.c: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb: added assertions.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 19:46:02 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c, include/ruby/ruby.h: rename T_DEFERRED to T_ZOMBIE.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 18:22:27 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_compatible_p): raise TypeError when argument is not</div><div class='add'>+	  String nor Regexp.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 18:20:56 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): only regexp uses byte offset.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 16:48:34 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): copy arguments to allocated</div><div class='add'>+	  memory from machine stack.  [ruby-dev:36028]</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/test_method.rb: move fixed test.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 12:19:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): fix for</div><div class='add'>+	  initialization of r18168.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 11:04:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): ASCII compatible string and US-ASCII</div><div class='add'>+	  regexp is compatible. [ruby-dev:36033]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): second argument is position of character.</div><div class='add'>+	  by usa. [ruby-dev:36033]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 04:47:49 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read, rb_w32_write): more accurate handling</div><div class='add'>+	  of wait result.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 02:59:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_finish): new method.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 02:45:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_convert): new method.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 02:38:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_convert): accept nil as</div><div class='add'>+	  destination_bytesize for unlimited destination size.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 02:11:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_convert): accept nil as input for empty</div><div class='add'>+	  input.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 02:03:56 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): supported %s and %P.</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 01:57:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (sym_invalid_byte_sequence): new variable.</div><div class='add'>+	  (sym_undefined_conversion): ditto.</div><div class='add'>+	  (sym_destination_buffer_full): ditto.</div><div class='add'>+	  (sym_source_buffer_empty): ditto.</div><div class='add'>+	  (sym_finished): ditto.</div><div class='add'>+	  (sym_output_followed_by_input): ditto.</div><div class='add'>+	  (sym_incomplete_input): ditto.</div><div class='add'>+	  (econv_result_to_symbol): use above variables.</div><div class='add'>+	  (Init_transcode): initialize above variables.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 00:53:40 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): fixed a bug of padding.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 00:19:54 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (set_pioinfo_extra): use MSVCRT's open() and close().</div><div class='add'>+</div><div class='add'>+Fri Aug 29 00:03:13 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): check invalid access.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 23:55:50 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): Time.mktime(2000).strftime("%-S") should</div><div class='add'>+	  return "0", not "".</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 23:55:22 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: suppress warning during test.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 23:50:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): make test for %a independent</div><div class='add'>+	  from local timezone.  [ruby-dev:35992]</div><div class='add'>+</div><div class='add'>+Thu Aug 28 23:39:49 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_shared_replace): remove corrupt noembed string</div><div class='add'>+	  which causes SEGV.  [ruby-dev:35989]</div><div class='add'>+</div><div class='add'>+Thu Aug 28 23:36:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: dependency updated.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 23:28:57 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb: add a test.  see [ruby-dev:36028]</div><div class='add'>+</div><div class='add'>+Thu Aug 28 21:43:05 2008  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_open): overlapped file</div><div class='add'>+	  I/O support.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, include/ruby/win32.h (rb_w32_pipe): overlapped pipe</div><div class='add'>+	  I/O support.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_read, rb_w32_write): overlapped I/O support to</div><div class='add'>+	  enable canceling I/O.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (ubf_handle): remove workaround.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 20:22:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_setup_args): object with to_ary should</div><div class='add'>+	  behave like array.  a patch from Yusuke Endoh  &lt;mame at tsg.ne.jp&gt;</div><div class='add'>+	  in [ruby-dev:35988].  [ruby-dev:35977]</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): call less rb_intern() less frequently</div><div class='add'>+	  by using cache structure.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_method_node): fail earlier if no method found.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 19:04:50 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_io.rb: no need to create real file.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 09:26:53 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_multipart.rb: add test for multipart.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:36014]</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+Thu Aug 28 09:22:01 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_modruby.rb: add test for mod_ruby adaptor.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:36013]</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+Thu Aug 28 09:17:10 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_header.rb: add test for CGI::Header.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:36010] [ruby-dev:36011]</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+Thu Aug 28 02:16:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): refcnt field removed.</div><div class='add'>+	  (MakeOpenFile): refcnt initialization removed.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_finalize): don't check refcnt.</div><div class='add'>+	  (rb_io_close_read): don't use refcnt.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 00:07:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): don't accept IO object.  [ruby-dev:35895]</div><div class='add'>+</div><div class='add'>+Wed Aug 27 23:28:51 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke): WIN32OLE#[] and WIN32OLE#[]=</div><div class='add'>+	  accepts number argument.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 27 14:45:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_core.rb: add core test.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:36001] [ruby-dev:36002]</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+Wed Aug 27 10:34:42 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie): remove delegate.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:35995]</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_cookie.rb: added for above.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:35996]</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+Wed Aug 27 01:13:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): simplified.</div><div class='add'>+</div><div class='add'>+Wed Aug 27 01:03:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_result_t): enumeration constant:</div><div class='add'>+	  econv_incomplete_input.</div><div class='add'>+</div><div class='add'>+	* io.c (finish_writeconv): check econv_incomplete_input.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): return econv_incomplete_input</div><div class='add'>+	  for unexpected end of source buffer.</div><div class='add'>+	  (trans_sweep): check econv_incomplete_input.</div><div class='add'>+	  (rb_trans_conv): ditto.</div><div class='add'>+	  (rb_econv_convert0): ditto.</div><div class='add'>+	  (rb_econv_convert): ditto.</div><div class='add'>+	  (transcode_loop): ditto.</div><div class='add'>+	  (make_econv_exception): change message for econv_incomplete_input.</div><div class='add'>+	  (econv_result_to_symbol): return :incomplete_input for</div><div class='add'>+	  econv_incomplete_input.</div><div class='add'>+	  (ecerr_incomplete_input): new method.</div><div class='add'>+</div><div class='add'>+Wed Aug 27 00:05:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): rename crbuf to cbuf.</div><div class='add'>+</div><div class='add'>+	* io.c: follow the renaming.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 23:52:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_elem_t): move to transcode.c</div><div class='add'>+	  (rb_econv_t): defined as an incomplete type.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_elem_t): moved from encoding.h.</div><div class='add'>+	  (rb_econv_t): complete type defined.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 22:44:12 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_asctime): workaround for MSVCRT's bug.</div><div class='add'>+	  based on a patch from wanabe &lt;s.wanabe AT gmail.com&gt; at</div><div class='add'>+	  [ruby-dev:35831] and a suggestion by KIMURA Koichi</div><div class='add'>+	  &lt;kbk AT kt.rim.or.jp&gt; at [ruby-dev:35832]</div><div class='add'>+	  fixed [ruby-dev:35555]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 21:53:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): disable newline conversion for ASCII</div><div class='add'>+	  incompatible encodings.</div><div class='add'>+	  (str_transcode0): don't need disable newline conversion here.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 21:44:39 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_binmode): binmode is effective only once.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 19:43:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): new class method for class File.</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): add absolute_path handling (no ~user</div><div class='add'>+	  expansion).  [ruby-core:18319]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 19:27:54 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enum.rb (TestEnumerable#test_each_with_object):</div><div class='add'>+	  Add a test for Enumerable#each_with_object.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 19:25:44 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb (TestEnumerator#test_with_object):</div><div class='add'>+	  Add (back) the test for Enumerator#with_object.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 16:16:43 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_tag_helper.rb: add more tests for html3.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:35975]</div><div class='add'>+	  From CGIAlt http://cgialt.rubyforge.org/</div><div class='add'>+</div><div class='add'>+Tue Aug 26 14:43:10 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: Activate Enumerator#with_object and add</div><div class='add'>+	  Enumerable#each_with_object. [experimental]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 14:38:32 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_initialize),</div><div class='add'>+	  test/ruby/test_enumerator.rb: Add an ability to generate an</div><div class='add'>+	  enumerator from a block. [experimental] [ruby-dev:35903]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 13:25:25 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added test_euc_jp</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi)</div><div class='add'>+</div><div class='add'>+Tue Aug 26 11:54:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/cgi/test_cgi_tag_helper.rb: added by Takeyuki Fujioka.</div><div class='add'>+	  [ruby-dev:35971]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 11:33:30 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (nOE_element_def): fix error when cascade methods which</div><div class='add'>+	  don't have arguments. Patch by Takeyuki Fujioka. [ruby-dev:35964]</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (blockquote): String#collect (this depends on</div><div class='add'>+	  String#each) is no longer exists.</div><div class='add'>+	  Patch by Takeyuki Fujioka. [ruby-dev:35946]</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (blockquote): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 03:06:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): copy invalid/undef flags.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 02:47:08 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (dist): tool/make-snapshot is executable.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot (package): supported release numbers 1.9.0-x.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 02:43:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): new field: writeconv_pre_opts.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): initialize writeconv_pre_opts.</div><div class='add'>+	  (io_fwrite): use writeconv_pre_opts.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 01:48:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: test _WIN32 for CRLF platform.  (cygwin defines O_BINARY.)</div><div class='add'>+</div><div class='add'>+Tue Aug 26 01:29:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: force CRLF handling if RUBY_TEST_CRLF_ENVIRONMENT is defined.</div><div class='add'>+	  This is only for testing.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 01:26:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): disable newline conversion for ASCII</div><div class='add'>+	  incompatible encoding.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 00:55:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode0): don't short cut for newline conversion.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 00:36:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): add TEXTMODE_NEWLINE_ENCODER to option for</div><div class='add'>+	  rb_str_transcode.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 00:24:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): show readagain part for invalid</div><div class='add'>+	  byte sequence exception.  store the part as an instance variable.</div><div class='add'>+	  (ecerr_readagain_bytes): new method to access the readagain part.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 00:02:49 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpMult): fix double free.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 23:59:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): make last_tc NULL if there are only</div><div class='add'>+	  additional transcoders.</div><div class='add'>+	  (econv_description): extracted from rb_econv_open_exc.</div><div class='add'>+	  (rb_econv_open_exc): use econv_description.</div><div class='add'>+	  (econv_inspect): use econv_description.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 23:56:42 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32.c (init_stdhandle): set binmode.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 23:38:17 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb(strftime): %[LN] can print with given</div><div class='add'>+	  arbitrary precision.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb(strftime): optional flags and filed width</div><div class='add'>+	  should also affect %[nt].</div><div class='add'>+</div><div class='add'>+Mon Aug 25 23:01:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): default defined? should return</div><div class='add'>+	  "expression" without evaluating the expression.  [ruby-dev:35967]</div><div class='add'>+</div><div class='add'>+Mon Aug 25 22:46:01 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (test_status_and_stop_p): reduce the risk</div><div class='add'>+	  of race condition.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 22:39:57 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/extend-command.rb (def_extend_command): check number of</div><div class='add'>+	  arguments.  [ruby-dev:35074]</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/multi-irb.rb (search): check if a corresponding job is</div><div class='add'>+	  found.  [ruby-dev:35074]</div><div class='add'>+</div><div class='add'>+Mon Aug 25 22:29:13 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_dup): fix typo.  see [ruby-dev:35958]</div><div class='add'>+</div><div class='add'>+Mon Aug 25 22:02:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_by_transcoder_entries): initialize</div><div class='add'>+	  last_error.  num_trans may be zero.</div><div class='add'>+	  (rb_econv_convert0): num_trans may be zero.</div><div class='add'>+	  (rb_econv_putbackable): ditto.</div><div class='add'>+	  (rb_econv_putback): ditto.</div><div class='add'>+	  (rb_econv_convert): input_ptr and output_ptr may be NULL.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 19:05:27 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): should handle NODE_{AND,OR} as</div><div class='add'>+	  "expression".  [ruby-dev:35951]</div><div class='add'>+</div><div class='add'>+Mon Aug 25 17:36:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_io_ungetbyte): added prototype.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets): use rb_io_getline_1 for unget buffer.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): use rb_io_ungetbyte.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_substr_append): fix for buffer overrun.</div><div class='add'>+</div><div class='add'>+	* win32/enc-setup.mak (BUILTIN_TRANSOBJS): added.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 14:22:21 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (YYSTYPE): struct RVarmap has been no longer</div><div class='add'>+	  defined.</div><div class='add'>+	  see also r11717 by matz.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 10:42:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_exc): constified.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 07:10:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c: fix ctype.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 00:52:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BUILTIN_TRANSSRCS): defined.</div><div class='add'>+	  (BUILTIN_TRANSOBJS): defined.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (BUILTIN_TRANSES): defined.</div><div class='add'>+</div><div class='add'>+	* enc/make_encmake.rb (BUILTIN_TRANSES): defined.</div><div class='add'>+</div><div class='add'>+	* enc/depend: don't generate rules for builtin transcoders.</div><div class='add'>+</div><div class='add'>+	* common.mk (COMMONOBJS): add BUILTIN_TRANSOBJS.</div><div class='add'>+	  (enc.mk): pass BUILTIN_TRANSOBJS.</div><div class='add'>+	  (newline.c): new rule.</div><div class='add'>+	  (newline.$(OBJEXT)): new rule.</div><div class='add'>+	  (srcs): newline.c added.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (BUILTIN_TRANSSRCS): defined.</div><div class='add'>+	  (BUILTIN_TRANSOBJS): defined.</div><div class='add'>+</div><div class='add'>+	* transcode.c (Init_transcode): call Init_newline.</div><div class='add'>+</div><div class='add'>+Mon Aug 25 00:11:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (declare_transcoder): arguments order changed.</div><div class='add'>+	  (rb_declare_transcoder): call declare_transcoder just once.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 19:48:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_t): use rb_econv_option_t.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the rb_econv_t change.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 19:40:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_init_copy): copy encs.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 19:17:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_open): add an argument: vperm.</div><div class='add'>+	  (open_key_args): call rb_io_open with perm.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 19:11:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (sym_invalid): removed.</div><div class='add'>+	  (sym_undef): removed.</div><div class='add'>+	  (sym_ignore): removed.</div><div class='add'>+	  (sym_replace): removed.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 19:07:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): initialize fptr-&gt;encs.opts.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 18:37:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): accept optional hash.</div><div class='add'>+	  (rb_io_set_encoding): ditto.</div><div class='add'>+	  (rb_io_extract_modeenc): use rb_econv_opts to initialize</div><div class='add'>+	  ecopts.</div><div class='add'>+	  (rb_file_open_generic): ditto.</div><div class='add'>+	  (rb_file_open_internal): ditto.</div><div class='add'>+	  (io_encoding_set): new argument: opt.</div><div class='add'>+	  (argf_set_encoding): copy fptr-&gt;encs.opts to argf_ecopts.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_opts): accept Qnil for initialization.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 18:10:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_enc_t): add opts field.</div><div class='add'>+	  (FMODE_INVALID_MASK): removed.</div><div class='add'>+	  (FMODE_INVALID_IGNORE): ditto.</div><div class='add'>+	  (FMODE_INVALID_REPLACE): ditto.</div><div class='add'>+	  (FMODE_UNDEF_MASK): ditto.</div><div class='add'>+	  (FMODE_UNDEF_IGNORE): ditto.</div><div class='add'>+	  (FMODE_UNDEF_REPLACE): ditto.</div><div class='add'>+	  (MakeOpenFile): initialize the opts field.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use the opts field.</div><div class='add'>+	  (io_fwrite): ditto.</div><div class='add'>+	  (make_readconv): ditto.</div><div class='add'>+	  (argf_ecopts): new macro.</div><div class='add'>+	  (rb_io_extract_modeenc): fill the opts field.</div><div class='add'>+	  (argf_next_argv): ditto.</div><div class='add'>+	  (rb_file_open_generic): initialize the opts field.</div><div class='add'>+	  (rb_file_open_internal): ditto.</div><div class='add'>+	  (io_encoding_set): ditto.</div><div class='add'>+	  (argf_set_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 18:02:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (struct argf): use struct rb_io_enc_t.</div><div class='add'>+	  (argf_enc): follow the struct argf change.</div><div class='add'>+	  (argf_enc2): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 17:36:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_str_transcode): make 3rd argument</div><div class='add'>+	  rb_econv_option_t*.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): take rb_econv_option_t* as a argument.</div><div class='add'>+	  (str_transcode0): ditto.</div><div class='add'>+	  (str_transcode): make rb_econv_option_t and call str_transcode0 with</div><div class='add'>+	  it.</div><div class='add'>+	  (rb_str_transcode): take rb_econv_option_t*.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): follow the rb_str_transcode change.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 16:47:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): make enc and enc2 as struct</div><div class='add'>+	  rb_io_enc_t;</div><div class='add'>+</div><div class='add'>+	* io.c: follow the structure change.</div><div class='add'>+	  (convconfig_t): defined by rb_io_enc_t.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 16:19:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_opts): declared.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_opts): defined.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): use rb_econv_opts.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 16:06:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_option_t): defined.</div><div class='add'>+	  (rb_econv_open): 3rd arg changed.</div><div class='add'>+	  (rb_econv_open_exc): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use rb_econv_option_t.</div><div class='add'>+	  (make_readconv): ditto.</div><div class='add'>+	  (rb_econv_open): take rb_econv_option_t for options.</div><div class='add'>+	  (rb_econv_open_exc): ditto.</div><div class='add'>+	  (transcode_loop): use rb_econv_option_t.</div><div class='add'>+	  (econv_init): use rb_econv_option_t.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 15:43:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_substr_append): associate dst with destination</div><div class='add'>+	  encoding when dst is created.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 15:21:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_str_transcode): add ecflags argument.</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_opts): extracted from str_transcode.</div><div class='add'>+	  (str_transcode_enc_args): extracted from str_transcode.</div><div class='add'>+	  (str_transcode0): extracted from str_transcode.</div><div class='add'>+	  (str_transcode): use econv_opts, str_transcode_enc_args,</div><div class='add'>+	  str_transcode0.</div><div class='add'>+	  (rb_str_transcode): call str_transcode0.</div><div class='add'>+	  (econv_primitive_insert_output): give the additional argument for</div><div class='add'>+	  rb_str_transcode.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use invalid/undef flags.</div><div class='add'>+	  (io_fwrite): ditto.</div><div class='add'>+	  (rb_scan_open_args): give the additional argument for</div><div class='add'>+	  rb_str_transcode.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 13:27:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): check last hash only if 0 &lt; argc.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 12:22:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_substr_append): renamed from</div><div class='add'>+	  rb_econv_string.</div><div class='add'>+	  (rb_econv_str_convert): declared.</div><div class='add'>+	  (rb_econv_substr_convert): declared.</div><div class='add'>+	  (rb_econv_str_append): declared.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): use rb_econv_str_convert instead of</div><div class='add'>+	  rb_econv_string.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_substr_append): renamed from rb_econv_string.</div><div class='add'>+	  (rb_econv_str_append): new function.</div><div class='add'>+	  (rb_econv_substr_convert): ditto.</div><div class='add'>+	  (rb_econv_str_convert): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 12:15:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#urlencode): str[0] returns char in 1.9.</div><div class='add'>+	  Patch by Junegunn Choi [ruby-core:18368]</div><div class='add'>+</div><div class='add'>+Sun Aug 24 12:02:39 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): return NULL on error.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 11:40:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_open_exc): declared.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_eNoConverter): new exception.</div><div class='add'>+	  (rb_econv_open_exc): new function.</div><div class='add'>+	  (transcode_loop): use rb_econv_open_exc.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): use rb_econv_open_exc.</div><div class='add'>+	  (make_readconv): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 11:26:54 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::unescapeHTML): consider ISO-8859-1.</div><div class='add'>+	  [ruby-dev:35936]</div><div class='add'>+</div><div class='add'>+Sun Aug 24 10:55:00 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/emacs_mule.c: support Emacs/Mule internal encoding.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 08:03:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (daylight, timezone): not provided as dllexport on cygwin,</div><div class='add'>+	  right now.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 06:39:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::unescapeHTML): more encoding sensible unescaping.</div><div class='add'>+	  [ruby-dev:35936]</div><div class='add'>+</div><div class='add'>+Sun Aug 24 04:23:19 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_compatible_p): raise TypeError when argument is Encoding.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 23:25:47 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#out): remove auto encoding conversion and set</div><div class='add'>+	  LANGUAGE. [ruby-dev:35922]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 20:01:29 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_rlimit_value):</div><div class='add'>+	  add Errno::EINVAL. [ruby-dev:35900]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 18:29:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): use pop_last_hash.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 16:59:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_INVALID_MASK): defined.</div><div class='add'>+	  (FMODE_INVALID_IGNORE): defined.</div><div class='add'>+	  (FMODE_INVALID_REPLACE): defined.</div><div class='add'>+	  (FMODE_UNDEF_MASK): defined.</div><div class='add'>+	  (FMODE_UNDEF_IGNORE): defined.</div><div class='add'>+	  (FMODE_UNDEF_REPLACE): defined.</div><div class='add'>+</div><div class='add'>+	* io.c (sym_invalid): defined.</div><div class='add'>+	  (sym_undef): defined.</div><div class='add'>+	  (sym_ignore): defined.</div><div class='add'>+	  (sym_replace): defined.</div><div class='add'>+	  (make_readconv): specify ECONV_INVALID_* and ECONV_UNDEF_* if</div><div class='add'>+	  FMODE_INVALID_* and FMODE_UNDEF_* is set.</div><div class='add'>+	  (rb_io_extract_modeenc): check {:invalid, :undef} =&gt; {:replace,</div><div class='add'>+	  :ignore} for FMODE_INVALID_* and FMODE_UNDEF_*.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 17:06:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): support more flags.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 15:14:10 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_opts.h: enable "OPT_TRACE_INSTRUCTION" on default.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 14:59:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_INVALID_MASK): defined.</div><div class='add'>+	  (ECONV_INVALID_IGNORE): defined.</div><div class='add'>+	  (ECONV_INVALID_REPLACE): defined.</div><div class='add'>+	  (ECONV_UNDEF_MASK): defined.</div><div class='add'>+	  (ECONV_UNDEF_IGNORE): defined.</div><div class='add'>+	  (ECONV_UNDEF_REPLACE): defined.</div><div class='add'>+</div><div class='add'>+	* transcode.c (INVALID_IGNORE): removed.</div><div class='add'>+	  (INVALID_REPLACE): removed.</div><div class='add'>+	  (UNDEF_IGNORE): removed.</div><div class='add'>+	  (UNDEF_REPLACE): removed.</div><div class='add'>+	  (rb_econv_convert0): renamed from rb_econv_convert.</div><div class='add'>+	  (rb_econv_convert): defined to call rb_econv_convert0 with</div><div class='add'>+	  replace/ignore behavior moved from transcode_loop.</div><div class='add'>+	  (transcode_loop): replace/ignore behavior removed.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 11:23:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): check :textmode and :binmode in option</div><div class='add'>+	  hash.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 10:48:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (pty_getpty): follow rb_io_t's path -&gt; pathv change.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 10:42:52 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (check_pipe_command): extracted from rb_f_open and rb_io_open.</div><div class='add'>+	  (rb_f_open): use check_pipe_command.</div><div class='add'>+	  (rb_io_open): ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 10:13:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): fptr-&gt;enc2 is 0 if no conversion.</div><div class='add'>+	  (rb_io_getline_fast): ditto.</div><div class='add'>+	  (io_getc): ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 09:45:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): remove path field and add pathv field.</div><div class='add'>+	  (MakeOpenFile): initialize pathv as Qnil.</div><div class='add'>+</div><div class='add'>+	* gc.c: mark pathv field in T_FILE.</div><div class='add'>+</div><div class='add'>+	* io.c: follow the rb_io_t field change.</div><div class='add'>+</div><div class='add'>+	* file.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 23 01:42:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_TEXTMODE): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_t): new field: flags.</div><div class='add'>+	  (rb_econv_binmode): declared.</div><div class='add'>+</div><div class='add'>+	* io.c (io_unread): text mode hack removed.</div><div class='add'>+	  (NEED_NEWLINE_DECODER): defined.</div><div class='add'>+	  (NEED_NEWLINE_ENCODER): defined.</div><div class='add'>+	  (NEED_READCONV): defined.</div><div class='add'>+	  (NEED_WRITECONV): defined.</div><div class='add'>+	  (TEXTMODE_NEWLINE_ENCODER): defined for windows.</div><div class='add'>+	  (make_writeconv): setup converter with TEXTMODE_NEWLINE_ENCODER for</div><div class='add'>+	  text mode.</div><div class='add'>+	  (io_fwrite): use NEED_WRITECONV.  character code conversion is</div><div class='add'>+	  disabled if fptr-&gt;writeconv_stateless is nil.</div><div class='add'>+	  (make_readconv): setup converter with</div><div class='add'>+	  ECONV_UNIVERSAL_NEWLINE_DECODER for text mode.</div><div class='add'>+	  (read_all): use NEED_READCONV.</div><div class='add'>+	  (appendline): use NEED_READCONV.</div><div class='add'>+	  (rb_io_getline_1): use NEED_READCONV.</div><div class='add'>+	  (io_getc): use NEED_READCONV.</div><div class='add'>+	  (rb_io_ungetc): use NEED_READCONV.</div><div class='add'>+	  (rb_io_binmode): OS-level text mode test removed.  call</div><div class='add'>+	  rb_econv_binmode.</div><div class='add'>+	  (rb_io_binmode_m): call rb_io_binmode_m with write_io as well.</div><div class='add'>+	  (rb_io_flags_mode): return mode string including "t".</div><div class='add'>+	  (rb_io_mode_flags): detect "t" for text mode.</div><div class='add'>+	  (rb_sysopen): always specify O_BINARY.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_by_transcoder_entries): initialize flags.</div><div class='add'>+	  (rb_econv_open): if source and destination encoding is</div><div class='add'>+	  both empty string, open newline converter.  last_tc will be NULL in</div><div class='add'>+	  this case.</div><div class='add'>+	  (rb_econv_encoding_to_insert_output): last_tc may be NULL now.</div><div class='add'>+	  (rb_econv_string): ditto.</div><div class='add'>+	  (output_replacement_character): ditto.</div><div class='add'>+	  (transcode_loop): ditto.</div><div class='add'>+	  (econv_init): ditto.</div><div class='add'>+	  (econv_inspect): ditto.</div><div class='add'>+	  (rb_econv_binmode): new function.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 21:18:40 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_div): now behaves as quo.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_generic_p): has been removed.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_s): adopts new form.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_internal): ditto and supports polar form.</div><div class='add'>+</div><div class='add'>+	* complex.c (rb_complex_polar): new.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_to_s): do not canonicalize.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_inspect): adopts new form.</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r_internal): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: added a declaration.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: added an obsolete class method.</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: use scalar? instead of generic?.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 20:06:46 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#shutdown):</div><div class='add'>+	  rescue Errno::ENOTCONN and close. [ruby-dev:35896]</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (OpenSSL#start_server): ditto.</div><div class='add'>+	  [ruby-dev:35897]</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (Net::IMAP#disconnect): ditto. [ruby-dev:35898]</div><div class='add'>+</div><div class='add'>+Fri Aug 22 19:58:27 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: no need to require the "lib/rational.rb" any more.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 15:47:38 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: use bytesize instead of size/length.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 14:28:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): supported flags and precision for most</div><div class='add'>+	  conversions.  [ruby-dev:35906]</div><div class='add'>+</div><div class='add'>+Fri Aug 22 14:04:04 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: test_shift_jis:</div><div class='add'>+	  fixed comment strings (see r18291)</div><div class='add'>+</div><div class='add'>+Fri Aug 22 12:41:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_pid): use PIDT2NUM.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 11:36:31 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_enc_str_new): set US-ASCII to the path</div><div class='add'>+	  when the path is 7bit string and encoding is ASCII compatible.</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): set file system encoding when argument encoding</div><div class='add'>+	  is US-ASCII.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 11:30:38 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_enc_str_new): renamed from dir_enc_str.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_read): use dir_enc_str_new.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_each): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (push_pattern): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 11:29:10 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: remove config.h dependency.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 10:52:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (gmtime_r): check if reentrant versions are available.</div><div class='add'>+</div><div class='add'>+	* time.c (IF_HAVE_GMTIME_R, ASCTIME, GMTIME, LOCALTIME): use reentrant</div><div class='add'>+	  versions if available.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 05:29:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (INT2NUM): just use a simple macro on LP64.</div><div class='add'>+	  (UINT2NUM): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 05:10:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_generic): take filename as a VALUE.</div><div class='add'>+	  (rb_file_open_internal): ditto.</div><div class='add'>+	  (rb_io_open): ditto.</div><div class='add'>+	  (rb_file_open): pass filename as a VALUE to rb_file_open_internal.</div><div class='add'>+	  (rb_open_file): pass filename as a VALUE to rb_file_open_generic.</div><div class='add'>+	  (open_key_args): pass filename as a VALUE to rb_io_open.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 04:33:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: fix previous change for LP64.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 03:19:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2LONG): make it inline function to evaluate</div><div class='add'>+	  the argument only once.</div><div class='add'>+	  `t = Object.new; def t.*(x) p x; 0 end; p Time.at(0, t)' did print x</div><div class='add'>+	  twice.</div><div class='add'>+	  (NUM2INT): ditto.</div><div class='add'>+	  (NUM2LL): ditto.</div><div class='add'>+	  (INT2NUM): make it inline function.</div><div class='add'>+	  (LONG2NUM): ditto.</div><div class='add'>+	  (UINT2NUM): ditto.</div><div class='add'>+	  (ULONG2NUM): ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 03:03:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_sysopen): mode can be a Bignum.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 02:57:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): notify coerced to caller.</div><div class='add'>+	  (rb_io_initialize): mode may be a Bignum.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 02:42:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_extract_modeenc): use rb_check_to_integer to test</div><div class='add'>+	  integer.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 02:25:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_inspect): don't raise on uninitialized object.</div><div class='add'>+	  show real class name.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 02:08:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): accept hash argument.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 23:51:51 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): supported %F and %&lt;precision&gt;N.</div><div class='add'>+	  reverted config.h to ruby.h for Windows.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (TestTime::test_strftime): added tests</div><div class='add'>+	  for %F and %N.</div><div class='add'>+</div><div class='add'>+	* time.c: documented %F and %N.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 20:23:26 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb (TestM17NComb#test_str_crypt): add</div><div class='add'>+	  key and salt to error message.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 19:20:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): don't raise if self is not initialized.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 19:17:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (pst_pid): use rb_attr_get to avoid warning on</div><div class='add'>+	  Process::Status.allocate.pid.</div><div class='add'>+	  (pst_inspect): don't raise if self is not initialized.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 19:05:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_extract_encoding_option): if internal encoding is not</div><div class='add'>+	  specified, enc is external encoding.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 14:22:50 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: include ruby/config.h instead of ruby/ruby.h.</div><div class='add'>+</div><div class='add'>+	* common.mk: removed the old rule for missing/strftime.c.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 09:29:01 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): return "UTC" instead of "GMT".</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_strftime): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 07:59:04 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/iconv/test_option.rb (test_ignore_option): skip if iconv</div><div class='add'>+	  doesn't have transliterate.</div><div class='add'>+</div><div class='add'>+	* test/iconv/test_option.rb (test_translit_option): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 06:12:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb (Scanf::FormatSpecifier#initialize): %i should accept</div><div class='add'>+	  single digit decimal.  [ruby-core:18355]</div><div class='add'>+</div><div class='add'>+Thu Aug 21 06:02:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_initialize_copy): Range is now a Struct.</div><div class='add'>+	  [ruby-core:18353]</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_init_copy): made public.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 03:09:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_extract_encoding_option): enc2 is external encoding if</div><div class='add'>+	  external encoding and internal encoding is given.</div><div class='add'>+	  (pipe_open): add flags and convconfig argument to initialize</div><div class='add'>+	  fptr-&gt;{mode,enc,enc2}.</div><div class='add'>+	  (pipe_open_v): pass flags and convconfig from caller to pipe_open.</div><div class='add'>+	  (pipe_open_s): ditto.</div><div class='add'>+	  (pop_last_hash): new function.</div><div class='add'>+	  (rb_io_s_popen): use last hash as option to specify code conversion.</div><div class='add'>+	  (rb_io_open): specify flags and convconfig arguments for</div><div class='add'>+	  pipe_open_s.</div><div class='add'>+	  (rb_f_backquote): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 02:27:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (prep_io): local variable renamed.</div><div class='add'>+	  (rb_io_fdopen): ditto.</div><div class='add'>+	  (prep_stdio): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 01:58:59 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: always check timezone().</div><div class='add'>+</div><div class='add'>+	* strftime.c (rb_strftime): prefer timezone/altzone rather than</div><div class='add'>+	  gettimeofday().  The second argument to gettimeofday() is ignored</div><div class='add'>+	  on Solaris.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 02:03:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): simplified.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 01:57:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): IO.foreach(path, rs, limit) didn't work.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 01:31:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_sysopen_internal): unused function removed.</div><div class='add'>+	  (rb_file_sysopen): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 01:09:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: use mode_t for the 3rd argument, permission, of open(2).</div><div class='add'>+</div><div class='add'>+Thu Aug 21 00:51:42 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: removed strftime from AC_REPLACE_FUNCS().</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: removed prototype for strftime().</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c: removed.</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): use rb_strftime() instead of strftime(3).</div><div class='add'>+	  (time_zone): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 00:49:50 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: win32 support.</div><div class='add'>+</div><div class='add'>+Thu Aug 21 00:20:05 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* strftime.c: new file.</div><div class='add'>+</div><div class='add'>+	* common.mk (COMMONOBJS): added strftime.$(OBJEXT).</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): do not use strftime(3).  supported</div><div class='add'>+	  %L(millisecond) and %N(nanosecond).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: added tests for %L and %N.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 23:53:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_set_encoding): removed.</div><div class='add'>+	  (rb_io_open): set up encoding using new argument opt.</div><div class='add'>+	  (open_key_args): call rb_io_open with opt.  don't call</div><div class='add'>+	  io_set_encoding.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 22:30:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_internal): use rb_io_flags_modenum.</div><div class='add'>+	  (rb_io_reopen): use rb_io_flags_modenum and rb_io_modenum_mode.</div><div class='add'>+	  (rb_io_stdio_file): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 22:28:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_new): use the given class.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_make_proc): added an argument for the class.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 22:24:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_take): get rid of extraneous iteration.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 20:32:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_open_with_args): use rb_open_file instead of rb_io_open.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 20:16:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_scan_open_args): extracted from rb_open_file.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 19:22:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (convconfig_t): new type.</div><div class='add'>+	  (rb_io_extract_modeenc): new function.</div><div class='add'>+	  (rb_file_open_generic): new function.</div><div class='add'>+	  (rb_file_open_internal): use rb_file_open_generic.</div><div class='add'>+	  (rb_file_sysopen_internal): use rb_file_open_generic.</div><div class='add'>+	  (rb_open_file): use rb_io_extract_modeenc and rb_file_open_generic.</div><div class='add'>+	  (rb_io_open): call rb_file_open_internal instead of rb_file_open.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 19:15:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): new constants: File::DSYNC, File::RSYNC and</div><div class='add'>+	  File::NOFOLLOW.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 18:41:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): don't lookup :mode and :perm in opt.  it is</div><div class='add'>+	  useless because vmode and perm is overwritten by rb_scan_args</div><div class='add'>+	  anyway.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 18:37:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): meaningless MEMCPY removed.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 18:30:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (prep_io) [cygwin]: use FMODE_BINMODE instead of O_BINARY.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 16:39:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): performance improvement for huge array.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 12:28:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): get rid of infinite loop.  #455</div><div class='add'>+</div><div class='add'>+Wed Aug 20 06:09:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_TRUNC): value changed because 0x100 is used</div><div class='add'>+	  as FMODE_NOREVLOOKUP in socket.c</div><div class='add'>+</div><div class='add'>+Wed Aug 20 05:19:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (parse_mode_enc): extracted from mode_enc.</div><div class='add'>+	  (io_extract_encoding_option): extracted from io_set_encoding.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 04:17:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_flags_modenum): make it static.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 03:36:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_TRUNC): new constant.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_flags): set FMODE_TRUNC for "w".</div><div class='add'>+	  (rb_io_modenum_flags): set FMODE_TRUNC for O_TRUNC.</div><div class='add'>+	  (rb_io_flags_modenum): new function.</div><div class='add'>+	  (rb_io_mode_modenum): just use rb_io_mode_flags and</div><div class='add'>+	  rb_io_flags_modenum.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 02:36:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fopen): macro for vms removed.  fopen is not used now.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 02:27:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open): fix memory leak.</div><div class='add'>+	  (rb_econv_close): ditto.</div><div class='add'>+	  fixed by shinichiro.h.  [ruby-dev:35880]</div><div class='add'>+</div><div class='add'>+Tue Aug 19 21:50:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_fopen): declaration removed.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fopen): unused function removed.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 21:14:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_READWRITE): define as</div><div class='add'>+	  FMODE_READABLE|FMODE_WRITABLE.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 21:13:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_flags_mode): use hexadecimal in error message.</div><div class='add'>+	  (rb_io_modenum_mode): ditto.</div><div class='add'>+	  (rb_io_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 18:23:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_flags_mode): add a prefix 0 to octal in error message.</div><div class='add'>+	  (rb_io_modenum_mode): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 18:05:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (FMODE_*): sorted and describe the values in</div><div class='add'>+	  hexadecimal.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 17:32:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): store the</div><div class='add'>+	  result of d2i_X509_NAME into DATA_PTR(self).</div><div class='add'>+</div><div class='add'>+Tue Aug 19 04:54:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (FileUtils#ruby): takes care of space containing path.</div><div class='add'>+	  [ ruby-Bugs-21591 ]</div><div class='add'>+</div><div class='add'>+Tue Aug 19 01:32:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): encoding in mode string was ignored if perm is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 01:02:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): don't access argv[-1] by</div><div class='add'>+	  File.allocate.instance_eval { initialize }.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 00:56:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_inspect): don't raise for uninitialized Regexp.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 00:34:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): side effect for STDIN removed.</div><div class='add'>+	  (rb_io_external_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 23:27:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_ungetbyte): renamed from io_ungetc.</div><div class='add'>+	  (rb_io_ungetbyte): new method.</div><div class='add'>+	  (rb_io_ungetc): push back into character buffer if enc2 is set.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 22:41:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (id_encode): removed.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 22:30:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): if enc and enc2 is set, convert</div><div class='add'>+	  string.encoding to enc2.</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h: comment changed.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 21:02:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): new fields: writeconv,</div><div class='add'>+	  writeconv_stateless and writeconv_initialized.</div><div class='add'>+	  (MakeOpenFile): initialize them.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_stateless_encoding): declared.</div><div class='add'>+	  (rb_econv_string): declared.</div><div class='add'>+</div><div class='add'>+	* io.c (make_writeconv): new function.</div><div class='add'>+	  (io_fwrite): use econv.</div><div class='add'>+	  (make_readconv): fix error message.</div><div class='add'>+	  (finish_writeconv): new function.</div><div class='add'>+	  (fptr_finalize): call finish_writeconv.</div><div class='add'>+	  (clear_writeconv): new function.</div><div class='add'>+	  (clear_codeconv): new function to call both clear_readconv and</div><div class='add'>+	  clear_writeconv.</div><div class='add'>+	  (rb_io_fptr_finalize): call clear_codeconv instead of</div><div class='add'>+	  clear_readconv.</div><div class='add'>+	  (mode_enc): ditto.</div><div class='add'>+	  (io_set_encoding): ditto.</div><div class='add'>+	  (argf_next_argv): ditto.</div><div class='add'>+	  (io_encoding_set): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): mark writeconv_stateless in T_FILE.</div><div class='add'>+</div><div class='add'>+	* transcode.c (stateless_encoding_i): new function.</div><div class='add'>+	  (rb_econv_stateless_encoding): ditto.</div><div class='add'>+	  (rb_econv_string): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 17:23:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (clear_readconv): extracted from rb_io_fptr_finalize.</div><div class='add'>+	  (mode_enc): call clear_readconv.</div><div class='add'>+	  (io_set_encoding): ditto.</div><div class='add'>+	  (argf_next_argv): ditto.</div><div class='add'>+	  (io_encoding_set): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 16:54:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (mode_enc): modify enc and enc2 consistently.</div><div class='add'>+	  (io_set_encoding): ditto.</div><div class='add'>+	  (io_encoding_set): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 13:21:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_search_path): prevent infinite loop by</div><div class='add'>+	  searching a path for self conversion.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 12:45:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_enc_str): code conversion removed.</div><div class='add'>+	  (io_enc_str_converted): removed because it is identical to</div><div class='add'>+	  io_enc_str now.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 12:12:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_shift_crbuf): add strp argument to append into existing</div><div class='add'>+	  string.</div><div class='add'>+	  (read_all): use econv if enc2 is set.</div><div class='add'>+	  (io_getc): follow the io_shift_crbuf change.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 10:35:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_enc_str_converted): new function.</div><div class='add'>+	  (make_readconv): extracted from io_getc.</div><div class='add'>+	  (more_char): ditto.</div><div class='add'>+	  (appendline): use econv via make_readconv and more_char for code</div><div class='add'>+	  conversion.</div><div class='add'>+	  (prepare_getline_args): don't convert record separator.</div><div class='add'>+	  (rb_io_getline_1): don't use rb_io_getline_fast if enc2 is set.</div><div class='add'>+	  (io_getc): use make_readconv and more_char.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 08:27:44 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fix error in uncommon.mk.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 06:10:08 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: config.h depends config.status.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 03:59:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): appendline cannot check character boundary.</div><div class='add'>+	  (rb_io_getline_1): relax limit until character boundary.</div><div class='add'>+</div><div class='add'>+Mon Aug 18 02:25:11 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#eof?): added lacked method.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 21:50:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (prepare_getline_args): io.gets(10,nil) should cause TypeError.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 15:58:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: not check config.h.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): add include/ruby/backward to $INCFLAGS.</div><div class='add'>+</div><div class='add'>+	* include/ruby/backward/{st,util}.h: added for backward compatibility.</div><div class='add'>+	  [ruby-dev:35811]</div><div class='add'>+</div><div class='add'>+Sun Aug 17 13:40:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_putback): new method.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 13:23:53 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_putbackable): declared.</div><div class='add'>+	  (rb_econv_putback): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_putbackable): implemented.</div><div class='add'>+	  (rb_econv_putback): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): put back bytes if possible.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 12:00:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): add several instance variables</div><div class='add'>+	  to exception object.</div><div class='add'>+	  (ecerr_source_encoding): new method:</div><div class='add'>+	  Encoding::ConversionUndefined#source_encoding and</div><div class='add'>+	  Encoding::InvalidByteSequence#source_encoding.</div><div class='add'>+	  (ecerr_destination_encoding): new method:</div><div class='add'>+	  Encoding::ConversionUndefined#destination_encoding and</div><div class='add'>+	  Encoding::InvalidByteSequence#destination_encoding.</div><div class='add'>+	  (econverr_error_char): new method:</div><div class='add'>+	  Encoding::ConversionUndefined#error_char.</div><div class='add'>+	  (econverr_error_bytes): new method:</div><div class='add'>+	  Encoding::ConversionUndefined#error_bytes.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 11:43:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (struct MT): packed Mersenne Twister staffs.</div><div class='add'>+</div><div class='add'>+	* random.c (struct RandSeed): packed random seed staffs.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 08:38:26 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/iconv/test_option.rb (test_ignore_option): skip if iconv</div><div class='add'>+	  doesn't have transliterate.</div><div class='add'>+</div><div class='add'>+	* test/iconv/test_option.rb (test_translit_option): ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 01:29:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): new fields: readconv, crbuf, crbuf_off,</div><div class='add'>+	  crbuf_len, crbuf_capa.</div><div class='add'>+	  (MakeOpenFile): initialize them.</div><div class='add'>+</div><div class='add'>+	* io.c (io_shift_crbuf): new function.</div><div class='add'>+	  (io_getc): use econv.</div><div class='add'>+	  (rb_io_fptr_finalize): finalize readconv and crbuf.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 00:02:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_check_error): declared.</div><div class='add'>+</div><div class='add'>+	* transcode.c (make_econv_exception): new function.</div><div class='add'>+	  (transcode_loop): use make_econv_exception.</div><div class='add'>+	  (rb_econv_check_error): defined.</div><div class='add'>+</div><div class='add'>+Sat Aug 16 15:23:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_elem_t): fields removed: from and</div><div class='add'>+	  to.</div><div class='add'>+	  (rb_econv_t): new fields: source_encoding_name and</div><div class='add'>+	  destination_encoding_name.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_by_transcoder_entries): initialize the</div><div class='add'>+	  new fields.</div><div class='add'>+	  (rb_econv_open): set up the new fields.</div><div class='add'>+	  (econv_inspect): use the new fields.</div><div class='add'>+</div><div class='add'>+Sat Aug 16 14:22:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_t): add fields: in_buf_start,</div><div class='add'>+	  in_data_start, in_data_end, in_buf_end and last_trans_index.</div><div class='add'>+	  (rb_econv_output): removed.</div><div class='add'>+	  (rb_econv_insert_output): declared.</div><div class='add'>+	  (rb_econv_encoding_to_insert_output): declared.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans (rb_universal_newline): stateful_type</div><div class='add'>+	  changed.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): initialize inchar_start,</div><div class='add'>+	  tc-&gt;recognized_len and next_table at beginning of the loop.</div><div class='add'>+	  (rb_econv_open_by_transcoder_entries): initialize new fields.</div><div class='add'>+	  (rb_econv_open): setup last_trans_index.</div><div class='add'>+	  (trans_sweep): last out_buf_start can be non-NULL now.</div><div class='add'>+	  (rb_econv_convert): check last out_buf_start and in_buf_start at</div><div class='add'>+	  first.</div><div class='add'>+	  (rb_econv_output_with_destination_encoding): removed.</div><div class='add'>+	  (econv_just_convert): removed.</div><div class='add'>+	  (rb_econv_output): removed.</div><div class='add'>+	  (econv_primitive_output): method removed.</div><div class='add'>+	  (rb_econv_encoding_to_insert_output): new function.</div><div class='add'>+	  (allocate_converted_string): new function.</div><div class='add'>+	  (rb_econv_insert_output): new function.</div><div class='add'>+	  (econv_primitive_insert_output): new method.</div><div class='add'>+	  (output_replacement_character): use rb_econv_insert_output.  unused</div><div class='add'>+	  arguments removed.</div><div class='add'>+</div><div class='add'>+Sat Aug 16 09:20:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_intern_const): tiny optimization.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (SSIZET2NUM, NUM2SSIZET, SSIZE_MAX, SSIZE_MIN):</div><div class='add'>+	  macros for ssize_t.</div><div class='add'>+</div><div class='add'>+Sat Aug 16 08:11:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder_stateful_type_t): defined.</div><div class='add'>+	  (rb_transcoder): add field: stateful_type.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: generate stateful_type field as</div><div class='add'>+	  stateless_converter.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: follow rb_transcoder change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 23:07:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_just_convert): extracted from rb_econv_output.</div><div class='add'>+	  (rb_econv_output): use econv_just_convert.</div><div class='add'>+	  (econv_primitive_output): new method.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 19:57:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_output): add str_encoding</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* transcode.c (get_replacement_character): add repl_enc_ptr argument.</div><div class='add'>+	  (rb_econv_output_with_destination_encoding): renamed from</div><div class='add'>+	  rb_econv_output and make it static.</div><div class='add'>+	  (rb_econv_output): convert str and call</div><div class='add'>+	  rb_econv_output_with_destination_encoding.</div><div class='add'>+	  (output_replacement_character): follow above interface change.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 19:33:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_drop_bytes): use memmove.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 18:33:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_t): add error_tc in last_error.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_convert): fill error_tc.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 18:10:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_t): new field: last_error.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_trans_conv): new argument: result_position_ptr.</div><div class='add'>+	  (rb_econv_convert): fill last_error.</div><div class='add'>+	  (econv_result_to_symbol): extracted from econv_primitive_convert.</div><div class='add'>+	  (econv_primitive_errinfo): new method.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 17:39:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.{c,h}): creates in the dependency order.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 16:59:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (exec_event_hooks): skips RubyVM::FrozenCore.</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): get rid of SEGV in a trace proc.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 09:33:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (conv_init): check empty name.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 09:03:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_init): don't create dummy encoding if</div><div class='add'>+	  rb_econv_open is failed.</div><div class='add'>+	  (make_dummy_encoding): new function extracted from make_encoding.</div><div class='add'>+	  (make_encoding): removed.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 01:07:16 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk ({$(srcdir)}.y.c): escape backslash.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 01:05:39 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_convert): set destination_buffer</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 00:52:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_output): declared.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): add resetsize_func field.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans (iso2022jp_reset_sequence_size): defined.</div><div class='add'>+	  (rb_EUC_JP_to_ISO_2022_JP): provide resetsize_func.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: set NULL for resetsize_func.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_output): new function for inserting output.</div><div class='add'>+	  (output_replacement_character): use rb_econv_output.</div><div class='add'>+	  (transcode_loop): check return value of</div><div class='add'>+	  output_replacement_character.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 23:47:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ECONV_UNIVERSAL_NEWLINE_DECODER): defined.</div><div class='add'>+	  (ECONV_CRLF_NEWLINE_ENCODER): ditto.</div><div class='add'>+	  (ECONV_CR_NEWLINE_ENCODER): ditto.</div><div class='add'>+	  (ECONV_PARTIAL_INPUT): ditto.</div><div class='add'>+	  (ECONV_OUTPUT_FOLLOWED_BY_INPUT): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c: use ECONV_* defined as above.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 23:35:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: local variable renamed.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 23:22:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_econv_result_t): moved from</div><div class='add'>+	  transcode_data.h.</div><div class='add'>+	  (rb_econv_elem_t): ditto.</div><div class='add'>+	  (rb_econv_t): ditto.  source_encoding and destination_encoding field</div><div class='add'>+	  is added.</div><div class='add'>+	  (rb_econv_open): declared.</div><div class='add'>+	  (rb_econv_convert): ditto.</div><div class='add'>+	  (rb_econv_close): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_by_transcoder_entries): initialize</div><div class='add'>+	  source_encoding and destination_encoding field as NULL.</div><div class='add'>+	  (rb_econv_open): make it external linkage.</div><div class='add'>+	  (rb_econv_close): ditto.</div><div class='add'>+	  (rb_econv_convert): ditto.  renamed from rb_econv_conv.</div><div class='add'>+	  (make_encoding): new function.</div><div class='add'>+	  (econv_init): use make_encoding and store rb_encoding* in</div><div class='add'>+	  rb_econv_t.</div><div class='add'>+	  (econv_source_encoding): new method</div><div class='add'>+	  Encoding::Converter#source_encoding.</div><div class='add'>+	  (econv_destination_encoding): new method</div><div class='add'>+	  Encoding::Converter#destination_encoding.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 22:44:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_econv_result_t): change enumeration</div><div class='add'>+	  constant's prefix: transcode_ to econv_.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the constant prefix change.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 21:34:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_init): accept Encoding object as source_encoding</div><div class='add'>+	  and destination_encoding.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 21:10:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): use default external encoding</div><div class='add'>+	  for Unix.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): don't cache fs_encoding.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 20:58:57 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_open_by_transcoder_entries): renamed from</div><div class='add'>+	  rb_trans_open_by_transcoder_entries.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 20:56:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_max_output): removed.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 20:52:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: check unexpected actions.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 20:25:52 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (transcode_invalid_byte_sequence): renamed from</div><div class='add'>+	  transcode_invalid_input.</div><div class='add'>+	  (transcode_destination_buffer_full): renamed from transcode_obuf_full.</div><div class='add'>+	  (transcode_source_buffer_empty): renamed from transcode_ibuf_empty.</div><div class='add'>+	  (rb_econv_result_t): renamed from rb_trans_result_t.</div><div class='add'>+	  (rb_econv_elem_t): renamed from rb_trans_elem_t.</div><div class='add'>+	  (rb_econv_t): renamed from rb_trans_t.</div><div class='add'>+</div><div class='add'>+	* transcode.c (UNIVERSAL_NEWLINE_DECODER): renamed from</div><div class='add'>+	  UNIVERSAL_NEWLINE.</div><div class='add'>+	  (CRLF_NEWLINE_ENCODER): renamed from CRLF_NEWLINE.</div><div class='add'>+	  (CR_NEWLINE_ENCODER): renamed from CR_NEWLINE.</div><div class='add'>+	  (rb_econv_open): renamed from rb_trans_open.</div><div class='add'>+	  (rb_econv_close): renamed from rb_trans_close.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 19:41:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (load_transcoder): unused function removed.</div><div class='add'>+	  (rb_transcoding_open): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 17:57:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_ispunct): added.</div><div class='add'>+</div><div class='add'>+	* common.mk (COMMONOBJS), inits.c (rb_call_inits): id.c is now</div><div class='add'>+	  included from parse.c.</div><div class='add'>+</div><div class='add'>+	* id.c (Init_id), id.h (ruby_method_ids): added IDs used by VM.</div><div class='add'>+</div><div class='add'>+	* parse.y (global_symbols): added rooms for VM IDs.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3, rb_id2str): single punctuation symbol is now</div><div class='add'>+	  same as char code.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 17:46:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (union tmpyystype): no longer needed, since YYSTYPE is</div><div class='add'>+	  defined in parse.h now.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 17:27:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.c (Init_version): add RUBY_ENGINE constant.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 15:34:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_econv_conv): new function.  it doesn't consume</div><div class='add'>+	  input too much, even for multilevel conversion.</div><div class='add'>+	  (transcode_loop): use rb_econv_conv.</div><div class='add'>+	  (econv_primitive_convert): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 15:27:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (RUBY_ALIAS_FUNCTION): fallback definition.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 15:08:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_trans_result_t): new enumeration constant:</div><div class='add'>+	  transcode_output_followed_by_input.</div><div class='add'>+</div><div class='add'>+	* transcode.c (OUTPUT_FOLLOWED_BY_INPUT): new flag.</div><div class='add'>+	  (transcode_restartable0): suspend when output followed by input if</div><div class='add'>+	  OUTPUT_FOLLOWED_BY_INPUT is specified.</div><div class='add'>+	  (trans_sweep): check OUTPUT_FOLLOWED_BY_INPUT.</div><div class='add'>+	  (rb_trans_conv): support OUTPUT_FOLLOWED_BY_INPUT.</div><div class='add'>+	  (econv_primitive_convert): return :output_followed_by_input for</div><div class='add'>+	  transcode_output_followed_by_input.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 14:57:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (getrusage_time): should return the value.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_priority_set): get rid of C99 feature.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_search_path): ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c (REWIND_CFP): get rid of statement expressions.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 14:13:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): hide FrozenCore.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 12:20:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (load_transcoder): suppress warning.</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 12:01:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (gnumake): check for GNU make.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (uncommon.mk): includes filtered common.mk.</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.h): workaround for nmake.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 06:09:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): switch event</div><div class='add'>+	  should be occur only once.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 05:36:36 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: parse.h depends on parse.c.</div><div class='add'>+</div><div class='add'>+	* common.mk: hash.o depends on $(ID_H_INCLUDES).</div><div class='add'>+</div><div class='add'>+Thu Aug 14 02:45:16 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb (TestFileExhaustive#setup):</div><div class='add'>+	  set group of tmpdir.  [ruby-dev:35633]</div><div class='add'>+</div><div class='add'>+Thu Aug 14 15:50:30 2008  Giuseppe Bilotta  &lt;giuseppe.bilotta@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (set_default): fix rdoc.  #441</div><div class='add'>+</div><div class='add'>+Thu Aug 14 02:23:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_convert): add output_byteoffset</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 00:43:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_gcc_function_alias): checks alias attribute.</div><div class='add'>+</div><div class='add'>+	* string.c (alias_func): replaced with RUBY_ALIAS_FUNCTION.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 23:42:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.h): fake rule.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 23:15:58 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb (test_list): call Thread.pass to run t1.</div><div class='add'>+	  fixed [ruby-core:18264].</div><div class='add'>+</div><div class='add'>+Wed Aug 13 23:05:51 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (alias_func): changed to 'weak, alias' from 'alias' for</div><div class='add'>+	  Mac OSX. (closes #429)</div><div class='add'>+</div><div class='add'>+Wed Aug 13 19:40:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: count only freed object as freelist size.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 18:34:22 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (marshal_load): set arg.untrust properly.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:47:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_inspect): new method.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:35:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): several local variables</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:35:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_set_default_proc): add new method.  a patch from</div><div class='add'>+	  Giuseppe Bilotta.  #419</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:31:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (caller_setup_args): should ensure if the value</div><div class='add'>+	  from to_proc is a real Proc.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:28:29 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: regint.h no longer includes vm_core.h.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:26:44 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): add fields: writebuf_off,</div><div class='add'>+	  writebuf_len and writebuf.</div><div class='add'>+	  (TRANSCODING_WRITEBUF): new macro.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): output until output buffer is</div><div class='add'>+	  really full.</div><div class='add'>+	  (rb_transcoding_open_by_transcoder): initialize writebuf_len,</div><div class='add'>+	  writebuf_off and writebuf.</div><div class='add'>+	  (rb_transcoding_close): finalize writebuf.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:18:37 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_check_ints): added.  please note that</div><div class='add'>+	  this function may cause ruby's thread switching.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regint.h: use rb_thread_check_ints() instead of</div><div class='add'>+	  RUBY_CHECK_INTS() directly.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 17:01:36 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb, lib/set.rb (TC_Set#test_each),</div><div class='add'>+	  test/readline/test_readline_history.rb (Readline#test_each__enumerator),</div><div class='add'>+	  test/ruby/test_array.rb (TestArray#test_collect),</div><div class='add'>+	  test/ruby/test_enumerator.rb (TestEnumerator#test_initialize):</div><div class='add'>+	  Enumerable::Enumerator is now called Enumerator.</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb (Rinda::TupleBag#initialize): Use</div><div class='add'>+	  enum_for instead of hardcoding Enumerable::Enumerator.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 16:40:57 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, vm_core.h: add manual priority support</div><div class='add'>+	  using time slice.  if you enable USE_NATIVE_THREAD_PRIORITY</div><div class='add'>+	  macro, this mechanism is ignored.  [ruby-dev:33124]</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c, thread_win32.c: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: fix test parameter.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 16:02:14 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_untrusted): new method Object#untrusted?.</div><div class='add'>+	  (rb_obj_untrust): new method Object#untrust.</div><div class='add'>+	  (rb_obj_trust): new method Object#trust.</div><div class='add'>+</div><div class='add'>+	* array.c, debug.c, time.c, include/ruby/ruby.h, re.c, variable.c,</div><div class='add'>+	  string.c, io.c, dir.c, vm_method.c, struct.c, class.c, hash.c,</div><div class='add'>+	  ruby.c, marshal.c: fixes for Object#untrusted?.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb, test/ruby/test_array.rb,</div><div class='add'>+	  test/ruby/test_object.rb, test/ruby/test_string.rb,</div><div class='add'>+	  test/ruby/test_marshal.rb, test/ruby/test_hash.rb: added tests for</div><div class='add'>+	  Object#untrusted?.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 16:13:58 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb: follow EncodingCompatibilityError.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_mixed_unicode_escapes.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/enc/test_utf16.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 16:05:50 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): retry with right hand operand if its not a</div><div class='add'>+	  time object.  [ruby-dev:35011]</div><div class='add'>+</div><div class='add'>+Wed Aug 13 15:51:22 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: Apply a temporary fix to fix build on OS X.  A real</div><div class='add'>+	  fix will follow later.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 15:25:09 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): Rename Enumerable::Enumerator to</div><div class='add'>+	  just Enumerator.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 15:13:57 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.c, golf_prelude.c): Using $(COMPILE_PRELUDE)</div><div class='add'>+	  requires $(RBCONFIG).</div><div class='add'>+</div><div class='add'>+Wed Aug 13 15:08:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_init): make flags argument optional.</div><div class='add'>+	  (econv_primitive_convert): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 14:55:27 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (realclean-local): Remove parse.h as well.</div><div class='add'>+</div><div class='add'>+	* common.mk: Add missing dependencies regarding vm_core.h, id.h,</div><div class='add'>+	  parse.c (parse.h), etc..</div><div class='add'>+</div><div class='add'>+Wed Aug 13 14:45:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans (rb_crlf_newline): new transcoder.</div><div class='add'>+	  (rb_cr_newline): new transcoder.</div><div class='add'>+</div><div class='add'>+	* transcode.c (trans_open_i): one more extra room for input newline</div><div class='add'>+	  converter.</div><div class='add'>+	  (rb_trans_open): crlf newline and cr newline implemented.</div><div class='add'>+	  (Init_transcode): Encoding::Converter::CRLF_NEWLINE and</div><div class='add'>+	  Encoding::Converter::CR_NEWLINE defined.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 14:22:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/newline.trans: new file.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_trans_t): add last_tc field.</div><div class='add'>+</div><div class='add'>+	* transcode.c (UNIVERSAL_NEWLINE): defined.</div><div class='add'>+	  (CRLF_NEWLINE): defined.</div><div class='add'>+	  (CR_NEWLINE): defined.</div><div class='add'>+	  (rb_trans_open_by_transcoder_entries): initialize last_tc.</div><div class='add'>+	  (trans_open_i): allocate one more room for output newline converter.</div><div class='add'>+	  (rb_trans_open): universal newline implemented.</div><div class='add'>+	  (more_output_buffer): take max_output argument instead ts.</div><div class='add'>+	  (output_replacement_character): take tc argument instead of ts.</div><div class='add'>+	  (transcode_loop): use last_tc field.</div><div class='add'>+	  (econv_init): add flags argument for rb_trans_open.</div><div class='add'>+	  (Init_transcode): Encoding::Converter::UNIVERSAL_NEWLINE defined.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 14:00:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.c): generates parse.h together.</div><div class='add'>+</div><div class='add'>+	* id.c, id.h: use constants for parser tokens.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 13:47:05 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: rewind cfp to show proper backtrace.</div><div class='add'>+	  [ruby-dev:35820]</div><div class='add'>+</div><div class='add'>+Wed Aug 13 13:09:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: fix for clean up.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 11:45:51 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: Declare rb_iseq_clone, which is used in class.c.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 11:39:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_search_path): return the length of converter</div><div class='add'>+	  path.</div><div class='add'>+	  (load_transcoder_entry): renamed from load_transcoder.</div><div class='add'>+	  (load_transcoder): new function for loading transcoder by encoding</div><div class='add'>+	  names.</div><div class='add'>+	  (rb_transcoding_open_by_transcoder): extracted from</div><div class='add'>+	  rb_transcoding_open.</div><div class='add'>+	  (rb_transcoding_open): use load_transcoder and</div><div class='add'>+	  rb_transcoding_open_by_transcoder.</div><div class='add'>+	  (rb_trans_open_by_transcoder_entries): new function.</div><div class='add'>+	  (trans_open_i): construct entries array.</div><div class='add'>+	  (rb_trans_open): use rb_trans_open_by_transcoder_entries.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 10:45:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: try to find exported directory.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 10:16:35 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* doc/NEWS: Mention the Readline.vi_editing_mode?,</div><div class='add'>+	  Readline.emacs_editing_mode?, Readline::HISTORY[] and</div><div class='add'>+	  Readline::HISTORY.clear change.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 08:03:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (econv_primitive_convert): add output_size argument.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 07:41:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_trans_conv): report last transcode_obuf_full.</div><div class='add'>+	  (econv_max_output): new method Encoding::Converter#max_output.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 02:46:01 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_eEncCompatError): add Exception.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_check): use rb_eEncCompatError.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hex): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_oct): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 02:36:47 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): fix error message.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 23:42:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_cEncodingConverter): new class Encoding::Converter.</div><div class='add'>+	  (econv_free): new function.</div><div class='add'>+	  (econv_s_allocate): ditto.</div><div class='add'>+	  (econv_init): ditto.</div><div class='add'>+	  (check_econv): ditto.</div><div class='add'>+	  (econv_primitive_convert): new method.</div><div class='add'>+	  (Init_transcode): define Encoding::Converter.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 23:16:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice_0): call rb_str_drop_bytes, not rb_str_drop.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 19:11:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: fix for enc.mk.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 19:08:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_drop_bytes): new function to drop first bytes.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:58:48 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_insnhelper.c (vm_define_method): move</div><div class='add'>+	  function place.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:56:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: more descriptive aliases of rb_str_new[2-5].</div><div class='add'>+	  [ruby-dev:35615]</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:51:29 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (getrusage_time): Returned effective value on Windows.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:51:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_trans_open): free ts before raise.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:46:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): should not ignore</div><div class='add'>+	  &lt;=&gt; comparison.  [ruby-dev:35732]</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:43:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: *.erb.c is not used anymore.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:32:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_trans_elem_t): new field: from and to.</div><div class='add'>+</div><div class='add'>+	* transcode.c (trans_open_i): just record from and to.</div><div class='add'>+	  (rb_trans_open): load transcodings.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:32:03 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c (mSyslog_open): Use of Check_SafeStr() is</div><div class='add'>+	  deprecated.</div><div class='add'>+	  (mSyslogConstants_LOG_MASK, mSyslogConstants_LOG_UPTO): Use</div><div class='add'>+	  NUM2INT() instead of FIX2INT() when the type of an given object</div><div class='add'>+	  is not determined.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 18:14:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (#transcode_tblgen): slight message</div><div class='add'>+	  improvement.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 17:16:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (trans_open_i): check the result of rb_transcoding_open.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 16:23:32 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_result): use rb_str_catf.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 16:13:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (TRANSCODE_ERROR): removed.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: 8bit byte of ASCII-8BIT is a valid</div><div class='add'>+	  (but unique to ASCII-8BIT) character.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_eConversionUndefined): new error.</div><div class='add'>+	  (rb_eInvalidByteSequence): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 16:08:51 2008  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: POP3Command should export @socket since POP</div><div class='add'>+	  calls #socket.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 16:06:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c, util.c (quorem, nrv_alloc, dtoa): enabled floating point</div><div class='add'>+	  support.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 15:52:45 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_result): use sprintf.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 15:37:40 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_intern): should check symbol table overflow.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 15:31:04 2008  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (send_request_with_body): Content-Length should</div><div class='add'>+	  be byte length of string. (closes #203)</div><div class='add'>+</div><div class='add'>+Tue Aug 12 15:17:06 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: (transvpath_prefix): prefix has no extension, so replace</div><div class='add'>+	  %s with "".</div><div class='add'>+</div><div class='add'>+Tue Aug 12 15:03:43 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb (TestReadline#test_safe_level_4):</div><div class='add'>+	  tested Readline.vi_editing_mode? and Readline.emacs_editing_mode?.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 14:25:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (.SUFFIXES): renamed to .trans.</div><div class='add'>+</div><div class='add'>+	* enc/make_encmake.rb: added --encs and --no-encs options.</div><div class='add'>+</div><div class='add'>+	* enc/depend (TRANSVPATH): fix for nmake.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 14:19:53 2008  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/https.rb: suppress syntax warning.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 14:15:51 2008  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#initialize): initialize net/https</div><div class='add'>+	  variables to suppress syntax warning.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 14:15:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_to_ptr): fixed shadowing variable.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 10:25:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): Array#delete to return deleted element.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 10:18:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb: do not require 'mkmf'</div><div class='add'>+	  unless WIN32OLE is defined.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 07:41:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): add resetstate_func field for</div><div class='add'>+	  resetting a state of stateful encoding.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans (rb_EUC_JP_to_ISO_2022_JP): specify</div><div class='add'>+	  finish_eucjp_to_iso2022jp for resetstate_func.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: specify NULL for resetstate_func.</div><div class='add'>+</div><div class='add'>+	* transcode.c (output_replacement_character): call resetstate_func</div><div class='add'>+	  before appending the replacement character.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 07:19:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (get_replacement_character): extracted from</div><div class='add'>+	  output_replacement_character.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 07:00:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): typedef at first.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 06:48:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_trans_conv): find second last error.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 00:43:44 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_trans_result_t): new type.</div><div class='add'>+	  (rb_trans_elem_t): new type.</div><div class='add'>+	  (rb_trans_t): new type.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_dispatch_cb): removed.</div><div class='add'>+	  (transcode_dispatch): removed.</div><div class='add'>+	  (rb_transcoding_result_t): moved to rb_trans_result_t in</div><div class='add'>+	  transcode_data.h.</div><div class='add'>+	  (transcode_restartable0): goto follow_info when FUNsi.</div><div class='add'>+	  (rb_transcoding_open): use get_transcoder_entry.</div><div class='add'>+	  (rb_trans_open): new function.</div><div class='add'>+	  (rb_trans_conv): ditto.</div><div class='add'>+	  (rb_trans_close): ditto.</div><div class='add'>+	  (trans_open_i): ditto.</div><div class='add'>+	  (trans_sweep): ditto.</div><div class='add'>+	  (more_output_buffer): take rb_trans_t instead of rb_transcoding as</div><div class='add'>+	  an argument.</div><div class='add'>+	  (transcode_loop): take from_encoding and to_encoding instead of tr</div><div class='add'>+	  as arguments.  use rb_trans_open/rb_trans_conv/rb_trans_close.</div><div class='add'>+	  (str_transcode): don't use transcode_dispatch.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 20:37:05 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_clone): should preserve cref_stack link.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 20:27:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): add taint check.</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_malloc): add rb_secure(2).</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_realloc): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_free): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (rb_dl_ptr2value): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 20:11:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (getrusage_time): works only if RUSAGE_SELF is defined right</div><div class='add'>+	  now.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_profile_result): C99.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 18:57:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sample): rename #choice to #sample.  in</div><div class='add'>+	  addition, sample takes optional argument, a la #first.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 18:28:02 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: added GC::Profiler.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 17:26:16 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/README.ja: added API document for</div><div class='add'>+	  Readline.vi_editing_mode? and Readline.emacs_editing_mode?.</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: checked rl_editing_mode variable in</div><div class='add'>+	  Readline library.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_emacs_editing_mode_p): added</div><div class='add'>+	  Readline.emacs_editing_mode? method.</div><div class='add'>+	  (readline_s_vi_editing_mode_p): added Readline.vi_editing_mode?</div><div class='add'>+	  method.</div><div class='add'>+	  (Init_readline): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 16:56:40 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb: added test for Readline's class</div><div class='add'>+	  methods.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 16:39:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (clone_method): should copy cbase in cref as well.</div><div class='add'>+	  [ruby-dev:35116]</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_mark): mark original iseq object.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_free): do not free internal data if they have</div><div class='add'>+	  original iseq to belong.</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_clone): a new function to clone iseq value.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 16:34:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.trans: renamed from iso2022.erb.c.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/korean.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.trans: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/depend: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* tool/build-transcode: ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 15:09:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_broken_glibc_ia64_erfc): renamed from</div><div class='add'>+	  rb_broken_glibc_ia64_erfc.</div><div class='add'>+	  [ruby-core:18228]</div><div class='add'>+</div><div class='add'>+Mon Aug 11 10:04:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): rename fields.</div><div class='add'>+	  readlen -&gt; recognized_len.</div><div class='add'>+	  feedlen -&gt; readagain_len.</div><div class='add'>+</div><div class='add'>+	* transcode.c: follow the field renaming.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 22:34:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): invalid handling simplified.</div><div class='add'>+	  (transcode_restartable): use PARTIAL_INPUT for converting buffered</div><div class='add'>+	  input.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 22:24:24 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: include util.h.  [ruby-dev:35715]</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 20:59:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): new field: flags.</div><div class='add'>+</div><div class='add'>+	* transcode.c (load_transcoder): extracted from transcode_dispatch_cb.</div><div class='add'>+	  (rb_transcoding_result_t): renamed from transcode_result_t.</div><div class='add'>+	  (rb_transcoding_open): new function.</div><div class='add'>+	  (rb_transcoding_convert): ditto.</div><div class='add'>+	  (rb_transcoding_close): ditto.</div><div class='add'>+	  (transcode_loop): use rb_transcoding_open, rb_transcoding_convert</div><div class='add'>+	  and rb_transcoding_close.</div><div class='add'>+	  (str_transcode): don't need rb_transcoding.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 18:09:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: record checksum of</div><div class='add'>+	  transcode-tblgen.rb itself.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 12:34:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess ({powerpc-apple,i586-pc}-haiku): re-applied r18403.</div><div class='add'>+	  [ruby-core:18110]</div><div class='add'>+</div><div class='add'>+	* config.{guess,sub}: updated to automake-1.10.1.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 11:45:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (make-workdir): use MAKEDIRS.</div><div class='add'>+</div><div class='add'>+	* enc/depend: makes target directory before compile/link.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: creates target directory.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 11:30:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: rename my_transcoding to tc and my_transcoder to tr.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 11:15:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): add feedlen field.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable0): renamed from</div><div class='add'>+	  transcode_restartable.</div><div class='add'>+	  save input buffer into feed buffer if next character is started the</div><div class='add'>+	  point before input buffer.  for example, "\x00\xd8\x01" then "\x02"</div><div class='add'>+	  in UTF-16LE.  \x02 causes invalid and next character is started from</div><div class='add'>+	  \x01.</div><div class='add'>+	  (transcode_restartable): new function to call</div><div class='add'>+	  transcode_restartable0.  if feed buffer is not empty, convert it at</div><div class='add'>+	  first.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 11:02:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (extconf): use MAKEDIRS.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 09:35:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb#inspect): instance_variables returns symbols</div><div class='add'>+	  instead of strings now.  [ruby-dev:34930]</div><div class='add'>+</div><div class='add'>+Sun Aug 10 09:22:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_char_start): refactored to remove readlen</div><div class='add'>+	  argument.</div><div class='add'>+	  (transcode_restartable): refactored to remove readlen variable.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 08:56:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (STACK_LEVEL_MAX, ruby_stack_length): returns size_t.</div><div class='add'>+	  [ruby-core:18207]</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_missing__dtos18, rb_cv_missing_fconvert),</div><div class='add'>+	  ext/digest/md5/md5.c, ext/openssl/ossl.c (main),</div><div class='add'>+	  ext/socket/extconf.rb (ipv6, wide-getaddrinfo): main should be int.</div><div class='add'>+</div><div class='add'>+	* main.c (main), win32/winmain.c, wince/wincemain.c (WinMain): envp is</div><div class='add'>+	  no longer used so long time.  based on a patch from Peter Bowen at</div><div class='add'>+	  [ruby-core:18208]</div><div class='add'>+</div><div class='add'>+Sat Aug  9 22:05:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): take destination and resize function</div><div class='add'>+	  as parameters.</div><div class='add'>+	  (more_output_buffer): ditto.</div><div class='add'>+	  (str_transcoding_resize): argument changed from rb_transcoding* to</div><div class='add'>+	  VALUE.</div><div class='add'>+	  (str_transcode): call transcode_loop with destination string and its</div><div class='add'>+	  resize function.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): move ruby_string_dest and</div><div class='add'>+	  flush_func to transcode_loop parameters.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 21:29:45 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: encs depend on transdb.h</div><div class='add'>+</div><div class='add'>+Sat Aug  9 21:10:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_rshift_sign, rb_cv_binary_elf): get rid of</div><div class='add'>+	  AC_TRY_RUN.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 16:33:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): new fields: next_info and next_byte.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable): save/restore next_info and</div><div class='add'>+	  next_byte.</div><div class='add'>+	  sync readlen and in_p when invalid.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 15:10:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_restartable): my_transcoder argument removed.</div><div class='add'>+	  (transcode_loop): my_transcoder argument removed.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 14:39:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): add fields for restartable</div><div class='add'>+	  transcoding.</div><div class='add'>+	  (rb_transcoder): add max_input field.</div><div class='add'>+	  from_unit_length field is renamed to input_unit_length.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: generate max_input field.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.erb.c: follow rb_transcoder change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.erb.c: ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (PARTIAL_INPUT): new constant.</div><div class='add'>+	  (transcode_char_start): new function.</div><div class='add'>+	  (transcode_result_t): new type.</div><div class='add'>+	  (transcode_restartable): new function.</div><div class='add'>+	  (more_output_buffer): new function.</div><div class='add'>+	  (transcode_loop): use transcode_restartable.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 13:35:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stable/ext/socket/socket.c (NI_MAXHOST, NI_MAXSERV): fixed invalid</div><div class='add'>+	  preprocessor directives.  a patch from Peter Bowen at</div><div class='add'>+	  [ruby-core:18211].</div><div class='add'>+</div><div class='add'>+Sat Aug  9 06:37:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb, enc/trans/make_transdb.rb: skip nonexistent</div><div class='add'>+	  directory.  [ruby-dev:35802]</div><div class='add'>+</div><div class='add'>+Sat Aug  9 01:07:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.erb.c (fun_so_from_utf_32le): implemented.</div><div class='add'>+	  (fun_so_to_utf_32le): implemented.</div><div class='add'>+	  [ruby-dev:35777]</div><div class='add'>+</div><div class='add'>+Sat Aug  9 00:42:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): from_unit_length field added.</div><div class='add'>+	  from_utf8 field removed.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: generate offsets range.</div><div class='add'>+	  follow rb_transcoder change.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): don't use from_utf8.</div><div class='add'>+	  make invalid region from_unit_length wise.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.erb.c: follow rb_transcoder and</div><div class='add'>+	  transcode_generate_node change.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.erb.c: follow rb_transcoder and</div><div class='add'>+	  transcode_generate_node change.</div><div class='add'>+	  explicit :invalid map removed.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 23:29:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend (TRANSCSRCS): needs rule_subst to apply.</div><div class='add'>+</div><div class='add'>+	* io.c (shutdown): not define if defined already.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 22:47:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (opt_eq_func): large function to make inline.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (config.h): cannot compile a big inline function.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 21:09:10 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (enk.mk): give not RUBY but MINIRUBY.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 17:03:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (shutdown, sched_yield, pthread_attr_setinheritsched):</div><div class='add'>+	  check for Haiku.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, io.c, thread_pthread.c: use autoconfisticated results.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 16:52:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (enc.mk): mkmf.rb requires rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* common.mk (srcs-enc): renamed from transcodes.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (make-workdir): creates object directories.</div><div class='add'>+</div><div class='add'>+	* common.mk (encdb.h): see both $(srcdir)/enc and enc.</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: fix for the case no transdirs are given.</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: converts only one transcoders for each</div><div class='add'>+	  basename.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 10:53:52 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: randomize source port and transaction id.</div><div class='add'>+	  CVE-2008-1447.</div><div class='add'>+</div><div class='add'>+	* lib/resolv-replace.rb (UDPSocket#bind): don't resolv host if host is</div><div class='add'>+	  "".</div><div class='add'>+</div><div class='add'>+Fri Aug  8 04:20:14 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: see both $(srcdir)/enc/trans and enc/trans.</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 00:05:02 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/.document: added readline/readline.c.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: changed Copyright. added RDoc.</div><div class='add'>+</div><div class='add'>+	* ext/readline/README.ja: fixed typo.</div><div class='add'>+</div><div class='add'>+	* ext/readline/README: contents was moved RDoc.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 23:43:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): new field "stateful".</div><div class='add'>+	  (rb_transcoder): preprocessor and postprocessor field removed.</div><div class='add'>+	  change arguments of func_ii, func_si, func_io and func_so.</div><div class='add'>+	  new field "finish_func".</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: make FUNii, FUNsi and FUNio</div><div class='add'>+	  generatable.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcoder_lib_table): removed.</div><div class='add'>+	  (transcoder_table): change structure.</div><div class='add'>+	  (transcoder_key): removed because the above structure change.</div><div class='add'>+	  (make_transcoder_entry): new function.</div><div class='add'>+	  (get_transcoder_entry): ditto.</div><div class='add'>+	  (rb_register_transcoder): follow the structure change.</div><div class='add'>+	  (declare_transcoder): ditto.</div><div class='add'>+	  (transcode_search_path): new function for breadth first search to</div><div class='add'>+	  find a list of converters.</div><div class='add'>+	  (transcode_search_path_i): new function.</div><div class='add'>+	  (transcode_dispatch_cb): ditto.</div><div class='add'>+	  (transcode_dispatch): use transcode_search_path.</div><div class='add'>+	  (transcode_loop): follow the argument change.</div><div class='add'>+	  (str_transcode): preprocessor and postprocessor stuff removed.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso2022.erb.c: new file.  ISO-2022-JP conversion</div><div class='add'>+	  re-implemented.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.erb.c: ISO-2022-JP stuff removed.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.erb.c: follow argument change of FUNso.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:35798]</div><div class='add'>+</div><div class='add'>+Thu Aug  7 22:55:44 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/README.ja: updated API document for Readline module.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 20:52:08 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (login): raise FTPReplyError if passwd or acct</div><div class='add'>+	  is not supplied.  fixed [ruby-core:18058].</div><div class='add'>+</div><div class='add'>+Thu Aug  7 18:01:44 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-imenu-create-index-in-block): Fix the</div><div class='add'>+	  regexp to only pick definition lines properly.  `module_function'</div><div class='add'>+	  is not a definition of a module named `_function'.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 17:47:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: add transdb.c.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 16:28:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, {bcc,win}32/Makefile.sub (clean-ext): do not</div><div class='add'>+	  use miniruby.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 14:17:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: removed needless explicit commands.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb, {bcc32,win32}/Makefile.sub (CLEANLIBS, CLEANOBJS):</div><div class='add'>+	  moved clean targets to platform makefiles.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 13:12:30 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (gai_strerror): ignore only on Haiku.</div><div class='add'>+	  a patch from &lt;zn at mbf.nifty.com&gt;, [ruby-dev:35796].</div><div class='add'>+</div><div class='add'>+Thu Aug  7 06:31:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/process.rb (test_popen_fork): skip a test which is</div><div class='add'>+	  freeze in FreeBSD.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 06:05:48 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess: add powerpc-apple-haiku, i586-pc-haiku.</div><div class='add'>+	  see [ruby-core:18110]</div><div class='add'>+</div><div class='add'>+Thu Aug  7 05:51:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: Add support to Haiku. see [ruby-core:18110]</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getnameinfo.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 05:43:32 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: mkdir enc/trans before build tables.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 05:18:30 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: enc/*.c is source but enc/trans/*.c is generated.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 05:14:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.c (code_to_mbc): raise RangeError Integer#chr</div><div class='add'>+	  when more than 255 is given with single byte encoding.</div><div class='add'>+	  [ruby-dev:35789]</div><div class='add'>+</div><div class='add'>+Thu Aug  7 05:06:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): runs finalizers with the object terminated.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): keeps finalized objects from</div><div class='add'>+	  linking to freelist.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 04:43:14 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: for build in other than srcdir.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 22:40:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (transcode_generate_node): code</div><div class='add'>+	  argument removed.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 21:25:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (chain_finalized_object): deletes finalizers to be invoked from</div><div class='add'>+	  finalizer_table.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): warns when could not invoke</div><div class='add'>+	  finalizers.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 20:56:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: transcode table generation depends on</div><div class='add'>+	  tool/transcode-tblgen.rb.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 20:48:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): self-referencing finalizers</div><div class='add'>+	  cannot be invoked.  [ruby-dev:35681]</div><div class='add'>+</div><div class='add'>+Wed Aug  6 20:44:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: distinguish UNDEF and INVALID.</div><div class='add'>+	  [ruby-dev:35709]</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): don't need rb_enc_mbclen now.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 14:40:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (transdb.h): requires transcoders.</div><div class='add'>+</div><div class='add'>+	* enc/depend (srcs): target for transcoders.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 14:04:08 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: replace not only $(&lt;:...) but also $&lt;.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 13:54:30 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): export BASERUBY.</div><div class='add'>+</div><div class='add'>+	* enc/depend: avoid GNU make'ism.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 07:59:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb (ActionMap#eql?): use == to compare @map.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 07:45:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: show generating tables in verbose mode.</div><div class='add'>+	  (transcode_generate_node): call ActionMap#generate_node with showing</div><div class='add'>+	  table name.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.erb.c: use transcode_generate_node.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 06:55:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): propagates fatal error and system</div><div class='add'>+	  exit to the main thread.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 05:31:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_to_encoding_index, rb_to_encoding): check if the name</div><div class='add'>+	  is ascii compatible as well as Encoding.find.</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_encode): no need to duplicate first.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 05:08:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): reset to real class.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext, rb_find_file): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 03:56:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (transcodes), tool/build-transcode: generates transcode</div><div class='add'>+	  sources.</div><div class='add'>+</div><div class='add'>+	* enc/trans/{japanese,korean,single_byte,utf_16_32}.c: to be</div><div class='add'>+	  autogenerated now.</div><div class='add'>+</div><div class='add'>+	* enc/depend: added rules for .c from .erb.c.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 20:46:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/build-transcode: new file.</div><div class='add'>+</div><div class='add'>+	* tool/transcode-tblgen.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: exclude *.erb.c.</div><div class='add'>+</div><div class='add'>+	* enc/depend: exclude *.erb.c.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.erb.c: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.erb.c: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.erb.c: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/korean.erb.c: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-2-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-3-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-4-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-5-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-6-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-7-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-8-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-9-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-10-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-11-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-13-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-14-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/iso-8859-15-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/eucjp-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/sjis-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/euckr-tbl.rb: new file.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.c: regenerated.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.c: regenerated.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: regenerated.</div><div class='add'>+</div><div class='add'>+	* enc/trans/korean.c: regenerated.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:35730]</div><div class='add'>+</div><div class='add'>+Tue Aug  5 18:02:53 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb (TestIONonblock#test_flush):</div><div class='add'>+	  rescue some exceptions. [ruby-dev:35638]</div><div class='add'>+</div><div class='add'>+Tue Aug  5 16:40:06 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (chdir): handle 5xx errors correctly.</div><div class='add'>+	  fixed [ruby-core:18057].</div><div class='add'>+</div><div class='add'>+Tue Aug  5 16:38:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h, bcc32/Makefile.sub (config.h): bcc 5.8 has</div><div class='add'>+	  stdint.h.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 16:13:05 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (disconnect): do not refer to SSL::SSLSocket for</div><div class='add'>+	  environments without OpenSSL. fixed [ruby-dev:35755].</div><div class='add'>+</div><div class='add'>+Tue Aug  5 14:19:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_mode): generalized st_mode mask.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 12:43:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (retry_sendfile, retry_read): ENOSYS and EWOULDBLOCK are not</div><div class='add'>+	  defined on every platforms.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 12:34:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (TRANSCODE_ERROR): common transcode failure</div><div class='add'>+	  exception, would be changed later.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (UNSUPPORTED_MODE): unsupported mode transition</div><div class='add'>+	  exception.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 03:29:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): respect overridden &lt;=&gt; for String and</div><div class='add'>+	  Fixnum.  [ruby-core:17708]</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h (NOEX_BASIC): basic definition method flag.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, vm_method.c (rb_method_basic_definition_p):</div><div class='add'>+	  new function to check if the method is not redefined after the</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+	* vm_method.c (rb_obj_respond_to): use rb_method_basic_definition_p.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 20:39:06 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (update-rubyspec): renamed the rubyspec directory</div><div class='add'>+	  "spec". Changed directory structure.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (test-rubyspec): ditto.</div><div class='add'>+</div><div class='add'>+	* spec/README: described the structure of "spec" directory.</div><div class='add'>+</div><div class='add'>+	* spec/default.mspec: configured for Matz's Ruby Implementation.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 19:21:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_tmp_new): added.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call_super): fixed typo, and get rid of too large</div><div class='add'>+	  alloca.  [ruby-core:17922]</div><div class='add'>+</div><div class='add'>+Mon Aug  4 16:48:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (deferred_nodes, compstmt, arg, fixup_nodes, range_op): fix</div><div class='add'>+	  up fixnum range literal in conditional as automagical line number</div><div class='add'>+	  comparison.  [ruby-core:12124], [ruby-dev:35731]</div><div class='add'>+</div><div class='add'>+Mon Aug  4 14:41:25 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP::rcptto): fix a typo. a patch from</div><div class='add'>+	  Masao Takaku &lt;masao at nii.ac.jp&gt;</div><div class='add'>+	  fix [ruby-dev:35489].</div><div class='add'>+</div><div class='add'>+Mon Aug  4 14:08:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (dump_ensure), process.c (run_exec_dup2),</div><div class='add'>+	  string.c (rb_str_replace), transcode.c (transcode_dispatch): fixed</div><div class='add'>+	  memory leaks.  based on patches from shinichiro.h &lt;shinichiro.hamaji</div><div class='add'>+	  AT gmail.com&gt; at [ruby-dev:35751].</div><div class='add'>+</div><div class='add'>+Sun Aug  3 19:32:52 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (hash2named_arg): refactoring.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke, fole_respond_to, ev_on_event,</div><div class='add'>+	  fev_off_event): accepts Symbol argument.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug  3 10:41:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_shared_replace): fixed memory leak.  a patch from</div><div class='add'>+	  shinichiro.h &lt;shinichiro.hamaji AT gmail.com&gt; at [ruby-dev:35742]</div><div class='add'>+</div><div class='add'>+Sat Aug  2 22:55:41 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb: remove temporary files.</div><div class='add'>+	  some refactoring.</div><div class='add'>+</div><div class='add'>+Sat Aug  2 15:51:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): 8 and 9 in octal integer should cause compile</div><div class='add'>+	  error.  [ruby-dev:35729]</div><div class='add'>+</div><div class='add'>+Sat Aug  2 01:06:10 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: add U+FF5E to EUC-JP.</div><div class='add'>+	  [ruby-dev:35720] [ruby-dev:35722]</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:49:44 2008  TAKAO Kouji  &lt;kouji@takao7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: checked to have clear_history in</div><div class='add'>+	  readline library.</div><div class='add'>+	* ext/readline/readline.c (hist_get, hist_each, Init_readline):</div><div class='add'>+	  The offset specified for the argument of history_get() might be</div><div class='add'>+	  different in GNU Readline and libedit. If use libedit, it was</div><div class='add'>+	  corrected that the computational method of the offset specified</div><div class='add'>+	  for the argument of history_get() when the Readline module was</div><div class='add'>+	  initialized was decided.</div><div class='add'>+	  (hist_get, hist_set): If use libedit, accesses first an input</div><div class='add'>+	  content in history when specifies the negative offset for the</div><div class='add'>+	  argument of history_get() or replace_history_entry(). Then</div><div class='add'>+	  checks the offset is negative in ruby.</div><div class='add'>+	  (rb_remove_history): When compiling, it corrects it to warning</div><div class='add'>+	  when libedit is used.</div><div class='add'>+	  (hist_clear, Init_readline): added Readline::HISTORY.clear</div><div class='add'>+	  method. [ruby-dev:35551]</div><div class='add'>+	* test/readline/test_readline_history.rb: added unit test for</div><div class='add'>+	  Readline::HISTORY.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:26:45 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): undefined character is replaced with</div><div class='add'>+	  only one character. [ruby-dev:35709]</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:26:22 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	Merged r16430(akr), r16431(akr), r16433(akr), r16469(nobu), and</div><div class='add'>+	r17874(akr) from ruby_1_8.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (update-rubyspec): added</div><div class='add'>+</div><div class='add'>+	* Makefile.in (test-rubyspec): added</div><div class='add'>+</div><div class='add'>+Fri Aug  1 23:16:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: add support for CP51932,</div><div class='add'>+</div><div class='add'>+Fri Aug  1 22:59:40 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: add U+FF0C,</div><div class='add'>+</div><div class='add'>+Fri Aug  1 21:49:41 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/sdbm/test_sdbm.rb: add some tests.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 21:36:00 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (allocate_heaps, assign_heap_slot, rb_newobj_from_heap):</div><div class='add'>+	  reset during_gc before raising NoMemoryError.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 21:29:56 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_BareVM): check failure of malloc().</div><div class='add'>+</div><div class='add'>+Fri Aug  1 20:55:27 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (to_SHIFT_JIS_EF_BF_offsets): add U+FFF3,</div><div class='add'>+	  U+FFF4, U+FFF5.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (to_SHIFT_JIS_EF_BF_infos): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (to_EUC_JP_EF_BF_infos): added.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (to_EUC_JP_EF_BF): added.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (to_EUC_JP_EF_infos): change size.</div><div class='add'>+	  [ruby-dev:35714]</div><div class='add'>+</div><div class='add'>+Fri Aug  1 18:27:15 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): removed an useless conditional, and magic</div><div class='add'>+	  comment are ignored unless at the first of line.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_magic_comment_vim): added.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_magic_comment_at_various_positions):</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 14:54:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_seekdir): no need to rewind to seek forward.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 05:31:08 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (output_replacement_character):</div><div class='add'>+	  rename from _get_replacement_character.</div><div class='add'>+</div><div class='add'>+	* transcode.c (output_replacement_character):</div><div class='add'>+	  fix replacement on UTF-32{BE,LE}. [ruby-dev:35705]</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_invalid_replace):</div><div class='add'>+	  add for above.</div><div class='add'>+</div><div class='add'>+Fri Aug  1 01:01:49 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_call_with_block): reduce comparison.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 22:17:35 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpMult): prevent memory leak.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 20:05:56 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_unicode_public_review_issue_121):</div><div class='add'>+	  fix option1 and 3.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 19:54:57 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (get_replacement_character): use U+FFFD as replacement</div><div class='add'>+	  character when convert to Unicode.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_unicode_public_review_issue_121):</div><div class='add'>+	  rename from test_public_review_issue_121.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb (test_unicode_public_review_issue_121):</div><div class='add'>+	  enable option2.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 17:00:10 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (get_replacement_character): fix: invalid byte sequence</div><div class='add'>+	  is always replaced "\x00?".</div><div class='add'>+</div><div class='add'>+Thu Jul 31 16:37:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_ext_configure_builder.rb</div><div class='add'>+	  (test_self_build_fail): remove extra newline. [ruby-dev:35704]</div><div class='add'>+</div><div class='add'>+Thu Jul 31 15:11:11 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added test_shift_jis</div><div class='add'>+	  (contributed by Yoshihiro Kambayashi) and</div><div class='add'>+	  test_public_review_issue_121</div><div class='add'>+	  (see http://www.unicode.org/review/pr-121.html)</div><div class='add'>+</div><div class='add'>+Thu Jul 31 13:18:30 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (struct RString): size of ary must be</div><div class='add'>+	  RSTRING_EMBED_LEN_MAX + 1.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 12:23:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): upper half of hexdigits has never been used.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 11:31:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h (ASSERT): fix typo at r18176.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_compile): expression in ASSERT() has no</div><div class='add'>+	  effect unless debug mode.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 10:51:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_iseq_disasm_insn): suppress warnings on platforms which</div><div class='add'>+	  int size differs from pointer size.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_get_asn1type): ditto</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_err_handler),</div><div class='add'>+	  (syck_default_error_handler): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 02:21:39 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_compile): remove meaningless branch</div><div class='add'>+	  that misleads into thinking that the variable sav may be</div><div class='add'>+	  uninitialized.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 01:25:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_unlock_all): mutex is no longer a ruby object.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 01:18:07 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (magic_comment_encoding): remove meaningless null check.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 01:09:28 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpIsRoundMode): fix tautology</div><div class='add'>+	  condition.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 00:58:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): reduced static variables.</div><div class='add'>+</div><div class='add'>+Thu Jul 31 00:10:20 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_call_with_block): prevent null reference.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 22:19:13 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (vtable_free): remove meaningless null check.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 22:08:25 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (struct dir_data): change path field char * to VALUE.</div><div class='add'>+	  (mark_dir): new function for mark path field.</div><div class='add'>+	  (free_dir): follow the path field change.</div><div class='add'>+	  (dir_s_alloc): ditto.</div><div class='add'>+	  (dir_initialize): ditto.</div><div class='add'>+	  (dir_s_open): ditto.</div><div class='add'>+	  (dir_inspect): ditto.</div><div class='add'>+	  (dir_path): return (duplicate of) the path field to preserve</div><div class='add'>+	  encoding.  [ruby-dev:35685]</div><div class='add'>+</div><div class='add'>+Wed Jul 30 22:06:56 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_inspect): remove dead code.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 21:32:52 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: fix wrong method name and add reference.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 21:30:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (name_add): fix memory leak.</div><div class='add'>+</div><div class='add'>+Wed Jul 30 21:08:06 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_free_parser): fix memory leak by</div><div class='add'>+	  YAML::Syck.compile.</div><div class='add'>+</div><div class='add'>+	* regparse.c (parse_exp): fix memory leak at Regexp.new("x{1,1}").</div><div class='add'>+</div><div class='add'>+Wed Jul 30 17:48:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): recalc the rest of timeout for each</div><div class='add'>+	  iterations.  [ruby-core:18015]</div><div class='add'>+</div><div class='add'>+Tue Jul 29 23:37:37 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_ungetc): raise NotImplementedError when ungetc is called</div><div class='add'>+	  against dummy encoding IO.  [ruby-dev:35686]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_1): ditto when gets with delimiter is called.</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): ditto when getc is called.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (test_terminator_stateful_conversion,</div><div class='add'>+	  test_getc_stateful_conversion, test_ungetc_stateful_conversion):</div><div class='add'>+	  these tests should raise NotImplementedError.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 22:55:34 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (pipe): run reader thread and writer thread.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 21:38:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): fix typo.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 21:35:59 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb (test_passwd): age field may be string under</div><div class='add'>+	  some environments.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 17:54:35 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (char_casecmp): fix: return 0 if either of characters is NUL.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 13:17:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb (test_getpwuid): fix for users whose uid is</div><div class='add'>+	  shared.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 05:37:53 2008  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): explicit relative path</div><div class='add'>+	  which starts with "./" or "../" should be searched from cwd</div><div class='add'>+	  instead of load path.  [ruby-dev:35673]</div><div class='add'>+</div><div class='add'>+Tue Jul 29 02:39:46 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_atanh): raise EDOM on FreeBSD when atanh(1).</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): ditto.</div><div class='add'>+</div><div class='add'>+	* math.c (math_log2): ditto.</div><div class='add'>+</div><div class='add'>+	* math.c (math_log10): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: test for above.</div><div class='add'>+</div><div class='add'>+Tue Jul 29 01:41:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (struct dir_data): intenc field removed.</div><div class='add'>+	  (dir_s_alloc): intenc initialization removed.</div><div class='add'>+	  (dir_initialize): :internal_encoding option removed.  dirname code</div><div class='add'>+	  conversion removed.</div><div class='add'>+	  (dir_enc_str): code conversion removed.</div><div class='add'>+	  [ruby-dev:35661]</div><div class='add'>+</div><div class='add'>+Mon Jul 28 21:32:17 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/: use PNG instead of zlib as binary data.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 21:24:33 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.[ch] (cond_every_entry, rb_thread_cond_struct): reverted</div><div class='add'>+	  r18239 because r18245 made the changes unnecessary.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_struct): define after including thread_{pthread,</div><div class='add'>+	  win32}.c.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 21:00:10 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb (test_require_too_long_filename):</div><div class='add'>+	  Kernel#require does not use dln_find_file_r (at r18242).</div><div class='add'>+</div><div class='add'>+Mon Jul 28 20:17:03 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h: move the definition of struct rb_mutex_struct.</div><div class='add'>+</div><div class='add'>+	* thread.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 18:58:46 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_unlock): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 18:15:45 2008  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): not to split load path with</div><div class='add'>+	  path separator.  [ruby-Bugs-21356]</div><div class='add'>+</div><div class='add'>+Mon Jul 28 18:14:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (overlapped_socket_io, fcntl, rb_w32_close): must not</div><div class='add'>+	  pass a pointer to int which is smaller than st_data_t on mswin64.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 16:49:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild, overlapped_socket_io): suppress</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 16:06:36 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (MAXPATHLEN): define before use.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 16:01:12 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.[ch] (cond_every_entry, rb_thread_cond_struct): moved</div><div class='add'>+	  the definitions from .c to .h because rb_thread_cond_struct is used</div><div class='add'>+	  in vm_core.h.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 14:29:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (load_lib): use dln_find_file_r instead of dln_find_file.</div><div class='add'>+</div><div class='add'>+Mon Jul 28 00:18:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h, thread.c: It is now prohibited to use Data_Get_Struct in</div><div class='add'>+	  *_free against an object that is going to be free'ed.  So, change type</div><div class='add'>+	  of thread_t#keeping_mutexes from VALUE to mutex_t.</div><div class='add'>+</div><div class='add'>+	* vm.c: remove mark to keeping_mutexes.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 23:32:42 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (server_loop): rescue Errno::EINVAL and</div><div class='add'>+	  Errno::ECONNABORTED.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 22:11:57 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptests/method.rb: increase RLIMIT_STACK size to 4M+8Kbytes</div><div class='add'>+	  because FreeBSD fails this less than that.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 21:45:59 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children, obj_free): T_DEFERRED should not be appear.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep, finalize_list): fix to decrement heap_slot#limit</div><div class='add'>+	  after executing finalizer.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 14:48:37 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: add a type T_DEFERRED.</div><div class='add'>+</div><div class='add'>+	* gc.c: fix deferred finalizer system.  finalize processes of</div><div class='add'>+	  T_DATA and T_FILE are executed after gc process.</div><div class='add'>+	  And fix to use BUILTIN_TYPE() instead of seeing flag.</div><div class='add'>+</div><div class='add'>+	* thread.c, vm_core.h: add RUBY_VM_SET_FINALIZER_INTERRUPT()</div><div class='add'>+	  and check interrupt_flag at rb_thread_execute_interrupts().</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_mark): fix to mark next_mutex.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): fix to mark keeping_mutexes.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 09:15:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.h (dln_find_exe, dln_find_file): deprecated, use reentrant</div><div class='add'>+	  versions instead.</div><div class='add'>+</div><div class='add'>+Sun Jul 27 09:02:32 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb: merged from 1.8.</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: merged from 1.8.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 22:45:18 2008  Yuki Sonoda (Yugui)  &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/exyacc.rb: fixed NoMethodError(Kernel#sub!).</div><div class='add'>+	  replaced use of special variables with explicit IO</div><div class='add'>+	  operations.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 21:17:18 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (Init_win32ole): add</div><div class='add'>+	  WIN32OLE_EVENT#handler=, WIN32OLE_EVENT#handler</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 26 07:44:14 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (add_event_call_back): remove unused</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 23:48:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep, obj_free, run_final): defer finalizers of IO and</div><div class='add'>+	  Data.  [ruby-dev:35578]</div><div class='add'>+</div><div class='add'>+Fri Jul 25 23:35:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils#split_header_value):</div><div class='add'>+	  reduce backtrack.  based on a fix by Christian Neukirchen</div><div class='add'>+	  &lt;chneukirchen AT gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 21:55:38 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/enc/test_koi8.rb: move from test/ruby/test_koi8.rb.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 21:09:32 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke, add_event_callback,</div><div class='add'>+	  rescue_callback): refactoring.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 20:52:44 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/err_in_callback.rb: add test of raising</div><div class='add'>+	  exception in WIN32OLE_EVENT callback.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_err_in_callback.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 20:43:57 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (Init_win32ole): add</div><div class='add'>+	  WIN32OLE_EVENT#off_event.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: some refactoring.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 19:50:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.c (xmalloc, xrealloc, xfree): not to use ruby managed memory.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 15:52:40 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_invoke_proc): skip setting safe_level if</div><div class='add'>+	  it from bmethod.  This change makes test/ruby/test_proc.rb pass.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 10:00:00 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: refactoring/cleanup of</div><div class='add'>+	  test_iso_2022_jp(_1)</div><div class='add'>+</div><div class='add'>+Fri Jul 25 04:12:57 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert): output of mime encode is US-ASCII.</div><div class='add'>+	  [ruby-list:45257]</div><div class='add'>+</div><div class='add'>+Fri Jul 25 02:43:11 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/coverage.rb: move from lib/coverage.rb because this remains in</div><div class='add'>+	  an early phase of development.</div><div class='add'>+</div><div class='add'>+Fri Jul 25 00:10:23 2008  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): converts Windows style path</div><div class='add'>+	  to Cygwin path.  [ruby-dev:35647]</div><div class='add'>+</div><div class='add'>+Thu Jul 24 16:30:21 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (exit_handler): use st_free_table() to free socklist.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec, rb_w32_accept, rb_w32_socket,</div><div class='add'>+	  rb_w32_socketpair): should check and release fd and sockets/handles</div><div class='add'>+	  if an error occurs in rb_w32_open_osfhandle().</div><div class='add'>+</div><div class='add'>+Thu Jul 24 16:05:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (overlapped_socket_io): avoid warnings.</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (ubf_handle): refactoring.</div><div class='add'>+</div><div class='add'>+Thu Jul 24 07:01:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: got rid of improper casts.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 23:19:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb (test_recvfrom): replace an irrelevant test</div><div class='add'>+	  for old behavior.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 21:38:16 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: suppress warning during test.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 21:35:53 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: suppress warning during test.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 18:27:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/{stubs,tcltklib}.c, ext/tk/tkutil/tkutil.c: fix warnings</div><div class='add'>+	  about constness and signedness.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 17:04:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.h (d2i_of_void): define for older</div><div class='add'>+	  versions.  [ruby-dev:35637]</div><div class='add'>+</div><div class='add'>+Wed Jul 23 13:53:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: use try_static_assert.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 10:06:19 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb (TestZlibDeflate#test_params): suppress a</div><div class='add'>+	  finalizer warning.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 06:25:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck: suppress warnings more.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 03:19:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (struct input_code.name, input_codename):</div><div class='add'>+	  constified.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 03:02:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck: suppress warnings.</div><div class='add'>+</div><div class='add'>+Wed Jul 23 00:34:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl: suppress warnings.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 23:01:34 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c, ext/syck/yaml2byte.c, ext/syck/emitter.c,</div><div class='add'>+	  ext/syck/syck.c, ext/syck/handler.c, ext/syck/syck.h: suppress GCC</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 20:42:24 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): BigDecimal#&lt;=&gt; should</div><div class='add'>+	  return nil if an argument can't be coerced into BigDecimal.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c</div><div class='add'>+	  (VpIsNegDoubleZero, VpItoV): comment out unused functions.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 20:33:54 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_parser_ruby.rb (teardown): close tempfile.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 19:38:38 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added two comments</div><div class='add'>+</div><div class='add'>+Tue Jul 22 18:08:34 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: mention about FIX2LONG and NUM2LONG.</div><div class='add'>+	  see [ruby-dev:35197]</div><div class='add'>+</div><div class='add'>+Tue Jul 22 17:53:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (insn_data_to_s_detail), file.c (rb_stat_inspect),</div><div class='add'>+	  iseq.c (ruby_iseq_disasm_insn, ruby_iseq_disasm),</div><div class='add'>+	  process.c (pst_message), re.c (match_inspect): use rb_str_catf.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_inspect), iseq.c (iseq_inspect, insn_operand_intern): use</div><div class='add'>+	  rb_sprintf.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_name_error, rb_raise, rb_loaderror, rb_fatal): use</div><div class='add'>+	  rb_vsprintf.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 17:20:25 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_func): new function to get API's address which</div><div class='add'>+	  is often used and not supported on all Windows.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (overlapped_socket_io): shouldn't use overlapped I/O if</div><div class='add'>+	  CancelIo() is not supported.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 16:47:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, sprintf.c (rb_str_catf, rb_str_vcatf): new</div><div class='add'>+	  functions.  [ruby-dev:35597]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_capacity): new function to return the capacity.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 16:08:58 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (connect_blocking, socks_connect_blocking,</div><div class='add'>+	  ruby_connect): cast.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 11:05:08 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: use realpath of tmpdir. [ruby-dev:35481]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 09:51:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: fix here-doc strings with inner quotes.  patches</div><div class='add'>+	  by Nathan Weizenbaum &lt;nex342 AT gmail.com&gt; from [ruby-core:17615]</div><div class='add'>+	  through [ruby-core:17910].</div><div class='add'>+</div><div class='add'>+Tue Jul 22 04:26:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_buf_new2): optimization for literals.</div><div class='add'>+</div><div class='add'>+	* string.c (str_buf_cat): returns VALUE.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 03:34:01 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc*: Update to RDoc 2.1.0 r112.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 02:51:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_buf_cat2, rb_str_cat2): optimization</div><div class='add'>+	  for literals.</div><div class='add'>+</div><div class='add'>+Tue Jul 22 02:50:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (1.5 Manipulating Ruby data): fix the</div><div class='add'>+	  prototype of rb_vsprintf, and added rb_str_cat2.  [ruby-dev:35622]</div><div class='add'>+</div><div class='add'>+Mon Jul 21 17:15:38 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): use locale encoding on Unix.</div><div class='add'>+	  [ruby-dev:35617]</div><div class='add'>+</div><div class='add'>+Mon Jul 21 15:29:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (struct __sbuf, FILE): use size_t.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (ruby__sfvwrite): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 21 13:55:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (1.5 Manipulating Ruby data): mentioned</div><div class='add'>+	  rb_sprintf and rb_vsprintf.  [ruby-dev:35611]</div><div class='add'>+</div><div class='add'>+Mon Jul 21 10:25:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (prepare_getline_args): check if rs is a string when non-nil</div><div class='add'>+	  lim is given.  [ruby-dev:35610]</div><div class='add'>+</div><div class='add'>+Mon Jul 21 04:55:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): use rb_convert_type instead of</div><div class='add'>+	  rb_check_convert_type to prevent SEGV by Dir.new(".", true).</div><div class='add'>+	  (dir_initialize): use FilePathValue before rb_enc_get(dirname) to</div><div class='add'>+	  prevent SEGV by Dir.new(0).</div><div class='add'>+</div><div class='add'>+Mon Jul 21 04:42:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): useless rb_enc_get call removed to prevent</div><div class='add'>+	  SEGV by Regexp.union("", nil).</div><div class='add'>+</div><div class='add'>+Sun Jul 20 22:50:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): NODE_POSTEXE should set each end</div><div class='add'>+	  procs only once.  [ruby-dev:35596]</div><div class='add'>+</div><div class='add'>+Sun Jul 20 16:00:37 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_Invoke): use rb_protect</div><div class='add'>+	  instead of rb_rescue2. [ruby-dev:35595]</div><div class='add'>+</div><div class='add'>+Sun Jul 20 01:23:24 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_Invoke): little refactoring.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_GetIDsOfNames): return</div><div class='add'>+	  ITypeInfo::GetIDsOfNames().</div><div class='add'>+</div><div class='add'>+Sat Jul 19 09:31:35 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_Invoke): little refactoring.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add document of inspect methods.</div><div class='add'>+</div><div class='add'>+Sat Jul 19 06:08:43 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc*: Import RDoc r104.  Various make test-all fixes.</div><div class='add'>+</div><div class='add'>+Sat Jul 19 00:27:58 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint, rb_num2uint, rb_fix2uint): fixed wrong check</div><div class='add'>+	  about 64bit positive value.</div><div class='add'>+</div><div class='add'>+Fri Jul 18 23:23:37 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_Invoke): avoid cfp consistency</div><div class='add'>+	  error when exception raised in event callback.</div><div class='add'>+</div><div class='add'>+Fri Jul 18 14:52:14 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (socklist): table for registering socket options</div><div class='add'>+	  (currently only O_NONBLOCK).</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSockets, exit_handler): alloc/free socklist.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (is_socket): use socklist.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_accept, rb_w32_socket, rb_w32_socketpair):</div><div class='add'>+	  register new socket to socklist.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_close): remove closing socket from socklist.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (fcntl): register socket options.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (overlapped_socket_io): send to/recv from socket with</div><div class='add'>+	  overlapped operation if the socket is not nonblocking mode.</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_send, rb_w32_sendto, rb_w32_recv,</div><div class='add'>+	  rb_w32_recvfrom): use overlapped_socket_io().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (open_ifs_socket): set overlapped mode. this is the</div><div class='add'>+	  default mode of winsock's socket(), so lacking it is an old bug.</div><div class='add'>+</div><div class='add'>+Fri Jul 18 09:44:30 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/*: Import RDoc r101.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 23:45:55 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_c_parser.rb (teardown): close tempfile.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 21:08:49 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_getpriority, test_setpriority): use</div><div class='add'>+	  PRIO_PROCESS instead of PRIO_USER.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 20:41:42 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): fix v and V with big endian.</div><div class='add'>+	  [1].pack("V").unpack("V") was [4294967296].</div><div class='add'>+</div><div class='add'>+Thu Jul 17 20:35:03 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): fix i! with big endian.  [1].pack("i!") was</div><div class='add'>+	  "\0\0\0\0".</div><div class='add'>+</div><div class='add'>+Thu Jul 17 16:48:40 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): select() for connect() has</div><div class='add'>+	  mean only when the socket is non-blocking.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 10:55:24 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: Simplify expression for RDoc.</div><div class='add'>+</div><div class='add'>+Thu Jul 17 10:21:15 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint, rb_num2uint, rb_fix2uint): strict check.</div><div class='add'>+	  fixed [ruby-dev:33683]</div><div class='add'>+</div><div class='add'>+Thu Jul 17 04:19:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): wake up joining threads.</div><div class='add'>+</div><div class='add'>+	* thread.c (sleep_forever, sleep_timeval): return when interrupted.</div><div class='add'>+	  [ruby-dev:35542]</div><div class='add'>+</div><div class='add'>+	* thread.c (timer_thread_function): restore main thread status.</div><div class='add'>+	  [ruby-core:17270]</div><div class='add'>+</div><div class='add'>+Thu Jul 17 01:27:38 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): remove invalid access.</div><div class='add'>+</div><div class='add'>+Wed Jul 16 18:04:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (signal_exec, trap_handler): trap accepts a string as</div><div class='add'>+	  command.  [ruby-dev:35533]</div><div class='add'>+</div><div class='add'>+Wed Jul 16 00:04:30 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err): new</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb: use assert_in_out_err instead of</div><div class='add'>+	  EnvUtil.rubyexec.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_variable.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_class.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 22:34:03 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (ruby_version): follow changes in configure.in.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 21:58:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/{,tkutil/}extconf.rb: ruby/ruby.h no longer needs to be</div><div class='add'>+	  checked.</div><div class='add'>+</div><div class='add'>+	* ext/tk/{tcltklib.c,tkutil/tkutil.c}: check macros for each headers.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 21:45:41 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb, ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: Do</div><div class='add'>+	  not test ruby/ruby.h, which makes OS X's gcc pick the wrong</div><div class='add'>+	  header file from Ruby.framework.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 21:31:26 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-ruby-version): Add a new option to specify</div><div class='add'>+	  the ruby version string for version specific directories.</div><div class='add'>+	  [ruby-dev:35490]</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: Definition of ruby_version is now determined by the</div><div class='add'>+	  configure script.</div><div class='add'>+</div><div class='add'>+Tue Jul 15 18:14:20 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect, s_accept): check before readable/</div><div class='add'>+	  writable by select() instead of wrapping in blocking region.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_send, s_recvfrom, udp_send, unix_send_io,</div><div class='add'>+	  unix_recv_io): should check readable/writable before calling blocking</div><div class='add'>+	  functions.</div><div class='add'>+	  see [ruby-dev:35446]</div><div class='add'>+</div><div class='add'>+Tue Jul 15 18:12:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (ubf_handle): cancel blocking IO if it can (only</div><div class='add'>+	  Vista). see [ruby-dev:35446]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (errmap): add ERROR_OPERATION_ABORTED as EINTR.</div><div class='add'>+</div><div class='add'>+Mon Jul 14 20:35:21 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb (teardown): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Jul 14 18:47:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): constified.</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): rb_str_set_len() sets a delimiter.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): constified preprocessor and</div><div class='add'>+	  postprocessor input.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul 13 05:37:50 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI_PTRDIFF_PREFIX, PRI_SIZE_PREFIX): typo.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32}/Makefile.sub: (SIZEOF_SIZE_T, SIZEOF_PTRDIFF_T): added.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 23:54:55 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LIBRUBY_DLDFLAGS): import library which created</div><div class='add'>+	  with DLL is broken. save import library which created by lib.exe and</div><div class='add'>+	  install it.</div><div class='add'>+	  fixed the problem mentioned at the postscript of [ruby-dev:35448]</div><div class='add'>+</div><div class='add'>+Sat Jul 12 23:24:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: use PRIuSIZE.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 22:41:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI_PTRDIFF_PREFIX, PRI_SIZE_PREFIX): fixed typo.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 22:30:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (HAVE_RUBY_RUBY_H): defines macros so that</div><div class='add'>+	  extconf.rb do not need to check if headers exist under separated</div><div class='add'>+	  directory.  [ruby-dev:35437]</div><div class='add'>+</div><div class='add'>+	* include/{ruby,rubyio,rubysig}.h, include/ruby/intern.h: use</div><div class='add'>+	  "ruby/..." instead of &lt;ruby/...&gt;.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 22:17:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (sizeof ptrdiff_t): check for size of ptrdiff_t.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI?PTRDIFF, PRI?SIZE): printf conversion</div><div class='add'>+	  specifiers for ptrdiff_t and size_t/ssize_t.</div><div class='add'>+</div><div class='add'>+	* insns.def (leave), marshal.c (long_toobig), transcode.c</div><div class='add'>+	  (str_transcode), vm_dump.c (control_frame_dump, stack_dump_each),</div><div class='add'>+	  (debug_print_register, debug_print_pre): t and z length modifiers</div><div class='add'>+	  are C99.</div><div class='add'>+</div><div class='add'>+Sat Jul 12 16:02:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): requires</div><div class='add'>+	  webrick/cookie.  [ ruby-Bugs-21139 ]</div><div class='add'>+</div><div class='add'>+Sat Jul 12 09:25:07 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: add test</div><div class='add'>+	  for WIN32OLE_EVENT#on_event_with_outargs</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb(teardown): calling</div><div class='add'>+	  WIN32OLE_EVENT.message_loop</div><div class='add'>+</div><div class='add'>+Sat Jul 12 01:54:13 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): shouldn't pass non-socket handle to</div><div class='add'>+	  original select().</div><div class='add'>+</div><div class='add'>+Fri Jul 11 23:05:40 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb: add a test for Zlib::Deflate#params.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 22:58:28 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_params): flush before deflateParams.</div><div class='add'>+	  [ruby-core:17675]</div><div class='add'>+</div><div class='add'>+Fri Jul 11 22:09:01 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.rb, win32/Makefile.sub (PLATFORM): use $(PLATFORM)</div><div class='add'>+	  instead of $(OS) because ENV["OS"] is used in test-all (drb).</div><div class='add'>+</div><div class='add'>+Fri Jul 11 20:51:36 2008  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): check if the file</div><div class='add'>+	  descriptor is closed.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_fd_rw): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 16:16:43 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_accept, rb_w32_socket, rb_w32_socketpair):</div><div class='add'>+	  prohibit inheritance of sockets, too. [experimental]</div><div class='add'>+</div><div class='add'>+Fri Jul 11 14:39:49 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): the measures for Vista is no longer</div><div class='add'>+	  unnecessary.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 06:16:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (process.o): depends on util.h.</div><div class='add'>+</div><div class='add'>+Fri Jul 11 05:07:46 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (pipe): prohibit inheritance.</div><div class='add'>+	  fixed: [ruby-dev:35421]</div><div class='add'>+</div><div class='add'>+Fri Jul 11 00:56:46 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): fix GC problem.</div><div class='add'>+	  [ruby-core:17669]</div><div class='add'>+</div><div class='add'>+Thu Jul 10 22:06:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (PStore#transaction): return the result from the</div><div class='add'>+	  block.  [ruby-core:17718]</div><div class='add'>+</div><div class='add'>+Thu Jul 10 21:15:49 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_typelib.rb: add some illegal argument</div><div class='add'>+	  test.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_param.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 19:38:35 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): r17993 revert.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 18:29:41 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): finish writing script</div><div class='add'>+	  before spawn("ruby") to avoid blocking in win32.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 17:20:50 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (insert): follow recent changes of globbing.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 14:09:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c (rb_coverage_start): return nil.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 12:41:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_for): fixed variable name.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 12:09:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_t), vm.c (rb_thread_mark), process.c</div><div class='add'>+	  (rb_last_status_get, rb_last_status_set, rb_last_status_clear):</div><div class='add'>+	  moved last_status from rb_vm_t.  [ruby-dev:35414]</div><div class='add'>+</div><div class='add'>+	* vm.c (th_init2): initialize last_status with nil.</div><div class='add'>+</div><div class='add'>+Thu Jul 10 12:09:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_for): wait until timed out only when</div><div class='add'>+	  sleeping with timeout.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 22:41:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (sleep_timeval): wait until timed out.  [ruby-core:17270]</div><div class='add'>+</div><div class='add'>+Wed Jul  9 20:58:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): don't raise even if length is negative.</div><div class='add'>+	  [ruby-core:17483], [ruby-core:17661]</div><div class='add'>+</div><div class='add'>+Wed Jul  9 20:18:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_va_args_macro): check for __VA_ARGS__.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_debug): show source name and line if possible.</div><div class='add'>+</div><div class='add'>+	* thread_{pthread,win32}.c (rb_thread_create_timer_thread): needs more</div><div class='add'>+	  stack for debug.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 11:13:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/profiler.rb (Profiler__#print_profile): sort in the descending</div><div class='add'>+	  order of cumulative time.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 11:11:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (struct glob_args, rb_glob_caller, rb_glob2, push_pattern),</div><div class='add'>+	  (glob_brace): make consistent prototypes.</div><div class='add'>+</div><div class='add'>+	* dir.c (push_glob): set enc in the caller of rb_glob_caller as well</div><div class='add'>+	  as rb_glob2.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 09:12:11 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (options): use input_endian.</div><div class='add'>+</div><div class='add'>+Wed Jul  9 01:38:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): alphabets or numerics mutually enclosing</div><div class='add'>+	  non-alphanumeric characters can carry up.  e.g., "1.999".succ should</div><div class='add'>+	  be "2.000".</div><div class='add'>+</div><div class='add'>+Wed Jul  9 00:12:31 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_set_coverages, rb_reset_coverages): enable and disable</div><div class='add'>+	  coverage measurement.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_get_coverages): rename and move from vm.c.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_get_coverages): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (clear_coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c: use above functions, add new method</div><div class='add'>+	  Coverage.start and fix rdoc .</div><div class='add'>+</div><div class='add'>+Tue Jul  8 23:02:35 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (find_default_source): bug fix when</div><div class='add'>+	  OLE object does not have default source interface.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 22:56:23 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_enable_coverages): hide coverage array by setting 0 to</div><div class='add'>+	  klass during measurement.</div><div class='add'>+</div><div class='add'>+	* parse.y (coverage, yycompile0): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): use rb_hash_lookup instead of</div><div class='add'>+	  rb_hash_aref.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_coverage_result): restore klass of coverage array</div><div class='add'>+	  and return it.</div><div class='add'>+</div><div class='add'>+	* thread.c (update_coverage): check whether its klass is 0.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 22:28:25 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb, lib/profile.rb: fix to use RubyVM.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 21:45:22 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_mark): mark the last element of special_exceptions.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 19:55:40 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (find_default_source): try to</div><div class='add'>+	  find COCLASS when WIN32OLE object is not COCLASS.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto</div><div class='add'>+</div><div class='add'>+Tue Jul  8 13:38:22 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.h: fix to skip inserting a trace insn.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 11:41:17 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: shouldn't use ruby object in globbing, because glob service</div><div class='add'>+	  routines are called before initializing ruby on some platforms (ex.</div><div class='add'>+	  windows).</div><div class='add'>+</div><div class='add'>+Tue Jul  8 10:08:40 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (Next): use rb_enc_mbclen. [ruby-dev:35390]</div><div class='add'>+</div><div class='add'>+Tue Jul  8 07:59:40 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (Next): use rb_enc_precise_mbclen.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 02:27:23 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: preserve encoding of strings in glob and fnmatch.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: related changes.</div><div class='add'>+</div><div class='add'>+Tue Jul  8 00:22:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): limit carrying in an alphanumeric region if</div><div class='add'>+	  exists.  [ruby-dev:35094]</div><div class='add'>+</div><div class='add'>+Mon Jul  7 20:39:28 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(Init_win32ole): add</div><div class='add'>+	  WIN32OLE_TYPE#source_ole_types, WIN32OLE_TYPE#default_ole_types,</div><div class='add'>+	  WIN32OLE_TYPE#default_event_sources.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul  7 19:45:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb (test_chroot_nodir): add Errno::EPERM.</div><div class='add'>+</div><div class='add'>+Mon Jul  7 17:12:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (IPAddr#initialize): get rid of ArgumentError in</div><div class='add'>+	  IPAddr#to_range.  a patch from okkez &lt;okkez000 AT gmail.com&gt; in</div><div class='add'>+	  [ruby-dev:35091].</div><div class='add'>+</div><div class='add'>+Mon Jul  7 01:24:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): fix for file name with spaces.</div><div class='add'>+	  [ruby-talk:307404]</div><div class='add'>+</div><div class='add'>+Mon Jul  7 00:59:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (ruby_init_stack): prior STACK_END_ADDRESS if</div><div class='add'>+	  found.  [ruby-core:17624]</div><div class='add'>+</div><div class='add'>+Sun Jul  6 23:48:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_send, s_recvfrom, ruby_connect, s_accept),</div><div class='add'>+	  (udp_send, unix_send_io, unix_recv_io): blocking region support.</div><div class='add'>+</div><div class='add'>+Sun Jul  6 18:34:35 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb (test_initialize): add</div><div class='add'>+	  more assertions.</div><div class='add'>+</div><div class='add'>+Sun Jul  6 10:12:21 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb</div><div class='add'>+	  (Test::Unit::Collector::ObjectSpace::NAME): fix a typo.</div><div class='add'>+</div><div class='add'>+Sun Jul  6 00:56:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (host_str): fix type mismatch in rb_raise</div><div class='add'>+	  format and argument.</div><div class='add'>+	  (port_str): ditto.</div><div class='add'>+	  (unix_recv_io): ditto.</div><div class='add'>+	  (sock_s_unpack_sockaddr_un): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 23:42:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (NUM2INT): cast to int.</div><div class='add'>+	  (FIX2INT): ditto.</div><div class='add'>+	  (NUM2UINT): cast to unsigned int.</div><div class='add'>+	  (FIX2UINT): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 23:10:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_pipe): new function for handling EMFILE and ENFILE</div><div class='add'>+	  error of pipe().</div><div class='add'>+	  (UPDATE_MAXFD_PIPE): removed.</div><div class='add'>+	  (pipe_open): use rb_pipe.</div><div class='add'>+	  (rb_io_s_pipe): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (pipe_nocrash): use rb_pipe.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_pipe): declared.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 22:22:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_initialize): NUM2INT() returns int.</div><div class='add'>+</div><div class='add'>+	* thread.c (timer_thread_function), thread_pthread.c (thread_timer),</div><div class='add'>+	  thread_win32.c (timer_thread_func), thread_{pthread,win32}.c</div><div class='add'>+	  (rb_thread_create_timer_thread): passing VM.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 20:53:18 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_word.rb: check word installed.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 16:12:54 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: revert. before lazy sweep.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 09:55:44 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE#ole_respond_to?</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 08:48:05 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (unescape_nonascii): add has_property argument not to</div><div class='add'>+	  raise error by /\p{Hiragana}\u{3042}/ in EUC-JP script.</div><div class='add'>+	  (rb_reg_preprocess): use has_property argument to make regexp</div><div class='add'>+	  encoding fixed.</div><div class='add'>+</div><div class='add'>+Sat Jul  5 08:29:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (unescape_nonascii): make regexp fixed_encoding if \p is used.</div><div class='add'>+	  fixed [ruby-core:17279].</div><div class='add'>+</div><div class='add'>+Fri Jul  4 23:12:53 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (d2time): fix the bug of VT_DATE</div><div class='add'>+	  to String conversion when negative value.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  4 22:15:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: collect descendants of</div><div class='add'>+	  Test::Unit::TestCase using inherited.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb: don't use ObjectSpace.each_object.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	[ruby-core:17126]</div><div class='add'>+</div><div class='add'>+Fri Jul  4 20:43:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncoding): removed auxiliary_data.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENC_DUMMY_P): moved dummy encoding flag to</div><div class='add'>+	  rb_encoding from Encoding instance.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_encoding_list): list of Encoding instances.</div><div class='add'>+</div><div class='add'>+	* encoding.c (struct rb_encoding_entry): moved base encoding from</div><div class='add'>+	  instance variable.</div><div class='add'>+</div><div class='add'>+Fri Jul  4 17:51:07 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint, rb_num2uint, rb_fix2uint): proper check.</div><div class='add'>+</div><div class='add'>+Fri Jul  4 14:17:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#sendport): use divmod.  [ruby-core:17557]</div><div class='add'>+</div><div class='add'>+Fri Jul  4 11:08:37 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect_force): sweep is completely ended.</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of): invoke garbage_collect_force() when freelist none.</div><div class='add'>+</div><div class='add'>+Fri Jul  4 05:01:26 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2uint, rb_fix2uint): typo.</div><div class='add'>+</div><div class='add'>+Fri Jul  4 02:21:06 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint, rb_num2uint, rb_fix2uint): also needs checking</div><div class='add'>+	  negative value. see [ruby-dev:33683]</div><div class='add'>+</div><div class='add'>+Thu Jul  3 23:26:36 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: remove prototypes about coverage.</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): add prototype.</div><div class='add'>+</div><div class='add'>+	* parse.y (coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (clear_coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (update_coverage): use rb_sourceline.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_get_coverages): rename and move to vm.c.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_get_coverages): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c: add rdoc.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 21:51:21 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/coverage/coverage.c, ext/coverage/extconf.rb: eliminate</div><div class='add'>+	  COVERAGE__ and introduce coverage.so instead.  How to measure</div><div class='add'>+	  coverage: (1) require "coverage.so", (2) require or load Ruby source</div><div class='add'>+	  file, and (3) Coverage.result will return the same hash as COVERAGE__.</div><div class='add'>+	  [ruby-dev:35324]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_enable_coverages): start coverage measurement by using</div><div class='add'>+	  rb_add_event_hook.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_get_coverages): returns current results of coverage</div><div class='add'>+	  measurement.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: add prototype for above two functions.</div><div class='add'>+</div><div class='add'>+	* vm_core.h, vm.c: add field of coverages to rb_vm_t.</div><div class='add'>+</div><div class='add'>+	* insns.def (trace): remove special handling for COVERAGE__.</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): switch COVERAGE__ to</div><div class='add'>+	  rb_get_coverages().</div><div class='add'>+</div><div class='add'>+	* parse.y (coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (clear_coverage): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/coverage.rb: use coverage.so instead of COVERAGE__.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 21:20:45 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_initialize): NUM2INT returns long.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 21:06:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): typo fixed in r17833.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 19:44:44 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (Init_win32ole): remove duplicate line.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 16:08:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (erfc): erfc of glibc comes with Debian GNU/Linux Etch</div><div class='add'>+	  on IA64 is broken.  erfc(10000.0) aborts.</div><div class='add'>+	  use missing/erf.c instead.</div><div class='add'>+	  http://sources.redhat.com/ml/libc-hacker/2005-08/msg00008.html</div><div class='add'>+</div><div class='add'>+Thu Jul  3 12:49:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP::start): use 'localhost' instead of</div><div class='add'>+	  'localhost.localdomain'.  [ruby-dev:35333]</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP::SMTP.start): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 07:06:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (SET_LC_MESSAGES): LC_MESSAGES must be C.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 07:02:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval), gc.c (Init_GC), proc.c (Init_Proc): freeze</div><div class='add'>+	  messages of preallocated special exceptions also.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 04:39:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_during_gc): VALUE cache is irrelevant.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 01:44:01 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (GET_ALIGNMENT_PAD_SIZE, ALIGNMENT_RIGHT): cast pointer to</div><div class='add'>+	  uintptr_t instead of unsigned int.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 01:23:13 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c: include ieeefp.h to refer to isinf.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/generator/generator.c: ditto.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 01:01:57 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/tgamma.c (tgamma): remove unused variable.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 00:18:00 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: avoid creating Ruby object during</div><div class='add'>+	  GC. thanks to arton &lt;artonx AT yahoo.co.jp&gt;. [ruby-dev:35313]</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  3 00:09:31 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: add rb_during_gc(). based on a patch from arton &lt;artonx AT</div><div class='add'>+	  yahoo.co.jp&gt; at [ruby-dev:35313].</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 09:49:10 2008  Narihiro Nakamura  &lt;authorNari@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_lazy_sweep): use lazy sweep algorithm for response</div><div class='add'>+	  performance gain.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect_force): mark and lazysweep invoke, after</div><div class='add'>+	  erasing all mark.</div><div class='add'>+</div><div class='add'>+	* gc.c (GC_NOT_LAZY_SWEEP): not lazy sweep flag. for debug.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 03:42:44 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: fix expected traces for</div><div class='add'>+	  RubyVM::FrozenCore's event and r17744.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 03:10:41 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.h, insns.def: reduce insn operand of "trace".</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: add RUBY_EVENT_COVERAGE event.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 02:02:34 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c, vm.c: fix to refer to next ruby level cfp to make binding.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 01:58:19 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (trace): C99ism.</div><div class='add'>+</div><div class='add'>+Wed Jul  2 01:53:40 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Add coverage measurement constant COVERAGE__.  This constant is not</div><div class='add'>+	  for casual use.  Usage: (1) assign {} to COVERAGE__, (2) require or</div><div class='add'>+	  load Ruby source file, and (3) COVERAGE__["sourcefilepath"] will</div><div class='add'>+	  return an array whose elements represent number of executions per</div><div class='add'>+	  line of source code.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: add field of coverage array to iseq.</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def (trace): update coverage array.</div><div class='add'>+</div><div class='add'>+	* parse.y (coverage): create and initialize coverage array.</div><div class='add'>+</div><div class='add'>+	* compile.h (ADD_TRACE): add trace instruction to update coverage</div><div class='add'>+	  array.</div><div class='add'>+</div><div class='add'>+	* thread.c (clear_coverage): delete coverage array when forking.</div><div class='add'>+	  Otherwise, double count of coverage may occur.</div><div class='add'>+</div><div class='add'>+	* lib/coverage.rb: sample coverage measurement tool.</div><div class='add'>+</div><div class='add'>+	* error.c: distinguish explicitly between parse_in_eval and</div><div class='add'>+	  mild_compile_error.</div><div class='add'>+</div><div class='add'>+	* load.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_eval.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 21:32:43 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb: prevent destructive</div><div class='add'>+	  modification to $0.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/gemutilities.rb (build_rake_in): move from</div><div class='add'>+	  test_gem_ext_rake_builder.rb.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_ext_rake_builder.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_installer.rb: override Gem.ruby and</div><div class='add'>+	  ENV["rake"].</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_uninstaller.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 21:13:17 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, vm.c, insns.def: call FrozenCore.set_postexe method</div><div class='add'>+	  instead to use "postexe" insn.</div><div class='add'>+</div><div class='add'>+	* id.c, id.h: add a prepared id for above.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 21:09:58 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_tmpsrc): we need to include COMMON_HEADERS,</div><div class='add'>+	  namely inclusion of ruby.h, because _GNU_SOURCE is now defined</div><div class='add'>+	  there (if any) and socket.so requires it on Linux systems.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 20:55:07 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_interrupt): trick to suppress GCC warning.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 20:44:36 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb: RubyVM is not module.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 19:31:24 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_inspect): constified.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path2class): field precision should have type int.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 19:01:00 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (code_is_ctype): HALF WIDTH KATAKANA is</div><div class='add'>+	  a character.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 17:56:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD__uqtoa): constified.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 17:50:44 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.h: always add ';' at the end of line.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 17:44:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (COMPILE_OPTION_FALSE), time.c (timegm_noleapsecond),</div><div class='add'>+	  thread.c (eKillSignal, eTerminateSignal),</div><div class='add'>+	  missing/vsnprintf.c (BSD_vfprintf): constified.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 17:37:43 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/ascii.c: ISO C does not allow extra ';' outside of a</div><div class='add'>+	  function</div><div class='add'>+</div><div class='add'>+	* enc/us_ascii.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/big5.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_kr.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/euc_tw.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gb2312.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gbk.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_1.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_2.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_3.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_4.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_5.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_6.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_7.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_8.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_9.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_10.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_11.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_13.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_14.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_15.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_16.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/koi8_r.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16be.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32be.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf_32le.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/windows_1251.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (run_exec_rlimit): ISO C90 forbids mixed declarations</div><div class='add'>+	  and code</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (enum ruby_special_consts): ISO C forbids</div><div class='add'>+	  comma at end of enumerator list</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (enum ruby_value_type): ditto.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (enum): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (enum rb_thread_status): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (enum lex_state_e): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (enum string_type): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (enum): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (enum dump_flag_bits): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (enum disable_flag_bits): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (enum): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 17:21:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (stack_double): use MatchStackLimitSize atomically.</div><div class='add'>+</div><div class='add'>+	* regparse.c (onig_free_shared_cclass_table): OnigTypeCClassTable</div><div class='add'>+	  needs atomicity</div><div class='add'>+</div><div class='add'>+	* regsyntax.c: constified all predefined OnigSyntaxTypes.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 16:57:44 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (struct st_table): type of bit-field</div><div class='add'>+	  'num_entries' is a GCC extension</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_intern): prefix __extension__ for</div><div class='add'>+	  braced-groups within expressions.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_usascii_str_new2): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_tainted_str_new2): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_new2): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 15:01:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/ext/builder.rb (Gem::Ext::Builder.make),</div><div class='add'>+	  (Gem::Ext::Builder.run): EXIT_SUCCESS may be 0 or may not.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem_ext_rake_builder.rb (build_rake_in): override</div><div class='add'>+	  Gem.ruby and ENV["rake"].</div><div class='add'>+</div><div class='add'>+	* runruby.rb: bin/rake does not exist in archdir where architecture</div><div class='add'>+	  depend script (i.e. rbconfig.rb) exists.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 13:19:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): check if beg is too big.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 12:01:16 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def, vm.c, vm_core.h: remove some insns</div><div class='add'>+	  (undef, alias, definemethod).</div><div class='add'>+	  Call RubyVM::FrozenCore's singleton method instead.</div><div class='add'>+	  Add "putiseq" and "putspecialobject" instructions.</div><div class='add'>+</div><div class='add'>+	* id.c, id.h: add ids for above.</div><div class='add'>+</div><div class='add'>+	* tool/parse.rb: "VM" no longer exists.  Use RubyVM instead.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 03:28:16 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_ext_configure_builder.rb:  Apply locale-free</div><div class='add'>+	  patch by Yusuke ENDOH.  [ruby-core:17444].</div><div class='add'>+</div><div class='add'>+	* runruby.rb: Set ENV['rake'].  Patch by Yusuke ENDOH</div><div class='add'>+	  [ruby-core:17442].</div><div class='add'>+</div><div class='add'>+Tue Jul  1 01:07:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension.read_multipart): blanks inside</div><div class='add'>+	  double quotes are allowed.  [ruby-list:45140]</div><div class='add'>+</div><div class='add'>+Tue Jul  1 00:59:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_coerce): call rb_Float(x) first.  don't depend on</div><div class='add'>+	  evaluation order of function arguments.</div><div class='add'>+</div><div class='add'>+Tue Jul  1 00:49:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_newobj): abort GC phase before rb_bug.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 23:15:07 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (start_server): shutdown TCPServer before</div><div class='add'>+	  close.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 23:01:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (RUBY_H_INCLUDES): common headers which are included with</div><div class='add'>+	  ruby.h together.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 22:57:50 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb (test_raise): reveal an exception</div><div class='add'>+	  hided by rescue modifier.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 22:49:32 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_aset): access with too big index</div><div class='add'>+	  raises not ArgumentError but IndexError now.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 22:30:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (recursive_collect): r15662 reverted.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 22:27:39 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getline): fix for nil and "" as</div><div class='add'>+	  separator.  [ruby-dev:34591]</div><div class='add'>+</div><div class='add'>+Mon Jun 30 22:21:30 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_line): pass args to each_line. [ruby-dev:34958]</div><div class='add'>+</div><div class='add'>+Mon Jun 30 22:12:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (chain_finalized_object): should not delete from finalizer</div><div class='add'>+	  table until run.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): deferred_final_list may be</div><div class='add'>+	  empty first.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 18:57:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_finalize_deferred): allow object allocation in finalizers.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 14:41:36 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_newobj): prohibit call of rb_newobj() during gc when</div><div class='add'>+	  USE_VALUE_CACHE is not defined (normal case).</div><div class='add'>+</div><div class='add'>+Mon Jun 30 10:28:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c (syslog_write): syslog operations should be</div><div class='add'>+	  protected from $SAFE level 4.  a patch from Keita Yamaguchi</div><div class='add'>+	  &lt;keita.yamaguchi at gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c (mSyslog_close): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c (mSyslog_set_mask): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 03:01:35 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb (_test_request__file): specify encoding</div><div class='add'>+	  explicitly.</div><div class='add'>+</div><div class='add'>+	* test/net/http/utils.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 02:31:07 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_utf8_encindex): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_utf8_encindex): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 02:14:34 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_core.h,vm_core.h, vm_dump.c, iseq.c: rename class name</div><div class='add'>+	  VM -&gt; RubyVM, and rename rb_cVM -&gt; rb_cRubyVM.</div><div class='add'>+	  "VM" is too short name for class.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb, test/ruby/test_settracefunc.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: rb_cRubyVM, rb_cEnv, rb_cISeq should not be</div><div class='add'>+	  exposed.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 02:10:32 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): fix to avoid a warning.</div><div class='add'>+</div><div class='add'>+Mon Jun 30 01:52:05 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_parse.rb: remove tests for open_args.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 23:01:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_format_m): make tmp volatile to avoid possible GC</div><div class='add'>+	  problem.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 18:01:30 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb, lib/rss/utils.rb: merge documents from ruby_1_8.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 17:44:23 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb (RSS::ListenerMixin#known_class): define to</div><div class='add'>+	  work with ruby 1.8.x too.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 17:41:42 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb (RSS::Maker::RSSBase#to_feed): raise</div><div class='add'>+	  exception not return nil if RSS::Maker.make can't get required</div><div class='add'>+	  information.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb: follow the above change.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 17:37:23 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb (RSS::Maker::RSSBase#make): require block.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_{0.9,1.0,2.0}.rb: follow the above change.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 17:33:34 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb, lib/rss/maker/itunes.rb: don't use</div><div class='add'>+	  instance_eval to initialize variables. (speed up)</div><div class='add'>+</div><div class='add'>+Sun Jun 29 17:31:15 2008  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.4 -&gt; 0.2.5.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 11:36:20 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.rb: fix resource leak.</div><div class='add'>+</div><div class='add'>+Sun Jun 29 09:43:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (@@systmpdir): prior LOCAL_APPDATA if possible, and</div><div class='add'>+	  should be clean.  based on a patch from arton &lt;artonx AT</div><div class='add'>+	  yahoo.co.jp&gt; at [ruby-dev:35269]</div><div class='add'>+</div><div class='add'>+Sun Jun 29 07:53:08 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (date2time_str): fix the overflow in</div><div class='add'>+	  some situation. [ruby-bugs-20793]</div><div class='add'>+</div><div class='add'>+Sat Jun 28 21:25:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (struct RRegexp): new field usecnt.  replace</div><div class='add'>+	  str and len by src.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): mark src field of regexp.</div><div class='add'>+	  (obj_free): don't free str field.</div><div class='add'>+</div><div class='add'>+	* re.c (REG_BUSY): removed.</div><div class='add'>+	  (rb_reg_initialize): prohibit re-initialize regexp.</div><div class='add'>+	  (rb_reg_search): use usecnt to prevent freeing regexp currently</div><div class='add'>+	  using.  this prevents SEGV by:</div><div class='add'>+	    r = /\A((a.)*(a.)*)*b/</div><div class='add'>+	    r =~ "ab" + "\xc2\xa1".force_encoding("euc-jp")</div><div class='add'>+	    t = Thread.new { r =~ "ab"*8 + "\xc2\xa1".force_encoding("utf-8")}</div><div class='add'>+	    sleep 0.2</div><div class='add'>+	    r =~ "ab"*8 + "\xc2\xa1".force_encoding("euc-jp")</div><div class='add'>+</div><div class='add'>+Sat Jun 28 21:15:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_new2, rb_tainted_str_new2,</div><div class='add'>+	  rb_usascii_str_new2): use inline versions only for constant</div><div class='add'>+	  literals.</div><div class='add'>+</div><div class='add'>+Sat Jun 28 13:12:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb (test_self_path_APPLE_GEM_HOME): don't use</div><div class='add'>+	  fixed /tmp/apple_gem_home directory.</div><div class='add'>+</div><div class='add'>+Sat Jun 28 08:40:18 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: check String encoding when</div><div class='add'>+	  converting String to VT_BSTR in OLE.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 28 01:08:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timespec): fix rounding negative float.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 21:38:57 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c: __size__ removed.  use the length of __members__ instead.</div><div class='add'>+	  (num_members): new function.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 21:19:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/inlinetest.rb (InlineTest.in_progname): workaround for frozen</div><div class='add'>+	  $0.  [ruby-dev:35261]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb (TestRunner#finished): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 17:45:17 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: adjust line number for magic comment.</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb.rb: add tests for def_method.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 14:29:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): empty not should call '!' on nil.</div><div class='add'>+	  cf [ruby-dev:35227]</div><div class='add'>+</div><div class='add'>+Fri Jun 27 14:25:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_eval_body): if thrown exception is frozen, reraise it to</div><div class='add'>+	  create a new instance.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 13:29:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_new2, rb_tainted_str_new2,</div><div class='add'>+	  rb_usascii_str_new2): use with-length versions with strlen to</div><div class='add'>+	  optimize strlen, if optimized.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 12:28:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (mkmf): new command to create makefile.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 11:06:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (wait_writable): added help message.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 06:52:54 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: need a ",".</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): check CANNOT_FORK_WITH_PTHREAD macro.</div><div class='add'>+</div><div class='add'>+Fri Jun 27 06:50:56 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (vm_call_super): fix to call method_missing.</div><div class='add'>+	  [ruby-core:15719], [ruby-core:17340]</div><div class='add'>+</div><div class='add'>+Fri Jun 27 00:00:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0, ruby_prog_init): freeze $0.  a patch from Keita</div><div class='add'>+	  Yamaguchi &lt;keita.yamaguchi at gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Thu Jun 26 23:58:29 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m, rb_str_rindex_m, rb_str_include): fix</div><div class='add'>+	  rdoc.</div><div class='add'>+</div><div class='add'>+Thu Jun 26 17:43:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_trace_var): should not be allowed at safe level 4.</div><div class='add'>+	  a patch from Keita Yamaguchi &lt;keita.yamaguchi at gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Thu Jun 26 11:04:30 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems: Update to RubyGems 1.2.0 r1824.  Incorporates patch by</div><div class='add'>+	  Yusuke ENDOH [ruby-core:17353].</div><div class='add'>+</div><div class='add'>+Thu Jun 26 00:48:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): not operand might be empty.  [ruby-dev:35227]</div><div class='add'>+</div><div class='add'>+Wed Jun 25 21:54:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): make functional-style not operator to act</div><div class='add'>+	  like function.  see &lt;http://d.hatena.ne.jp/ku-ma-me/20080624/p1&gt;.</div><div class='add'>+</div><div class='add'>+Wed Jun 25 15:28:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): not depend on unspecified behavior at integer</div><div class='add'>+	  overflow.  reported by Vincenzo Iozzo &lt;snagg AT openssl.it&gt;.</div><div class='add'>+</div><div class='add'>+Wed Jun 25 13:42:44 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler:Buffer#new): push magic comment first.</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler#compile): fix for broken input.</div><div class='add'>+</div><div class='add'>+Wed Jun 25 12:10:01 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler#compile): magic comment needs LF.</div><div class='add'>+</div><div class='add'>+Wed Jun 25 09:31:11 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler#compile): output magic comment.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 22:14:36 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm_eval.c (eval_string_with_cref): preserve parse_in_eval even if</div><div class='add'>+	  exception raised.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 22:09:18 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(ole_invoke): fix memory leak.</div><div class='add'>+	  [ruby-bugs-20792]</div><div class='add'>+</div><div class='add'>+Tue Jun 24 17:20:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_fork_with_pthread): check after check for</div><div class='add'>+	  pthread library, and define the macro when checked only.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 17:04:39 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/extconf.rb: check sys/socket.h for cygwin.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 16:51:51 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): remove cygwin handling because it seems to be for</div><div class='add'>+	  C's stdio.</div><div class='add'>+	  fixed [ruby-dev:35183]</div><div class='add'>+</div><div class='add'>+Tue Jun 24 11:12:33 2008  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_getppid): now support</div><div class='add'>+	  getppid() on win32 (but only Win2k or later).</div><div class='add'>+</div><div class='add'>+	* process.c (get_ppid): remove win32 special logic.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 09:40:47 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_sock): socket is binmode on platforms</div><div class='add'>+	  which support binmode.</div><div class='add'>+</div><div class='add'>+Tue Jun 24 00:21:53 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_from_ary): initialize arg_opts, a patch from</div><div class='add'>+	  Adam Strzelecki &lt;ono at java.pl&gt; in [ruby-core:17220].</div><div class='add'>+</div><div class='add'>+Tue Jun 24 00:10:53 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_from_ary): fix expression to obtain</div><div class='add'>+	  iseq-&gt;local_size and iseq-&gt;local_table_size.  [ruby-dev:35205]</div><div class='add'>+</div><div class='add'>+Mon Jun 23 11:31:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Rational::power2): removed incomplete method.</div><div class='add'>+	  see [ruby-dev:35195].   [ruby-core:17293]</div><div class='add'>+</div><div class='add'>+Sun Jun 22 14:16:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb (have_readline_func): readline on Mac OS X</div><div class='add'>+	  needs headers to detect some functions.</div><div class='add'>+</div><div class='add'>+Sun Jun 22 09:51:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_superclass): rdoc improvement, a patch from</div><div class='add'>+	  Gaston Ramos &lt;ramos.gaston AT gmail.com&gt; in [ruby-core:17371].</div><div class='add'>+</div><div class='add'>+Sun Jun 22 09:22:32 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: translated README.EXT.ja</div><div class='add'>+</div><div class='add'>+Sun Jun 22 00:42:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_osid, rb_w32_osver, CreateChild): XP is</div><div class='add'>+	  is different from Vista about pipe handle inheritance.</div><div class='add'>+	  fixed [ruby-core:17367], reported by Lars Christensen &lt;larsch at</div><div class='add'>+	  belunktum.dk&gt;</div><div class='add'>+</div><div class='add'>+Sun Jun 22 00:38:45 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: add note about mark and free.</div><div class='add'>+</div><div class='add'>+Sun Jun 22 00:01:36 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode_p, argf_binmode_p, Init_IO): new method</div><div class='add'>+	  IO#binmode? and ARGF.binmode?  [ruby-dev:35148]</div><div class='add'>+</div><div class='add'>+Sat Jun 21 17:33:50 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_spawn): no longer support P_WAIT.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 16:46:09 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_sleep): must block reentrance when accessing</div><div class='add'>+	  th-&gt;unblock.</div><div class='add'>+	  fixed [ruby-core:17341], reported by Bill Kelly &lt;billk at cts.com&gt;</div><div class='add'>+</div><div class='add'>+Sat Jun 21 16:29:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args2, open_args): removed.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): unified warnings at space between method</div><div class='add'>+	  name and argument parenthesis.  [ruby-dev:33943]</div><div class='add'>+</div><div class='add'>+Sat Jun 21 16:21:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): get rid of overflow.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 15:57:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc#collect_first_comment): skip</div><div class='add'>+	  magic comment.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 15:54:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check if fork works with pthread.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 15:31:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: ported to ruby.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: fixed digests.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 04:36:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/jacobian.rb (Jacobian::dfdxi):</div><div class='add'>+	  typo fixed (raize -&gt; raise).  [ruby-list:45101]</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enum_each_cons): typo in RDoc fixed.</div><div class='add'>+</div><div class='add'>+Sat Jun 21 00:45:34 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: do not use sha256sum; use BASERUBY instead</div><div class='add'>+</div><div class='add'>+	* common.mk (dist): use tool/make-snapshot instead</div><div class='add'>+</div><div class='add'>+Fri Jun 20 16:34:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): Process::Status#to_int removed.</div><div class='add'>+	  (PST2INT): defined.</div><div class='add'>+	  (pst_to_s): use PST2INT.</div><div class='add'>+	  (pst_inspect): ditto.</div><div class='add'>+	  (pst_equal): ditto.</div><div class='add'>+	  (pst_bitand): ditto.</div><div class='add'>+	  (pst_rshift): ditto.</div><div class='add'>+	  (pst_wifstopped): ditto.</div><div class='add'>+	  (pst_wstopsig): ditto.</div><div class='add'>+	  (pst_wifsignaled): ditto.</div><div class='add'>+	  (pst_wtermsig): ditto.</div><div class='add'>+	  (pst_wifexited): ditto.</div><div class='add'>+	  (pst_wexitstatus): ditto.</div><div class='add'>+	  (pst_success_p): ditto.</div><div class='add'>+	  (pst_wcoredump): ditto.</div><div class='add'>+	  (rb_f_system): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 15:40:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_store, rb_ary_splice): not depend on unspecified</div><div class='add'>+	  behavior at integer overflow.</div><div class='add'>+</div><div class='add'>+	* string.c (str_buf_cat): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 12:39:55 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_detach_process): store detached process ID in the</div><div class='add'>+	  thread local storage.  moved from lib/open3.rb.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 11:57:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): should preserve replacement points</div><div class='add'>+	  since they may be altered in the yielded block.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 11:07:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_memhash): randomize hash to avoid algorithmic</div><div class='add'>+	  complexity attacks.</div><div class='add'>+	  (rb_str_hash): use rb_memhash.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_reset_random_seed): declared.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork): call rb_reset_random_seed.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): call Init_RandomSeed at first.</div><div class='add'>+</div><div class='add'>+	* random.c (seed_initialized): defined.</div><div class='add'>+	  (fill_random_seed): extracted from random_seed.</div><div class='add'>+	  (make_seed_value): extracted from random_seed.</div><div class='add'>+	  (rb_f_rand): initialize random seed at first.</div><div class='add'>+	  (initial_seed): defined.</div><div class='add'>+	  (Init_RandomSeed): defined.</div><div class='add'>+	  (Init_RandomSeed2): defined.</div><div class='add'>+	  (rb_reset_random_seed): defined.</div><div class='add'>+	  (Init_Random): call Init_RandomSeed2.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 21:52:38 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_new, rb_ary_initialize, rb_ary_store,</div><div class='add'>+	  rb_ary_splice, rb_ary_times): integer overflows should be</div><div class='add'>+	  checked. based on patches from Drew Yao &lt;ayao at apple.com&gt;</div><div class='add'>+	  fixed CVE-2008-2726</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): fixed unsafe use of alloca,</div><div class='add'>+	  which led memory corruption. based on a patch from Drew Yao</div><div class='add'>+	  &lt;ayao at apple.com&gt; fixed CVE-2008-2726</div><div class='add'>+</div><div class='add'>+Fri Jun 20 03:26:00 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_fork): NetBSD 4.0 or later can fork.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 03:19:39 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb: r15825 made it unnecessary to</div><div class='add'>+	  change String to Symbol.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 03:14:31 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*, test/rubygems/*:  Update to RubyGems 1.1.1 r1784 (pre</div><div class='add'>+	  1.2).</div><div class='add'>+</div><div class='add'>+Fri Jun 20 03:01:59 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: try to remove false positive of deadlock detection (second</div><div class='add'>+	  trial).</div><div class='add'>+</div><div class='add'>+Fri Jun 20 02:16:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Rational::power2): typo fixed.  [ruby-core:17293]</div><div class='add'>+</div><div class='add'>+Fri Jun 20 02:11:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): should preserve last successful match</div><div class='add'>+	  data.  [ruby-dev:35182]</div><div class='add'>+</div><div class='add'>+Fri Jun 20 01:07:28 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/pending.rb: move a bug (?) to pending.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 00:40:08 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_new): fix to return Proc object if block is already</div><div class='add'>+	  in heap.  [ruby-core:15711]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: add a test.</div><div class='add'>+</div><div class='add'>+Fri Jun 20 00:18:04 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_sleep): fix to decrement sleeper count.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 23:48:45 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb: compare encodings of two strings before</div><div class='add'>+	  comparing themself, which suppress too big error output.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 23:46:35 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/parser.rl, ext/json/ext/parser/parser.c: JSON</div><div class='add'>+	  text SHALL be encoded in Unicode.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 23:17:56 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_win32.c, vm_core.h: try to remove false positive of</div><div class='add'>+	  deadlock detection.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 21:38:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): check if compile before showing message.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 21:35:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: supported multiple snapshots.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 20:37:00 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (Net::POP3#set_all_uids): speed</div><div class='add'>+	  up. a patch from &lt;m-sumi AT techfirm.co.jp&gt; [ruby-list:45047]</div><div class='add'>+</div><div class='add'>+Thu Jun 19 17:44:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (Init_etc): define constant aliases Etc::Passwd</div><div class='add'>+	  and Etc::Group.  [ruby-dev:35150]</div><div class='add'>+</div><div class='add'>+Thu Jun 19 17:37:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_alloc): specify 'inline' modifier.</div><div class='add'>+</div><div class='add'>+	* string.c (str_alloc): remove cSymbol hack that no longer</div><div class='add'>+	  necessary.</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): avoid retrieving encoding info unless</div><div class='add'>+	  necessary.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 17:19:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_scan): String#scan should preserve last</div><div class='add'>+	  successful match data.  [ruby-dev:35106]</div><div class='add'>+</div><div class='add'>+Thu Jun 19 16:49:36 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/acosh.c (atanh): should set ERANGE to errno if parameter</div><div class='add'>+	  is the boundary case. fixed [ruby-dev:35155]</div><div class='add'>+</div><div class='add'>+Thu Jun 19 16:06:01 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/treeview.rb: cannot configure tags.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 11:48:33 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb: fix to skip "with_memo" test.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 11:40:55 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_throw): fix "return" process from "lambda".</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: add a test.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/pending.rb: add a pending bug.</div><div class='add'>+</div><div class='add'>+Thu Jun 19 00:33:40 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb: avoid infinite loop.  [ruby-dev:35158]</div><div class='add'>+</div><div class='add'>+Wed Jun 18 23:07:19 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_newobj): prohibit call of rb_newobj() during gc.</div><div class='add'>+	  a patch from Sylvain Joyeux in [ruby-core:12099].</div><div class='add'>+</div><div class='add'>+Wed Jun 18 21:08:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (verbose_setter, opt_W_getter): fixed prototypes.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 19:20:00 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (opt_W_getter): use ruby_verbose directly instead of parameter</div><div class='add'>+	  because ruby_verbose is not a real variable, so the address of</div><div class='add'>+	  parameter is not collect.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 18:31:03 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (errmap): add some pipe errors.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_write): set errno when CRT's errno is EINVAL</div><div class='add'>+	  for pipe errors.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 18:09:08 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (poll_child_status): set EINVAL to errno when</div><div class='add'>+	  GetExitCodeProcess() fails with ERROR_INVALID_HANDLE.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 15:01:18 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): fs_encoding and fname_encoding is</div><div class='add'>+	  rb_encoding *.</div><div class='add'>+	  fixed [ruby-dev:35151]</div><div class='add'>+</div><div class='add'>+Wed Jun 18 14:30:06 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): not rb_enc_get_index but rb_enc_get.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 13:49:58 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (pipe): now pipe is textmode. although this</div><div class='add'>+	  change is experimental, it will be spec if no compatibility problem</div><div class='add'>+	  is reported.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 12:05:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object, marshal_dump, r_object0, marshal_load): search</div><div class='add'>+	  public methods only.  [ruby-core:17283]</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb (Singleton#_dump): conversion method should be</div><div class='add'>+	  public.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 10:18:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_passwd, etc_group): fixed rdoc.  a patch from</div><div class='add'>+	  okkez &lt;okkez000 AT gmail.com&gt; in [ruby-dev:35141].</div><div class='add'>+</div><div class='add'>+Wed Jun 18 08:58:16 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/*:  Fix errors for 1.9.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb:  Only remove methods from gem_prelude.rb when</div><div class='add'>+	  loading real RubyGems.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 07:03:30 2008  Eric Hodel  &lt;drbrain@egment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/*:  Update to RubyGems r1778 (pre 1.2).</div><div class='add'>+</div><div class='add'>+Wed Jun 18 04:27:58 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/pending.rb: move pending bug.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 04:24:20 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_insnhelper.c: fix escape process with "break" and "return"</div><div class='add'>+	  syntax in "lambda".  [ ruby-Bugs-19304 ], [ruby-core:17164]</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/test_proc.rb: add/move solved test.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 01:51:10 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: cannot access class variable from</div><div class='add'>+	  singleton method.</div><div class='add'>+</div><div class='add'>+Wed Jun 18 00:03:33 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (Init_Dir): dir_foreach() takes variable argument.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 23:04:24 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb:  Fixing Telnet#wairfor() which was broken by</div><div class='add'>+	  changes to the Kernel::Integer() method.  [ruby-core:17272]</div><div class='add'>+</div><div class='add'>+Tue Jun 17 23:02:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (opt_W_getter): made a hooked variable.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 22:04:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c (property_name_to_ctype): core dumped when sizeof(int)</div><div class='add'>+	  differs from sizeof(long).  [ruby-dev:35131]</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c (property_name_to_ctype): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/unicode.c (onigenc_unicode_property_name_to_ctype): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 20:32:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (miniruby$(EXEEXT)): $(PREP) isn't always same as</div><div class='add'>+	  miniruby, and tests, debug, etc have no meaning when</div><div class='add'>+	  cross-compiling.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 18:39:11 2008  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fixed dependencies on miniruby.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 18:11:01 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (pipe): expand pipe buffer size.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 17:07:35 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): no need to inherit handles here because</div><div class='add'>+	  spawn'ed child cannot detect that STDIN is closed.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 06:32:55 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_data): add intenc and extenc.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_alloc): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_initialize): now accept internal_encoding and</div><div class='add'>+	  external_encoding.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_open): changed for dir_initialize.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_open_dir): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_foreach): changed for dir_open_dir.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_entries): changed for dir_open_dir.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_enc_str): defined.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_path): use dir_enc_str.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_read): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_each): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 06:28:57 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_set_encoding): defined.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): convert path on Windows and Mac OS X.</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): use io_set_encoding and now accept</div><div class='add'>+	  internal_encoding and external_encoding.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 06:26:28 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_filesystem_encoding): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_filesystem_encoding): added.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 06:24:28 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: add encoding header.</div><div class='add'>+</div><div class='add'>+Tue Jun 17 01:52:50 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: SEGV when exit.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add a check for safety to Tk.exit.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/irbtkw.rbw: freezes when receives SIGINT.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 21:58:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each, strio_readlines): IO#each and</div><div class='add'>+	  IO#readlines do not affect $_.  [ruby-core:17277]</div><div class='add'>+</div><div class='add'>+Mon Jun 16 18:52:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thwait.rb (ThreadsWait): Exception2MessageMapper no longer has</div><div class='add'>+	  extend_to method.  [ruby-core:17267]</div><div class='add'>+</div><div class='add'>+Mon Jun 16 14:46:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/e2mmap.rb (E2MM.def_e2message): typo.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 09:43:27 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_object, Init_Enumerator):</div><div class='add'>+	  Temporarily back out with_memo, for which we need a better name.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 07:14:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_readline, strio_each)</div><div class='add'>+	  (strio_readlines): set lastline.  [ruby-core:17257]</div><div class='add'>+</div><div class='add'>+Mon Jun 16 01:49:39 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_block_given_p): fix to skip class frame.</div><div class='add'>+	  [ruby-core:14813]</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/test_method.rb: move solved test.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 01:48:08 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (vm_stack_dump_raw): disable verbose debug output.</div><div class='add'>+</div><div class='add'>+Mon Jun 16 01:33:08 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h, thread.c: rename global_interpreter_lock to</div><div class='add'>+	  global_vm_lock.</div><div class='add'>+</div><div class='add'>+Sun Jun 15 18:40:35 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (yaml_org_handler): associate encoding.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_genericresolver_node_import): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 15 18:17:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_t), vm.c (rb_vm_mark): moved preallocated special</div><div class='add'>+	  exceptions.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval), gc.c (Init_GC), proc.c (Init_Proc): freeze</div><div class='add'>+	  preallocated special exceptions.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): duplicate the thrown exception to set backtrace</div><div class='add'>+	  if it was frozen.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_memerror): raise nomem_error without backtrace if failed to</div><div class='add'>+	  make backtrace.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 22:52:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_sysread): should not raise at empty</div><div class='add'>+	  read.  a patch from Arthur Schreiber at [ruby-core:17245].</div><div class='add'>+</div><div class='add'>+Sat Jun 14 16:55:46 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): no need to expand root path which has no</div><div class='add'>+	  short file name.  [ruby-dev:35095]</div><div class='add'>+</div><div class='add'>+Sat Jun 14 11:59:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h (STACK_UPPER): moved from gc.c</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_{pthread,win32}.c (ruby_init_stack,</div><div class='add'>+	  ruby_thread_init_stack): moved stack initialization from gc.c.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 11:57:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h (STACK_UPPER): moved from gc.c</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_{pthread,win32}.c (ruby_init_stack,</div><div class='add'>+	  ruby_thread_init_stack): moved stack initialization from gc.c.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 07:52:53 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_initial_gc_stress): defined.</div><div class='add'>+	  (ruby_initial_gc_stress_ptr): defined.</div><div class='add'>+</div><div class='add'>+	* debug.c (set_debug_option): use ruby_initial_gc_stress_ptr for</div><div class='add'>+	  gc_stress option.</div><div class='add'>+</div><div class='add'>+Sat Jun 14 00:09:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_gc_stress): moved to rb_objspace_t.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_stress_get, gc_stress_set): VM local attribute.</div><div class='add'>+</div><div class='add'>+	* signal.c (sigsegv): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 21:55:48 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_equal_p): Rational(0,x) and 0 are equivalent,</div><div class='add'>+	  anyway.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 21:26:39 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c, nucomp_s_convert): preserve the current</div><div class='add'>+	  backref.</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r, nurat_s_convert): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_match_busy): added a declaration.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 18:08:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.xmlschema): don't accept decimal dot without</div><div class='add'>+	  fractional digits.  fractional digits handling simplified.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 17:20:40 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (string_to_c_internal): save and restore backref.</div><div class='add'>+	  fixed [ruby-dev:34991]</div><div class='add'>+</div><div class='add'>+Fri Jun 13 17:06:20 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r_internal): save and restore backref.</div><div class='add'>+	  fixed [ruby-dev:34990]</div><div class='add'>+</div><div class='add'>+Fri Jun 13 14:41:26 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: update about Fixnum. reported in</div><div class='add'>+	   &lt;http://www.tmtm.org/ja/tdiary/?date=20080611#p01&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: describe about StringValueCStr().</div><div class='add'>+</div><div class='add'>+	* README.EXT: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 14:24:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_memerror): exit with EXIT_FAILURE instead of magic number.</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_stack_check): STACK_LENGTH should be less than</div><div class='add'>+	  STACK_LEVEL_MAX.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 12:55:37 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_i): use NODE_DOT2 instead of NODE_MEMO to avoid</div><div class='add'>+	  extra calls to is_pointer_to_heap() in GC.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 13 00:41:58 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: add a test.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 23:30:11 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_unlock): fix cond_notified consistency.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 22:19:45 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (native_sleep): fixed previous commit.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 21:59:17 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, vm_core.h, vm.c, thread_pthread.c, thread_win32.c: add</div><div class='add'>+	  deadlock detection.  [ruby-dev:35044]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 21:39:55 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: refactoring.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 17:11:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h: undefine USE_CAPTURE_HISTORY which is mentioned as</div><div class='add'>+	  unsupported in the Onigiruma document.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 13:36:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_intern): use rb_intern2 with strlen for</div><div class='add'>+	  constant symbols to optimize strlen.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 08:47:51 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): should use io_read_encoding(), not</div><div class='add'>+	  io_input_encoding().</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_1): reduce calling of io_read_encoding().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_scan): need not to restore $~ value, so avoid</div><div class='add'>+	  pinning match object.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 02:49:40 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_init): rewind when reopened.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 02:43:27 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): ANSI style.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 02:25:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): clear read buffer.</div><div class='add'>+</div><div class='add'>+Thu Jun 12 00:56:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk: check proper conditions.  [ruby-dev:35047]</div><div class='add'>+</div><div class='add'>+Wed Jun 11 23:33:13 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): bypass buffered read if reading buffer is empty.</div><div class='add'>+</div><div class='add'>+	* io.c (remain_size): do not add extra one byte.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 12:15:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_normal_exit): hide stderr output</div><div class='add'>+	  when success.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 09:26:43 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs): need to pass miniruby path for windows.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 05:53:20 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, eval_intern.h (PASS_PASSED_BLOCK):</div><div class='add'>+	  set a VM_FRAME_FLAG_PASSED flag to skip this frame when</div><div class='add'>+	  searching ruby-level-cfp.</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, proc.c: fix to check cfp.  if there is</div><div class='add'>+	  no valid ruby-level-cfp, cause RuntimeError exception.</div><div class='add'>+	  [ruby-dev:34128]</div><div class='add'>+</div><div class='add'>+	* vm_core.h, vm_evalbody.c, vm.c, vm_dump.c, vm_insnhelper.c,</div><div class='add'>+	  insns.def: rename FRAME_MAGIC_* to VM_FRAME_MAGIC_*.</div><div class='add'>+</div><div class='add'>+	* KNOWNBUGS.rb, bootstraptest/test*.rb: move solved bugs.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 05:55:31 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: SEGV when tcltk-stubs is enabled.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: avoid error on a shared object.</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: support --with-tcltkversion</div><div class='add'>+</div><div class='add'>+	* ext/tk/README.tcltklib: add document about --with-tcltkversion</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/multi-tk.rb, ext/tk/lib/remote-tk.rb:</div><div class='add'>+	  not work on $SAFE==4</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: Object#methods returns Symbols on Ruby1.9.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: add TkTimer#at_end(proc) to register the</div><div class='add'>+	  procedure which called at end of the timer.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tk/itemfont.rb, ext/tk/lib/font.rb:</div><div class='add'>+	  support __IGNORE_UNKNOWN_CONFIGURE_OPTION__ about font options.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/*: treat __IGNORE_UNKNOWN_CONFIGURE_OPTION__</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: bug fix.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: typo. call a wrong method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tk/itemconfig.rb,</div><div class='add'>+	  ext/tk/lib/tk/canvas.rb: support alias names of option keys.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/grid.rb: lack of module-method definitions.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/pack.rb, ext/tk/lib/tk/grid.rb: increase supported</div><div class='add'>+	  parameter patterns of configure method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkWindow#grid_anchor, grid_column, grid_row.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/wm.rb: methods of Tk::Wm_for_General module cannot</div><div class='add'>+	  pass the given block to methods of Tk::Wm module.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/wm.rb: Wm#overrideredirect overwrites argument to</div><div class='add'>+	  an invalid value.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix memory (object) leak bug.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: fix memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/aniwave.rb, ext/tk/sample/demos-en/aniwave.rb:</div><div class='add'>+	  bug fix.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt/component.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tile/tentry.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tile/treeview.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/tpaned.rb: improve TPaned#add.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget, ext/tk/sample/demos-en/widget,</div><div class='add'>+	  ext/tk/sample/demos-jp/style.rb, ext/tk/sample/demos-en/style.rb,</div><div class='add'>+	  ext/tk/sample/demos-jp/bind.rb, ext/tk/sample/demos-en/bind.rb:</div><div class='add'>+	  bug fix.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/ttk_wrapper.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/ttk_wrapper.rb: support "if __FILE__ == $0" idiom.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktextio.rb: add binding for 'Ctrl-u' at console mode.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb, ext/tk/lib/tkextlib/tile/style.rb,</div><div class='add'>+	  ext/tk/sample/ttk_wrapper.rb: improve treating and control themes.</div><div class='add'>+	  add Tk::Tile.themes and Tk::Tile.set_theme(theme).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb: lack of autoload definitions.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/tnotebook.rb: cannot use kanji (not UTF-8)</div><div class='add'>+	  characters for headings.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tkDND/shape.rb: wrong package name.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: improve handling callback-subst-keys.</div><div class='add'>+	  Now, support longnam-keys (e.g. '%CTT' on tkdnd-2.0; however, still</div><div class='add'>+	  not support tkdnd-2.0 on tkextlib), and symbols of parameters (e.g.</div><div class='add'>+	  :widget=&gt;'%W', :keycode=&gt;'%k', '%x'=&gt;:x, '%X'=&gt;:root_x, and so on;</div><div class='add'>+	  those are attributes of event object). It means that Ruby/Tk accepts</div><div class='add'>+	  not only "widget.bind(ev, '%W', '%k', ...){|w, k, ...| ... }", but</div><div class='add'>+	  also "widget.bind(ev, :widget, :keycode, ...){|w, k, ...| ... }".</div><div class='add'>+	  It is potentially incompatible, when user passes symbols to the</div><div class='add'>+	  arguments of the callback block (the block receives the symbols as</div><div class='add'>+	  strings). I think that is very rare case (probably, used by Ruby/Tk</div><div class='add'>+	  experts only). When causes such trouble, please give strings instead</div><div class='add'>+	  of such symbol parameters (e.g. call Symbol#to_s method).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb, ext/tk/lib/tk/validation.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/blt/treeview.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/winico/winico.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: strings are available on subst_tables on</div><div class='add'>+	  TkUtil::CallbackSubst class (it is useful on Ruby 1.9).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tkextlib/iwidgets/hierarchy.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/spinner.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/entryfield.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/calendar.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/blt/dragdrop.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tkDND/tkdnd.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/treectrl/tktreectrl.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tktable/tktable.rb: disable code piece became</div><div class='add'>+	  unnecessary by reason of the changes of ext/tk/tkutil/tkutil.c.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/multi-tk.rb: change strategy to define</div><div class='add'>+	  the constant WITH_ENCODING.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix bug on Tk::Encoding.tk_encoding_names.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 03:40:37 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb (Find#find): Return an enumerator if no block is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+Wed Jun 11 01:28:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, proc.c: revert rb_proc_call() and</div><div class='add'>+	  create rb_proc_call_with_block() instead.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, eval_jump.c, thread.c, vm_insnhelper.c:</div><div class='add'>+	  rb_blockptr should not be exposed.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 21:07:19 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: add tests. [ruby-dev:35009]</div><div class='add'>+</div><div class='add'>+Tue Jun 10 20:55:57 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_convert): need not to initialize optional</div><div class='add'>+	  argument for rb_scan_args().</div><div class='add'>+</div><div class='add'>+Tue Jun 10 20:13:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: negate default of --without-ext if --with-ext is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: negate default of --without-ext.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 17:43:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle_bang): update RDoc.  [ruby-dev:35034]</div><div class='add'>+</div><div class='add'>+Tue Jun 10 17:30:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_obj_instance_exec, rb_mod_module_exec):</div><div class='add'>+	  added prototypes.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 17:00:29 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): ruby_strtod don't allow a trailing</div><div class='add'>+	  decimal point like "7.". [ruby-dev:34835] [ruby-dev:35009]</div><div class='add'>+</div><div class='add'>+Tue Jun 10 13:48:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_convert): need not to initialize optional</div><div class='add'>+	  argument for rb_scan_args().</div><div class='add'>+</div><div class='add'>+Tue Jun 10 12:58:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (FIONREAD_POSSIBLE_P): suppress warnings.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 12:43:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (CONST_ID_CACHE): fixed statement expression.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 11:25:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (rb_argv0): revised for ext/tk.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h: not to use varargs.h since requiring C89.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 00:50:51 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, vm_core.h: add a type rb_blockptr.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_yield_with_cfunc): vm_yield_with_cfunc receives</div><div class='add'>+	  blockptr and passes it to iterating block.</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_call), include/ruby/intern.h: rb_proc_call receives</div><div class='add'>+	  blockptr.  "rb_proc_call(self, args, blockptr)" in C corresponds to</div><div class='add'>+	  "self.call(*args, &amp;block)" in Ruby.</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_call): pass blockptr to block that is written in C.</div><div class='add'>+</div><div class='add'>+	* proc.c (curry): receive blockptr and pass it to original proc.</div><div class='add'>+	  [ruby-core:15551]</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block_from_c): fix for change of vm_yield_with_cfunc.</div><div class='add'>+</div><div class='add'>+	* thread.c (call_trace_proc), eval_jump.c (rb_call_end_proc): fix for</div><div class='add'>+	  change of rb_proc_call.</div><div class='add'>+</div><div class='add'>+Tue Jun 10 00:10:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (test-knownbug): give $(OPTS) for bootstraptest/runner.rb.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 23:10:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_stack): don't declare.  it is a macro now.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 22:46:47 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : treat []&amp;&amp;= in virtually the same way as []||=.</div><div class='add'>+	  [ruby-dev:34679]</div><div class='add'>+</div><div class='add'>+Mon Jun  9 21:17:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend (clean): remove build directories.</div><div class='add'>+</div><div class='add'>+	* test_knownbug.rb -&gt; KNOWNBUGS.rb: renamed.</div><div class='add'>+</div><div class='add'>+	* common.mk: apply above change.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 21:14:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): set flags.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 21:09:02 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb -&gt; ./test_knownbug.rb: moved.</div><div class='add'>+</div><div class='add'>+	* common.mk: add a rule "test-knownbug".</div><div class='add'>+</div><div class='add'>+Mon Jun  9 21:00:32 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_s_convert): can accept Complex('i').</div><div class='add'>+	  [ruby-dev:34991]</div><div class='add'>+</div><div class='add'>+Mon Jun  9 18:25:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.</div><div class='add'>+</div><div class='add'>+	* *.c: no cache in init functions.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 17:56:30 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#delete_if): Call to_a.</div><div class='add'>+	  (SortedSet#delete_if, TC_SortedSet#test_sortedset): Use super to</div><div class='add'>+	  yield elements in sorted order; [ruby-core:17144] by Arthur</div><div class='add'>+	  Schreiber.</div><div class='add'>+	  (SortedSet#each, SortedSet#each, TC_Set#test_each)</div><div class='add'>+	  (TC_SortedSet#test_sortedset): Return self; [ruby-dev:35002] by</div><div class='add'>+	  Arthur Schreiber.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 17:47:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): close IO object if fd is already closed.</div><div class='add'>+	  (rb_p): call rb_io_write just once.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 15:37:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): req_list may be NULL.  [ruby-dev:35008]</div><div class='add'>+</div><div class='add'>+Mon Jun  9 14:18:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct rb_vm_struct): moved src_encoding_index,</div><div class='add'>+	  ruby_debug, ruby_verbose, and rb_progname.</div><div class='add'>+</div><div class='add'>+	* ruby.c (rb_argv0): no longer used.</div><div class='add'>+</div><div class='add'>+	* ruby.c (struct cmdline_options): moved setids and req_list, and the</div><div class='add'>+	  latter is now an array, to prevent memory leak.</div><div class='add'>+</div><div class='add'>+	* ruby.c (cmdline_options_init): added.</div><div class='add'>+</div><div class='add'>+	* ruby.c (add_modules, require_libraries, init_ids, forbid_setid): use</div><div class='add'>+	  struct cmdline_options.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_init2): initialize src_encoding_index.</div><div class='add'>+</div><div class='add'>+	* vm.c: getters/setters for ruby_{debug,verbose}.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 09:54:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (Init_stack): make to call ruby_init_stack.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 08:12:40 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c, vm.c, proc.c : revert r17021. [ruby-dev:34997]</div><div class='add'>+</div><div class='add'>+Mon Jun  9 03:12:23 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/pending.rb: move/remove solved issues.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_class.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun  9 02:32:58 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_init_copy): Copy buffers as well.</div><div class='add'>+	  [ruby-list:45018]</div><div class='add'>+</div><div class='add'>+Sun Jun  8 22:22:20 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with</div><div class='add'>+	  block that both is written in C. [ruby-dev:34273] [ruby-core:15551]</div><div class='add'>+</div><div class='add'>+	*  proc.c (curry): use proc_call instead of rb_proc_call.</div><div class='add'>+	  [ruby-dev:34273] [ruby-core:15551]</div><div class='add'>+</div><div class='add'>+Sun Jun  8 21:50:27 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of zlib.</div><div class='add'>+</div><div class='add'>+Sun Jun  8 20:12:47 2008  wanabe  &lt;s.wanabe@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_throw): regard break as return in lambda.</div><div class='add'>+	  [ruby-dev:34646]</div><div class='add'>+</div><div class='add'>+Sun Jun  8 19:17:59 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: add a build option "CALC_EXACT_MALLOC_SIZE".</div><div class='add'>+	  This option enables to calculate exact size of current</div><div class='add'>+	  allocated size by malloc().  You can access these information</div><div class='add'>+	  with GC.malloc_allocated_size and GC.malloc_allocations.</div><div class='add'>+	  This option consume additional memory as a header of each memory</div><div class='add'>+	  object.  This option also helps to find out xmalloc()/xfree()</div><div class='add'>+	  consistency.  If you get trouble with this option, some extension</div><div class='add'>+	  using "free()" instead of "xfree()".</div><div class='add'>+	  This options is disabled by default.</div><div class='add'>+</div><div class='add'>+Sun Jun  8 18:15:38 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c,</div><div class='add'>+	  enumerator.c (enumerator_allocate), eval_jump.c, file.c, hash.c,</div><div class='add'>+	  io.c, load.c, pack.c, proc.c, random.c, re.c, ruby.c, st.c,</div><div class='add'>+	  string.c, thread.c, thread_pthread.c, time.c, util.c, variable.c,</div><div class='add'>+	  vm.c, gc.c:</div><div class='add'>+	  allocated memory objects by xmalloc (ruby_xmalloc) should be</div><div class='add'>+	  freed by xfree (ruby_xfree).</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c,</div><div class='add'>+	  ext/gdbm/gdbm.c, ext/json/ext/parser/parser.c,</div><div class='add'>+	  ext/json/ext/parser/unicode.c, ext/openssl/ossl_cipher.c,</div><div class='add'>+	  ext/openssl/ossl_hmac.c, ext/openssl/ossl_pkey_ec.c,</div><div class='add'>+	  ext/sdbm/init.c, ext/strscan/strscan.c, ext/zlib/zlib.c:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun  8 01:15:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_i): make Hash#hash order insensitive.</div><div class='add'>+	  (rb_hash_dup): use DUPSETUP.</div><div class='add'>+</div><div class='add'>+Sat Jun  7 23:47:35 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_initialize, Init_zlib): Fix up</div><div class='add'>+	  initialize_copy; [ruby-list:45016].</div><div class='add'>+</div><div class='add'>+Sat Jun  7 22:15:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (VENDOR_DIR): use LIBDIR instead of PREFIX as well as</div><div class='add'>+	  SITE_DIR.  a patch from Richard Brown &lt;rbrown AT exherbo.org&gt; in</div><div class='add'>+	  [ruby-core:17129].</div><div class='add'>+</div><div class='add'>+Sat Jun  7 21:37:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open), re.c (rb_reg_search), transcode.c (str_transcode):</div><div class='add'>+	  suppress warnings.</div><div class='add'>+</div><div class='add'>+	* util.c (quorem, rv_alloc, nrv_alloc): only used in dtoa().</div><div class='add'>+</div><div class='add'>+Sat Jun  7 16:06:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, CXXFLAGS): append default flags.</div><div class='add'>+</div><div class='add'>+Sat Jun  7 01:23:59 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file, rb_io_s_sysopen): fmode should be unsigned int.</div><div class='add'>+	  fixed [ruby-dev:34979]</div><div class='add'>+</div><div class='add'>+Fri Jun  6 23:46:19 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_callee_setup_arg): check simple flag before</div><div class='add'>+	  calling setup_arg function().  this change reduce function call.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 21:51:46 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (COMMON_HEADERS): include ws2tcpip.h.</div><div class='add'>+</div><div class='add'>+	* ext/socket/addrinfo.h (addrinfo, getaddrinfo, getnameinfo,</div><div class='add'>+	  freehostent, freeaddrinfo): undef before define because these are</div><div class='add'>+	  macros in some versions of Windows SDK.</div><div class='add'>+</div><div class='add'>+	  merged from ruby_1_8.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 18:25:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/iconv/utils.rb (default_test): override not to croak.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 16:41:45 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: include ws2tcpip.h. fixed [ruby-Bugs-20528]</div><div class='add'>+</div><div class='add'>+Fri Jun  6 15:05:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (count_objects): clear hash after counting objects.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 12:43:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb (TestDir::test_glob): glob file names not sorted.</div><div class='add'>+</div><div class='add'>+Fri Jun  6 00:05:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.xmlschema): don't use float.  fix</div><div class='add'>+	  http://rubyforge.org/tracker/index.php?func=detail&amp;group_id=426&amp;atid=1698&amp;aid=20504</div><div class='add'>+</div><div class='add'>+Thu Jun  5 23:56:18 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb: add tests to achieve over 90% test coverage of</div><div class='add'>+	  gc.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 23:40:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_alloc): this function is needed only when</div><div class='add'>+	  ENABLE_VM_OBJSPACE macro is defined.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 23:31:21 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb: add tests to achieve over 95% test</div><div class='add'>+	  coverage of stringio.</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb: ditto for strscan.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 23:25:34 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize_0): clear trace_func after executing END</div><div class='add'>+	  procs.</div><div class='add'>+</div><div class='add'>+	* thread.c: fix typo.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 22:50:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of): heaps may be modified in yield.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 21:46:50 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_reverse_foreach): comment out unused function.</div><div class='add'>+</div><div class='add'>+	* util.c (dtoa): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 20:30:46 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize):</div><div class='add'>+	  Add a null check for ssl; submitted by akira yamada</div><div class='add'>+	  in [ruby-dev:34950].</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): Define OP_NO_TICKET if</div><div class='add'>+	  SSL_OP_NO_TICKET is present; submitted by akira yamada</div><div class='add'>+	  in [ruby-dev:34944].</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (OpenSSL#test_server_session): Add a</div><div class='add'>+	  workaround for the case where OpenSSL is configured with</div><div class='add'>+	  --enable-tlsext; submitted by akira yamada in [ruby-dev:34944].</div><div class='add'>+</div><div class='add'>+Thu Jun  5 20:24:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_set_trace_func_m): fix check for proc argument.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 20:17:29 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb (REXML::Document:write): leaky modification</div><div class='add'>+	  trans -&gt; transitive.  [ruby-dev:32040], r13686</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb (Text.check): fix check for illegal character.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 14:03:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_create): find encoding without options.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 07:48:32 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): should be "static".</div><div class='add'>+</div><div class='add'>+Thu Jun  5 01:47:18 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: add tests for iso-2022-jp.</div><div class='add'>+</div><div class='add'>+Thu Jun  5 01:27:42 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb: add tests.</div><div class='add'>+</div><div class='add'>+Wed Jun  4 23:10:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzfile_set_mtime): fix typo.</div><div class='add'>+</div><div class='add'>+Wed Jun  4 18:53:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_alloc): RDoc updated.  a patch from Gaston</div><div class='add'>+	  Ramos &lt;ramos.gaston at gmail.com&gt; in [ruby-core:17073].</div><div class='add'>+</div><div class='add'>+Wed Jun  4 18:36:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc.rb: massive spelling correction patch from Evan Farrar</div><div class='add'>+	  &lt;evanfarrar at gmail.com&gt; in [ruby-doc:1382] applied.</div><div class='add'>+</div><div class='add'>+Wed Jun  4 17:52:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_iconv): fix for length argument and now</div><div class='add'>+	  allows range.  [ruby-core:17092]</div><div class='add'>+</div><div class='add'>+Wed Jun  4 15:45:41 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_index, enumerator_with_memo): Fix</div><div class='add'>+	  grammo in rdoc.</div><div class='add'>+</div><div class='add'>+Wed Jun  4 13:06:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CFLAGS, CXXFLAGS): include additional flags to</div><div class='add'>+	  CFLAGS and CXXFLAGS while configuration.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 23:06:35 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_scan_full, strscan_search_full): fix</div><div class='add'>+	  document.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 22:37:26 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_exist_p): fix document.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 22:33:29 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of dir.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_encoding.rb: add tests for dummy?, name_list and</div><div class='add'>+	  aliases.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: add some tests.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 22:25:51 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/etc/test_etc.rb: new tests for etc.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 19:35:02 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_memo): New method: with_memo().</div><div class='add'>+</div><div class='add'>+Tue Jun  3 20:04:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (miniruby$(EXEEXT)): miniruby cannot be</div><div class='add'>+	  written by miniruby itself.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 19:33:22 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_init_copy): Take care of</div><div class='add'>+	  initialize_copy as well as initialize.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 16:06:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): fix for non-existent files and SFN of</div><div class='add'>+	  symlinks.  [ruby-talk:303736]</div><div class='add'>+</div><div class='add'>+Tue Jun  3 15:12:01 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#classify): Back out the `group_by' alias.</div><div class='add'>+	  Better think twice.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 15:00:22 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#collect, Set#select): Back out.  I thought it</div><div class='add'>+	  was consistent but turned out to be wrong.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 13:41:08 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#collect, Set#select): Override Enumerable</div><div class='add'>+	  methods and make them return a set. [ruby-core:17055]</div><div class='add'>+	  (Set#delete_if, Set#collect!, Set#reject!, Set#classify)</div><div class='add'>+	  (Set#divide, Set#delete_if): Return an enumerator if no block is</div><div class='add'>+	  given.</div><div class='add'>+	  (Set#classify): Define an alias `group_by' to override that of</div><div class='add'>+	  Enumerable.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 13:35:40 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (run_exec_pgroup): C99 ism.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 12:51:57 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_allocate, enumerator_ptr): Properly</div><div class='add'>+	  detect if the object is initialized and raise error when</div><div class='add'>+	  appropriate.</div><div class='add'>+	  (enumerator_initialize): Fix a typo in rdoc. [ruby-core:17052]</div><div class='add'>+</div><div class='add'>+Tue Jun  3 01:21:51 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: add a test.</div><div class='add'>+</div><div class='add'>+Tue Jun  3 00:26:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): add a check for modification of array during</div><div class='add'>+	  its dump.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 22:27:57 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_5.c: Large omicron should lowercase to small omicron.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_big5.rb, test/ruby/test_cp949.rb,</div><div class='add'>+	  test/ruby/test_euc_jp.rb, test/ruby/test_euc_kr.rb,</div><div class='add'>+	  test/ruby/test_euc_tw.rb, test/ruby/test_gb18030.rb,</div><div class='add'>+	  test/ruby/test_gbk.rb, test/ruby/test_iso_8859.rb,</div><div class='add'>+	  test/ruby/test_koi8.rb, test/ruby/test_shift_jis.rb,</div><div class='add'>+	  test/ruby/test_windows_1251.rb: new tests for encoding.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_utf16.rb, test/ruby/test_utf32.rb,</div><div class='add'>+	  test/ruby/test_regexp.rb: add tests.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 21:56:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb: add tests for uninitialized object.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_class.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 21:44:15 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: fix SEGV by Regexp.allocate.names, Match.allocate.names, etc.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+	* io.c: fix SEGV by IO.allocate.print, etc.</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 Jun  2 19:17:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb (teardown): remove renamed temporary files.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 18:51:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb (wait_writable): wait until target files can be</div><div class='add'>+	  written actually.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LDSHARED_0, LINK_SO): get rid of failure of</div><div class='add'>+	  mt.exe.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 16:26:17 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::MethodDelegation#respond_to):</div><div class='add'>+	  respond_to? should now take optional second argument; submitted</div><div class='add'>+	  by Jeremy Kemper &lt;jeremy at bitsweat.net&gt; in [ruby-core:17045].</div><div class='add'>+</div><div class='add'>+Mon Jun  2 16:14:18 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler::TrimScanner#scan_line): Oops.  This</div><div class='add'>+	  change did not apply to trunk.  Backed out.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 16:08:24 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler::TrimScanner#scan_line): Fix a bug</div><div class='add'>+	  where tokens are not yielded one by one.</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb.rb (TestERBCore#_test_01)</div><div class='add'>+	  (TestERBCore#test_02_safe_04): The expected value should come</div><div class='add'>+	  first for assert_equal().</div><div class='add'>+</div><div class='add'>+Mon Jun  2 13:06:38 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: hide build path from rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 08:46:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod, dtoa): initialize more variables for error</div><div class='add'>+	  handling.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 04:55:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* suppress warnings on cygwin, mingw and mswin.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 04:35:32 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (gb18030_code_to_mbc): add 0x80000000</div><div class='add'>+	  for 4bytes character.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 03:52:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): reverted used variable definition.</div><div class='add'>+</div><div class='add'>+Mon Jun  2 03:23:25 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (gb18030_mbc_to_code): mask by 0x7FFFFFFF</div><div class='add'>+	  because OnigCodePoint will be used as 32bit signed int.</div><div class='add'>+	  Masking by 0x7FFFFFFF is ok on GB18030;</div><div class='add'>+	  Minimum 4bytes character is 0x81308130.</div><div class='add'>+</div><div class='add'>+Sun Jun  1 22:29:35 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r_internal): use rb_isdigit.</div><div class='add'>+</div><div class='add'>+	* marshal.c (long_toobig): use %zd.</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): move unused variable definition.</div><div class='add'>+</div><div class='add'>+Sun Jun  1 12:18:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (DEFINE_INSN): subtract of pointers is ptrdiff_t.</div><div class='add'>+	  this is not int on 64bit system.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (control_frame_dump): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (stack_dump_each): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (debug_print_register): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (debug_print_pre): ditto.</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun  1 10:32:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): show coredump status.</div><div class='add'>+</div><div class='add'>+Sat May 31 23:33:34 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* README, README.ja: Add a note about default C flags.</div><div class='add'>+</div><div class='add'>+Sat May 31 23:02:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (count_objects): clear given hash.</div><div class='add'>+</div><div class='add'>+Sat May 31 20:28:10 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: add tests.</div><div class='add'>+</div><div class='add'>+Sat May 31 19:11:39 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_16{be,le}.c (utf16{be,le}_code_to_mbc):</div><div class='add'>+	  fix codepoint to bytes.</div><div class='add'>+</div><div class='add'>+Sat May 31 18:28:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* suppress warnings with -Wwrite-string.</div><div class='add'>+</div><div class='add'>+Sat May 31 18:26:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete_if): should return enumerator if no block</div><div class='add'>+	  is given.  [ruby-dev:34901]</div><div class='add'>+</div><div class='add'>+Sat May 31 15:58:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, configure.in (warnflags): defaulted to -Wall</div><div class='add'>+	  -Wno-parentheses with gcc.  [ruby-dev:34810]</div><div class='add'>+</div><div class='add'>+Sat May 31 15:17:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/mvm.h: new header file for MVM, and moved rb_vm_t and</div><div class='add'>+	  rb_thread_t from vm_core.h.</div><div class='add'>+</div><div class='add'>+Sat May 31 12:02:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): show pid when fail.</div><div class='add'>+</div><div class='add'>+Fri May 30 23:55:56 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb: add a test of RUBY_DESCRIPTION.</div><div class='add'>+</div><div class='add'>+Fri May 30 22:47:17 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: add tests.</div><div class='add'>+</div><div class='add'>+Fri May 30 22:40:53 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb: add tests to achieve over 80% test</div><div class='add'>+	  coverage of signal.c.</div><div class='add'>+</div><div class='add'>+Fri May 30 22:28:03 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (esignal_signo): fix SignalException#signo which returned</div><div class='add'>+	  nil absolutely.</div><div class='add'>+</div><div class='add'>+	* signal.c (esignal_init): always prepend "SIG" to a string that is</div><div class='add'>+	  returned by SignalException#signm.</div><div class='add'>+</div><div class='add'>+Fri May 30 22:17:39 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb: rename a conflicting method name.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri May 30 22:14:37 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): fix SEGV by defined?([1]).</div><div class='add'>+</div><div class='add'>+Fri May 30 12:18:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.c): simply depends on PREP.  [ruby-dev:34877]</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb, enc/trans/make_transdb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri May 30 10:55:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct rb_unblock_callback), thread.c</div><div class='add'>+	  (set_unblock_function), thread_{pthread,win32}.c (native_sleep):</div><div class='add'>+	  extracted from struct rb_thread_struct.</div><div class='add'>+</div><div class='add'>+	* thread.c (reset_unblock_function): not check interrupts at leaving</div><div class='add'>+	  blocking region.  [ruby-dev:34874]</div><div class='add'>+</div><div class='add'>+Fri May 30 06:09:31 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: add UTF8-MAC (UTF-8-MAC).</div><div class='add'>+</div><div class='add'>+Fri May 30 04:17:13 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_count, count_all_i, Init_Enumerable),</div><div class='add'>+	  array.c (rb_ary_count): If no argument or block is given, count</div><div class='add'>+	  the number of all elements.</div><div class='add'>+</div><div class='add'>+Fri May 30 03:12:18 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand):</div><div class='add'>+	  Int should be enough here.</div><div class='add'>+</div><div class='add'>+Fri May 30 02:35:00 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (ossl_bn_s_rand, ossl_bn_s_pseudo_rand),</div><div class='add'>+	  ext/openssl/ossl_pkey_dh.c (ossl_dh_s_generate)</div><div class='add'>+	  (ossl_dh_initialize),</div><div class='add'>+	  ext/openssl/ossl_pkey_dsa.c (ossl_dsa_s_generate),</div><div class='add'>+	  ext/openssl/ossl_rand.c (ossl_rand_bytes)</div><div class='add'>+	  (ossl_rand_pseudo_bytes, ossl_rand_egd_bytes),</div><div class='add'>+	  ext/openssl/ossl_x509store.c (ossl_x509stctx_set_error): Do not</div><div class='add'>+	  use FIX2INT() without checking the value type.  Use NUM2INT()</div><div class='add'>+	  instead; found by akr in [ruby-dev:34890].</div><div class='add'>+</div><div class='add'>+Fri May 30 02:08:20 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (esignal_init): handle a non-integer argument correctly,</div><div class='add'>+	  allowing SignalException.new(:INT).</div><div class='add'>+</div><div class='add'>+Fri May 30 00:59:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: add tests.</div><div class='add'>+</div><div class='add'>+Thu May 29 22:51:05 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb: add a test for load with wrap flag, to</div><div class='add'>+	  achieve 100% test coverage of eval_jump.c.</div><div class='add'>+</div><div class='add'>+Thu May 29 22:47:53 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_argf.rb: new tests for ARGF, to achieve over 85% test</div><div class='add'>+	  coverage of file.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: add tests.</div><div class='add'>+</div><div class='add'>+Thu May 29 22:41:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_readchar): raise EOFError, synchronizing IO#readchar.</div><div class='add'>+</div><div class='add'>+Thu May 29 22:29:39 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_external_encoding, argf_internal_encoding): fix SEGV by</div><div class='add'>+	  ARGF.external_encoding.</div><div class='add'>+</div><div class='add'>+Thu May 29 17:52:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/extconf.rb: search zlib1, and regard mswin32 later than VC6</div><div class='add'>+	  as WIN32.  [ruby-core:16984]</div><div class='add'>+</div><div class='add'>+Wed May 28 18:05:28 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_nitems, Init_Array): Axe Array#nitems().</div><div class='add'>+	  cf. [ruby-dev:34676]-[ruby-dev:34713]</div><div class='add'>+</div><div class='add'>+Wed May 28 17:50:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports#objdump, Exports#each_line): extracted.</div><div class='add'>+</div><div class='add'>+Wed May 28 17:41:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (MKPREP): appended $(RBCONFIG).</div><div class='add'>+</div><div class='add'>+	* common.mk (enc.mk, prelude.c): not depend on $(RBCONFIG) on mswin32</div><div class='add'>+	  to get of compiling twice each time.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (prelude.c): not depend on $(PREP).</div><div class='add'>+</div><div class='add'>+Wed May 28 17:37:07 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb (Exports::Mswin#each_export): speed up.</div><div class='add'>+</div><div class='add'>+Wed May 28 16:41:59 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): Call rb_ary_modify_check() at the</div><div class='add'>+	  beginning. [rubyspec]</div><div class='add'>+</div><div class='add'>+Wed May 28 16:12:44 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb (WEBrick::HTTPServlet::CGIHandler#do_GET):</div><div class='add'>+	  Set the HTTP status code to 302 if a Location header field is</div><div class='add'>+	  present and the status code is not valid as a client</div><div class='add'>+	  redirection.  cf. RFC 3875 6.2.3, 6.2.4.</div><div class='add'>+</div><div class='add'>+Wed May 28 15:53:52 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (to_SHIFT_JIS_EF_infos): typo.</div><div class='add'>+</div><div class='add'>+Wed May 28 15:18:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb (SingletonClassMethods): _load should be public.</div><div class='add'>+</div><div class='add'>+Wed May 28 13:30:43 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: add workaround for Unicode to CP932.</div><div class='add'>+	  U+2015-&gt;0x815C, U+2225-&gt;0x8161, U+FF0D-&gt;0x817C, U+FF3C-&gt;0x815F,</div><div class='add'>+	  U+FF5E-&gt;0x8160, U+FFE0-&gt;0x8191, U+FFE1-&gt;0x8192, U+FFE2-&gt;0x81CA</div><div class='add'>+</div><div class='add'>+Wed May 28 12:52:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object, marshal_dump, r_object0, marshal_load): search</div><div class='add'>+	  private methods too.  [ruby-dev:34671]</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): ditto.</div><div class='add'>+</div><div class='add'>+Wed May 28 08:42:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: "%" is required before PRI?VALUE.</div><div class='add'>+</div><div class='add'>+Tue May 27 22:10:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.c (error_handle): SystemExit and SignalException throws</div><div class='add'>+	  TAG_RAISE but not TAG_FATAL.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): delay interrupts during</div><div class='add'>+	  raising exceptions.  [ruby-dev:34855]</div><div class='add'>+</div><div class='add'>+Tue May 27 20:18:30 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): Return an empty array instead of</div><div class='add'>+	  nil when pos is valid and len is adjusted from a valid value to</div><div class='add'>+	  zero; caught by RubySpec.</div><div class='add'>+</div><div class='add'>+Tue May 27 19:12:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (MKPREP), common.mk, win32/Makefile.sub (prelude.c): get</div><div class='add'>+	  rid of depending PREP with nmake.</div><div class='add'>+</div><div class='add'>+	* common.mk (encs): depends on libruby.</div><div class='add'>+</div><div class='add'>+Tue May 27 19:00:22 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each_char, Init_stringio): Add</div><div class='add'>+	  StringIO#{each_char,chars}.</div><div class='add'>+	  (Init_stringio): Fix StringIO#bytes.</div><div class='add'>+</div><div class='add'>+Tue May 27 17:54:35 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each_byte): Return self instead</div><div class='add'>+	  of nil as the rdoc says.</div><div class='add'>+</div><div class='add'>+Tue May 27 15:36:27 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_int): use PRIxVALUE format specifier.</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint, rb_num2fix, int_chr): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_fdiv): fallback to_f should always return float</div><div class='add'>+	  result.  should not use #quo that may return rational.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_div): should raise ZeroDivisionError.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_divide): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_numeric.rb (TestNumeric::test_divmod): avoid</div><div class='add'>+	  ZeroDivisionError in tests.</div><div class='add'>+</div><div class='add'>+Tue May 27 13:14:53 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_to_a): Pass arguments through to #each().</div><div class='add'>+	  (enum_sort): Follow the enum_to_a signature change.</div><div class='add'>+	  (enum_reverse_each): Add #reverse_each().</div><div class='add'>+</div><div class='add'>+Tue May 27 13:12:37 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): Define ARGF.{lines,bytes,chars}.</div><div class='add'>+</div><div class='add'>+Tue May 27 12:06:37 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (BUFCHECK): wrong condition. [ruby-core:16921]</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_buf): shouldn't use buflen for length of string.</div><div class='add'>+</div><div class='add'>+Mon May 26 18:24:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (BUFCHECK): no resize if enough room.</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): use BUFCHECK.</div><div class='add'>+</div><div class='add'>+Mon May 26 17:48:42 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (struct enumerator, enumerator_init)</div><div class='add'>+	  (enumerator_init_copy, enumerator_each): Eliminate iter.</div><div class='add'>+	  (enumerator_ptr): Do not hardcode the class name.</div><div class='add'>+	  (enumerator_with_index): Delay variable initialization after</div><div class='add'>+	  RETURN_ENUMERATOR().</div><div class='add'>+</div><div class='add'>+Mon May 26 17:23:49 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): add more space for '/'.</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): should reset address of p after calling</div><div class='add'>+	  rb_str_resize(). [ruby-dev:34800]</div><div class='add'>+</div><div class='add'>+Mon May 26 16:49:55 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode): use run-hooks if run-mode-hook is</div><div class='add'>+	  not available.  a patch from Kazuhiro NISHIYAMA &lt;zn at mbf.nifty.com&gt;</div><div class='add'>+	  in [ruby-dev:34853].</div><div class='add'>+</div><div class='add'>+Mon May 26 16:41:35 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (ntfs_tail): filename which starts with '.' is valid.</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): cygwin symlink support.</div><div class='add'>+</div><div class='add'>+Mon May 26 07:15:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (rb_vm_bugreport): rb_make_backtrace has no arguments.</div><div class='add'>+</div><div class='add'>+Mon May 26 01:17:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): signal description</div><div class='add'>+	  refined.</div><div class='add'>+</div><div class='add'>+Mon May 26 00:52:52 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_key, env_each_value, env_reject_bang)</div><div class='add'>+	  (rb_env_clear, env_replace): Omit duplicated secure level check.</div><div class='add'>+</div><div class='add'>+Mon May 26 00:37:16 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_value): Do not call env_values() twice.</div><div class='add'>+</div><div class='add'>+Sun May 25 17:54:36 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile): set local_table for</div><div class='add'>+	  ISEQ_TYPE_DEFINED_GUARD.</div><div class='add'>+</div><div class='add'>+Sun May 25 17:52:25 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_body): remove side effect from</div><div class='add'>+	  VM::InstructionSequence.load.</div><div class='add'>+</div><div class='add'>+Sun May 25 04:30:45 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb (remove_json_mixins): change judgment</div><div class='add'>+	  condition.</div><div class='add'>+</div><div class='add'>+Sun May 25 03:54:39 2008  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 json mixins.</div><div class='add'>+</div><div class='add'>+Sun May 25 02:37:25 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.c: renamed from vm_method.c.  "vm_method.c" is included</div><div class='add'>+	  by "vm.c".</div><div class='add'>+</div><div class='add'>+	* vm_eval.c: added.  Some codes are moved from "eval.c"</div><div class='add'>+</div><div class='add'>+	* common.mk: fix for above changes.</div><div class='add'>+</div><div class='add'>+	* compile.c: make a vm_eval(0)</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_error.c, eval_intern.h, eval_jump.c, proc.c, vm.c,</div><div class='add'>+	  id.c, id.h, vm_core.h, vm_dump.c, vm_evalbody.c, vm_insnhelper.c,</div><div class='add'>+	  blockinlining.c: fix for above changes.  and do some refactoring.</div><div class='add'>+	  this changes improve rb_yield() performance.</div><div class='add'>+</div><div class='add'>+Sat May 24 22:32:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): clear errno at the top of our own</div><div class='add'>+	  implementation of strtod(3).  [ruby-dev:34834] [ruby-dev:34839]</div><div class='add'>+</div><div class='add'>+Sat May 24 15:26:16 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_exception_table, NODE_WHILE, NODE_NEXT): remove</div><div class='add'>+	  special handling that decrements sp in CATCH_TYPE_NEXT for NODE_WHILE.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_eval_body), vm_insnhelper.c (vm_throw): remove unused code.</div><div class='add'>+</div><div class='add'>+Sat May 24 08:13:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_transcode): argc is 1, and argv is &amp;to.</div><div class='add'>+</div><div class='add'>+Fri May 23 17:55:11 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): Be consistent with Array#slice()</div><div class='add'>+	  and String#slice!().  Just return nil when a negative length or</div><div class='add'>+	  out of boundary index is given instead of raising an exception</div><div class='add'>+	  via internal functions.</div><div class='add'>+</div><div class='add'>+Fri May 23 16:44:34 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): Override</div><div class='add'>+	  Enumerable::Enumerator#each_with_index with #with_index.</div><div class='add'>+</div><div class='add'>+Fri May 23 12:23:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_num_t): moved form vm.h.</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb (RubyVM::Instruction#sp_increase_c_expr),</div><div class='add'>+	  tool/instruction.rb (RubyVM::VmBodyGenerator#make_header_operands):</div><div class='add'>+	  omit unused variables.</div><div class='add'>+</div><div class='add'>+Fri May 23 08:47:02 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_equal): == operator should be transitional.</div><div class='add'>+	  [ruby-dev:34808]</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_eqq): === should be able to handle delegated</div><div class='add'>+	  objects as well.</div><div class='add'>+</div><div class='add'>+Fri May 23 06:15:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_compile_with_option): get rid of segv.</div><div class='add'>+</div><div class='add'>+Fri May 23 02:29:14 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_gt|ge|lt|le): use values directly to compare.</div><div class='add'>+</div><div class='add'>+Fri May 23 01:15:09 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, include/ruby/intern.h, include/ruby/ruby.h,</div><div class='add'>+	  vm.c, vm_core.h, vm_insnhelper.c: remove pointless "const".</div><div class='add'>+</div><div class='add'>+Thu May 22 23:45:17 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (get_destination_insn, get_next_insn, get_prev_insn):</div><div class='add'>+	  peephole optimization should not ignore ISEQ_ELEMENT_ADJUST.</div><div class='add'>+</div><div class='add'>+Thu May 22 20:20:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (check_dump_arg, check_load_arg): check if reentered.</div><div class='add'>+	  [ruby-dev:34802]</div><div class='add'>+</div><div class='add'>+Thu May 22 20:14:28 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_load, iseq_data_to_ary): support</div><div class='add'>+	  ISEQ_TYPE_DEFINED_GUARD.</div><div class='add'>+</div><div class='add'>+Thu May 22 19:01:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_get_ruby_level_cfp): moved from eval_intern.h.</div><div class='add'>+</div><div class='add'>+	* vm.c (sdr, nsdr): define methods only if VMDEBUG is defined.</div><div class='add'>+</div><div class='add'>+Thu May 22 17:18:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_compact_bang): fix reallocation size.</div><div class='add'>+</div><div class='add'>+Thu May 22 15:20:20 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, vm_core.h, include/ruby/intern.h, include/ruby/ruby.h,</div><div class='add'>+	  vm.c: need to add const to prototypes, of course.</div><div class='add'>+</div><div class='add'>+Thu May 22 13:24:43 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, vm.c, vm_core.h, vm_insnhelper.c: specify "const".</div><div class='add'>+</div><div class='add'>+	* vm_opts.h: add a OPT_TOKEN_THREADED_CODE macro.</div><div class='add'>+</div><div class='add'>+Thu May 22 12:51:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (newhash): fix a variable definition: "const k".</div><div class='add'>+</div><div class='add'>+Thu May 22 12:40:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (flatten): check if reentered.  [ruby-dev:34798]</div><div class='add'>+</div><div class='add'>+Thu May 22 11:39:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (assert_normal_exit): capture stdout and stderr</div><div class='add'>+	  of the child process.</div><div class='add'>+</div><div class='add'>+Thu May 22 08:28:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (flatten): free memo hash table before raising exception.</div><div class='add'>+	  [ruby-dev:34789]</div><div class='add'>+</div><div class='add'>+Thu May 22 06:30:10 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (flatten): fix memory leak.</div><div class='add'>+</div><div class='add'>+Thu May 22 06:21:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_str_caseeql): added.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_enc_find_index): use nkf_str_caseeql.</div><div class='add'>+</div><div class='add'>+Thu May 22 05:45:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_dup): should copy safe_level from src proc</div><div class='add'>+	  properly.  a patch from Keita Yamaguchi</div><div class='add'>+	  &lt;keita.yamaguchi at gmail.com&gt;</div><div class='add'>+</div><div class='add'>+Thu May 22 02:46:08 2008  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: do not use Thread#raise. [ruby-dev:34739]</div><div class='add'>+</div><div class='add'>+Thu May 22 00:30:06 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_require.rb: new tests for library requiring, to</div><div class='add'>+	  achieve over 90% test coverage of dln.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_class.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of class.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu May 22 00:15:44 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm_insnhelper.c: specify "const".</div><div class='add'>+</div><div class='add'>+Wed May 21 23:20:21 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_eval.rb: fix syntax.</div><div class='add'>+</div><div class='add'>+Wed May 21 17:46:17 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_enc_find_index):</div><div class='add'>+	  use strcasecmp. [ruby-dev:34787]</div><div class='add'>+</div><div class='add'>+Wed May 21 16:48:22 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_compact_bang): avoid forceful realloc.</div><div class='add'>+</div><div class='add'>+Wed May 21 07:42:28 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_usascii_str_new): use rb_str_new.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_new): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_usascii_str_new2): use rb_str_new2.</div><div class='add'>+</div><div class='add'>+Wed May 21 07:22:01 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c, include/ruby/encoding.h</div><div class='add'>+	  (rb_enc_associate, rb_enc_associate_index):</div><div class='add'>+	  returns obj. [ruby-dev:34778]</div><div class='add'>+</div><div class='add'>+Wed May 21 04:20:20 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_ascii8bit_encoding): use ENCINDEX_ASCII.</div><div class='add'>+</div><div class='add'>+	* encoding.c, include/ruby/encoding.h (rb_ascii8bit_encindex):</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encoding): use rb_usascii_encoding().</div><div class='add'>+</div><div class='add'>+Wed May 21 01:45:58 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb (setup): workaround for Windows</div><div class='add'>+	  Vista.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (rubyexec): now Open3.open3 is supported on</div><div class='add'>+	  Windows.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb: use ``||'' instead of ``;'' because</div><div class='add'>+	  cmd.exe not support it.</div><div class='add'>+</div><div class='add'>+Wed May 21 01:28:47 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c, include/ruby/encoding.h (rb_str_transcode):</div><div class='add'>+	  C API of encoding conversion for Ruby object.</div><div class='add'>+	  VALUE rb_str_transcode(VALUE str, VALUE to).</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_encode, str_encode_bang):</div><div class='add'>+	  rename from rb_tr_transcode or rb_str_transcode_bang.</div><div class='add'>+</div><div class='add'>+Tue May 20 23:26:05 2008  Yusuke Endoh	&lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: fix tests for 64bit CPU.</div><div class='add'>+</div><div class='add'>+Tue May 20 20:59:56 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (rb_nkf_convert) (nkf_enc_without_bom):</div><div class='add'>+	  reverted. nkf-utf8/nkf.c should be independent of ruby.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (options):</div><div class='add'>+	  moved from nkf-utf8/nkf.c.</div><div class='add'>+	  override nkf's original settings for Unicode BOM.</div><div class='add'>+</div><div class='add'>+Tue May 20 13:20:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert), ext/nkf/nkf-utf8/nkf.c</div><div class='add'>+	  (nkf_enc_without_bom): BOM is not a part of encodings.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (Init_nkf), ext/nkf/nkf-utf8/nkf.c (options):</div><div class='add'>+	  UTF-{16,32} without endian have no sense.</div><div class='add'>+</div><div class='add'>+Tue May 20 12:13:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options, process_options): --dump option.</div><div class='add'>+</div><div class='add'>+Tue May 20 11:36:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (PRI[diouxX]VALUE): printf format for VALUE.</div><div class='add'>+</div><div class='add'>+	* gc.c (assign_heap_slot): suppress a warning.</div><div class='add'>+</div><div class='add'>+Tue May 20 03:42:43 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, vm_insnhelper.c: fix cref in instance_eval</div><div class='add'>+	  and cvar_base search protocol.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_eval.rb: move solved test</div><div class='add'>+	  and add new tests.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: fix tests for spec.</div><div class='add'>+</div><div class='add'>+Tue May 20 01:43:44 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: fix a test.</div><div class='add'>+	  "block_given?" returns true if "yield" can be used.</div><div class='add'>+</div><div class='add'>+Tue May 20 01:07:19 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable_gen): when "self = 1" was evaluated, unnecessary</div><div class='add'>+	  error message was output, which might cause null pointer access.</div><div class='add'>+</div><div class='add'>+Tue May 20 08:38:56 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen_cr): need to set ENC_CODERANGE_7BIT if</div><div class='add'>+	  search_nonascii() fails.    [ruby-dev:34751]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse): preserve coderange info if the</div><div class='add'>+	  receiver is 7bit string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): should have called</div><div class='add'>+	  single_byte_optimizable before rb_str_modify() that clears</div><div class='add'>+	  coderange info.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): handle single bytes more eagerly.</div><div class='add'>+</div><div class='add'>+Mon May 19 23:32:12 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block_from_c): fix call flow.</div><div class='add'>+</div><div class='add'>+Mon May 19 23:19:35 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (slow_search): check the case when the length is 1.</div><div class='add'>+	  The behavior of memcmp is undefined if the third argument is 0.</div><div class='add'>+</div><div class='add'>+Mon May 19 21:07:48 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_apply_priority):</div><div class='add'>+	  fix argument range check.  [ruby-dev:33124]</div><div class='add'>+</div><div class='add'>+Mon May 19 18:22:35 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs5.c (ossl_pkcs5_pbkdf2_hmac): Fix the type</div><div class='add'>+	  of md; pointed out by Takahiro Kambe &lt;taca at back-street.net&gt;</div><div class='add'>+	  in [ruby-dev:34748].</div><div class='add'>+</div><div class='add'>+Mon May 19 17:23:55 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (PINC): use optimized enclen() instead of</div><div class='add'>+	  ONIGENC_MBC_ENC_LEN().</div><div class='add'>+</div><div class='add'>+	* regparse.c (PFETCH): ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.c (PFETCH): small optimization.</div><div class='add'>+</div><div class='add'>+	* regexec.c (slow_search): single byte encoding optimization.</div><div class='add'>+</div><div class='add'>+	* regenc.h (enclen): avoid calling function when encoding's</div><div class='add'>+	  min_len == max_len.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): rb_enc_ascget() optimization for single</div><div class='add'>+	  byte encoding.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): avoid allocating new re_registers if we</div><div class='add'>+	  already have MatchData.</div><div class='add'>+</div><div class='add'>+	* re.c (match_init_copy): avoid unnecessary onig_region_free()</div><div class='add'>+	  before onig_region_copy.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_get_index): remove implicit enc_capable check</div><div class='add'>+	  each time.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_set_index): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_compatible_p): small refactoring.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_dummy_p): inline</div><div class='add'>+	  rb_enc_dummy_p() and export related code.</div><div class='add'>+</div><div class='add'>+Mon May 19 14:32:03 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: fix strange change by version.h update tool.</div><div class='add'>+</div><div class='add'>+Mon May 19 14:18:13 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move solved tests.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_eval.rb, test_literal.rb, test_syntax.rb,</div><div class='add'>+	  test_thread.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb, test_proc.rb, test_sprintf.rb,</div><div class='add'>+	  test_string.rb, test/ruby/test_struct.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon May 19 13:23:03 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): set last_status when status == -1</div><div class='add'>+	  because there is no path to set it on win32. this patch is derived</div><div class='add'>+	  from [ruby-core:16787], submitted by Luis Lavena &lt;luislavena at</div><div class='add'>+	  gmail.com&gt;</div><div class='add'>+</div><div class='add'>+Mon May 19 11:32:47 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def, eval.c, vm_insnhelper.c: fix CREF handling.</div><div class='add'>+	  VM value stack frame of block contains cref information.</div><div class='add'>+	 (dfp[-1] points CREF)</div><div class='add'>+</div><div class='add'>+	* compile.c, eval_intern.h, eval_method.c, load.c, proc.c,</div><div class='add'>+	  vm_dump.h, vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, gc.c: remove T_VALUES because of above</div><div class='add'>+	  changes.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_eval.rb, test_knownbug.rb: move solved test.</div><div class='add'>+</div><div class='add'>+Sun May 18 22:26:51 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb: should normalize path</div><div class='add'>+	  name in path_info to prevent script disclosure vulnerability on</div><div class='add'>+	  DOSISH filesystems. (fix: CVE-2008-1891)</div><div class='add'>+	  Note: NTFS/FAT filesystem should not be published by the platforms</div><div class='add'>+	  other than Windows. Pathname interpretation (including short</div><div class='add'>+	  filename) is less than perfect.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/abstract.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::AbstractServlet#redirect_to_directory_uri):</div><div class='add'>+	  should escape the value of Location: header.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgi_runner.rb: accept interpreter</div><div class='add'>+	  command line arguments.</div><div class='add'>+</div><div class='add'>+Sun May 18 02:54:46 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): check errno to detect error of ruby_strtoul.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Sat May 17 23:53:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): fix for short file name on Cygwin.</div><div class='add'>+</div><div class='add'>+Sat May 17 18:03:52 2008  Yuki Sonoda (Yugui) &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): removed the definition of Thread#initialize,</div><div class='add'>+	  which is overwritten in Init_Thread and is never used.</div><div class='add'>+</div><div class='add'>+Sat May 17 14:01:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): should not free shared pointer, and set</div><div class='add'>+	  shared.  [ruby-dev:34732]</div><div class='add'>+</div><div class='add'>+Sat May 17 12:34:54 2008  Yuki Sonoda (Yugui) &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (Init_native_thread): Kernel#.sleep used never to</div><div class='add'>+	  sleep on Mac OS X. Reported by arton &lt;artonx AT yahoo.co.jp&gt;.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): added error checks.</div><div class='add'>+</div><div class='add'>+Sat May 17 11:29:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): first dot is not an extension name.</div><div class='add'>+</div><div class='add'>+Sat May 17 03:21:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): stop memory leak.  [ruby-dev:34726]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): need to free allocated buffer in re_register.</div><div class='add'>+</div><div class='add'>+	* regexec.c (onig_region_new): more pedantic malloc check.</div><div class='add'>+</div><div class='add'>+	* regexec.c (onig_region_resize): ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c (STATE_CHECK_BUFF_INIT): ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c (onig_region_copy): use onig_region_resize.</div><div class='add'>+</div><div class='add'>+Fri May 16 12:48:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (to_flo): rb_Float() accepts even strings for input.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_f): fix wrong message.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_r): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Float): do not check NaN for error.  NaN is a part</div><div class='add'>+	  of valid float values.</div><div class='add'>+</div><div class='add'>+Thu May 15 23:36:09 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: add tests to achieve over 90% test</div><div class='add'>+	  coverage of string.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_symbol.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu May 15 23:01:06 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): String#delete returned wrong result when multiple</div><div class='add'>+	  utf-8 arguments are passed.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_delete): add a test for above.</div><div class='add'>+</div><div class='add'>+Thu May 15 22:37:56 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_warningS): now used.</div><div class='add'>+</div><div class='add'>+Thu May 15 15:33:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): support for alternative data stream</div><div class='add'>+	  and ignored trailing garbage of NTFS.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 15 13:43:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): no need for forceful warning when</div><div class='add'>+	  converting to float.  overflow is a nature of float values.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 15 13:23:20 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_enc): error condition was updated for non</div><div class='add'>+	  ASCII compatible strings.</div><div class='add'>+</div><div class='add'>+Thu May 15 12:19:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.c (HMAC_CTX_copy): adopted</div><div class='add'>+	  prototype change in openssl bundled with newer OpenBSD.</div><div class='add'>+	  a patch from Takahiro Kambe &lt;taca at back-street.net&gt; in</div><div class='add'>+	  [ruby-dev:34691].</div><div class='add'>+</div><div class='add'>+Wed May 14 22:09:25 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: fix typo.</div><div class='add'>+</div><div class='add'>+Wed May 14 21:49:14 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_object.rb: new tests to achieve over 90% test</div><div class='add'>+	  coverage of object.c, eval.c and eval_method.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_trace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_variable.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_class.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed May 14 12:46:37 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (insn_operand_intern): remove Qundef related code.</div><div class='add'>+</div><div class='add'>+Wed May 14 12:42:36 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_count): Override Enumerable#count for better</div><div class='add'>+	  performance.</div><div class='add'>+</div><div class='add'>+Wed May 14 11:29:06 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: add a "putcbase" instruction.</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def: fix to use putcbase instruction for</div><div class='add'>+	  class search.  Qundef should not be used.</div><div class='add'>+</div><div class='add'>+Wed May 14 07:49:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): defer calling of rb_frame_self() until it</div><div class='add'>+	  become really necessary.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): ditto.</div><div class='add'>+</div><div class='add'>+Wed May 14 00:55:56 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb: remove a duplicative method.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_utf16.rb: rename a conflicting method name.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fixnum.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed May 14 00:45:58 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.c (rb_add_method): fix check for warning when</div><div class='add'>+	  Object#initialize is redefined. (same as 1.8)</div><div class='add'>+</div><div class='add'>+Tue May 13 23:32:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_yield): use rb_yield_values2.</div><div class='add'>+</div><div class='add'>+	* enum.c (DEFINE_ENUMFUNCS): macro to define enumerator and yielding</div><div class='add'>+	  functions.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_all_func, enum_any_func, enum_one_func,</div><div class='add'>+	  enum_none_func): reduced duplicate code.</div><div class='add'>+</div><div class='add'>+Tue May 13 15:09:38 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: Update rdoc.</div><div class='add'>+	  (enumerator_initialize): Discourage the use.</div><div class='add'>+	  (enum_each_slice, enum_each_cons, enumerator_each)</div><div class='add'>+	  (enumerator_with_index): Add a note about a call without a block.</div><div class='add'>+</div><div class='add'>+Tue May 13 08:25:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_gets): re-enable rdoc.</div><div class='add'>+	  (rb_f_readline): ditto.</div><div class='add'>+	  (rb_f_readlines): ditto.</div><div class='add'>+</div><div class='add'>+Tue May 13 07:56:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cat): fixed buffer overrun reported by</div><div class='add'>+	  Christopher Thompson &lt;cthompson at nexopia.com&gt; in [ruby-core:16746]</div><div class='add'>+</div><div class='add'>+Mon May 12 23:37:57 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (collect_local_variables_in_env): remove unnecessary check</div><div class='add'>+	  which causes: x=1;proc{local_variables}.call #=&gt; []</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_variable.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Mon May 12 23:05:24 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c, include/ruby/intern.h (rb_run_exec_options): externed.</div><div class='add'>+</div><div class='add'>+	* process.c (save_redirect_fd, save_env_i, save_env, run_exec_dup2,</div><div class='add'>+	  run_exec_open, run_exec_pgroup, run_exec_rlimit, rb_run_exec_options):</div><div class='add'>+	  save parent's process environments.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): remove calling run_exec_options()</div><div class='add'>+	  because cannot restore after spawn.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_execopts_env): upcase environment</div><div class='add'>+	  variable name for case insensitive platforms.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): set USER environment variable only when</div><div class='add'>+	  USERNAME is available.</div><div class='add'>+</div><div class='add'>+Mon May 12 22:23:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (once): use Object#object_id instead of Symbol#to_i.</div><div class='add'>+</div><div class='add'>+Mon May 12 21:34:46 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (rubybin): return expanded rubyexe instead of</div><div class='add'>+	  expanded ruby if available.</div><div class='add'>+</div><div class='add'>+Mon May 12 20:19:55 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (grep_i): Be aware of multiple values;</div><div class='add'>+	  fix [ruby-dev:34653].</div><div class='add'>+	  (grep_iter_i): Ditto.</div><div class='add'>+	  (count_i): Ditto.</div><div class='add'>+	  (find_i): Ditto.</div><div class='add'>+	  (find_index_i): Ditto.</div><div class='add'>+	  (find_all_i): Ditto.</div><div class='add'>+	  (reject_i): Ditto.</div><div class='add'>+	  (inject_i): Ditto.</div><div class='add'>+	  (inject_op_i): Ditto.</div><div class='add'>+	  (partition_i): Ditto.</div><div class='add'>+	  (group_by_i): Ditto.</div><div class='add'>+	  (first_i): Ditto.</div><div class='add'>+	  (sort_by_i): Ditto.</div><div class='add'>+	  (all_i): Ditto.</div><div class='add'>+	  (all_iter_i): Ditto.</div><div class='add'>+	  (any_i): Ditto.</div><div class='add'>+	  (any_iter_i): Ditto.</div><div class='add'>+	  (one_i): Ditto.</div><div class='add'>+	  (one_iter_i): Ditto.</div><div class='add'>+	  (none_i): Ditto.</div><div class='add'>+	  (none_iter_i): Ditto.</div><div class='add'>+	  (min_i): Ditto.</div><div class='add'>+	  (min_ii): Ditto.</div><div class='add'>+	  (max_i): Ditto.</div><div class='add'>+	  (max_ii): Ditto.</div><div class='add'>+	  (minmax_i): Ditto.</div><div class='add'>+	  (minmax_ii): Ditto.</div><div class='add'>+	  (min_by_i): Ditto.</div><div class='add'>+	  (max_by_i): Ditto.</div><div class='add'>+	  (minmax_by_i): Ditto.</div><div class='add'>+	  (member_i): Ditto.</div><div class='add'>+	  (take_i): Ditto.</div><div class='add'>+	  (take_while_i): Ditto.</div><div class='add'>+	  (drop_i): Ditto.</div><div class='add'>+	  (drop_while_i): Ditto.</div><div class='add'>+	  (cycle_i): Ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (each_with_index): Update rdoc.  each_with_index() takes</div><div class='add'>+	  arguments that are passed through to each(), and a hash preserves</div><div class='add'>+	  key order.</div><div class='add'>+</div><div class='add'>+Mon May 12 19:05:24 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): remove calling run_exec_options()</div><div class='add'>+	  because cannot restore after spawn. we'll fix this later.</div><div class='add'>+</div><div class='add'>+Mon May 12 18:16:44 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): need to call run_exec_options() before</div><div class='add'>+	  spawn if the platform doesn't have fork. [ruby-dev:34647]</div><div class='add'>+</div><div class='add'>+Mon May 12 15:20:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_vm_xmalloc): increase malloc_increase only if malloc</div><div class='add'>+	  succeeds.  failed malloc size can be huge.  it may increase</div><div class='add'>+	  malloc_limit too big which cause less GC and memory full.</div><div class='add'>+	  (ruby_vm_xrealloc): ditto.</div><div class='add'>+	  (rb_objspace): make params.limit and params.increase size_t.</div><div class='add'>+</div><div class='add'>+Mon May 12 15:04:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): made non static with small refactoring.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_do_scan): should adjust encoding</div><div class='add'>+	  before regex searching.</div><div class='add'>+</div><div class='add'>+Mon May 12 13:57:19 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): add NODE_OP_ASGN_{OR,AND}.  "defined?(a||=1)"</div><div class='add'>+	  should not operate assignment.  [ruby-dev:34645]</div><div class='add'>+</div><div class='add'>+Mon May 12 13:29:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigzero_p): check from MSB to LSB.  [ruby-dev:34649]</div><div class='add'>+</div><div class='add'>+Mon May 12 12:32:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (RUBYOPT): affected BASERUBY too.  [ruby-talk:301514]</div><div class='add'>+</div><div class='add'>+Mon May 12 12:27:55 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (assign_heap_slot): fix condition for number of objects in</div><div class='add'>+	  a heap.</div><div class='add'>+</div><div class='add'>+Mon May 12 12:24:48 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_to_i): really removed.  [ruby-dev:34641]</div><div class='add'>+</div><div class='add'>+Mon May 12 11:15:55 2008  Yuki Sonoda (Yugui) &lt;yugui@yugui.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (assign_heap_slot):  put the binary search routine in order.</div><div class='add'>+</div><div class='add'>+Mon May 12 10:52:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_gems), gem_prelude.rb: check if Gem is defined</div><div class='add'>+	  instead of Gem::Enable.</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb (load_full_rubygems_library, const_missing): prevent</div><div class='add'>+	  infinite recursion.  [ruby-dev:34539]</div><div class='add'>+</div><div class='add'>+Sun May 11 23:19:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (all_iter_i, any_iter_i): reduced duplicated code.</div><div class='add'>+</div><div class='add'>+Sun May 11 22:54:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (main): leave -I options for purelib.rb</div><div class='add'>+	  untouched.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (main): handle relative path -r options.</div><div class='add'>+</div><div class='add'>+Sun May 11 19:04:06 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: kill and join temporal threads that are</div><div class='add'>+	  created in each test.</div><div class='add'>+</div><div class='add'>+Sun May 11 17:58:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#with_stdin): defined.</div><div class='add'>+	  (TestProcess#test_argv0_noarg): don't use redirect_fds.</div><div class='add'>+	  [ruby-dev:34647]</div><div class='add'>+</div><div class='add'>+Sun May 11 17:57:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIRUBY): should not include extension library path.</div><div class='add'>+</div><div class='add'>+Sun May 11 14:40:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (SIZET2NUM): new macro.</div><div class='add'>+	  (NUM2SIZET): new macro.</div><div class='add'>+</div><div class='add'>+	* gc.c (struct rb_objspace): use size_t for increment, length and</div><div class='add'>+	  used for 64bit.</div><div class='add'>+	  (allocate_heaps): ditto.</div><div class='add'>+	  (assign_heap_slot): ditto.</div><div class='add'>+	  (set_heaps_increment): ditto.</div><div class='add'>+	  (gc_mark_all): ditto.</div><div class='add'>+	  (is_pointer_to_heap): ditto.</div><div class='add'>+	  (free_unused_heaps): ditto.</div><div class='add'>+	  (gc_sweep): ditto.</div><div class='add'>+	  (os_obj_of): ditto.</div><div class='add'>+	  (rb_gc_call_finalizer_at_exit): ditto.</div><div class='add'>+	  (count_objects): ditto.</div><div class='add'>+</div><div class='add'>+Sun May 11 13:14:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func_before_exec): extracted from</div><div class='add'>+	  thread_cleanup_func not to touch pthread data.</div><div class='add'>+	  pthread_cond_destroy in forked process may cause deadlock on</div><div class='add'>+	  Debian GNU/Linux Etch on x86, x86-64 and IA64.</div><div class='add'>+	  this doesn't cause resource leak because the process will exec soon.</div><div class='add'>+	  (terminate_atfork_before_exec_i): defined.</div><div class='add'>+	  (rb_thread_atfork_before_exec): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_thread_atfork_before_exec): declared.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_exec_atfork): call rb_thread_atfork_before_exec</div><div class='add'>+	  instead of rb_thread_atfork.</div><div class='add'>+</div><div class='add'>+	* io.c (popen_exec): call rb_thread_atfork_before_exec instead of</div><div class='add'>+	  rb_thread_atfork.</div><div class='add'>+</div><div class='add'>+Sat May 10 22:14:03 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): single '^' does not mean negation.</div><div class='add'>+	  [ruby-dev:34632]</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should check src size, not str size.</div><div class='add'>+	  [ruby-dev:34637]</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should not turn on modify flag if no</div><div class='add'>+	  modification happens.  [ruby-dev:34631]</div><div class='add'>+</div><div class='add'>+Sat May 10 18:11:18 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): zero length record separator should</div><div class='add'>+	  split a string into paragraphs.  [ruby-dev:34586]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): RDoc updated.</div><div class='add'>+</div><div class='add'>+Sat May 10 11:36:20 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (env_mark): mark env-&gt;block.self.  prevent SEGV when GC occur</div><div class='add'>+	  in prepare_iseq_build with gcc version 3.4.6 [FreeBSD] 20060305 on</div><div class='add'>+	  FreeBSD/amd64.</div><div class='add'>+</div><div class='add'>+Fri May  9 19:16:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (timeofday): use monotonic clock.  based on a patch</div><div class='add'>+	  from zimbatm &lt;zimbatm at oree.ch&gt; in [ruby-core:16627].</div><div class='add'>+</div><div class='add'>+Fri May  9 07:47:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_0): dynamic stack direction code should be</div><div class='add'>+	  consistent with static one.  [ruby-talk:301152]</div><div class='add'>+</div><div class='add'>+Fri May  9 00:03:50 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): operator assignment "a += b rescue c" should be</div><div class='add'>+	  parsed as "a += (b rescue c)" just like normal assignment.</div><div class='add'>+	  [ruby-talk:301000]</div><div class='add'>+</div><div class='add'>+Thu May  8 18:14:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_and): bit-wise operation should not take float</div><div class='add'>+	  values.  [ruby-dev:34612]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_or): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_xor): ditto.</div><div class='add'>+</div><div class='add'>+Thu May  8 17:44:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, ext/extmk.rb, lib/mkmf.rb: use absolute path for RUBYOPT.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): guard load_path from GC.</div><div class='add'>+	  gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) optimizes</div><div class='add'>+	  load_path by holding only RARRAY_LEN(load_path) and</div><div class='add'>+	  RARRAY_PTR(load_path) in registers on IA64 GNU/Linux Etch.</div><div class='add'>+</div><div class='add'>+Thu May  8 16:41:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIRUBY), common.mk (RUBYOPT): add purelib.rb.</div><div class='add'>+	  [ruby-core:16642]</div><div class='add'>+</div><div class='add'>+Thu May  8 16:00:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ! and ? at the bottom are no longer part</div><div class='add'>+	  of valid symbol names.  [ruby-dev:34590]</div><div class='add'>+</div><div class='add'>+Thu May  8 15:36:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_gc_save_machine_context): call FLUSH_REGISTER_WINDOWS</div><div class='add'>+	  to mark the register stack from GC on another thread.</div><div class='add'>+</div><div class='add'>+Thu May  8 15:14:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_sort_bang): freeze temporary array.</div><div class='add'>+</div><div class='add'>+Thu May  8 13:19:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): mark stat_insn_usage only when ptr is not</div><div class='add'>+	  null.</div><div class='add'>+</div><div class='add'>+Thu May  8 10:44:04 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (sort_reentered): reentered check may be called from</div><div class='add'>+	  Array#sort.</div><div class='add'>+</div><div class='add'>+Thu May  8 09:51:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (sort_1, sort_2): check for reentered and if elements are</div><div class='add'>+	  accessible.  [ruby-core:16679]</div><div class='add'>+</div><div class='add'>+Thu May  8 06:43:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_exe_r, dln_find_file_r): reentrant versions.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext, rb_find_file), process.c (proc_exec_v),</div><div class='add'>+	  (rb_proc_exec, proc_spawn_v, proc_spawn), ruby.c (process_options):</div><div class='add'>+	  use reentrant versions.</div><div class='add'>+</div><div class='add'>+Thu May  8 06:27:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_key_p): thread local storage stores ID.</div><div class='add'>+</div><div class='add'>+Thu May  8 01:10:03 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should squeeze properly.  [ruby-dev:34587]</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): had a bug in treating multi-byte character</div><div class='add'>+	  replacement.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): need not to do anything for empty</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb (TestM17NComb::test_str_delete): add</div><div class='add'>+	  test for empty receiver.</div><div class='add'>+</div><div class='add'>+Wed May  7 20:19:18 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options, ruby_set_argv): set encoding of rb_argv</div><div class='add'>+	  after Init_prelude() because cannot load encoding extensions before</div><div class='add'>+	  it.</div><div class='add'>+</div><div class='add'>+Wed May  7 20:00:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (bit_coerce): float should not be a valid operand of</div><div class='add'>+	  bitwise operations.  [ruby-dev:34583]</div><div class='add'>+</div><div class='add'>+Wed May  7 19:35:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_key_p): should always convert symbol to ID.</div><div class='add'>+	  [ruby-dev:34588]</div><div class='add'>+</div><div class='add'>+Wed May  7 19:30:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_divide): float division should floor() before</div><div class='add'>+	  rounding into integer.  [ruby-dev:34584]</div><div class='add'>+</div><div class='add'>+Wed May  7 18:02:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_to_i): remove obsolete method.  preparation for</div><div class='add'>+	  symbol GC.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_to_sym): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_id2name): ditto.</div><div class='add'>+</div><div class='add'>+Wed May  7 17:43:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_puts_ary): check recursion first.  [ruby-dev:34580]</div><div class='add'>+</div><div class='add'>+Wed May  7 17:41:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_eval_body): initialize retval.  [ruby-dev:34576]</div><div class='add'>+</div><div class='add'>+Wed May  7 13:02:56 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_fdiv): flo.fdiv(NaN) should result NaN.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_quo): renamed and moved from bignum.c.</div><div class='add'>+	  [ruby-dev:34582]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_fdiv): update RDoc description</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_s_new_m): small refactoring.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2dbl): no need for forceful warning when</div><div class='add'>+	  converting to float.  overflow is a nature of float values.</div><div class='add'>+</div><div class='add'>+Wed May  7 00:54:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzreader_gets): may cause infinite loop.</div><div class='add'>+	  a patch from Kouya &lt;kouyataifu4 at gmail.com&gt; in</div><div class='add'>+	  [ruby-reference-manual:762].</div><div class='add'>+</div><div class='add'>+Tue May  6 02:08:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb: don't set Thread.abort_on_exception.</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: ensure disconnecting imap to terminate</div><div class='add'>+	  receiver thread.</div><div class='add'>+</div><div class='add'>+Tue May  6 00:29:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (insn_operand_intern): should handle Qundef embedded in</div><div class='add'>+	  operand.  [ruby-core:16656]</div><div class='add'>+</div><div class='add'>+Tue May  6 00:00:02 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): should call compile_cpath() for</div><div class='add'>+	  modules as well.  [ruby-dev:34585]</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): add undef handling.</div><div class='add'>+</div><div class='add'>+Mon May  5 23:49:40 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): was using wrong variable.  [ruby-dev:34592]</div><div class='add'>+</div><div class='add'>+Mon May  5 20:07:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): IO#flush problem within threads.  a patch from</div><div class='add'>+	  &lt;s.wanabe at gmail.com&gt; in [ruby-dev:34595].</div><div class='add'>+</div><div class='add'>+Mon May  5 19:58:44 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): protect some expression from</div><div class='add'>+	  segmentation fault.  a patch from wanabe &lt;s.wanabe at gmail.com&gt;</div><div class='add'>+	  in [ruby-dev:34593].</div><div class='add'>+</div><div class='add'>+Mon May  5 19:49:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_def): Struct.new(0) should not SEGV.</div><div class='add'>+	  based on the patch from wanabe &lt;s.wanabe at gmail.com&gt; in</div><div class='add'>+	  [ruby-dev:34594].</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): call to_str on name object.</div><div class='add'>+</div><div class='add'>+Mon May  5 17:17:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): wrap ruby_finalize_0 by SAVE_ROOT_JMPBUF to</div><div class='add'>+	  avoid SEGV by at_exit { Fiber.new{}.resume } on IA64.</div><div class='add'>+</div><div class='add'>+Mon May  5 12:12:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): should adjust length before making</div><div class='add'>+	  sub-array.</div><div class='add'>+</div><div class='add'>+Mon May  5 11:36:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_dup): should dupe corresponding information.</div><div class='add'>+	  [ruby-dev:34581]</div><div class='add'>+</div><div class='add'>+Mon May  5 11:13:50 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_cpath): use Qundef to denote cbase lookup.</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): Qundef is passed for cbase.</div><div class='add'>+</div><div class='add'>+	* insns.def (setconstant): ditto.</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_check_if_namespace): use rb_inspect()</div><div class='add'>+	  instead of rb_obj_as_string() for better description.</div><div class='add'>+</div><div class='add'>+Mon May  5 02:10:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (set_heaps_increment): fix memory allocation strategy by</div><div class='add'>+	  determining heaps_inc from heaps_used, not objects_delta.</div><div class='add'>+	  (struct rb_objspace): delta removed.  change increment, length and</div><div class='add'>+	  used to long for LP64.</div><div class='add'>+	  (objects_delta): removed.</div><div class='add'>+	  (allocate_heaps): add next_heaps_length argument.</div><div class='add'>+	  (init_heap): renamed from add_heap.</div><div class='add'>+	  (garbage_collect): use heaps_increment in dont_gc.</div><div class='add'>+</div><div class='add'>+Sun May  4 21:09:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb: use $stderr instead of $deferr.</div><div class='add'>+</div><div class='add'>+Sun May  4 16:04:28 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (obj2nsec): fix string argument.</div><div class='add'>+</div><div class='add'>+Sun May  4 14:29:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_respond_to): check the result of respond_to? method</div><div class='add'>+	  by RTEST.</div><div class='add'>+</div><div class='add'>+Sun May  4 12:57:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): return original string.</div><div class='add'>+</div><div class='add'>+Sat May  3 20:57:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (Test::Unit::Assertions#assert_normal_exit):</div><div class='add'>+	  new method.</div><div class='add'>+</div><div class='add'>+Sat May  3 18:10:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timespec): raise TypeError for nil and other objects</div><div class='add'>+	  which has no divmod method.</div><div class='add'>+</div><div class='add'>+Fri May  2 23:59:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (internal_read_func, internal_write_func): split from</div><div class='add'>+	  internal_io_func.</div><div class='add'>+</div><div class='add'>+Fri May  2 23:55:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_hooked_variable): guard *var from GC to</div><div class='add'>+	  prevent collecting argf under RUBY_DEBUG=gc_stress.</div><div class='add'>+</div><div class='add'>+Fri May  2 17:29:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): call to_int if step is not a numeric</div><div class='add'>+	  value.  [ruby-dev:34575]</div><div class='add'>+</div><div class='add'>+Fri May  2 16:10:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): do not forcefully convert steps into</div><div class='add'>+	  integers.  [ruby-dev:34571]</div><div class='add'>+</div><div class='add'>+Fri May  2 14:52:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: move fontifying code from hook.  a patch from</div><div class='add'>+	  Phil Hagelberg &lt;phil at hagelb.org&gt; in [ruby-core:16636].</div><div class='add'>+</div><div class='add'>+Fri May  2 14:10:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): step may be bignum.</div><div class='add'>+</div><div class='add'>+Fri May  2 13:52:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): remove MatchData#select.  [ruby-dev:34563]</div><div class='add'>+</div><div class='add'>+Thu May  1 23:59:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_divide), numeric.c (fix_divide): check for result</div><div class='add'>+	  domain.  [ruby-dev:34559]</div><div class='add'>+</div><div class='add'>+Thu May  1 23:57:06 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb:  This patch from Brian Candler adds a FailEOF mode which</div><div class='add'>+	  can be activated to have net/telnet raise EOFError exceptions when the</div><div class='add'>+	  remote connection is closed.  The default behavior remains unchanged though.</div><div class='add'>+</div><div class='add'>+Thu May  1 23:43:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): check if step can be converted to an integer.</div><div class='add'>+	  [ruby-dev:34558]</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): allow float step bigger than zero but less</div><div class='add'>+	  than one.  [ruby-dev:34557]</div><div class='add'>+</div><div class='add'>+Thu May  1 23:20:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_divide): return an integer for idiv.</div><div class='add'>+	  [ruby-dev:34553]</div><div class='add'>+</div><div class='add'>+Thu May  1 20:47:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): should access converted hash value.</div><div class='add'>+	  [ruby-dev:34555]</div><div class='add'>+</div><div class='add'>+Thu May  1 20:31:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_parse.rb (TestParse::test_void_expr_stmts_value):</div><div class='add'>+	  shut up warning.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_to_f): no need for forceful warning when</div><div class='add'>+	  converting to float.  overflow is a nature of float values.</div><div class='add'>+</div><div class='add'>+Thu May  1 16:10:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_delete_if): return enumerator if no block given.</div><div class='add'>+	  [ruby-dev:34554]</div><div class='add'>+</div><div class='add'>+Wed Apr 30 21:36:40 2008  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (url_encode): [ruby-dev:34497] ERB::Util#url_encode</div><div class='add'>+	  bug fix. Reported by rubikitch.</div><div class='add'>+</div><div class='add'>+	* test/erb/test_erb.rb: ditto</div><div class='add'>+</div><div class='add'>+Wed Apr 30 20:11:36 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: Fixing a bug where line endings would not be properly</div><div class='add'>+	  escaped when the two character ending was broken up into separate TCP</div><div class='add'>+	  packets.  Issue reported and patched by Brian Candler.</div><div class='add'>+</div><div class='add'>+Wed Apr 30 18:03:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_load_path), vm_core.h (rb_vm_t): moved to VM.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_get_load_path): returns absolute load path.</div><div class='add'>+</div><div class='add'>+	* load.c (load_path_getter): $LOAD_PATH getter.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext, rb_find_file), ruby.c (push_include,</div><div class='add'>+	  ruby_init_loadpath): use the accessor.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_mark): mark load_path.</div><div class='add'>+</div><div class='add'>+Wed Apr 30 17:47:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): use local variable.  a patch from wanabe</div><div class='add'>+	  &lt;s.wanabe AT gmail.com&gt; in [ruby-dev:34537].  [ruby-dev:34492]</div><div class='add'>+</div><div class='add'>+Wed Apr 30 16:10:18 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: specify the values of the enumeration constants</div><div class='add'>+	  explicitly.  [ruby-dev:34489]</div><div class='add'>+</div><div class='add'>+Wed Apr 30 12:32:39 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_redirect_fd): prohibit duplex IO.</div><div class='add'>+	  (check_exec_fds): record maxhint even if close_others is not</div><div class='add'>+	  specified.</div><div class='add'>+	  (rb_exec_arg_fixup): renamed from rb_exec_arg_fix.</div><div class='add'>+</div><div class='add'>+Mon Apr 28 20:24:27 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_marshal_load): checks the given</div><div class='add'>+	  denominator. [ruby-dev:34536]</div><div class='add'>+</div><div class='add'>+Mon Apr 28 14:21:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (POSFIXABLE): use FIXNUM_MAX+1 instead of</div><div class='add'>+	  FIXNUM_MAX to make it possible to convert to double accurately on</div><div class='add'>+	  environments with 64bit VALUE and 64bit double.</div><div class='add'>+	  It assumes FLT_RADIX is 2.</div><div class='add'>+	  fix RubyForge bug #14102.</div><div class='add'>+</div><div class='add'>+Mon Apr 28 12:48:57 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_exec_arg_addopt, rb_exec_arg_addopt): now can specify</div><div class='add'>+	  close_exec on having no fork environment (but still meaningless).</div><div class='add'>+</div><div class='add'>+Mon Apr 28 11:11:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (run_exec_options): don't call FIX2INT for nil.</div><div class='add'>+</div><div class='add'>+Mon Apr 28 11:11:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (method_name): should return symbols instead of strings.</div><div class='add'>+	  [ruby-dev:34531]</div><div class='add'>+</div><div class='add'>+Mon Apr 28 09:02:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_exec_arg_init): declared.</div><div class='add'>+	  (rb_exec_arg_addopt): declared.</div><div class='add'>+	  (rb_exec_arg_fix): declared.</div><div class='add'>+	  (rb_exec_initarg): removed.</div><div class='add'>+	  (rb_exec_getargs): removed.</div><div class='add'>+	  (rb_exec_initarg2): removed.</div><div class='add'>+</div><div class='add'>+	* io.c (struct popen_arg): make execarg as a pointer.</div><div class='add'>+	  (popen_exec): follow popen_arg change.</div><div class='add'>+	  (pipe_open): add eargp argument.  extract argc and argv from eargp.</div><div class='add'>+	  use rb_exec_arg_addopt to add redirect options.</div><div class='add'>+	  (pipe_open_v): set up struct rb_exec_arg.</div><div class='add'>+	  (pipe_open_s): set up struct rb_exec_arg.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_exec_arg_addopt): new function extracted from</div><div class='add'>+	  check_exec_options_i.</div><div class='add'>+	  (check_exec_options_i): use rb_exec_arg_addopt.</div><div class='add'>+	  (rb_check_exec_options): opthash is always a hash now.</div><div class='add'>+	  (rb_exec_getargs): make it static.</div><div class='add'>+	  (rb_exec_fillarg): renamed from rb_exec_initarg2.  don't set up</div><div class='add'>+	  redirect_fds.</div><div class='add'>+	  (rb_exec_arg_init): new function.</div><div class='add'>+	  (rb_exec_arg_fix): new function.</div><div class='add'>+	  (rb_f_exec): use rb_exec_arg_init and rb_exec_arg_fix.  use</div><div class='add'>+	  rb_exec_arg_addopt to set close_others option.</div><div class='add'>+	  (run_exec_options): make close_others by default.</div><div class='add'>+	  (rb_spawn_internal): use rb_exec_arg_init and rb_exec_arg_fix.  use</div><div class='add'>+	  rb_exec_arg_addopt to set close_others option.</div><div class='add'>+</div><div class='add'>+Sun Apr 27 18:59:04 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_expt): use f_rational_new2. [ruby-dev:34524]</div><div class='add'>+</div><div class='add'>+Sun Apr 27 15:23:40 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_count): add a GC.count method.  This method returns</div><div class='add'>+	  a GC invoking count.</div><div class='add'>+</div><div class='add'>+Sun Apr 27 12:20:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_t), gc.c (rb_objspace, rb_newobj), vm.c</div><div class='add'>+	  (Init_BareVM): per-VM object space support, which is disabled now.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_alloc), vm.c (Init_BareVM): should not use ruby</div><div class='add'>+	  malloc here.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect, etc): performance improvement by passing the</div><div class='add'>+	  reference instead of referring the global variable in each functions.</div><div class='add'>+</div><div class='add'>+Sun Apr 27 08:06:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_set_argv): ARGV should be locale encoding.</div><div class='add'>+	  [ruby-list:44861]</div><div class='add'>+</div><div class='add'>+Sun Apr 27 01:46:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3.popen3w): removed.</div><div class='add'>+	  (Open3.popen3): notice wait_thr.</div><div class='add'>+</div><div class='add'>+Sun Apr 27 01:13:05 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc, test/rdoc:  Update to RDoc 2.0.0 r56.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 21:30:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_hash_dup): declared.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_dup): new function.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): don't modify option hash.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 18:36:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c, signal.c, thread.c, thread_win32.c, include/ruby/intern.h:</div><div class='add'>+	  suppress warnings.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 17:42:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (builtin_types), gc.c (count_objects): added Complex and</div><div class='add'>+	  Rational.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 17:35:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_eNOERROR): renamed.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 17:30:11 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, gc.c: remove T_BLOCK.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: re-number T_xxx.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 17:31:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_cProcessTms, rb_cProcessStatus): renamed.</div><div class='add'>+</div><div class='add'>+	* error.c (builtin_types), signal.c (siglist), st.c (primes),</div><div class='add'>+	  struct.c (ref_func), time.c (months): constified.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 13:00:41 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb: double fork is replaced by spawn with Process.detach.</div><div class='add'>+	  (Open3.popen3w): new method to access the thread returned by</div><div class='add'>+	  Process.detach.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 00:47:43 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn_internal): new function to specify</div><div class='add'>+	  default_close_others.</div><div class='add'>+	  (rb_spawn): specify default_close_others true.</div><div class='add'>+	  (rb_f_system): call rb_spawn_internal with default_close_others as</div><div class='add'>+	  false.</div><div class='add'>+</div><div class='add'>+Sat Apr 26 12:26:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): use INT2FIX() for fixnum values.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 17:56:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (free_unused_heaps): preserve last used heap segment to</div><div class='add'>+	  reduce malloc() call.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 17:54:10 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (HEAP_SIZE): use smaller heap segment (2K) for more chance</div><div class='add'>+	  to be freed.  based on patch from authorNari &lt;authornari at gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_newobj_from_heap): eventually allocate heap segments.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 15:35:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn): rb_exec_initarg() returns new argc and argv in</div><div class='add'>+	  earg.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 12:37:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (flatten): returns an instance of same class.</div><div class='add'>+	  [ruby-core:16554]</div><div class='add'>+</div><div class='add'>+Fri Apr 25 10:52:27 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h: define mode_t for umask.</div><div class='add'>+</div><div class='add'>+	* process.c (check_exec_options_i, check_exec_fds, run_exec_options):</div><div class='add'>+	  support "close_others" only when fork(2) is available.</div><div class='add'>+</div><div class='add'>+Fri Apr 25 00:16:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: include sys/stat.h for umask.</div><div class='add'>+</div><div class='add'>+Thu Apr 24 23:25:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_env_clear): declared.</div><div class='add'>+	  (rb_io_mode_modenum): declared.</div><div class='add'>+	  (rb_close_before_exec): declared.</div><div class='add'>+	  (struct rb_exec_arg): add options and redirect_fds field.</div><div class='add'>+	  (rb_check_argv): removed.</div><div class='add'>+	  (rb_exec_initarg): declared.</div><div class='add'>+	  (rb_exec_getargs): declared.</div><div class='add'>+	  (rb_exec_initarg2): declared.</div><div class='add'>+	  (rb_fork): add third argument: fds.</div><div class='add'>+</div><div class='add'>+	* io.c (max_file_descriptor): new static variable to record maximum</div><div class='add'>+	  file descriptor ruby used.</div><div class='add'>+	  (UPDATE_MAXFD): new macro.</div><div class='add'>+	  (UPDATE_MAXFD_PIPE): new macro.</div><div class='add'>+	  (rb_io_mode_modenum): externed.</div><div class='add'>+	  (rb_sysopen): update max_file_descriptor.</div><div class='add'>+	  (rb_close_before_exec): new function.</div><div class='add'>+	  (popen_exec): redirection removed because it is done by extended</div><div class='add'>+	  spawn mechanism.</div><div class='add'>+	  (pipe_open): generate a hash for spawn options to specify</div><div class='add'>+	  redirections.</div><div class='add'>+	  (pipe_open_v): use rb_exec_getargs.</div><div class='add'>+	  (pipe_open_s): use rb_exec_getargs.</div><div class='add'>+	  (rb_io_initialize): update max_file_descriptor.</div><div class='add'>+</div><div class='add'>+	* process.c (hide_obj): new function.</div><div class='add'>+	  (check_exec_redirect_fd): new function.</div><div class='add'>+	  (check_exec_redirect): new function.</div><div class='add'>+	  (check_exec_options_i): new function.</div><div class='add'>+	  (check_exec_fds): new function.</div><div class='add'>+	  (rb_check_exec_options): new function.</div><div class='add'>+	  (check_exec_env_i): new function.</div><div class='add'>+	  (rb_check_exec_env): new function.</div><div class='add'>+	  (rb_exec_getargs): new function.</div><div class='add'>+	  (rb_exec_initarg2): new function.</div><div class='add'>+	  (rb_exec_initarg): new function.</div><div class='add'>+	  (rb_f_exec): use rb_exec_initarg.</div><div class='add'>+	  (intcmp): new function.</div><div class='add'>+	  (run_exec_dup2): new function.</div><div class='add'>+	  (run_exec_close): new function.</div><div class='add'>+	  (run_exec_open): new function.</div><div class='add'>+	  (run_exec_pgroup): new function.</div><div class='add'>+	  (run_exec_rlimit): new function.</div><div class='add'>+	  (run_exec_options): new function.</div><div class='add'>+	  (rb_exec): call run_exec_options.</div><div class='add'>+	  (move_fds_to_avoid_crash): new function.</div><div class='add'>+	  (pipe_nocrash): new function.</div><div class='add'>+	  (rb_fork): use pipe_nocrash to avoid file descriptor conflicts.</div><div class='add'>+	  (rb_spawn): use rb_exec_initarg.</div><div class='add'>+	  (rlimit_resource_name2int): extracted from rlimit_resource_type.</div><div class='add'>+	  (rlimit_type_by_hname): new function.</div><div class='add'>+	  (rlimit_type_by_lname): new function.</div><div class='add'>+	  (rlimit_resource_type): use rlimit_type_by_hname.</div><div class='add'>+	  (proc_daemon): add fds argument for rb_fork.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_env_clear): renamed from env_clear and externed.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:34086]</div><div class='add'>+</div><div class='add'>+Thu Apr 24 23:00:58 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: fix typos.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (rubyexec): move Open3.popen3 call into timeout</div><div class='add'>+	  block.</div><div class='add'>+</div><div class='add'>+Thu Apr 24 22:34:52 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_comparable.rb: new tests for Comparable, to achieve</div><div class='add'>+	  100% test coverage of compar.c.</div><div class='add'>+</div><div class='add'>+Thu Apr 24 17:19:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set safe_level before loading script.</div><div class='add'>+	  [ruby-dev:34421]</div><div class='add'>+</div><div class='add'>+Thu Apr 24 14:15:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_find_1): prior files with extensions to files sans</div><div class='add'>+	  extensions.  [ruby-core:16517]</div><div class='add'>+</div><div class='add'>+Thu Apr 24 00:26:06 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/descriptions.rb: fixed wrong class nestings.</div><div class='add'>+</div><div class='add'>+Thu Apr 24 00:20:01 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: add a test for set_trace_func.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: move "rubyexec" method from test_rubyoptions.rb.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb: use rubyexec in envutil.rb.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of thread.c.</div><div class='add'>+</div><div class='add'>+Wed Apr 23 15:28:52 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_no_create): failed</div><div class='add'>+	  notice moved from comment to assertion message. [ruby-dev:29127]</div><div class='add'>+</div><div class='add'>+Wed Apr 23 11:49:54 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#each, SortedSet#each, TC_Set#test_each): Return</div><div class='add'>+	  an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+Wed Apr 23 00:36:03 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (start_server): add timeout to server.join.</div><div class='add'>+</div><div class='add'>+Wed Apr 23 00:18:45 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_symbol.rb (TestSymbol#test_to_proc): Improve</div><div class='add'>+	  tests of Symbol#to_proc.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 22:40:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRb::DRbServer::check_insecure_method): should</div><div class='add'>+	  check method names by symbols, not by strings.  a patch from</div><div class='add'>+	  Kazuhiro NISHIYAMA &lt;zn at mbf.nifty.com&gt; in [ruby-dev:34487].</div><div class='add'>+</div><div class='add'>+Tue Apr 22 22:15:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-{case,label}-indent): up list from</div><div class='add'>+	  indentation point.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 21:09:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (score_table_A0, score_table_F0):</div><div class='add'>+	  type of content is unsigned char.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (push_broken_buf): 'c' is nkf_char.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (push_broken_buf): enc is 0 or pointer.</div><div class='add'>+</div><div class='add'>+	* ext/nkf//nkf.c (options): type of option is unsigned char.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 20:51:58 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (z_conv): characters must be nkf_char.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 19:23:05 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_initialize): Remove an undocumented</div><div class='add'>+	  feature (passing a block to the constructor) that's broken.</div><div class='add'>+	  This is not what I intended.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 17:54:05 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (exec_event_hooks): ``inline'' is a type modifier, not</div><div class='add'>+	  a type itself.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 16:24:27 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): do not use C++ comments.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 16:23:53 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use AC_USE_SYSTEM_EXTENSIONS.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 16:23:16 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.c (DECL_SC_REG): use __asm__ instead.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 16:18:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.c (DECL_SC_REG): typo fixed.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 15:25:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (struct timespec): needs time.h according to POSIX.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 13:19:48 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_stop_timer_thread): should clear</div><div class='add'>+	  timer_thread_id after stopping it.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 13:12:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_join): remove the current thread from the join list</div><div class='add'>+	  of the target thread.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 12:03:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_get_ev_const): search from the base klass if it</div><div class='add'>+	  is given.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 09:58:13 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: avoid warnings.</div><div class='add'>+</div><div class='add'>+Tue Apr 22 09:56:51 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): workaround for recent msvcrt's behavior.</div><div class='add'>+	  [ruby-core:16460]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 19:08:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_body): call rb_io_check_readable and</div><div class='add'>+	  rb_io_check_writable.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 17:45:27 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_each_value, fdbm_each_key, fdbm_each_pair):</div><div class='add'>+	  GDBM#{each,each_pair,each_key,each_value}: Return an enumerator</div><div class='add'>+	  if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_each_value, fgdbm_each_key,</div><div class='add'>+	  fgdbm_each_pair): GDBM#{each,each_pair,each_key,each_value}:</div><div class='add'>+	  Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (ossl_config_each):</div><div class='add'>+	  OpenSSL::Config#each: Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (hist_each): Readline::HISTORY#each:</div><div class='add'>+	  Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_each_value, fsdbm_each_key,</div><div class='add'>+	  fsdbm_each_pair): SDBM#{each,each_pair,each_key,each_value}:</div><div class='add'>+	  Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_each_byte, strio_each):</div><div class='add'>+	  StringIO#{each,each_line,each_byte}: Return an enumerator if no</div><div class='add'>+	  block is given.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (Init_stringio): Add #lines and #bytes,</div><div class='add'>+	  which are aliases to #each_line and #each_byte, respectively.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_each): WIN32OLE#each: Return an</div><div class='add'>+	  enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_gzreader_each_byte, rb_gzreader_each):</div><div class='add'>+	  Zlib::GzipReader#{each,each_line,each_byte}: Return an</div><div class='add'>+	  enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (Init_zlib): Add Zlib::GzipReader#lines and</div><div class='add'>+	  #bytes, which are aliases to #each_line and #each_byte,</div><div class='add'>+	  respectively.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 17:01:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_compile_with_option): check if src is a string.</div><div class='add'>+	  [ruby-core:16453]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 16:06:47 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_init): preserve the method name in ID.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_each): need not to call rb_to_id().</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_index): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 11:00:27 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): capture exception during defined?</div><div class='add'>+	  evaluation.  a patch from wanabe &lt;s.wanabe at gmail.com&gt; in</div><div class='add'>+	  [ruby-dev:34461].  [ruby-core:16010]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 10:06:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: should include &lt;errno.h&gt; to refer to errno.</div><div class='add'>+</div><div class='add'>+Mon Apr 21 09:58:04 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime): check errno to detect strftime(3)'s error.</div><div class='add'>+	  this is workaround for recent version of MSVCRT.</div><div class='add'>+	  [ruby-dev:34456]</div><div class='add'>+</div><div class='add'>+Mon Apr 21 08:54:30 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xmalloc): use size_t for malloc argument instead of long.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 21:00:21 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c, include/ruby/ruby.h: Export rb_cEnumerator.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 20:47:50 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: Resolve the method every time an enumeration</div><div class='add'>+	  method is run, not once when the enumerator is initialized as it</div><div class='add'>+	  was before, so that method_missing() and method (re)definition</div><div class='add'>+	  afterwards are both in effect; pointed out in: [ruby-core:16441]</div><div class='add'>+</div><div class='add'>+Sun Apr 20 15:11:00 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_rbuf_to_dst): removed.</div><div class='add'>+	  (copy_stream_fallback_body): don't bypass write method.</div><div class='add'>+	  (copy_stream_body): simplified.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 15:01:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct iseq_compile_data): moved label_no from</div><div class='add'>+	  new_label_body().</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_exception_table): allocates catch_table only</div><div class='add'>+	  when entries exist.</div><div class='add'>+</div><div class='add'>+	* compile.c (struct iseq_link_element, struct iseq_insn_data): made</div><div class='add'>+	  enum for debuggers.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 14:44:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix for splat in when and rescue.</div><div class='add'>+	  a patch from wanabe &lt;s.wanabe AT gmail.com&gt; in [ruby-dev:34429].</div><div class='add'>+	  [ruby-core:14537]</div><div class='add'>+</div><div class='add'>+Sun Apr 20 13:55:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_fallback): write directly (bypassing write method)</div><div class='add'>+	  if possible.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 12:49:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_fallback): read directly (bypassing readpartial</div><div class='add'>+	  method) if possible.</div><div class='add'>+</div><div class='add'>+Sun Apr 20 04:45:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_body): use readpartial and write method for</div><div class='add'>+	  non-IOs such as StringIO and ARGF.</div><div class='add'>+</div><div class='add'>+Fri Apr 18 20:57:33 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add tests to achieve over 95% test coverage</div><div class='add'>+	  of array.c.</div><div class='add'>+</div><div class='add'>+Fri Apr 18 17:37:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_locations): get rid of underflow.</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_current_machine_context): check if the main thread stack</div><div class='add'>+	  position may shrink under the initialized position.  [ruby-core:16436]</div><div class='add'>+</div><div class='add'>+Thu Apr 17 22:20:52 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.c (fun_so_to_utf_16be, fun_so_to_utf_16le): add</div><div class='add'>+	  parentheses to remove warnings of gcc.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): remove unused variables.</div><div class='add'>+</div><div class='add'>+	* compile.c (NODE_NEXT, NODE_REDO): remove unused labels.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert): remove unused variables.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_resolver_initialize,</div><div class='add'>+	  syck_resolver_detect_implicit, syck_emitter_emit): remove unused</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+Thu Apr 17 20:12:47 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_search): enable some assertions.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb: flunk message in win32.</div><div class='add'>+</div><div class='add'>+Thu Apr 17 16:07:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (ruby): run in C locale.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb (test_encoding): --encoding does not</div><div class='add'>+	  affect source code.</div><div class='add'>+</div><div class='add'>+Thu Apr 17 00:45:41 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (test_rlimit_nofile): reset RLIMIT_NOFILE</div><div class='add'>+	  before exit (for gcov).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rubyoptions.rb: new tests for option of ruby</div><div class='add'>+	  interpreter, to achieve over 95% test coverage of ruby.c.</div><div class='add'>+</div><div class='add'>+Wed Apr 16 02:40:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): preludes and parser need to run in safe</div><div class='add'>+	  level 0.  [ruby-dev:34407]</div><div class='add'>+</div><div class='add'>+Wed Apr 16 02:26:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): dln_find_file returns the pointer to a</div><div class='add'>+	  static buffer, so should copy it.  [ruby-dev:34409]</div><div class='add'>+</div><div class='add'>+Tue Apr 15 23:08:46 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb: fix cookie handling. [ruby-dev:34403]</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_cookie.rb: add a test for the above fix.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 19:20:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: #undef rb_argv moved before #define.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 18:02:17 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_argv): replaced with rb_get_argv().</div><div class='add'>+	  [ruby-Bugs-19514]</div><div class='add'>+</div><div class='add'>+Tue Apr 15 17:10:59 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb, lib/net/smtp.rb, lib/net/pop.rb: update</div><div class='add'>+	  URLs of Japanese documents.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 16:45:14 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_symbol.rb (TestSymbol#test_to_proc): add tests.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 15:38:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-encoding-map): added shift-jis for older</div><div class='add'>+	  versions.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-set-encoding):</div><div class='add'>+	  coding-system-to-mime-charset is not a standard function.</div><div class='add'>+	  [carbon-emacs:795]</div><div class='add'>+	  fix for the case that magic comment exists but coding system is</div><div class='add'>+	  absent.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode): use write-contents-functions or</div><div class='add'>+	  write-contents-hooks for older versions.</div><div class='add'>+</div><div class='add'>+Tue Apr 15 07:21:21 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_div): [ruby-dev:34357]</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_abs): use hypot.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_quo): do not force conversion.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb: omitted some meaningless tests.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 23:25:50 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_objectspace.rb: add a test for</div><div class='add'>+	  ObjectSpace.count_objects.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 22:44:24 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (SET_EXTERNAL_ENCODING): avoid call rb_enc_check() on</div><div class='add'>+	  half-baked result string.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): make search reentrant.  [ruby-dev:34223]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_parse.rb (TestParse::test_global_variable):</div><div class='add'>+	  should preserve $&amp; variable.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 17:23:27 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_delete_if, rb_hash_reject_bang, env_delete_if,</div><div class='add'>+	  env_reject_bang): Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 14:33:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h (compile_debug): made runtime option.</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_debug_print_indent): returns if debug_level exceeds</div><div class='add'>+	  the threshold.</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_debug_printf): printf to stderr.</div><div class='add'>+</div><div class='add'>+	* iseq.c (make_compile_option, make_compile_option_value): added</div><div class='add'>+	  debug_level option.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_compile_option_t): added debug_level.</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct iseq_compile_data): added node_level.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 12:52:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): use ruby_init_stack.  [ruby-dev:34350]</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_objspace_t): packed globals.  [ruby-dev:34348]</div><div class='add'>+</div><div class='add'>+	* gc.c (finalizers): removed.  [ruby-dev:34349]</div><div class='add'>+</div><div class='add'>+Mon Apr 14 11:30:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_new): new integer overflow check condition.</div><div class='add'>+	  suggested by TOYOFUKU Chikanobu &lt;nobu_toyofuku at nifty.com&gt; in</div><div class='add'>+	  [ruby-dev:34156].</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr 14 00:51:40 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_parse.rb: add tests to achieve over 95% test coverage</div><div class='add'>+	  of parse.y.</div><div class='add'>+</div><div class='add'>+Sun Apr 13 23:53:58 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_cycle): Make Enumerable#cycle do a finite loop when</div><div class='add'>+	  the number of cycles is specified.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_cycle): Ditto for Array#cycle.</div><div class='add'>+</div><div class='add'>+Sun Apr 13 18:52:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (lock_func): should not check interrupts in</div><div class='add'>+	  blocking region.  [ruby-dev:34378]</div><div class='add'>+</div><div class='add'>+Sat Apr 12 12:41:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec_node, ruby_run_node), ruby.c (process_options):</div><div class='add'>+	  use iseq instead of NODE.</div><div class='add'>+</div><div class='add'>+	* gc.c (source_filenames): removed.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, parse.y (yycompile, parser_mark, parser_free,</div><div class='add'>+	  ripper_initialize): rb_source_filename() is no longer used.</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h (ERROR_ARGS), parse.y (node_newnode, fixpos,</div><div class='add'>+	  parser_warn, e_option_supplied, warn_unless_e_option, range_op,</div><div class='add'>+	  cond0): nd_file is no longer used.</div><div class='add'>+</div><div class='add'>+Sat Apr 12 12:17:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb (require_relative): move require_relative from</div><div class='add'>+	  lib/require_relative.rb.  [ruby-core:16356]</div><div class='add'>+</div><div class='add'>+	* lib/require_relative.rb: removed.</div><div class='add'>+</div><div class='add'>+Sat Apr 12 05:55:57 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*, test/rubygems*:  Update to RubyGems 1.1.1 r1701.</div><div class='add'>+</div><div class='add'>+Sat Apr 12 03:13:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): set external encoding.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename, rb_file_s_dirname, rb_file_s_extname):</div><div class='add'>+	  copy encoding.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 17:35:06 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (count_i): modified to shut warning up.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 17:25:09 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (count_i, count_iter_i, enum_count, enum_find_index):</div><div class='add'>+	  Reduce code.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 17:06:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (find_index_i): modified to shut warning up.</div><div class='add'>+</div><div class='add'>+	* enum.c (find_index_iter_i): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 16:44:43 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find_index): Add support for find_index(obj);</div><div class='add'>+	  [ruby-dev:34313].</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_index): Define find_index as an alias to index.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 16:42:33 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/store.rb (YAML::load): modified to support empty</div><div class='add'>+	  database.</div><div class='add'>+</div><div class='add'>+Fri Apr 11 08:05:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): add volatile to avoid potential GC bug.  a</div><div class='add'>+	  patch from Tomoyuki Chikanaga &lt;chikanag at nippon-control-system.co.jp&gt;</div><div class='add'>+	  in [ruby-dev:34312].</div><div class='add'>+</div><div class='add'>+Thu Apr 10 23:08:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (PStore::dump, PStore::load): allow subclass</div><div class='add'>+	  overriding.  [ruby-dev:34305]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/store.rb (YAML::Store::marshal_dump_supports_canonical_option?):</div><div class='add'>+	  add a method to support faster PStore.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 20:36:45 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/rdebug.el, misc/README: Remove rdebug.el as per request</div><div class='add'>+	  from the maintainer and mention the ruby-debug project at</div><div class='add'>+	  RubyForge in README; bug#19043.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 19:41:00 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_loop): Mention StopIteration in the document.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 19:23:55 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_pop_m, rb_ary_shift_m): Update documents for</div><div class='add'>+	  #pop() and #shift().</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): Update document.  Assigning</div><div class='add'>+	  array[*args]= nil no longer removes elements.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 16:58:44 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): TYPE_USERDEF assigns id for ivars first.</div><div class='add'>+	  [ruby-dev:34159] by nagachika.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 15:03:47 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: removed obsolete library.  [ruby-core:16233]</div><div class='add'>+</div><div class='add'>+	* test/test_generator.rb: removed as well.  [ruby-dev:34306]</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: replaced by Hongli Lai's faster version.</div><div class='add'>+</div><div class='add'>+Thu Apr 10 10:27:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): sleep_cond is initialized at</div><div class='add'>+	  creation.  [ruby-Patches-19361].</div><div class='add'>+</div><div class='add'>+Wed Apr  9 14:43:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (lock_func): optimized and checks for interrupt_flag.</div><div class='add'>+	  based on a patch from Sylvain Joyeux in [ruby-Patches-19361] and</div><div class='add'>+	  [ruby-Patches-19362].</div><div class='add'>+</div><div class='add'>+Wed Apr  9 12:12:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: new tests from Sylvain Joyeux in</div><div class='add'>+	  [ruby-Patches-19361].</div><div class='add'>+</div><div class='add'>+Tue Apr  8 21:36:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_sleep): ensures to re-acquire at waking up.</div><div class='add'>+	  [ruby-Patches-19361]</div><div class='add'>+</div><div class='add'>+Tue Apr  8 11:00:14 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: remove Math first before overwriting by CMath.</div><div class='add'>+</div><div class='add'>+Tue Apr  8 10:34:10 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_require_safe): should check fname path after $SAFE is</div><div class='add'>+	  properly set.  [ruby-dev:34268]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): should always copy the quoting string.</div><div class='add'>+	  [ruby-core:16235]</div><div class='add'>+</div><div class='add'>+Tue Apr  8 10:30:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.c): depends on enc/prelude.rb.</div><div class='add'>+</div><div class='add'>+	* enc/prelude.rb: fixed initial library names.</div><div class='add'>+</div><div class='add'>+Tue Apr  8 03:39:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_provided): check expanded path for relative path</div><div class='add'>+	  features, loading or loaded features are already expanded in 1.9.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): no needs to check if provided before</div><div class='add'>+	  rb_require_safe.  [ruby-dev:34266]</div><div class='add'>+</div><div class='add'>+Mon Apr  7 22:41:21 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: cancelled recent changes (except to remove rdiv).</div><div class='add'>+</div><div class='add'>+	* bignum.c: ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c: added rb_big_idiv.</div><div class='add'>+</div><div class='add'>+Mon Apr  7 15:51:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_init_db): moved to enc/encdb.c.</div><div class='add'>+</div><div class='add'>+	* transcode.c (init_transcoder_table): moved to enc/trans/transdb.c.</div><div class='add'>+</div><div class='add'>+	* enc/depend (enc/encdb.o enc/trans/transdb.o): depend on</div><div class='add'>+	  corresponding headers.</div><div class='add'>+</div><div class='add'>+	* common.mk (COMMONOBJS): moved transcode.o from OBJS</div><div class='add'>+</div><div class='add'>+Mon Apr  7 12:26:32 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add a known-bug.</div><div class='add'>+</div><div class='add'>+Mon Apr  7 12:15:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each_func): should not leave a variable</div><div class='add'>+	  uninitialized, which could cause SEGV.</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): removed duplicated and unreachable code.</div><div class='add'>+</div><div class='add'>+Mon Apr  7 02:12:27 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_intern): need not to check if tainted.</div><div class='add'>+	  [ruby-dev:34219]</div><div class='add'>+</div><div class='add'>+Sun Apr  6 09:45:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_tell): check if closed.  [ruby-core:16223]</div><div class='add'>+</div><div class='add'>+Sat Apr  5 23:17:20 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cmath.rb: new.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: depends lib/cmath.rb.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: added rdiv.</div><div class='add'>+</div><div class='add'>+	* complex.c: removed some math functions.</div><div class='add'>+</div><div class='add'>+Sat Apr  5 05:50:57 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Fix uninitialized variable warnings.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generator/html.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb: Fix shadowed variable warning.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb: Fix redefined method warning.</div><div class='add'>+</div><div class='add'>+Sat Apr  5 02:13:52 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cmpint): moved from compar.c, to check bignum</div><div class='add'>+	  zero.</div><div class='add'>+</div><div class='add'>+Fri Apr  4 23:24:06 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_qs): wrong boundary condition.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_qs_utf8): ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr  4 14:11:36 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_qs): wrong boundary condition.  a patch from</div><div class='add'>+	  wanabe &lt;s.wanabe AT gmail.com&gt; in [ruby-dev:34248].</div><div class='add'>+</div><div class='add'>+Fri Apr  4 05:57:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (Net::POP3::do_finish): clear @n_mails and</div><div class='add'>+	  @n_bytes as well.  [ruby-core:16144]</div><div class='add'>+</div><div class='add'>+Fri Apr  4 01:59:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): add step for each iteration if begin and</div><div class='add'>+	  end are numeric.  [ruby-core:15990]</div><div class='add'>+</div><div class='add'>+Fri Apr  4 00:42:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): rdiv method removed.  [ruby-dev:34242]</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_quo): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_rdiv): ditto.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_div): ditto.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_fdiv): fdiv implementation restored.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_quo): RDoc updated.</div><div class='add'>+</div><div class='add'>+Thu Apr  3 21:51:45 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_int_check): function for DRY real check.</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_{add,sub,mul,div,expt}): use rb_num_coerce_bin().</div><div class='add'>+</div><div class='add'>+Thu Apr  3 19:59:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): check if cbase is a class or a module.</div><div class='add'>+	  [ruby-core:16118]</div><div class='add'>+</div><div class='add'>+Thu Apr  3 14:42:11 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (INSNS): add insns_info.inc.</div><div class='add'>+</div><div class='add'>+	* common.mk (INSNS): make incs separately for nmake.</div><div class='add'>+</div><div class='add'>+Thu Apr  3 13:20:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (endb.h, transdb.h, prelude.c): depend on $(PREP) and</div><div class='add'>+	  check if really changed.  [ruby-core:16102]</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, configure.in, {win32,bcc32}/Makefile.sub</div><div class='add'>+	  (MINIOBJS, ARCHMINIOBJS): separated.</div><div class='add'>+</div><div class='add'>+Thu Apr  3 09:00:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence, iseq_insns_unification,</div><div class='add'>+	  insn_data_to_s_detail): constified.</div><div class='add'>+</div><div class='add'>+	* iseq.c (insn_operand_intern, ruby_iseq_disasm_insn): ditto.</div><div class='add'>+</div><div class='add'>+	* template/{insns_info,opt_sc,optunifs}.inc.tmpl: ditto.</div><div class='add'>+</div><div class='add'>+	* tool/instruction.rb (OptUnifsIncGenerator): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr  3 08:46:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_include): add RDoc to describe that comparison</div><div class='add'>+	  for numeric is done according magnitude of values.</div><div class='add'>+	  [ruby-core:15907]</div><div class='add'>+</div><div class='add'>+Wed Apr  2 22:29:35 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_int_check): function for DRY integer check.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_rdiv): should always return rational number.</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_add, nurat_sub, nurat_mul, nurat_fdiv,</div><div class='add'>+	  nurat_cmp): use rb_num_coerce_bin().</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_division): does / and rdiv.</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): no longer use rb_p().</div><div class='add'>+</div><div class='add'>+Wed Apr  2 06:52:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): supports rational and complex numbers.  it's</div><div class='add'>+	  cheating since it uses rb_p().</div><div class='add'>+</div><div class='add'>+Wed Apr  2 06:24:06 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h: add new constants for rb_call()'s scope.</div><div class='add'>+</div><div class='add'>+	* eval.c (iterate_method): use CALL_* scope constant to specify</div><div class='add'>+	  proper scope value.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_each, rb_apply, rb_funcall, rb_funcall2, rb_funcall3):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 21:19:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: need to include &lt;float.h&gt; just once.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 16:40:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2dbl): more precise conversion at edge cases.</div><div class='add'>+	  [ruby-dev:34195]</div><div class='add'>+</div><div class='add'>+Tue Apr  1 14:43:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: get rid of empty expansion.</div><div class='add'>+</div><div class='add'>+	* configure.in: _setjmp is available but _longjmp is not on mingw.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 09:41:22 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile (config.h): need to define RUBY_SETJMP, etc.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 07:31:58 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems* test/rubygems*: Import RubyGems 1.1.0.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 03:20:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_SETJMP, RUBY_LONGJMP, RUBY_JMP_BUF): prefers</div><div class='add'>+	  _setjmp over setjmp and sigsetjmp.  [ruby-core:16023]</div><div class='add'>+	  __builtin_setjmp cannot handle a variable.</div><div class='add'>+</div><div class='add'>+	* configure.in (--with-setjmp-type): new option to override the</div><div class='add'>+	  default rule in the above.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),</div><div class='add'>+	  vm_core.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and</div><div class='add'>+	  RUBY_JMP_BUF.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 01:55:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::Config.default_config_hash): requires</div><div class='add'>+	  win32/resolv to use Win32::Resolv.  [ruby-dev:34138]</div><div class='add'>+</div><div class='add'>+Tue Apr  1 01:40:58 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: adopted the ruby's style.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr  1 00:17:35 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: revert.</div><div class='add'>+</div><div class='add'>+Mon Mar 31 18:57:36 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile.sub (config.h): define ssize_t.</div><div class='add'>+</div><div class='add'>+	* io.c (copy_stream_body): some platform don't have O_NOCTTY.</div><div class='add'>+</div><div class='add'>+Mon Mar 31 18:42:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check for ssize_t.  [ruby-dev:34184]</div><div class='add'>+</div><div class='add'>+Mon Mar 31 14:45:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_quo): should convert its operand to Rational.</div><div class='add'>+</div><div class='add'>+	* rational.c (string_to_r_strict): should raise TypeError.</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): should not redefine Bignum#div.</div><div class='add'>+	  Numeric#div will do.  [ruby-dev:34066]</div><div class='add'>+</div><div class='add'>+Mon Mar 31 04:05:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): set coderange while getting characters.</div><div class='add'>+</div><div class='add'>+Sun Mar 30 23:16:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_dup): should copy is_lambda attribute as well.</div><div class='add'>+	  [ruby-talk:296244]</div><div class='add'>+</div><div class='add'>+Sun Mar 30 15:33:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: IO.copy_stream implemented.  [ruby-dev:33843]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_fd_select): new function.</div><div class='add'>+</div><div class='add'>+	* configure.in (sys/sendfile.h): check the header file.</div><div class='add'>+	  (sendfile): check the function.</div><div class='add'>+	  (pread): check the function.</div><div class='add'>+</div><div class='add'>+Sat Mar 29 14:18:41 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/*: full update Ruby/Tk to support Ruby(1.9|1.8) and Tc/Tk8.5.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb: [incompatible] remove TileWidgets'</div><div class='add'>+	  instate/state/identify method to avoid the conflict with standard</div><div class='add'>+	  widget options. Those methods are renamed to ttk_instate/ttk_state/</div><div class='add'>+	  ttk_identify (tile_instate/tile_state/tile_identify are available</div><div class='add'>+	  too). Although I don't recommend, if you really need old methods,</div><div class='add'>+	  please define "Tk::USE_OBSOLETE_TILE_STATE_METHOD = true" before</div><div class='add'>+	  "require 'tkextlib/tile'".</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb: "Tk::Tile::__Import_Tile_Widgets__!"</div><div class='add'>+	  is obsolete. It outputs warning. To control default widget set,</div><div class='add'>+	  use "Tk.default_widget_set = :Ttk".</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: __IGNORE_UNKNOWN_CONFIGURE_OPTION__ method and</div><div class='add'>+	  __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode) method are defined</div><div class='add'>+	  as module methods of TkConfigMethod. It may help users to wrap old</div><div class='add'>+	  Ruby/Tk scripts (use standard widgets) to force to use Ttk widgets.</div><div class='add'>+	  Ttk widgets don't have some options of standard widgets which are</div><div class='add'>+	  control the view of widgets. When set ignore-mode true, configure</div><div class='add'>+	  method tries to ignore such unknown options with no exception.</div><div class='add'>+	  Of course, it may raise other troubles on the GUI design.</div><div class='add'>+	  So, those are a little danger methods.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: __IGNORE_UNKNOWN_CONFIGURE_OPTION__</div><div class='add'>+	  method and __set_IGNORE_UNKNOWN_CONFIGURE_OPTION__!(mode) method</div><div class='add'>+	  are defined as module methods of TkItemConfigMethod as the same</div><div class='add'>+	  purpose as TkConfigMethod's ones.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/ttk_wrapper.rb: A new example. This is a tool for</div><div class='add'>+	  wrapping old Ruby/Tk scripts (which use standard widgets) to use</div><div class='add'>+	  Ttk (Tile) widgets as default.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/tile/demo.rb: use ttk_instate/ttk_state</div><div class='add'>+	  method instead of instate/state method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/root, ext/tk/lib/tk/namespace.rb,</div><div class='add'>+	  ext/tk/lib/tk/text.rb, ext/tk/lib/tkextlib/*: some 'instance_eval's</div><div class='add'>+	  are replaced to "instance_exec(self)".</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: bug fix on KEY_TBL and PROC_TBL (?x is not</div><div class='add'>+	  a character code on Ruby1.9).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: support new style of operation argument</div><div class='add'>+	  on Tcl/Tk's 'trace' command for variables.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget, ext/tk/sample/demos-en/widget: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/textpeer.rb,</div><div class='add'>+	  ext/tk/sample/demos-en/textpeer.rb: new widget demo.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: decrease SEGV troubles (probably)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: remove Thread.critical access if Ruby1.9</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/multi-tk.rb: support Ruby1.9 (probably)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb: add method to define Tcl/Tk command</div><div class='add'>+	  to make Tcl/Tk theme sources (based on different version of Tile</div><div class='add'>+	  extension) available.</div><div class='add'>+	  (Tk::Tile::__define_LoadImages_proc_for_compatibility__)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tk/wm.rb: support dockable frames</div><div class='add'>+	  (Tcl/Tk8.5 feature). 'wm' command can treat many kinds of widgets</div><div class='add'>+	  as toplevel widgets.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/style.rb: ditto.</div><div class='add'>+	  (Tk::Tile::Style.__define_wrapper_proc_for_compatibility__)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: add actual_hash and metrics_hash to get</div><div class='add'>+	  properties as a hash. metrics_hash method returns a boolean value</div><div class='add'>+	  for 'fixed' option. But metrics method returns numeric value</div><div class='add'>+	  (0 or 1) for 'fixed' option, because of backward compatibility.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: sometimes fail to set callback procedure.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.sleep and Tk.wakeup method. Tk.sleep</div><div class='add'>+	  doesn't block the eventloop. It will be better to use the method</div><div class='add'>+	  in event callbacks.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tksleep_sample.rb: sample script about Tk.sleep.</div><div class='add'>+</div><div class='add'>+Thu Mar 27 20:44:22 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (f_lcm): removed.</div><div class='add'>+</div><div class='add'>+	* rational.c (rb_lcm, rb_gcdlcm): added.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (gcd, lcm, gcdlcm): removed.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (gcd, lcm, gcdlcm): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 26 18:11:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_constants): rdoc updated.  a patch from</div><div class='add'>+	  Florian Gilcher &lt;flo AT andersground.net&gt; in [ruby-core:16009].</div><div class='add'>+</div><div class='add'>+Wed Mar 26 00:55:28 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rand.rb: add tests to achieve over 95% test coverage</div><div class='add'>+	  of random.c.</div><div class='add'>+</div><div class='add'>+Wed Mar 26 00:28:55 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: add tests to achieve over 90% test</div><div class='add'>+	  coverage of rational.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb: ditto for complex.c.</div><div class='add'>+</div><div class='add'>+Tue Mar 25 19:34:05 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add tests.  [ruby-dev:34128]</div><div class='add'>+</div><div class='add'>+Tue Mar 25 19:09:04 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_new): fix size check.  [ruby-dev:34123]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_take, rb_ary_drop): check negative size and use</div><div class='add'>+	  NUM2LONG instead of FIX2LONG.  [ruby-dev:34123]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_take, enum_drop): check negative size.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Tue Mar 25 16:32:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): checks if the word is empty.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): typo fixed.  [ruby-dev:34122]</div><div class='add'>+</div><div class='add'>+Tue Mar 25 15:26:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): false short-circuit destination label may</div><div class='add'>+	  be needed.  [ruby-talk:295296]</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): put nil if false short-circuit is</div><div class='add'>+	  created.</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_massign_opt): no need to use alloca.</div><div class='add'>+</div><div class='add'>+Mon Mar 24 19:23:52 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (debug_lines): Always prepare a new array for each</div><div class='add'>+	  file's SCRIPT_LINES__ storage, instead of appending source lines</div><div class='add'>+	  every time a file is re-loaded; submitted by Rocky Bernstein in</div><div class='add'>+	  #18517.</div><div class='add'>+</div><div class='add'>+Mon Mar 24 10:25:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: sitearch should use target_cpu.  [ruby-core:15986]</div><div class='add'>+</div><div class='add'>+Sun Mar 23 02:51:57 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rlimit_resource_value): use NUM2RLIM.</div><div class='add'>+</div><div class='add'>+Sun Mar 23 02:28:01 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: fixed. [ruby-dev:34109]</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 21:32:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_gets, rb_f_readline, rb_f_readlines): delegates to ARGF</div><div class='add'>+	  as well as puts and putc.  [ruby-dev:34100]</div><div class='add'>+</div><div class='add'>+Fri Mar 21 21:26:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::Hosts): should not use win32/resolv on cygwin.</div><div class='add'>+	  [ruby-dev:29945], [ruby-dev:34095]</div><div class='add'>+</div><div class='add'>+	* lib/win32/registry.rb (Win32::Registry.expand_environ): try upcased</div><div class='add'>+	  name too for cygwin.  [ruby-dev:29945]</div><div class='add'>+</div><div class='add'>+	* lib/win32/resolv.rb (Win32::Resolv.get_hosts_path): use expand_path.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 21:10:00 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb: Say that I am the current maintainer.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Ditto.</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.txt: Ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 09:24:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (open_for_install): write block result and rewrite only</div><div class='add'>+	  if changed from existing file.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 08:29:33 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_to_f): rearrangement.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 06:44:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c (nurat_to_f): C99.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 01:40:27 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_sub, nucomp_expt): call corresponding functions.</div><div class='add'>+</div><div class='add'>+Fri Mar 21 01:21:43 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/tgamma.c: include config.h before math.h.  [ruby-dev:34075]</div><div class='add'>+</div><div class='add'>+Thu Mar 20 21:46:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_getline): use receiver.</div><div class='add'>+</div><div class='add'>+Thu Mar 20 21:20:19 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: some improvements (include Shin-ichiro HARA's</div><div class='add'>+	  effort).</div><div class='add'>+</div><div class='add'>+	* complex.c: some improvements.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational2.rb: new.</div><div class='add'>+</div><div class='add'>+Thu Mar 20 00:21:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_initialize_copy): get rid of segfault.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_tell, argf_seek_m, argf_set_pos, argf_rewind,</div><div class='add'>+	  argf_fileno, argf_to_io, argf_eofl, argf_getc, argf_getbyte,</div><div class='add'>+	  argf_readchar, argf_readbyte, argf_each_line): use receiver.</div><div class='add'>+</div><div class='add'>+Wed Mar 19 23:52:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_putc, rb_io_puts): output directly if the receiver is</div><div class='add'>+	  rb_stdout to get rid of infinite recursion.  [ruby-dev:34059]</div><div class='add'>+</div><div class='add'>+Wed Mar 19 22:27:41 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* rational.c: added rb_gcd.</div><div class='add'>+</div><div class='add'>+	* complex.c: use rb_gcd.</div><div class='add'>+</div><div class='add'>+Wed Mar 19 18:37:00 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c: revert.</div><div class='add'>+</div><div class='add'>+	* rational.c: revert.</div><div class='add'>+</div><div class='add'>+Wed Mar 19 17:31:20 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (TH_EXEC_TAG): need not to FLUSH_REGISTER_WINDOWS.</div><div class='add'>+	  [ruby-core:15871], [ruby-dev:34088]</div><div class='add'>+</div><div class='add'>+Wed Mar 19 14:53:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* complex.c (nucomp_to_s, nucomp_inspect): get rid of making</div><div class='add'>+	  unnecessary intermediate objects.</div><div class='add'>+</div><div class='add'>+	* complex.c (make_patterns, string_to_c): do not treat successive</div><div class='add'>+	  underscores as a part of numeric like as literals.  [ruby-dev:34085]</div><div class='add'>+</div><div class='add'>+	* rational.c (make_patterns, string_to_r): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 19 14:36:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): treat successive underscores as</div><div class='add'>+	  nondigit.  [ruby-dev:34089]</div><div class='add'>+</div><div class='add'>+Wed Mar 19 14:08:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_check_encoding): should not load autoloaded encoding</div><div class='add'>+	  directly, instead use rb_enc_find_index() which deal with alias and</div><div class='add'>+	  replica.  [ruby-core:15957]</div><div class='add'>+</div><div class='add'>+Wed Mar 19 11:49:47 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (include): include ruby.h instead of defines.h and config.h.</div><div class='add'>+</div><div class='add'>+Wed Mar 19 10:17:12 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (CHECK_INTERRUPT_IN_MATCH_AT): add interrupt check</div><div class='add'>+	  during match.  [ruby-talk:295002]</div><div class='add'>+</div><div class='add'>+Tue Mar 18 16:24:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat_gen): bail out at different encoding.</div><div class='add'>+</div><div class='add'>+Tue Mar 18 04:00:27 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_ss): simple shift search.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_qs): quick search.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_qs_utf8): quick search for UTF-8 string.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch_qs_utf8_hash): hash functions for above.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch): use above functions.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): give enc to rb_memsearch.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_memsearch): move to encoding.h.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_memsearch): move from intern.h.</div><div class='add'>+</div><div class='add'>+	* common.mk (PREP): add dependency.</div><div class='add'>+</div><div class='add'>+Mon Mar 17 22:23:54 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_take, rb_ary_take_while, rb_ary_drop,</div><div class='add'>+	  rb_ary_drop_while): new methods. [ruby-dev:34067]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Mon Mar 17 17:11:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode): should use `run-mode-hooks' instead</div><div class='add'>+	  of calling `run-hooks' directly to run the mode hook.  patch from</div><div class='add'>+	  Chiyuan Zhang &lt;pluskid AT gmail.com&gt; in [ruby-core:15915]</div><div class='add'>+</div><div class='add'>+Mon Mar 17 16:41:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: unset GREP_OPTIONS.  [ruby-core:15918]</div><div class='add'>+</div><div class='add'>+Sun Mar 16 18:07:07 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.c: bug fix (some invalid UTF-8 sequences</div><div class='add'>+	  were legal)</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: test for above bug</div><div class='add'>+</div><div class='add'>+Sun Mar 16 17:28:07 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (LIBRUBY_SO): add dependency to $(BUILTIN_ENCOBJS).</div><div class='add'>+</div><div class='add'>+Sun Mar 16 08:51:41 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: added some declarations.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* common.mk: added some entries.</div><div class='add'>+</div><div class='add'>+	* configure.in: added a check for signbit.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: nearly all of core definitions have been removed.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb: some trivial adjustments.</div><div class='add'>+</div><div class='add'>+	* complex.c: new.</div><div class='add'>+</div><div class='add'>+	* rational.c: ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_{quo,rdiv}, fix_fdiv): added.</div><div class='add'>+</div><div class='add'>+	* numeric.c ({num,int}_{numerator,denominator}): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_fdiv): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_{quo,pow}): now may yield rational number.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_{quo,pow}): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_{int,flo}_induced_from): now can accept rational.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children, obj_free): now detects complex and rational.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): now calls Init_{Complex,Rational}.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_complex.rb: new.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rational.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar 15 17:48:48 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_associate_index): pass unnecessary enc_capable().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp): reduce invocation of rb_enc_compatible().</div><div class='add'>+</div><div class='add'>+Fri Mar 14 17:04:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (inttypes.h): includes always if available.</div><div class='add'>+</div><div class='add'>+	* string.c, ext/digest/defs.h: moved inttypes.h to ruby.h.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 16:59:23 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB_PREFIX): fix for prefix.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 16:35:11 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie::initialize): performance patch from</div><div class='add'>+	  Makoto Kuwata &lt;kwa@kuwata-lab.com&gt; in [ruby-dev:34048].</div><div class='add'>+</div><div class='add'>+Fri Mar 14 15:49:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB_PREFIX): use libdir.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 14:24:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/defs.h: inttypes.h is still needed.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 11:34:12 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile.sub: follow below changes.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 11:24:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-encoding-map, ruby-use-encoding-map): added</div><div class='add'>+	  to customize.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 10:37:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (int8_t, uint8_t,  int16_t,  uint16_t int32_t,</div><div class='add'>+	  uint32_t int64_t, uint64_t, int128_t, uint128_t,</div><div class='add'>+	  intptr_t, uintptr_t): check if defined.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: follow configure.in.</div><div class='add'>+</div><div class='add'>+	* ext/digest/defs.h: remove checks for uint8_t, uint32_t and uint64_t.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 10:12:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_VARTYPE): should not indent preprocessor</div><div class='add'>+	  directives.</div><div class='add'>+</div><div class='add'>+Fri Mar 14 10:03:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (UNALIGNED_WORD_ACCESS): IA64 cannot access unaligned word.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 21:00:50 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): should not use rb_ary_subseq()</div><div class='add'>+	  which shares internal pointer.  splice modifies the receiver</div><div class='add'>+	  right after subseq.  [ruby-dev:34005]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_struct.rb: some test moved from test to shut</div><div class='add'>+	  warning up.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 19:42:43 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile.sub (config.h): define uint32_t.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 14:14:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* trunk/configure.in (AC_CHECK_HEADERS): stdint.h is not needed to</div><div class='add'>+	  check.</div><div class='add'>+</div><div class='add'>+	* trunk/configure.in (rb_cv_type_uint32_t): unquoted.  [ruby-dev:34030]</div><div class='add'>+</div><div class='add'>+	* trunk/string.c (hash): use inttypes.h instead of stdint.h.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 10:42:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_divmod): should return integer division.  [ruby-dev:34006]</div><div class='add'>+</div><div class='add'>+	* enum.c (zip_ary): wrong boundary condition.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_numeric.rb (TestNumeric::test_num2long): bit-and</div><div class='add'>+	  should not raise RangeError.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 03:12:48 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb: should be updated for new ri structure.</div><div class='add'>+	  [ruby-core:15825]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (RDoc::initialize): allow options to be optional.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (RDoc::class_cache): map_dirs may be</div><div class='add'>+	  empty.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (RDoc::get_info_for): revive get_info_for</div><div class='add'>+	  method.  maybe broken.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/util.rb (RDoc::initialize): should not use RiError</div><div class='add'>+	  no more.</div><div class='add'>+</div><div class='add'>+Thu Mar 13 01:45:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (stdint.h): check if presence.</div><div class='add'>+</div><div class='add'>+	* configure.in (uint32_t): check if defined.</div><div class='add'>+</div><div class='add'>+	* string.c (hash): fix for portability.  [ruby-dev:34020]</div><div class='add'>+</div><div class='add'>+Wed Mar 12 17:33:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): fix for a mere underscore.</div><div class='add'>+</div><div class='add'>+Wed Mar 12 14:47:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (rb_thread_raised_set): use generic flags.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): clear all raised flags.</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_check): leave clearing flag to rb_longjmp.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_memerror): use thread raised flag instead of static flag.</div><div class='add'>+</div><div class='add'>+Tue Mar 11 23:38:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_combination): argument check before creating</div><div class='add'>+	  Enumerator.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): optimize if all arguments are arrays.</div><div class='add'>+</div><div class='add'>+Tue Mar 11 19:48:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_coerce): try conversion before type check.</div><div class='add'>+	  [ruby-core:15838]</div><div class='add'>+</div><div class='add'>+Tue Mar 11 12:39:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean-local): WINMAINOBJ is Windows specific.</div><div class='add'>+</div><div class='add'>+Tue Mar 11 10:19:10 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): replaced by MurmurHash described in</div><div class='add'>+	  &lt;http://murmurhash.googlepages.com/&gt;.</div><div class='add'>+</div><div class='add'>+Tue Mar 11 09:52:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable): empty strings in any encoding are</div><div class='add'>+	  compatible each other.</div><div class='add'>+</div><div class='add'>+Tue Mar 11 00:46:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): remove some unimportant lines to fit -h message</div><div class='add'>+	  in a page.  [ruby-dev:34018]</div><div class='add'>+</div><div class='add'>+Mon Mar 10 17:11:00 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_local_variables): local_variables should return an</div><div class='add'>+	  array of symbols.  [ruby-dev:34008]</div><div class='add'>+</div><div class='add'>+	* vm.c (collect_local_variables_in_env): ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 10 15:53:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.c (MKSTR): make US-ASCII.  [ruby-dev:34010]</div><div class='add'>+</div><div class='add'>+Mon Mar 10 02:08:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): if t == s + pos, the character beginning</div><div class='add'>+	  from s + pos is valid.</div><div class='add'>+</div><div class='add'>+Sun Mar  9 13:51:21 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generator.rb: Restore missing line to #params.  Patch by</div><div class='add'>+	  Lincoln Stoll &lt;lstoll at lstoll.net&gt;</div><div class='add'>+</div><div class='add'>+Sun Mar  9 09:52:00 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb: Remove debugging Kernel#p.  Patch by</div><div class='add'>+	  Lincoln Stoll &lt;lstoll at lstoll.net&gt;</div><div class='add'>+	* lib/rdoc/generator/html.rb: Fully qualify AllReferences.  Patch by</div><div class='add'>+	  Lincoln Stoll &lt;lstoll at lstoll.net&gt;</div><div class='add'>+	* lib/rdoc/ri/writer.rb: Fix 1.8 backwards compatibility.</div><div class='add'>+</div><div class='add'>+Sat Mar  8 18:50:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (isdirsep): backslash is valid path separator on cygwin too.</div><div class='add'>+</div><div class='add'>+Sat Mar  8 06:53:48 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (search_nonascii): Use VALUE instead of unsigned long</div><div class='add'>+	  because VALUE can be the fastest unsigned integer type.</div><div class='add'>+	  On LLP64 unsigned long isn't the fastest.</div><div class='add'>+	* string.c (str_strlen): ditto.</div><div class='add'>+	* string.c (str_utf8_nth): ditto.</div><div class='add'>+	* string.c (count_utf8_lead_bytes_with_ulong): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (count_utf8_lead_bytes_with_word): renamed.</div><div class='add'>+</div><div class='add'>+Fri Mar  7 21:27:43 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: fix indent.</div><div class='add'>+</div><div class='add'>+Fri Mar  7 21:12:19 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (power_cache_init, power_cache_get_power0, Init_Bignum):</div><div class='add'>+	  delayed initializing power cache per base.  [ruby-dev:34003]</div><div class='add'>+</div><div class='add'>+Fri Mar  7 20:30:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_0): fixed typo.  [ruby-core:15821]</div><div class='add'>+</div><div class='add'>+Fri Mar  7 19:56:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: rdoc added.  [ruby-Patches-9762]</div><div class='add'>+</div><div class='add'>+Thu Mar  6 17:26:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): space flag is in effect for Inf/NaN too.</div><div class='add'>+	  [ruby-dev:34002]</div><div class='add'>+</div><div class='add'>+Thu Mar  6 15:44:20 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): casting double to long is undefined</div><div class='add'>+	  if the integer part of double is out of the range of long.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 15:11:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): ignore 0 flag for NaN and Inf.</div><div class='add'>+	  [ruby-dev:33994]</div><div class='add'>+</div><div class='add'>+Thu Mar  6 15:05:25 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32}/Makefile.sub (RUNRUBY): use $(PROGRAM) instead of</div><div class='add'>+	  ruby$(EXEEXT).</div><div class='add'>+	  suggested by KIMURA Koichi &lt;kimura.koichi at canon.co.jp&gt;.</div><div class='add'>+	  [ruby-dev:34000]</div><div class='add'>+</div><div class='add'>+Thu Mar  6 14:46:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/lgamma_r.c (loggamma): return 0 for 1 and 2.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: accept errors by functions under missing/.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 14:29:44 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_transcode_bang): set coderange.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_transcode): use rb_str_transcode_bang.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 14:00:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (cbrt): add declaration.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 11:14:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-add-log-current-method): use ruby style</div><div class='add'>+	  method name format.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 11:12:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): no need of loop.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 08:30:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_freeze): call rb_class_name() directly.</div><div class='add'>+	  [ruby-core:15802]</div><div class='add'>+</div><div class='add'>+Thu Mar  6 04:32:06 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (count_utf8_lead_bytes_with_ulong): fix shift size.</div><div class='add'>+	  [ruby-dev:33993]</div><div class='add'>+</div><div class='add'>+	* string.c (str_utf8_nth) fix wrong counting.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 00:34:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): size_t returned from strlen() can be</div><div class='add'>+	  unsigned.</div><div class='add'>+</div><div class='add'>+Thu Mar  6 00:31:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): preserve encoding of struct name.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 22:49:20 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (is_utf8_lead_byte, count_utf8_lead_bytes_with_ulong):</div><div class='add'>+	  defined for UTF-8 optimization.</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): use is_utf8_lead_byte and</div><div class='add'>+	  count_utf8_lead_bytes_with_ulong.</div><div class='add'>+</div><div class='add'>+	* string.c (str_utf8_nth) ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 17:53:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_flock): returns false on EAGAIN if non-blocking.</div><div class='add'>+	  [ruby-core:15795]</div><div class='add'>+</div><div class='add'>+Wed Mar  5 17:43:43 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): Adjusted detection of invalid</div><div class='add'>+	  (ill-formed) UTF-8 sequences. Fixing potential security issue, see</div><div class='add'>+	  http://www.unicode.org/versions/Unicode5.1.0/#Notable_Changes.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Added two tests for above fix.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 14:00:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_to_s): avoid rb_scan_args() when no argument</div><div class='add'>+	  given.</div><div class='add'>+	* bignum.c (rb_big_to_s): ditto.</div><div class='add'>+	* enum.c (enum_first): ditto.</div><div class='add'>+	* eval_jump.c (rb_f_catch): ditto.</div><div class='add'>+	* io.c (rb_obj_display): ditto.</div><div class='add'>+	* class.c (rb_obj_singleton_methods): ditto.</div><div class='add'>+	* object.c (rb_class_initialize): ditto.</div><div class='add'>+	* random.c (rb_f_srand): ditto.</div><div class='add'>+	* range.c (range_step): ditto.</div><div class='add'>+	* re.c (rb_reg_s_last_match): ditto.</div><div class='add'>+	* string.c (rb_str_to_i): ditto.</div><div class='add'>+	* string.c (rb_str_each_line): ditto.</div><div class='add'>+	* string.c (rb_str_chomp_bang): ditto.</div><div class='add'>+	* string.c (rb_str_sum): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (str_modifiable): declare inline.</div><div class='add'>+	* string.c (str_independent): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar  5 11:50:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: require 'continuation' to implement "restart"</div><div class='add'>+	  command.  [ruby-dev:33992]</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (Context::debug_command): remove local variable</div><div class='add'>+	  shadowing to shut up warnings.  [ruby-dev:33992]</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (Context::display_list): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (Context::resume): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (Context::get_thread): no longer use #index for Hash.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 21:35:59 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb::eval_input): SyntaxError should not be</div><div class='add'>+	  considered as IRB bug.  [ruby-dev:33991]</div><div class='add'>+</div><div class='add'>+	* lib/irb/workspace.rb (IRB::WorkSpace::filter_backtrace): should</div><div class='add'>+	  filter 'irb.rb' as well for context mode 2 and 3.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 19:10:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_aset): should not copy key string when</div><div class='add'>+	  compare_by_identity is set.  [ruby-dev:33604]</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_equal): two hash tables are different when internal</div><div class='add'>+	  comparison table differ.  [ruby-dev:33989]</div><div class='add'>+</div><div class='add'>+Tue Mar  4 16:29:06 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): disallow non digits '0o' expression.</div><div class='add'>+</div><div class='add'>+Tue Mar  4 14:35:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): use rb_io_open_with_args instead of rb_f_open.</div><div class='add'>+	  [ruby-core:15763]</div><div class='add'>+</div><div class='add'>+Tue Mar  4 13:41:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): fix previous change.  [ruby-dev:33988]</div><div class='add'>+</div><div class='add'>+Tue Mar  4 10:21:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): use binary search to find the place to insert the</div><div class='add'>+	  new heap slot.  [ruby-dev:33983]</div><div class='add'>+</div><div class='add'>+Tue Mar  4 05:30:31 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): use rb_io_open instead of rb_f_open.</div><div class='add'>+	  [ruby-core:15746]</div><div class='add'>+</div><div class='add'>+Mon Mar  3 23:28:37 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb: should normalize path</div><div class='add'>+	  separators in path_info to prevent directory traversal</div><div class='add'>+	  attacks on DOSISH platforms.</div><div class='add'>+	  reported by Digital Security Research Group [DSECRG-08-026].</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb: pathnames which have</div><div class='add'>+	  not to be published should be checked case-insensitively.</div><div class='add'>+</div><div class='add'>+Mon Mar  3 17:25:45 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): sort heaps array in ascending order to use</div><div class='add'>+	  binary search.</div><div class='add'>+</div><div class='add'>+	* gc.c (is_pointer_to_heap): use binary search to identify object</div><div class='add'>+	  in heaps.  works better when number of heap segments grow big.</div><div class='add'>+</div><div class='add'>+Mon Mar  3 17:15:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): remove too strict encoding check.</div><div class='add'>+	  [ruby-dev:33966]</div><div class='add'>+</div><div class='add'>+Mon Mar  3 16:14:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_hash): shrinks all results in Fixnum range.</div><div class='add'>+	  [ruby-core:15713]</div><div class='add'>+</div><div class='add'>+Sun Mar  2 23:03:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): reduce redundant call.</div><div class='add'>+</div><div class='add'>+Sun Mar  2 10:13:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): parse shebang in us-ascii.  a patch from</div><div class='add'>+	  sheepman &lt;sheepman AT sheepman.sakura.ne.jp&gt; in [ruby-dev:33955]</div><div class='add'>+</div><div class='add'>+Sun Mar  2 00:08:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): check for successive underscores.</div><div class='add'>+	  [ruby-dev:33952]</div><div class='add'>+</div><div class='add'>+Sat Mar  1 17:59:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (struct argf): packed ARGF stuffs.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): use ruby_set_inplace_mode().</div><div class='add'>+</div><div class='add'>+Sat Mar  1 17:51:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (recursive_collect): do not always</div><div class='add'>+	  include all test_*.rb.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 14:14:17 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* development snapshot 1.9.0-1 released.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 13:46:26 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: make prereq uses MINIRUBY.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: allow packaging like 1.9.0-1 by second</div><div class='add'>+	  command-line argument.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 13:11:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/allpairs.rb: new file for all pairs method.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb: use allpairs.rb to reduce test cases.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sprintf_comb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 12:34:21 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_inspect): use rb_str_inspect() instead of</div><div class='add'>+	  rb_str_dump().  [ruby-dev:33946]</div><div class='add'>+</div><div class='add'>+Sat Mar  1 12:15:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.c (rb_get_method_body): ent-&gt;method may be freed by</div><div class='add'>+	  GC.  [ruby-dev:31819]</div><div class='add'>+</div><div class='add'>+	* thread.c (remove_event_hook): should not access freed memory.</div><div class='add'>+	  [ruby-dev:31820]</div><div class='add'>+</div><div class='add'>+Sat Mar  1 10:31:19 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all, rb_io_getline_fast): encoding is io_input_encoding.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 10:09:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table, rb_str_split_m, rb_str_chomp_bang):</div><div class='add'>+	  simplified with rb_enc_ascget().  [ruby-dev:33944]</div><div class='add'>+</div><div class='add'>+Sat Mar  1 10:01:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_coderange_scan_restartable): should not return</div><div class='add'>+	  offset in the middle of a character.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_coderange_scan_restartable): should not return</div><div class='add'>+	  invalid cr value.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 09:36:08 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): "%#.0o" should keep prefix where</div><div class='add'>+	  "%#.0x" should not.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 02:35:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_find_n1): check integer overflow.</div><div class='add'>+</div><div class='add'>+Sat Mar  1 00:29:07 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_dummy_p): bootstrap encodings can not be dummy.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_ascget): no needs to call rb_enc_precise_mbclen()</div><div class='add'>+	  twice.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 23:14:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb (TestM17NComb::test_str_chomp): test</div><div class='add'>+	  updated.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 20:58:09 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::test_enumerator):</div><div class='add'>+	  adjust test for zip behavior reversion.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 20:25:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): now works on UTF-16.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): negation should work on non ASCII</div><div class='add'>+	  compatible strings as well.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): awk split should work on non ASCII</div><div class='add'>+	  compatible strings as well.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 18:08:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): format should be ascii compatible.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): non ASCII compatible symbols.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): add encoding check.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_utf16.rb (TestUTF16::test_chomp): raises exception.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 15:16:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rpartition): calculation was done in byte indexing.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n_comb.rb (TestM17NComb::test_str_start_with):</div><div class='add'>+	  allow start_with? matching on broken strings.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 15:12:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (opt_block_param): command can start just after block param</div><div class='add'>+	  definition.  [ruby-list:44479]</div><div class='add'>+</div><div class='add'>+Fri Feb 29 03:22:19 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb (test_readers): fix typo.</div><div class='add'>+	  (test_strftime): "UTC" is also ok for time.gmtime.strftime("%Z").</div><div class='add'>+</div><div class='add'>+Fri Feb 29 02:50:07 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new): remove encoding assumption of empty string.</div><div class='add'>+</div><div class='add'>+	* hash.c ( rb_f_getenv, env_fetch, env_inspect): result of ENV should</div><div class='add'>+	  be always ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_s): nil.to_s should be US-ASCII.</div><div class='add'>+</div><div class='add'>+Fri Feb 29 02:24:22 2008  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: forgot to update RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tk/text.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: remove adhoc check</div><div class='add'>+	  of Ruby's features (use existence of some classes instead of</div><div class='add'>+	  comparing with RUBY_VERSION)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/root.rb, ext/tk/lib/tk/autoload.rb: make TkRoot</div><div class='add'>+	  (Tk::Root) unswitchable</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: partial bug fix (still not work!!)</div><div class='add'>+</div><div class='add'>+Thu Feb 28 23:37:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Meta#meta_setup_encoding): use ASCII-8BIT</div><div class='add'>+	  for charset unspecified non-text data.</div><div class='add'>+</div><div class='add'>+Thu Feb 28 22:19:14 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_capable): IMMEDIATE_P doesn't include Qnil and Qfalse.</div><div class='add'>+	  use SPECIAL_CONST_P.</div><div class='add'>+</div><div class='add'>+Thu Feb 28 19:45:52 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_find): check type of argument and convert to String</div><div class='add'>+	  if it is StringValue. [ruby-cvs:22866]</div><div class='add'>+</div><div class='add'>+Thu Feb 28 18:07:52 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Meta#meta_setup_encoding): setup encoding</div><div class='add'>+	  by charset.</div><div class='add'>+	  (OpenURI::Meta#meta_add_field): call meta_setup_encoding when</div><div class='add'>+	  content-type.</div><div class='add'>+</div><div class='add'>+Thu Feb 28 15:29:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): scan coderange.</div><div class='add'>+</div><div class='add'>+Thu Feb 28 14:36:46 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_copy): removed.</div><div class='add'>+</div><div class='add'>+Thu Feb 28 13:51:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_check): made flag per threads.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_set_raised, rb_thread_reset_raised): prefixed.</div><div class='add'>+</div><div class='add'>+Thu Feb 28 11:43:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_flock): immediately returns on EAGAIN if</div><div class='add'>+	  non-blocking.  [ruby-core:15672]</div><div class='add'>+</div><div class='add'>+Thu Feb 28 11:23:50 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_1): get rid of segfault.  [ruby-dev:33938]</div><div class='add'>+</div><div class='add'>+Thu Feb 28 11:19:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): removed unused variables.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_str_coderange_scan_restartable): added</div><div class='add'>+	  prototype.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_coderange_scan_restartable, rb_str_times): removed</div><div class='add'>+	  unused variables.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse_bang): ditto</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_copy): unused now.  may be used in future?</div><div class='add'>+</div><div class='add'>+Thu Feb 28 03:03:32 2008  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/*: make default widget set</div><div class='add'>+	  switchable between Tk (standard Tcl/Tk widget set) and</div><div class='add'>+	  Ttk (Tile). Initial default widget set is Tk. Now, toplevel</div><div class='add'>+	  widget classes are removed and defined as aliases.</div><div class='add'>+	  For example, "TkButton" is an alias of the "Tk::Button" class.</div><div class='add'>+	  Those aliases are replaced when switching default widget set.</div><div class='add'>+	  "Tk.default_widget_set=" is the method for switching default</div><div class='add'>+	  widget set. "Tk.default_widget_set = :Ttk" defines Ttk (Tile)</div><div class='add'>+	  widget set as default. It means that "TkButton" denotes</div><div class='add'>+	  "Tk::Tile::Button" class. And then, "TkButton.new" creates</div><div class='add'>+	  a Tk::Tile::Button widget. Of course, you can back to use</div><div class='add'>+	  standard Tk widgets as the default widget set by calling</div><div class='add'>+	  "Tk.default_widget_set = :Tk", whenever you want. Based on</div><div class='add'>+	  the feature, you can use Ttk widget styling engine on your</div><div class='add'>+	  old Ruby/Tk application without modifying its source, if you</div><div class='add'>+	  don't use widget options unsupported on Ttk widgets (At first,</div><div class='add'>+	  call "Tk.default_widget_set = :Ttk", and next load and run</div><div class='add'>+	  your application).</div><div class='add'>+	  This is one step for supporting Tcl/Tk8.5 features.</div><div class='add'>+</div><div class='add'>+Wed Feb 27 22:55:42 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_coderange_scan_restartable): coderange scanning</div><div class='add'>+	  for partial read.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): set coderange when not convert encoding.</div><div class='add'>+</div><div class='add'>+Wed Feb 27 03:55:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, enc/make_encmake.rb: load current mkmf.rb even if</div><div class='add'>+	  cross-compiling.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, enc/make_encmake.rb, lib/mkmf.rb: need to be 1.8</div><div class='add'>+	  compatible for cross-compiling.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 16:53:13 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): should distinguish</div><div class='add'>+	  comment and # in strings.  [ruby-dev:33874]</div><div class='add'>+</div><div class='add'>+Tue Feb 26 16:41:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (combi_len, rb_ary_product): check for overflow.</div><div class='add'>+	  [ruby-Bugs-18355]</div><div class='add'>+</div><div class='add'>+Tue Feb 26 16:38:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (recursive_cmp): compare minimal length parts.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 16:06:00 2008  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_{ec,dh,dsa,rsa}.c: Remove useless warnings.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: Simplify code.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c Fix compiler warnings.</div><div class='add'>+	  Undefine #id if SSL_SESSION_get_id is not supported.</div><div class='add'>+</div><div class='add'>+Tue Feb 26 15:50:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr_gen): removed inappropriate warning.</div><div class='add'>+	  [ruby-core:15660]</div><div class='add'>+</div><div class='add'>+Tue Feb 26 15:43:42 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_escape): refactored.  [ruby-core:15657]</div><div class='add'>+</div><div class='add'>+Tue Feb 26 15:30:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_eql, rb_ary_cmp): get rid of stack overflow with</div><div class='add'>+	  self-recursive constructs.  [ruby-Bugs-18356]</div><div class='add'>+</div><div class='add'>+Tue Feb 26 01:16:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ROBJECT_NUMIV): renamed from ROBJECT_LEN.</div><div class='add'>+	  (ROBJECT_IVPTR): renamed from ROBJECT_PTR.</div><div class='add'>+</div><div class='add'>+	* variable.c: follow the above renaming.</div><div class='add'>+</div><div class='add'>+	* object.c: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 17:30:29 2008  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/digest.c ext/openssl/lib/openssl/digest.rb:</div><div class='add'>+	  Commit patch #9280 from Akinori MUSHA.</div><div class='add'>+	  Simplify the OpenSSL::Digest class and make use of the</div><div class='add'>+	  existing Digest framework.</div><div class='add'>+	  Enhance performance.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 15:33:29 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_karatsuba): initialize cache if not initialized.</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum): delayed initializing cache.</div><div class='add'>+	  [ruby-dev:33930]</div><div class='add'>+</div><div class='add'>+Mon Feb 25 13:40:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): share bignum objects for RLIM_INFINITY,</div><div class='add'>+	  RLIM_SAVED_MAX and RLIM_SAVED_CUR if they are equal.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 10:41:41 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Encoding#dummy): minor grammatical fixes</div><div class='add'>+	  in rdoc documentation.</div><div class='add'>+</div><div class='add'>+Mon Feb 25 00:01:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (clean-local): should be double-colon.</div><div class='add'>+</div><div class='add'>+Sun Feb 24 23:39:59 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, {bcc,win}32/Makefile.sub (clean-local): remove</div><div class='add'>+	  intermediate files.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (clean-local): remove def file.</div><div class='add'>+</div><div class='add'>+Sun Feb 24 06:49:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_set_debug_option): separated ruby_each_words().</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_each_words): extracted from ruby_set_debug_option().</div><div class='add'>+</div><div class='add'>+	* ruby.c (enable_option, disable_option): allow all for all known</div><div class='add'>+	  features.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): generalized enable/disable options.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_gems): take enabled flag.  [ruby-core:14840]</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): added --disable-rubyopt flag.</div><div class='add'>+</div><div class='add'>+	* include/ruby/util.h (ruby_each_words): prototype.</div><div class='add'>+</div><div class='add'>+Sun Feb 24 05:25:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): check if argument for -E exists.</div><div class='add'>+</div><div class='add'>+Sun Feb 24 05:09:43 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-label-indent): fix for labels inside</div><div class='add'>+	  blocks in switch.</div><div class='add'>+</div><div class='add'>+Sun Feb 24 03:52:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (valid_filename): use O_EXCL to get rid of clobbering</div><div class='add'>+	  existing files in race conditions.</div><div class='add'>+</div><div class='add'>+Sat Feb 23 21:36:13 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_init_cp): should return value.</div><div class='add'>+</div><div class='add'>+Sat Feb 23 20:16:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sublen): removed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse, rb_str_reverse_bang): use</div><div class='add'>+	  single_byte_optimizable.</div><div class='add'>+</div><div class='add'>+Sat Feb 23 19:25:18 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_copy_for_substr): renamed from</div><div class='add'>+	  rb_enc_cr_str_copy.</div><div class='add'>+</div><div class='add'>+	* string.c: use rb_enc_cr_str_copy_for_substr and keep coderange.</div><div class='add'>+</div><div class='add'>+Sat Feb 23 18:50:17 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_encoding2cp): remove US-ASCII</div><div class='add'>+	  mapping.</div><div class='add'>+</div><div class='add'>+Sat Feb 23 01:09:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rlimit_resource_type): new function.</div><div class='add'>+	  (rlimit_resource_value): new function.</div><div class='add'>+	  (proc_getrlimit): use rlimit_resource_type to accept</div><div class='add'>+	  symbol and string as resource type.</div><div class='add'>+	  (proc_setrlimit): use rlimit_resource_type and rlimit_resource_value</div><div class='add'>+	  to accept symbol and string as resource type and values.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 21:12:42 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_copy): check string's coderange is 7bit or</div><div class='add'>+	  valid.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 19:50:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (BIGZEROP): fix for longer Bignum zeros.  [ruby-Bugs-17454]</div><div class='add'>+</div><div class='add'>+Fri Feb 22 15:47:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_mbclen): return minlen instead of 1 when</div><div class='add'>+	  a character is not found properly.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen): round up string length with fixed</div><div class='add'>+	  multibyte encoding such as UTF-32.</div><div class='add'>+	  (rb_enc_strlen_cr): ditto.</div><div class='add'>+	  (rb_str_substr): fix substring with fixed multibyte encoding.</div><div class='add'>+	  (rb_str_justify): check number of characters.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 12:11:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): string of ascii incompatible encoding</div><div class='add'>+	  should be escaped and returned as US-ASCII encoding.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 11:16:55 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): copy encoding although empty string.</div><div class='add'>+</div><div class='add'>+Fri Feb 22 04:48:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): empty string's coderange is CODERANGE_7BIT.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): empty string is compatible with not</div><div class='add'>+	  only nonasciicompatible strings. [ruby-dev:33895]</div><div class='add'>+</div><div class='add'>+Thu Feb 21 17:15:15 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: Added basic support for passing options to String#encode</div><div class='add'>+	  via a hash. Currently only one option, with one value, is supported:</div><div class='add'>+	  invalid: :ignore (dropping invalid byte sequences instead of</div><div class='add'>+	  producing an error). Option naming is not yet stable!</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Added a single test for invalid: :ignore</div><div class='add'>+	  option. Not more tests because most data does not yet distinguish</div><div class='add'>+	  between INVALID and UNKNOWN.</div><div class='add'>+</div><div class='add'>+Thu Feb 21 16:35:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): expands enough for argc.  [ruby-dev:33880]</div><div class='add'>+</div><div class='add'>+Thu Feb 21 14:49:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_set_encoding): uses current_file after check if next</div><div class='add'>+	  input is available.</div><div class='add'>+</div><div class='add'>+Thu Feb 21 14:13:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_putc): invoke stdout method so that redefining putc</div><div class='add'>+	  may take effect.   [ruby-talk:291844]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_puts): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 21 11:10:49 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: replace rb_enc_copy by rb_enc_cr_str_copy or</div><div class='add'>+	  rb_enc_cr_str_exact_copy.</div><div class='add'>+</div><div class='add'>+Thu Feb 21 10:35:04 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_asciicompat): dummy encoding is not</div><div class='add'>+	  ascii compatible. [ruby-dev:33878]</div><div class='add'>+</div><div class='add'>+Thu Feb 21 00:01:34 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RPATHFLAG): -R option of HP-UX ld is not for runtime</div><div class='add'>+	  load path.  [ruby-list:44600]</div><div class='add'>+</div><div class='add'>+Wed Feb 20 23:55:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_map_errno): exported.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 23:28:43 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb (rl_event_hook): workaround for native</div><div class='add'>+	  windows.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 19:42:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_associate_index): doesn't clear coderange</div><div class='add'>+	  when new encoding equals to old one.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 19:15:38 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_copy): added for wrapper for rb_enc_copy.</div><div class='add'>+	  this also copy coderange when ptr and len is equal.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_copy): added for wrapper for rb_enc_copy.</div><div class='add'>+	  this always copy coderange.</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace_shared): use rb_enc_str_copy.</div><div class='add'>+</div><div class='add'>+	* string.c (str_new3): don't rb_enc_copy because encoding is copied</div><div class='add'>+	  at str_replace_shared.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 13:08:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args): added --dir-mode, --script-mode and</div><div class='add'>+	  --cmd-type options.  [ruby-dev:33816]</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args): added bin-arch and bin-comm to install</div><div class='add'>+	  type, for compiled files and script files.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args): deal with make style command line macros,</div><div class='add'>+	  and count as long style options if prefixed with INSTALL_.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (makedirs): use $dir_mode.  [ruby-dev:33805]</div><div class='add'>+</div><div class='add'>+	* instruby.rb (open_for_install): set file mode, which is now</div><div class='add'>+	  permission mode instead of access mode.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (bin-comm): installs scripts with replacing shebang</div><div class='add'>+	  lines.</div><div class='add'>+</div><div class='add'>+Wed Feb 20 10:04:22 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): set arg-&gt;io even if no options passed.</div><div class='add'>+	  [ruby-dev:33072]</div><div class='add'>+</div><div class='add'>+Tue Feb 19 21:11:49 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen_cr): get length with coderange scan.</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): use rb_enc_strlen_cr. [ruby-dev:33849]</div><div class='add'>+</div><div class='add'>+Tue Feb 19 20:49:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_raise_jump): moved adjustment for control frame.</div><div class='add'>+</div><div class='add'>+Tue Feb 19 18:34:32 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed.  [ruby-dev:33857]</div><div class='add'>+</div><div class='add'>+Tue Feb 19 14:27:32 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_event): prevent polling.  based on</div><div class='add'>+	  a patch from error errorsson in [ruby-Bugs-17675].</div><div class='add'>+</div><div class='add'>+Tue Feb 19 11:14:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec_node): no thread starts inside iseq compilation.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_raise): skip current control frame.  [ruby-core:15589]</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_div): raise as the ordinary method. [ruby-core:15589]</div><div class='add'>+</div><div class='add'>+Mon Feb 18 15:16:30 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): fix newline size.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 13:06:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale#lc2kconv): check ja_JP.EUC-JP as well.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 11:51:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (re_warn): defined to restore warnings for /[a-c-e]/, etc.</div><div class='add'>+</div><div class='add'>+Mon Feb 18 10:17:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/lib/expect.rb (IO#expect): check if peer is closed.</div><div class='add'>+	  [ruby-Bugs-17940]</div><div class='add'>+</div><div class='add'>+Mon Feb 18 00:33:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): don't repeat repl twice with</div><div class='add'>+	  "X".sub!(/./, sprintf("\\%c", 255)).</div><div class='add'>+</div><div class='add'>+Sun Feb 17 23:06:55 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::escapeHTML): use gsub with Hash. [ruby-dev:33828]</div><div class='add'>+</div><div class='add'>+Sun Feb 17 21:38:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (ENC_CODERANGE_AND): fix broken case. [ruby-dev:33826]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): fix broken case. [ruby-dev:33826]</div><div class='add'>+</div><div class='add'>+Sun Feb 17 20:45:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): add enable_warning parameter.</div><div class='add'>+	  (rb_reg_adjust_startpos): disable warning by rb_reg_prepare_re.</div><div class='add'>+	  (rb_reg_search): follow rb_reg_prepare_re parameter change.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 20:12:41 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: add tests to achieve over 90% test</div><div class='add'>+	  coverage of re.c.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 15:25:08 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (ENC_CODERANGE_AND): added.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_plus, rb_str_times): keep coderange.</div><div class='add'>+</div><div class='add'>+	* parse.y (STR_NEW0) use rb_usascii_str_new.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 14:07:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): rb_enc_strlen doesn't fail.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 13:03:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sublen): use rb_enc_strlen.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 12:17:52 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/{euc_jp.c,gbk.c,iso_8859_1.c,iso_8859_11.c,iso_8859_13.c,</div><div class='add'>+	  iso_8859_2.c,iso_8859_6.c,iso_8859_7.c,iso_8859_8.c,iso_8859_9.c,</div><div class='add'>+	  shift_jis.c,windows_1251.c}: add document about encodings.</div><div class='add'>+</div><div class='add'>+	* enc/cp949.c: divided into new file.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 10:59:04 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): return US-ASCII string consistently.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 09:17:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): reduce loop overhead.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 03:37:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/re.h (struct rmatch_offset): new struct for character</div><div class='add'>+	  offsets.</div><div class='add'>+	  (struct rmatch): new struct.</div><div class='add'>+	  (struct RMatch): reference struct rmatch.</div><div class='add'>+	  (RMATCH_REGS): new macro.</div><div class='add'>+</div><div class='add'>+	* re.c (match_alloc): initialize struct rmatch.</div><div class='add'>+	  (pair_byte_cmp): new function.</div><div class='add'>+	  (update_char_offset): update character offsets.</div><div class='add'>+	  (match_init_copy): copy regexp and character offsets.</div><div class='add'>+	  (match_sublen): removed.</div><div class='add'>+	  (match_offset): use update_char_offset.</div><div class='add'>+	  (match_begin): ditto.</div><div class='add'>+	  (match_end): ditto.</div><div class='add'>+	  (rb_reg_search): make character offset updated flag false.</div><div class='add'>+	  (match_size): use RMATCH_REGS.</div><div class='add'>+	  (match_backref_number): ditto.</div><div class='add'>+	  (rb_reg_nth_defined): ditto.</div><div class='add'>+	  (rb_reg_nth_match): ditto.</div><div class='add'>+	  (rb_reg_match_pre): ditto.</div><div class='add'>+	  (rb_reg_match_post): ditto.</div><div class='add'>+	  (rb_reg_match_last): ditto.</div><div class='add'>+	  (match_array): ditto.</div><div class='add'>+	  (match_aref): ditto.</div><div class='add'>+	  (match_values_at): ditto.</div><div class='add'>+	  (match_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat_set): use RMATCH_REGS.</div><div class='add'>+	  (rb_str_sub_bang): ditto.</div><div class='add'>+	  (str_gsub): ditto.</div><div class='add'>+	  (rb_str_split_m): ditto.</div><div class='add'>+	  (scan_once): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): free character offsets.</div><div class='add'>+</div><div class='add'>+Sun Feb 17 03:13:40 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: made version infos confirm to OS spec.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32}/Makefile.sub (*.rc): add dependency.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 20:49:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): optimized for UTF-8.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 18:13:53 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): check encoding incapable arguments.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 20:12:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_inspect): avoid SEGV with MatchData.allocate.inspect.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 19:04:17 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): revert r15507. [ruby-dev:33810]</div><div class='add'>+</div><div class='add'>+Sat Feb 16 18:25:14 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): little more optimization.</div><div class='add'>+	  (rb_enc_nth): remove needless variable 'c'.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 18:00:13 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): empty strings are always compatible.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 16:14:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen): UTF-8 character count moved to str_strlen.</div><div class='add'>+	  (str_strlen): UTF-8 character count is only applicable for valid</div><div class='add'>+	  UTF-8 string.  [ruby-dev:33807]</div><div class='add'>+</div><div class='add'>+Sat Feb 16 13:16:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): stringize replacing hash values.</div><div class='add'>+	  (str_gsub): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 13:01:33 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen): add search_nonascii like character</div><div class='add'>+	  counter for UTF-8.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 11:53:35 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_strlen): moved to string.c.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_strlen): use search_nonascii.</div><div class='add'>+	  (str_strlen): don't use search_nonascii.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 11:45:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/require_relative.rb: check require_relative call in eval.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 08:00:01 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set default_external before loading</div><div class='add'>+	  libraries. [ruby-dev:33801]</div><div class='add'>+</div><div class='add'>+Sat Feb 16 05:49:54 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_{4,13}.c: Windows-1257 is replica of ISO-8859-13.</div><div class='add'>+</div><div class='add'>+	* string.c (single_byte_optimizable): rb_enc_mbminlen must be 1</div><div class='add'>+	  when rb_enc_mbmaxlen is 1.</div><div class='add'>+</div><div class='add'>+Sat Feb 16 03:43:18 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_nth): moved to string.c.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_nth): moved from string.c.  use search_nonascii</div><div class='add'>+	  for ASCII compatible string.</div><div class='add'>+	  (str_nth): wrong optimization removed to fix</div><div class='add'>+	  "a".force_encoding("EUC-JP").slice!(0,10) returns</div><div class='add'>+	  "a\x00\x00\x00\x00\x00\x00\x00\x00\x00"</div><div class='add'>+</div><div class='add'>+Sat Feb 16 00:21:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): check if responds to "begin" and "end"</div><div class='add'>+	  methods for non-Range object.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 20:29:42 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_init_cp): initialize WIN32OLE.codepage</div><div class='add'>+	  according to Encoding.default_external.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 19:31:23 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h (NODE_FL_NEWLINE): renamed from NODE_NEWLINE</div><div class='add'>+	  to denote its a flag.  [ruby-core:15529]</div><div class='add'>+</div><div class='add'>+Fri Feb 15 18:23:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang, str_gsub): allows hash for replacement.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 17:12:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): use search_nonascii() for performance.</div><div class='add'>+</div><div class='add'>+	* string.c (str_nth): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 16:22:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): allow specifying both :mode and :encoding.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 15:34:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_getbyte): new method.</div><div class='add'>+	  (rb_str_setbyte): new method.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 15:29:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/require_relative.rb: new file.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 15:23:12 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): check upper bound.  a patch from</div><div class='add'>+	  Daniel Luz at [ruby-Bugs-17910].</div><div class='add'>+</div><div class='add'>+Fri Feb 15 10:35:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): set US-ASCII for ASCII-only string.</div><div class='add'>+	  [ruby-dev:33785]</div><div class='add'>+</div><div class='add'>+Fri Feb 15 10:27:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {win,bcc}32/Makefile.sub (config.h): added HAVE_FTRUNCATE.</div><div class='add'>+	  [ruby-dev:33786]</div><div class='add'>+</div><div class='add'>+Fri Feb 15 09:44:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_compile_gen): reg_fragment_setenc might not raise an</div><div class='add'>+	  exception before rb_reg_compile.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 07:37:40 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb: Preserve compatibility with 1.8.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 02:42:25 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ftruncate): check if available.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_truncate): check if ftruncate instead of truncate.</div><div class='add'>+</div><div class='add'>+Fri Feb 15 02:40:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (sigsetmask): check when signal semantics is not POSIX.</div><div class='add'>+</div><div class='add'>+	* signal.c (USE_TRAP_MASK): set true if sigprocmask or sigsetmask is</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 23:56:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.c (error_print): append a newline to rest lines.</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_compile_gen): appends error message from</div><div class='add'>+	  rb_reg_compile() to one from reg_fragment_setenc().</div><div class='add'>+</div><div class='add'>+Thu Feb 14 21:00:14 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): check STDIN, STDOUT and STDERR mode according to</div><div class='add'>+	  stdio streams.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 16:07:40 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: actual-expected argument ordering for</div><div class='add'>+	  test_math.rb fixed.  a patch from Tadashi Saito</div><div class='add'>+	  &lt;shiba AT mail2.accsnet.ne.jp&gt; in [ruby-dev:33770].</div><div class='add'>+</div><div class='add'>+Thu Feb 14 16:02:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_utime): inhibits with secure level 2 or higher.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 12:30:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess_dregexp): use non-preprocessed regexp source</div><div class='add'>+	  for result.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 01:43:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout::timeout): made sensitive to location on the</div><div class='add'>+	  stack.  [ruby-core:15458]</div><div class='add'>+</div><div class='add'>+Thu Feb 14 00:49:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (INSTRUBY_ARGS): pass mode to install.  [ruby-dev:33766]</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args): added --data-mode and --prog-mode options.</div><div class='add'>+</div><div class='add'>+Thu Feb 14 00:02:19 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): allow to eval in a binding that has a singleton method.</div><div class='add'>+	  [ruby-dev:33763]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: add tests to achieve over 70% test coverage</div><div class='add'>+	  of proc.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 13 22:46:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#sub_ext): new method.  [ruby-list:44608]</div><div class='add'>+</div><div class='add'>+Wed Feb 13 21:50:32 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_curry): new method. [ruby-dev:33676]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Wed Feb 13 20:48:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RObject): add iv_index_tbl for shortcut of</div><div class='add'>+	  RCLASS_IV_INDEX_TBL(rb_obj_class(obj)).</div><div class='add'>+	  (ROBJECT_IV_INDEX_TBL): defined.</div><div class='add'>+</div><div class='add'>+	* object.c (init_copy): initialize iv_index_tbl in struct RObject.</div><div class='add'>+</div><div class='add'>+	* variable.c (ivar_get): use ROBJECT_IV_INDEX_TBL.</div><div class='add'>+	  (rb_ivar_defined): ditto.</div><div class='add'>+	  (obj_ivar_each): ditto.</div><div class='add'>+	  (rb_obj_remove_instance_variable): ditto.</div><div class='add'>+	  (rb_ivar_set): update iv_index_tbl in struct RObject.</div><div class='add'>+</div><div class='add'>+Wed Feb 13 16:21:48 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb: revert r15442. 2nd argument of String#sub parse</div><div class='add'>+	  escapes. [ruby-dev:33726]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb, enc/depend, instruby.rb, lib/mkmf.rb,</div><div class='add'>+	  mkconfig.rb: revert r15443. ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 13 11:20:26 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: fix typo.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: revert r15443. "\\1#{sep}\\2" is wrong if sep is ended</div><div class='add'>+	  with "\\".</div><div class='add'>+</div><div class='add'>+Wed Feb 13 08:57:21 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/inline.rb:  Allow inline markup to have a leading</div><div class='add'>+	  '#' or '\', or trailing punctuation.  i.e. *#freeze?*, *\foo?*.</div><div class='add'>+</div><div class='add'>+Wed Feb 13 07:21:23 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/to_html_hyperlink.rb:  Moved linking to to_html.rb, move</div><div class='add'>+	  crossref to to_html_crossref.rb</div><div class='add'>+</div><div class='add'>+Wed Feb 13 04:15:44 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_concat_gen, arg_append_gen): optimize for array push.</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_concat_gen): optimize for array concat.</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_add_gen): removed since identical to arg_append_gen.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 21:04:51 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (exc_list): should use mrhs if non array.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 20:32:50 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (floor, ceil, truncate, round): do not use</div><div class='add'>+	  definitions of Numeric.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (to_i): should returns truncated self.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (numerator): requires</div><div class='add'>+	  Integer#{numerator,denominator}.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (quo): do not use definition of Numeric.</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (&gt;, &gt;=, &lt;, &lt;=, between?, div, divmod, modulo,</div><div class='add'>+	  floor, ceil, truncate, round): undef'ed.</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Rational#inspect): removed.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 16:48:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (args, mrhs): flattens literal array splats.</div><div class='add'>+</div><div class='add'>+	* parse.y (exc_list): splat literal array.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 15:27:19 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb, bootstraptest/test_method.rb, enc/depend,</div><div class='add'>+	  instruby.rb, lib/mkmf.rb, lib/test/unit/util/procwrapper.rb,</div><div class='add'>+	  mkconfig.rb, sample/test.rb, template/vm.inc.tmpl,</div><div class='add'>+	  test/ruby/test_stringchar.rb: fixes around String#gsub.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 15:11:47 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/lib/json/pure/generator.rb,</div><div class='add'>+	  ext/json/lib/json/pure/parser.rb, ext/openssl/lib/openssl/x509.rb,</div><div class='add'>+	  ext/win32ole/sample/olegen.rb, lib/date/format.rb, lib/irb/context.rb,</div><div class='add'>+	  lib/irb/workspace.rb, lib/net/http.rb, lib/net/imap.rb,</div><div class='add'>+	  lib/rdoc/generator.rb, lib/rdoc/markup/to_html.rb,</div><div class='add'>+	  lib/rdoc/markup/to_latex.rb, lib/rdoc/parsers/parse_c.rb,</div><div class='add'>+	  lib/rdoc/ri/formatter.rb, lib/rexml/parsers/baseparser.rb,</div><div class='add'>+	  lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rss/parser.rb,</div><div class='add'>+	  lib/uri/common.rb, lib/uri/generic.rb, lib/webrick/httpresponse.rb,</div><div class='add'>+	  lib/webrick/httpservlet/filehandler.rb, lib/yaml/baseemitter.rb,</div><div class='add'>+	  lib/yaml/encoding.rb: performance tuning around String#gsub.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 12:16:45 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash_cmp): lighter version of rb_str_cmp() for</div><div class='add'>+	  hash comparison function.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_any_cmp): use rb_str_hash_cmp().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): should return nil for incompatible</div><div class='add'>+	  comparison.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 12:13:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: specify file mode to install.  a patch from</div><div class='add'>+	  pegacorn  &lt;subscriber.jp AT gmail.com&gt; in [ruby-dev:33699].</div><div class='add'>+</div><div class='add'>+Tue Feb 12 11:38:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_coerce_bin): add ID argument to specify</div><div class='add'>+	  caller's method name.  [ruby-dev:33663]</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_coerce_cmp): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num_coerce_relop): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (DoSomeOne): add function name argument.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 10:25:02 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb:  Wrap parse_files' read in version check for</div><div class='add'>+	  backwards compatibility.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 10:15:14 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): enc must effect source encoding.</div><div class='add'>+	  [ruby-core:15496]</div><div class='add'>+</div><div class='add'>+Tue Feb 12 10:16:47 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/paths.rb:  Restore require rubygems check.</div><div class='add'>+</div><div class='add'>+Tue Feb 12 02:42:27 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_include): specialize single character string</div><div class='add'>+	  case (e.g. (?a ..?z).include(?x)) for performance.</div><div class='add'>+	  [ruby-core:15481]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): specialize single character case.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): omit coderange scan for performance.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_check_to_integer): check Fixnum first.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_integer): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): inline memcmp to avoid unnecessary</div><div class='add'>+	  rb_str_comparable().</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): use US-ASCII encoding.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern_str): ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 11 17:21:18 2008  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION), test/rss/test_version.rb:</div><div class='add'>+	  0.2.3 -&gt; 0.2.4.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker.rb, lib/rss/maker/, test/rss/test_maker_2.0.rb:</div><div class='add'>+	  fixed a bug that RSS::Maker.make("0.9")'s item doesn't make some</div><div class='add'>+	  elements if description is missed.</div><div class='add'>+	  Reported by Michael Auzenne. Thanks!!!</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/0.9.rb, test/rss/test_maker_0.9.rb:</div><div class='add'>+	  RSS::Maker.make("0.9") generates RSS 0.92 not RSS 0.91.</div><div class='add'>+</div><div class='add'>+Mon Feb 11 10:43:31 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): the encoding of DATA follows the source</div><div class='add'>+	  file encoding. [ruby-dev:33693]</div><div class='add'>+</div><div class='add'>+Mon Feb 11 06:50:42 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: fix tests for 64bit CPU.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_numeric.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fixnum.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 11 00:18:57 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb (Job::Benchmark#item): fix typo.</div><div class='add'>+</div><div class='add'>+Sun Feb 10 21:58:32 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encdb, transdb): depend on $(PREP).</div><div class='add'>+</div><div class='add'>+Sun Feb 10 16:58:20 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*, test/rubygems*, gem_prelude.rb: Import RubyGems</div><div class='add'>+	  r1601.  [ruby-core:15381]</div><div class='add'>+</div><div class='add'>+Sun Feb 10 15:07:23 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (MISSING): added cbrt.obj.</div><div class='add'>+</div><div class='add'>+Sun Feb 10 12:58:33 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb: Make some attributes accessible for reuse.</div><div class='add'>+	* lib/rdoc/generator/html.rb: Pull out ContextUser classes and related</div><div class='add'>+	  methods for reuse.</div><div class='add'>+	* lib/rdoc/generator.rb: Move ContextUser classes to</div><div class='add'>+	  RDoc::Generator::Context for reuse.</div><div class='add'>+	* lib/rdoc/rdoc.rb: Make RDoc::RDoc initialization a little easier.</div><div class='add'>+	* lib/rdoc/options.rb: Make RDoc::Options easier to use without</div><div class='add'>+	  parsing an ARGV.</div><div class='add'>+	* lib/rdoc/markup/to_*.rb: Subclass RDoc::Markup::Formatter.</div><div class='add'>+	* lib/rdoc/markup/formatter.rb: Add RDoc::Markup::Formatter to make</div><div class='add'>+	  RDoc markup conversion easier.</div><div class='add'>+	* lib/rdoc/markup/fragments.rb: Make RDoc::Markup::ListItem easier to</div><div class='add'>+	  test.</div><div class='add'>+	* lib/rdoc/markup/to_html_hyperlink.rb: Pulled out of the HTML</div><div class='add'>+	  generator for easier reusability.</div><div class='add'>+	* lib/rdoc/markup.rb: Fix bug with labeled lists containing bullet</div><div class='add'>+	  lists.</div><div class='add'>+	* lib/rdoc/generators/html/html.rb: Fix Constant display.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 23:44:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/tgamma.c (tgamma): use lgamma_r if available.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 23:22:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/extconf.rb: simplified the condition.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 21:20:28 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: add tests for Math.gamma, Math.lgamma and</div><div class='add'>+	  Math.cbrt, and use assert_in_delta instead of assert.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 18:34:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_cbrt): new method Math.cbrt.</div><div class='add'>+</div><div class='add'>+	* configure.in (cbrt): check for replacement functions.</div><div class='add'>+</div><div class='add'>+	* missing/cbrt.c: new file.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 17:51:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use strtod() for more</div><div class='add'>+	  precision.  [ruby-talk:290296]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BASE_FIG): made constant.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/extconf.rb: ditto.  [ruby-dev:33658]</div><div class='add'>+</div><div class='add'>+Sat Feb  9 12:06:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/tgamma.c (tgamma): add error check.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 11:47:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_gamma): add error check.</div><div class='add'>+	  (math_lgamma): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 11:09:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/lgamma_r.c (lgamma_r): return HUGE_VAL for non-positive</div><div class='add'>+	  integers.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 10:03:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): copy encoding from orig, instead of shared</div><div class='add'>+	  one.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 01:01:38 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (lchmod_internal): fix warning cast from pointer to integer of</div><div class='add'>+	  different size.</div><div class='add'>+</div><div class='add'>+Sat Feb  9 00:44:52 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb::eval_input): rescues Interrupt and other than</div><div class='add'>+	  SystemExit and SignalException.  [ruby-core:15359]</div><div class='add'>+</div><div class='add'>+Fri Feb  8 23:51:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/lgamma_r.c (lgamma_r): use smaller argument for sin function.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 22:10:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_http): rescue URI::InvalidURIError by</div><div class='add'>+	  URI.parse for location URI.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 19:22:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (rb_str_derive): uses rb_str_subseq() for byte</div><div class='add'>+	  length.  [ruby-dev:33653]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): added toidx argument to set</div><div class='add'>+	  encoding of successfully converted string.  [ruby-dev:33221]</div><div class='add'>+</div><div class='add'>+Fri Feb  8 15:09:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (xsystem): expand macros like as make.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 09:27:57 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (read_yaml): remove SM* for compatibility.</div><div class='add'>+</div><div class='add'>+Fri Feb  8 00:07:24 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: follow the change of Hash#flatten.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: add tests to achieve over 70% test coverage</div><div class='add'>+	  of time.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_prec.rb: ditto over 90% for prec.c.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 19:11:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup): reverted unneeded change.  [ruby-dev:33634]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_replace): makes frozen shared string before</div><div class='add'>+	  sharing.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 16:33:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): don't change access mode for stdin, stdout and</div><div class='add'>+	  stderr.  [ruby-core:15360]</div><div class='add'>+</div><div class='add'>+Thu Feb  7 16:33:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_replace_shared): replaces string with sharing.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4, rb_str_associate, rb_str_associated): allows</div><div class='add'>+	  associated strings shared.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dup, rb_str_substr, rb_str_replace): shares memory.</div><div class='add'>+	  [ruby-core:15400]</div><div class='add'>+</div><div class='add'>+Thu Feb  7 15:42:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_end_with): compares with the suffix.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 15:03:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/korean.c: add support for CP949 by Park Ji-In.</div><div class='add'>+	  [ruby-dev:33626]</div><div class='add'>+</div><div class='add'>+Thu Feb  7 11:11:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/lgamma_r.c (lgamma_r): some compilers don't permit dividing</div><div class='add'>+	  by literal 0.0. use const variable instead.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (MISSING): add lgamma_r.obj and</div><div class='add'>+	  tgamma.obj.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 10:39:21 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_gamma): new method Math.gamma.</div><div class='add'>+	  (math_lgamma): new method Math.lgamma.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (tgamma): declared unless HAVE_TGAMMA.</div><div class='add'>+	  (lgamma_r): declared unless HAVE_LGAMMA_R.</div><div class='add'>+</div><div class='add'>+	* configure.in (tgamma): check for replacement functions.</div><div class='add'>+	  (lgamma_r): ditto.</div><div class='add'>+</div><div class='add'>+	* missing/tgamma.c: new file.  based on gamma.c from</div><div class='add'>+	  "C-gengo niyoru saishin algorithm jiten" (New Algorithm handbook</div><div class='add'>+	  in C language) (Gijyutsu hyouron sha, Tokyo, 1991)</div><div class='add'>+	  by Haruhiko Okumura.</div><div class='add'>+</div><div class='add'>+	* missing/lgamma_r.c: ditto.</div><div class='add'>+</div><div class='add'>+	* LEGAL (missing/tgamma.c): describe as public domain.</div><div class='add'>+	  (missing/lgamma_r.c): ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 09:05:57 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_enc_from_index): BINARY does not</div><div class='add'>+	  have in-bound encoding index.</div><div class='add'>+</div><div class='add'>+Thu Feb  7 04:26:28 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/korean.c: add EUC-KR conversion support by Park Ji-In.</div><div class='add'>+	  [ruby-dev:33621]</div><div class='add'>+</div><div class='add'>+Wed Feb  6 01:47:39 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_flatten): do not flatten recursively by default.</div><div class='add'>+	  [ruby-dev:33603]</div><div class='add'>+</div><div class='add'>+Wed Feb  6 00:50:19 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (adjuststack): never use INC_SP with minus value because</div><div class='add'>+	  some compilers cannot deal it correctly. use DEC_SP instead.</div><div class='add'>+</div><div class='add'>+Wed Feb  6 00:48:41 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of hash.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb  6 00:24:49 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_rassoc): remove access to free'd environment on mswin32.</div><div class='add'>+</div><div class='add'>+Tue Feb  5 21:57:34 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_call_super): pass a passed block when super is called via</div><div class='add'>+	  rb_call_super.  [ruby-dev:33598]</div><div class='add'>+</div><div class='add'>+Tue Feb  5 11:14:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (INSTALL_DIRS, install_dirs): added BINDIR.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_files): rejects files matching to</div><div class='add'>+	  $NONINSTALLFILES.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): defaults $NONINSTALLFILES to backup and</div><div class='add'>+	  temporary files.</div><div class='add'>+</div><div class='add'>+Mon Feb  4 21:52:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass): use define_method instead of</div><div class='add'>+	  module_eval to improve performance.  [ruby-dev:33586]</div><div class='add'>+</div><div class='add'>+Mon Feb  4 16:44:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): NSIG is not defined if _XOPEN_SOURCE &gt; 500L.</div><div class='add'>+	  [ruby-dev:33584]</div><div class='add'>+</div><div class='add'>+Mon Feb  4 14:51:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_enc_symname2_p): support "!", "!=" and "!~".</div><div class='add'>+	  [ruby-dev:33592]</div><div class='add'>+</div><div class='add'>+Mon Feb  4 13:58:42 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator.preserved, DelegateClass.methods): extend</div><div class='add'>+	  shouldn't be delegated. [ruby-dev:32987], etc.</div><div class='add'>+</div><div class='add'>+Mon Feb  4 08:59:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::[]): no more transition</div><div class='add'>+	  extend(CGI::Value).  a patch from &lt;tommy AT tmtm.org&gt; in</div><div class='add'>+	  [ruby-dev:33583].</div><div class='add'>+</div><div class='add'>+Sun Feb  3 21:13:13 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_numeric.rb: forgot to add this (at r15360).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file_exhaustive.rb: add tests to achieve over 80% test</div><div class='add'>+	  coverage of file.c.</div><div class='add'>+</div><div class='add'>+Sat Feb  2 20:06:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb (Benchmark::realtime): make Benchmark#realtime</div><div class='add'>+	  a bit faster.  a patch from Alexander Dymo &lt;dymo AT ukrpost.ua&gt; in</div><div class='add'>+	  [ruby-core:15337].</div><div class='add'>+</div><div class='add'>+Sat Feb  2 17:40:21 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_cmp): Time.&lt;=&gt; no longer supports comparison with</div><div class='add'>+	  numeric. [ruby-core:15332]</div><div class='add'>+</div><div class='add'>+Sat Feb  2 09:53:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): disabled fat-binary support which confuses</div><div class='add'>+	  configure much, since ``universal'' implies hidden cross-compiling.</div><div class='add'>+	  TODO: ruby and libruby.bundle might be possible to bound with `lipo'</div><div class='add'>+	  after builds for each archs.  Anyway, config.h and rbconfig.rb must</div><div class='add'>+	  be separated definitely at least.</div><div class='add'>+</div><div class='add'>+Sat Feb  2 09:28:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (limited_big_rand): fix buffer overflow when SIZEOF_BDIGITS</div><div class='add'>+	  is 2.  fixed by Kenta Murata.  [ruby-dev:33565]</div><div class='add'>+</div><div class='add'>+Fri Feb  1 21:42:37 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): _XOPEN_SOURCE is necessary to make ucontext_t</div><div class='add'>+	  consistent with the library implementation of MacOS X 10.5.</div><div class='add'>+	  [ruby-dev:33461]</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): ucontext on PowerPC MacOS X 10.5 is broken.</div><div class='add'>+</div><div class='add'>+Fri Feb  1 11:44:22 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb (C_ESC): use octal escape to avoid</div><div class='add'>+	  "\x09for (;;) ..." to be interpret the first character 0x9f.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 23:06:42 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: suppress warnings during test.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enum.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb: add tests to achieve over 90% test</div><div class='add'>+	  coverage of numeric.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fixnum.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_numeric.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of pack.c.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 17:30:42 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): no need to call r_entry for immediate values.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 15:46:30 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/formatter.rb (output): add accessor.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/display.rb (page): replace @formatter.output instead of</div><div class='add'>+	  $stdout.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 15:06:50 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): call r_entry/r_leave to call proc when</div><div class='add'>+	  TYPE_FIXNUM, TYPE_NIL, TYPE_TRUE, TYPE_FALSE, TYPE_SYMBOL.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 14:03:38 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/display.rb (display_method_list, display_class_list):</div><div class='add'>+	  use @formatter.raw_print_line instead of puts.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (select_methods): new method to collect all</div><div class='add'>+	  instance/class methods which match with passed pattern.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (run): use class_cache's result directly</div><div class='add'>+	  instead of select_classes' because it's removed now.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (run): search methods when passed name is not</div><div class='add'>+	  class name. [ruby-core:15309]</div><div class='add'>+</div><div class='add'>+Thu Jan 31 08:31:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ext/extmk.rb, instruby.rb): inlined $(MAKE) so that can</div><div class='add'>+	  be executed even with -n.</div><div class='add'>+</div><div class='add'>+Thu Jan 31 06:24:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_read): replaces fptr with the tied writer if</div><div class='add'>+	  duplex.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_write): unties the tied IO for writing if duplex.</div><div class='add'>+	  [ruby-dev:33532]</div><div class='add'>+</div><div class='add'>+Thu Jan 31 02:22:04 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): allow encoding key to take two encoding</div><div class='add'>+	  names.  a patch from &lt;rubikitch AT ruby-lang.org&gt;.  [ruby-dev:33540]</div><div class='add'>+</div><div class='add'>+Thu Jan 31 02:15:49 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): allow empty symbols.  [ruby-core:15248]</div><div class='add'>+</div><div class='add'>+Thu Jan 31 00:01:51 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (select_internal): fix SEGV by `select [STDIN],nil,[STDIN]'.</div><div class='add'>+	  fixed by Petr Chromec.</div><div class='add'>+	  http://rubyforge.org/tracker/index.php?func=detail&amp;aid=17275&amp;group_id=426&amp;atid=1698</div><div class='add'>+</div><div class='add'>+Wed Jan 30 17:32:49 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/*.c: add GB12345, UCS-{2,4}{BE,LE}.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 14:32:18 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (cache_file_for): shouldn't use `:' in filename.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 14:27:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): use wrapped character as a carry for</div><div class='add'>+	  ASCII incompatible encoding.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 12:26:59 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_16be.c (UTF16_IS_SURROGATE_FIRST): avoid branch.</div><div class='add'>+	  (UTF16_IS_SURROGATE_SECOND): ditto.</div><div class='add'>+	  (UTF16_IS_SURROGATE): defined.</div><div class='add'>+	  (utf16be_mbc_enc_len): validation implemented.</div><div class='add'>+</div><div class='add'>+	* enc/utf_16le.c (UTF16_IS_SURROGATE_FIRST): avoid branch.</div><div class='add'>+	  (UTF16_IS_SURROGATE_SECOND): ditto.</div><div class='add'>+	  (UTF16_IS_SURROGATE): defined.</div><div class='add'>+	  (utf16le_mbc_enc_len): validation implemented.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 12:06:43 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): '0_2' is a valid representation.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 11:57:50 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: fix -I../../hoge case.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 01:25:16 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb: add tests to achieve over 90% test coverage</div><div class='add'>+	  of range.c.</div><div class='add'>+</div><div class='add'>+Wed Jan 30 00:09:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_tw.c (euctw_mbc_enc_len): validation implemented.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 22:58:11 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb: add tests to achieve over 90% test</div><div class='add'>+	  coverage of enumerator.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enum.rb: add for enum.c.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 22:29:48 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: fix documents.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 22:27:11 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* range.c: fix SEGV by ("a" .. "z").step(2 ** 30) { }.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 21:59:16 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_tw.c (euctw_islead): 0x8e is a leading byte.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 21:55:35 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: move object allocation out of blocking_region.</div><div class='add'>+	  [ruby-dev:33139]</div><div class='add'>+</div><div class='add'>+Tue Jan 29 20:37:36 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/make_transdb.rb: add for make transdb.h.</div><div class='add'>+</div><div class='add'>+	* dmytranscode.c: add for miniruby.</div><div class='add'>+</div><div class='add'>+	* enc/gbk.c (gbk_left_adjust_char_head, gbk_is_allowed_reverse_match):</div><div class='add'>+	  fix odd regexp match. [ruby-dev:33502]</div><div class='add'>+</div><div class='add'>+Tue Jan 29 20:17:06 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32}/Makefile.sub (MINIOBJS): add dmytranscode.$(OBJEXT).</div><div class='add'>+</div><div class='add'>+Tue Jan 29 19:39:40 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, common.mk: fix rule for dmytranscode.o.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 19:03:16 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (rb_to_Windows_31J): to 'Windows-31J'.</div><div class='add'>+</div><div class='add'>+	* common.mk: add rules for transdb.h.</div><div class='add'>+</div><div class='add'>+	* transcode.c (init_transcoder_table): use transdb.h.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 18:05:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (encdb_{replicate,alias,dummy,declare}): define only if</div><div class='add'>+	  NO_ENCDB_H is not defined.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 17:54:11 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/gbk.c (EncLen_gbk): too short. [ruby-dev:33497]</div><div class='add'>+</div><div class='add'>+Tue Jan 29 17:25:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dmyencoding.c, encoding.c (enc_init_db, NO_ENCDB_H):</div><div class='add'>+	  miniruby doesn't use encdb.</div><div class='add'>+</div><div class='add'>+	* common.mk: encdb.h use miniruby.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 17:37:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/gb18030.c (gb18030_mbc_enc_len): validation implemented.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 17:01:07 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/ifchange: remove $temp when unchanged.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 16:59:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (toregexp): generate a regexp from strings instead of one</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_new_ary): defined for toregexp.  it concatenates</div><div class='add'>+	  strings after each string is preprocessed.</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_dstr_fragments): split from compile_dstr.</div><div class='add'>+	  (compile_dstr): call compile_dstr_fragments.</div><div class='add'>+	  (compile_dregx): defined for dynamic regexp.</div><div class='add'>+	  (iseq_compile_each): use compile_dregx for dynamic regexp.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:33400]</div><div class='add'>+</div><div class='add'>+Tue Jan 29 16:25:26 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, ext/extmk.rb: always make encdb.h.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 12:53:39 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/gbk.c: add GBK, CP936 and CP949.</div><div class='add'>+</div><div class='add'>+	* enc/euc_kr.c: remove CP949.</div><div class='add'>+</div><div class='add'>+	* enc/euc_cn.c: remove CP936 and rename to gb2312.c</div><div class='add'>+</div><div class='add'>+	* enc/gb2312.c: GB2312 is preferred MIME name.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 03:01:29 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_fragment_setenc_gen): US-ASCII script special code.</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_fragment_check_len, reg_compile_gen): no need such</div><div class='add'>+	  trick.</div><div class='add'>+	  [ruby-dev:33399]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_regexp_usacii_literal): add tests.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 01:38:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk ($(srcdir)/revision.h): no need to show ifchange execution</div><div class='add'>+	  because ifchange echos updated or unchanged.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 01:26:23 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (up): use last changed revision.</div><div class='add'>+</div><div class='add'>+	* common.mk (up): force to update revision.h.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 00:12:17 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): should be US-ASCII.</div><div class='add'>+</div><div class='add'>+Tue Jan 29 00:10:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-set-encoding): updates magic comment.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 23:47:52 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2str, ripper_initialize, Init_ripper):</div><div class='add'>+	  use rb_usascii_str_new2. [ruby-dev:33449]</div><div class='add'>+</div><div class='add'>+Mon Jan 28 19:37:08 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_cp2encoding): new function.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_wc2vstr, ole_variant2val, fole_missing):</div><div class='add'>+	  set encoding to result.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_s_set_code_page, Init_win32ole): set</div><div class='add'>+	  default encoding.</div><div class='add'>+	  [ruby-dev:33433]</div><div class='add'>+</div><div class='add'>+Mon Jan 28 11:17:28 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c, parse.y, re.c: use rb_ascii8bit_encoding.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 17:54:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_7.h: add dummy encoding UTF-7 and its alias CP65000.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 17:41:19 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: add alias CP65001.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 15:33:23 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/big5.c (big5_mbc_enc_len): validation implemented.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 13:02:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_kr.c (euckr_mbc_enc_len): validation implemented.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 11:24:49 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_str_new): encoding of UTF-8 literal string in</div><div class='add'>+	  US-ASCII script is UTF-8. [ruby-dev:33406]</div><div class='add'>+</div><div class='add'>+Mon Jan 28 10:25:59 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_magic_comment): add test.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 09:34:54 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (help): use double quotes for nmake.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 00:39:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_set_encode): check if encoding is ASCII compatible.</div><div class='add'>+</div><div class='add'>+Mon Jan 28 01:21:15 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_open_file): should check NUL in path.</div><div class='add'>+	  &lt;http://www.rubyist.net/~matz/20080125.html#c01&gt;.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 23:33:35 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): fix for left justify flag.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): zero-precision zero bug revised.</div><div class='add'>+	  [ruby-dev:33419]</div><div class='add'>+</div><div class='add'>+Sun Jan 27 23:20:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h: precise mbclen API redesigned to avoid</div><div class='add'>+	  inline functions.</div><div class='add'>+	  (onigenc_mbclen_charfound): removed.</div><div class='add'>+	  (onigenc_mbclen_needmore): removed.</div><div class='add'>+	  (onigenc_mbclen_recover): removed.</div><div class='add'>+	  (ONIGENC_MBCLEN_CHARFOUND): removed.</div><div class='add'>+	  (ONIGENC_MBCLEN_CHARFOUND_P): defined.</div><div class='add'>+	  (ONIGENC_MBCLEN_CHARFOUND_LEN): defined.</div><div class='add'>+	  (ONIGENC_MBCLEN_INVALID): removed.</div><div class='add'>+	  (ONIGENC_MBCLEN_INVALID_P): defined.</div><div class='add'>+	  (ONIGENC_MBCLEN_NEEDMORE): removed.</div><div class='add'>+	  (ONIGENC_MBCLEN_NEEDMORE_P): defined.</div><div class='add'>+	  (ONIGENC_MBCLEN_NEEDMORE_LEN): defined.</div><div class='add'>+	  (ONIGENC_MBC_ENC_LEN): use onigenc_mbclen_approximate.</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_mbclen_approximate): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (MBCLEN_CHARFOUND): removed.</div><div class='add'>+	  (MBCLEN_INVALID): removed.</div><div class='add'>+	  (MBCLEN_NEEDMORE): removed.</div><div class='add'>+	  (MBCLEN_CHARFOUND_P): defined.</div><div class='add'>+	  (MBCLEN_INVALID_P): defined.</div><div class='add'>+	  (MBCLEN_NEEDMORE_P): defined.</div><div class='add'>+	  (MBCLEN_CHARFOUND_LEN): defined.</div><div class='add'>+	  (MBCLEN_NEEDMORE_LEN): defined.</div><div class='add'>+</div><div class='add'>+	* encoding.c: use new API.</div><div class='add'>+</div><div class='add'>+	* re.c: ditto.</div><div class='add'>+</div><div class='add'>+	* string.c: ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 22:55:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr_gen): reverted r12880.  [ruby-dev:33388]</div><div class='add'>+</div><div class='add'>+Sun Jan 27 22:33:39 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): fix for octal with precision.</div><div class='add'>+	  [ruby-dev:33411]</div><div class='add'>+</div><div class='add'>+Sun Jan 27 22:31:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode-set-encoding): automatically insert</div><div class='add'>+	  encoding magic comment.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-mode): set ruby-mode-set-encoding to buffer</div><div class='add'>+	  local before-save-hook.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 19:51:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): avoid exception by</div><div class='add'>+	  "\#\xa1".force_encoding("euc-jp").inspect.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 19:07:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): warning suppressed.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 18:18:13 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (help): show major targets.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 17:54:48 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: raise error when no output encoding is given.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 17:20:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): don't increment/decrement codepoint.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 16:03:42 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex#buf_input): use chars.to_a.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 16:27:22 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8: update nkf.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 16:25:27 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_source): set encoding as regexp encoding.</div><div class='add'>+</div><div class='add'>+Sun Jan 27 05:56:39 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess): force fixed encoding when ASCII</div><div class='add'>+	  incompatible source string.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 23:46:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): zero-precision zero should be empty.</div><div class='add'>+	  [ruby-dev:33363]</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): not prepend octal prefix to negative or</div><div class='add'>+	  zero value.  [ruby-dev:33363], [ruby-dev:33367]</div><div class='add'>+</div><div class='add'>+Sat Jan 26 23:42:15 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable_gen, keyword_to_name): __ENCODING__ was missing.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 19:08:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): dump string encoding in USERDEF.</div><div class='add'>+	  [ruby-dev:33401]</div><div class='add'>+</div><div class='add'>+Sat Jan 26 17:42:23 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): validate argument expr of "next"</div><div class='add'>+	  statement.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add a test.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 17:22:46 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h: fix to calculate correct stack depth</div><div class='add'>+	   at each instruction.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 09:41:02 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/doctype.rb, test/rss/test_maker_itunes.rb: replace</div><div class='add'>+	  multi-byte string.</div><div class='add'>+</div><div class='add'>+	* test/json/{test_json.rb, test_json_unicode.rb}:</div><div class='add'>+	  add magic comment.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 09:30:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_usascii_encindex): added prototype.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_usascii_str_new, rb_usascii_str_new2):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 09:17:13 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new): set US-ASCII and ENC_CODERANGE_7BIT when</div><div class='add'>+	  empty string (len == 0).</div><div class='add'>+</div><div class='add'>+Sat Jan 26 03:41:53 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_initialize): set default script encoding as US-ASCII.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set script encoding of -e from locale</div><div class='add'>+	  except when -K is specified.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): set script encoding of stdin from locale except</div><div class='add'>+	  when -K is specified. [ruby-dev:33375]</div><div class='add'>+</div><div class='add'>+Sat Jan 26 02:51:06 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h: fix stack pointer issues.</div><div class='add'>+	  calculate correct stack depth at compile time.</div><div class='add'>+</div><div class='add'>+	* insns.def (emptstack): remove it and add a new insn "adjuststack".</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move/remove fixed test.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 00:17:18 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_usascii_new{,2}: defined.</div><div class='add'>+	  (rb_str_new): set US-ASCII and ENC_CODERANGE_7BIT when empty</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_usascii_encoding, rb_usascii_encindex): defined.</div><div class='add'>+	  (rb_enc_inspect, enc_name, rb_locale_charmap, rb_enc_name_list_i):</div><div class='add'>+	  use rb_str_ascii_new.</div><div class='add'>+</div><div class='add'>+	* array.c (recursive_join, inspect_ary): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_s, nil_inspect, true_to_s, false_to_s,</div><div class='add'>+	  rb_mod_to_s): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (inspect_hash, rb_hash_inspect, rb_f_getenv, env_fetch,</div><div class='add'>+	  env_clear, env_to_s, env_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s, int_chr, rb_fix2str): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_ftype, rb_file_s_dirname, rb_file_s_extname,</div><div class='add'>+	  file_inspect_join, Init_file): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_ruby_m17n.rb: add checks for encoding of string.</div><div class='add'>+</div><div class='add'>+Sat Jan 26 01:35:46 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): use getbyte instead of getc.</div><div class='add'>+	  (marshal_load): ditto.</div><div class='add'>+	  [ruby-dev:33264]</div><div class='add'>+</div><div class='add'>+Sat Jan 26 00:43:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): don't care ASCII incompatible encoding.</div><div class='add'>+	  (prepare_getline_args): generate a newline according to IO encoding</div><div class='add'>+	  when necessary.</div><div class='add'>+	  (rb_io_getline_1): call rb_io_getline_fast only for ASCII</div><div class='add'>+	  compatible encoding.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 21:49:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat_ascii): use rb_enc_cr_str_buf_cat.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 19:38:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (version.$(OBJEXT)): depends on $(srcdir)/revision.h.</div><div class='add'>+</div><div class='add'>+	* common.mk (revision.h): extracts revision number with ``svn info''.</div><div class='add'>+</div><div class='add'>+	* common.mk (up): target to update from the repository.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, {win,bcc}32/Makefile.sub (IFCHANGE): tool to update a</div><div class='add'>+	  file if changed.</div><div class='add'>+</div><div class='add'>+	* tool/ifchange: for unixen.</div><div class='add'>+</div><div class='add'>+	* win32/ifchange.bat: some fix</div><div class='add'>+</div><div class='add'>+Fri Jan 25 17:12:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): set default to ASCII-8BIT explicitly if -K</div><div class='add'>+	  option is not given.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 16:31:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_buf_cat_ascii): declared.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_cat_ascii): defined.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): use rb_str_buf_cat_ascii to support ASCII</div><div class='add'>+	  incompatible encoding.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 16:11:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options, load_file, rb_load_file): propagates script</div><div class='add'>+	  encoding by -K to libraries.  [ruby-dev:33156]</div><div class='add'>+</div><div class='add'>+Fri Jan 25 15:56:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (cmdline_arguments): split argc and argv from cmdline_options.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): not set encoding of -e option from -E</div><div class='add'>+	  option if they are not compatible.</div><div class='add'>+</div><div class='add'>+Fri Jan 25 13:15:23 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options, process_options, load_file): shouldn't effect</div><div class='add'>+	  --encoding to script encoding. [ruby-dev:33169]</div><div class='add'>+</div><div class='add'>+Fri Jan 25 10:31:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* */*.bat: set svn:mime-type to text/batch.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 23:23:06 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_one, enum_take_while, enum_drop_while): fix documents.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 21:46:24 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_fragment_setenc_gen): associate ASCII-8BIT only if</div><div class='add'>+	  str has only ASCII characters.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 20:46:17 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb: follow to the following changes.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 20:21:07 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parser.y (parser_str_new): automatically update string literal's</div><div class='add'>+	  encoding from US-ASCII to ASCII-8BIT when script encoding is US-ASCII</div><div class='add'>+	  and the string includes non-ascii bytes. [ruby-dev:33348]</div><div class='add'>+</div><div class='add'>+	* parser.y (reg_fragment_check_gen, reg_compile_gen): automatically</div><div class='add'>+	  update regexp literal's encoding from US-ASCII to ASCII-8BIT when</div><div class='add'>+	  script encoding is US-ASCII, the regexp has no kcode option and the</div><div class='add'>+	  regexp includes non-ascii bytes. [ruby-dev:33353]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 19:36:22 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::inspect): use Kernel#to_s instead</div><div class='add'>+	  object_id with printf.  [ruby-dev:33347]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 19:29:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): returns pointer to the first char to</div><div class='add'>+	  be used, instead of copying.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): negative indicator dots should come</div><div class='add'>+	  before sign digits always.  [ruby-dev:33224]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 18:19:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_is_newline): parenthesized arguments.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 18:14:14 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_fixed_encoding_p): no need to treat ASCII-8BIT specially.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 16:53:06 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): 7bit clean regexp should be US-ASCII.</div><div class='add'>+	  [ruby-dev:33346]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 16:31:04 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): the end point of left_char_head()</div><div class='add'>+	  must be the last character.  [ruby-cvs:22445]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 16:24:25 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_fragment_setenc_gen): recognize regexp with option n as</div><div class='add'>+	  as ASCII-8BIT instead of US-ASCII. [ruby-dev:33339]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 15:44:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (collect_bang_i): use rb_ary_store() to avoid potential</div><div class='add'>+	  memory corruption.  a patch from Yusuke Endoh &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+	  in [ruby-dev:33328].</div><div class='add'>+</div><div class='add'>+	* array.c (ITERATE): remove unnecessary macro.</div><div class='add'>+</div><div class='add'>+	* array.c (sort_1): remove ary_sort_check().  in-place sort keep</div><div class='add'>+	  original elements even when it's modified.</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 15:09:40 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): revert round trip test.  [ruby-dev:33058]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 11:14:56 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): ASCII incompatible encoding is</div><div class='add'>+	  not compatible with any other encoding.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 07:34:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (STR_NEW0): set encoding as US-ASCII.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 03:47:41 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/text.rb, lib/rubygems/open-uri.rb, lib/open-uri.rb,</div><div class='add'>+	  test/logger/test_logger.rb, test/ruby/test_regexp.rb:</div><div class='add'>+	  fix tests. [ruby-dev:33336]</div><div class='add'>+</div><div class='add'>+Thu Jan 24 03:23:44 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): use memchr(3) for faster newline</div><div class='add'>+	  search.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): remove unused arguments</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): make much simpler (and faster).</div><div class='add'>+</div><div class='add'>+Thu Jan 24 02:13:07 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (expandarray): fix stack inc.  [ruby-dev:32892]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_massign.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+Thu Jan 24 01:00:34 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.{c, h} (rb_usascii_encoding): added.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_str_new, rb_intern3): ascii only string literal is</div><div class='add'>+	  US-ASCII.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_optionc): -Kn means ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Wed Jan 23 23:54:40 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c: fix comment.  [ruby-dev:33275]</div><div class='add'>+</div><div class='add'>+	* math.c: fix comment.  [ruby-dev:33276]</div><div class='add'>+</div><div class='add'>+Wed Jan 23 22:47:34 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_struct.rb: add tests to achieve over 90% test</div><div class='add'>+	  coverage of struct.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sprintf.rb: ditto for sprintf.c.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: ditto for math.c.</div><div class='add'>+</div><div class='add'>+Wed Jan 23 22:14:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (rb_from_Windows_31J, rb_to_Windows_31J):</div><div class='add'>+	  provisional workaround for Windows-31J.  [ruby-dev:33320]</div><div class='add'>+</div><div class='add'>+Wed Jan 23 15:25:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): copy encoding from format.  [ruby-dev:33303]</div><div class='add'>+</div><div class='add'>+Wed Jan 23 15:04:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_make_independent): should set length.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_associate): hide associated array from ObjectSpace.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_associated): return associated array with freezing</div><div class='add'>+	  instead of false.  [ruby-dev:33282]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_freeze): freeze associated array together.</div><div class='add'>+</div><div class='add'>+Wed Jan 23 13:39:48 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): fix SEGV by</div><div class='add'>+	  /a/ =~ "aa".force_encoding("utf-16be").</div><div class='add'>+</div><div class='add'>+Wed Jan 23 11:53:26 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_mod_check, str_nth, str_offset): constified.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): dump in ASCII-8BIT always.</div><div class='add'>+</div><div class='add'>+Wed Jan 23 10:18:10 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.c (rb_export_method): set ruby_vm_redefined_flag for</div><div class='add'>+	  visibility change as well.  reported by K.Kosako in</div><div class='add'>+	  http://d.hatena.ne.jp/kkos/20080122#1201012720.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 22:26:23 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: change some tests because rational</div><div class='add'>+	  redefines Bignum#quo and Bignum#**.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 20:58:15 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): need to output sodir rule.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 19:37:16 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): lib files shouldn't depend on install</div><div class='add'>+	  dir because if the dir is newer than lib files, lib files will be</div><div class='add'>+	  always copied.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 17:52:52 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.c: Streamline parentheses, add more</div><div class='add'>+	  'static' qualifiers.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 12:57:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIRUBY): remove -I$(EXTOUT)/$(arch) from</div><div class='add'>+	  MINIRUBY since miniruby might not be able to load DLL.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb: move tests from bootstrap test.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_find): should check name if ASCII compatible.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_end_with): should check character boundary.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): encoding must be ASCII</div><div class='add'>+	  compatible before checking ENC_CODERANGE_7BIT.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): wrong compatibility condition.</div><div class='add'>+	  [ruby-dev:33273]</div><div class='add'>+</div><div class='add'>+Tue Jan 22 09:26:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char): iterates over a shadow.</div><div class='add'>+	  [ruby-dev:33243]</div><div class='add'>+</div><div class='add'>+Tue Jan 22 08:59:52 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/formatter.rb:  Indent labeled lists like note lists.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_overstrike_formatter.rb:  Added.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_formatter.rb:  Added tests.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 04:40:28 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): do not call rb_enc_mbclen() if *m is</div><div class='add'>+	  ASCII.  [ruby-talk:287225]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): use rb_enc_is_newline() to gain</div><div class='add'>+	  performance if the record separator ($/) is not modified.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 01:15:51 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: format-time-string under C locale. [ruby-dev:33261]</div><div class='add'>+</div><div class='add'>+Tue Jan 22 00:45:12 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: add tests for bignum.c.</div><div class='add'>+</div><div class='add'>+Tue Jan 22 00:30:08 2008  Yusuke Endoh  &lt;mame@tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_shift): fix a bug that caused infinite loop when</div><div class='add'>+	  left shifting.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 20:09:38 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (marshal_load): initialize the cache.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 19:42:42 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c, enc/trans/utf_16_32.c, test/ruby/test_transcode.rb:</div><div class='add'>+	  added UTF-32BE and UTF-32LE conversions.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 14:36:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): initialize transcoder in</div><div class='add'>+	  rb_transcoding.  [ruby-dev:33234]</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): transcoder constified.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 12:50:02 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c (setjmp): sigsetjmp is a macro on cygwin.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 12:35:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop, str_transcoding_resize): use unsigned</div><div class='add'>+	  char.  [ruby-dev:33232]</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding, rb_transcoder): removed callback</div><div class='add'>+	  parameters.</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.c: parenthesized bit-or operands.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 11:59:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char): move forward.  [ruby-dev:33231]</div><div class='add'>+</div><div class='add'>+Mon Jan 21 06:40:03 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_dispatch): constified return value.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding): include pointer to rb_transcoder</div><div class='add'>+	  and auxiliary data.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoder): all callback functions should have</div><div class='add'>+	  their own parameters.</div><div class='add'>+</div><div class='add'>+	* enc/trans/{japanese,single_byte}.c: constified.</div><div class='add'>+</div><div class='add'>+Mon Jan 21 03:45:49 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char): advance offset before get next char</div><div class='add'>+	  length.  [ruby-dev:33211]</div><div class='add'>+</div><div class='add'>+Sun Jan 20 20:00:20 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c, enc/trans/utf_16_32.c, test/ruby/test_transcode.rb:</div><div class='add'>+	  added UTF-16LE conversions.</div><div class='add'>+</div><div class='add'>+	* fixed changelog for last commit</div><div class='add'>+</div><div class='add'>+Sun Jan 20 17:54:00 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* added changelog for last commit</div><div class='add'>+</div><div class='add'>+Sun Jan 20 15:08:08 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/utf_16_32.c: new file, currently implementing</div><div class='add'>+	  UTF-16BE conversions only.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Added tests for UTF-16BE;</div><div class='add'>+	  made check_both_ways() use force_encoding differently.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h, transcode.c: Support for more conversion</div><div class='add'>+	  functions.</div><div class='add'>+</div><div class='add'>+Sun Jan 20 13:06:01 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char): performance improvement, and stop if</div><div class='add'>+	  shortened in the block.  [ruby-dev:33189]</div><div class='add'>+</div><div class='add'>+Sun Jan 20 09:12:26 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: use -Ks when read insns.def. [ruby-dev#33185]</div><div class='add'>+</div><div class='add'>+	* parse.y: fix -e and stdin strings aren't set encoding.</div><div class='add'>+</div><div class='add'>+Sun Jan 20 05:12:44 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb: fix duplication check.</div><div class='add'>+</div><div class='add'>+Sun Jan 20 05:03:46 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ascii.c: remove definition of replica KOI8-U.</div><div class='add'>+</div><div class='add'>+Sun Jan 20 00:33:59 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/koi8_u.c: added.</div><div class='add'>+</div><div class='add'>+	* regenc.c, enc/utf_8.c, enc/unicode.c, enc/gb18030.c: add ARG_UNUSED.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 22:41:39 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (coderange_scan): don't call mbclen functions for ASCII</div><div class='add'>+	  characters with ASCII compatible encoding.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 21:00:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/template.rb (RDoc): defined to avoid uninitialized constant</div><div class='add'>+	  error by `./ruby test/rubygems/test_gem_server.rb'.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 20:41:29 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_new): don't free rb_encoding to avoid SEGV by</div><div class='add'>+	  `miniruby -e exit' on x86_64 GNU/Linux.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 18:40:19 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (once): use an instance variable which points a hash</div><div class='add'>+	  as cache. [experimental]</div><div class='add'>+</div><div class='add'>+Sat Jan 19 17:21:29 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: parse's hints as an</div><div class='add'>+	  experimental function has been removed.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 11:21:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (sigsetjmp): check if available.</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 11:10:11 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Remove wrong assumptions about Cygwin.  a patch from</div><div class='add'>+	  Corinna Vinschen in [ruby-Bugs-17018].</div><div class='add'>+</div><div class='add'>+Sat Jan 19 09:23:14 2008  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_set_safe_array): should not use</div><div class='add'>+	  recursive calling.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 08:58:47 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup: Remove ListBase and Line constants.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri: Allow output IO to be specified.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/parser/test_parse_c.rb: Move up one level, fixed.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/parser/test_rdoc_markup_attribute_manager.rb: Renamed to</div><div class='add'>+	  match new class name, updated to match new classes.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_formatter.rb: Start of RI formatting tests.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_rdoc_ri_attribute_manager.rb: Start of</div><div class='add'>+	  RDoc::RI::AttributeManager tests.</div><div class='add'>+</div><div class='add'>+	* test/rdoc/test_simple_markup.rb: Moved to match new class name.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 08:35:36 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): get encoding from the first line.</div><div class='add'>+	  [ruby-dev:33168]</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): set encoding to input with set_encoding.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 03:46:42 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): prohibit thread creation in the</div><div class='add'>+	  frozen thread group.  a patch in [ruby-dev:33176] from sheepman</div><div class='add'>+	  &lt;sheepman AT sheepman.sakura.ne.jp&gt;.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): should inherit ThreadGroup from</div><div class='add'>+	  the current thread.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 00:37:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): set result encoding for wider width.</div><div class='add'>+</div><div class='add'>+Sat Jan 19 00:13:19 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.c (w32_wait_events): shouldn't invoke interrupt handle</div><div class='add'>+	  by timer_thread.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 23:49:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): set thread group before creating</div><div class='add'>+	  thread.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 20:19:51 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_initialize): too early to set parser-&gt;enc.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 20:03:05 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (BASERUBY): nmake cannot execute ruby correctly</div><div class='add'>+	  if the path of ruby.exe is quoted.</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak ($(ARCH)): if a macro is appended by $(APPEND),</div><div class='add'>+	  a space will be inserted on the top of the line.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 17:56:09 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, insnhelper.h, thread_pthread.h, vm_core.h, vm_opts.h:</div><div class='add'>+	  prefixed include guards with RUBY.</div><div class='add'>+</div><div class='add'>+	* id.h: added include guard.</div><div class='add'>+</div><div class='add'>+	* regenc.h, regint.h, regparse.h: prefixed include guards with</div><div class='add'>+	  ONIGURUMA.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 15:57:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func): ignore errors from destroying mutex</div><div class='add'>+	  of dead thread.  [ruby-core:15069]</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c, thread_win32.c (native_thread_destroy): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 15:56:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_name_list_i, rb_enc_aliases_enc_i): freeze</div><div class='add'>+	  element strings to be returned.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 14:36:34 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_str_dump): added test for</div><div class='add'>+	  String#dump. [ruby-dev:33142]</div><div class='add'>+</div><div class='add'>+Fri Jan 18 12:25:13 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (load_encoding): check if successfully loaded.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): use original encoding name to</div><div class='add'>+	  replicate loaded encoding instead alias.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 09:43:02 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_char_to_option_kcode): Regexp switch `s' should mean</div><div class='add'>+	  Windows-31J, as wells as `-Ks'.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 09:22:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_initialize): explicitly call rb_ascii8bit_encoding().</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): lex_input may not be have encoding (e.g. IO).</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_compile_string): set encoding from input string.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): use ASCII-8BIT if loading known</div><div class='add'>+	  encoding failed.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_initialize): move parser-&gt;enc initialization.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_aliases_enc_i): exclude non alias names from</div><div class='add'>+	  Encoding.aliases.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): use original encoding name to</div><div class='add'>+	  load DLL.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 07:06:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): stdin/stdout may not be duplex.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 04:27:57 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rdoc/markup/rdoc2latex.rb:  Fix for new namespacing.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/to_latex.rb:  Fix namespacing.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 02:02:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_valid_syntax): added.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: added test for [ruby-list:44479]</div><div class='add'>+</div><div class='add'>+Fri Jan 18 01:48:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_call_method): check argument number to</div><div class='add'>+	  attr_reader.  [ruby-core:15120]</div><div class='add'>+</div><div class='add'>+Fri Jan 18 00:49:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): flush tied write IO too.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): tie stdin with stdout.  [ruby-core:15107]</div><div class='add'>+</div><div class='add'>+Fri Jan 18 00:23:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_free): removed since rb_encoding may be used while</div><div class='add'>+	  cleanup.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 00:17:19 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_cn.c: split from enc/euc_kr.c.</div><div class='add'>+</div><div class='add'>+Fri Jan 18 00:03:54 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_init): use default external encoding</div><div class='add'>+	  if nothing is given.  a patch from sheepman &lt;sheepman AT</div><div class='add'>+	  sheepman.sakura.ne.jp&gt; in [ruby-dev:33159].</div><div class='add'>+</div><div class='add'>+Thu Jan 17 23:56:20 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encdb.h): give output file name to make_encdb.rb.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_table): simplified.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_register_at): lazy loading.  [ruby-dev:33013]</div><div class='add'>+</div><div class='add'>+	* regenc.h (ENC_DUMMY): added.</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb: now emits macros only.</div><div class='add'>+</div><div class='add'>+	* enc/iso_2022_jp.h: split from encoding.c.</div><div class='add'>+</div><div class='add'>+Thu Jan 17 21:48:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_char_to_option_kcode): fixed typo.</div><div class='add'>+</div><div class='add'>+Thu Jan 17 21:01:25 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (Date::Infinity#&lt;=&gt;): didn't work.  A patch from</div><div class='add'>+	  Dirkjan Bussink &lt;d.bussink AT gmail.com&gt; [ruby-core:15098].</div><div class='add'>+	  This is a bug obviously.  However it didn't affect the library's</div><div class='add'>+	  functions.</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: some trivial changes.</div><div class='add'>+</div><div class='add'>+Thu Jan 17 13:07:18 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): preserve the encoding of source string</div><div class='add'>+	  if it is ASCII compatible.  otherwise, add '.force_encoding()'</div><div class='add'>+	  for ugly work around.  maybe we should implement some other way</div><div class='add'>+	  to keep non ASCII encoding in dumped string.  [ruby-dev:33142]</div><div class='add'>+</div><div class='add'>+Thu Jan 17 10:30:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): always flush IO on tty, even without newlines.</div><div class='add'>+	  [ruby-core:15107]</div><div class='add'>+</div><div class='add'>+Wed Jan 16 22:45:27 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_register_at): make own copy.  [ruby-dev:33136]</div><div class='add'>+</div><div class='add'>+Wed Jan 16 18:03:10 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open, rb_io_s_popen): clear temporary object to release</div><div class='add'>+	  and prevent from GC.</div><div class='add'>+</div><div class='add'>+Wed Jan 16 17:55:07 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_quo): typo. a patch from Shin-ichiro HARA</div><div class='add'>+	  &lt;sinara AT blade.nagaokaut.ac.jp&gt; in [ruby-dev:33130]</div><div class='add'>+</div><div class='add'>+Wed Jan 16 17:36:26 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_delegate.rb: add new test file for delegate.rb.</div><div class='add'>+</div><div class='add'>+Wed Jan 16 16:14:00 2008  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: Fix grammar.</div><div class='add'>+</div><div class='add'>+Wed Jan 16 15:26:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (sys_fail2): get rid of unlimited alloca.</div><div class='add'>+</div><div class='add'>+	* io.c (mode_enc, pipe_open, rb_io_s_popen): ditto.</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_p): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (mode_enc): fixed uninitialized variable.</div><div class='add'>+</div><div class='add'>+Wed Jan 16 12:51:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_tmp_new, rb_str_shared_replace):</div><div class='add'>+	  prototype moved.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 23:52:51 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/*: add ARG_UNUSED.</div><div class='add'>+</div><div class='add'>+	* enc/koi8_u.c: added.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 23:00:08 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_{16,32}{be,le}.c: remove some ARG_UNUSED.  replace struct</div><div class='add'>+	  OnigEncodingST by OnigEncoding.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 22:30:43 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (ENC_REGISTER): use &amp;OnigEncoding*.</div><div class='add'>+	  (ENCINDEX_UTF_8): renamed from ENCINDEX_UTF8.</div><div class='add'>+	  (rb_enc_init): use ENC_REGISTER.</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingUTF8, ONIG_ENCODING_UTF8):</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+	* enc/*.c: remove use of &amp;encoding_*; use enc argument instead.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 18:44:46 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: remove use of ONIG_ENCODING_UTF8 altogether; use</div><div class='add'>+	  enc argument instead.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 18:05:26 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c (ONIG_ENCODING_UTF8): reverted.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 18:01:55 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (MKFILES): add dependencies.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 18:00:16 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c (OnigEncodingDefine): encoding name should be kept</div><div class='add'>+	  unchanged.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 17:53:05 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf_8.c: renamed as IANA name.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 16:59:31 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): encoding libraries cannot be loaded until</div><div class='add'>+	  load path is set.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 15:09:28 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: strip out empty lines from CPP output.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 14:57:38 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {win,bcc}32/setup.mak (-basic-vars-): expand BASERUBY to full path</div><div class='add'>+	  to get rid of ./ruby.exe.</div><div class='add'>+</div><div class='add'>+	* win32/enc-setup.mak: workaround for Borland make.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 14:44:53 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): use ASCII-8BIT in miniruby.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 13:54:41 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32}/Makefile.sub (RUNRUBY): need to set archdir when</div><div class='add'>+	  invoking ruby.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 13:43:18 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (us_ascii.o): add dependencies. [ruby-dev:33111]</div><div class='add'>+</div><div class='add'>+Tue Jan 15 03:41:42 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): check if backtrace is empty.  [ruby-core:15040]</div><div class='add'>+</div><div class='add'>+Tue Jan 15 01:28:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: simplified dummy objects dependencies.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 01:19:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (OBJS): moved encoding.o from COMMONOBJS.</div><div class='add'>+</div><div class='add'>+	* common.mk (dmyencoding.o): added.  [ruby-dev:33099]</div><div class='add'>+</div><div class='add'>+	* configure.in, {win,bcc}32/Makefile.sub (MINIOBJS): added</div><div class='add'>+	  dmyencoding.o.</div><div class='add'>+</div><div class='add'>+	* dmyencoding.c (rb_locale_charmap): returns nil for miniruby.</div><div class='add'>+</div><div class='add'>+Tue Jan 15 00:05:50 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): specifying limit should not generate broken</div><div class='add'>+	  byte sequence.  strings should be rounded.  [ruby-dev:33088]</div><div class='add'>+</div><div class='add'>+Mon Jan 14 23:33:02 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv.tolocale): argument is str.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 23:31:05 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (setup): add -I$(EXTOUT)/$(arch) to MINIRUBY.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (main): expand -I directory path.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 23:28:10 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/enc-setup.mak (BUILTIN_ENCOBJS): depends on enc/Makefile.in.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 22:48:16 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_char_to_option_kcode): use rb_enc_find_index() instead</div><div class='add'>+	  of using fixed index value.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (encsrcdir): make US-ASCII built-in.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 22:25:02 2008  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb: Shorter method name completion.  Same method</div><div class='add'>+	  used for const missing. do_while and do_until added.  Enumerator</div><div class='add'>+	  gains all of Array's abilities. Ex:</div><div class='add'>+	    '123'.m{|i|i*2} #=&gt; "112233"</div><div class='add'>+	    '123'.pe #=&gt; '123'.perm*' ' #=&gt; "123 132 213 231 312 321"</div><div class='add'>+	  base on a patch from Darren Smith &lt;darrenks AT ml1.net&gt;.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 21:10:02 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/us_ascii.c: wrong alias name: ANSI_X3.4-1986.</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: add -I#{srcdir} to load encoding DLL.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 18:53:58 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: clear thread structure.</div><div class='add'>+	  (TODO: survey that child process should clear mutex or not).</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_thread.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 18:43:38 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: add "flunk" method.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: fix to use flunk.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 18:10:59 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h: remove dangerous assembler sentence.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 18:06:37 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encoding): return US-ASCII when charmap is</div><div class='add'>+	  nil.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 16:12:58 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: scape should be an alias to shellescape.  a</div><div class='add'>+	  patch from Masahiro Kawato &lt;m-kawato AT mwb.biglobe.ne.jp&gt; in</div><div class='add'>+	  [ruby-dev:33060].</div><div class='add'>+</div><div class='add'>+Mon Jan 14 16:09:16 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: a patch to describe --encoding.  a patch from Yugui</div><div class='add'>+	  &lt;yugui AT yugui.sakura.ne.jp&gt; in [ruby-dev:33079].</div><div class='add'>+</div><div class='add'>+	* ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 13:49:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): initialize error message buffer.</div><div class='add'>+	  (rb_reg_search): ditto.</div><div class='add'>+	  (rb_reg_check_preprocess): ditto.</div><div class='add'>+	  (rb_reg_new_str): ditto.</div><div class='add'>+	  (rb_enc_reg_new): ditto.</div><div class='add'>+	  (rb_reg_compile): ditto.</div><div class='add'>+	  (rb_reg_initialize_m): ditto.</div><div class='add'>+	  (rb_reg_s_union_m): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 12:33:07 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup*:  Renamespace from SM::SimpleMarkup to</div><div class='add'>+	  RDoc::Markup.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 10:45:45 2008  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* enc/ascii.c: Exchanged order of arguments for one ENC_ALIAS</div><div class='add'>+</div><div class='add'>+Mon Jan 14 09:19:07 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: do not reference Time directly from the inside of</div><div class='add'>+	  definitions. [ruby-dev:33059]</div><div class='add'>+</div><div class='add'>+Mon Jan 14 05:44:44 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/*.c: add replicas and aliases.</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.h: add duplicate and undefined check.</div><div class='add'>+</div><div class='add'>+Mon Jan 14 02:03:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h: remove ONIG_ENCODING_* and OnigEncoding*</div><div class='add'>+	  which are not builtin.</div><div class='add'>+</div><div class='add'>+	* regenc.{c,h} (onigenc_mb2_code_to_mbclen, onigenc_mb4_code_to_mbclen):</div><div class='add'>+	  fix prototype.</div><div class='add'>+</div><div class='add'>+	* enc/big5.c, enc/euc_kr.c, enc/euc_tw.c, enc/gb18030.c,</div><div class='add'>+	  enc/koi8_r.c, enc/windows_1251.c: imported from Oniguruma.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 22:47:28 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.h: sort encoding names by original name.</div><div class='add'>+</div><div class='add'>+	* encoding.c, enc/*.c: define replicas and aliases.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 20:24:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: add documents.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 18:41:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): moved initialization from encdb.h.</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb (enc_name_list): constified.</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb (enc_init_db): moved some functions to encoding.c.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 13:53:00 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): local variable was not initialized when -x flag</div><div class='add'>+	  is given.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): script files should not be affected by locale.</div><div class='add'>+	  [ruby-dev:33054]</div><div class='add'>+</div><div class='add'>+Sun Jan 13 12:01:32 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators*: Reorganize RDoc generators.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 11:41:11 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (ENCINDEX_EUC_JP, ENCINDEX_SJIS): removed.</div><div class='add'>+	  (rb_enc_init): EUC-JP and Shift_JIS are not builtin now.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: ditto.</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): ditto.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c, enc/euc_jp.c: fixes for remove from builtin.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 10:21:40 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_table): packed all enc_table stuff.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 09:58:17 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): revert removing SJIS.</div><div class='add'>+</div><div class='add'>+	* enc/sjis.c: move to enc/shift_jis.c, to make encoding name equal to</div><div class='add'>+	  filename for convenience of loading lib.</div><div class='add'>+</div><div class='add'>+	* enc/shift_jis.c: moved from enc/sjis.c.</div><div class='add'>+</div><div class='add'>+	* common.mk: follows enc/shift_jis.c.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 09:22:33 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (incs): includes encdb.h.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 09:17:29 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile.sub (MV): use move instead of ren.  [ruby-Bugs-17019]</div><div class='add'>+</div><div class='add'>+Sun Jan 13 01:52:31 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb: should work on Ruby 1.8.  [ruby-dev:33069]</div><div class='add'>+</div><div class='add'>+	* common.mk (encdb.h): pass enc dir from outside to make_encdb.rb.</div><div class='add'>+</div><div class='add'>+Sun Jan 13 00:01:07 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/make_encdb.rb: added. search enc/*.c and make encoding database.</div><div class='add'>+</div><div class='add'>+	* regenc.h (ENC_REPLICATE, ENC_ALIAS): added for defining replica</div><div class='add'>+	  encoding and encoding alias.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): move alias definitions to enc/*.c.</div><div class='add'>+	  (rb_enc_find_index): search original of replica and alias when no</div><div class='add'>+	  encoding library.</div><div class='add'>+	  (rb_enc_name_list, rb_enc_aliases_enc_i, rb_enc_aliases_str_i,</div><div class='add'>+	   rb_enc_aliases, Encoding.name_list, Encoding.aliases): added.</div><div class='add'>+	  (Init_Encoding): init encdb.</div><div class='add'>+</div><div class='add'>+	* enc/ascii.c, enc/us_ascii.c, enc/euc_jp.c, enc/sjis.c:</div><div class='add'>+	  add replica encoding and encoding alias definition.</div><div class='add'>+</div><div class='add'>+	* common.mk (dist-clean-local): add rule for remove encdb.h.</div><div class='add'>+</div><div class='add'>+Sat Jan 12 18:27:41 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_define_alloc_func, rb_undef_alloc_func): should</div><div class='add'>+	  define/undef on a singleton class.  [ruby-core:09959]</div><div class='add'>+</div><div class='add'>+Sat Jan 12 12:44:36 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: rdoc update.</div><div class='add'>+</div><div class='add'>+Sat Jan 12 12:01:49 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: tuning for performance.</div><div class='add'>+</div><div class='add'>+Sat Jan 12 11:29:45 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_proc.rb: fixed wrong expected result.  pointed</div><div class='add'>+	  out by Kornelius "murphy" Kalnbach &lt;murphy AT rubychan.de&gt; in</div><div class='add'>+	  [ruby-core:15022].</div><div class='add'>+</div><div class='add'>+Sat Jan 12 04:38:38 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): -e'script' is locale encoding by default.</div><div class='add'>+	  (load_file): ruby script from stdin is locale encoding by default.</div><div class='add'>+</div><div class='add'>+Sat Jan 12 04:31:59 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: fix bug: -m was -m0.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 23:22:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (string.c): call rb_str_buf_append to update encoding of</div><div class='add'>+	  str1, even if str2 is empty.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 20:20:16 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_mark): needs to mark the receiver too.  a patch from</div><div class='add'>+	  Chris Heath &lt;chris AT heathens.co.nz&gt; in [ruby-core:14983].</div><div class='add'>+	  [ruby-core:14885]</div><div class='add'>+</div><div class='add'>+Fri Jan 11 18:28:49 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb: Removed.</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb: Update example to not use lib/rdoc/usage.rb.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 18:17:10 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb (read_yaml): Follow namespace change</div><div class='add'>+	  [ruby-core:14964].</div><div class='add'>+</div><div class='add'>+Fri Jan 11 16:55:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_append): performance improvement.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 12:35:56 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: moved broken syscall checks from process.c etc.</div><div class='add'>+</div><div class='add'>+	* defines.h (WORDS_BIGENDIAN): honor __BIG_ENDIAN__ than the result of</div><div class='add'>+	  configure.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb (check_diagram): more precise check, darwin</div><div class='add'>+	  is not Windows but mingw is on it.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 09:59:05 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: update to r1.163.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: ASCII's canonical name is US-ASCII.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv.isjis): force_encoding('BINARY').</div><div class='add'>+</div><div class='add'>+Fri Jan 11 09:23:31 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (set_base_encoding): must use rb_enc_dummy_p.</div><div class='add'>+</div><div class='add'>+Fri Jan 11 06:13:14 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_to_encoding_index, rb_to_encoding): disallow nil.</div><div class='add'>+	  [ruby-dev:33003]</div><div class='add'>+</div><div class='add'>+Fri Jan 11 01:08:01 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_mutex_unlock): proper error message for unlocking</div><div class='add'>+	  mutex that is not locked.  a patch from Yusuke ENDOH</div><div class='add'>+	  &lt;mame at tsg.ne.jp&gt; in [ruby-dev:33010].</div><div class='add'>+</div><div class='add'>+Thu Jan 10 18:00:41 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb (Mutex::synchronize): capture exception from unlock.</div><div class='add'>+	  [ruby-dev:32935]</div><div class='add'>+</div><div class='add'>+Thu Jan 10 10:15:03 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): IO.pipe("euc-jp", nil) should work as</div><div class='add'>+	  IO.pipe("euc-jp", nil).  [ruby-dev:33000]</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): handle nil for v1.</div><div class='add'>+</div><div class='add'>+Thu Jan 10 02:41:22 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): should not alter encoding.  [ruby-dev:32918]</div><div class='add'>+</div><div class='add'>+	* io.c (io_read_encoding): need not to return ASCII-8BIT for</div><div class='add'>+	  binary IO.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 22:04:17 2008  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Prime#each): returns an enumerator if no block</div><div class='add'>+	  given. [ruby-dev:32815]</div><div class='add'>+</div><div class='add'>+Wed Jan  9 22:03:26 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_replicate): replica of dummy is a dummy.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 20:55:38 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/e2mmap.rb (Exception2MessageMapper::Raise): define fail.</div><div class='add'>+	  [ruby-dev:32854]</div><div class='add'>+</div><div class='add'>+Wed Jan  9 20:35:42 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb: support X-Forwarded-* header fields.</div><div class='add'>+	  WEBrick::HTTPRequest#{host,port,request_uri} is derived having</div><div class='add'>+	  regards to X-Forwarded-Proto and X-Forwarded-Host.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb</div><div class='add'>+	  (WEBrick::HTTPRequest#server_name?): new method.</div><div class='add'>+	  (WEBrick::HTTPRequest#remote_ip?): new method.</div><div class='add'>+	  (WEBrick::HTTPRequest#ssl?): new method.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 18:24:39 2008  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Array#to_s): alias to join.</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (FalseClass#to_s): return "".</div><div class='add'>+</div><div class='add'>+Wed Jan  9 16:59:54 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): fix self appending.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 15:54:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): give priority command line encoding option</div><div class='add'>+	  to RUBYOPT, and enable -E option in RUBYOPT.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): deal with encoding option in shebang line if</div><div class='add'>+	  nothing in command line and RUBYOPT.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 14:55:36 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile0): remove setting parser-&gt;enc because it is set</div><div class='add'>+	  in parser_prepare() by previous change of parser_prepare().</div><div class='add'>+</div><div class='add'>+Wed Jan  9 14:52:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat, rb_str_buf_append): deal with self</div><div class='add'>+	  appending.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 14:44:57 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): set parser-&gt;enc from lex_input for ripper.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 13:45:52 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::HTTPServer#start):</div><div class='add'>+	  :DoNotReverseLookup option had not been performed.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 13:03:34 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_cr_str_buf_cat): do not recalculate coderange</div><div class='add'>+	  value if it's given from outside.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 08:42:01 2008  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c:  Updating the documentation of Enumerable#zip to reflect</div><div class='add'>+	  the recent changes Matz made to the method.</div><div class='add'>+</div><div class='add'>+Wed Jan  9 01:35:10 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (BUILTIN_ENCS): UTF-{16,32}{BE,LE} are not builtin.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 23:55:15 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): UTF-{16,32}{BE,LE} are not builtin.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 22:33:03 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c, Makefile.in, include/ruby/oniguruma.h,</div><div class='add'>+	  enc/Makefile.in: fix rules for UTF-{16,32}{BE,LE}.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 20:02:08 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win{32,ce}/Makefile.sub: merged.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 19:48:15 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/driver.rb: Speed up Marshal.load. Fix bug with nested</div><div class='add'>+	  classes' methods.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 19:17:29 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/*: Clean up namespacing of RI's classes.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 18:05:35 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* bin/ri, lib/rdoc/ri/*: Replace with Ryan Davis' cached ri.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 17:32:07 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): honor length of the receiver, not the</div><div class='add'>+	  shortest length.  [ruby-core:14738]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): returns array not enumerator for no block</div><div class='add'>+	  form.  [ruby-core:14738]</div><div class='add'>+</div><div class='add'>+	* enumerator.c (next_ii): do not ignore multiple values yielded.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): faster version without creating generators.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 15:47:43 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/utf{16,32}_{be,le}.c: use &amp;OnigEncodingName(*) instead of</div><div class='add'>+	  ONIG_ENCODING_*.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 15:40:31 2008  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): suppressed</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+	* regenc.h, enc/unicode.c (onigenc_unicode_ctype_code_range): added</div><div class='add'>+	  encoding argument.</div><div class='add'>+</div><div class='add'>+	* enc/utf{16,32}_{be,le}.c: added init functions.</div><div class='add'>+</div><div class='add'>+	* enc/utf{16,32}_{be,le}.c: imported from Oniguruma 5.9.1.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 15:03:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): avoid appending empty pre-match substr.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 13:05:57 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_build_from_ary), iseq.c (iseq_load): fix for format change.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 07:56:11 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_append): fix append itself.</div><div class='add'>+</div><div class='add'>+Tue Jan  8 01:13:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (STR_ENC_GET): defined.  same as rb_enc_get without</div><div class='add'>+	  enc_capable.</div><div class='add'>+	  (coderange_scan): ASCII-8BIT test refined.</div><div class='add'>+	  (rb_enc_cr_str_buf_cat): new internal function to accumulate</div><div class='add'>+	  strings with encoding.</div><div class='add'>+	  (rb_enc_str_buf_cat): use rb_enc_cr_str_buf_cat.</div><div class='add'>+	  (rb_str_buf_append): ditto</div><div class='add'>+	  (str_gsub): use rb_str_buf_append.</div><div class='add'>+	  (rb_str_hash): use ENCODING_GET.</div><div class='add'>+	  (rb_str_comparable): ditto.</div><div class='add'>+	  (rb_str_cmp): compare encoding index, not rb_encoding address.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 20:37:55 2008  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb: external encoding of</div><div class='add'>+	  tempfiles is set to "ASCII-8BIT".</div><div class='add'>+</div><div class='add'>+Mon Jan  7 19:39:50 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/template.rb:  Use ERB instead of custom template language.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/old_html.rb:  Remove.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/*: Convert to ERB.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 19:11:30 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): sym_match arity spec was wrong.  a patch</div><div class='add'>+	  from Hiroyuki Iwatsuki &lt;don at na.rim.or.jp&gt; in [ruby-dev:32957].</div><div class='add'>+</div><div class='add'>+Mon Jan  7 18:10:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): move rb_enc_get(str) to out of loop.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 15:52:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingType): new member</div><div class='add'>+	  ruby_encoding_index to avoid linear search in rb_enc_to_index.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_to_index): macro defined to use</div><div class='add'>+	  ruby_encoding_index.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_to_index): removed.</div><div class='add'>+	  (enc_register_at): initialize ruby_encoding_index member.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 16:10:35 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/tokenstream.rb:  Namespace under RDoc.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 16:06:09 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/dot.rb:  Namespace under RDoc.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb:  Clean up formatting.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 15:51:35 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb:  Convert to OptionParser, clean up -h output,</div><div class='add'>+	  namespace under RDoc.</div><div class='add'>+	* lib/rdoc/*:  Namespace RDoc::Options.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 15:42:46 2008  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, Makefile.in, */Makefile.sub (distclean-local): move</div><div class='add'>+	  removing rule of ext/ripper/y.output from common.mk to Makefiles</div><div class='add'>+	  that depend on platforms.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 13:54:57 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess): fix fixed_enc condition.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 11:51:49 2008  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/ri_generator.rb:  Merge documentation from the</div><div class='add'>+	  same class on output.  Fixes bug where documentation could</div><div class='add'>+	  disappear.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb:  Fix typo.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/*: Clean up some namespacing and make RDoc</div><div class='add'>+	  consistent.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 11:44:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_internal_get_index): extracted from</div><div class='add'>+	  rb_enc_get_index.</div><div class='add'>+	  (rb_enc_internal_set_index): extracted from rb_enc_associate_index</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENCODING_SET): work over ENCODING_INLINE_MAX.</div><div class='add'>+	  (ENCODING_GET): ditto.</div><div class='add'>+	  (ENCODING_IS_ASCII8BIT): defined.</div><div class='add'>+	  (ENCODING_CODERANGE_SET): defined.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_fixed_encoding_p): use ENCODING_IS_ASCII8BIT.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_buf_cat): use ENCODING_IS_ASCII8BIT.</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_fragment_setenc_gen): use ENCODING_IS_ASCII8BIT.</div><div class='add'>+</div><div class='add'>+	* marshal.c (has_ivars): use ENCODING_IS_ASCII8BIT.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 02:14:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (coderange_scan): avoid rb_enc_to_index.</div><div class='add'>+	  (rb_enc_str_buf_cat): ditto.</div><div class='add'>+	  (str_cat_char): use rb_enc_str_buf_cat.</div><div class='add'>+	  (rb_str_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 01:36:49 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (coderange_scan): optimize ASCII-8BIT string.</div><div class='add'>+	  (rb_enc_str_buf_cat): don't call coderange_scan if possible.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 01:05:45 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Revision): cut off locale dependent string in Date</div><div class='add'>+	  keyword.</div><div class='add'>+</div><div class='add'>+Mon Jan  7 00:48:02 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* Date keyword removed to avoid inclusion of locale dependent</div><div class='add'>+	  string.  [ruby-dev:32940]</div><div class='add'>+</div><div class='add'>+Sun Jan  6 21:14:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_str): forbid raw non ASCII character</div><div class='add'>+	  for ASCII-8BIT regexp in non ASCII-8BIT script.</div><div class='add'>+</div><div class='add'>+Sun Jan  6 18:19:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_str_buf_cat): declared.</div><div class='add'>+</div><div class='add'>+	* string.c (coderange_scan): extracted from rb_enc_str_coderange.</div><div class='add'>+	  (rb_enc_str_coderange): use coderange_scan.</div><div class='add'>+	  (rb_str_shared_replace): copy encoding and coderange.</div><div class='add'>+	  (rb_enc_str_buf_cat): new function for linear complexity string</div><div class='add'>+	  accumulation with encoding.</div><div class='add'>+	  (rb_str_sub_bang): don't conflict substituted part and replacement.</div><div class='add'>+	  (str_gsub): use rb_enc_str_buf_cat.</div><div class='add'>+	  (rb_str_clear): clear coderange.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): use rb_enc_str_buf_cat.</div><div class='add'>+</div><div class='add'>+Sun Jan  6 17:55:44 2008  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb: Add Win32 support.</div><div class='add'>+</div><div class='add'>+Sun Jan  6 09:32:58 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: introduced some constants</div><div class='add'>+	  (for internal use) and aliases (minute and second).</div><div class='add'>+</div><div class='add'>+	* sample/cal.rb: trivial adjustments.</div><div class='add'>+</div><div class='add'>+Sun Jan  6 01:38:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_str): /\x80/n is not an error even if script</div><div class='add'>+	  encoding is EUC-JP.</div><div class='add'>+</div><div class='add'>+Sun Jan  6 00:48:12 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS#each_address): get A record and then AAAA</div><div class='add'>+	  record. [ruby-dev:32925]</div><div class='add'>+</div><div class='add'>+Sat Jan  5 21:48:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_insnhelper.c (vm_callee_setup_arg): it is not inlinable because</div><div class='add'>+	  alloca is used.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 16:50:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_resize): copy if old data is not empty</div><div class='add'>+	  [ruby-core:14785]</div><div class='add'>+</div><div class='add'>+Sat Jan  5 13:04:24 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): no need for intermediate object.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 11:48:19 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): alias csWindows31J to Windows-31J.</div><div class='add'>+	  IE6 accepts csWindows31J but Windows-31J.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 02:21:10 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_intern): memorize interned ID for constant</div><div class='add'>+	  string, using gcc's __builtin_constant_p and statement expression.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 02:14:45 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (trnext): should enable backslash escape.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 01:50:32 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): move instance_eval and instance_exec to</div><div class='add'>+	  BasicObject.  [ruby-core:14747]</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: should preserve new methods in BasicObject.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 01:46:29 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): update according to the last API revert.</div><div class='add'>+</div><div class='add'>+Sat Jan  5 01:30:30 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, re.c (rb_reg_new): keep interface same as</div><div class='add'>+	  1.8.  [ruby-core:14583]</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, re.c (rb_reg_new_str): renamed, and defines</div><div class='add'>+	  HAVE_RB_REG_NEW_STR macro to tell if it is available.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_reg_new): added.</div><div class='add'>+</div><div class='add'>+	* insns.def (toregexp), marshal.c (r_object0): use rb_reg_new_str().</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regcomp, rb_reg_s_union): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 23:08:48 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): use converted object.  [ruby-core:14759]</div><div class='add'>+</div><div class='add'>+Fri Jan  4 16:24:58 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb (Digest::HMAC#initialize): use</div><div class='add'>+	  String#bytesize to avoid test errors on EUC-JP environment.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 14:00:50 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): check string encoding.  Oniguruma doesn't</div><div class='add'>+	  support invalid encoding.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 10:22:25 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): avoid inner loop for reverse search.</div><div class='add'>+</div><div class='add'>+	* regexec.c: unset USE_MATCH_RANGE_MUST_BE_INSIDE_OF_SPECIFIED_RANGE</div><div class='add'>+	  which is turned on since oniguruma 5.9.1.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 02:53:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c: remove eucjp_ prefix.  breakpoint can be specified as</div><div class='add'>+	  euc_jp.c:mbc_enc_len.  avoid needless conflict by merge.</div><div class='add'>+</div><div class='add'>+	* enc/sjis.c: remove sjis_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/utf8.c: remove utf8_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_1.c: remove iso_8859_1_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_2.c: remove iso_8859_2_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_3.c: remove iso_8859_3_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_4.c: remove iso_8859_4_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_5.c: remove iso_8859_5_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_6.c: remove iso_8859_6_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_7.c: remove iso_8859_7_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_8.c: remove iso_8859_8_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_9.c: remove iso_8859_9_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_10.c: remove iso_8859_10_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_11.c: remove iso_8859_11_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_13.c: remove iso_8859_13_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_14.c: remove iso_8859_14_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_15.c: remove iso_8859_15_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_16.c: remove iso_8859_16_ prefix.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 02:47:06 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): iterate onig_match for reverse mode.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 01:20:21 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32.h: only VC6 needs extern "C++" for math.h.  [ruby-talk:285660]</div><div class='add'>+</div><div class='add'>+Fri Jan  4 00:54:43 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h: Oniguruma 5.9.1 merged.</div><div class='add'>+</div><div class='add'>+Fri Jan  4 00:20:47 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_ungetc): move data in buffer if it is required to store the</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 21:56:07 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (st_strcasecmp): declared for STRCASECMP.</div><div class='add'>+	  (st_strncasecmp): declared for STRNCASECMP.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 20:24:48 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_jump.c (rb_f_catch): Restore cfp if caught thrown object.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 19:45:57 2008  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_eval.rb, test_knownbug.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 18:39:12 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: (rb_tolower, rb_toupper): body was exchanged.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 17:54:01 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.h (onigenc_ascii_is_code_ctype): put back.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 17:33:09 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_isalnum): defined.</div><div class='add'>+	  (rb_isalpha): ditto.</div><div class='add'>+	  (rb_isblank): ditto.</div><div class='add'>+	  (rb_iscntrl): ditto.</div><div class='add'>+	  (rb_isdigit): ditto.</div><div class='add'>+	  (rb_isgraph): ditto.</div><div class='add'>+	  (rb_islower): ditto.</div><div class='add'>+	  (rb_isprint): ditto.</div><div class='add'>+	  (rb_ispunct): ditto.</div><div class='add'>+	  (rb_isspace): ditto.</div><div class='add'>+	  (rb_isupper): ditto.</div><div class='add'>+	  (rb_isxdigit): ditto.</div><div class='add'>+	  (rb_tolower): ditto.</div><div class='add'>+	  (rb_toupper): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: don't include include/ruby/encoding.h.</div><div class='add'>+	  (rb_isascii): defined.</div><div class='add'>+	  (rb_isalnum): declared.</div><div class='add'>+	  (rb_isalpha): ditto.</div><div class='add'>+	  (rb_isblank): ditto.</div><div class='add'>+	  (rb_iscntrl): ditto.</div><div class='add'>+	  (rb_isdigit): ditto.</div><div class='add'>+	  (rb_isgraph): ditto.</div><div class='add'>+	  (rb_islower): ditto.</div><div class='add'>+	  (rb_isprint): ditto.</div><div class='add'>+	  (rb_ispunct): ditto.</div><div class='add'>+	  (rb_isspace): ditto.</div><div class='add'>+	  (rb_isupper): ditto.</div><div class='add'>+	  (rb_isxdigit): ditto.</div><div class='add'>+	  (rb_tolower): ditto.</div><div class='add'>+	  (rb_toupper): ditto.</div><div class='add'>+	  (ISASCII): simplified.</div><div class='add'>+	  (ISPRINT): ditto.</div><div class='add'>+	  (ISSPACE): ditto.</div><div class='add'>+	  (ISUPPER): ditto.</div><div class='add'>+	  (ISLOWER): ditto.</div><div class='add'>+	  (ISALNUM): ditto.</div><div class='add'>+	  (ISALPHA): ditto.</div><div class='add'>+	  (ISDIGIT): ditto.</div><div class='add'>+	  (ISXDIGIT): ditto.</div><div class='add'>+	  (TOUPPER): ditto.</div><div class='add'>+	  (TOLOWER): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_isascii): removed.</div><div class='add'>+	  (rb_isalnum): ditto.</div><div class='add'>+	  (rb_isalpha): ditto.</div><div class='add'>+	  (rb_isblank): ditto.</div><div class='add'>+	  (rb_iscntrl): ditto.</div><div class='add'>+	  (rb_isdigit): ditto.</div><div class='add'>+	  (rb_isgraph): ditto.</div><div class='add'>+	  (rb_islower): ditto.</div><div class='add'>+	  (rb_isprint): ditto.</div><div class='add'>+	  (rb_ispunct): ditto.</div><div class='add'>+	  (rb_isspace): ditto.</div><div class='add'>+	  (rb_isupper): ditto.</div><div class='add'>+	  (rb_isxdigit): ditto.</div><div class='add'>+	  (rb_tolower): ditto.</div><div class='add'>+	  (rb_toupper): ditto.</div><div class='add'>+</div><div class='add'>+	* common.mk: dependency updated.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 15:10:26 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_isascii): simplified.</div><div class='add'>+	  (rb_isalnum): call onigenc_ascii_is_code_ctype without indirect call.</div><div class='add'>+	  (rb_isalpha): ditto.</div><div class='add'>+	  (rb_isblank): ditto.</div><div class='add'>+	  (rb_iscntrl): ditto.</div><div class='add'>+	  (rb_isdigit): ditto.</div><div class='add'>+	  (rb_isgraph): ditto.</div><div class='add'>+	  (rb_islower): ditto.</div><div class='add'>+	  (rb_isprint): ditto.</div><div class='add'>+	  (rb_ispunct): ditto.</div><div class='add'>+	  (rb_isspace): ditto.</div><div class='add'>+	  (rb_isupper): ditto.</div><div class='add'>+	  (rb_isxdigit): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (onigenc_ascii_is_code_ctype): declaration</div><div class='add'>+	  moved from regenc.h.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 14:37:17 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_magic_comment): use STRNCASECMP.</div><div class='add'>+	  (set_file_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 11:44:37 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: don't mention an obsolete library, ParseDate.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 11:28:58 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): clear errno first.  [ruby-talk:284492]</div><div class='add'>+</div><div class='add'>+Thu Jan  3 05:02:36 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/us_ascii.c: add us_ascii_ prefix for functions to ease</div><div class='add'>+	  setting breakpoint when debugging.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c: add eucjp_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/sjis.c: add sjis_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_1.c: add iso_8859_1_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_2.c: add iso_8859_2_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_3.c: add iso_8859_3_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_4.c: add iso_8859_4_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_5.c: add iso_8859_5_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_6.c: add iso_8859_6_ prefix.</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_7.c: add iso_8859_7_ prefix.</div><div class='add'>+</div><div class='add'>+Thu Jan  3 02:44:34 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (conv_digit): use ISDIGIT, ISLOWER and ISUPPER.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 23:50:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtoul): "0x", "+" and "-" is not a valid integer.</div><div class='add'>+	  end of integer should be just after "0", the beginning, the</div><div class='add'>+	  beginning respectively.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 15:23:15 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtoul): locale independent strtoul is implemented to</div><div class='add'>+	  avoid "i".to_i(36) cause 0 under tr_TR locale on Debian GNU/Linux</div><div class='add'>+	  4.0 (Etch).</div><div class='add'>+	  This is newly implemented, not a copy of missing/strtoul.c.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ruby_strtoul): declared.</div><div class='add'>+	  (STRTOUL): defined to use ruby_strtoul.</div><div class='add'>+</div><div class='add'>+	* bignum.c, pack.c, ext/socket/socket.c: use STRTOUL.</div><div class='add'>+</div><div class='add'>+	* configure.in (strtoul): don't check.</div><div class='add'>+</div><div class='add'>+	* missing/strtoul.c: removed.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (strtoul): removed.</div><div class='add'>+</div><div class='add'>+	* common.mk (strtoul.o): removed.</div><div class='add'>+</div><div class='add'>+	* LEGAL (missing/strtoul.c): removed.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 14:41:08 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (strcasecmp.o): removed.</div><div class='add'>+	  (strncasecmp.o): removed.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h (strcasecmp): removed.</div><div class='add'>+	  (strncasecmp): removed.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 11:34:57 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/strcasecmp.c: removed.  Ruby don't use locale dependent</div><div class='add'>+	  strcasecmp.</div><div class='add'>+</div><div class='add'>+	* missing/strncasecmp.c: ditto.</div><div class='add'>+</div><div class='add'>+	* configure.in: don't check strcasecmp and strncasecmp.</div><div class='add'>+</div><div class='add'>+	* LEGAL: missing/strcasecmp.c and missing/strncasecmp.c removed.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 10:13:54 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/time.rb: use Process.times instead of Time.times.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 09:09:53 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/goodfriday.rb: examples for date are enough.  retired.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 08:58:54 2008  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/cal.rb: just updated with the newest version.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 01:19:31 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: dependency updated.</div><div class='add'>+</div><div class='add'>+Wed Jan  2 00:14:41 2008  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/{nkf.c, utf8tbl.c}: Update nkf.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: fix documents.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: fix documents.</div><div class='add'>+	  (Kconv.is*): use valid_encoding?.</div><div class='add'>+	  (Kconv.isjis): defined.</div><div class='add'>+</div><div class='add'>+Tue Jan  1 23:17:03 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: dependency updated.</div><div class='add'>+</div><div class='add'>+Tue Jan  1 21:11:33 2008  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_isascii): defined.</div><div class='add'>+	  (rb_isalnum): ditto.</div><div class='add'>+	  (rb_isalpha): ditto.</div><div class='add'>+	  (rb_isblank): ditto.</div><div class='add'>+	  (rb_iscntrl): ditto.</div><div class='add'>+	  (rb_isdigit): ditto.</div><div class='add'>+	  (rb_isgraph): ditto.</div><div class='add'>+	  (rb_islower): ditto.</div><div class='add'>+	  (rb_isprint): ditto.</div><div class='add'>+	  (rb_ispunct): ditto.</div><div class='add'>+	  (rb_isspace): ditto.</div><div class='add'>+	  (rb_isupper): ditto.</div><div class='add'>+	  (rb_isxdigit): ditto.</div><div class='add'>+	  (rb_tolower): ditto.</div><div class='add'>+	  (rb_toupper): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (st_strcasecmp): declared.</div><div class='add'>+	  (st_strncasecmp): ditto.</div><div class='add'>+</div><div class='add'>+	* st.c (type_strcasehash): use st_strcasecmp instead of strcasecmp.</div><div class='add'>+	  (st_strcasecmp): defined.</div><div class='add'>+	  (st_strncasecmp): ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: include include/ruby/encoding.h.</div><div class='add'>+	  (ISASCII): use rb_isascii.</div><div class='add'>+	  (ISPRINT): use rb_isprint.</div><div class='add'>+	  (ISSPACE): use rb_isspace.</div><div class='add'>+	  (ISUPPER): use rb_isupper.</div><div class='add'>+	  (ISLOWER): use rb_islower.</div><div class='add'>+	  (ISALNUM): use rb_isalnum.</div><div class='add'>+	  (ISALPHA): use rb_isalpha.</div><div class='add'>+	  (ISDIGIT): use rb_isdigit.</div><div class='add'>+	  (ISXDIGIT): use rb_isxdigit.</div><div class='add'>+	  (TOUPPER): defined.</div><div class='add'>+	  (TOLOWER): ditto.</div><div class='add'>+	  (STRCASECMP): ditto.</div><div class='add'>+	  (STRNCASECMP): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c, encoding.c, file.c, hash.c, process.c, ruby.c, time.c,</div><div class='add'>+	  transcode.c, ext/readline/readline.c: use locale insensitive</div><div class='add'>+	  functions.  [ruby-core:14662]</div><div class='add'>+</div><div class='add'>+Tue Jan  1 17:50:47 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_enc): encoding spec is not allowed in binary mode.</div><div class='add'>+	  [ruby-dev:32913]</div><div class='add'>+</div><div class='add'>+Tue Jan  1 14:41:56 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml: 1.9 patch from Sam Ruby mentioned in his blog:</div><div class='add'>+	  &lt;http://intertwingly.net/blog/2007/12/31/Porting-REXML-to-Ruby-1-9&gt;</div><div class='add'>+	  [ruby-core:14639]</div><div class='add'>+</div><div class='add'>+Tue Jan  1 14:15:04 2008  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): offset movement bug.  a patch from</div><div class='add'>+	  Vincent Isambart &lt;vincent.isambart at gmail.com&gt; in</div><div class='add'>+	  [ruby-core:14647].  [ruby-core:14644]</div><div class='add'>+</div><div class='add'>+Tue Jan  1 01:29:04 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_to_encoding): raises for non-nil, non-encoding,</div><div class='add'>+	  non-string object.  [ruby-core:14634]</div><div class='add'>+</div><div class='add'>+Tue Jan  1 01:04:06 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): rejects dummy encoding.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 23:53:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options, process_options): delays finding encoding</div><div class='add'>+	  until load_path is set.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 23:27:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_resize): embeds if ptr is null.  [ruby-dev:32819]</div><div class='add'>+</div><div class='add'>+Mon Dec 31 23:17:22 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_service):</div><div class='add'>+	  call do_XXX which correspond with request method.</div><div class='add'>+	  (WEBrick::HTTPProxyServer#do_CONNECT,do_GET,do_POST,do_HEAD): added.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpproxy.rb: add test for WEBrick::HTTPProxyServer.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 22:53:29 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_sleep): timespec tv_sec may overflow on</div><div class='add'>+	  some platform.  a patch from zunda &lt;zunda616e AT yahoo.co.jp&gt; in</div><div class='add'>+	  [ruby-dev:32904].</div><div class='add'>+</div><div class='add'>+Mon Dec 31 19:35:20 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (IS_7BIT): removed.</div><div class='add'>+	  (single_byte_optimizable): new function to test optimizationability</div><div class='add'>+	  using single byte string.</div><div class='add'>+	  (str_strlen): use single_byte_optimizable instead of</div><div class='add'>+	  is_ascii_string.</div><div class='add'>+	  (str_nth): rename argument: asc -&gt; singlebyte.</div><div class='add'>+	  (str_offset): ditto.</div><div class='add'>+	  (rb_str_substr): use single_byte_optimizable instead of IS_7BIT.</div><div class='add'>+	  (rb_str_index): ditto.</div><div class='add'>+	  (rb_str_rindex): ditto.</div><div class='add'>+	  (rb_str_splice): ditto.</div><div class='add'>+	  (rb_str_justify): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 07:39:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* main.c, goruby.c (RUBY_MAIN_INIT): removed.</div><div class='add'>+</div><div class='add'>+	* goruby.c (goruby_run_node): run after ruby_init_loadpath() so that</div><div class='add'>+	  require works, and protect the call.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 06:50:38 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: not use -I$(srcdir)/lib with $(MINIRUBY) for cross</div><div class='add'>+	  compiling.</div><div class='add'>+</div><div class='add'>+	* configure.in, {win,bcc}32/Makefile.sub (MINIRUBY): -I$(srcdir)/lib</div><div class='add'>+	  moved.</div><div class='add'>+</div><div class='add'>+Mon Dec 31 06:08:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_sprintf, rb_enc_vsprintf): prototyped.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_enc_sprintf, rb_enc_vsprintf): new functions to format</div><div class='add'>+	  arguments with encoding.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 23:48:00 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (String#/): define / as split, as association of</div><div class='add'>+	  Array#*.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 23:19:06 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (@@golf_hash): for performance improvement.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 22:44:50 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (_valid_time?): I'm not sure to recommend such an</div><div class='add'>+	  expression.  but anyway it is acceptable now.  [ruby-core:14580]</div><div class='add'>+</div><div class='add'>+Sun Dec 30 21:54:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (program, yycompile0): too early to drop lex_lastline in</div><div class='add'>+	  rules.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 19:23:23 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: support DOSISH.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 17:43:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): registered rb_encoding differs from</div><div class='add'>+	  ONIG_ENCODINGs.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 13:56:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (program): clear input strings after all process.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_nextc, parser_yylex): should not drop lex_lastline</div><div class='add'>+	  while lex_p is valid.  [ruby-dev:32896]</div><div class='add'>+</div><div class='add'>+Sun Dec 30 10:54:49 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: rm largefile.h.</div><div class='add'>+</div><div class='add'>+	* common.mk: clean golf, conf*, preludes, and so on.</div><div class='add'>+</div><div class='add'>+	* enc/depend: silent and ignore error for rm.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: should define prefix and exec_prefix.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 06:31:11 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_encoding): register Windows-31J and its alias.</div><div class='add'>+	  [ruby-dev:32843]</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -Ks options means Windows-31J, not Shift_JIS.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 06:27:38 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (depend_rules): need to convert `/' to `\' for windows</div><div class='add'>+	  native commands.</div><div class='add'>+</div><div class='add'>+Sun Dec 30 01:43:56 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (DLDFLAGS): like as extensions.  [ruby-core:14567]</div><div class='add'>+</div><div class='add'>+Sat Dec 29 23:48:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): don't retry when wbuf modified by other threads.</div><div class='add'>+</div><div class='add'>+Sat Dec 29 22:44:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): returns the given string itself if nothing</div><div class='add'>+	  changed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): keeps code-range as possible.</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): adjusts code-range.  [ruby-core:14566]</div><div class='add'>+</div><div class='add'>+Sat Dec 29 21:54:37 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean, distclean, realclean): should include clean-enc</div><div class='add'>+	  and others.  [ruby-dev:32887]</div><div class='add'>+</div><div class='add'>+Sat Dec 29 13:29:29 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add a test reported by</div><div class='add'>+	  Kazuhiro NISHIYAMA.  [ruby-dev:32819].</div><div class='add'>+	  add a test reported by Frederick Cheung.  [ruby-core:14556].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (test_gsub): add a test reported by</div><div class='add'>+	  Sam Ruby.  [ruby-core:14566]</div><div class='add'>+</div><div class='add'>+Sat Dec 29 04:46:58 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions#assert_throws):</div><div class='add'>+	  throw won't raise NameError nor ThreadError but ArgumentError on 1.9.</div><div class='add'>+	  (Test::Unit::Assertions#assert_not_throws): ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: add assertions for throwing some</div><div class='add'>+	  objects other than Symbol.</div><div class='add'>+</div><div class='add'>+Sat Dec 29 03:10:12 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_unread): fix typo.</div><div class='add'>+</div><div class='add'>+Sat Dec 29 02:18:45 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_unread): adhoc workaround for non-binary mode of some DOSish</div><div class='add'>+	  platforms. this is not perfect and safety, but works with most cases.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 23:53:18 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (str_new): new function for allocate an string</div><div class='add'>+	  with encoding propagation.</div><div class='add'>+	  (extract_range): use str_new.</div><div class='add'>+	  (extract_beg_len): ditto.</div><div class='add'>+	  (strscan_peek): ditto.</div><div class='add'>+	  (strscan_rest): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 20:18:42 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Object.say): derived from Perl 5.10.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 19:39:34 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encoding): should check return value from</div><div class='add'>+	  rb_locale_charmap().</div><div class='add'>+</div><div class='add'>+	* ruby.c (locale_encoding): removed.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): use rb_locale_encoding() instead of</div><div class='add'>+	  locale_encoding().</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): use locale encoding</div><div class='add'>+	  instead of input IO's encoding. [ruby-dev:32872]</div><div class='add'>+</div><div class='add'>+Fri Dec 28 19:29:07 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline, readline_s_set_input):</div><div class='add'>+	  use mReadline directly because self is not always same.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 19:11:28 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_encoding): defined.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_locale_encoding): declared.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 18:45:29 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): set encoding to result.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_input, Init_readline): save</div><div class='add'>+	  input IO to hidden instance variable.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 01:55:04 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_dispatch): reverted some of the changes</div><div class='add'>+	  in r14746.</div><div class='add'>+</div><div class='add'>+	* transcode.c, enc/trans/single_byte.c: Added conversions to/from</div><div class='add'>+	  US-ASCII and ASCII-8BIT (using data tables).</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.c: Some spacing/ordering changes due to</div><div class='add'>+	  automatic data file generation.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h, transcode.c: Preliminary code for using</div><div class='add'>+	  micro-conversion functions.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Added some tests for US-ASCII and</div><div class='add'>+	  ASCII-8BIT conversions.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 17:33:44 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (make_time_t): verify mktime and timegm result.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 16:36:33 2007  NARUSE, Yui  &lt;naruse@airemix.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS#each_address): now returns IPv6 address.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 16:10:00 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/dot/dot.rb: Move to lib/rdoc/dot.rb. Fix namespacing.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb: Update for 1.9.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 15:38:29 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/sample/: Move to sample/rdoc/markup directory.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 15:15:12 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb: Remove garbage ("X=1").</div><div class='add'>+</div><div class='add'>+Fri Dec 28 15:12:05 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc, test/rdoc: Move RDoc tests out of lib/.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 15:10:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (set_base_encoding, enc_base_encoding): renamed</div><div class='add'>+	  based_encoding as base_encoding.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 13:57:49 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Integer#each): use alias simply.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 13:45:21 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Object.const_missing): No need to delegate to</div><div class='add'>+	  superclass.  Just raise a NameError when none matches.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 13:18:47 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, test/rss/test_version.rb: 0.2.2 -&gt; 0.2.3.</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb, test/rss/test_parser.rb: supported "-" in tag name.</div><div class='add'>+	  Reported by Ray Chen. Thanks.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 13:07:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of): returns an enumerator if no block given.  based on</div><div class='add'>+	  a patch from Yugui &lt;yugui AT yugui.sakura.ne.jp&gt;.  [ruby-dev:32828]</div><div class='add'>+</div><div class='add'>+Fri Dec 28 11:46:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/ytab.sed: skip yydestruct hack unless yymsg exists, for bison</div><div class='add'>+	  1.8 series.  [ruby-dev:32825]</div><div class='add'>+</div><div class='add'>+Fri Dec 28 11:39:02 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Object.quine): need to join because SCRIPT_LINES__[]</div><div class='add'>+	  returns an array of lines.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 11:16:53 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Object.quine): get the script itself.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 10:06:54 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Object.const_missing): Auto-complete constants.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 01:55:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_dispatch): allows transcoding from/to</div><div class='add'>+	  ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 01:47:25 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (Integer): Integer is now enumerable on goruby.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 01:27:47 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (parse_files): don't depend on the default external</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+Fri Dec 28 00:01:57 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (golf_prelude.c): use MINIRUBY instead of BASERUBY because</div><div class='add'>+	  tool/compile_prelude.rb requires rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 23:56:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: should not use the libraries under the source directory</div><div class='add'>+	  at cross compiling.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 23:43:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (EXTOBJS): uses ruby.rc always for other than</div><div class='add'>+	  rubyw.exe.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 22:31:37 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/update_command.rb (do_rubygems_update): use</div><div class='add'>+	  portable and safely ENV operation. reported in</div><div class='add'>+	  &lt;http://slashdot.jp/developers/comments.pl?sid=384937&amp;cid=1273085&gt;.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 21:47:04 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (prefix): archdir is "1.9.0", not "1.9". reported in</div><div class='add'>+	  &lt;http://slashdot.jp/developers/comments.pl?sid=384937&amp;cid=1273085&gt;.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 17:57:30 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y, transcode_data.h, transcode.c, lib/weakref.rb,</div><div class='add'>+	  lib/irb/ruby-lex.rb, lib/irb/lc/error.rb, enc/trans/japanese.c:</div><div class='add'>+	  change "illegal" to "invalid" in a context which doesn't against</div><div class='add'>+	  a law.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 16:37:06 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): show encodings in error message.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 15:25:16 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codelen): show codepoint in error message.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_codelen): comment it returns</div><div class='add'>+	  positive integer.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_concat): rb_enc_codelen doesn't return 0.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 15:18:44 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codelen): error message refined.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 15:11:27 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_check): show encodings in error message.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 15:02:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): fixed using a wrong variable.</div><div class='add'>+	  [ruby-list:44402]</div><div class='add'>+</div><div class='add'>+Thu Dec 27 14:34:38 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): checks wbuf modification by other threads.</div><div class='add'>+	  not perfect.  it need locks.</div><div class='add'>+</div><div class='add'>+Thu Dec 27 10:44:03 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: a patch to support IRIX from Andrew</div><div class='add'>+	  Thompson &lt;andrew@hijacked.us&gt; in [ruby-core:14447].</div><div class='add'>+</div><div class='add'>+Thu Dec 27 02:25:45 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_tmpsrc): retry to create file if Errno::EACCES</div><div class='add'>+	  occurs. this is a workaround for mswin32.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 22:47:31 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Name.==): fix for other is array of</div><div class='add'>+	  Resolv::DNS::Label::Str.</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::MessageEncoder#put_label): String#string</div><div class='add'>+	  is not defined, so replace to_s.</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::IPv6#to_name): ip6.int is obsoleted by</div><div class='add'>+	  ip6.arpa.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 21:27:02 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_xmlschema): some improvements.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_parse): a new hint compfunc. [experimental]</div><div class='add'>+</div><div class='add'>+Wed Dec 26 17:31:08 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fflush): check closed fptr after rb_write_internal to avoid</div><div class='add'>+	  SEGV on MacOS X.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 16:10:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): defines chars method.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 14:38:43 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: install goruby if exists.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 13:55:02 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb:  Cleaned up some code with Ruby 1.9 idioms.</div><div class='add'>+</div><div class='add'>+Wed Dec 26 13:29:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (tmpbuf): use rb_str_tmp_new().</div><div class='add'>+</div><div class='add'>+Wed Dec 26 00:57:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/generator/generator.c (Init_generator): requires</div><div class='add'>+	  json/common.rb for GeneratorError, when static linked.  a patch from</div><div class='add'>+	  Kenta Murata &lt;muraken AT gmail.com&gt; in [ruby-dev:32789].</div><div class='add'>+</div><div class='add'>+Tue Dec 25 23:33:55 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* development version 1.9.0 released.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 23:25:29 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/node.rb (REXML::Node::indent): should initialize rv</div><div class='add'>+	  variable.  a patch from Tadayoshi Funaba &lt;tadf AT dotrb.org&gt; in</div><div class='add'>+	  [ruby-dev:32783].</div><div class='add'>+</div><div class='add'>+Tue Dec 25 23:16:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): encoding option in shebang and RUBYOPT did not</div><div class='add'>+	  work, do not store alloca()ed string in a parent scope struct.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 22:56:52 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): keep this file.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 22:55:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (TIMEZONE_VOID): typo.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 22:45:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns2vm.rb: add encoding option to shebang.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 22:13:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/pending.rb: add pending issue.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 22:12:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: remove Thread.critical(=).</div><div class='add'>+</div><div class='add'>+Tue Dec 25 21:44:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: add version number.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 21:32:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix stack consistency error</div><div class='add'>+	  (break is compiled to throw instead of jump insn).</div><div class='add'>+	  these problems are reported by Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_syntax.rb: move fixed test.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 21:32:44 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct parser_params): make parser_ruby_sourcefile common</div><div class='add'>+	  field.  it is used by node_newnode.</div><div class='add'>+	  new field parser_ruby_sourcefile_string for ripper.</div><div class='add'>+	  (parser_initialize): initialize parser_ruby_sourcefile in ripper.</div><div class='add'>+	  (ripper_initialize): initialize parser_ruby_sourcefile_string.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 21:26:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.c): depends on tool/ytab.sed.</div><div class='add'>+</div><div class='add'>+	* tool/ytab.sed: hack for bison 2.1.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 20:24:58 2007  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Only show a warning if the default</div><div class='add'>+	  DH callback is actually used.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_rand.c: New method: random_add().</div><div class='add'>+</div><div class='add'>+Tue Dec 25 20:24:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: argument check, and cleanup exported directory.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 20:07:13 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: more portable.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 19:01:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.h (rb_enc_mbc_to_codepoint): wrapper for</div><div class='add'>+	  ONIGENC_MBC_TO_CODE().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): deal with invalid sequence as binary.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 18:40:46 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c: all methods need $SAFE &lt; 1.</div><div class='add'>+</div><div class='add'>+	 vm.c: comment out debug functions.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 18:37:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): move RS comparison to rb_io_getline_1().</div><div class='add'>+</div><div class='add'>+Tue Dec 25 18:27:51 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): don't call rb_enc_codepoint with empty</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 18:06:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): don't call rb_enc_codepoint with empty</div><div class='add'>+	  string.  fix '#'.inspect.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codepoint): raise on empty string.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 17:48:28 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_frame_method_id_and_class): new function to get the</div><div class='add'>+	  method id and class of the current frame.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 17:32:04 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): Add a missing dependency on the</div><div class='add'>+	  target directory for each .rb file.  This will hopefully fix</div><div class='add'>+	  parallel make (-jN).  Tested on FreeBSD.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:51:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (rb_{from,to}_{SHIFT_JIS,EUC_JP}): inversed</div><div class='add'>+	  from_encoding and to_encoding.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:41:57 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* golf_prelude.rb (h): add new method for all golfers.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:37:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/japanese.c (rb_to_EUC_JP): fixed typo.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:34:58 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/depend: add dependencies. [ruby-dev:32760]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:26:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, thread.c: rename is_ruby_native_thread() to</div><div class='add'>+	  ruby_native_thread_p().</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: apply it.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:15:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clean-enc): clean encoding objects.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 16:04:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, goruby.c, golf_prelude.rb: for golfers.</div><div class='add'>+</div><div class='add'>+	* main.c (main): hook for embedding applications.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: can change initialize function name.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:59:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_register): do not use based_encoding to check if</div><div class='add'>+	  dummy encoding.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:55:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): fix for string with non-alphanumeric chars.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:42:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_external_encoding): should return nil for</div><div class='add'>+	  pass-through write IO.  [ruby-dev:32740]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:24:57 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): initialize rslen to 1 if rsptr is 0.</div><div class='add'>+	  rslen is the length of the delimiter.</div><div class='add'>+	  if only delim is given, it should be 1.</div><div class='add'>+	  [ruby-dev:32746]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:21:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_dispatch): fix for multistep transcode.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:07:51 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.c (Init_single_byte): renamed.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 15:00:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_yield): when multiple values yielded from #each</div><div class='add'>+	  pack them into an array.  [ruby-dev:32708]</div><div class='add'>+</div><div class='add'>+	* enum.c: all method but all?, any?, one? and none? passed packed</div><div class='add'>+	  multiple values to the block.</div><div class='add'>+</div><div class='add'>+	* enum.c (collect_all): should pack all values.  [ruby-core:14410]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 14:57:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (COMMONOBJS): transcode_data_*.c moved under enc/trans.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (rb_transcoding, rb_transcoder): prefixed.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_register_transcoder, rb_declare_transcoder): split</div><div class='add'>+	  declaration and registration.  [ruby-dev:32704]</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_dispatch): autoload pre-declared transcoder.</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): use rb_define_dummy_encoding().</div><div class='add'>+</div><div class='add'>+	* transcode.c (Init_transcode): initialize transcoder tables.</div><div class='add'>+</div><div class='add'>+	* enc/trans/single_byte.c, enc/trans/japanese.c: moved from top.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 14:20:13 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (map_dir): should generate path including $top_srcdir.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 14:09:16 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb:  Fixed test failures caused by changes to Ruby.</div><div class='add'>+</div><div class='add'>+	* test/csv/tc_serialization, test/csv/tc_csv_parsing, test/csv/tc_features:</div><div class='add'>+	  Fixed test failures caused by changes to Ruby.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 14:11:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_encoding_set): missing return type.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 14:03:48 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb (MockClock#{_forward, forward, sleep}):</div><div class='add'>+	  Change default value of n as @reso from nil.  If default value is</div><div class='add'>+	  nil, n.+ is not defined.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 13:54:01 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (test_pipe): fixed.</div><div class='add'>+	  [ruby-dev:32743]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 13:44:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_fd_rw): should check EBADF on select().</div><div class='add'>+</div><div class='add'>+Tue Dec 25 13:30:03 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c, thread_pthread.h, thread_win32.c,</div><div class='add'>+	  thread_win32.c: make some functions static functions.</div><div class='add'>+	  a patch from Tadashi Saito &lt;shiba AT mail2.accsnet.ne.jp&gt;</div><div class='add'>+	  in [ruby-core:14407]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 13:23:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io_m17n.rb (test_write_noenc): don't mix text and</div><div class='add'>+	  binary mode.  [ruby-dev:32743]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 13:13:09 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja, dir.c, eval.c, eval_intern.h, lex.c.src,</div><div class='add'>+	  lex.c.blt, keywords, load.c, thread.c: more ANSI'ize.</div><div class='add'>+	  a patch from Tadashi Saito &lt;shiba AT mail2.accsnet.ne.jp&gt;</div><div class='add'>+	  in [ruby-dev:32725]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 13:07:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h, thread.c, cont.c: add RUBY_VM_SET_INTERRUPT(),</div><div class='add'>+	  RUBY_VM_SET_TIMER_INTERRUPT(), RUBY_VM_INTERRUPTED().</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.c, thread_win32.c: fix to ignore time slice</div><div class='add'>+	  event until sleep.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_thread.rb: add a test for time limited join test.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 12:42:59 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_VM): remove unused code.</div><div class='add'>+	  [ruby-dev:32732]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 12:32:32 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: Moving a static counter from inside register_transcoder()</div><div class='add'>+	  and register_functional_transcoder() to outside the functions, renaming</div><div class='add'>+	  from n to next_transcoder_position. Fixes 3) in [ruby-dev:32715].</div><div class='add'>+</div><div class='add'>+Tue Dec 25 12:22:17 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/from.rb: follow Ruby 1.9 libraries.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 12:21:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (method_inspect): preserve encoding of the method name.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 12:07:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BASERUBY): delayed error until BASERUBY is used.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 11:48:35 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/README: removed obsoleted files: dbmtest.rb,</div><div class='add'>+	  getopts.test, mrshtest.rb, regx.rb.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 11:45:34 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb:  Import the FasterCSV source as the new CSV class.</div><div class='add'>+</div><div class='add'>+	* test/csv/*:  Added all applicable tests from FasterCSV.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 11:33:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (report_bug): uses ruby_description.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 11:20:38 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix stack consistency error.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;  [ruby-dev:32720]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add 2 tests for above.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 11:14:20 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c, vm_core.h: comment out unused fields.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 11:02:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: check frame is FINAL when creating env.</div><div class='add'>+	  [ruby-core:14395]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 09:12:13 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/:  Enable RDoc debugging only with $DEBUG_RDOC.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 08:37:43 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb, test/csv/test_csv.rb:  Removed in preparation for</div><div class='add'>+	  FasterCSV code import.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 08:27:43 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Fix test failures.</div><div class='add'>+</div><div class='add'>+	* test/rubygems/test_gem.rb:  Fix test failure.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 06:23:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_literal.rb: move fixed test.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 06:19:04 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/biorhythm.rb: follow Ruby 1.9 libraries.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 06:15:01 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: add dummy toplevel frame.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 05:44:56 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb:  Fix uninitialized variable warning.</div><div class='add'>+	  [ruby-talk:284582]</div><div class='add'>+</div><div class='add'>+	* lib/irb/output-method.rb:  Remove unused #foo method.</div><div class='add'>+	  [ruby-talk:284582]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 05:24:12 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile): clear local table if node == 0.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;  [ruby-dev:32530]</div><div class='add'>+</div><div class='add'>+	* vm.c: clear VM stack.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 04:23:32 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2str): fill klass of returned string as rb_cString.</div><div class='add'>+	  some strings are allocated before rb_cString is created.</div><div class='add'>+	  This prevents a "called on terminated object" error by</div><div class='add'>+	  ObjectSpace.each_object(Module) {|m| p m.name }.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 03:51:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix stack consistency bug.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+Tue Dec 25 03:19:47 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: must create configure and lex.c.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 03:16:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): now takes up to two arguments.  allow its</div><div class='add'>+	  external/internal encoding by Encoding objects.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_set_encoding): new method to set encoding of the IO.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_set_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 03:08:53 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): use NUM2LONG instead of NUM2INT.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_lshift, fix_aref): use SIZEOF_LONG instead of</div><div class='add'>+	  SIZEOF_VALUE.</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2ulong, rb_big_aref): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 02:55:26 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/element.rb (REXML::Elements#each): yield in each</div><div class='add'>+	  should be called with one parameter. [ruby-dev:32708]</div><div class='add'>+</div><div class='add'>+Tue Dec 25 02:15:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): add a "pop" insn after break</div><div class='add'>+	  to fix stack consistency error.  [ruby-core:14385]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: remove fixed bug.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 01:54:36 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* id.c (Init_id): remove several unused symbols. [ruby-core:14362]</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_specialized_instruction): do not use</div><div class='add'>+	  VM_CALL_SEND_BANG flag any longer.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 01:42:41 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (parse_files): interpret coding cookie.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 01:38:04 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (method_name): preserve Symbol's encoding.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_id2name): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 01:19:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_left_char_head): new utility macro.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_right_char_head): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): does multibyte RS search in the function.</div><div class='add'>+</div><div class='add'>+	* io.c (prepare_getline_args): RS may be nil.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): should process character based on external</div><div class='add'>+	  encoding, when transcoding required.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 01:07:57 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/output-method.rb: translate a comment to English to</div><div class='add'>+	  avoid mix of EUC-JP comment and UTF-8 Date keyword.</div><div class='add'>+	  svn substitute Date keyword with UTF-8 weekday on UTF-8 locale.</div><div class='add'>+</div><div class='add'>+Tue Dec 25 00:27:28 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservley/cgihandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::CGIHandler#do_GET): m17nized.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 23:55:29 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::escape): m17nized.</div><div class='add'>+	  (CGI::unescape): ditto.</div><div class='add'>+	  (CGI::escapeHTML): ditto.</div><div class='add'>+	  (CGI::unescapeHTML): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 23:32:24 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data_japanese.c (select_iso_2022_mode): '\e' is not valid.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 23:13:09 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb (RDoc::Diagram#initialize): use fileuitls</div><div class='add'>+	  instead of ftools.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 23:04:57 2007  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb: removed obsoleted lib.  use fileutils instead (by eban).</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb, lib/rdoc/generators/*, lib/rake.rb: let it use</div><div class='add'>+	  fileutils instead of ftools.</div><div class='add'>+</div><div class='add'>+	* lib/shell/command-processor.rb: removed unused references to ftools.</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb: removed.  see [ruby-core:12535], [ruby-dev:31969].</div><div class='add'>+</div><div class='add'>+	* lib/README: updated.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 23:01:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Buffer): use Meta ===.  [ruby-core:14295]</div><div class='add'>+</div><div class='add'>+Mon Dec 24 22:46:42 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: register_functional_transcoder() added.</div><div class='add'>+	  (init_transcoder_table(: register ISO-2022-JP.</div><div class='add'>+	  (str_transcode): add preprocessor and postprocessor.</div><div class='add'>+</div><div class='add'>+	* transcode_data_japanese.c: add ISO-2022-JP support.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h: moved transcoder and transcoding definition from</div><div class='add'>+	  transcode.c.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 20:29:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb: fix test for 1.9.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 20:23:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: revert last commit because this test seems</div><div class='add'>+	  to have timing problem to halt all tests.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 20:18:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: enable rinda test.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 20:16:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: fix rdoc install dir.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 18:37:32 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): show regexp encoding in the error message.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 18:23:32 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exc_raise): ANSI style.</div><div class='add'>+	  (rb_exc_fatal): ditto.</div><div class='add'>+	  (rb_raise_jump): ditto.</div><div class='add'>+	  (rb_jump_tag): ditto.</div><div class='add'>+	  (rb_block_given_p): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (original_module): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 18:05:09 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (Init_ISeq): disable ISeq.load() because there is no verifier.</div><div class='add'>+</div><div class='add'>+	* iseq.c, proc.c: add ISeq.disasm(method).</div><div class='add'>+</div><div class='add'>+Mon Dec 24 18:06:03 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.c (Init_eval_method): extracted from Init_eval</div><div class='add'>+	  for rdoc to find rb_mod_remove_method, rb_mod_undef_method and</div><div class='add'>+	  rb_mod_alias_method.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): call Init_eval_method.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:59:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (load_lock): reverted.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_wait): check for recursive wait.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:50:54 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (function_call_may_return_twice_jmp_buf): removed.</div><div class='add'>+	  (function_call_may_return_twice_false): removed.</div><div class='add'>+	  [ruby-core:14335]</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:40:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (node_name.inc, miniprelude.c, prelude.c): nmake cannot</div><div class='add'>+	  handle target vpath in other than implicit rules.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:20:34 2007  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/{mailread.rb,getopts.rb,parsearg.rb}: removed.</div><div class='add'>+	  see [ruby-core:12535], [ruby-dev:31969].</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:12:57 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h, random.c, array.c:</div><div class='add'>+	  change exported name.</div><div class='add'>+	  genrand_int32 -&gt; rb_genrand_int32.</div><div class='add'>+	  genrand_real -&gt; rb_genrand_real.</div><div class='add'>+	  [ruby-core:14335]</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:06:37 2007  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {lib,test}/{soap,wsdl,xsd}: removed soap4r along to the discussion</div><div class='add'>+	  at ruby-core and ruby-dev.  see [ruby-core:12535], [ruby-dev:31969].</div><div class='add'>+</div><div class='add'>+Mon Dec 24 17:06:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* load.c (rb_feature_p): returns loading path name too.</div><div class='add'>+</div><div class='add'>+	* load.c (search_required): returns path too if feature is being</div><div class='add'>+	  loaded.  [ruby-dev:32048]  [TODO: refactoring]</div><div class='add'>+</div><div class='add'>+Mon Dec 24 16:29:12 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/openssl: reviewed and remove dependency on getopts.rb.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 16:18:57 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: add teeny to CONFIG['ruby_version'].</div><div class='add'>+</div><div class='add'>+Mon Dec 24 15:55:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile.rb, getrev.rb, runruby.rb: remove unused tools.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 15:42:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, cygwin/GNUmakefile.in, */Makefile.sub,</div><div class='add'>+	  djgpp/config.hin.: version dependent directory names now contain</div><div class='add'>+	  teeny.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 15:29:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/serb.rb: removed.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 13:55:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_new), vm.c (invoke_block): removed u3.state magic.</div><div class='add'>+	  [ruby-core:14310]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_symbol.rb (test_to_proc): a test from Frederick</div><div class='add'>+	  Cheung &lt;frederick.cheung AT gmail.com&gt;.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 13:43:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork): should not leave living_threads</div><div class='add'>+	  referring freed table while allocating new table.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 12:49:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, configure.in, lib/mkmf.rb, */Makefile.sub: specify</div><div class='add'>+	  compiled output file name explicitly.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in, enc/depend: now makes compiler to put generated</div><div class='add'>+	  files under directories corresponding to the each source.</div><div class='add'>+	  enc/trans supported.</div><div class='add'>+</div><div class='add'>+	* enc/make_encmake.rb: evaluates depend file before Makefile.in so</div><div class='add'>+	  that the former can influence to CONFIG.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 12:35:03 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win{32,ce}/Makefile.sub (MFLAGS): defaulted to -l.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 12:08:10 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* /, ext/:  Add svn:ignore for OS X Xcode 3's conftest.dSYM</div><div class='add'>+	  directories.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 11:56:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: should not pass MAKEFLAGS to recursive make.</div><div class='add'>+	  + normal make: MFLAGS are set and command line options and macros</div><div class='add'>+	    are all passed silently.</div><div class='add'>+	  + GNU make: ditto, and all options and macros in MAKEFLAGS are in</div><div class='add'>+	    effect.</div><div class='add'>+	  + nmake: MFLAGS is not set and MAKEFLAGS has only options without</div><div class='add'>+	    hyphen, no macros exist in any variables.</div><div class='add'>+	  + Borland make: ditto, and command line macros cannot override</div><div class='add'>+	    macros in makefile, so passing them is vain.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win{32,ce}}/Makefile.sub (SET_MAKE): set MFLAGS which is not</div><div class='add'>+	  set by default, to get rid of chaotic situation of MFLAGS/MAKEFLAGS.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 11:32:44 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable): fixed to keep transitivity.</div><div class='add'>+	  [ruby-dev:32693]</div><div class='add'>+</div><div class='add'>+Mon Dec 24 11:20:31 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb:  Fix display of GEMDIRS, make command</div><div class='add'>+	  examples match ri's name.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_paths.rb:  Only allow latest ri dirs in ri output.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 10:49:04 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/mailto.rb, lib/uri/common.rb:  Fix Regexp warnings.  Patch</div><div class='add'>+	  #16524 from Kornelius Kalnbach, [ruby-core:14302].</div><div class='add'>+</div><div class='add'>+Mon Dec 24 10:37:38 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb:  Remove methods from Gem, not QuickLoader, to fix</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 09:45:45 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c, transcode_data_one_byte.c, transcode_data_japanese.c:</div><div class='add'>+	  added rb_ prefix to external data symbols.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 05:32:22 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): updated documentation.  a patch from Keita</div><div class='add'>+	  Yamaguchi &lt;keita.yamaguchi AT gmail.com&gt; in [ruby-dev:32686].</div><div class='add'>+</div><div class='add'>+	* README.EXT: updated.  a patch from Tadashi Saito</div><div class='add'>+	  &lt;shiba AT mail2.accsnet.ne.jp&gt; in [ruby-core:14328].</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_at): updated documentation. a patch from Tadashi</div><div class='add'>+	  Saito &lt;shiba AT mail2.accsnet.ne.jp&gt; in [ruby-core:14330].</div><div class='add'>+</div><div class='add'>+Mon Dec 24 05:13:04 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): should associate new encoding if modified.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 04:04:12 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https.rb: should rescue LoadError.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 03:57:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c, vm.h: fix to support sparc machine.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+Mon Dec 24 03:35:19 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: remove additional "-".</div><div class='add'>+</div><div class='add'>+Mon Dec 24 02:59:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): should not fill fptr-&gt;enc always.</div><div class='add'>+	  read-write IO (e.g. socket) does not work.  [ruby-dev:32685]</div><div class='add'>+</div><div class='add'>+	* io.c (io_read_encoding): retrieve reading encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (prepare_getline_args): convert RS to external encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (str_new_shared): was setting embedding flag of wrong</div><div class='add'>+	  string object.  [ruby-dev:32685]</div><div class='add'>+</div><div class='add'>+	* io.c (io_enc_str): should preserve default_external encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): should do multibyte aware RS search.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 02:06:35 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): documentation update.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): wrong encoding destination.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_external_encoding): should return the encoding of</div><div class='add'>+	  the file reading.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_internal_encoding): should return the encoding of</div><div class='add'>+	  read string.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 01:46:43 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_pipe): allow specifying read-side encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (io_enc_str): wrong encoding destination.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 01:03:17 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable): comparison including broken</div><div class='add'>+	  coderange strings do not consider encoding.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 00:57:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (open_key_args): IO direct methods (foreach, readlines,</div><div class='add'>+	  read) now takes keyword argument: encoding, mode, open_args.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 00:52:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_read): encoding argument reverted.</div><div class='add'>+</div><div class='add'>+	* io.c (mode_enc): independent function to share code.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_internal_encoding): new method.</div><div class='add'>+</div><div class='add'>+Mon Dec 24 00:47:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (TestBeginEndBlock::test_endblockwarn):</div><div class='add'>+	  rename endblockwarn.rb to endblockwarn_rb to avoid unnecessary</div><div class='add'>+	  warning in make test.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 23:03:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codepoint): implemented to raise invalid</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_codepoint): macro is replaced as a</div><div class='add'>+	  declaration.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 19:45:22 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.httpdate): fix 2 digits year for 20xx.</div><div class='add'>+	  reported by Tadayoshi Funaba.  [ruby-dev:32687]</div><div class='add'>+</div><div class='add'>+Sun Dec 23 19:33:42 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb:  Fix method redefined warning.  [ruby-core:14304]</div><div class='add'>+</div><div class='add'>+Sun Dec 23 18:31:49 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_enc_get): use rb_define_dummy_encoding.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (Init_nkf): use rb_nkf_enc_get("ASCII").</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Update 1.161.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf9/config.h: default output encoding is now UTF-8.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv.kconv): replace Encoding#name by</div><div class='add'>+	  Encoding#to_s.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 18:02:52 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_open_uri.rb:  Fix version check.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 17:24:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): add eucJP as an alias of EUC-JP.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 17:00:23 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.httpdate): use Time.utc for</div><div class='add'>+	  "day-of-week, dd-mon-yy HH::MM:SS GMT" format.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 16:12:40 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc:  Fix 1.9 warnings.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 15:28:37 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems, test/rubygems:  Fix new 1.9 warnings.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 14:43:10 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb:  Use require to load rubygems.rb so the correct path</div><div class='add'>+	  is in $LOADED_FEATURES on RubyGems upgrade.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 11:26:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_call): use exact argument array interface.</div><div class='add'>+	  [ruby-core:14279]</div><div class='add'>+</div><div class='add'>+Sun Dec 23 11:01:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode_m): removed C99ism.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 10:23:23 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data_one_byte.c: Better (and more honest) optimization.</div><div class='add'>+</div><div class='add'>+	* transcode_data_japanese.c: First optimization step.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 09:07:02 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h, encoding.c, re.c, io.c, parse.y, numeric.c,</div><div class='add'>+	  ruby.c, transcode.c, ext/nkf/nkf.c: rename rb_ascii_encoding to</div><div class='add'>+	  rb_ascii8bit_encoding.  rb_ascii_encoding is ambiguous with</div><div class='add'>+	  ASCII-8BIT and US-ASCII.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 03:35:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: use patchlevel if revision is not set.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win{32,ce}}/setup.mak (-version-): skip including revision.h.</div><div class='add'>+</div><div class='add'>+	* common.mk (srcs): new target to generated sources.</div><div class='add'>+</div><div class='add'>+	* common.mk (encs, ext/ripper/ripper.c): MAKEFLAGS needs -.</div><div class='add'>+</div><div class='add'>+	* enc/depend, enc/make_encmake.rb: use erb.</div><div class='add'>+</div><div class='add'>+Sun Dec 23 01:56:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_enc): do not set encoding unless explicitly</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): fill fptr-&gt;enc by default_external</div><div class='add'>+	  if it's empty.</div><div class='add'>+</div><div class='add'>+	* io.c (io_enc_str): fptr-&gt;enc is always set for reading IO (by</div><div class='add'>+	  rb_io_check_readable(fptr)).</div><div class='add'>+</div><div class='add'>+Sun Dec 23 01:18:06 2007  David Flanagan  &lt;david@davidflanagan.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c, io.h: temporary patch to partially implement</div><div class='add'>+	  transcode-on-read and transcode-on-write</div><div class='add'>+</div><div class='add'>+Sun Dec 23 00:48:05 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: added tests for SSL.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 21:10:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_genericresolver_node_import): should</div><div class='add'>+	  not set instance variable "@kind" before initializing it.</div><div class='add'>+	  [ruby-dev:32677]</div><div class='add'>+</div><div class='add'>+Sat Dec 22 19:52:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_objectspace.rb: fix condition.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 19:17:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/probeprofiler/: removed.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 19:14:38 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_fork): Unsupport Kernel.fork() on NetBSD.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 18:20:13 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (version.o): add dependency. [ruby-dev:32680]</div><div class='add'>+</div><div class='add'>+Sat Dec 22 17:45:11 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (Init_nkf): use rb_ascii_encoding() for</div><div class='add'>+	  rb_nkf_enc_get("US-ASCII").</div><div class='add'>+	  * if use rb_nkf_enc_get("US-ASCII"), ruby will crash - this is bug?</div><div class='add'>+</div><div class='add'>+Sat Dec 22 17:39:03 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($extmk): fixed broken condition.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 17:35:59 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8.c: Update nkf.c rev:1.157.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_enc_get): replicate proper based encoding.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/kconv.c (Kconv#kconv, to*): use self.encoding as from_enc</div><div class='add'>+	  when from_enc isn't given.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 17:06:50 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/ssl.rb (OpenSSL::SSL::SSLContext.build): removed.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/ssl.rb (OpenSSL::SSL::SSLContext#set_params):</div><div class='add'>+	  new method to set suitable SSL parameters.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb, lib/net/http.rb, lib/net/imap.rb,</div><div class='add'>+	  test/openssl/test_ssl.rb: follow above change.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https.rb: refine error case.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 16:58:49 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (encode_utf7): accept UTF-8 strings.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (decode_utf7): return UTF-8 strings.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:56:36 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data_japanese: typo.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:54:54 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: Information for last patch got lost, fixed</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Added simple tests for</div><div class='add'>+	  EUC-JP and Shift_JIS and tests for ASCII-only range</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:45:45 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode_data_one_byte: slightly optimized</div><div class='add'>+</div><div class='add'>+	* transcode_data_japanese: new data file for EUC-JP and SHIFT_JIS</div><div class='add'>+	  (not yet optimized; tests to follow; data from</div><div class='add'>+	  http://nkf.sourceforge.jp/ucm/{SJIS|eucJP}-nkf.ucm)</div><div class='add'>+</div><div class='add'>+	* common.mk, transcode.c: Adjusted for transcode_data_japanese</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:30:13 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (MFLAGS): define unless defined.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:17:40 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($extmk): set true only when under ext/ or tool/.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:14:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs, ext/ripper/ripper.c): needs MFLAGS.</div><div class='add'>+</div><div class='add'>+	* configure.in (STRINGIZE): stringizing macro.</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (STRINGIZE): fallback.</div><div class='add'>+</div><div class='add'>+	* tool/make-snapshot: new file.</div><div class='add'>+</div><div class='add'>+	* version.c (ruby_description, ruby_copyright): string constants for</div><div class='add'>+	  -v option.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:03:37 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (initialize): fixed documentation.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 15:01:16 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (enable_ssl): use OpenSSL::SSL::SSLContext.build</div><div class='add'>+	  instead of SSLContext.new (default verify mode is now</div><div class='add'>+	  OpenSSL::SSL::VERIFY_PEER).</div><div class='add'>+</div><div class='add'>+Sat Dec 22 14:45:21 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: shouldn't freeze nil. [ruby-dev:32677]</div><div class='add'>+</div><div class='add'>+Sat Dec 22 14:27:27 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.c (onigenc_ascii_is_code_ctype): moved from enc/ascii.c.</div><div class='add'>+</div><div class='add'>+	* regenc.h (onigenc_ascii_is_code_ctype): declared.</div><div class='add'>+</div><div class='add'>+	* enc/ascii.c: use onigenc_ascii_is_code_ctype.</div><div class='add'>+</div><div class='add'>+	* enc/us_ascii.c: new file for US-ASCII.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 14:30:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_named_capture_assign_iter): allows non-ascii names and</div><div class='add'>+	  get rid of reserved word IDs.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 14:18:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb, test_sprintf.rb: fix test place.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 14:17:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_objectspace.rb: skip frozen string.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 14:02:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): add volatile to avoid GC problem.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 11:47:42 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_eval): use class of immediate objects.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: fix a test.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 11:37:06 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): win32 support.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 11:31:14 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb:  Place bin dir before lib dir so gem bin stubs work.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 11:05:44 2007  Jim Weirich  &lt;jim@tardis.local&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rake.rb (Rake): Added Rake and related libraries to the</div><div class='add'>+	  source code base.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 10:30:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/insns2vm.rb: moved from lib/vm/instruction.rb.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 10:25:44 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_named_capture_assign_iter): captured name should</div><div class='add'>+	  not be reserved word.  a patch from Keita Yamaguchi</div><div class='add'>+	  &lt;keita.yamaguchi AT gmail.com&gt; in [ruby-dev:32675].</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_named_capture_assign_iter): just ignore the</div><div class='add'>+	  captures that do not have valid local variable name.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 10:19:08 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_method_name): now __method__ and __callee__ are</div><div class='add'>+	  aliases.  [ruby-core:14244]</div><div class='add'>+</div><div class='add'>+Sat Dec 22 08:29:56 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_append): improvement for non-broken coded</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 06:30:04 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_fork.rb: skip if fork is not unsupported.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_io.rb: skip if require failed.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 06:09:12 2007  David Flanagan  &lt;david@davidflanagan.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: fix typo in rdoc comment</div><div class='add'>+</div><div class='add'>+Sat Dec 22 05:09:43 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_str_new, rb_intern3): rb_default_encoding() renamed.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_putchar): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 03:54:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_ascii_encoding): renamed from previous</div><div class='add'>+	  rb_default_encoding().</div><div class='add'>+</div><div class='add'>+Sat Dec 22 02:49:02 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (command): block from cmd_brace_block was ignored.</div><div class='add'>+	  [ruby-dev:32644]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): stop ENCODING_NONE warning if the</div><div class='add'>+	  encoding of the str is ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 01:52:11 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_ungetc): avoid buffer relocation, which might cause</div><div class='add'>+	  serious problem under concurrent situation.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 01:35:41 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (ARG_ENCODING_NONE): defined for /.../n option.</div><div class='add'>+	  (REG_ENCODING_NONE): ditto.</div><div class='add'>+	  (rb_char_to_option_kcode): return ARG_ENCODING_NONE for n.</div><div class='add'>+	  (rb_reg_prepare_re): warn /ascii/n =~ "non-ascii".</div><div class='add'>+	  (rb_reg_initialize): set REG_ENCODING_NONE from ARG_ENCODING_NONE.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 01:23:10 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/json/test_json_addition.rb (test_core): do not use Time.now</div><div class='add'>+	  because JSON can't hold nsec.</div><div class='add'>+</div><div class='add'>+Sat Dec 22 01:10:30 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/vu/canvSticker2.rb,</div><div class='add'>+	  ext/tk/sample/demos-{en,jp}/bind.rb: fix typo. [ruby-dev:32668]</div><div class='add'>+</div><div class='add'>+Sat Dec 22 00:56:43 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (valid_syntax): force_encoding input script.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 23:48:38 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (depend_rules): suffixes list broken. fixed.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 20:18:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_mul0): remove unused variable.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 20:13:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_catch_obj, rb_throw_obj): prototyped.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_fiber_alive_p): prototyped.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 20:09:18 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): retry increasing until valid char is found.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 20:00:02 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_replicate): now creates first class encoding.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_define_dummy_encoding): always based on the default</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_dummy_p): check if dummy.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_inspect): shows if dummy.</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): added dummy? method</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENCODING_INLINE_MAX): increased.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 18:40:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: write() should be in blocking region.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_io.rb, test_knownbug.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:56:30 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: provisional support on Ruby-VM.</div><div class='add'>+</div><div class='add'>+	* ext/tk/MANUAL_tcltklib.eng, ext/tk/MANUAL_tcltklib.eucj:</div><div class='add'>+	  modify document about new functions.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tk/labelframe.rb,</div><div class='add'>+	  ext/tk/lib/tk/frame.rb, ext/tk/lib/tk/toplevel.rb,</div><div class='add'>+	  ext/tk/lib/tk/scrollbar.rb, ext/tk/lib/tk/message.rb,</div><div class='add'>+	  ext/tk/lib/tk/listbox.rb, ext/tk/lib/tk/text.rb,</div><div class='add'>+	  ext/tk/lib/tk/scale.rb, ext/tk/lib/tk/entry.rb,</div><div class='add'>+	  ext/tk/lib/tk/ttk_selector.rb, ext/tk/lib/tk/menu.rb,</div><div class='add'>+	  ext/tk/lib/tk/label.rb, ext/tk/lib/tk/spinbox.rb,</div><div class='add'>+	  ext/tk/lib/tk/textmark.rb, ext/tk/lib/tk/winpkg.rb,</div><div class='add'>+	  ext/tk/lib/tk/checkbutton.rb, ext/tk/lib/tk/panedwindow.rb,</div><div class='add'>+	  ext/tk/lib/tk/texttag.rb, ext/tk/lib/tk/root.rb,</div><div class='add'>+	  ext/tk/lib/tk/textimage.rb, ext/tk/lib/tk/radiobutton.rb,</div><div class='add'>+	  ext/tk/lib/tk/package.rb, ext/tk/lib/tk/macpkg.rb,</div><div class='add'>+	  ext/tk/lib/tk/composite.rb, ext/tk/lib/tk/autoload.rb,</div><div class='add'>+	  ext/tk/lib/tk/canvas.rb, ext/tk/lib/tk/button.rb,</div><div class='add'>+	  ext/tk/lib/tk/textwindow.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tile/style.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tile/tscrollbar.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/tile/tpaned.rb, ext/tk/lib/tkextlib/tile.rb,</div><div class='add'>+	  ext/tk/extconf.rb: support Tcl/Tk8.5 (partial, not complete).</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget,</div><div class='add'>+	  ext/tk/sample/demos-jp/pendulum.rb,</div><div class='add'>+	  ext/tk/sample/demos-jp/bind.rb,</div><div class='add'>+	  ext/tk/sample/tkextlib/vu/canvSticker2.rb,</div><div class='add'>+	  ext/tk/sample/demos-en/pendulum.rb,</div><div class='add'>+	  ext/tk/sample/demos-en/bind.rb: remove $KCODE and minor bug fix.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:49:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_transcode_bang): returns self if no conversion.</div><div class='add'>+	  [ruby-dev:32662]</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:44:47 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*:  Update to RubyGems 1.0.1, r1581</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:32:49 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/pending.rb: renamed from featurebug.rb.</div><div class='add'>+	  This file contains bugs which is known but will not be</div><div class='add'>+	  fixed in days.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:31:22 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c (dummy_gdb_enums.various): added ENCODING and CODERANGE</div><div class='add'>+	  constants.</div><div class='add'>+</div><div class='add'>+	* .gdbinit: use enum constants.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:28:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/featurebug.rb: added.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move a feature bug.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:25:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_atfork): fix to mark thread object.</div><div class='add'>+	  [ruby-dev:32404]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_fork.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 17:07:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h: extern variable should not be initialized.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c: add a parameter.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:50:43 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): use enc_name as to_s.</div><div class='add'>+	  (enc_inspect): renamed from enc_to_s.  add "#" at beginning.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:37:43 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/config.h (MIME_DECODE_DEFAULT, X0201_DEFAULT):</div><div class='add'>+	 defined as FALSE.  nkf and kconv don't decode MIME encoded string</div><div class='add'>+	 and don't convert JIS X 0201 Katakana.</div><div class='add'>+</div><div class='add'>+	* test/nkf/test_kconv.rb: fix tests.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:33:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_iter_i): adjusted for rb_block_call_func.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (rb_block_call_func): function to be called back</div><div class='add'>+	  as block.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:25:25 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, transcode_data_iso_8859.c: renamed to</div><div class='add'>+	  transcode_data_one_byte.c.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:10:30 2007  Shigeo Kobayashi  &lt;shigeo@tinyforest.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpMidRound): Round method bug</div><div class='add'>+	  pointed by Ryan Platte fixed(Patch to the patch from "NATORI</div><div class='add'>+	  Shin").  [ruby-talk:273360]</div><div class='add'>+</div><div class='add'>+Fri Dec 21 16:06:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (append_utf8): use rb_utf8_encoding() instead of</div><div class='add'>+	  rb_enc_find("utf-8").</div><div class='add'>+</div><div class='add'>+Fri Dec 21 15:59:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): use enc_register_at() directly.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_utf8_encoding): returns utf-8 encoding.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_utf8_encoding): prototyped.</div><div class='add'>+</div><div class='add'>+	* parse.y (UTF8_ENC): uses rb_utf8_encoding().</div><div class='add'>+</div><div class='add'>+Fri Dec 21 15:31:59 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_read): allow specifying encoding explicitly.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): specifies encoding to ASCII-8BIT (binary).</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_read): IO should be in binary mode when offset is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_to_encoding): returns default encoding if no</div><div class='add'>+	  corresponding encoding found.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 15:24:22 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (initialize): accept service name.  changed</div><div class='add'>+	  the default value of the old style +verify+ argument to true.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 15:15:44 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_garbage_collect): new function for debugging.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 15:16:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_to_encoding_index): should return error instead of</div><div class='add'>+	  exception even if type is incorrect.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 14:58:27 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_init_copy): prohibit cloning of</div><div class='add'>+	  generators since Fibers cannot be copied.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_init_copy): typo fixed.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 14:46:07 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): define IO::BINARY even if O_BINARY is not exist.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 14:01:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem::valid_syntax): apply</div><div class='add'>+	  ASCII-8BIT encoding explicitly.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): add encoding name in the message.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 13:54:05 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: change "character encodings differ" error messages.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 13:46:58 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_register): set encoding constant.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): replace non-alphanumeric chars with</div><div class='add'>+	  underscores, so that initialize function can be called.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): extension libraries have lower case</div><div class='add'>+	  names conventionally.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options, process_options): finds encoding after</div><div class='add'>+	  load_path is initialized.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 13:10:57 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_external_encoding): new method.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_from_encoding): returns Qnil for NULL</div><div class='add'>+	  encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_external_encoding): should fill delayed</div><div class='add'>+	  initialization for STDIN.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 13:09:11 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_locale_charmap): return nil if no locale information.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:55:39 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/runit, lib/rubyunit.rb, test/testunit/runit: removed.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:45:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): avoid unnecessary loop using</div><div class='add'>+	  ONIGENC_LEFT_ADJUST_CHAR_HEAD().</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:32:08 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): File.exists? revived.</div><div class='add'>+</div><div class='add'>+	* dir.c (Init_Dir): Dir.exists? again.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:26:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: remove "illegal".</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:22:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* keywords, parse.y (__ENCODING__): represent script encoding.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:16:50 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_is_ascii_only_p): new method ascii_only?.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:11:57 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_enc): set default external encoding if no</div><div class='add'>+	  encoding specified explicitly.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 12:00:34 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check langinfo.h and locale.h.</div><div class='add'>+</div><div class='add'>+	* encoding.c: use langinfo.h only if available.</div><div class='add'>+</div><div class='add'>+	* main.c: use locale.h only if available.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 11:47:56 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: include locale.h</div><div class='add'>+	  (rb_locale_charmap): new method Encoding.locale_charmap for</div><div class='add'>+	  nl_langinfo(CODESET).</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_locale_charmap): declared.</div><div class='add'>+</div><div class='add'>+	* main.c (main): call setlocale with LC_CTYPE.</div><div class='add'>+</div><div class='add'>+	* ruby.c (locale_encoding): use rb_locale_charmap.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 11:35:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_dump.c: fix typo.  Reported by Yuki Mitsui.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 11:28:00 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* regerror.c, string.c, io.c, lib/getoptlong.rb, lib/net/imap.rb,</div><div class='add'>+	  compile.c, sprintf.c, parse.y, ext/win32ole/win32ole.c,</div><div class='add'>+	  ext/tk/sample/demos-en/entry3.rb, ext/tk/lib/tcltk.rb,</div><div class='add'>+	  ext/openssl/ossl_bn.c, numeric.c, vm.c,</div><div class='add'>+	  benchmark/bm_so_meteor_contest.rb, bignum.c, ruby.c: don't "illegal"</div><div class='add'>+	  for non law violation context.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 11:23:24 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (enc.mk): depends on $(RBCONFIG) instead of rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): ISO-8859-1 is no longer a replica.</div><div class='add'>+</div><div class='add'>+	* regenc.h (OnigEncodingDefine): names of extension and encoding can</div><div class='add'>+	  differ.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: always shared.</div><div class='add'>+</div><div class='add'>+	* enc/depend (deffile): should not upcase.</div><div class='add'>+</div><div class='add'>+	* enc/{ascii,euc_jp,sjis,utf8,iso_8859_{1..16}}.c: fix for Init.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 09:26:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: use erb.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 08:07:35 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next): should call next_init() if fiber</div><div class='add'>+	  is dead already. [ruby-dev:32459]</div><div class='add'>+</div><div class='add'>+Fri Dec 21 01:21:49 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLContext.build):</div><div class='add'>+	  enable CRL checking by default.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 01:20:56 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#connect): use</div><div class='add'>+	  OpenSSL::SSL::SSLContext.build instead of SSLContext.new (default</div><div class='add'>+	  verify mode is now OpenSSL::SSL::VERIFY_PEER).</div><div class='add'>+</div><div class='add'>+	* lib/net/https.rb: SSL parameters are defined by attr_accessor.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https.rb: add test for HTTPS features.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 01:11:37 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (select_internal): should return original value.</div><div class='add'>+</div><div class='add'>+Fri Dec 21 00:26:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): wrong encoding check for tree strings.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N::test_tr_s): "invalid mbstring</div><div class='add'>+	  sequence" is not an error to be tested.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N::test_tr): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 19:29:07 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (initialize): the second argument is an option</div><div class='add'>+	  hash now.  use SSLContext.build to specify SSL parameters.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 19:11:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.c (native_thread_apply_priority): check</div><div class='add'>+	  _POSIX_PRIORITY_SCHEDULING for OpenBSD.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 18:33:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add libthr for FreeBSD.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 18:17:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, *.ci: renamed to *.c.</div><div class='add'>+</div><div class='add'>+	* eval_load.c: renamed to load.c.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 17:36:01 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*:  Import RubyGems 1.0.0, r1575.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 17:18:38 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c: support Proc#binding.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: add a test.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 17:15:15 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: Slight change to documentation ('character' -&gt;</div><div class='add'>+	  'byte (C char)'). [ruby-core:13126], see also [ruby-core:13998].</div><div class='add'>+</div><div class='add'>+Thu Dec 20 17:07:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (enc.mk): depends on rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* regenc.h (OnigEncodingDefine): external encoding definition macro.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: fix for linking.</div><div class='add'>+</div><div class='add'>+	* enc/depend, enc/make_encmake.rb: fix for Windows.</div><div class='add'>+</div><div class='add'>+	* enc/{ascii,euc_jp,sjis,utf8,iso_8859_{1..16}}.c: renamed.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 16:42:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (find_line_no): return 0 if not found.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 16:04:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci, vm.c, vm_core.h: change interface of</div><div class='add'>+	  vm_invoke_block() to specify block ptr.  [ruby-talk:266422]</div><div class='add'>+</div><div class='add'>+	* cont.c, eval_jump.ci, insns.def, proc.c, signal.c, thread.c:</div><div class='add'>+	  apply above change.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move fixed bug.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: ditto. and add a test.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 15:47:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso_8859_{1..16}.c: renamed.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 09:59:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_expandarray): fix sp increase place.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; in [ruby-dev:32581].</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_massign.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: fix last committed test.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 09:47:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add a test.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 09:40:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each/NODE_RETURN): fix stack consistency.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 09:42:11 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_orig): access beyond memory region cause crash</div><div class='add'>+	  on interrupt.  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; in</div><div class='add'>+	  [ruby-dev:32651].  [ruby-dev:32641]</div><div class='add'>+</div><div class='add'>+Thu Dec 20 09:06:54 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): wrong starting position.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 06:34:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): add pop after throw as return.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_syntax.rb: move resolved test.</div><div class='add'>+</div><div class='add'>+	* vm_core.h, iseq.c, compile.h: add debug output code.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 04:57:18 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): remove unused retry entry.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 04:15:41 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (DEFS, RM): output to config.status.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 02:59:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs): create encoding directory.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 02:50:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso8859_{1..16}.c: adjust for ruby.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 02:28:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/iso8859_{1..16}.c: imported from Onigiruma 5.9.0.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 02:23:22 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (RM): added.</div><div class='add'>+</div><div class='add'>+	* enc/depend (encs): sort in alpha-numeric order.</div><div class='add'>+</div><div class='add'>+	* enc/depend (clean, distclean): added.</div><div class='add'>+</div><div class='add'>+Thu Dec 20 01:10:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): should handle upper level eval iseq</div><div class='add'>+	  from break/next, and COMPILE_ERROR() breaks only one block.</div><div class='add'>+	  [ruby-dev:31372]</div><div class='add'>+</div><div class='add'>+Thu Dec 20 00:07:36 2007  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb (test_07_public_private_protected_missing):</div><div class='add'>+	  followed current Ruby specification.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 23:57:37 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_inspect, dir_path, dir_tell): check for frozen and closed</div><div class='add'>+	  is not needed.  [ruby-dev:32640]</div><div class='add'>+</div><div class='add'>+Wed Dec 19 22:59:52 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_sublen): adjust position if position is not at the</div><div class='add'>+	  head of a character.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): check if match start at the head</div><div class='add'>+	  of a character.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): wrong adjust condition.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): comparison length should be based on</div><div class='add'>+	  bytes, not characters.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): too much adjustment.</div><div class='add'>+</div><div class='add'>+	* re.c (reg_match_pos): pos adjustment should be based on</div><div class='add'>+	  characters.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N::test_str_insert): test updated</div><div class='add'>+	  to check negative offset behavior.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): should consider rslen.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_buf_append): should propagate encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N::test_str_each_line): should</div><div class='add'>+	  check encoding as well.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N::test_str_each_line): empty</div><div class='add'>+	  array can not propagate encoding;  should not check.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 21:42:18 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): should set checked encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): applied r14212 too.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 20:40:01 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigmul1): C99ism.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem1): need dummy return value.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 19:18:06 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Updated.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_enc_get): added.</div><div class='add'>+	  (find encoding or replicate default encoding)</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (NKF::&lt;ENCODING&gt;): redefine encoding constant.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv::&lt;ENCODING&gt;): redefined as Encoding.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: refactoring.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 19:11:08 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_mul0): blocking check for bigger numbers.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; in [ruby-dev:32632].</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigdivrem): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 17:34:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): remove "retry" in block.</div><div class='add'>+	  ("iter{retry}" cause syntax error)</div><div class='add'>+	  Currently, "begin; ...; rescue; iter{retry}; end" cause</div><div class='add'>+	  syntax error too.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_jump.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/drb/invokemethod.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* sample/drb/darrayc.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: add a 'test' directory on the SYSTEM test.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 17:12:59 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_block.rb:</div><div class='add'>+	  move fixed bug.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_m17n.rb: added.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 16:59:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (errinfo_place): skip if error is Fixnum.  [ruby-dev:32608]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_exception.rb, test_known_bug.rb: move fixed bug.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 16:31:58 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_named_capture_assign_iter): remove C99 dependency.</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_named_capture_assign_iter): get rid of creating</div><div class='add'>+	  unnecessary ID.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_enc_symname2_p): check for non-nul-terminated string.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 15:37:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_yield_with_cfunc): call cfunc with</div><div class='add'>+	   (argv[0], data, argc, argv) to pass all arguments.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_each_i): adapted to new calling</div><div class='add'>+	  convention.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 15:13:20 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): should propagate encoding from pad</div><div class='add'>+	  string too.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 13:57:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (TIMEZONE_VOID): check whether timezone requires zero</div><div class='add'>+	  arguments.  [ruby-dev:32631]</div><div class='add'>+</div><div class='add'>+Wed Dec 19 13:22:14 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (NKF::_ENCODING): removed.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_kconv): renamed to rb_nkf_convert.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_convert): set encoding.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_guess1): removed.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_guess2): renamed to rb_nkf_guess.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_guess):</div><div class='add'>+	  guess method now returns encoding object.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: Update to nkf 2.0.8 2007-12-19.</div><div class='add'>+</div><div class='add'>+Wed Dec 19 10:52:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): an underscore succeeding after octal</div><div class='add'>+	  prefix is allowed.  [ruby-core:14139]</div><div class='add'>+</div><div class='add'>+Wed Dec 19 00:09:19 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): wrong radix check.  a patch from</div><div class='add'>+	  Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; in [ruby-dev:32628].</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_find_n1): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 23:53:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix for segfault.  [ruby-dev:31372]</div><div class='add'>+</div><div class='add'>+Tue Dec 18 23:44:32 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/utils.rb: split TestNetHTTPUtils module from</div><div class='add'>+	  test/net/http/test_http.rb. and start HTTP server in each test case.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 23:27:51 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#accept_client):</div><div class='add'>+	  should rescue Errno::EINVAL from TCPServer#accept. this exception</div><div class='add'>+	  might occur if the server socket is not in ready to listen.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#accept_client):</div><div class='add'>+	  don't call TCPServer#close if the :ShutdownSocketWithoutClose is set.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config::General): add new parameter</div><div class='add'>+	  :ShutdownSocketWithoutClose.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 22:51:47 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#shutdown):</div><div class='add'>+	  new method which calls TCPSocket#shutdown of the underlying socket.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 22:11:50 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb, lib/rss/atom.rb, lib/rss/rss.rb,</div><div class='add'>+	  test/rss/rss-assertions.rb, test/rss/test_atom.rb: use</div><div class='add'>+	  pack/unpack("m") instead of base64 library.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb: use delete("\n") instead of chomp/chop</div><div class='add'>+	  because the result of pack("m") might be multi-line.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 22:12:35 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci, vm.c: rewrite sp manipulation around method/block</div><div class='add'>+	  invocation.  [ruby-dev:32547]</div><div class='add'>+</div><div class='add'>+Tue Dec 18 22:11:23 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/lib/win32/sspi.rb: use pack/unpack("m") instead of</div><div class='add'>+	  base64 library which was already removed.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 21:09:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block): merge 2 stack overflow checks.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 20:58:35 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insnhelper.ci, insns.def, object.c, vm.c, vm.h:</div><div class='add'>+	  optimize !@, != method invocation.</div><div class='add'>+</div><div class='add'>+	* id.c, id.h: ditto.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 18:10:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add issues.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 20:22:44 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg tMATCH arg): call reg_named_capture_assign_gen if regexp</div><div class='add'>+	  literal is used.</div><div class='add'>+	  (reg_named_capture_assign_gen): assign the result of named capture</div><div class='add'>+	  into local variables.</div><div class='add'>+	  [ruby-dev:32588]</div><div class='add'>+</div><div class='add'>+	* re.c: document the assignment by named captures.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 18:09:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice): propagate encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat_set): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 17:27:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_freeze): preserve frozen state of immediate</div><div class='add'>+	  values in internal hash table, a la generic_ivar.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_frozen_p): check immediate values too.</div><div class='add'>+</div><div class='add'>+	* variable.c (generic_ivar_set): add frozen check fro immediate</div><div class='add'>+	  values.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 17:04:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_transcode_bang, rb_str_transcode): set new</div><div class='add'>+	  encoding even if no conversion is done because of 7bit only.</div><div class='add'>+	  [ruby-dev:32591]</div><div class='add'>+</div><div class='add'>+Tue Dec 18 15:43:59 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs, ext/ripper/ripper.c): other options must come</div><div class='add'>+	  before MAKEFLAGS in GNU make.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 15:19:55 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Don't call private fail anymore.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 15:17:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs, ext/ripper/ripper.c): pass MAKEFLAGS.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 14:45:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (op_tbl): remove duplication to avoid symbol aliases.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 14:39:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_nth): need not to raise out-of-range exception.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_m17n.rb (TestM17N::test_str_aref_len): removed</div><div class='add'>+	  debug print.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 14:05:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enc/depend: get rid of target expanded as empty for nmake.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 07:56:57 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_obj_public_method): Object#public_method to retrieve</div><div class='add'>+	  public method object.</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_mod_public_instance_method): Module#public_instance_method</div><div class='add'>+	  to retrieve public instance method from class / module.</div><div class='add'>+</div><div class='add'>+	* proc.c (mnew): visibility check added.</div><div class='add'>+</div><div class='add'>+	* eval_error.ci (rb_print_undef): add rb_ prefix.</div><div class='add'>+</div><div class='add'>+	* eval_error.ci (rb_print_undef): add visibility in the error</div><div class='add'>+	  message.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 05:54:26 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/Env.rb, lib/base64.rb, lib/importenv.rb, lib/eregex.rb: removed.</div><div class='add'>+</div><div class='add'>+	* lib/ping.rb, lib/readbytes.rb: removed</div><div class='add'>+</div><div class='add'>+Tue Dec 18 02:30:56 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BUILTIN_ENCS): removed.</div><div class='add'>+</div><div class='add'>+	* common.mk (enc.mk): pass BUILTIN_ENCS from command line.</div><div class='add'>+</div><div class='add'>+	* enc/depend: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/make_encmake.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 01:46:48 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): need to clear output buffer to avoid</div><div class='add'>+	  broken encoding compatibility check.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 01:40:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (depend_rules): inserts ruby to only headers.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 01:21:19 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_encode_length): chomp eol style modifiers.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_magic_comment): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (set_file_encoding): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 01:15:44 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs): added dependencies.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in, enc/depend, enc/make_encmake.rb: moved serb code.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (depend_rules): now takes content string, not file name.</div><div class='add'>+</div><div class='add'>+	* win32/enc-setup.mak: overrides default target.</div><div class='add'>+</div><div class='add'>+Tue Dec 18 00:26:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): raise error if non-Unicode fixed</div><div class='add'>+	  encoding option is specified for regexp literals with \u{}</div><div class='add'>+	  escapes.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): should squeeze multibyte</div><div class='add'>+	  characters as well.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 21:41:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/enc-setup.mak: extracts BUILTIN_ENCOBJS.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: needs srcdir.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 21:24:04 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (miniprelude.c): add -I$(srcdir).</div><div class='add'>+</div><div class='add'>+Mon Dec 17 20:53:27 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ssl_version):</div><div class='add'>+	  new method OpenSSL::SSL::SSLContext#ssl_version to wrap</div><div class='add'>+	  SSL_CTX_set_ssl_version.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_get_verify_result):</div><div class='add'>+	  new method OpenSSL::SSL::SSLSocket#verify_result to wrap</div><div class='add'>+	  SSL_get_verify_result.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLContext.build):</div><div class='add'>+	  new method to build OpenSSL::SSL::SSLContext with Hash parameters.</div><div class='add'>+	  this method provides safety default parameters than SSLContext.new.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL.verify_certificate_identity):</div><div class='add'>+	  new module function: pull out identity verification process</div><div class='add'>+	  from OpenSSL::SSL::SSLSocket#post_connection_check.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 18:42:23 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): need no encoding compatibility check.</div><div class='add'>+	  it's done inside of re_reg_search().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 17:50:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): check if substring is broken.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): should carry over.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 17:47:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (encs): new target to compile external encodings.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: became a serb template.</div><div class='add'>+</div><div class='add'>+	* enc/make_encmake.rb: creates enc.mk from enc/Makefile.in using serb.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (relative_from): moved from ext/extmk.rb.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($extmk): true if under to top source directory, not</div><div class='add'>+	  only ext.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (depend_rules): extracted from create_makefile.</div><div class='add'>+</div><div class='add'>+	* tool/serb.rb (serb): splitted from tool/compile_prelude.rb.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 17:32:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MAKEFILES): removed enc/Makefile.</div><div class='add'>+</div><div class='add'>+	* configure.in (EXTERNAL_ENCOBJS, ENCSOS): removed.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in (BUILTIN_ENCS): includes .c suffix.</div><div class='add'>+</div><div class='add'>+	* enc/depend: splitted from Makefile.in.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/setup.mak (-encs-): extracts BUILTIN_ENCOBJS.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 17:07:53 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_asciionly_p): use rb_enc_str_coderange.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 16:39:25 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_coderange): set ENC_CODERANGE_BROKEN using</div><div class='add'>+	  rb_enc_precise_mbclen.</div><div class='add'>+	  (rb_str_valid_encoding_p): just check coderange is</div><div class='add'>+	  ENC_CODERANGE_BROKEN or not.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 16:04:16 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#gets): added second</div><div class='add'>+	  optional argument to specify maximum length limit.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 16:02:30 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb, lib/webrick/cgi.rb: Request-Line or</div><div class='add'>+	  header fields should be read with maximum length. [ruby-talk:231745]</div><div class='add'>+</div><div class='add'>+Mon Dec 17 14:03:39 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENC_CODERANGE_VALID): rename from</div><div class='add'>+	  ENC_CODERANGE_8BIT.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_coderange): follow the renaming.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 13:56:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): wrong condition fixed.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): check encoding based on result, not</div><div class='add'>+	  the format string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): add encoding check.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 12:21:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (RUNRUBY): added RUNRUBYOPT.</div><div class='add'>+</div><div class='add'>+Mon Dec 17 11:38:59 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (native_thread_create): initialize</div><div class='add'>+	  th-&gt;machine_stack_maxsize as rb_gc_stack_maxsize.</div><div class='add'>+</div><div class='add'>+Sun Dec 16 17:07:35 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): removed special case (-1)</div><div class='add'>+	  for undefined conversions.</div><div class='add'>+</div><div class='add'>+	* transcode_data_iso_8859.c: Changed from character constants</div><div class='add'>+	  ('\xC2') to integer constants (0xC2) for shorter files and</div><div class='add'>+	  better readability; eliminated duplicated tables; changed</div><div class='add'>+	  from -1 offset to actual UNDEF entry (not yet distinguishing</div><div class='add'>+	  UNDEF and ILLEGAL correctly).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added a test for UNDEF conversion.</div><div class='add'>+</div><div class='add'>+Sun Dec 16 14:51:59 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MAKEFILES): should be enc/Makefile, not GNUmakefile.</div><div class='add'>+	  [ruby-dev:32609]</div><div class='add'>+</div><div class='add'>+	* configure.in (BUILTIN_ENCS): removed escapes for OpenBSD.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 23:58:46 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pair.rb (SSLPair#ssl_pair): join the thread, even</div><div class='add'>+	  on an error.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 23:50:31 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/webrick_testing.rb: join webrick server thread.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 22:27:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BUILTIN_ENCS): splitted command line instead of</div><div class='add'>+	  semicolons for Solaris.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 21:38:24 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb: join the background thread to make sure it is dead.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 20:20:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (enc/Makefile): add external encoding objects list.</div><div class='add'>+</div><div class='add'>+	* common.mk (BUILTIN_ENCOBJS): renamed from ENCOBJS.</div><div class='add'>+</div><div class='add'>+	* configure.in (BUILTIN_ENCS): [] needs to be enclosed because of m4.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (BUILTIN_ENCOBJS): substituted by autoconf.</div><div class='add'>+</div><div class='add'>+	* enc/Makefile.in: new file to compile external encoding sources.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): auto-load external encoding objects</div><div class='add'>+	  as "ext/ENCODING_NAME".  [ruby-dev:32606]</div><div class='add'>+</div><div class='add'>+Sat Dec 15 13:04:30 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_thread_t): new member machine_stack_maxsize and</div><div class='add'>+	  machine_register_stack_maxsize.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_stack_maxsize): new global variable for the thread size</div><div class='add'>+	  of the main thread.</div><div class='add'>+	  (STACK_LEVEL_MAX): use machine_stack_maxsize of current thread.</div><div class='add'>+	  (ruby_stack_check): check IA64 register stack.</div><div class='add'>+	  (ruby_set_stack_size): set rb_gc_stack_maxsize.</div><div class='add'>+	  (Init_stack): set rb_gc_stack_maxsize.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (native_thread_create): initialize</div><div class='add'>+	  th-&gt;machine_stack_maxsize and th-&gt;machine_register_stack_maxsize.</div><div class='add'>+</div><div class='add'>+	* vm.c (Init_BareVM): initialize th-&gt;machine_stack_maxsize and</div><div class='add'>+	  th-&gt;machine_register_stack_maxsize.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (native_thread_create): initialize</div><div class='add'>+	  th-&gt;machine_stack_maxsize.  not tested.  just a guess at all.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:32604]</div><div class='add'>+</div><div class='add'>+Sat Dec 15 12:58:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_register, rb_enc_replicate, rb_enc_alias): check</div><div class='add'>+	  if already registered.</div><div class='add'>+</div><div class='add'>+Sat Dec 15 01:57:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb (Options::parse): do not access $KCODE any</div><div class='add'>+	  longer.  [ruby-core:14079]</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB::IRB.parse_opts): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::CGI): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 18:18:31 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (native_thread_create): twice the stack size.</div><div class='add'>+	  512KB is not enough to complete test-all on Debian GNU/Linux on</div><div class='add'>+	  IA64.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 16:10:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_p): RDoc update.  a patch from murphy &lt;murphy AT rubychan.de&gt;.</div><div class='add'>+	  [ruby-core:14010]</div><div class='add'>+</div><div class='add'>+Fri Dec 14 16:06:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp): encoding aware comparison.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_casecmp): ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 15:25:30 2007  Martin Duerst  &lt;duerst@it.aoyama.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (encoding_equal): new function.</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode, transcode_dispatch): added two-step</div><div class='add'>+	  conversion logic via UTF-8.</div><div class='add'>+</div><div class='add'>+	* transcode.c: some minor formatting fixes</div><div class='add'>+</div><div class='add'>+	* transcode_data.h, transcode_data_iso_8859.c: Shortened</div><div class='add'>+	  extremely frequently used macros to shorten file length.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: Fixed name of test class;</div><div class='add'>+	  added setup method to ensure all necessary encodings exist;</div><div class='add'>+	  split tests into more test methods; added tests; fixed ordering</div><div class='add'>+	  of arguments in assert_equal to have expected result first.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 13:47:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ruby.imp): fix for circular dependency.  a patch from</div><div class='add'>+	  Yutaka Kanemoto &lt;kinpoco AT gmail.com&gt; in [ruby-dev:32590].</div><div class='add'>+</div><div class='add'>+	* regint.h, st.c, ext/json/ext/generator/generator.c: suppress</div><div class='add'>+	  warnings on AIX.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 12:36:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_CHECK_VARTYPE): check if a variable is defined</div><div class='add'>+	  and its type.</div><div class='add'>+</div><div class='add'>+	* configure.in (timezone, altzone): check for recent cygwin.</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c (strftime): fix for timezone.  [ruby-dev:32536]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_var): should fail for functions.</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: should use have_func for functions instead</div><div class='add'>+	  of have_var.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 10:25:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/e2mmap.rb (Exception2MessageMapper::E2MM.Raise): $! no</div><div class='add'>+	  longer modifiable in 1.9.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 08:17:24 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_protect): restore root_jmpbuf even if proc exits by</div><div class='add'>+	  break such as dbm.delete_if { break }.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 02:55:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_nth): direct jump if string is 7bit only.  great</div><div class='add'>+	  performance boost for worst case.</div><div class='add'>+</div><div class='add'>+	* string.c (str_strlen): direct size if string is 7bit only.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 02:29:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): 1st argument (typically the</div><div class='add'>+	  receiver) would have higher priority in encoding detection.</div><div class='add'>+</div><div class='add'>+Fri Dec 14 02:05:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_synchronized): should check if initialized.</div><div class='add'>+	  [ruby-dev:32585]</div><div class='add'>+</div><div class='add'>+Fri Dec 14 00:54:40 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): embedded string may override encoding</div><div class='add'>+	  of the regular expression.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): fix encoding of regular expression if</div><div class='add'>+	  embedded string has its own encoding specified.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 22:16:46 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): encoding should never fall back</div><div class='add'>+	  to ASCII-8BIT unless both encodings are ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 20:31:28 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_shared_replace): make str noembed after free.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 20:09:09 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_protect): restore root_jmpbuf to avoid SEGV by</div><div class='add'>+	  'IO.pipe; [].each.next' with gcc version 3.3.5 (Debian 1:3.3.5-13)</div><div class='add'>+	  on IA64.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 17:51:54 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): need not to check encoding if regexp</div><div class='add'>+	  is empty.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): associate encoding of original to the</div><div class='add'>+	  result.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): need to check encoding of record</div><div class='add'>+	  separator.</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): should copy encoding to the result.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ): should not enter infinite loop for</div><div class='add'>+	  non-ASCII, non-alphanumeric character at the bottom.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 17:03:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): should swap encoding indexes too.</div><div class='add'>+</div><div class='add'>+Thu Dec 13 16:41:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): should not judge compatibility</div><div class='add'>+	  based on rb_enc_asciicompat().</div><div class='add'>+</div><div class='add'>+Thu Dec 13 13:09:03 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (MakeOpenFile): fptr-&gt;enc should be</div><div class='add'>+	  initialized to zero.  [ruby-dev:32569]</div><div class='add'>+</div><div class='add'>+Thu Dec 13 08:56:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): use default external encoding if fptr-&gt;enc is</div><div class='add'>+	  not set.  [ruby-dev:32565]</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (Gem::TarReader::Entry::rewind): typo fixed.</div><div class='add'>+	  [ruby-dev:32565]</div><div class='add'>+</div><div class='add'>+Thu Dec 13 08:24:16 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): should associate default external encoding.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): should NOT associate default external encoding.</div><div class='add'>+</div><div class='add'>+Wed Dec 12 23:22:58 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c, regerror.c, string.c, parse.y, ruby.c, file.c:</div><div class='add'>+	  use capital letter for \xHH notation.  [ruby-dev:32511]</div><div class='add'>+</div><div class='add'>+Wed Dec 12 22:21:34 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_enc): allow specifying external encoding in</div><div class='add'>+	  open mode, e.g. open(path, "r:utf-8").</div><div class='add'>+</div><div class='add'>+Wed Dec 12 21:26:03 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (rb_alias): no need to skip aliasing when new</div><div class='add'>+	  equals to old.  [ruby-core:13990]</div><div class='add'>+</div><div class='add'>+Wed Dec 12 16:34:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): set default external encoding to</div><div class='add'>+	  STDIN.</div><div class='add'>+</div><div class='add'>+	* io.c (io_enc_str): associate encoding to output string.</div><div class='add'>+</div><div class='add'>+Wed Dec 12 12:44:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): 'not' and '!' should act as conditional</div><div class='add'>+	  expression.   [ruby-dev:32548]</div><div class='add'>+</div><div class='add'>+Wed Dec 12 12:11:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): should copy encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang, str_gsub): should check and copy encoding</div><div class='add'>+	  to be replaced.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 23:04:17 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): RDoc update.  a patch from Gary Wright</div><div class='add'>+	  &lt;radar2002 AT gmail.com&gt;.  [ruby-core:13998]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 16:37:47 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_ascget): renamed from rb_enc_get_ascii.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h: follow the renaming.</div><div class='add'>+</div><div class='add'>+	* re.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 16:19:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, */Makefile.sub (CP, MV): added.</div><div class='add'>+</div><div class='add'>+	* common.mk (.y.c): not discard the old target until successfully</div><div class='add'>+	  created.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 15:20:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): singleton_method_{added,removed,undefined}</div><div class='add'>+	  hooks should be defined for BasicObject.  [ruby-dev:32531]</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): method_missing should be defined for all</div><div class='add'>+	  objects; moved to BasicObject.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 14:27:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): get rid of SEGV at sequence can not be</div><div class='add'>+	  converted.</div><div class='add'>+</div><div class='add'>+	* transcode.c (rb_str_transcode_bang): copy encoding.  [ruby-dev:32532]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_transcode.rb: added tests from Martin Duerst &lt;duerst</div><div class='add'>+	  AT it.aoyama.ac.jp&gt;.  [ruby-dev:32532]</div><div class='add'>+</div><div class='add'>+Tue Dec 11 12:05:51 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_get_ascii): add an argument to provide the</div><div class='add'>+	  length of the returned character.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_get_ascii): add the argument.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): modify rb_enc_get_ascii call.</div><div class='add'>+	  (rb_reg_quote): ditto.</div><div class='add'>+	  (rb_reg_regsub): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 09:40:21 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE):</div><div class='add'>+	  parenthesize an argument.</div><div class='add'>+</div><div class='add'>+Tue Dec 11 02:23:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): RDoc update patch from Hugh Sasse</div><div class='add'>+	  &lt;hgs AT dmu.ac.uk&gt;.  [ruby-core:12932]</div><div class='add'>+</div><div class='add'>+Tue Dec 11 01:51:34 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP::get): now supports gzip</div><div class='add'>+	  content-encoding.  a patch from Hugh Sasse &lt;hgs AT dmu.ac.uk&gt;.</div><div class='add'>+	  [ruby-core:13451]</div><div class='add'>+</div><div class='add'>+Tue Dec 11 01:21:21 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (shadowing_lvar_gen): no duplicate error for "_".</div><div class='add'>+</div><div class='add'>+Mon Dec 10 22:08:47 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): If an invalid range is given, do</div><div class='add'>+	  not raise an exception but return nil just like slice() does.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 21:47:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): allow non-registered encodings.</div><div class='add'>+	  [ruby-dev:32520]</div><div class='add'>+</div><div class='add'>+Mon Dec 10 21:00:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_slice_bang): should return nil if position out</div><div class='add'>+	  of range.  a patch from Akinori MUSHA &lt;knu AT iDaemons.org&gt;.</div><div class='add'>+	  [ruby-dev:32518]</div><div class='add'>+</div><div class='add'>+Mon Dec 10 19:02:52 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match): should calculate offset by converted</div><div class='add'>+	  operand.  [ruby-cvs:21416]</div><div class='add'>+</div><div class='add'>+Mon Dec 10 18:28:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::REGEXP::PATTERN): typo in REG_NAME</div><div class='add'>+	  regular expression.  a patch from Ueda Satoshi</div><div class='add'>+	  &lt;s-ueda AT livedoor.jp&gt;.  [ruby-dev:32514]</div><div class='add'>+</div><div class='add'>+Mon Dec 10 17:46:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_tmp_new): creates hidden temporary buffer.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcoding): added a pointer to function to flush.</div><div class='add'>+</div><div class='add'>+	* transcode.c (transcode_loop): do not use string internal.</div><div class='add'>+	  [ruby-dev:32512]</div><div class='add'>+</div><div class='add'>+	* transcode.c (str_transcode): allow Encoding objects.</div><div class='add'>+</div><div class='add'>+	* transcode_data.h (BYTE_LOOKUP): use actual struct name.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 16:52:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_insert): should not add length in bytes to index in</div><div class='add'>+	  chars.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 14:33:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_public_send): rename invoke_method to public_send.</div><div class='add'>+	  it now invokes public method only no matter how it's called.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 14:00:43 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* transcode.c: new file to provide encoding conversion features.</div><div class='add'>+	  code contributed by Martin Duerst.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 13:50:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): return byte offset.  [ruby-dev:32452]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match, rb_reg_match2, rb_reg_match_m): convert byte</div><div class='add'>+	  offset to char index.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index): return byte offset.  [ruby-dev:32472]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): calculate in byte offset.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 09:56:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm1_neq.rb, bm_vm1_not.rb: added.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 07:48:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): wrong token was generated.  [ruby-dev:32498]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_not_match): wrong test.</div><div class='add'>+</div><div class='add'>+Mon Dec 10 06:44:47 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): use \xHH instead of \OOO.</div><div class='add'>+</div><div class='add'>+	* regerror.c (to_ascii): ditto.</div><div class='add'>+	  (onig_snprintf_with_pattern): ditto.</div><div class='add'>+	  (onig_snprintf_with_pattern): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): ditto.</div><div class='add'>+	  (rb_str_dump): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ditto.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): ditto.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:32495]</div><div class='add'>+</div><div class='add'>+Mon Dec 10 06:41:00 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_names): new method Regexp#names.</div><div class='add'>+	  (rb_reg_named_captures): new method Regexp#named_captures</div><div class='add'>+	  (match_regexp): new method MatchData#regexp.</div><div class='add'>+	  (match_names): new method MatchData#names.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (MatchData#pretty_print): show names of named captures.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:32493]</div><div class='add'>+</div><div class='add'>+Mon Dec 10 01:35:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): redefinable not (!) operator.</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_not): new method "!".</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_not_equal): new method "!=".</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_not_match): new method "!~".</div><div class='add'>+</div><div class='add'>+Sun Dec  9 22:31:36 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_last_match): accept named capture's name.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 15:57:53 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_backref_number): new function for converting a backref</div><div class='add'>+	  name/number to an integer.</div><div class='add'>+	  (match_offset): use match_backref_number.</div><div class='add'>+	  (match_begin): ditto.</div><div class='add'>+	  (match_end): ditto.</div><div class='add'>+	  (name_to_backref_number): raise IndexError instead of RuntimeError.</div><div class='add'>+	  (match_inspect): show capture index.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 14:59:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (CHECK_STACK_OVERFLOW): reserve frame size.</div><div class='add'>+	  [ruby-dev:32485]</div><div class='add'>+</div><div class='add'>+Sun Dec  9 14:38:25 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_mark): use rb_gc_mark_maybe() for</div><div class='add'>+	  VM stack specified by mark_stack_len.  [ruby-dev:32462]</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci: clear vm stack extended by opt value.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 14:08:47 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (FilePathStringValue): defined.  similar to</div><div class='add'>+	  FilePathValue but no taint check.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path_no_checksafe): implementation of</div><div class='add'>+	  FilePathStringValue.</div><div class='add'>+	  (rb_file_s_basename): use FilePathStringValue.</div><div class='add'>+	  (rb_file_s_dirname): ditto.</div><div class='add'>+	  (rb_file_s_extname): ditto.</div><div class='add'>+	  (rb_file_s_split): ditto.</div><div class='add'>+	  (rb_file_join): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (file_s_fnmatch): ditto.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 12:49:34 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (append_utf8): check unicode range.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 12:39:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (read_multipart): exclude blanks from header values.</div><div class='add'>+	  [ruby-list:44327]</div><div class='add'>+</div><div class='add'>+Sun Dec  9 12:18:19 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path): use the original object if to_path method is</div><div class='add'>+	  not defined.  [ruby-dev:32473]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): call to_open on non-string objects, instead of</div><div class='add'>+	  to_str.  [ruby-dev:32473]</div><div class='add'>+</div><div class='add'>+Sun Dec  9 12:12:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_find): returns true if no characters to be removed is</div><div class='add'>+	  specified.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 12:03:16 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_magic_comment): delimits with a semicolon.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 11:29:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): get rid of segfaults when has multibytes but</div><div class='add'>+	  source sets have no multibytes.</div><div class='add'>+</div><div class='add'>+Sun Dec  9 04:01:28 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_mbclen): return 1 if underlying implementation</div><div class='add'>+	  returns a length longer than e-p.</div><div class='add'>+	  (rb_enc_precise_mbclen): return needmore if underlying</div><div class='add'>+	  implementation returns a length longer than e-p.</div><div class='add'>+</div><div class='add'>+Sat Dec  8 17:59:40 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (posix_signal): return value.</div><div class='add'>+</div><div class='add'>+Sat Dec  8 17:22:16 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkcs7.rb: Remove redundant module namespace.</div><div class='add'>+</div><div class='add'>+Sat Dec  8 17:07:10 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): make rb_raise format as a string literal to</div><div class='add'>+	  avoid warning.</div><div class='add'>+</div><div class='add'>+Sat Dec  8 16:18:16 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_check_preprocess): new function for validating regexp</div><div class='add'>+	  fragment.</div><div class='add'>+</div><div class='add'>+	* parse.y (regexp): invoke reg_fragment_check.</div><div class='add'>+	  (reg_fragment_check): defined.</div><div class='add'>+	  (reg_fragment_check_gen): defined.</div><div class='add'>+</div><div class='add'>+Sat Dec  8 11:06:29 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_mbclen): make it never fail.</div><div class='add'>+	  (rb_enc_nth): don't check the return value of rb_enc_mbclen.</div><div class='add'>+	  (rb_enc_strlen): ditto.</div><div class='add'>+	  (rb_enc_precise_mbclen): return needmore(1) if e &lt;= p.</div><div class='add'>+	  (rb_enc_get_ascii): new function for extracting ASCII character.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_get_ascii): declared.</div><div class='add'>+</div><div class='add'>+	* include/ruby/regex.h (ismbchar): removed.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_expr_str): use rb_enc_get_ascii.</div><div class='add'>+	  (unescape_escaped_nonascii): use rb_enc_precise_mbclen to determine</div><div class='add'>+	  the termination of escaped non-ASCII character.</div><div class='add'>+	  (unescape_nonascii): use rb_enc_precise_mbclen.</div><div class='add'>+	  (rb_reg_quote): use rb_enc_get_ascii.</div><div class='add'>+	  (rb_reg_regsub): use rb_enc_get_ascii.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse) don't check the return value of</div><div class='add'>+	  rb_enc_mbclen.</div><div class='add'>+	  (rb_str_split_m): don't call rb_enc_mbclen with e &lt;= p.</div><div class='add'>+</div><div class='add'>+	* parse.y (is_identchar): use ISASCII.</div><div class='add'>+	  (parser_ismbchar): removed.</div><div class='add'>+	  (parser_precise_mbclen): new macro.</div><div class='add'>+	  (parser_isascii): new macro.</div><div class='add'>+	  (parser_tokadd_mbchar): use parser_precise_mbclen to check invalid</div><div class='add'>+	  character precisely.</div><div class='add'>+	  (parser_tokadd_string): use parser_isascii.</div><div class='add'>+	  (parser_yylex): ditto.</div><div class='add'>+	  (is_special_global_name): don't call is_identchar with e &lt;= p.</div><div class='add'>+	  (rb_enc_symname_p): ditto.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:32455]</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/vu/canvSticker2.rb: remove coding cookie</div><div class='add'>+	  because the encoding is not UTF-8.  [ruby-dev:32475]</div><div class='add'>+</div><div class='add'>+Fri Dec  7 20:21:35 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/ftptls.rb, ext/openssl/lib/net/telnets.rb:</div><div class='add'>+	  half-finished libraries are discontinued.</div><div class='add'>+</div><div class='add'>+Fri Dec  7 15:44:40 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: use Hash for recursion check as inspect.</div><div class='add'>+</div><div class='add'>+Fri Dec  7 15:04:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (flatten): some performance improvements, based on a patch</div><div class='add'>+	  from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; in [ruby-core:13877].</div><div class='add'>+	  [ruby-core:13851]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_exec_recursive): use Hash instead of Array for</div><div class='add'>+	  performance improvement.  [ruby-core:13898]</div><div class='add'>+</div><div class='add'>+	* thread.c (recursive_pop): use object ID.</div><div class='add'>+</div><div class='add'>+Thu Dec  6 19:52:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): typo fixed ("!" -&gt; "|") in the ripper code.</div><div class='add'>+</div><div class='add'>+Thu Dec  6 19:48:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): tUPLUS no longer works as identity operation any</div><div class='add'>+	  more.  inspired by [ruby-talk:265532].</div><div class='add'>+</div><div class='add'>+Thu Dec  6 18:22:11 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_precise_mbclen): new function for mbclen with</div><div class='add'>+	  validation.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_precise_mbclen): declared.</div><div class='add'>+	  (MBCLEN_CHARFOUND): new macro.</div><div class='add'>+	  (MBCLEN_INVALID): new macro.</div><div class='add'>+	  (MBCLEN_NEEDMORE): new macro.</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingTypeST): replace mbc_enc_len</div><div class='add'>+	  by precise_mbc_enc_len.</div><div class='add'>+	  (ONIGENC_PRECISE_MBC_ENC_LEN): new macro.</div><div class='add'>+	  (ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND): new macro.</div><div class='add'>+	  (ONIGENC_CONSTRUCT_MBCLEN_INVALID): new macro.</div><div class='add'>+	  (ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE): new macro.</div><div class='add'>+	  (ONIGENC_MBCLEN_CHARFOUND): new macro.</div><div class='add'>+	  (ONIGENC_MBCLEN_INVALID): new macro.</div><div class='add'>+	  (ONIGENC_MBCLEN_NEEDMORE): new macro.</div><div class='add'>+	  (ONIGENC_MBC_ENC_LEN): use ONIGENC_PRECISE_MBC_ENC_LEN.</div><div class='add'>+</div><div class='add'>+	* enc/euc_jp.c: validation implemented.</div><div class='add'>+</div><div class='add'>+	* enc/sjis.c: ditto.</div><div class='add'>+</div><div class='add'>+	* enc/utf8.c: ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): use rb_enc_precise_mbclen for invalid</div><div class='add'>+	  encoding.</div><div class='add'>+	  (rb_str_valid_encoding_p): new method String#valid_encoding?.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): use rb_enc_precise_mbclen.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:32438]</div><div class='add'>+</div><div class='add'>+Thu Dec  6 01:37:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (i_apply_case_fold): fix for negative character class.  a</div><div class='add'>+	  patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; in [ruby-core:13884].</div><div class='add'>+</div><div class='add'>+Thu Dec  6 01:00:38 2007  NARUSE, Yui &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_s_list): support NetBSD/Citrus iconv.</div><div class='add'>+</div><div class='add'>+Wed Dec  5 16:18:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_s_new): call initialize.  [ruby-core:13824]</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_proc_location): return file name and line number where</div><div class='add'>+	  the proc is defined.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_s_new): call initialize.  [ruby-core:13835]</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_initialize): split initialize method.</div><div class='add'>+</div><div class='add'>+Wed Dec  5 15:25:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): fix to changing encoding to default, and</div><div class='add'>+	  uncommented r13835, which is rare but not impossible.</div><div class='add'>+</div><div class='add'>+Wed Dec  5 15:15:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (step_i, range_step): support non-fixnum steps.</div><div class='add'>+	  [ruby-talk:282100]</div><div class='add'>+</div><div class='add'>+Wed Dec  5 14:25:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix typo.</div><div class='add'>+</div><div class='add'>+Wed Dec  5 13:41:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): get rid of tracing while parsing.</div><div class='add'>+	  [ruby-dev:31351]</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_suppress_tracing): added a new parameter, which</div><div class='add'>+	  directs to call func always.</div><div class='add'>+</div><div class='add'>+Tue Dec  4 19:56:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): should not set encoding unless</div><div class='add'>+	  the target encoding is supported.  [ruby-dev:32451]</div><div class='add'>+</div><div class='add'>+Tue Dec  4 17:34:17 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (tojis, tosjis, toeuc, toutf8):</div><div class='add'>+	  set encoding. [ruby-dev:32447]</div><div class='add'>+</div><div class='add'>+Tue Dec  4 17:07:25 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/json.rb, lib/json/*: moved to ext/json/lib.</div><div class='add'>+</div><div class='add'>+Tue Dec  4 16:34:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_create): achieve target encoding.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert, iconv_finish, iconv_iconv,</div><div class='add'>+	  iconv_conv): set result string encoding.  [ruby-dev:32446]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_initialize, iconv_s_open): set encoding to</div><div class='add'>+	  Iconv instance.</div><div class='add'>+</div><div class='add'>+Tue Dec  4 14:34:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): reverted c flag.</div><div class='add'>+</div><div class='add'>+Tue Dec  4 11:23:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): trailing spaces may exist at squeezing</div><div class='add'>+	  preceding 0s.  [ruby-core:13873]</div><div class='add'>+</div><div class='add'>+Mon Dec  3 11:51:53 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/*: removed or moved to ext/dl/win32.</div><div class='add'>+</div><div class='add'>+	* ext/dl/win32/*: new. [ruby-dev:32387]</div><div class='add'>+</div><div class='add'>+Sun Dec  2 22:08:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_mbchar): fix for ASCII chars.  [ruby-dev:32432]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_parse_string, parser_here_document): prevent false</div><div class='add'>+	  error messages.</div><div class='add'>+</div><div class='add'>+Sun Dec  2 20:43:22 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (unescape_escaped_nonascii): fix mbclen argument.</div><div class='add'>+</div><div class='add'>+Sun Dec  2 15:47:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_mbchar): check insufficient multibyte char.</div><div class='add'>+	  [ruby-dev:32429]</div><div class='add'>+</div><div class='add'>+Sun Dec  2 15:42:16 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, test/rss/test_version.rb: 0.2.1 -&gt; 0.2.2.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/itunes.rb: fixed new_itunes_category.</div><div class='add'>+	* lib/rss/maker/taxonomy.rb: new_taxo_topic -&gt; new_topic because</div><div class='add'>+	  of consistency.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_itunes.rb, test/rss/test_itunes.rb: removed</div><div class='add'>+	  needless UTF-8 characters.</div><div class='add'>+</div><div class='add'>+Sun Dec  2 15:18:37 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_callee_setup_arg): fix error message.</div><div class='add'>+	  [ruby-dev:32430]</div><div class='add'>+</div><div class='add'>+Sun Dec  2 09:12:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (regexp): fix /#{}\xa1\xa2/e to be EUC-JP.</div><div class='add'>+	  (reg_fragment_setenc_gen): extracted from reg_compile_gen.</div><div class='add'>+</div><div class='add'>+Sun Dec  2 01:39:51 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_uv_to_utf8): declared.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_preprocess): new function for dynamic regexp with</div><div class='add'>+	  \u{} such as Regexp.new("\\u{6666}").</div><div class='add'>+	  (rb_reg_prepare_re): preprocess regexp for recompiling.</div><div class='add'>+	  (read_escaped_byte): new function.</div><div class='add'>+	  (unescape_escaped_nonascii): new function.</div><div class='add'>+	  (append_utf8): new function.</div><div class='add'>+	  (unescape_unicode_list): new function.</div><div class='add'>+	  (unescape_unicode_bmp): new function.</div><div class='add'>+	  (unescape_nonascii): new function.</div><div class='add'>+	  (rb_reg_initialize): preprocess regexp.</div><div class='add'>+</div><div class='add'>+	* pack.c (rb_uv_to_utf8): renamed from uv_to_utf8.</div><div class='add'>+</div><div class='add'>+	* parse.y (STR_NEW3): take func instead of has8 and hasmb.</div><div class='add'>+	  (parser_str_new): use default coderange mechanism except for regexp.</div><div class='add'>+	  (parser_tokadd_utf8): copy regexp source as-is.</div><div class='add'>+	  (parser_read_escape): UTF-8 stuff removed.</div><div class='add'>+	  (parser_tokadd_escape): has8bit and hasmb removed.</div><div class='add'>+	  (parser_tokadd_string): fix 8-bit single byte character with \u.</div><div class='add'>+	  (parser_parse_string): has8bit and hasmb removed.</div><div class='add'>+	  (parser_here_document): has8bit and hasmb removed.</div><div class='add'>+	  (parser_yylex): call parser_tokadd_utf8 instead of read_escape for</div><div class='add'>+	  UTF-8 character.</div><div class='add'>+</div><div class='add'>+Wed Dec  2 01:00:07 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (XMLRPC::Server#server): Improve signal handling so</div><div class='add'>+	  pressing control-c in the controlling terminal or sending SIGTERM stops</div><div class='add'>+	  the XML-RPC server.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 23:04:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: rename primary_encoding -&gt; default_external (encoding).</div><div class='add'>+</div><div class='add'>+Sat Dec  1 19:52:57 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (Time#to_datetime): use nsec instead of usec.</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (DateTime#to_time): second minute as an argument to</div><div class='add'>+	  Time::utc contains fractional part in rational; hence Time</div><div class='add'>+	  object may keep resolution at most nanosecond.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 14:36:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move fixed bugs.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sprintf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 13:24:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_yield_with_cfunc): fix to passing argc on third</div><div class='add'>+	  parameter of IFUNC.  [ruby-dev:32329]</div><div class='add'>+</div><div class='add'>+	* enumerator.c: fix to pass exact number of argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_values2): added.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move a fixed test.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 10:45:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): use to_open for every non-string object.  path</div><div class='add'>+	  object may use method_missing.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 09:44:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (concatarray, splatarray): use to_a instead of</div><div class='add'>+	  to_splat.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (caller_setup_args): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec  1 03:34:32 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (newline_node): always remove NODE_BEGIN.</div><div class='add'>+</div><div class='add'>+Fri Nov 30 23:48:07 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal): use SA_SIGINFO if available.</div><div class='add'>+	  [ ruby-Patches-6418 ]</div><div class='add'>+</div><div class='add'>+Fri Nov 30 22:52:54 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap_signm): SIGVTALRM no longer used for green</div><div class='add'>+	  thread.  [ruby-talk:281318]</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_sig_finalize): do not install SIG_DFL handler if</div><div class='add'>+	  previous handler is sighandler().</div><div class='add'>+</div><div class='add'>+Fri Nov 30 21:02:15 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/json.rb, lib/json/add/{core.rb, rails.rb},</div><div class='add'>+	  test/json/test_json_rails.rb: additional files of JSON 1.1.2.</div><div class='add'>+	  [ruby-dev:32405]</div><div class='add'>+</div><div class='add'>+Fri Nov 30 19:33:38 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_mktime): avoid segmentation fault.</div><div class='add'>+	  [ruby-core:13735]</div><div class='add'>+</div><div class='add'>+Fri Nov 30 19:05:55 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_count): precise argument number check.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_count): return Enumerator if no block given.</div><div class='add'>+</div><div class='add'>+Fri Nov 30 16:42:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_take_while): returns Enumerator if no block given.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_drop_while): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 29 16:59:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): remove unnecessary NODE_BEGIN.  [ruby-core:13814]</div><div class='add'>+</div><div class='add'>+Thu Nov 29 06:45:48 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_eql): recursive comparison should be based on</div><div class='add'>+	  eql?  [ruby-core:13803]</div><div class='add'>+</div><div class='add'>+Wed Nov 28 18:08:00 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json, lib/json, test/json: Update to JSON 1.1.2.</div><div class='add'>+	  (RubyForge#15447)</div><div class='add'>+</div><div class='add'>+	* math.c: fix typo.</div><div class='add'>+</div><div class='add'>+Wed Nov 28 16:29:35 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_invoke_block): should splat args.</div><div class='add'>+	  [ruby-dev:32392]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Wed Nov 28 14:43:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile): use dldflags instead of DLDFLAGS to</div><div class='add'>+	  get rid of mixing $LDFLAGS and $ARCH_FLAG.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): support for extensions which has no</div><div class='add'>+	  shared object.</div><div class='add'>+</div><div class='add'>+Wed Nov 28 02:42:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_find_n1): removed extraneous element.</div><div class='add'>+	  [ruby-dev:32351], [ruby-dev:32365]</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_find_n1): returns necessary digits now.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (remove_sign_bits): extends sign bit first.</div><div class='add'>+</div><div class='add'>+Tue Nov 27 15:53:43 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): "when *[],1" dumps core.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:32350]</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'>+Tue Nov 27 15:40:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): "a[*b] += 1" dumps core.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:32354]</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'>+Tue Nov 27 12:47:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def: change return value of "defined?"</div><div class='add'>+	  for $&amp;, $1, ... .  If such variables are defined,</div><div class='add'>+	  return "global-variable".</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_defined.rb: add tests.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: fix a test.</div><div class='add'>+</div><div class='add'>+Tue Nov 27 11:54:46 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: fix typo.</div><div class='add'>+</div><div class='add'>+Tue Nov 27 11:23:20 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test_beginendblock.rb: add loop to wait signal.</div><div class='add'>+	  [ruby-dev:32332]</div><div class='add'>+</div><div class='add'>+Tue Nov 27 11:14:57 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h, encoding.c, re.c, string.c, parse.y:</div><div class='add'>+	  rename ENC_CODERANGE_SINGLE to ENC_CODERANGE_7BIT.</div><div class='add'>+	  rename ENC_CODERANGE_MULTI to ENC_CODERANGE_8BIT.</div><div class='add'>+	  Because single byte 8bit character, such as Shift_JIS 1byte katakana,</div><div class='add'>+	  is represented by ENC_CODERANGE_MULTI even if it is not multi byte.</div><div class='add'>+</div><div class='add'>+Tue Nov 27 10:45:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): fix stack trace.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move solved tests.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb, test/ruby/test_regexp.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 27 09:57:42 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c: fix to allow dsym for alias/undef.</div><div class='add'>+	  [ruby-dev:32355]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 23:18:46 2007  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/extserv.rb (initialize, stop_service): synchronize with</div><div class='add'>+	  ExtServManager.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb (TestDRbEval): ignored.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 17:32:16 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): new method Regexp#fixed_encoding?</div><div class='add'>+	  [ruby-dev:32361]</div><div class='add'>+</div><div class='add'>+Mon Nov 26 13:28:14 2007  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb: be able to create Complex(0, -0.0). [ruby-list:44268]</div><div class='add'>+</div><div class='add'>+Mon Nov 26 11:24:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_fixed_encoding_p): extracted from rb_reg_prepare_re and</div><div class='add'>+	  rb_reg_s_union.</div><div class='add'>+	  (rb_reg_s_union): refactored.</div><div class='add'>+</div><div class='add'>+Mon Nov 26 10:44:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_read_internal, rb_sysopen_internal): remove C99 dependency.</div><div class='add'>+</div><div class='add'>+Sun Nov 25 22:21:35 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_str_asciionly_p): declared.</div><div class='add'>+	  (rb_enc_str_asciicompat_p): defined.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_str): use rb_enc_str_asciionly_p.</div><div class='add'>+	  (rb_reg_quote): return ascii-8bit string if the argument is</div><div class='add'>+	  ascii-only to generate encoding generic regexp if possible.</div><div class='add'>+	  (rb_reg_s_union): fix encoding handling.  [ruby-dev:32094]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_asciionly_p): defined.</div><div class='add'>+</div><div class='add'>+Sun Nov 25 12:12:03 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: Import fast-loading gem_prelude.rb from RubyGems.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Import RubyGems r1516.</div><div class='add'>+</div><div class='add'>+Sat Nov 24 23:25:52 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb (TestEval::test_instance_eval_cvar):</div><div class='add'>+	  updated not to modify class variable of Object class.</div><div class='add'>+</div><div class='add'>+Fri Nov 23 17:34:24 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: add rb_read_internal() as blocking function.</div><div class='add'>+</div><div class='add'>+Fri Nov 23 17:33:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: fix comment.</div><div class='add'>+</div><div class='add'>+Fri Nov 23 17:26:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move solved tests.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_io.rb, test_marshal.rb, test_objectspace.rb:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_integer.rb, test_regexp.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 23 15:59:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_alloc_noinit): new function.</div><div class='add'>+	  (rb_struct_define_without_accessor): add allocator to the arguments.</div><div class='add'>+</div><div class='add'>+	* range.c (range_alloc): re-introduced using rb_struct_alloc_noinit.</div><div class='add'>+</div><div class='add'>+Fri Nov 23 15:27:43 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (REG_CASESTATE): unused macro removed.</div><div class='add'>+	  (rb_reg_prepare_re): check encoding difference.</div><div class='add'>+	  (rb_reg_initialize): check 8bit byte.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_escape): fix has8bit.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:32113]</div><div class='add'>+</div><div class='add'>+Fri Nov 23 15:16:48 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_f_global_variables): variable names should not</div><div class='add'>+	  duplicate.  [ruby-dev:32344]</div><div class='add'>+</div><div class='add'>+Fri Nov 23 13:34:08 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_define_without_accessor): new function.</div><div class='add'>+</div><div class='add'>+	* range.c (range_alloc): removed.</div><div class='add'>+	  (Init_Range): use rb_struct_define_without_accessor.</div><div class='add'>+</div><div class='add'>+	  based on [ruby-dev:32327].</div><div class='add'>+</div><div class='add'>+Fri Nov 23 11:01:54 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_begin): should return offset by character.</div><div class='add'>+	  [ruby-dev:32331]</div><div class='add'>+</div><div class='add'>+	* re.c (match_end): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_search): ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 23 10:44:24 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): defined(method(x)) dumped core.  a</div><div class='add'>+	  patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:32335]</div><div class='add'>+</div><div class='add'>+Wed Nov 21 18:03:49 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: fix to recycle thread data (VM stack).</div><div class='add'>+</div><div class='add'>+	* thread.c: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_thread_create_join.rb: add loop count.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 18:02:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: add path to trunk/lib if driver runner is</div><div class='add'>+	  in build directory.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 16:39:21 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb (assert_equal_timestamp): new assert</div><div class='add'>+	  to test tv_sec only for filestamp resolution portability.</div><div class='add'>+	  (assert_same_entry): use assert_same_entry for mtime comparison.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 14:55:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): add gc guard codes.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 11:16:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_search_normal_superclass): rename function.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_search_superclass): ditto.</div><div class='add'>+</div><div class='add'>+	* proc.c (struct METHOD): rename rklass -&gt; rclass.</div><div class='add'>+</div><div class='add'>+Wed Nov 21 03:12:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): returns nil on execution failure.</div><div class='add'>+	  [ruby-core:13715]</div><div class='add'>+</div><div class='add'>+Wed Nov 21 01:04:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (nil_plus): remove unused function.  [ruby-core:13737]</div><div class='add'>+</div><div class='add'>+Tue Nov 20 21:46:46 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mload): ignore invalid digits in submicro.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 20:33:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: rename RFloat#double_value -&gt; float_value.</div><div class='add'>+</div><div class='add'>+	* numeric.c, parse.y: ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 19:36:21 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h, vm_core.h: decl of rb_gc_save_machine_context()</div><div class='add'>+	  should be at vm_core.h.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h, intern.h: remove type rb_thread_t.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: change rb_unblock_function_t,</div><div class='add'>+	  rb_unblock_function_t.</div><div class='add'>+</div><div class='add'>+	* file.c, process.c: apply above changes.</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.ci, thread_win32.ci: ditto.</div><div class='add'>+</div><div class='add'>+	* io.c: support blocking open (2). [ruby-core:13614]</div><div class='add'>+</div><div class='add'>+Tue Nov 20 17:10:11 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_on_exec_p): new method IO#close_on_exec?.</div><div class='add'>+	  (rb_io_set_close_on_exec): new method IO#close_on_exec=.</div><div class='add'>+	  [ruby-dev:32323]</div><div class='add'>+</div><div class='add'>+Tue Nov 20 16:24:31 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): obj-&gt;as.file.fptr may be 0 for T_FILE.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 15:09:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape): has8bit flag may be set with control</div><div class='add'>+	  escape.  [ruby-core:13722]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): set begging after BOM if exists.</div><div class='add'>+	  [ruby-core:13718]</div><div class='add'>+</div><div class='add'>+Tue Nov 20 14:55:37 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*: Update to RubyGems 0.9.5.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 13:00:44 2007  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_pipe_exec): use dual fd</div><div class='add'>+	  instead of socketpair when mode is RDWR.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): pass &amp;write_fd to rb_w32_pipe_exec().</div><div class='add'>+</div><div class='add'>+	* io.c (popen_redirect): define only when HAVE_FORK.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 12:12:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/io.h (rb_io_t): add tied_io_for_writing member.</div><div class='add'>+</div><div class='add'>+	* io.c: use tied_io_for_writing for duplex popen.</div><div class='add'>+</div><div class='add'>+	* gc.c: mark tied_io_for_writing.</div><div class='add'>+</div><div class='add'>+	* common.mk: gc.o depends io.h.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:32205]</div><div class='add'>+</div><div class='add'>+Tue Nov 20 11:59:33 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: rename TestRubyYield to TestDRbRubyYield to</div><div class='add'>+	  avoid name crash with test/ruby/test_yield.rb.</div><div class='add'>+	  TestRuby18Yield is renamed to TestDRbRuby18Yield too.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 03:24:42 2007  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/extservm.rb: merged from ruby_1_8 branch.</div><div class='add'>+</div><div class='add'>+	* lib/drb/acl.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/drb/ssl.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/drb/unix.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/observer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/drb/invokemethod.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drbssl.rb: ditto.</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/test_drbunix.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 20 00:52:46 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb (assert_equal_time): show nsec if</div><div class='add'>+	  assertion fails but time.to_s equals.</div><div class='add'>+	  (assert_same_entry): use assert_equal_time.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_install): use</div><div class='add'>+	  assert_equal_time.</div><div class='add'>+</div><div class='add'>+Mon Nov 19 18:46:49 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (utime_internal): fallback utimensat to utimes.</div><div class='add'>+</div><div class='add'>+Mon Nov 19 17:51:27 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check struct timespec, clock_gettime, utimensat,</div><div class='add'>+	  struct stat.st_atim,</div><div class='add'>+	  struct stat.st_atimespec,</div><div class='add'>+	  struct stat.st_atimensec,</div><div class='add'>+	  struct stat.st_mtim,</div><div class='add'>+	  struct stat.st_mtimespec,</div><div class='add'>+	  struct stat.st_mtimensec,</div><div class='add'>+	  struct stat.st_ctim,</div><div class='add'>+	  struct stat.st_ctimespec,</div><div class='add'>+	  struct stat.st_ctimensec.</div><div class='add'>+</div><div class='add'>+	* include/ruby/missing.h: provide struct timespec if not available.</div><div class='add'>+</div><div class='add'>+	* time.c: support nanosecond-resolution using struct timespec.</div><div class='add'>+	  (time_nsec): new method: Time#nsec and Time#tv_nsec.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: provide rb_time_nano_new.</div><div class='add'>+</div><div class='add'>+	* file.c (utime_internal): use utimensat if available.</div><div class='add'>+	  (rb_file_s_utime): refactored.</div><div class='add'>+	  (rb_f_test): use stat_atime, stat_mtime, stat_ctime.</div><div class='add'>+	  (rb_stat_cmp): check tv_nsec.</div><div class='add'>+	  (stat_atimespec): new function.</div><div class='add'>+	  (stat_atime): ditto.</div><div class='add'>+	  (stat_mtimespec): ditto.</div><div class='add'>+	  (stat_mtime): ditto.</div><div class='add'>+	  (stat_ctimespec): ditto.</div><div class='add'>+	  (stat_ctime): ditto.</div><div class='add'>+	  (rb_stat_atime): use stat_atime.</div><div class='add'>+	  (rb_file_s_atime): ditto.</div><div class='add'>+	  (rb_file_atime): ditto.</div><div class='add'>+	  (rb_stat_mtime): use stat_mtime.</div><div class='add'>+	  (rb_file_s_mtime): ditto.</div><div class='add'>+	  (rb_file_mtime): ditto.</div><div class='add'>+	  (rb_file_ctime): use stat_ctime.</div><div class='add'>+	  (rb_file_s_ctime): ditto.</div><div class='add'>+	  (rb_stat_ctime): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_copy_generic_ivar): clear clone's instance variables</div><div class='add'>+	  if obj has no instance variable.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): dump instance variables of generated string</div><div class='add'>+	  for TYPE_USERDEF, even if original object has instance variables.</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time#xmlschema): use nsec instead of usec.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:32306]</div><div class='add'>+</div><div class='add'>+Mon Nov 19 17:48:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_superclass): should not raise exception for</div><div class='add'>+	  BasicObject.  [ruby-Bugs-15668]</div><div class='add'>+</div><div class='add'>+Mon Nov 19 16:04:08 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): gives all permutations of elements</div><div class='add'>+	  if no argument given.  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:32309]</div><div class='add'>+</div><div class='add'>+Mon Nov 19 02:44:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): alias and undef accept dsyms as well</div><div class='add'>+	  as literals.  [ruby-dev:32308]</div><div class='add'>+</div><div class='add'>+Mon Nov 19 02:31:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (rb_add_method): no redefinition warning for undef.</div><div class='add'>+</div><div class='add'>+Mon Nov 19 01:53:11 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape): disallow control and meta modifiers</div><div class='add'>+	  for non-ASCII characters.  [ruby-core:13685]</div><div class='add'>+</div><div class='add'>+Sun Nov 18 20:47:41 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (mark_dump_arg): it may be called after dump_ensure.</div><div class='add'>+</div><div class='add'>+Sun Nov 18 18:27:47 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_minus): fix Time.at(2**60+1) - Time.at(2**60).</div><div class='add'>+</div><div class='add'>+Sun Nov 18 17:28:49 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): show actual year in 2-3 digits year warning.</div><div class='add'>+	  (time_mdump): show actual year in "year too big to marshal" error.</div><div class='add'>+</div><div class='add'>+Sun Nov 18 14:03:44 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (rb_alias): do not call hook functions until</div><div class='add'>+	  initialization finishes.  [ruby-talk:279538]</div><div class='add'>+</div><div class='add'>+Sun Nov 18 09:09:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (String#tr_cpp): make preprocessor identifiers.</div><div class='add'>+</div><div class='add'>+Sun Nov 18 05:19:46 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_struct_member): define HAVE_type_member.</div><div class='add'>+</div><div class='add'>+Sat Nov 17 23:51:29 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke): bug fix. [ruby-talk:279100]</div><div class='add'>+</div><div class='add'>+Sat Nov 17 23:21:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): should clear parser-&gt;tokp as well.</div><div class='add'>+	  [ruby-dev:32250]</div><div class='add'>+</div><div class='add'>+	* parse.y: remove NEED_ASSOC that break test_parser_events.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): should not decrement line numbers at the</div><div class='add'>+	  end of file.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): search .rb files first through in the</div><div class='add'>+	  loadpath.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 23:31:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_odd_p): new method added.  a patch from Tadashi</div><div class='add'>+	  Saito &lt;shiba AT mail2.accsnet.ne.jp&gt;.  [ruby-dev:32305]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_even_p): ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 17:41:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (Document-class): moved the simplest example to</div><div class='add'>+	  the top.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_s_iconv): Document-method: needs class</div><div class='add'>+	  prefix for class method.  [ruby-core:13542]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_iconv): also instance method needs to be</div><div class='add'>+	  qualified.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 16:26:57 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: added some declarations for event hooks.</div><div class='add'>+</div><div class='add'>+	* lib/profile.rb: set VM::InstructionSequence.compile_option.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 11:16:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (String#is_binary_data?): use Integer#fdiv.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 03:36:01 2007  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: Node#value defined twice.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/: several method redefinitions causing warnings.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 03:01:00 2007  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/types.rb: Likewise, pass self to YAML::quick_emit.</div><div class='add'>+</div><div class='add'>+Fri Nov 16 02:51:59 2007  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (quick_emit): use combination of object_id and hash to</div><div class='add'>+	  identify repeated object references, since GC will reuse memory of</div><div class='add'>+	  objects during output of YAML. [ruby-Bugs-8548] [ruby-Bugs-3698]</div><div class='add'>+</div><div class='add'>+Thu Nov 15 19:49:03 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: check macro if cannot find func.</div><div class='add'>+	  [ruby-list:44224]</div><div class='add'>+</div><div class='add'>+Thu Nov 15 18:04:06 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: fix TMP_RUBY_PREFIX for relative load path</div><div class='add'>+	  environment.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 17:28:21 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: absolute path may not start with a slash.</div><div class='add'>+	  pointed by usa.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 17:07:54 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: fix first substitution.</div><div class='add'>+	  use constant for prefix.</div><div class='add'>+	  pointed by Richard Kilmer.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 14:29:56 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (prereq): added auto generated sources.  [ruby-dev:32280]</div><div class='add'>+</div><div class='add'>+Thu Nov 15 12:31:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: use constant for prefix.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 12:24:39 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: use simple template system for source</div><div class='add'>+	  code generation.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 12:19:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::FileStore::restore): use</div><div class='add'>+	  lockfile for exclusive locks.  a patch from &lt;tommy AT tmtm.org&gt;.</div><div class='add'>+	  [ruby-dev:32296]</div><div class='add'>+</div><div class='add'>+Thu Nov 15 12:14:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb (c_esc): need to escape closing brace.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 11:52:16 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: adjust RbConfig::CONFIG paths relative</div><div class='add'>+	  to the installation path.</div><div class='add'>+</div><div class='add'>+Thu Nov 15 11:25:20 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): fix typo on --disable-gems option.</div><div class='add'>+	  pointed by Richard Kilmer.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 16:16:17 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_https_proxy.rb</div><div class='add'>+	  (HTTPSProxyTest::test_https_proxy_authentication): initialize</div><div class='add'>+	  local variable 't' first.  [ruby-dev:32253]</div><div class='add'>+</div><div class='add'>+Wed Nov 14 15:39:24 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb: update not to use 1.8 assignment to</div><div class='add'>+	  external local variable in the block parameters.  [ruby-dev:32251]</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb: avoid $KCODE, and use</div><div class='add'>+	  String#force_encoding().  [ruby-dev:32251]</div><div class='add'>+</div><div class='add'>+Wed Nov 14 14:04:42 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, Makefile.in: rename prelude.c to miniprelude.c.</div><div class='add'>+	  rename ext_prelude.c to prelude.c</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 07:09:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, compile.c, compile.h, debug.c, debug.h,</div><div class='add'>+	  id.c, insnhelper.h, insns.def, thread.c, thread_pthread.ci,</div><div class='add'>+	  thread_pthread.h, thread_win32.ci, thread_win32.h, vm.h,</div><div class='add'>+	  vm_dump.c, vm_evalbody.ci, vm_opts.h: fix comments and</div><div class='add'>+	  copyright year.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 07:07:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/makedocs.rb, template/insnstbl.html: removed.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 02:50:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.c): dependency also needs vpath.</div><div class='add'>+</div><div class='add'>+	* common.mk (node_name.inc, prelude.c): VPATH in nmake does not</div><div class='add'>+	  work for targets of explicit rules.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 02:11:38 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/isinf.c (isinf): don't define if the macro is defined.</div><div class='add'>+</div><div class='add'>+	* configure.in: no need to set ac_cv_func_isinf=yes on non-gcc</div><div class='add'>+	  solaris.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 01:34:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (round): fallback definition.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_divmod, flo_round): use round() always.</div><div class='add'>+	  [ruby-dev:32269]</div><div class='add'>+</div><div class='add'>+Wed Nov 14 00:33:49 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: introduce 2 macros:</div><div class='add'>+	  RFLOAT_VALUE(v), DOUBLE2NUM(dbl).</div><div class='add'>+	  Rename RFloat#value -&gt; RFloat#double_value.</div><div class='add'>+	  Do not touch RFloat#double_value directly.</div><div class='add'>+</div><div class='add'>+	* bignum.c, insns.def, marshal.c, math.c, numeric.c, object.c,</div><div class='add'>+	  pack.c, parse.y, process.c, random.c, sprintf.c, string.c,</div><div class='add'>+	  time.c: apply above changes.</div><div class='add'>+</div><div class='add'>+	* ext/dl/mkcallback.rb, ext/json/ext/generator/generator.c:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 14 00:15:37 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/ytab.sed: get rid of GNU sed feature.  a patch from Laurent</div><div class='add'>+	  Sansonetti &lt;laurent.sansonetti AT gmail.com&gt; in [ruby-core:13470].</div><div class='add'>+</div><div class='add'>+Tue Nov 13 21:41:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (parse.c), ext/ripper/depend (ripper.c): process after</div><div class='add'>+	  bison with sed.  [ruby-dev:32204]</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): use yydebug in cmdline_options.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set yydebug flag of parser.</div><div class='add'>+</div><div class='add'>+	* parse.y (yydebug): moved into struct parser_params.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_get_yydebug, rb_parser_set_yydebug): parser</div><div class='add'>+	  generic methods.</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (parse.c): moved to common.mk.</div><div class='add'>+</div><div class='add'>+	* tool/ytab.sed: comment out yydebug definition, and substitute</div><div class='add'>+	  yyerror with parser_yyerror.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 16:33:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flodivmod): work around for infinity.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_divmod): work around for platforms have no round().</div><div class='add'>+	  [ruby-dev:32247]</div><div class='add'>+</div><div class='add'>+Tue Nov 13 15:26:33 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lex.c.blt: moved from lex.c.</div><div class='add'>+</div><div class='add'>+	* lex.c.src: copied from keywords.  This is the source of lex.c.blt.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): use lex.c.blt if keywords is same as lex.c.src.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (lex.c): re-introduce copy rule.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (lex.c): ditto.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub (lex.c): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 15:21:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_specialized_instruction): check argc.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 14:44:32 2007  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: fixed the failing YAML Struct test</div><div class='add'>+	  at ko1's request.</div><div class='add'>+</div><div class='add'>+Tue Nov 13 02:57:04 2007  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_divmod): round to the nearest integer.</div><div class='add'>+	  [ ruby-Bugs-14540 ]</div><div class='add'>+</div><div class='add'>+Tue Nov 13 00:36:16 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: fixed tests for set_trace_func.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 19:47:29 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (call_trace_proc): should return value.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 19:45:18 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile.sub (miniruby): use $(COMMONOBJS) and $(DMYEXT)</div><div class='add'>+	  instead of $(LIBRUBY_A).</div><div class='add'>+</div><div class='add'>+Mon Nov 12 18:32:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/Makefile.sub (MINIOBJS): added prelude.$(OBJEXT).</div><div class='add'>+</div><div class='add'>+Mon Nov 12 17:13:23 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk: add prelude.o to MINIOBJS.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 16:52:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): rdoc about srcprefix.  a patch from</div><div class='add'>+	  Daniel Berger &lt;djberg96 AT gmail.com&gt; in [ruby-core:13378].</div><div class='add'>+</div><div class='add'>+Mon Nov 12 16:48:09 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk: add ext_prelude.o to OBJS.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 13:57:39 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIDLNOBJS): removed.</div><div class='add'>+	  (MINIOBJS): set to dln.o if dmydln.o is not used.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (miniruby): use MINIOBJS instead of MINIDLNOBJS.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 13:53:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): handle stringified</div><div class='add'>+	  symbols properly using ruby-forward-string.</div><div class='add'>+</div><div class='add'>+Mon Nov 12 12:17:59 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (MINIDLNOBJS): defined.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (miniruby): use MINIDLNOBJS and COMMONOBJS instead of</div><div class='add'>+	  MINIOBJS and OBJS to avoid linking both dmydln.o and dln.o.</div><div class='add'>+</div><div class='add'>+Sun Nov 11 20:32:45 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* {win32,wince,bcc32}/Makefile.sub: delete lex.c rule.</div><div class='add'>+</div><div class='add'>+Sun Nov 11 19:40:52 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): simplified.</div><div class='add'>+</div><div class='add'>+Sun Nov 11 18:31:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): touch lex.c if gperf failed but lex.c exists.</div><div class='add'>+	  Although this may cause non-updated lex.c,</div><div class='add'>+	  svn co may generate keywords newer than lex.c especially on</div><div class='add'>+	  a file system which can record fractional mtime such as XFS.</div><div class='add'>+</div><div class='add'>+Sun Nov 11 17:32:46 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_method): pass mn-&gt;nd_clss to</div><div class='add'>+	  vm_call_cfunc() instead of klass.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_method_id_and_klass): traverse parent_iseq.</div><div class='add'>+</div><div class='add'>+	* thread.c (call_trace_proc): use rb_thread_method_id_and_klass().</div><div class='add'>+</div><div class='add'>+Sun Nov 11 16:54:25 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lex.c: renamed from lex.c.blt.</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): use find command to check mtime.</div><div class='add'>+</div><div class='add'>+Sun Nov 11 05:34:13 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* bin/gem: Add forgotten gem command.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 23:50:31 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): cast to unsigned char after dereference</div><div class='add'>+	  a pointer to a char to avoid SEGV with "\377".tr("a", "b").</div><div class='add'>+	  on FreeBSD/amd64.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 23:08:53 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, common.mk, Makefile.in: don't generate</div><div class='add'>+	  libminiruby-static.a.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 19:46:54 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, common.mk, Makefile.in: generate libminiruby-static.a</div><div class='add'>+	  which contains prelude.o for miniruby.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 18:10:07 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gem_prelude.rb: new file for gem libraries.  currently empty.</div><div class='add'>+</div><div class='add'>+	* common.mk: generate ext_prelude.c by prelude.rb and gem_prelude.rb.</div><div class='add'>+	  ruby (not miniruby) is linked with ext_prelude.o instead of</div><div class='add'>+	  prelude.o.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): don't call Init_prelude.</div><div class='add'>+</div><div class='add'>+	* ruby.c: support --disable-gems option.</div><div class='add'>+	  (ruby_init_gems): new function to define Gem::Enable and</div><div class='add'>+	  invoke Init_prelude.</div><div class='add'>+	  (process_options): call ruby_init_gems just after</div><div class='add'>+	  ruby_init_loadpath.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: support multiple files.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 17:27:55 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (call_trace_proc): don't call ID2SYM() for ID_ALLOCATOR</div><div class='add'>+	  to avoid SEGV.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 16:37:07 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems: Import RubyGems revision 1493.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/ubygems.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rbconfig/datadir.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rubygems: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 16:34:21 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.rb: Don't override Enumerable#inject for 1.9.</div><div class='add'>+</div><div class='add'>+Sat Nov 10 14:43:30 2007  David Flanagan  &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: use ASCII encoding for string literals that are</div><div class='add'>+	  7-bit clean, fixing regression from my previous patch</div><div class='add'>+</div><div class='add'>+Sat Nov 10 13:18:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32}/Makefile.sub: vendor_ruby support.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 23:33:16 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_nextc): added single line read forward buffer.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): adjust line number for fluent interface.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 22:04:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h (FRAME_MAGIC_MASK_BITS): bits of FRAME_MAGIC_MASK.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_cfunc, vm_cfunc_flags): use shift operations.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 21:46:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): should be volatile value for GC.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 17:48:22 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (locale_encoding): guesstimate encoding from environment</div><div class='add'>+	  variables.  [ruby-core:13315]</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set primary encoding from environment.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 16:51:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_byte): should update rbuf_off and rbuf_len for</div><div class='add'>+	  each iteration.  [ruby-dev:31659][ruby-dev:32192]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): cvar assignment obey same rule to cvar</div><div class='add'>+	  reference.  [ruby-dev:32192]</div><div class='add'>+</div><div class='add'>+Fri Nov  9 15:52:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_check_encoding, rb_set_primary_encoding): ENCODING</div><div class='add'>+	  is no longer in FL_USERS flags.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 15:20:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): initialize squeezing table if no</div><div class='add'>+	  arguments given.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 13:57:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (each_with_index_i): use rb_yield_values() for</div><div class='add'>+	  compatibility with Enumerator#with_index().  a patch from Yusuke</div><div class='add'>+	  ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:32195]</div><div class='add'>+</div><div class='add'>+Fri Nov  9 13:45:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::IterTest::each):</div><div class='add'>+	  #each_pair is now alias to #each.  [ruby-dev:32192]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::test_assoc_yield):</div><div class='add'>+	  ditto</div><div class='add'>+</div><div class='add'>+Fri Nov  9 12:56:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c (loaded_feature_path): check with type of given feature.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 12:43:02 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_basicinstructions.rb: updated for new class</div><div class='add'>+	  behavior.  [ruby-dev:32192]</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_name): Encoding should not rely on ENCODING in</div><div class='add'>+	  the FL_USERS flags.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_from_encoding): do not call rb_enc_associate</div><div class='add'>+	  for encoding itself.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_register_at): ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_ivar): do not set real instance variable for</div><div class='add'>+	  encoding data associated.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 10:43:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (send_internal): use self in the previous frame to check for</div><div class='add'>+	  protected methods.  [ruby-core:13254]</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_method): send! method has gone.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 10:38:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should be SPECIAL_CONST_P() instead of</div><div class='add'>+	  IMMEDIATE_P().</div><div class='add'>+</div><div class='add'>+Fri Nov  9 10:29:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_invoke_method): check if invoked in function style.</div><div class='add'>+	  [ruby-core:13245]</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_cfunc, vm_cfunc_flags): stores and returns VM</div><div class='add'>+	  calling flags.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_cfunc_funcall_p): returns if the current method is</div><div class='add'>+	  invoked in function style.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 10:10:21 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: add rb_context_t#type.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 10:05:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): fix breaking environ bugs.</div><div class='add'>+</div><div class='add'>+Fri Nov  9 07:26:04 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c: update MT URL.[ruby-core:13305].</div><div class='add'>+</div><div class='add'>+Thu Nov  8 17:09:55 2007  David Flanagan  &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: improve docs for Object.tap</div><div class='add'>+</div><div class='add'>+	* ChangeLog: fix bogus dates on my previous entries</div><div class='add'>+</div><div class='add'>+Thu Nov  8 15:13:56 2007 David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fix segfault with \x escapes in regexps</div><div class='add'>+	  delete unused #if 0 code regions from previous patch</div><div class='add'>+</div><div class='add'>+Thu Nov  8 12:12:10 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape): remove C99/gcc-ism.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 07:54:22 2007 David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: patch, based on Nobu's, work to support \u escapes</div><div class='add'>+	           also modifications for better coderange detection</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_unicode_escapes.rb: test cases</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_mixed_unicode_escapes.rb: mixed encoding test cases</div><div class='add'>+</div><div class='add'>+Thu Nov  8 07:14:37 2007 David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): commented out broken code that prevented</div><div class='add'>+	  correct interning of multi-byte symbols.  Without this patch</div><div class='add'>+	  :x==:x is false when x is a multi-byte character.</div><div class='add'>+</div><div class='add'>+Thu Nov  8 07:04:31 2007 David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table, tr_trans): fix test failures</div><div class='add'>+	  in test/ruby/test_string.rb</div><div class='add'>+</div><div class='add'>+Wed Nov  7 15:07:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_with_index): make different arrays at each</div><div class='add'>+	  iteration.  [ruby-dev:32181]</div><div class='add'>+</div><div class='add'>+Wed Nov  7 05:17:24 2007  David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: fix typo in invoke_method documentation</div><div class='add'>+</div><div class='add'>+Wed Nov  7 03:52:26 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): core dumped with non array arguments.</div><div class='add'>+	  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:32180]</div><div class='add'>+</div><div class='add'>+Wed Nov  7 03:32:38 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/SHIFT-JIS.rb (REXML::Encoding): place -x for</div><div class='add'>+	  nkf conversion.  a patch from &lt;moonwolf AT moonwolf.com&gt;.</div><div class='add'>+	  [ruby-dev:32183]</div><div class='add'>+</div><div class='add'>+Wed Nov  7 02:59:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_each_index): should return meaningful value.</div><div class='add'>+</div><div class='add'>+Tue Nov  6 16:37:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c (loaded_feature_path): need to expand relative paths.</div><div class='add'>+</div><div class='add'>+	* eval_load.c (rb_feature_p): check if the feature is loading with</div><div class='add'>+	  load path.  [ruby-dev:31932]</div><div class='add'>+</div><div class='add'>+	* eval_load.c (load_lock): check the result of barrier waiting.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_wait): check if owned by the current thread.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_barrier_release): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov  5 08:01:22 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): move #send to Kernel module from BasicObject.</div><div class='add'>+</div><div class='add'>+Mon Nov  5 05:17:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::summarize): fix for long form</div><div class='add'>+	  option with very long argument.  a patch from Kobayashi Noritada</div><div class='add'>+	  &lt;nori1 AT dolphin.c.u-tokyo.ac.jp&gt; in [ruby-list:44179].</div><div class='add'>+</div><div class='add'>+Mon Nov  5 01:20:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): remove "parenthesize argument(s) for future</div><div class='add'>+	  version" warning.  when I added this warning, I had a plan to</div><div class='add'>+	  reimplement the parser that is simpler than the current one.</div><div class='add'>+	  since we abandoned the plan, warning no longer required.</div><div class='add'>+</div><div class='add'>+Mon Nov  5 01:02:56 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTPHeader#initialize): provide default</div><div class='add'>+	  User-Agent to fix 500 error on some corrupted HTTP servers.</div><div class='add'>+	  [ruby-core:13135]</div><div class='add'>+</div><div class='add'>+Mon Nov  5 00:32:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_send): allow send/__send__ to call methods of all</div><div class='add'>+	  visibility again.  we no longer provide __send, __send!.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_invoke_method): new method to honor private</div><div class='add'>+	  visibility.  if it's invoked in a function call style, it calls</div><div class='add'>+	  private methods as well (previous 1.9 send behavior).</div><div class='add'>+</div><div class='add'>+Mon Nov  5 00:24:24 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: vendor_ruby support.</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_LIB): duplicated.</div><div class='add'>+</div><div class='add'>+Mon Nov  5 00:01:33 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_quote): quote \v as well.</div><div class='add'>+</div><div class='add'>+Sun Nov  4 23:51:59 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): use StringValuePtr instead of</div><div class='add'>+	  StringValueCStr because \0 exists when Regexp.new("\0").</div><div class='add'>+</div><div class='add'>+Sun Nov  4 08:11:19 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (count_objects): count TOTAL.</div><div class='add'>+</div><div class='add'>+Sun Nov  4 03:58:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_setup_table): use C array for characters that fit</div><div class='add'>+	  in a byte to gain performance.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_delete_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_squeeze_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_count): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): ditto.</div><div class='add'>+</div><div class='add'>+Sun Nov  4 00:06:40 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (count_objects): ObjectSpace.count_objects implemented.</div><div class='add'>+	  [ruby-core:12301]</div><div class='add'>+</div><div class='add'>+Sat Nov  3 22:49:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_each_pair): make Hash#each to be alias to</div><div class='add'>+	  Hash#each_pair for compatibility and clarity.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each_pair): ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  3 22:41:05 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: --with-vendor-hdrdir implemented.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: check --vendor argument.</div><div class='add'>+</div><div class='add'>+	* README.EXT: explain --vendor option for extconf.rb</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  3 20:30:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: --with-vendordir implemented.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: add config to vendorlibdir and vendorarchdir.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: make vendor library directories.</div><div class='add'>+</div><div class='add'>+	* ruby.c: insert vendor library directories into load path.</div><div class='add'>+</div><div class='add'>+Fri Nov  2 20:55:49 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/content.rb, lib/rss/content/, lib/rss/maker/content.rb,</div><div class='add'>+	  test/rss/test_content.rb, test/rss/test_maker_content.rb,</div><div class='add'>+	  test/rss/rss-testcase.rb (RSS::TestCase): supported</div><div class='add'>+	  content:encoded with RSS 2.0.</div><div class='add'>+	  Suggested by Sam Lown. Thanks.</div><div class='add'>+</div><div class='add'>+Fri Nov  2 20:47:04 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, test/rss/test_version.rb: 0.2.0 -&gt; 0.2.1.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 21:56:45 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): make NameError to be subclass of</div><div class='add'>+	  StandardError again.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): make SecurityError to be subclass of</div><div class='add'>+	  Exception, since it's too important to be handled implicitly.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 14:51:39 2007 David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+	* enum.c (take_while_i, drop_while_i) add RTEST to handle nil return</div><div class='add'>+</div><div class='add'>+Thu Nov  1 02:12:50 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (prereq): update the path of prelude.c.</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.c): rollback a part of r13675, because it is not</div><div class='add'>+	  documented and causes build error.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 01:52:23 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_drop): fix typo.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 01:51:01 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (ruby_current_thread): RUBY_EXTERN'ed for probeprofiler.</div><div class='add'>+</div><div class='add'>+Thu Nov  1 00:46:30 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat, setup.mak: now can recognize OS even if</div><div class='add'>+	  the ``--target'' option of configure is omitted.</div><div class='add'>+</div><div class='add'>+	* win32/README.win32: update the descriptions about compiler.</div><div class='add'>+</div><div class='add'>+Wed Oct 31 03:13:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_take_while): separate with-block form.</div><div class='add'>+</div><div class='add'>+	* enum.c (drop_while_i): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_butfirst): abandon butfirst method.  reverted.</div><div class='add'>+</div><div class='add'>+Tue Oct 30 10:03:43 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_butfirst): add a new method to iterates over</div><div class='add'>+	  elements but first n.  RDoc need to be updated.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): remove unnecessary symbol</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+Mon Oct 29 18:42:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (bvar): block-local variable can shadow outer variable.</div><div class='add'>+	  [ruby-core:13036]</div><div class='add'>+</div><div class='add'>+Mon Oct 29 17:58:16 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): performance improvement.  [ruby-dev:31806]</div><div class='add'>+</div><div class='add'>+Mon Oct 29 17:20:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_replicate): new function to replicate encoding.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_based_encoding): Encoding#base_encoding returns</div><div class='add'>+	  based encoding of replica.</div><div class='add'>+</div><div class='add'>+Mon Oct 29 17:18:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): ASCII encoding is compatible with</div><div class='add'>+	  ASCII-compatible encoding, even for non-string objects.</div><div class='add'>+</div><div class='add'>+Sun Oct 28 21:50:02 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: :redirect option implemented to disable redirects.</div><div class='add'>+	  (OpenURI::HTTPRedirect): new exception class for redirection.</div><div class='add'>+</div><div class='add'>+Fri Oct 26 17:38:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_chr): take an optional encoding parameter.</div><div class='add'>+	  [ruby-core:12816]</div><div class='add'>+</div><div class='add'>+Fri Oct 26 17:14:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): returns 1.0 for 0**0.0.</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): returns infinity for 0**-1.  [ruby-dev:32084]</div><div class='add'>+</div><div class='add'>+Fri Oct 26 15:00:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-{case,label}-indent): adjust for</div><div class='add'>+	  labels inside switch block.</div><div class='add'>+</div><div class='add'>+Fri Oct 26 05:48:57 2007  David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+	* array.c: raise IndexError for negative length in rb_ary_fill</div><div class='add'>+</div><div class='add'>+Wed Oct 25 07:12:03 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (Net::Telnet#login): Allowing "passphrase" in</div><div class='add'>+	  addition to "password" for Telnet login prompts. [ruby-Bugs-10746]</div><div class='add'>+</div><div class='add'>+Wed Oct 25 06:34:11 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (Net::Telnet#login): Making the password prompt</div><div class='add'>+	  pattern case insensitive. [ruby-Bugs-10746]</div><div class='add'>+</div><div class='add'>+Fri Oct 26 04:21:36 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (Net::POP3::do_start): type fixed.  a patch from</div><div class='add'>+	  Dan Zwell &lt;dzwell AT zwell.net&gt; in [ruby-core:12941].</div><div class='add'>+</div><div class='add'>+Fri Oct 26 01:48:28 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_assoc): check and convert inner arrays (assocs)</div><div class='add'>+	  using #to_ary.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): check and convert argument hash</div><div class='add'>+	  using #to_hash.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of</div><div class='add'>+	  hash conversion.</div><div class='add'>+</div><div class='add'>+Thu Oct 25 16:46:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): dot at the head of the line denote line</div><div class='add'>+	  continuation from previous one to support fluent interface.</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): support fluent dot.</div><div class='add'>+</div><div class='add'>+Thu Oct 25 14:19:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_tell, rb_io_seek): check errno too.  [ruby-dev:32093]</div><div class='add'>+</div><div class='add'>+Thu Oct 25 13:59:53 2007 David Flanagan &lt;davidflanagan@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokspace): increment tokidx</div><div class='add'>+	  fixes test failure at [test/ruby/test_stringchar.rb:72]</div><div class='add'>+</div><div class='add'>+Thu Oct 25 09:49:49 2007  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri.rb, lib/uri/ldaps.rb: added LDAPS</div><div class='add'>+	  scheme. [ruby-dev:31896]</div><div class='add'>+</div><div class='add'>+Wed Oct 25 06:23:14 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/parser.rb (XMLRPC::Convert::dateTime): Fixing a bug that</div><div class='add'>+	  caused time zone conversion to fail for some ISO 8601 date formats.</div><div class='add'>+	  [ruby-Bugs-12677]</div><div class='add'>+</div><div class='add'>+Wed Oct 25 04:59:28 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Explicitly start</div><div class='add'>+	  the HTTP connection to support keepalive requests. [ruby-Bugs-9353]</div><div class='add'>+</div><div class='add'>+Wed Oct 25 04:46:53 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Improving the error</div><div class='add'>+	  message for Content-Type check failures. [ruby-core:12163]</div><div class='add'>+</div><div class='add'>+Wed Oct 25 03:45:08 2007  James Edward Gray II  &lt;jeg2@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/utils.rb (XMLRPC::ParseContentType#parse_content_type):</div><div class='add'>+	  Making Content-Type checks case insensitive. [ruby-Bugs-3367]</div><div class='add'>+</div><div class='add'>+Wed Oct 24 17:09:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokspace): make space in token buffer.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): fix encoding of single character literal.</div><div class='add'>+</div><div class='add'>+Tue Oct 23 13:44:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args2): nd_head of NODE_BLOCK_PASS should be a list.</div><div class='add'>+	  [ruby-core:12850]</div><div class='add'>+</div><div class='add'>+Tue Oct 23 10:42:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): encoding set by command line option takes</div><div class='add'>+	  priority over the encoding in the source, as the primary encoding.</div><div class='add'>+</div><div class='add'>+Mon Oct 22 19:24:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): allow space after -E (encoding) option.</div><div class='add'>+</div><div class='add'>+Mon Oct 22 11:03:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_check_encoding): returns index now.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_compatible): check if two objects have compatible</div><div class='add'>+	  encodings.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_compatible_p): added Encoding.compatible?.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_compatible): prototype.</div><div class='add'>+</div><div class='add'>+Sun Oct 21 18:29:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_default, rb_enc_primary): return pointers to</div><div class='add'>+	  rb_encoding of default and primary respectively.  [ruby-core:12795]</div><div class='add'>+</div><div class='add'>+	* encoding.c (set_primary_encoding): removed primary_encoding setter.</div><div class='add'>+</div><div class='add'>+Sat Oct 20 13:17:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_cycle): hide temporary array from ObjectSpace.</div><div class='add'>+	  [ruby-core:12762]</div><div class='add'>+</div><div class='add'>+Sat Oct 20 11:49:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path): returns frozen string.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_chown, rb_file_s_lchown): use uid_t and gid_t.</div><div class='add'>+</div><div class='add'>+Fri Oct 19 20:08:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_id_encoding): returns ID "encoding".</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_encoding): dump encoding name.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_ivar): load encoding.</div><div class='add'>+</div><div class='add'>+Fri Oct 19 16:41:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_regx_options, reg_compile_gen): relaxened encoding</div><div class='add'>+	  matching rule.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): always set encoding of Regexp.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_str): fix encoding for non 7bit-clean</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): use ascii encoding for 'n' option.</div><div class='add'>+</div><div class='add'>+Fri Oct 19 11:09:56 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set primary encoding from the parser</div><div class='add'>+	  always.  [ruby-core:12758]</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): should not discard the parser parameter.</div><div class='add'>+</div><div class='add'>+Fri Oct 19 10:55:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_last): removed unused variables.</div><div class='add'>+</div><div class='add'>+Thu Oct 18 17:08:57 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find_index): update RDoc.  a patch from David Flanagan</div><div class='add'>+	  &lt;david AT davidflanagan.com&gt; in [ruby-core:12710].</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_take, enum_drop): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_cycle): should not cause infinite loop for empty</div><div class='add'>+	  arrays.  [ruby-core:12710]</div><div class='add'>+</div><div class='add'>+	* range.c (Init_Range): typo fixed.</div><div class='add'>+</div><div class='add'>+Thu Oct 18 16:39:34 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/source.rb (REXML::SourceFactory::SourceFactory): more</div><div class='add'>+	  duck typed.  better performance on JRuby.</div><div class='add'>+	  http://headius.blogspot.com/2007/10/another-performance-discovery-rexml.html</div><div class='add'>+</div><div class='add'>+Thu Oct 18 09:33:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_first): takes first n element if argument is</div><div class='add'>+	  given.  [ruby-core:12697]</div><div class='add'>+</div><div class='add'>+	* range.c (range_last): returns last n elements if argument is</div><div class='add'>+	  given.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq, rb_ary_last): export.</div><div class='add'>+</div><div class='add'>+Wed Oct 17 17:39:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): fixed reversed condition.  [ruby-core:12722]</div><div class='add'>+</div><div class='add'>+Wed Oct 17 13:54:28 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): the last check was not complete.</div><div class='add'>+</div><div class='add'>+Wed Oct 17 11:30:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_from_encoding, rb_enc_register): associate index</div><div class='add'>+	  to self.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_capable): Encoding objects are encoding capable.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): check if encoding matching by exact encoding</div><div class='add'>+	  objects.</div><div class='add'>+</div><div class='add'>+Wed Oct 17 06:18:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_alias, rb_enc_find_index): changed</div><div class='add'>+	  enc_table_alias to a name-to-index hash.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): use upper case names for aliases to use as</div><div class='add'>+	  constant names.</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_find): allow symbols.</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): define encoding constants.</div><div class='add'>+</div><div class='add'>+	* st.c (strcasehash): fix wrong code range condition.</div><div class='add'>+</div><div class='add'>+Wed Oct 17 05:07:18 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_primary_encoding): added Encoding.primary_encoding.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_encoding): added.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): added -E and --encoding options.</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_options): set primary encoding from command line</div><div class='add'>+	  option if set, or source encoding.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_from_encoding,</div><div class='add'>+	  rb_get_primary_encoding, rb_set_primary_encoding): prototypes.</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h (rb_parser_encoding): prototype.</div><div class='add'>+</div><div class='add'>+Wed Oct 17 03:37:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_desc): set encoding.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): check encodings.</div><div class='add'>+</div><div class='add'>+	* enc/utf8.c (utf8_code_to_mbclen): 0xfe and 0xff are valid Unicode to</div><div class='add'>+	  be encoded to 2bytes in UTF-8.  [ruby-core:12700]</div><div class='add'>+</div><div class='add'>+Wed Oct 17 02:50:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ord): use encoding.</div><div class='add'>+</div><div class='add'>+Wed Oct 17 01:57:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): allow binary encoding option.</div><div class='add'>+	  [ruby-dev:32083]</div><div class='add'>+</div><div class='add'>+Tue Oct 16 19:48:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): check for encoding of original object.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 18:28:51 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c: use enum for constants for gdb if possible.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 18:20:10 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c, debug.c: move debug enum and constants to debug.c.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 18:16:15 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (RUBY_ENCODING_SHIFT): added as enum.</div><div class='add'>+</div><div class='add'>+	* .gdbinit (rp): show encoding and coderange for strings.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 14:48:38 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_regx_options): check if regexp encoding option</div><div class='add'>+	  matches to current encoding.</div><div class='add'>+</div><div class='add'>+	* re.c (char_to_option, rb_char_to_option_kcode): 'n' is not kcode</div><div class='add'>+	  option now.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_to_s, rb_reg_error_desc): copy encoding rather than</div><div class='add'>+	  append as an option.</div><div class='add'>+</div><div class='add'>+	* re.c (make_regexp, rb_reg_prepare_re): use encoding of Regexp and</div><div class='add'>+	  String instead of kcode.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): set fixed option if none is set.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regcomp): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_equal): check if encodings are equal.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): encoding option is obsolete.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_kcode, rb_get_kcode, rb_set_kcode): removed.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): removed Regexp#kcode method.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): allow long encoding name.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 14:03:09 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union): encoding of all regexp objects should</div><div class='add'>+	  match.  [ruby-dev:32076]</div><div class='add'>+</div><div class='add'>+Tue Oct 16 13:49:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_to_s): rename function.</div><div class='add'>+</div><div class='add'>+Tue Oct 16 13:25:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): should copy encoding.  a patch from NARUSE,</div><div class='add'>+	  Yui &lt;naruse AT airemix.com&gt;.  [ruby-dev:32076]</div><div class='add'>+</div><div class='add'>+Tue Oct 16 01:31:23 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): RDoc update.  a patch from David Flanagan</div><div class='add'>+	  &lt;david AT davidflanagan.com&gt; in [ruby-core:12710].</div><div class='add'>+</div><div class='add'>+Tue Oct 16 01:25:40 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): define #to_s to show encoding name</div><div class='add'>+	  in to_s representation as well as #inspect.</div><div class='add'>+</div><div class='add'>+Mon Oct 15 13:24:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): should be number but not rounding factor.</div><div class='add'>+	  [ruby-dev:32060]</div><div class='add'>+</div><div class='add'>+Mon Oct 15 11:45:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes0): refined length check.  [ruby-dev:32059]</div><div class='add'>+</div><div class='add'>+Mon Oct 15 10:24:19 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (pst_to_s): returns a string such as "pid 10220 exit 1"</div><div class='add'>+	  instead of "256".  [ruby-dev:32053]</div><div class='add'>+	  (pst_inspect): change format</div><div class='add'>+	  "#&lt;Process::Status: pid=10220,exited(1)&gt;" to</div><div class='add'>+	  "#&lt;Process::Status: pid 10220 exit 1&gt;".</div><div class='add'>+</div><div class='add'>+Mon Oct 15 09:58:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes0): check if source has enough data.</div><div class='add'>+	  [ruby-dev:32054]</div><div class='add'>+</div><div class='add'>+Mon Oct 15 01:15:09 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept_nonblock): make accepted fd</div><div class='add'>+	  nonblocking.  [ruby-talk:274079]</div><div class='add'>+</div><div class='add'>+Sun Oct 14 17:31:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_obj_encoding): rdoc update.  a patch from David</div><div class='add'>+	  Flanagan &lt;david AT davidflanagan.com&gt;.  [ruby-core:12664]</div><div class='add'>+</div><div class='add'>+	* encoding.c (enc_dump, enc_load): marshaling feature.  a patch from</div><div class='add'>+	  David Flanagan.  [ruby-core:12665]</div><div class='add'>+</div><div class='add'>+	* encoding.c (Init_Encoding): undefine allocator of Encoding.</div><div class='add'>+	  [ruby-core:12665], [ruby-core:12666]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_encoding.rb: tests for Encoding from David Flanagan</div><div class='add'>+	  [ruby-core:12665]</div><div class='add'>+</div><div class='add'>+Sun Oct 14 11:09:09 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods#pp_hash): don't sort keys because hash is</div><div class='add'>+	  ordered.</div><div class='add'>+	  (ENV.pretty_print): call pp_hash with sorted hash.</div><div class='add'>+</div><div class='add'>+Sun Oct 14 04:08:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_SYS_LARGEFILE): keep results also in command</div><div class='add'>+	  options, to vail out of mismatch.  [ruby-list:44114]</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb, lib/mkmf.rb (configuration): add DEFS.</div><div class='add'>+</div><div class='add'>+Sun Oct 14 03:55:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb: deal with __fastcall name decorations.</div><div class='add'>+	  [ruby-list:44111]</div><div class='add'>+</div><div class='add'>+Sun Oct 14 02:20:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_cEncoding): new Encoding class.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_to_encoding, rb_to_encoding_index): helper functions.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_obj_encoding): return Encoding object now.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): mark Encoding objects.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): call Init_Encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_force_encoding): accept Encoding object as well as</div><div class='add'>+	  encoding name.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_to_encoding_index, rb_to_encoding):</div><div class='add'>+	  prototypes.</div><div class='add'>+</div><div class='add'>+Sun Oct 14 01:03:30 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_http): fix :ssl_ca_cert option.</div><div class='add'>+</div><div class='add'>+Sat Oct 13 21:23:21 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (foletype_s_ole_classes,</div><div class='add'>+	  foletype_s_typelibs): refactoring.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb: add some test.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (Init_win32ole): change method name</div><div class='add'>+	  WIN32OLE_TYPELIB.ole_types from WIN32OLE_TYPELIB.ole_classes.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_typelib.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_folderitem2_invokeverb.rb: check create</div><div class='add'>+	  shortcut string more strictly (This test is invoked in Japanese</div><div class='add'>+	  Windows environment).</div><div class='add'>+</div><div class='add'>+Sat Oct 13 09:11:58 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (set_file_encoding): case-insensitive search, a patch from</div><div class='add'>+	  David Flanagan &lt;david AT davidflanagan.com&gt; [ruby-core:12629]</div><div class='add'>+</div><div class='add'>+Sat Oct 13 09:02:16 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc,win}32/mkexports.rb: explicit data.  [ruby-list:44108]</div><div class='add'>+</div><div class='add'>+Sat Oct 13 00:17:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb (REXML::Document::write): leaky</div><div class='add'>+	  modification trans -&gt; transitive.  [ruby-dev:32040]</div><div class='add'>+</div><div class='add'>+Sat Oct 13 00:00:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: encoding specifier should work if the line matches</div><div class='add'>+	  /coding[:=] ?/, a la Python PEP-263, so that VIM comments like</div><div class='add'>+	  "# vim: set fileencoding=&lt;encoding name&gt;" should be recognized.</div><div class='add'>+</div><div class='add'>+Fri Oct 12 15:04:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (magic_comments): add "encoding" as same as "coding".</div><div class='add'>+</div><div class='add'>+	* parse.y (set_file_encoding): special file encoding handling.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 12 12:44:11 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_combination): fixed memory corruption due to too</div><div class='add'>+	  small memory allocation</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): accessing out of memory bounds.</div><div class='add'>+	  condition fixed.</div><div class='add'>+</div><div class='add'>+Fri Oct 12 11:22:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_values_at): make #select to be alias to #values_at</div><div class='add'>+	  to adapt RDoc description.  [ruby-core:12588]</div><div class='add'>+</div><div class='add'>+Thu Oct 11 21:10:17 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h (NOEX_LOCAL): remove unused local visibility.</div><div class='add'>+</div><div class='add'>+	* class.c (ins_methods_push): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_local_methods): method removed.</div><div class='add'>+</div><div class='add'>+Thu Oct 11 14:29:31 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (COMMON_MACROS): workaround for old SDK's bug.</div><div class='add'>+	  [ruby-core:12584]</div><div class='add'>+</div><div class='add'>+Thu Oct 11 06:35:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, */Makefile.sub (VPATH): add enc directory.</div><div class='add'>+</div><div class='add'>+	* common.mk (ENCOBJS): encoding objects.</div><div class='add'>+</div><div class='add'>+	* enc: directory for encodings.</div><div class='add'>+</div><div class='add'>+Thu Oct 11 00:04:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingTypeST): add OnigEncoding</div><div class='add'>+	  parameter to every function members.</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingTypeST): add auxiliary</div><div class='add'>+	  data member to provide user defined data for an encoding.</div><div class='add'>+</div><div class='add'>+Wed Oct 10 23:32:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_quote): no longer takes optional second argument</div><div class='add'>+	  that has never been documented.</div><div class='add'>+</div><div class='add'>+Wed Oct 10 15:39:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): don't alias iso-8859-1 to ascii.</div><div class='add'>+</div><div class='add'>+	* ascii.c (OnigEncodingASCII): change the name US-ASCII to ASCII-8BIT.</div><div class='add'>+</div><div class='add'>+Wed Oct 10 14:31:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_coderange): fixed check for non-ascii.</div><div class='add'>+</div><div class='add'>+Tue Oct  9 21:35:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation, rb_ary_combination): missing type</div><div class='add'>+	  names.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): used buffer should be t1.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): use frozen shared hidden array.</div><div class='add'>+	  [ruby-dev:31985]</div><div class='add'>+</div><div class='add'>+Tue Oct  9 16:58:10 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: remove to_a completely.</div><div class='add'>+</div><div class='add'>+	* array.c (tmpbuf): keep DRY to clear klass of temporary objects.</div><div class='add'>+</div><div class='add'>+Tue Oct  9 16:33:32 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation, rb_ary_combination, rb_ary_product):</div><div class='add'>+	  hide internal buffer objects.  [ruby-dev:31982]</div><div class='add'>+</div><div class='add'>+Tue Oct  9 16:00:32 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_read_escape, parser_tokadd_escape): check code range.</div><div class='add'>+	  [ruby-dev:31980]</div><div class='add'>+</div><div class='add'>+Tue Oct  9 15:40:24 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (STR_NEW3): check for if single byte sequence.</div><div class='add'>+</div><div class='add'>+Mon Oct  8 20:06:29 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb, lib/net/smtp.rb, lib/net/pop.rb: hostname should</div><div class='add'>+	  be verified against server's identity as presented in the server's</div><div class='add'>+	  certificate. [ruby-dev:31960]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/telnets.rb, ext/openssl/lib/net/ftptls.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct  7 22:37:47 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_taxonomy.rb, test/rss/test_parser_1.0.rb,</div><div class='add'>+	  test/rss/test_image.rb, test/rss/rss-testcase.rb: ensured</div><div class='add'>+	  declaring XML namespaces.</div><div class='add'>+</div><div class='add'>+Sun Oct  7 22:00:01 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h: make node flags as VALUE type.</div><div class='add'>+	  enum ruby_node_flags removed.</div><div class='add'>+</div><div class='add'>+	* ruby.c: define RUBY_NODE_* as const for gdb.</div><div class='add'>+</div><div class='add'>+Sun Oct  7 18:57:12 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: enum ruby_value_flags removed.  [ruby-dev:31959]</div><div class='add'>+</div><div class='add'>+	* ruby.c: define RUBY_FL_* as const VALUE for gdb.</div><div class='add'>+</div><div class='add'>+Sun Oct  7 17:50:14 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: remove enable_post_connection_check flag.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct  7 15:48:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_eq): fix to use rb_str_equal().</div><div class='add'>+</div><div class='add'>+Sat Oct  6 23:14:54 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_to_i): update RDoc since base can be any value</div><div class='add'>+	  between 2 and 36.  [ruby-talk:272879]</div><div class='add'>+</div><div class='add'>+Sat Oct  6 16:24:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_free): check Fiber or Continuation.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: remove a fixed test.</div><div class='add'>+</div><div class='add'>+Sat Oct  6 14:56:02 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_register): returns new index or -1 if failed.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_alias): check if original name is registered.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_init): register in same order as kcode options in</div><div class='add'>+	  re.c.  added new aliases.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_force_encoding): check if valid encoding name.</div><div class='add'>+</div><div class='add'>+Sat Oct  6 14:32:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_eq): get rid of gcc bug.</div><div class='add'>+</div><div class='add'>+Sat Oct  6 02:34:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h: no longer provide DEFAULT_KCODE.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 21:24:59 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union_m): Regexp.union accepts single argument which</div><div class='add'>+	  is an array of patterns.  [ruby-list:44084]</div><div class='add'>+</div><div class='add'>+Fri Oct  5 16:42:27 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_not_match): new method.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 16:15:52 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Turn on --enable-pthread by default for FreeBSD</div><div class='add'>+	  5.2.1-RELEASE and later, and remove pthread support for older</div><div class='add'>+	  versions which has never worked perfectly.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 16:11:50 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): Fix documentation.  Time format changed.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 04:02:39 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (in_addr, in6_addr, addr_mask): Make some minor</div><div class='add'>+	  code optimization.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 03:25:51 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (&lt;=&gt;): Implement IPAddr#&lt;=&gt; and make IPAddr</div><div class='add'>+	  comparable.</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (succ): Implement IPAddr#succ.  You can now create</div><div class='add'>+	  a range between two IPAddr's, which (Range) object is</div><div class='add'>+	  enumerable.</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (to_range): A new method to create a Range object</div><div class='add'>+	  for the (network) address.</div><div class='add'>+</div><div class='add'>+Fri Oct  5 03:14:45 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (coerce_other): Support type coercion and make &amp;,</div><div class='add'>+	  |, == and include? accept a string or an integer instead of an</div><div class='add'>+	  IPAddr object as the argument.</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (initialize): Give better error messages.</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb: Improve documentation.</div><div class='add'>+</div><div class='add'>+Thu Oct  4 20:45:53 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (Init_process): win32 has our own WNOHANG definition, so</div><div class='add'>+	  remove unnecessary #ifdef guard.</div><div class='add'>+</div><div class='add'>+Thu Oct  4 20:17:19 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation, rb_ary_product): support non C99</div><div class='add'>+	  compilers.</div><div class='add'>+</div><div class='add'>+Thu Oct  4 17:33:18 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (kcode_setter): Perl-ish global variable `$=' no longer</div><div class='add'>+	  effective.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): remove obsolete variables: $defout, $deferr.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): remove obsolete const alias: MatchingData.</div><div class='add'>+</div><div class='add'>+	* time.c (Init_Time): remove obsolete Time::times.</div><div class='add'>+</div><div class='add'>+	* re.c (ignorecase_setter): change warning message.</div><div class='add'>+</div><div class='add'>+	* re.c (ignorecase_getter): now gives warning.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_cmp_m): update RDoc document.</div><div class='add'>+</div><div class='add'>+	* re.c (kcode_setter): restore erroneously removed setter.</div><div class='add'>+</div><div class='add'>+Thu Oct  4 16:28:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_obj_encoding): returns encoding of the given object.</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_compile_gen): copy encoding from source string if</div><div class='add'>+	  non-empty.</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): new method Regexp#encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (str_encoding): moved to encoding.c</div><div class='add'>+</div><div class='add'>+Thu Oct  4 15:49:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): remove C99 dependency.</div><div class='add'>+	  [ruby-dev:31934]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct  3 23:37:17 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c, bin/ri, bin/irb: fixed typos in doc and comments.</div><div class='add'>+	  a patch from Eugene Ossintsev  &lt;eugoss AT gmail.com&gt;.</div><div class='add'>+	  [ruby-core:12375]</div><div class='add'>+</div><div class='add'>+Wed Oct  3 17:56:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: enable specify label to executable.</div><div class='add'>+	  (-e "ruby1::/path/to/ruby1; ruby2::/path/to/ruby2; ...")</div><div class='add'>+</div><div class='add'>+Wed Oct  3 16:58:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_str_new, parser_yylex, rb_intern3): set code-range</div><div class='add'>+	  bits.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_string): check code-range.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_parse_string, parser_here_document): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_set_encode): check if valid encoding.</div><div class='add'>+</div><div class='add'>+Wed Oct  3 15:43:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): check whether class variable is</div><div class='add'>+	  defined in superclasses.  root classes have higher priority.</div><div class='add'>+	  removes lower class variable entry from IV_TBL (if it's defined</div><div class='add'>+	  in classes, not modules).</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct  3 10:06:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_process_options): push frame with program name.</div><div class='add'>+	  [ruby-core:12351]</div><div class='add'>+</div><div class='add'>+Tue Oct  2 20:16:55 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): refactoring. remove unused code.</div><div class='add'>+</div><div class='add'>+Tue Oct  2 12:30:40 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): generalized product, now takes</div><div class='add'>+	  arbitrary number of arrays.  a patch from David Flanagan</div><div class='add'>+	  &lt;david AT davidflanagan.com&gt;.  [ruby-core:12346]</div><div class='add'>+</div><div class='add'>+Tue Oct  2 08:25:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): implementation contributed from</div><div class='add'>+	  David Flanagan.  [ruby-core:12344]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_combination): RDoc update to clarify.  a patch</div><div class='add'>+	  from David Flanagan.  [ruby-core:12344]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): small dirty hack by Matz to avoid</div><div class='add'>+	  arrays on stack.</div><div class='add'>+</div><div class='add'>+Tue Oct  2 07:01:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_dup): proc-&gt;block.proc should be self.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test_method.rb:</div><div class='add'>+	  move a fixed test.</div><div class='add'>+</div><div class='add'>+Mon Oct  1 16:17:44 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: use assert_normal_exit to test</div><div class='add'>+	  [ruby-dev:31818].</div><div class='add'>+</div><div class='add'>+Mon Oct  1 15:57:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): skip ICLASS.</div><div class='add'>+</div><div class='add'>+Mon Oct  1 15:29:35 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_normal_exit): use `` instead of</div><div class='add'>+	  system.</div><div class='add'>+</div><div class='add'>+Mon Oct  1 15:17:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): T_VALUES is less than T_BLOCK.  [ruby-dev:31911]</div><div class='add'>+</div><div class='add'>+Mon Oct  1 10:58:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): use require method instead of calling</div><div class='add'>+	  rb_require directly.  [ruby-dev:31322]</div><div class='add'>+</div><div class='add'>+Mon Oct  1 10:52:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options), ruby.c (proc_options, process_options): not</div><div class='add'>+	  call exit(2) directly.  [ruby-dev:31912]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run_node): deal with direct exit code.</div><div class='add'>+</div><div class='add'>+Sun Sep 30 17:12:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_append): always set encoding, and coderange</div><div class='add'>+	  cache bits.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (ENC_CODERANGE_SET): fixed a bug not to</div><div class='add'>+	  set cache bits.</div><div class='add'>+</div><div class='add'>+Sun Sep 30 11:52:11 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (pretty): don't show beginning empty line.</div><div class='add'>+</div><div class='add'>+Sun Sep 30 11:32:34 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c: use #ifdef for test LONG_LONG_VALUE.</div><div class='add'>+</div><div class='add'>+Sun Sep 30 04:30:55 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: use SIZEOF_LONG instead of SIZEOF_ULONG which is not</div><div class='add'>+	  defined.</div><div class='add'>+</div><div class='add'>+Sun Sep 30 04:03:43 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (Init_Regexp): test DEFAULT_KCODE in C code because</div><div class='add'>+	  KCODE_EUC, etc. are enum.</div><div class='add'>+</div><div class='add'>+Sun Sep 30 00:55:40 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (obj_ivar_each): get rid of warning.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 17:45:22 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* main.c (main): use platform-independent per-process initialization.</div><div class='add'>+	  [ruby-dev:31900]</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_sysinit): new function for per-process initialization.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RUBY_GLOBAL_SETUP): toplevel setup declaration.</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h, win32/mkexports.rb: alias NtInitialize</div><div class='add'>+	  ruby_sysinit.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_sysinit): renamed from NtInitialize.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 17:31:04 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_combination): new method to give all combination</div><div class='add'>+	  of elements from an array.  [ruby-list:42671]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_product): a new method to get all combinations</div><div class='add'>+	  of elements from two arrays.  can be extended to combinations of</div><div class='add'>+	  n-arrays, e.g. a.product(b,c,d).  anyone volunteer?</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_permutation): empty function body to calculate</div><div class='add'>+	  permutations of array elements.  need volunteer.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 17:14:44 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_leave): move proc invocation from r_entry() to</div><div class='add'>+	  avoid potential crash.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 12:28:08 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_normal_exit): new method.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add test for Marshal.load.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 10:12:20 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_ivar_set): fix class instance variable.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_real): cl argument may be 0.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 09:12:02 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_real): use BUILTIN_TYPE instead of TYPE.</div><div class='add'>+	  access flags directly instead of FL_TEST.</div><div class='add'>+	  they are enough because cl argument is a class.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 08:57:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (strcasecmp): needed for type_strcasehash.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 06:47:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (struct cmdline_options): static variables packed.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 05:29:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fdopen): create IO object from fd.</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): use encoding of the source as default.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options, load_file): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 04:27:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_alias): allow encodings multiple aliases.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_find_index): search the encoding which has the</div><div class='add'>+	  given name and return its index if found, or -1.</div><div class='add'>+</div><div class='add'>+	* st.c (type_strcasehash): case-insensitive string hash type.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_force_encoding): force encoding of self.  this name</div><div class='add'>+	  comes from [ruby-dev:31894] by Martin Duerst.  [ruby-dev:31744]</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_find_index, rb_enc_associate_index):</div><div class='add'>+	  prototyped.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_isctype): direct interface to ctype.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (st_init_strcasetable): prototyped.</div><div class='add'>+</div><div class='add'>+Sat Sep 29 03:53:26 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: Thread local storage should be fiber local.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, test/ruby/test_fiber.rb:</div><div class='add'>+	  move a fixed test.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 23:15:31 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_method): allow send! to call protected</div><div class='add'>+	  methods as well.  [ruby-core:12280]</div><div class='add'>+</div><div class='add'>+Fri Sep 28 22:33:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_fasta.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_k_nucleotide.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_reverse_complement.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/make_fasta_output.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/prepare_so_k_nucleotide.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/prepare_so_reverse_complement.rb: added.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 19:14:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: fix notations.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_loop_whileloop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_loop_whileloop2.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_uri.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm1_ivar_set.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_binary_trees.rb: added from Computer Language</div><div class='add'>+	  Benchmarks Game (http://shootout.alioth.debian.org/).</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_fannkuch.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_mandelbrot.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_meteor_contest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_nbody.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_nsieve.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_nsieve_bits.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_partial_sums.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_pidigits.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_spectralnorm.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 16:22:52 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (rb_vm_struct): fix typo: bufferd -&gt; buffered.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 15:47:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: fix to output benchmark results</div><div class='add'>+	  to file "bmlog-#{Time.now.strftime('%Y%m%d-%H%M%S')}.#{$$}".</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_io_file_create.rb: remove useless codes.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm2_eval.rb: added.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 15:05:24 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: export rb_ivar_foreach.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: modify struct RObject and RClass for optimizing</div><div class='add'>+	  T_OBJECT space.  [ruby-dev:31853]</div><div class='add'>+	  (ROBJECT_LEN, ROBJECT_PTR)</div><div class='add'>+	  (RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_SUPER, RCLASS_IV_INDEX_TBL)</div><div class='add'>+	  (RMODULE_IV_TBL, RMODULE_M_TBL, RMODULE_SUPER): abstract accessor</div><div class='add'>+	  defined.</div><div class='add'>+</div><div class='add'>+	* variable.c: support the modified RObject and RClass.</div><div class='add'>+</div><div class='add'>+	* object.c: ditto.</div><div class='add'>+</div><div class='add'>+	* class.c: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_method.ci: use the abstract accessor.</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* proc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* error.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 13:20:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast, rb_io_getline_1): set encoding to the</div><div class='add'>+	  result string, as well as getc.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 12:51:42 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_erb.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_io_file_(create|read|write).rb: added.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 12:49:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: fix file selection algorithm.</div><div class='add'>+</div><div class='add'>+Fri Sep 28 02:05:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable): need not to check asciicompat here.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_check): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_coderange): tuned a bit; no broken check.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_check): new encoding comparison criteria.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 17:36:28 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/REAMDE.win32: follow recent changes.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 16:01:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: fix to output some helpful messages.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 15:44:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/driver.rb: added.</div><div class='add'>+</div><div class='add'>+	* common.mk: fix to use above driver.</div><div class='add'>+</div><div class='add'>+	* benchmark/prepare_so_count_words.rb: added.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_count_words.rb: fix benchmark process.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 15:42:34 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fiber/fiber.c: modify prototype declaration.</div><div class='add'>+	  [ruby-core:12247]</div><div class='add'>+</div><div class='add'>+Thu Sep 27 09:42:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (strings, xstring, regexp, dsym): empty strings have</div><div class='add'>+	  US-ASCII encoding.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 07:39:13 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_finish): new method.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add test for [ruby-dev:31866] using</div><div class='add'>+	  assert_finish.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 04:46:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_associate_index): deal with ASCII compatible</div><div class='add'>+	  flags.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_check): allow ASCII compatible strings.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern_str): use ASCII encoding for ASCII string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_enc_str_coderange): check for code-range.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_modify): clear code-range flags.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash, rb_str_eql): ASCII compatible strings are</div><div class='add'>+	  comparable.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h: added code-range flags.</div><div class='add'>+</div><div class='add'>+Thu Sep 27 04:40:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_mark_set): new function to mark keys.</div><div class='add'>+</div><div class='add'>+	* marshal.c (struct dump_arg, struct load_arg): added wrappers to mark</div><div class='add'>+	  data and compat_tbl entries.  [ruby-dev:31870]</div><div class='add'>+</div><div class='add'>+Thu Sep 27 03:17:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid): no needs to poll.  [ruby-dev:31871]</div><div class='add'>+</div><div class='add'>+Wed Sep 26 20:11:46 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: remove a fixed test.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 20:00:12 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: move fixed tests.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 19:36:26 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): fix to check stack overflow.</div><div class='add'>+	  [ruby-dev:31850]</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, vm.h: move CHECK_STACK_OVERFLOW() macro.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 19:27:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_throw): fix to move increment point.</div><div class='add'>+	  [ruby-dev:31840]</div><div class='add'>+</div><div class='add'>+Wed Sep 26 19:23:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: Fiber as SemiCoroutine on default. [ruby-core:12146]</div><div class='add'>+</div><div class='add'>+	* ext/fiber/fiber.c: enable Fiber#transfer.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 18:38:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_check): check for ASCII-compatibilities.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_tokadd_string, parser_parse_string,</div><div class='add'>+	  parser_here_document, parser_yylex): set encoding to US-ASCII.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_enc_symname_p): check if valid with encoding.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): let symbols have encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): add encoding index.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_comparable, rb_str_equal, rb_str_eql): check if</div><div class='add'>+	  compatible encoding.</div><div class='add'>+</div><div class='add'>+	* string.c (sym_inspect): made encoding aware.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_eq): compare with encoding.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_asciicompat): check if ASCII</div><div class='add'>+	  compatible.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_get_index): added prototype.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_str_comparable, rb_str_equal): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 15:01:16 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (rb_get_alloc_func): cast to suppress a warning.</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (remove_method): local variable to be initialized.</div><div class='add'>+</div><div class='add'>+Wed Sep 26 08:36:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (ext/extinit.o): use $(OUTFLAG) as well as other</div><div class='add'>+	  objects.  [ruby-Bugs-14228]</div><div class='add'>+</div><div class='add'>+Wed Sep 26 05:12:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yyerror): limit error message length.</div><div class='add'>+	  [ruby-dev:31848]</div><div class='add'>+</div><div class='add'>+Tue Sep 25 15:11:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_ungetc): reallocate internal buffer if pushing data</div><div class='add'>+	  excess capacity.  [ruby-dev:31650]</div><div class='add'>+</div><div class='add'>+Tue Sep 25 13:43:03 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (remove_method): should not remove undef place</div><div class='add'>+	  holder.  [ruby-dev:31816], [ruby-dev:31817]</div><div class='add'>+</div><div class='add'>+Tue Sep 25 09:51:31 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): source file information may be NULL.</div><div class='add'>+	  [ruby-dev:31849]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize_0): clear trace_func before finalization.</div><div class='add'>+</div><div class='add'>+Mon Sep 24 22:36:13 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal): should handle recursive array.</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_equal): should handle recursive hash.</div><div class='add'>+</div><div class='add'>+Mon Sep 24 22:14:13 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb (WeakRef): remove debug print.  [ruby-dev:31799]</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_i): avoid too frequent hash conflict where key and</div><div class='add'>+	  value are same.  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:31802]</div><div class='add'>+</div><div class='add'>+Mon Sep 24 17:56:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_initialize, strscan_getch): use the</div><div class='add'>+	  encoding of the target string instead of setting to StringScanner</div><div class='add'>+	  instance.  [ruby-dev:31831]</div><div class='add'>+</div><div class='add'>+Mon Sep 24 16:52:11 2007  Urabe Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: fix typo.</div><div class='add'>+</div><div class='add'>+Mon Sep 24 06:49:15 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: an SSL verification (the server hostname should</div><div class='add'>+	  be matched with its certificate's commonName) is added.</div><div class='add'>+	  this verification can be skipped by</div><div class='add'>+	  "Net::HTTP#enable_post_connection_check=(false)".</div><div class='add'>+	  suggested by Chris Clark &lt;cclark at isecpartners.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/open-uri.rb: use Net::HTTP#enable_post_connection_check to</div><div class='add'>+	  perform SSL post connection check.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.c</div><div class='add'>+	  (OpenSSL::SSL::SSLSocket#post_connection_check): refine error message.</div><div class='add'>+</div><div class='add'>+Sun Sep 23 09:05:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of, os_each_obj): hide objects to be finalized.</div><div class='add'>+	  [ruby-dev:31810]</div><div class='add'>+</div><div class='add'>+Sun Sep 23 08:58:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (rb_attr): should not use alloca for unknown size</div><div class='add'>+	  input.  [ruby-dev:31818]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern_str): prevent str from optimization.</div><div class='add'>+</div><div class='add'>+Sun Sep 23 06:16:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (remove_method): check for undefined method.</div><div class='add'>+	  [ruby-dev:31816]</div><div class='add'>+</div><div class='add'>+Sun Sep 23 05:42:35 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb (Options::check_diagram): dot -V output</div><div class='add'>+	  changed. [ ruby-Bugs-11978 ], Thanks Florian Frank.</div><div class='add'>+</div><div class='add'>+Sat Sep 22 06:02:11 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::List::summarize): use each_line if</div><div class='add'>+	  defined rather than each.  [ruby-Patches-14096]</div><div class='add'>+</div><div class='add'>+Sat Sep 22 05:19:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_init): separate from strio_initialize</div><div class='add'>+	  to share with strio_reopen properly.  [ruby-Bugs-13919]</div><div class='add'>+</div><div class='add'>+Fri Sep 21 14:51:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_rest): copy just used part.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): mark u1 and u2 of NODE_ARGSCAT.</div><div class='add'>+</div><div class='add'>+	* gc.c (os_obj_of): hide T_VALUES too.  [ruby-dev:31804]</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): freeze temporary argument array.</div><div class='add'>+</div><div class='add'>+Fri Sep 21 04:58:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-label-indent): fix for function top</div><div class='add'>+	  level labels.</div><div class='add'>+</div><div class='add'>+Fri Sep 21 02:11:22 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match_m): evaluate a block if match.  it would make</div><div class='add'>+	  condition statement much shorter, if no else clause is needed.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match_m): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 21 02:02:34 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_equal): should call rb_eql when argument eql is set.</div><div class='add'>+</div><div class='add'>+Thu Sep 20 17:28:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (popen_exec), process.c (rb_spawn): stop other threads before</div><div class='add'>+	  exec.  [ruby-core:08262]</div><div class='add'>+</div><div class='add'>+Tue Sep 18 22:08:42 2007  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: fix a coerce bug of Vector. [ruby-core: 12190]</div><div class='add'>+</div><div class='add'>+Mon Sep 17 21:06:03 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP::GenericRequest#initialize): check path is</div><div class='add'>+	  not nil. [ruby-dev:31149]</div><div class='add'>+</div><div class='add'>+Mon Sep 17 21:00:51 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): rename event: arglist_* -&gt; args_*.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): rename event: restparam -&gt; rest_param.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): rename event: constpath_* -&gt; const_path_*.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): rename event: topconst_* -&gt; top_const_*.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): rename event: iter_block -&gt; method_add_block.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): support block local parameter declaration.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper): introduce new macro params_new.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/sexp.rb: should not dispose event</div><div class='add'>+	  arguments whose name ends with "_new" but arity != 0.</div><div class='add'>+</div><div class='add'>+Sat Sep 15 23:36:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct parser_params): common members in the parser and</div><div class='add'>+	  ripper must be placed at each same location.</div><div class='add'>+</div><div class='add'>+Sat Sep 15 18:25:15 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): fixed too much rstrip. [ruby-dev:31786]</div><div class='add'>+</div><div class='add'>+Sat Sep 15 17:32:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_initialize): set default encoding.  [ruby-dev:31787]</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): make new parse instance after processing shebang</div><div class='add'>+	  line options.</div><div class='add'>+</div><div class='add'>+Sat Sep 15 17:04:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_associate_index, rb_enc_get_index): check if</div><div class='add'>+	  object is encoding capable.  [ruby-dev:31780]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subpat_set): check for if the argument is a String.</div><div class='add'>+</div><div class='add'>+Sat Sep 15 13:31:21 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss.rb, lib/rss/, test/rss/:</div><div class='add'>+	  - 0.1.9 -&gt; 0.2.0.</div><div class='add'>+	  - supported Slash module.</div><div class='add'>+</div><div class='add'>+Fri Sep 14 22:20:01 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fev_unadvise): no needs to reset</div><div class='add'>+	  event handlers.</div><div class='add'>+</div><div class='add'>+Fri Sep 14 17:28:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: tests which cause SEGV should not be</div><div class='add'>+	  added.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: add above test to known bug.</div><div class='add'>+</div><div class='add'>+Fri Sep 14 16:24:04 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_expandarray): assignment should be placed</div><div class='add'>+	  after creating new array.</div><div class='add'>+</div><div class='add'>+Fri Sep 14 16:17:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: add a stress test (-s).</div><div class='add'>+</div><div class='add'>+Fri Sep 14 16:14:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h, eval_intern.h: move some macros to eval_intern.h.</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_f_throw): fix to use NEW_THROW_OBJECT().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_loop): remove additional macro.</div><div class='add'>+</div><div class='add'>+Fri Sep 14 16:12:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_expandarray): should be volatile value for GC.</div><div class='add'>+</div><div class='add'>+Thu Sep 13 15:42:03 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): inline cache entries are overwritten</div><div class='add'>+	  in iseq_build_body().</div><div class='add'>+</div><div class='add'>+Thu Sep 13 14:00:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (brace_block): should use compstmt.  patch submitted by</div><div class='add'>+	  Kirill A. Shutemov &lt;k.shutemov AT gmail.com&gt;  [ruby-core:12154].</div><div class='add'>+</div><div class='add'>+Thu Sep 13 13:47:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2str): fixed typo.</div><div class='add'>+</div><div class='add'>+Wed Sep 12 23:12:22 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): -W should be allowed in RUBYOPT</div><div class='add'>+	  environment variable.  [ruby-core:12118]</div><div class='add'>+</div><div class='add'>+Wed Sep 12 15:19:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_sysopen): should not use alloca for unknown size</div><div class='add'>+	  input.  [ruby-dev:31775]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2str): ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_float): use snprintf instead of sprintf.</div><div class='add'>+</div><div class='add'>+Tue Sep 11 17:28:00 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::make_tmpname): Allow to specify a</div><div class='add'>+	  suffix for a temporary file name.</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::make_tmpname): Make temporary file</div><div class='add'>+	  names less predictable by including a random string.</div><div class='add'>+	  [inspired by: akr]</div><div class='add'>+</div><div class='add'>+Tue Sep 11 17:25:59 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Add shellescape() and shelljoin().</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Rename shellwords() to shellsplit() and make</div><div class='add'>+	  the former an alias to the latter.</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Add escape(), split(), join() as class</div><div class='add'>+	  methods, which are aliases to their respective long names</div><div class='add'>+	  prefixed with `shell'.</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: Add String#shellescape(), String#shellsplit()</div><div class='add'>+	  and Array#shelljoin() for convenience.</div><div class='add'>+</div><div class='add'>+Mon Sep 10 15:48:31 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c: represent initialized state using EXCL instead of FL_USER3.</div><div class='add'>+</div><div class='add'>+	* range.c (range_dumper): make uninitialized range dumpable.</div><div class='add'>+	  (range_loader): make uninitialized range loadable.</div><div class='add'>+</div><div class='add'>+Mon Sep 10 13:44:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_cycle): avoid infinite loop for empty array.</div><div class='add'>+	  based on a patch from David Flanagan.  [ruby-core:12085]</div><div class='add'>+</div><div class='add'>+Mon Sep 10 01:21:23 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): struct allocation first to check if a</div><div class='add'>+	  class is a struct.  compatibility check should come next.</div><div class='add'>+</div><div class='add'>+Mon Sep 10 01:05:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): fixed integer overflow.  [ruby-dev:31763]</div><div class='add'>+</div><div class='add'>+Sun Sep  9 08:57:27 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_strptime): now also attaches an element</div><div class='add'>+	  which denotes leftover substring if exists.</div><div class='add'>+</div><div class='add'>+Sun Sep  9 01:59:08 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): check T_STRUCT type for structs.</div><div class='add'>+</div><div class='add'>+Sun Sep  9 01:17:05 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): don't call user-defined initialize for</div><div class='add'>+	  T_STRUCT objects.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_struct_initialize): declared.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_initialize): export.</div><div class='add'>+</div><div class='add'>+Sat Sep  8 23:55:56 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.ci (rb_get_alloc_func): new function to get allocation</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (rb_alloc_func_t): declared.</div><div class='add'>+	  (rb_define_alloc_func): declared.</div><div class='add'>+	  (rb_marshal_define_compat): declared.</div><div class='add'>+</div><div class='add'>+	* range.c: use T_STRUCT for Range.</div><div class='add'>+</div><div class='add'>+	* inits.c: move Init_marshal() prior to Init_Range() because</div><div class='add'>+	  Init_Range calls rb_marshal_define_compat which needs</div><div class='add'>+	  marshal's compat_allocator_tbl initialized.</div><div class='add'>+</div><div class='add'>+	* marshal.c: support marshal format compatibility layer designed for</div><div class='add'>+	  marshaling T_STRUCT Range using T_OBJECT format.</div><div class='add'>+	  (rb_marshal_define_compat): defined.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:31710]</div><div class='add'>+</div><div class='add'>+Sat Sep  8 10:05:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_members): check if __members__ is an</div><div class='add'>+	  array to prevent segmentation fault.  [ruby-dev:31759]</div><div class='add'>+</div><div class='add'>+Sat Sep  8 09:33:09 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (str[fp]time): now check specifications more</div><div class='add'>+	  strictly.</div><div class='add'>+</div><div class='add'>+Sat Sep  8 02:56:31 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb (TestFiber::test_throw): uncaught throw</div><div class='add'>+	  now raise ArgumentError exception.</div><div class='add'>+</div><div class='add'>+Sat Sep  8 02:45:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_members): should raise TypeError instead</div><div class='add'>+	  of call rb_bug().  [ruby-dev:31709]</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): no nil check require any more.</div><div class='add'>+</div><div class='add'>+Sat Sep  8 01:46:36 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.c, regenc.h (onigenc_single_byte_mbc_enc_len): should take</div><div class='add'>+	  two arguments. [ruby-dev:31754]</div><div class='add'>+</div><div class='add'>+Fri Sep  7 00:58:16 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fix typo.</div><div class='add'>+</div><div class='add'>+Fri Sep  7 00:28:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): forgot to commit rb_enc_mbclen() fix.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getc): rb_enc_mbclen() fix.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 22:57:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::Entry_::copy): prevent self copy of</div><div class='add'>+	  directories.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::fu_each_src_dest0): use try_convert.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::fu_update_option): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 21:36:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h (OnigEncodingTypeST): add end parameter</div><div class='add'>+	  to mbc_enc_len.</div><div class='add'>+</div><div class='add'>+	* euc_jp.c (mbc_enc_len), sjis.c (mbc_enc_len),</div><div class='add'>+	  utf8.c (utf8_mbc_enc_len): ditto.</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_mbclen): add end parameter.</div><div class='add'>+</div><div class='add'>+Thu Sep  6 21:31:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_cycle): typo in rdoc.  a patch from Yugui</div><div class='add'>+	  &lt;yugui@yugui.sakura.ne.jp&gt;.  [ruby-dev:31748]</div><div class='add'>+</div><div class='add'>+Thu Sep  6 12:42:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_succ, rb_str_chop_bang, rb_str_chop): m17n support.</div><div class='add'>+	  [ruby-dev:31734]</div><div class='add'>+</div><div class='add'>+Wed Sep  5 22:02:27 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): need integer overflow check.</div><div class='add'>+	  [ruby-dev:31736]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_splice): ditto.  [ruby-dev:31737]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): ditto.  [ruby-dev:31738]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice): integer overflow for length.</div><div class='add'>+	  [ruby-dev:31739]</div><div class='add'>+</div><div class='add'>+Tue Sep  4 20:43:44 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_EVENT#unadvise.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep  3 15:37:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (vm.o): depends on st.h too.</div><div class='add'>+</div><div class='add'>+Sun Sep  2 23:38:29 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (struct st_table): make num_entries bitfield</div><div class='add'>+	  instead of num_bins for speed.  num_entries has less access.</div><div class='add'>+</div><div class='add'>+Sun Sep  2 00:37:57 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_parse): improved parsing of ordinal dates.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_parse): use named character classes in some</div><div class='add'>+	  regular expressions.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 23:44:26 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_f_throw): wrap tag and TAG_THROW in a NODE_MEMO</div><div class='add'>+	  node to make throw instruction to work well.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 20:56:07 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (struct RBignum): embed digits in RBignum for</div><div class='add'>+	  small bignums.</div><div class='add'>+</div><div class='add'>+	* bignum.c: RBignum embedded digits implemented.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: declare rb_big_resize.</div><div class='add'>+</div><div class='add'>+	* gc.c: don't free embedded digits.</div><div class='add'>+</div><div class='add'>+	* numeric.c: replace direct bignum field accessor by abstract field</div><div class='add'>+	  accessor such as RBIGNUM(val)-&gt;sign to RBIGNUM_SIGN(val).</div><div class='add'>+</div><div class='add'>+	* sprintf.c: ditto.</div><div class='add'>+</div><div class='add'>+	* compar.c: ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* random.c: ditto.</div><div class='add'>+</div><div class='add'>+	* .gdbinit: support embedded small bignums.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:31689]</div><div class='add'>+</div><div class='add'>+Sat Sep  1 19:59:43 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_event_free): IConnectionPoint should be</div><div class='add'>+	  released.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (EVENTSINK_Destructor): ITypeInfo should be</div><div class='add'>+	  released.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fev_initialize): refactoring.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 16:26:09 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb (test_recvfrom): same as mswin32 on mswin64.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 14:24:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_numcmp, st_numhash): use st_data_t instead of long, because</div><div class='add'>+	  the former may be larger than the latter.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (CHAR_BIT): get rid of magic number.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (rb_index_t): use st_data_t for the platforms it</div><div class='add'>+	  is larger than int.</div><div class='add'>+</div><div class='add'>+Sat Sep  1 10:43:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_f_catch): generate new tag object if no argument is</div><div class='add'>+	  given.  backported from MatzRuby.  [ruby-dev:31609]</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_catch): call #catch without arguments if tag</div><div class='add'>+	  string is NULL.</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_f_throw): allow throwing non-symbol object.</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_catch_obj): new function to wait throw with arbitrary</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci (rb_throw_obj): new function to throw arbitrary object.</div><div class='add'>+</div><div class='add'>+	* variable.c (check_autoload_table): prevent multiple calls from</div><div class='add'>+	  RSTRING_PTR().</div><div class='add'>+</div><div class='add'>+Fri Aug 31 07:12:24 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (SQRT_LONG_MAX): use SIZEOF_LONG instead of SIZEOF_VALUE</div><div class='add'>+	  because SIZEOF_VALUE &gt; SIZEOF_LONG on some platforms.</div><div class='add'>+</div><div class='add'>+Fri Aug 31 04:18:03 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_norm_arg, f_arg_item): not croak already erred names.</div><div class='add'>+	  [ruby-dev:31687]</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable_gen): ignore already erred names.</div><div class='add'>+</div><div class='add'>+	* parse.y (shadowing_lvar_gen): always make new block local variable</div><div class='add'>+	  when shadowing outer local variable.  [ruby-dev:31507]</div><div class='add'>+</div><div class='add'>+Thu Aug 30 19:40:33 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regenc.h: check RUBY_EXTERN before including config.h and defines.h</div><div class='add'>+</div><div class='add'>+	* common.mk: update header dependency.</div><div class='add'>+</div><div class='add'>+Thu Aug 30 14:06:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (rb_obj_define_method): reverted.  [ruby-talk:266637]</div><div class='add'>+</div><div class='add'>+Thu Aug 30 13:49:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: initialize $top_srcdir always.  [ruby-dev:31682]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_const, have_const): check for a const is defined.</div><div class='add'>+	  [ruby-core:04422]</div><div class='add'>+</div><div class='add'>+Thu Aug 30 08:00:12 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: declare rb_hash_tbl.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (RHash): delay st_table allocation.</div><div class='add'>+	  rename tbl field to ntbl to detect direct reference to the st_table</div><div class='add'>+	  as a compile error.</div><div class='add'>+	  (RHASH_TBL): abstract accessor defined.</div><div class='add'>+	  (RHASH_ITER_LEV): ditto.</div><div class='add'>+	  (RHASH_IFNONE): ditto.</div><div class='add'>+	  (RHASH_SIZE): ditto.</div><div class='add'>+	  (RHASH_EMPTY_P): ditto.</div><div class='add'>+	  (hash_alloc0, hash_alloc): unified because hash_alloc doesn't</div><div class='add'>+	  allocate st_table now.</div><div class='add'>+</div><div class='add'>+	* hash.c: delay st_table allocation.</div><div class='add'>+</div><div class='add'>+	* gc.c: replace tbl by ntbl.</div><div class='add'>+</div><div class='add'>+	* array.c: replace direct field accessor by abstract field accessor</div><div class='add'>+	  such as RHASH(hash)-&gt;tbl to RHASH_TBL(hash).</div><div class='add'>+</div><div class='add'>+	* marshal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/generator/generator.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/parser.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/parser/parser.rl: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: ditto.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:31678]</div><div class='add'>+</div><div class='add'>+Wed Aug 29 18:36:06 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: add :ftp_active_mode option.  [ruby-dev:31677]</div><div class='add'>+</div><div class='add'>+Wed Aug 29 14:55:28 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): should not use mbclen2() which has broken API.</div><div class='add'>+</div><div class='add'>+	* re.c: remove rb_reg_mbclen2().</div><div class='add'>+</div><div class='add'>+Wed Aug 29 12:48:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (aref_args): args may not be a list.  [ruby-dev:31592]</div><div class='add'>+</div><div class='add'>+Wed Aug 29 11:30:10 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (struct st_table): add entries_packed 1-bit</div><div class='add'>+	  bitfield.  decrease num_bins 1-bit.</div><div class='add'>+</div><div class='add'>+	* st.c: pack numhash which have 5 or less entries in bins.</div><div class='add'>+	  (st_init_table_with_size): setup entries_packed flag.</div><div class='add'>+	  (st_clear): support packed mode.</div><div class='add'>+	  (st_lookup): ditto.</div><div class='add'>+	  (st_insert): ditto.</div><div class='add'>+	  (st_add_direct): ditto.</div><div class='add'>+	  (st_copy): ditto.</div><div class='add'>+	  (st_delete): ditto.</div><div class='add'>+	  (st_foreach): ditto.</div><div class='add'>+	  (st_reverse_foreach): ditto.</div><div class='add'>+	  (unpack_entries): new function for converting to unpacked mode.</div><div class='add'>+</div><div class='add'>+	[ruby-list:43954]</div><div class='add'>+</div><div class='add'>+Wed Aug 29 10:46:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/defines.h (flush_register_windows): call "ta 0x03"</div><div class='add'>+	  even on Linux/Sparc.  [ruby-dev:31674]</div><div class='add'>+</div><div class='add'>+Tue Aug 28 19:16:00 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_type_progid): progid getted by</div><div class='add'>+	  ProgIDFromCLSID should be freed by CoTaskMemFree. Thanks, arton.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_raise_message): set negative</div><div class='add'>+	  compareMode value to raise WIN32OLERuntimeError.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb (test_implemented_ole_types):</div><div class='add'>+	  support some environment which returns IShellDispatch5 instead</div><div class='add'>+	  of IShellDispatch.</div><div class='add'>+</div><div class='add'>+Tue Aug 28 15:42:09 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_subseq): retrieve substring based on byte offset.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): was confusing character offset and</div><div class='add'>+	  byte offset.</div><div class='add'>+</div><div class='add'>+Tue Aug 28 14:23:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice_0): should check to modify.  [ruby-dev:31665]</div><div class='add'>+</div><div class='add'>+Tue Aug 28 14:21:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): set parser encode too when BOM exists.</div><div class='add'>+</div><div class='add'>+Tue Aug 28 00:51:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c: fix Mutex to be interruptable lock.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h:</div><div class='add'>+	  prepare native_cond_*() which are based on pthread_cond_*() spec.</div><div class='add'>+</div><div class='add'>+	* prelude.rb: fix Mutex#synchronize method.</div><div class='add'>+</div><div class='add'>+	* vm_core.h, include/ruby/intern.h: change unblock function interface</div><div class='add'>+	  (to pass some user data).</div><div class='add'>+</div><div class='add'>+	* file.c, process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm2_mutex.rb: add a benchmark for mutex.</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex</div><div class='add'>+	  with contention.</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_thread.rb: add a test.</div><div class='add'>+</div><div class='add'>+	* common.mk: fix benchmark options.</div><div class='add'>+</div><div class='add'>+Mon Aug 27 23:14:02 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rstrip_bang): wrong strip point.  [ruby-dev:31652]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): should swallow sequence of newlines</div><div class='add'>+	  if rs (optional argument) is an empty string.  [ruby-dev:31652]</div><div class='add'>+</div><div class='add'>+Mon Aug 27 22:39:08 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_codelen): raises invalid sequence exception</div><div class='add'>+	  if ONIGENC_CODE_TO_MBCLEN() returns zero.  [ruby-dev:31661]</div><div class='add'>+</div><div class='add'>+	* encoding.c (rb_enc_mbclen): check invalid sequence.</div><div class='add'>+</div><div class='add'>+Mon Aug 27 20:27:59 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_type_progid): fix the bug.</div><div class='add'>+	  [ruby-dev:31576]</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb (test_initialize):</div><div class='add'>+	  remove duplicate assertions.</div><div class='add'>+</div><div class='add'>+Mon Aug 27 19:10:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getlogin): update documentation to note</div><div class='add'>+	  security issue.  [ruby-Bugs-11821]</div><div class='add'>+</div><div class='add'>+Mon Aug 27 15:56:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_encoding): return the encoding of a Symbol.</div><div class='add'>+</div><div class='add'>+Mon Aug 27 15:33:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (IEEE_BIG_ENDIAN): use configured value.  [ruby-dev:31623]</div><div class='add'>+</div><div class='add'>+	* util.c (Llong): set to LONG_LONG if available.</div><div class='add'>+</div><div class='add'>+Mon Aug 27 13:11:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (tr_trans): wrong condition for mbmaxlen==1 strings.</div><div class='add'>+	  [ruby-dev:31652]</div><div class='add'>+</div><div class='add'>+Mon Aug 27 00:41:13 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_each_byte): caused infinite loop.  [ruby-dev:31652]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): should return nil at EOF, not EOFError.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (SimpleDelegator::__setobj__): use raise</div><div class='add'>+	  argument to specify backtrace.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fnmatch.rb (TestFnmatch::bracket_test):</div><div class='add'>+	  String#include? no longer works for Fixnum.  use #chr.</div><div class='add'>+	  [ruby-dev:31652]</div><div class='add'>+</div><div class='add'>+Sun Aug 26 12:27:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: fix to remove Fiber.new until fiber.so is not loaded.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_continuation.rb: fix to use resume.</div><div class='add'>+</div><div class='add'>+Sun Aug 26 06:51:46 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_wc2mb, reg_enum_key): allocate</div><div class='add'>+	  buffer should be NULL terminated.</div><div class='add'>+</div><div class='add'>+Sun Aug 26 06:04:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_setup_method): reorder code for branch prediction.</div><div class='add'>+</div><div class='add'>+Sun Aug 26 05:54:49 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_method): fix to relaxant safe level check</div><div class='add'>+	  ($SAFE &gt; 2).  [ruby-core:11998]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Sun Aug 26 05:52:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: fix to require 'continuation'.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 23:52:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next): message changed.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 23:22:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h: remove unused rb_enc_ismbchar().</div><div class='add'>+</div><div class='add'>+Sat Aug 25 22:50:14 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_event_free, EVENTSINK_Destructor,</div><div class='add'>+	  fev_initialize): remove the connection ole_event_free and</div><div class='add'>+	  EVENTSINK_Destructor.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 17:52:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c, include/ruby/intern.h: export rb_str_length().</div><div class='add'>+</div><div class='add'>+	* insns.def: use rb_str_length() in opt_length.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 17:48:51 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: rename FIBER_STACK_SIZE to FIBER_VM_STACK_SIZE.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 17:05:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (swallow): removed condition using an unset variable.</div><div class='add'>+</div><div class='add'>+	* parse.y, re.c: re-applied revision 13092.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice): return from void function.</div><div class='add'>+</div><div class='add'>+	* include/ruby/encoding.h (rb_enc_str_new): prototype added.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 11:45:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* encoding.c: provide basic features for M17N.</div><div class='add'>+</div><div class='add'>+	* parse.y: encoding aware parsing.</div><div class='add'>+</div><div class='add'>+	* parse.y (pragma_encoding): encoding specification pragma.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern3): encoding specified symbols.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_length): length based on characters.</div><div class='add'>+	  for older behavior, bytesize method added.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): index based on characters.  rindex as</div><div class='add'>+	  well.</div><div class='add'>+</div><div class='add'>+	* string.c (succ_char): encoding aware succeeding string.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_reverse): reverse based on characters.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): encoding aware string description.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upcase_bang): encoding aware case conversion.</div><div class='add'>+	  downcase, capitalize, swapcase as well.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_tr_bang): tr based on characters.  delete,</div><div class='add'>+	  squeeze, tr_s, count as well.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_split_m): split based on characters.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): encoding aware each_line.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_char): added.  iteration based on</div><div class='add'>+	  characters.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_strip_bang): encoding aware whitespace</div><div class='add'>+	  stripping.  lstrip, rstrip as well.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): encoding aware justifying (ljust,</div><div class='add'>+	  rjust, center).</div><div class='add'>+</div><div class='add'>+	* string.c (str_encoding): get encoding attribute from a string.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): encoding aware regular expression</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): formatting (i.e. length count) based</div><div class='add'>+	  on characters.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): getc to return one-character string.</div><div class='add'>+	  for older behavior, getbyte method added.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getc): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): allow pushing arbitrary string at the</div><div class='add'>+	  current reading point.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: encoding support.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 10:59:19 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: separate Continuation and Fiber from core.</div><div class='add'>+</div><div class='add'>+	* ext/continuation/*, ext/fiber/*: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: remove rb_cFiber.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: add the rb_fiber_new() declaration.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (next_init): fix to use rb_fiber_new().</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb: remove next? tests.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_continuation.rb: add a require 'continuation'.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: add a require 'fiber'.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 10:20:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.o): depends on vm_core.h now.</div><div class='add'>+</div><div class='add'>+	* common.mk (prelude.c): depends on tool/compile_prelude.rb too.</div><div class='add'>+</div><div class='add'>+	* common.mk (prereq): updates all auto-generated sources.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: separated dynamic and static portions.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 10:05:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb: add Thread.exclusive.  This class method</div><div class='add'>+	  is different from 1.8's.  Thread.exclusive only does</div><div class='add'>+	  synchronize with VM global mutex.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 09:39:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_s_try_convert): more document description.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_try_convert): typo fixed.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 08:54:12 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* id.h, id.c: remove idFuncall.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_specialized_instruction): ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 08:47:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: fix to include "vm_core.h".</div><div class='add'>+</div><div class='add'>+Sat Aug 25 03:49:14 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/sentence.rb (Sentence): include Enumerable.</div><div class='add'>+	  (Sentence#each): defined.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: use Sentence#expand.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 03:08:57 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb: fix Mutex#synchronize definition.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 02:08:45 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_s_try_convert): a new class method to convert</div><div class='add'>+	  object or nil if it's not target-type.  this mechanism is used</div><div class='add'>+	  to convert types in the C implemented methods.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_try_convert): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_try_convert): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_try_convert): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_s_try_convert): ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 00:49:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_loop_generator.rb: added.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 00:22:31 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* prelude.rb: added.  run this script on startup.</div><div class='add'>+</div><div class='add'>+	* tool/compile_prelude.rb: compile prelude.rb to C string.</div><div class='add'>+	  (prelude.rb -&gt; prelude.c)</div><div class='add'>+</div><div class='add'>+	* common.mk: fix to build with prelude.c.</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (Init_Thread): move definition of Mutex#synchronize</div><div class='add'>+	  to prelude.rb.</div><div class='add'>+</div><div class='add'>+Sat Aug 25 00:08:43 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_massign_opt): fix to skip massign optimization</div><div class='add'>+	  with global variables.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_massign.rb: add some tests for above.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 18:42:03 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb (TestDir::setup): ?c now makes a string.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::initialize):</div><div class='add'>+	  initialize @workdir to stop warning.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 18:30:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRb::DRbServer::InvokeMethod::perform_without_block):</div><div class='add'>+	  replace funcall by send!.  other files in the distribution as well.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 17:06:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_send_bang): abandon the name funcall for private</div><div class='add'>+	  aware method call.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 15:27:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next): stop pre-fetching.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): remove next? method.</div><div class='add'>+</div><div class='add'>+Fri Aug 24 15:14:57 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_loop): now handles StopIteration exception.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 20:31:31 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: optimize simple massign.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 20:02:25 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (reg_get_value): use RegQueryValueEx instead</div><div class='add'>+	  of RegQueryValueEx.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (typelib_file_from_clsid): fix the bug</div><div class='add'>+	  that the function always returns Qnil.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_type.rb (test_initialize): add some test.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 17:25:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (group_member): check if presents.</div><div class='add'>+</div><div class='add'>+	* configure.in (XCFLAGS): add _GNU_SOURCE on linux.</div><div class='add'>+</div><div class='add'>+	* file.c (group_member): use system routine if available.</div><div class='add'>+</div><div class='add'>+	* process.c: moved _GNU_SOURCE macro to Makefile.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 16:59:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_massign), insnhelper.ci (vm_throw): not use C99</div><div class='add'>+	  comment.</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_cont_call, fiber_switch, rb_fiber_resume, rb_fiber_yield):</div><div class='add'>+	  suppress warnings.</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_start): change on non-volatile variable between</div><div class='add'>+	  setjmp and longjmp may not has an effect.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (sym_call): initialize first.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enum_iter): typedefed.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (next_i): suppress a warning.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 16:04:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def, parse.y: fix massign order.  This change</div><div class='add'>+	  causes performance problem.  Try vm1_swap benchmark.</div><div class='add'>+	  [ruby-dev:31522]</div><div class='add'>+</div><div class='add'>+	* insns.def, insnhelper.ci: move process body of expandarray insn to</div><div class='add'>+	  vm_expandarray().</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb, bootstraptest/test_massign.rb:</div><div class='add'>+	  move a solved test.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 15:51:19 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_norm_arg): ripper has no shadowing check.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_block_arg): dispatch blkarg_mark.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 15:48:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (make_masgn_lhs, iseq_compile_each): fixed indent.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_translate_threaded_code),</div><div class='add'>+	  vm_evalbody.ci (get_insns_address_table),</div><div class='add'>+	  template/vmtc.inc.tmpl (insns_address_table): constified.</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.ci (vm_eval),</div><div class='add'>+	  template/insns_info.inc.tmpl (insn_stack_increase, insn_ret_num):</div><div class='add'>+	  suppress warnings.</div><div class='add'>+</div><div class='add'>+Thu Aug 23 13:19:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_norm_arg): check also nested arguments.  [ruby-dev:31502]</div><div class='add'>+</div><div class='add'>+Thu Aug 23 00:06:48 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c: updated for ANSI C only.  applied a patch from</div><div class='add'>+	  &lt;snakagawa AT infoteria.co.jp&gt;.  [ruby-dev:31591]</div><div class='add'>+</div><div class='add'>+Thu Aug 23 00:04:45 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/strtod.c: removed.  [ruby-dev:31588]</div><div class='add'>+</div><div class='add'>+	* LEGAL: updated.</div><div class='add'>+</div><div class='add'>+Wed Aug 22 15:59:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb:</div><div class='add'>+	  fix typo of filename (test_knownbug.rb).</div><div class='add'>+</div><div class='add'>+Wed Aug 22 14:04:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_knownbug.rb: added.  This file will contain</div><div class='add'>+	  test cases which point out known bug.  If bug is fixed, tests</div><div class='add'>+	  should move to the suitable place.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_massign.rb: move a test which show known bug</div><div class='add'>+	  to test_knownbug.rb.</div><div class='add'>+</div><div class='add'>+Wed Aug 22 13:02:26 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (in_temporary_working_directory):</div><div class='add'>+	  don't remove the directory specified by --dir.</div><div class='add'>+</div><div class='add'>+Wed Aug 22 05:51:23 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): replaced by the implementation by David</div><div class='add'>+	  M. Gay inspired by William D. Clinger's paper "How to Read Floating</div><div class='add'>+	  Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].</div><div class='add'>+	  a patch from Satoshi Nakagawa &lt;snakagawa AT infoteria.co.jp&gt;.</div><div class='add'>+	  [ruby-dev:31582]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb (TestFloat::test_float): add test for</div><div class='add'>+	  precision.</div><div class='add'>+</div><div class='add'>+Wed Aug 22 03:51:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: add Fiber#resume and Fiber.yield.</div><div class='add'>+	  and Fiber::Core class to realize Coroutine.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: declare rb_fiber_yield(), rb_fiber_resume().</div><div class='add'>+</div><div class='add'>+	* enumerator.c: use above api.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: fix and add tests for above changes.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 21:09:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (Dir.mktmpdir): make directory suffix specifiable.</div><div class='add'>+	  suggested by knu.  [ruby-dev:31568]</div><div class='add'>+</div><div class='add'>+Tue Aug 21 15:00:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_clear): reset num_entries too.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 13:57:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (st_foreach_func, rb_foreach_func): typedefed.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_clear): use st_clear() unless iterating.</div><div class='add'>+</div><div class='add'>+	* st.c (struct st_table_entry): add new members, fore and back, to</div><div class='add'>+	  iterate in inserted order.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h (struct st_table): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 04:09:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm2_case.rb: add a new benchmark.</div><div class='add'>+	  YARV optimize case/when syntax.  If every conditions</div><div class='add'>+	  are literal (such as Symbol, Fixnum, String), dispatch</div><div class='add'>+	  calc order will be O(1).</div><div class='add'>+</div><div class='add'>+Tue Aug 21 04:08:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb: fix last commit.</div><div class='add'>+</div><div class='add'>+Tue Aug 21 03:59:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test_enumerator.rb (enum_test): fix to return sorted</div><div class='add'>+	  array (for Hash test).</div><div class='add'>+</div><div class='add'>+Tue Aug 21 03:55:20 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (next_i): fix to return with Fiber#yield at</div><div class='add'>+	  the end of each block.  [ruby-dev:31470]</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next_p): call init_next if not</div><div class='add'>+	  initialized.  [ruby-dev:31514]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_enumerator.rb: add tests for Enumerator.</div><div class='add'>+</div><div class='add'>+Mon Aug 20 23:28:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): remove Symbol.intern and Symbol#dump.</div><div class='add'>+	  [ruby-dev:31525]</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_foreach): return Enumerator if no block given.</div><div class='add'>+	  [ruby-dev:31525]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_foreach): argument count check before making</div><div class='add'>+	  Enumerator.  [ruby-dev:31525]</div><div class='add'>+</div><div class='add'>+Mon Aug 20 23:17:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_core.h (struct rb_thread_struct): removed first_func_arg and</div><div class='add'>+	  reuse first_args instead.</div><div class='add'>+</div><div class='add'>+Sun Aug 19 13:31:40 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: use VALGRIND_MAKE_MEM_UNDEFINED to detect use of collected</div><div class='add'>+	  objects if valgrind is available.  It cannot detect first 2 words</div><div class='add'>+	  because they are used as the free list.</div><div class='add'>+</div><div class='add'>+Sun Aug 19 13:13:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each/NODE_RESBODY): fix to add</div><div class='add'>+	  additional nop to prevent tailcall optimization.</div><div class='add'>+</div><div class='add'>+	* vm_opts.h: clean up comments.</div><div class='add'>+</div><div class='add'>+Sun Aug 19 12:58:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_bmethod): fix to propagate information</div><div class='add'>+	  that this proc is "from Method".  [ruby-dev:31490]</div><div class='add'>+</div><div class='add'>+	* proc.c (method_proc, rb_mod_define_method): ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_invoke_proc_core): removed.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+Sun Aug 19 12:36:11 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/sentence.rb: new method Sentence().</div><div class='add'>+</div><div class='add'>+Sun Aug 19 12:32:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_callee_setup_arg): fix to mark enough VM stack.</div><div class='add'>+	  [ruby-dev:31492]</div><div class='add'>+</div><div class='add'>+Sat Aug 18 19:02:34 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb (TestYieldGen): relax array size check</div><div class='add'>+	  in nested parameters.</div><div class='add'>+	  [ruby-dev:31485]</div><div class='add'>+</div><div class='add'>+Sat Aug 18 17:44:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (Init_tcltklib): use rb_set_end_proc().</div><div class='add'>+</div><div class='add'>+Sat Aug 18 17:40:11 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (is_ruby_native_thread): check properly.  [ruby-dev:31166]</div><div class='add'>+</div><div class='add'>+Sat Aug 18 16:44:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_call_bmethod),</div><div class='add'>+	  vm.c (vm_invoke_proc_core): fix to do not restore</div><div class='add'>+	  $SAFE when proc invoked by bmethod.</div><div class='add'>+</div><div class='add'>+	* vm_core.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 16:44:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.ci (ruby_error_print): call error_print.</div><div class='add'>+</div><div class='add'>+	* eval_jump.ci, process.c (rb_exit, rb_f_exit, rb_f_abort): moved.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 15:59:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (detach_process_watcher): should not pass the pointer</div><div class='add'>+	  to an auto variable to the thread to be created.  pointed and</div><div class='add'>+	  fix by KUBO Takehiro &lt;kubo at jiubao.org&gt;  [ruby-dev:30618]</div><div class='add'>+</div><div class='add'>+Sat Aug 18 15:52:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_send_optimize): use MEMMOVE to shift values inside</div><div class='add'>+	  an array.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 15:45:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_yield_setup_args): rsize and psize should not be</div><div class='add'>+	  negative.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 14:35:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_callee_setup_arg, vm_send_optimize,</div><div class='add'>+	  vm_yield_setup_args): bulk copy for arguments.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 13:55:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix to allow self.x=</div><div class='add'>+	  if x= is private.</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'>+Sat Aug 18 14:05:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_compile_gen): obtain error info from errinfo.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_error_desc): make RegexpError for initialization error.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_compile): return nil and set errinfo if error.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 13:23:01 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: $! should not be writable.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rubylevel_errinfo): added.  rb_errinfo() returns</div><div class='add'>+	  rb_thread_t#errinfo.  rb_rubylevel_errinfo() returns $! value.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 13:14:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_callee_setup_arg): fix to check arguments</div><div class='add'>+	  correctly. [ruby-dev:31472]</div><div class='add'>+</div><div class='add'>+Sat Aug 18 13:13:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_exception.rb: add escape character ("\") for</div><div class='add'>+	  editors.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 12:42:50 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb (TestYieldGen): add test for yielding to</div><div class='add'>+	  lambda using lambda parameter passing emulator.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 12:24:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb, test/ruby/test_system.rb(valid_syntax?): keep</div><div class='add'>+	  comment lines first.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 11:44:59 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_arguments), insnhelper.ci</div><div class='add'>+	  (vm_callee_setup_arg, vm_yield_setup_args):</div><div class='add'>+	  fix to cause raise on "lambda{|a|}.call(1, 2)".</div><div class='add'>+	  [ruby-dev:31464]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Sat Aug 18 01:12:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_func_id): return proper method ID.</div><div class='add'>+</div><div class='add'>+Fri Aug 17 22:43:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): massign should return rvalue(s).</div><div class='add'>+</div><div class='add'>+Fri Aug 17 22:10:19 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_basicinstructions.rb: fix old tests.</div><div class='add'>+	  class variables should be inherited.</div><div class='add'>+</div><div class='add'>+Fri Aug 17 21:20:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call), eval_method.ci (rb_add_method, rb_alias),</div><div class='add'>+	  insnhelper.ci (vm_call_method): fix to save safelevel for</div><div class='add'>+	  method node.</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h: ditto.</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'>+Fri Aug 17 16:02:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_terminate_all): fix to ignore</div><div class='add'>+	  exceptions.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): fix</div><div class='add'>+	  abort_on_exception process.  [ruby-dev:31394]</div><div class='add'>+</div><div class='add'>+Fri Aug 17 14:38:36 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (in_temporary_working_directory): use</div><div class='add'>+	  Dir.mktmpdir to create and remove temporary directory.</div><div class='add'>+	  (Dir.mktmpdir): define if not available.</div><div class='add'>+	  [ruby-dev:31431]</div><div class='add'>+</div><div class='add'>+Fri Aug 17 03:07:37 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix throw insn option of next.</div><div class='add'>+</div><div class='add'>+Fri Aug 17 01:25:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_arguments), insnhelper.ci</div><div class='add'>+	  (vm_callee_setup_arg, vm_yield_setup_args): fix</div><div class='add'>+	  block parameter problems. [ruby-dev:31437], [ruby-dev:31440]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: add a test of [ruby-dev:31440].</div><div class='add'>+</div><div class='add'>+Fri Aug 17 01:24:12 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_iseq_disasm): fix to show arg_simple value.</div><div class='add'>+</div><div class='add'>+Fri Aug 17 01:21:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (throw): insert a RUBY_VM_CHECK_INTS(). [ruby-dev:31361]</div><div class='add'>+</div><div class='add'>+Thu Aug 16 20:40:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigtrunc): RBIGNUM(x)-&gt;len may be zero.  out of bound</div><div class='add'>+	  access.  [ruby-dev:31404]</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): small float should not call</div><div class='add'>+	  rb_dbl2big().</div><div class='add'>+</div><div class='add'>+Thu Aug 16 22:10:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix next/redo stack consistency.</div><div class='add'>+	  [ruby-dev:31373]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: fix to use __FILE__ instead of $0 to know basedir.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 21:14:06 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BASERUBY): need AC_SUBST.  [ruby-dev:31438]</div><div class='add'>+</div><div class='add'>+Thu Aug 16 19:18:26 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/sentence.rb: Sentence class implemented</div><div class='add'>+	  based on sentgen.rb</div><div class='add'>+</div><div class='add'>+	* test/ruby/sentgen.rb: removed.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: use sentence.rb.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb: block parameter passing emulator</div><div class='add'>+	  implemented.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 16:48:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (BASERUBY): check if base ruby is runnable first.</div><div class='add'>+	  [ruby-core:11900]</div><div class='add'>+</div><div class='add'>+Thu Aug 16 16:46:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): enable shared by default.</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): for 64bit-mode AIX.  [ruby-dev:31401]</div><div class='add'>+	  + use CC for LDSHARED if non-gcc,</div><div class='add'>+	  + moved -G option from *LDFLAGS to LDSHARED,</div><div class='add'>+	  + set -brtl only in XLDFLAGS.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 13:06:08 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big_lshift): make shift offset long type.</div><div class='add'>+	  (big_rshift): ditto.</div><div class='add'>+	  (rb_big_lshift): ditto.</div><div class='add'>+	  (big_rshift): ditto.</div><div class='add'>+	  [ruby-dev:31434]</div><div class='add'>+</div><div class='add'>+Thu Aug 16 06:29:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_readpartial): argf_forward needs argc and argv.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 02:47:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_m_yield): added.  use this function</div><div class='add'>+	  for Fiber#yield instead of rb_fiber_yield.</div><div class='add'>+</div><div class='add'>+Thu Aug 16 00:36:52 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb (Dir.mktmpdir): new method.  [ruby-dev:31416]</div><div class='add'>+</div><div class='add'>+Wed Aug 15 18:57:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (os_live_obj): fix to skip T_VALUES.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: add an ObjectSpace test.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 16:49:04 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): change initializing order.</div><div class='add'>+	  [ruby-dev:31420]</div><div class='add'>+</div><div class='add'>+Wed Aug 15 16:44:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (ARGF_FORWARD): wrongly compares with current_file with</div><div class='add'>+	  rb_stdout.  should be rb_stdin.  [ruby-cvs:20177]</div><div class='add'>+</div><div class='add'>+Wed Aug 15 14:59:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize, argf_each_line, argf_each_byte): suppress</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 14:22:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove "//" type comment.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 13:42:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fix rules around f_margs.  "make test" passes all tests.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: add some tests for above.</div><div class='add'>+</div><div class='add'>+Wed Aug 15 13:50:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_delete_key): delete the entry without calling block.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_shift): should consider iter_lev too.</div><div class='add'>+</div><div class='add'>+	* hash.c (delete_if_i): use rb_hash_delete_key() so that the block</div><div class='add'>+	  isn't called twice.  [ruby-core:11556]</div><div class='add'>+</div><div class='add'>+Wed Aug 15 13:39:25 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_geteuid): fix strange conversion.  [ruby-dev:31417]</div><div class='add'>+</div><div class='add'>+Wed Aug 15 01:05:55 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_check): don't call newtest.</div><div class='add'>+	  (assert_equal): call newtest.</div><div class='add'>+	  (assert_match): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 14 21:43:39 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_check): new method.</div><div class='add'>+	  (assert_match): new method.</div><div class='add'>+	  (assert_equal): use assert_check.</div><div class='add'>+	  (pretty): give failure description as an argument.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_exception.rb: use assert_match to describe the</div><div class='add'>+	  test for [ruby-dev:31407].  [ruby-dev:31412]</div><div class='add'>+</div><div class='add'>+Tue Aug 14 19:53:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (Init_Proc), eval.c (Init_eval), eval_intern.h: move</div><div class='add'>+	  init place of exception_error.</div><div class='add'>+</div><div class='add'>+	* inits.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): set exception_error#throwed_state as TAG_FATAL.</div><div class='add'>+	  [ruby-dev:31407]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_exception.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Tue Aug 14 19:51:20 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: change test order (test -&gt; btest).</div><div class='add'>+</div><div class='add'>+Tue Aug 14 00:04:27 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: 0.1.8 -&gt; 0.1.9.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_version.rb: followed the above change.</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb: fixed a bug that handles unintended elements.</div><div class='add'>+	  Thanks to Takuo Yonezawa. [ruby-list:43841]</div><div class='add'>+</div><div class='add'>+Mon Aug 13 17:23:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_clear_trace_func, rb_thread_stop_timer_thread):</div><div class='add'>+	  declarations for forward references.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp, eval): use local variable.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): string object not to be optimized.</div><div class='add'>+</div><div class='add'>+Mon Aug 13 13:21:58 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: make ftp passive mode to avoid NAT problem.</div><div class='add'>+	  [ruby-dev:31377]</div><div class='add'>+</div><div class='add'>+Mon Aug 13 09:18:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getc): should returns</div><div class='add'>+	  one-character string.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: remove unnecessary prototypes.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getbyte): new method.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_readbyte): new method.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_ungetc): should take a string as</div><div class='add'>+	  an input.</div><div class='add'>+</div><div class='add'>+Mon Aug 13 08:19:43 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_close): always close via method.</div><div class='add'>+</div><div class='add'>+	* io.c (Init_IO): remove obsolete Kernel#getc.</div><div class='add'>+</div><div class='add'>+Mon Aug 13 05:03:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_raise): check if target thread is</div><div class='add'>+	  thrown by another thread or not.  [ruby-dev:31371]</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'>+Mon Aug 13 04:35:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_peephole_optimize): fix peephole optimization</div><div class='add'>+	  bug. [ruby-dev:31360]</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'>+Mon Aug 13 04:02:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (debug_print_pre): fix to show control frame count.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_call_c_function): fix operand type.</div><div class='add'>+</div><div class='add'>+	* lib/vm/instruction.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_push_frame, vm_pop_frame): fix to show</div><div class='add'>+	  control stack status on if VMDEBUG == 2.</div><div class='add'>+</div><div class='add'>+	* vm.h: add a comment about VMDEBUG.</div><div class='add'>+</div><div class='add'>+	* iseq.c (find_prev_line_no): fix to skip bug report if</div><div class='add'>+	  line is not found.</div><div class='add'>+</div><div class='add'>+	* lib/vm/instruction.rb: fix to use build_string() on</div><div class='add'>+	  source code generators.</div><div class='add'>+</div><div class='add'>+Mon Aug 13 03:57:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* template/yasmdata.rb.tmpl: fix type and name.</div><div class='add'>+</div><div class='add'>+Sat Aug 11 23:27:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_line): should use #each_line, not #each.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_line): simplified.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_getline): should handle non T_FILE object in ARGV.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_byte): each_byte should yield bytes not</div><div class='add'>+	  one-character strings.  [ruby-dev:31374]</div><div class='add'>+</div><div class='add'>+Sat Aug 11 07:24:55 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: reverted some wrongly erased "o" options</div><div class='add'>+	  (pointed out by nobu).</div><div class='add'>+</div><div class='add'>+Sat Aug 11 00:01:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): not re-raise to main thread if it is</div><div class='add'>+	  joining the current thread.</div><div class='add'>+</div><div class='add'>+Fri Aug 10 23:54:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): inherit the priority of creating</div><div class='add'>+	  thread.  submitted at [ruby-core:11873] by David Flanagan &lt;david AT</div><div class='add'>+	  davidflanagan.com&gt;.  [ruby-core:11876]</div><div class='add'>+</div><div class='add'>+Fri Aug 10 05:12:19 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): let abort_on_exception work.</div><div class='add'>+	  [ruby-core:11873]</div><div class='add'>+</div><div class='add'>+Fri Aug 10 04:47:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (internal_id_gen): internal ID must be bigger than</div><div class='add'>+	  tLAST_TOKEN.</div><div class='add'>+</div><div class='add'>+Thu Aug  9 16:04:55 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): check if rhs has value before assignment instead</div><div class='add'>+	  inside node_assign_gen().  [ruby-dev:31293]</div><div class='add'>+</div><div class='add'>+	* parse.y (call_bin_op_gen, call_uni_op_gen): split call_op_gen.</div><div class='add'>+</div><div class='add'>+Thu Aug  9 14:01:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_marg_list): renamed from f_marg_head.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_margs): allow multiple mandatory arguments after a splat.</div><div class='add'>+	  [ruby-dev:31153]</div><div class='add'>+</div><div class='add'>+Thu Aug  9 02:02:02 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_cycle): typo fixed.  a patch from Kazuhiro</div><div class='add'>+	  NISHIYAMA &lt;zn AT mbf.nifty.com&gt;.  [ruby-dev:31362]</div><div class='add'>+</div><div class='add'>+Wed Aug  8 19:17:40 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_to_ptr): no longer check</div><div class='add'>+	  HAVE_RB_IO_STDIO_FILE.</div><div class='add'>+</div><div class='add'>+Wed Aug  8 15:52:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next_p): should check correctly even when</div><div class='add'>+	  e.next has not been called before.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next): raise StopIteration (name taken</div><div class='add'>+	  from Python) instead of IndexError.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): catch StopIteration exception.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_index): return Enumerator if no</div><div class='add'>+	  block is given.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::test_enumerator): add</div><div class='add'>+	  test for enumerators.</div><div class='add'>+</div><div class='add'>+Wed Aug  8 11:48:37 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): should not use RTEST for non-VALUE.</div><div class='add'>+</div><div class='add'>+Wed Aug  8 11:25:25 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): should preserve sign mark.</div><div class='add'>+</div><div class='add'>+Wed Aug  8 11:02:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (btest-miniruby, test-sample): split the test target</div><div class='add'>+	  so that -k option works.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 14:58:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (establishShell): handshaking before close slave</div><div class='add'>+	  device.  [ruby-talk:263410]</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): constified.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (SlaveName): removed static buffer.</div><div class='add'>+</div><div class='add'>+	* ext/pty/expect_sample.rb: support for autologin.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 13:58:03 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (ruby_special_consts): added RUBY_SPECIAL_SHIFT.</div><div class='add'>+</div><div class='add'>+	* .gdbinit: some improvements.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 13:28:32 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (node_name.inc): use $? instead of $&lt; for nmake.</div><div class='add'>+	  [ruby-dev:31356]</div><div class='add'>+</div><div class='add'>+Tue Aug  7 12:45:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_isinf): set yes also on OpenSolaris.</div><div class='add'>+	  [ruby-Bugs-12859]</div><div class='add'>+</div><div class='add'>+Tue Aug  7 12:31:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): fix for win32 platforms.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 02:58:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): make Bignum#to_s even faster.  a patch</div><div class='add'>+	  from Kenta Murata &lt;muraken AT gmail.com&gt;.  [ruby-dev:31354]</div><div class='add'>+</div><div class='add'>+Tue Aug  7 01:42:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): zip no longer converts arguments into</div><div class='add'>+	  arrays, uses enumerators.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 01:27:47 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_yield): change argument ordering.  export.</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_current): export</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: export several functions from cont.c.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next): new method to implement external</div><div class='add'>+	  iterator (generator) using fiber.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_next_p): new method to check whether</div><div class='add'>+	  any element is left in the generator sequence.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_rewind): a new method to rewind the</div><div class='add'>+	  generator sequence.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 01:15:24 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_cycle): new method to cycle enumerable forever.</div><div class='add'>+</div><div class='add'>+Tue Aug  7 00:05:38 2007  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* irb/ruby-lex.rb: support for '\c'. [ruby-talk:263508]</div><div class='add'>+</div><div class='add'>+Mon Aug  6 20:29:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci, insns.def: move some statements to functions.</div><div class='add'>+</div><div class='add'>+	* vm.c, vm.h, vm_evalbody.ci: fix include/typedef places.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 18:41:12 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/vm/instruction.rb (make_header_analysys): fix last commit.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 18:33:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/vm/instruction.rb (make_header_analysys): add to separate</div><div class='add'>+	  header addition process.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 17:36:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/{ISO-8859-15,CP-1252}.rb: fixed invalid syntax.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 16:57:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: fix to output file name if it contains</div><div class='add'>+	  invalid syntax.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 16:41:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr_gen): fix to cause "void value expression"</div><div class='add'>+	  when jump expression such as "next" are shown on value_expr().</div><div class='add'>+	  [ruby-dev:31119]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_syntax.rb: fix to above change.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 14:36:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fix a f_marg rule. [ruby-dev:31160]</div><div class='add'>+</div><div class='add'>+Mon Aug  6 14:29:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (assert_equal): add additional</div><div class='add'>+	  message parameter.</div><div class='add'>+</div><div class='add'>+Mon Aug  6 13:34:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (INSNS): not chdir to srcdir.</div><div class='add'>+</div><div class='add'>+	* common.mk (node_name.inc): auto-generate node name list.</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_node_name): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_s_compile_option_get, Init_ISeq): added a new</div><div class='add'>+	  method VM::InstructionSequence::compile_option.</div><div class='add'>+</div><div class='add'>+	* lib/vm/instruction.rb (RubyVM::SourceCodeGenerator): --destdir</div><div class='add'>+	  option.</div><div class='add'>+</div><div class='add'>+	* tool/node_name.rb: to auto-generate node name list.</div><div class='add'>+</div><div class='add'>+Sun Aug  5 11:51:39 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss, sample/rss, test/rss:</div><div class='add'>+	- 0.1.7 -&gt; 0.1.8.</div><div class='add'>+	- supported &lt;itunes:XXX&gt;.</div><div class='add'>+	- reverted backward incompatibility API changes introduced 0.1.7.</div><div class='add'>+</div><div class='add'>+Sun Aug  5 04:56:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open_v, pipe_open_s): separate array and string</div><div class='add'>+	  cases.  [ruby-dev:31344]</div><div class='add'>+</div><div class='add'>+Fri Aug  3 11:05:54 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): save all CONFIG values.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): remove mkmf.log at clean, and extconf.h at</div><div class='add'>+	  distclean, respectively.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: remove rdoc at clean, and installed list file at</div><div class='add'>+	  distclean, respectively.</div><div class='add'>+</div><div class='add'>+Fri Aug  3 07:09:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: more verbose message.  [ruby-Bugs-12766]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_type): suppress a warning with -Wall.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_type): new method.</div><div class='add'>+</div><div class='add'>+Fri Aug  3 00:00:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (big2str_table): base cannot be 0 or 1.</div><div class='add'>+</div><div class='add'>+Thu Aug  2 23:42:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reg_compile_gen): set error if failed to compile regexp</div><div class='add'>+	  literal.  [ruby-dev:31336]</div><div class='add'>+</div><div class='add'>+	* re.c (option_to_str, arg_kcode, opt_kcode): options conversion</div><div class='add'>+	  between int and string.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_compile): should not use regexp which could not get</div><div class='add'>+	  initialized.  [ruby-dev:31333]</div><div class='add'>+	  return error message to let the parser know it.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_compile): append regexp options to error message.</div><div class='add'>+	  [ruby-dev:31334]</div><div class='add'>+</div><div class='add'>+Thu Aug  2 22:05:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): faster Bignum#to_s using Karatsuba</div><div class='add'>+	  algorithm.  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;</div><div class='add'>+	  in [ruby-dev:31312], slightly modified by Kenta Murata</div><div class='add'>+	  &lt;muraken AT gmail.com&gt; in [ruby-dev:31339].</div><div class='add'>+</div><div class='add'>+Thu Aug  2 13:46:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): should not check positional number as</div><div class='add'>+	  width.  [ruby-core:11838]</div><div class='add'>+</div><div class='add'>+Wed Aug  1 12:40:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* generic.rb (URI::Generic::merge_path): behave as RFC 3986.</div><div class='add'>+	  [ruby-talk:252052]</div><div class='add'>+</div><div class='add'>+Tue Jul 31 23:38:09 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_parse): now interprets slashed numerical</div><div class='add'>+	  dates as a big endian (except dd/mm/yyyy). [experimental]</div><div class='add'>+</div><div class='add'>+Mon Jul 30 11:16:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_aref): check for Bignum index range.</div><div class='add'>+	  [ruby-dev:31271]</div><div class='add'>+</div><div class='add'>+Sat Jul 28 09:35:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest::self.const_missing): avoid</div><div class='add'>+	  infinite recursive const_missing call.  [ruby-talk:262193]</div><div class='add'>+</div><div class='add'>+Thu Jul 26 20:40:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_eqq): call_super() in === does not work well</div><div class='add'>+	  since Enumerable#=== has different behavior.  [ruby-dev:31296]</div><div class='add'>+</div><div class='add'>+Thu Jul 26 13:57:45 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (load_1, dln_find_1): constified.</div><div class='add'>+</div><div class='add'>+	* dln.c (conv_to_posix_path): removed.</div><div class='add'>+</div><div class='add'>+	* ruby.c (usage): constified.</div><div class='add'>+</div><div class='add'>+	* ruby.c (rubylib_mangled_path, rubylib_mangled_path2): return</div><div class='add'>+	  VALUE instead of a pointer to static buffer.</div><div class='add'>+</div><div class='add'>+	* ruby.c (push_include_cygwin): fixed buffer overflow.</div><div class='add'>+	  [ruby-dev:31297]</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath): not convert built-in paths.</div><div class='add'>+</div><div class='add'>+Tue Jul 24 10:37:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_p): return nil if no argument.  [ruby-dev:31285]</div><div class='add'>+</div><div class='add'>+Tue Jul 24 01:05:07 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (USE_MATCH_RANGE_IS_COMPLETE_RANGE): undef to achieve old</div><div class='add'>+	  rindex behavior.  [ruby-dev:31265]</div><div class='add'>+</div><div class='add'>+Mon Jul 23 18:37:14 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/oniguruma.h: upgrade to Oniguruma 5.9.0.  fixes</div><div class='add'>+	  some memory violation.  [ruby-dev:31070]</div><div class='add'>+</div><div class='add'>+Sun Jul 22 20:09:49 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date._parse): now accepts some new</div><div class='add'>+	  hints. [experimental]</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb: followed the changes on</div><div class='add'>+	  lib/date/format.rb. [experimental]</div><div class='add'>+</div><div class='add'>+Sun Jul 22 16:06:56 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (is_ruby_native_thread): made an int function as</div><div class='add'>+	  well as version 1.8.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (is_ruby_native_thread): moved prototype</div><div class='add'>+	  from intern.h as well as version 1.8.</div><div class='add'>+</div><div class='add'>+Sun Jul 22 14:33:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_rename): deleted code to get rid of a bug of</div><div class='add'>+	  old Cygwin.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_truncate): added prototype of GetLastError()</div><div class='add'>+	  on cygwin.  [ruby-dev:31239]</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h (is_ruby_native_thread): prototype.</div><div class='add'>+</div><div class='add'>+	* missing/strftime.c (strftime): fix printf format and actual</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_finalize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (lcid_installed): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getnameinfo.c: include stdio.h always.</div><div class='add'>+</div><div class='add'>+Sat Jul 21 21:39:12 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb (Date._parse): now can take some</div><div class='add'>+	  hints (its aim must be mainly determination of endianness of</div><div class='add'>+	  date). [experimental]</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb (Date._parse): now completes</div><div class='add'>+	  truncated year as default action. [experimental]</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: added ::iso8601, ::rfc3339,</div><div class='add'>+	  ::xmlschema, ::rfc2822, ::httpdate, ::jisx0301, #xmlschema,</div><div class='add'>+	  #httpdate. [experimental]</div><div class='add'>+</div><div class='add'>+Sat Jul 21 17:48:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: inverted rules order.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (w32_create_thread): bcc does not have</div><div class='add'>+	  _beginthreadex().</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): make OBJS depend on RUBY_EXTCONF_H</div><div class='add'>+	  only if extconf.h is created.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: headers have moved.</div><div class='add'>+</div><div class='add'>+	* bcc32/{Makefile.sub,configure.bat,setup.mak: configure_args</div><div class='add'>+	  support.</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak: check runtime version.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open_osfhandle): prototype has changed</div><div class='add'>+	  in bcc 5.82.</div><div class='add'>+</div><div class='add'>+	* {win32,wince,bcc32}/setup.mak (-version-): no RUBY_EXTERN magic.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: include patchlevel number.</div><div class='add'>+</div><div class='add'>+Sat Jul 21 12:06:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): should remove mkmf.log too.</div><div class='add'>+</div><div class='add'>+Sat Jul 21 01:45:03 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date._parse): completes calendar week based year.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date._parse): detects year of ordinal date in</div><div class='add'>+	  extended format.</div><div class='add'>+</div><div class='add'>+Fri Jul 20 16:30:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_set_sequence): raise SyntaxError instead of rb_bug</div><div class='add'>+	  since this function can be called from VM::InstructionSequence.load.</div><div class='add'>+</div><div class='add'>+	* compile.c (insn_set_sc_state, iseq_set_sequence_stackcaching): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 20 16:11:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h (DECL_ANCHOR, INIT_ANCHOR): split not to</div><div class='add'>+	  initialize aggregations with dynamic values.  [ruby-talk:259306]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_protect): not to initialize aggregations with dynamic</div><div class='add'>+	  values.  [ruby-talk:259306]</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_current_machine_context): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (thgroup_list, call_trace_func): ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_init_redefined_flag): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 20 15:22:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (ossl_config_set_section): do not</div><div class='add'>+	  initialize aggregations with dynamic values.  [ruby-talk:259306]</div><div class='add'>+</div><div class='add'>+Fri Jul 20 10:39:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, mlhs_node, lhs, arg, var_ref): return dummy</div><div class='add'>+	  NODE_BEGIN after errors.  [ruby-dev:31100], [ruby-dev:31118]</div><div class='add'>+</div><div class='add'>+	* parse.y (remove_begin): keep empty NODE_BEGIN, instead of null.</div><div class='add'>+	  [ruby-dev:31252], [ruby-dev:31263]</div><div class='add'>+</div><div class='add'>+Fri Jul 20 09:50:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (get_result_string): check $?.coredump?</div><div class='add'>+	  first.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb (cleanup_coredump, check_coredump): see</div><div class='add'>+	  stackdump file too.</div><div class='add'>+</div><div class='add'>+Thu Jul 19 20:39:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (value_expr_gen): warn for empty expression ().</div><div class='add'>+	  [ruby-dev:31252]</div><div class='add'>+</div><div class='add'>+Thu Jul 19 19:24:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.ci (get_backtrace): check the result more.</div><div class='add'>+	  [ruby-dev:31261] [ruby-bugs-12398]</div><div class='add'>+</div><div class='add'>+Thu Jul 19 14:38:45 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_lshift, rb_big_rshift): separated functions</div><div class='add'>+	  to get rid of infinite recursion.  fixed calculation in edge</div><div class='add'>+	  cases.  [ruby-dev:31244]</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_fix_lshift, rb_fix_rshift): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul 18 16:57:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): refine overflow check.  [ruby-dev:31242]</div><div class='add'>+</div><div class='add'>+Wed Jul 18 09:19:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_append_print, rb_parser_while_loop): moved check</div><div class='add'>+	  for node to the head.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): do nothing for -p/-n options if tree is null.</div><div class='add'>+	  submitted by Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; at [ruby-dev:31243].</div><div class='add'>+</div><div class='add'>+Wed Jul 18 08:47:09 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_succ): Time#succ should return a time object in the</div><div class='add'>+	  same timezone mode to the original.  [ruby-talk:260256]</div><div class='add'>+</div><div class='add'>+Mon Jul 16 23:07:51 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb (Base64::b64encode): should not specify /o option</div><div class='add'>+	  for regular expression.  [ruby-dev:31221]</div><div class='add'>+</div><div class='add'>+Mon Jul 16 22:57:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): make %u behave like %d for negative</div><div class='add'>+	  values, since decimal format does not work with preceding dots.</div><div class='add'>+	  [ruby-core:11575]</div><div class='add'>+</div><div class='add'>+Mon Jul 16 18:29:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rindex_m): accept string-like object convertible</div><div class='add'>+	  with #to_str method, as well as rb_str_index_m.  [ruby-core:11692]</div><div class='add'>+</div><div class='add'>+Mon Jul 16 07:17:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (getspecial): lfp_svar_get() requires int for special</div><div class='add'>+	  global variables.</div><div class='add'>+</div><div class='add'>+Mon Jul 16 05:45:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): more checks for format argument.</div><div class='add'>+	  [ruby-core:11569], [ruby-core:11570], [ruby-core:11571],</div><div class='add'>+	  [ruby-core:11573]</div><div class='add'>+</div><div class='add'>+Mon Jul 16 00:26:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): removed invariant variable.  [ruby-dev:31236]</div><div class='add'>+</div><div class='add'>+Sun Jul 15 22:24:37 2007  pegacorn  &lt;subscriber.jp AT gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cfunc.c (rb_dlcfunc_call): adjust format.  [ruby-dev:31222]</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_update,</div><div class='add'>+	  rb_digest_instance_finish, rb_digest_instance_reset,</div><div class='add'>+	  rb_digest_instance_block_length): %s in rb_raise() expects char*.</div><div class='add'>+	  [ruby-dev:31222]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: include ossl_pkcs5.h.  [ruby-dev:31231]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs5.h: new file for PKCS5.  [ruby-dev:31231]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): use ossl_raise()</div><div class='add'>+	  instead of rb_raise().  [ruby-dev:31222]</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/_sdbm.c: DOSISH platforms need io.h.  [ruby-dev:31232]</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: include stdlib.h for malloc() and free().</div><div class='add'>+	  [ruby-dev:31232]</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h (syck_parser_set_input_type): prototype added.</div><div class='add'>+	  [ruby-dev:31231]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: include mbstring.h for _mbspbrk().  [ruby-dev:31232]</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h (rb_w32_getcwd): prototype added.</div><div class='add'>+	  [ruby-dev:31232]</div><div class='add'>+</div><div class='add'>+Sun Jul 15 21:07:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigtrunc): do not empty Bignum.  [ruby-dev:31229]</div><div class='add'>+</div><div class='add'>+Sun Jul 15 19:05:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): check leading non-digits.</div><div class='add'>+	  [ruby-core:11691]</div><div class='add'>+</div><div class='add'>+Sun Jul 15 04:42:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (get2comp): do nothing for empty Bignum.  [ruby-dev:31225]</div><div class='add'>+</div><div class='add'>+Sat Jul 14 22:49:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): integer power calculation: 0**n =&gt; 0,</div><div class='add'>+	  1**n =&gt; 1, -1**n =&gt; 1 (n: even) / -1 (n: odd).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fixnum.rb (TestFixnum::test_pow): update test</div><div class='add'>+	  suite.  pow(-3, 2^64) gives NaN when pow(3, 2^64) gives Inf.</div><div class='add'>+</div><div class='add'>+Sat Jul 14 18:46:35 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add --with-valgrind.</div><div class='add'>+</div><div class='add'>+	* gc.h (SET_MACHINE_STACK_END): new macro to replace</div><div class='add'>+	  rb_gc_set_stack_end.  it find out accurate stack boundary by</div><div class='add'>+	  asm using gcc on x86.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_gc_set_stack_end): don't define if asm-version</div><div class='add'>+	  SET_MACHINE_STACK_END is available.</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_current_machine_context): extracted from garbage_collect.</div><div class='add'>+	  it use SET_MACHINE_STACK_END to not scan out of stack area.</div><div class='add'>+	  it notify conservative GC information to valgrind if</div><div class='add'>+	  --with-valgrind.</div><div class='add'>+</div><div class='add'>+Sat Jul 14 14:04:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_cmp): check if reentered.  [ruby-dev:24291]</div><div class='add'>+</div><div class='add'>+Sat Jul 14 11:08:28 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/generator/generator.c (check_max_nesting): wrong</div><div class='add'>+	  format specifier.  a patch from pegacorn &lt;subscriber.jp AT gmail.com&gt;.</div><div class='add'>+	  [ruby-dev:31217]</div><div class='add'>+</div><div class='add'>+Sat Jul 14 02:27:43 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): overflow detection using FIT_SQRT_LONG().</div><div class='add'>+	  [ruby-dev:31215]</div><div class='add'>+</div><div class='add'>+Sat Jul 14 02:05:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_div): LONG2FIX() may not work for corner cases,</div><div class='add'>+	  use LONG2NUM() instead.  [ruby-dev:31210]</div><div class='add'>+</div><div class='add'>+Sat Jul 14 00:34:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_round): should not return false, but self.</div><div class='add'>+	  [ruby-dev:31212]</div><div class='add'>+</div><div class='add'>+Fri Jul 13 18:31:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: remove unused function declarations.</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 17:32:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_free): clear free'ed living_threads field.</div><div class='add'>+	  [ruby-dev:31163]</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_succ): use cast to shut a warning up.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 16:10:00 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): use ENV.to_hash to access</div><div class='add'>+	  http_proxy environment variable to avoid case insensitive</div><div class='add'>+	  environment search.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 15:02:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): enclose command line except for</div><div class='add'>+	  command.com which can not handle quotes.  [ruby-talk:258939]</div><div class='add'>+</div><div class='add'>+Fri Jul 13 11:33:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_max, range_min): return nil for empty set as well as</div><div class='add'>+	  1.8 and Enumerable.  [ruby-dev:31198]</div><div class='add'>+</div><div class='add'>+Fri Jul 13 11:28:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (bvar): semicolon was lost for ripper description.</div><div class='add'>+	  [ruby-dev:31140]</div><div class='add'>+</div><div class='add'>+Fri Jul 13 11:25:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (program, stmt, primary): reduced duplicated code.</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): convert also literals containing NUL to</div><div class='add'>+	  symbol.</div><div class='add'>+</div><div class='add'>+	* parse.y (debug_lines): use rb_hash_lookup() to get rid of</div><div class='add'>+	  call of Hash#default.</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_warningS): unused in ripper right now.</div><div class='add'>+</div><div class='add'>+Fri Jul 13 10:33:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten_bang): check argument if valid</div><div class='add'>+	  integer.  [ruby-dev:31197]</div><div class='add'>+</div><div class='add'>+Fri Jul 13 10:10:46 2007  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): do not expand</div><div class='add'>+	  ::CONFIG which is an alias of MAKEFILE_CONFIG.</div><div class='add'>+</div><div class='add'>+Thu Jul 12 21:38:02 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_succ): use LONG_MAX as maximum Fixnum VALUE.</div><div class='add'>+	  [ruby-dev:31199]</div><div class='add'>+</div><div class='add'>+Thu Jul 12 18:42:18 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_max): use FIX2LONG instead of FIX2INT to avoid</div><div class='add'>+	  RangeError by ((-0x80000001)...(-0x80000001)).max on LP64.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_plus): use FIX2LONG instead of FIX2INT to avoid</div><div class='add'>+	  RangeError by 0x3fffffffffffffff+1 on LP64.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_succ): don't use 0x80000000 which assumes 32bit VALUE.</div><div class='add'>+	  use FIX2LONG instead of FIX2INT.</div><div class='add'>+	  [ruby-dev:31190]</div><div class='add'>+</div><div class='add'>+Thu Jul 12 17:03:15 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_init_copy): disallow changing the size.</div><div class='add'>+	  [ruby-dev:31168]</div><div class='add'>+</div><div class='add'>+Thu Jul 12 12:58:21 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c: remove "yarv" prefix.</div><div class='add'>+</div><div class='add'>+	* array.c, numeric.c: ditto.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci, insns.def, vm_evalbody.ci: ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: removed.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: renamed to core.h.</div><div class='add'>+</div><div class='add'>+	* cont.c, debug.c, error.c, process.c, signal.c : ditto.</div><div class='add'>+</div><div class='add'>+	* ext/probeprofiler/probeprofiler.c: ditto.</div><div class='add'>+</div><div class='add'>+	* id.c, id.h: added.</div><div class='add'>+</div><div class='add'>+	* inits.c: ditto.</div><div class='add'>+</div><div class='add'>+	* compile.c: rename internal functions.</div><div class='add'>+</div><div class='add'>+	* compile.h: fix debug flag.</div><div class='add'>+</div><div class='add'>+	* eval.c, object.c, vm.c: remove ruby_top_self.</div><div class='add'>+	  use rb_vm_top_self() instead.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, eval_load: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: rename yarv_machine_stack_mark() to</div><div class='add'>+	  rb_gc_mark_machine_stack().</div><div class='add'>+</div><div class='add'>+	* insnhelper.h: remove unused macros.</div><div class='add'>+</div><div class='add'>+	* iseq.c: add iseq_compile() to create iseq object</div><div class='add'>+	  from source string.</div><div class='add'>+</div><div class='add'>+	* proc.c: rename a internal function.</div><div class='add'>+</div><div class='add'>+	* template/insns.inc.tmpl: remove YARV prefix.</div><div class='add'>+</div><div class='add'>+	* thread.c: use rb_iseq_eval() and rb_str_new2().</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_iseq_eval): added.</div><div class='add'>+</div><div class='add'>+	* vm.c: move some functions from yarvcore.c.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: fix to remove compiler warning.</div><div class='add'>+</div><div class='add'>+Thu Jul 12 12:24:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_succ): fixed typo.  [ruby-dev:31189]</div><div class='add'>+</div><div class='add'>+Thu Jul 12 10:30:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): moved prototye from thread_*.ci.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (thread_start_func_2): not use a directive</div><div class='add'>+	  inside a macro argument.  [ruby-talk:258763]</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_join): pthread_t may not be pointer.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (ubf_select_each): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 12 05:32:28 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h (FIX2ULONG): drop sign bit for LLP64 platform.</div><div class='add'>+</div><div class='add'>+Tue Jul 10 19:34:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_lookup): added.  this function is similar to</div><div class='add'>+	  rb_hash_aref(), but doesn't call Hash#default when no entry</div><div class='add'>+	  exists.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (lfp_svar_get): use rb_hash_lookup().</div><div class='add'>+</div><div class='add'>+Tue Jul 10 19:16:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, insnhelper.ci, vm.c: change cref index (-1 -&gt; 2).</div><div class='add'>+</div><div class='add'>+Tue Jul 10 18:49:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): add proper casts.</div><div class='add'>+</div><div class='add'>+Tue Jul 10 16:58:16 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, insnhelper.ci: fix svar interface.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each), yarvcore.h: fix to use new</div><div class='add'>+	  svar interface for flip flop.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* include/ruby/intern.h: remove "rb_svar()" declaration.</div><div class='add'>+</div><div class='add'>+Tue Jul 10 16:52:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (rb_iseq_compile): formatted if/else to switch statement.</div><div class='add'>+</div><div class='add'>+Tue Jul 10 15:57:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_flip.rb: new test for flip-flop operator.</div><div class='add'>+</div><div class='add'>+Tue Jul 10 14:50:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/{Makefile.sub,setup.mak}: remove surplus slash from srcdir.</div><div class='add'>+</div><div class='add'>+Mon Jul  9 02:17:36 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_1): workaround for x64-mswin64's SEH.</div><div class='add'>+</div><div class='add'>+Sun Jul  8 02:08:53 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/json.rb, lib/json/, ext/json/: import JSON 1.1.1</div><div class='add'>+</div><div class='add'>+Sat Jul  7 21:59:29 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods#pp_hash): sort condition changed:</div><div class='add'>+	  all keys have a same class which is kind of Comparable.</div><div class='add'>+</div><div class='add'>+Sat Jul  7 17:12:37 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: use rb_bug() instead of rb_compile_error().</div><div class='add'>+</div><div class='add'>+Sat Jul  7 16:12:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fix node construction (around f_margs).</div><div class='add'>+	  [ruby-dev:31143]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci: fix indent.</div><div class='add'>+</div><div class='add'>+Sat Jul  7 15:36:50 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods#pp_hash): sort if</div><div class='add'>+	  all keys are strings, symbols or integers.</div><div class='add'>+</div><div class='add'>+Sat Jul  7 15:30:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_yield_setup_args), vm.c, insns.def:</div><div class='add'>+	  fix to pass nil as block parameter to yielded block.</div><div class='add'>+	  [ruby-dev:31147]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_block.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 19:55:10 2007  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb: typo. Thanks, Giles Bowkett.</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb: support Ruby1.9 changing return value</div><div class='add'>+	  String to Symbol for Object#methods, etc. [ruby-dev:31148].</div><div class='add'>+</div><div class='add'>+Fri Jul  6 18:20:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: fix load path.</div><div class='add'>+</div><div class='add'>+	* common.mk: fix "test" rule to run with "btest".</div><div class='add'>+</div><div class='add'>+	* rubytest.rb, sample/test.rb: fix to show tests progress.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 15:37:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: fix test to 1.9 spec.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 15:21:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_interrupt): suppress a gcc's officious warning.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 14:57:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (keyword_to_name): constified.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c (token_to_eventid): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 14:50:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: added --quiet option.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 14:35:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_marg): wrap f_norm_arg assignment node with NODE_LIST.</div><div class='add'>+	  [ruby-dev:31141]</div><div class='add'>+</div><div class='add'>+Fri Jul  6 12:15:01 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/sentgen.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: tests implemented using assignment</div><div class='add'>+	  generator and emulator.</div><div class='add'>+</div><div class='add'>+Fri Jul  6 03:06:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: remove unused code.</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_massign): fix to invoke to_splat on</div><div class='add'>+	  splat rhs (example: *a = *nil). [ruby-dev:31136]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_massign.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): disable excess optimization.</div><div class='add'>+	  [ruby-dev:31126]</div><div class='add'>+</div><div class='add'>+Fri Jul  6 02:08:25 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: fix to invoke nil.to_splat on NODE_ARGSCAT.</div><div class='add'>+	  [ruby-dev:31138].</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_literal.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 19:45:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: rename rb_control_frame_t#magic to flag.</div><div class='add'>+</div><div class='add'>+	* vm.h: add VM_FRAME_TYPE() and VM_FRAME_FLAG().</div><div class='add'>+</div><div class='add'>+	* cont.c, insnhelper.ci, insns.def, vm.c, vm_dump.c,</div><div class='add'>+	  vm_evalbody.ci, yarvcore.c: apply above changes.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 19:16:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_basicinstructions.rb: remove an assertion using</div><div class='add'>+	  unsupported hash literal (such as {1, 2}).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 19:12:22 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: Qfalse is VALUE, not pointer.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 18:42:01 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): add break catch point.</div><div class='add'>+</div><div class='add'>+	* insns.def (throw): support correct "break" and "return".</div><div class='add'>+	  this commit achieve that "make test" passes all tests.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 18:44:12 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_basic): use mlhs_post after tSTAR.</div><div class='add'>+	  [ruby-dev:31109]</div><div class='add'>+</div><div class='add'>+Thu Jul  5 18:27:58 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/{intern,ruby}.h, compile.[ch], error.c, eval.c,</div><div class='add'>+	  eval_load.c, gc.c, iseq.c, main.c, parse.y, re.c, ruby.c,</div><div class='add'>+	  yarvcore.[ch] (ruby_eval_tree, ruby_sourcefile, ruby_sourceline,</div><div class='add'>+	  ruby_nerrs): purge global variables.</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): moved do_print and do_loop options</div><div class='add'>+	  handling from ruby_process_options().</div><div class='add'>+</div><div class='add'>+Thu Jul  5 16:37:34 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): fix previous nubu's commit.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fixnum.rb: new test.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 15:56:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): even number multiplication never be negative.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 10:42:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/{node,ruby}.h, ruby.c: added enum constants for gdb</div><div class='add'>+	  support.  [ruby-dev:31066]</div><div class='add'>+</div><div class='add'>+	* .gdbinit: some improvements.</div><div class='add'>+</div><div class='add'>+Thu Jul  5 10:13:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (global_symbols.last_id): reduce unused ID numbers.</div><div class='add'>+</div><div class='add'>+	* include/ruby/st.h, st.c (st_init_table, st_init_table_with_size):</div><div class='add'>+	  constified.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 23:36:27 2007  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/authenticator.rb</div><div class='add'>+	  (WEBrick::HTTPAuth::Authenticator#check_scheme): auth-scheme must be</div><div class='add'>+	  treated as a case-insensitive token according to RFC 2617 section 1.2.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 18:30:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_inner): new rule.  [ruby-dev:31132]</div><div class='add'>+</div><div class='add'>+Wed Jul  4 05:11:57 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (set_relation): added.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 04:58:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (caller_setup_args): fix to show correct class</div><div class='add'>+	  on an error message (ex: m(&amp;1)). [ruby-dev:31101]</div><div class='add'>+</div><div class='add'>+Wed Jul  4 04:30:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_array, iseq_compile_each): fix about array</div><div class='add'>+	  generation in void context. [ruby-dev:31102]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_literal.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 04:07:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_array): ignore NODE_ZARRAY.</div><div class='add'>+	  [ruby-dev:31110]</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'>+Wed Jul  4 04:04:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.h: fix debug print level.</div><div class='add'>+</div><div class='add'>+Wed Jul  4 03:52:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): support v[&amp;b]= type method call.</div><div class='add'>+	  [ruby-dev:31094]</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'>+Wed Jul  4 03:43:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_massign): fix massign compilation</div><div class='add'>+	  (example: a, *v, (*x) = ...).  [ruby-dev:31107]</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_massign.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Tue Jul  3 23:12:29 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/onigiruma.h (ONIG_EXTERN): use RUBY_EXTERN if defined.</div><div class='add'>+</div><div class='add'>+	* regenc.h: include ruby/defines.h.</div><div class='add'>+</div><div class='add'>+	* regint.h: x64-mswin64 support.</div><div class='add'>+</div><div class='add'>+Tue Jul  3 13:47:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_save_machine_stack): clear saved_thread.machine_stack*.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 21:45:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: rename iseq_translate_direct_threaded_code()</div><div class='add'>+	  to iseq_translate_threaded_code().</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, yarvcore.h: mv EXEC_EVENT_HOOK() and</div><div class='add'>+	  exec_event_hooks() to yarvcore.h.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci, vm.c: mv yarv_finish_insn_seq to vm.c.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_call_c_function): fix to use RESTORE_REGS().</div><div class='add'>+</div><div class='add'>+	* iseq.c (rb_iseq_build_for_ruby2cext): fix to allocate iseq.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 11:59:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (defineclass): suppress a warning.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_call_c_function): should raise the thrown exception</div><div class='add'>+	  instead of returning it.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 08:53:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, yarvcore.h: move declaration of sysstack_error</div><div class='add'>+	  to yarvcore.h.</div><div class='add'>+</div><div class='add'>+	* iseq.c: fix symbol name (:toplevel -&gt; :top).</div><div class='add'>+</div><div class='add'>+	* lib/vm/instruction.rb, template/vm.inc.tmpl: replaceable</div><div class='add'>+	  current file name.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 05:29:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, iseq.c: fix iseq some of load/store process.</div><div class='add'>+</div><div class='add'>+Mon Jul  2 03:09:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, compile.c, insnhelper.ci, iseq.c, vm.c:</div><div class='add'>+	  rename structure names and field names.</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, insns.def: add GET_CONST_INLINE_CACHE().</div><div class='add'>+</div><div class='add'>+	* iseq.c: add rb_iseq_build_for_ruby2cext().</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, vm.h: move declaration of rb_insn_func_t</div><div class='add'>+	  to yarvcore.h.</div><div class='add'>+</div><div class='add'>+Sun Jul  1 03:25:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, vm.h: some refactoring.</div><div class='add'>+	  remove useless comments, etc.</div><div class='add'>+</div><div class='add'>+Sun Jul  1 03:02:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: some refactoring on rb_iseq_t.</div><div class='add'>+	  rename some variable names, add comments, etc.</div><div class='add'>+</div><div class='add'>+	* compile.c, iseq.c, proc.c, vm.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul  1 02:57:57 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h: rename insn_func_type to rb_insn_func_type.</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.ci: ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def: add opt_call_native_compiled instruction</div><div class='add'>+	  instead of opt_call_native_compiled.</div><div class='add'>+</div><div class='add'>+Sat Jun 30 00:17:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): return non-valid token for an invalid</div><div class='add'>+	  instance/class variable name.  a patch from Yusuke ENDOH</div><div class='add'>+	  &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:31095]</div><div class='add'>+</div><div class='add'>+Fri Jun 29 23:38:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmts): fix for ripper.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 21:55:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fix to show line number of blank block.</div><div class='add'>+	  [ruby-dev:31093]</div><div class='add'>+</div><div class='add'>+Fri Jun 29 20:51:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (create_new_id): don't cut off md5.hexdigest to</div><div class='add'>+	  follow Ruby 1.8.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 17:10:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* debug.h: constified.</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_set_debug_option): separated from main.c.</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_gc_stress), signal.c (ruby_enable_coredump): prefixed.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 16:39:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_new): fix to return a proc object</div><div class='add'>+	  which block is contained ([ruby-dev:31056]).</div><div class='add'>+</div><div class='add'>+Fri Jun 29 15:43:59 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): get rid of division by zero.  reported by</div><div class='add'>+	  Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt; [ruby-dev:31040]</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_round): do nothing when rounding by zeroth digit.</div><div class='add'>+	  check underflow.  [ruby-dev:31043]</div><div class='add'>+</div><div class='add'>+Fri Jun 29 15:32:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add fastcall attribute check.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 14:51:24 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc_list): remove expanded hash literal (no splat).</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpstatus.rb (WEBrick::HTTPStatus::EOFError): adapt</div><div class='add'>+	  to new syntax.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 14:48:18 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tool/insns2vm.rb, lib/vm/instruction.rb: move process body</div><div class='add'>+	  to lib/vm/instruction.rb.</div><div class='add'>+</div><div class='add'>+	* common.mk: fix aotc rule.</div><div class='add'>+	  experimental. bin/ruby2cext is not added yet.</div><div class='add'>+</div><div class='add'>+Fri Jun 29 11:23:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): return non-null NODE even if yyerror().  based on a</div><div class='add'>+	  patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.  [ruby-dev:31085]</div><div class='add'>+</div><div class='add'>+Thu Jun 28 23:29:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc_list): odd number check only for NODE_ARRAY.</div><div class='add'>+	  [ruby-dev:31082]</div><div class='add'>+</div><div class='add'>+Thu Jun 28 22:24:33 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: define FUNC_FASTCALL macro.</div><div class='add'>+</div><div class='add'>+	* vm.h: fix to use FUNC_FASTCALL macro.</div><div class='add'>+	  TODO: add FUNC_FASTCALL macro by configure.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 19:38:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: fix to remove -Wall warnings on gcc.</div><div class='add'>+</div><div class='add'>+	* compile.c (make_name_with_str): removed. use rb_sprintf() instead.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 18:53:01 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_hash): fix hash area.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 15:00:06 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getline): local variable to be</div><div class='add'>+	  initialized.  [ruby-dev:31077]</div><div class='add'>+</div><div class='add'>+Thu Jun 28 11:30:39 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_obj_id): use SIGNED_VALUE instead of long.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 05:01:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (run.gdb): fix to load $(srcdir)/.gdbinit</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_vm_set_finish_env): add a cast.</div><div class='add'>+</div><div class='add'>+	* vm.h: support __fastcall for MSVC.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 02:12:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: fix to untouch $:.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 02:03:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (setup_args): change parameter type.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 02:03:39 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): unconstify cast.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 01:44:31 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): don't allocate a string object at first.</div><div class='add'>+	  [ruby-dev:31064]</div><div class='add'>+</div><div class='add'>+Thu Jun 28 01:24:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: fix to show file name.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_*.rb: add bootstrap tests.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 01:22:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h, parse.y, gc.c, iseq.c: remove NODE_CREF.</div><div class='add'>+</div><div class='add'>+Thu Jun 28 01:19:43 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix popped backref and others.</div><div class='add'>+	  ([ruby-dev:31068]).</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): remove needless statements.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 23:51:33 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: remove unused functions.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 20:46:05 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/win32.h, win32/Makefile.sub, win32/configure.bat,</div><div class='add'>+	  win32/mkexports.rb, win32/setup.mak, win32/win32.c: import</div><div class='add'>+	  x64-mswin64 port.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 20:31:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_translate_direct_threaded_code): fix prototype</div><div class='add'>+	  function name.</div><div class='add'>+</div><div class='add'>+	* vm.h: add correct cast.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 17:08:42 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.ci: support OPT_CALL_THREADED_CODE.</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c, vm.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.h: add VM_CFP_CNT() and VM_SP_CNT().</div><div class='add'>+</div><div class='add'>+Wed Jun 27 04:23:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix type error.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 03:26:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (compile_massign), insns.def (expandarray): support</div><div class='add'>+	  postarg with massign (a, *b, c = ...).</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_massign.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+	* compile.h: fix debug macro names.</div><div class='add'>+</div><div class='add'>+Wed Jun 27 00:18:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_clear): need to check STR_EMBED_P() before</div><div class='add'>+	  free()ing memory.  a patch from Yusuke ENDOH &lt;mame AT tsg.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:31062]</div><div class='add'>+</div><div class='add'>+Tue Jun 26 16:39:01 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getgroups): use GIDT2NUM for rb_gid_t.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 16:28:24 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_fd_rw): terminate fdset.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 16:26:58 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h: IL32LLP64 support.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 16:22:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_node_name): update node names.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 15:21:20 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/ruby.h: IL32LLP64 support.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bigfixize, rb_cstr_to_inum): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_plus, opt_minus, opt_mult): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 15:04:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_s_new): revert initializing VM stack.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (th_init2): ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c, vm.h: fix to stop using Qundef on VM stack.  According to</div><div class='add'>+	  this change, VM stack should not include Qundef value.</div><div class='add'>+</div><div class='add'>+	* insns.def (putundef): removed.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): fix spacing.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 04:03:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (vm_yield_with_cfunc), proc.c: fix Method#to_proc</div><div class='add'>+	  to return lambda Proc ([ruby-dev:31021], [ruby-dev:31037]).</div><div class='add'>+</div><div class='add'>+Tue Jun 26 03:46:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_s_new): fix to clear rb_thread_t#tag.</div><div class='add'>+	  [ruby-dev:30995]</div><div class='add'>+</div><div class='add'>+Tue Jun 26 03:38:31 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_s_new), yarvcore.c (th_init2): fix to clear</div><div class='add'>+	  VM stack ([ruby-dev:31046]).</div><div class='add'>+</div><div class='add'>+Tue Jun 26 03:15:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: rename setup_arg() to setup_args().</div><div class='add'>+	  fix to use setup_args() at processing NODE_YIELD.</div><div class='add'>+</div><div class='add'>+Tue Jun 26 02:50:24 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (setup_arg): support kind of "m(*ary, x)" method call.</div><div class='add'>+	  ([ruby-dev:31048]).</div><div class='add'>+</div><div class='add'>+Tue Jun 26 00:28:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci, vm.c: complete block parameter support.</div><div class='add'>+	  post arguments, optional arguments, block argument.</div><div class='add'>+</div><div class='add'>+	* compile.c, parse.y: fix {|a|} parameter.</div><div class='add'>+</div><div class='add'>+	* insnshelper.ci, insns.def: revert caller_setup_args() option</div><div class='add'>+	  (need_block_check) parameter.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 20:18:44 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (RVALUE): in RVALUE and RBasic, flags must be the same type.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 18:02:55 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/extconf.rb: skip wince and win64.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 17:59:32 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby/node.h (NODE_LMASK, nd_line): shouldn't use int and/or</div><div class='add'>+	  long carelessly.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 11:36:35 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.h: add RUBY_ prefix to debug macros.</div><div class='add'>+</div><div class='add'>+	* cont.c, proc.c, yarvcore.c,</div><div class='add'>+</div><div class='add'>+	* gc.c: define ruby_gc_debug_indent variable to debug mark/free.</div><div class='add'>+</div><div class='add'>+	* vm.c, insnhelper.ci: rename some functions to vm_* or rb_vm_*.</div><div class='add'>+	  move some functions, definitions, declarations to suitable files.</div><div class='add'>+</div><div class='add'>+	* eval.c, yarvcore.h, eval_error.ci, insnhelper.ci: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 09:45:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.ci, eval_jump.ci, eval_method.ci, eval_safe.ci: c-mode.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 05:27:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove ruby_current_node and change eval() prototype.</div><div class='add'>+	  fix to use rb_sourcefile/line() instead of ruby_sourcefile/line.</div><div class='add'>+</div><div class='add'>+	* error.c, eval_error.ci, eval_load.c, eval_safe.ci, gc.c,</div><div class='add'>+	  include/ruby/intern.h, parse.y, process.c, ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: fix spaces.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 04:20:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_*.h: rename to eval_*.ci.</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_error.ci: remove ruby_set_current_source().</div><div class='add'>+</div><div class='add'>+	* error.c, eval.c, ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_safe.c, proc.c: remove unused macros.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 03:37:20 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci (caller_setup_args): add need_block_check option.</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: add GetCoreDataFromValue().</div><div class='add'>+</div><div class='add'>+Mon Jun 25 02:14:30 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* call_cfunc.ci: removed.</div><div class='add'>+</div><div class='add'>+	* insnhelper.ci: added. this function includes all functions that</div><div class='add'>+	  vm insns need.</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, vm.h, vm.c: move some declaration.</div><div class='add'>+</div><div class='add'>+	* gc.h: remove GC_CHECK() macro because GC.stress is more useful.</div><div class='add'>+</div><div class='add'>+	* compile.c, iseq.c, vm_dump: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.h, thread.c: move a prototype declaration.</div><div class='add'>+</div><div class='add'>+	* debug.c, debug.h: rename some functions.</div><div class='add'>+</div><div class='add'>+	* compile.h: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 00:45:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (invokesuper): fix error message.</div><div class='add'>+</div><div class='add'>+Mon Jun 25 00:14:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: some refactoring.</div><div class='add'>+	  * rename th_* to vm_*.</div><div class='add'>+	  * remove unused variables functions.</div><div class='add'>+	  * add prototypes.</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, compile.c, cont.c, eval.c, eval_intern.h,</div><div class='add'>+	  eval_jump.h, eval_load.c, inits.c, insns.def, iseq.c, parse.y,</div><div class='add'>+	  proc.c, process.c, signal.c, thread.c, vm.c, vm_dump.c,</div><div class='add'>+	  vm_evalbody.ci, yarvcore.c, yarvcore.h: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 22:32:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h (rb_add_method): fix to check 0.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 22:00:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insn_send.ci: removed.</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_call_bmethod), isnsn.def: added.  fix to use this</div><div class='add'>+	  function instead of using goto.</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_call_bmethod): renamed from th_invoke_bmethod().</div><div class='add'>+</div><div class='add'>+	* vm.c (vm_method_missing): renamed from eval_method_missing().</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.ci: remove tmp_* variables.</div><div class='add'>+</div><div class='add'>+	* insnhelper.h: add some macros.</div><div class='add'>+</div><div class='add'>+	* insns.def: forbid zsuper from method defined by define_method().</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_super.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 20:01:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_macro.def: removed.</div><div class='add'>+</div><div class='add'>+	* insn_send.ci: added.  this file includes send instruction body.</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* tool/insns2vm.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 19:30:37 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h (RESTORE_REGS): add do/while(0) around macro.</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_macro.def: remove macro_eval_invoke_func() and</div><div class='add'>+	  add vm_setup_method().  use it instead.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 19:02:33 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_macro.def : remove macro_eval_invoke_cfunc() and</div><div class='add'>+	  add vm_call_cfunc().</div><div class='add'>+</div><div class='add'>+Sun Jun 24 17:54:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c: add/fix stack overflow check.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 17:28:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h: change CHECK_STACK_OVERFLOW() to throw exception.</div><div class='add'>+</div><div class='add'>+	* vm.c (caller_setup_arg), vm_macro.def: remove</div><div class='add'>+	  macro_eval_setup_send_arguments and add caller_setup_arg().</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add splat arg tests.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 16:35:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_to_s): used a variable before initialized.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 16:05:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (callee_setup_arg): added.  support correct post arg.</div><div class='add'>+</div><div class='add'>+	* vm_macro.def (macro_eval_invoke_func): fix to use</div><div class='add'>+	  callee_setup_arg.</div><div class='add'>+</div><div class='add'>+	* compile.c (set_arguments): adjust for above changes.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_iseq_disasm): ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: add rb_iseq_t#post_arg_start and arg_size.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add post arg tests.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 16:10:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_to_s): suppress warning, and reduced duplicated code.</div><div class='add'>+</div><div class='add'>+Sun Jun 24 15:33:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: set default directory to</div><div class='add'>+	  '/tmp/bootstraptest.tmpwd' and add --dir option.</div><div class='add'>+	  fix to output driver and target information.</div><div class='add'>+</div><div class='add'>+	* common.mk: fix to run btest on BASERUBY and</div><div class='add'>+	  add OPTS to pass option ("make btest OPTS=...").</div><div class='add'>+</div><div class='add'>+Sun Jun 24 03:05:00 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_minmax): fix SEGV by [].minmax.</div><div class='add'>+</div><div class='add'>+Sat Jun 23 17:18:19 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_inspect): MatchData#inspect implemented.</div><div class='add'>+</div><div class='add'>+Sat Jun 23 15:00:16 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_minmax): new method to get the minimum and maximum</div><div class='add'>+	  values from the enumerable at once.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_minmax_by): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 23 01:25:40 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_assoc): new method.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_rassoc): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_flatten): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 22 23:55:59 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): add optional argument to specify</div><div class='add'>+	  exclusiveness.</div><div class='add'>+</div><div class='add'>+	* range.c (range_step): use String#upto with optional argument.</div><div class='add'>+</div><div class='add'>+	* range.c (range_each): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 22 19:55:51 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_to_s): revert the change from %p to %lx at YARV</div><div class='add'>+	  merge time.</div><div class='add'>+</div><div class='add'>+Fri Jun 22 19:33:49 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_to_s): show is_lambda.</div><div class='add'>+</div><div class='add'>+Thu Jun 21 20:36:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_sort): remove hash specific implementation.</div><div class='add'>+</div><div class='add'>+Thu Jun 21 20:28:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_select): returns new hash, not assoc array.</div><div class='add'>+	  [ruby-core:11504]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_select): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 21 23:08:19 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): ID_JUNK test based on len, not by NUL.</div><div class='add'>+</div><div class='add'>+Thu Jun 21 19:42:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (rb_thread_mark): mark also thrown_errinfo.</div><div class='add'>+</div><div class='add'>+Thu Jun 21 17:13:44 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): name may not be NUL-terminated.</div><div class='add'>+</div><div class='add'>+Wed Jun 20 08:27:57 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_error.h (error_print): show full stacktrace on</div><div class='add'>+	  non-SystemStackError.</div><div class='add'>+</div><div class='add'>+Wed Jun 20 04:45:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): use rb_intern2 to intern without trailing</div><div class='add'>+	  equal sign.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2, ripper_id2sym): fixed indent.</div><div class='add'>+</div><div class='add'>+Tue Jun 19 10:55:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c (load_ext, rb_require_safe): pass VALUE instead of</div><div class='add'>+	  pointer.  [ruby-Bugs-11659]</div><div class='add'>+</div><div class='add'>+Mon Jun 18 08:47:54 2007  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/{extconf.rb,ossl_ssl_session.c}:</div><div class='add'>+	  Fix ruby-Bugs-11513.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c</div><div class='add'>+	  New methods EC::Point.[eql,make_affine!,invert!,on_curve?,infinity?]</div><div class='add'>+	  By default output the same key form as the openssl command.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_rand.c</div><div class='add'>+	  New method Random.status?</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ec.rb</div><div class='add'>+	  New tests.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 17:04:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c (rb_require_safe, ruby_init_ext): load with ruby level</div><div class='add'>+	  cfp.  [ruby-core:10779]</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, vm.c (rb_vm_call_cfunc): new function to call a</div><div class='add'>+	  function with ruby level cfp.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 16:57:24 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): disable trace while creating ruby_debug_lines.</div><div class='add'>+	  [ruby-talk:253586]</div><div class='add'>+</div><div class='add'>+	* thread.c (ruby_suppress_tracing): new function to call a function</div><div class='add'>+	  with suppressing trace.</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb, lib/tracer.rb: for YARV.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 13:54:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): return EXIT_FAILURE if any exceptions occurred</div><div class='add'>+	  in at_exit blocks.  [ruby-core:11263]</div><div class='add'>+</div><div class='add'>+Mon Jun 18 02:49:16 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (env_mark): fix to mark block.proc.</div><div class='add'>+</div><div class='add'>+	* vm.c (th_make_proc_from_block): set created proc to block-&gt;proc.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 02:48:12 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (vm_stack_dump_raw): hide VM stack trace.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 02:43:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sigsegv): clear gc_stress flag on SEGV.</div><div class='add'>+</div><div class='add'>+Mon Jun 18 01:14:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_path2class): get rid of dangling pointer caused by</div><div class='add'>+	  optimized out value.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_global_entry, rb_f_untrace_var, rb_alias_variable,</div><div class='add'>+	  rb_generic_ivar_table, generic_ivar_get, generic_ivar_set,</div><div class='add'>+	  generic_ivar_defined, generic_ivar_remove, rb_mark_generic_ivar,</div><div class='add'>+	  rb_free_generic_ivar, rb_copy_generic_ivar,</div><div class='add'>+	  rb_obj_instance_variables): suppress warnings.</div><div class='add'>+</div><div class='add'>+Sun Jun 17 11:11:07 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): avoid a warning "too many arguments</div><div class='add'>+	  for format string" on "./ruby -ve 'def m() super end; m'".</div><div class='add'>+</div><div class='add'>+Sat Jun 16 22:24:17 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): re-introduce ruby_current_node marking code.</div><div class='add'>+	  [ruby-dev:31005]</div><div class='add'>+</div><div class='add'>+Sat Jun 16 21:37:43 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): re-introduce heap extension strategy change.</div><div class='add'>+	  [ruby-dev:31005]</div><div class='add'>+</div><div class='add'>+Fri Jun 15 22:59:37 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* .gdbinit: new file to ease debugging using gdb.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 22:33:55 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (default_handler): func argument removed.</div><div class='add'>+	  (trap_handler): support SYSTEM_DEFAULT.  call default_handler</div><div class='add'>+	  internally.</div><div class='add'>+	  (sig_trap): don't call default_handler.</div><div class='add'>+	  [ruby-dev:30999]</div><div class='add'>+</div><div class='add'>+Fri Jun 15 22:33:29 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (realclean): separate local and ext.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: not remove unrelated directories.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 20:50:02 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* keywords: enclose C code in declaration section by %{ and %} to</div><div class='add'>+	  avoid extra semicolon after #ifdef RIPPER.</div><div class='add'>+	  pointed by eban.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 18:56:52 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap_handler): trap("SIGSEGV", "DEFAULT") may cause wrong</div><div class='add'>+	  trap error because SIG_DFL may be zero.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 15:55:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (setconstant, toregexp): fix to mark object correctly.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 13:24:18 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c: exchange semantics of Hash#each and Hash#each_pair.</div><div class='add'>+	  pointed out by [ruby-dev:30997].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 12:38:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: remove debug code (GC.stress=true).</div><div class='add'>+</div><div class='add'>+Fri Jun 15 12:25:33 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (th_yield_setup_args): |v| should work as |v,|.</div><div class='add'>+	  ex) def m;yield 1, 2; end; m{|v| p v} #=&gt; 1</div><div class='add'>+</div><div class='add'>+	* parse.y: apply above change for "for" statement.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_basicinstructions.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix debug.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 12:22:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize_1): rb_thread_t#errinfo should be clear with</div><div class='add'>+	  Qnil.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 12:20:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_cont_call): forbid cross fiber continuation call.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun 15 12:14:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: fix to show line information whether test succeeds.</div><div class='add'>+</div><div class='add'>+Thu Jun 14 17:16:05 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c (Init_load): delay allocating an array for rb_load_path</div><div class='add'>+	  to avoid GC problem in very early stage.</div><div class='add'>+	  (RUBY_GC_STRESS causes GC in such stage.)</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_gc_mark_global_tbl): rb_global_tbl may be 0 in</div><div class='add'>+	  very early stage.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_cleanup_func) [IA64]: clear register stack position.</div><div class='add'>+	  (thread_start_func_2) [IA64]: record the beginning of register</div><div class='add'>+	  stack using extra argument.</div><div class='add'>+	  (rb_gc_save_machine_context) [IA64]: record the end of register</div><div class='add'>+	  stack.</div><div class='add'>+</div><div class='add'>+	* gc.c [IA64] (SET_STACK_END): record the end of register stack.</div><div class='add'>+	  (garbage_collect) [IA64]: use recorded register stack area for</div><div class='add'>+	  GC marking.</div><div class='add'>+	  (yarv_machine_stack_mark) [IA64]: GC mark from the register stack</div><div class='add'>+	  area.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c [IA64] (rb_gc_register_stack_start): defined.</div><div class='add'>+	  (Init_VM): store th-&gt;self on stack to fix GC problem.</div><div class='add'>+	  (Init_yarv) [IA64]: initialize the beginning of register stack.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h (struct rb_thread_struct) [IA64]: new members for</div><div class='add'>+	  register stack area.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (thread_start_func_1) [IA64]: call</div><div class='add'>+	  thread_start_func_2 with the end of register stack.</div><div class='add'>+</div><div class='add'>+	* cont.c (struct rb_context_struct) [IA64]: new members for register</div><div class='add'>+	  stack area.</div><div class='add'>+	  (cont_mark) [IA64]: GC mark from register stack area.</div><div class='add'>+	  (cont_free) [IA64]: free saved register stack.</div><div class='add'>+	  (cont_save_machine_stack) [IA64]: record the position and contents</div><div class='add'>+	  of the register stack.</div><div class='add'>+	  (cont_capture): store cont-&gt;self on stack to fix GC problem.</div><div class='add'>+	  (cont_restore_1) [IA64]: restore the register stack.</div><div class='add'>+	  [IA64] (register_stack_extend): new function.</div><div class='add'>+	  (cont_restore_0) [IA64]: call register_stack_extend instead of</div><div class='add'>+	  cont_restore_1.</div><div class='add'>+</div><div class='add'>+	[ruby-dev:30982]</div><div class='add'>+</div><div class='add'>+Thu Jun 14 17:09:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser): handle more</div><div class='add'>+	  extensions.  [ruby-dev:30972]</div><div class='add'>+</div><div class='add'>+Thu Jun 14 14:40:42 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb: document updated.</div><div class='add'>+	  suggested by NaHi.  [ruby-dev:30966]</div><div class='add'>+</div><div class='add'>+Wed Jun 13 22:42:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): update IA64 register stack code.</div><div class='add'>+	  [ruby-dev:30971]</div><div class='add'>+</div><div class='add'>+Wed Jun 13 06:05:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (darwin): prohibit loading extension libraries to</div><div class='add'>+	  miniruby.</div><div class='add'>+</div><div class='add'>+Tue Jun 12 21:50:51 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): no allow splat after assocs.  takes</div><div class='add'>+	  consistency over compatibility.</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args2): ditto</div><div class='add'>+</div><div class='add'>+Tue Jun 12 14:53:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.quiet, Logging.message): added quiet flag and</div><div class='add'>+	  use it.  [ruby-core:10909]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_header): use header names in the message.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 18:37:13 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/probeprofiler/probeprofiler.c: clean warnings.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 18:32:24 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/isinf.c, missing/dup2.c, missing/strtod.c, missing/x68.c,</div><div class='add'>+	  missing/alloca.c: use "ruby/config.h".</div><div class='add'>+</div><div class='add'>+Sun Jun 10 17:49:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install_recursive): should check parent directories of</div><div class='add'>+	  the destination.  [ruby-dev:30947]</div><div class='add'>+</div><div class='add'>+Sun Jun 10 16:59:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (do_block, brace_block): fix line numbers.  [ruby-dev:30831]</div><div class='add'>+</div><div class='add'>+Sun Jun 10 16:57:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install_recursive): add :glob option rather than</div><div class='add'>+	  using FNM_DOTMACH.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (ext-comm): make header directory first.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 16:10:58 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb: typo.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 16:07:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install_recursive): skip .svn directories.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 15:44:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): rubyhdrdir was missing.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 15:26:36 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: use --output-file for gperf to not leave lex.c.tmp.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 15:11:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (XCFLAGS): -I. is needed for *.inc.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: prepend also topdir to mflags at last.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 13:47:36 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):</div><div class='add'>+	  get rid of invoking shell.  [ruby-dev:30942]</div><div class='add'>+</div><div class='add'>+Sun Jun 10 12:56:46 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* include/ruby: moved public headers.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install_recursive): skip backup files.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (ext-comm): install only current platform headers.</div><div class='add'>+</div><div class='add'>+Sun Jun 10 10:42:04 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/securerandom.rb: renamed from lib/secrand.rb.</div><div class='add'>+	  suggested by NaHi.  [ruby-dev:30934]</div><div class='add'>+</div><div class='add'>+Sat Jun  9 06:40:05 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/secrand.rb: rename SecRand() to SecRand.random_number.</div><div class='add'>+	  suggested by NaHi.  [ruby-dev:30934]</div><div class='add'>+</div><div class='add'>+Fri Jun  8 16:34:20 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_s_open): use FilePathValue to support</div><div class='add'>+	  to_path.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 16:11:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_jump.h: th-&gt;errinfo should clear with nil.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 14:53:28 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): allow splat argument after unpacked</div><div class='add'>+	  assocs like 1.8 does.</div><div class='add'>+</div><div class='add'>+	* parse.y (call_args): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 14:26:18 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/secrand.rb: new file for secure random interface.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: use secrand for generating cookies.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 12:44:37 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {win32,wince}/Makefile.sub: add lex.c rule.</div><div class='add'>+</div><div class='add'>+Fri Jun  8 11:54:18 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lex.c.blt: moved from lex.c.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: use lex.c.blt if gperf is not available.</div><div class='add'>+	  [ruby-list:8212], [ruby-list:8214], [ruby-list:24667],</div><div class='add'>+	  [ruby-talk:120857], [ruby-dev:28102]</div><div class='add'>+</div><div class='add'>+Thu Jun  7 21:38:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): invoke ensure when</div><div class='add'>+	  main thread exits.</div><div class='add'>+</div><div class='add'>+Thu Jun  7 19:02:48 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: call original "method" method instead of redefined one.</div><div class='add'>+</div><div class='add'>+Thu Jun  7 17:20:57 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (prepare_iseq_build): freeze filename and name string.</div><div class='add'>+</div><div class='add'>+	* variable.c: freeze class name string.</div><div class='add'>+</div><div class='add'>+Thu Jun  7 12:48:33 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_1): fix to check root fiber [ruby-dev:30911].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: add a test.</div><div class='add'>+</div><div class='add'>+Thu Jun  7 07:24:36 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/json/common.rb: Ponder offering parse! method.</div><div class='add'>+</div><div class='add'>+	* lib/json/editor.rb: be a bit more robust while loading data.</div><div class='add'>+</div><div class='add'>+	* ext/json/ext/{generator,parser}/extconf.rb:</div><div class='add'>+	  add a have_header directive for st.h</div><div class='add'>+</div><div class='add'>+	* test/json: fix some tests.</div><div class='add'>+</div><div class='add'>+Thu Jun  7 03:29:18 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test_fiber.rb: add a test (Continuation and Fiber).</div><div class='add'>+</div><div class='add'>+Thu Jun  7 03:17:24 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_new): add debug message.</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_restore_1): copy stack information from fiber.</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_s_new): fix to mark created fiber.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: add some tests around Thread and Fiber.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (thread_free): fix to skip freeing stack if root fiber</div><div class='add'>+	  is available.</div><div class='add'>+</div><div class='add'>+Thu Jun  7 01:03:20 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, eval.c (ruby_init): remove POP_TAG_INIT().</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_start): remove zero-clearing tag.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 20:23:46 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (invokeblock): fix of splat argument.</div><div class='add'>+	  (splat same as normal method dispatch)</div><div class='add'>+</div><div class='add'>+Wed Jun  6 16:27:25 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: fixed indentation.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 10:58:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield): fix to check Qundef.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 10:57:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_continuation.rb: add a test for last commit.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 10:55:42 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_cont_call): forbid calling dead fiber with</div><div class='add'>+	  Continuation#call.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 10:50:01 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix around yield arguments</div><div class='add'>+	  (with NODE_ARGSCAT).</div><div class='add'>+</div><div class='add'>+Wed Jun  6 02:50:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (rb_fiber_start): clear th-&gt;tag and check error to fix</div><div class='add'>+	  [ruby-dev:30888] and [ruby-dev:30889].</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: fix rb_fiber_start() prototype.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 02:40:20 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, insns.def (DEC_SP): shouldn't use unary minus operator</div><div class='add'>+	  in pointer operation. some compilers (such as VC++8 x64) cannot deal</div><div class='add'>+	  it with expected way.</div><div class='add'>+</div><div class='add'>+Wed Jun  6 02:19:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (new_yield), compile.c (iseq_compile_each): fix</div><div class='add'>+	  passing parameter.</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_jump.h: simplify rb_yield*.</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_mark): fix to mark proc-&gt;block.proc.</div><div class='add'>+</div><div class='add'>+	* proc.c (Init_Proc): add Proc#lambda?</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: add some tests.</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block): fix to check lambda block or not.</div><div class='add'>+</div><div class='add'>+	* vm.c (th_yield_setup_args): fix to check arguments size</div><div class='add'>+	  when lambda block.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 16:30:38 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_p): returns arguments to intervene.  [ruby-dev:29736]</div><div class='add'>+</div><div class='add'>+Tue Jun  5 14:07:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (invokeblock): check block is created by lambda</div><div class='add'>+	  or Proc.new.</div><div class='add'>+</div><div class='add'>+	* vm.c (block_proc_is_lambda): added.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 14:47:52 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods::seplist): revert last change to work</div><div class='add'>+	  around wrapper bug.  [ruby-dev:30840]</div><div class='add'>+</div><div class='add'>+Tue Jun  5 14:11:15 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (kanji_convert): Fix guess fallback.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 13:32:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, dir.c, eval.c, eval_jump.h, eval_method.h, numeric.c,</div><div class='add'>+	  pack.c, parse.y, re.c, thread.c, vm.c, vm_dump.c, call_cfunc.ci,</div><div class='add'>+	  thread_pthread.ci, thread_win32.ci: fixed indentation.</div><div class='add'>+</div><div class='add'>+	* call_cfunc.ci: protoized.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci: fixed typo.</div><div class='add'>+</div><div class='add'>+Tue Jun  5 13:17:11 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* call_cfunc.ci, compile.c, dir.c, eval.c, eval_jump.h, numeric.c,</div><div class='add'>+	  pack.c, re.c, thread.c, thread_win32.ci, vm.c, vm_dump.c: fixed</div><div class='add'>+	  indentation.</div><div class='add'>+</div><div class='add'>+Mon Jun  4 21:15:45 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/json.rb, lib/json, ext/json, test/json:</div><div class='add'>+	  import JSON library.</div><div class='add'>+</div><div class='add'>+	* ext/nkf: import nkf.c rev:1.124</div><div class='add'>+	  Support CP10001.</div><div class='add'>+</div><div class='add'>+Mon Jun  4 20:52:58 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_round): should not just truncate.</div><div class='add'>+</div><div class='add'>+Sat Jun  2 16:48:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (Fiber#pass): rename to Fiber#yield.  Block parameter</div><div class='add'>+	  of fiber body receive first yield values.</div><div class='add'>+	  e.g.: Fiber.new{|x| p x}.yield(:ok) #=&gt; :ok</div><div class='add'>+</div><div class='add'>+	* cont.c: rename rb_context_t#retval to rb_context_t#value.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fiber.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun  2 16:45:21 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (Init_Proc): remove a line break.</div><div class='add'>+</div><div class='add'>+Sat Jun  2 01:27:27 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_round): small optimization to handle bignums.</div><div class='add'>+</div><div class='add'>+Fri Jun  1 13:02:35 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h (INC_SP): shouldn't cast ``x'' to unsigned type because</div><div class='add'>+	  it might be a negative value.</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, insns.def: shouldn't use unary minus operator in index</div><div class='add'>+	  operator. some compilers (such as VC++8 x64) cannot deal it with</div><div class='add'>+	  expected way.</div><div class='add'>+</div><div class='add'>+Fri Jun  1 11:33:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_round): should convert self to Float.</div><div class='add'>+	  [ruby-dev:30860]</div><div class='add'>+</div><div class='add'>+Fri Jun  1 02:01:13 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_round): now takes optional argument to specify</div><div class='add'>+	  number of digits, like round() in Python/PHP.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_round): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun  1 01:58:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (each_with_index_i): should work well with continuation.</div><div class='add'>+	  a patch from sheepman &lt;sheepman AT sheepman.sakura.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:30846]</div><div class='add'>+</div><div class='add'>+Thu May 31 17:27:53 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb (Benchmark::Job::item): avoid modifying the</div><div class='add'>+	  argument unintentionally.  [ruby-talk:253676]</div><div class='add'>+</div><div class='add'>+Wed May 30 14:43:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c (cont_capture): store all local variables in heap</div><div class='add'>+	  ([ruby-dev:30832]).</div><div class='add'>+</div><div class='add'>+	* vm.c (th_stack_to_heap): added.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_continuation.rb: add a test for above.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (th_get_ruby_level_cfp): fix to clean code.</div><div class='add'>+</div><div class='add'>+Wed May 30 13:32:34 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (ResponseParser#next_token): fixed</div><div class='add'>+	  error message.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (ResponseParser#parse_error): fixed</div><div class='add'>+	  the condition not to refer to @token.symbol unexpectedly.</div><div class='add'>+	  Thanks, Dick Monahan.</div><div class='add'>+</div><div class='add'>+Wed May 30 13:24:33 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (Net::FTP#transfercmd): skip 2XX</div><div class='add'>+	  responses for some FTP servers.</div><div class='add'>+</div><div class='add'>+Wed May 30 04:18:37 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd): just return if no exceptions.</div><div class='add'>+	  [ruby-dev:30820]</div><div class='add'>+</div><div class='add'>+Wed May 30 02:14:25 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (interrupt_init): needs to pass nil for Interrupt.</div><div class='add'>+	  [ruby-core:11038]</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): fixed segfaults.  [ruby-dev:30830]</div><div class='add'>+</div><div class='add'>+Wed May 30 00:50:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_source_filename, obj_free): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect, yarv_machine_stack_mark): fixed typo.</div><div class='add'>+	  http://bugs.debian.org/426267</div><div class='add'>+</div><div class='add'>+Wed May 30 00:24:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (open_args, arg_ambiguous, parser_warning): should not use</div><div class='add'>+	  rb_warning in the parser.</div><div class='add'>+</div><div class='add'>+Tue May 29 12:31:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir): removed duplicated code.</div><div class='add'>+</div><div class='add'>+Tue May 29 10:55:24 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: fix bug around Continuation and Fiber.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_continuation.rb: add tests for Continuation.</div><div class='add'>+</div><div class='add'>+Tue May 29 10:54:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir, rb_w32_readdir): eliminate magic</div><div class='add'>+	  numbers.</div><div class='add'>+</div><div class='add'>+Mon May 28 10:27:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: fixed a function name.</div><div class='add'>+</div><div class='add'>+Mon May 28 03:56:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: support Fiber.  Check test/ruby/test_fiber.rb for detail.</div><div class='add'>+	  Fiber is known as "Micro Thread", "Coroutine", and other terms.</div><div class='add'>+	  At this time, only Fiber#pass is supported to change context.</div><div class='add'>+	  I want to know more suitable method name/API for Fiber (... do you</div><div class='add'>+	  know more suitable class name instead of Fiber?) as "suspend/resume",</div><div class='add'>+	  "call", "yield", "start/kick/stop/restart", ....</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, thread.c, yarvcore.c, yarvcore.h: ditto.</div><div class='add'>+</div><div class='add'>+Sat May 26 00:38:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec_internal): do nothing if no code.</div><div class='add'>+</div><div class='add'>+	* compile.c (rb_iseq_compile): check node if NULL before check</div><div class='add'>+	  nd_type.  [ruby-talk:252956]</div><div class='add'>+</div><div class='add'>+Sat May 26 00:05:22 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_should_propagate_signaled):</div><div class='add'>+	  skip tests for exitstatus and termsig on the platforms where</div><div class='add'>+	  signals not supported.</div><div class='add'>+</div><div class='add'>+Fri May 25 16:04:47 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (Init_VM): wrap already initialized structs to use</div><div class='add'>+	  it directly.</div><div class='add'>+</div><div class='add'>+Fri May 25 11:09:47 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regint.h (include): on some platform, defines.h redefines</div><div class='add'>+	  SIZE_OF_LONG_LONG so shouldn't re-include config.h after included</div><div class='add'>+	  defines.h.</div><div class='add'>+</div><div class='add'>+	* regint.h (vsnprintf): ruby on windows already have vsnprintf macro.</div><div class='add'>+</div><div class='add'>+Thu May 24 12:07:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: check across trap violation.</div><div class='add'>+</div><div class='add'>+	* eval.c, yarvcore.h: ditto.</div><div class='add'>+</div><div class='add'>+Thu May 24 11:46:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c, yarvcore.c: fix to mark VM structure on startup.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: disable USE_CACHED_VALUE.</div><div class='add'>+</div><div class='add'>+Thu May 24 01:54:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* cont.c: support callcc which everyone love.</div><div class='add'>+	  incomplete. please give me bug reports.</div><div class='add'>+</div><div class='add'>+	* common.mk, inits.c, thread.c: ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: export thread_mark().</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: disable value cache option.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: set th_get_ruby_level_cfp to inline.</div><div class='add'>+</div><div class='add'>+Wed May 23 15:39:02 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add a rule for regsyntax.c.</div><div class='add'>+</div><div class='add'>+Wed May 23 10:31:53 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: updated to Oniguruma 5.7.0.</div><div class='add'>+</div><div class='add'>+	* regsyntax.c, unicode.c: new files along with Oniguruma 5.x.</div><div class='add'>+</div><div class='add'>+Wed May 23 06:51:46 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI#[]): get rid of exceptions being raised.</div><div class='add'>+	  [ruby-dev:30740], Thanks Kentaro KAWAMOTO.</div><div class='add'>+</div><div class='add'>+Wed May 23 05:49:49 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, ext/purelib.rb, lib/mkmf.rb, runruby.rb: clear default</div><div class='add'>+	  load path to get rid of load pre-installed extensions/libraries.</div><div class='add'>+	  [ruby-core:11017]</div><div class='add'>+</div><div class='add'>+Tue May 22 16:37:36 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): support RSTRING_LEN on HP-UX.  a patch from</div><div class='add'>+	  WATANABE Tetsuya &lt;Tetsuya.WATANABE AT nifty.com&gt;.  [ruby-dev:30806]</div><div class='add'>+</div><div class='add'>+Mon May 21 13:40:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, vm_macro.def: support tail call optimization</div><div class='add'>+	  (on default, this feature is not enabled).</div><div class='add'>+</div><div class='add'>+	* iseq.c, compile.c, vm_opts.h: add "tailcall_optimization"</div><div class='add'>+	  option.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (test_ok): fix to adjust tailcall stack layout.</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c, compile.c, yarvcore.c, yarvcore.h:</div><div class='add'>+	  add opt_gt, opt_le instructions.</div><div class='add'>+</div><div class='add'>+Mon May 21 03:34:06 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: CRAM-MD5 authentication did not work.</div><div class='add'>+	  [ruby-dev:30770]</div><div class='add'>+</div><div class='add'>+Sat May 19 10:26:01 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date._parse): detects some OFX dates</div><div class='add'>+	  (Of course not fully).</div><div class='add'>+</div><div class='add'>+Sat May 19 03:08:05 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): minor improvement.  [ruby-dev:30792]</div><div class='add'>+</div><div class='add'>+	* enum.c (one_i): no needs to iterate once the result became false.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_one): fix for an example.</div><div class='add'>+</div><div class='add'>+	* enum.c (one_iter_i, none_iter_i): DRY.;</div><div class='add'>+</div><div class='add'>+Sat May 19 01:07:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): it is now can work without block.  you</div><div class='add'>+	  have to specify two argument method name as the first argument.</div><div class='add'>+</div><div class='add'>+	* enum.c (Init_Enumerable): reduce is new alias to inject.</div><div class='add'>+</div><div class='add'>+Sat May 19 01:05:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): method definition mismatch.</div><div class='add'>+</div><div class='add'>+Fri May 18 16:44:04 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): add to_path method to File objects.</div><div class='add'>+</div><div class='add'>+Fri May 18 11:12:39 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (DllMain, ruby_init_loadpath): use DLL instance handle given</div><div class='add'>+	  to DllMain instead of VirtualQuery so that loadpath becomes relative</div><div class='add'>+	  from the DLL on WinCE too.</div><div class='add'>+</div><div class='add'>+Thu May 17 17:03:11 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el (ruby-style-label-indent): for yacc rules.</div><div class='add'>+</div><div class='add'>+Thu May 17 13:30:27 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg): remove typo from ripper description.</div><div class='add'>+</div><div class='add'>+Thu May 17 13:23:38 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y, compile.c (set_arguments): fix to support in-paren</div><div class='add'>+	  parameter (ex: def foo((a, b))).</div><div class='add'>+</div><div class='add'>+Thu May 17 13:01:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (ruby_iseq_disasm): fix to show post arg info.</div><div class='add'>+</div><div class='add'>+Thu May 17 12:56:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* debug.c (ruby_debug_node): fix to show node line.</div><div class='add'>+</div><div class='add'>+Wed May 16 21:48:44 2007  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (Logger::Application): remove meaningless logdev</div><div class='add'>+	  attribute and added logger attribute instead.  [ruby-core:11143]</div><div class='add'>+	  also added Logger#formatter rdoc comment.</div><div class='add'>+</div><div class='add'>+Tue May 15 16:40:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_endblockwarn): now parser</div><div class='add'>+	  warnings emit source names and line numbers.</div><div class='add'>+</div><div class='add'>+Tue May 15 15:01:38 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_stdhandle): stderr should be without buffering,</div><div class='add'>+	  but mswin32 use buffering when stderr is not connected to tty.</div><div class='add'>+</div><div class='add'>+Mon May 14 02:12:07 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): a.zip(b,c) should return an array, not</div><div class='add'>+	  enumerator.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_zip): a.zip(b,c) should return array with size</div><div class='add'>+	  truncated to the size of its shortest argument array.</div><div class='add'>+	  [incompatible]</div><div class='add'>+</div><div class='add'>+Mon May 14 01:54:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_choice): should return nil when the array is</div><div class='add'>+	  empty.</div><div class='add'>+</div><div class='add'>+Sat May 12 18:26:36 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (tokens): forgot to add strip. [ruby-core:11120]</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb: test Net::HTTP.post_form.</div><div class='add'>+</div><div class='add'>+Fri May 11 15:27:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_data_to_ary): internal IDs must not be exposed.</div><div class='add'>+	  [ruby-core:11073]</div><div class='add'>+</div><div class='add'>+	* parse.y (internal_id_gen): now returns scope local ID instead of</div><div class='add'>+	  global one.</div><div class='add'>+</div><div class='add'>+Thu May 10 15:15:53 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_super.rb: add tests.</div><div class='add'>+</div><div class='add'>+Thu May 10 15:14:05 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_s_conv): rdoc fix.</div><div class='add'>+</div><div class='add'>+Thu May 10 15:09:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (POINTER_P): pointer may be larger than long.</div><div class='add'>+</div><div class='add'>+	* parse.y (vtable_size, vtable_included, vtable_tblcpy,</div><div class='add'>+	  vtable_to_tbl): constified.</div><div class='add'>+</div><div class='add'>+Thu May 10 10:13:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_priority): rdoc fix; the initial value is</div><div class='add'>+	  inherited from the creating thread.  [ruby-core:10607]</div><div class='add'>+</div><div class='add'>+Wed May  9 12:28:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (Init_Bignum), numeric.c (Init_Numeric): added fdiv as</div><div class='add'>+	  aliases of quo.  [ruby-dev:30771]</div><div class='add'>+</div><div class='add'>+Tue May  8 23:39:09 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date._parse): revised treatment of</div><div class='add'>+	  hyphened/separatorless dates.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: some trivial adjustments.</div><div class='add'>+</div><div class='add'>+Tue May  8 20:23:07 2007  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'>+Tue May  8 19:32:18 2007  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: fix high-precision Rationals cannot be</div><div class='add'>+	  converted to Floats. [ruby-Bugs:10502], [ruby-core:11069],</div><div class='add'>+	  [ruby-dev:30743]</div><div class='add'>+</div><div class='add'>+Mon May  7 10:59:55 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/image.rb, test/rss/test_image.rb: fixed Image module</div><div class='add'>+	  namespace URI. reported by Dmitry Borodaenko. Thanks.</div><div class='add'>+</div><div class='add'>+Sun May  6 18:44:11 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP.post_form): allow an Array of String</div><div class='add'>+	  for pairs argument. [ruby-Bugs:10340]</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#set_form_data): ditto.</div><div class='add'>+</div><div class='add'>+Sun May  6 17:54:36 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Connection header field might include both of</div><div class='add'>+	  "keep-alive" token and "close" token. [ruby-core:10818]</div><div class='add'>+</div><div class='add'>+Sat May  5 16:26:33 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Format::Bag#method_missing): get rid of</div><div class='add'>+	  modifying original argument.  [ruby-core:11090]</div><div class='add'>+</div><div class='add'>+Thu May  3 22:20:08 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, defines.h, eval_load.c (rb_feature_p, rb_provided,</div><div class='add'>+	  search_required, rb_require_safe), ext/extmk.rb: Fix</div><div class='add'>+	  a bug where a statically linked extension cannot be autoloaded.</div><div class='add'>+	  [ruby-dev:30023] / [ruby-dev:30239]</div><div class='add'>+</div><div class='add'>+	* thread.c: added an internal class, Barrier.</div><div class='add'>+</div><div class='add'>+	* thread.c: copied rdocs from fastthread.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h (struct rb_vm_struct): moved loading_table from global.</div><div class='add'>+</div><div class='add'>+Thu May  3 18:10:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.ci, insns.def, vm.c, tool/insns2vm.rb (rb_num_t):</div><div class='add'>+	  renamed to get rid of name clash.  [ruby-dev:30504]</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (ruby_thread_init): ditto.</div><div class='add'>+</div><div class='add'>+Wed May  2 18:52:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, yarvcore.h, yarvcore.c, insns.def: fix to mark VM stack</div><div class='add'>+	  in correct range.</div><div class='add'>+</div><div class='add'>+Wed May  2 17:13:26 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_quo): now calculate in integer.  [ruby-dev:30753]</div><div class='add'>+</div><div class='add'>+Wed May  2 15:14:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h: add redefine checks ([ruby-dev:30751]).</div><div class='add'>+</div><div class='add'>+Wed May  2 11:22:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: use Qtrue instead of 2.</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def: support "lambda" calling convention.</div><div class='add'>+</div><div class='add'>+Wed May  2 06:46:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c, parse.y, ruby.h (rb_compile_warn, rb_compile_warning): warn</div><div class='add'>+	  for compilation.  the parser should no longer use rb_warn() and</div><div class='add'>+	  rb_warning().  [ruby-dev:30121]</div><div class='add'>+</div><div class='add'>+Wed May  2 05:45:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc): result of assoc_new needs to be an assoc.</div><div class='add'>+</div><div class='add'>+Wed May  2 05:40:43 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): improvement by calculating from MSB and using</div><div class='add'>+	  factorization.  &lt;http://yowaken.dip.jp/tdiary/20070426.html#p01&gt;</div><div class='add'>+</div><div class='add'>+Tue May  1 18:45:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: import matzruby's sample/test.rb.</div><div class='add'>+</div><div class='add'>+Tue May  1 17:46:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_choice): a new method to choose an element</div><div class='add'>+	  randomly from an array.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_choice): fixed mistake from RDoc.</div><div class='add'>+</div><div class='add'>+Tue May  1 13:59:18 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c (proc_arity): fix an arity bug ([ruby-core:11060]).</div><div class='add'>+</div><div class='add'>+Tue May  1 13:12:49 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, compile.c (set_arguments): support post arguments.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: add tests for above.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* proc.c: fix an arity bug ([ruby-core:11029]).</div><div class='add'>+</div><div class='add'>+	* vm.c, vm.h, insns.def, vm_dump.h: fix bmethod process.</div><div class='add'>+</div><div class='add'>+	* vm.c: support block argument on block parameter.</div><div class='add'>+</div><div class='add'>+Fri Apr 27 17:05:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): bugfix of overflow detection.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): rb_big_pow() may return other than Bignum.</div><div class='add'>+</div><div class='add'>+Fri Apr 27 01:51:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: support multiple splat (e.g, [a, *b, *c, e, *f]).</div><div class='add'>+</div><div class='add'>+Fri Apr 27 00:03:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): truncate all zero BDIGITs. [ruby-dev:30733]</div><div class='add'>+</div><div class='add'>+Thu Apr 26 17:31:00 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): reduce multiplying for even number.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pow): calculate power in Fixnum as possible.</div><div class='add'>+	  [ruby-dev:30726]</div><div class='add'>+</div><div class='add'>+Thu Apr 26 17:18:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fixes for ripper.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): reduced duplicated code.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg_item): should not override by meaningless value.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg, assocs): should not use $$ before assigned.</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc_list): dispatch assoclist_from_args for assocs as</div><div class='add'>+	  well as args.</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc): return assoc if dispatched result is $1.</div><div class='add'>+</div><div class='add'>+Thu Apr 26 13:54:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-style.el: new file.  C/C++ style for ruby source code.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 19:49:16 2007  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_send_io, unix_recv_io): use CMSG_DATA to</div><div class='add'>+	  align file descriptor appropriately.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 15:23:29 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtInitialize, exit_handler): add initializing and</div><div class='add'>+	  cleanup of critical section object for select.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_select): block reentrance.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): 0 sec polling of socket. this is</div><div class='add'>+	  workaround because winsock cannot do select at same socket at the</div><div class='add'>+	  same time by two or more threads.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 14:10:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/probeprofiler/probeprofiler.c: fix function name and</div><div class='add'>+	  return value.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 12:42:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: remove rb_control_frame_t#callee_id.</div><div class='add'>+</div><div class='add'>+	* vm_macro.def: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (exec_event_hooks): fix to check event flags</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (EXEC_EVENT_HOOK): fix to re-check event flags.</div><div class='add'>+</div><div class='add'>+	* ext/probeprofiler : added.  this profiler is sampling based</div><div class='add'>+	  profiler.</div><div class='add'>+</div><div class='add'>+	* vm.c: add rb_thread_current_status() API for probeprofiler.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_execute_interrupts): add comments.</div><div class='add'>+</div><div class='add'>+Wed Apr 25 10:36:03 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (PUSH_TAG): no argument now.</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_error.h, eval_jump.h, eval_load.c, proc.c, thread.c:</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (alloc_event_hook, rb_thread_remove_event_hook): should</div><div class='add'>+	  return value.</div><div class='add'>+</div><div class='add'>+Tue Apr 24 09:33:57 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (do_stat, do_lstat, do_opendir): should not warn ENOTDIR.</div><div class='add'>+	  [ruby-talk:248288]</div><div class='add'>+</div><div class='add'>+Mon Apr 23 22:14:42 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb ($ruby): add extout directory to include path.</div><div class='add'>+	  [ruby-core:11003]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (libpathflag): not to append RPATHFLAG to current</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): add current directory to default</div><div class='add'>+	  library path with highest priority.  [ruby-core:10960]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (LINK_SO): LIBPATH to be placed before DLDFLAGS.</div><div class='add'>+</div><div class='add'>+Fri Apr 20 16:05:22 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBPATHFLAG, RPATHFLAG): no needs to be quoted,</div><div class='add'>+	  it is done by libpathflag in mkmf.rb.</div><div class='add'>+</div><div class='add'>+Fri Apr 20 12:27:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: fix to override conv proc.</div><div class='add'>+</div><div class='add'>+Fri Apr 20 12:21:28 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): fixed access to out of bound, and inverted</div><div class='add'>+	  the order of errinfos.</div><div class='add'>+</div><div class='add'>+Fri Apr 20 10:33:23 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: add prototypes of rb_sourceline() and</div><div class='add'>+	  rb_sourcefile().</div><div class='add'>+</div><div class='add'>+Fri Apr 20 02:37:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): re-send signal.  [ruby-dev:30516]</div><div class='add'>+</div><div class='add'>+	* eval_error.h (error_handle): no message when exiting by signal.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.</div><div class='add'>+</div><div class='add'>+	* signal.c (esignal_init): takes a signal number and an optional</div><div class='add'>+	  signal name.</div><div class='add'>+</div><div class='add'>+	* signal.c (interrupt_init): pass SIGINT always.</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_default_signal): invoke system default signal</div><div class='add'>+	  handler.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_f_kill): use NUM2PIDT instead of NUM2INT.</div><div class='add'>+</div><div class='add'>+	* signal.c (rb_signal_exec, trap): handle SIGTERM.  [ruby-dev:30505]</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_signal_raise): now takes signal number instead</div><div class='add'>+	  of signal name.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_signal_exit): since rb_make_exception() calls</div><div class='add'>+	  #exception method, rb_class_new_instance() is not needed here.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h (struct rb_vm_struct), eval_jump.h (terminate_process):</div><div class='add'>+	  exit_code is no longer stored in VM.</div><div class='add'>+</div><div class='add'>+Thu Apr 19 18:37:49 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, node.h, thread.c, yarvcore.[ch], eval_intern.h:</div><div class='add'>+	  support set_trace_func (incomplete.  id and klass</div><div class='add'>+	  don't be passed).  And support Thread#set_trace_func</div><div class='add'>+	  which hook only specified thread and Thread#add_trace_func</div><div class='add'>+	  which add new trace func instead of replace old one.</div><div class='add'>+	  C level API was modified.  See thread.c (logic) and</div><div class='add'>+	  yarvcore.h (data structures).</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_macro.def: add hook points.</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def: fix "trace" instruction.</div><div class='add'>+</div><div class='add'>+	* iseq.c, vm_macro.h: add compile option "trace_instruction".</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: hook "c-return" of set_trace_func.</div><div class='add'>+</div><div class='add'>+Thu Apr 19 20:57:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (symbol): symbols should be followed by EXPR_ENDARG.</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): strings should be followed by</div><div class='add'>+	  EXPR_ENDARG.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ditto for numbers.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): EXPR_ENDARG after ']' and '}'.</div><div class='add'>+</div><div class='add'>+Thu Apr 19 17:46:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: fix to override conv proc.</div><div class='add'>+</div><div class='add'>+Wed Apr 18 10:41:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): exponent is radix 10.  [ruby-talk:248272]</div><div class='add'>+</div><div class='add'>+Wed Apr 18 02:50:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (th_init2): push initial blockptr value for</div><div class='add'>+	  rb_block_given_p() outside ruby_exec().  [ruby-core:10923]</div><div class='add'>+</div><div class='add'>+Wed Apr 18 02:30:24 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LDFLAGS): prepend -L. instead appending it to</div><div class='add'>+	  XLDFLAGS.  [ruby-core:10933]</div><div class='add'>+</div><div class='add'>+	* configure.in (Makefile): remove $U for automake from MISSING.</div><div class='add'>+	  [ruby-talk:248171]</div><div class='add'>+</div><div class='add'>+Mon Apr 16 22:56:01 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/expect_sample.rb: avoid symbolic link representation for</div><div class='add'>+	  expect.  a patch from Kazuhiro NISHIYAMA &lt;zn at mbf.nifty.com&gt;.</div><div class='add'>+	  [ruby-dev:30714]</div><div class='add'>+</div><div class='add'>+Mon Apr 16 22:51:11 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample: replace TRUE, FALSE with true, false respectively.</div><div class='add'>+	  a patch from Kazuhiro NISHIYAMA &lt;zn at mbf.nifty.com&gt;.</div><div class='add'>+	  [ruby-dev:30713]</div><div class='add'>+</div><div class='add'>+Mon Apr 16 17:08:02 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (make_switch): do not clobber converter if pattern</div><div class='add'>+	  has no convert method.  reported by sheepman in [ruby-dev:30709].</div><div class='add'>+</div><div class='add'>+Mon Apr 16 16:49:32 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_seek): consistent behavior with</div><div class='add'>+	  IO#seek.  patch by sheepman in [ruby-dev:30710].</div><div class='add'>+</div><div class='add'>+Mon Apr 16 16:34:08 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): should set command_start after block</div><div class='add'>+	  starting "do"s and braces.  [ruby-core:10916]</div><div class='add'>+</div><div class='add'>+Mon Apr 16 10:51:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_with_index): each_with_index to forward</div><div class='add'>+	  arguments to each.  [ruby-core:10921]</div><div class='add'>+</div><div class='add'>+Mon Apr 16 10:43:10 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_arg): should allow to specify 24:00.</div><div class='add'>+	  [ruby-core:10915]</div><div class='add'>+</div><div class='add'>+Sun Apr 15 09:12:54 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: added some zone names.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (_parse): now interprets doted numerical</div><div class='add'>+	  dates as a big endian (except dd.mm.yyyy).</div><div class='add'>+</div><div class='add'>+Thu Apr 12 17:13:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (mutex_try_lock): check and set owner thread.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci: fix to show error code in error message.</div><div class='add'>+</div><div class='add'>+Thu Apr 12 17:11:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): restore cfp ([ruby-dev:30582]).</div><div class='add'>+</div><div class='add'>+Thu Apr 12 16:06:48 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_protect): restore cfp ([ruby-dev:30671]).</div><div class='add'>+</div><div class='add'>+Thu Apr 12 16:04:31 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): check node-&gt;nd_state == 1, not !0.</div><div class='add'>+</div><div class='add'>+Wed Apr 11 16:35:16 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_enter_critical, rb_w32_leave_critical): no</div><div class='add'>+	  need to reject reentrance. removed.</div><div class='add'>+</div><div class='add'>+	* rubysig.h (RUBY_CRITICAL): follow above changes.</div><div class='add'>+</div><div class='add'>+	* rubysig.h (TRAP_BEG, TRAP_END): no need to save errno.</div><div class='add'>+</div><div class='add'>+Tue Apr 10 17:02:17 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_fclose, rb_w32_close): need to save errno</div><div class='add'>+	  before calling original fclose()/close().</div><div class='add'>+</div><div class='add'>+Tue Apr 10 16:14:22 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (w32_wait_events): check whether interrupt_event is</div><div class='add'>+	  valid handle or not.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (native_thread_destroy): clear interrupt_event when</div><div class='add'>+	  close it.</div><div class='add'>+</div><div class='add'>+Tue Apr 10 15:53:17 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (native_thread_create): initialize sleep_cond.</div><div class='add'>+	  fixed: [ruby-dev:30675]</div><div class='add'>+</div><div class='add'>+Mon Apr  9 18:48:57 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): ubf_select() is not necessary. interrupt is</div><div class='add'>+	  checked in the loop.</div><div class='add'>+</div><div class='add'>+Mon Apr  9 18:27:26 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): use ubf_select() as UBF on windows.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_select): shouldn't call catch_interrupt() here.</div><div class='add'>+	  fixed: [ruby-dev:30674], reported by wanabe.</div><div class='add'>+</div><div class='add'>+Mon Apr  9 09:24:32 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (disconnect): call shutdown for</div><div class='add'>+	  SSLSocket. Thanks, Technorama Ltd.</div><div class='add'>+</div><div class='add'>+Sun Apr  8 13:28:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): test arguments of NODE_CALL and so</div><div class='add'>+	  on as well as NODE_ATTRASGN.  [ruby-core:10886]</div><div class='add'>+</div><div class='add'>+Fri Apr  6 10:56:29 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_get_group): get rid of</div><div class='add'>+	  warning. we are aware of it.</div><div class='add'>+</div><div class='add'>+Fri Apr  6 04:00:24 2007  Technorama Ltd.  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_{bn,x509{attr,cert,name,store}}.c:</div><div class='add'>+	  Add documentation.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 17:59:19 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): support for assignment.</div><div class='add'>+	  [ruby-core:10867]</div><div class='add'>+</div><div class='add'>+	* compile.h (ADD_CATCH_ENTRY): removed temporary variable.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 15:13:34 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl_session.c (ossl_ssl_session_alloc): should</div><div class='add'>+	  return value.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 14:58:49 2007  Technorama Ltd. &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs5.c: New module.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_{cipher,digest,pkcs7,pkcs12}.c:</div><div class='add'>+	  Remove redundant module namespace.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/{cipher,digest}.rb</div><div class='add'>+	  Add backwards compatible classes for rearranged classes.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_{pkcs7,pkcs12}.c: Add documentation.</div><div class='add'>+</div><div class='add'>+Thu Apr  5 00:42:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_notimplement), io.c (pipe_open): removed definite</div><div class='add'>+	  articles and UNIX manual section from messages.  [ruby-dev:30690]</div><div class='add'>+</div><div class='add'>+Wed Apr  4 17:09:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): refined the message of NotImplementedError.</div><div class='add'>+	  [ruby-dev:30685]</div><div class='add'>+</div><div class='add'>+Wed Apr  4 12:29:02 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_notimplement): should show the name of this func,</div><div class='add'>+	  not callee.</div><div class='add'>+</div><div class='add'>+Wed Apr  4 10:18:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (popen_exec): should not close close-on-exec FDs.</div><div class='add'>+	  [ruby-dev:30679]</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): raise NotImplementedError for command "-" on</div><div class='add'>+	  platforms where fork(2) is not available.  [ruby-dev:30681]</div><div class='add'>+</div><div class='add'>+Tue Apr  4 04:17:18 2007  Technorama Ltd. &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: Add documentation.</div><div class='add'>+</div><div class='add'>+Tue Apr  3 16:22:24 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check for functions added in 1.9.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ruby_missing.h: check per features instead by</div><div class='add'>+	  checking version code.  [ruby-core:10845]</div><div class='add'>+</div><div class='add'>+Tue Apr  3 16:02:44 2007  Technorama Ltd. &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c: More documentation.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/ossl_{pkey,pkey_ec}.[ch]: Add elliptic curves.</div><div class='add'>+</div><div class='add'>+Tue Apr  3 15:50:41 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recv, s_recvfrom): some systems (such as</div><div class='add'>+	  windows) doesn't set fromlen if the socket is connection-oriented.</div><div class='add'>+	  reported by Bram Whillock in [ruby-core:10512] [ruby-Bugs#9061]</div><div class='add'>+</div><div class='add'>+Tue Apr  3 09:36:55 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ruby_missing.h: need to include version.h to check</div><div class='add'>+	  RUBY_VERSION_CODE.</div><div class='add'>+</div><div class='add'>+Mon Apr  3 07:10:12 2007  Technorama Ltd. &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_{ssl.[ch],ssl_session.c},</div><div class='add'>+	  ext/openssl/lib/openssl/lib/openssl/ssl.rb:</div><div class='add'>+	  New SSL::Session class.  Add session cb's, getter/setters,</div><div class='add'>+	  config, and statistics methods.</div><div class='add'>+</div><div class='add'>+Mon Apr  3 04:00:23 2007  Technorama Ltd. &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/{ossl.[ch],ossl_pkey.c} Add documentation.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c Add reset method.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (Cipher#update) Take additional</div><div class='add'>+	  buffer argument.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/{ossl_bio.c,ossl_ssl.c,ruby_missing.h}</div><div class='add'>+	  compatibility with 1.8.</div><div class='add'>+</div><div class='add'>+Mon Apr  2 21:55:12 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (throw), thread.c, yarvcore.h (throwed_errinfo): fixed</div><div class='add'>+	  typo.</div><div class='add'>+</div><div class='add'>+Fri Mar 30 11:46:51 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_cmdvector): fixed buffer size. reported by</div><div class='add'>+	  wanabe [ruby-dev:30672]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env, insert, rb_w32_get_environ): use strdup</div><div class='add'>+	  instead of malloc + strlcpy. suggested by nobu [ruby-dev:30673]</div><div class='add'>+</div><div class='add'>+Fri Mar 30 02:29:04 2007  Technorama  &lt;oss-ruby@technorama.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_{bn,cipher,digest,hmac,rand,pkey_{dh,dsa,rsa}}.c:</div><div class='add'>+	  Add Documentation for various methods.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/cipher.rb: Ditto</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c: add lshift! and rshift! methods.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: GetDigestPtr() also accept a string.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 11:28:24 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env, insert, cmdglob, rb_w32_cmdvector,</div><div class='add'>+	  rb_w32_opendir, rb_w32_readdir, rb_w32_strerror, rb_w32_stati64,</div><div class='add'>+	  rb_w32_get_environ): use strlcpy() and strlcat().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir): use realloc() instead of xrealloc().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_closedir): check NULL before free pointers.</div><div class='add'>+</div><div class='add'>+Fri Mar 23 00:24:52 2007  Keiju Ishitsuka &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell: commit miss(support for ruby 1.9(YARV) thread model).</div><div class='add'>+</div><div class='add'>+Thu Mar 22 13:32:17 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LIBS): remove an unnecessary library.</div><div class='add'>+</div><div class='add'>+Thu Mar 22 10:27:58 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb (test_to_s): add tests for Bignum#to_s.</div><div class='add'>+</div><div class='add'>+Wed Mar 21 20:38:06 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_short, w_long, w_object): get rid of VC++ warnings.</div><div class='add'>+</div><div class='add'>+Wed Mar 21 20:05:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, parse.y, eval.c, intern.h, iseq.c, lex.c, node.h,</div><div class='add'>+	  proc.c, vm.c, vm_macro.def, vm_macro.def, yarvcore.c, yarvcore.h,</div><div class='add'>+	  debug.c, debug.h: merge half-baked-1.9 changes.  The biggest change</div><div class='add'>+	  is to change node structure around NODE_SCOPE, NODE_ARGS.  Every</div><div class='add'>+	  scope (method/class/block) has own NODE_SCOPE node and NODE_ARGS</div><div class='add'>+	  represents more details of arguments information.  I'll write a</div><div class='add'>+	  document about detail of node structure.</div><div class='add'>+</div><div class='add'>+Wed Mar 21 17:04:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): round up for the most significant digit.</div><div class='add'>+	  [ruby-core:10686]</div><div class='add'>+</div><div class='add'>+Tue Mar 21 08:20:00 2007  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb: Fixed test/unit tests that</div><div class='add'>+	  were breaking due to Module#public_instance_methods now</div><div class='add'>+	  returning a Symbol instead of a String.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_objectspace.rb: Ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 20 22:54:50 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_extended): erroneous check condition when dump</div><div class='add'>+	  method is defined.  [ruby-core:10646]</div><div class='add'>+</div><div class='add'>+Tue Mar 20 21:36:47 2007  Keiju Ishitsuka &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell.rb, lib/shell: support for ruby 1.9(YARV) thread model.</div><div class='add'>+</div><div class='add'>+Tue Mar 20 16:36:08 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* distruby.rb: Add zip generation.</div><div class='add'>+</div><div class='add'>+Tue Mar 20 16:20:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_callee_name): add __method__ and __callee__ again.</div><div class='add'>+	  __callee__ need to rework to adopt YARV.  [ruby-core:10671]</div><div class='add'>+</div><div class='add'>+Tue Mar 20 11:09:00 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Revise rdoc.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#freeze, Set#taint, Set#untaint): Implement</div><div class='add'>+	  Set#freeze, Set#taint, and Set#untaint; requested by: Dan</div><div class='add'>+	  Hutchings &lt;dan AT moltoagitato.com&gt; in [ruby-bugs:PR#9359].</div><div class='add'>+</div><div class='add'>+Tue Mar 20 09:13:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): flush stdouts always before fork(2).</div><div class='add'>+	  fixed: [ruby-dev:30612]</div><div class='add'>+</div><div class='add'>+Tue Mar 20 01:38:48 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): store the result of first_func</div><div class='add'>+	  as well as first_proc.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_create_core): block is not used if first_func</div><div class='add'>+	  is given.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 16:58:52 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/{strlcat,strlcpy}.c, missing.h: new functions.</div><div class='add'>+</div><div class='add'>+	* LEGAL: add copyright notice about above files.</div><div class='add'>+</div><div class='add'>+	* configure.in: check whether strlcat and strlcpy are exist or not.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub: use above files.</div><div class='add'>+</div><div class='add'>+Mon Mar 19 14:12:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix::inverse_from): adding partial pivoting to</div><div class='add'>+	  the Gauss-Jordan algorithm, making it stable.  a patch from</div><div class='add'>+	  Peter Vanbroekhoven.  [ruby-core:10641]</div><div class='add'>+</div><div class='add'>+Mon Mar 19 12:13:36 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c, etc.: K&amp;R to ANSI code cleanup patch from Stefan</div><div class='add'>+	  Huehner &lt;stefan at huehner.org&gt;.  [ruby-core:10543]</div><div class='add'>+</div><div class='add'>+Mon Mar 19 11:27:13 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (rbuf_read): extend buffer size for speed.</div><div class='add'>+</div><div class='add'>+Sun Mar 18 08:31:51 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/dir.h, win32/win32.c (rb_w32_opendir, rb_w32_readdir,</div><div class='add'>+	  rb_w32_closedir): get rid of possible buffer-overflows.</div><div class='add'>+</div><div class='add'>+Sat Mar 17 19:10:39 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss, test/rss:</div><div class='add'>+	- supported Atom.</div><div class='add'>+	- bumped version 0.1.6 to 0.1.7.</div><div class='add'>+	* sample/rss/convert.rb: added new sample.</div><div class='add'>+</div><div class='add'>+Fri Mar 16 22:32:20 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: change default verification mode from</div><div class='add'>+	  VERIFY_PEER to VERIFY_NONE because most POPS server does not have</div><div class='add'>+	  true certification.</div><div class='add'>+</div><div class='add'>+Fri Mar 16 22:19:24 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE#ole_activex_initialize,</div><div class='add'>+	  a little bit supporting ActiveX control. [ruby-talk:241188]</div><div class='add'>+</div><div class='add'>+Fri Mar 16 22:16:58 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: merge Ruby-SSPI patch contributed by Justin</div><div class='add'>+	  Bailey.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/lib/win32/sspi.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Mar 14 12:30:00 2007  Shigeo Kobayashi  &lt;shigeo@tinyforest.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: BigDecimal("-.31") is now</div><div class='add'>+	  treated as ("-0.31") not as ("0.31").</div><div class='add'>+</div><div class='add'>+Tue Mar 13 19:04:30 2007  Keiju Ishitsuka &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/sync.rb: support for ruby 1.9(YARV) thread model.</div><div class='add'>+</div><div class='add'>+Tue Mar 13 09:25:10 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (clear-installed-list): separated from install-prereq.</div><div class='add'>+</div><div class='add'>+Tue Mar 13 07:23:20 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (mon_try_enter): call @mon_muetx.try_lock.</div><div class='add'>+	  Thanks, Keiju ISHITSUKA. [ruby-dev:30507]</div><div class='add'>+</div><div class='add'>+Tue Mar 13 02:42:58 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::header): IIS &gt;= 5.0 does not need the nph</div><div class='add'>+	  assumption any more; submitted by MIYASAKA Masaru &lt;alkaid AT</div><div class='add'>+	  coral.ocn.ne.jp&gt; in [ruby-dev:30537].</div><div class='add'>+</div><div class='add'>+Mon Mar 12 10:53:28 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (Init_ossl_asn1): Let rdoc know about</div><div class='add'>+	  externally defined modules; submitted by Technorama</div><div class='add'>+	  Ltd. &lt;oss-ruby AT technorama.net&gt; in [ruby-bugs:PR#4704].</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c (Init_ossl_bn): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (Init_ossl_cipher): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c (Init_ossl_digest): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c (Init_ossl_hmac): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c (Init_ossl_pkey): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c (Init_ossl_dsa): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_rand.c (Init_ossl_rand): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (Init_ossl_ssl): Ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 11 18:42:01 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-block-end-re): Support for the</div><div class='add'>+	  experimental ';;' terminator had been dropped.</div><div class='add'>+</div><div class='add'>+Sun Mar 11 05:45:46 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/README, misc/rdebug.el: Add rdebug.el, Emacs ruby-debug</div><div class='add'>+	  interface based on rubydb3x.el; submitted by Martin Nordholts</div><div class='add'>+	  &lt;enselic AT gmail.com&gt; in [ruby-bugs:PR#9023].</div><div class='add'>+</div><div class='add'>+Sat Mar 10 07:20:28 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_TYPELIB#library_name,</div><div class='add'>+	  WIN32OLE_TYPELIB#visible?.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_typelib.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar  8 09:17:59 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c: iseq_compile -&gt; rb_iseq_compile.</div><div class='add'>+</div><div class='add'>+	* iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+	* intern.h: provide function prototype of Init_jump.</div><div class='add'>+</div><div class='add'>+	* eval_jump.h (Init_jump): declare function type.</div><div class='add'>+</div><div class='add'>+	* thread.c: platform-dependent functions should be surrounded by #ifdef.</div><div class='add'>+</div><div class='add'>+	* iseq.c (iseq_data_to_ary): remove unused variable.</div><div class='add'>+</div><div class='add'>+	* compile.c (set_arguments): ditto.</div><div class='add'>+</div><div class='add'>+	* thread.c (set_unblock_function): ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci: reduce printf warning.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 16:35:04 2007  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell/process-controller.rb: fix thread synchronization problem for [ruby-dev:30477].</div><div class='add'>+</div><div class='add'>+Tue Mar  6 11:53:25 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/irbtkw.rbw: fails to exit process.</div><div class='add'>+</div><div class='add'>+Tue Mar  6 10:23:09 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: added --pure (turned on by default) and --debugger</div><div class='add'>+	  options.</div><div class='add'>+</div><div class='add'>+Mon Mar  5 09:19:33 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout.timeout): should return the block value</div><div class='add'>+	  always.</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout.timeout): should yield sec argument</div><div class='add'>+	  always.</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb (Timeout.timeout): fix document.</div><div class='add'>+</div><div class='add'>+Mon Mar  5 09:16:40 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: support automatic STARTTLS.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: check server advertisement.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: introduce new class SMTP::Response.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (getok): should not use sprintf.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (get_response): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: reduce syntax warning on 1.9.</div><div class='add'>+</div><div class='add'>+Mon Mar  5 07:13:28 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: reconstruct SMTPS/STARTTLS interface.  New</div><div class='add'>+	  interface is incompatible from current 1.9 interface at all.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: All SSL-related class methods are removed; use</div><div class='add'>+	  instance methods instead.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: rename methods: *ssl -&gt; *tls (with alias</div><div class='add'>+	  "ssl").</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: rename methods: *tls -&gt; *starttls.</div><div class='add'>+</div><div class='add'>+Mon Mar  5 01:36:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex), win32/win32.c (rb_w32_utime): fixed</div><div class='add'>+	  indentation broken at YARV merger.</div><div class='add'>+</div><div class='add'>+Sun Mar  4 23:41:14 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_uid, rb_stat_gid, eaccess): use rb_uid_t and</div><div class='add'>+	  rb_gid_t instead of int.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_s_utime): fixed a commit miss for the platforms</div><div class='add'>+	  where utimes() does not exist.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (touch): ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar  4 14:46:56 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (push_element): should return a int value.</div><div class='add'>+</div><div class='add'>+Sun Mar  4 01:01:25 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#^, Set#&amp;): Correct documentation.  Those methods</div><div class='add'>+	  return sets, not arrays; noted by Oliver Frank Wittich &lt;nietz AT</div><div class='add'>+	  mangabrain.de&gt;.</div><div class='add'>+</div><div class='add'>+Sat Mar  3 22:54:33 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (touch): last #touch change causes error when</div><div class='add'>+	  :mtime option was not given.</div><div class='add'>+</div><div class='add'>+Sat Mar  3 22:51:29 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mv): could not move directory between</div><div class='add'>+	  different file systems. [ruby-dev:30411]</div><div class='add'>+</div><div class='add'>+Sat Mar  3 22:37:02 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_utime): allow nil to set the current time.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (touch): ditto, and added :mtime and :nocreate</div><div class='add'>+	  options.  fixed: [ruby-talk:219037]</div><div class='add'>+</div><div class='add'>+Sat Mar  3 15:52:26 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (instance_variable_get): Restore rdoc markups lost in</div><div class='add'>+	  the last commit.</div><div class='add'>+</div><div class='add'>+Fri Mar  2 21:17:14 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (get_ptr_of_variant, ole_set_safe_array,</div><div class='add'>+	  ole_val2ptr_variant, ole_val2olevariantdata, ole_variant2val,</div><div class='add'>+	  ): fix some bugs of WIN32OLE_VARIANT.new when variant type is</div><div class='add'>+	  VT_ARRAY|VT_BSTR or VT_BYREF.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (folevariant_s_array, folevariant_initialize):</div><div class='add'>+	  WIN32OLE_VARIANT#[], WIN32OLE_VARIANT#[]=, WIN32OLE_VARIANT#value=</div><div class='add'>+	  is defined as instance method of WIN32OLE_VARIANT.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: add some test for</div><div class='add'>+	  VT_ARRAY, VT_BYREF variant type.</div><div class='add'>+</div><div class='add'>+Fri Mar  2 07:58:24 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_set): RDoc updated according to a</div><div class='add'>+	  suggestion from Brian Candler &lt;B.Candler AT pobox.com&gt;.</div><div class='add'>+	  [ruby-core:10469]</div><div class='add'>+</div><div class='add'>+Thu Mar  1 21:38:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, arg): should not omit lhs of OP_ASGN1 even if</div><div class='add'>+	  empty.  [ruby-dev:30455]</div><div class='add'>+</div><div class='add'>+Thu Mar  1 02:55:25 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (get_digest_base_metadata): Allow inheriting</div><div class='add'>+	  Digest::Base subclasses, which was unintentionally made</div><div class='add'>+	  impossible while restructuring Digest classes.</div><div class='add'>+</div><div class='add'>+Thu Mar  1 02:05:17 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (patchlevel): read from version.h.</div><div class='add'>+</div><div class='add'>+Wed Feb 28 21:15:00 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_fcntl): fcntl support for MinGW.</div><div class='add'>+</div><div class='add'>+	* missing/flock.c: workaround for MinGW.</div><div class='add'>+</div><div class='add'>+Wed Feb 28 20:51:32 2007  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): properly ignore non-base64 octets such as</div><div class='add'>+	  UTF-8 encoded BOMs; submitted by SOUMA Yutaka &lt;holon@radastery.jp&gt;</div><div class='add'>+	  to fix [ruby-core:10437]</div><div class='add'>+</div><div class='add'>+Wed Feb 28 18:31:51 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: no need to check unistd.h and sys/time.h.</div><div class='add'>+	  they are already checked at configure.</div><div class='add'>+	  reported by KOBAYASHI Yasuhiro [ruby-list:43225]</div><div class='add'>+</div><div class='add'>+Wed Feb 28 18:23:43 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($DEFLIBPATH): default library paths ($(topdir), etc)</div><div class='add'>+	  should be the first elements of library paths list.</div><div class='add'>+	  reported by KOBAYASHI Yasuhiro [ruby-list:43225]</div><div class='add'>+</div><div class='add'>+Wed Feb 28 10:33:58 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, configure.in, */Makefile.sub (THREAD_MODEL): system</div><div class='add'>+	  specific thread model.</div><div class='add'>+</div><div class='add'>+	* compile.h, regint.h, vm.h, array.c: removed unnecessary #include.</div><div class='add'>+</div><div class='add'>+Wed Feb 28 04:03:03 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (take_i): small cosmetic / documentation patch from</div><div class='add'>+	  Tadashi Saito &lt;shiba AT mail2.accsnet.ne.jp&gt;. [ruby-dev:30446]</div><div class='add'>+</div><div class='add'>+Wed Feb 28 01:20:18 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/{dbm,gdbm}/test_{dbm,gdbm}.rb: shouldn't use host_os. use</div><div class='add'>+	  target_os instead. reported by KOBAYASHI Yasuhiro [ruby-list:43225]</div><div class='add'>+</div><div class='add'>+Wed Feb 28 00:08:11 2007  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb (RbConfig): add CONFIG['PATCHLEVEL']</div><div class='add'>+</div><div class='add'>+	* common.mk: new target dist</div><div class='add'>+</div><div class='add'>+	* distruby.rb: new file</div><div class='add'>+</div><div class='add'>+Tue Feb 27 22:18:45 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (--enable-auto-image-base): avoid the necessity to</div><div class='add'>+	  rebase the shared libs as much as possible;</div><div class='add'>+	  submitted by Corinna Vinschen &lt;spam at vinschen.de&gt; in</div><div class='add'>+	  [ruby-talk:240964].</div><div class='add'>+</div><div class='add'>+Tue Feb 27 21:36:47 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (__crt0_glob_function): use ruby_glob() instead of rb_globi().</div><div class='add'>+</div><div class='add'>+Tue Feb 27 21:33:04 2007  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_setrlimit): workaround for djgpp.</div><div class='add'>+</div><div class='add'>+Tue Feb 27 20:35:28 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (error.c, process.c): depend on yarvcore.h and rubysig.h.</div><div class='add'>+</div><div class='add'>+Tue Feb 27 19:26:31 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_str_resize, rb_nkf_kconv, rb_nkf_guess1,</div><div class='add'>+	  rb_nkf_guess2): Silence warnings regarding char * vs. unsigned</div><div class='add'>+	  char * mismatch; submitted by Lyle Johnson</div><div class='add'>+	  &lt;lyle.johnson@gmail.com&gt; in [ruby-core:10416].</div><div class='add'>+</div><div class='add'>+Tue Feb 27 19:15:01 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb (Base64::b64encode): Fix documentation; submitted</div><div class='add'>+	  by David Symonds &lt;dsymonds@gmail.com&gt; in [ruby-core:10432].</div><div class='add'>+</div><div class='add'>+Tue Feb 27 18:59:42 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_load): Silence warnings</div><div class='add'>+	  regarding char * vs. unsigned char * mismatch; submitted by Lyle</div><div class='add'>+	  Johnson &lt;lyle.johnson@gmail.com&gt; in [ruby-core:10416].</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/sha1ossl.c (SHA1_Finish): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/rmd160ossl.c (RMD160_Finish): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_finish,</div><div class='add'>+	  rb_digest_base_update): Ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 27 18:12:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_take): new method.  [ruby-dev:30407]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_drop): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb 27 07:47:24 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, vm.h: rename th_invoke_yield() to th_yield().</div><div class='add'>+</div><div class='add'>+	* blockinlining.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def: rename th_invoke_yield_cfunc()</div><div class='add'>+	  to th_yield_with_cfunc().</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c: rename theYarvVM to ruby_current_vm and</div><div class='add'>+	  yarvCurrentThread to ruby_current_thread.  remove yarvVMArray.</div><div class='add'>+</div><div class='add'>+Tue Feb 27 00:45:23 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_optimization.rb: restore method before calling</div><div class='add'>+	  assert_equal.</div><div class='add'>+</div><div class='add'>+Mon Feb 26 00:58:39 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: add rb_thread_t#top_wrapper, top_self.</div><div class='add'>+</div><div class='add'>+	* eval_load.c (rb_load): support eval in wrapper module</div><div class='add'>+	  (load(file, true)).</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_jump.h: ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def: add a empty line.</div><div class='add'>+</div><div class='add'>+Mon Feb 26 00:54:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: change "gdb" rule.  You can debug miniruby with</div><div class='add'>+	  $(srcdir)/test.rb on gdb by this rule (type "make gdb").</div><div class='add'>+	  If you write break points to "breakpoints.gdb" on $srcdir,</div><div class='add'>+	  gdb runs with this file.</div><div class='add'>+</div><div class='add'>+Sun Feb 25 11:46:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: enable -Zi (debug) option.</div><div class='add'>+</div><div class='add'>+Sun Feb 25 11:38:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: define RUBY_VM macro and remove NATIVETHREAD* macros.</div><div class='add'>+</div><div class='add'>+	* intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* signal.c (posix_signal): remove unused function</div><div class='add'>+	  posix_nativethread_signal().</div><div class='add'>+</div><div class='add'>+Sun Feb 25 11:31:13 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_run): fix to ANSI style.</div><div class='add'>+</div><div class='add'>+Sun Feb 25 11:09:16 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: show source code in error message.</div><div class='add'>+</div><div class='add'>+Sun Feb 25 09:39:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h:</div><div class='add'>+	  rename:</div><div class='add'>+	    rb_iseq_t#file_name -&gt; filename</div><div class='add'>+	    rb_iseq_t#local_tbl -&gt; local_table</div><div class='add'>+	  add:</div><div class='add'>+	    rb_iseq_t#local_table_size</div><div class='add'>+</div><div class='add'>+	* compile.c: separate local_table_size and local_size</div><div class='add'>+	  (local variable size)</div><div class='add'>+</div><div class='add'>+	* blockinlining.c: apply above rename.</div><div class='add'>+</div><div class='add'>+	* compile.h: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+	* proc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 25 10:27:17 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: add lib/ to load path.</div><div class='add'>+</div><div class='add'>+Sat Feb 25 10:16:50 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h (HAVE_RB_IO_T): macro to tell if rb_io_t is defined.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 19:39:16 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: new target "btest", to run bootstraptests.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 19:30:40 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c, gc.c, io.c, ruby.h, rubyio.h, win32/win32.h (rb_io_t):</div><div class='add'>+	  renamed from OpenFile.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c, ext/io/wait/wait.c, ext/openssl/ossl.h,</div><div class='add'>+	  ext/openssl/ossl_bio.c, ext/openssl/ossl_ssl.c, ext/pty/pty.c,</div><div class='add'>+	  ext/readline/readline.c, ext/socket/socket.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 19:28:23 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: new option -v,--verbose.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 18:55:50 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb: removed (merged to bootstraptest).</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 18:44:39 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_class.rb: new file.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: add tests.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 18:44:30 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_thread_blocking_region): add prototype.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_thread_flock, rb_file_flock): use UBF feature.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_waitpid_blocking, rb_waitpid): use UBF feature.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_debug): added runtime debugging flag.</div><div class='add'>+</div><div class='add'>+	* thread.c (BLOCKING_REGION): restore previous UBF.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_blocking_region): default UBF to interrupt</div><div class='add'>+	  in system dependent way by RB_UBF_DFL.</div><div class='add'>+	  + ubf_select() on posix system</div><div class='add'>+	  + ubf_handle() on Win32</div><div class='add'>+	  + none on cygwin</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (rb_w32_wait_events_blocking): blocking version.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (waitpid): use rb_w32_wait_events_blocking().</div><div class='add'>+</div><div class='add'>+Sat Feb 24 17:45:48 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg, opt_f_block_arg): ripper should export VALUE.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 16:52:55 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: fix syntax error.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 16:51:09 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: new option --help.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 16:47:33 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* bootstraptest: new test suite.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/runner.rb: new file.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_literal.rb: new file.</div><div class='add'>+</div><div class='add'>+	* bootstraptest/test_method.rb: new file.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 16:29:15 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSocket): remove unnecessary code.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 16:04:30 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct local_vars): remove unused nofree member from</div><div class='add'>+	  struct.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_free): ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 15:57:19 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (ConditionVariable#broadcast): use Mutex</div><div class='add'>+	  instead of Thread.exclusive.</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (MonitorMixin#mon_exit): unset @mon_owner</div><div class='add'>+	  before calling Mutex#unlock.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 15:51:45 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (program): remove useless assignment to reduce warning.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 15:41:51 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lambda): remove unused clause from the rule to stop</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 15:41:22 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: do not redefine Mutex#synchronize.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 15:14:02 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: rewritten using Mutex/ConditionVariable.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 13:25:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/factory.rb: catch up with spec changes (return</div><div class='add'>+	  Symbols instead of Strings).</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/mapping.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 10:49:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y, node.h, compile.c: change node tree structure.  a purpose</div><div class='add'>+	  of this change is to unify argument structure of method and block.</div><div class='add'>+	  this change prohibits duplicate block parameter name.</div><div class='add'>+	  new argument information:</div><div class='add'>+	    NODE_ARGS	  [m: int, o: NODE_OPT_ARG, -&gt;]</div><div class='add'>+	    NODE_ARGS_AUX [r: ID, b: ID, -&gt;]</div><div class='add'>+	    NODE_ARGS_AUX [Pst: id, Plen: int, init: NODE*]</div><div class='add'>+	  optarg information:</div><div class='add'>+	    NODE_OPT_ARGS [idx, expr, -&gt;]</div><div class='add'>+</div><div class='add'>+	* vm_macro.def: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+	* compile.h: fix debug function name.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: |_,_,foo| -&gt; |_1,_2,foo|</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: disable test temporarily.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 10:46:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_testcase.rb: catch up with current instance</div><div class='add'>+	  variable spec.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 10:32:59 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: change vm_macro.def rule.</div><div class='add'>+</div><div class='add'>+Sat Feb 24 10:38:05 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c (cparse_params_mark): remove useless</div><div class='add'>+	  rb_gc_mark.  Thanks Tomoyuki Chikanaga. [ruby-dev:30405]</div><div class='add'>+</div><div class='add'>+Sat Feb 24 07:31:35 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_VARIANT.array,</div><div class='add'>+	  WIN32OLE_VARIANT#value=, refactoring.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: add some test for</div><div class='add'>+	  WIN32OLE_VARIANT.array, WIN32OLE_VARIANT#value=.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 18:37:55 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_yield.rb: new test.</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_yield.rb: removed (moved to test_yield.rb).</div><div class='add'>+</div><div class='add'>+Fri Feb 23 18:27:17 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_polling): check interrupts here.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (w32_wait_events): rename from w32_wait_event(), and</div><div class='add'>+	  now receive multiple event handles.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wait_events, rb_w32_main_context): removed.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (rb_w32_wait_events): new function.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci, win32/win32.c (rb_w32_sleep, rb_w32_Sleep): move</div><div class='add'>+	  from win32/win32.c to thread_win32.ci, and use w32_wait_events().</div><div class='add'>+</div><div class='add'>+Fri Feb 23 18:13:22 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_optimization.rb: new test (merges test_opts.rb).</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_opts.rb: removed.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 16:59:39 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: merge yarvtest/test_massign.</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_massign.rb: removed (merged to</div><div class='add'>+	  test_assignment.rb).</div><div class='add'>+</div><div class='add'>+Fri Feb 23 15:58:20 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandler): need to re-install sighandler on some</div><div class='add'>+	  platforms.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 15:05:57 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (set_pioinfo_extra): simplified.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 14:23:20 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_literal.rb: new test.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 12:40:12 2007  James Edward Gray II  &lt;james@grayproductions.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): Make the</div><div class='add'>+	  Content-Length parameter optional for responses in</div><div class='add'>+	  xmlrpc/client.rb; suggested by Daniel Berger</div><div class='add'>+	  &lt;Daniel.Berger@qwest.com&gt; and approved by the maintainer.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): Add DateTime</div><div class='add'>+	  support to xmlrpc; approved by the maintainer.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 12:24:46 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lambda): add ripper event.  This fixes bus error on</div><div class='add'>+	  "make test-all".</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb: do not stop build.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 12:16:05 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove dyna_check_gen() prototype.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 11:41:21 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y, compile.c, gc.c, insns.def, intern.h, iseq.c, node.h,</div><div class='add'>+	  object.c, string.c, variable.c, vm_macro.def: revert private</div><div class='add'>+	  instance variable feature, which is postponed until next major</div><div class='add'>+	  release.</div><div class='add'>+</div><div class='add'>+	* marshal.c: TYPE_SYMBOL2 removed; MARSHAL_MINOR reverted back to</div><div class='add'>+	  8th version.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 10:53:21 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (native_mutex_lock): do not call</div><div class='add'>+	  pthread_mutex_trylock().</div><div class='add'>+</div><div class='add'>+Fri Feb 23 10:31:16 2007  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: use dlopen on Mac OS X 10.3 or later.</div><div class='add'>+</div><div class='add'>+Fri Feb 23 10:03:49 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ord): need not to check string length;  ord</div><div class='add'>+	  returns a codepoint for the first character in the string.</div><div class='add'>+</div><div class='add'>+Wed Feb 21 22:29:45 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_equal): A bit more optimization.</div><div class='add'>+</div><div class='add'>+Wed Feb 21 17:40:37 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_equal): remove FIX2LONG() to optimize.  suggested</div><div class='add'>+	  in http://t-a-w.blogspot.com/2007/02/making-ruby-faster.html.</div><div class='add'>+	  [ruby-talk:240223]</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_cmp): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 21 09:14:04 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c (rb_require_safe): should restore safe level.</div><div class='add'>+</div><div class='add'>+Tue Feb 20 21:19:29 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (installed_code_page_proc,</div><div class='add'>+	  ole_variant2val): small refactoring.</div><div class='add'>+</div><div class='add'>+Tue Feb 20 15:11:42 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, vm.c, yarvcore.h: move definition of rb_call_super() to</div><div class='add'>+	  vm.c from eval.c.  change th_call_super() to static function.</div><div class='add'>+</div><div class='add'>+Tue Feb 20 15:08:25 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb: YARV doesn't raise any errors if</div><div class='add'>+	  another thread close IO object which current thread is blocking with.</div><div class='add'>+</div><div class='add'>+Tue Feb 20 15:03:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select, rb_thread_wait_fd_rw): raise sys error if</div><div class='add'>+	  errno is not 0 and EBADF.</div><div class='add'>+</div><div class='add'>+Mon Feb 19 22:15:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_REPLACE_TYPE): cache convertible type info.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_detach_process): use rb_pid_t instead of pid_t.</div><div class='add'>+</div><div class='add'>+	* ruby.h (PIDT2NUM, NUM2PIDT, UIDT2NUM, NUM2UIDT, GIDT2NUM, NUM2GIDT):</div><div class='add'>+	  defaulted to conversion using long.</div><div class='add'>+</div><div class='add'>+Mon Feb 19 17:14:28 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_peeraddr): wrong syscall name in error</div><div class='add'>+	  message for #peeraddr. a patch from Sam Roberts</div><div class='add'>+	  &lt;sroberts at uniserve.com&gt;.  [ruby-core:10366]</div><div class='add'>+</div><div class='add'>+Sun Feb 18 22:56:07 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getgrgid): missed to replace a macro.</div><div class='add'>+</div><div class='add'>+Sun Feb 18 19:33:00 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: updated based on date2 4.0.3.</div><div class='add'>+</div><div class='add'>+Sun Feb 18 13:11:51 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (pid_t, uid_t, gid_t): check if defined.</div><div class='add'>+</div><div class='add'>+	* intern.h, process.c, rubyio.h, ext/etc/etc.c, ext/pty/pty.c: use</div><div class='add'>+	  rb_{pid,uid,gid}_t instead of plain int.  [ruby-dev:30376]</div><div class='add'>+</div><div class='add'>+	* ext/etc/extconf.rb (PIDT2NUM, NUM2PIDT, UIDT2NUM, NUM2UIDT, GIDT2NUM,</div><div class='add'>+	  NUM2GIDT): moved to configure.in.</div><div class='add'>+</div><div class='add'>+Fri Feb 16 21:34:33 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_set/get/defined): fix to check :@_v/C id.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_testcase.rb: fix to use instance_variable_get()</div><div class='add'>+	  to access @_result.</div><div class='add'>+</div><div class='add'>+Fri Feb 16 20:59:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: add a prototype of rb_sym_to_s().</div><div class='add'>+</div><div class='add'>+Fri Feb 16 19:24:22 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): update document to mention second optional</div><div class='add'>+	  argument for logarithm base.</div><div class='add'>+</div><div class='add'>+Fri Feb 16 19:19:21 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mrhs): need to append by arg_append().</div><div class='add'>+	  [ruby-talk:239385]</div><div class='add'>+</div><div class='add'>+Fri Feb 16 11:18:21 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/.document: Apply patch for irb, e2mmap and README by Hugh Sasse</div><div class='add'>+	  &lt;hgs at dmu.ac.uk&gt; from [ruby-core:10135]</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb: Suppress RDoc for PrettyPrint test suite.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 20:48:36 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (set_pioinfo_extra): new function for VC++8 SP1</div><div class='add'>+	  workaround. [ruby-core:10259]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtInitialize): call above function.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 16:25:54 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::userinfo): Considering how</div><div class='add'>+	  `scheme://user:@...', `scheme://:password@...' and</div><div class='add'>+	  `scheme://:@...' are parsed, an empty user name or password</div><div class='add'>+	  should be allowed and represented as it is.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 01:52:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.(c|h), yarvcore.(c|h) (yarvGlobalStateVersion): rename to</div><div class='add'>+	  ruby_vm_global_state_version.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 01:50:26 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (check_singleton): fix to use</div><div class='add'>+	  symbol instead of string.</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb: enable tests.</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 15 01:43:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: catch up with class local variable (@_v) spec.</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 22:52:43 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_variant2val): VC++6 does not</div><div class='add'>+	  support VT_I8, VT_UI8.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 22:10:21 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: change stack limit to 2MB from 32MB.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 21:39:36 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest::self.const_missing): Drop</div><div class='add'>+	  autoloads for sha2 classes in favor of handling in</div><div class='add'>+	  const_missing(), to work around a problem exposed on OS X.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 21:19:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (native_thread_create): adjust 4KB (page size)</div><div class='add'>+	  alignment.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 21:12:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (CHECK_ERR): call rb_bug()</div><div class='add'>+	  instead of printf() and exit().</div><div class='add'>+</div><div class='add'>+Wed Feb 14 16:48:56 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date::Format::Bag::method_missing): need not</div><div class='add'>+	  to use instance variables corresponding each method; use Hash</div><div class='add'>+	  instead.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 13:12:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (reg_operand): allow symbols to be operands for regular</div><div class='add'>+	  expression matches.</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): allow Symbol#===.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date::Format::Bag::to_hash): string</div><div class='add'>+	  added prefixes.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 12:58:38 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (do_select): fix to iterate select().</div><div class='add'>+	  on cygwin/mswin32, iterate in unblocking region.</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select): don't iterate on this function.</div><div class='add'>+	  (iterate in do_select).</div><div class='add'>+</div><div class='add'>+Wed Feb 14 11:39:18 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (set_unblock_function): fix function interface.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 11:12:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_load.c, yarvcore.h: use rb_vm_t#loaded_features instead of</div><div class='add'>+	  rb_features (global variable).</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: mark rb_vm_t#loaded_features.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 08:46:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): no longer distinguish ordinary local</div><div class='add'>+	  variables and in-block local variables in defined? value.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 03:14:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::userinfo): should support</div><div class='add'>+	  empty password.  [ruby-core:10290]</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::set_password): password can be</div><div class='add'>+	  cleared by nil.  [ruby-core:10290]</div><div class='add'>+</div><div class='add'>+Wed Feb 14 03:10:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct local_vars): no need to warn out-of-scope</div><div class='add'>+	  variables; remove dnames member from struct.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 03:04:10 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: RVarmap no longer used as yytype; removed.</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_push_gen): no longer need return value.</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_pop_gen): no longer need argument.</div><div class='add'>+</div><div class='add'>+	* parse.y (local_push_gen): initialize nofree.</div><div class='add'>+</div><div class='add'>+Wed Feb 14 00:30:07 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_unixsock): path may contain NUL for</div><div class='add'>+	  abstract unix sockets.  [ruby-core:10288]</div><div class='add'>+</div><div class='add'>+Tue Feb 13 02:21:12 2007  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_syscall): Fix buffer overflow with syscall</div><div class='add'>+	  arguments.  [ruby-bugs:PR#8541]</div><div class='add'>+</div><div class='add'>+Mon Feb 12 13:57:30 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_variant2val): support VT_I8, VT_UI8.</div><div class='add'>+</div><div class='add'>+Mon Feb 12 11:48:52 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb, lib/rss/maker/dublincore.rb: dc_rightses</div><div class='add'>+	  -&gt; dc_rights_list. dc_rightses still exists for backward</div><div class='add'>+	  compatibility. [ruby-core:8350]</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_dc.rb: added tests for dc_rights_list.</div><div class='add'>+</div><div class='add'>+Sun Feb 11 22:40:17 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_ptrtype2val): ole_type, ole_type_detail</div><div class='add'>+	  should not return "VARIANT,VARIANT".</div><div class='add'>+</div><div class='add'>+Sun Feb 11 22:11:05 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/xml-stylesheet.rb (RSS::XMLStyleSheet#initialize):</div><div class='add'>+	  kept backward compatibility.</div><div class='add'>+</div><div class='add'>+Sun Feb 11 22:10:08 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb (RSS::ListenerMixin#start_else_element): used</div><div class='add'>+	  const_defined? instead of constants.include?.</div><div class='add'>+</div><div class='add'>+Sun Feb 11 18:47:14 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_val2olevariantdata):</div><div class='add'>+	  WIN32OLE_VARIANT#new accepts nil when variant type is VT_ARRAY.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: small refactoring.</div><div class='add'>+</div><div class='add'>+Sun Feb 11 07:42:25 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): Properly parse</div><div class='add'>+	  a quoted-string in a Content-Disposition value.</div><div class='add'>+</div><div class='add'>+Sat Feb 10 20:21:29 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE#ole_query_interface.</div><div class='add'>+	  thanks to Mikael Pahmp.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 10 17:46:52 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: targets which depend on yarvcore.h now depend on</div><div class='add'>+	  rubysig.h too.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h (rb_vm_t): use rb_atomic_t instead of int.</div><div class='add'>+</div><div class='add'>+Sat Feb 10 00:13:11 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix typo (TkConfigMethod::__confinfo_cmd,</div><div class='add'>+	  __conv_keyonly_opts).</div><div class='add'>+</div><div class='add'>+Fri Feb  9 12:33:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (w32_show_error_message): renamed to w32_error.</div><div class='add'>+	  this function do rb_bug().</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (w32_set_event, w32_reset_event, w32_close_handle,</div><div class='add'>+	  w32_resume_thread): added. fix to use these functions instead calling</div><div class='add'>+	  win32api directly.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (w32_create_thread): create suspend thread</div><div class='add'>+	  (caller must call w32_resume_thread()).</div><div class='add'>+</div><div class='add'>+Fri Feb  9 11:03:40 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb: tests are working on mswin32/cygwin.</div><div class='add'>+</div><div class='add'>+Fri Feb  9 05:08:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.ci, thread_win32.ci (thread_start_func_1):</div><div class='add'>+	  move cleanup function to thread_start_func_2().</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.ci, thread_win32.ci:</div><div class='add'>+	  add more destruct functions.</div><div class='add'>+	  (native_thread_destroy() and native_mutex_destroy())</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci, thread_pthread.h: make native_mutex_* functions</div><div class='add'>+	  (check error, etc), it's not macro any more.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (thread_start_func_1): store some values before</div><div class='add'>+	  running thread (to release these after running thread).</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (native_thread_create): fix spaces.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 22:44:04 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_set_safe_array, ole_variant2val,</div><div class='add'>+	  ole_val_ary2variant_ary): fix WIN32OLE_VARIANT.new bug when</div><div class='add'>+	  1st argument is empty array, and when 2nd argument is</div><div class='add'>+	  VT_ARRAY|VT_BYREF.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 22:39:09 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb: check target command names.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 22:31:45 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_clone.rb: fix to current spec</div><div class='add'>+	  (Module should not be occur many times in ancestors).</div><div class='add'>+</div><div class='add'>+Thu Feb  8 22:26:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: ("foo" == :foo) and ("foo" === :foo)</div><div class='add'>+	  should be false.</div><div class='add'>+</div><div class='add'>+	* ChangeLog: fix last messages.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 22:24:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: fix to use Symbol instead of String.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: remove space before argument parentheses.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 22:02:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/marshaltestlib.rb: eval(sym) -&gt; eval(sym.to_s)</div><div class='add'>+</div><div class='add'>+Thu Feb  8 21:35:16 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_propertyputref.rb (setup): fix typo.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_event.rb: should not use</div><div class='add'>+	  InternetExplorer.gohome to test.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 21:02:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (GVL_UNLOCK_RANGE): rename to BLOCKING_REGION().</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_run_parallel): rename to</div><div class='add'>+	  rb_thread_blocking_region().</div><div class='add'>+</div><div class='add'>+Thu Feb  8 15:48:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, thread.c: fix to use pthread on cygwin.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, thread.c: move GVL_UNLOCK_BEGIN() and GVL_UNLOCK_END()</div><div class='add'>+	  from yarvcore.h to thread.c.</div><div class='add'>+</div><div class='add'>+	* thread.c: change GVL_UNLOCK_RANGE() arguments</div><div class='add'>+	  (adding ubf as 2nd argument).</div><div class='add'>+</div><div class='add'>+	* thread.c: fix to use polling in select on cygwin and mswin32.</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.ci, thread_win32.ci, yarvcore.h:</div><div class='add'>+	  rename:</div><div class='add'>+	  * rb_thread_t#interrupt_function -&gt; unblock_function</div><div class='add'>+	  * rb_interrupt_function_t -&gt; rb_unblock_function</div><div class='add'>+	  * some interrupt function name -&gt; ubf_*</div><div class='add'>+	  * yarv_* -&gt; *</div><div class='add'>+</div><div class='add'>+Thu Feb  8 16:08:02 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fix to use RUNRUBY instead of BASERUBY if possible.</div><div class='add'>+</div><div class='add'>+	* common.mk ($(INSNS) rule): remove $(PROGRAM) first.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 15:43:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: fix to use rb_status_line_set/get/clear().</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: fix line break.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 15:00:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, error.c, eval.c, eval_error.h, eval_intern.h,</div><div class='add'>+	  eval_jump.h, eval_load.c, eval_safe.h, gc.c, proc.c, signal.c,</div><div class='add'>+	  thread.c, thread_pthread.ci, thread_win32.ci, vm.c, vm.h,</div><div class='add'>+	  vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h:</div><div class='add'>+	  fix typo (rb_thead_t -&gt; rb_thread_t).</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: remove unused definitions.</div><div class='add'>+</div><div class='add'>+	* common.mk: fix around vm_opts.h path</div><div class='add'>+	  and remove harmful argument passed to insns2vm.rb.</div><div class='add'>+</div><div class='add'>+Thu Feb  8 03:11:47 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::unescapeHTML): invalid decoding for single</div><div class='add'>+	  unescaped ampersand.  a patch from Tietew</div><div class='add'>+	  &lt;tietew+ruby-dev at tietew.net&gt; in [ruby-dev:30292].</div><div class='add'>+	  fixed: [ruby-dev:30289]</div><div class='add'>+</div><div class='add'>+Wed Feb  7 23:25:31 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (specific_eval): suppress warning.</div><div class='add'>+</div><div class='add'>+	* thread_win32.h: undefine _WIN32 on cygwin.  [ruby-dev:30303]</div><div class='add'>+</div><div class='add'>+Wed Feb  7 22:41:34 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h: remove UNSUPPORTED() macro.</div><div class='add'>+</div><div class='add'>+	* thread.c: fix to define Continuation methods</div><div class='add'>+	  (they only do rb_notimplement()).</div><div class='add'>+</div><div class='add'>+Wed Feb  7 22:33:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, yarvcore.h: remove unused macro definition.</div><div class='add'>+</div><div class='add'>+Wed Feb  7 22:30:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: fixed to use ANSI function style.</div><div class='add'>+</div><div class='add'>+Wed Feb  7 09:35:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* this commit is a result of refactoring. only renaming functions,</div><div class='add'>+	  moving definitions place, add/remove prototypes, deleting</div><div class='add'>+	  unused variables and removing yarv.h.</div><div class='add'>+	  This commit doesn't change any behavior of ruby/vm.</div><div class='add'>+</div><div class='add'>+	* yarv.h, common.mk: remove yarv.h (contents are moved to yarvcore.h).</div><div class='add'>+</div><div class='add'>+	* error.c, eval_intern.h: include yarvcore.h instead yarv.h</div><div class='add'>+</div><div class='add'>+	* rename some functions:</div><div class='add'>+	  * debug.[ch]: debug_*() -&gt; ruby_debug_*()</div><div class='add'>+	  * iseq.c: iseq_*() -&gt; rb_iseq_*(), ruby_iseq_disasm()</div><div class='add'>+	  * iseq.c: node_name() -&gt; ruby_node_name()</div><div class='add'>+	  * vm.c: yarv_check_redefinition_opt_method() -&gt;</div><div class='add'>+	          rb_vm_check_redefinition_opt_method()</div><div class='add'>+</div><div class='add'>+	* some refactoring with checking -Wall.</div><div class='add'>+</div><div class='add'>+	* array.c: remove rb_ary_ptr() (unused) and remove unused</div><div class='add'>+	  local variables.</div><div class='add'>+</div><div class='add'>+	* object.c: add a prototype of rb_mod_module_exec().</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (ruby_cref): set it inline.</div><div class='add'>+</div><div class='add'>+	* eval_load.c (rb_load), yarvcore.c: yarv_load() -&gt; rb_load_internal().</div><div class='add'>+</div><div class='add'>+	* parse.y: add a prototype of rb_parse_in_eval() (in eval.c).</div><div class='add'>+</div><div class='add'>+	* process.c: add a prototype of rb_thread_stop_timer_thread() (in thread.c).</div><div class='add'>+</div><div class='add'>+	* thread.c: remove raw_gets() function (unused) and fix some format</div><div class='add'>+	  mismatch (format mismatches have remained yet. this is todo).</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_fd_rw): fix typo on label name.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci: comment out codes with USE_THREAD_CACHE.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_svar, rb_backref_get, rb_backref_get,</div><div class='add'>+	  rb_lastline_get, rb_lastline_set) : moved from yarvcore.c.</div><div class='add'>+</div><div class='add'>+	* vm.c (yarv_init_redefined_flag): add a prototype and rename</div><div class='add'>+	  yarv_opt_method_table to vm_opt_method_table.</div><div class='add'>+</div><div class='add'>+	* vm.c (rb_thread_eval): moved from yarvcore.c.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: remove unused global variables and fix to use nsdr().</div><div class='add'>+</div><div class='add'>+Wed Feb  7 03:39:32 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, compile.c, compile.h, error.c, eval.c,</div><div class='add'>+	  eval_intern.h, eval_jump.h, eval_load.c, eval_method.h,</div><div class='add'>+	  eval_safe.h, gc.c, insnhelper.h, insns.def, iseq.c, proc.c,</div><div class='add'>+	  process.c, signal.c, thread.c, thread_pthread.ci, thread_win32.ci,</div><div class='add'>+	  vm.c, vm.h, vm_dump.c, vm_evalbody.ci, vm_macro.def,</div><div class='add'>+	  yarv.h, yarvcore.h, yarvcore.c: change type and macro names:</div><div class='add'>+	  * yarv_*_t -&gt; rb_*_t</div><div class='add'>+	  * yarv_*_struct -&gt; rb_*_struct</div><div class='add'>+	  * yarv_tag -&gt; rb_vm_tag</div><div class='add'>+	  * YARV_* -&gt; RUBY_VM_*</div><div class='add'>+</div><div class='add'>+	* proc.c, vm.c: move functions about env object creation</div><div class='add'>+	  from proc.c to vm.c.</div><div class='add'>+</div><div class='add'>+	* proc.c, yarvcore.c: fix rb_cVM initialization place.</div><div class='add'>+</div><div class='add'>+	* inits.c: change Init_ISeq() order (after Init_VM).</div><div class='add'>+</div><div class='add'>+	* ruby.h, proc.c: change declaration place of rb_cEnv</div><div class='add'>+	  from proc.c to ruby.c.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 22:06:45 2007  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/{nkf.c,utf8tbl.c}:</div><div class='add'>+	  imported nkf 2007-01-28.</div><div class='add'>+	  * Fixed: can't decode MIME encode JIS string.</div><div class='add'>+	  * Fixed: Fullwidth-halfwidth conversion.</div><div class='add'>+	  * Support DoCoMo's and Softbank's EMOJI</div><div class='add'>+	  * Support CP932, CP5022x, eucJP-ms UDC</div><div class='add'>+	  * Support UTF-32 encoding</div><div class='add'>+	  * Support beyond BMP</div><div class='add'>+	  [ruby-dev:29700] [ruby-dev:29922] [ruby-dev:30144]</div><div class='add'>+</div><div class='add'>+Tue Feb  6 20:36:19 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, lib/rss/parser.rb: followed current Ruby</div><div class='add'>+	  specification. [ruby-dev:30274]</div><div class='add'>+</div><div class='add'>+Tue Feb  6 20:29:44 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb, lib/rss/parser.rb: removed needless code for</div><div class='add'>+	  backward compatibility.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 18:43:17 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: moved fixes for EPIPE to the correct</div><div class='add'>+	  place. [ruby-core:10204]</div><div class='add'>+</div><div class='add'>+Tue Feb  6 16:38:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_opts.h: set properties:</div><div class='add'>+	  svn:keywords:  Author Date Id Revision</div><div class='add'>+	  svn:eol-style: native</div><div class='add'>+</div><div class='add'>+Tue Feb  6 15:55:46 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (ivar_i): need to support class local instance</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 15:44:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): fix setting is_local flag.</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb: add a test for class local instance variable.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 14:15:34 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def: remove (get|set)instancevariable2 and add a</div><div class='add'>+	  operand is_local to (get|set)instancevariable.</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb: add a test for class local instance variable.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_decompose_ivar2): remove unused variable oid.</div><div class='add'>+</div><div class='add'>+	* tool/insns2vm.rb: remove needless require.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 11:18:41 2007  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: check the control connection on EPIPE.</div><div class='add'>+	  Thanks, Simon Williams. [ruby-core:9547]</div><div class='add'>+</div><div class='add'>+Tue Feb  6 11:03:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* complement last commit.</div><div class='add'>+</div><div class='add'>+	* common.mk (*.inc): use VPATH.</div><div class='add'>+</div><div class='add'>+	* vm_opts.h: renamed from vm_opts.h.base.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 10:02:41 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/insns2vm.rb: use vm_opts.h in VPATH.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 03:47:58 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c: support Binding#eval.</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_eval.rb: add a test for above change.</div><div class='add'>+</div><div class='add'>+Tue Feb  6 03:13:33 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* proc.c: refactoring (remove K&amp;R style, move Binding stuffs from</div><div class='add'>+	  Init_Proc() to Init_Binding()).</div><div class='add'>+</div><div class='add'>+Tue Feb  6 01:07:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h: prepare rb_last_status_get() and rb_last_status_set().</div><div class='add'>+	  Use these functions instead of rb_last_status ([ruby-dev:30264]).</div><div class='add'>+</div><div class='add'>+	* process.c: define above functions.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: use above functions.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_finalize): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb  5 21:26:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: add a prototype of rb_id2str().</div><div class='add'>+</div><div class='add'>+Mon Feb  5 21:06:50 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_thread.c, common.mk: remove eval_thread.c.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: rename cYarvThread to rb_cThread.</div><div class='add'>+</div><div class='add'>+	* gc.c: remove YARV_* prefix.</div><div class='add'>+</div><div class='add'>+	* gc.h: add an include guard and prototype of rb_gc_set_stack_end().</div><div class='add'>+</div><div class='add'>+	* inits.c: fix to ANSI prototype style and reorder Init_*().</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_finalize): TODO: comment out last_status.</div><div class='add'>+</div><div class='add'>+	* process.c, yarvcore.h: fix to use yarv_vm_t#last_status instead of</div><div class='add'>+	  rb_last_status and make last_status_get() to access $?.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (vm_mark): mark yarv_vm_t#last_status.</div><div class='add'>+</div><div class='add'>+	* ruby.h: add declarations of rb_cISeq and rb_cVM.</div><div class='add'>+</div><div class='add'>+	* thread.c: move eval_thread.c codes to thread.c and remove yarv_*</div><div class='add'>+	  function prefix.</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2): use yarv_thread_t#first_func if</div><div class='add'>+	  it is not null.</div><div class='add'>+</div><div class='add'>+	* vm.c: fix copyright year.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (Init_vm): rename to Init_VM().</div><div class='add'>+</div><div class='add'>+Mon Feb  5 04:09:48 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_frame_callee): check if prev_cfp can be accessible.</div><div class='add'>+	  a patch from Yoshinori Sano &lt;yoshinori.sano at gmail.com&gt; in</div><div class='add'>+	  [ruby-dev:30252].  solves [ruby-dev:30200] and [ruby-core:9856].</div><div class='add'>+</div><div class='add'>+Sun Feb  4 20:34:41 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb: removed needless code for backward</div><div class='add'>+	  compatibility.</div><div class='add'>+</div><div class='add'>+Sun Feb  4 02:22:59 2007  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): Remove a debug</div><div class='add'>+	  print.</div><div class='add'>+</div><div class='add'>+Sat Feb  3 23:51:58 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_compose_ivar2): function to create a new ivar2</div><div class='add'>+	  symbol from a symbol and a class.  back-ported from matzruby.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_decompose_ivar2): reverse function of</div><div class='add'>+	  rb_compose_ivar2().</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol): support class local instance variables.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): ditto.</div><div class='add'>+</div><div class='add'>+	* compile.c (defined_expr): ditto.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): ditto.</div><div class='add'>+</div><div class='add'>+	* insns.def: add two new instructions: getinstancevariable2 and</div><div class='add'>+	  setinstancevariable2.</div><div class='add'>+</div><div class='add'>+Sat Feb  3 23:21:13 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (setclassvariable): remove unnecessary operand.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): ditto.</div><div class='add'>+</div><div class='add'>+	* common.mk (insns_info.inc): add dependency for insns_info.inc.</div><div class='add'>+</div><div class='add'>+Sat Feb  3 14:32:58 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_val2olevariantdata, ole_val2variant):</div><div class='add'>+	  fix the bug of WIN32OLE_VARIANT.new when variant type is</div><div class='add'>+	  VT_ARRAY.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/sample/excel1.rb: rewrite using WIN32OLE_VARIANT.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: add some test.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb  3 03:35:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, */Makefile.sub, common.mk (vmasm): generalized.</div><div class='add'>+</div><div class='add'>+	* common.mk (runruby, benchmark, benchmark-each, tbench): use</div><div class='add'>+	  PROGRAM for the file to be built.</div><div class='add'>+</div><div class='add'>+	* proc.c (yarv_proc_alloc): needs return.</div><div class='add'>+</div><div class='add'>+	* call_cfunc.ci, compile.c, compile.h, debug.h, eval.c,</div><div class='add'>+	  eval_error.h, eval_jump.h, eval_load.c, eval_thread.c, gc.c,</div><div class='add'>+	  insnhelper.h, insns.def, iseq.c, main.c, numeric.c, parse.y,</div><div class='add'>+	  range.c, ruby.h, signal.c, thread.c, thread_win32.ci, vm.c,</div><div class='add'>+	  vm.h, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h:</div><div class='add'>+	  fixed indents and non-C90 comments.</div><div class='add'>+</div><div class='add'>+	* regenc.h: revert to before YARV.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): make object files depend on</div><div class='add'>+	  extconf.h even if depend file exists.</div><div class='add'>+</div><div class='add'>+Fri Feb  2 23:39:42 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (bin): add more dependency.  a patch from Tadashi</div><div class='add'>+	  Saito &lt;shiba at mail2.accsnet.ne.jp&gt;.  [ruby-dev:30245]</div><div class='add'>+</div><div class='add'>+Fri Feb  2 18:44:31 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (setclassvariable): remove warn argument.</div><div class='add'>+</div><div class='add'>+Fri Feb  2 18:36:40 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (compile.$(OBJEXT)): add config.h to vm.c and</div><div class='add'>+	  compile.c.</div><div class='add'>+</div><div class='add'>+Fri Feb  2 18:27:54 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove duplicated global variables rb_cProc and</div><div class='add'>+	  rb_cBinding.  [ruby-dev:30242]</div><div class='add'>+</div><div class='add'>+Fri Feb  2 00:13:44 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (SYMBOL_P): make Symbol immediate again for performance.</div><div class='add'>+</div><div class='add'>+	* string.c: redesign symbol methods.</div><div class='add'>+</div><div class='add'>+Thu Feb  1 23:25:21 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2str): store Strings for operator symbols.</div><div class='add'>+	  [ruby-dev:30235]</div><div class='add'>+</div><div class='add'>+Thu Feb  1 21:04:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable_gen): no need to generate NODE_CVDECL.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each): no NODE_CVDECL.</div><div class='add'>+</div><div class='add'>+Thu Feb  1 20:53:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (eval_get_cvar_base): destination for class variable access</div><div class='add'>+	  is now strictly innermost surrounding class or module.  warned</div><div class='add'>+	  if accessed from toplevel.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): new class variable look-up scheme:</div><div class='add'>+	  1) look up in the class.  2) if the class is singleton attached</div><div class='add'>+	  to a class (i.e. metaclass) then start look up in the attached</div><div class='add'>+	  class and its ancestors. 3) otherwise, look-up in ancestors of</div><div class='add'>+	  the class.</div><div class='add'>+</div><div class='add'>+	* eval.c (cvar_cbase): destination for class variable access is</div><div class='add'>+	  the class/module that holds the method, or cbase outside of</div><div class='add'>+	  methods.</div><div class='add'>+</div><div class='add'>+Thu Feb  1 20:31:41 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): remove warn argument.</div><div class='add'>+</div><div class='add'>+Wed Jan 31 14:52:09 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::test_block_given_within_iterator):</div><div class='add'>+	  add new test.  [ruby-core:10125]</div><div class='add'>+</div><div class='add'>+Tue Jan 30 17:01:21 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): calling rb_str_modify() should be just</div><div class='add'>+	  before actually modifying the string.</div><div class='add'>+	  fixed: [ruby-dev:30211] (originally reported by zunda)</div><div class='add'>+</div><div class='add'>+Tue Jan 30 13:24:06 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_pred): add Integer#pred corresponding</div><div class='add'>+	  Integer#succ.  [RCR#5]</div><div class='add'>+</div><div class='add'>+Tue Jan 30 12:05:35 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: autoconf 2.61 support.  [ruby-core:10016]</div><div class='add'>+</div><div class='add'>+Mon Jan 29 23:52:32 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/compile.rb: replace YARVCore by VM class.</div><div class='add'>+</div><div class='add'>+Mon Jan 29 17:52:44 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date::Format::Bag::method_missing): add</div><div class='add'>+	  prefix to avoid making t class-local instance variable.</div><div class='add'>+</div><div class='add'>+Mon Jan 29 21:32:37 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE.locale=, WIN32OLE.locale,</div><div class='add'>+	  WIN32OLE_VARIANT#vartype.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: add test for WIN32OLE.locale=,</div><div class='add'>+	  WIN32OLE.locale.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: add test for</div><div class='add'>+	  WIN32OLE_VARIANT#vartype.</div><div class='add'>+</div><div class='add'>+Mon Jan 29 14:14:35 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* tool/parse.rb: replace YARVCore by VM class.</div><div class='add'>+	  http://d.hatena.ne.jp/ysano2005/20070128</div><div class='add'>+</div><div class='add'>+Sun Jan 28 08:41:49 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: refactoring.</div><div class='add'>+</div><div class='add'>+Sat Jan 27 18:36:33 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_val2olevariantdata): bug fix.</div><div class='add'>+	  WIN32OLE_VARIANT.new check that 1st argument should T_ARRAY</div><div class='add'>+	  when variant type is VT_ARRAY.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: add some test.</div><div class='add'>+</div><div class='add'>+Fri Jan 26 23:55:56 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: bug fix of WIN32OLE_VARIANT when variant</div><div class='add'>+	  type is VT_BYREF|VT_VARIANT.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant_with_ie.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan 26 12:03:39 2007  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkConfigMethod#__confinfo_cmd,</div><div class='add'>+	  __conv_keyonly_optkeys): make them private [ruby-dev:30074].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/txtwin_abst.rb: fix typo [ruby-dev:30073].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb (TkCanvas#scan_dragto): lack of an argument.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: clarify the including module name</div><div class='add'>+	  [ruby-dev:30080].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/scrollable.rb: change primary name of modules</div><div class='add'>+	  [ruby-dev:30080].</div><div class='add'>+</div><div class='add'>+Fri Jan 26 07:48:57 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_init_copy): need to copy internal</div><div class='add'>+	  structure on clone and dup.  [ruby-dev:30192]</div><div class='add'>+</div><div class='add'>+Wed Jan 24 20:34:51 2007  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: removed a needless workaround.</div><div class='add'>+</div><div class='add'>+Wed Jan 24 18:05:39 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): fix</div><div class='add'>+	  regexp font-lock bug.  [ruby-talk:235758]</div><div class='add'>+</div><div class='add'>+Tue Jan 23 18:26:12 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): use == instead</div><div class='add'>+	  of ===.  [ruby-dev:30176]</div><div class='add'>+</div><div class='add'>+Tue Jan 23 15:39:25 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, configure.in, */{Makefile.sub, configure.bat,</div><div class='add'>+	  setup.mak}: add --with-baseruby configure option.</div><div class='add'>+</div><div class='add'>+Mon Jan 22 14:57:25 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: fix errors in socket sample code.</div><div class='add'>+	  [ruby-core:09992]</div><div class='add'>+</div><div class='add'>+Sat Jan 20 21:05:18 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_s_set_code_page): WIN32OLE.codepage=</div><div class='add'>+	  accepts installed codepage.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb (test_s_codepage_changed): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 20 11:18:49 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke, ole_invoke2, ole_propertyput):</div><div class='add'>+	  modify WIN32OLERuntimeError message.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan 20 06:45:21 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval_proc.c (method_receiver): add new method to get the bound</div><div class='add'>+	  receiver of the method object.  [ruby-talk:234949]</div><div class='add'>+</div><div class='add'>+	* eval_proc.c (method_name): new method to get the name of a</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+	* eval_proc.c (method_owner): a new method to get the class or</div><div class='add'>+	  module that defines the method.</div><div class='add'>+</div><div class='add'>+Fri Jan 19 17:12:23 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (Init_win32ole): add WIN32OLE_VARIANT::Empty,</div><div class='add'>+	  WIN32OLE_VARIANT::Null, WIN32OLE_VARIANT::Nothing.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_nil2vtempty.rb(test_openSchema): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jan 19 06:53:38 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (olevariant_free): fix memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_val2olevariantdata):</div><div class='add'>+	  WIN32OLE_VARIANT.new accepts nil as first argument for some VARIANT</div><div class='add'>+	  TYPE.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan 17 17:31:28 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* some refactoring around yarvcore and proc.</div><div class='add'>+</div><div class='add'>+	* eval_proc.c: renamed to proc.c.</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c: rename or remove some global variables</div><div class='add'>+	  removed: mYarvCore, mYarvInsns</div><div class='add'>+	  renamed: cYarvISeq -&gt; rb_cISeq,</div><div class='add'>+	           cYarvProc -&gt; rb_cProc, cYarvBinding -&gt; rb_cBinding</div><div class='add'>+	  ::YarvCore module is removed and ::YarvCore::VM class becomes ::VM.</div><div class='add'>+	  And change/remove some functions which added with YARV.</div><div class='add'>+</div><div class='add'>+	* compile.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* iseq.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* inits.c: rename Init_yarvcore to Init_vm.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, proc.c: move some functions and initialization</div><div class='add'>+	  from yarvcore.c to proc.c.</div><div class='add'>+</div><div class='add'>+	* intern.h, proc.c: add global function rb_binding_new(void).</div><div class='add'>+</div><div class='add'>+Tue Jan 16 17:49:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (eval_search_super_klass): rename to search_super_klass() and</div><div class='add'>+	  use it by th_call_super().</div><div class='add'>+</div><div class='add'>+	* insns.def: ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 16 17:48:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fix ruby script path.</div><div class='add'>+</div><div class='add'>+Tue Jan 16 17:39:44 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block): fix to specify self.</div><div class='add'>+</div><div class='add'>+Tue Jan 16 12:12:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* env.h: removed</div><div class='add'>+</div><div class='add'>+Tue Jan 16 12:00:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_proc.c (rb_proc_new): added.</div><div class='add'>+</div><div class='add'>+	* string.c (sym_to_proc): supported.</div><div class='add'>+</div><div class='add'>+	* vm.c (invoke_block, th_invoke_yield, th_invoke_proc): fix to support</div><div class='add'>+	  rb_proc_new.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: add a test code.</div><div class='add'>+</div><div class='add'>+Sat Jan 13 23:24:59 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_free, ole_type_free,</div><div class='add'>+	  olemethod_free, olevariable_free, oleparam_free,</div><div class='add'>+	  ole_event_free): fix memory leak.  [ruby-core:09846]</div><div class='add'>+</div><div class='add'>+Wed Jan 10 00:10:23 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): use ptr and len of orig instead of</div><div class='add'>+	  shared.  fixed: [ruby-dev:30116]</div><div class='add'>+</div><div class='add'>+Tue Jan  9 17:48:38 2007  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file): should not call fpath_check() with NULL.</div><div class='add'>+	  fixed: [ruby-core:09867]</div><div class='add'>+</div><div class='add'>+Tue Jan  9 12:29:20 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getpwuid, etc_getgrgid): fix to correctly</div><div class='add'>+	  convert uid/gid from VALUE.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getpwuid): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan  9 03:54:38 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): String#upto from empty string makes</div><div class='add'>+	  infinite loop.  [ruby-core:09864]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): use RSTRING_LEN().</div><div class='add'>+</div><div class='add'>+Sun Jan  7 18:36:05 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_stop_timer_thread(), rb_thread_reset_timer_thread(),</div><div class='add'>+	  rb_thread_start_timer_thread()): added.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci: add a native_thread_join() and move</div><div class='add'>+	  rb_thread_reset_timer_thread() definition to thread.c.</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci: ditto</div><div class='add'>+</div><div class='add'>+	* process.c: fix before_exec(), after_exec() to stop timer thread</div><div class='add'>+	  (and restart timer thread if exec failed).  and fix to reset</div><div class='add'>+	  timer thread information when forked child process starts</div><div class='add'>+	  (to fix [ruby-core:09822]).</div><div class='add'>+</div><div class='add'>+Sun Jan  7 18:28:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add a "compare" rule and fix MATZRUBY variable</div><div class='add'>+</div><div class='add'>+Sun Jan  7 17:47:16 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb: add test for WIN32OLE#[],</div><div class='add'>+	  WIN32OLE#[]=.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: update comment for rdoc of</div><div class='add'>+	  WIN32OLE#[] and WIN32OLE#[]=.</div><div class='add'>+</div><div class='add'>+Sun Jan  7 12:13:26 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_class_comment):</div><div class='add'>+	  Look for class and module comments above rb_define_class and</div><div class='add'>+	  rb_define_module.  Patch by Daniel Berger &lt;djberg96 at gmail.com&gt;</div><div class='add'>+</div><div class='add'>+Sun Jan  7 10:32:12 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constants):</div><div class='add'>+	  Properly handle escaping of : in comments.</div><div class='add'>+	* test/rdoc/parsers/test_parse_c.rb:</div><div class='add'>+	  Test RDoc::C_Parser#do_classes and Rdoc::C_Parser#find_class_comment.</div><div class='add'>+</div><div class='add'>+Sun Jan  7 09:31:18 2007  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: updated based on date2 4.0.1.</div><div class='add'>+</div><div class='add'>+Sat Jan  6 18:46:34 2007  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast, rb_io_getline): increase lineno</div><div class='add'>+	  when met the delimiter or EOF.  fixed: [ruby-dev:30081]</div><div class='add'>+</div><div class='add'>+	* io.c (prepare_getline_args, rb_io_getline_1): split</div><div class='add'>+	  preparation of arguments and reading.  [ruby-dev:30085]</div><div class='add'>+</div><div class='add'>+Sat Jan  6 13:48:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (send): fix to optimize send() with Symbol.</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb: add another test.</div><div class='add'>+</div><div class='add'>+Sat Jan  6 13:43:55 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add PHONY dependency to some rules</div><div class='add'>+</div><div class='add'>+Sat Jan  6 11:50:33 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): fix wrong replacement.  [ruby-dev:30070]</div><div class='add'>+</div><div class='add'>+Sat Jan  6 09:10:52 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def: support direct method dispatch with "send" or "funcall".</div><div class='add'>+	  This means that "obj.send :m" skips "BasicObject#send" invocation</div><div class='add'>+	  (method frame creation, etc) and "obj.m" invokes directly.</div><div class='add'>+	  If you make backtrace, there are no entries of "send" method.</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_specialized_instruction): fix to support above</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto (remove "static" from rb_f_send and rb_f_funcall</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: ditto (add a external IDs for compiler)</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: ditto (add a VM_CALL_SEND_BIT macro)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb: add tests for above changes</div><div class='add'>+</div><div class='add'>+	* eval.c: remove unused "Kernel#send" declaration</div><div class='add'>+</div><div class='add'>+Sat Jan  6 08:29:17 2007  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (Init_win32ole): add</div><div class='add'>+	  WIN32OLE::VARIANT::VT_EMPTY, WIN32OLE::VARIANT::VT_NULL</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_variant_m.rb (test_variant): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  6 03:49:22 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb: change option format</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto</div><div class='add'>+</div><div class='add'>+Fri Jan  5 22:21:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_pentomino.rb: use Array#dup instead of</div><div class='add'>+	  Array#clone</div><div class='add'>+</div><div class='add'>+	* benchmark/bmx_temp.rb: removed</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb: use run.rb instead of run_rite.rb</div><div class='add'>+</div><div class='add'>+	* common.mk: ditto</div><div class='add'>+</div><div class='add'>+	* benchmark/run_rite.rb: removed</div><div class='add'>+</div><div class='add'>+	* common.mk: use $(srcdir)/test.rb to run a test program</div><div class='add'>+	  with "make run"</div><div class='add'>+</div><div class='add'>+	* benchmark/bmx_temp.rb: removed and</div><div class='add'>+	  set svn:ignore (bmx_*.rb) to benchmark/</div><div class='add'>+</div><div class='add'>+	* test.rb: set svn:ignore</div><div class='add'>+</div><div class='add'>+Fri Jan  5 21:03:08 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb: fix to compare results</div><div class='add'>+</div><div class='add'>+Fri Jan  5 20:52:56 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h: add ADD_CALL_RECEIVER() macro.</div><div class='add'>+</div><div class='add'>+	* insns.def (send): use GET_SELF() direct if FCALL.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_send): check method dispatch type to permit</div><div class='add'>+	  invoking private method when dispatch type is FCALL/VCALL</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_ltlt): remove useless statement.</div><div class='add'>+</div><div class='add'>+	* vm.h: remove unused macros.</div><div class='add'>+</div><div class='add'>+Fri Jan  5 20:50:31 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run_rite.rb: fix to use readlines instead of</div><div class='add'>+	  read(...).lines (because 1.8 doesn't have String#lines).</div><div class='add'>+</div><div class='add'>+Fri Jan  5 20:28:19 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci (rb_thread_reset_timer_thread):</div><div class='add'>+	  added ([ruby-dev:30086]).</div><div class='add'>+</div><div class='add'>+Fri Jan  5 20:20:36 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add .SUFFIXES rule</div><div class='add'>+</div><div class='add'>+Fri Jan  5 15:58:15 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h (rb_alias): fix to check search result</div><div class='add'>+</div><div class='add'>+Fri Jan  5 13:59:53 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h (rb_add_method): fix to check old_node</div><div class='add'>+</div><div class='add'>+Fri Jan  5 12:03:07 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each, set_block_local_tbl):</div><div class='add'>+	  support NODE_LAMBDA (partly).</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: restore test of NODE_LAMBDA</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: ditto</div><div class='add'>+</div><div class='add'>+Fri Jan  5 12:31:23 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci (native_sleep): fix tv_nsec overflow.</div><div class='add'>+</div><div class='add'>+Thu Jan  4 20:01:29 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: rename yarv-test-[all/each] to compare-test[/-each].</div><div class='add'>+	  purpose of "compare-test" rule is to compare ruby (trunk) and</div><div class='add'>+	  matzruby (branches/matzruby) binary in miniruby level.  MATZRUBY</div><div class='add'>+	  parameter means an path to miniruby of matzruby binary.  to do this</div><div class='add'>+	  comparison test, you should build matzruby branch.</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb: fix to use command line option as</div><div class='add'>+	  command names to be compared.</div><div class='add'>+</div><div class='add'>+	* yarvtest/runner.rb: remove a debug output.</div><div class='add'>+</div><div class='add'>+Thu Jan  4 19:12:27 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: fix to use test.rb script in build directory.</div><div class='add'>+	  ($(srcdir)/test.rb -&gt; test.rb)</div><div class='add'>+</div><div class='add'>+Thu Jan  4 17:28:05 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize):</div><div class='add'>+	  Arrays could not be modified in its each block. [ruby-dev:30063]</div><div class='add'>+</div><div class='add'>+Thu Jan  4 16:57:14 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv_version.h: removed.</div><div class='add'>+</div><div class='add'>+	* common.mk: remove yarv_version.h from rules</div><div class='add'>+</div><div class='add'>+	* yarvcore.h (Init_yarvcore): remove useless constants</div><div class='add'>+</div><div class='add'>+Thu Jan  4 17:00:06 2007  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (Init_ossl_asn1):</div><div class='add'>+	  OpenSSL::ASN1::ASN1Data#value,#tag,#tag_class and</div><div class='add'>+	  OpenSSL::ASN1::BitString#unused_bits should be public.</div><div class='add'>+</div><div class='add'>+Thu Jan  4 13:45:10 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci: fix last changes around PTHREAD_STACK_MIN.</div><div class='add'>+</div><div class='add'>+Thu Jan  4 13:42:47 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: restore changes.</div><div class='add'>+</div><div class='add'>+Thu Jan  4 10:33:54 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci: fix to skip using PTHREAD_STACK_MIN.</div><div class='add'>+	  [ruby-dev:30063]</div><div class='add'>+</div><div class='add'>+Thu Jan  4 10:30:11 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run_rite.rb (bm): fix to use lines.</div><div class='add'>+</div><div class='add'>+Wed Jan  3 18:49:15 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): lineno update condition was wrong.</div><div class='add'>+	  [ruby-dev:30065]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jan  3 11:36:51 2007  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (ruby_dup): start GC on ENOMEM as well.</div><div class='add'>+</div><div class='add'>+Tue Jan  2 10:29:54 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: fix to compile on YARV</div><div class='add'>+	  ruby_errinfo -&gt; rb_errinfo()</div><div class='add'>+</div><div class='add'>+Mon Jan  1 08:07:06 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fix to compile on YARV</div><div class='add'>+	  ruby_errinfo -&gt; rb_errinfo(),</div><div class='add'>+	  ruby_safe_level -&gt; rb_safe_level().</div><div class='add'>+</div><div class='add'>+Mon Jan  1 07:57:17 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drbssl.rb: fix to skip drb tests.</div><div class='add'>+</div><div class='add'>+Mon Jan  1 06:13:11 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/c_parser.rb: Make Rdoc accessible.  Update constant</div><div class='add'>+	  value information.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: Update constant comments to provide</div><div class='add'>+	  values for RDoc.</div><div class='add'>+</div><div class='add'>+Mon Jan  1 06:05:55 2007  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constants):</div><div class='add'>+	  Allow RDoc comment to give friendly value for rb_define_const.  Patch</div><div class='add'>+	  by Daniel Berger &lt;djberg96 at gmail.com&gt;, [ruby-patches-7499].</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#handle_constants): Fix</div><div class='add'>+	  whitespace handling in constant comments.</div><div class='add'>+</div><div class='add'>+Mon Jan  1 00:00:00 2007  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* Merge YARV</div><div class='add'>+</div><div class='add'>+Sun Dec 31 16:22:48 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: Fix Array#reject.</div><div class='add'>+</div><div class='add'>+Sun Dec 31 00:46:25 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date2.rb: removed.</div><div class='add'>+</div><div class='add'>+Sun Dec 31 00:15:13 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 4.0.</div><div class='add'>+</div><div class='add'>+Sat Dec 30 04:38:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_with_index): reuse array for yield parameters.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min, enum_max): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 30 04:25:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): reuse array for yield parameters.</div><div class='add'>+</div><div class='add'>+Sat Dec 30 02:54:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_gets): accepts limit argument.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_readline, strio_each,</div><div class='add'>+	  strio_readlines): ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 30 02:22:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getline): add limit capability.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets_m): accepts limit argument.  [ruby-talk:231563]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_readline, rb_io_readlines, rb_io_each_line, argf_getline):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): add limit capability.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast, rb_io_getline): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): small refactoring for DRY.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_foreach, rb_io_s_readlines): small refactoring.</div><div class='add'>+</div><div class='add'>+Thu Dec 28 15:27:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie::initialize): use Array() again.</div><div class='add'>+	  [ruby-core:09781]</div><div class='add'>+</div><div class='add'>+Wed Dec 27 20:52:32 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: remove WIN32OLE::PROPERTY class.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 27 10:04:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Array): returns 1-element array if the argument</div><div class='add'>+	  does not have to_ary nor to_a.</div><div class='add'>+</div><div class='add'>+Tue Dec 26 21:02:14 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_folderitem2_invokeverb.rb: The argument</div><div class='add'>+	  of Shell.NameSpace should not be file path.</div><div class='add'>+</div><div class='add'>+Tue Dec 26 06:13:08 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: remove useless method</div><div class='add'>+	  BigDecimal#!=. [ruby-dev:30050]</div><div class='add'>+</div><div class='add'>+Thu Dec 21 15:37:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_slice_bang): rdoc description bug fixed.</div><div class='add'>+	  [ruby-core:09754]</div><div class='add'>+</div><div class='add'>+Wed Dec 20 12:54:31 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* Convert CVS repository to Subversion repository.</div><div class='add'>+</div><div class='add'>+Mon Dec 18 08:36:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie::initialize): Array(string) no longer</div><div class='add'>+	  works.  [ruby-core:09738]</div><div class='add'>+</div><div class='add'>+Fri Dec 15 00:19:53 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (COMPILE_RULES): latter rule has higher priority.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): remove static library before update,</div><div class='add'>+	  to get rid of sludge of Borland tlib.exe.</div><div class='add'>+</div><div class='add'>+Thu Dec 14 18:29:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: NetBSD editline does not have</div><div class='add'>+	  rl_username_completion_function() and rl_completion_matches().</div><div class='add'>+	  a patch from Takahiro Kambe &lt;taca at back-street.net&gt;.</div><div class='add'>+	  [ruby-dev:30008]</div><div class='add'>+</div><div class='add'>+Thu Dec 14 18:20:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale::puts): typo fixed.  a patch from</div><div class='add'>+	  NAKAMURA Usaku &lt;usa@ruby-lang.org&gt;.  [ruby-dev:30012]</div><div class='add'>+</div><div class='add'>+Tue Dec 12 23:33:53 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (Switch#parse_arg, Switch#conv_arg): splat failures.</div><div class='add'>+</div><div class='add'>+Mon Dec 11 11:51:10 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/lib/sha2.rb: Moved one level up from under</div><div class='add'>+	  the superfluous subdirectory digest/.</div><div class='add'>+</div><div class='add'>+Mon Dec 11 11:46:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_define_const): typo fixed.</div><div class='add'>+</div><div class='add'>+Mon Dec 11 09:36:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): index double decode problem.</div><div class='add'>+	  [ruby-core:09695]</div><div class='add'>+</div><div class='add'>+Sat Dec  9 21:39:24 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): keep the exception till after END blocks.</div><div class='add'>+	  [ruby-core:09675]</div><div class='add'>+</div><div class='add'>+Sat Dec  9 11:22:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale::search_file): use File.exist?</div><div class='add'>+	  instead of File.exists?.  a patch from Yutaka Kanemoto</div><div class='add'>+	  &lt;kinpoco at gmail.com&gt; in [ruby-dev:30000].</div><div class='add'>+</div><div class='add'>+Fri Dec  8 18:11:18 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: cannot put :nodoc: before method definition.</div><div class='add'>+	  put after it.</div><div class='add'>+</div><div class='add'>+Fri Dec  8 17:00:13 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/rdoc: use File.exist? instead of File.exists?.</div><div class='add'>+</div><div class='add'>+Thu Dec  7 23:50:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): new method Dir.exist?(path).</div><div class='add'>+	  [ruby-core:09663]</div><div class='add'>+</div><div class='add'>+	* file.c (Init_File): remove File.exists?; use File.exist?</div><div class='add'>+	  instead.</div><div class='add'>+</div><div class='add'>+	* file.c: rename functions to test_* to rb_file_*_p.</div><div class='add'>+</div><div class='add'>+Thu Dec  7 09:29:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb (WeakRef::__setobj__): should support</div><div class='add'>+	  marshaling.  [ruby-talk:228508]</div><div class='add'>+</div><div class='add'>+Wed Dec  6 23:58:36 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk (NULLCMD): moved for platforms that empty</div><div class='add'>+	  command does not run.  fixed: [ruby-dev:29994]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_stdhandle): redirect unopened IOs to NUL.</div><div class='add'>+	  [ruby-core:09572]</div><div class='add'>+</div><div class='add'>+Tue Dec  5 19:01:42 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (SITE_DIR): fixed to empty RUBY_SITE_LIB in config.h on</div><div class='add'>+	  NetBSD.  fixed: [ruby-dev:29358]</div><div class='add'>+</div><div class='add'>+Tue Dec  5 18:38:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix::rank): use quo method to avoid integer</div><div class='add'>+	  division problem.  [ruby-core:09644]</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix::rank_e): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  5 00:59:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): need to parse "/=" as</div><div class='add'>+	  self assignment operator, not regex.  [ruby-talk:227324]</div><div class='add'>+</div><div class='add'>+Tue Dec  5 00:19:14 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, object.c, variable.c (rb_mod_constants): added an optional</div><div class='add'>+	  flag to search ancestors, which is defaulted to true, as well as</div><div class='add'>+	  const_defined? and const_get.  [ruby-dev:29989]</div><div class='add'>+</div><div class='add'>+Mon Dec  4 23:49:28 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install_recursive): get rid of warning.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (CompletingHash#match): get rid of splat failure.</div><div class='add'>+</div><div class='add'>+Mon Dec  4 19:16:39 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Do alias &lt;&lt; update.</div><div class='add'>+</div><div class='add'>+Mon Dec  4 10:48:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (OFFT2NUM): use LONG2NUM() if sizeof(long) equals to</div><div class='add'>+	  sizeof(off_t).</div><div class='add'>+</div><div class='add'>+Mon Dec  4 08:32:25 2006  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): should quote</div><div class='add'>+	  boundary. JVN#84798830</div><div class='add'>+</div><div class='add'>+Sun Dec  3 16:16:53 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Fix problems with update</div><div class='add'>+	  timing. [Reported by: oss-ruby@technorama.net]</div><div class='add'>+</div><div class='add'>+Sat Dec  2 07:33:53 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils::FormData::&lt;&lt;):</div><div class='add'>+	  HTTPUtils::parse_header() takes a string.  [ruby-dev:29931]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils::parse_header):</div><div class='add'>+	  String does no longer have each method.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils::parse_form_data):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec  2 07:09:04 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c: OpenSSL::OCSP::OSCPError should be</div><div class='add'>+	  subclass of OpenSSL::OpenSSLError. [ruby-dev:29980]</div><div class='add'>+</div><div class='add'>+Fri Dec  1 16:31:53 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: shouldn't run the killed thread at callback.</div><div class='add'>+	  [ruby-talk: 227408]</div><div class='add'>+</div><div class='add'>+Tue Nov 28 17:25:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_iter_check): should check modification (size</div><div class='add'>+	  change) during iteration.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize, rb_ary_shift, rb_ary_unshift,</div><div class='add'>+	  rb_ary_splice, rb_ary_reverse, rb_ary_sort, rb_ary_delete,</div><div class='add'>+	  rb_ary_delete_at, rb_ary_reject_bang, rb_ary_replace,</div><div class='add'>+	  rb_ary_clear, rb_ary_fill, rb_ary_uniq_bang, rb_ary_compact,</div><div class='add'>+	  rb_ary_shuffle): add iteration check.</div><div class='add'>+</div><div class='add'>+Mon Nov 27 09:00:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ord): typo fixed.  reported from Kornelius</div><div class='add'>+	  Kalnbach &lt;murphy@rubychan.de&gt;.  [ruby-core:09621]</div><div class='add'>+</div><div class='add'>+Sun Nov 26 16:36:46 2006  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: addition of RUBY_PATCHLEVEL.</div><div class='add'>+	* version.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 22 16:00:49 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: support --with-X11/--without-X11 option.</div><div class='add'>+</div><div class='add'>+	* ext/tk/README.tcltklib: add description about --with-X11-* option</div><div class='add'>+	  [ruby-talk:225166] and --with-X11/--without-X11 option.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/extconf.rb: able to be called manually</div><div class='add'>+	  [ruby-talk:225950].</div><div class='add'>+</div><div class='add'>+Sat Nov 18 23:39:20 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_tap): a new method.  [ruby-talk:224013]</div><div class='add'>+</div><div class='add'>+Wed Nov 15 23:22:54 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_grpowned, rb_stat_grpowned): should honor</div><div class='add'>+	  supplementary group IDs.  [ruby-core:09546]</div><div class='add'>+</div><div class='add'>+Tue Nov  7 18:35:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): need to pack rest arg information in</div><div class='add'>+	  argc.</div><div class='add'>+</div><div class='add'>+Tue Nov  7 18:05:01 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: minor bug fix.</div><div class='add'>+</div><div class='add'>+Tue Nov  7 17:52:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): revert duplicate inclusion of</div><div class='add'>+	  modules.  [ruby-dev:29793]</div><div class='add'>+</div><div class='add'>+Tue Nov  7 17:18:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_missing): update old argument adjustment.</div><div class='add'>+</div><div class='add'>+Tue Nov  7 16:41:21 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (when_check): need to splat for NODE_ARGSCAT as well.</div><div class='add'>+	  [ruby-dev:29860]</div><div class='add'>+</div><div class='add'>+Mon Nov  6 22:23:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): remove duplicated definition of</div><div class='add'>+	  Symbol#to_s.</div><div class='add'>+</div><div class='add'>+Mon Nov  6 18:54:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_avalue): need to splat but no error.</div><div class='add'>+</div><div class='add'>+	* eval.c: new macros - YIELD_CALL, YIELD_VALUES.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_values): specify YIELD_VALUES.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): use new macros.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): slightly modified to separate YIELD_CALL</div><div class='add'>+	  and YIELD_VALUES from YIELD_ARY_ARGS.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): add nil.to_splat =&gt; [].</div><div class='add'>+</div><div class='add'>+Mon Nov  6 15:41:55 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: ext/tk/lib/tk/itemconfig.rb: bug</div><div class='add'>+	  fix on 'itemconfiginfo' method, and modify to make it easy to</div><div class='add'>+	  override 'itemconfiginfo' method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/treeview.rb: support Tile 0.7.8.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/version.rb: [new] add Tk::Tkextlib_RELEASE_DATE</div><div class='add'>+	  to get the information from scripts.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: load 'tkextlib/version.rb', and update RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/SUPPORT_STATUS: update.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/editable_listbox.rb: [new] the listbox with editable</div><div class='add'>+	  items. It's one of the example about usage of Place geometry manager.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktextio.rb: improve the functions of TkTextIO class.</div><div class='add'>+	  Those are required by 'irbtkw.rbw'.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/irbtkw.rbw: [new] IRB on Ruby/Tk. It doesn't need any</div><div class='add'>+	  real console. IRB works on a text widget without I/O blocking. That</div><div class='add'>+	  is, thread switching on IRB will work properly, even if on Windows.</div><div class='add'>+</div><div class='add'>+Mon Nov  6 00:42:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg_dup_check): vid may be nameless internal id.</div><div class='add'>+</div><div class='add'>+Sun Nov  5 19:52:19 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: updated based on date2 3.9.7.</div><div class='add'>+</div><div class='add'>+Sat Nov  4 13:09:31 2006  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: accept NOMODSEQ. [ruby-core:9002]</div><div class='add'>+</div><div class='add'>+Fri Nov  3 00:16:37 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_getnameinfo__aix): AF_INET6 workaround</div><div class='add'>+	  for AIX.  a patch from Yutaka Kanemoto &lt;kinpoco AT gmail.com&gt;.</div><div class='add'>+	  [ruby-dev:29744]</div><div class='add'>+</div><div class='add'>+Thu Nov  2 14:19:44 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#^): Fix XOR operation against a container that</div><div class='add'>+	  holds duplicate values. [ruby-core:9372]</div><div class='add'>+</div><div class='add'>+Thu Nov  2 10:00:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: class Symbol is no longer subclass of String. also</div><div class='add'>+	  covers [ruby-core:09366]</div><div class='add'>+</div><div class='add'>+Thu Nov  2 08:21:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): Symbol should</div><div class='add'>+	  come earlier than String.</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/rubytypeFactory.rb (RubytypeFactory::obj2soap):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (TC_Set::test_s_new): strings are no longer</div><div class='add'>+	  Enumerable</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.rb (Property::load): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils::parse_header): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/soap/mimemessage.rb (MIMEMessage::Headers::parse): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov  2 09:08:04 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: revert lfree shift/unshift boost patch to avoid unknown</div><div class='add'>+	  memory error.</div><div class='add'>+</div><div class='add'>+Wed Nov  1 23:24:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (struct RArray): revert embedding ptr in RVALUE.</div><div class='add'>+</div><div class='add'>+	* array.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov  1 23:01:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (hash): use Bob Jenkins' hash algorithm.</div><div class='add'>+</div><div class='add'>+Wed Nov  1 02:22:31 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb (Digest::HMAC::update): Minor</div><div class='add'>+	  optimization.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_instance_equal): Allow comparing</div><div class='add'>+	  a digest instance with another of a different class.</div><div class='add'>+</div><div class='add'>+Wed Nov  1 01:05:13 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): fixed bug of zsuper with both of opt and rest.</div><div class='add'>+	  fixed: [ruby-list:42928]</div><div class='add'>+</div><div class='add'>+Tue Oct 31 17:03:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_dup): duplicate the class of original time.</div><div class='add'>+	  [ruby-core:09357]</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time::make_time, Time::rfc2822, Time::httpdate):</div><div class='add'>+	  should respect subclasses.  [ruby-core:09357]</div><div class='add'>+</div><div class='add'>+Tue Oct 31 16:25:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_shared_first): should address offset after</div><div class='add'>+	  ary_shared_array().  [ruby-core:09358]</div><div class='add'>+</div><div class='add'>+Mon Oct 30 23:40:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (miniruby): add XLDFLAGS.</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): use -bE option for miniruby.  [ruby-dev:29698]</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): get rid of possible memory leak.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (cmdglob, rb_w32_cmdvector, rb_w32_opendir,</div><div class='add'>+	  rb_w32_get_environ): not to use GC before initialization.</div><div class='add'>+</div><div class='add'>+Mon Oct 30 19:28:02 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): use better approximation.</div><div class='add'>+</div><div class='add'>+Mon Oct 30 18:35:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2str0): wrong allocation length.  a patch from</div><div class='add'>+	  U.Nakamura &lt;usa at garbagecollect.jp&gt; [ruby-dev:29710]</div><div class='add'>+</div><div class='add'>+Mon Oct 30 12:34:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): fix commit miss.  [ruby-dev:29707]</div><div class='add'>+</div><div class='add'>+Mon Oct 30 11:15:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): should preserve leading zero</div><div class='add'>+	  information for negative %b and %x.  [ruby-talk:221347]</div><div class='add'>+</div><div class='add'>+Sun Oct 29 19:51:31 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c: invalid offset value was used in STATE_CHECK_BUFF_INIT().</div><div class='add'>+</div><div class='add'>+Sat Oct 28 20:13:18 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.4.5</div><div class='add'>+</div><div class='add'>+	* regint.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regerror.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.c ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 28 07:56:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): missing break.  [ruby-core:09345]</div><div class='add'>+</div><div class='add'>+Fri Oct 27 17:30:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enum_each_cons): move RETURN_ENUMERATOR() after</div><div class='add'>+	  argument check.</div><div class='add'>+</div><div class='add'>+Thu Oct 26 21:05:48 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): should clear error.</div><div class='add'>+	  (fix http://bugs.debian.org/394336)</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 26 15:23:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c: remove by_slice and by_cons.</div><div class='add'>+</div><div class='add'>+Thu Oct 26 15:12:12 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (Init_digest): typo.</div><div class='add'>+</div><div class='add'>+Wed Oct 25 17:16:05 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest_hmac.rb: added.</div><div class='add'>+</div><div class='add'>+Wed Oct 25 16:34:31 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/test.sh: make this script work again.</div><div class='add'>+</div><div class='add'>+Wed Oct 25 07:59:42 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: updated based on date2 3.9.6.</div><div class='add'>+	  [ruby-core:09323]</div><div class='add'>+</div><div class='add'>+Wed Oct 25 00:58:19 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb, win32/resource.rb: use unique variable names.</div><div class='add'>+</div><div class='add'>+Tue Oct 24 19:18:53 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_by_slice): new method added.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_by_cons): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 24 18:56:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enum_each_slice, enum_each_cons): returns</div><div class='add'>+	  Enumerable::Enumerator if no block is given.  [ruby-dev:29246]</div><div class='add'>+</div><div class='add'>+	* enumerator.c: remove methods: enum_with_index, enum_slice,</div><div class='add'>+	  enum_cons.  [ruby-dev:29246]</div><div class='add'>+</div><div class='add'>+Tue Oct 24 18:51:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): add RETURN_ENUMERATOR() to zip method.</div><div class='add'>+</div><div class='add'>+Mon Oct 23 04:30:04 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): use return value from proc given as the</div><div class='add'>+	  second argument to Marshal#load() to allow value replacement in</div><div class='add'>+	  the restoring data.</div><div class='add'>+</div><div class='add'>+Sun Oct 22 14:48:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal): avoid duplicated installation of SIGCHLD</div><div class='add'>+	  handler.</div><div class='add'>+</div><div class='add'>+Sun Oct 22 16:47:56 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): should be infected with only original</div><div class='add'>+	  string, but not the shared string.  fixed: [ruby-core:09152]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): keep shared string untainted when original</div><div class='add'>+	  string is tainted.  fixed: [ruby-dev:29672]</div><div class='add'>+</div><div class='add'>+Sun Oct 22 07:55:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upcase, rb_str_downcase, rb_str_downcase,</div><div class='add'>+	  rb_str_upcase_bang, rb_str_downcase_bang, rb_str_swapcase_bang):</div><div class='add'>+	  add RDoc description that case conversion to be effective only</div><div class='add'>+	  in ASCII region.</div><div class='add'>+</div><div class='add'>+Sun Oct 22 05:20:34 2006  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: alloca is broken; use C_ALLOCA instead.</div><div class='add'>+	  [ruby-dev:29416]</div><div class='add'>+</div><div class='add'>+Sat Oct 21 17:50:40 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb: Follow the framework updates.</div><div class='add'>+</div><div class='add'>+Fri Oct 20 22:00:43 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Complete half-boiled updates.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/lib/digest/sha2.rb: Fix #initialize_clone().</div><div class='add'>+</div><div class='add'>+Fri Oct 20 20:28:37 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest: Prefix C constants with RUBY_ and C type names with</div><div class='add'>+	  rb_ to avoid name clash in writing extensions.</div><div class='add'>+</div><div class='add'>+	* ext/digest: Introduce Digest::Class and Digest::Instance for</div><div class='add'>+	  ease of implementing subclasses and add-ons, inspired by</div><div class='add'>+	  gotoyuzo.</div><div class='add'>+</div><div class='add'>+	* ext/digest: The Digest::Instance module now requires and assumes</div><div class='add'>+	  that any instance be resettable and clonable, and add some</div><div class='add'>+	  convenient instance methods such as "new()", for creating a new</div><div class='add'>+	  copy, parameter taking "digest()" and "hexdigest()", for instant</div><div class='add'>+	  calculation.  These methods make digest instances work just like</div><div class='add'>+	  digest classes.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/lib/digest/sha2.rb:</div><div class='add'>+	  Add the Digest::SHA2 class to wrap up SHA2 variants: SHA256,</div><div class='add'>+	  SHA384 and SHA512, hoping this module would make a decent</div><div class='add'>+	  example of a digest subclass written in Ruby.</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb: Adjust autoload entries for SHA2</div><div class='add'>+	  classes.</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Follow the framework updates.</div><div class='add'>+</div><div class='add'>+Fri Oct 20 10:47:43 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: fixed the bug of handling COMMON_MACROS.</div><div class='add'>+</div><div class='add'>+Fri Oct 20 08:42:38 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (NULLCMD): dummy command.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (post-install-*): Borland make cannot ignore</div><div class='add'>+	  command-less double-colon rules.  [ruby-dev:29676]</div><div class='add'>+</div><div class='add'>+Fri Oct 20 00:37:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub ($(LIBRUBY_SO)): execute pre-link hook.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: workaround for Borland make.</div><div class='add'>+</div><div class='add'>+Wed Oct 18 23:02:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift): shorten copy size.  fixed: [ruby-list:42907]</div><div class='add'>+</div><div class='add'>+	* signal.c (Init_signal): handle SIGTERM.  fixed: [ruby-list:42895]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_utime): allow NULL to set the current time.</div><div class='add'>+	  [ruby-talk:219248]</div><div class='add'>+</div><div class='add'>+Wed Oct 18 13:25:50 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_line): String#lines now works when a block</div><div class='add'>+	  is given.  in other words, lines become an alias to each_line.</div><div class='add'>+	  [ruby-core:09218]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_each_byte): ditto for bytes in place of lines.</div><div class='add'>+</div><div class='add'>+Wed Oct 18 00:55:33 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): use particular enums.  [ruby-core:09221]</div><div class='add'>+</div><div class='add'>+Tue Oct 17 22:03:08 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: String#each was removed, use #each_line instead.</div><div class='add'>+</div><div class='add'>+Tue Oct 17 12:27:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_shared_array): should set NOEMBED flag for a copied</div><div class='add'>+	  array.</div><div class='add'>+</div><div class='add'>+Tue Oct 17 08:04:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lines): now takes optional argument for the</div><div class='add'>+	  line separator.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_lines, rb_io_bytes): new methods.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 23:33:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): a bug in lfree shift length</div><div class='add'>+	  calculation.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 08:30:43 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: *OBJS are not needed for extension libraries.</div><div class='add'>+</div><div class='add'>+	* {bcc32,wince,win32}/Makefile.sub (config.status): fixed typo,</div><div class='add'>+	  missing comma.</div><div class='add'>+</div><div class='add'>+Mon Oct 16 00:44:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): execute block if given with unpacked value</div><div class='add'>+	  instead of creating an array.  an idea from Tim Bray.</div><div class='add'>+</div><div class='add'>+Sun Oct 15 01:03:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Collector::Dir#collect): append base</div><div class='add'>+	  directory but not prepend.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): do not</div><div class='add'>+	  join with dot.  fixed: [ruby-core:09179]</div><div class='add'>+</div><div class='add'>+Sat Oct 14 23:39:50 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (singleton): no need to re-create NODE_SELF() again.</div><div class='add'>+	  [ruby-core:09177]</div><div class='add'>+</div><div class='add'>+Sat Oct 14 23:25:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_warning, parser_warn): some error message may</div><div class='add'>+	  contain format specifiers.  a patch from Akinori MUSHA &lt;knu at</div><div class='add'>+	  iDaemons.org&gt;.  [ruby-dev:29657]</div><div class='add'>+</div><div class='add'>+	* regparse.c (onig_rb_warning, onig_rb_warn): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (VpException): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/handle.c (rb_dlhandle_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (rb_gdbm_fatal): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 14 08:15:42 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c, ext/digest/digest.h,</div><div class='add'>+	  ext/digest/md5/md5init.c, ext/digest/rmd160/rmd160init.c,</div><div class='add'>+	  ext/digest/sha1/sha1init.c, ext/digest/sha2/sha2init.c:</div><div class='add'>+	  Introduce API versioning.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c, ext/digest/digest.h,</div><div class='add'>+	  ext/digest/md5/md5init.c, ext/digest/rmd160/rmd160init.c,</div><div class='add'>+	  ext/digest/sha1/sha1init.c, ext/digest/sha2/sha2init.c: Remove</div><div class='add'>+	  the constants DIGEST_LENGTH and BLOCK_LENGTH and turn them into</div><div class='add'>+	  instance methods digest_length() and block_length().  Class</div><div class='add'>+	  methods with the same names are also provided, which take extra</div><div class='add'>+	  parameters for a digest method.</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Completely redesign the somewhat</div><div class='add'>+	  bizarre API, now that Digest classes can take hashing</div><div class='add'>+	  parameters.</div><div class='add'>+</div><div class='add'>+Sat Oct 14 05:54:05 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: Improve RDoc documentation further more.</div><div class='add'>+</div><div class='add'>+Sat Oct 14 04:33:33 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: Improve RDoc documentation.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (Init_digest, rb_digest_base_s_digest,</div><div class='add'>+	  rb_digest_base_s_hexdigest): Make Digest::Base::digest() and</div><div class='add'>+	  Digest::Base::hexdigest() take extra arguments, which are passed</div><div class='add'>+	  through to the constructor in an internal call.</div><div class='add'>+</div><div class='add'>+	* ext/digest/bubblebabble/bubblebabble.c</div><div class='add'>+	  (rb_digest_base_s_bubblebabble): Ditto for</div><div class='add'>+	  Digest::Base::bubblebabble().</div><div class='add'>+</div><div class='add'>+Sat Oct 14 00:55:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (post-install-ext): no longer needed.</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat: get rid of a quirk of Borland make, which</div><div class='add'>+	  sets empty macro in command line to "1".</div><div class='add'>+</div><div class='add'>+Fri Oct 13 22:49:02 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: updated based on date2 3.9.5.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 21:00:01 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest): Try to auto-load non-standard</div><div class='add'>+	  digest modules when a specified digest class is missing.</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb: Define Digest(name) for ease of</div><div class='add'>+	  dynamically selecting a hashing algorithm.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 20:53:37 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (Init_digest): Digest::Base.new() does no</div><div class='add'>+	  longer take an initial string to feed.  This change allows</div><div class='add'>+	  subclasses to take hashing parameters.  A statement such as</div><div class='add'>+	  ``md = Digest::MD5.new(s)'' can be easily rewritten as</div><div class='add'>+	  ``md = Digest::MD5.new &lt;&lt; s'' or</div><div class='add'>+	  ``md = Digest::MD5.new.update(s)''.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 20:51:55 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c, ext/digest/md5/md5init.c,</div><div class='add'>+	  ext/digest/rmd160/rmd160init.c, ext/digest/sha1/sha1init.c,</div><div class='add'>+	  ext/digest/sha2/sha2init.c: Add RDoc documentation.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.txt, ext/digest/digest.txt.ja: Removed in</div><div class='add'>+	  favor of embedded RDoc documentation.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 20:38:12 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/bubblebabble, ext/digest/digest.c: Rip BubbleBabble</div><div class='add'>+	  support out of the base class and have a separate module named</div><div class='add'>+	  digest/bubblebabble.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 19:53:59 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_equal): Again, should call</div><div class='add'>+	  digest() of a subclass instead of the one defined in the base</div><div class='add'>+	  class.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 18:19:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: Class#inherited RDoc added.  a patch from Daniel</div><div class='add'>+	  Berger &lt;djberg96 at gmail.com&gt;  [ruby-core:08942]</div><div class='add'>+</div><div class='add'>+Fri Oct 13 02:42:00 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_equal): Should call digest()</div><div class='add'>+	  of a subclass instead of the one defined in the base class.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 02:30:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Collector::Dir#collect): prepend</div><div class='add'>+	  base directory to load path.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Collector::Dir#collect_file): should</div><div class='add'>+	  use the given File-like interface, but not File directly.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb (TestDir::FileSystem): implement</div><div class='add'>+	  File-like methods correctly.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 01:48:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (Date::self.complete_hash): need to check if g is</div><div class='add'>+	  nil before dereference.  [ruby-core:09116]</div><div class='add'>+</div><div class='add'>+Fri Oct 13 01:05:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_partition): RDoc update.  a patch from</div><div class='add'>+	  Mauricio Fernandez &lt;mfp at acm.org&gt;.  [ruby-core:09160]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_compare_by_id): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 13 00:34:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cvar_defined): wrong id check.  a patch from</div><div class='add'>+	  Mauricio Fernandez &lt;mfp at acm.org&gt;.  [ruby-core:09158]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cvar_get): typo fixed.  [ruby-core:09168]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cvar_set): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct 12 22:58:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_compare_by_id): somehow we lost renaming from</div><div class='add'>+	  Hash#identical.  [ruby-core:09163]</div><div class='add'>+</div><div class='add'>+Thu Oct 12 18:25:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c (cbsubst_table_setup): need to handle new</div><div class='add'>+	  character literal (1 char string).</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: shut up some warnings from tk's extconf.rb.</div><div class='add'>+</div><div class='add'>+Thu Oct 12 02:15:24 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Make use of String#bytes.</div><div class='add'>+</div><div class='add'>+Thu Oct 12 02:12:31 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (get_digest_base_metadata): Use an instance</div><div class='add'>+	  variable of a class object instead of a class variable for</div><div class='add'>+	  metadata.  This change is only crucial for ruby 1.8 because</div><div class='add'>+	  class variables are inherited to subclasses prior to 1.9, but</div><div class='add'>+	  applying it also to 1.9 will assure compatibilities.</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5init.c (Init_md5): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/rmd160init.c (Init_rmd160): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/sha1init.c (Init_sha1): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2init.c (Init_sha2): Ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 21:36:47 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_alloc,</div><div class='add'>+	  rb_digest_base_equal): Simplify the equality check and just</div><div class='add'>+	  compare resulted digests since state-level equality should</div><div class='add'>+	  not be so significant.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.h: Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/*/*.[ch]: Ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 17:11:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_define_method): add half boiled RDoc document.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 16:57:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): should shift lfree pointer before</div><div class='add'>+	  calling xfree.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 15:07:42 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest/hmac.rb: Add digest/hmac, which implements</div><div class='add'>+	  HMAC keyed-hashing algorithm.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 15:03:55 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_reset): Do not make</div><div class='add'>+	  recursive calls, but call initialize() when reset() is not</div><div class='add'>+	  defined in a subclass.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 14:56:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/sha1ossl.h: libssl 0.9.8c-3 defines no</div><div class='add'>+	  SHA_BLOCK_LENGTH.</div><div class='add'>+</div><div class='add'>+Wed Oct 11 14:03:31 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_reset, Init_digest): Add</div><div class='add'>+	  Digest::Base#reset.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.h: Update the header comment.</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5ossl.h, ext/digest/md5/md5init.c (Init_md5):</div><div class='add'>+	  Define DIGEST_LENGTH and BLOCK_LENGTH.</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/rmd160init.c (Init_rmd160): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/sha1init.c (Init_sha1): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2init.c (Init_sha2): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/depend, ext/digest/extconf.rb: Use $INSTALLFILES</div><div class='add'>+	  rather than adding make targets. [Pointed out by: nobu]</div><div class='add'>+</div><div class='add'>+Tue Oct 10 16:39:08 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (hexdigest_str_new, bubblebabble_str_new):</div><div class='add'>+	  Perform StringValue() checks properly.</div><div class='add'>+</div><div class='add'>+Tue Oct 10 13:21:21 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/depend, ext/digest/sha2/depend: Remove obsolete</div><div class='add'>+	  dependencies.</div><div class='add'>+</div><div class='add'>+Mon Oct  9 23:46:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb: documentation patch from Konrad Meyer</div><div class='add'>+	  &lt;konrad.meyer@gmail.com&gt;.  [ruby-doc:1238]</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb, lib/ping.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  9 23:40:58 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/fileutils.rb, lib/mkmf.rb, lib/optparse.rb,</div><div class='add'>+	  lib/shellwords.rb: get rid of shadowing outer local variable.</div><div class='add'>+</div><div class='add'>+Mon Oct  9 22:56:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb (REXML::Encoding::check_encoding): spaces</div><div class='add'>+	  are allowed around equal sign.  [ruby-core:09032]</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  9 01:56:34 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_define_method): add new method</div><div class='add'>+	  Kernel#define_singleton_method.  [ruby-list:42851]</div><div class='add'>+</div><div class='add'>+Sat Oct  7 23:53:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_scan): small documentation fix.</div><div class='add'>+	  [ruby-core:09007]</div><div class='add'>+</div><div class='add'>+Sat Oct  7 23:44:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rshift): a bug in right shift of negative</div><div class='add'>+	  bignums.  [ruby-core:09020]</div><div class='add'>+</div><div class='add'>+Sat Oct  7 23:33:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): packed post splat arguments may conflict</div><div class='add'>+	  with normal arguments.  [ruby-core:09021]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  7 11:53:04 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_initialize): since module_eval no longer passes</div><div class='add'>+	  self, use module_exec instead.  fixed: [ruby-dev:29637]</div><div class='add'>+</div><div class='add'>+Sat Oct  7 00:27:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_include_module): remove unnecessary check.</div><div class='add'>+	  [ruby-talk:218402]</div><div class='add'>+</div><div class='add'>+Fri Oct  6 15:19:59 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/depend: Fix header installation when the build</div><div class='add'>+	  directory is different from srcdir. [Pointed out by: eban]</div><div class='add'>+</div><div class='add'>+Fri Oct  6 09:56:31 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (config.status): shouldn't use</div><div class='add'>+	  copy command instead of install. use -run install.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 06:53:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): small refactoring.</div><div class='add'>+</div><div class='add'>+	* parse.y (bparam_item): fixed bugs in handling parenthesized LHS.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 04:47:07 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/depend: Install digest.h.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 04:27:40 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/md5.rb, ext/digest/lib/sha1.rb: Remove those</div><div class='add'>+	  compatibility stub libraries.</div><div class='add'>+</div><div class='add'>+	* sample/openssl/c_rehash.rb: Use digest/md5 instead of obsolete md5.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 04:09:51 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: Make hexdigest() always call digest() internally.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: Add bubblebabble().</div><div class='add'>+</div><div class='add'>+Fri Oct  6 02:38:42 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: Allow subclassing in Ruby.</div><div class='add'>+</div><div class='add'>+Fri Oct  6 02:06:10 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (hexdigest_str_new): Add a string size check.</div><div class='add'>+</div><div class='add'>+Thu Oct  5 19:28:35 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.[ch]: Since the argument order of</div><div class='add'>+	  hash_final_func_t was inconsistent with others, change it and</div><div class='add'>+	  rename to hash_finish_func_t to avoid confusion.</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.[ch]: Remove and eliminate the use of</div><div class='add'>+	  hash_end_func_t.  Implement hexdigest conversion in the base</div><div class='add'>+	  class.</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5.c, ext/digest/md5/md5.h,</div><div class='add'>+	  ext/digest/md5/md5init.c, ext/digest/md5/md5ossl.c,</div><div class='add'>+	  ext/digest/md5/md5ossl.h: Remove MD5_End() and change</div><div class='add'>+	  MD5_Final() to MD5_Finish().</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/depend, ext/digest/rmd160/extconf.rb,</div><div class='add'>+	  ext/digest/rmd160/rmd160.c, ext/digest/rmd160/rmd160.h,</div><div class='add'>+	  ext/digest/rmd160/rmd160hl.c, ext/digest/rmd160/rmd160init.c,</div><div class='add'>+	  ext/digest/rmd160/rmd160ossl.c, ext/digest/rmd160/rmd160ossl.h:</div><div class='add'>+	  Remove unused functions RMD160_End(), RMD160_File(),</div><div class='add'>+	  RMD160_Data() and change RMD160_Final() to RMD160_Finish().</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/extconf.rb, ext/digest/sha1/sha1.c,</div><div class='add'>+	  ext/digest/sha1/sha1.h, ext/digest/sha1/sha1hl.c,</div><div class='add'>+	  ext/digest/sha1/sha1init.c, ext/digest/sha1/sha1ossl.c,</div><div class='add'>+	  ext/digest/sha1/sha1ossl.h: Likewise.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb, ext/digest/sha2/sha2.c,</div><div class='add'>+	  ext/digest/sha2/sha2.h, ext/digest/sha2/sha2hl.c,</div><div class='add'>+	  ext/digest/sha2/sha2init.c: Likewise.</div><div class='add'>+</div><div class='add'>+Wed Oct  4 18:47:25 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: bugfix and update</div><div class='add'>+	  (see ext/tk/ChangeLog.tkextlib).</div><div class='add'>+</div><div class='add'>+Wed Oct  4 17:25:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): check protected visibility based on real self,</div><div class='add'>+	  not ruby_frame-&gt;self.  [ruby-talk:217822]</div><div class='add'>+</div><div class='add'>+Wed Oct  4 15:46:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_param): should interpret single parenthesized</div><div class='add'>+	  left hand side expression.</div><div class='add'>+</div><div class='add'>+Wed Oct  4 08:52:30 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/optparse/test_getopts.rb: changed the class name of test case</div><div class='add'>+	  to get rid of conflict with test_optparse.rb.</div><div class='add'>+</div><div class='add'>+Tue Oct  3 21:04:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (dyna_in_block): inline using macro.</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs): simplifies the rule a bit.</div><div class='add'>+</div><div class='add'>+	* parse.y (block_param): restrict block parameters to be local</div><div class='add'>+	  variables only.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::test_nested_iterator):</div><div class='add'>+	  update test suite to conform the last change.</div><div class='add'>+</div><div class='add'>+Tue Oct  3 02:31:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (splat_value): use "to_splat" instead of "to_ary" to</div><div class='add'>+	  prepare splat values as an array.</div><div class='add'>+</div><div class='add'>+	* array.c (Init_Array): define to_splat.</div><div class='add'>+</div><div class='add'>+	* range.c (range_to_splat): new method.</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_to_splat): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct  3 01:36:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lines): returns an Enumerator instead of an</div><div class='add'>+	  array of lines.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_bytes): a new method.</div><div class='add'>+</div><div class='add'>+Mon Oct  2 23:47:55 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::COLLECTORS):</div><div class='add'>+	  base directory should be lower precedence.  fixed: [ruby-dev:29622]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): typo.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):</div><div class='add'>+	  load expanded path.  fixed: [ruby-dev:29621]</div><div class='add'>+</div><div class='add'>+Mon Oct  2 15:47:55 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: batfile should be CRLF'ed.</div><div class='add'>+</div><div class='add'>+Mon Oct  2 01:24:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (test-all): separate directory where running test cases</div><div class='add'>+	  from source tree.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (options): added --basedir, --workdir</div><div class='add'>+	  and --load-path options.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (recursive_collect, collect_file):</div><div class='add'>+	  base directory support.</div><div class='add'>+</div><div class='add'>+Sun Oct  1 23:56:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, ext/extmk.rb, win{32,ce}/Makefile.in: keep</div><div class='add'>+	  LIBRUBY_SO unless need to be removed.</div><div class='add'>+</div><div class='add'>+Sun Oct  1 23:12:19 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#make_switch): pass arguments directly.</div><div class='add'>+</div><div class='add'>+Sat Sep 30 15:11:26 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.4.</div><div class='add'>+</div><div class='add'>+Fri Sep 29 13:18:24 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest): Require digest.so and fix the</div><div class='add'>+	  breakage.  Point out by NAKAMURA Usaku in [ruby-dev:29619].</div><div class='add'>+</div><div class='add'>+Fri Sep 29 12:11:04 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* jcode.rb (succ!): call original succ! if $KCODE == 'n'.</div><div class='add'>+	  fixed: [ruby-talk:216845]</div><div class='add'>+</div><div class='add'>+Fri Sep 29 11:43:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func): revert fallback checking undeclared function.</div><div class='add'>+	  fixed: [ruby-core:08949]</div><div class='add'>+</div><div class='add'>+Fri Sep 29 09:56:56 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: extout is needed for also clean.</div><div class='add'>+	  fixed: [ruby-core:08944]</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch#conv_arg): unsplat by</div><div class='add'>+	  Proc#call if no conversion is given.</div><div class='add'>+</div><div class='add'>+Thu Sep 28 23:59:31 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (struct thread): declare win32_exception_list on cygwin and</div><div class='add'>+	  win32 regardless if it is implemented.  Provisional fix for</div><div class='add'>+	  [ruby-core:08917].</div><div class='add'>+</div><div class='add'>+Thu Sep 28 20:49:20 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: use return value of getdir.call for length.</div><div class='add'>+</div><div class='add'>+Wed Sep 27 22:08:16 2006  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5init.c (Init_md5): Now that we have digest.rb,</div><div class='add'>+	  require "digest" rather than "digest.so".</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/rmd160init.c (Init_rmd160): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/sha1init.c (Init_sha1): Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2init.c (Init_sha2): Ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 27 21:21:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_startwith): rename startwith? to start_with?,</div><div class='add'>+	  endwith? to endwith?, respectively.  [ruby-talk:216685]</div><div class='add'>+</div><div class='add'>+Wed Sep 27 13:29:01 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::TagMaker::nOE_element_def): replace to_s by</div><div class='add'>+	  join.  some other methods as well.  [ruby-dev:29613]</div><div class='add'>+</div><div class='add'>+Wed Sep 27 01:04:49 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_func): check function pointer first and macro next.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_type): simplified with typedef and sizeof.</div><div class='add'>+</div><div class='add'>+Wed Sep 27 00:08:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift): shift/unshift performance boost patch,</div><div class='add'>+	  based on the patch from Eric Mahurin &lt;eric_mahurin at yahoo.com&gt;.</div><div class='add'>+	  [ruby-core:05861]</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 (ary_make_shared): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (RESIZE_CAPA): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_free): new function to free memory.  code moved</div><div class='add'>+	  from gc.c.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_free): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 26 23:57:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#getopts): use strings as key.</div><div class='add'>+	  fixed: [ruby-dev:29614]</div><div class='add'>+</div><div class='add'>+Tue Sep 26 15:29:55 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {win32,wince}/Makefile.sub (CPP): check predefined value.</div><div class='add'>+</div><div class='add'>+Tue Sep 26 07:55:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift): should not move memory region if array</div><div class='add'>+	  body is shared.  a patch from Kent Sibilev &lt;ksruby at gmail.com&gt;.</div><div class='add'>+	  [ruby-core:08922]</div><div class='add'>+</div><div class='add'>+Mon Sep 25 23:10:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): need not to check by FilePathValue().</div><div class='add'>+	  [ruby-dev:29599]</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_globs): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 22:26:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_path_end): skip root directory.  fixed: [ruby-core:08913]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (rm_f): get rid of NUL.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): set default $LDFLAGS.  Patch by Michal</div><div class='add'>+	  Suchanek &lt;hramrach at centrum.cz&gt;.  [ruby-talk:216256]</div><div class='add'>+</div><div class='add'>+Mon Sep 25 15:06:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: "print nil" now prints empty string.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (TestSystem::test_system): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 11:26:25 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (recursive_hash): remove unused local variable.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_gc_mark_symbols): fix unmatched prototype .</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path): check NUL byte in the path string.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 08:14:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift): should clear shifting top element.</div><div class='add'>+	  [ruby-talk:216055]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shift): avoid creating shared object if array</div><div class='add'>+	  size is small.</div><div class='add'>+</div><div class='add'>+Mon Sep 25 08:11:35 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rb_f_rand): RDoc typo fix.  a patch from Frederick</div><div class='add'>+	  Cheung &lt;fred at 82ask.com&gt;.  [ruby-talk:216047]</div><div class='add'>+</div><div class='add'>+Sun Sep 24 21:19:24 2006  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): NODE_POSTEXE holds Ruby VALUE.</div><div class='add'>+	  [ruby-core:08912]</div><div class='add'>+</div><div class='add'>+Sun Sep 24 22:28:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: extension library scripts moved into common directory.</div><div class='add'>+</div><div class='add'>+Sun Sep 24 12:10:04 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.3.</div><div class='add'>+</div><div class='add'>+Sun Sep 24 06:55:36 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_print): no special handling for nil as well as puts.</div><div class='add'>+	  fixed: [ruby-dev:29586]</div><div class='add'>+</div><div class='add'>+Sun Sep 24 06:25:53 2006  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context, rb_thread_restore_context):</div><div class='add'>+	  sandbox hook to save and restore sandbox state.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_no_ensure): added THREAD_NO_ENSURE thread flag.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_kill_bang): Thread#kill! uses the above flag</div><div class='add'>+	  to circumvent ensure, in order to prevent endless loops.</div><div class='add'>+	  contributed by MenTaLguY. [ruby-core:08768]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_kill): fix Thread#kill docs, which returns</div><div class='add'>+	  the thread object in all cases.</div><div class='add'>+</div><div class='add'>+	* node.h: expose the rb_jmpbuf_t and rb_thread_t structs, along</div><div class='add'>+	  with the thread flags.  used by the sandbox extension.</div><div class='add'>+</div><div class='add'>+	* ruby.h: extern rb_eThreadError, so sandbox can swap it.</div><div class='add'>+</div><div class='add'>+Sat Sep 23 21:34:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): CGI content</div><div class='add'>+	  may be empty.  a patch from Jamis Buck &lt;jamis at 37signals.com&gt;.</div><div class='add'>+</div><div class='add'>+Sat Sep 23 20:54:28 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.4.4</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 23 08:35:53 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb: prevent NameError.  [ruby-dev:29597]</div><div class='add'>+</div><div class='add'>+Sat Sep 23 01:02:57 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.2.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 18:07:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_partition): no need to call rb_call_super(),</div><div class='add'>+	  since String is no longer includes Enumerable.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 17:33:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_eql): new method to be used by Hash.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_hash): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 06:53:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_hash): use rb_memhash().</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_hash): simplified.  klass need not to affect</div><div class='add'>+	  resulting hash value.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 02:06:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* .cvsignore: ignore timestamp files and installed list file.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 01:36:34 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: include FileUtils unconditionally.</div><div class='add'>+</div><div class='add'>+Fri Sep 22 00:36:05 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): fix_odd_p and fix_even_p are for Fixnum.</div><div class='add'>+	  patch from Ondrej Bilka &lt;neleai at seznam.cz&gt;.  [ruby-core:08904]</div><div class='add'>+</div><div class='add'>+Thu Sep 21 22:56:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (no-install): not install rdoc actually.</div><div class='add'>+</div><div class='add'>+	* common.mk (install-doc, no-install-doc): use instruby.rb.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: rdoc installation.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: expand ruby executable names.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 20:19:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new3): embed shorter strings more eagerly.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 17:44:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_startwith): a new method to check if a string</div><div class='add'>+	  starts with given prefix.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_endwith): the opposite of String#startwith?.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 16:29:02 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: use each_line instead of each.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 15:06:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_odd_p): a new method to check even or odd.</div><div class='add'>+	  [RCR#337]</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_even_p): ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 13:55:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getpwuid): uid integer should be wrapped in</div><div class='add'>+	  uid_t value.  [ruby-core:08897]</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getpwuid): uid_t may be bigger than plain</div><div class='add'>+	  'int' type.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 10:07:09 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_partition): RDoc typo fixed.  [ruby-core:08898]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rpartition): fixed separation seek bug.</div><div class='add'>+</div><div class='add'>+Thu Sep 21 09:38:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_lines): new method to split a string into lines.</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): Strings are no longer Enumerable.  use</div><div class='add'>+	  each_line or lines method explicitly.</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): remove each method. use each_lines.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 23:17:41 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (pre-install-doc): create data directory before install.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_re): fixed typo.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_dirs): remove extra slash.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 22:41:45 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): typo again.  patch from Tadashi Saito</div><div class='add'>+	  &lt;shiba at mail2.accsnet.ne.jp&gt;.  fixed: [ruby-core:08893]</div><div class='add'>+</div><div class='add'>+Wed Sep 20 19:32:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_partition): a new method to separate the string</div><div class='add'>+	  by a separator.  taken from Python 2.5.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_rpartition): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 09:49:40 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (INSTALLED_LIST): need to define</div><div class='add'>+	  this macro to install.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 09:43:10 2006  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: allow extra spaces in responses.</div><div class='add'>+	  Thanks, Tom Soderlund.</div><div class='add'>+</div><div class='add'>+Wed Sep 20 09:25:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: add RDoc documentation. a patch from Peter</div><div class='add'>+	  Adolphs &lt;futzilogik at users dot sourceforge dot net&gt;.</div><div class='add'>+	  [ruby-doc:1223]</div><div class='add'>+</div><div class='add'>+Tue Sep 19 00:42:15 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_ivar_defined, rb_mod_cvar_defined): new methods,</div><div class='add'>+	  Kernel#instance_variable_defined? and Module#class_variable_defined?.</div><div class='add'>+	  [ruby-dev:29587]</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (Date::Bag#method_missing): use new method,</div><div class='add'>+	  instance_variable_defined? to check if an instance variable is</div><div class='add'>+	  defined.  fixed: [ruby-dev:29554]</div><div class='add'>+	  -- This didn't fix anything.</div><div class='add'>+</div><div class='add'>+Tue Sep 19 00:07:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_eql): fail early to gain performance.</div><div class='add'>+</div><div class='add'>+	* string.c (sym_hash): cache hash value in aux.shared if possible.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_obj_id): no need to treat symbols specially.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::FileUtils): singleton_methods() no</div><div class='add'>+	  longer return an array of strings, but of symbols.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 18 15:29:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): restore GC protection volatile variable.</div><div class='add'>+	  [ruby-dev:29588]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regcomp): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 18 12:16:48 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): get rid of shift overflow.</div><div class='add'>+</div><div class='add'>+Mon Sep 18 10:47:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): remove unused variable.</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regcomp): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (break_jump): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_yield_0): remove unused function.</div><div class='add'>+</div><div class='add'>+Sun Sep 17 23:44:58 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc#document): scan only files modified</div><div class='add'>+	  after the previous generation.</div><div class='add'>+</div><div class='add'>+Sun Sep 17 17:42:13 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (install-doc): reverted.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: stores file name list without destdir prefix.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/ri_generator.rb: do not chdir twice.</div><div class='add'>+</div><div class='add'>+Sun Sep 17 10:42:10 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): fixed typo.  fixed: [ruby-core:08885]</div><div class='add'>+</div><div class='add'>+Sat Sep 16 19:47:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: should mention new macros: RSTRING_PTR, RSTRING_LEN,</div><div class='add'>+	  RARRAY_PTR, RARRAY_LEN.</div><div class='add'>+</div><div class='add'>+	* README.EXT.ja: ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 16 16:39:23 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.in, instruby.rb, ext/extmk.rb, lib/mkmf.rb:</div><div class='add'>+	  use instruby.rb to install extensions instead of ext/extmk.rb.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: store installed list into the file.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: allow multiple candidates for dbm-type.</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/extconf.rb: suspicious checking_for.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (establishShell): parent pid is not used.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (freeDevice): not used.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (checking_for): improved the messages.</div><div class='add'>+</div><div class='add'>+Sat Sep 16 11:03:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_shared_first): should create embedded copies</div><div class='add'>+	  instead of sharing memory region for smaller arrays.</div><div class='add'>+</div><div class='add'>+Sat Sep 16 09:37:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (inspect_struct): do not display a class name for</div><div class='add'>+	  anonymous struct.  The member fields are sufficient.</div><div class='add'>+</div><div class='add'>+Fri Sep 15 20:22:15 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-8/nkf.c: imported nkf 2.0.8 rev.110.</div><div class='add'>+	  * Fix: check_bom cuts \xfe\xff\xXX\xXX of UTF-32LE.</div><div class='add'>+	  * Add support --ic=UTF-32.</div><div class='add'>+	  * Fix: can't guess UTF-16 and UTF-32.</div><div class='add'>+	  * Fix: can't decode beyond BMP of UTF-16LE.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (guess): Support UTF-32.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (kconv): Support UTF-32.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (to_utf32): new method.</div><div class='add'>+</div><div class='add'>+Fri Sep 15 05:23:24 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-8/nkf.c: imported nkf 2.0.8 2006-09-15.</div><div class='add'>+	  Add support for U+10000 - U+10FFFF</div><div class='add'>+	  Add support UTF-32</div><div class='add'>+</div><div class='add'>+Fri Sep 15 00:03:07 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest::Base.file): open a file in binary</div><div class='add'>+	  mode.  suggested by Kazuhiro NISHIYAMA.  [ruby-dev:29579]</div><div class='add'>+</div><div class='add'>+Thu Sep 14 17:21:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_mul): avoid bignum multiplication as far as</div><div class='add'>+	  possible.  a patch from Ondrej Bilka &lt;neleai at seznam.cz&gt;.</div><div class='add'>+	  [ruby-core:08825]</div><div class='add'>+</div><div class='add'>+Thu Sep 14 16:34:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_intern): allow zero length symbols.</div><div class='add'>+	  [ruby-core:08861]</div><div class='add'>+</div><div class='add'>+Thu Sep 14 16:11:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_intern): raise SecurityError only when $SAFE</div><div class='add'>+	  level is greater than zero.  [ruby-core:08862]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_interned_p): new function to check if a string is</div><div class='add'>+	  already interned.</div><div class='add'>+</div><div class='add'>+	* string.c (str_to_id): use rb_str_intern().</div><div class='add'>+</div><div class='add'>+Thu Sep 14 14:37:45 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb (Digest::Base.file): new method.</div><div class='add'>+	  [ruby-dev:29572]</div><div class='add'>+</div><div class='add'>+Thu Sep 14 08:30:02 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_inspect): new method.</div><div class='add'>+	  [ruby-dev:29573]</div><div class='add'>+</div><div class='add'>+Thu Sep 14 01:13:56 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_init_stack): decrease "stack level too deep" in Windows.</div><div class='add'>+	  [ruby-dev:29569]</div><div class='add'>+</div><div class='add'>+Thu Sep 14 01:02:25 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/lib/digest.rb: new file.</div><div class='add'>+	  [ruby-dev:28689]</div><div class='add'>+</div><div class='add'>+Wed Sep 13 18:43:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: English adjustment.  [ruby-core:08851] and</div><div class='add'>+	  [ruby-core:08852]</div><div class='add'>+</div><div class='add'>+Wed Sep 13 18:25:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): better here-doc support.</div><div class='add'>+	  a patch from Marshall T. Vandegrift &lt;llasram at gmail.com&gt;.</div><div class='add'>+	  [ruby-core:08804]</div><div class='add'>+</div><div class='add'>+Wed Sep 13 16:43:36 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_intern): prohibit interning tainted string.</div><div class='add'>+</div><div class='add'>+Wed Sep 13 01:14:02 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#getopts): works with pre-registered</div><div class='add'>+	  options.  [ruby-core:08826]</div><div class='add'>+</div><div class='add'>+Tue Sep 12 03:58:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_compare_by_identity): rename Hash#identical to</div><div class='add'>+	  Hash#compare_by_identity.</div><div class='add'>+</div><div class='add'>+Mon Sep 11 16:52:37 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_identical): a new method to make a hash to</div><div class='add'>+	  compare keys by their identity.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_identical_p): new method to tell if a hash is</div><div class='add'>+	  identical or not.</div><div class='add'>+</div><div class='add'>+	* st.c (st_numcmp, st_numhash): export hash type functions.</div><div class='add'>+</div><div class='add'>+Mon Sep 11 11:42:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/source.rb (REXML::Source::encoding): should not</div><div class='add'>+	  convert the body twice.  [ruby-core:08828]</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb (REXML::Encoding::encoding):</div><div class='add'>+	  Encoding#encoding= to return boolean value to tell if the body</div><div class='add'>+	  is really converted or not.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb (REXML::Encoding::encoding): Specific</div><div class='add'>+	  conversion library (e.g. rexml/encodings/UTF-16.rb) to have</div><div class='add'>+	  higher preceding.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/UTF-16.rb (REXML::Encoding::decode_utf16):</div><div class='add'>+	  UTF-16#decode_utf16 should work strings without BOM.</div><div class='add'>+</div><div class='add'>+Mon Sep 11 07:39:44 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_equal): "sym == str" should compare them as</div><div class='add'>+	  strings.  [ruby-dev:29554]</div><div class='add'>+</div><div class='add'>+Sun Sep 10 22:59:43 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args): remove splat.</div><div class='add'>+</div><div class='add'>+Sun Sep 10 20:25:30 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.1.</div><div class='add'>+</div><div class='add'>+Sun Sep 10 09:41:29 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c: ISPRINT() needs ctype.h</div><div class='add'>+</div><div class='add'>+Sun Sep 10 09:19:47 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: splat parsed arguments.</div><div class='add'>+</div><div class='add'>+Tue Jan 10 09:18:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_require_safe): prevent extension from loading twice.</div><div class='add'>+	  fixed: [ruby-dev:29523]</div><div class='add'>+</div><div class='add'>+Sat Sep  9 23:55:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): test(0) should not have any special</div><div class='add'>+	  meaning.  [ruby-dev:29425]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): properer error message.</div><div class='add'>+</div><div class='add'>+Sat Sep  9 14:08:38 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb (Test::Unit::TestCase#run): Rescue</div><div class='add'>+	  Exception in Test::Unit::TestCase#run.  [ruby-core:08783]</div><div class='add'>+</div><div class='add'>+Sat Sep  9 04:55:59 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: open all in binary mode, and get rid of the quirk of</div><div class='add'>+	  msvcrt.  fixed: [ruby-dev:29518]</div><div class='add'>+</div><div class='add'>+Sat Sep  9 04:47:45 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, win32/Makefile.sub (MINIRUBY): append MINIRUBYOPT.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb, ext/extmk.rb, lib/mkmf.rb, win32/mkexports.rb: suppress</div><div class='add'>+	  warnings with $VERBOSE.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: only file which has more than one icon is DLL.</div><div class='add'>+</div><div class='add'>+Fri Sep  8 16:53:30 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_alloc): should allocate a String object, even when</div><div class='add'>+	  asked to allocate a Symbol object.  [ruby-dev:29529]</div><div class='add'>+</div><div class='add'>+Fri Sep  8 16:36:27 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): follow Array#to_s.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep  8 10:00:12 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookies): new</div><div class='add'>+	  method to parse multiple cookies per Set-Cookie header.</div><div class='add'>+	  Thanks to Aaron Patterson &lt;aaron_patterson at speakeasy.net&gt;.</div><div class='add'>+	  [ruby-core:08802]</div><div class='add'>+</div><div class='add'>+Fri Sep  8 08:59:30 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, win32/configure.bat win32/setup.mak: program</div><div class='add'>+	  name transform.</div><div class='add'>+</div><div class='add'>+Fri Sep  8 08:25:39 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: suppress `assigning void value' warning.</div><div class='add'>+</div><div class='add'>+Fri Sep  8 01:16:34 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (Init_Array): #to_s to be an alias to #inspect.</div><div class='add'>+	  [ruby-dev:29520]</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): replace "print array" by</div><div class='add'>+	  "print *array".</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Sep  7 21:02:56 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_s): returns the empty string again.</div><div class='add'>+	  [ruby-dev:29520]</div><div class='add'>+</div><div class='add'>+Thu Sep  7 23:27:05 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_0, fpath_check): disable path check on cygwin.</div><div class='add'>+	  [ruby-talk:213074]</div><div class='add'>+</div><div class='add'>+Thu Sep  7 02:03:45 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): adopt new date format using digits</div><div class='add'>+	  e.g. "2006-09-07 02:03:45 +9000".</div><div class='add'>+</div><div class='add'>+Thu Sep  7 01:54:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (sym_equal): override.  check equivalence.</div><div class='add'>+</div><div class='add'>+Wed Sep  6 13:25:04 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (symbols_i): need to initialize early-created symbols.</div><div class='add'>+	  [ruby-dev:29496]</div><div class='add'>+</div><div class='add'>+Wed Sep  6 12:05:19 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv::toeuc): remove -m0 [ruby-dev:29505]</div><div class='add'>+</div><div class='add'>+Tue Sep  5 22:06:43 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: use rb_ary_new3() since RARRAY_LEN() is not l-value.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: use RARRAY_PTR() and RARRAY_LEN() and etc.</div><div class='add'>+	  fixed: [ruby-dev:29473]</div><div class='add'>+</div><div class='add'>+Tue Sep  5 06:47:22 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): variable declaration after an execution</div><div class='add'>+	  statement.</div><div class='add'>+</div><div class='add'>+Tue Sep  5 05:49:41 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_0): check if sticky bit is set on parent</div><div class='add'>+	  directories for executable path.  fixed: [ruby-dev:29415]</div><div class='add'>+</div><div class='add'>+Tue Sep  5 05:03:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_plus): addition in Fixnum will never overflow</div><div class='add'>+	  long.  a patch from Ondrej Bilka &lt;neleai at seznam.cz&gt;.</div><div class='add'>+	  [ruby-core:08794]</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_minus): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): eagerly truncate resulting bignum.</div><div class='add'>+	  [ruby-core:08794]</div><div class='add'>+</div><div class='add'>+Mon Sep  4 23:15:34 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): make it conform to RFC2822 date format.</div><div class='add'>+	  [ruby-dev:29467]</div><div class='add'>+</div><div class='add'>+Mon Sep  4 21:43:57 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb: create makefile according to the result of check</div><div class='add'>+	  for dbm header.  fixed: [ruby-dev:29445]</div><div class='add'>+</div><div class='add'>+Mon Sep  4 21:39:42 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 3.9.</div><div class='add'>+</div><div class='add'>+Mon Sep  4 21:14:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): include nul character.  fixed: [ruby-dev:29422]</div><div class='add'>+</div><div class='add'>+Mon Sep  4 16:39:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::out): specify -x option for nkf.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::out): should not convert utf-8 implicitly using</div><div class='add'>+	  NKF.  it is too Japanese centric.</div><div class='add'>+</div><div class='add'>+Mon Sep  4 14:23:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/extconf.rb (db_check): remove debug print.</div><div class='add'>+</div><div class='add'>+Mon Sep  4 06:46:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_id2sym): intern if id is attrset_id.</div><div class='add'>+	  [ruby-dev:29420] [ruby-dev:29447]</div><div class='add'>+</div><div class='add'>+Mon Sep  4 01:25:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_local_variables): list symbols.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_members_m): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (ivar_i): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (gvar_i): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (cv_i): ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep  3 20:47:02 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (SYMBOL_P): Qnil and Qfalse are not Symbol.</div><div class='add'>+</div><div class='add'>+Sun Sep  3 15:32:44 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: get rid of nil.to_s.</div><div class='add'>+</div><div class='add'>+Sun Sep  3 06:24:38 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): sockerrlen should be socklen_t.</div><div class='add'>+</div><div class='add'>+Sun Sep  3 04:40:42 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check arpa/inet.h for ntohs.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: include arpa/inet.h if available.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 23:59:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): undef Symbol#new.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_def): wrong symbol detection.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 23:59:37 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_to_id): a bug caused by premature optimization.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 23:53:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): move symbol related code to string.c</div><div class='add'>+</div><div class='add'>+	* string.c (Init_String): Symbol as subclass of String.</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_intern2): handle symbol as strings.</div><div class='add'>+</div><div class='add'>+	* string.c (str_new): substring of symbols are mere strings, not</div><div class='add'>+	  symbols.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 23:37:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (struct RArray): embed small arrays.</div><div class='add'>+	  (RARRAY_LEN): defined for accessing array members.</div><div class='add'>+	  (RARRAY_PTR): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c: use RARRAY_LEN and RARRAY_PTR.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 13:23:01 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (ia64.o): use the compiler driver to assemble ia64.s</div><div class='add'>+	  to use appropriate ABI.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 12:06:35 2006  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/generator.rb (SOAP::SOAPGenerator#encode_tag): do not dump</div><div class='add'>+	  XML attribute which value is nil.  value "" and nil both were dumped</div><div class='add'>+	  as 'attr="value"'.  [ruby-dev:29395]</div><div class='add'>+</div><div class='add'>+Sat Sep  2 12:00:32 2006  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV::IOReader#initialize): use String#[](pos, len)</div><div class='add'>+	  instead of String#[](idx) to check utf BOM.  follows String#[](idx)</div><div class='add'>+	  behavior change of 1.9.</div><div class='add'>+</div><div class='add'>+Sat Sep  2 11:47:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should handle when in else clause.  a patch</div><div class='add'>+	  from Eric Hodel &lt;drbrain at segment7.net&gt;.  [ruby-core:08662]</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): wrap with NODE_CASE.  [ruby-core:08663]</div><div class='add'>+</div><div class='add'>+Fri Sep  1 22:07:04 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (RSTRING_EMBED_LEN_MASK): uses 5 bits to support 64bit</div><div class='add'>+	  environment.  [ruby-dev:29369]</div><div class='add'>+</div><div class='add'>+Fri Sep  1 22:02:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_resize): should copy embedded string to</div><div class='add'>+	  malloc'ed buffer.  a patch from &lt;nobu at ruby-lang.org&gt; in</div><div class='add'>+	  [ruby-dev:29369].  fixed: [ruby-dev:29368]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ord): use %ld specifier since STRING_LEN() is a</div><div class='add'>+	  long.  [ruby-dev:29369]</div><div class='add'>+</div><div class='add'>+Fri Sep  1 21:41:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (socks_init): typo fixed.  a patch from Sven</div><div class='add'>+	  Klemm &lt;sven at c3d2.de&gt;.  [ruby-core:08770]</div><div class='add'>+</div><div class='add'>+Fri Sep  1 14:22:42 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle): RDoc fixed.</div><div class='add'>+</div><div class='add'>+Fri Sep  1 13:52:57 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: TkFont#current_configinfo() doesn't work</div><div class='add'>+	  on Tcl/Tk8.x.</div><div class='add'>+</div><div class='add'>+Fri Sep  1 09:32:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex::getc): should not push nil into</div><div class='add'>+	  reading buffer (@readed).  reported in</div><div class='add'>+	  &lt;http://jarp.does.notwork.org/diary/200608c.html#200608311&gt;.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 23:59:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): follow nil.to_s.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 20:50:46 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): follow nil.to_s.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 20:21:47 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): use RSTRING_PTR and RSTRING_STR.</div><div class='add'>+</div><div class='add'>+	* file.c (test_identical, rb_file_s_truncate): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open, rb_io_reopen): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (nil_plus): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_n, rb_spawn): ditto.</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_add_suffix): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_to_ptr): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c, ext/tk/tcltklib.c, ext/tk/tkutil/tkutil.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_val2olevariantdata): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 18:23:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (struct RString): embed small strings.</div><div class='add'>+	  (RSTRING_LEN): defined for accessing string members.</div><div class='add'>+	  (RSTRING_PTR): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c: use RSTRING_LEN and RSTRING_PTR.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 17:16:19 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle_bang): new method.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_shuffle): ditto.</div><div class='add'>+</div><div class='add'>+	* random.c (genrand_real): ditto.</div><div class='add'>+</div><div class='add'>+	* random.c (genrand_int32): export the function.</div><div class='add'>+</div><div class='add'>+	* random.c (Init_Random): initialize random seed at the</div><div class='add'>+	  beginning.</div><div class='add'>+</div><div class='add'>+Thu Aug 31 13:12:06 2006  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init): rename top_cref to ruby_top_cref and export,</div><div class='add'>+	  along with ruby_cref, for use by the sandbox. [ruby-core:08762]</div><div class='add'>+</div><div class='add'>+	* node.h: ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug 30 12:01:57 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_hash): improve collision.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_memhash): new generic function to calculate hash value</div><div class='add'>+	  for memory chunk.</div><div class='add'>+</div><div class='add'>+Tue Aug 29 19:10:10 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_s_create): fixed memory leak, based on the patch</div><div class='add'>+	  by Kent Sibilev &lt;ksruby at gmail.com&gt;.  fixed: [ruby-talk:211233]</div><div class='add'>+</div><div class='add'>+Mon Aug 28 11:29:46 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, parse.y: Revert.</div><div class='add'>+	* ext/.document: Add digest.c.</div><div class='add'>+	* ext/digest/digest.c: Make RDoc show up.</div><div class='add'>+	* ext/io/wait.c: Fix call-seq in RDoc.</div><div class='add'>+</div><div class='add'>+Mon Aug 28 08:03:20 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/.document: Add C files with RDoc.</div><div class='add'>+	* ext/digest/digest.c: Convert to RDoc.</div><div class='add'>+	* ext/io/wait.c: ditto.</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Fix typo.  Submitted by</div><div class='add'>+	  &lt;calamitas at gmail.com&gt;.  [ruby-core:08724]</div><div class='add'>+</div><div class='add'>+Mon Aug 28 07:21:47 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (File#size?): Fix documentation submitted by Rick Ohnemus.</div><div class='add'>+	  ruby-Bugs-5529.  [ruby-core:08725]</div><div class='add'>+</div><div class='add'>+Sun Aug 27 21:41:23 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.4.0</div><div class='add'>+</div><div class='add'>+	* regint.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 26 08:03:03 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: updated based on date2 3.8.2.</div><div class='add'>+</div><div class='add'>+Fri Aug 25 21:15:22 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: add regint.h and oniguruma.h to dependence.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/depend: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 25 20:35:57 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/wsdl/document/echo.rb: removed.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/document/test_rpc.rb: remove echo.rb after test.</div><div class='add'>+	  [ruby-dev:29337]</div><div class='add'>+</div><div class='add'>+Fri Aug 25 17:02:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): typo fixed.</div><div class='add'>+</div><div class='add'>+Fri Aug 25 16:05:50 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_call): check if the receiver is given.</div><div class='add'>+</div><div class='add'>+Fri Aug 25 01:10:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): Integer(nil) should raise TypeError.</div><div class='add'>+	  [ruby-talk:210205]</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_s): no longer returns empty string but "nil".</div><div class='add'>+	  [ruby-talk:210205]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: avoid COMMON_HEADERS being nil.</div><div class='add'>+</div><div class='add'>+Wed Aug 23 00:25:14 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/source.rb (REXML::IOSource#initialize): encoding have to</div><div class='add'>+	  be set with the accessor.  fixed: [ruby-list:42737]</div><div class='add'>+</div><div class='add'>+Tue Aug 22 19:21:00 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: parameter `to_addrs' might be an Array,</div><div class='add'>+	  .flatten is required. [ruby-dev:29316]</div><div class='add'>+</div><div class='add'>+Tue Aug 22 18:47:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_method):</div><div class='add'>+	  rdoc documents C module methods as instance methods. a patch in</div><div class='add'>+	  [ruby-core:08536].</div><div class='add'>+</div><div class='add'>+Tue Aug 22 12:35:57 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): fix regexp for</div><div class='add'>+	  euc-jp [ruby-dev:29344]</div><div class='add'>+</div><div class='add'>+Sun Aug 20 11:46:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_step): also return an enumerator object if no block</div><div class='add'>+	  is given.</div><div class='add'>+</div><div class='add'>+Sat Aug 19 16:47:51 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (hash2named_arg): accept hash argument</div><div class='add'>+	  of symbol key.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole.rb</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 19 11:28:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_rename): use errno if set properly.</div><div class='add'>+	  fixed: [ruby-dev:29293]</div><div class='add'>+</div><div class='add'>+Fri Aug 18 01:05:57 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::out): specify -m0 to disable MIME decode.  a</div><div class='add'>+	  patch from Fujioka &lt;fuj at rabbix.jp&gt;.  [ruby-dev:29284]</div><div class='add'>+</div><div class='add'>+Thu Aug 17 19:15:16 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_[rRwWxX]): check for super user.</div><div class='add'>+	  fixed: [ruby-core:08616]</div><div class='add'>+</div><div class='add'>+Thu Aug 17 14:47:06 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: added rdoc by Daniel Berger.  [ruby-core:08177]</div><div class='add'>+</div><div class='add'>+Wed Aug 16 17:46:59 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): IO#getc returns one byte string now.</div><div class='add'>+	  fixed: [ruby-dev:29255]</div><div class='add'>+</div><div class='add'>+Wed Aug 16 17:22:44 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (pre-install-local): remove unnecessary code.</div><div class='add'>+	  [ruby-dev:29249]</div><div class='add'>+</div><div class='add'>+Wed Aug 16 11:45:36 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setuid, proc_setgid, proc_seteuid, proc_setegid):</div><div class='add'>+	  get rid of bogus implementations on Mac OS X.</div><div class='add'>+</div><div class='add'>+Wed Aug 16 11:09:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): fill argv other than the first with an empty</div><div class='add'>+	  string instead of NULL.</div><div class='add'>+</div><div class='add'>+Tue Aug 15 11:21:08 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: support SMTP/SSL.  Thanks Kazuhiro NISHIYAMA.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.use_ssl?</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.enable_ssl.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.disable_ssl.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.default_ssl_port.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.default_tls_port.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: now SMTP#enable_tls accepts a SSLContext</div><div class='add'>+	  object, instead of a verity and cert.  [FEATURE CHANGE]</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.ssl_context.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: new method SMTP.default_ssl_context.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.authenticate.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.auth_plain.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.auth_login.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.auth_cram_md5.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.starttls.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.helo.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.ehlo.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.mailfrom.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.rcptto.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.rcptto_list.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.data.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: export SMTP.quit.</div><div class='add'>+</div><div class='add'>+Sat Aug 12 22:33:06 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (String#split): Describe grouping behavior.  Patch by Jan</div><div class='add'>+	  Svitok &lt;jan.svitok at gmail.com&gt;.  [ruby-core:08603]</div><div class='add'>+</div><div class='add'>+Sun Aug 13 12:08:02 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: ANSIfied.  [ruby-core:08601]</div><div class='add'>+</div><div class='add'>+Sat Aug 12 15:55:32 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, bcc32/Makefile.sub, win32/Makefile.sub, win32/dir.h,</div><div class='add'>+	  win32/win32.c, win32/win32.h: large file support for win32.</div><div class='add'>+</div><div class='add'>+Fri Aug 11 15:39:25 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#find_body): Make RDoc</div><div class='add'>+	  ignore C function prototypes.  Patch by Tilman Sauerbeck</div><div class='add'>+	  &lt;tilman at code-monkey.de&gt;.  [ruby-core:8574]</div><div class='add'>+	* lib/yaml/tag.rb: Replace nodoc with stopdoc so Module methods get</div><div class='add'>+	  documented.</div><div class='add'>+</div><div class='add'>+Wed Aug  9 16:53:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (Net::SMTP::auth_cram_md5): use ord to retrieve</div><div class='add'>+	  bytes from strings.  a patch from WATANABE Tetsuya</div><div class='add'>+	  &lt;Tetsuya.WATANABE at nifty.com&gt;.  [ruby-dev:29240]</div><div class='add'>+</div><div class='add'>+Tue Aug  8 23:49:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/extend-command.rb (IRB::ExtendCommandBundle): pacify</div><div class='add'>+	  RDoc.  a patch from Eric Hodel &lt;drbrain at segment7.net&gt;.</div><div class='add'>+	  [ruby-core:08522]</div><div class='add'>+</div><div class='add'>+Tue Aug  8 19:26:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder::get_string):</div><div class='add'>+	  affected by str[0] returns 1 char string.  [ruby-dev:29223]</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder::get_labels):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  8 12:28:43 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): allow newlines before ternary colon.  [ruby-dev:29189]</div><div class='add'>+</div><div class='add'>+Mon Aug  7 17:56:59 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c, ext/digest/rmd160/rmd160ossl.c,</div><div class='add'>+	  ext/digest/sha1/sha1ossl.c, ext/readline/readline.c: move</div><div class='add'>+	  inclusion of config.h to pacify AIX.  a patch from Yutaka</div><div class='add'>+	  Kanemoto &lt;kinpoco at gmail.com&gt;.  [ruby-dev:29197]</div><div class='add'>+</div><div class='add'>+Mon Aug  7 15:55:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_move_tokens): should avoid negative</div><div class='add'>+	  memmove.  [ruby-list:42625]</div><div class='add'>+</div><div class='add'>+Mon Aug  7 14:37:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, common.mk: AIX link issue.  a patch from Yutaka</div><div class='add'>+	  Kanemoto &lt;kinpoco at gmail.com&gt;.  [ruby-dev:29190]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: AIX socket support.  [ruby-dev:29190]</div><div class='add'>+</div><div class='add'>+Mon Aug  7 12:05:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c, eval.c, gc.c, ruby.h: shut up AIX alloca warning.</div><div class='add'>+	  a patch from Yutaka Kanemoto &lt;kinpoco at gmail.com&gt;.</div><div class='add'>+	  [ruby-dev:29191]</div><div class='add'>+</div><div class='add'>+Sun Aug  6 20:34:24 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (str[fp]time): %[EO]U didn't denote %U.</div><div class='add'>+</div><div class='add'>+Sun Aug  6 17:12:12 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): STDERR.reopen(open("/dev/tty", "w")) should not</div><div class='add'>+	  clear FMODE_PREP in STDERR.</div><div class='add'>+</div><div class='add'>+Sat Aug  5 22:53:41 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.2.2</div><div class='add'>+</div><div class='add'>+	* regint.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c ditto.</div><div class='add'>+</div><div class='add'>+	* regerror.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regparse.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug  5 17:07:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (top_local_setup): local_vars[-1] should point</div><div class='add'>+	  ruby_scope itself to protect local_tbl from garbage collection.</div><div class='add'>+	  [ruby-dev:29049]</div><div class='add'>+</div><div class='add'>+Sat Aug  5 13:49:43 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (str[fp]time): "%\n" means "\n".</div><div class='add'>+</div><div class='add'>+Fri Aug  4 12:13:22 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib: Clean up files for RDoc.</div><div class='add'>+	* lib/.document: Include most of the standard library in RDoc</div><div class='add'>+	  generation.</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb: Don't unescape HTML in HtmlFormatter.</div><div class='add'>+	  Submitted by &lt;ksruby at gmail.com&gt;.  [ruby-core:08392].</div><div class='add'>+	* lib/drb/ssl.rb: Close socket on SSLError [ruby-core:7197]</div><div class='add'>+</div><div class='add'>+Fri Aug  4 18:59:49 2006  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/{init.rb,ruby-lex.rb,slex.rb}: can't input '\c' for</div><div class='add'>+	  [ruby-core: 7122]. and support for ruby1.8.X</div><div class='add'>+</div><div class='add'>+Fri Aug  4 14:02:14 2006  James Edward Gray II  &lt;james@grayproductions.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (__strptime, strftime): allow multi-line patterns</div><div class='add'>+	  in Date#strftime the same as Time#strftime accepts.</div><div class='add'>+	  fixed: [ruby-core:08466]</div><div class='add'>+</div><div class='add'>+Fri Aug  4 13:56:51 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): check argument overrun for 'P'.  based on a</div><div class='add'>+	  patch by rucila &lt;rucila at yahoo.cojp&gt;.  fixed: [ruby-dev:29182]</div><div class='add'>+</div><div class='add'>+Fri Aug  4 02:42:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): a bug in %c type check.</div><div class='add'>+</div><div class='add'>+Fri Aug  4 01:28:19 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): STDERR.reopen(File.open("/dev/null", "w")) should</div><div class='add'>+	  not fclose stderr.</div><div class='add'>+</div><div class='add'>+Thu Aug  3 15:16:44 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_include): should always call Enumerable#include?</div><div class='add'>+	  (not #===) for non numeric end points.  [ruby-core:08477]</div><div class='add'>+	  [ruby-core:08496]</div><div class='add'>+</div><div class='add'>+Mon Jul 31 16:51:40 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (exit_handler): new function; release winsock and</div><div class='add'>+	  environment work area.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NTInitialize): setup exit_handler.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSockets): use exit_handler.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getenv): use GetEnvironmentStrings() instead</div><div class='add'>+	  of GetEnvironmentVariable(), because the latter cannot distinguish</div><div class='add'>+	  whether a null environment variable exists or not.</div><div class='add'>+	  fixed: [ruby-talk:205123]</div><div class='add'>+</div><div class='add'>+Mon Jul 31 16:15:13 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_process.rb (TestProcess#test_rlimit_nofile):</div><div class='add'>+	  setrlimit may fail with EINVAL.</div><div class='add'>+	  reported by MIYAMUKO Katsuyuki.  [ruby-dev:29174]</div><div class='add'>+</div><div class='add'>+Mon Jul 31 09:22:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: use ifdef (or defined) for macro constants that may or</div><div class='add'>+	  may not be defined to shut up gcc's -Wundef warnings.</div><div class='add'>+	  [ruby-core:08447]</div><div class='add'>+</div><div class='add'>+Mon Jul 31 13:38:13 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPReuqest#parse_uri): improve</div><div class='add'>+	  for the value of IPv6 address in the Host: header field.</div><div class='add'>+</div><div class='add'>+Sun Jul 30 23:26:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): trace call/return of method defined from block.</div><div class='add'>+	  fixed: [ruby-core:08329]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_trap_eval): make the current thread runnable to deal with</div><div class='add'>+	  exceptions which occurred within the trap.  fixed: [ruby-dev:27729]</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb, lib/cgi/session/pstore.rb: suppress warnings.</div><div class='add'>+	  fixed: [ruby-talk:204896]</div><div class='add'>+</div><div class='add'>+Sat Jul 29 06:12:06 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: freeze ip_name for security reason.</div><div class='add'>+</div><div class='add'>+Sat Jul 29 01:23:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: improves the amount of documentation that Rdoc</div><div class='add'>+	  picks up when processing logger.rb by moving the require</div><div class='add'>+	  statement back before the comment block.  a patch from Hugh</div><div class='add'>+	  Sasse &lt;hgs at dmu.ac.uk&gt;.  [ruby-core:08422]</div><div class='add'>+</div><div class='add'>+Fri Jul 28 17:18:03 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (NUM2CH, CH2FIX): use single char strings.</div><div class='add'>+</div><div class='add'>+Fri Jul 28 14:09:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): fixed typo in cache look-up.  [ruby-dev:29167]</div><div class='add'>+</div><div class='add'>+Fri Jul 28 10:41:35 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): a bug in method cache look-up.</div><div class='add'>+	  http://www.rubyist.net/~matz/20060720.html#c04</div><div class='add'>+</div><div class='add'>+Fri Jul 28 10:19:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): documentation update patch from Jacob</div><div class='add'>+	  Fugal &lt;lukfugl at gmail.com&gt;.  [ruby-core:08418]</div><div class='add'>+</div><div class='add'>+Fri Jul 28 09:41:45 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): fixed typo.  [ruby-dev:29162]</div><div class='add'>+</div><div class='add'>+Fri Jul 28 00:26:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check): ANSI style function arguments</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): too few argument to domain_check().</div><div class='add'>+</div><div class='add'>+Thu Jul 27 21:19:54 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (domain_check): a new function to check domain error</div><div class='add'>+	  explicitly for systems that return NaN like FreeBSD.</div><div class='add'>+	  [ruby-core:07019]</div><div class='add'>+</div><div class='add'>+	* math.c (math_acos, math_asin, math_acosh, math_atanh, math_log,</div><div class='add'>+	  math_log10, math_sqrt): use domain_check().</div><div class='add'>+</div><div class='add'>+	* math.c (math_sqrt): fix documentation flaw.</div><div class='add'>+</div><div class='add'>+Thu Jul 27 22:21:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): fixed format mismatch.</div><div class='add'>+</div><div class='add'>+Thu Jul 27 18:12:12 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: need to declare time_utc_offset.</div><div class='add'>+</div><div class='add'>+Thu Jul 27 17:01:01 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_close): always calls "close" method of the receiver.</div><div class='add'>+	  [ruby-core:6911] [ruby-core:8112]</div><div class='add'>+</div><div class='add'>+Thu Jul 27 16:41:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: move &lt;ruby.h&gt; inclusion point to shut up</div><div class='add'>+	  Solaris compiler.  [ruby-core:08114]</div><div class='add'>+</div><div class='add'>+	* time.c (time_to_s): use +0900 style timezone string for local time.</div><div class='add'>+	  [ruby-dev:29143]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 22:20:59 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add support for as and ASFLAGS.  [ruby-dev:29138]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 21:59:33 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#post, request_post, request): should</div><div class='add'>+	  set Content-Type: x-www-form-urlencoded by default.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPHeader#content_type): should return</div><div class='add'>+	  nil when there's no Content-Type.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPHeader#sub_type): should return nil</div><div class='add'>+	  when there's no sub Content-Type (e.g. "Content-Type: text").</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPHeader#type_params): wrongly failed</div><div class='add'>+	  when there's no Content-Type.</div><div class='add'>+</div><div class='add'>+Wed Jul 26 18:38:13 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_do_scan): always return nil if</div><div class='add'>+	  p-&gt;curr exceeds string size.</div><div class='add'>+</div><div class='add'>+Wed Jul 26 18:33:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): rename #invoke_method and</div><div class='add'>+	  #invoke_functional_method to __send and __send! respectively.</div><div class='add'>+</div><div class='add'>+	* eval.c (remove_method): prohibit removing __send and __send!.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_undef): prohibit undef'ing  __send and __send!.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): prohibit redefining  __send and __send!.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator): preserve __send.</div><div class='add'>+</div><div class='add'>+Wed Jul 26 18:14:19 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (getDevice): retry once after GC on failure.</div><div class='add'>+	  [ruby-core:08282]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 17:43:20 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_do_scan):</div><div class='add'>+	  StringScanner.new("").scan(//) should return "". [ruby-Bugs:4361]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 17:28:16 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): prepend ".." to %u for negative bignum,</div><div class='add'>+	  but not "-".  fixed: [ruby-core:08167]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 16:39:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_scan): add string modification check.</div><div class='add'>+	  [ruby-core:7216]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 16:06:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): check</div><div class='add'>+	  multipart boundary end.  a patch from Fujioka &lt;fuj at rabbix.jp&gt;</div><div class='add'>+	  [ruby-dev:28470]</div><div class='add'>+</div><div class='add'>+Wed Jul 26 01:02:59 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: suppress warnings by automake 1.8 or later.</div><div class='add'>+</div><div class='add'>+Tue Jul 25 14:46:14 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): typo.</div><div class='add'>+</div><div class='add'>+Tue Jul 25 13:14:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_times): rename hz to hertz to avoid name</div><div class='add'>+	  crash on AIX.  [ruby-dev:29126]</div><div class='add'>+</div><div class='add'>+Mon Jul 24 22:03:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (backtrace): skip frames successive on node and method name.</div><div class='add'>+</div><div class='add'>+Mon Jul 24 15:51:52 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): rl_deprep_term_function</div><div class='add'>+	  may be NULL with libedit.  reported by Ryan Davis.  [ruby-dev:29070]</div><div class='add'>+</div><div class='add'>+Mon Jul 24 15:19:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): revert last change.  [ruby-dev:29112]</div><div class='add'>+	  [ruby-core:08374]</div><div class='add'>+</div><div class='add'>+Sun Jul 23 22:59:49 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_unix.rb: disabled on cygwin.</div><div class='add'>+	  reported by Kouhei Yanagita.  [ruby-dev:29080]</div><div class='add'>+</div><div class='add'>+Fri Jul 21 23:57:26 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): script is never used while recursing.</div><div class='add'>+</div><div class='add'>+Fri Jul 21 21:21:08 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): include funcalled methods in caller list.</div><div class='add'>+	  fixed: [ruby-core:08290]</div><div class='add'>+</div><div class='add'>+Fri Jul 21 17:52:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): "9_e8" should consider "_e8" as</div><div class='add'>+	  trailing garbage so that it should return 9.0.  [ruby-dev:29088]</div><div class='add'>+</div><div class='add'>+Fri Jul 21 12:11:00 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb (with_destdir): remove drive letter before</div><div class='add'>+	  prepending destdir on DOSISH.</div><div class='add'>+</div><div class='add'>+Fri Jul 21 04:17:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): try local method look-up first for fcall, then</div><div class='add'>+	  normal method look-up.  [ruby-talk:202564]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_get_method_body): save local method cache separately.</div><div class='add'>+</div><div class='add'>+	* eval.c (search_method): export info whether method is local or</div><div class='add'>+	  not.</div><div class='add'>+</div><div class='add'>+Thu Jul 20 20:27:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_attr): make Module#attr to be an alias to</div><div class='add'>+	  attr_reader.  [RCR#331]</div><div class='add'>+</div><div class='add'>+Thu Jul 20 15:07:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: export classes/modules to implement sandbox.</div><div class='add'>+	  [ruby-core:08283]</div><div class='add'>+</div><div class='add'>+Wed Jul 19 19:40:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): should check args_args before lambda</div><div class='add'>+	  argument check.  [ruby-dev:29029]</div><div class='add'>+</div><div class='add'>+Tue Jul 18 23:53:59 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): shouldn't block SIGCHLD if it's not</div><div class='add'>+	  exist.</div><div class='add'>+</div><div class='add'>+Tue Jul 18 22:10:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): block SIGCHLD during the process</div><div class='add'>+	  execution, like glibc system(3) does.  [ruby-talk:202361]</div><div class='add'>+</div><div class='add'>+Tue Jul 18 23:10:43 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (open_ifs_socket): should not use plain malloc.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir): should not use plain realloc.</div><div class='add'>+</div><div class='add'>+Tue Jul 18 18:05:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb (TestFloat::test_strtod): update test to</div><div class='add'>+	  conform strtod change.</div><div class='add'>+</div><div class='add'>+Tue Jul 18 16:52:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under_i): argument should be passed in avalue</div><div class='add'>+	  form.  [ruby-dev:29044]</div><div class='add'>+</div><div class='add'>+Tue Jul 18 15:49:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): propagate association array to copied</div><div class='add'>+	  string.  [ruby-core:08223]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): return referenced string itself if it has</div><div class='add'>+	  same length as specified.  a patch from &lt;nobu at ruby-lang.org&gt;</div><div class='add'>+	  in [ruby-core:08225].</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): taint 'p' packed strings.</div><div class='add'>+</div><div class='add'>+Tue Jul 18 15:19:07 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (st_foreach_safe): fix prototype.</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_LMASK): bigger than long on LLP64.</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD__uqtoa): new function to support LLP64.</div><div class='add'>+	  all changes are derived from [ruby-dev:29045]</div><div class='add'>+</div><div class='add'>+Tue Jul 18 14:03:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer::unmount): remove</div><div class='add'>+	  inpect argument from sprintf.  [ruby-dev:29039]</div><div class='add'>+</div><div class='add'>+Tue Jul 18 10:53:37 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): limit out-of-range message.</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): return end pointer even if ERANGE occurred.</div><div class='add'>+	  fixed: [ruby-dev:29041]</div><div class='add'>+</div><div class='add'>+Mon Jul 18 00:43:05 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): stop at dot not followed by digits.</div><div class='add'>+	  fixed: [ruby-dev:29036]</div><div class='add'>+</div><div class='add'>+Tue Jul 18 00:01:27 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: remove LIBRUBY_SO if static linked extensions exist.</div><div class='add'>+</div><div class='add'>+Mon Jul 17 23:30:46 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_msvcrt): defaulted to msvcrt.  Workaround for a</div><div class='add'>+	  bug of cygwin 1.5.20.</div><div class='add'>+</div><div class='add'>+Mon Jul 17 22:55:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (io_ready_p): protoize.</div><div class='add'>+</div><div class='add'>+Mon Jul 17 13:43:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (define_swapx): should not use plain malloc.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_getmouse): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 17 12:58:41 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: should use ac_cv_lib_dl_dlopen=no on MinGW.</div><div class='add'>+</div><div class='add'>+Mon Jul 17 11:47:35 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c: still need to include config.h on some platforms.</div><div class='add'>+</div><div class='add'>+Sat Jul 15 01:09:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (malloc): use xmalloc/xcalloc instead of plain</div><div class='add'>+	  malloc/calloc, to detect memory allocation failure.  see</div><div class='add'>+	  &lt;http://www.nongnu.org/failmalloc/&gt;.</div><div class='add'>+</div><div class='add'>+Fri Jul 14 13:08:13 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add methods for new features of latest Tcl/Tk8.5.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 14 02:30:12 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: document patch from Hugh Sasse &lt;hgs at dmu.ac.uk&gt;.</div><div class='add'>+	  [ruby-core:08205]</div><div class='add'>+</div><div class='add'>+Fri Jul 14 00:10:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_pop): may cause realloc oscillation.  a patch</div><div class='add'>+	  from MORITA Naoyuki &lt;mlgetter at kidou.sakura.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:29028]</div><div class='add'>+</div><div class='add'>+Thu Jul 13 22:23:56 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/composite.rb: improve handling of the classname on the</div><div class='add'>+	  option database for the widget class which includes TkComposite.</div><div class='add'>+</div><div class='add'>+Thu Jul 13 00:40:57 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (FIX2LONG): returns integer of size of VALUE.</div><div class='add'>+	  [ruby-dev:29024]</div><div class='add'>+</div><div class='add'>+	* ruby.h (FIX2ULONG): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul 12 20:05:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_args): allow post mandatory arguments after optional</div><div class='add'>+	  arguments.  [ruby-dev:29014]</div><div class='add'>+</div><div class='add'>+	* parse.y (new_args_gen): allow post_args without rest_args.</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (new_args_gen): check post argument duplication.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 20:58:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: export rb_cMethod.  [ruby-talk:201259]</div><div class='add'>+</div><div class='add'>+Tue Jul 11 19:13:33 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: remove restriction on the class of</div><div class='add'>+	  pseudo-toplevel.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 18:00:57 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: security fix.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 17:28:08 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): need to extend len for \b.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 15:29:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_int2big): use SIGNED_VALUE.  [ruby-dev:29019]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_int2inum, rb_uint2inum): use VALUE sized integer.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2long, rb_big2ulong): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2long, rb_num2ulong): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_int, check_uint): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_pack): typo fixed.</div><div class='add'>+</div><div class='add'>+Tue Jul 11 13:40:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignorm): sizeof(long) may be smaller than</div><div class='add'>+	  sizeof(VALUE).  [ruby-dev:29013]</div><div class='add'>+</div><div class='add'>+	* ruby.h (FIXNUM_MAX): fixnum may be bigger than long.</div><div class='add'>+</div><div class='add'>+	* ruby.h (SIGNED_VALUE): signed integer of size of VALUE.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 23:37:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/proxy.rb (Proxy::Operation::response_doc): remove</div><div class='add'>+	  splat star from return statements.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/proxy.rb (Proxy::Operation::response_obj): retrieve</div><div class='add'>+	  the first value from the result array if response has only one</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 22:00:00 2006  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: Allows '_' to appear within</div><div class='add'>+	  digits.  [ruby-dev:28872]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/util.rb: Bug in to_r reported by</div><div class='add'>+	  [ruby-list:42533] fixed.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 19:22:19 2006  Tanaka Akira  &lt;akr@fsij.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): expand heap earlier.</div><div class='add'>+	  reported by MORITA Naoyuki.  [ruby-dev:28960]</div><div class='add'>+</div><div class='add'>+Mon Jul 10 18:59:34 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: sorry. mistaken to patch.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 18:46:52 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: make SEGV risk lower at exit.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fail to call function-style methods on slave</div><div class='add'>+	  interpreters. The strategy (MultiTkIp_PseudoToplevel_Evaluable) to</div><div class='add'>+	  fix the problem is a little tricky. You may have to take care of</div><div class='add'>+	  conflicting with it.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: a little change for the pseudo-toplevel strategy.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/itk/incr_tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/widget: fail to call function-style methods</div><div class='add'>+	  on sample scripts. To fix it, a strategy which similar to the way</div><div class='add'>+	  on MultiTiIp is used. Please take care when re-write and re-run a</div><div class='add'>+	  demo script on the Widget-Demo code viewer.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 17:32:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: update test suites.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb (TestAssignment::test_yield): ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (TestIterator::test_itertest): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 14:43:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): remove erroneously restored prot_tag-&gt;blkid</div><div class='add'>+	  initialization.  [ruby-dev:28997]  [ruby-dev:29000]</div><div class='add'>+</div><div class='add'>+Mon Jul 10 13:58:08 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (install_nativethread_sighandler): commented out.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 09:29:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_clear_cache_for_remove): clear entries for included</div><div class='add'>+	  module.  fixed: [ruby-core:08180]</div><div class='add'>+</div><div class='add'>+Mon Jul 10 02:22:58 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should not overwrite block information in</div><div class='add'>+	  current frame.  [ruby-dev:28957]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): retrieve proper block object from the frame</div><div class='add'>+	  record.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_alloc): return preserved block object if it's</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+Mon Jul 10 01:48:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.h (st_data_t): use pointer sized integer for st_data_t.</div><div class='add'>+	  [ruby-dev:28988]</div><div class='add'>+</div><div class='add'>+Sun Jul  9 18:06:47 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_constant): fix for value 1 at cross compiling.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): prevent substitution of macro</div><div class='add'>+	  definition.  fixed: http://www.yotabanana.com/lab/20060624.html#p02</div><div class='add'>+</div><div class='add'>+Sun Jul  9 07:58:48 2006  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_f95.rb: massive overhaul from Yasuhiro</div><div class='add'>+	  Morikawa including new file suffixes, function support, public</div><div class='add'>+	  variables and constants, derived-types, defined operators and</div><div class='add'>+	  assignments, namelists, and subroutine and function</div><div class='add'>+	  arguments. Truly massive.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb: diagrams are now cached.</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb: fixed a crasher when completing against</div><div class='add'>+	  an unnamed class/module.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: private comment (--/++) support in</div><div class='add'>+	  C-file rdoc.</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: minor clarification in help.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: minor clarification on exception.</div><div class='add'>+</div><div class='add'>+Sun Jul  9 00:54:11 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (next_jump): deal with destination of next.</div><div class='add'>+	  fixed: [ruby-core:08169]</div><div class='add'>+</div><div class='add'>+Fri Jul  7 17:49:16 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ord): extract lower byte.  fixed: [ruby-dev:28980]</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb (String#succ!): fix for 1.9.  fixed: [ruby-dev:28979]</div><div class='add'>+</div><div class='add'>+Fri Jul  7 14:05:03 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): define FUNC_STDCALL/FUNC_CDECL.</div><div class='add'>+	  from [ruby-dev:28970].</div><div class='add'>+</div><div class='add'>+Fri Jul  7 00:38:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_default): should not call default procedure if</div><div class='add'>+	  no key is given.  [ruby-list:42541]</div><div class='add'>+</div><div class='add'>+Thu Jul  6 23:30:04 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_times): use sysconf(_SC_CLK_TCK) value prior to</div><div class='add'>+	  HZ and CLK_TCK.  fixed: [ruby-talk:200293]</div><div class='add'>+</div><div class='add'>+Thu Jul  6 21:50:06 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: sync with original code, rev 1.8.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: should mark CparseParams objects.</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb: sync with original code, rev 1.8.</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb: update coding style.</div><div class='add'>+</div><div class='add'>+Wed Jul  5 05:28:45 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_param): should allow block argument after splat</div><div class='add'>+	  and post splat args.</div><div class='add'>+</div><div class='add'>+Wed Jul  5 01:12:19 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb (TestLambdaParameters::test_lambda_as_iterator):</div><div class='add'>+	  -&gt; style block no longer available.  [ruby-dev:28958]</div><div class='add'>+</div><div class='add'>+Tue Jul  4 21:48:56 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): suppress warning on DOSISH.</div><div class='add'>+</div><div class='add'>+Tue Jul  4 15:12:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): should not set prot_tag-&gt;blkid since it would</div><div class='add'>+	  never catch breaks at this level.  [ruby-dev:28922]</div><div class='add'>+</div><div class='add'>+Tue Jul  4 04:48:36 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: ruby 1.9 HEAD 64 bit warnings clean up from</div><div class='add'>+	  &lt;ville.mattila at stonesoft.com&gt;.   [ruby-core:08120]</div><div class='add'>+</div><div class='add'>+Mon Jul  3 19:04:38 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_make_menu_embeddable): help to make a menu</div><div class='add'>+	  widget embeddable (pack, grid, and so on) like as a general widget.</div><div class='add'>+	  However, an embeddable menu may require to be defined some event</div><div class='add'>+	  bindings for general use.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: [bug fix] Tk.callback_break and</div><div class='add'>+	  Tk.callback_continue don't work on MultiTkIp.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: lack of Tk.callback_return.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: improve creating clone menus.</div><div class='add'>+</div><div class='add'>+Mon Jul  3 14:42:06 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/extconf.rb (PW_UID2VAL, PW_GID2VAL): defaulted to conversion</div><div class='add'>+	  from int, and sys/types.h needs to be included before grp.h.</div><div class='add'>+	  fixed: [ruby-dev:28938]</div><div class='add'>+</div><div class='add'>+Mon Jul  3 10:44:01 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (popen_exec): close file descriptors other than standard I/Os.</div><div class='add'>+	  fixed: [ruby-dev:28924]</div><div class='add'>+</div><div class='add'>+Mon Jul  3 05:15:29 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_asn1.c: String#[]= doesn't accept Integer.</div><div class='add'>+</div><div class='add'>+Mon Jul  3 01:14:15 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): encode \b (\010) for escape.</div><div class='add'>+	  [ruby-dev:28927]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jul  2 19:03:30 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: sync with original code, rev 1.7.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: must require version.h to get</div><div class='add'>+	  RUBY_VERSION_CODE.</div><div class='add'>+</div><div class='add'>+Sun Jul  2 18:42:27 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: sync with original source code, rev</div><div class='add'>+	  1.6.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: do not use rb_iterate to give a block</div><div class='add'>+	  to the method, use rb_block_call instead. [ruby-dev:28445]</div><div class='add'>+</div><div class='add'>+Sun Jul  2 11:22:03 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): STDOUT.reopen(filename, "w+") didn't work.</div><div class='add'>+	  (rb_io_reopen): STDOUT.reopen(File.open(filename, "w+")) didn't work.</div><div class='add'>+</div><div class='add'>+Sat Jul  1 23:55:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_FRAME): initialize frame-&gt;self.  [ruby-dev:28911]</div><div class='add'>+</div><div class='add'>+Sat Jul  1 17:00:42 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/utils.rb: use Proc#yield instead of Proc#call.</div><div class='add'>+	  [ruby-dev:28914]</div><div class='add'>+</div><div class='add'>+Sat Jul  1 15:15:49 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_nonblock.rb: add timeout to send/receive</div><div class='add'>+	  an empty UDP packet.</div><div class='add'>+	  [ruby-dev:28820]</div><div class='add'>+</div><div class='add'>+Fri Jun 30 23:46:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: should test isinf for Solaris with GCC compiler.</div><div class='add'>+	  a patch from &lt;ville.mattila at stonesoft.com&gt;.  [ruby-core:07791]</div><div class='add'>+</div><div class='add'>+	* configure.in: -shared patch from Andrew Morrow</div><div class='add'>+	  &lt;andrew.c.morrow at gmail.com&gt;.  [ruby-core:08100]</div><div class='add'>+</div><div class='add'>+Fri Jun 30 19:35:41 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils._escape): should</div><div class='add'>+	  use String#ord to get ascii code from the one-character string.</div><div class='add'>+	  [ruby-dev:28901]</div><div class='add'>+</div><div class='add'>+Thu Jun 29 23:56:01 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): a bug in NODE_BLOCK_PASS marking.</div><div class='add'>+	  [ruby-dev:28908]</div><div class='add'>+</div><div class='add'>+Thu Jun 29 23:04:36 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: use ARGSPUSH instead of ARGSCAT to prevent too much</div><div class='add'>+	  splat expansion.</div><div class='add'>+</div><div class='add'>+	* eval.c (when_check): need to handle ARGSPUSH as well.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_orphan): lambda and proc from method are always</div><div class='add'>+	  orphan.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): proper marking for NODE_LAMBDA.</div><div class='add'>+</div><div class='add'>+Thu Jun 29 22:47:30 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (SETUP_ARGS0): avoid GC problem.</div><div class='add'>+	  [ruby-dev:28902]</div><div class='add'>+</div><div class='add'>+Thu Jun 29 18:58:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_version): fix patch</div><div class='add'>+	  failure.</div><div class='add'>+</div><div class='add'>+Thu Jun 29 18:00:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: add RDoc document.  a patch from</div><div class='add'>+	  mathew &lt;meta at pobox.com&gt;.   [ruby-core:07050]</div><div class='add'>+</div><div class='add'>+Wed Jun 28 14:53:09 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: RDoc patch from Robin Stocker &lt;robin@nibor.org&gt;</div><div class='add'>+	  [ruby-core:08087]</div><div class='add'>+</div><div class='add'>+Wed Jun 28 23:23:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): underscores should appear only</div><div class='add'>+	  between digits.  [ruby-dev:28891]</div><div class='add'>+</div><div class='add'>+Wed Jun 28 19:04:34 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_unix.rb: test_seqpacket_pair removed.</div><div class='add'>+	  [ruby-dev:28846]</div><div class='add'>+</div><div class='add'>+Wed Jun 28 13:51:21 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (when_check): arbitrary values are allowed after splats.</div><div class='add'>+	  fixed: [ruby-dev:28879]</div><div class='add'>+</div><div class='add'>+Wed Jun 28 09:16:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): remove meaningless else-only case statement</div><div class='add'>+	  syntax.</div><div class='add'>+</div><div class='add'>+Wed Jun 28 08:08:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): problem to handle else part.  [ruby-dev:28873]</div><div class='add'>+</div><div class='add'>+Wed Jun 28 01:48:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): support splat in when expression list.</div><div class='add'>+	  [ruby-dev:28822]</div><div class='add'>+</div><div class='add'>+	* eval.c (when_check): a new auxiliary function for case match.</div><div class='add'>+</div><div class='add'>+	* eval.c (when_cond): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun 28 01:05:37 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_cstr_to_dbl): should not skip '_' at the beginning</div><div class='add'>+	  of a string.  [ruby-dev:28830]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 27 23:03:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: RDoc update for =~ method.  a patch from Alex Young</div><div class='add'>+	  &lt;alex at blackkettle.org&gt;.  [ruby-core:08068]</div><div class='add'>+</div><div class='add'>+Tue Jun 27 22:47:18 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: forgot to update TCLTKLIB_RELEASE_DATE.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (tk_tcl2ruby): [bug fix] sometimes fail to convert</div><div class='add'>+	  a tcl string to a ruby object if the tcl string includes "\n".</div><div class='add'>+</div><div class='add'>+Tue Jun 27 20:05:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): backout unnecessary fix on 2006-06-26.</div><div class='add'>+	  [ruby-dev:28865]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): exact argument number check now done only</div><div class='add'>+	  for lambda Proc.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): add check for number of arguments, if</div><div class='add'>+	  there's one lambda block parameter.</div><div class='add'>+</div><div class='add'>+Tue Jun 27 16:04:05 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: define isascii on MinGW for msvcrt compatibility.</div><div class='add'>+</div><div class='add'>+	* configure.in: set ac_cv_header_sys_time_h=no on MinGW</div><div class='add'>+	  for msvcrt compatibility.</div><div class='add'>+</div><div class='add'>+Tue Jun 27 11:36:02 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (setup_passwd, setup_group): allow bignum uid, gid and</div><div class='add'>+	  so on.  [ruby-talk:199102]</div><div class='add'>+</div><div class='add'>+Tue Jun 27 10:46:53 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): avoid core dump.  [ruby-dev:28840]</div><div class='add'>+</div><div class='add'>+Mon Jun 26 11:03:00 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri: Add options to limit the ri search path.</div><div class='add'>+</div><div class='add'>+Tue Jun 27 01:31:59 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_recv_nonblock): new method</div><div class='add'>+	  BasicSocket#recv_nonblock.</div><div class='add'>+	  (udp_recvfrom_nonblock): renamed from ip_recvfrom_nonblock.</div><div class='add'>+	  IPSocket#recvfrom_nonblock is moved to UDPSocket#recvfrom_nonblock.</div><div class='add'>+	  (unix_recvfrom_nonblock): removed.</div><div class='add'>+	  UNIXSocket#recvfrom_nonblock is removed.</div><div class='add'>+</div><div class='add'>+Tue Jun 27 00:52:40 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c (token_assoc): added tCHAR, which is not</div><div class='add'>+	  under 256 now.  fixed: [ruby-dev:28832]</div><div class='add'>+</div><div class='add'>+Mon Jun 26 23:42:57 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): no check for argument number of the</div><div class='add'>+	  callback.  fixed: [ruby-dev:28812]</div><div class='add'>+</div><div class='add'>+Mon Jun 26 18:37:44 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_delete): fix SEGV when a slave-ip is</div><div class='add'>+	  deleted on callback.</div><div class='add'>+</div><div class='add'>+Mon Jun 26 15:40:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_accept): revert to avoid ambiguity of</div><div class='add'>+	  argument evaluation order.  [ruby-dev:28861]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_accept_nonblock): ditto.</div><div class='add'>+</div><div class='add'>+Mon Jun 26 10:47:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): avoid closing uninitialized file descriptors.</div><div class='add'>+	  a patch from &lt;tommy at tmtm.org&gt; [ruby-dev:28600]</div><div class='add'>+</div><div class='add'>+Sun Jun 25 23:02:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, mkconfig.rb: catch-up for latest autoconf.</div><div class='add'>+</div><div class='add'>+Sun Jun 25 17:44:16 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (paren_args): wrap $2 by escape_Qundef because it may be</div><div class='add'>+	  Qundef.  [ruby-dev:28843]</div><div class='add'>+</div><div class='add'>+Sun Jun 25 17:18:33 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(ole_invoke): support some kind of</div><div class='add'>+	  method of word. [ruby-Bugs#3237]</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_word.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 24 23:48:08 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: replace terminal token names with more descriptive</div><div class='add'>+	  name, i.e. kEND to keyword_end.  [ruby-list:42477]</div><div class='add'>+</div><div class='add'>+Sat Jun 24 23:37:41 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use rb_ary_new2 instead of rb_ary_new4 to avoid</div><div class='add'>+	  GC problem.</div><div class='add'>+	  (rb_yield_values): use rb_ary_new2 instead of rb_ary_new4.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_new4): don't set len as n if contents is not</div><div class='add'>+	  initialized.  make it safe with GC.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:28826]</div><div class='add'>+</div><div class='add'>+Fri Jun 23 23:35:32 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h, lib/drb/drb.rb, lib/drb/invokemethod.rb: remove Values class.</div><div class='add'>+	  [ruby-dev:28805]</div><div class='add'>+</div><div class='add'>+Fri Jun 23 17:27:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_block_pass): removed.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_1): use rb_proc_yield() instead of</div><div class='add'>+	  rb_block_pass().  fixed: [ruby-dev:28794]</div><div class='add'>+</div><div class='add'>+Thu Jun 22 11:52:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTPResponse): duplicated error 501;</div><div class='add'>+	  HTTPInternalServerError should be error 500.  [ruby-core:08037]</div><div class='add'>+</div><div class='add'>+Thu Jun 22 11:47:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_name): returns nil for anonymous modules.</div><div class='add'>+	  [ruby-talk:198440]</div><div class='add'>+</div><div class='add'>+Thu Jun 22 10:31:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aref): "abc"[3] should not return an empty</div><div class='add'>+	  string but nil.  [ruby-dev:28786]</div><div class='add'>+</div><div class='add'>+Thu Jun 22 05:15:58 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_socketpair): try GC only once.</div><div class='add'>+	  [ruby-dev:28778]</div><div class='add'>+</div><div class='add'>+Wed Jun 21 21:20:31 2006  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (jd_to_commercial): now works fine even if in</div><div class='add'>+	  mathn-ized context.</div><div class='add'>+</div><div class='add'>+Wed Jun 21 17:29:57 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (freeaddrinfo, get_name): fixed typo.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (tcl_eval, tcl_global_eval): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rscheck): constified.</div><div class='add'>+</div><div class='add'>+Wed Jun 21 17:18:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods::seplist): should have preserved</div><div class='add'>+	  original reference to the array.  [ruby-dev:28747]</div><div class='add'>+</div><div class='add'>+Wed Jun 21 14:35:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_param): do not use multiple assignment for a sole</div><div class='add'>+	  block parameter.  [ruby-dev:28710]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): pass a raw yielded value to a sole block</div><div class='add'>+	  parameter if a value is passed by yield.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): args may not be an array.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_yield): pass original value without wrapping</div><div class='add'>+	  it in an array.</div><div class='add'>+</div><div class='add'>+Wed Jun 21 14:06:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): remove (fn)(args) style lambda</div><div class='add'>+	  invocation, add fn.(args) instead.</div><div class='add'>+</div><div class='add'>+Wed Jun 21 08:39:54 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb (XMLRPC::Create::conv2value): merge Date</div><div class='add'>+	  and Time processing.  [ruby-core:08033]</div><div class='add'>+</div><div class='add'>+Wed Jun 21 03:01:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, file.c, etc.: code-cleanup patch from Stefan Huehner</div><div class='add'>+	  &lt;stefan at huehner.org&gt;.  [ruby-core:08029]</div><div class='add'>+</div><div class='add'>+Wed Jun 21 01:40:25 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reswords): modifier token is no longer returned in fname</div><div class='add'>+	  state.  fixed: [ruby-dev:28775]</div><div class='add'>+</div><div class='add'>+Tue Jun 20 23:28:34 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args): provisional catch-up for the recent changes.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::List#summarize, OptionParser#order!): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jun 20 11:07:55 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): intercept break and return from lambda</div><div class='add'>+	  Proc objects.  [ruby-dev:28742]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): remove unnecessary YIELD_PROC_CALL flag.</div><div class='add'>+</div><div class='add'>+	* eval.c (YIELD_EXACT_ARGS): renamed from YIELD_LAMBDA_CALL, which</div><div class='add'>+	  is no longer related to the behavior turned on by this flag.</div><div class='add'>+</div><div class='add'>+	* eval.c (return_jump): no need to care about PROT_YIELD.</div><div class='add'>+</div><div class='add'>+	* eval.c (break_jump): no jump to toplevel PROT_THREAD tag.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): fix confusion between lambda (which is a</div><div class='add'>+	  property of a proc) and pcall (which depends on whether it's</div><div class='add'>+	  called via yield or call).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_yield): no need to specify YIELD_LAMBDA_CALL.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_block_pass): update blkid in prot_tag.</div><div class='add'>+</div><div class='add'>+Mon Jun 19 23:40:59 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	  * ext/nkf/lib/kconv.rb: remove default -m0 and fix document.</div><div class='add'>+</div><div class='add'>+	  * ext/nkf/nkf-8/{nkf.c, config.h, utf8tbl.c, utf8tbl.h}:</div><div class='add'>+	    imported nkf 2.0.7.</div><div class='add'>+</div><div class='add'>+Mon Jun 19 17:02:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/test.rb (proc_return3): return within non lambda block</div><div class='add'>+	  should terminate surrounding method.  [ruby-dev:28741]</div><div class='add'>+</div><div class='add'>+Mon Jun 19 13:22:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_sysaccept): typo fixed.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_connect): remove an unused local</div><div class='add'>+	  variable tmpaddr.</div><div class='add'>+</div><div class='add'>+Mon Jun 19 02:10:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (tcp_accept_nonblock): forgot to remove</div><div class='add'>+	  abandoned hacks.  [ruby-dev:28740]</div><div class='add'>+</div><div class='add'>+Mon Jun 19 00:00:17 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix bug: initialize improper tables.</div><div class='add'>+</div><div class='add'>+Sun Jun 18 20:28:43 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_methods): The return value</div><div class='add'>+	  of WIN32OLE#ole_methods should include PROPERTYPUTREF methods.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_put_methods): The return value</div><div class='add'>+	  of WIN32OLE#ole_put_methods should include PROPERTYPUTREF methods.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_ole_methods.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_propertyput): support</div><div class='add'>+	  PROPERTYPUTREF. [ruby-talk:183042]</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_propertyputref.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 17 23:42:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): add aliases invoke_method and</div><div class='add'>+	  invoke_functional_method corresponding send and funcall</div><div class='add'>+	  respectively.  [ruby-talk:197512]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): returns the most typical keyword token</div><div class='add'>+	  on EXPR_FNAME.  [ruby-core:7995]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: protoize.</div><div class='add'>+</div><div class='add'>+Sat Jun 17 22:17:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Integer::prime_division): raise ZeroDivisionError</div><div class='add'>+	  on zeros.  [ruby-dev:28739]</div><div class='add'>+</div><div class='add'>+Sat Jun 17 14:53:32 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Kernel#Pathname): new method.</div><div class='add'>+</div><div class='add'>+Sat Jun 17 02:01:00 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (Kernel#pretty_inspect): defined for pretty printed</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Fri Jun 16 01:41:00 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_arity): get rid of segfault for mere splat.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): NODE_BLOCK_PASS needs u3 to be marked.</div><div class='add'>+</div><div class='add'>+Thu Jun 15 22:06:56 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (then): remove ':' from 'then' and 'do' rules.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 18:00:20 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_any): Documentation typo.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 15:01:09 2006  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser#warn): Don't print</div><div class='add'>+	  warnings when -q is set.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 16:11:37 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_method_name, rb_f_callee_name): document typo.</div><div class='add'>+</div><div class='add'>+Wed Jun 14 15:19:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_aset): raise TypeError on nil with more descriptive</div><div class='add'>+	  message.  [ruby-core:07990]</div><div class='add'>+</div><div class='add'>+Tue Jun 13 17:22:19 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): remove obsolete constants:</div><div class='add'>+	  IPsocket, TCPsocket, SOCKSsocket, TCPserver, UDPsocket,</div><div class='add'>+	  UNIXsocket, UNIXserver.</div><div class='add'>+</div><div class='add'>+Tue Jun 13 09:07:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): post splat arguments should have had</div><div class='add'>+	  higher priority than optional arguments, since they are</div><div class='add'>+	  mandatory.  [ruby-dev:28715]</div><div class='add'>+</div><div class='add'>+	* eval.c (VIS_MASK): broken. should be 15.  [ruby-dev:28715]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_getc): should return one-character string.</div><div class='add'>+	  [ruby-dev:28715]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_readchar): ditto.</div><div class='add'>+</div><div class='add'>+Sun Jun 11 23:20:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_call): disallow to call private methods.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Arguable#getopts): pass self to the</div><div class='add'>+	  parser.</div><div class='add'>+</div><div class='add'>+Sun Jun 11 09:56:41 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (write): not need to define on bcc.</div><div class='add'>+</div><div class='add'>+Sun Jun 11 08:30:33 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#getopts): new methods.</div><div class='add'>+</div><div class='add'>+Sun Jun 11 07:27:11 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_writer.rb: use String#ord.</div><div class='add'>+</div><div class='add'>+Sun Jun 11 04:38:20 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_to_proc): imported Symbol#to_proc from ActiveSupport.</div><div class='add'>+</div><div class='add'>+Sat Jun 10 18:02:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/newton.rb (Newton::nlsolve): typo</div><div class='add'>+	  fixed: raize -&gt; raise.  [ruby-talk:196608]</div><div class='add'>+</div><div class='add'>+Sat Jun 10 17:49:53 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_ord): new method.</div><div class='add'>+</div><div class='add'>+	* parse.y (rbracket): allow optional newline before closing</div><div class='add'>+	  brackets.</div><div class='add'>+</div><div class='add'>+Sat Jun 10 15:12:29 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_method_name, rb_f_callee_name): new functions.</div><div class='add'>+	  new global method `__method__' and `__callee__'.</div><div class='add'>+</div><div class='add'>+Sat Jun 10 10:13:13 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb (GetoptLong#set_options): receive arguments</div><div class='add'>+	  as Array.</div><div class='add'>+</div><div class='add'>+	* lib/irb/slex.rb: use Proc#yield.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup/inline.rb: follow the new behavior</div><div class='add'>+	  of String#[].</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_writer.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun 10 08:17:23 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (log2): may be a macro.</div><div class='add'>+</div><div class='add'>+	* parse.y (args, block_param, f_args): pass f_post_arg to #params.</div><div class='add'>+</div><div class='add'>+	* util.c (powersOf10): constified.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: include extconf.h first.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: removed tLAMBDA_ARG.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (lib_fromUTF8_core): removed conflict.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c (cbsubst_get_subst_arg): rb_id2name() is</div><div class='add'>+	  defined as const now.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_missing): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): force to create extconf header.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (order!): use Proc#yield.</div><div class='add'>+</div><div class='add'>+Sat Jun 10 06:53:22 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (CALLARGS): remove last semicolon. C90 compiler doesn't</div><div class='add'>+	  allow any lines (even if they're empty) within variable</div><div class='add'>+	  declarations.</div><div class='add'>+</div><div class='add'>+Fri Jun  9 09:56:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): allow %c to print one character</div><div class='add'>+	  string (e.g. ?x).</div><div class='add'>+</div><div class='add'>+Thu Jun  8 14:00:02 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_read, rb_w32_write): new functions.</div><div class='add'>+	  use recv() and send() when fd is socket. fixed: [ruby-dev:28694]</div><div class='add'>+</div><div class='add'>+Wed Jun  7 16:22:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::make_tmpname): put dot between</div><div class='add'>+	  basename and pid.  [ruby-talk:196272]</div><div class='add'>+</div><div class='add'>+Wed Jun  7 16:16:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (do_block): remove -&gt; style block.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): remove tLAMBDA_ARG.</div><div class='add'>+</div><div class='add'>+Wed Jun  7 14:51:22 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (errmap): add some winsock errors.</div><div class='add'>+</div><div class='add'>+Wed Jun  7 09:14:44 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): binding for the return event hook should have</div><div class='add'>+	  consistent scope.  [ruby-core:07928]</div><div class='add'>+</div><div class='add'>+Tue Jun  6 23:25:49 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): return behavior should depend whether it</div><div class='add'>+	  is surrounded by a lambda or a mere block.</div><div class='add'>+</div><div class='add'>+Mon Jun  5 18:12:12 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_unpack_sockaddr_in): reject</div><div class='add'>+	  non-AF_INET/AF_INET6 sockaddr.</div><div class='add'>+	  (sock_s_unpack_sockaddr_un): reject non-AF_UNIX sockaddr.</div><div class='add'>+	  [ruby-dev:28691]</div><div class='add'>+</div><div class='add'>+Sun Jun  4 20:40:19 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: fix sockaddr_un handling.</div><div class='add'>+	  [ruby-dev:28677]</div><div class='add'>+</div><div class='add'>+Sat Jun  3 23:53:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): handles post splat arguments.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): ditto.</div><div class='add'>+</div><div class='add'>+Sat Jun  3 13:10:41 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (strhash): use FNV-1a hash.</div><div class='add'>+</div><div class='add'>+Fri Jun  2 20:01:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): removed experimental ';;' terminator.</div><div class='add'>+</div><div class='add'>+Fri Jun  2 19:00:40 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: use create_header.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h, ext/openssl/openssl_missing.h:</div><div class='add'>+	  include RUBY_EXTCONF_H.</div><div class='add'>+</div><div class='add'>+Fri Jun  2 17:16:52 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CLEANINGS): remove extconf.h by distclean if created.</div><div class='add'>+</div><div class='add'>+Fri Jun  2 00:11:19 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): alen may be zero with UNIXSocket</div><div class='add'>+	  too.  (tested on NetBSD 3.0)</div><div class='add'>+	  (s_recvfrom_nonblock): extracted from sock_recvfrom_nonblock.</div><div class='add'>+	  (sock_recvfrom_nonblock): use s_recvfrom_nonblock.</div><div class='add'>+	  (ip_recvfrom_nonblock): new method: IPSocket#recvfrom_nonblock</div><div class='add'>+	  (unix_recvfrom_nonblock): new method: UNIXSocket#recvfrom_nonblock</div><div class='add'>+	  (s_accept_nonblock): extracted from sock_accept_nonblock.</div><div class='add'>+	  (sock_accept_nonblock): use s_accept_nonblock.</div><div class='add'>+	  (tcp_accept_nonblock): new method: TCPServer#accept_nonblock</div><div class='add'>+	  (unix_accept_nonblock): new method: UNIXServer#accept_nonblock</div><div class='add'>+</div><div class='add'>+Thu Jun  1 19:12:37 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_cmdvector): backslashes inside single-quotes</div><div class='add'>+	  no longer has special meanings.  fixed: [ruby-list:42311]</div><div class='add'>+</div><div class='add'>+Thu Jun  1 17:55:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_node_arity): should be aware of post splat arguments.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_arity): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun  1 16:17:26 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getcwd): runtime's getcwd() will not success</div><div class='add'>+	  if the length of the cwd is longer than MAX_PATH.</div><div class='add'>+	  fixed [ruby-list:42335]</div><div class='add'>+</div><div class='add'>+Thu Jun  1 16:07:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_args): syntax rule enhanced to support arguments</div><div class='add'>+	  after the splat.</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_basic): ditto for multiple assignments</div><div class='add'>+</div><div class='add'>+	* parse.y (block_param): ditto for block parameters.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_post_arg): mandatory formal arguments after the splat</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* parse.y (new_args_gen): generate nodes for mandatory formal</div><div class='add'>+	  arguments after the splat argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): dispatch mandatory formal arguments after the</div><div class='add'>+	  splat argument.</div><div class='add'>+</div><div class='add'>+Thu Jun  1 11:33:32 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getcwd): set errno if not set.</div><div class='add'>+	  fixed [ruby-list:42346]</div><div class='add'>+</div><div class='add'>+Thu Jun  1 00:45:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (args): allow more than one splat in the argument list.</div><div class='add'>+</div><div class='add'>+Wed May 31 18:38:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): allow aref [] to accept all kind of</div><div class='add'>+	  method argument, including assocs, splat, and block argument.</div><div class='add'>+</div><div class='add'>+	* eval.c (SETUP_ARGS0): prepare block argument as well.</div><div class='add'>+</div><div class='add'>+Tue May 30 18:13:53 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Integer): remove Integer#gcd2. [ruby-core:07931]</div><div class='add'>+</div><div class='add'>+Mon May 29 22:40:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_line): print receivers true/false/nil specially.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_yield): handles parameters in yield semantics.</div><div class='add'>+</div><div class='add'>+	* eval.c (nil_yield): gives LocalJumpError to denote no block</div><div class='add'>+	  error.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getc): now takes one-character string.</div><div class='add'>+</div><div class='add'>+Sat May 27 22:46:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): save and restore block in the current frame.</div><div class='add'>+	  fixed: [ruby-core:07833], [ruby-talk:191639]</div><div class='add'>+</div><div class='add'>+Sat May 27 11:29:46 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): remove extinit files if no statically linked</div><div class='add'>+	  extensions.</div><div class='add'>+</div><div class='add'>+Fri May 26 19:56:46 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): use FNV-1a hash from Fowler/Noll/Vo</div><div class='add'>+	  hashing algorithm.</div><div class='add'>+</div><div class='add'>+Fri May 26 09:05:11 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h, lib/mkmf.rb (create_header): clear command line options for</div><div class='add'>+	  macros moved to extconf.h.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile, extmk): made RUBY_EXTCONF_H and</div><div class='add'>+	  EXTSTATIC permanent.</div><div class='add'>+</div><div class='add'>+	* ext/{dbm,digest/*,socket,zlib}/extconf.rb: used $defs and $INCFLAGS.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (COMPILE_C, COMPILE_CXX): added</div><div class='add'>+	  $(INCFLAGS).</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): add $defs unless extconf.h was created.</div><div class='add'>+</div><div class='add'>+Thu May 25 01:52:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (pkg_config): particular config commands support.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: deal with $static set in extconf.rb.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: merge multiple entries to an entry with multiple lines.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: allow a series of commands to link.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: embed manifests.</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: suffix OS name by runtime version.</div><div class='add'>+</div><div class='add'>+Wed May 24 23:52:11 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_install_sh): ignore dummy install-sh.</div><div class='add'>+	  [ruby-talk:193876]</div><div class='add'>+</div><div class='add'>+Wed May 24 17:55:13 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aref): str[0] now returns 1 character string,</div><div class='add'>+	  instead of a fixnum.	[Ruby2]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ?c now returns 1 character string,</div><div class='add'>+	  instead of a fixnum.	[Ruby2]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aset): no longer support fixnum insertion.</div><div class='add'>+</div><div class='add'>+Wed May 24 03:10:44 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb</div><div class='add'>+	  (OpenSSL::SSL::SocketForwarder#setsockopt,getsockopt): typo fixed.</div><div class='add'>+</div><div class='add'>+Mon May 22 16:32:03 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h (rb_io_set_nonblock): declared.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_set_nonblock): new function.</div><div class='add'>+	  (io_getpartial): nonblocking read support.</div><div class='add'>+	  (io_read_nonblock): new method: IO#read_nonblock.</div><div class='add'>+	  (io_write_nonblock): new method: IO#write_nonblock.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept): retry for EWOULDBLOCK.</div><div class='add'>+	  revert [ruby-talk:113807].</div><div class='add'>+	  (sock_connect_nonblock): new method: Socket#connect_nonblock.</div><div class='add'>+	  (sock_accept_nonblock): new method: Socket#accept_nonblock.</div><div class='add'>+	  (sock_recvfrom_nonblock): new method: Socket#recvfrom_nonblock.</div><div class='add'>+</div><div class='add'>+	  [ruby-core:7917]</div><div class='add'>+</div><div class='add'>+Mon May 22 15:57:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): should not update original class.</div><div class='add'>+	  [ruby-dev:28636]</div><div class='add'>+</div><div class='add'>+Mon May 22 13:38:57 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): should support constant access from</div><div class='add'>+	  within instance_eval().  [ruby-dev:28327]</div><div class='add'>+</div><div class='add'>+Sun May 21 09:50:31 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c: add STK_NULL_CHECK_END to IS_TO_VOID_TARGET().</div><div class='add'>+	  [ruby-list:42234]</div><div class='add'>+</div><div class='add'>+Thu May 18 22:37:20 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config::HTTP): add new parameters,</div><div class='add'>+	  :InputBufferSize and :OutputBufferSize.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb (WEBrick::Utils.timeout): add new timeout</div><div class='add'>+	  method. this implementation is expected to be compatible with</div><div class='add'>+	  timeout.rb and faster than timeout.rb.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#_read_data):</div><div class='add'>+	  Timeout.timeout is replaced by WEBrick::Utils.timeout.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb: WEBrick::HTTPRequest::BUFSIZE is</div><div class='add'>+	  replaced by config[:InputBufferSize].</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresposne.rb: WEBrick::HTTPResponse::BUFSIZE is</div><div class='add'>+	  replaced by config[:OutputBufferSize].</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb: get rid of unnecessary require.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_utils.rb: test for WEBrick::Utils.timeout.</div><div class='add'>+</div><div class='add'>+Thu May 18 17:51:32 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_timeval): should round for usec floating</div><div class='add'>+	  number.  [ruby-core:07896]</div><div class='add'>+</div><div class='add'>+	* time.c (time_add): ditto.</div><div class='add'>+</div><div class='add'>+Thu May 18 00:42:12 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb: use BUILD_FILE_SEPARATOR in Makefiles.</div><div class='add'>+</div><div class='add'>+Wed May 17 17:55:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (sys_warning): should not call a vararg function</div><div class='add'>+	  rb_sys_warning() indirectly.	[ruby-core:07886]</div><div class='add'>+</div><div class='add'>+Tue May 16 17:23:19 2006  Shin-ichiro HARA  &lt;sinara@blade.nagaokaut.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_divmod): the first element of Float#divmod should</div><div class='add'>+	  be an integer. [ruby-dev:28589]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: add tests for divmod, div, modulo and remainder.</div><div class='add'>+</div><div class='add'>+Tue May 16 15:34:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): should not allow modifying literal</div><div class='add'>+	  regexps.  frozen check moved from rb_reg_initialize_m as well.</div><div class='add'>+</div><div class='add'>+Tue May 16 09:20:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): should not modify untainted objects in</div><div class='add'>+	  safe levels higher than 3.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memcmp): type change from char* to const void*.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_close): should not close untainted dir stream.</div><div class='add'>+</div><div class='add'>+	* dir.c (GetDIR): add tainted/frozen check for each dir operation.</div><div class='add'>+</div><div class='add'>+Mon May 15 21:37:12 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_prepare_re): don't use onig_recompile().</div><div class='add'>+</div><div class='add'>+Mon May 15 17:42:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_symbol_arg):</div><div class='add'>+	  typo fixed.  a patch from Florian Gross &lt;florg at florg.net&gt;.</div><div class='add'>+</div><div class='add'>+Sat May 13 16:14:05 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP.mcall): new method.</div><div class='add'>+	  (Struct#pretty_print): call Kernel#class and Struct#members even if</div><div class='add'>+	  overridden.</div><div class='add'>+	  (Struct#pretty_print_cycle): ditto.</div><div class='add'>+	  [ruby-core:7865]</div><div class='add'>+</div><div class='add'>+Fri May 12 15:54:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (EXEC_EVENT_HOOK): trace_func may remove itself from</div><div class='add'>+	  event_hooks.	no guarantee for arbitrary hook deletion.</div><div class='add'>+	  [ruby-dev:28632]</div><div class='add'>+</div><div class='add'>+Thu May 11 19:57:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): differ addition to minimize error.</div><div class='add'>+	  [ruby-dev:28619]</div><div class='add'>+</div><div class='add'>+Thu May 11 18:30:11 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (add_cipher_name_to_ary): should return</div><div class='add'>+	  value. [ruby-dev:28627]</div><div class='add'>+</div><div class='add'>+Thu May 11 18:10:43 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): should not raise ERANGE when the input</div><div class='add'>+	  string does not have any digits.  [ruby-dev:28629]</div><div class='add'>+</div><div class='add'>+Wed May 10 23:40:21 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.0.3</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon May  8 09:10:31 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for OBJ_NAME_do_all_sorted.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_s_ciphers): new method</div><div class='add'>+	  OpenSSL::Cipher.ciphers. it returns all the cipher names.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_init): refine warning message.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/cipher.rb: reimplement without eval() and</div><div class='add'>+	  add constants AES128, AES192, AES256. [ruby-dev:28610]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/digest.rb: reimplement without eval().</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_cipher.rb, test_digest: fix about reimplemented</div><div class='add'>+	  features.</div><div class='add'>+</div><div class='add'>+	* sample/openssl/cipher.rb: rewrite all.</div><div class='add'>+</div><div class='add'>+Sun May  7 03:09:51 2006  Stephan Maka  &lt;stephan@spaceboyz.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Requester::ConnectedUDP#initialize):</div><div class='add'>+	  Use AF_INET6 for nameservers containing colons.</div><div class='add'>+</div><div class='add'>+Sat May  6 23:40:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should restore old ruby_frame-&gt;block.</div><div class='add'>+	  thanks to ts &lt;decoux at moulon.inra.fr&gt;.  [ruby-core:07833]</div><div class='add'>+	  also fix [ruby-dev:28614] as well.</div><div class='add'>+</div><div class='add'>+Sat May  6 00:38:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): sig should be less then NSIG.  Coverity found</div><div class='add'>+	  this bug.  a patch from Kevin Tew &lt;tewk at tewk.com&gt;.</div><div class='add'>+	  [ruby-core:07823]</div><div class='add'>+</div><div class='add'>+Thu May  4 22:13:22 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* math.c (math_log2): add new method inspired by</div><div class='add'>+	  [ruby-talk:191237].</div><div class='add'>+</div><div class='add'>+	* math.c (math_log): add optional base argument to Math::log().</div><div class='add'>+	  [ruby-talk:191308]</div><div class='add'>+</div><div class='add'>+Thu May  4 02:24:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_scan_scalar): avoid accessing</div><div class='add'>+	  uninitialized array element.	a patch from Pat Eyler</div><div class='add'>+	  &lt;rubypate at gmail.com&gt;.  [ruby-core:07809]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): initialize local variables first.  a</div><div class='add'>+	  patch from Pat Eyler &lt;rubypate at gmail.com&gt;.	 [ruby-core:07810]</div><div class='add'>+</div><div class='add'>+	* ext/syck/yaml2byte.c (syck_yaml2byte_handler): need to free</div><div class='add'>+	  type_tag.  a patch from Pat Eyler &lt;rubypate at gmail.com&gt;.</div><div class='add'>+	  [ruby-core:07808]</div><div class='add'>+</div><div class='add'>+Wed May  3 02:12:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent_internal): accept ai_family</div><div class='add'>+	  check from Sam Roberts &lt;sroberts at uniserve.com&gt;.</div><div class='add'>+	  [ruby-core:07691]</div><div class='add'>+</div><div class='add'>+Mon May  1 17:58:16 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (add_event_call_back): should not</div><div class='add'>+	  delete event handler when the event name is not entried.</div><div class='add'>+</div><div class='add'>+Mon May  1 08:32:10 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_param_ole_type): should return</div><div class='add'>+	  "unknown type" string when ITypeInfo::GetFuncDesc failed.</div><div class='add'>+</div><div class='add'>+Sat Apr 29 22:43:37 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_decode0): should initialize</div><div class='add'>+	  flag. [ruby-core:07785]</div><div class='add'>+</div><div class='add'>+Fri Apr 28 10:53:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): should not cut off 18 digits for no</div><div class='add'>+	  reason.  [ruby-core:07796]</div><div class='add'>+</div><div class='add'>+Thu Apr 27 01:38:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): internalize local variable "beg" to</div><div class='add'>+	  pacify Coverity.  [ruby-core:07770]</div><div class='add'>+</div><div class='add'>+Wed Apr 26 16:59:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): now supports CRLF newlines.  a patch from</div><div class='add'>+	  &lt;tommy at tmtm.org&gt;.	[ruby-dev:28601]</div><div class='add'>+</div><div class='add'>+Wed Apr 26 16:55:19 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* applied code clean-up patch from Stefan Huehner</div><div class='add'>+	  &lt;stefan at huehner.org&gt;.  [ruby-core:07764]</div><div class='add'>+</div><div class='add'>+Tue Apr 25 18:00:05 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (delete_slaves): maybe increment the reference</div><div class='add'>+	  count of a NULL Tcl_Obj [ruby-core:07759].</div><div class='add'>+</div><div class='add'>+Tue Apr 25 07:55:31 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb (String::tr_s): should have translated non</div><div class='add'>+	  squeezing character sequence (i.e. a character) as well.  thanks</div><div class='add'>+	  to Hiroshi Ichikawa &lt;gimite at gimite.ddo.jp&gt; [ruby-list:42090]</div><div class='add'>+</div><div class='add'>+Fri Apr 21 15:19:13 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (lib_eventloop_ensure): avoid dereferencing</div><div class='add'>+	  freed pointer [ruby-core:07744] and memory leak.</div><div class='add'>+</div><div class='add'>+Fri Apr 21 12:14:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: document update patch from Sam Roberts</div><div class='add'>+	  &lt;sroberts at uniserve.com&gt;.  [ruby-core:07701]</div><div class='add'>+</div><div class='add'>+Thu Apr 20 08:43:54 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Integer): need not to remove gcd2.  a patch from</div><div class='add'>+	  NARUSE, Yui &lt;naruse at airemix.com&gt;.	[ruby-dev:28570]</div><div class='add'>+</div><div class='add'>+Wed Apr 19 13:55:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): too much NEW_LIST()</div><div class='add'>+</div><div class='add'>+	* eval.c (SETUP_ARGS0): remove unnecessary access to nd_alen.</div><div class='add'>+</div><div class='add'>+Wed Apr 19 11:57:04 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use ARGSCAT for NODE_OP_ASGN1.</div><div class='add'>+	  [ruby-dev:28585]</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): use NODE_ARGSCAT for placeholder.</div><div class='add'>+</div><div class='add'>+Wed Apr 19 11:13:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb (GetoptLong::get): RDoc update patch from</div><div class='add'>+	  mathew &lt;meta at pobox.com&gt;.  [ruby-core:07738]</div><div class='add'>+</div><div class='add'>+Wed Apr 19 10:13:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_set): raise error when no target klass is</div><div class='add'>+	  supplied.  [ruby-dev:28582]</div><div class='add'>+</div><div class='add'>+Tue Apr 18 17:40:37 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add a binding to a container for a slave IP.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: update RELEASE_DATE.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: forget to reset a Tcl interpreter.</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c: fix potential bugs about handling rb_argv0.</div><div class='add'>+</div><div class='add'>+Mon Apr 10 01:03:10 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* prec.c (prec_prec_f): documentation patch from</div><div class='add'>+	  &lt;gerardo.santana at gmail.com&gt;.  [ruby-core:07689]</div><div class='add'>+</div><div class='add'>+Sat Apr  8 02:34:34 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): second operand may be too big even if</div><div class='add'>+	  it's a Fixnum.  [ruby-talk:187984]</div><div class='add'>+</div><div class='add'>+Sat Apr  8 02:12:38 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT: update symbol description.  [ruby-talk:188104]</div><div class='add'>+</div><div class='add'>+Sat Apr  8 18:06:28 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_METHOD#inspect,</div><div class='add'>+	  WIN32OLE_PARAM#inspect.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_method.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* add test/win32ole/test_win32ole_param.rb.</div><div class='add'>+</div><div class='add'>+Fri Apr  7 22:11:30 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(foletypelib_initialize): WIN32OLE_TYPELIB.new</div><div class='add'>+	  accepts OLE file.</div><div class='add'>+</div><div class='add'>+	* test/win32ole/test_win32ole_typelib.rb(test_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Thu Apr  6 23:28:47 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* COPYING: explicitly note GPLv2.  [ruby-talk:187922]</div><div class='add'>+</div><div class='add'>+Thu Apr  6 16:43:06 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_obj_instance_exec, rb_mod_module_exec): add declaration.</div><div class='add'>+</div><div class='add'>+Thu Apr  6 11:18:37 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/panedwindow.rb: lack of arguments. [ruby-core:7681]</div><div class='add'>+</div><div class='add'>+Thu Apr  6 01:04:47 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fix SEGV when embedding to an application.</div><div class='add'>+	  [ruby-core:7600]</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fix SEGV at exit. [ruby-talk:186489]</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: follow to changing specification of</div><div class='add'>+	  instance_eval on ruby-1.9.x.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: remove warning about redefinition of methods.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: remove warning about unseting Tcl</div><div class='add'>+	  variables.</div><div class='add'>+</div><div class='add'>+Wed Apr  5 00:22:54 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: use a subclass for instantiation except</div><div class='add'>+	  methods take pathname argument.  suggested by Evan Phoenix.</div><div class='add'>+	  [ruby-core:7618]</div><div class='add'>+</div><div class='add'>+Tue Apr  4 22:15:41 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove some obsolete syntax rules (unparenthesized</div><div class='add'>+	  method calls in argument list).</div><div class='add'>+</div><div class='add'>+Sat Apr  1 15:11:27 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_TYPE#inspect,</div><div class='add'>+	  WIN32OLE_VARIABLE#inspect</div><div class='add'>+</div><div class='add'>+	* remove ext/win32ole/tests/testOLEVARIABLE.rb, testOLETYPE.rb</div><div class='add'>+	  testOLETYPELIB.rb.</div><div class='add'>+</div><div class='add'>+	* testall.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* add test/win32ole</div><div class='add'>+</div><div class='add'>+Fri Mar 31 14:24:55 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_with_index): removed suspicious return</div><div class='add'>+	  statement.</div><div class='add'>+</div><div class='add'>+Wed Mar 29 23:06:48 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke): change the behavior of</div><div class='add'>+	  WIN32OLE#[], WIN32OLE#[]=. These methods invoke DISPID_VALUE.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/sample/excel2.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 29 10:11:31 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (nkf_each_char_to_hex, encode_fallback_subchar,</div><div class='add'>+	  e2w_conv): support C90 compiler.</div><div class='add'>+</div><div class='add'>+Mon Mar 27 22:45:37 2006  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/{nkf.c, utf8tbl.c}: imported nkf 2.0.6.</div><div class='add'>+	  * Add --ic / --oc option and mapping tables.</div><div class='add'>+	  * Add fallback option.</div><div class='add'>+	  * Add --no-best-fit-chars option.</div><div class='add'>+	  * Fix some bugs.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (nkf_split_options): added for parse option string.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv.to*): add -m0.</div><div class='add'>+	  Note that Kconv.to* still imply -X.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/test.rb: Removed.  Obsolete by test/nkf.</div><div class='add'>+</div><div class='add'>+	* ext/.document: enabled documents in nkf and kconv</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c, ext/nkf/lib/kconv.rb: Add rdoc.</div><div class='add'>+</div><div class='add'>+Mon Mar 27 03:17:21 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): insecure calling should be checked for non</div><div class='add'>+	  NODE_SCOPE method invocations too.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_alias): should preserve the current safe level as</div><div class='add'>+	  well as method definition.</div><div class='add'>+</div><div class='add'>+Sun Mar 26 22:02:51 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: refactoring for options.</div><div class='add'>+</div><div class='add'>+	* parse.y: ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 24 21:11:02 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_aref): RDoc description updated.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_gsub): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 24 17:20:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_sleep): remove RDoc description about SIGALRM</div><div class='add'>+	  which is not valid on the current implementation. [ruby-dev:28464]</div><div class='add'>+</div><div class='add'>+Thu Mar 23 21:40:47 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): prohibit \1, \2 ...\9 in replaced string</div><div class='add'>+	  for named regex pattern.</div><div class='add'>+</div><div class='add'>+Thu Mar 23 21:06:23 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.0.2</div><div class='add'>+</div><div class='add'>+	* regparse.c: ditto.</div><div class='add'>+</div><div class='add'>+	* regcomp.c ditto.</div><div class='add'>+</div><div class='add'>+	* regerror.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 23 10:47:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_missing): should support argument splat in</div><div class='add'>+	  super.  a bug in combination of super, splat and</div><div class='add'>+	  method_missing.  [ruby-talk:185438]</div><div class='add'>+</div><div class='add'>+Thu Mar 23 00:01:32 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regsub): add back reference by name \k&lt;name&gt; in</div><div class='add'>+	  replace string.</div><div class='add'>+</div><div class='add'>+	* re.h: add regexp argument to rb_reg_regsub().</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 21 22:14:01 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (match_alloc): initialize member regexp.</div><div class='add'>+</div><div class='add'>+	* re.c (match_aref): add String and Symbol argument. [ruby-dev:28448]</div><div class='add'>+</div><div class='add'>+	* re.h: add member regexp to RMatch.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): add gc_mark() to regexp member.</div><div class='add'>+</div><div class='add'>+Mon Mar 20 12:05:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Solaris SunPro compiler -rapth patch from</div><div class='add'>+	  &lt;kuwa at labs.fujitsu.com&gt;.  [ruby-dev:28443]</div><div class='add'>+</div><div class='add'>+Mon Mar 20 11:12:38 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (folevariant_value): could not compile</div><div class='add'>+	  with C90 compiler.</div><div class='add'>+</div><div class='add'>+Mon Mar 20 09:40:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: remove enable_rpath=no for Solaris.</div><div class='add'>+	  [ruby-dev:28440]</div><div class='add'>+</div><div class='add'>+Sun Mar 19 09:46:30 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_val2olevariantdata): change behavior</div><div class='add'>+	  of converting	 OLE Variant object with VT_ARRAY|VT_UI1 and Ruby</div><div class='add'>+	  String object.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (folevariant_value): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEVARIANT.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 15 16:51:11 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): support libraries without *.so.</div><div class='add'>+</div><div class='add'>+Wed Mar 15 16:39:29 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c, ext/openssl/ossl_nsspki.c: should use</div><div class='add'>+	  "rb_str_new(0, 0)" to make empty string.</div><div class='add'>+</div><div class='add'>+Sun Mar 12 17:02:10 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(ole_val2olevariantdata): support VT_ARRAY in</div><div class='add'>+	  WIN32OLE_VARIANT.new().</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEVARIANT.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEPARAM.rb: test method name should not be</div><div class='add'>+	  duplicated.</div><div class='add'>+</div><div class='add'>+Sat Mar 11 14:24:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: a clarification patch from David Lutterkort</div><div class='add'>+	  &lt;dlutter at redhat.com&gt;.  [ruby-core:7508]</div><div class='add'>+</div><div class='add'>+Sun Mar  5 18:40:58 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: do not repeat command options.</div><div class='add'>+</div><div class='add'>+Sun Mar  5 18:35:03 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (send_request_with_body): #content_type never</div><div class='add'>+	  return false, use #main_type instead. [ruby-core:07476]</div><div class='add'>+</div><div class='add'>+Sat Mar  4 15:26:40 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): fix symbol test.</div><div class='add'>+</div><div class='add'>+Sat Mar  4 01:08:07 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_paths.rb (RI::Paths): adding paths from rubygems</div><div class='add'>+	  directories.	a patch from Eric Hodel &lt;drbrain at segment7.net&gt;.</div><div class='add'>+	  [ruby-core:07423]</div><div class='add'>+</div><div class='add'>+Fri Mar  3 17:59:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_clear_cache_by_class): clearing wrong cache.</div><div class='add'>+</div><div class='add'>+Fri Mar  3 21:22:42 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils.cp_r): implement :remove_destination</div><div class='add'>+	  option.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: use :remove_destination to install extension libraries</div><div class='add'>+	  to avoid SEGV.  [ruby-dev:28417]</div><div class='add'>+</div><div class='add'>+Fri Mar  3 14:41:04 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/.cvsignore: ignore callback.h.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/.cvsignore: ignore eventids2table.c.</div><div class='add'>+</div><div class='add'>+	* ext/socket/.cvsignore: ignore constants.h.</div><div class='add'>+</div><div class='add'>+Thu Mar  2 18:58:18 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_fd_writable): should not re-schedule output</div><div class='add'>+	  from KILLED thread (must be error printing).</div><div class='add'>+</div><div class='add'>+Thu Mar  2 09:12:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten_bang): allow specifying recursion</div><div class='add'>+	  level.  [ruby-talk:182170]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_flatten): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar  2 08:02:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): a heap_slots may overflow.  a patch from Stefan</div><div class='add'>+	  Weil &lt;weil at mail.berlios.de&gt;.</div><div class='add'>+</div><div class='add'>+Wed Mar  1 17:13:37 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call): use separate cache for fcall/vcall</div><div class='add'>+	  invocation.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_FCALL, NODE_VCALL can call local</div><div class='add'>+	  functions.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_local): a new method to specify newly added</div><div class='add'>+	  visibility "local".</div><div class='add'>+</div><div class='add'>+	* eval.c (search_method): search for local methods which are</div><div class='add'>+	  visible only from the current class.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_local_methods): a method to list local methods.</div><div class='add'>+</div><div class='add'>+Thu Mar  2 17:54:45 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: commited magic for reducing RVALUE size on windows. (24-&gt;20byte)</div><div class='add'>+	  [ruby-core:7474]</div><div class='add'>+</div><div class='add'>+Thu Mar  2 14:12:26 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: align VALUE with sizeof(RVALUE) globally.</div><div class='add'>+	  (is_pointer_to_heap): check alignment out of loop.</div><div class='add'>+	  (id2ref): avoid collision between symbols and objects.</div><div class='add'>+	  (rb_obj_id): ditto.  moved from object.c.</div><div class='add'>+	  [ruby-talk:178364] [ruby-core:7305]</div><div class='add'>+</div><div class='add'>+Thu Mar  2 12:55:16 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (filetime_to_unixtime): should set tm_isdst to -1.</div><div class='add'>+	  stat() didn't treat daylight saving time property on WinNT.</div><div class='add'>+	  [ruby-talk:182100]</div><div class='add'>+</div><div class='add'>+Wed Mar  1 00:15:51 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (read_escape): could not handle /\^/.</div><div class='add'>+	  merged Mr. Ishizuka's lib/irb/ruby-lex.rb 's patch rev 1.29.</div><div class='add'>+	  [ruby-talk:181631] [ruby-dev:28404]</div><div class='add'>+</div><div class='add'>+Tue Feb 28 19:32:14 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): add BasicObject class as a top level</div><div class='add'>+	  BlankSlate class.</div><div class='add'>+</div><div class='add'>+Mon Feb 27 00:19:16 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (SYM2ID): should not cast to signed long.</div><div class='add'>+	  [ruby-core:07414]</div><div class='add'>+</div><div class='add'>+Fri Feb 24 20:21:38 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb (add_service_command): quote pathnames in the</div><div class='add'>+	  server's command line for space contained directory names.</div><div class='add'>+	  Thanks, arton. [ruby-dev:28386]</div><div class='add'>+</div><div class='add'>+Fri Feb 24 12:10:07 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: install *.exe.manifest and *.dll.manifest if exist.</div><div class='add'>+	  It's for VC++8.</div><div class='add'>+</div><div class='add'>+Fri Feb 24 11:17:45 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtInitialize): need to set a handler for VC++8.</div><div class='add'>+</div><div class='add'>+Thu Feb 23 22:39:59 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal</div><div class='add'>+	  memory manager cannot handle large memory block properly.</div><div class='add'>+	  ex: 10000.times { "" &lt;&lt; "." * 529671; GC.start } # crash</div><div class='add'>+	  [ruby-dev:28230]</div><div class='add'>+</div><div class='add'>+Thu Feb 23 13:23:03 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (SETUP_ARGS0): fixed memory corruption. [ruby-dev:28360]</div><div class='add'>+</div><div class='add'>+Wed Feb 22 21:16:55 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#each_filename): use split_names properly.</div><div class='add'>+</div><div class='add'>+Wed Feb 22 16:24:05 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cgi.rb: should support platforms which search</div><div class='add'>+	  library path from the interpreter's path.</div><div class='add'>+	  And, support test without install incidentally.</div><div class='add'>+</div><div class='add'>+Wed Feb 22 14:21:03 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignorm): x may not be a bignum.  [ruby-dev:28367]</div><div class='add'>+</div><div class='add'>+Wed Feb 22 09:22:40 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_alloc): add proper check for creation of a lambda</div><div class='add'>+	  without a block.</div><div class='add'>+</div><div class='add'>+Tue Feb 21 02:07:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arglist): should set command_start = Qtrue for</div><div class='add'>+	  command body.  [ruby-talk:180648]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 22:30:17 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: alias Config to RbConfig for compatibility.</div><div class='add'>+</div><div class='add'>+Mon Feb 20 18:21:41 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): flush before reopening a file.</div><div class='add'>+	  reported by Mathieu Bouchard.  [ruby-core:7396]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 17:29:50 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: generate RbConfig instead of Config.</div><div class='add'>+</div><div class='add'>+	* instruby.rb, rubytest.rb, runruby.rb, bcc32/Makefile.sub,</div><div class='add'>+	  ext/extmk.rb, ext/dl/extconf.rb, ext/iconv/charset_alias.rb,</div><div class='add'>+	  lib/mkmf.rb, lib/rdoc/ri/ri_paths.rb,</div><div class='add'>+	  lib/webrick/httpservlet/cgihandler.rb,</div><div class='add'>+	  test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb,</div><div class='add'>+	  test/ruby/envutil.rb, test/soap/calc/test_calc_cgi.rb,</div><div class='add'>+	  test/soap/header/test_authheader_cgi.rb, test/soap/ssl/test_ssl.rb,</div><div class='add'>+	  win32/mkexports.rb, win32/resource.rb: Use RbConfig instead of</div><div class='add'>+	  Config.</div><div class='add'>+</div><div class='add'>+Mon Feb 20 13:46:19 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb: should raise ENOENT if root entry does not exist,</div><div class='add'>+	  without opening it. [ruby-dev:28345]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 12:27:53 2006  Kent Sibilev  &lt;ksruby@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (Integer::gcd): small typo fix.</div><div class='add'>+	  [ruby-core:07395]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 10:03:59 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): Object should have been the lowest</div><div class='add'>+	  in const lookup precedence.  [ruby-dev:28343]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 09:17:11 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator): should not delegate "funcall".</div><div class='add'>+</div><div class='add'>+Mon Feb 20 09:13:42 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb (WEBrick::HTTPServlet::CGIHandler):</div><div class='add'>+	  qualify the access for Config constant.  [ruby-dev:28338]</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Resource::IN::A): qualify</div><div class='add'>+	  ClassValue.  [ruby-dev:28338]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 01:05:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (Integer::gcd): replaced by gcd4 in</div><div class='add'>+	  [ruby-core:07390].  [ruby-core:07377]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 00:57:02 2006  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h (OSSL_Debug): should not use __func__.</div><div class='add'>+	  [ruby-dev:28339]</div><div class='add'>+</div><div class='add'>+Mon Feb 20 00:13:49 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: add :ssl_verify_mode option.</div><div class='add'>+	  suggested by Will Glynn.</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: add :ssl_ca_cert option.</div><div class='add'>+</div><div class='add'>+Sun Feb 19 04:46:29 2006  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: initial value for block_unique must be 1.</div><div class='add'>+	  [ruby-talk:180420]</div><div class='add'>+</div><div class='add'>+Sat Feb 18 23:58:26 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb (Tracer::Tracer.add_filter): turn on tracer mode</div><div class='add'>+	  only when caller() level size is one.  [ruby-core:07389]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: need not to require "tracer".</div><div class='add'>+	  [ruby-core:07389]</div><div class='add'>+</div><div class='add'>+	* sample/rtags.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 18 21:16:27 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_eval): RDoc description updated.  a</div><div class='add'>+	  patch from Ozgur Murat Homurlu &lt;ozgurmurath at gmail.com&gt;.</div><div class='add'>+	  [ruby-core:07381]</div><div class='add'>+</div><div class='add'>+Sat Feb 18 01:01:17 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): skip ruby_wrapper in const search</div><div class='add'>+	  to give it lower priority (just above Object).  need not to</div><div class='add'>+	  change rb_const_defined_0() since it's only a precedence matter;</div><div class='add'>+	  they are defined anyway.</div><div class='add'>+</div><div class='add'>+Sat Feb 18 00:22:39 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tracer.rb: merged a minor clarification patch from Daniel</div><div class='add'>+	  Berger &lt;Daniel.Berger at qwest.com&gt;.  [ruby-core:07376]</div><div class='add'>+</div><div class='add'>+Fri Feb 17 17:30:20 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): simplified using rb_const_get_fallback().</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined): adopt to ev_const_get() using</div><div class='add'>+	  rb_const_defined_fallback().</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_fallback): new function to implement</div><div class='add'>+	  constant search.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_fallback): new function to</div><div class='add'>+	  implement constant definition check.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): adopt to new behavior.  constants</div><div class='add'>+	  are looked up in the order of: current class, super classes (but</div><div class='add'>+	  Object), lexically external classes/modules, and Object.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_0): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb 17 11:20:53 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): Float("1e") should fail. [ruby-core:7330]</div><div class='add'>+</div><div class='add'>+	* pack.c (EXTEND32): unpack("l") did not work where sizeof(long) != 4.</div><div class='add'>+	  [ruby-talk:180024]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): fixed integer overflow on template "w".</div><div class='add'>+	  [ruby-talk:180126]</div><div class='add'>+</div><div class='add'>+Fri Feb 17 09:39:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_wait_for): sleep should always sleep for</div><div class='add'>+	  specified amount of time.  [ruby-talk:180067]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 16:52:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_OP_ASGN1 should allow splat in its</div><div class='add'>+	  argument list.  [ruby-core:07366]</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): avoid unnecessary extra argument.</div><div class='add'>+	  [ruby-core:07366]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): honor visibility on OP_ASGN1 and</div><div class='add'>+	  OP_ASGN2. [ruby-core:07366]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 15:20:23 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_line): remove void control path.  [ruby-dev:28335]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 10:09:51 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under_i): should not pass self as an argument to</div><div class='add'>+	  the block for instance_eval.  [ruby-core:07364]</div><div class='add'>+</div><div class='add'>+Wed Feb 15 09:20:35 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_eval): should be no singleton classes for</div><div class='add'>+	  true, false, and nil.  [ruby-dev:28186]</div><div class='add'>+</div><div class='add'>+Tue Feb 14 20:26:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_each): return self if no block is</div><div class='add'>+	  given.  [yarv-dev:882]</div><div class='add'>+</div><div class='add'>+Tue Feb 14 18:48:33 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (DMETHOD_P): accessing wrong frame.  [ruby-dev:28181]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): preserve FRAME_DMETH flag.</div><div class='add'>+</div><div class='add'>+Tue Feb 14 15:15:22 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: suppress warning on test/zlib. [ruby-dev:28323]</div><div class='add'>+</div><div class='add'>+Tue Feb 14 13:47:22 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_utime): drop read-only attribute before</div><div class='add'>+	  changing file time.</div><div class='add'>+</div><div class='add'>+Tue Feb 14 13:38:01 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): should define HAVE_LONG_LONG with</div><div class='add'>+	  VC++8.</div><div class='add'>+</div><div class='add'>+Tue Feb 14 11:42:38 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (search_time_t): support non 32bit time_t environments.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): VC++8 has ``long long'' type.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.h): VC++8's time_t is 64bit value.</div><div class='add'>+</div><div class='add'>+Mon Feb 13 18:01:52 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (copy_node_scope): remove duplicated semicolons at end.</div><div class='add'>+	  a patch from KIMURA Koichi &lt;kimura.koichi at canon.co.jp&gt;.</div><div class='add'>+	  [ruby-dev:28332]</div><div class='add'>+</div><div class='add'>+	* eval.c (VIS_MODE): remove unnecessary argument.</div><div class='add'>+	  [ruby-dev:28332]</div><div class='add'>+</div><div class='add'>+Mon Feb 13 13:49:48 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_parse_string): mention "regexp" in a error</div><div class='add'>+	  message.  a patch from Mauricio Fernandez &lt;mfp at acm.org&gt;</div><div class='add'>+	  [ruby-core:07340]</div><div class='add'>+</div><div class='add'>+Mon Feb 13 00:01:32 2006  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: Version 4.0.1</div><div class='add'>+</div><div class='add'>+	* regparse.c (onig_free_shared_cclass_table): fix memory leaks.</div><div class='add'>+</div><div class='add'>+	* regcomp.c (optimize_node_left): change from IS_POSIXLINE() to IS_MULTILINE().</div><div class='add'>+</div><div class='add'>+	* regint.h: rename ANCHOR_ANYCHAR_STAR_PL to ANCHOR_ANYCHAR_STAR_ML.</div><div class='add'>+</div><div class='add'>+	* regparse.h: ditto.</div><div class='add'>+</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 21:57:29 2006  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE.create_guid.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 11 01:57:44 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_autoload): check if ruby_cbase is nil (during</div><div class='add'>+	  instance_eval for objects cannot have singleton classes,</div><div class='add'>+	  e.g. fixnums and symbols).  [ruby-dev:28178]</div><div class='add'>+</div><div class='add'>+Fri Feb 10 12:31:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should support NODE_ZSUPER in NODE_ITER.</div><div class='add'>+	  [ruby-dev:28326]</div><div class='add'>+</div><div class='add'>+	* eval.c (ZSUPER_ARGS): support macro.</div><div class='add'>+</div><div class='add'>+Wed Feb  8 10:26:06 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): turn on during_gc while</div><div class='add'>+	  invoking finalizers.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_finalize_deferred): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb  7 23:03:13 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: should not access ruby objects in finalizer.</div><div class='add'>+	  [ruby-dev:28286]</div><div class='add'>+</div><div class='add'>+Tue Feb  7 18:42:00 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_write_error2): use fwrite(3) if rb_stderr is not</div><div class='add'>+	  updated or is already freed.  [ruby-dev:28313]</div><div class='add'>+</div><div class='add'>+Mon Feb  6 16:02:51 2006  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_thread_flock): ERROR_NOT_LOCKED is not an error on Cygwin.</div><div class='add'>+	  In such situation, flock() should return 0.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 14:36:29 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_line): include the class name of a surrounding</div><div class='add'>+	  method in error position description.</div><div class='add'>+</div><div class='add'>+Mon Feb  6 00:14:57 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_find_index): a new method Enumerable#find_index.</div><div class='add'>+	  [ruby-talk:178495]</div><div class='add'>+</div><div class='add'>+Sun Feb  5 23:29:31 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (struct RStruct): embed 3 or less elements structs.</div><div class='add'>+	  (RSTRUCT_LEN): defined for accessing struct members.</div><div class='add'>+	  (RSTRUCT_PTR): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c: use RSTRUCT_LEN and RSTRUCT_PTR.</div><div class='add'>+	  (struct_alloc): allocate small structs in embedded format.</div><div class='add'>+	  (rb_struct_init_copy): ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children): use RSTRUCT_LEN and RSTRUCT_PTR.</div><div class='add'>+	  (obj_free): ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): use RSTRUCT_LEN and RSTRUCT_PTR.</div><div class='add'>+</div><div class='add'>+Sun Feb  5 21:01:49 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_to_s): removed workaround for radix 2. Historically,</div><div class='add'>+	  rb_fix2str could only handle radix 8, 10, 16. (Rev1.37) But for now,</div><div class='add'>+	  it can handle radix 2..36. [ruby-Bugs#3438] [ruby-core:7300]</div><div class='add'>+</div><div class='add'>+Sun Feb  5 18:49:00 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (add_field, get_fields): keep 1.8.2</div><div class='add'>+	  compatibility.  This patch is contributed by Rob Pitt.</div><div class='add'>+</div><div class='add'>+Sun Feb  5 16:33:50 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): Kernel#sub! was removed on HEAD.</div><div class='add'>+</div><div class='add'>+Sun Feb  5 14:26:54 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: should return default value if name is not found.</div><div class='add'>+	  [ruby-core:7304]</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb: should raise PStore::Error if not in transaction.</div><div class='add'>+</div><div class='add'>+Sat Feb  4 22:51:43 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: apply the FreeBSD getcontext/setcontext workaround</div><div class='add'>+	  only before FreeBSD 7-CURRENT.</div><div class='add'>+</div><div class='add'>+Sat Feb  4 21:10:06 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (LK_ERR): ERROR_NOT_LOCKED is not an error.</div><div class='add'>+	  In such situation, flock() should return 0.</div><div class='add'>+</div><div class='add'>+Sat Feb  4 15:52:56 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_to_s): (2**32).to_s(2) fails with exception where</div><div class='add'>+	  sizeof(int) == 4 &lt; sizeof(long). [ruby-core:7300]</div><div class='add'>+</div><div class='add'>+Sat Feb  4 15:02:05 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: merge Oniguruma 4.0.0  [ruby-dev:28290]</div><div class='add'>+</div><div class='add'>+Fri Feb  3 19:25:53 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: fixed prototype.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: defined symbol ID as global variable as others.</div><div class='add'>+</div><div class='add'>+Fri Feb  3 17:57:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: unify ruby_class (for method definition) and ruby_cbase</div><div class='add'>+	  (for constant reference).</div><div class='add'>+</div><div class='add'>+Fri Feb  3 15:02:10 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_move_tokens): should reset p-&gt;cursor or etc</div><div class='add'>+	  even if skip == 0. This causes buffer overrun.</div><div class='add'>+	  (ex: YAML.load('--- "..' + '\x82\xA0' * 511 + '"'))</div><div class='add'>+</div><div class='add'>+Fri Feb  3 00:01:31 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emitter_write): should not set '\0' on</div><div class='add'>+	  emitter's marker. if marker points to the end of buffer, this is</div><div class='add'>+	  buffer overrun. (ex: YAML.dump("." * 12288))</div><div class='add'>+</div><div class='add'>+Thu Feb  2 17:13:01 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser#get_tk): added</div><div class='add'>+	  support of :'string' style Symbol.</div><div class='add'>+</div><div class='add'>+Thu Feb  2 16:01:24 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): use TMP_ALLOC() instead of allocating</div><div class='add'>+	  a temporary array object.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): need not to protect $SAFE value.</div><div class='add'>+	  [ruby-core:07177]</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): change NameError to direct subclass of</div><div class='add'>+	  Exception so that default rescue do not handle it silently.</div><div class='add'>+</div><div class='add'>+Thu Feb  2 14:45:53 2006  Ville Mattila  &lt;ville.mattila@stonesoft.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: The isinf is not recognized by autoconf</div><div class='add'>+	  library guesser on solaris 10. [ruby-core:7138]</div><div class='add'>+</div><div class='add'>+Wed Feb  1 22:01:47 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, hash.c (ruby_setenv): use setenv(3) and unsetenv(3)</div><div class='add'>+	  where they are supported. modifying environ variable seems to</div><div class='add'>+	  segfault solaris 10. [ruby-core:7276] [ruby-dev:28270]</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): if use setenv(3), environ space cannot be used</div><div class='add'>+	  for altering argv[0].</div><div class='add'>+</div><div class='add'>+Tue Jan 31 14:46:28 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_select): update RDoc description.</div><div class='add'>+	  [ruby-core:7254]</div><div class='add'>+</div><div class='add'>+Tue Jan 31 11:58:51 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add MultiTkIp#eval and bg_eval.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: TkNamespace#eval was enbugged at the</div><div class='add'>+	  last commit. Now it will return a proper object.</div><div class='add'>+</div><div class='add'>+Tue Jan 31 08:07:02 2006  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_upto): return an enumerator if no block is</div><div class='add'>+	  attached to the method.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_downto): ditto.</div><div class='add'>+</div><div class='add'>+	* numeric.c (int_dotimes): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_first): new method Enumerable#first to take first n</div><div class='add'>+	  elements from an enumerable.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_group_by): new method Enumerable#group_by that</div><div class='add'>+	  groups enumerable values according to their block values.</div><div class='add'>+</div><div class='add'>+Tue Jan 31 00:08:22 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_resolver_transfer): workaround for SEGV.</div><div class='add'>+	  ex: ruby -ryaml -e 'YAML.load("!map:B {}")' [ruby-core:7217]</div><div class='add'>+</div><div class='add'>+Sat Jan 28 07:49:30 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb: support "a:0:33" style caller[-1]. In this case</div><div class='add'>+	  file name is "a:0". I don't know this really happens though...</div><div class='add'>+	  [ruby-Bugs:3344]</div><div class='add'>+</div><div class='add'>+Thu Jan 26 15:55:52 2006  Yukihiro Matsumoto  &lt;matz@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'>+</div><div class='add'>+Wed Jan 25 22:29:04 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, dln.c, file.c, intern.h, missing.h (eaccess): use</div><div class='add'>+	  system routine if provided.  fixed: [ruby-core:07195]</div><div class='add'>+</div><div class='add'>+Sun Jan 22 23:27:13 2006  Go Noguchi  &lt;gonoguti@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (process_args): ignore arguments after</div><div class='add'>+	  '--' so that test scripts can handle them.  fixed: [ruby-dev:28258]</div><div class='add'>+</div><div class='add'>+Sun Jan 22 22:09:52 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (POST_GETCONTEXT): define separately from PRE_GETCONTEXT on</div><div class='add'>+	  IA64 to avoid reusing variable address.</div><div class='add'>+</div><div class='add'>+Sun Jan 22 20:03:35 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_setjmp): define PRE_GETCONTEXT and POST_GETCONTEXT</div><div class='add'>+	  instead of FUNCTION_CALL_MAY_RETURN_TWICE.</div><div class='add'>+	  define PRE_GETCONTEXT to clear carry flag for workaround of</div><div class='add'>+	  FreeBSD/i386 getcontext/setcontext bug.</div><div class='add'>+	  [ruby-dev:28263]</div><div class='add'>+</div><div class='add'>+Thu Jan 19 22:19:18 2006  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mv): should remove file after copying.</div><div class='add'>+	  [ruby-dev:28223]</div><div class='add'>+</div><div class='add'>+Wed Jan 18 23:37:06 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): don't clobber %l7 of SPARC</div><div class='add'>+	  if enable-shared.</div><div class='add'>+	  (ruby_setjmp): call FUNCTION_CALL_MAY_RETURN_TWICE after getcontext</div><div class='add'>+	  too.</div><div class='add'>+	  reported by Pav Lucistnik and Marius Strobl.</div><div class='add'>+	  http://lists.freebsd.org/pipermail/freebsd-sparc64/2006-January/003739.html</div><div class='add'>+</div><div class='add'>+Tue Jan 17 23:59:56 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_const_get, rb_mod_const_defined): added optional</div><div class='add'>+	  flag to search ancestors, which is defaulted to true.</div><div class='add'>+	  fixed: [ruby-talk:175899]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_method_defined): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 17 11:31:47 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak (MAKE): workaround for nmake 8.</div><div class='add'>+</div><div class='add'>+Tue Jan 17 11:06:19 2006  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: invoke .bat via shell. workaround for nmake 8.</div><div class='add'>+</div><div class='add'>+Mon Jan 16 10:13:38 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emit_seq, syck_emit_map, syck_emit_item):</div><div class='add'>+	  should output complex key mark even if map's key is empty seq/map.</div><div class='add'>+	  [ruby-core:7129]</div><div class='add'>+</div><div class='add'>+Sat Jan 14 03:38:54 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_chmod): avoid warning where sizeof(int) !=</div><div class='add'>+	  sizeof(void*).</div><div class='add'>+</div><div class='add'>+Fri Jan 13 19:26:15 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb:</div><div class='add'>+	    - properly quote bare element attributes</div><div class='add'>+	    - terminates dangling elements (e.g. &lt;img&gt;, &lt;br&gt;, &lt;link&gt;, etc)</div><div class='add'>+	    - converts "CVS" to the more HTML-friendly acronym element</div><div class='add'>+	    - adds missing type attributes to style elements</div><div class='add'>+</div><div class='add'>+	  based on Paul Duncan's patch &lt;pabs@pablotron.org&gt; [ruby-core:7028]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: ditto.</div><div class='add'>+	* lib/rdoc/generators/template/html/hefss.rb: ditto.</div><div class='add'>+	* lib/rdoc/generators/template/html/html.rb: ditto.</div><div class='add'>+	* lib/rdoc/generators/template/html/kilmer.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan 12 11:53:08 2006  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkballoonhelp.rb: [bug fix] couldn't add to a widget</div><div class='add'>+	  which is constructed with TkComposite module.</div><div class='add'>+	  [new feature] support 'command' option which is called just before</div><div class='add'>+	  popping up the balloon help.</div><div class='add'>+</div><div class='add'>+Wed Jan 11 00:12:29 2006  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Compiler): add instance variable @insert_cmd to</div><div class='add'>+	  change &lt;%='s behavior.</div><div class='add'>+</div><div class='add'>+Tue Jan 10 19:42:33 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): mark ruby_current_node.</div><div class='add'>+	  if an exception is raised in a finalizer written in C called by</div><div class='add'>+	  rb_gc_call_finalizer_at_exit, ruby_set_current_source may use</div><div class='add'>+	  collected ruby_current_node and mark_source_filename may corrupt</div><div class='add'>+	  memory.</div><div class='add'>+</div><div class='add'>+Tue Jan 10 13:30:34 2006  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_resolver_transfer): should be able to load</div><div class='add'>+	  !ruby/object:Bignum syntax 1.8.3 dumped. [ruby-core:6159]</div><div class='add'>+</div><div class='add'>+Tue Jan 10 12:47:41 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (Fixnum): Bignum could not be loaded in</div><div class='add'>+	  ruby 1.8.3/1.8.4. [ruby-core:6115]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (Numeric): Subclass of Numeric could not</div><div class='add'>+	  be dumped properly. [ruby-core:7047]</div><div class='add'>+</div><div class='add'>+Tue Jan 10 12:00:48 2006  Aaron Schrab  &lt;aaron @nospam@ schrab.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (Symbol#yaml_new): YAML loading of quoted</div><div class='add'>+	  Symbols broken. [ruby-Bugs:2535]</div><div class='add'>+</div><div class='add'>+Tue Jan 10 07:26:52 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_stress): renamed from always_gc and enabled by default.</div><div class='add'>+	  (gc_stress_get): new function for GC.stress.</div><div class='add'>+	  (gc_stress_set): new function for GC.stress=.</div><div class='add'>+</div><div class='add'>+Mon Jan  9 19:58:56 2006  arton  &lt;artonx@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/extconf.rb: zlib compiled DLL version 1.2.3 distributed by</div><div class='add'>+	  http://www.zlib.net/ has zdll.lib. [ruby-dev:28209]</div><div class='add'>+</div><div class='add'>+Mon Jan  9 14:25:00 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (OPTFLAGS): I have experienced trouble on y- flag,</div><div class='add'>+	  (VisualC++6) so use -O2b2xg- if  $(MSC_VER) &lt; 1400. [ruby-core:7040]</div><div class='add'>+</div><div class='add'>+Mon Jan  9 14:25:00 2006  Kero van Gelder  &lt;rubyforge @nospam@ kero.tmfweb.nl&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb: fixed typo. [ruby-core:7075]</div><div class='add'>+</div><div class='add'>+Sun Jan  8 14:15:27 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (GCC_VERSION_BEFORE): check __INTEL_COMPILER.</div><div class='add'>+	  Intel C++ Compiler defines __GNUC__.</div><div class='add'>+	  http://www.intel.com/software/products/compilers/clin/docs/ug_cpp/lin1077.htm</div><div class='add'>+</div><div class='add'>+Sat Jan  7 15:40:07 2006  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (singleton): get rid of segfault on syntax error.</div><div class='add'>+	  fixed: [ruby-core:07070]</div><div class='add'>+</div><div class='add'>+Sat Jan  7 06:24:18 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_fd_isset): compare the result of FD_ISSET with 0 to</div><div class='add'>+	  avoid FreeBSD bug.  FreeBSD defines FD_ISSET as just a bitmap of</div><div class='add'>+	  unsigned long.  So returning the value from rb_fd_isset discards</div><div class='add'>+	  upper 32bits on LP64 environment.</div><div class='add'>+	  http://www.freebsd.org/cgi/query-pr.cgi?pr=ia64/91421</div><div class='add'>+</div><div class='add'>+Fri Jan  6 02:20:18 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: don't force getcontext on IA64.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_setjmp): add an argument for just before getcontext.</div><div class='add'>+	  (THREAD_SAVE_CONTEXT): call rb_thread_save_context just</div><div class='add'>+	  before getcontext.</div><div class='add'>+	  [ruby-dev:28205]</div><div class='add'>+</div><div class='add'>+Sun Jan  1 15:28:46 2006  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h (isinf): avoid macro expansion</div><div class='add'>+	  "extern int isinf(double);" to</div><div class='add'>+	  "extern int ((sizeof(double)==sizeof(float))?_Isinff(double):_Isinf(double));" on</div><div class='add'>+	  HP-UX.</div><div class='add'>+</div><div class='add'>+Sun Jan  1 14:42:54 2006  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_seekdir): should not segfault even if passed</div><div class='add'>+	  the location which rb_w32_telldir didn't return. (and should change</div><div class='add'>+	  `bits' position) [ruby-core:7035]</div><div class='add'>+</div><div class='add'>+	* win32/dir.h: ditto. (stores `loc' instead of `bitpos')</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: added.</div><div class='add'>+</div><div class='add'>+Sat Dec 31 22:57:00 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context): should not recycle scope object used</div><div class='add'>+	  in a thread.  fixed: [ruby-dev:28177]</div><div class='add'>+</div><div class='add'>+Sat Dec 31 19:50:38 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: attribute name was truncated with Rev1.64.</div><div class='add'>+</div><div class='add'>+Sat Dec 31 11:53:16 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: (Generator#initialize): should kill @loop_thread</div><div class='add'>+	  before starting new thread. (occurs when called via Generator#rewind)</div><div class='add'>+	  [ruby-dev:28184]</div><div class='add'>+</div><div class='add'>+Fri Dec 30 18:22:42 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): mark objects referred from aborting threads.</div><div class='add'>+	  [ruby-dev:28190]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: VC++8 support.</div><div class='add'>+</div><div class='add'>+Fri Dec 30 15:17:35 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb (Generator#initialize): ensured to stop @loop_thread.</div><div class='add'>+	  Mr. Tanaka pointed out one Thread.pass is not enough. [ruby-dev:28185]</div><div class='add'>+</div><div class='add'>+Fri Dec 30 12:20:57 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb (Generator#initialize): fixed dead lock. this occurred</div><div class='add'>+	  when end? was called before @loop_thread was stopped. [ruby-core:7029]</div><div class='add'>+</div><div class='add'>+Fri Dec 30 01:04:52 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: should work with another thread. (more robust code)</div><div class='add'>+	  [ruby-dev:28177]</div><div class='add'>+</div><div class='add'>+Thu Dec 29 23:59:37 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_gc_mark_threads): keep unmarked threads which won't wake</div><div class='add'>+	  up alone, and mark threads in the loading table.  [ruby-dev:28154]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_gc_abort_threads), gc.c (gc_sweep): kill unmarked</div><div class='add'>+	  threads.  [ruby-dev:28172]</div><div class='add'>+</div><div class='add'>+Thu Dec 29 17:02:07 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil.rubybin): search "ruby" instead of</div><div class='add'>+	  "miniruby".  [ruby-dev:28140]</div><div class='add'>+</div><div class='add'>+Thu Dec 29 14:35:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): should save safe_level in the</div><div class='add'>+	  proc object.  [ruby-dev:28146]</div><div class='add'>+</div><div class='add'>+Thu Dec 29 11:22:34 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: reimplemented Generator class with Thread instead of</div><div class='add'>+	  callcc, in order to fix memory leak. [ruby-dev:28142]</div><div class='add'>+</div><div class='add'>+Wed Dec 28 14:10:05 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ia64.s: remove .pred.safe_across_calls directive.</div><div class='add'>+	  reported by WATANABE Tetsuya.  [ruby-dev:28141]</div><div class='add'>+</div><div class='add'>+Wed Dec 28 01:32:39 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (struct thread): add bstr_max.</div><div class='add'>+	  (rb_thread_save_context): use realloc instead of REALLOC_N</div><div class='add'>+	  to avoid GC.</div><div class='add'>+</div><div class='add'>+Tue Dec 27 23:59:53 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (CompletingHash#match): fix for 1.9.</div><div class='add'>+</div><div class='add'>+Tue Dec 27 16:59:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb (DRbService::self.ext_service): increase</div><div class='add'>+	  timeout limit.  a patch from Kazuhiro NISHIYAMA</div><div class='add'>+	  &lt;zn at mbf.nifty.com&gt;. [ruby-dev:28132]</div><div class='add'>+</div><div class='add'>+Tue Dec 27 14:17:55 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: define IA64 for portability.  (HP aC++/ANSI C doesn't</div><div class='add'>+	  define __ia64__.)</div><div class='add'>+	  don't check libunwind stuff.</div><div class='add'>+	  check __libc_ia64_register_backing_store_base.</div><div class='add'>+</div><div class='add'>+	* defines.h: declare rb_ia64_bsp and rb_ia64_flushrs.</div><div class='add'>+	  (flush_register_windows): call rb_ia64_flushrs on IA64.</div><div class='add'>+</div><div class='add'>+	* ia64.s: new file for IA64.</div><div class='add'>+	  it is separated from C program files because</div><div class='add'>+	  Intel C++ Compiler for IA64 doesn't support inline assembly.</div><div class='add'>+</div><div class='add'>+	* common.mk (ia64.$(OBJEXT)): new target.</div><div class='add'>+</div><div class='add'>+	* ruby.h (RUBY_INIT_STACK): defined.</div><div class='add'>+	  (ruby_init_stack): declared for RUBY_INIT_STACK.</div><div class='add'>+</div><div class='add'>+	* main.c (main): precedes RUBY_INIT_STACK before ruby_init.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_register_stack_start): new global variable on IA64.</div><div class='add'>+	  (garbage_collect): simplify register stack marking code.</div><div class='add'>+	  don't use libunwind.</div><div class='add'>+	  (Init_stack): initialize rb_gc_register_stack_start.</div><div class='add'>+	  (ruby_init_stack): new function for RUBY_INIT_STACK.</div><div class='add'>+</div><div class='add'>+	* eval.c (struct thread): add bstr_pos member for original position of</div><div class='add'>+	  register stack.</div><div class='add'>+	  (rb_thread_save_context): simplify register stack saving code.</div><div class='add'>+	  don't use libunwind.</div><div class='add'>+	  (rb_thread_restore_context_0): new function.  moved from</div><div class='add'>+	  rb_thread_restore_context except the stack position checking code.</div><div class='add'>+	  don't use libunwind for IA64 register stack.</div><div class='add'>+	  (register_stack_extend): new function.</div><div class='add'>+	  (stack_extend): make it self-recursive with</div><div class='add'>+	  the stack position checking code in old rb_thread_restore_context.</div><div class='add'>+	  (rb_thread_restore_context): just call stack_extend.</div><div class='add'>+	  (flush_register_windows): removed.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:28127]</div><div class='add'>+</div><div class='add'>+Tue Dec 27 14:09:39 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: new method Process.exec. [ruby-dev:28107]</div><div class='add'>+</div><div class='add'>+Tue Dec 27 08:22:15 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket#post_connection_check):</div><div class='add'>+	  treat wildcard character in commonName. [ruby-dev:28121]</div><div class='add'>+</div><div class='add'>+Mon Dec 26 08:50:36 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get): fixed a bug in constant reference during</div><div class='add'>+	  instance_eval.  [yarv-dev:707]</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_defined): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::add_domain_type): typo fixed.  a patch from</div><div class='add'>+	  Joel VanderWerf &lt;vjoel at path.berkeley.edu&gt;.</div><div class='add'>+	  [ruby-talk:165285] [ruby-core:6995]</div><div class='add'>+</div><div class='add'>+Fri Dec 23 10:30:23 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.c (ULL): support AIX C.  a patch from</div><div class='add'>+	  Kailden &lt;kailden at gmail.com&gt;.  [ruby-core:06984]</div><div class='add'>+</div><div class='add'>+Wed Dec 21 16:47:35 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (w32_io_info): should return handle because FileIndex is</div><div class='add'>+	  valid only while file is open. [ruby-dev:28088]</div><div class='add'>+</div><div class='add'>+Wed Dec 21 12:12:21 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb (test_kernel_open): use</div><div class='add'>+	  File.identical?.</div><div class='add'>+	  [ruby-talk:171804]</div><div class='add'>+</div><div class='add'>+Tue Dec 20 22:41:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval_under_i): evaluate source in caller's frame.</div><div class='add'>+	  [ruby-dev:28076]</div><div class='add'>+</div><div class='add'>+Tue Dec 20 12:53:23 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_reset): to ensure compatibility</div><div class='add'>+	  with previous Ruby versions, documents are no longer headless.</div><div class='add'>+</div><div class='add'>+Tue Dec 20 12:33:01 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_node_transform): ruby object holding</div><div class='add'>+	  explicitly freed SyckNode caused SEGV. [ruby-dev:28067]</div><div class='add'>+</div><div class='add'>+	... I think syck GC problem was solved now!</div><div class='add'>+</div><div class='add'>+Tue Dec 20 01:46:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_backquote): fix a GC problem on</div><div class='add'>+	  IA64 with gcc 4.0.3 20051216 (prerelease) -O3.</div><div class='add'>+</div><div class='add'>+Mon Dec 19 23:32:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (XCFLAGS): separated as well as win32/Makefile.sub.</div><div class='add'>+</div><div class='add'>+	* main.c (always_gc): dllimport is required for VC to import a DLL</div><div class='add'>+	  symbol.  fixed: [ruby-dev:28051]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_symname_p): fixed wrong validation.  [ruby-dev:28047]</div><div class='add'>+</div><div class='add'>+Mon Dec 19 23:09:24 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c: uses malloc instead of xmalloc to avoid GC. syck uses st_insert</div><div class='add'>+	  in gram.c to insert node from rb_syck_bad_anchor_handler into</div><div class='add'>+	  SyckParser's hash table. if GC occurs in st_insert, it's not under</div><div class='add'>+	  SyckParser's mark system yet. so RString can be released wrongly.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is</div><div class='add'>+	  NULL or not before S_FREE.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_assign_io): rb_check_string_type can</div><div class='add'>+	  return new RString. if so, it becomes unreachable from GC after</div><div class='add'>+	  returns syck_parser_assign_io, and can be freed by GC. (dangling</div><div class='add'>+	  in syck io system) so extends its life time till syck_parse is called.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_s_alloc): always allocates bonus,</div><div class='add'>+	  so no need to check if NULL, and "volatile VALUE hash"</div><div class='add'>+	  is not needed. (bonus-&gt;port was not protected in syck_emitter_reset)</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_mark_parser): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_load): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_load_documents): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_s_alloc): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_mark_emitter): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_reset): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_scalar_value_set): "should set newly</div><div class='add'>+	  allocated memory instead of RString's internal storage" stuff again.</div><div class='add'>+	  by this, should call syck_free_node instead of rb_syck_free_node.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_node_type_id_set): ditto.</div><div class='add'>+</div><div class='add'>+	... I believe syck GC problem was solved by this.</div><div class='add'>+</div><div class='add'>+Mon Dec 19 12:20:59 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): activate only</div><div class='add'>+	  before gcc 4.0.3 on SPARC and IA64.</div><div class='add'>+</div><div class='add'>+Mon Dec 19 11:37:47 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: sorry, I reverted my "should set newly</div><div class='add'>+	  allocated memory instead of RString's internal storage" stuff.</div><div class='add'>+	  node allocated in rubyext.c seems to be freed by rb_syck_free_node</div><div class='add'>+	  not syck_free_node, and it won't free data.str-&gt;ptr and type_id.</div><div class='add'>+</div><div class='add'>+	 (I still think this is unsafe because RString(foo)-&gt;ptr becomes</div><div class='add'>+	  dangling pointer when RString is modified or freed, but anyway</div><div class='add'>+	  I misunderstood, so go back to original code for now)</div><div class='add'>+</div><div class='add'>+Sat Dec 17 21:50:41 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_reset): should initialize</div><div class='add'>+	  emitter-&gt;bonus-&gt;oid. otherwise rb_gc_mark crashes.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_mark_parser): should mark anchor nodes</div><div class='add'>+	  because they hold ruby objects. (ie: rb_syck_bad_anchor_handler)</div><div class='add'>+</div><div class='add'>+Sat Dec 17 11:00:17 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_compile): avoid potential memory</div><div class='add'>+	  leak.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_set_ivars): avoid potential memory</div><div class='add'>+	  leak by explicit symbol allocation.</div><div class='add'>+</div><div class='add'>+Sat Dec 17 03:57:01 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rshift): fix a GC problem on</div><div class='add'>+	  IA64 with gcc 4.0.3 20051216 (prerelease).</div><div class='add'>+</div><div class='add'>+Sat Dec 17 03:30:23 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (bmcall): fix a GC problem by tail call on</div><div class='add'>+	  IA64 with gcc 4.0.3 20051216 (prerelease).</div><div class='add'>+</div><div class='add'>+Fri Dec 16 17:53:45 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_compile): fixed memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: should protect global variable from GC.</div><div class='add'>+</div><div class='add'>+Fri Dec 16 11:44:43 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_resolver_tagurize): fixed memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_node_type_id_set): should set newly</div><div class='add'>+	  allocated memory instead of RString's internal storage.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_scalar_value_set): ditto.</div><div class='add'>+</div><div class='add'>+	... these fixes won't fix [ruby-dev:27839]. more work is needed.</div><div class='add'>+</div><div class='add'>+Fri Dec 16 04:38:55 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::method_missing): should delegate</div><div class='add'>+	  block as well.</div><div class='add'>+</div><div class='add'>+Thu Dec 15 19:57:12 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::MorphingBody): fix criteria to</div><div class='add'>+	  use Tempfile.  A fix from Zev Blut &lt;rubyzbibd at ubit.com&gt;.</div><div class='add'>+	  [ruby-core:06076]</div><div class='add'>+</div><div class='add'>+	* string.c: remove global functions work on $_.</div><div class='add'>+</div><div class='add'>+Thu Dec 15 12:35:14 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb: merged RDoc patch from Eric Hodel &lt;drbrain at</div><div class='add'>+	  segment7.net&gt;.  [ruby-core:06894]</div><div class='add'>+</div><div class='add'>+Thu Dec 15 01:33:31 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): fix a GC problem by tail call on</div><div class='add'>+	  x86_64 with gcc 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)</div><div class='add'>+</div><div class='add'>+Wed Dec 14 23:50:20 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (find_class_comment): fix for class</div><div class='add'>+	  document with prototypes.  [ruby-core:06863]</div><div class='add'>+</div><div class='add'>+Wed Dec 14 23:39:53 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (has_magic): glob names contain alphabets to enable case fold</div><div class='add'>+	  search.  [ruby-dev:27735]</div><div class='add'>+</div><div class='add'>+	* dir.c (Init_Dir): FNM_SYSCASE which is default case fold flag.</div><div class='add'>+	  [ruby-dev:23296]</div><div class='add'>+</div><div class='add'>+Wed Dec 14 12:01:26 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): fix a GC problem for reading a bignum on</div><div class='add'>+	  IA64 with gcc 3.3.5 (Debian 1:3.3.5-13).</div><div class='add'>+</div><div class='add'>+Tue Dec 13 12:23:47 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_regcomp): fix a GC problem on x86_64 with</div><div class='add'>+	  gcc 3.3.5 (Debian 1:3.3.5-13).</div><div class='add'>+</div><div class='add'>+Tue Dec 13 01:44:16 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_diff): fix a GC problem on IA64 with</div><div class='add'>+	  gcc 3.3.5 (Debian 1:3.3.5-13).</div><div class='add'>+	  When rb_ary_push is called, there was no register which contains</div><div class='add'>+	  `hash' but `&amp;RHASH(hash)-&gt;tbl' instead.</div><div class='add'>+</div><div class='add'>+Tue Dec 13 00:08:09 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): fix a GC problem.</div><div class='add'>+	  [ruby-dev:28001]</div><div class='add'>+</div><div class='add'>+Mon Dec 12 15:51:22 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ssl.rb (test_parallel): call GC.start to close</div><div class='add'>+	  unused files. [ruby-dev:27981]</div><div class='add'>+</div><div class='add'>+Mon Dec 12 09:58:09 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_cover): new method Range#cover? added.  the</div><div class='add'>+	  method name might be changed.  thanks to takano32 at</div><div class='add'>+	  http://www.rubyist.net/~matz/20051210.html#c08 for name</div><div class='add'>+	  suggestion.  [ruby-talk:167182]</div><div class='add'>+</div><div class='add'>+Mon Dec 12 00:33:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_s_digest): add volatile to</div><div class='add'>+	  protect temporary context object.  [ruby-dev:27979]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (Init_iconv): rb_gc_register_address() should</div><div class='add'>+	  be called before actual variable initialization.</div><div class='add'>+	  [ruby-dev:27986]</div><div class='add'>+</div><div class='add'>+Sun Dec 11 23:54:07 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/*: update to support libraries in ActiveTcl8.4.12.0</div><div class='add'>+	  (see ext/tk/ChangeLog.tkextlib).</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/scrollframe.rb: add a new sample.</div><div class='add'>+</div><div class='add'>+Sun Dec 11 22:07:58 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb (test_remote_array_and_hash): pseudo remote</div><div class='add'>+	  objects are protected against GC. [ruby-dev:27911]</div><div class='add'>+</div><div class='add'>+Sat Dec 10 01:06:06 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb: add Matrix#determinant_e, Matrix#rank_e.</div><div class='add'>+	  [ruby-dev:27820] and related thread.</div><div class='add'>+</div><div class='add'>+Sat Dec 10 00:31:42 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (calling_scope_t): gave names to magic numbers for rb_call().</div><div class='add'>+	  [ruby-dev:27978]</div><div class='add'>+</div><div class='add'>+Fri Dec  9 23:31:02 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encoding.rb (encoding=): give priority to particular</div><div class='add'>+	  conversion to iconv.  [ruby-core:06520]</div><div class='add'>+</div><div class='add'>+Fri Dec  9 23:16:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_include): return false unless included in numeric</div><div class='add'>+	  range.  fixed: [ruby-dev:27975]</div><div class='add'>+</div><div class='add'>+Thu Dec  8 02:07:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): adjust invoking class for module method.</div><div class='add'>+	  [ruby-dev:27964]</div><div class='add'>+</div><div class='add'>+Thu Dec  8 00:40:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (call_trace_func): klass parameter should be a</div><div class='add'>+	  class/module that defines calling method.  [ruby-talk:169307]</div><div class='add'>+</div><div class='add'>+Wed Dec  7 17:10:27 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): [ruby-dev:27967]</div><div class='add'>+</div><div class='add'>+Wed Dec  7 16:39:18 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_include): use discrete membership for non Numeric</div><div class='add'>+	  values, for example, String.</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_scalar_p): new method. [ruby-dev:27936]</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb (Complex#scalar?): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  7 15:31:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_str_format): integer overflow check added.</div><div class='add'>+</div><div class='add'>+	* sprintf.c (GETASTER): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  7 01:02:04 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/README.macosx-aqua: [new document] tips to avoid the known</div><div class='add'>+	  bug on platform specific dialogs of Tcl/Tk Aqua on MacOS X.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fix bug on switching threads and waiting on the</div><div class='add'>+	  deleted interpreter on vwait and tkwait command.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: kill the meaningless loop for the deleted Tk</div><div class='add'>+	  interpreter.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/image3.rb: [bug fix] wrong argument.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/image3.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/menu.rb: fix message for MacOS X.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/menu8x.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/menu.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  6 16:48:40 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xmalloc2): change check condition for integer</div><div class='add'>+	  overflow.  [ruby-dev:27399]</div><div class='add'>+</div><div class='add'>+	* gc.c (ruby_xrealloc2): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  6 16:37:57 2005  Yuya Nishida  &lt;yuya@j96.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): avoid accessing ruby_frame-&gt;prev.</div><div class='add'>+	  [ruby-dev:27948]</div><div class='add'>+</div><div class='add'>+Fri Dec  2 19:06:06 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (Compare): should not fold double byte alphabet on win9x.</div><div class='add'>+</div><div class='add'>+Thu Dec  1 00:50:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_funcall2): allow to call protected methods.</div><div class='add'>+	  fixed: [ruby-dev:27890]</div><div class='add'>+</div><div class='add'>+Wed Nov 30 23:52:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct parser_params): fields common to ripper must be</div><div class='add'>+	  placed at each same offset.</div><div class='add'>+</div><div class='add'>+	* parse.y (NEWHEAP, ADD2HEAP): set count after pointer was set.</div><div class='add'>+	  fixed: [ruby-dev:27896]</div><div class='add'>+</div><div class='add'>+Wed Nov 30 13:43:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): support $! at the end of</div><div class='add'>+	  expression.   [ruby-dev:27868]</div><div class='add'>+</div><div class='add'>+Tue Nov 29 23:57:05 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (struct parser_params): heap must be placed at same offset</div><div class='add'>+	  also in ripper.y.  fixed: [ruby-dev:27846]</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): prevent vparser from tail call optimization.</div><div class='add'>+	  fixed: [ruby-dev:27851]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_mark): value needs to be marked.</div><div class='add'>+	  fixed: [ruby-dev:27845]</div><div class='add'>+</div><div class='add'>+Tue Nov 29 22:45:30 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/observer.rb (notify_observers): follow change of observer.rb.</div><div class='add'>+	  fixed: [ruby-core:6796]</div><div class='add'>+</div><div class='add'>+Mon Nov 28 20:24:22 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods#object_address_group): mask an address with</div><div class='add'>+	  word size.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods#object_address_group): adjust address format.</div><div class='add'>+</div><div class='add'>+Mon Nov 28 18:55:22 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_inetsock_internal): remove setting</div><div class='add'>+	  SO_REUSEADDR option on server socket on Cygwin.</div><div class='add'>+	  fixed: [ruby-core:6765] ([ ruby-Bugs-2872 ])</div><div class='add'>+</div><div class='add'>+Mon Nov 28 13:11:45 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_strerror): remove all CR and LF. (avoid broken</div><div class='add'>+	  error message on bccwin32 + winsock)</div><div class='add'>+</div><div class='add'>+Mon Nov 28 09:15:50 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): should not change sodir with</div><div class='add'>+	  dir.gsub!. (bccwin32 failed to install third party extensions)</div><div class='add'>+	  [ruby-dev:27834]</div><div class='add'>+</div><div class='add'>+Sun Nov 27 05:37:20 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: use File.basename to decompose pathnames.</div><div class='add'>+	  experimental Windows support.</div><div class='add'>+</div><div class='add'>+Sun Nov 27 00:56:13 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/xmlSchema/complexContent.rb: missing</div><div class='add'>+	  ComplexContent#elementformdefault method.</div><div class='add'>+</div><div class='add'>+Sat Nov 26 19:57:45 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (conv_to_posix_path): should initialize posix.</div><div class='add'>+</div><div class='add'>+Fri Nov 25 20:34:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/datetime.rb (DateTime::to_a): comparison with non</div><div class='add'>+	  array-convertible object must return false.</div><div class='add'>+</div><div class='add'>+Fri Nov 25 14:34:09 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_max): treat end exclusion without iteration if</div><div class='add'>+	  the end value is an integer.  [ruby-talk:167433]</div><div class='add'>+</div><div class='add'>+Fri Nov 25 12:52:57 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: added backward compatibility codes.</div><div class='add'>+	* lib/rss/parser.rb: ditto.</div><div class='add'>+	* test/rss/test_parser.rb: ditto.</div><div class='add'>+	* test/rss/test_2.0.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_content.rb: use #__send__ instead of #funcall for</div><div class='add'>+	  no private method.</div><div class='add'>+</div><div class='add'>+Fri Nov 25 12:39:56 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: improved type conversion.</div><div class='add'>+	* lib/rss/1.0.rb: ditto.</div><div class='add'>+	* lib/rss/0.9.rb: ditto.</div><div class='add'>+	* lib/rss/2.0.rb: ditto.</div><div class='add'>+	* lib/rss/image.rb: ditto.</div><div class='add'>+	* lib/rss/syndication.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_2.0.rb: added type conversion tests.</div><div class='add'>+	* test/rss/test_accessor.rb: ditto.</div><div class='add'>+	* test/rss/test_to_s.rb: ditto.</div><div class='add'>+	* test/rss/test_syndication.rb: ditto.</div><div class='add'>+	* test/rss/test_setup_maker_2.0.rb: ditto.</div><div class='add'>+	* test/rss/test_setup_maker_1.0.rb: ditto.</div><div class='add'>+	* test/rss/test_setup_maker_0.9.rb: ditto.</div><div class='add'>+	* test/rss/test_maker_sy.rb: ditto.</div><div class='add'>+	* test/rss/test_maker_image.rb: ditto.</div><div class='add'>+	* test/rss/test_maker_2.0.rb: ditto.</div><div class='add'>+	* test/rss/test_maker_0.9.rb: ditto.</div><div class='add'>+	* test/rss/test_image.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_1.0.rb: use assert instead of assert_equal.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb: improved type conversion assertions.</div><div class='add'>+</div><div class='add'>+Fri Nov 25 10:38:20 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/image.rb: added Image prefix.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/image.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 25 10:33:02 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_2.0.rb: added RSS 2.0 tests.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb: extended XML stylesheet assertion.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb: added initialize method.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_1.0.rb: cleanup.</div><div class='add'>+</div><div class='add'>+Fri Nov 25 10:29:48 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_min): use &lt;=&gt; comparison rather than iteration.</div><div class='add'>+	  [ruby-talk:167420]</div><div class='add'>+</div><div class='add'>+	* range.c (range_max): ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 24 01:31:44 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (w32_io_info): CreateFile failed on Win9x if file was already</div><div class='add'>+	  opened. (FILE_SHARE_READ was needed, but actually I don't understand</div><div class='add'>+	  the flags of CreateFile well...)</div><div class='add'>+</div><div class='add'>+Wed Nov 23 23:52:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_div): use floor rather than rb_Integer().</div><div class='add'>+	  [ruby-dev:27674]</div><div class='add'>+</div><div class='add'>+Wed Nov 23 22:34:15 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb: added entity handling type predicate.</div><div class='add'>+	* lib/rss/rexmlparser.rb: ditto.</div><div class='add'>+	* lib/rss/xmlparser.rb: ditto.</div><div class='add'>+	* lib/rss/xmlscanner.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/xmlscanner.rb: more robust entity handling.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_parser.rb: added an entity handling test.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 20:59:01 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.pkgconfig_list and Tk.pkgconfig_get</div><div class='add'>+	  [Tk8.5 feature].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: supports new indices modifiers on a Text</div><div class='add'>+	  widget [Tk8.5 feature].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/autoload.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: add :data key for virtual events [Tk8.5</div><div class='add'>+	  feature].</div><div class='add'>+</div><div class='add'>+Wed Nov 23 18:52:45 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (w32_io_info): should not call GetFileInformationByHandle</div><div class='add'>+	  for pipe.</div><div class='add'>+</div><div class='add'>+	* file.c (w32_io_info): checks return value from rb_w32_get_osfhandle.</div><div class='add'>+</div><div class='add'>+	* file.c (w32_io_info): now can identify directory on WinNT.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 18:46:53 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/: use #__send__ instead of #send.</div><div class='add'>+	* test/rss/: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 18:32:56 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_taxonomy.rb: use #reject directory.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 18:26:00 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb: changed class or module prefix to</div><div class='add'>+	  Taxonomy from Taxo.</div><div class='add'>+	* lib/rss/maker/taxonomy.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 18:21:11 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/taxonomy.rb: implemented taxonomy module for RSS</div><div class='add'>+	  Maker.</div><div class='add'>+	* lib/rss/taxonomy.rb: supported RSS Maker.</div><div class='add'>+	* lib/rss/maker.rb: added taxonomy module support.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: adjusted to other element API.</div><div class='add'>+	* lib/rss/1.0.rb: adjusted to other element API but backward</div><div class='add'>+	  compatibility is reserved.</div><div class='add'>+	* lib/rss/0.9.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_taxo.rb: added test case for taxonomy module</div><div class='add'>+	  for RSS Maker.</div><div class='add'>+	* test/rss/test_setup_maker_1.0.rb: added tests for taxo:topic.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_setup_maker_1.0.rb: added backward compatibility</div><div class='add'>+	  test.</div><div class='add'>+	* test/rss/test_setup_maker_0.9.rb: ditto.</div><div class='add'>+	* test/rss/test_setup_maker_2.0.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-testcase.rb: added convenience method for setting</div><div class='add'>+	  up taxo:topic.</div><div class='add'>+	* test/rss/rss-assertions.rb: added assertion for taxo:topic.</div><div class='add'>+</div><div class='add'>+	* sample/rss/blend.rb: followed new API.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 17:42:24 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: fixed a indentation bug.</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb: fixed &lt;taxo:topic&gt; #to_s bug.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_taxonomy.rb: added a #to_s test.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 03:40:49 2005  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (KR_REHASH): should cast to unsigned for 64bit CPU.</div><div class='add'>+	  [ruby-core:06721]</div><div class='add'>+</div><div class='add'>+Wed Nov 23 07:26:44 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (MakeX509ExtFactory): should use</div><div class='add'>+	  OPENSSL_malloc to allocate X509V3_CTX.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): use</div><div class='add'>+	  X509V3_EXT_nconf_nid to avoid SEGV (and to build extensions which</div><div class='add'>+	  values are placed in separate section).</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509ext.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Nov 23 01:22:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_identical): test if two files are identical.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): support DOSISH systems where st_ino is not</div><div class='add'>+	  reliable.  fixed: [ruby-core:06672]</div><div class='add'>+</div><div class='add'>+	* win32.h, win32.c (rb_w32_osid): check the running platform.</div><div class='add'>+</div><div class='add'>+Tue Nov 22 23:52:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: match incomplete (in current enconding) multibyte</div><div class='add'>+	  string.  http://inamode6.tokuhirom.dnsalias.org/show/1551</div><div class='add'>+</div><div class='add'>+Tue Nov 22 18:36:11 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (winnt_stat): set mapped errno instead of ENOENT.</div><div class='add'>+</div><div class='add'>+Tue Nov 22 14:36:54 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): skip slashes just after UNC top slashes.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb (test_dirname, test_basename): follow new</div><div class='add'>+	  spec. and add new tests.</div><div class='add'>+</div><div class='add'>+Tue Nov 22 13:30:15 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_stat): Dir.chdir('//server/shared');</div><div class='add'>+	  p Dir.glob('*') should work on WinNT. (implemented our own</div><div class='add'>+	  stat(2) on WinNT) [ruby-list:41552] [ruby-dev:27711]</div><div class='add'>+</div><div class='add'>+Tue Nov 22 02:31:53 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb: bug fix (Tk::Tile::USE_TTK_NAMESPACE</div><div class='add'>+	  is not defined).</div><div class='add'>+</div><div class='add'>+Tue Nov 22 01:45:21 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): DOSISH_UNC is defined on cygwin but</div><div class='add'>+	  DOSISH is not.  fixed: [ruby-dev:27797]</div><div class='add'>+</div><div class='add'>+Mon Nov 21 22:50:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_path_skip_prefix, rb_file_s_basename): UNC without path</div><div class='add'>+	  should not be splitted.  fixed: [ruby-dev:27776] [ruby-dev:27786]</div><div class='add'>+</div><div class='add'>+	* parse.y (dsym): prohibit empty symbol literal by interpolation.</div><div class='add'>+	  fixed: [ruby-talk:166529]</div><div class='add'>+</div><div class='add'>+Mon Nov 21 16:03:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/setup.mk: findstr doesn't exist on win9x.</div><div class='add'>+	  fixed: [ruby-dev:27756]</div><div class='add'>+</div><div class='add'>+Sun Nov 20 21:39:27 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_token_in_cc): tok-&gt;escaped should be</div><div class='add'>+	  initialized.  [ruby-dev:27763]</div><div class='add'>+</div><div class='add'>+Sun Nov 20 22:34:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_symname_p): [ not followed by ] is not valid symbol.</div><div class='add'>+	  fixed: [ruby-talk:166520]</div><div class='add'>+</div><div class='add'>+Sat Nov 19 19:57:54 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils::ln): ln documentation fix.</div><div class='add'>+	  [ruby-core:06661]</div><div class='add'>+</div><div class='add'>+Sat Nov 19 08:19:38 2005  Zach Dennis  &lt;zdennis@mktec.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: Socket Documentation. [ruby-core:6552]</div><div class='add'>+</div><div class='add'>+Sat Nov 19 07:34:32 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: remove dependency on Ruby's version (1.8</div><div class='add'>+	  or 1.9).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/ICONS/icons.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/treectrl/demo.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 18 18:07:05 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_dirname): should use skipprefix for UNC path.</div><div class='add'>+	  pointed out by nobu ([ruby-dev:27744]). fixed: [ruby-core:5076]</div><div class='add'>+</div><div class='add'>+Fri Nov 18 17:35:09 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add restriction to access the entried</div><div class='add'>+	  command table and manipulate other IPs (for reason of security).</div><div class='add'>+	  Now, a IP object can be controlled by only its master IP or the</div><div class='add'>+	  default IP.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: add restriction to manipulate.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_is_slave_of_p): add TclTkIp#slave_of?(ip)</div><div class='add'>+	  to check manipulability.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix on handling of Tcl's namespaces.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 18 16:47:33 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_dirname): added checks for some patterns with drive</div><div class='add'>+	  letter. fixed: [ruby-dev:27738]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb (test_dirname): added tests for above</div><div class='add'>+	  patterns.</div><div class='add'>+</div><div class='add'>+Fri Nov 18 12:19:16 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (S_IFIFO): r,w = IO.pipe; r.stat.pipe? now</div><div class='add'>+	  returns true on VisualC++6.</div><div class='add'>+</div><div class='add'>+Thu Nov 17 17:58:00 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/1.0.rb: added convenience method 'resources'.</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb: added test for 'resources'.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_taxonomy.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 17 17:53:30 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb: implemented taxonomy module.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_taxonomy.rb: added tests for taxonomy support.</div><div class='add'>+</div><div class='add'>+Thu Nov 17 17:40:19 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/1.0.rb: added rdf:Bag.</div><div class='add'>+</div><div class='add'>+Thu Nov 17 13:52:00 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: removed needless argument 'prefix'.</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 16 23:24:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (static-ruby): overridable.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args): force to link extensions statically only</div><div class='add'>+	  if static is given for extstatic.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (RUBY, RUBYW): overridable.</div><div class='add'>+</div><div class='add'>+Wed Nov 16 01:29:31 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/trackback.rb: added TrackBack prefix.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/trackback.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 16 01:26:13 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION): 0.1.5 -&gt; 0.1.6.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_version.rb (RSS::TestVersion#test_version): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 15 23:54:24 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_load_ok): eaccess() returns 0 on success.</div><div class='add'>+	  fixed: [ruby-dev:27713]</div><div class='add'>+</div><div class='add'>+Tue Nov 15 16:36:03 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): previous commit disabled this usage:</div><div class='add'>+</div><div class='add'>+	    a = [0,1,2,3,4,5,6,7,8,9]</div><div class='add'>+	    a.fill {|i| a[i] * 10} #=&gt; [nil, nil, ...., nil]</div><div class='add'>+</div><div class='add'>+	  previous commit has the advantage of early garbage collection, but</div><div class='add'>+	  potentially this would break some script. so I reverted behavior.</div><div class='add'>+</div><div class='add'>+Tue Nov 15 16:15:23 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_load_ok): use eaccess() instead of actually opening</div><div class='add'>+	  the file.  [ruby-talk:156378]</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb (String::reverse): add new methods.</div><div class='add'>+	  [ruby-list:41245]</div><div class='add'>+</div><div class='add'>+Tue Nov 15 15:49:34 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): tail elements were vanished when the middle</div><div class='add'>+	  part of array was filled. (ie: [0,1,2,3,4].fill(-1,2,1) =&gt; [0,1,-1])</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb (test_fill): added.</div><div class='add'>+</div><div class='add'>+Tue Nov 15 14:39:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): should adjust array length correctly when</div><div class='add'>+	  an array is expanded in the fill process.  [ruby-core:06625]</div><div class='add'>+</div><div class='add'>+Mon Nov 14 23:49:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): ERANGE will occur only on GPFS.</div><div class='add'>+	  [ruby-dev:27699]</div><div class='add'>+</div><div class='add'>+Mon Nov 14 17:36:22 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_first): RDoc update from Daniel Berger</div><div class='add'>+	  &lt;djberg96@yahoo.com&gt;.  [ruby-core:06577].</div><div class='add'>+</div><div class='add'>+Sun Nov 13 10:55:24 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (escape): regard second argument as a</div><div class='add'>+	  character set. [ruby-dev:27692]</div><div class='add'>+</div><div class='add'>+Sat Nov 12 08:36:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, eval.c, intern.h: check fd_mask type.</div><div class='add'>+</div><div class='add'>+	* configure.in (socketpair): need to be checked.</div><div class='add'>+</div><div class='add'>+Fri Nov 11 19:53:47 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h: failed to compile where NFDBITS is defined but</div><div class='add'>+	  howmany() is not defined. [ruby-dev:27680]</div><div class='add'>+</div><div class='add'>+	* io.c (is_socket): failed to compile where S_ISSOCK is not defined.</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): failed to compile where socketpair is not supported.</div><div class='add'>+</div><div class='add'>+Fri Nov 11 08:20:56 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (OUTFLAG): keep trailing spaces.  [ruby-dev:27666]</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: substitution references added.</div><div class='add'>+</div><div class='add'>+Fri Nov 11 07:39:49 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: undef HAVE_LINK on BeOS. (link(2) always returns</div><div class='add'>+	  EINVAL, and this causes error in test/fileutils.)</div><div class='add'>+</div><div class='add'>+	* file.c: override chown(2) and fchown(2) on BeOS. (these functions</div><div class='add'>+	  should not change user/group id if -1 is passed as corresponding</div><div class='add'>+	  argument, and this causes error in test/fileutils too)</div><div class='add'>+	  [ruby-dev:27672]</div><div class='add'>+</div><div class='add'>+Thu Nov 10 21:05:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: fix for blank but not empty string.</div><div class='add'>+	  fixed: [ruby-dev:27663]</div><div class='add'>+</div><div class='add'>+Wed Nov  9 08:39:38 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb: refactored.  [ruby-core:06581]</div><div class='add'>+</div><div class='add'>+Tue Nov  8 17:35:53 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, eval.c (rb_thread_signal_raise): constified.</div><div class='add'>+</div><div class='add'>+	* signal.c: cosmetic change.</div><div class='add'>+</div><div class='add'>+Tue Nov  8 15:32:27 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/ssl.rb (DRb::SSLConfig#accept): fixed typo.</div><div class='add'>+	  [ruby-dev:27560] [ruby-core:4627]</div><div class='add'>+</div><div class='add'>+Mon Nov  7 20:54:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: iconvctl() support.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Mon Nov  7 16:23:23 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: need to include winsock2.h before including</div><div class='add'>+	  windows.h by some openssl headers.</div><div class='add'>+</div><div class='add'>+Mon Nov  7 13:43:51 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c (_nativethread_consistency_check): use simpler</div><div class='add'>+	  (low cost) way to check whether the Tcl interpreter was compiled</div><div class='add'>+	  with threads enabled of not.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: reduce warnings.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov  7 00:06:12 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: removed :nodoc: to generate Kernel doc. [ruby-core:6324]</div><div class='add'>+</div><div class='add'>+Sun Nov  6 23:39:13 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (Iconv::BrokenLibrary): exception when detected a</div><div class='add'>+	  bug of underlying library.</div><div class='add'>+</div><div class='add'>+Sun Nov  6 21:43:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c (ruby_tcl_create_ip_and_stubs_init): should touch</div><div class='add'>+	  interpreter after initialization is done. [ruby-dev:27638]</div><div class='add'>+</div><div class='add'>+Sun Nov  6 20:13:27 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_readlink): readlink(2) on AIX fails with ERANGE if</div><div class='add'>+	  buffer size is less than required.  fixed: [ruby-dev:27634]</div><div class='add'>+</div><div class='add'>+Sat Nov  5 13:42:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, cygwin/GNUmakefile.in (mingw): use def file to alias</div><div class='add'>+	  symbols.  [ruby-dev:27532]</div><div class='add'>+</div><div class='add'>+	* bcc32/mkexports.rb, win32/mkexports.rb: make aliases in DLL.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h: replace symbols only when RUBY_EXPORT</div><div class='add'>+	  is defined.</div><div class='add'>+</div><div class='add'>+Thu Nov  3 07:57:39 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (open_loop): find_proxy should return nil when</div><div class='add'>+	  proxy does not exist. [ruby-dev:27630]</div><div class='add'>+</div><div class='add'>+Wed Nov  2 20:25:28 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: ext/tk/extconf.rb: change the check parameter</div><div class='add'>+	  for Win32.</div><div class='add'>+</div><div class='add'>+Wed Nov  2 19:03:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_rbUpdateObjCmd, ip_rb_threadUpdateObjCmd):</div><div class='add'>+	  passed improper flags to DoOneEvent().</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: use rb_obj_respond_to() instead of</div><div class='add'>+	  rb_respond_to().</div><div class='add'>+</div><div class='add'>+Tue Nov  1 14:20:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): should call method_missing if super is</div><div class='add'>+	  called from Kernel method.</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under): frame during eval should preserve external</div><div class='add'>+	  information.</div><div class='add'>+</div><div class='add'>+Tue Nov  1 10:48:49 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: should check ERR_peek_last_error().</div><div class='add'>+	  [ruby-dev:27597]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_raise): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 31 17:34:46 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: use proper option for Sun linker. A patch from</div><div class='add'>+	  Shinya Kuwamura &lt;kuwa at labs.fujitsu.com&gt;.  [ruby-dev:27603]</div><div class='add'>+</div><div class='add'>+Mon Oct 31 05:46:08 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_update): input data must</div><div class='add'>+	  not be empty. [ruby-talk:161220]</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_cipher.rb: add test for Cipher#update("").</div><div class='add'>+</div><div class='add'>+Mon Oct 31 05:38:26 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::CGIHandler#do_GET): the value of Set-Cookie:</div><div class='add'>+	  header field should be splited into each cookie.  [ruby-Bugs:2199]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookie): new method</div><div class='add'>+	  to parse the value of Set-Cookie: header field.</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cookie.rb, test/webrick/test_cgi.rb,</div><div class='add'>+	  test/webrick/webrick.cgi: add some test for cookie.</div><div class='add'>+</div><div class='add'>+Mon Oct 31 02:33:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_rshift): RDoc fix.  [ruby-core:6351]</div><div class='add'>+</div><div class='add'>+	* util.h (strtod): add #undef for platforms defines strtod()</div><div class='add'>+	  macro.   [ruby-dev:27563]</div><div class='add'>+</div><div class='add'>+Mon Oct 31 02:31:41 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb (test_precision): test by assert_in_delta.</div><div class='add'>+	  [ruby-dev:27575]</div><div class='add'>+</div><div class='add'>+Sat Oct 29 01:58:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: document update from mathew &lt;meta@pobox.com&gt;.</div><div class='add'>+	  [ruby-core:06473]</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/fcntl.c: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 29 16:56:03 2005  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: added seven predicates sunday? to saturday?.</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: added two methods {prev,next}_month,</div><div class='add'>+	  that are almost same as &lt;&lt; and &gt;&gt;.</div><div class='add'>+</div><div class='add'>+Thu Oct 27 20:34:43 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (enumerator_allocate): allow subclassing.</div><div class='add'>+</div><div class='add'>+Thu Oct 27 16:45:31 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (scan_once): wrong condition to use mbclen2().</div><div class='add'>+	  [ruby-dev:27535]</div><div class='add'>+</div><div class='add'>+Thu Oct 27 11:53:17 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h, missing/memcmp.c, missing/memmove.c:</div><div class='add'>+	  ANSI compatible interface.</div><div class='add'>+</div><div class='add'>+Wed Oct 26 09:15:48 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.c (syck_type_id_to_uri): should return</div><div class='add'>+	  newly allocated memory. otherwise, type_id will be freed</div><div class='add'>+	  twice. [ruby-dev:27384] [ruby-core:6385]</div><div class='add'>+</div><div class='add'>+Wed Oct 26 01:58:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_EXTERN): macro to export symbols in shared</div><div class='add'>+	  library.  [ruby-core:05528]</div><div class='add'>+</div><div class='add'>+	* defines.h, {bcc32,win32,wince}/Makefile.sub (RUBY_EXTERN): moved to</div><div class='add'>+	  configuration pass.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): RUBY_EXTERN for static linked extensions.</div><div class='add'>+</div><div class='add'>+Tue Oct 25 20:06:59 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (Qfalse, Qtrue, Qnil, Qundef): make sure these immediate</div><div class='add'>+	  values have VALUE type. there is an environment where sizeof(VALUE)</div><div class='add'>+	  != sizeof(int) like IA64. if 32bit integer (Qtrue) is passed to ANYARGS</div><div class='add'>+	  and received by 64bit integer (VALUE), upper bits may have garbage value.</div><div class='add'>+	  [ruby-dev:27513]</div><div class='add'>+</div><div class='add'>+Tue Oct 25 15:32:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb: applied documentation patch from Gavin Sinclair</div><div class='add'>+	  &lt;gsinclair@gmail.com&gt;.  [ruby-core:06364]</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb (IRB::Irb::eval_input): handle prompts with newlines</div><div class='add'>+	  in irb auto-indentation mode.  [ruby-core:06358]</div><div class='add'>+</div><div class='add'>+Tue Oct 25 14:21:46 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): sorry, previous commit was incorrect.</div><div class='add'>+	  [ruby-core:6386]</div><div class='add'>+</div><div class='add'>+Tue Oct 25 13:40:16 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): return now whether there're rooms for new</div><div class='add'>+	  objects, rather than whether GC run. fixed: [ruby-core:6376]</div><div class='add'>+</div><div class='add'>+Tue Oct 25 02:12:08 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::LABEL_LIST_RE):</div><div class='add'>+	  reduce redundant backtrack.  [ruby-talk:161771]</div><div class='add'>+</div><div class='add'>+Tue Oct 25 00:35:33 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/*: RDoc documentation from Eric Hodel</div><div class='add'>+	  &lt;drbrain@segment7.net&gt; added.</div><div class='add'>+</div><div class='add'>+Mon Oct 24 21:14:29 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, io.c: use sys/syscall.h if syscall.h is not available.</div><div class='add'>+	  [ruby-core:06247]</div><div class='add'>+</div><div class='add'>+Mon Oct 24 20:38:25 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/lib/win32/resolv.rb (get_info): support multiple DNS.</div><div class='add'>+	  fixed: [ruby-list:40058], [ruby-dev:27479]</div><div class='add'>+</div><div class='add'>+Mon Oct 24 11:01:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb (TkCanvasItemConfig::__item_val2ruby_optkeys):</div><div class='add'>+	  typo fixed.  [ruby-talk:162187]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb (TkMenuEntryConfig::__item_val2ruby_optkeys):</div><div class='add'>+	  ditto.  [ruby-core:06359]</div><div class='add'>+</div><div class='add'>+Mon Oct 24 07:57:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb (TkCanvasItemConfig::__item_val2ruby_optkeys):</div><div class='add'>+	  typo fixed.  [ruby-talk:162187]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb (TkMenuEntryConfig::__item_val2ruby_optkeys):</div><div class='add'>+	  ditto.  [ruby-core:06359]</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb (Matrix::initialize): use funcall instead of send</div><div class='add'>+	  to allow private methods to be called.  A report from</div><div class='add'>+	  Jean-Claude Arbaut &lt;jcarbaut@laposte.net&gt;.  [ruby-core:06359]</div><div class='add'>+</div><div class='add'>+Mon Oct 24 00:41:18 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_sunday): added predicate methods for the days of the</div><div class='add'>+	  week.  [ruby-list:41340]</div><div class='add'>+</div><div class='add'>+Sun Oct 23 07:11:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: improve messages [ruby-core:06325].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tk/canvas.rb, ext/tk/lib/tk/entry.rb,</div><div class='add'>+	  ext/tk/lib/tk/frame.rb, ext/tk/lib/tk/image.rb,</div><div class='add'>+	  ext/tk/lib/tk/itemconfig.rb, ext/tk/lib/tk/labelframe.rb,</div><div class='add'>+	  ext/tk/lib/tk/listbox.rb, ext/tk/lib/tk/menu.rb,</div><div class='add'>+	  ext/tk/lib/tk/radiobutton.rb, ext/tk/lib/tk/scale.rb,</div><div class='add'>+	  ext/tk/lib/tk/spinbox.rb, ext/tk/lib/tk/text.rb,</div><div class='add'>+	  ext/tk/lib/tk/toplevel.rb: improve conversion of option values.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: update to support ActiveTcl8.4.11.2.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/trofs/*: support Trofs 0.4.3.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/*: support Tile 0.7.2.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/vu/*: support vu 2.3.0.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tcllib/*: support Tcllib 1.8 (Tklib 0.3).</div><div class='add'>+</div><div class='add'>+Sat Oct 22 23:54:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb (with_config): support --with-extension</div><div class='add'>+	  options.  [ruby-dev:27449]</div><div class='add'>+</div><div class='add'>+Sat Oct 22 14:25:43 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.[hc] (ruby_add_suffix): constified.</div><div class='add'>+</div><div class='add'>+	* util.[hc] (ruby_scan_{oct,hex}): fixed typo. (renamed from</div><div class='add'>+	  scan_{oct,hex})</div><div class='add'>+</div><div class='add'>+	* util.c: almostly ANSI styled. (except for functions depending on</div><div class='add'>+	  macro and K&amp;R technique)</div><div class='add'>+</div><div class='add'>+Sat Oct 22 13:26:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (sym_inspect), parse.y (parser_yylex, rb_symname_p): check</div><div class='add'>+	  if valid as a symbol name more strictly.  [ruby-dev:27478]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_symbol.rb: tests for [ruby-core:03573].</div><div class='add'>+</div><div class='add'>+	* time.c (rb_strftime): removed meaningless volatile modifiers, and</div><div class='add'>+	  concatenate successive nul characters at once.  [ruby-dev:27472]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb, ext/tk/lib/tkextlib/ICONS/icons.rb,</div><div class='add'>+	  ext/tk/sample/tkextlib/treectrl/demo.rb, lib/net/imap.rb,</div><div class='add'>+	  lib/rss/parser.rb, test/rss/test_content.rb,</div><div class='add'>+	  test/rss/test_dublincore.rb, test/rss/test_syndication.rb,</div><div class='add'>+	  test/rss/test_trackback.rb, test/ruby/test_eval.rb,</div><div class='add'>+	  test/socket/test_socket.rb, test/socket/test_udp.rb:</div><div class='add'>+	  Object#fcall was renamed as Object#funcall.</div><div class='add'>+</div><div class='add'>+Sat Oct 22 10:08:28 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h, missing/*.c: SUSv3 compatible strcasecmp and strncasecmp,</div><div class='add'>+	  ANSI compatible strtol and strtoul, and ANSI styled other functions.</div><div class='add'>+</div><div class='add'>+Fri Oct 21 19:16:08 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h (CHECK_INTS): fixed typo. (I believe bit-or is improper)</div><div class='add'>+</div><div class='add'>+Fri Oct 21 17:49:32 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb (ERB::Main::run): typo fixed.  [ruby-core:06337]</div><div class='add'>+</div><div class='add'>+Fri Oct 21 15:42:28 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, struct.c (rb_struct_iv_get): constified.</div><div class='add'>+</div><div class='add'>+	* marshal.c: avoid one VC++6 warning for implicit conversion</div><div class='add'>+	  from int to char.</div><div class='add'>+</div><div class='add'>+	* ruby.h: ANSI styled.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (HAVE_HYPOT): added.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: BeOS is only one platform should call</div><div class='add'>+	  closesocket, so check __BEOS__ macro directly. (I was worried</div><div class='add'>+	  accidently HAVE_CLOSESOCKET is defined on windows again because</div><div class='add'>+	  it has it)</div><div class='add'>+</div><div class='add'>+	* ext/socket/{getaddrinfo.c,socket.c}: ditto.</div><div class='add'>+</div><div class='add'>+	... these are all cosmetic changes.</div><div class='add'>+</div><div class='add'>+Fri Oct 21 15:23:23 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignew_1): convertion from `int' to `char' discards</div><div class='add'>+	  upper bits, (ie. (char)0xff00 -&gt; 0) so it's better to test if</div><div class='add'>+	  nonzero and set 0 or 1 instead of simply casting ... as a flag usage.</div><div class='add'>+	  (but I believe this won't cause actual bug in current implementation)</div><div class='add'>+	  [ruby-dev:27055]</div><div class='add'>+</div><div class='add'>+	* time.c: should use LONG_LONG instead of `long long'.</div><div class='add'>+</div><div class='add'>+Thu Oct 20 22:22:49 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parser.y (struct parser_params): parser never modify input string.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/preproc.rb (prelude): do not append surplus</div><div class='add'>+	  newlines to fix line numbers.</div><div class='add'>+</div><div class='add'>+Thu Oct 20 11:41:57 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, eval.c, hash.c, st.c, variable.c: changed /* ??? */ stuff</div><div class='add'>+	  protoize generated to ANYARGS.</div><div class='add'>+</div><div class='add'>+Thu Oct 20 11:18:11 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, file.c, ruby.c: removed strchr, strrchr, strstr definition</div><div class='add'>+	  because they are defined in missing.h.</div><div class='add'>+</div><div class='add'>+	* missing.h, missing/strchr.c, missing/strstr.c: ANSI styled.</div><div class='add'>+</div><div class='add'>+Thu Oct 20 09:36:06 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): Borland make seems not to allow</div><div class='add'>+	  empty dependency list. If this change is not good, please correct</div><div class='add'>+	  it.</div><div class='add'>+</div><div class='add'>+Thu Oct 20 07:55:09 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): get rid of a restriction</div><div class='add'>+	  of Borland make.  fixed: [ruby-dev:27460]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 19 23:58:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): do not create unnecessary empty</div><div class='add'>+	  directories.  fixed: [ruby-dev:27451]</div><div class='add'>+</div><div class='add'>+Wed Oct 19 08:28:32 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_join): elements may contain null pointer strings.</div><div class='add'>+	  report and fixed by Lloyd Zusman (hippoman): [ruby-core:06326]</div><div class='add'>+</div><div class='add'>+Wed Oct 19 02:34:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c, eval.c, gc.c, parse.y, regparse.c, sjis.c, time.c:</div><div class='add'>+	  made internal symbols static.  [ruby-dev:27435]</div><div class='add'>+</div><div class='add'>+Tue Oct 18 10:58:27 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/depend, ext/dl/extconf.rb, ext/socket/depend,</div><div class='add'>+	  ext/socket/extconf.rb: shouldn't define DESTCLEANFILES in depend,</div><div class='add'>+	  use $distcleanfiles in extconf.rb.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (distclean-local): should remove .config.h.time.</div><div class='add'>+</div><div class='add'>+Mon Oct 17 09:42:50 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: fixup configure_args for mswin32 configure.</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat (srcdir, target): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct 17 05:01:50 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* env.h: move struct METHOD and struct BLOCK from eval.c to</div><div class='add'>+	  support NodeWrap and ParseTree.</div><div class='add'>+</div><div class='add'>+Sun Oct 16 22:16:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: omit non-existing directories.</div><div class='add'>+</div><div class='add'>+Sun Oct 16 14:40:54 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb (Rinda::Tuple#initialize): check remote hash</div><div class='add'>+	  tuple. fixed: [ruby-list:41227]</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: test it.</div><div class='add'>+</div><div class='add'>+Sun Oct 16 03:38:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h (CHECK_INTS): prevent signal handler to run during</div><div class='add'>+	  critical section.  [ruby-core:04039]</div><div class='add'>+</div><div class='add'>+	* eval.c (load_wait): need not to call rb_thread_schedule()</div><div class='add'>+	  explicitly.  [ruby-core:04039]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_schedule): clear rb_thread_critical.</div><div class='add'>+	  [ruby-core:04039]</div><div class='add'>+</div><div class='add'>+Sun Oct 16 00:13:14 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat: remove unnecessary line which prevents</div><div class='add'>+	  creating Makefile.</div><div class='add'>+</div><div class='add'>+Sat Oct 15 23:52:07 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: (getbinaryfile): allow nil for localfile, and</div><div class='add'>+	  returns retrieved data if localfile is nil.</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: (gettextfile): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct 15 19:51:29 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb: typo fixed, again. thanks, Doug Kearns.</div><div class='add'>+</div><div class='add'>+Fri Oct 14 23:09:31 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (MKFILES): update MKFILES if configure files get</div><div class='add'>+	  changed.</div><div class='add'>+</div><div class='add'>+	* win32/configure.bat, win32/setup.mak (configure_args): store</div><div class='add'>+	  arguments to configure files.</div><div class='add'>+</div><div class='add'>+Fri Oct 14 22:05:45 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (ioctl): should set errno.</div><div class='add'>+</div><div class='add'>+Fri Oct 14 16:39:37 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (Config::FileHandler): :UserDir should be nil.</div><div class='add'>+	  It is harmful to permit the access to ~/public_html by default.</div><div class='add'>+	  suggested by Hiroyuki Iwatsuki.</div><div class='add'>+</div><div class='add'>+Fri Oct 14 04:58:38 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_exec): create instance_exec and</div><div class='add'>+	  module_exec which pass arguments to the block.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_funcall): rename fcall to funcall to follow</div><div class='add'>+	  tradition.</div><div class='add'>+</div><div class='add'>+Thu Oct 13 23:29:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (HEAPCNT): bison allocates indivisible size.</div><div class='add'>+	  fixed: [ruby-core:06261]</div><div class='add'>+</div><div class='add'>+	* io.c, pack.c, ext/syck/rubyext.c, ext/syck/syck.h, missing/isinf.c:</div><div class='add'>+	  get rid of warnings.  fixed: [ruby-core:06247]</div><div class='add'>+</div><div class='add'>+Wed Oct 12 12:51:56 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (Init_openssl): should call</div><div class='add'>+	  OpenSSL_add_ssl_algorithms().</div><div class='add'>+</div><div class='add'>+Wed Oct 12 11:08:54 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_f_test): typo in RDoc comments.</div><div class='add'>+</div><div class='add'>+Tue Oct 11 21:41:58 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_FUNC_ATTRIBUTE): check prefixed attribute form</div><div class='add'>+	  first.  [ruby-dev:27398]</div><div class='add'>+</div><div class='add'>+	* array.c, enum.c, eval.c, util.c: safer function pointer usage.</div><div class='add'>+	  fixed: [ruby-core:06143]</div><div class='add'>+</div><div class='add'>+	* util.h (qsort): removed the definition incompatible to ANSI.</div><div class='add'>+	  fixed: [ruby-core:06147]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_respond_to): check if obj responds to the given</div><div class='add'>+	  method with the given visibility.  [ruby-dev:27408]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_respond_to): conform to Object#respond_to?.  [ruby-dev:27411]</div><div class='add'>+</div><div class='add'>+Tue Oct 11 00:01:21 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_free_table): do not call free() but xfree().</div><div class='add'>+	  [ruby-core:06205]</div><div class='add'>+</div><div class='add'>+Sat Oct  8 19:49:42 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Binding): add Binding#dup method.  [yarv-dev:666]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_init_copy): clear PREP flag for copied IO.</div><div class='add'>+	  fixed: [ruby-dev:27371]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_malloc, rb_parser_free): manage parser stack on</div><div class='add'>+	  heap.  [ruby-list:41199]</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_initialize): use rb_respond_to().</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (check): get rid of re-generating ripper.y always.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb: parse config.charset_alias file directly.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv.conv): get rid of nil.to_a.</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb (Scanf::FormatSpecifier#letter, #width): use matched</div><div class='add'>+	  substring directly.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb, test/ruby/test_iterator.rb: followed</div><div class='add'>+	  change of sample/test.rb.</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb: removed superfluous splatting stars.</div><div class='add'>+</div><div class='add'>+Fri Oct  7 16:41:43 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (splat_value): call rb_Array() to convert svalue to</div><div class='add'>+	  values.  [ruby-dev:27397]</div><div class='add'>+</div><div class='add'>+Fri Oct  7 09:54:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may</div><div class='add'>+	  not be parsed correctly.  A patch from August Z. Flatby</div><div class='add'>+	  (augustzf) in [ruby-Patches-2595].  [ruby-core:06183]</div><div class='add'>+</div><div class='add'>+Thu Oct  6 22:51:30 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Array): Array() to raise error for objects without</div><div class='add'>+	  to_ary, nor to_a.</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_a): revert NilClass#to_a.</div><div class='add'>+</div><div class='add'>+Thu Oct  6 20:10:38 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_free): remove useless code.</div><div class='add'>+	  [ruby-dev:26368] [ruby-dev:27389]</div><div class='add'>+</div><div class='add'>+Thu Oct  6 01:02:19 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): should return Qfalse for non-range</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+Wed Oct  5 04:42:38 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (XMLRPC::Server#initialize): should mount the</div><div class='add'>+	  servlet on "/".</div><div class='add'>+</div><div class='add'>+Wed Oct  5 04:06:49 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (XMLRPC::Server#serve): delete wrong call</div><div class='add'>+	  of "join".</div><div class='add'>+</div><div class='add'>+Mon Oct  3 00:04:00 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (EXTEND16): [ruby-dev:27383]</div><div class='add'>+</div><div class='add'>+Sat Oct  1 23:55:24 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_select, rb_w32_select): brush up.</div><div class='add'>+</div><div class='add'>+Sat Oct  1 12:57:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rand): removed.  [ruby-dev:25405]</div><div class='add'>+</div><div class='add'>+Sat Oct  1 01:46:51 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_loop): prohibit multiple proxy</div><div class='add'>+	  options.</div><div class='add'>+</div><div class='add'>+Thu Sep 29 10:26:18 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/cptr.c (rb_dlptr_s_to_ptr): abolish sizeof(FILE).</div><div class='add'>+	  [ruby-dev:27317]</div><div class='add'>+</div><div class='add'>+Thu Sep 29 10:15:14 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (:proxy_http_basic_authentication): new option.</div><div class='add'>+</div><div class='add'>+Thu Sep 29 07:22:05 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_send): underscores need to be escaped.</div><div class='add'>+	  fixed by Doug Kearns.  [ruby-core:06053]</div><div class='add'>+</div><div class='add'>+Thu Sep 29 00:57:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ev_const_get), variable.c (rb_const_get_0): retry only when</div><div class='add'>+	  autoload succeeded.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): now return true if autoload</div><div class='add'>+	  succeeded.  fixed: [ruby-dev:27331]</div><div class='add'>+</div><div class='add'>+Wed Sep 28 23:40:04 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): constified.</div><div class='add'>+</div><div class='add'>+Wed Sep 28 15:12:28 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI#start): req.query_string should</div><div class='add'>+	  refer to the value of QUERY_STRING. [ruby-list:41186]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#query_string=):</div><div class='add'>+	  add new method.</div><div class='add'>+</div><div class='add'>+Wed Sep 28 10:45:44 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: cannot compile with Tcl/Tk8.0.x [ruby-dev:27335].</div><div class='add'>+</div><div class='add'>+Wed Sep 28 07:56:52 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/basenode.rb (YAML::BaseNode::match_segment): fix typo.</div><div class='add'>+	  [ruby-dev:27237], [ruby-core:05854]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/tag.rb (Module#yaml_as): suppress warnings.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/types.rb (YAML::PrivateType, YAML::DomainType): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 28 03:16:41 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h: fixed build problem with --enable-pthread on platforms</div><div class='add'>+	  which don't have setitimer().</div><div class='add'>+</div><div class='add'>+Mon Sep 26 22:32:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (set_trace_func): add rb_secure(4) to prevent adding</div><div class='add'>+	  tracing function.</div><div class='add'>+</div><div class='add'>+Mon Sep 26 20:59:28 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: changed to ANSI function style.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 12:02:04 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb: typo fixed.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 11:54:11 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb (Rinda::TemplateEntry::initialize): pull</div><div class='add'>+	  up method. Tabs converted to spaces.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 09:34:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: replaced `foo _((boo))' with `foo(boo)'.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 08:19:53 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_content.rb, test/rss/test_syndication.rb: use fcall</div><div class='add'>+	  instead of send in order to override visibility.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 01:46:43 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): arrange deep-indent</div><div class='add'>+	  closing parenthesis at same column as the opening.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 01:33:41 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setrlimit): make the third argument (rlim_max)</div><div class='add'>+	  optional.</div><div class='add'>+</div><div class='add'>+Sun Sep 25 00:42:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): deal with heredoc separately.</div><div class='add'>+	  fixed: [ruby-list:41168]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): not to deepen indent</div><div class='add'>+	  level for continuous line inside parentheses.</div><div class='add'>+	  http://nabeken.tdiary.net/20050915.html#p02</div><div class='add'>+</div><div class='add'>+Sat Sep 24 21:19:39 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: document enhancement.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: update copyright year.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: update coding style.</div><div class='add'>+</div><div class='add'>+Sat Sep 24 20:20:05 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb (teardown): Net::HTTP.version_1_1 breaks</div><div class='add'>+	  many other tests; ensure that Net::HTTP is version 1.2 after test.</div><div class='add'>+	  [ruby-dev:27312]</div><div class='add'>+</div><div class='add'>+Sat Sep 24 11:44:28 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_http.rb: new file.</div><div class='add'>+</div><div class='add'>+Sat Sep 24 08:54:05 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cd): no longer accept :noop option, related</div><div class='add'>+	  code is useless. [ruby-core:05858] [ruby-Bugs:2494]</div><div class='add'>+</div><div class='add'>+Sat Sep 24 08:30:00 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#sub): new method.</div><div class='add'>+</div><div class='add'>+Sat Sep 24 08:29:36 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: fix visibility of FileUtils::NoWrite, Verbose,</div><div class='add'>+	  DryRun. [ruby-core:05954]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_nowrite.rb: test it.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_dryrun.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_verbose.rb: new file.</div><div class='add'>+</div><div class='add'>+Sat Sep 24 07:59:01 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* sample/ripper/colorize.rb: removed (replaced by ruby2html.rb).</div><div class='add'>+</div><div class='add'>+	* sample/ripper/ruby2html.rb: added.</div><div class='add'>+</div><div class='add'>+Sat Sep 24 06:35:15 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper: no longer generates .rb files.</div><div class='add'>+</div><div class='add'>+	* parse.y (Init_ripper): ripper_init_eventids*() takes 1 argument,</div><div class='add'>+	  self (class Ripper).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: target removed: `lib/ripper/core.rb'.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: new target `eventids2table.c'.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: new target `check'.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: include eventids2table.c.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: initialize SCANNER_EVENT_TABLE.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb: update $cleanfiles list.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate.rb: no longer generate ripper/core.rb.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate.rb: new mode `check'.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate.rb: new mode `eventids2table'.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb.in: removed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb: added.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/filter.rb: update copyright year.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/lexer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/sexp.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 24 02:40:20 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: document update from James Edward Gray II</div><div class='add'>+	  &lt;james@grayproductions.net&gt;.  [ruby-core:05942]</div><div class='add'>+</div><div class='add'>+Sat Sep 24 02:05:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): should restrict execution on levels</div><div class='add'>+	  higher than $SAFE=2.  suggested by URABE Shyouhei</div><div class='add'>+	  &lt;shyouhei@ice.uec.ac.jp&gt;.</div><div class='add'>+</div><div class='add'>+Fri Sep 23 20:10:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate.rb, ext/ripper/tools/preproc.rb: StringIO</div><div class='add'>+	  is not available for miniruby.  fixed: [ruby-dev:27307]</div><div class='add'>+</div><div class='add'>+Fri Sep 23 17:36:48 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: avoid core dump with WIN32OLE_EVENT.</div><div class='add'>+	  [ruby-dev:27133]</div><div class='add'>+</div><div class='add'>+Fri Sep 23 16:27:39 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/forwardable.rb: replaced by new implementation from</div><div class='add'>+	  &lt;Daniel.Berger@qwest.com&gt;.  [ruby-core:05899]</div><div class='add'>+</div><div class='add'>+Fri Sep 23 07:07:47 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/depend: use --output option instead of redirect;</div><div class='add'>+	  nmake does not remove a target when the target file is created by</div><div class='add'>+	  redirect. [ruby-dev:26466]</div><div class='add'>+</div><div class='add'>+	* test/ripper/tools/preproc.rb: new option --output.</div><div class='add'>+</div><div class='add'>+Fri Sep 23 06:57:52 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/tools/generate.rb: check parser event arity.</div><div class='add'>+</div><div class='add'>+	* test/ripper/tools/generate.rb: detect crash of parser-event-IDs</div><div class='add'>+	  and scanner-event-IDs.</div><div class='add'>+</div><div class='add'>+Fri Sep 23 06:01:30 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb: check File#chown(nil,nil).</div><div class='add'>+	  [ruby-dev:27140]</div><div class='add'>+</div><div class='add'>+Fri Sep 23 05:57:23 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper: refactoring code generation tools. [ruby-dev:27247]</div><div class='add'>+	  [ruby-dev:27273]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: use generate.rb.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb: removed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-eventids1.rb: removed (code moved to</div><div class='add'>+	  generate.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-ripper_rb.rb: removed (code moved to</div><div class='add'>+	  generate.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-parse-event-ids.rb: removed (code moved to</div><div class='add'>+	  generate.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-scan-event-ids.rb: removed (code moved to</div><div class='add'>+	  generate.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb: removed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper: refactoring tests. [ruby-dev:27273]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/check-event-arity.rb: removed (code moved to</div><div class='add'>+	  tools/generate.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/check-event-coverage.rb: removed (code moved to</div><div class='add'>+	  test/ripper/test_parser_events.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/check-scanner-event-coverage.rb: removed (code</div><div class='add'>+	  moved to test/ripper/test_scanner_events.rb).</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/list-called-events.rb: removed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/src_rb: removed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/validate.rb: removed.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: check event coverage.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb.in: update copyright year.</div><div class='add'>+</div><div class='add'>+Thu Sep 22 23:40:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_executable0): default path if environment is not</div><div class='add'>+	  set.  [ruby-dev:27281]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb (have_command): replaced with find_executable.</div><div class='add'>+</div><div class='add'>+Thu Sep 22 17:31:48 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb (TestReadline::replace_stdio):</div><div class='add'>+	  merged the patch of [ruby-dev:25232] instead of [ruby-dev:25223].</div><div class='add'>+	  (merged from ruby_1_8 branch)</div><div class='add'>+</div><div class='add'>+Wed Sep 21 23:30:44 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): generalized nmake dependent code.</div><div class='add'>+</div><div class='add'>+Wed Sep 21 14:16:30 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (SUFFIXES): no longer needed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (c): avoid nmake problem. fixed [ruby-dev:27191]</div><div class='add'>+</div><div class='add'>+Wed Sep 21 08:52:25 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: correctly compute indentation of a block</div><div class='add'>+	  scalar's parent node. [ruby-talk:150620]</div><div class='add'>+</div><div class='add'>+Wed Sep 21 08:20:24 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: add new features.</div><div class='add'>+</div><div class='add'>+Wed Sep 21 07:43:58 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (default_argv, Arguable#options): defaults strings</div><div class='add'>+	  to be parsed to Arguable instance.</div><div class='add'>+</div><div class='add'>+Wed Sep 21 02:44:09 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_0): disallow sticky world writable directory</div><div class='add'>+	  in PATH (and $LOAD_PATH).  [ruby-dev:27226]</div><div class='add'>+</div><div class='add'>+Wed Sep 21 00:32:22 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_idiv): 1.div(1.0) should return integer value.</div><div class='add'>+	  [ruby-dev:27235]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 22:25:43 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/lib/nonblock.rb: disable on platforms non-blocking flag</div><div class='add'>+	  is not available.  fixed: [ruby-dev:27187]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): protoized function pointer.</div><div class='add'>+</div><div class='add'>+Tue Sep 20 18:23:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_mark): mark th-&gt;last_status.  [ruby-dev:27179]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 18:20:33 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: require 'yaml/constants'.  [ruby-core:5776]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 17:48:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb (XMLRPC::Client::do_rpc): add charset</div><div class='add'>+	  information to content-type header.[ruby-core:5127]</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (CGIServer::serve): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (ModRubyServer::serve): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (WEBrickServlet::service): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 20 17:26:42 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_cgi.rb: set ENV["PATH"] to CGIEnvPath on</div><div class='add'>+	  windows. bcc32's runtime is not installed into system directory,</div><div class='add'>+	  so it cannot be found without this setting. [ruby-dev:27166]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 17:14:10 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: PIPE_BUF is not defined on BeOS. use _POSIX_PIPE_BUF instead.</div><div class='add'>+	  [ruby-dev:27185]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 17:10:38 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb (TestDBM::test_s_open_error): remove</div><div class='add'>+	  test_s_open_error test to detect duplicate open.</div><div class='add'>+	  [ruby-dev:27202]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 15:39:40 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_scan_scalar): prevent indicators from</div><div class='add'>+	  appearing alone or at the end of plain scalars. [ruby-core:5826]</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emit_scalar): treat typed scalar nodes</div><div class='add'>+	  as complex keys.</div><div class='add'>+</div><div class='add'>+	* lib/syck.h: version 0.60.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/basenode.rb (YAML::BaseNode#at): transform keys during</div><div class='add'>+	  key searches.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: loading of binary-typed nodes.  prevent</div><div class='add'>+	  emission of plain strings that look like symbols, but which aren't.</div><div class='add'>+</div><div class='add'>+Tue Sep 20 05:48:26 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb (setup_http_server):</div><div class='add'>+	  should not include 'webrick/https' unless 'use_ssl' because</div><div class='add'>+	  it fails where openssl is not installed.</div><div class='add'>+</div><div class='add'>+Tue Sep 20 01:24:45 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (splat_value): use to_a to splat non Array object.</div><div class='add'>+</div><div class='add'>+	* object.c (nil_to_a): remove nil.to_a.  [experimental]</div><div class='add'>+</div><div class='add'>+Tue Sep 20 01:01:41 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Fixnum): remove debug print.</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb (Rational): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 20 00:34:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_close): call rb_io_close() directly if io is a T_FILE</div><div class='add'>+	  object.  [ruby-dev:27156]</div><div class='add'>+</div><div class='add'>+Mon Sep 19 18:58:10 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_chown): should accept nil. [ruby-dev:27171]</div><div class='add'>+</div><div class='add'>+Mon Sep 19 18:29:54 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): allow pathnames to expand.</div><div class='add'>+	  [ruby-dev:27152]</div><div class='add'>+</div><div class='add'>+Mon Sep 19 15:12:15 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: do not make ripper/core.rb. [ruby-dev:26462]</div><div class='add'>+</div><div class='add'>+Mon Sep 19 14:49:19 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: add prefix `t' to tLAMBDA-related lexer</div><div class='add'>+	  events.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb: updated.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 14:39:46 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (do_block): do_block event dispatches 2 args.</div><div class='add'>+	  [ruby-dev:26964]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb: updated.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-parser-event-ids.rb: check arity mismatch.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 07:45:37 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.h, ossl_pkey_rsa.c, ossl_pkey_dsa.c:</div><div class='add'>+	  an instance variable "private" is added to OpenSSL::PKey class.</div><div class='add'>+	  this ivar is a flag that shows whether there is a private key</div><div class='add'>+	  in the instance.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c: (ossl_engine_load_privkey): set private</div><div class='add'>+	  key flag.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: add test about private detection.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 06:38:03 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: method renaming: collect_methods -&gt;</div><div class='add'>+	  collect_method.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 05:58:59 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: use module_function instead of single extend.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: test existence of singleton</div><div class='add'>+	  methods.</div><div class='add'>+</div><div class='add'>+Mon Sep 19 05:32:41 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_entry_secure): does not use chdir(2).</div><div class='add'>+</div><div class='add'>+Mon Sep 19 03:17:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_thread_flock): wrap the flock system call by</div><div class='add'>+	  TRAP_BEG/TRAP_END to enable signals.  [ruby-dev:27122]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_send): wrap the sendto and send system</div><div class='add'>+	  call by TRAP_BEG/TRAP_END to enable signals when writing to a socket</div><div class='add'>+	  which is full.  [ruby-dev:27132]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_syswrite): wrap the write system call by</div><div class='add'>+	  TRAP_BEG/TRAP_END to run signal handler in syswrite method.</div><div class='add'>+	  [ruby-dev:27134]</div><div class='add'>+</div><div class='add'>+Mon Sep 19 01:07:38 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): should define Fixnum#div.</div><div class='add'>+	  [ruby-dev:27129]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_thread_flock): wrap flock(2) by TRAP_BEG and</div><div class='add'>+	  TRAP_END.  [ruby-dev:27122]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_join): call FilePathValue() to all Pathnames to</div><div class='add'>+	  join.  [ruby-dev:27127]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path): call StringValueCStr() to ensure no nul</div><div class='add'>+	  bytes in path strings.</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): need value for return.  [ruby-dev:27127]</div><div class='add'>+</div><div class='add'>+Sun Sep 18 02:10:47 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: remove comments that are bungling up</div><div class='add'>+	  the rdoc and ri output.  output symbols as plain scalars.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_reset): emit headless</div><div class='add'>+	  documents always.</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_scan_scalar): quote scalars with any</div><div class='add'>+	  kind of surrounding line space, tabs or spaces alike.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: accept tabs as whitespace, not for indentation,</div><div class='add'>+	  but strip from plain scalars.</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: remove outdated tests.</div><div class='add'>+</div><div class='add'>+Sun Sep 18 01:10:37 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): return false if no GC run.</div><div class='add'>+</div><div class='add'>+Sat Sep 17 23:25:04 2005  sheepman  &lt;sheepman@sheepman.sakura.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Rational::inspect): should preserve original</div><div class='add'>+	  operand.  [ruby-core:05806]</div><div class='add'>+</div><div class='add'>+Sat Sep 17 23:20:27 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie): should handle multiple values for a</div><div class='add'>+	  cookie name.  [ruby-talk:156140]</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb (TestTCPSocket::test_recvfrom): typo</div><div class='add'>+	  fixed.  [ruby-dev:27123]</div><div class='add'>+</div><div class='add'>+Sat Sep 17 20:58:56 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): fixed deadlock bug.</div><div class='add'>+	  because select(2) modifies its fd_set arguments, it must be</div><div class='add'>+	  restored sometimes.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): performance improvement when</div><div class='add'>+	 'always readable/writable handles' and sockets are passed.</div><div class='add'>+	  sockets should be polled every time.</div><div class='add'>+</div><div class='add'>+	    require "net/http"</div><div class='add'>+</div><div class='add'>+	    Thread.new {</div><div class='add'>+	      loop do</div><div class='add'>+		STDOUT.write(".") # busy on console (this is worst case though)</div><div class='add'>+	      end</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    # socket operation took long time. (sometimes timed out)</div><div class='add'>+	    Net::HTTP.start("www.ruby-lang.org") do |http|</div><div class='add'>+		http.get("/cgi-bin/cvsweb.cgi/ruby/array.c?rev=1.179")</div><div class='add'>+	    end</div><div class='add'>+</div><div class='add'>+Sat Sep 17 14:54:40 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb (test_open_pipe, test_with_stdio):</div><div class='add'>+	  these tests are working now, so turned on. (windows)</div><div class='add'>+</div><div class='add'>+Sat Sep 17 14:18:15 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): I hope performance problem was</div><div class='add'>+	  solved.</div><div class='add'>+</div><div class='add'>+Sat Sep 17 13:45:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): console support is back.</div><div class='add'>+	  but still has performance problem because I loosely took 1 second</div><div class='add'>+	  for wait time. I'll fix it later. (The reason I drastically changed</div><div class='add'>+	  the code is that I wanted to implement the fileset management as</div><div class='add'>+	  single function, and I was worried that if pipe or console</div><div class='add'>+	  was always available, socket may not be processed any time)</div><div class='add'>+</div><div class='add'>+Sat Sep 17 11:24:16 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): select for socket didn't work.</div><div class='add'>+	  this caused deadlock in drb test. this happened because GetFileType</div><div class='add'>+	  for socket handle returns FILE_TYPE_PIPE. Of course, it's not a</div><div class='add'>+	  pipe. So socket handle didn't reach winsock's select function.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): read for pipe was still blocked</div><div class='add'>+	  even if writer handle was closed.</div><div class='add'>+</div><div class='add'>+	    r,w = IO.pipe</div><div class='add'>+</div><div class='add'>+	    Thread.new {</div><div class='add'>+	      sleep 3; puts "------- 1"</div><div class='add'>+	      w.puts("foo")</div><div class='add'>+	      sleep 3; puts "------- 2"</div><div class='add'>+	      w.puts("boo")</div><div class='add'>+	      sleep 3; puts "------- 3"</div><div class='add'>+	      w.close</div><div class='add'>+	    }</div><div class='add'>+</div><div class='add'>+	    until r.eof? # should break by w.close but didn't.</div><div class='add'>+	      puts r.gets</div><div class='add'>+	    end</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): temporary reverted console support</div><div class='add'>+	  but it'll be back soon.</div><div class='add'>+</div><div class='add'>+Sat Sep 17 10:42:13 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string</div><div class='add'>+	  should call Kernel.eval on caller's safe-level instead of slave's</div><div class='add'>+	  safe-level (Of course, the given script should be evaluated on</div><div class='add'>+	  slave's safe-level).</div><div class='add'>+</div><div class='add'>+Sat Sep 17 09:45:26 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_substr): should propagate taintness even for</div><div class='add'>+	  empty strings.  [ruby-dev:27121]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_aref): should infect result if range argument</div><div class='add'>+	  is tainted.  [ruby-dev:27121]</div><div class='add'>+</div><div class='add'>+Sat Sep 17 08:35:39 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#normalize): fixed</div><div class='add'>+	  strange RSS::Maker::Item#max_size behavior.</div><div class='add'>+	  Thanks to Kazuhiko &lt;kazuhiko@fdiary.net&gt;.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_1.0.rb (RSS::TestMaker10#test_items): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 17 08:02:53 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: supported DIGEST-MD5.  Thanks, Mathieu Arnold.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: use fcall instead of send.  Thanks, Satoru</div><div class='add'>+	  Takabayashi.</div><div class='add'>+</div><div class='add'>+Fri Sep 16 22:45:49 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_extname): empty string for path name ending with a</div><div class='add'>+	  period.  fixed: [ruby-core:05651]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_join): smarter behavior at edge cases.</div><div class='add'>+	  fixed: [ruby-core:05706]</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_memerror, ruby_xmalloc, ruby_xrealloc, rb_newobj): just</div><div class='add'>+	  abandon if no memory available, when interpreter is not running.</div><div class='add'>+	  [ruby-dev:27104]</div><div class='add'>+</div><div class='add'>+	* gc.c (garbage_collect): return whether GC could run.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): fix delimiter bug.  fixed: [ruby-dev:27105]</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_aref, dir_s_glob): allow multiple patterns.</div><div class='add'>+	  [ruby-dev:27110]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (cmdglob): enable brace expansion.</div><div class='add'>+</div><div class='add'>+Fri Sep 16 18:34:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/node.c (syck_replace_str): was using return from the</div><div class='add'>+	  void function.  a patch from MIYAMUKO Katsuyuki</div><div class='add'>+	  &lt;miyamuko at mtb.biglobe.ne.jp&gt;.  [ruby-dev:27111]</div><div class='add'>+</div><div class='add'>+Fri Sep 16 14:48:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix typo on MultiTkIp#bg_eval_string</div><div class='add'>+</div><div class='add'>+Fri Sep 16 12:02:12 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_resolver_transfer): remove C++ style</div><div class='add'>+	  comment (//).  [ruby-core:05793]</div><div class='add'>+</div><div class='add'>+Fri Sep 16 00:17:03 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: unintentionally overwritten changes by</div><div class='add'>+	  Usa.  reverted.</div><div class='add'>+</div><div class='add'>+Fri Sep 16 00:03:11 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#initialize): should set</div><div class='add'>+	  $stdout.binmode.</div><div class='add'>+</div><div class='add'>+Thu Sep 15 23:25:21 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.5.</div><div class='add'>+</div><div class='add'>+	  #nnn is a ticket number at http://dev.ctor.org/soap4r</div><div class='add'>+</div><div class='add'>+	  * SOAP</div><div class='add'>+</div><div class='add'>+	    * allow to configure an envelope namespace of SOAP request. (#124)</div><div class='add'>+		TemporaryNamespace = 'http://www.w3.org/2003/05/soap-envelope'</div><div class='add'>+		@client.options["soap.envelope.requestnamespace"] =</div><div class='add'>+		  TemporaryNamespace</div><div class='add'>+		@client.options["soap.envelope.responsenamespace"] =</div><div class='add'>+		  TemporaryNamespace</div><div class='add'>+		@client.do_proc(...)</div><div class='add'>+</div><div class='add'>+	    * let SOAP request XML indent space configurable.  see</div><div class='add'>+	      "soap.envelope.no_indent" option. (#130)</div><div class='add'>+</div><div class='add'>+	    * let external CES configurable.</div><div class='add'>+	      ex. client["soap.mapping.external_ces"] = 'SJIS'.  $KCODE is used</div><div class='add'>+	      by default. (#133)</div><div class='add'>+		external CES ::= CES used in Ruby object of client and server</div><div class='add'>+		internal CES ::= CES used in SOAP/OM</div><div class='add'>+</div><div class='add'>+	    * add iso-8859-1 external CES support. (#106)</div><div class='add'>+</div><div class='add'>+	    * fixed illegal 'qualified' handling of elements.  it caused</div><div class='add'>+	      ASP.NET interoperability problem. (#144)</div><div class='add'>+</div><div class='add'>+	    * added 'soap.envelope.use_numeric_character_reference' (boolean)</div><div class='add'>+	      option to let query XML use numeric character reference in XML,</div><div class='add'>+	      not plain UTF-8 character.  !GoogleSearch server seems to not</div><div class='add'>+	      allow plain UTF-8 character since 2005-08-15 update. (#147)</div><div class='add'>+</div><div class='add'>+	    * SOAP::Header::SimpleHeader (de)serialization throws an exception</div><div class='add'>+	      on !SimpleHeader.on_(in|out)bound when header is a String.  so we</div><div class='add'>+	      could not use a simple single element headerItem.  fixed.  thanks</div><div class='add'>+	      to emil. (#129)</div><div class='add'>+</div><div class='add'>+	    * out parameter of rpc operation did not work.  (#132)</div><div class='add'>+</div><div class='add'>+	    * follow HTTP redirect only if using http-access2.  (#125) (#145)</div><div class='add'>+</div><div class='add'>+	    * add a workaround for importing an WSDL whose path begins with</div><div class='add'>+	      drive letter.  (#115)</div><div class='add'>+</div><div class='add'>+	  * WSDL</div><div class='add'>+</div><div class='add'>+	    * SOAP Data which is defined as a simpletype was not mapped</div><div class='add'>+	      correctly to Ruby obj when using wsdl2ruby.rb generated classdef</div><div class='add'>+	      file. (#123)</div><div class='add'>+</div><div class='add'>+	    * rpc/literal support. (#118)</div><div class='add'>+</div><div class='add'>+	    * re-implemented local element qualify/unqualify control.  handles</div><div class='add'>+	      elementFormDefault and form in WSDL.  (#119)</div><div class='add'>+</div><div class='add'>+	    * Array of an element which has simpleType causes a crash. (#128)</div><div class='add'>+</div><div class='add'>+	    * parameterOrder may not contain return part so it can be shorter</div><div class='add'>+	      than parts size.  Thanks to Hugh.  (#139)</div><div class='add'>+</div><div class='add'>+	  * Samples</div><div class='add'>+</div><div class='add'>+	    * added !BasicAuth client sample. (#117)</div><div class='add'>+</div><div class='add'>+	    * added Base64 client/server sample.</div><div class='add'>+</div><div class='add'>+	    * added Flickr SOAP interface client sample. (#122)</div><div class='add'>+</div><div class='add'>+	    * added !SalesForce client sample. (#135)</div><div class='add'>+</div><div class='add'>+	    * updated Thawte CA certificate for !GoogleAdWords sample.</div><div class='add'>+</div><div class='add'>+	    * updated a client script with the newer version made by Johan.</div><div class='add'>+	      thanks!</div><div class='add'>+</div><div class='add'>+	    * shortened long file names. (#120)</div><div class='add'>+</div><div class='add'>+	    * fixed typo in authheader sample. (#129)</div><div class='add'>+</div><div class='add'>+	    * updated deprecated method usage.  (#138)</div><div class='add'>+</div><div class='add'>+Thu Sep 15 22:40:27 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (test_exit_action): skip the test using</div><div class='add'>+	  fork on fork-less platforms.</div><div class='add'>+</div><div class='add'>+Thu Sep 15 13:54:33 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: add :read_timeout option.</div><div class='add'>+	  [ruby-core:4848]</div><div class='add'>+</div><div class='add'>+Thu Sep 15 11:39:18 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: If a dialog does not show up yet,</div><div class='add'>+	  TkDialogObj#name raises an exception. [ruby-talk:156109]</div><div class='add'>+</div><div class='add'>+Thu Sep 15 11:01:58 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec): remove unnecessary CloseHandle().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (extract_console_fd, peek_console): new functions.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): check consoles by polling them.</div><div class='add'>+</div><div class='add'>+Thu Sep 15 00:18:24 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (Net::Telnet::waitfor): replace sysread with</div><div class='add'>+	  readpartial.  [ruby-talk:127641]</div><div class='add'>+</div><div class='add'>+Wed Sep 14 23:28:28 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (collect_file_fd): rename from extract_file_fd.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (extract_pipe_fd, peek_pipe): new functions.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select): check pipes by polling them.</div><div class='add'>+</div><div class='add'>+Wed Sep 14 22:40:26 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (ruby_glob): glob function not using ruby exception system.</div><div class='add'>+</div><div class='add'>+Wed Sep 14 17:24:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: changed `foo (*bar)_((boo))' to `foo (*bar)(boo)`.</div><div class='add'>+</div><div class='add'>+	* enumerator.c, eval.c, gc.c, intern.h, io.c, process.c, ruby.c,</div><div class='add'>+	  ruby.h, signal.c: ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 14 15:06:22 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c: changed `foo _((boo))' to `foo(boo)`. [ruby-dev:27056]</div><div class='add'>+</div><div class='add'>+	* defines.h, dir.c, dln.h, enumerator.c, env.h, error.c, eval.c, file.c,</div><div class='add'>+	  gc.c, hash.c, inits.c, intern.h, io.c, lex.c, marshal.c, missing.h,</div><div class='add'>+	  node.h, numeric.c, pack.c, process.c, re.h, ruby.c, ruby.h, rubyio.h,</div><div class='add'>+	  rubysig.h, signal.c, sprintf.c, st.h, string.c, struct.c, time.c,</div><div class='add'>+	  util.c, util.h, variable.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 13 22:09:40 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (Logger): added formatter accessor to logger for</div><div class='add'>+	  dictating the way in which the logger should format the messages it</div><div class='add'>+	  displays.  Thanks to Nicholas Seckar (cf. [ruby-talk:153391]) and</div><div class='add'>+	  Daniel Berger.</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (Logger): added VERSION constant.</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: removed document for LogDevice. It is an</div><div class='add'>+	  implementation detail and is not a public interface.</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: added tests.</div><div class='add'>+</div><div class='add'>+Tue Sep 13 21:47:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (BEGIN_CALLARGS): pop halfly pushed status.</div><div class='add'>+	  fixed: [ruby-dev:26881]</div><div class='add'>+</div><div class='add'>+Tue Sep 13 20:24:37 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (PRINTF_ARGS): new macro for printf style argument checking.</div><div class='add'>+</div><div class='add'>+Tue Sep 13 15:41:29 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: wrote documentation of HTTPRequest/HTTPResponse</div><div class='add'>+	  classes.</div><div class='add'>+</div><div class='add'>+Tue Sep 13 14:27:47 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* string.c, missing.h: failed to build on powerpc-apple-darwin7.9.0</div><div class='add'>+	  because of crypt argument's constness mismatch. (I hope this works)</div><div class='add'>+	  (http://mput.dip.jp/autobuild/ruby-trunk/log/20050913T110001.gz)</div><div class='add'>+</div><div class='add'>+Tue Sep 13 12:33:05 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: reworking YAML::Stream to use the new</div><div class='add'>+	  emitter.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/stream.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: added Object#yaml_new.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/tag.rb: the tag_subclasses? method now</div><div class='add'>+	  shows up in the class.  allow taguri to be set using an accessor.</div><div class='add'>+	  continue support of Object#to_yaml_type.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: new emitter code.  yaml_new and yaml_initialize</div><div class='add'>+	  get called, should they be present.  consolidated all the diaspora of 	  internal node types into the family below YAML::Syck::Node -- Map,</div><div class='add'>+	  Seq, Scalar -- all of whom are SyckNode structs pointing to</div><div class='add'>+	  Ruby data.  moved Object#yaml_new into the node_import and made it</div><div class='add'>+	  the default behavior.  the target_class is always called with</div><div class='add'>+	  yaml_new, prepended a parameter, which is the klass.  loaded nodes</div><div class='add'>+	  through GenericResolver show their style.</div><div class='add'>+	  new Resolver#tagurize converts type ids to taguris.</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.re: were 'y' and 'n' seriously omitted??</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c: renovated emitter, walks the tree in advance.</div><div class='add'>+	  consolidated redundant block_styles struct into</div><div class='add'>+	  the scalar_style struct.  (this means loaded nodes can now</div><div class='add'>+	  be sent back to emitter and preserve at least its very basic</div><div class='add'>+	  formatting.)</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: headless documents of any kind allowed.</div><div class='add'>+</div><div class='add'>+	* ext/syck/node.c: new syck_replace_str methods and syck_empty_*</div><div class='add'>+	  methods for rewriting node contents, while keeping the ID</div><div class='add'>+	  and other setup info.  added syck_seq_assign.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: reflect block_styles and new node functions.</div><div class='add'>+</div><div class='add'>+Tue Sep 13 08:09:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (new_ostruct_member): Object#send no longer call</div><div class='add'>+	  private methods.  [ruby-dev:27044]</div><div class='add'>+</div><div class='add'>+	* test/rss/test_dublincore.rb, test/rss/test_trackback.rb,</div><div class='add'>+	  test/ruby/test_eval.rb, test/socket/test_socket.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda (test_call_with_block): lambda makes new scope</div><div class='add'>+	  for formal block parameter.</div><div class='add'>+</div><div class='add'>+Tue Sep 13 01:17:45 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_save_safe_level): no need to restrict safe level</div><div class='add'>+	  memoize in $SAFE&gt;=3.  [ruby-dev:27050]</div><div class='add'>+</div><div class='add'>+Tue Sep 13 00:02:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (apply2files): stricter callback definition.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_path_check): constified.</div><div class='add'>+</div><div class='add'>+Mon Sep 12 20:53:06 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkcs7.rb (test_enveloped): skip this test</div><div class='add'>+	  to avoid a bug of PKCS7_encrypt() (only if ext/openssl is</div><div class='add'>+	  compiled with OpenSSL-0.9.7d or earlier versions).</div><div class='add'>+	  http://www.mail-archive.com/openssl-dev@openssl.org/msg17376.html</div><div class='add'>+</div><div class='add'>+Mon Sep 12 20:32:00 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[hc] (rb_w32_argv_size, ...): reverted my latest change</div><div class='add'>+	  to avoid incompatible pointer warning. (mingw32)</div><div class='add'>+</div><div class='add'>+Mon Sep 12 19:58:53 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c: avoid warning of const to non-const convertion.</div><div class='add'>+	  [ruby-dev:27041]</div><div class='add'>+</div><div class='add'>+	* eval.c, io.c, ruby.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 12 19:26:29 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: moved to ANSI function style from K&amp;R function style.</div><div class='add'>+	  (used protoize on windows, so still K&amp;R remains on #ifdef part of</div><div class='add'>+	   other platforms. And  `foo _((boo))' stuff is still there)</div><div class='add'>+	   [ruby-dev:26975]</div><div class='add'>+</div><div class='add'>+	* bignum.c, class.c, compar.c, dir.c, dln.c, dmyext.c, enum.c,</div><div class='add'>+	  enumerator.c, error.c, eval.c, file.c, gc.c, hash.c, inits.c,</div><div class='add'>+	  io.c, main.c, marshal.c, math.c, numeric.c, object.c, pack.c,</div><div class='add'>+	  prec.c, process.c, random.c, range.c, re.c, regcomp.c, regenc.c,</div><div class='add'>+	  regerror.c, regexec.c, regparse.c, regparse.h, ruby.c, signal.c,</div><div class='add'>+	  sprintf.c, st.c, string.c, struct.c, time.c, util.h, variable.c,</div><div class='add'>+	  version.c: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 12 14:03:33 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb: remove locking test, which may not be</div><div class='add'>+	  supported on some platforms.  [ruby-dev:27030]</div><div class='add'>+</div><div class='add'>+Sun Sep 11 23:23:02 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (starttls): supported the STARTTLS command.</div><div class='add'>+</div><div class='add'>+Sun Sep 11 22:18:07 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bin/erb (ERB::Main#run): set ERB#filename so that it is used</div><div class='add'>+	  when reporting syntax/runtime errors. Tabs converted to spaces.</div><div class='add'>+</div><div class='add'>+Sat Sep 10 22:34:19 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, bignum.c: protoize.</div><div class='add'>+</div><div class='add'>+Sat Sep 10 00:23:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (splat_value): simpler and consistent array conversion</div><div class='add'>+	  for argument splat.  [yarv-dev:599]</div><div class='add'>+</div><div class='add'>+Fri Sep  9 16:45:25 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): make empty strings to keep taintness,</div><div class='add'>+	  and a little improvement.  [ruby-dev:26900]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_try), ext/iconv/extconf.rb: get rid of meta</div><div class='add'>+	  characters in command line option.  fixed: [ruby-talk:155369]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: protoized.</div><div class='add'>+</div><div class='add'>+Thu Sep  8 14:58:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* merged a patch from Takahiro Kambe &lt;taca at back-street.net&gt; to</div><div class='add'>+	  support DragonFly BSD.  [ruby-dev:26984]</div><div class='add'>+</div><div class='add'>+Thu Sep  8 13:14:57 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/strchr.c (strrchr): fixed a bug in detecting NUL in a</div><div class='add'>+	  string.  [ruby-dev:26985]</div><div class='add'>+</div><div class='add'>+Wed Sep  7 17:29:27 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_s_by_id):</div><div class='add'>+	  OpenSSL::Engine.by_id calls given block before calling</div><div class='add'>+	  ENGINE_init (block parameter is the return value of this method</div><div class='add'>+	  itself).  this functionality is useful to load dynamic shared</div><div class='add'>+	  engines.</div><div class='add'>+</div><div class='add'>+		require "openssl"</div><div class='add'>+		pkcs11 = OpenSSL::Engine.by_id("dynamic"){|e|</div><div class='add'>+		  e.ctrl_cmd("SO_PATH", "/usr/lib/opensc/engine_pkcs11.so")</div><div class='add'>+		  e.ctrl_cmd("LIST_ADD", "1")</div><div class='add'>+		  e.ctrl_cmd("LOAD")</div><div class='add'>+		}</div><div class='add'>+		pkcs11.ctrl_cmd("PIN", "secret")</div><div class='add'>+		key = pkcs11.load_private_key</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_ctrl_cmd): new method</div><div class='add'>+	  OpenSSL::Engine#ctrl_cmd. it wraps ENGINE_ctrl_cmd_string.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_get_cmds): new method</div><div class='add'>+	  OpenSSL::Engine#cmds. it returns engine command definitions.</div><div class='add'>+</div><div class='add'>+Wed Sep  7 15:48:37 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (asn1str_to_str): new function.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c: new class OpenSSL::PKCS7::RecipientInfo.</div><div class='add'>+	  this class wraps PKCS7_RECIP_INFO struct.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c: OpenSSL::PKCS7::Signer is renamed to</div><div class='add'>+	  OpenSSL::PKCS7::SignerInfo. ("Signer" remains as an alias of</div><div class='add'>+	  SignerInfo.)</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkcs7.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Sep  7 12:55:08 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: abolish mod === tempfile to avoid a problem</div><div class='add'>+	  [ruby-dev:26967].</div><div class='add'>+</div><div class='add'>+Wed Sep  7 10:45:15 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_switch): convert all exceptions to</div><div class='add'>+	  SystemExit.  fixed: [ruby-core:05724]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_terminated): show backtrace before propagate</div><div class='add'>+	  exceptions to main thread.</div><div class='add'>+</div><div class='add'>+Wed Sep  7 09:21:41 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[hc] (rb_w32_utime): constified.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (rb_w32_stat): added prototype.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[hc] (rb_w32_argv_size,rb_w32_join_argv,rb_w32_aspawn):</div><div class='add'>+	  changed `char *const *' to `const char *const *'. (constify string)</div><div class='add'>+</div><div class='add'>+Wed Sep  7 08:35:04 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, configure.in (MINIOBJS): miniruby on HP-UX can not load</div><div class='add'>+	  extension libraries.</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignew_1, bigadd): K&amp;R style argument actually can't be</div><div class='add'>+	  defined as char.</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c: ANSI compiler supports const keyword.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/extconf.rb: reject platforms which has inttypes.h</div><div class='add'>+	  but no 64bit integer.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (what_type?): guesstimate type.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (setup_passwd), ext/etc/extconf.rb: pw_age might be</div><div class='add'>+	  char*.  fixed: [ruby-core:05470]</div><div class='add'>+</div><div class='add'>+Wed Sep  7 08:32:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_times): should taint empty strings as well.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): make class_variable_{get,set} public.</div><div class='add'>+	  [ruby-dev:26965]</div><div class='add'>+</div><div class='add'>+Mon Sep  5 22:28:46 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, mlhs_node, lhs, arg, method_call): aref_args might be</div><div class='add'>+	  nothing.  fixed: [ruby-dev:26952]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: added new tokens.  fixed: [ruby-dev:26952]</div><div class='add'>+</div><div class='add'>+Mon Sep  5 17:03:07 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb: should raise ENOENT if root entry does not exist.</div><div class='add'>+	  [ruby-list:41054]</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb: a patch from Florian Gross &lt;florgro at gmail.com&gt;</div><div class='add'>+	  merged to allow recursive inspect (and to_s) for OpenStruct.</div><div class='add'>+	  [ruby-core:05532]</div><div class='add'>+</div><div class='add'>+Mon Sep  5 08:20:19 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/observer.rb: a patch from nornagon &lt;nornagon at gmail.com&gt;</div><div class='add'>+	  merged to allow arbitrary names for update methods.</div><div class='add'>+	  [ruby-core:05416]</div><div class='add'>+</div><div class='add'>+Mon Sep  5 07:01:12 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl/lib/openssl/buffering.rb (Buffering#do_write):</div><div class='add'>+	  should clear data from the buffer which already been output.</div><div class='add'>+</div><div class='add'>+Sun Sep  4 15:01:35 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg): Ripper should not do semantic check.</div><div class='add'>+	  [ruby-dev:26948]</div><div class='add'>+</div><div class='add'>+Sat Sep  3 23:52:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_fcall): new method to avoid inefficiency of</div><div class='add'>+	  obj.instance_eval{send(...)} tricks.</div><div class='add'>+</div><div class='add'>+Sat Sep  3 13:59:31 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#descend): Pathname.new("./a/b/c").descend</div><div class='add'>+	  didn't yield "."</div><div class='add'>+	  (Pathname#ascend): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep  2 23:51:54 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg): f_norm_arg is a VALUE in ripper, not an ID.</div><div class='add'>+	  fixed: [ruby-dev:26942]</div><div class='add'>+</div><div class='add'>+	* lib: do not use __send__ to access private methods.  [ruby-dev:26935]</div><div class='add'>+</div><div class='add'>+Thu Sep  1 17:11:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): wrong condition for $SAFE restoration.</div><div class='add'>+</div><div class='add'>+Thu Sep  1 14:12:45 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: On Tcl8.5, MultiTkIp#invoke_hidden doesn't</div><div class='add'>+	  work (gives wrong order of arguments).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add MultiTkIp#invoke_hidden_on_namespace</div><div class='add'>+	  to support '-namespace' option of 'interp invokehidden' command</div><div class='add'>+	  on Tcl8.5.</div><div class='add'>+</div><div class='add'>+Wed Aug 31 14:41:30 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (OPTFLAGS): default global optimization to</div><div class='add'>+	  disabled for all VC++ versions.  fixed: [ruby-dev:26897]</div><div class='add'>+</div><div class='add'>+Wed Aug 31 10:36:09 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_detach, proc_setmaxgroups): missing argument type</div><div class='add'>+	  declaration. (I recommend ANSI-style function)</div><div class='add'>+</div><div class='add'>+Wed Aug 31 06:59:01 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_scan): already String#scan behaves differently</div><div class='add'>+	  regarding if block is given.</div><div class='add'>+</div><div class='add'>+Tue Aug 30 23:49:34 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, dir.c, enum.c, hash.c, io.c, range.c, string.c, struct.c:</div><div class='add'>+	  let enumerable methods return Enumerator.  [ruby-dev:26924]</div><div class='add'>+</div><div class='add'>+	* intern.h (RETURN_ENUMERATOR): utility macro for enumerable methods.</div><div class='add'>+</div><div class='add'>+Tue Aug 30 23:25:45 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: no need to restart at exit.</div><div class='add'>+</div><div class='add'>+Tue Aug 30 23:20:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): initialization miss.  fixed: [ruby-dev:26917]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (xsystem, xpopen): no longer expand by Config.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command, cc_command, cpp_command): expand</div><div class='add'>+	  variables at once, and quote hdrdir.  fixed: [ruby-core:05680]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (libpathflag): quote paths.</div><div class='add'>+</div><div class='add'>+Tue Aug 30 19:34:27 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/md5/md5ossl.h, ext/digest/rmd160/rmd160ossl.h,</div><div class='add'>+	  ext/digest/sha1/sha1ossl.h: include &lt;stddef.h&gt; to avoid</div><div class='add'>+	  error in compilation with OpenSSL-0.9.8. [ruby-list:41068]</div><div class='add'>+</div><div class='add'>+Tue Aug 30 16:19:40 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb: bug fix. [ruby-dev: 26920]</div><div class='add'>+</div><div class='add'>+Tue Aug 30 16:13:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_count): new method.  [ruby-dev:26895]</div><div class='add'>+</div><div class='add'>+Tue Aug 30 12:45:15 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_send): do not call private methods if the receiver</div><div class='add'>+	  is specified.  [ruby-talk:153672]</div><div class='add'>+</div><div class='add'>+Mon Aug 29 19:47:18 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb: improper exceptions. [ruby-dev:26870]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb: support the case when non-ruby code exists before</div><div class='add'>+	  shebang. (this is needed when ri.bat is executed on windows)</div><div class='add'>+</div><div class='add'>+Mon Aug 29 18:58:05 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb: make IRB -I option that is same behavior for ruby.</div><div class='add'>+	  [ruby-dev:26872]</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb: support to print help message when OS locale is</div><div class='add'>+	  ja_JP.utf-8. [ruby-dev:26872]</div><div class='add'>+</div><div class='add'>+Mon Aug 29 01:43:05 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#descend): new method.</div><div class='add'>+	  (Pathname#ascend): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 29 00:35:09 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: require 'date/format' instead of 'parsedate'.</div><div class='add'>+	  (Time.parse): extract fractional seconds using Date._parse.</div><div class='add'>+	  (Time.strptime): extract fractional seconds using Date._strptime.</div><div class='add'>+	  [ruby-talk:153859]</div><div class='add'>+</div><div class='add'>+Sat Aug 27 20:13:31 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c ({curses,window}_clrtoeol): added. suggested</div><div class='add'>+	  by Reyn Vlietstra.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: chtype in curses is not `char', rather `long'.</div><div class='add'>+	  [ruby-Bugs:2298]</div><div class='add'>+</div><div class='add'>+	* ext/curses/view.rb: String =~ String is deprecated.</div><div class='add'>+</div><div class='add'>+Thu Aug 25 15:48:58 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: suppress warnings. (win32)</div><div class='add'>+</div><div class='add'>+Wed Aug 24 11:01:26 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb (test_shifting_size): should close log</div><div class='add'>+	  device before unlink, since some platform cannot unlink opened</div><div class='add'>+	  file.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 06:07:02 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/digest.rb: added SHA224, SHA256, SHA384 and SHA512.</div><div class='add'>+	  these features are enabled if this library is compiled with</div><div class='add'>+	  OpenSSL 0.9.8 or later.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_digest.rb: add test for new digests.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 05:47:04 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): try to decode</div><div class='add'>+	  the argument as a string.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ns_pki.c (ossl_spki_to_der): new method.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_initialize): should</div><div class='add'>+	  set @time to avoid warning.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths,</div><div class='add'>+	  X509_STORE_add_cert, X509_STORE_add_crl): should raise error if</div><div class='add'>+	  wrapped functions fails.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_set_ciphers): fix error message.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509req.c (ossl_x509req_set_attributes): get rid</div><div class='add'>+	  of unused variable.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_ns_spki.rb: add new file.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509store.rb: add test for error.</div><div class='add'>+</div><div class='add'>+Tue Aug 23 01:11:40 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (ruby__sfvwrite): should move `buf' to the end of</div><div class='add'>+	  `result'. [ruby-dev:26859]</div><div class='add'>+</div><div class='add'>+Mon Aug 22 23:51:19 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: ONIG_OPTION_CAPTURE_GROUP conflicts with</div><div class='add'>+	  RE_OPTION_ONCE.  [ruby-dev:26852]</div><div class='add'>+</div><div class='add'>+Mon Aug 22 20:11:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD__sprint): needs to call vwrite function</div><div class='add'>+	  pointer.  fixed: [ruby-dev:26854]</div><div class='add'>+</div><div class='add'>+Sat Aug 20 23:55:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): update paren_nest for brackets [].</div><div class='add'>+</div><div class='add'>+Sun Aug 21 00:10:23 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/xmlSchema/importer.rb (WSDL::XMLSchema::Importer#fetch): add</div><div class='add'>+	  a workaround for importing an WSDL whose path begins with drive</div><div class='add'>+	  letter.  [ruby-dev:26242]</div><div class='add'>+</div><div class='add'>+Sat Aug 20 22:05:25 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c (code_is_in_cclass_node): check code size.</div><div class='add'>+	  [ruby-dev:26840]</div><div class='add'>+</div><div class='add'>+Sat Aug 20 22:37:13 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb (write, shift_log?, shift_log): file shifting race</div><div class='add'>+	  condition bug fixed.  [ruby-dev:26764]</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: tests.</div><div class='add'>+</div><div class='add'>+Fri Aug 19 18:13:39 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.apply_offset): fix a problem with last day of</div><div class='add'>+	  month.  reported by Lucas Nussbaum.  [ruby-talk:152866]</div><div class='add'>+</div><div class='add'>+Thu Aug 18 11:05:36 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (socketpair_internal): need to call open_ifs_socket()</div><div class='add'>+	  to create sockets instead of winsock's socket().</div><div class='add'>+	  fixed: [yarv-dev:581]</div><div class='add'>+</div><div class='add'>+Wed Aug 17 23:58:05 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (terminate_process): take String message.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_switch): propagate the exception caused thread</div><div class='add'>+	  termination directly.  fixed: [ruby-core:05552]</div><div class='add'>+</div><div class='add'>+Wed Aug 17 21:20:05 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: ensure that symbol_to_option is private_class_method</div><div class='add'>+	  and all other methods are module_function</div><div class='add'>+	  fixed: [ruby-dev:26808]</div><div class='add'>+</div><div class='add'>+Wed Aug 17 00:05:46 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_method): preserve safe level in the environment</div><div class='add'>+	  where a method is defined .</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): restore preserved safe level in the method</div><div class='add'>+	  execution.</div><div class='add'>+</div><div class='add'>+	* parse.y (lambda): need separate block variable stack</div><div class='add'>+	  manipulation and lpar_beg maintenance.  based on a patch found</div><div class='add'>+	  in [ruby-core:05551] from Mauricio Fernandez &lt;mfp at acm.org&gt;.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): adjust lpar_beg after tLAMBEG and</div><div class='add'>+	  kDO_LAMBDA. [ruby-core:05551]</div><div class='add'>+</div><div class='add'>+Mon Aug 15 07:24:38 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_check_to_integer): add declaration.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_to_integer, rb_check_to_integer): argument constified.</div><div class='add'>+</div><div class='add'>+Mon Aug 15 00:38:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_rescue2): reduce PUSH_TAG() as well as NODE_RESCUE.</div><div class='add'>+	  [ruby-dev:26800]</div><div class='add'>+</div><div class='add'>+	* range.c (range_check, range_init): reduce useless exceptions.</div><div class='add'>+</div><div class='add'>+Mon Aug 15 00:34:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yycompile): remove unreachable code.  [yarv-dev:570]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 22:16:12 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_entry_secure): forgot final chdir.</div><div class='add'>+</div><div class='add'>+Sat Aug 13 22:07:49 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_entry_secure): uses chdir(2) and check</div><div class='add'>+	  if current directory is correct. [ruby-dev:26100] [ruby-dev:26226]</div><div class='add'>+</div><div class='add'>+Sat Aug 13 21:11:05 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_VARIANT class.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testall.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEVARIANT.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Aug 13 18:51:26 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_block_pass): distinguish current block from others.</div><div class='add'>+	  fixed: [ruby-dev:26274]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_set_string): disallow nil.</div><div class='add'>+	  http://www.rubyist.net/~nobu/t/20050811.html#c05</div><div class='add'>+</div><div class='add'>+Sat Aug 13 08:01:59 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: Kconv.kconv is now alias of Kconv.conv</div><div class='add'>+	* ext/nkf/lib/kconv.rb: remove nkf dependent symbols from SYMBOL_TO_OPTION</div><div class='add'>+</div><div class='add'>+Fri Aug 12 17:06:53 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_larglist): allow optional arguments even when</div><div class='add'>+	  parentheses are omitted.  based on Nobu's patch from</div><div class='add'>+	  http://www.rubyist.net/~nobu/t/20050805.html</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): update &amp; maintain lpar_beg for detect</div><div class='add'>+	  lambda parameters.</div><div class='add'>+</div><div class='add'>+Thu Aug 11 23:29:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: keep holding string after closed.</div><div class='add'>+</div><div class='add'>+Thu Aug 11 20:48:40 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_equal, fix_cmp, fix_gt, fix_ge, fix_lt, fix_le):</div><div class='add'>+	  reduce coercing when a method knows about a operand type.</div><div class='add'>+	  [ruby-dev:26789]</div><div class='add'>+</div><div class='add'>+Thu Aug 11 13:01:48 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss: fixed sort bug. [ruby-list:41018]</div><div class='add'>+</div><div class='add'>+	* lib/rss/1.0.rb (RSS::RDF::Channel#setup_maker_attributes):</div><div class='add'>+	  removed self.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb (RSS::Maker::ItemsBase#&lt;=&gt;): use #date</div><div class='add'>+	  instead of @date.</div><div class='add'>+	  (RSS::Maker::Base::self.def_array_element): added #size.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/1.0.rb</div><div class='add'>+	  (RSS::Maker::RSS10::Channel#to_rss,</div><div class='add'>+	   RSS::Maker::RSS10::Items::Item#to_rss): cleared dc_dates set</div><div class='add'>+	  upped by using #date.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/dublincore.rb</div><div class='add'>+	  (RSS::Maker::ChannelBase, RSS::Maker::ItemsBase::ItemBase):</div><div class='add'>+	  fixed opposite alias.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_setup_maker_1.0.rb</div><div class='add'>+	  (RSS::TestSetupMaker10::test_setup_maker_items_sort): added some</div><div class='add'>+	  tests for RSS::Maker::ItemsBase#do_sort.</div><div class='add'>+</div><div class='add'>+Wed Aug 10 12:01:20 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: simplifies Delegator classes; SimpleDelegator</div><div class='add'>+	  now uses method_missing for all methods.</div><div class='add'>+</div><div class='add'>+Wed Aug 10 10:38:50 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_mul0): multiply two numbers (x, y) without</div><div class='add'>+	  normalizing the result.  x should be a big number.</div><div class='add'>+	  [ruby-dev:26778]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_pow): use rb_big_mul0() instead of</div><div class='add'>+	  rb_big_mul().</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_or, rb_ary_and, rb_ary_plus, rb_ary_diff):</div><div class='add'>+	  revert the change on 2005-08-03.  Set operation on other item</div><div class='add'>+	  should have in separate methods.</div><div class='add'>+</div><div class='add'>+	* parse.y (shadowing_lvar_gen): warn when arguments shadows</div><div class='add'>+	  external local variables.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_opt): optional arguments should not clobber external</div><div class='add'>+	  local variables.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_rest_arg): rest arguments should not clobber external</div><div class='add'>+	  local variables.</div><div class='add'>+</div><div class='add'>+Wed Aug 10 10:29:40 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix bug on handling __ruby2val_optkeys().</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: fix bug on handling</div><div class='add'>+	  __item_ruby2val_optkeys().</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: didn't check __item_ruby2val_optkeys().</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt/component.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  9 21:53:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): let default values override</div><div class='add'>+	  arguments to zsuper.  fixed: [ruby-dev:26743]</div><div class='add'>+</div><div class='add'>+Tue Aug  9 20:30:19 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_coerce): allow bignum x bignum coercing.</div><div class='add'>+	  [ruby-dev:26778]</div><div class='add'>+</div><div class='add'>+Tue Aug  9 15:12:04 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: remove dangerous 'rb_jump_tag's.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add __val2ruby_optkeys and __ruby2val_optkeys to</div><div class='add'>+	  help to convert option values between ruby and tcl.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: add __item_val2ruby_optkeys and</div><div class='add'>+	  __item_ruby2val_optkeys to help to convert option values between</div><div class='add'>+	    ruby and tcl.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/radiobutton.rb: use __ruby2val_optkeys for 'variable'</div><div class='add'>+	  option (for the reason of backward compatibility).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/composite.rb: clarify the arguments of super().</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/spinbox.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/validation.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: support to treat tkvariable-type</div><div class='add'>+	  configure options.</div><div class='add'>+</div><div class='add'>+Tue Aug  9 08:24:05 2005  Mauricio Fernandez  &lt;mfp@acm.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_block_arg), eval.c (rb_yield_0): deal with dynamic</div><div class='add'>+	  variable lambda arguments.  [ruby-core:05540]</div><div class='add'>+</div><div class='add'>+Mon Aug  8 22:13:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): deal with new block argument.</div><div class='add'>+	  fixed: [ruby-core:05536]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_node_arity): follow change of NODE_ARGS.</div><div class='add'>+	  fixed: [ruby-dev:26761]</div><div class='add'>+</div><div class='add'>+Mon Aug  8 21:28:13 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fnmatch.rb: separated from test_file.rb.</div><div class='add'>+</div><div class='add'>+Mon Aug  8 20:40:35 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: added.  [ruby-dev:26761]</div><div class='add'>+</div><div class='add'>+Mon Aug  8 01:26:37 2005  Mauricio Fernandez  &lt;mfp@acm.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_larglist): mistake in syntax rule.  [ruby-core:05535]</div><div class='add'>+</div><div class='add'>+Mon Aug  8 05:16:55 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_raise): should use ERR_peek_last_error</div><div class='add'>+	  to get last error on the current thread. And should report</div><div class='add'>+	  if errors are on the stack while OpenSSL.debug is true.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_get_errors): new method for debugging</div><div class='add'>+	  this library.</div><div class='add'>+</div><div class='add'>+Mon Aug  8 05:15:19 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb (HTTPProxyServer#initialize),</div><div class='add'>+	  lib/webrick/httpserver.rb (HTTPServer#initialize),</div><div class='add'>+	  lib/webrick/httpservlet/cgihandler.rb (CGIHandler#initialize),</div><div class='add'>+	  lib/webrick/httpservlet/erbhandler.rb (ERBHandler#initialize),</div><div class='add'>+	  lib/webrick/httpservlet/filehandler.rb(DefaultFileHandler#initialize):</div><div class='add'>+	  super (called with no arguments) takes default value of optional</div><div class='add'>+	  arguments. [ruby-dev:26743]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb: add a media-type "text/html" for .xhtml.</div><div class='add'>+</div><div class='add'>+Sun Aug  7 23:52:39 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_super.rb: added optional arg tests.  [ruby-dev:26743]</div><div class='add'>+	  the tests expects 1.8 behavior at this time.</div><div class='add'>+</div><div class='add'>+Sat Aug  6 12:35:24 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/{tk.rb,tk/itemconfig.rb}: configure creates</div><div class='add'>+	  TkVariable if key name is 'variable' or 'textvariable'</div><div class='add'>+	  by default. [ruby-dev:26749]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/{label,radiobutton}.rb: removed its own</div><div class='add'>+	  {variable,textvariable} function.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: retains backward compatibility.</div><div class='add'>+</div><div class='add'>+Fri Aug  5 12:48:31 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fixed memory leak when tk_funcall raised</div><div class='add'>+	  exception. (copies argv into heap in tk_funcall instead of</div><div class='add'>+	  caller)</div><div class='add'>+</div><div class='add'>+Fri Aug  5 12:36:40 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): need to convert path separator</div><div class='add'>+	  before invoking install command.</div><div class='add'>+</div><div class='add'>+Fri Aug  5 08:08:05 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (return_jump): fix "can't across thread" error message</div><div class='add'>+	  when no thread associated.</div><div class='add'>+	  http://www.namikilab.tuat.ac.jp/~sasada/diary/200507.html#d31</div><div class='add'>+</div><div class='add'>+Fri Aug  5 00:25:12 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: refactoring - extract ruby string &lt;-&gt;</div><div class='add'>+	  tcl object conversion as get_str_from_obj and get_obj_from_str.</div><div class='add'>+</div><div class='add'>+Fri Aug  5 00:19:33 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): provided features should have</div><div class='add'>+	  extensions.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_feature_p): returns type of the feature instead of</div><div class='add'>+	  extension.</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): ruby library should be prior to statically</div><div class='add'>+	  linked extensions.  fixed: [ruby-dev:26711]</div><div class='add'>+</div><div class='add'>+	* eval.c (formal_assign): returns position of rest arguments variable.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_rest_arg): use anonymous variable for rest arguments.</div><div class='add'>+	  fixed: [ruby-dev:26647]</div><div class='add'>+</div><div class='add'>+	* extmk.rb (extmake): needs to be wrapped in an Array.</div><div class='add'>+</div><div class='add'>+Thu Aug  4 20:03:18 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): do not share implementation among</div><div class='add'>+	  Fixnum#/ and Fixnum#div.  [ruby-core:05531]</div><div class='add'>+</div><div class='add'>+Thu Aug  4 18:38:36 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: cannot compile for Tcl7.6/Tk4.2.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add nativethread consistency check.</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: forgot to define TclTkIp.encoding and encoding=</div><div class='add'>+	  when Tcl is 7.6 or 8.0.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/wm.rb: support to make some methods as options of</div><div class='add'>+	  root or toplevel widget. [ruby-talk:150336]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/root.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/toplevel.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/SUPPORT_STATUS: update RELEASE_DATE</div><div class='add'>+</div><div class='add'>+Thu Aug  4 13:30:15 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_div): should not convert the result into</div><div class='add'>+	  integer.  [ruby-core:05524]</div><div class='add'>+</div><div class='add'>+Thu Aug  4 08:03:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): should not modify $mflags for each</div><div class='add'>+	  extensions.</div><div class='add'>+</div><div class='add'>+Thu Aug  4 00:25:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, Makefile.in, {bcc32,win32,wince}/Makefile.sub: integrated</div><div class='add'>+	  macro definitions.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: LIBRUBY_SO should use DLDOBJS, not EXTOBJS.</div><div class='add'>+</div><div class='add'>+	* {win32,wince}/Makefile.sub: separate config.h for compiler versions.</div><div class='add'>+</div><div class='add'>+Thu Aug  4 00:24:59 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c: replacing is no longer needed.</div><div class='add'>+</div><div class='add'>+Wed Aug  3 21:59:16 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: TkVariable#trace didn't work on</div><div class='add'>+	  TkVariable retrieved from TkVariable.new_hash.ref. [ruby-dev:26721]</div><div class='add'>+</div><div class='add'>+Wed Aug  3 12:40:28 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_plus): reduce coercing when a method knows about</div><div class='add'>+	  a operand type.  [ruby-dev:26723]</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_minus, fix_mul, fix_quo, fix_div, fix_mod,</div><div class='add'>+	  fix_divmod, fix_pow): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_div, rb_big_modulo): export to reduce</div><div class='add'>+	  coercing.</div><div class='add'>+</div><div class='add'>+Wed Aug  3 10:13:52 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, {bcc32,win32,wince}/Makefile.sub (HAVE_SNPRINTF,</div><div class='add'>+	  HAVE_VSNPRINTF): use win32/win32.c's implementation instead of</div><div class='add'>+	  missing/vsnprintf.c's.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_snprintf, rb_w32_vsnprintf): reverted.</div><div class='add'>+</div><div class='add'>+Wed Aug  3 10:05:08 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check vsnprintf() and snprintf().</div><div class='add'>+</div><div class='add'>+	* sprintf.c, missing/vsnprintf.c: made vsnprintf() and snprintf()</div><div class='add'>+	  private.  fixed: [ruby-dev:26651]</div><div class='add'>+</div><div class='add'>+Wed Aug  3 08:22:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): revert [ruby-talk:111654]</div><div class='add'>+	  changes at 2004-09-07.  [ruby-dev:26656]</div><div class='add'>+</div><div class='add'>+Wed Aug  3 06:53:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_or): wraps the operand in an array if it is not</div><div class='add'>+	  an array.  [ruby-talk:150495] [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and, rb_ary_plus, rb_ary_diff): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug  2 10:23:12 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: use Tcl_[GS]etVar2Ex instead of</div><div class='add'>+	  Tcl_Obj[GS]etVar2. (avoid Tcl_NewStringObj on supported platforms)</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: use ip_{get,set,unset}_variable2_core from</div><div class='add'>+	  ip_{get,set,unset}_variable.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: replaced Tcl_Panic with rb_bug.</div><div class='add'>+</div><div class='add'>+Tue Aug  2 01:40:38 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ping.rb (Ping.pingecho): should rescue StandardError.</div><div class='add'>+	  [ruby-dev:26677]</div><div class='add'>+</div><div class='add'>+Mon Aug  1 19:02:23 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: refactoring - replaced rb_ivar_defined &amp;</div><div class='add'>+	  rb_ivar_get with single rb_attr_get call.</div><div class='add'>+</div><div class='add'>+Mon Aug  1 18:44:08 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (Tcl_GetStringResult): refactoring - define</div><div class='add'>+	  alternative macro on Tcl7.x or earlier.</div><div class='add'>+</div><div class='add'>+Mon Aug  1 13:53:55 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (deleted_ip): refactoring - interpreter</div><div class='add'>+	  deletion check. [ruby-dev:26664]</div><div class='add'>+</div><div class='add'>+Mon Aug  1 01:08:21 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (check_insecure_method): use private_methods and</div><div class='add'>+	  protected_methods instead of respond_to? to check method visibility.</div><div class='add'>+	  [ruby-dev:26616]</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jul 30 18:49:44 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_TYPE#ole_typelib,</div><div class='add'>+	  WIN32OLE_TYPE#implemented_ole_types.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLETYPE.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 29 16:12:02 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/context.rb: fix `irb --readline` option. [ruby-dev:40955]</div><div class='add'>+</div><div class='add'>+Fri Jul 29 09:59:38 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): fix calling zsuper from a method with anonymous</div><div class='add'>+	  rest argument.  [ruby-dev:26639]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): push yielded node instead of yielding.</div><div class='add'>+	  fixed: [yarv-dev:549]</div><div class='add'>+</div><div class='add'>+Thu Jul 28 21:49:17 2005  IWATSUKI Hiroyuki  &lt;don@na.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_end_seen_p): exclude from ripper.</div><div class='add'>+	  &lt;http://moonrock.jp/~don/d/200507.html#d28_t2&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (clearerr): remove standard macro before re-definition.</div><div class='add'>+	  &lt;http://moonrock.jp/~don/d/200507.html#d28_t3&gt;</div><div class='add'>+</div><div class='add'>+Thu Jul 28 18:09:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.c: When --enable-tcltk-stubs, the initialize</div><div class='add'>+	  routine creates a Tcl/Tk interpreter and deletes it. However,</div><div class='add'>+	  init cost of Tk's MainWindow is not so small. And that makes it</div><div class='add'>+	  impossible to use libraries written with Tcl functions only on</div><div class='add'>+	  an environment without a graphical display. This changes support</div><div class='add'>+	  delaying initialization of Tk_Stubs until the script needs Tk.</div><div class='add'>+</div><div class='add'>+	* ext/tk/stubs.h: New file. Define prototypes and return codes of</div><div class='add'>+	  functions on stubs.c.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: Support delaying initialization of Tk_Stubs</div><div class='add'>+	  until the script needs Tk.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: Show friendly error messages for errors on</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: Avoid SEGV on ip_finalize() when ruby is</div><div class='add'>+	  exiting and $DEBUG is true. (Not fix. If you know the reason of</div><div class='add'>+	  why, please fix it.)</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c (ary2list, ary2list2): bug fix on handling</div><div class='add'>+	  of encoding.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string and bg_eval_string</div><div class='add'>+	  don't work properly.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Forget extending Tk::Encoding module to Tk.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: TkVarAccess fails to initialize the</div><div class='add'>+	  object for an element of a Tcl's array variable.</div><div class='add'>+</div><div class='add'>+Thu Jul 28 17:23:37 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_larglist): allow block argument in lambda parameter</div><div class='add'>+	  list without parenthesis.</div><div class='add'>+</div><div class='add'>+Thu Jul 28 17:14:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (each_i): typo fixed.  [ruby-dev:26622]</div><div class='add'>+</div><div class='add'>+Thu Jul 28 15:04:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arg): better argument name duplication check</div><div class='add'>+</div><div class='add'>+	* parse.y (new_args_gen): factored out name duplication check for</div><div class='add'>+	  optional and rest arguments.</div><div class='add'>+</div><div class='add'>+	* parse.y (new_bv_gen): allow shadowing outer local variables;</div><div class='add'>+	  warning remains.</div><div class='add'>+</div><div class='add'>+Thu Jul 28 13:46:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_warningS): the argument was omitted.</div><div class='add'>+	  [ruby-dev:26621]</div><div class='add'>+</div><div class='add'>+Thu Jul 28 11:30:57 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_larglist): allow bv_decl at the end of lambda</div><div class='add'>+	  argument list.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* parse.y (new_bv_gen): allow local variable shadowing, with</div><div class='add'>+	  warning in verbose mode.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 23:23:54 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free): make message format consistent with one from</div><div class='add'>+	  gc_mark().  [ruby-talk:149668]</div><div class='add'>+</div><div class='add'>+	* sprintf.c (quad_t): prepare quad_t as well.  [ruby-talk:149668]</div><div class='add'>+</div><div class='add'>+Wed Jul 27 22:11:37 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin: removed. because the plugin</div><div class='add'>+	  is imported in the tDiary plugin packages.</div><div class='add'>+</div><div class='add'>+Wed Jul 27 19:11:53 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cd): follow :noop option change. (This patch</div><div class='add'>+	  is contributed by Doug Kearns)</div><div class='add'>+</div><div class='add'>+Wed Jul 27 16:25:59 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lambda): Perl6 style -&gt; lambda expression. [NEW]</div><div class='add'>+	  [VERY EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Wed Jul 27 10:43:14 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): must not assign pointers to long int.  use</div><div class='add'>+	  LONG_LONG instead if SIZEOF_LONG &lt; SIZEOF_VOIDP.</div><div class='add'>+	  [ruby-talk:149645]</div><div class='add'>+</div><div class='add'>+	* ruby.h: use LONG_LONG to simplify the change.</div><div class='add'>+	  [ruby-talk:149645]</div><div class='add'>+</div><div class='add'>+Wed Jul 27 10:59:02 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_each): rewinddir(3) before iteration.</div><div class='add'>+	  [ruby-talk:149628]</div><div class='add'>+</div><div class='add'>+Wed Jul 27 02:34:58 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_throw): replace all '0x%lx' by '%p'.</div><div class='add'>+	  [ruby-talk:149553]</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c (BSD_vfprintf): '%p' need to handle 64bit</div><div class='add'>+	  size pointer.  [ruby-talk:149553]</div><div class='add'>+</div><div class='add'>+Tue Jul 26 22:41:28 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/sexp.rb: new method Ripper.sexp_raw.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/sexp.rb (Ripper.sexp): returns more</div><div class='add'>+	  readable tree.  This is suggested by Kirill A. Shutemov.</div><div class='add'>+</div><div class='add'>+Tue Jul 26 22:05:12 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: merge a patch contributed by Daniel Berger,</div><div class='add'>+	  with some modification. (RubyForge #2128)</div><div class='add'>+</div><div class='add'>+Tue Jul 26 18:11:33 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: support LLP64 model.  [ruby-talk:149524]</div><div class='add'>+</div><div class='add'>+Tue Jul 26 12:57:40 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.c: include &lt;openssl/engine.h&gt; before</div><div class='add'>+	  &lt;openssl/x509_vfy.h&gt; to avoid compilation error of mswin32.</div><div class='add'>+	  suggested by NAKAMURA Usaku.</div><div class='add'>+</div><div class='add'>+Mon Jul 25 23:48:55 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch]: (rb_w32_vsnprintf, rb_w32_snprintf): removed.</div><div class='add'>+</div><div class='add'>+Mon Jul 25 21:30:46 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: Borland MAKE doesn't look for file names which have paths</div><div class='add'>+	  from VPATH.  fixed: [ruby-dev:26604]</div><div class='add'>+</div><div class='add'>+	* ruby.h (NORETURN, DEPRECATED): moved just after config.h.</div><div class='add'>+</div><div class='add'>+	* {win32,wince}/Makefile.sub: vsnprintf() is in missing now.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub: moved CPPFLAGS only for ruby</div><div class='add'>+	  source to XCFLAGS.</div><div class='add'>+</div><div class='add'>+Mon Jul 25 14:10:02 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix en-bugged part in the last commit.</div><div class='add'>+</div><div class='add'>+Mon Jul 25 13:45:18 2005  NAJIMA Hiroki  &lt;najima@mickey.ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: check HAVE_SYS_IOCTL_H before including the header.</div><div class='add'>+	  [ruby-dev:26610]</div><div class='add'>+</div><div class='add'>+Sat Jul 23 16:48:12 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should check</div><div class='add'>+	  OPENSSL_NO_STATIC_ENGINE.</div><div class='add'>+</div><div class='add'>+Sat Jul 23 11:46:30 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_fd_select): the all three fd_sets must be long enough for</div><div class='add'>+	  select.  fixed: [ruby-talk:149059]</div><div class='add'>+</div><div class='add'>+Sat Jul 23 10:01:41 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_vsprintf, rb_sprintf): new functions return new String,</div><div class='add'>+	  using missing/vsnprintf.c.  [ruby-dev:26580]</div><div class='add'>+</div><div class='add'>+	*  missing/vsnprintf.c: made the output changeable.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 21:06:08 2005  Tadashi Saito  &lt;shiba@mail2.accsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): reduce isnan().  [ruby-dev:26600]</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq, flo_gt, flo_ge, flo_lt, flo_le): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 15:02:39 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: moved copyright description to lib/rss.rb.</div><div class='add'>+</div><div class='add'>+	* lib/rss.rb: added for convenience.</div><div class='add'>+</div><div class='add'>+	* sample/rss/re_read.rb: added #to_s sample.</div><div class='add'>+</div><div class='add'>+	* sample/rss/blend.rb: use 'require "rss"' instead of</div><div class='add'>+	  'require "rss/*"'.</div><div class='add'>+	* sample/rss/list_description.rb: ditto.</div><div class='add'>+	* sample/rss/rss_recent.rb: ditto.</div><div class='add'>+	* sample/rss/tdiary-plugin/rss-recent.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary-plugin/rss-recent.rb: 0.0.6 -&gt; 0.0.7.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 14:37:43 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb (RSS::Parser#initialize): accept HTTP/FTP</div><div class='add'>+	  URI and local file path too.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_parser.rb (RSS::TestParser#test_parse): test</div><div class='add'>+	  for the above.</div><div class='add'>+</div><div class='add'>+Fri Jul 22 07:01:42 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c (tk_conv_args): forget to revert</div><div class='add'>+	  thread_critical and gc_disable when raise ArgumentError.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: RemoteTkIp doesn't need to include TkUtil.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add TclTkIp#has_mainwindow? method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.has_mainwindow? method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add MultiTkIp#has_mainwindow? method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: add RemoteTkIp#has_mainwindow? method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: slave IP fail to exit itself when $SAFE==4.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: remove constants from MultiTkIp module to</div><div class='add'>+	  avoid access from external.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: check_root flag is ignored on slave IPs'</div><div class='add'>+	  mainloop.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: hang-up Tk.mainloop called on a slave IP</div><div class='add'>+	  with $SAFE==4.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp#bg_eval_proc doesn't work</div><div class='add'>+	  properly.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add MultiTkIp#set_cb_error(proc) and</div><div class='add'>+	  cb_error(exc) to log errors at callbacks on safe slave IPs.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fail to get an available slave IP object</div><div class='add'>+	  when call Tk.mainloop in the block which is given to new_* method,</div><div class='add'>+	    because cannot finish initialize while the root widget is alive.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fail to control a slave IP when Tk.mainloop</div><div class='add'>+	  runs on the IP.</div><div class='add'>+</div><div class='add'>+Thu Jul 21 01:00:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/{nkf.c,utf8tbl.c,config.h}:</div><div class='add'>+	  import 1.76</div><div class='add'>+	  [ruby-dev:26592] nkf constification</div><div class='add'>+</div><div class='add'>+Wed Jul 20 19:18:52 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (S_ISREG): need to define S_ISREG before it is used first.</div><div class='add'>+</div><div class='add'>+Wed Jul 20 18:33:15 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (wsplit_p): patch for the environment where</div><div class='add'>+	  fcntl(F_GETFL, O_NONBLOCK) is not supported. in that case,</div><div class='add'>+	  set FMODE_WSPLIT without fcntl check. [ruby-dev:26566]</div><div class='add'>+</div><div class='add'>+Wed Jul 20 18:07:11 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl): update FMODE_WSPLIT_INITIALIZED and FMODE_WSPLIT</div><div class='add'>+	  by F_SETFL.</div><div class='add'>+</div><div class='add'>+Wed Jul 20 10:04:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_class_path): need to adjust snprintf() len for</div><div class='add'>+	  terminating NUL.  [ruby-dev:26581]</div><div class='add'>+</div><div class='add'>+Wed Jul 20 03:58:52 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: sorry, BeOS also uses HAVE_CLOSESOCKET,</div><div class='add'>+	  so reverted.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: should not define HAVE_CLOSESOCKET</div><div class='add'>+	  on windows.</div><div class='add'>+</div><div class='add'>+Wed Jul 20 03:12:21 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: should not undef close() on win32.</div><div class='add'>+	  it's defined to rb_w32_close(), otherwise handle leaks.</div><div class='add'>+	  [ruby-Bugs-2131]</div><div class='add'>+</div><div class='add'>+Wed Jul 20 00:48:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): don't use str before StringValue()</div><div class='add'>+	  check.  [ruby-dev:26579]</div><div class='add'>+</div><div class='add'>+Tue Jul 19 22:47:29 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): add 1 byte for snprintf() size for</div><div class='add'>+	  NUL at the end.  [ruby-dev:26574]</div><div class='add'>+</div><div class='add'>+Tue Jul 19 17:16:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): remove sigexit(); handle "EXIT" via sig_exec().</div><div class='add'>+	  [ruby-dev:26440]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_inspect): replace sprintf() with "%s" format all</div><div class='add'>+	  over the place by snprintf() to avoid integer overflow.</div><div class='add'>+</div><div class='add'>+Tue Jul 19 14:10:50 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: rbtk_eventloop_depth is used as int.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: rbtk_pending_exception is tested with</div><div class='add'>+	  NIL_P, so should assign Qnil instead of 0 (Qfalse).</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_invoke_real): fixed memory leak when</div><div class='add'>+	  ip is deleted.</div><div class='add'>+</div><div class='add'>+Tue Jul 19 13:19:46 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: For symmetry, add TkVariable#string. It</div><div class='add'>+	  returns a string even if the default value type of the TkVariable</div><div class='add'>+	  object is not "string".</div><div class='add'>+</div><div class='add'>+Mon Jul 18 21:39:18 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): make the pointer to NODE volatile</div><div class='add'>+	  instead of NODE itself.</div><div class='add'>+</div><div class='add'>+Mon Jul 18 14:32:21 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): make body volatile to avoid possible optimization</div><div class='add'>+	  problem.</div><div class='add'>+	  [ruby-dev:26195]</div><div class='add'>+</div><div class='add'>+Mon Jul 18 12:23:27 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c: wrong backport from trunk, and compile error on</div><div class='add'>+	  platforms fd_set is not a bit set.  fixed: [ruby-dev:26562]</div><div class='add'>+</div><div class='add'>+Mon Jul 18 09:36:25 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h (FMODE_WSPLIT, FMODE_WSPLIT_INITIALIZED): new constant.</div><div class='add'>+</div><div class='add'>+	* io.c (wsplit_p): new function.</div><div class='add'>+	  (io_fflush): split writing data by PIPE_BUF if wsplit_p is true in</div><div class='add'>+	  multi-threaded mode.</div><div class='add'>+	  (io_fwrite): ditto.</div><div class='add'>+	  [ruby-dev:26540]</div><div class='add'>+</div><div class='add'>+Mon Jul 18 05:00:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: import nkf.c 1.73</div><div class='add'>+	  fix: TestKconv 1F</div><div class='add'>+</div><div class='add'>+Sun Jul 17 13:46:54 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/extconf.rb, ext/io/wait/wait.c: Win32 platforms support.</div><div class='add'>+</div><div class='add'>+Sat Jul 16 23:43:16 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): wrong argument specs.</div><div class='add'>+	  [ruby-core:05481]</div><div class='add'>+</div><div class='add'>+Sat Jul 16 15:52:50 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[hc]: constified socket functions. [ruby-dev:26553]</div><div class='add'>+</div><div class='add'>+Fri Jul 15 23:59:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (handle_class_module): handle a</div><div class='add'>+	  module enclosed in a built-in module.  fixed: [ruby-talk:148239]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (find_body): allow macros as methods.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (find_call_seq): allow :nodoc: modifier</div><div class='add'>+	  in C.  [ruby-core:04572]</div><div class='add'>+</div><div class='add'>+Fri Jul 15 23:20:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enumerator.c (Init_Enumerator): use an internal directly.</div><div class='add'>+</div><div class='add'>+Fri Jul 15 07:58:10 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#accept_client):</div><div class='add'>+	  sockets should be non-blocking mode. [ruby-dev:26405]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb (WEBrick::Utils.set_non_blocking): new method.</div><div class='add'>+</div><div class='add'>+Fri Jul 15 00:11:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enumeratorize): create new enumerator for current method if</div><div class='add'>+	  no block is given.</div><div class='add'>+</div><div class='add'>+	* enumerator.c: moved from ext/enumerator.</div><div class='add'>+</div><div class='add'>+Thu Jul 14 18:27:35 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_strerror): should return correct message</div><div class='add'>+	  for ENAMETOOLONG and ENOTEMPTY. (bcc32) [ruby-dev:26533]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_strerror): stripped CR LF on the tail.</div><div class='add'>+	  (bcc32) [ruby-dev:26533]</div><div class='add'>+</div><div class='add'>+Thu Jul 14 00:45:42 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* LEGAL (ext/nkf/nkf-utf8): updated from nkf1.7 to nkf-utf8.</div><div class='add'>+</div><div class='add'>+Wed Jul 13 22:44:00 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove static variables.  [ruby-dev:26530]</div><div class='add'>+</div><div class='add'>+Wed Jul 13 19:36:29 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_mkdir): should set EEXIST (not EACCES)</div><div class='add'>+	  if file or directory already exists. (bcc32) [ruby-dev:26508]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_rmdir): should set ENOTDIR (not EINVAL)</div><div class='add'>+	  if it is not directory. (bcc32, win32)</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_rmdir, rb_w32_unlink): restore</div><div class='add'>+	  FILE_ATTRIBUTE_READONLY flag on function failure.</div><div class='add'>+</div><div class='add'>+Wed Jul 13 12:40:00 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: TclTkLib.do_one_event doesn't work.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Tk.thread_update is available.</div><div class='add'>+</div><div class='add'>+Tue Jul 12 23:32:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: keep curdir unexpanded.</div><div class='add'>+</div><div class='add'>+Mon Jul 11 23:50:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h (rb_proc_call, rb_obj_method, rb_method_call):</div><div class='add'>+	  export.</div><div class='add'>+</div><div class='add'>+	* ext/enumerator/enumerator.c (enumerator_with_index): [EXPERIMENTAL]</div><div class='add'>+	  added a new method Enumerator#with_index.  [ruby-talk:147728]</div><div class='add'>+</div><div class='add'>+Mon Jul 11 08:31:29 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_escaped_value): mask values following \c in</div><div class='add'>+	  regexp.  fixed: [ruby-dev:26500]</div><div class='add'>+</div><div class='add'>+Sun Jul 11 05:18:17 2005  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (XMLRPC::Server): Switch from GServer over to</div><div class='add'>+	  WEBrick. This makes file lib/xmlrpc/httpserver.rb obsolete (at least it is</div><div class='add'>+	  no further used by the XML-RPC library).</div><div class='add'>+</div><div class='add'>+Mon Jul 11 02:50:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):</div><div class='add'>+	  mistook to merge the patch of [ruby-dev:26235] at</div><div class='add'>+	  revision 1.11.</div><div class='add'>+</div><div class='add'>+Sun Jul 10 23:58:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#unlink): try Dir.unlink first to</div><div class='add'>+	  avoid unlink a directory by root.</div><div class='add'>+	  cf. [ruby-dev:26237]</div><div class='add'>+</div><div class='add'>+Sun Jul 10 12:47:01 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (debug_command): added a deficient format specifier.</div><div class='add'>+	  fixed: [ruby-core:05419]</div><div class='add'>+</div><div class='add'>+Sat Jul  9 22:02:37 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_method_dispid): convert dispid</div><div class='add'>+	  in Ruby and C by INT2NUM and NUM2INT.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_invoke2): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/test/testWIN32OLE.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/test/testOLEMETHOD.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Jul  8 15:45:04 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION): 0.1.4 -&gt; 0.1.5.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_version.rb (RSS::TestVersion#test_version):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss::Channel::Item::Category):</div><div class='add'>+	  domain attribute of &lt;category&gt; is optional. Thanks to</div><div class='add'>+	  Chris Lee &lt;clee@kde.org&gt;.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_parser.rb (RSS::TestParser#test_category20):</div><div class='add'>+	  adjusted test case.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 18:45:53 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_pattern_match): now returns nil.</div><div class='add'>+	  [ruby-core:05391]</div><div class='add'>+</div><div class='add'>+Mon Jul  4 14:35:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/svr.rb: service can be stopped by ill-behaved client; use</div><div class='add'>+	  tsvr.rb instead.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 13:25:21 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/erf.c: original erf.c by prof. Okumura is confirmed to</div><div class='add'>+	  be public domain.  reverted BSD implementation.</div><div class='add'>+</div><div class='add'>+Wed Jul  6 11:15:21 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (open_ifs_socket): new function.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSockets, rb_w32_socket): use open_ifs_socket()</div><div class='add'>+	  instead of socket().</div><div class='add'>+	  all changes are derived from [ruby-core:5388].</div><div class='add'>+</div><div class='add'>+Wed Jul  6 00:15:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/{nkf.c,utf8tbl.c,config.h}:</div><div class='add'>+	  imported nkf.c 1.70 (support UTF-8-MAC)</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: add :utf8mac and :internalunicode</div><div class='add'>+</div><div class='add'>+Tue Jul  5 23:44:06 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: expand source library path.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 23:27:14 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (sort_2): get rid of yet another bcc's bug.</div><div class='add'>+	  fixed: [ruby-core:05152]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context): must not switch contexts during</div><div class='add'>+	  re-allocating stack.  fixed: [ruby-core:05219]</div><div class='add'>+</div><div class='add'>+Tue Jul  5 15:15:10 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c: fix typo.</div><div class='add'>+</div><div class='add'>+Tue Jul  5 14:52:56 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: bug fix on treating Unicode strings.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add methods to treat encoding mode.</div><div class='add'>+</div><div class='add'>+	* ext/tk/MANUAL_tcltklib.eng: add description of TclTkLib#encoding,</div><div class='add'>+	  encoding_system, and so on.</div><div class='add'>+</div><div class='add'>+	* ext/tk/MANUAL_tcltklib.eucj: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: fail to create a Tcl's list string from</div><div class='add'>+	  an array including multiple kind of encoded strings.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: 2nd arg of _{to|from}UTF8 is omissible.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: override TclTkLib#encoding and encoding= to</div><div class='add'>+	  use TkCore::INTERP.encoding and encoding=.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: when "require 'tk'" and $KCODE=='NONE', check</div><div class='add'>+	  DEFAULT_TK_ENCODING to decide Ruby/Tk's system encoding mode.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/encodedstr.rb: check both of Tk.encoding and</div><div class='add'>+	  Tk.encoding_system. Tk.encoding has higher priority.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/optiondb.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/spinbox.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/validation.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: arguemnts for TclTkIp#_merge_tklist</div><div class='add'>+	  should be UTF-8 strings.</div><div class='add'>+</div><div class='add'>+Mon Jul  4 19:29:32 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: test change to follow revision 1.28. (duck typing?)</div><div class='add'>+</div><div class='add'>+Mon Jul  4 11:23:50 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/{dbm,gdbm,sdbm}/test_{dbm,gdbm,sdbm}.rb: skip some tests</div><div class='add'>+	  which using fork on fork-less platforms.</div><div class='add'>+</div><div class='add'>+Sun Jul  3 23:26:30 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/wsdl/document/test_rpc.rb: compare formatted time string of</div><div class='add'>+	  Time objects instead of comparing Time objects itself to avoid</div><div class='add'>+	  unintended conflict of usec part.  [ruby-dev:26220]</div><div class='add'>+</div><div class='add'>+Sat Jul  2 22:41:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (unix_send_io, unix_recv_io): support x86-64 and</div><div class='add'>+	  IA64.</div><div class='add'>+</div><div class='add'>+Sat Jul  2 17:06:23 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.</div><div class='add'>+	  (flush_register_windows): declare flush_register_windows.</div><div class='add'>+</div><div class='add'>+	* eval.c (flush_register_windows): new function.</div><div class='add'>+</div><div class='add'>+	* ruby.h (NOINLINE): move up to be effective in defines.h.</div><div class='add'>+</div><div class='add'>+Sat Jul  2 15:19:41 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check select_large_fdset.</div><div class='add'>+</div><div class='add'>+	* eval.c: use select_large_fdset to support large file descriptors</div><div class='add'>+	  on Solaris.  [ruby-dev:26404]</div><div class='add'>+</div><div class='add'>+Fri Jul  1 17:55:08 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_neg): may be accessing bogus pointer value.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 15:50:12 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/erf.c: need to include some headers for some platforms.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h (copysign, scalb): define for compatibility with</div><div class='add'>+	  other platforms. [ruby-dev:26430]</div><div class='add'>+</div><div class='add'>+Fri Jul  1 15:37:42 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/crypt.c: modified to make it compilable on platforms</div><div class='add'>+	  other than BSD.  [ruby-dev:26430]</div><div class='add'>+</div><div class='add'>+	* missing/erf.c: ditto.  code from &lt;exp.c&gt; merged.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 12:44:56 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_http): refine post_connection_check</div><div class='add'>+	  call.</div><div class='add'>+</div><div class='add'>+Fri Jul  1 11:34:08 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/crypt.c: replaced with 4.4BSD version.</div><div class='add'>+</div><div class='add'>+	* missing/erf.c: ditto.</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c: removed the third provision from the old</div><div class='add'>+	  BSD license.  [ruby-core:05177]</div><div class='add'>+</div><div class='add'>+Fri Jul  1 01:45:21 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min, enum_max): must not return Qundef.</div><div class='add'>+	  fixed: [ruby-core:05299]</div><div class='add'>+</div><div class='add'>+Fri Jul  1 00:18:40 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::respond_to): respond_to? must check</div><div class='add'>+	  destination object.  [ruby-talk:146894]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 23:52:12 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (trap): non-string trap hander was ignored.</div><div class='add'>+	  fixed: [ruby-dev:26417]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 19:00:21 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex::identify_number): alternative implements</div><div class='add'>+	  for [ruby-dev:26410]. And support a numeric form of 0d99999.</div><div class='add'>+</div><div class='add'>+Thu Jun 30 17:28:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex::identify_number): should not treat</div><div class='add'>+	  plain zero as an octal number.  [ruby-dev:26410]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 15:13:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): pre-evaluate argument for unambiguous</div><div class='add'>+	  evaluation order.  [ruby-dev:26383]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 14:48:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP#connect, Net::HTTP#request): should</div><div class='add'>+	  not send proxy username and password to origin servers.</div><div class='add'>+	  [ruby-dev:25673]</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Net::HTTP::ProxyDelta#edit_path): should not</div><div class='add'>+	  send HTTPS scheme URL to origine servers. [ruby-dev:25689]</div><div class='add'>+</div><div class='add'>+Thu Jun 30 09:53:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::method_missing): forward unknown</div><div class='add'>+	  method to the destination.  suggested by</div><div class='add'>+	  &lt;christophe.poucet@gmail.com&gt;.  [ruby-talk:146776]</div><div class='add'>+</div><div class='add'>+Wed Jun 29 00:03:20 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_token): avoid warning of unused goto tag.</div><div class='add'>+	  [ruby-dev:26389]</div><div class='add'>+</div><div class='add'>+Tue Jun 28 21:59:29 2005  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c, eval.c, parse.y, process.c, ruby.c: avoid warning "unused</div><div class='add'>+	  variable" [ruby-dev:26387]</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): avoid warning "enumeration value `RECURSIVE'</div><div class='add'>+	  not handled in switch" [ruby-dev:26392]</div><div class='add'>+</div><div class='add'>+Tue Jun 28 01:52:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: add Kconv::VERSION</div><div class='add'>+	* ext/nkf/lib/kconv.rb (conv): can process arrayed options</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: imported Revision 1.69</div><div class='add'>+	* ext/nkf/nkf-utf8/utf8tbl.c: imported Revision 1.9</div><div class='add'>+</div><div class='add'>+Sat Jun 25 23:30:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (detach_process_watcher): terminate process watcher</div><div class='add'>+	  thread right after rb_waitpid() succeed.  [ruby-talk:146430]</div><div class='add'>+</div><div class='add'>+Sat Jun 25 17:12:20 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_query): should</div><div class='add'>+	  discard if key=val pair is empty. patch from Gary Wright.</div><div class='add'>+</div><div class='add'>+Sat Jun 25 15:49:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min, enum_max, enum_min_by, enum_max_by): do not ignore</div><div class='add'>+	  nil as the first element.</div><div class='add'>+</div><div class='add'>+Sat Jun 25 15:13:54 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#==): [ruby-dev:25206] (ported from ruby_1_8 branch)</div><div class='add'>+</div><div class='add'>+Sat Jun 25 11:37:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: remove constants</div><div class='add'>+	  Iconv_Shift_JIS, Uconv_EUC_JP, Iconv_UTF8</div><div class='add'>+	* ext/nkf/lib/kconv.rb: add module functions to Kconv</div><div class='add'>+	  conv, {eucjp, shiftjis, utf8}?, guess_as_symbol</div><div class='add'>+	* ext/nkf/lib/kconv.rb: add instance methods to String</div><div class='add'>+	  conv, {eucjp, shiftjis, utf8}?</div><div class='add'>+	* ext/nkf/lib/kconv.rb: add aliases Kconv.to_* and String#to_*</div><div class='add'>+</div><div class='add'>+Fri Jun 24 17:00:00 2005  Shigeo Kobayashi  &lt;shigeo@tinyforest.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: patch from "NATORI Shin"</div><div class='add'>+	  (u-tokyo.ac.jp) applied to fix rounding bug.</div><div class='add'>+</div><div class='add'>+Fri Jun 24 13:17:45 2005  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb, lib/uri/generic.rb: fixed typo in documents and</div><div class='add'>+	  replaced some existent domain name with "example.com".</div><div class='add'>+</div><div class='add'>+Fri Jun 24 12:23:19 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix typo on Tk.grid_propagate.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Tk.event_generate and TkWindow#event_generate</div><div class='add'>+	  accept TkEvent::Event object as context argument.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: add TkEvent::Event#valid_fields and</div><div class='add'>+	  valid_for_generate to get field parameters of event_generate.</div><div class='add'>+</div><div class='add'>+Thu Jun 23 23:55:59 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: should load built rbconfig.rb.</div><div class='add'>+</div><div class='add'>+Thu Jun 23 16:53:15 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvastag.rb: TkcGroup.new cannot include given items.</div><div class='add'>+	  TkcGroup#exclude calls wrong method.</div><div class='add'>+	  Add alias TkcGroup#add [ruby-talk:146049].</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: TkCanvas#dtag and some subcommands of</div><div class='add'>+	  TkCanvas#addtag fail to treat a TkcTag argument.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: add TkEvent::Event#generate to help to send</div><div class='add'>+	  current event to other widgets.</div><div class='add'>+</div><div class='add'>+Mon Jun 20 18:44:04 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): DUMMY_SETJMP is replaced</div><div class='add'>+	  because setjmp is not enough to fix getcontext and SPARC register</div><div class='add'>+	  window problem.</div><div class='add'>+</div><div class='add'>+Mon Jun 20 17:15:51 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_closed): new method DBM#closed?</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_closed): new method GDBM#closed?</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_closed): new method SDBM#closed?</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb, test/gdbm/test_gdbm.rb, test/sdbm/test_sdbm.rb</div><div class='add'>+	  (teardown): close all db objects before deleting data files.</div><div class='add'>+</div><div class='add'>+	* win32/win32.{ch} (unlink): hook runtime function to change</div><div class='add'>+	  file attribute before unlinking.</div><div class='add'>+	  merge from 1.8, see [ruby-dev:26360]</div><div class='add'>+</div><div class='add'>+Mon Jun 20 02:15:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): document fix: finalizers never get called</div><div class='add'>+	  before target object is destroyed.</div><div class='add'>+</div><div class='add'>+Mon Jun 20 01:26:49 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.c, ext/openssl/ossl.h,</div><div class='add'>+	  ext/openssl/ossl_asn1.c, ext/openssl/ossl_bio.c,</div><div class='add'>+	  ext/openssl/ossl_pkcs12.h, ext/openssl/ossl_x509req.c: avoid</div><div class='add'>+	  compiler warnings. suggested by Michal Rokos.</div><div class='add'>+</div><div class='add'>+Sun Jun 20 00:22:02 2005  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/utils.rb: Patch by Nobuhiro IMAI fixes the following</div><div class='add'>+	  problem: Default value modification on</div><div class='add'>+	  Module#public_instance_methods (false -&gt; true) breaks</div><div class='add'>+	  s.add_handler(XMLRPC::iPIMethods("sample"), MyHandler.new) style</div><div class='add'>+	  security protection.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb: Aliased XMLRPC::Client#new2 as</div><div class='add'>+	  XMLRPC::Client#new_from_uri, and #new3 as #new_from_hash.</div><div class='add'>+</div><div class='add'>+Sun Jun 19 14:09:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): reduce unnecessary object allocation during</div><div class='add'>+	  finalization.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): deferred finalizers list should</div><div class='add'>+	  be cleared before calling them.  fixed: [ruby-talk:145790]</div><div class='add'>+</div><div class='add'>+Sat Jun 18 01:15:36 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_readline): do not set</div><div class='add'>+	  rl_{in,out}stream.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_input): new method.</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_output): new method.</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb: set Readline.input and Readline.output.</div><div class='add'>+</div><div class='add'>+Fri Jun 17 13:01:40 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.parse): fix previous leap seconds support.</div><div class='add'>+	  (Time.rfc2822): ditto.</div><div class='add'>+	  (Time.xmlschema): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 15:41:32 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): '!' is already read. reported by gotoyuzo.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 15:09:38 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_rb_threadVwaitCommand): Tcl_Release</div><div class='add'>+	  was missing.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 13:34:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.getMultiple{Open|Save}File() which return</div><div class='add'>+	  an Array of selected files.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 12:53:24 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time.parse): "Fri Jan  1 08:59:60 +0900 1999" was</div><div class='add'>+	  parsed as "Fri Jan 01 09:00:00 JST 1999" even on an environment</div><div class='add'>+	  which supports leap seconds.</div><div class='add'>+	  (Time.rfc2822): ditto.</div><div class='add'>+	  (Time.xmlschema): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jun 16 00:13:41 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Resource#ttl): new attribute.</div><div class='add'>+	  (Resolv::DNS::Resource#==): ignore @ttl.</div><div class='add'>+	  (Resolv::DNS::Resource#hash): ditto.</div><div class='add'>+	  (Resolv::DNS::Message::MessageDecoder#get_rr): save TTL in a</div><div class='add'>+	  Resource object.</div><div class='add'>+	  based on [ruby-core:5190] by Eric Hodel.</div><div class='add'>+</div><div class='add'>+Wed Jun 15 18:26:39 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: support "tk inactive" sub-command [for Tcl/Tk8.5a3]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: support "namespace path" sub-command and</div><div class='add'>+	  'namespace ensemble' sub-command [for Tcl/Tk8.5a3]</div><div class='add'>+</div><div class='add'>+Tue Jun 14 02:02:43 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: add TkUtil::CallbackSubst.subst_arg(m, ...)</div><div class='add'>+	  &amp; _define_attribute_aliases(hash) to get substitution-argument from</div><div class='add'>+	  attributes (e.g. subst_arg(:x,:y,:num,:button) --&gt; "%x %y %b %b ").</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: use _define_attribute_aliases().</div><div class='add'>+</div><div class='add'>+Mon Jun 13 13:03:08 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (ruby_setenv): fixed SEGV. [ruby-dev:26186]</div><div class='add'>+</div><div class='add'>+Mon Jun 13 01:54:20 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sigexit): call rb_thread_signal_exit() instead of</div><div class='add'>+	  rb_exit().  [ruby-dev:26347]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_signal_exit): a new function to exit on main</div><div class='add'>+	  thread.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_switch): exit status should be retrieved from</div><div class='add'>+	  ruby_errinfo.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_exit): ensure exit(0) should call</div><div class='add'>+	  exit(EXIT_SUCCESS).</div><div class='add'>+</div><div class='add'>+Mon Jun 13 01:20:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_gc_mark_threads): curr_thread may not be part of the</div><div class='add'>+	  thread list.  [ruby-dev:26312]</div><div class='add'>+</div><div class='add'>+Sat Jun 11 22:34:44 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: missing arg_paren event.  This patch is contributed by</div><div class='add'>+	  Mitchell N Charity.</div><div class='add'>+</div><div class='add'>+Fri Jun 10 23:55:17 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (unknown_node): show more information.  [ruby-dev:26196]</div><div class='add'>+</div><div class='add'>+Fri Jun 10 23:35:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/mkdir.c: remove. [ruby-core:05177]</div><div class='add'>+</div><div class='add'>+Fri Jun 10 22:54:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing.h: fd_set stuffs need sys/types.h.  fixed: [ruby-core:05179]</div><div class='add'>+</div><div class='add'>+Thu Jun  9 23:58:12 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_Call): disable global</div><div class='add'>+	  optimization. fixed: [ruby-core:05143]</div><div class='add'>+</div><div class='add'>+Thu Jun  9 23:35:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_inject): default the result value to Qundef to use</div><div class='add'>+	  first element as initial value if not given.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 19:55:41 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_longjmp): new macro to call longjmp, setcontext, etc.</div><div class='add'>+	  (ruby_setjmp): new macro to call setjmp, getcontext, etc.</div><div class='add'>+	  (ruby_setjmp): call setjmp before getcontext to avoid IA64 register</div><div class='add'>+	  stack problem.</div><div class='add'>+	  [ruby-talk:144939]</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): remove IA64_MAGIC_STACK_LIMIT.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 18:24:16 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, eval.c, gc.c: use libunwind only on HP-UX.</div><div class='add'>+	  [ruby-dev:26297]</div><div class='add'>+</div><div class='add'>+Thu Jun  9 14:46:32 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_aset): do not treat nil as key-removing value.</div><div class='add'>+	  [ruby-list:40865]</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): allow aref expression ([]) to take a</div><div class='add'>+	  block.</div><div class='add'>+</div><div class='add'>+	* parse.y (block_dup_check): a function to check duplication of</div><div class='add'>+	  a block argument and an actual block.</div><div class='add'>+</div><div class='add'>+Thu Jun  9 11:55:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (SimpleDelegator::__setobj__): need check for</div><div class='add'>+	  recursive delegation.  [ruby-core:04940]</div><div class='add'>+</div><div class='add'>+Thu Jun  9 11:50:43 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: add underscore aliases CGI::escape_html,</div><div class='add'>+	  CGI::unescape_html, CGI::escape_element, CGI::unescape_element.</div><div class='add'>+	  [ruby-core:05058]</div><div class='add'>+</div><div class='add'>+Wed Jun  8 18:47:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): fix looking point drift.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 12:25:59 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_nitems): add the block feature to Array#nitems.</div><div class='add'>+	  suggested by Bertram Scharpf &lt;lists@bertram-scharpf.de&gt; in</div><div class='add'>+	  [ruby-talk:134083].</div><div class='add'>+</div><div class='add'>+Wed Jun  8 11:11:34 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (get2comp): revert all prior changes, and calculate</div><div class='add'>+	  proper 2's complement for negative numbers.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 08:33:10 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min_by, enum_max_by): return nil if no iteration.</div><div class='add'>+	  fixed: [ruby-dev:26245]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_need_block): ensure a block is given.</div><div class='add'>+</div><div class='add'>+	* eval.c (backtrace): skip successive frames sharing same node.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 01:27:06 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (bignorm): fixed a bug in normalizing negative numbers</div><div class='add'>+	  reported from Honda Hiroki &lt;hhonda@ipflex.com&gt;.  normalizing</div><div class='add'>+	  should not trim leading zeros from negative numbers.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_cstr_to_inum): must remove leading zeros for this</div><div class='add'>+	  case.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 00:15:08 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_getaddrinfo__aix): merged a patch from</div><div class='add'>+	  KUBO Takehiro &lt;kubo at jiubao.org&gt; to support AIX.  [ruby-list:40832]</div><div class='add'>+</div><div class='add'>+Wed Jun  8 00:09:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (Array::to_yaml): merged a patch from</div><div class='add'>+	  Tilman Sauerbeck &lt;tilman at code-monkey.de&gt;.  [ruby-core:05055]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (Hash::to_yaml): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jun  8 00:00:01 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_insertln): merged a patch from</div><div class='add'>+	  TAKAHASHI Tamotsu &lt;ttakah at lapis.plala.or.jp&gt;.  [ruby-ext:02305]</div><div class='add'>+</div><div class='add'>+Tue Jun  7 19:34:15 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB::IRB.rc_file_generators): more flexible</div><div class='add'>+	  IRB.rc_file_generators.  [ruby-core:05163]</div><div class='add'>+</div><div class='add'>+Tue Jun  7 18:39:31 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: RDoc documentation from Eric Hodel</div><div class='add'>+	  &lt;drbrain@segment7.net&gt; added.  [ruby-core:05148]</div><div class='add'>+</div><div class='add'>+Tue Jun  7 18:30:04 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): add .SUFFIXES from depend file.</div><div class='add'>+	  fixed: [ruby-dev:26294]</div><div class='add'>+</div><div class='add'>+Tue Jun  7 17:20:39 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): allow ';;' to be block terminator in</div><div class='add'>+	  place of 'end'.  [highly experimental]</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-block-end-re): allow ';;' to be a</div><div class='add'>+	  negative indent trigger.  [highly experimental]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): small error fixed.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 16:45:49 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): "respond_to?:foo" should be interpreted</div><div class='add'>+	  as "respond_to? :foo" at the command level.  [ruby-talk:144303]</div><div class='add'>+</div><div class='add'>+Tue Jun  7 16:32:53 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): raise exception on debug mode (-d),</div><div class='add'>+	  not verbose mode (-v/-w).  [ruby-core:05123]</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): warn always on verbose mode.</div><div class='add'>+</div><div class='add'>+Tue Jun  7 10:30:49 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: slave-ip fails to call procedures</div><div class='add'>+	  delegated by master-ip.</div><div class='add'>+</div><div class='add'>+Mon Jun  6 16:35:18 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: add .y to .SUFFIXES for nmake.</div><div class='add'>+</div><div class='add'>+Sun Jun  5 23:00:35 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/console.rb: create console when required</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/tile/demo.rb: fix TypeError &amp; create Console</div><div class='add'>+</div><div class='add'>+Sun Jun  5 10:23:52 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal): don't set SA_RESTART.</div><div class='add'>+	  [ruby-dev:26276]</div><div class='add'>+</div><div class='add'>+Sat Jun  4 14:55:18 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/dbm/test_dbm.rb: merged from ext/dbm/testdbm.rb.</div><div class='add'>+</div><div class='add'>+	* test/gdbm/test_gdbm.rb: merged from ext/gdbm/testgdbm.rb.</div><div class='add'>+</div><div class='add'>+	* test/sdbm/test_sdbm.rb: renamed from ext/sdbm/testsdbm.rb with</div><div class='add'>+	  modification to use test/unit.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 23:23:02 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_fdset_t): deal with fd bit sets over FD_SETSIZE.</div><div class='add'>+	  fixed: [ruby-dev:26187]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_fd_init, rb_fd_term, rb_fd_zero, rb_fd_set, rb_fd_clr,</div><div class='add'>+	  rb_fd_isset, rb_fd_copy): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_wait_readable, rb_io_wait_writable, rb_f_select): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/wait.c (io_wait): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (wait_connectable, unix_recv_io): ditto.</div><div class='add'>+</div><div class='add'>+Fri Jun  3 14:06:12 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix typo.</div><div class='add'>+</div><div class='add'>+Thu Jun  2 23:42:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: pragma support on ripper.  [ruby-dev:26266]</div><div class='add'>+</div><div class='add'>+Thu Jun  2 00:02:16 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c: accessing &gt;10 member caused segmentation fault.</div><div class='add'>+	  [ruby-dev:26247]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_struct.rb: test it.</div><div class='add'>+</div><div class='add'>+Wed Jun  1 11:30:09 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: can use single quote character in DESTDIR.</div><div class='add'>+	  [ruby-dev:26205]</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: Dir.glob in 1.9 doesn't treat \ as path separator.</div><div class='add'>+	  [ruby-dev:26254]</div><div class='add'>+</div><div class='add'>+Wed Jun  1 00:11:06 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (method_call): new experiment: "(expr)(args...)" to</div><div class='add'>+	  invoke "expr.call(args...)".  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Tue May 31 23:43:41 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (command): revert implicit "call" for local variables.</div><div class='add'>+</div><div class='add'>+Tue May 31 15:52:45 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should</div><div class='add'>+	  break the loop if the socket reached to EOF. [ruby-talk:142285]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): send response</div><div class='add'>+	  without reading the whole request body if keep-alive is diabled.</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+Mon May 30 23:48:29 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/macpkg.rb: add PACKAGE_NAME information of Tcl/Tk</div><div class='add'>+	  Extension.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/winpkg.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: ditto.</div><div class='add'>+</div><div class='add'>+Sat May 28 16:39:21 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509store.rb: add test for expired CRL</div><div class='add'>+	  and refine some assertions.</div><div class='add'>+</div><div class='add'>+Sat May 28 05:15:44 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509stctx_set_time): should</div><div class='add'>+	  not set internal flag directry.</div><div class='add'>+</div><div class='add'>+Sat May 28 02:00:11 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line):</div><div class='add'>+	  ENV["REQUEST_URI"] is better to get correct Request-URI</div><div class='add'>+	  than ENV["SCRIPT_NAME"] + ENV["PATH_INFO"].  [ruby-dev:26235]</div><div class='add'>+</div><div class='add'>+Fri May 27 16:32:04 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: use the semicolon as the path separator</div><div class='add'>+	  in the environment of MSYS.  fixed: [ruby-dev:26232]</div><div class='add'>+</div><div class='add'>+Thu May 26 20:31:21 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_entry_secure): add documentation.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_entry_secure): should not invoke</div><div class='add'>+	  unlink(2) against a directory.</div><div class='add'>+</div><div class='add'>+Thu May 26 08:29:19 2005  Akiyoshi, Masamichi  &lt;akiyoshi@hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* vms/vmsruby_private.c, vms/vmsruby_private.h: private routines</div><div class='add'>+	  for VMS port are added.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init): change to call VMS private intialization routine.</div><div class='add'>+</div><div class='add'>+Thu May 26 07:39:07 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (rm_r): use lchown(2), not chown(2).</div><div class='add'>+	  [ruby-dev:26226]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cd): remove :noop option. (feature change)</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cp_r): should copy symlink as symlink, for</div><div class='add'>+	  also tree root. (feature change)</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cp_r): new option :dereference_root.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method remove_entry.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method remove_entry_secure.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: add documentation.</div><div class='add'>+</div><div class='add'>+Thu May 26 06:08:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add shortcut-methods of tk_call + tk_split_list</div><div class='add'>+</div><div class='add'>+Wed May 25 20:06:27 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkComm#tk_split_*list fail to split a kind of SJIS</div><div class='add'>+	  strings. To avoid the trouble, add arguments to control converting</div><div class='add'>+	  encoding, and do split on a UTF8 string.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: modify to attend encoding.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/listbox.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/panedwindow.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textmark.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/texttag.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/winfo.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/iwidgets/scrolledlistbox.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/iwidgets/scrolledtext.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkWindow#lower_window/raise_window and</div><div class='add'>+	  Tk#lower_window/raise_window by reason of method-name conflict</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: bug fix on TkCanvas#delete when given</div><div class='add'>+	  non-TkcItem arguments.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/iwidgets/scrolledcanvas.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed May 25 19:48:12 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (rm_r): does chown(2). [ruby-dev:26199]</div><div class='add'>+</div><div class='add'>+Wed May 25 12:59:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI::Meta::RE_QUOTED_STRING): a content of</div><div class='add'>+	  quoted-string should be zero or more characters.</div><div class='add'>+</div><div class='add'>+Tue May 24 23:42:16 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (fix_pow): support Fixnum ** Float case directly</div><div class='add'>+	  without coercing.  [ruby-talk:142697] [ruby-talk:143054]</div><div class='add'>+</div><div class='add'>+Tue May 24 16:57:24 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): caused SEGV when continuation jumped</div><div class='add'>+	  in to the required library code.</div><div class='add'>+</div><div class='add'>+Tue May 24 17:45:59 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb: do not test libedit.</div><div class='add'>+	  fixed: [ruby-dev:26217]</div><div class='add'>+</div><div class='add'>+Tue May 24 06:45:31 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): string</div><div class='add'>+	  literals to be matched non-greedy.</div><div class='add'>+</div><div class='add'>+Tue May 24 00:39:14 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/calc: method name 'set' was able to crash with a class Set.</div><div class='add'>+	  [ruby-dev:26210]</div><div class='add'>+</div><div class='add'>+	* test/wsdl/document/test_rpc.rb: dateTime comparison failed under</div><div class='add'>+	  TZ=right/Asia/Tokyo (with leap second.) [ruby-dev:26208]</div><div class='add'>+</div><div class='add'>+Mon May 23 16:23:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: Framework support on MacOS X Tiger.</div><div class='add'>+</div><div class='add'>+	* ext/tk/README.tcltklib: add description of Framework support options.</div><div class='add'>+</div><div class='add'>+Mon May 23 15:07:34 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub ($(PROGRAM)): add dependency on $(LIBRUBY_SO).</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+Mon May 23 12:21:37 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (make_regexp): should not return junk address during</div><div class='add'>+	  compile time.  [ruby-dev:26206]</div><div class='add'>+</div><div class='add'>+Sun May 22 21:54:06 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/{soap,wsdl,xsd}, test/{soap,wsdl,xsd}: imported soap4r/1.5.4.</div><div class='add'>+</div><div class='add'>+	  == SOAP client and server ==</div><div class='add'>+</div><div class='add'>+	  === for both client side and server side ===</div><div class='add'>+</div><div class='add'>+	  * improved document/literal service support.</div><div class='add'>+	    style(rpc,document)/use(encoding, literal) combination are all</div><div class='add'>+	    supported.  for the detail about combination, see</div><div class='add'>+	    test/soap/test_style.rb.</div><div class='add'>+</div><div class='add'>+	  * let WSDLEncodedRegistry#soap2obj map SOAP/OM to Ruby according to</div><div class='add'>+	    WSDL as well as obj2soap.  closes #70.</div><div class='add'>+</div><div class='add'>+	  * let SOAP::Mapping::Object handle XML attribute for doc/lit service.</div><div class='add'>+	    you can set/get XML attribute via accessor methods which as a name</div><div class='add'>+	    'xmlattr_' prefixed (&lt;foo name="bar"/&gt; -&gt; Foo#xmlattr_name).</div><div class='add'>+</div><div class='add'>+	  === client side ===</div><div class='add'>+</div><div class='add'>+	  * WSDLDriver capitalized name operation bug fixed.  from</div><div class='add'>+	    1.5.3-ruby1.8.2, operation which has capitalized name (such as</div><div class='add'>+	    KeywordSearchRequest in AWS) is defined as a method having</div><div class='add'>+	    uncapitalized name. (converted with GenSupport.safemethodname</div><div class='add'>+	    to handle operation name 'foo-bar').  it introduced serious</div><div class='add'>+	    incompatibility; in the past, it was defined as a capitalized.</div><div class='add'>+	    define capitalized method as well under that circumstance.</div><div class='add'>+</div><div class='add'>+	  * added new factory interface 'WSDLDriverFactory#create_rpc_driver'</div><div class='add'>+	    to create RPC::Driver, not WSDLDriver (RPC::Driver and WSDLDriver</div><div class='add'>+	    are merged).  'WSDLDriverFactory#create_driver' still creates</div><div class='add'>+	    WSDLDriver for compatibility but it warns that the method is</div><div class='add'>+	    deprecated.  please use create_rpc_driver instead of create_driver.</div><div class='add'>+</div><div class='add'>+	  * allow to use an URI object as an endpoint_url even with net/http,</div><div class='add'>+	    not http-access2.</div><div class='add'>+</div><div class='add'>+	  === server side ===</div><div class='add'>+</div><div class='add'>+	  * added mod_ruby support to SOAP::CGIStub.  rename a CGI script</div><div class='add'>+	    server.cgi to server.rb and let mod_ruby's RubyHandler handles the</div><div class='add'>+	    script.  CGIStub detects if it's running under mod_ruby environment</div><div class='add'>+	    or not.</div><div class='add'>+</div><div class='add'>+	  * added fcgi support to SOAP::CGIStub.  see the sample at</div><div class='add'>+	    sample/soap/calc/server.fcgi.  (almost same as server.cgi but has</div><div class='add'>+	    fcgi handler at the bottom.)</div><div class='add'>+</div><div class='add'>+	  * allow to return a SOAPFault object to respond customized SOAP fault.</div><div class='add'>+</div><div class='add'>+	  * added the interface 'generate_explicit_type' for server side</div><div class='add'>+	    (CGIStub, HTTPServer).  call 'self.generate_explicit_type = true'</div><div class='add'>+	    if you want to return simplified XML even if it's rpc/encoded</div><div class='add'>+	    service.</div><div class='add'>+</div><div class='add'>+	  == WSDL ==</div><div class='add'>+</div><div class='add'>+	  === WSDL definition ===</div><div class='add'>+</div><div class='add'>+	  * improved XML Schema support such as extension, restriction,</div><div class='add'>+	    simpleType, complexType + simpleContent, ref, length, import,</div><div class='add'>+	    include.</div><div class='add'>+</div><div class='add'>+	  * reduced "unknown element/attribute" warnings (warn only 1 time for</div><div class='add'>+	    each QName).</div><div class='add'>+</div><div class='add'>+	  * importing XSD file at schemaLocation with xsd:import.</div><div class='add'>+</div><div class='add'>+	  === code generation from WSDL ===</div><div class='add'>+</div><div class='add'>+	  * generator crashed when there's '-' in defined element/attribute</div><div class='add'>+	    name.</div><div class='add'>+</div><div class='add'>+	  * added ApacheMap WSDL definition.</div><div class='add'>+</div><div class='add'>+	* sample/{soap,wsdl}: removed.</div><div class='add'>+</div><div class='add'>+Sun May 22 19:11:35 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#intialize):</div><div class='add'>+	  should initialize session id context. [ruby-core:4663]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): add session id support.</div><div class='add'>+</div><div class='add'>+Sun May 22 12:30:58 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, parse.y (ruby_pragma): removed.  fixed: [ruby-dev:26198]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_pragma): pragma name was ignored.</div><div class='add'>+</div><div class='add'>+Sun May 22 02:39:57 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (rm_r): new option :secure to avoid</div><div class='add'>+	  time-to-check-to-time-to-use security problem.  [ruby-dev:26100]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_file, remove_dir): try chmod(700) only</div><div class='add'>+	  on Windows.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: does not depend on find.rb.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method chmod_R.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (chown_R): did not work.</div><div class='add'>+</div><div class='add'>+Sat May 21 10:23:21 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: tds files were not deleted when DESTDIR</div><div class='add'>+	  included '\' path delimiter. [ruby-dev:26193]</div><div class='add'>+</div><div class='add'>+Fri May 20 15:52:18 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_attempted_completion_function):</div><div class='add'>+	  return 2 items if completion_proc returns only 1 item (for libedit).</div><div class='add'>+</div><div class='add'>+Fri May 20 01:24:33 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: check rl_vi_editing_mode() and</div><div class='add'>+	  rl_emacs_editing_mode().</div><div class='add'>+</div><div class='add'>+Thu May 19 23:33:09 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: supported libedit. fixed: [ruby-core:4858]</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: added new option --enable-libedit.</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb: added assertions for</div><div class='add'>+	  Readline::HISTORY.</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb: do not use Readline::HISTORY.pop.</div><div class='add'>+</div><div class='add'>+Wed May 18 23:42:25 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_exception): reverted to call Exception#initialize</div><div class='add'>+	  directly.  fixed: [ruby-dev:26177]</div><div class='add'>+</div><div class='add'>+Wed May 18 17:38:51 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): check whether path is "" before calling</div><div class='add'>+	  do_opendir.  [ruby-dev:26183]</div><div class='add'>+</div><div class='add'>+Wed May 18 13:40:48 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtInitialize): fix typo.</div><div class='add'>+</div><div class='add'>+Wed May 18 11:07:47 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): get rid of using String.  [ruby-dev:26180]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options), win32/win32.c (NtInitialize): move argument</div><div class='add'>+	  intialization back.  [ruby-dev:26180]</div><div class='add'>+</div><div class='add'>+Tue May 17 11:49:18 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (unixtime_to_filetime): use localtime() instead of</div><div class='add'>+	  gmtime() when using FileLocalTimeToFileTime().</div><div class='add'>+</div><div class='add'>+Mon May 16 22:42:52 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h, {bcc32,win32,wince}/Makefile.sub: moved rb_[ugp]id_t</div><div class='add'>+	  to get rid of redefinition warnings on mingw.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_class_init_copy): singleton class is disallowed to copy,</div><div class='add'>+	  from its definition.  fixed: [ruby-talk:142749]</div><div class='add'>+</div><div class='add'>+	* parse.y (pragma_encoding): add prototype to suppress false warning</div><div class='add'>+	  by VC.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_v): use rb_w32_aspawn on Win32.</div><div class='add'>+</div><div class='add'>+Mon May 16 03:29:01 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.{h,c}: define rb_[pgu]id_t.</div><div class='add'>+</div><div class='add'>+Mon May 16 00:21:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#unlink): use SystemCallError instead of</div><div class='add'>+	  Errno::EISDIR because EISDIR is not portable.</div><div class='add'>+	  [ruby-core:5001]</div><div class='add'>+</div><div class='add'>+Sun May 15 22:28:10 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbObject#method_missing): use raise(exception).</div><div class='add'>+	  [ruby-dev:26164]</div><div class='add'>+</div><div class='add'>+Sun May 15 18:56:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, ruby.h: define rb_[pgu]id_t macros instead of typedefs</div><div class='add'>+	  to get rid of types which might not be defined yet.  [ruby-dev:26165]</div><div class='add'>+</div><div class='add'>+Sun May 15 14:35:46 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#unlink): unlink a symlink to a directory</div><div class='add'>+	  was failed.  [ruby-core:4992]</div><div class='add'>+</div><div class='add'>+Sun May 15 09:57:30 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (unixtime_to_filetime): deal with DST.</div><div class='add'>+	  [ruby-talk:141817]</div><div class='add'>+</div><div class='add'>+Sat May 14 23:59:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_exception, {exit,name_err,syserr}_initialize): call</div><div class='add'>+	  Execption#initialize.  fixed: [ruby-talk:142593]</div><div class='add'>+</div><div class='add'>+Sat May 14 23:56:41 2005  Erik Huelsmann  &lt;ehuels@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Check for the availability of pid_t, gid_t and uid_t and</div><div class='add'>+	  remove AC_TYPE_UID_T.  fixed: [ruby-core:04745]</div><div class='add'>+</div><div class='add'>+	* defines.h: Remove pid_t typedef.</div><div class='add'>+</div><div class='add'>+	* ruby.h: Define rb_pid_t, rb_gid_t and rb_uid_t in accordance with</div><div class='add'>+	 the available system types.</div><div class='add'>+</div><div class='add'>+	* process.c: Change instances of pid_t and gid_t to their rb_*</div><div class='add'>+	 counterparts.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: Change pid_t to rb_pid_t.</div><div class='add'>+</div><div class='add'>+	* vms/config.h: Define HAVE_{P,G,U}ID_T to 1.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: Remove #define for {g,u}id_t.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: Change pid_t to rb_pid_t.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub: Remove #define for {g,u}id_t.</div><div class='add'>+</div><div class='add'>+	* wince/sys/types.h: Remove definitions of {p,g,u}id_t.</div><div class='add'>+</div><div class='add'>+Sat May 14 11:47:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (ruby_pragma): prototype.  [ruby-core:04881]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_pragma): parse Emacsen hack.</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_prepare): deal with specific syntax at the top.</div><div class='add'>+</div><div class='add'>+	* ruby.c (load_file): read the first line iff it started with shebang.</div><div class='add'>+</div><div class='add'>+Fri May 13 23:44:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: keep srcdir unexpanded.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): quote topdir and hdrdir if necessary.</div><div class='add'>+	  fixed: [ruby-core:04932]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration), {bcc32,win32,wince}/Makefile.sub: make</div><div class='add'>+	  also INSTALL_PROG and INSTALL_DATA system dependent.</div><div class='add'>+	  fixed: [ruby-core:04931]</div><div class='add'>+</div><div class='add'>+Fri May 13 23:32:55 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (unknown_node): add volatile directive to prototype.</div><div class='add'>+</div><div class='add'>+Fri May 13 17:50:49 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (generic_ivar_get): rb_attr_get should not warn.</div><div class='add'>+	  [ruby-dev:26010]</div><div class='add'>+</div><div class='add'>+Thu May 12 17:41:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: follow nkf 2.0.5</div><div class='add'>+</div><div class='add'>+Thu May 12 16:50:40 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: more readability for mixing</div><div class='add'>+	  progress "c..." and warning message.</div><div class='add'>+</div><div class='add'>+Thu May 12 15:50:56 2005  Tilman Sauerbeck  &lt;tilman@code-monkey.de&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: show parsing progress for C files.</div><div class='add'>+	  [ruby-core:4341]</div><div class='add'>+</div><div class='add'>+Thu May 12 09:53:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.c (ruby_show_version): flush for non-tty stdout.</div><div class='add'>+</div><div class='add'>+Thu May 12 01:23:55 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (unknown_node): ignore broken NODE to get rid of accessing</div><div class='add'>+	  possibly inaccessible address.  fixed: [ruby-dev:26122]</div><div class='add'>+	  should emit more useful information like [ruby-dev:26126], though.</div><div class='add'>+</div><div class='add'>+Wed May 11 15:58:39 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (break_jump): break should not cross functions.</div><div class='add'>+	  [ruby-list:40818]</div><div class='add'>+</div><div class='add'>+Wed May 11 10:41:54 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile#unlink): fixed typo.</div><div class='add'>+</div><div class='add'>+Wed May 11 01:03:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (TMP_ALLOC): use macro NEW_NODE() to get rid of warnings on</div><div class='add'>+	  platforms which have no alloca().  fixed: [ruby-talk:141301]</div><div class='add'>+</div><div class='add'>+Sun May  8 23:17:47 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: fix typo.</div><div class='add'>+</div><div class='add'>+Sun May  8 21:00:50 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (Init_Hash): remove custom "hash" and "eql?".</div><div class='add'>+	  (ported from 1.8) [ruby-dev:26132]</div><div class='add'>+</div><div class='add'>+Sun May  8 16:50:25 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/profiler.rb: fixed "undefined method `[]' for nil:NilClass"</div><div class='add'>+	  [ruby-core:4775] [ruby-talk:140401] [ruby-dev:26118]</div><div class='add'>+</div><div class='add'>+Sat May  7 22:58:00 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_var): no libs argument is given.</div><div class='add'>+</div><div class='add'>+Fri May  6 08:08:37 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c:rb_hash_hash_i() should be static.  [ruby-core:04815]</div><div class='add'>+</div><div class='add'>+	* re.c should include regint.h for declarations of oniguruma</div><div class='add'>+	  functions.  [ruby-core:04815]</div><div class='add'>+</div><div class='add'>+Sun May  1 09:15:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (process_sflag): replace '-' in variable names with '_'.</div><div class='add'>+	  [ruby-dev:26107]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval), parse.y (arg): reduce fixnum range literal at</div><div class='add'>+	  parser.  fixed: [ruby-dev:26113]</div><div class='add'>+</div><div class='add'>+Sat Apr 30 11:59:25 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_FUNC_ATTRIBUTE): check for function attribute.</div><div class='add'>+	  [ruby-dev:26109]</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c: moved noinline to configure.in.</div><div class='add'>+</div><div class='add'>+	* rubyio.h (DEPRECATED): moved to configure.in.</div><div class='add'>+</div><div class='add'>+	* ruby.h (DEPRECATED, NOINLINE): default definition.</div><div class='add'>+</div><div class='add'>+	* win{32,ce}/Makefile.sub (config.h): deprecated and noinline for</div><div class='add'>+	  __declspec() are available for VC++7 or later.</div><div class='add'>+</div><div class='add'>+Sat Apr 30 06:57:39 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb: new methods WEBrick::CGI#[], WEBrick::CGI#logger</div><div class='add'>+	  and WEBrick::CGI#config.  these are necessary to use an instance of</div><div class='add'>+	  WEBrick::CGI as the first argument of HTTPServlet#get_instance.</div><div class='add'>+	  (suggested by Tatsuki Sugiura)</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb</div><div class='add'>+	  (WEBrick::CGI#initalize): set a dummy to @config[:ServerSoftware]</div><div class='add'>+	  if SERVER_SOFTWARE environment variable is not given.</div><div class='add'>+	  (WEBrick::CGI#start): req.path_info must be a String.</div><div class='add'>+	  (WEBrick::CGI::Socket#request_line): treat REQUEST_METHOD, PATH_INFO</div><div class='add'>+	  and SCRIPT_NAME to run in console.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape_path): should</div><div class='add'>+	  not use String#split("/"). it removes trailing empty path component.</div><div class='add'>+</div><div class='add'>+Thu Apr 28 08:21:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (set_arg0): use also environment variable space for setting</div><div class='add'>+	  $0.  [ruby-core:04774]</div><div class='add'>+</div><div class='add'>+Wed Apr 27 23:42:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (OPTFLAGS): default global optimization to</div><div class='add'>+	  disabled only for VC++6.</div><div class='add'>+</div><div class='add'>+Tue Apr 26 22:58:00 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_invoke_core): call Tcl's "::unknown"</div><div class='add'>+	  command when can't get information of target command.</div><div class='add'>+</div><div class='add'>+Mon Apr 25 13:54:55 2005  speakillof  &lt;speakillof@yahoo.co.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/SHIFT-JIS.rb: encoding and decoding were</div><div class='add'>+	  swapped. [ruby-core:4772]</div><div class='add'>+</div><div class='add'>+Mon Apr 25 01:18:43 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h (OnigWarnFunc): add a variadic argument.</div><div class='add'>+	  [ruby-core:4751]</div><div class='add'>+</div><div class='add'>+Sat Apr 23 19:49:21 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_RubyExitCommand): exit with status code</div><div class='add'>+	  via TclTkIp#_eval didn't work. [ruby-talk:139390]</div><div class='add'>+</div><div class='add'>+Sat Apr 23 11:45:29 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): should check also path name to be loaded.</div><div class='add'>+	  fixed: [ruby-dev:26093]</div><div class='add'>+</div><div class='add'>+Fri Apr 22 16:55:35 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_set_exc_message): fixed memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: eTkCallbackReturn was not initialized.</div><div class='add'>+</div><div class='add'>+Thu Apr 21 06:45:28 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_incpush_expand, proc_options): expand relative path</div><div class='add'>+	  given with -I option.  [ruby-dev:26090]</div><div class='add'>+</div><div class='add'>+	* configure.in, lib/mkmf.rb, {bcc32,win32,wince}/Makefile.sub: improve</div><div class='add'>+	  C++ support.  [ruby-dev:26089]</div><div class='add'>+</div><div class='add'>+Thu Apr 21 01:53:09 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: add rdoc.</div><div class='add'>+</div><div class='add'>+Thu Apr 21 00:07:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): support platforms have file separator</div><div class='add'>+	  other than /.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (BUILD_FILE_SEPARATOR): separator</div><div class='add'>+	  of building platform.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (CP, INSTALL): use COPY command.</div><div class='add'>+</div><div class='add'>+Wed Apr 20 23:22:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk: miniruby depends on MINIOBJS.</div><div class='add'>+</div><div class='add'>+	* dmydln.c (dln_load): dummy function to raise LoadError.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in, {bcc32,win32,wince}/Makefile.sub: miniruby</div><div class='add'>+	  can't load extensions on Windows.</div><div class='add'>+</div><div class='add'>+Wed Apr 20 23:01:35 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/ifchange.bat: delete testing files.</div><div class='add'>+</div><div class='add'>+Wed Apr 20 22:54:54 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method Net::HTTP.post_form.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method Net::HTTPHeader#set_form_data and</div><div class='add'>+	  its alias #form_data=.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Net::HTTPHeader#add_header -&gt; add_field</div><div class='add'>+	  (adjustted to Ruby 1.8).</div><div class='add'>+</div><div class='add'>+Wed Apr 20 10:53:30 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (lex_init): use IRB module.</div><div class='add'>+	  [ruby-core:04737]</div><div class='add'>+</div><div class='add'>+Wed Apr 20 07:27:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/configure.bat, {bcc32,win32,wince}/setup.mak:</div><div class='add'>+	  add extout option.</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak: make configuration variables overridable.</div><div class='add'>+</div><div class='add'>+Tue Apr 19 23:37:09 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (File.safe_unlink): do not modify a symlinked file.</div><div class='add'>+</div><div class='add'>+Tue Apr 19 23:02:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): deal with features with path too.</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_file_expand_path): prototype.  fixed: [ruby-dev:26082]</div><div class='add'>+</div><div class='add'>+Tue Apr 19 08:38:07 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required, rb_require_safe): expand path in</div><div class='add'>+	  rb_features.  [ruby-dev:26079]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_find_file_ext): return absolute path.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: expand path for ext/**/extconf.rb.</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): handle static linked extensions.</div><div class='add'>+</div><div class='add'>+Mon Apr 18 15:37:35 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_attr): attribute name check added.</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_plus): small typo fix.</div><div class='add'>+</div><div class='add'>+Mon Apr 18 11:25:14 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): fixed SEGV. [ruby-core:4712]</div><div class='add'>+</div><div class='add'>+Sun Apr 17 23:57:49 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake, parse_args): do not expand destdir.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (relative_from): treat mere drive letter as an absolute</div><div class='add'>+	  path.</div><div class='add'>+</div><div class='add'>+Sat Apr 16 17:01:16 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb (rss_recent_cache_rss):</div><div class='add'>+	  use the first date information of items as site date information</div><div class='add'>+	  if channel doesn't have date information.</div><div class='add'>+</div><div class='add'>+Sat Apr 16 15:27:03 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RUBY_PROG_INSTALL): not add -p option to INSTALL.</div><div class='add'>+	  files need timestamps to be kept are only ar-archive on a few</div><div class='add'>+	  platforms, and be installed by instruby.rb but not INSTALL.</div><div class='add'>+	  fixed: [ruby-core:04721]</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: purge autoconf value variables.</div><div class='add'>+</div><div class='add'>+Sat Apr 16 10:33:48 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: quick hack... prepend DESTDIR.</div><div class='add'>+	  still have restriction on DESTDIR ("", "/", "e:")</div><div class='add'>+</div><div class='add'>+Sat Apr 16 03:59:42 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check for OPENSSL_cleanse.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.h: ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 15 22:40:19 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: add test for WIN32OLE.codepage=</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLETYPELIB.rb: correct expected message.</div><div class='add'>+</div><div class='add'>+Fri Apr 15 22:04:07 2005  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(ole_invoke): retry after converting Qnil</div><div class='add'>+	  to VT_EMPTY.</div><div class='add'>+</div><div class='add'>+Thu Apr 14 19:05:06 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper] (regexp): dispatch regexp option.</div><div class='add'>+	  [ruby-Bugs:1688]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/core.rb: regenerated (interface changed).</div><div class='add'>+</div><div class='add'>+Thu Apr 14 18:59:43 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_file): ignore exceptions caused by</div><div class='add'>+	  chmod.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_dir): try to get rights to rmdir.</div><div class='add'>+	  [ruby-Bugs:1502]</div><div class='add'>+</div><div class='add'>+Thu Apr 14 18:51:02 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb, lib/irb/slex.rb: bug fix of [ruby-Bugs-1745]</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/loader.rb, lib/irb/ext/save-history.rb:</div><div class='add'>+	  fix location of @RCS_ID</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb: a lost of release IRB 0.9.5.</div><div class='add'>+</div><div class='add'>+Thu Apr 14 15:10:30 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/notifier.rb, lib/irb/output-method.rb, lib/irb/ext/history.rb</div><div class='add'>+	  fixed warning of 'ruby -w'</div><div class='add'>+</div><div class='add'>+Thu Apr 14 05:35:45 2005  Keiju Ishitsuka  &lt;keiju@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* doc/irb/irb.rd.ja: a lost  of release IRB 0.9.5.</div><div class='add'>+</div><div class='add'>+	* lib/irb/slex.rb: bug fix by [ruby-core:04707].</div><div class='add'>+</div><div class='add'>+Thu Apr 14 00:20:31 2005  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.5.</div><div class='add'>+</div><div class='add'>+Wed Apr 13 23:40:21 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION): 0.1.3 -&gt; 0.1.4.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::Element#converter): fixed converter</div><div class='add'>+	  transmission bug.</div><div class='add'>+</div><div class='add'>+Wed Apr 13 22:12:16 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#order!): call handlers iff matches</div><div class='add'>+	  non-switch.</div><div class='add'>+</div><div class='add'>+Wed Apr 13 21:20:35 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw32): extract msvcr*.dll from objdump result.</div><div class='add'>+</div><div class='add'>+Wed Apr 13 19:25:31 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw32): use actual runtime DLL name as ruby DLL</div><div class='add'>+	  name and default load path.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, win32/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr 12 19:30:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#make_switch, OptionParser#order!):</div><div class='add'>+	  added non-option and end-of-args handler.  [ruby-talk:136878]</div><div class='add'>+	  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Tue Apr 12 15:33:09 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_finalize): better modification than the</div><div class='add'>+	  previous commit [ruby-dev:26029].</div><div class='add'>+</div><div class='add'>+Tue Apr 12 12:38:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_finalize): fix SEGV when Tcl_GlobalEval()</div><div class='add'>+	  modifies the argument string to eval.</div><div class='add'>+</div><div class='add'>+Tue Apr 12 02:21:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_finalize): add existence check of</div><div class='add'>+	  Tcl commands before calling Tcl_GlobalEval().</div><div class='add'>+</div><div class='add'>+Mon Apr 11 23:36:04 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: [druby-ja:123] fix: When reference of my object is</div><div class='add'>+	  loaded, the object is tainted.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Apr 11 22:18:23 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c, file.c (lstat): avoid warnings for mingw.</div><div class='add'>+</div><div class='add'>+Mon Apr 11 20:11:06 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_finalize): adhoc patch to avoid SEGV when exit</div><div class='add'>+	  on Tcl/Tk8.3.x.</div><div class='add'>+</div><div class='add'>+Mon Apr 11 15:24:20 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): shouldn't output hdrdir twice.</div><div class='add'>+</div><div class='add'>+Sat Apr  9 18:20:31 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/image.rb: support to create TkImage object without</div><div class='add'>+	  creating a new image object on Tk.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: use TkCommandNames on create_self()</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/root.rb: TkRoot.to_eval() returns '.'.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: add methods to create a TkText::IndexString</div><div class='add'>+	  from (x, y) coords.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/: add demo and update support status.</div><div class='add'>+</div><div class='add'>+Sat Apr  9 14:42:29 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb: supported configuration</div><div class='add'>+	  via Web browser.</div><div class='add'>+</div><div class='add'>+Fri Apr  8 20:17:48 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): hdrdir needs to be defined also in</div><div class='add'>+	  Config::CONFIG.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration, create_makefile): get rid of recursive</div><div class='add'>+	  macro reference.</div><div class='add'>+</div><div class='add'>+Fri Apr  8 01:55:20 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-{en,jp}/goldberg.rb: reduced window size.</div><div class='add'>+	  [ruby-dev:25992]</div><div class='add'>+</div><div class='add'>+Thu Apr  7 23:58:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): keep directory names in Makefile as macros.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration, create_makefile): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CXX_EXT): separate C++ extensions.</div><div class='add'>+</div><div class='add'>+Thu Apr  7 17:24:17 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): "return" event hook should be always executed</div><div class='add'>+	  if event_hooks is set.</div><div class='add'>+</div><div class='add'>+Thu Apr  7 14:33:09 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_dc.rb (test_date): added a test for #date=</div><div class='add'>+	  and #dc_date=.</div><div class='add'>+</div><div class='add'>+Thu Apr  7 11:49:53 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/dublincore.rb: _really_ supported multiple Dublin</div><div class='add'>+	  Core items.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb (assert_multiple_dublin_core): added</div><div class='add'>+	  an assertion for testing multiple Dublin Core items.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_dc.rb (test_rss10_multiple): added a test</div><div class='add'>+	  for making multiple Dublin Core items.</div><div class='add'>+</div><div class='add'>+Wed Apr  6 16:06:30 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb (test_key): should test ENV.key instead of</div><div class='add'>+	  ENV.index. [ruby-dev:25994]</div><div class='add'>+</div><div class='add'>+Tue Apr  5 16:01:12 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/*: refactored.</div><div class='add'>+	  - gave a name to 'x'.</div><div class='add'>+	  - undef_method -&gt; remove_method for avoiding a warning in ruby 1.6.</div><div class='add'>+</div><div class='add'>+Tue Apr  5 15:45:33 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb:</div><div class='add'>+	  new option: @options['rss-recent.use-image-link']:</div><div class='add'>+	  use image as link instread of text if available.</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb (RSS_RECENT_VERSION):</div><div class='add'>+	  0.0.5 -&gt; 0.0.6.</div><div class='add'>+</div><div class='add'>+Tue Apr  5 15:15:26 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb: supported multiple Dublin Core items.</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb: added class name registry for complex model</div><div class='add'>+	  elements. (ex. have childlen elements, have some attributes and</div><div class='add'>+	  a child element and so on.)</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb: added default current_element implementation.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/dublincore.rb: supported multiple Dublin Core</div><div class='add'>+	  items.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/image.rb: supproted new Dublin Core API.</div><div class='add'>+</div><div class='add'>+	* lib/rss/trackback.rb (RSS::TrackBackUtils.new_with_value_if_need):</div><div class='add'>+	  moved to RSS::Utils.</div><div class='add'>+</div><div class='add'>+	* lib/rss/utils.rb (RSS::Utils.new_with_value_if_need):</div><div class='add'>+	  moved from RSS::TrackBackUtils.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/image.rb: fixed invalid argument of</div><div class='add'>+	  add_need_initialize_variable bug.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/trackback.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (Hash#merge): added for ruby 1.6.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::BaseModel.date_writer): changed to accept nil</div><div class='add'>+	  for date value.</div><div class='add'>+</div><div class='add'>+	* test/test_dublincore.rb: added tests for plural accessor and</div><div class='add'>+	  multiple Dublin Core items.</div><div class='add'>+</div><div class='add'>+	* test/test_setup_maker_1.0.rb: fixed swapped actual and expected</div><div class='add'>+	  values.</div><div class='add'>+</div><div class='add'>+Mon Apr  4 23:17:52 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkComm#array2tk_list): accept enc-mode argument to</div><div class='add'>+	  decide whether convert encoding of each element or not.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb (TkVariable#value=): fail to convert the</div><div class='add'>+	  encoding of array elements when assign an array to an TkVariable</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+Mon Apr  4 10:26:48 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: fixed typo.</div><div class='add'>+</div><div class='add'>+Sat Apr  2 23:38:54 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (CP, INSTALL): get rid of less portable options.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration, create_makefile): correct configuration</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+	* wince/configure.bat, wince/setup.mak: add prefix, extstatic and</div><div class='add'>+	  rdoc options.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): ensure library directories get made</div><div class='add'>+	  before copying libraries there.</div><div class='add'>+</div><div class='add'>+Sat Apr  2 16:59:46 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: forgot to update RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: fix namespace trouble when autoloading</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/palette.rb: define Tcl variable 'tkPalette' as global</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: use array2tk_list method when calling</div><div class='add'>+	  Tk.ip_eval.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/autoload.rb: add autoload entry 'TkDialogObj' and</div><div class='add'>+	  'TkWarningObj'</div><div class='add'>+</div><div class='add'>+Sat Apr  2 13:23:17 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_key): ENV.index is deprecated as well as Hash#index.</div><div class='add'>+	  use ENV.key instead. [ruby-dev:25974]</div><div class='add'>+</div><div class='add'>+Sat Apr  2 02:19:11 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkWindow.initialize): accept 'without_creating'</div><div class='add'>+	  option without 'widgetname' option to allow creating a widget object</div><div class='add'>+	  which is used as an argument of Tcl/Tk's widget allocation commands.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/image.rb (TkImage.initialize): accept 'imagename'</div><div class='add'>+	  option to create a image object by the given name.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 22:23:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (SRC_EXT): exclude just case different suffixes on case</div><div class='add'>+	  insensitive file system platforms.</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja (Appendix C): utility functions.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 14:08:43 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should return</div><div class='add'>+	  value. [ruby-dev:25971]</div><div class='add'>+</div><div class='add'>+Thu Mar 31 11:07:50 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb: @@setter -&gt; @@setters.</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb</div><div class='add'>+	  (RSS::BaseListener.register_uri)</div><div class='add'>+	  (RSS::BaseListener.uri_registered?)</div><div class='add'>+	  (RSS::BaseListener.install_get_text_element):</div><div class='add'>+	  swapped the first argument and the second argument.</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb: swapped the first argument and the second</div><div class='add'>+	  argument for RSS::BaseListener.install_get_text_element.</div><div class='add'>+	* lib/rss/image.rb: ditto.</div><div class='add'>+	* lib/rss/syndication.rb: ditto.</div><div class='add'>+	* lib/rss/dublincore.rb: ditto.</div><div class='add'>+	* lib/rss/parser.rb: ditto.</div><div class='add'>+	* lib/rss/1.0.rb: ditto.</div><div class='add'>+	* lib/rss/2.0.rb: ditto.</div><div class='add'>+	* lib/rss/0.9.rb: ditto.</div><div class='add'>+	* lib/rss/content.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 11:00:36 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb</div><div class='add'>+	  (RSS::BaseListener.install_setter)</div><div class='add'>+	  (RSS::BaseListener.register_uri): changed fallback way.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 08:25:40 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (RUBYOPT): clear for the environment RubyGems installed.</div><div class='add'>+</div><div class='add'>+	* common.mk (clean-local): keep $(PREP) files till distclean.</div><div class='add'>+</div><div class='add'>+	* common.mk (check): do all tests.</div><div class='add'>+</div><div class='add'>+Thu Mar 31 06:00:20 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c (ossl_engine_s_load): should not raise</div><div class='add'>+	  error even if the specified engine could not be loaded. (Dynamic</div><div class='add'>+	  engines don't have fixed name to load.)</div><div class='add'>+</div><div class='add'>+Wed Mar 30 17:41:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add TclTkIp#_create_console() method to create</div><div class='add'>+	  a Tcl/Tk's console window.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: support TclTkIp#_create_console() method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/console.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: update RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demo-*/check2.rb: use 'return' in the Proc object.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/**: ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 29 22:20:49 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: use DRbObject.new_with instead of reinit.</div><div class='add'>+	  [ruby-dev:25961]</div><div class='add'>+</div><div class='add'>+Tue Mar 29 00:04:57 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: move method DRbObject#reinit to DRbObject.new_with.</div><div class='add'>+	  extract method DRbObject.prepare_backtrace. add DRb.regist_server,</div><div class='add'>+	  remove_server, fetch_server. change server in thread variable if</div><div class='add'>+	  in-proc server. [druby-ja:113]</div><div class='add'>+</div><div class='add'>+	* lib/drb/gw.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar 28 20:53:44 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile): nothing to be removed when no file</div><div class='add'>+	  was deleted.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): restore srcdir.</div><div class='add'>+</div><div class='add'>+Mon Mar 28 08:39:49 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_create): Iconv::Failure requires 3</div><div class='add'>+	  arguments.  (pointed out by NaHi)</div><div class='add'>+</div><div class='add'>+Sun Mar 27 00:56:58 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_file): ignore Errno::E* if force option</div><div class='add'>+	  is set. [ruby-dev:25944]</div><div class='add'>+</div><div class='add'>+Sat Mar 26 22:51:33 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (_callback_entry_class?): add for checking whether</div><div class='add'>+	  a class is available for a callback entry.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (after_cancel): add Tk.after_cancel(afterID) method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (array2tk_list): change from private module method</div><div class='add'>+	  of TkComm to public module method.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (cget): add check that slot argument is not</div><div class='add'>+	  empty string.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (configinfo): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb (itemcget): add check that slot argument</div><div class='add'>+	  is not empty string.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/itemconfig.rb (itemconfiginfo): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/entry.rb: add TkEntry#icursor and icursor= (alias of</div><div class='add'>+	  cursor and cursor= method).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: improve font treatment when the font name is</div><div class='add'>+	  empty string.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: add :variable, :window and :procedure</div><div class='add'>+	  type.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: improve treatment of array-type</div><div class='add'>+	  tkvariable.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt.rb: add commands for zooming.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt/*: bug fix.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and add methods</div><div class='add'>+	  to call TreeCtrl commands for bindings.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/blt/*: new sample scripts.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/treectrl/*: ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 25 10:53:16 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (WIN32_LEAN_AND_MEAN): removed because a lot of</div><div class='add'>+	  troubles.  [ruby-list:40721]</div><div class='add'>+</div><div class='add'>+Thu Mar 24 23:10:44 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (macro_defined?): try to compile for an old compiler</div><div class='add'>+	  which doesn't bail out at #error directive.  [ruby-dev:25818]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): refine logging messages.</div><div class='add'>+</div><div class='add'>+Wed Mar 23 19:08:10 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb (WEBrick::Utils.create_listeners):</div><div class='add'>+	  - should raise ArgumentError if no port is specified.</div><div class='add'>+	  - even if the specified port is 0, all TCPServers should be</div><div class='add'>+	    initialized with the port given to the first one.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#initialize): if :Port</div><div class='add'>+	  parameter is 0, it should be updated with the port number which</div><div class='add'>+	  ectually listened.</div><div class='add'>+</div><div class='add'>+Wed Mar 23 16:12:40 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): fix lineno of rescue and ensure.</div><div class='add'>+</div><div class='add'>+Wed Mar 23 00:39:05 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb (test_event): added tests for</div><div class='add'>+	  "class" and "end" and "raise".</div><div class='add'>+</div><div class='add'>+Sun Mar 20 22:51:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (mkmf_failed): check if Makefile is created without</div><div class='add'>+	  create_makefile.</div><div class='add'>+</div><div class='add'>+Sat Mar 19 23:48:10 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg): returned true always.</div><div class='add'>+	  fixed: [ruby-list:40683]</div><div class='add'>+</div><div class='add'>+Sat Mar 19 00:41:02 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: add some TkFont class methods to get font</div><div class='add'>+	  information without creating a TkFont object.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: bug fix and define some</div><div class='add'>+	  classes for components of Tk::TreeCtrl</div><div class='add'>+</div><div class='add'>+Thu Mar 17 17:42:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): allow non local-id field</div><div class='add'>+	  names. [ruby-core:04575]</div><div class='add'>+</div><div class='add'>+	* struct.c (inspect_struct): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 16 23:39:13 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: added test for c-return.</div><div class='add'>+</div><div class='add'>+Wed Mar 16 22:57:43 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): call_cfunc() should be protected.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_event_hook): use K&amp;R style.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_remove_event_hook): ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 16 22:03:15 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_add_event_hook): new function to add a hook function for</div><div class='add'>+	  interpreter events.</div><div class='add'>+</div><div class='add'>+Wed Mar 16 18:08:32 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): reorganize "return" event post.</div><div class='add'>+</div><div class='add'>+	* eval.c (return_jump): no need to post "return" event here.</div><div class='add'>+</div><div class='add'>+Tue Mar 15 23:49:19 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (Init_iconv): InvalidEncoding also should include</div><div class='add'>+	  Iconv::Failure.</div><div class='add'>+</div><div class='add'>+Tue Mar 15 23:12:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (recursive_check, recursive_push): more restrictive check.</div><div class='add'>+	  fixed: [ruby-dev:25916]</div><div class='add'>+</div><div class='add'>+Tue Mar 15 16:38:31 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c (ary2list): give wrong arguments to hash2kv()</div><div class='add'>+</div><div class='add'>+Mon Mar 14 19:39:33 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb (TkTimer): forgot to clear @return_value</div><div class='add'>+	  when restarting</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/sample/cd_timer.rb: new sample of TkRTTimer</div><div class='add'>+</div><div class='add'>+Mon Mar 14 12:21:03 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb (TkRTTimer): forgot to reset the callback</div><div class='add'>+	  time. So, 'continue' do all callbacks between 'stop' and 'continue'.</div><div class='add'>+</div><div class='add'>+Mon Mar 14 08:14:56 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (str_to_id): raise ArgumentError for NUL containing</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+Mon Mar 14 00:13:49 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb (TkRTTimer): correct calculation of offset</div><div class='add'>+	  value. get a little better accuracy.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/widget: use a binding with no local variables</div><div class='add'>+	  when eval a sample script.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/bind.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/tcolor: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/bind.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/tcolor: ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 13 22:19:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (recursive_pop): raise TypeError instead of fatal error.</div><div class='add'>+	  fixed: [ruby-dev:25843]</div><div class='add'>+</div><div class='add'>+Sun Mar 13 10:09:17 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: remove test_gc. [ruby-dev:25871]</div><div class='add'>+</div><div class='add'>+Sun Mar 13 02:32:54 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): should get DH</div><div class='add'>+	  parameter from the current SSL object.</div><div class='add'>+</div><div class='add'>+Sun Mar 13 02:09:03 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c (ossl_create_dh): fix typo.</div><div class='add'>+	  patch from IWATSUKI Hiroyuki. [ruby-dev:25867]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto.</div><div class='add'>+	  (ossl_call_tmp_dh_callback): ditto</div><div class='add'>+</div><div class='add'>+Fri Mar 11 03:24:59 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): wrong var node was set for NODE_LAMBDA.</div><div class='add'>+	  [ruby-core:04555]</div><div class='add'>+</div><div class='add'>+Thu Mar 10 19:10:29 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (lib_eventloop_ensure): mis-delete a timer handler</div><div class='add'>+	  when exit from a recursive called eventloop</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: new TkRTTimer class, which can works for a</div><div class='add'>+	  realtime operation</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkrttimer.rb: sample of TkRTTimer class</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textmark.rb: move  TkTextMark#+ and TkTextMark#- to</div><div class='add'>+	  TkText::IndexModMethods</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: improve TkTextMark#+ and TkTextMark#-, and</div><div class='add'>+	  add them to TkText::IndexModMethods module</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktextio.rb: add test part of "seek by text index</div><div class='add'>+	  modifiers"</div><div class='add'>+</div><div class='add'>+Thu Mar 10 08:10:11 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (make_regexp): need to free internal regexp structure when</div><div class='add'>+	  compilation fails.  [ruby-talk:133228]</div><div class='add'>+</div><div class='add'>+Thu Mar 10 01:08:20 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (bv_decl): remove initialize rule from block local</div><div class='add'>+	  variable declaration.</div><div class='add'>+</div><div class='add'>+Wed Mar  9 23:55:34 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods#guard_inspect_key): support</div><div class='add'>+	  __recursive_key__.  [ruby-dev:25821]</div><div class='add'>+</div><div class='add'>+Wed Mar  9 19:42:21 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: OpenSSL::SSL::SSLContexts suports callbacks:</div><div class='add'>+	  - SSLContext#client_cert_cb is a Proc. it is called when a client</div><div class='add'>+	    certificate is requested by a server and no certificate was yet</div><div class='add'>+	    set for the SSLContext. it must return an Array which includes</div><div class='add'>+	    OpenSSL::X509::Certificate and OpenSSL::PKey::RSA/DSA objects.</div><div class='add'>+	  - SSLContext#tmp_dh_callback is called in key exchange with DH</div><div class='add'>+	    algorithm. it must return an OpenSSL::PKey::DH object.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c:</div><div class='add'>+	  (ossl_sslctx_set_ciphers): ignore the argument if it's nil.</div><div class='add'>+	  (ossl_start_ssl, ossl_ssl_write): call rb_sys_fail if errno isn't 0.</div><div class='add'>+	  [ruby-dev:25831]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c</div><div class='add'>+	  (GetPrivPKeyPtr, ossl_pkey_sign): should call rb_funcall first.</div><div class='add'>+	  (DupPrivPKeyPtr): new function.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c: add default DH parameters.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/cipher.rb: fix typo. [ruby-dev:24285]</div><div class='add'>+</div><div class='add'>+Wed Mar  9 18:09:51 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (gettable_gen): warns if VCALL name is used as</div><div class='add'>+	  out-of-scope block local variable.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+	* parse.y (opt_bv_decl): add explicit block local variable</div><div class='add'>+	  declaration.  raises error for name conflicts.  [EXPERIMENTAL]</div><div class='add'>+</div><div class='add'>+Wed Mar  9 13:37:57 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktextio.rb: fix bug of handling 'end' position.</div><div class='add'>+	  support initial text, overwrite setting and pos_gravity control.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 18:16:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktextio.rb: New sample script. TkTextIO class in this</div><div class='add'>+	  sample supports to use a text widget as if it is a I/O stream (such</div><div class='add'>+	  like as StringIO class).</div><div class='add'>+</div><div class='add'>+Tue Mar  8 13:39:25 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: workaround for some of 4.4BSD-Lite</div><div class='add'>+	  derived OSs.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 12:36:17 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: document from Sam Roberts</div><div class='add'>+	  &lt;sroberts@uniserve.com&gt; for getsockopt and setsockopt is merged.</div><div class='add'>+	  [ruby-doc:824]</div><div class='add'>+</div><div class='add'>+Tue Mar  8 10:48:53 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_recursive): declaration should precede statements</div><div class='add'>+	  before C99.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 10:05:40 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (errno_missing): Errno.const_missing to allow references</div><div class='add'>+	  to SyscallError exceptions not defined on the platform.</div><div class='add'>+	  [ruby-core:04522]</div><div class='add'>+</div><div class='add'>+	* error.c (Init_syserr): Errno::NOERROR(0) for fallback exception.</div><div class='add'>+</div><div class='add'>+Tue Mar  8 01:19:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.66</div><div class='add'>+	  fixed: [ruby-dev:25828]</div><div class='add'>+</div><div class='add'>+Mon Mar  7 21:29:40 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#start): should</div><div class='add'>+	  restore @token if accept failure. suggested by Dominique Brezinski.</div><div class='add'>+	  [ruby-core:04518]</div><div class='add'>+</div><div class='add'>+	* sample/webrick/httpsd.rb: fix typo in comment. suggested by</div><div class='add'>+	  Kazuhiko Shiozaki.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 21:01:37 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_require_safe): get actual path string under safe level</div><div class='add'>+	  when requested.  fixed: [ruby-dev:25815]</div><div class='add'>+</div><div class='add'>+Mon Mar  7 16:46:02 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_start_ssl, ossl_ssl_read,</div><div class='add'>+	  ossl_ssl_write): need to set errno on Win32 platform.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 14:55:43 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should not push unique number if a block is</div><div class='add'>+	  not an orphan.  [ruby-dev:25808]</div><div class='add'>+</div><div class='add'>+Mon Mar  7 14:13:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#initialize):</div><div class='add'>+	  should set @eof and @rbuffer.</div><div class='add'>+</div><div class='add'>+Mon Mar  7 10:28:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (inspect_obj): unintended space removal.</div><div class='add'>+	  [ruby-dev:25810]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_recursive): should not use NODE in disclosed</div><div class='add'>+	  context.  [ruby-dev:25812]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): need not to check if to_open value is a</div><div class='add'>+	  T_FILE.  [ruby-dev:25812]</div><div class='add'>+</div><div class='add'>+Mon Mar  7 01:21:01 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: follow the change of st.c (committed</div><div class='add'>+	  at Fri, 4 Mar 2005 15:47:47 +0900 by matz)</div><div class='add'>+</div><div class='add'>+Mon Mar  7 00:01:55 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fail to call TclTkLib.mainloop when $SAFE==4</div><div class='add'>+</div><div class='add'>+Sun Mar  6 13:04:10 2005  Dee Zsombor  &lt;zsombor@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-electric.el: added.</div><div class='add'>+	* misc/Readme: updated.</div><div class='add'>+</div><div class='add'>+Sun Mar  6 11:47:10 2005  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: rdoced.  [ruby-core:4490]</div><div class='add'>+</div><div class='add'>+Sun Mar  6 11:36:37 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (File::Stat#pretty_print): Etc.getpwuid and Etc.getgrgid</div><div class='add'>+	  may return nil.  [ruby-talk:129826]</div><div class='add'>+	  reported by Daniel Berger.</div><div class='add'>+</div><div class='add'>+Sun Mar  6 06:34:31 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_start_ssl): should wait for that</div><div class='add'>+	  the underlying IO become readable or writable if the error was</div><div class='add'>+	  SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE. [ruby-dev:25795]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read, ossl_ssl_write): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb</div><div class='add'>+	  (Buffering#consume_rbuf): pointless eof flag resetting is deleted.</div><div class='add'>+	  (Buffering#read): should return an empty string if the specified</div><div class='add'>+	  size is zero.</div><div class='add'>+	  (Buffering#readpartial): new method.</div><div class='add'>+	  (Buffering#readline): fix typo.</div><div class='add'>+	  (Buffering#getc): return the first character of string correctly.</div><div class='add'>+	  (Buffering#readchar): fix typo.</div><div class='add'>+	  (Buffering#eof?): should read again it the input buffer is empty.</div><div class='add'>+	  (Buffering#do_write): should rescue Errno::EAGAIN.</div><div class='add'>+	  (Buffering#puts): use "\n" as the output field separator.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: get rid of GNUmakefile generation.</div><div class='add'>+</div><div class='add'>+	* text/openssl/test_pair.rb: test for IO like methods.</div><div class='add'>+</div><div class='add'>+	* test/ruby/ut_eof.rb: test about empty file.</div><div class='add'>+</div><div class='add'>+Sat Mar  5 17:48:31 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob): fixed mismatch of argument.</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): removed unnecessary code. (by string.c 1.219)</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (NtInitialize): ditto. (by numeric.c 1.117)</div><div class='add'>+</div><div class='add'>+Sat Mar  5 16:50:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.65</div><div class='add'>+</div><div class='add'>+Sat Mar  5 16:29:26 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: freeze callback-entry objects</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile.rb: support tile-0.6</div><div class='add'>+</div><div class='add'>+Sat Mar  5 12:52:08 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): allow putting spaces between target</div><div class='add'>+	  and colon in depend file.</div><div class='add'>+</div><div class='add'>+Sat Mar  5 02:41:00 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): workaround for VC++8 runtime.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (ioinfo): VC++8 support.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 19:39:55 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser#do_includes): replace</div><div class='add'>+	  also locally defined modules.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c: rdocified.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: moved misplaced rdoc.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 16:11:20 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_recursive): matched the declaration to prototype.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: don't need to check HAVE_WCOLOR_SET excluding</div><div class='add'>+	  window_color_set().</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: fixed commit mistakes.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 12:45:17 2005  Tilman Sauerbeck  &lt;tilman@code-monkey.de&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: allow whitespace after function names.</div><div class='add'>+	  [ruby-core:4296]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_simple.rb: adds support for private comments</div><div class='add'>+	  in the "simple" parser. [ruby-core:4301]</div><div class='add'>+</div><div class='add'>+Fri Mar  4 12:45:17 2005  Charles Mills  &lt;cmills@freeshell.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: adds support for constants</div><div class='add'>+	  (rb_define_const), accessors (rb_define_attr), and makes a</div><div class='add'>+	  couple fixes. [ruby-core:4307]</div><div class='add'>+</div><div class='add'>+Fri Mar  4 12:45:17 2005  Florian Gross  &lt;florgro@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Logic for def Builtin.method() end</div><div class='add'>+	  [ruby-core:4302]</div><div class='add'>+</div><div class='add'>+Fri Mar  4 12:45:17 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: replace rb_protect_inspect() and rb_inspecting_p() by</div><div class='add'>+	  rb_exec_recursive() in eval.c.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_recursive): new function.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_join): use rb_exec_recursive().</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_inspect, rb_ary_hash): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_join): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_inspect, rb_hash_to_s, rb_hash_hash): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_puts): ditto.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_inspect): ditto</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_inspect): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 10:15:30 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (SortedSet::setup): a hack to shut up warning.</div><div class='add'>+	  [ruby-talk:132866]</div><div class='add'>+</div><div class='add'>+Fri Mar  4 09:37:12 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk (install-nodoc, pre-install-doc, post-install-doc):</div><div class='add'>+	  fix some omissions.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 08:09:12 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (Time::strptime): add new function.  inspired by</div><div class='add'>+	  [ruby-talk:132815].</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb (ParseDate::strptime): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar  4 07:07:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.63</div><div class='add'>+</div><div class='add'>+Thu Mar  3 23:24:00 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: follow nkf 1.62</div><div class='add'>+</div><div class='add'>+Thu Mar  3 18:47:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (config.h): check if affected</div><div class='add'>+	  when makefiles are modified.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (config.status): add variables</div><div class='add'>+	  for tests.</div><div class='add'>+</div><div class='add'>+	* win32/ifchange.bat: try to update a file only if modified.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: more descriptions.</div><div class='add'>+</div><div class='add'>+	* common.mk: add {pre,post}-install targets.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install?): install particular part.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (post-install-ext): remove debug information</div><div class='add'>+	  files after installation.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (ip_rbUpdateCommand, ip_rb_threadUpdateCommand):</div><div class='add'>+	  get rid of warnings with Tcl/Tk 8.3 or former.</div><div class='add'>+</div><div class='add'>+Thu Mar  3 11:49:51 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb: added site information.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 19:53:44 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args): return false if nothing matched.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 17:15:08 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c (lib_eventloop_core): fix typo</div><div class='add'>+</div><div class='add'>+Wed Mar  2 16:59:50 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_native_thread_kill): call pthread_kill() to send a</div><div class='add'>+	  signal to ruby's native thread</div><div class='add'>+</div><div class='add'>+	* ruby.h: add definition of ruby_native_thread_kill()</div><div class='add'>+</div><div class='add'>+	* signal.c (sigsend_to_ruby_thread): send the signal to ruby's</div><div class='add'>+	  native thread ([ruby-dev:25744], [ruby-dev:25754]), and set</div><div class='add'>+	  signal mask to the current native thread</div><div class='add'>+</div><div class='add'>+Wed Mar  2 16:03:08 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: enforce thread-check and exception-handling to</div><div class='add'>+	  avoid SEGV trouble.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: fix a bug on converting a SJIS string array</div><div class='add'>+	  to a Tcl's list string.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: wrap Tcl's original "namespace" command to</div><div class='add'>+	  protect from namespace crash.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: enforce exception-handling.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: catch IRB_EXIT to work on irb.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add TclTkLib.mainloop_thread?</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: (bug fix) callback returns a value.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb (delete): bug fix when multiple arguments.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/clock.rb: fix 'no method error'.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/clock.rb (self.clicks): accept a Symbol argument.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/variable.rb: be able to set default_value_type; :numeric,</div><div class='add'>+	  :bool, :string, :symbol, :list, :numlist or nil (default; same to</div><div class='add'>+	  :string). If set a type, TkVariable#value returns a value of the</div><div class='add'>+	  type.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tclx/tclx.rb: add Tk::TclX.signal to warn the</div><div class='add'>+	  risk of using TclX extension's 'signal' command.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/irbtk.rb: irb with Ruby/Tk.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-*/anilabel.rb: bug fix on 'show code'</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-*/aniwave.rb: new Ruby/Tk animation demo.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-*/pendulum.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-*/goldberg.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-*/widget: add entries of animation demos.</div><div class='add'>+</div><div class='add'>+Wed Mar  2 12:21:18 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): [EXPERIMENTAL] NODE_LAMBDA implemented.</div><div class='add'>+	  [ruby-dev:25780]</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_LAMBDA): for literal Proc object.</div><div class='add'>+</div><div class='add'>+	* parse.y (expr): interpret mere do...end block as proc object.</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): ditto, for brace block.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 21:16:54 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c (optimize_node_left): uninitialized member</div><div class='add'>+	  (OptEnv.backrefed_status) was used. [ruby-dev:25778]</div><div class='add'>+</div><div class='add'>+Tue Mar  1 16:50:37 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c: move st_*_strend() functions from st.c.  fixed some</div><div class='add'>+	  potential memory leaks.</div><div class='add'>+</div><div class='add'>+Tue Mar  1 00:40:35 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb (Rinda::TupleSpace): improved keeper thread.</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 23:10:13 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): IPv6 is not supported although</div><div class='add'>+	  AF_INET6 is defined on bcc32. (rev1.108 again)</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 28 21:55:49 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_s_allocate):</div><div class='add'>+	  use onig_region_init().</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (adjust_registers_to_matched):</div><div class='add'>+	  use onig_region_set().</div><div class='add'>+</div><div class='add'>+Mon Feb 28 15:12:06 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): ported more Socket::Constants</div><div class='add'>+	  from ruby_1_8, and made it easy to add new constants.</div><div class='add'>+	  [ruby-dev:25771]</div><div class='add'>+</div><div class='add'>+	* ext/socket/depend: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/mkconstants.rb: ditto. (added)</div><div class='add'>+</div><div class='add'>+Mon Feb 28 11:42:23 2005  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='add'>+</div><div class='add'>+	* exception error messages updated.  [ruby-core:04497]</div><div class='add'>+</div><div class='add'>+Mon Feb 28 09:03:09 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): add bunch of Socket</div><div class='add'>+	  constants.  Patch from Sam Roberts &lt;sroberts@uniserve.com&gt;.</div><div class='add'>+	  [ruby-core:04409]</div><div class='add'>+</div><div class='add'>+Sun Feb 27 05:55:38 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: fix typo. [ruby-core:04494]</div><div class='add'>+</div><div class='add'>+Sat Feb 26 16:58:20 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y, re.c, regex.h, LEGAL, ext/strscan/strscan.c:</div><div class='add'>+	  remove oniggnu.h (GNU regex API).</div><div class='add'>+</div><div class='add'>+Wed Feb 23 22:08:16 2005  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* st.c, st.h: imported additional file changes on</div><div class='add'>+	  Oniguruma 3.7.0.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 21:45:29 2005  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ascii.c, euc_jp.c, oniggnu.h, oniguruma.h, regcomp.c,</div><div class='add'>+	  regenc.c, regenc.h, regerror.c, regexec.c, regint.h,</div><div class='add'>+	  regparse.c, regparse.h, sjis.c, utf8.c: imported Oni Guruma</div><div class='add'>+	  3.7.0.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 15:04:32 2005  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (split_userinfo): should split ":pass" into ""</div><div class='add'>+	  and "pass".  [ruby-dev:25667]</div><div class='add'>+</div><div class='add'>+Wed Feb 23 08:00:18 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_s_create): no need for negative argc check.</div><div class='add'>+	  [ruby-core:04463]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_unshift_m): ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 01:53:29 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (initialize): handle certs correctly. Thanks,</div><div class='add'>+	  NABEYA Kenichi.</div><div class='add'>+</div><div class='add'>+Wed Feb 23 00:37:34 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (mkmf_failed): fixed typo.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 23:52:45 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, lib/mkmf.rb: use simple commands if available.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: remove autoconf internal variables from rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): substitute implicit rules in depend</div><div class='add'>+	  file.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (COMPILE_RULES, RULE_SUBST):</div><div class='add'>+	  include $(topdir) and $(hdrdir) to search path.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 23:51:45 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: get rid of warnings caused by a bug of VC.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 23:50:26 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal, ruby_nativethread_signal): must be valid as</div><div class='add'>+	  expressions, not only statements.</div><div class='add'>+</div><div class='add'>+Tue Feb 22 12:54:13 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): update curr_thread before raising</div><div class='add'>+	  TAG_THREAD.  [ruby-dev:25712]</div><div class='add'>+</div><div class='add'>+Tue Feb 22 07:24:57 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): identifier after dot must not be a variable.</div><div class='add'>+</div><div class='add'>+Mon Feb 21 18:31:12 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c: Standard signal handlers ignore signals on non-Ruby native</div><div class='add'>+	  threads. When a handler is entried with ruby_signal() (like as the</div><div class='add'>+	  standard signal handlers), the handler for the signal is marked as</div><div class='add'>+	  it cannot accept non-Ruby native threads. If a handler can treat all</div><div class='add'>+	  signals on all native threads, please use ruby_nativethread_signal()</div><div class='add'>+	  to entry it.</div><div class='add'>+</div><div class='add'>+Sun Feb 20 00:48:48 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::FTP#buffer_open): access mechanism</div><div class='add'>+	  re-implemented according to RFC 1738.</div><div class='add'>+	  reported by Guillaume Marcais.  [ruby-talk:131650]</div><div class='add'>+</div><div class='add'>+Sat Feb 19 18:46:56 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbObject#respond_to?): take two arguments.</div><div class='add'>+	  [ruby-dev:25722]</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 19 13:52:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: call OpenSSL::SSL::SSLSocket#post_connection_check</div><div class='add'>+	  after connection is made.</div><div class='add'>+</div><div class='add'>+Sat Feb 19 13:31:28 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile): remove no longer existing installed</div><div class='add'>+	  files.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (install_dirs): return installation directory list.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): reverted wrongly removed lines.</div><div class='add'>+</div><div class='add'>+Sat Feb 19 01:28:56 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/newton.rb: resolved LoadError.</div><div class='add'>+	  [ruby-dev:25685]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/sample/linear.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/sample/nlsolve.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/nlsolve.rb: removed because this file</div><div class='add'>+	  is sample script and same file exists in ext/bigdecimal/sample.</div><div class='add'>+</div><div class='add'>+Fri Feb 18 17:14:00 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/parser.rb (XMLRPC::FaultException): make it subclass</div><div class='add'>+	  of StandardError class, not Exception class.  [ruby-core:04429]</div><div class='add'>+</div><div class='add'>+Fri Feb 18 04:06:41 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (fcall_gen): lvar(arg) will be evaluated as</div><div class='add'>+	  lvar.call(arg) when lvar is a defined local variable. [new]</div><div class='add'>+</div><div class='add'>+Thu Feb 17 22:15:34 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: calls Oniguruma API directly.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 21:53:12 2005  K.Kosako  &lt;sndgk393 AT ybb.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, LEGAL: remove reggnu.c.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 21:53:12 2005  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c, re.c: now ruby calls Oniguruma API directly, bypassing</div><div class='add'>+	  GNU compatible APIs.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 20:09:23 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbServer.default_safe_level): fix typo.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 20:09:23 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest.rb: separate test case for each algorithms.</div><div class='add'>+	  [ruby-dev:25412]</div><div class='add'>+</div><div class='add'>+Thu Feb 17 14:31:52 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_initialize): call inherited method before</div><div class='add'>+	  calling initializing block.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_1): initialize newly pushed frame.</div><div class='add'>+	  fixed: [ruby-dev:25707]</div><div class='add'>+</div><div class='add'>+Thu Feb 17 13:46:00 2005  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector.rb (collect_file): now deletes paths added</div><div class='add'>+	  to $LOAD_PATH instead of restoring it verbatim.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (AutoRunner.run): fixed so that</div><div class='add'>+	  'ruby -rtest/unit -rtest1 -rtest2 -e0' will use the objectspace</div><div class='add'>+	  collector again. Also tried to simplify the calling convention.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: adjusted for new AutoRunner semantics.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 17 04:21:47 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb (Open3::popen3): $? should not be EXIT_FAILURE.</div><div class='add'>+	  fixed: [ruby-core:04444]</div><div class='add'>+</div><div class='add'>+Thu Feb 17 00:31:21 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb, ut_safe1.rb: port from 1.8</div><div class='add'>+</div><div class='add'>+Thu Feb 17 00:02:27 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): NODE_IASGN is an assignment.</div><div class='add'>+</div><div class='add'>+Wed Feb 16 23:54:14 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_1): outer block variables wasn't linked to</div><div class='add'>+	  threads.  fixed: [ruby-dev:25700]</div><div class='add'>+</div><div class='add'>+Wed Feb 16 15:11:43 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::Nonblock#initialize):</div><div class='add'>+	  native win32 platform doesn't have F_GETFL.</div><div class='add'>+</div><div class='add'>+Wed Feb 16 02:47:45 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read, ossl_ssl_write): should</div><div class='add'>+	  call rb_sys_fail instead of raising SSLError if SSL_ERROR_SYSCALL</div><div class='add'>+	  occurred.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#fill_rbuff):</div><div class='add'>+	  should rescue Errno::EAGAIN.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#each): fix typo.</div><div class='add'>+	  suggested by Brian Ollenberger.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb: set non-blocking flag to the</div><div class='add'>+	  underlying IO.</div><div class='add'>+</div><div class='add'>+Tue Feb 15 22:14:34 2005  sheepman  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (Readline.readline): use rl_outstream</div><div class='add'>+	  and rl_instream.  [ruby-dev:25699]</div><div class='add'>+</div><div class='add'>+Mon Feb 14 23:58:17 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb (RSS::ListenerMixin::tag_end):</div><div class='add'>+	  fixed invalid namespace handling bug.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 13:12:38 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb</div><div class='add'>+	  (OpenSSL::SSL::SSLSocket#post_connection_check): new method.</div><div class='add'>+</div><div class='add'>+Mon Feb 14 00:10:17 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbServer): add default_safe_level, safe_level,</div><div class='add'>+	  config[:safe_level] ([druby-ja:120])</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb, ut_eval.rb, ut_safe1.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 23:13:46 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb (RSS::DublicCoreModel#date{,=}): added</div><div class='add'>+	  convenient methods.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss::Channel#date{,=}): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb (RSS::Rss::Channel::Item#date{,=}): ditto.</div><div class='add'>+</div><div class='add'>+	* test/rss/: added tests for the convenient methods.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 23:12:47 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): restore prot_tag before rewinding.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 16:56:52 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI.start): should set reason-phrase</div><div class='add'>+	  to the value of status header field. ([ruby-dev:40617])</div><div class='add'>+</div><div class='add'>+Sun Feb 13 11:38:40 2005  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (type_cclass_hash): (Thanks Nobu) fixed</div><div class='add'>+	  overrun. ([ruby-dev:25676]).</div><div class='add'>+</div><div class='add'>+Sun Feb 13 10:53:08 2005  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniggnu.h, oniguruma.h, regcomp.c, st.c: imported</div><div class='add'>+	  Oni Guruma 3.6.0.</div><div class='add'>+</div><div class='add'>+Sun Feb 13 01:33:19 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb (ERB::Util.h, u): make it module_function.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 22:17:11 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (TAG_THREAD): to start a new thread.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init, ruby_options, ruby_cleanup, rb_protect,</div><div class='add'>+	  rb_load_protect, rb_thread_start_0): make thread anchor.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_alloc): clone proc object if klass is not Proc or</div><div class='add'>+	  created in different thread.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_block_pass): call a function with a block.  [new]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_throw): raise NameError in main thread.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 17:29:19 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_loop): send authentication only for</div><div class='add'>+	  the URI directly specified.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 15:07:23 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): suppress warning.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 14:10:24 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_http): reject userinfo explicitly.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 13:54:03 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: support https if the platform provides CA</div><div class='add'>+	  certificates.</div><div class='add'>+</div><div class='add'>+Sat Feb 12 06:18:28 2005  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (Init_etc): sGroup needs HAVE_ST_GR_PASSWD check</div><div class='add'>+	  [ruby-dev:25675]</div><div class='add'>+</div><div class='add'>+Fri Feb 11 17:37:50 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c (ossl_x509store_set_default_paths):</div><div class='add'>+	  new method OpenSSL::X509::Store#set_default_paths.</div><div class='add'>+</div><div class='add'>+Fri Feb 11 11:33:53 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::HTTP#proxy_open): new option supported:</div><div class='add'>+	  :http_basic_authentication.</div><div class='add'>+	  suggested by Kent Sibilev.  [ruby-core:4392]</div><div class='add'>+</div><div class='add'>+Fri Feb 11 06:30:07 2005  George Ogata  &lt;g_ogata@optushome.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: ignore parenthesis inside heredoc.</div><div class='add'>+	  [ruby-core:04415]</div><div class='add'>+</div><div class='add'>+Fri Feb 11 04:54:13 2005  Tilman Sauerbeck  &lt;tilman@code-monkey.de&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: [ruby-core:04412]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/ri_generator.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 10 13:52:42 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (LIBS, COMMON_HEADERS): use</div><div class='add'>+	  winsock2 on mswin32/mingw.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (StartSockets): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: ditto.</div><div class='add'>+</div><div class='add'>+Thu Feb 10 12:09:16 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile): default to true if not compiled</div><div class='add'>+	  previously.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): create dummy makefile if extconf failed.</div><div class='add'>+</div><div class='add'>+Thu Feb 10 12:07:10 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_stdhandle): assign standard file handles.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (COMMON_LIBS): add libraries included in</div><div class='add'>+	  import32.lib.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): restrict prefixing with srcdir to</div><div class='add'>+	  rule lines, add search path to implicit rules, and set Borland make</div><div class='add'>+	  special macros for search path.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (read): avoid a BCC runtime bug.</div><div class='add'>+</div><div class='add'>+Thu Feb 10 00:47:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): fixed: [ruby-core:04402]</div><div class='add'>+</div><div class='add'>+Wed Feb  9 16:33:05 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (wait_connectable): fixed wrong condition.</div><div class='add'>+</div><div class='add'>+Wed Feb  9 14:42:28 2005  URABE Shyouhei  &lt;shyouhei@ice.uec.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (scope_dup): add volatile not to optimize tbl.</div><div class='add'>+</div><div class='add'>+Wed Feb  9 10:02:02 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/make-tkutil, ext/tk/tkutil/subconf.rb: no longer used.</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/extconf.rb: need to compile tkutil. [ruby-dev:25607]</div><div class='add'>+</div><div class='add'>+Wed Feb  9 08:07:08 2005  Paul Duncan  &lt;pabs@pablotron.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_color_set): [ruby-core:04393]</div><div class='add'>+</div><div class='add'>+Tue Feb  8 23:48:36 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: reject :instance_eval, :class_eval, :module_eval</div><div class='add'>+	  [druby-ja:117]</div><div class='add'>+</div><div class='add'>+Tue Feb  8 22:38:28 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* keywords, parse.y: separate EXPR_VALUE from EXPR_BEG.</div><div class='add'>+	  fixed: [ruby-core:04310], [ruby-core:04368]</div><div class='add'>+</div><div class='add'>+Tue Feb  8 13:06:12 2005  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): SO_REUSEPORT added.</div><div class='add'>+	  [ruby-talk:130092]</div><div class='add'>+</div><div class='add'>+Tue Feb  8 00:19:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Name#subdomain_of?): new method.</div><div class='add'>+	  (Resolv::DNS::Name#inspect): ditto.</div><div class='add'>+	  Suggested by Sam Roberts.  [ruby-talk:129086]</div><div class='add'>+</div><div class='add'>+Mon Feb  7 23:14:11 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_getc): flush rb_stdout before read from stdin, which is</div><div class='add'>+	  connected to a tty.  [ruby-core:4378]</div><div class='add'>+</div><div class='add'>+	* rubyio.h (FMODE_TTY): renamed from FMODE_LINEBUF.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 10:06:30 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: [ruby-doc:818]</div><div class='add'>+</div><div class='add'>+Mon Feb  7 02:13:05 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb (sockaddr_storage): winsock2.h have the</div><div class='add'>+	  definition of struct sockaddr_storage, but socket.c doesn't</div><div class='add'>+	  include it because this version of ruby still has binary level</div><div class='add'>+	  compatibility with winsock1.</div><div class='add'>+</div><div class='add'>+Mon Feb  7 01:22:50 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extract_makefile): extract previously collected</div><div class='add'>+	  informations from existing Makefile.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check if getaddrinfo() works fine only when</div><div class='add'>+	  wide-getaddrinfo option is not given.  fixed: [ruby-dev:25422]</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: separate tkutil configuration.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($extmk): check if under ext directory.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging.postpone): allow recursive operation.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (try_constant): make sure if really a constant, reduce</div><div class='add'>+	  the number of times of compile.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_macro, have_var, byte_order): new functions.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_library): allow directory list with separators.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (arg_config): manage provided configuration options.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): accept arrays of directory names as</div><div class='add'>+	  default values.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (with_cppflags, with_cflags, with_ldflags): keep flags</div><div class='add'>+	  modified if the block returned true.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 19:20:05 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_extend): add prototype because VC++8 doesn't</div><div class='add'>+	  accept __declspec(noinline) with K&amp;R style function definitions.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 13:56:19 2005  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (new_with_hash): changed messages of exception.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb (str[fp]time): undocumented conversion</div><div class='add'>+	  specifications %[1-3] are now deprecated.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 11:27:37 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/dl.c (Init_dl): function declaration should precede</div><div class='add'>+	  statements before C99.</div><div class='add'>+</div><div class='add'>+Sun Feb  6 03:24:20 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Resource::TXT): multiple strings was not</div><div class='add'>+	  handled.</div><div class='add'>+	  (Resolv::DNS::Resource::TXT#strings): new method to return all</div><div class='add'>+	  strings.</div><div class='add'>+	  (Resolv::DNS::Message::MessageEncoder#put_string_list): new method.</div><div class='add'>+	  (Resolv::DNS::Message::MessageDecoder#get_string_list): ditto.</div><div class='add'>+	  based on [ruby-talk:129732] by Sam Roberts.</div><div class='add'>+</div><div class='add'>+Sat Feb  5 02:24:06 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: fix test.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 18:44:35 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/lexer.rb: last Lexer fix was incomplete;</div><div class='add'>+	  test all green.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 15:57:06 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (open_args): fix too verbose warnings for the space</div><div class='add'>+	  before argument parentheses.  [ruby-dev:25492]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): ditto.</div><div class='add'>+</div><div class='add'>+Fri Feb  4 14:33:25 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/filter.rb: ripper/tokenizer -&gt;</div><div class='add'>+	  ripper/lexer. [ruby-dev:25632]</div><div class='add'>+</div><div class='add'>+Fri Feb  4 00:24:15 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss: supported Image module.</div><div class='add'>+	  http://web.resource.org/rss/1.0/modules/image/</div><div class='add'>+</div><div class='add'>+Thu Feb  3 23:42:36 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_close, strio_close_read, strio_close_write):</div><div class='add'>+	  should return nil instead of self as well as IO.  [ruby-dev:25623]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_extend, strio_putc): fill with zero</div><div class='add'>+	  extended portion.  [ruby-dev:25626]</div><div class='add'>+</div><div class='add'>+Thu Feb  3 16:12:57 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): the first expression in the parentheses</div><div class='add'>+	  should not be a command.  [ruby-dev:25492]</div><div class='add'>+</div><div class='add'>+Thu Feb  3 03:31:20 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: follow original v 1.57</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/utf8tbl.c: follow original v 1.8</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/config.h: follow original v 1.7</div><div class='add'>+</div><div class='add'>+Wed Feb  2 23:52:53 2005  sheepman  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_truncate): should MEMZERO an extended</div><div class='add'>+	  part.  [ruby-dev:25618]</div><div class='add'>+</div><div class='add'>+Wed Feb  2 21:56:01 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::Element#convert): added.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: convert -&gt; need_convert.</div><div class='add'>+</div><div class='add'>+	* lib/rss/1.0.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/trackback.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Feb  2 03:30:58 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/tokenizer.rb -&gt; lexer.rb.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/lexer.rb: new method Ripper.slice.</div><div class='add'>+	  [experimental]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/sexp.rb: new file. [experimental]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: require ripper/lexer and ripper/sexp.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 21:49:24 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRb::DRbObject#respond_to?): check marshal_dump and</div><div class='add'>+	  _dump.</div><div class='add'>+</div><div class='add'>+Tue Feb  1 00:20:23 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, configure.in: made EXTOUT configurable.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake), lib/mkmf.rb: keep topdir as relative style.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: make extensions in depth order.  [ruby-dev:25522]</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): fix linker flags on AIX.  [ruby-talk:125460]</div><div class='add'>+</div><div class='add'>+Mon Jan 31 13:16:39 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: add tkutil configuration step (remove old schema)</div><div class='add'>+</div><div class='add'>+	* ext/tk/depend: remove the information of tkutil</div><div class='add'>+</div><div class='add'>+	* ext/tk/make-tkutil: sub-part of Makefile to compile tkutil</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/tkutil.c: move tkutil.c to subdirectory</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/subconf.rb: configuration file for tkutil.c</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil/depend: ditto</div><div class='add'>+</div><div class='add'>+Mon Jan 31 13:13:35 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tcltklib.c: add invalid namespace check</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add invalid_namespace? method</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: ditto</div><div class='add'>+</div><div class='add'>+Mon Jan 31 10:29:18 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/context.rb (IRB::Context::initialize): [ruby-core:04330]</div><div class='add'>+</div><div class='add'>+Mon Jan 31 09:44:03 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove Object#type.  [ruby-core:04335]</div><div class='add'>+</div><div class='add'>+Sat Jan 29 09:42:12 2005  Sam Roberts  &lt;sroberts@uniserve.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Resource::IN::SRV): Added RFC2782 SRV</div><div class='add'>+	  resource record for specifying location of services.</div><div class='add'>+</div><div class='add'>+Sat Jan 29 00:10:33 2005  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ascii.c, euc_jp.c, hash.c, oniggnu.h, oniguruma.h, regcomp.c,</div><div class='add'>+	  regenc.c, regenc.h, regerror.c, regexec.c, reggnu.c, regint.h,</div><div class='add'>+	  regparse.c, regparse.h, sjis.c, st.c, st.h, utf8.c: imported</div><div class='add'>+	  Oni Guruma 3.5.4.</div><div class='add'>+</div><div class='add'>+Fri Jan 28 17:16:55 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf):</div><div class='add'>+	  parse options line for ndots option.</div><div class='add'>+	  (Resolv::Hosts#lazy_initialize): return self.</div><div class='add'>+	  (Resolv::DNS#lazy_initialize): ditto.</div><div class='add'>+	  (Resolv::DNS::Config#lazy_initialize): ditto.</div><div class='add'>+	  Suggested by Sam Roberts.</div><div class='add'>+</div><div class='add'>+Thu Jan 27 17:15:03 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: support new tk scheme on bccwin32.</div><div class='add'>+	  fixed: [ruby-dev:25546]</div><div class='add'>+</div><div class='add'>+Thu Jan 27 13:18:03 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.c (st_foreach): report success/failure by return value.</div><div class='add'>+	  [ruby-Bugs-1396]</div><div class='add'>+</div><div class='add'>+Thu Jan 27 00:12:19 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (setup): support BSD style</div><div class='add'>+	  directory group inheritance (again).</div><div class='add'>+</div><div class='add'>+Thu Jan 27 00:02:40 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (setup): support BSD style</div><div class='add'>+	  directory group inheritance. [ruby-dev:25440]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb (assert_same_entry): show entry</div><div class='add'>+	  difference.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 17:12:50 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: forgot to initialize parser struct.  [ruby-dev:25492]</div><div class='add'>+</div><div class='add'>+	* parse.y (parser_yylex): no tLABEL on EXPR_BEG.</div><div class='add'>+	  [ruby-talk:127711]</div><div class='add'>+</div><div class='add'>+Wed Jan 26 14:12:58 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup*: remove tcltklib.</div><div class='add'>+</div><div class='add'>+Wed Jan 26 12:45:16 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: support new tk scheme on mswin32.</div><div class='add'>+	 fixed: [ruby-dev:25535]</div><div class='add'>+</div><div class='add'>+Wed Jan 26 10:45:19 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (flock_winnt, flock_win95): unlock file even if</div><div class='add'>+	  LOCK_NB is specified.</div><div class='add'>+</div><div class='add'>+Tue Jan 25 23:10:48 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk: merge tcltklib for Ruby/Tk installation control</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib: remove</div><div class='add'>+</div><div class='add'>+Tue Jan 25 17:05:15 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): correct -T option in RUBYOPT.</div><div class='add'>+	  fixed: [ruby-dev:25512]</div><div class='add'>+</div><div class='add'>+Tue Jan 25 14:05:52 2005  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix SEGV bug; trouble on canceling remained</div><div class='add'>+	  after scripts [ruby-dev:25479]: NULL current namespace when deleting</div><div class='add'>+	    Tk interpreter [ruby-talk:126225]</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: bug fix; TCL_ENABLE_THREAD flag is inverted</div><div class='add'>+	  [ruby-talk:126360]</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: add yet another native-thread check</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c: fix SEGV bug; NULL string pointer when finalize</div><div class='add'>+	  Ruby interpreter</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: avoid warning for deleted safeTk ip frame</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/bindtag.rb: bug fix; new method of named bindtag</div><div class='add'>+	  doesn't return the created object [ruby-dev:25479]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: bug on treating arguments [ruby-dev:25479]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix; cannot accept a callback ID string for</div><div class='add'>+	  a command argument [ruby-dev:25479]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/*.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/anilabel.rb: new demo script</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/anilabel.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkHTML/ss.rb: local variable scope bug fix</div><div class='add'>+	  [ruby-dev:25479]</div><div class='add'>+</div><div class='add'>+Mon Jan 24 16:00:53 2005  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (guess_old): not use NKF.guess_old</div><div class='add'>+	  but NKF.guess1. fixed: [ruby-dev:25491]</div><div class='add'>+</div><div class='add'>+Mon Jan 24 15:44:25 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* document updates - [ruby-core:04296], [ruby-core:04301],</div><div class='add'>+	  [ruby-core:04302], [ruby-core:04307]</div><div class='add'>+</div><div class='add'>+Sun Jan 23 12:38:01 2005  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/wsdlDriver.rb: from 1.5.3-ruby1.8.2, operation which has</div><div class='add'>+	  capitalized name (such as KeywordSearchRequest in AWS) is defined as</div><div class='add'>+	  a method having uncapitalized name. (converted with</div><div class='add'>+	  GenSupport.safemethodname to handle operation name 'foo-bar').  it</div><div class='add'>+	  introduced serious incompatibility; in the past, it was defined as a</div><div class='add'>+	  capitalized.</div><div class='add'>+</div><div class='add'>+	  define capitalized method as well under that circumstance.</div><div class='add'>+</div><div class='add'>+Sun Jan 23 05:24:42 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_to_der): should call</div><div class='add'>+	  GetOCSPReq at first.</div><div class='add'>+</div><div class='add'>+Sat Jan 22 22:59:08 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/ssl.rb (accept): rescue SSLError. [druby-ja:110]</div><div class='add'>+</div><div class='add'>+Sat Jan 22 22:27:28 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/unix.rb: fail if UNIXFileOwner is set. [druby-ja:111]</div><div class='add'>+</div><div class='add'>+Fri Jan 21 20:07:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Config.resolv): don't raise ResolvError.</div><div class='add'>+	  reported by Sam Roberts.  [ruby-talk:127133]</div><div class='add'>+</div><div class='add'>+Fri Jan 21 17:09:44 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (decode_utf7): use pack("U*") to encode UTF-8.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (encode_utf7): use unpack("U*") to decode UTF-8.</div><div class='add'>+</div><div class='add'>+	* test/net/imap/test_imap.rb: added tests for Net::IMAP.</div><div class='add'>+</div><div class='add'>+Fri Jan 21 16:58:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): should work for NUL delimited patterns.</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob2): should aware of offset in the pattern.</div><div class='add'>+</div><div class='add'>+Fri Jan 21 13:58:37 2005  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (u8tou16): fixed typo. fixed: [ruby-list:40546]</div><div class='add'>+</div><div class='add'>+Fri Jan 21 00:37:09 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_bufsize_set): avoid VC++ warning</div><div class='add'>+	  "local variable 'size' used without having been initialized".</div><div class='add'>+</div><div class='add'>+Thu Jan 20 11:42:02 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): should propagate taintedness.</div><div class='add'>+</div><div class='add'>+	* env.h: rename member names in struct FRAME; last_func -&gt; callee,</div><div class='add'>+	  orig_func -&gt; this_func, last_class -&gt; this_class.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_set): use original method name, not callee</div><div class='add'>+	  name, to retrieve member slot.  [ruby-core:04268]</div><div class='add'>+</div><div class='add'>+	* time.c (time_strftime): protect from format modification from GC</div><div class='add'>+	  finalizers.</div><div class='add'>+</div><div class='add'>+Thu Jan 20 02:01:10 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove rb_obj_id_obsolete()</div><div class='add'>+</div><div class='add'>+Wed Jan 19 18:02:19 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (to_s, test_to_s): too many colons with some cases.</div><div class='add'>+</div><div class='add'>+Wed Jan 19 01:16:30 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Config.parse_resolv_conf): ignore</div><div class='add'>+	  domain and search directive without an argument.</div><div class='add'>+	  reported by Sam Roberts.  [ruby-talk:126781]</div><div class='add'>+</div><div class='add'>+Mon Jan 17 23:33:46 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): fix typo.  [ruby-talk:126401]</div><div class='add'>+</div><div class='add'>+Mon Jan 17 07:08:51 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: suppress warnings.</div><div class='add'>+</div><div class='add'>+	* lib/irb/extend-command.rb (IRB::ContextExtender.def_extend_command):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/history.rb (IRB::Context::set_last_value): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/history.rb (IRB::Context::eval_history): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb (IRB::Locale::real_load): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/irb/slex.rb (SLex::Node::create_subnode): remove garbage.</div><div class='add'>+</div><div class='add'>+Mon Jan 17 00:09:42 2005  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (PORT): typo fix. fixed: [ruby-core:04256]</div><div class='add'>+</div><div class='add'>+Sat Jan 15 14:57:22 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): ignore trailing CRs at the end of short</div><div class='add'>+	  options as well as long options.  fixed: [ruby-core:04232]</div><div class='add'>+</div><div class='add'>+Sat Jan 15 13:44:22 2005  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION): 0.1.2 -&gt; 0.1.3.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: accept inheritance. [ruby-talk:126104]</div><div class='add'>+</div><div class='add'>+Wed Jan 12 12:29:28 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): incomplete subclass check.</div><div class='add'>+	  [ruby-dev:25464]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_make_metaclass): class of metaclasses should be</div><div class='add'>+	  plain Class.  [ruby-list:40524]</div><div class='add'>+</div><div class='add'>+Tue Jan 11 20:58:52 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (remain_size): use buffered data instead of unreading to avoid</div><div class='add'>+	  inconsistency of text mode.  fixed: [ruby-dev:25446]</div><div class='add'>+</div><div class='add'>+Tue Jan 11 09:37:53 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): turn off floating point exceptions</div><div class='add'>+	  on bcc32. "1e300".to_f had crashed by overflow.</div><div class='add'>+</div><div class='add'>+Mon Jan 10 15:28:51 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI::Socket#request_line): should</div><div class='add'>+	  escape SCRIPT_NAME and PATH_INFO before being parsed as a URI.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils#escape_path): add</div><div class='add'>+	  new method to escape URI path component.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/ssl.rb (WEBrick::Config::SSL): the default value</div><div class='add'>+	  of :SSLEnable is false.</div><div class='add'>+</div><div class='add'>+	* test/webrick/{test_cgi.rb,webrick.cgi}: new file.</div><div class='add'>+</div><div class='add'>+	* test/webrick/utils.rb: require "webrick/https.h".</div><div class='add'>+</div><div class='add'>+Mon Jan 10 01:22:55 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_data_object_alloc): klass may be NULL.</div><div class='add'>+	  [ruby-list:40498]</div><div class='add'>+</div><div class='add'>+Sun Jan  9 14:12:17 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): IO list could be altered.  [ruby-dev:25312]</div><div class='add'>+</div><div class='add'>+Sun Jan  9 04:08:40 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_server.rb (test_daemon): delete an assertion</div><div class='add'>+	  which has possibility to fail by race condition.</div><div class='add'>+</div><div class='add'>+Sun Jan  9 03:22:46 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_copy_entry): copy_entry</div><div class='add'>+	  copies only file type, not mtime. [ruby-dev:25383]</div><div class='add'>+</div><div class='add'>+Sat Jan  8 04:38:47 2005  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: Kernel#y requires an argument.</div><div class='add'>+</div><div class='add'>+Fri Jan  7 21:12:29 2005  TAMURA Takashi  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (rand_init): use ALLOC_N instead of ALLOCA_N</div><div class='add'>+	  [ruby-dev:25426]</div><div class='add'>+</div><div class='add'>+Fri Jan  7 20:01:31 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_service):</div><div class='add'>+	  should delete trailing LF from the result of pack("m*").</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):</div><div class='add'>+	  - should delete trailing LF from the result of pack("m*").</div><div class='add'>+	  - clear Request-Line not to send the response by HTTPServer#run.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils (WEBrick::HTTPUtils.parse_qvalues):</div><div class='add'>+	  refine regexp (and change the name of a local variable).</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::Daemon.start): prepared stdio</div><div class='add'>+	  don't allow changing its mode.</div><div class='add'>+</div><div class='add'>+	* test/webrick/*, sample/webrick/httpproxy.rb: add new files.</div><div class='add'>+</div><div class='add'>+Fri Jan  7 18:03:35 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (mark_locations_array): avoid core dump with -O3.</div><div class='add'>+	  [ruby-dev:25424]</div><div class='add'>+</div><div class='add'>+Thu Jan  6 20:29:18 2005  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_end): should return value.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 19:59:03 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_close): didn't close socket handle.</div><div class='add'>+	  [ruby-dev:25414]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_open_osfhandle): bcc32's _open_osfhandle</div><div class='add'>+	  never set EMFILE.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 17:22:41 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_seed): O_NONBLOCK isn't defined on some</div><div class='add'>+	  platforms. [ruby-dev:25417]</div><div class='add'>+</div><div class='add'>+Thu Jan  6 13:45:35 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: recognize +00:00 and GMT as a localtime.</div><div class='add'>+</div><div class='add'>+Thu Jan  6 07:58:28 2005  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb (RDoc::RDoc.usage_no_exit): Allow for colons</div><div class='add'>+	  in path names on DOS machines. (thanks to Johan Nilsson)</div><div class='add'>+</div><div class='add'>+Thu Jan  6 00:02:35 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: use MockClock.sleep instead of Kernel.sleep</div><div class='add'>+	  [ruby-dev:25387]</div><div class='add'>+</div><div class='add'>+Wed Jan  5 20:16:32 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (limited_big_rand): didn't work if SIZEOF_BDIGITS == 2.</div><div class='add'>+	  [ruby-dev:25408]</div><div class='add'>+</div><div class='add'>+	* random.c (random_seed): refined.</div><div class='add'>+</div><div class='add'>+Wed Jan  5 16:39:54 2005  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (BITSTACK_POP): workaround for bcc32 compiler's bug.</div><div class='add'>+	  shift assignment operator '&gt;&gt;=' for __int64 in struct may</div><div class='add'>+	  generate collapsed code. [ruby-dev:25342]</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch]: failed to compile on bcc32 (and probably wince)</div><div class='add'>+	  [ruby-dev:25306]</div><div class='add'>+</div><div class='add'>+Wed Jan  5 12:49:39 2005  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_initialize): Thread objects cannot be initialized</div><div class='add'>+	  again.  fixed: [ruby-core:04067]</div><div class='add'>+</div><div class='add'>+Wed Jan  5 02:30:11 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (init_by_array): imported from mt19937ar-cok.tgz.</div><div class='add'>+	  (genrand_int32): ditto.</div><div class='add'>+	  (genrand_real): replaced with genrand_res53 in mt19937ar-cok.</div><div class='add'>+	  (rand_init): support bignum for longer seed.</div><div class='add'>+	  (random_seed): generate longer seed.</div><div class='add'>+	  (make_mask): new function.</div><div class='add'>+	  (limited_rand): ditto.</div><div class='add'>+	  (limited_big_rand): ditto.</div><div class='add'>+	  (rb_f_rand): call limited_rand and limited_big_rand.</div><div class='add'>+	  [ruby-dev:25403]</div><div class='add'>+</div><div class='add'>+Tue Jan  4 23:25:29 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rand): should return positive random number.</div><div class='add'>+	  [ruby-dev:25401]</div><div class='add'>+</div><div class='add'>+Tue Jan  4 21:25:43 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/{test_drbssl.rb,test_drbunix.rb,ut_drb.rb}: use</div><div class='add'>+	  DRbService.ext_service. reduce sleep.</div><div class='add'>+</div><div class='add'>+Mon Jan  3 14:01:54 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_seed): don't use /dev/urandom if it is not</div><div class='add'>+	  character device.</div><div class='add'>+</div><div class='add'>+Mon Jan  3 11:37:42 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* random.c (random_seed): use /dev/urandom if available.</div><div class='add'>+	  [ruby-dev:25392]</div><div class='add'>+</div><div class='add'>+Tue Jan  4 11:15:29 2005  TAMURA Takashi  &lt;sheepman@tcn.zaq.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_rand): do not use rb_big_modulo to generate</div><div class='add'>+	  random bignums.  [ruby-dev:25396]</div><div class='add'>+</div><div class='add'>+Mon Jan  3 11:03:37 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: move TestDRbReusePort to new file.</div><div class='add'>+	  [ruby-dev:25238]</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: change timeout.</div><div class='add'>+</div><div class='add'>+	* test/drb/ignore_test_drb.rb: new file.</div><div class='add'>+</div><div class='add'>+Mon Jan  3 07:27:46 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/htpasswd.rb (WEBrick::Htpasswd#reload):</div><div class='add'>+	  raise NotImplementedError if password is encrypted by digest</div><div class='add'>+	  algorithms. This patch is contributed by sheepman. [ruby-list:40467]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb</div><div class='add'>+	  (WEBrick::HTTPAuth::DigestAuth#_authenticate): fix digest calculation.</div><div class='add'>+	  This patch is contributed by sheepman. [ruby-list:40482]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/{httpauth.rb,httpauth/basicauth.rb,httpproxy.rb}: use</div><div class='add'>+	  pack/unpack-template char "m" instead of lib/base64.rb to do base64</div><div class='add'>+	  encoding/decoding. fixed: [ruby-dev:25336]</div><div class='add'>+</div><div class='add'>+	* test/webrick/test_httpauth.rb: new file.</div><div class='add'>+</div><div class='add'>+Sun Jan  2 15:42:10 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: add lazy stop_service.</div><div class='add'>+</div><div class='add'>+	* lib/drb/extserv.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Jan  2 01:17:17 2005  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: add method DRbService.ext_service.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drbssl.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 20:23:02 2005  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_readpartial): new method ARGF.readpartial.</div><div class='add'>+	  (io_getpartial): extracted from io_readpartial.</div><div class='add'>+	  (io_readpartial): call io_getpartial.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 17:44:54 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (each_capitalized): should join header field</div><div class='add'>+	  value.  This patch is contributed sheepman [ruby-list:40478]</div><div class='add'>+</div><div class='add'>+	* test/net/http/test_httpheader.rb: test it.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 16:21:29 2005  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (copy_stream): use read/write instead of</div><div class='add'>+	  sysread/syswrite, which allows duck typing. [ruby-dev:25369]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (copy_stream): does NOT support nonblocking IO.</div><div class='add'>+	  [ruby-dev:25370]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (copy_entry): could not copy symlink.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: test copy_entry, copy_file,</div><div class='add'>+	  copy_stream.</div><div class='add'>+</div><div class='add'>+Sat Jan  1 04:20:23 2005  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ns_spki.c (ossl_spki_set_challenge): should call</div><div class='add'>+	  StringValue before GetSPKI. fixed: [ruby-dev:25359].</div><div class='add'>+</div><div class='add'>+Sat Jan  1 01:13:28 2005  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload): [ruby-dev:25373]</div><div class='add'>+</div><div class='add'>+Fri Dec 31 14:10:43 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item):</div><div class='add'>+	  Fix problem if heading contains formatting.</div><div class='add'>+</div><div class='add'>+Fri Dec 31 00:08:02 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (HAVE_RLIM_T): removed because not used.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 22:45:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h: don't deprecate rb_read_check.</div><div class='add'>+</div><div class='add'>+	* io.c (STDIO_READ_DATA_PENDING): reverted from old READ_DATA_PENDING</div><div class='add'>+	  to check stdio read buffer.</div><div class='add'>+	  (rb_read_check): use STDIO_READ_DATA_PENDING.</div><div class='add'>+	  (rb_read_pending): ditto.</div><div class='add'>+	  (rb_getc): ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 05:39:35 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: eliminate unused members in struct parser_params.</div><div class='add'>+	  [ruby-dev:25258] (again)</div><div class='add'>+</div><div class='add'>+	* parse.y: make parser_new() static.</div><div class='add'>+</div><div class='add'>+Thu Dec 30 00:41:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (svalue_to_avalue): [ruby-dev:25366]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): [ruby-dev:25367]</div><div class='add'>+</div><div class='add'>+Wed Dec 29 11:07:07 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/kilmer.rb: Update to use new</div><div class='add'>+	  sections.</div><div class='add'>+</div><div class='add'>+Tue Dec 28 22:31:46 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): create buffer string after argument type</div><div class='add'>+	  conversion.  fixed: [ruby-dev:25341]</div><div class='add'>+</div><div class='add'>+Tue Dec 28 17:18:17 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (preprocess): remove NULL unless binmode.</div><div class='add'>+	  fixed: [ruby-list:40320]</div><div class='add'>+</div><div class='add'>+Tue Dec 28 15:41:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c (reinit): should initialize all static</div><div class='add'>+	  variables.  fixed: [ruby-list:40445]</div><div class='add'>+</div><div class='add'>+Tue Dec 28 15:25:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv::RegexpEucjp): second byte is up to</div><div class='add'>+	  0xfe.</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb (Kconv#kconv): should handle UTF8 and UTF16</div><div class='add'>+	  properly.</div><div class='add'>+</div><div class='add'>+Tue Dec 28 13:35:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate): ensure</div><div class='add'>+	  freeing internal zstreams.  fixed: [ruby-dev:25309]</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_init_copy): replace rb_deflate_clone.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 20:02:14 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix SEGV bug when deleting Tk interp</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto</div><div class='add'>+</div><div class='add'>+Mon Dec 27 16:54:05 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (Init_ossl_x509name): should use</div><div class='add'>+	  rb_hash_new to get exactly a Hash. fix [ruby-dev:25325].</div><div class='add'>+</div><div class='add'>+Mon Dec 27 15:29:12 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (cp_r): tested wrong file name.</div><div class='add'>+	  [ruby-dev:25339]</div><div class='add'>+</div><div class='add'>+Mon Dec 27 15:15:18 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mv): should raise error when moving a</div><div class='add'>+	  directory to the (empty) directory. [ruby-talk:124368]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mv): wrongly did not overwrite file on Win32</div><div class='add'>+	  platforms.</div><div class='add'>+</div><div class='add'>+Mon Dec 27 14:36:20 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (NUM2RLIM, RLIM2NUM): Without SIZEOF_RLIM_T is not error.</div><div class='add'>+	  fixed: [ruby-dev:25346]</div><div class='add'>+</div><div class='add'>+Sun Dec 26 16:21:39 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (Net::IMAP::PlainAuthenticator): added a new class</div><div class='add'>+	  to support the PLAIN authentication mechanism. Thanks, Benjamin</div><div class='add'>+	  Stiglitz.</div><div class='add'>+</div><div class='add'>+Sat Dec 25 01:28:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_select): [ruby-dev:25312]</div><div class='add'>+</div><div class='add'>+Fri Dec 24 23:27:18 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/image.rb: TkPhotoImage#cget bug fix</div><div class='add'>+</div><div class='add'>+Fri Dec 24 03:06:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen, rb_io_reopen): prohibit to change access mode for</div><div class='add'>+	  special IO ports.  [ruby-dev:25225]</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): reduce use of stdio.</div><div class='add'>+</div><div class='add'>+Fri Dec 24 02:22:53 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_loader_transfer): check type conversion.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_assign_io, rb_new_syck_node): duck</div><div class='add'>+	  typing.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_s_alloc, syck_parser_initialize):</div><div class='add'>+	  allocation framework.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_s_alloc, syck_emitter_initialize):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec 24 01:21:00 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt.rb: add BLT extension support</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt/*.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/blt/tile/*.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu Dec 23 23:43:24 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): check if the argument length is</div><div class='add'>+	  modified.  fixed: [ruby-dev:25285]</div><div class='add'>+</div><div class='add'>+	* process.c (SIZEOF_RLIM_T): err if size of rlim_t is not set.</div><div class='add'>+</div><div class='add'>+Thu Dec 23 19:08:41 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h: rename FMODE_UNSEEKABLE to FMODE_DUPLEX.</div><div class='add'>+</div><div class='add'>+	* io.c (io_check_tty): extracted function to set FMODE_LINEBUF and</div><div class='add'>+	  FMODE_DUPLEX.</div><div class='add'>+</div><div class='add'>+Thu Dec 23 13:13:33 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: define TclTkLib::COMPILE_INFO and</div><div class='add'>+	  RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c: define TkUtil::RELEASE_DATE</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: define Tk::RELEASE_DATE</div><div class='add'>+</div><div class='add'>+Thu Dec 23 00:16:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (bsdi): use $(CC) for LDSHARED.  fixed [ruby-dev:25270]</div><div class='add'>+</div><div class='add'>+Wed Dec 22 11:14:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_modenum): replace O_ACCMODE with O_RDWR.</div><div class='add'>+	  fixed: [ruby-dev:25273]</div><div class='add'>+</div><div class='add'>+Wed Dec 22 08:34:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/sym.c (rb_dlsym_initialize): extract internal pointers after</div><div class='add'>+	  all argument conversion.  fixed: [ruby-dev:25271]</div><div class='add'>+</div><div class='add'>+Tue Dec 21 16:15:21 2004  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb: use "" instead of "." if prefix argument is</div><div class='add'>+	  nil in proxy methods. nil is default value.</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb, test/xmlrpc/webrick_testing.rb:</div><div class='add'>+	  use threads instead of forking. this should fix issue #1208</div><div class='add'>+	  (http://rubyforge.org/tracker/?func=detail&amp;atid=1698&amp;aid=1208&amp;group_id=426).</div><div class='add'>+	  removed testing of SSL enabled servlet as this hangs.</div><div class='add'>+</div><div class='add'>+Wed Dec 22 00:05:10 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/*, test/soap/*, sample/soap/authheader/*: eval cleanup.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 22:07:41 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_decode_all): use rb_str_new4</div><div class='add'>+	  to avoid SEGV.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,</div><div class='add'>+	  ossl_asn1_decode_all): temporary value should be marked volatile.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 12:42:34 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode):</div><div class='add'>+	  use rb_str_new4 to avoid SEGV. fix [ruby-dev:25261]</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_asn1.rb: add tests for OpenSSL::ASN1.</div><div class='add'>+</div><div class='add'>+Tue Dec 21 12:10:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/grid.rb: rescue bug of 'grid configure' on Tcl/Tk8.3-</div><div class='add'>+</div><div class='add'>+Mon Dec 20 22:52:29 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* added samples for the previous soap4r's commit.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 22:56:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (set_stack_end): gcc noinline attribute is available since</div><div class='add'>+	  gcc-3.1.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 22:40:31 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* added files:</div><div class='add'>+	  * lib/soap/mapping/wsdl*.rb</div><div class='add'>+	  * lib/wsdl/soap/element.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/simpleContent.rb</div><div class='add'>+</div><div class='add'>+	* modified files:</div><div class='add'>+	  * lib/soap/*</div><div class='add'>+	  * lib/wsdl/*</div><div class='add'>+	  * lib/xsd/*</div><div class='add'>+	  * test/soap/*</div><div class='add'>+	  * test/wsdl/*</div><div class='add'>+	  * test/xsd/*</div><div class='add'>+</div><div class='add'>+	* summary</div><div class='add'>+	  * imported from the soap4r repository.  Version: 1.5.3-ruby1.8.2</div><div class='add'>+</div><div class='add'>+	  * added several XSD basetype support: nonPositiveInteger,</div><div class='add'>+	    negativeInteger, nonNegativeInteger, unsignedLong, unsignedInt,</div><div class='add'>+	    unsignedShort, unsignedByte, positiveInteger</div><div class='add'>+</div><div class='add'>+	  * HTTP client connection/send/receive timeout support.</div><div class='add'>+</div><div class='add'>+	  * HTTP client/server gzipped content encoding support.</div><div class='add'>+</div><div class='add'>+	  * improved WSDL schema definition support; still is far from</div><div class='add'>+	    complete, but is making step by step improvement.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 14:45:19 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/https.rb: delete descriptions about key_file and cert_file.</div><div class='add'>+	  fixed: [ruby-dev:25243]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/telnets.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Dec 20 14:07:02 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: supports new features of Tcl/Tk8.5a2</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/clock.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/panedwindow.rb: ditto</div><div class='add'>+</div><div class='add'>+Mon Dec 20 13:51:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyport): [ruby-talk:124072]</div><div class='add'>+</div><div class='add'>+Mon Dec 20 10:51:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (special_local_set): prevent the parser object from GC.</div><div class='add'>+	  fixed: [ruby-dev:25252]</div><div class='add'>+</div><div class='add'>+Mon Dec 20 03:30:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session#initialize): empty session id was</div><div class='add'>+	  used if request had no session key.  fixed: [ruby-core:03981]</div><div class='add'>+</div><div class='add'>+Mon Dec 20 01:51:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): [ruby-dev:25249]</div><div class='add'>+</div><div class='add'>+Mon Dec 20 00:16:54 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/SHIFT_JIS.rb: fixed LoadError bug.</div><div class='add'>+	  [ruby-core:3958]</div><div class='add'>+</div><div class='add'>+Sun Dec 19 17:24:59 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (enable_rpath): use rpath flag to embed the library</div><div class='add'>+	  path into extensions on ELF environment.  [ruby-dev:25035]</div><div class='add'>+</div><div class='add'>+Sun Dec 19 11:01:25 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: use standalone runner for -e.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): accept</div><div class='add'>+	  multiple -p and -x options.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#recursive_collect):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 16:36:23 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate):</div><div class='add'>+	  disallow interrupt by type conversion.  fixed: [ruby-dev:25226]</div><div class='add'>+</div><div class='add'>+Sat Dec 18 15:09:02 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth.rb,</div><div class='add'>+	  lib/webrick/httpauth/{basicauth.rb,digestauth.rb}: use</div><div class='add'>+	  pack/unpack-template char "m" instead of lib/base64.rb to do base64</div><div class='add'>+	  encoding/decoding.</div><div class='add'>+</div><div class='add'>+Sat Dec 18 10:51:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_open_dir): new function.  [ruby-dev:25242]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): add type check for return value from to_open.</div><div class='add'>+</div><div class='add'>+Fri Dec 17 16:44:26 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_sizeof_rlim_t): set 8 for BSD/OS.</div><div class='add'>+	  Reported by OHARA Shigeki.  [ruby-dev:25236]</div><div class='add'>+</div><div class='add'>+Fri Dec 17 16:28:12 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix bug on setting up system encoding</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: fix error on require process</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: fix abnormal termination error on Windows</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/virtevent.rb: TkVirtualEvent::PreDefVirtEvent.new()</div><div class='add'>+	  accepts event-sequence arguments</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: fail to dump embedded images</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: tag_nextrange and tag_prevrange returns wrong</div><div class='add'>+	  types of values</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/texttag.rb: nextrange and prevrange returns wrong</div><div class='add'>+	  types of values</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: add TkText::IndexModMethods module and</div><div class='add'>+	  TkText::IndexString class to treat text index modifiers</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/texttag.rb: use TkText::IndexModMethods module</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textmark.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textimage.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textwindow.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textimage.rb: wrong gravity of text mark for embedded</div><div class='add'>+	  image</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textwindow.rb: wrong gravity of text mark for</div><div class='add'>+	  embedded window</div><div class='add'>+</div><div class='add'>+Fri Dec 17 13:33:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session#initialize): control adding</div><div class='add'>+	  session_id hidden fields.  fixed: [ruby-talk:123850]</div><div class='add'>+</div><div class='add'>+Fri Dec 17 00:01:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_proc_arity, rb_node_arity, rb_mod_method_arity,</div><div class='add'>+	  rb_obj_method_arity): new functions to obtain method arity.</div><div class='add'>+	  [ruby-dev:25143]</div><div class='add'>+</div><div class='add'>+Thu Dec 16 23:31:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): create RUBYARCHDIR also when no extension</div><div class='add'>+	  is installed.  fixed: [ruby-dev:25215]</div><div class='add'>+</div><div class='add'>+Thu Dec 16 22:36:57 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drb.rb: adjust and reduce sleep.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 18:37:08 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_raise): refine message format.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 16:29:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/widget: modify version check for</div><div class='add'>+	  supporting features</div><div class='add'>+</div><div class='add'>+Thu Dec 16 16:03:50 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/bindtag.rb: bug fix [ruby-talk: 123667]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: accept :idle for the interval argument</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkComm._callback_entry?()</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: add MultiTkIp.cb_entry_class</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: use TkComm._callback_entry?()</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvastag.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/optiondb.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/texttag.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textwindow.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/validation.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: ditto</div><div class='add'>+</div><div class='add'>+Thu Dec 16 04:02:28 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb: bison is not needed if ripper.c exists.</div><div class='add'>+	  [ruby-dev:25191]</div><div class='add'>+</div><div class='add'>+Thu Dec 16 03:27:10 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: remove junk.</div><div class='add'>+</div><div class='add'>+Thu Dec 16 00:57:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_io_str_read): [ruby-core:03973]</div><div class='add'>+</div><div class='add'>+Thu Dec 16 00:43:29 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: changed default binded address family to use an</div><div class='add'>+	  available address family of host name. [druby-ja:101]</div><div class='add'>+</div><div class='add'>+	* lib/drb/ssl.rb: ditto</div><div class='add'>+</div><div class='add'>+Wed Dec 15 17:47:17 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#start_thread):</div><div class='add'>+	  should log about all accepted socket. [ruby-core:03962]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/accesslog.rb (WEBrick::AccessLog#setup_params):</div><div class='add'>+	  "%%" and "%u" are supported. [webricken:135]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::FileHandler#check_filename):</div><div class='add'>+	  :NondisclosureName is acceptable if it is Enumerable.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config::FileHandler):</div><div class='add'>+	  default value of :NondisclosureName is [".ht*", "*~"].</div><div class='add'>+</div><div class='add'>+Wed Dec 15 16:10:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_id_obsolete): warn always.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 15:31:02 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#==): [ruby-dev:25206]</div><div class='add'>+</div><div class='add'>+Wed Dec 15 14:32:18 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_fdisset): check whether the handle is valid.</div><div class='add'>+</div><div class='add'>+Wed Dec 15 10:30:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c (ossl_digest_initialize): [ruby-dev:25198]</div><div class='add'>+</div><div class='add'>+Tue Dec 14 19:17:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* utf8.c (utf8_is_mbc_ambiguous): [ruby-talk:123561]</div><div class='add'>+</div><div class='add'>+	* utf8.c (utf8_mbc_to_normalize): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 14 17:08:15 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_close): need to reset osfhnd().</div><div class='add'>+</div><div class='add'>+Tue Dec 14 14:03:57 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_raise): avoid buffer overrun.</div><div class='add'>+	  [ruby-dev:25187]</div><div class='add'>+</div><div class='add'>+Tue Dec 14 12:36:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::initialize): generate new</div><div class='add'>+	  session if given session_id does not exist.  [ruby-list:40368]</div><div class='add'>+</div><div class='add'>+Tue Dec 14 08:47:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_eval): should mark ruby_eval_tree.  [ruby-dev:25189]</div><div class='add'>+</div><div class='add'>+Mon Dec 13 18:13:52 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (set_stack_end): new function to obtain stack end address.</div><div class='add'>+	  set_stack_end obtains a stack end address by an address of local</div><div class='add'>+	  variable in the function.</div><div class='add'>+	  (SET_STACK_END, STACK_END): use set_stack_end.  don't use alloca.</div><div class='add'>+	  This makes the conservative garbage collector to scan a stack frame</div><div class='add'>+	  of the garbage_collect function itself.  This is required because</div><div class='add'>+	  callee-save registers may be stored in the frame.</div><div class='add'>+	  [ruby-dev:25158]</div><div class='add'>+</div><div class='add'>+Mon Dec 13 02:45:51 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_subwin): call NUM2INT() before</div><div class='add'>+	  GetWINDOW(). fixed: [ruby-dev:25161]</div><div class='add'>+</div><div class='add'>+Mon Dec 13 00:58:02 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (cleanpath_aggressive): make it private.</div><div class='add'>+	  (cleanpath_conservative): ditto.</div><div class='add'>+	  Suggested by Daniel Berger.  [ruby-core:3914]</div><div class='add'>+</div><div class='add'>+Sun Dec 12 21:32:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_super.rb (TestSuper#test_define_method): now methods</div><div class='add'>+	  from procs can call super.</div><div class='add'>+</div><div class='add'>+Sun Dec 12 10:35:10 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Don't</div><div class='add'>+	  show an accessor's r/w flag if none was specified</div><div class='add'>+</div><div class='add'>+Sun Dec 12 10:14:03 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc::parse_files): Never exclude files</div><div class='add'>+	  explicitly given on the command line.</div><div class='add'>+</div><div class='add'>+Sat Dec 11 21:10:16 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: add DRbRemoteError. [ruby-list:40348],</div><div class='add'>+	  [ruby-list:40390]</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec 11 13:08:28 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/optparse/subcommand.rb: a sample for sub commands like</div><div class='add'>+	  cvs.  contributed by Minero Aoki.</div><div class='add'>+</div><div class='add'>+Fri Dec 10 08:39:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_listen): get OpenFile just before calling</div><div class='add'>+	  listen(2).</div><div class='add'>+</div><div class='add'>+Thu Dec  9 16:28:35 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (GetDBM): typo.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 16:21:51 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI#setup_header): avoid</div><div class='add'>+	  SecurityError. [ruby-dev:24970]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should wait</div><div class='add'>+	  for reading request till data arrive. [ruby-talk:121068]</div><div class='add'>+</div><div class='add'>+Thu Dec  9 14:38:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_inspect): escape # which starts an expression</div><div class='add'>+	  substitution.  fixed: [ruby-core:03922]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_dump): not escape # which isn't a substitution.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 12:31:53 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): should set prog if argc != 0.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 10:54:36 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_select): [ruby-dev:25132]</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Dec  9 10:19:18 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb (test_setsockopt): use SO_LINGER instead</div><div class='add'>+	  of SO_BINDTODEVICE.  fixed: [ruby-dev:25133]</div><div class='add'>+</div><div class='add'>+Thu Dec  9 03:08:36 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): set root-win title to "ruby" when</div><div class='add'>+	  the running script is '-e one-liner' or '-' (stdin).</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: add find_library("#{lib}#{ver}",..) for</div><div class='add'>+	  stub libs</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/textmark.rb: TkTextMarkCurrent and TkTextMarkAnchor</div><div class='add'>+	  have a wrong parent class.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: rename TkDialog2 --&gt; TkDialogObj and</div><div class='add'>+	  TkWarning2 --&gt; TkWarningObj (old names are changed to alias names)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: bug fix of treatment of 'prev_command'</div><div class='add'>+	  option and hashes for configuration</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/dialog.rb: add TkDialogObj#name to return the</div><div class='add'>+	  button name</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/radiobutton.rb: rename enbugged method value() ==&gt;</div><div class='add'>+	  get_value() and value=(val) ==&gt; set_value(val).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: add TkMenu.new_menuspec</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: add alias (TkMenuButton = TkMenubutton,</div><div class='add'>+	  TkOptionMenuButton = TkOptionMenubutton)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: new method aliases (same as option keys of</div><div class='add'>+	  event_generate) for Event object</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: configinfo returns proper types of values</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bind methods accept subst_args + block</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvastag.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/frame.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/texttag.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/toplevel.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: ditto and bug fix</div><div class='add'>+</div><div class='add'>+Wed Dec  8 23:54:29 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Typo</div><div class='add'>+	  meant that h2 tag was invisible.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 22:10:02 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h, io.c, ext/dl/dl.c, ext/pty/pty.c, ext/socket/socket.c:</div><div class='add'>+	  create FILE object only when required: popen(3) and DL's IO#to_ptr.</div><div class='add'>+	  [ruby-dev:25122]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): use setmode for Human68k.  [ruby-dev:25121]</div><div class='add'>+</div><div class='add'>+Wed Dec  8 20:13:06 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn): support for DJGPP.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (VPATH): specify the implicit path separator for DJGPP.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 17:48:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): merge Guy Decoux's argument preserve</div><div class='add'>+	  patch in [ruby-core:03874].</div><div class='add'>+</div><div class='add'>+Wed Dec  8 17:37:33 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec): need to close original socket</div><div class='add'>+	  handle.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 14:31:36 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): [ruby-dev:25104]</div><div class='add'>+</div><div class='add'>+Wed Dec  8 13:49:46 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec): must close original handle</div><div class='add'>+	  before exec. fixed: [ruby-dev:25112]</div><div class='add'>+</div><div class='add'>+Wed Dec  8 11:46:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): get rid of segfault at empty evstr.</div><div class='add'>+	  fixed: [ruby-dev:25113]</div><div class='add'>+</div><div class='add'>+Wed Dec  8 03:26:51 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bio.c (ossl_obj2bio): should not use fptr-&gt;f.</div><div class='add'>+	  [ruby-dev:25101]</div><div class='add'>+</div><div class='add'>+Wed Dec  8 03:26:41 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* runruby.rb: prepend LIBRUBY_SO to LD_PRELOAD as well as rubytest.rb.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 01:35:44 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (is_socket): reorder of function definitions.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 00:44:31 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): win32 bidirectional pipe support.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_pipe_exec): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (socketpair): new function. POSIX socketpair</div><div class='add'>+	  emulation.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (socketpair_internal): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  8 00:25:07 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_version.rb: added version check test.</div><div class='add'>+	  [ruby-dev:25053]</div><div class='add'>+</div><div class='add'>+Tue Dec  7 15:40:38 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): avoid context switch before writing to stderr.</div><div class='add'>+	  [ruby-dev:25080]</div><div class='add'>+</div><div class='add'>+	* rubyio.h: refine deprecated declaration.</div><div class='add'>+</div><div class='add'>+	* configure.in, file.c, io.c: remove useless check: fseeko, etc.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 13:42:07 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_mkdir): win32 special processing doesn't need any</div><div class='add'>+	  longer.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_mkdir): new function. POSIX.1 compatible</div><div class='add'>+	  interface.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_rmdir): new function.</div><div class='add'>+</div><div class='add'>+Tue Dec  7 00:27:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_setgroups): [ruby-dev:25081]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 23:07:57 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check -lsocket for socketpair and shutdown.</div><div class='add'>+	  reported by Ville Mattila.  [ruby-core:03903]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 23:00:45 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_sizeof_rlim_t): setup for DJGPP.</div><div class='add'>+</div><div class='add'>+	* io.c (is_socket, shutdown): define dummy macros for DJGPP.</div><div class='add'>+</div><div class='add'>+	* process.c: use SIZEOF_RLIM_T instead of HAVE_RLIM_T for DJGPP.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 21:19:40 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (is_socket): fix typos. [ruby-core:03900]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 20:13:28 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (is_socket): new function.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_close_read, rb_io_close_write): use is_socket().</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_finalize): need to check fptr-&gt;f before calling</div><div class='add'>+	  rb_io_fptr_cleanup().</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): win32 pipe support (experimental).</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_pipe_exec): return file descriptors</div><div class='add'>+	  instead of FILE structure objects.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_is_socket): new function.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 19:40:40 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (.y.c): simplify the rule.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 18:08:10 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_eqq): document fix.  [ruby-talk:122541]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 17:49:30 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (run_trap_eval): add prototype for Microsoft compiler.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 17:32:38 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h, intern.h, io.c, file.c, process.c, ext/socket/socket.c,</div><div class='add'>+	  ext/pty/pty.c, ext/io/wait/wait.c, ext/openssl/ossl_ssl.c:</div><div class='add'>+	  Use own buffering mechanism instead of stdio.  [ruby-dev:25056]</div><div class='add'>+</div><div class='add'>+	* io.c, ext/stringio/stringio.c, test/ruby/ut_eof.rb:</div><div class='add'>+	  EOF flag removed.</div><div class='add'>+</div><div class='add'>+Mon Dec  6 17:15:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb (TestBasicSocket#test_setsockopt):</div><div class='add'>+	  BasicSocket#setsockopt dumps core.  [ruby-dev:25039]</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb (TestTCPSocket#test_recvfrom):</div><div class='add'>+	  TCPSocket#recvfrom dumps core.  [ruby-dev:24705]</div><div class='add'>+</div><div class='add'>+	* test/socket/test_udp.rb (TestUDPSocket#test_connect):</div><div class='add'>+	  UDPSocket#connect dumps core.  [ruby-dev:25045]</div><div class='add'>+</div><div class='add'>+	* test/socket/test_udp.rb (TestUDPSocket#test_bind):</div><div class='add'>+	  UDPSocket#bind dumps core.  [ruby-dev:25057]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 09:59:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): take VALUE argument.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_connect): use rb_str_new4().</div><div class='add'>+	  [ruby-dev:25052]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): [ruby-dev:25051]</div><div class='add'>+</div><div class='add'>+Mon Dec  6 01:32:31 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,</div><div class='add'>+	  ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,</div><div class='add'>+	  ossl_rsa_private_decrypt): should take an optional argument</div><div class='add'>+	  to specify padding mode. [ruby-talk:122539]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c (Init_ossl_rsa): add new constants</div><div class='add'>+	  PKCS1_PADDING, SSLV23_PADDING, NO_PADDING and PKCS1_OAEP_PADDING</div><div class='add'>+	  under OpenSSL::PKey::RSA.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_pkey_rsa.rb: new file.</div><div class='add'>+</div><div class='add'>+Sun Dec  5 19:39:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion#complete): new parameter</div><div class='add'>+	  to direct case insensitiveness.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#order!): ignore case only for long</div><div class='add'>+	  option.  [ruby-dev:25048]</div><div class='add'>+</div><div class='add'>+Sun Dec  5 00:54:32 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: setup library paths before requiring library.</div><div class='add'>+	  [ruby-core:03892]</div><div class='add'>+</div><div class='add'>+Sat Dec  4 22:54:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): remove rb_str_locktmp().  [ruby-dev:25050]</div><div class='add'>+</div><div class='add'>+	* io.c (io_fwrite): takes VALUE string as an argument.</div><div class='add'>+	  [ruby-dev:25050]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_connect): remove rb_str_locktmp().</div><div class='add'>+	  [ruby-dev:25050]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_connect): [ruby-dev:25045]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_bind): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (udp_send): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_send): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_hash): should provide "hash" method where "eql?"</div><div class='add'>+	  is redefined.  [ruby-talk:122482]</div><div class='add'>+</div><div class='add'>+Sat Dec  4 21:29:05 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: (In previous commit) new method chown.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: (In previous commit) new method chown_R.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: (In previous commit) new method chmod_R</div><div class='add'>+	  wrongly added.  Removed now.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 20:45:52 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir, mkdir_p): should chmod explicitly.</div><div class='add'>+	  [ruby-core:03881]</div><div class='add'>+</div><div class='add'>+Sat Dec  4 18:54:09 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: removed empty lines from output.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 18:49:09 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION): 0.1.1 -&gt; 0.1.2</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: #item=/#set_item and so on are obsolete.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 14:28:56 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::Context::Section::set_comment):</div><div class='add'>+	  Section comments may now be bracketed by lines which are</div><div class='add'>+	  ignored. You can now write</div><div class='add'>+	      # -----------</div><div class='add'>+	      # :section: Dave's Section</div><div class='add'>+	      # comment material</div><div class='add'>+	      # -----------</div><div class='add'>+	   The lines before :section: are removed, and identical lines at the end are</div><div class='add'>+	   also removed if present.</div><div class='add'>+</div><div class='add'>+Sat Dec  4 00:35:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_setsockopt): [ruby-dev:25039]</div><div class='add'>+</div><div class='add'>+Fri Dec  3 12:25:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* st.h: fix prototype for C++.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 01:55:24 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: widget configuration by TkWindow#method_missing</div><div class='add'>+	  returns proper object. "widget.option = val" returns val, and</div><div class='add'>+	  "widget.option(val)" returns self.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/font.rb: TkFont#replace accepts only one font argument.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/radiobutton.rb: add TkRadiobutton#value and</div><div class='add'>+	  TkRadiobutton#value=(val).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/spinbox.rb: callback substitution support on</div><div class='add'>+	  command option.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/widget: bug fix (wrong image height)</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-jp/widget: ditto.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 00:21:05 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): prepare to pass a block from "call" method</div><div class='add'>+	  to a Proc generated by Method#to_proc.  [ruby-dev:25031]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): actually passes a block given to "call".</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): use rb_respond_to() again.  this fix is</div><div class='add'>+	  based on [ruby-dev:25021]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_respond_to): funcall respond_to? if it's redefined.</div><div class='add'>+	  [ruby-dev:25021]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 15:13:53 2004  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_parser.rb, test/xmlrpc/data/*.expected: Expected</div><div class='add'>+	  values are now stored in YAML instead of using #inspect. This fixes</div><div class='add'>+	  false hash order.</div><div class='add'>+</div><div class='add'>+Fri Dec  3 00:11:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_initialize): [ruby-dev:25032]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 16:41:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_protect): prevent continuations created inside from being</div><div class='add'>+	  called from the outside.  [ruby-dev:25003]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_callcc, rb_cont_call): prohibit calling from different</div><div class='add'>+	  signal contexts.  [ruby-dev:25022]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 10:45:02 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb: fix for NetBSD.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 09:57:24 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct::Marshaler): OpenStruct can be</div><div class='add'>+	  marshaled again.  [ruby-core:03862]</div><div class='add'>+</div><div class='add'>+Thu Dec  2 09:30:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_mark): mark thread group.  [ruby-dev:25020]</div><div class='add'>+</div><div class='add'>+	* eval.c (thgroup_add): check whether the argument is really a Thread.</div><div class='add'>+</div><div class='add'>+Thu Dec  2 07:57:16 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ctl): [ruby-dev:25019]</div><div class='add'>+</div><div class='add'>+Wed Dec  1 06:13:00 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: add constant NKF::VERSION</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c(guess): this becomes an alias of guess2</div><div class='add'>+</div><div class='add'>+	* ext/nkf/test.rb: add --no-cp932</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: original nkf2 revision 1.47</div><div class='add'>+</div><div class='add'>+Wed Dec  1 02:21:02 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandler): call handler immediately only for default</div><div class='add'>+	  handlers.  [ruby-dev:25003]</div><div class='add'>+</div><div class='add'>+Tue Nov 30 23:49:12 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): errno should be preserved for rb_sys_fail() when</div><div class='add'>+	  fork failed.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 16:18:50 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should check previous frame for ZSUPER.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): remove unnecessary rb_str_resize().</div><div class='add'>+	  [ruby-dev:24996]</div><div class='add'>+</div><div class='add'>+	* io.c (io_readpartial): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 30 14:58:33 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (install): add arguments explicitly to "super".</div><div class='add'>+</div><div class='add'>+Tue Nov 30 00:49:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_FRAME): flags should have been initialized.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): [ruby-core:03856]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_sysread): use temporary lock.  [ruby-dev:24992]</div><div class='add'>+</div><div class='add'>+Tue Nov 30 00:12:57 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c: now handles many alternatives (over 500000)</div><div class='add'>+	  in regexp. [ruby-dev:24773]</div><div class='add'>+</div><div class='add'>+Mon Nov 29 16:06:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_write): insufficiently filled string</div><div class='add'>+	  being extended when overwriting.  [ruby-core:03836]</div><div class='add'>+</div><div class='add'>+Mon Nov 29 15:59:05 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct::method_missing): check method</div><div class='add'>+	  duplication for -d.</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct::initialize): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 15:22:28 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/io/nonblock/test_flush.rb: abandon tests when io/nonblock is</div><div class='add'>+	  not supported.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 13:37:54 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): must not use FILE after fclose().</div><div class='add'>+	  [ruby-dev:24985]</div><div class='add'>+</div><div class='add'>+Mon Nov 29 13:13:13 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): push back the last space before next</div><div class='add'>+	  loop because CharNext() eats it.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 03:08:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (convert_type): [ruby-core:03845]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_funcall_rescue): new function.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Array): avoid using rb_respond_to().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_Integer): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (get_backtrace): no conversion for nil.</div><div class='add'>+</div><div class='add'>+	* parse.y (reduce_nodes): empty body should return nil.</div><div class='add'>+</div><div class='add'>+Mon Nov 29 01:18:18 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_writable): call io_seek regardless of</div><div class='add'>+	  NEED_IO_SEEK_BETWEEN_RW.  [ruby-dev:24986]</div><div class='add'>+</div><div class='add'>+Sun Nov 28 15:57:58 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::Element#tag): not use block_given? for</div><div class='add'>+	  working with ruby 1.6 again.</div><div class='add'>+</div><div class='add'>+	* lib/rss/{0.9,2.0,trackback}.rb, lib/rss/maker/base.rb:</div><div class='add'>+	  undef -&gt; remove_method for working with ruby 1.6 again.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 15:51:40 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::NotSetError): added.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/{1.0,0.9,2.0}.rb: changed RSS Maker to raise</div><div class='add'>+	  RSS::NotSetError if required values of maker.channel are not</div><div class='add'>+	  set. [ruby-talk:120061]</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_{1.0,0.9,2.0}.rb: changed tests to check RSS</div><div class='add'>+	  Maker raises or not.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 12:14:47 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (fetch_token): fixed test failure on HP-UX ia64</div><div class='add'>+	  ([ruby-dev:24859]).</div><div class='add'>+</div><div class='add'>+Sun Nov 28 12:08:15 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c, test/ruby/test_regexp.rb: fixed problem with UTF-8</div><div class='add'>+	  characters that have U+00FE or invalid characters.</div><div class='add'>+</div><div class='add'>+Sun Nov 28 12:07:04 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c, test/ruby/test_regexp.rb: fixed segmentation fault</div><div class='add'>+	  ([ruby-dev:24887]).</div><div class='add'>+</div><div class='add'>+Sun Nov 28 12:05:48 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regcomp.c, regint.h: fixed PLATFORM_UNALIGNED_WORD_ACCESS</div><div class='add'>+	  problem ([ruby-dev:24802] and [ruby-core:3733])</div><div class='add'>+</div><div class='add'>+Sat Nov 27 23:43:39 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): [ruby-dev:24972]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 21:43:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: avoid data lost with nonblocking fd and</div><div class='add'>+	  stdio buffering in sync mode.  [ruby-dev:24966]</div><div class='add'>+	  based on matz's patch [ruby-dev:24967]</div><div class='add'>+	  (io_fwrite): new primitive writing function which writes</div><div class='add'>+	  directly if sync mode.</div><div class='add'>+	  (rb_io_fwrite): wrapper for io_fwrite now.</div><div class='add'>+	  (io_write): call io_fwrite instead of rb_io_fwrite.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 17:43:21 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/{0.9,1.0,2.0,trackback,xml-stylesheet}.rb: added</div><div class='add'>+	  #setup_maker.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_setup_maker_*.rb: added tests for #setup_maker.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb(RSS::Maker::Items#max_size=): supported</div><div class='add'>+	  output item size limitation.</div><div class='add'>+</div><div class='add'>+	* sample/rss/blend.rb: added sample for RSS Maker.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 17:41:35 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/0.9.rb: supported RSS::Maker.make("0.91"). Now,</div><div class='add'>+	  "0.9" is just alias of "0.91."</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_0.9.rb: make("0.9") -&gt; maker("0.91").</div><div class='add'>+</div><div class='add'>+	* test/rss/test_to_s.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 17:21:30 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/list_description.rb: untabified.</div><div class='add'>+</div><div class='add'>+	* sample/rss/rss_recent.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov 27 14:44:15 2004  Kent Sibilev  &lt;ksibilev@bellsouth.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::initialize): [ruby-core:03832]</div><div class='add'>+</div><div class='add'>+Sat Nov 27 09:41:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_fread): old rb_io_fread with file closing checking.</div><div class='add'>+	  (rb_io_fread): wrapper for io_fread now.</div><div class='add'>+	  [ruby-dev:24964]</div><div class='add'>+</div><div class='add'>+Fri Nov 26 18:02:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Tk.destroy uses TkWindow#epath</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/image.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/wm.rb: add 'iconphoto' method(Windows only)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/*: some methods uses TkWindow#epath</div><div class='add'>+</div><div class='add'>+Fri Nov 26 14:29:39 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): uninitialized fd was checked to see open</div><div class='add'>+	  mode.  [ruby-dev:24963]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): uninitialized fd was used.  [ruby-dev:24962]</div><div class='add'>+</div><div class='add'>+Fri Nov 26 13:49:06 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): should retrieve flags from copying file</div><div class='add'>+	  descriptor. [ruby-dev:24961]</div><div class='add'>+</div><div class='add'>+	* eval.c (method_missing): raise TypeError for classes do not</div><div class='add'>+	  have allocators.  [ruby-core:03752]</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: add RDoc by James Edward Gray II.  [ruby-core:03786]</div><div class='add'>+</div><div class='add'>+Fri Nov 26 13:29:02 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): Break</div><div class='add'>+	  out of preprocessing when we find a :section: directive (previously cleared out the</div><div class='add'>+	  comment, but this apparently now generates an error in gsub!)</div><div class='add'>+</div><div class='add'>+Fri Nov 26 00:17:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): move StringValue() check before GetOpenFile().</div><div class='add'>+	  [ruby-dev:24959]</div><div class='add'>+</div><div class='add'>+Thu Nov 25 20:14:57 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thwait.rb (ThreadsWait#join_nowait): abnormally terminated</div><div class='add'>+	  threads should be also processed.  [ruby-talk:121320]</div><div class='add'>+</div><div class='add'>+Thu Nov 25 18:06:37 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: AC_CHECK_SIZEOF(rlim_t) to include stdio.h to fix</div><div class='add'>+	  problem with autoconf 2.52 or earlier.</div><div class='add'>+	  revert AC_PREREQ to 2.50.</div><div class='add'>+	  [ruby-core:3809]</div><div class='add'>+</div><div class='add'>+Thu Nov 25 07:59:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: AC_PREREQ(2.53) [ruby-core:03800]</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): stringify non-nil buffer argument, and always</div><div class='add'>+	  taint the result.  [ruby-dev:24955]</div><div class='add'>+</div><div class='add'>+Wed Nov 24 01:01:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): integer conversion should be prior to</div><div class='add'>+	  GetOpenFile().  [ruby-dev:24952]</div><div class='add'>+</div><div class='add'>+	* configure.in, io.c: cancel [ ruby-Patches-1074 ].</div><div class='add'>+</div><div class='add'>+Tue Nov 23 08:09:50 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb: improve usability of TkOptionMenubutton</div><div class='add'>+</div><div class='add'>+Tue Nov 23 02:00:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_chown): integer conversion should be prior to</div><div class='add'>+	  GetOpenFile().  [ruby-dev:24949]</div><div class='add'>+</div><div class='add'>+Tue Nov 23 00:10:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_chown): integer conversion should be prior to</div><div class='add'>+	  GetOpenFile().  [ruby-dev:24947]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_truncate): ditto.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_truncate): ditto.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_seek): use NUM2OFFT().</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-non-block-do-re): [ruby-core:03719]</div><div class='add'>+</div><div class='add'>+Mon Nov 22 22:33:02 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Don't use names</div><div class='add'>+	  of variables or constants when parsing 'require'</div><div class='add'>+</div><div class='add'>+Mon Nov 22 00:13:35 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_seek): should retrieve dir_data after NUM2INT().</div><div class='add'>+	  [ruby-dev:24941]</div><div class='add'>+</div><div class='add'>+Sat Nov 20 23:57:33 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/README (et al): Add a new directive, :section:, and</div><div class='add'>+	  change the output format to accommodate. :section: allows to to</div><div class='add'>+	  group together methods, attributes, constants, etc under</div><div class='add'>+	  headings in the output. If used, a table of contents is</div><div class='add'>+	  generated.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 23:56:54 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb (Options::parse): Force --inline-source if</div><div class='add'>+	  --one-file option given</div><div class='add'>+</div><div class='add'>+Sat Nov 20 23:55:19 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice): should place index wrapping after</div><div class='add'>+	  possible modification.  [ruby-dev:24940]</div><div class='add'>+</div><div class='add'>+Sat Nov 20 23:25:12 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): f.gets("") did not work. [ruby-core:03771]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb (test_gets_rs): test it.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 22:55:09 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb (CROSS_COMPILING): need to require rbconfig.rb before</div><div class='add'>+	  using CROSS_COMPILNG.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 20:42:42 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: fix ripper.o dependency.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 17:48:29 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_reopen): work around problem with Cygwin fseeko</div><div class='add'>+	  returning ESPIPE.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 05:34:24 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: original nkf.c rev:1.40</div><div class='add'>+</div><div class='add'>+	* ext/nkf/test.rb: add test for mime encode/decode</div><div class='add'>+</div><div class='add'>+Sat Nov 20 01:45:04 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb: move `requrie "webrick/https"'</div><div class='add'>+	  into #setup_http_server method to avoid soap test errors.</div><div class='add'>+</div><div class='add'>+Sat Nov 20 01:37:34 2004  Johan Holmberg  &lt;holmberg@iar.se&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): nicer traceback at interrupt.</div><div class='add'>+	  [ruby-core:03774]</div><div class='add'>+</div><div class='add'>+Sat Nov 20 00:07:16 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): internal buffer should not be listed by</div><div class='add'>+	  ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]</div><div class='add'>+</div><div class='add'>+Fri Nov 19 22:44:43 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb: better support for -p/-x option.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 17:46:56 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/0.9.rb (RSS::Maker::RSS09::Image#have_required_values):</div><div class='add'>+	  changed /rss/channel/image to be optional. [ruby-Bugs:1047]</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_0.9.rb: added tests for the above.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 17:18:17 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::VERSION): 0.1.0 -&gt; 0.1.1.</div><div class='add'>+</div><div class='add'>+	* lib/rss: #to_s used #tag.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_to_s.rb: added.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker.rb (RSS::Maker.make): changed API. It's not</div><div class='add'>+	  received modules which is used as the second argument.</div><div class='add'>+</div><div class='add'>+	* lib/rss/xml-stylesheet.rb (RSS::XMLStyleSheet#alternate):</div><div class='add'>+	  changed return value type which is not String but Boolean.</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb (RSS::Rss::Channel#ttl): changed return value</div><div class='add'>+	  type which is not String but Integer.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss::Channel): &lt;skipDays&gt; has &lt;day&gt;s and</div><div class='add'>+	  &lt;skipHours&gt; has &lt;hour&gt;s.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/0.9.rb (RSS::Maker::RSS09::Channel): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss::Channel::Item): &lt;item&gt; has &lt;category&gt;s.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/2.0.rb (RSS::Maker::Rss20::Channel::Item): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb (RSS::Rss::Channel): &lt;channel&gt; has &lt;category&gt;s.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/2.0.rb (RSS::Maker::RSS20::Channel): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rss/trackback.rb: parent element has &lt;trackback:about&gt;s.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/trackback.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 11:10:16 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb: add support for directory name</div><div class='add'>+	  with -p/-x options.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/datetime.rb (XMLRPC::DateTime#==): should use Array()</div><div class='add'>+	  instead of to_a.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 10:32:36 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c (readline_s_set_completion_append_character):</div><div class='add'>+	  accept nil.  [ruby-core:03765]</div><div class='add'>+</div><div class='add'>+Fri Nov 19 01:20:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise</div><div class='add'>+	  exception if data corresponding to session specified from the</div><div class='add'>+	  client does not exist.</div><div class='add'>+</div><div class='add'>+Fri Nov 19 00:59:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): internal buffer should not be listed by</div><div class='add'>+	  ObjectSpace.each_object().  [ruby-dev:24919]</div><div class='add'>+</div><div class='add'>+Thu Nov 18 23:42:36 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: Never regenerate lib/ripper/core.rb</div><div class='add'>+	  automatically. [ruby-dev:24911]</div><div class='add'>+</div><div class='add'>+Thu Nov 18 20:47:24 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (rb_w32_isatty): new function to replace MSVCRT's</div><div class='add'>+	  isatty because it never sets errno.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 18:41:08 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_stringchar.rb (test_bang): added.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upcase_bang, rb_str_capitalize_bang)</div><div class='add'>+	  (rb_str_swapcase_bang): missing rb_str_modify().</div><div class='add'>+</div><div class='add'>+Thu Nov 18 17:05:01 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_rest_arg): store rest args into invisible local variable</div><div class='add'>+	  in order to get rid of SEGV at ZSUPER.  [ruby-dev:24913]</div><div class='add'>+</div><div class='add'>+Thu Nov 18 15:39:52 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_f_getenv): prohibit for $SAFE=4. [ruby-dev:24908]</div><div class='add'>+</div><div class='add'>+Thu Nov 18 14:58:42 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c: check $SAFE.</div><div class='add'>+</div><div class='add'>+	* test/readline/test_readline.rb: added tests for readline.</div><div class='add'>+</div><div class='add'>+Thu Nov 18 00:21:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getpgrp): prohibit for $SAFE=2.</div><div class='add'>+	  [ruby-dev:24899]</div><div class='add'>+</div><div class='add'>+	* process.c (get_pid): ditto.  [ruby-dev:24904]</div><div class='add'>+</div><div class='add'>+	* process.c (get_ppid): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): defer rb_ary_modify() until actual</div><div class='add'>+	  modification.  [ruby-dev:24901]</div><div class='add'>+</div><div class='add'>+Thu Nov 18 10:10:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c, rubyio.h (rb_io_modenum_flags): exported.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_initialize): allow Fixnum as mode as</div><div class='add'>+	  well as IO.new does.  [ruby-dev:24896]</div><div class='add'>+</div><div class='add'>+Wed Nov 17 23:47:30 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: added.  [ruby-dev:24884]</div><div class='add'>+</div><div class='add'>+Wed Nov 17 18:59:16 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getrlimit, proc_setrlimit): add rb_secure(2) to</div><div class='add'>+	  methods of Process.{getrlimit,setrlimit}</div><div class='add'>+</div><div class='add'>+Wed Nov 17 13:56:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (newline_node): should not use FL_SET. [ruby-dev:24874]</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): should not use FL_UNSET.</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_NEWLINE): remove unused bit to utilize flag field</div><div class='add'>+	  in nodes.</div><div class='add'>+</div><div class='add'>+Wed Nov 17 13:05:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): fix overrun.  [ruby-dev:24886]</div><div class='add'>+</div><div class='add'>+Wed Nov 17 11:48:17 2004  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/parser.rb, test/xmlrpc/test_features.rb: fixed "assigning</div><div class='add'>+	  to constants" warnings</div><div class='add'>+</div><div class='add'>+Wed Nov 17 09:38:18 2004  Johan Holmberg  &lt;holmberg@iar.se&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize_m): should raise exception instead of</div><div class='add'>+	  compile error.  [ruby-core:03755]</div><div class='add'>+</div><div class='add'>+Wed Nov 17 03:42:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_splice): move rb_str_modify() after</div><div class='add'>+	  StringValue(), which may alter the receiver.  [ruby-dev:24878]</div><div class='add'>+</div><div class='add'>+	* error.c (rb_error_frozen): now raise RuntimeError instead of</div><div class='add'>+	  TypeError.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 21:22:47 2004  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb (CGIServer): fixed bug when client sends</div><div class='add'>+	  "Content-typ: text/xml; ..."</div><div class='add'>+</div><div class='add'>+Tue Nov 16 23:45:07 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_divmod): protect float values from GC by</div><div class='add'>+	  assignment to local variables.  [ruby-dev:24873]</div><div class='add'>+</div><div class='add'>+Tue Nov 16 14:31:54 2004  Michael Neumann  &lt;mneumann@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/*: imported and refactored original test cases.</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb, test/xmlrpc/webrick_testing.rb:</div><div class='add'>+	  added test case that starts up a WEBrick XML-RPC server and performs</div><div class='add'>+	  some tests on it (both http and https servers are started).</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb (XMLWriter::each_installed_writer),</div><div class='add'>+	  lib/xmlrpc/parser.rb (XMLParser::each_installed_parser):</div><div class='add'>+	  added methods to simply original test cases</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/parser.rb, lib/xmlrpc/datetime.rb: applied patch by</div><div class='add'>+	  MoonWolf &lt;moonwolf@moonwolf.com&gt; to allow parsing datetime.iso8601</div><div class='add'>+	  (e.g. 20041105T01:15:23Z).</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb: fixed issue #998</div><div class='add'>+	  (http://rubyforge.org/tracker/?func=detail&amp;atid=1700&amp;aid=998&amp;group_id=426)</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb, lib/xmlrpc/utils.rb: when marshalling/loading</div><div class='add'>+	  user-defined data structures, use Class#allocate instead of defining</div><div class='add'>+	  an empty #initialize method. module XMLRPC::Marshallable is now only</div><div class='add'>+	  used for tagging.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/.document, lib/xmlrpc/README.rdoc: added howto</div><div class='add'>+</div><div class='add'>+Tue Nov 16 16:26:12 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/setup.mak (-epilogue-): remove config.h and</div><div class='add'>+	  config.status to force updating them.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 16:20:45 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): position was ignored when a</div><div class='add'>+	  buffer was passed.  http://www.yo.rim.or.jp/~nov/d/?date=20041116#p03</div><div class='add'>+</div><div class='add'>+Tue Nov 16 13:35:54 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::options): add</div><div class='add'>+	  new option --exclude (-x) to skip some tests. [ruby-core:3363],</div><div class='add'>+	  [ruby-dev:24865]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir.exclude):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 11:19:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::options): use</div><div class='add'>+	  Regexp conversion.</div><div class='add'>+</div><div class='add'>+Tue Nov 16 01:41:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_mod_check): frozen check should be separated.</div><div class='add'>+	  [ruby-core:3742]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_update): pedantic check to detect</div><div class='add'>+	  rb_ary_to_ary() to modify the receiver.  [ruby-dev:24861]</div><div class='add'>+</div><div class='add'>+Mon Nov 15 18:58:05 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check rlim_t more portably. [ruby-core:3735]</div><div class='add'>+</div><div class='add'>+Mon Nov 15 11:50:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-special-char-p, ruby-parse-partial): handle</div><div class='add'>+	  operator symbols.  [ruby-talk:120177]</div><div class='add'>+</div><div class='add'>+Mon Nov 15 08:58:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): make proc as an alias to Proc.new.</div><div class='add'>+	  [ruby-dev:24848]</div><div class='add'>+</div><div class='add'>+Mon Nov 15 00:46:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): lambda{}.call(1) should raise exception.</div><div class='add'>+	  [ruby-talk:120253]</div><div class='add'>+</div><div class='add'>+Mon Nov 15 00:33:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_clear): avoid revealing NULL pointer.</div><div class='add'>+	  [ruby-dev:24766]</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): add paranoid check. [ruby-dev:24827]</div><div class='add'>+</div><div class='add'>+	* string.c (str_mod_check): check frozen status as well.</div><div class='add'>+	  [ruby-dev:24801]</div><div class='add'>+</div><div class='add'>+Sun Nov 14 18:59:03 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_getrlimit): new function for Process.getrlimit.</div><div class='add'>+	  (proc_setrlimit): new function for Process.setrlimit.</div><div class='add'>+	  [ruby-dev:24834]</div><div class='add'>+</div><div class='add'>+	* configure.in: check rlim_t and its size.  check setrlimit.</div><div class='add'>+</div><div class='add'>+	* ruby.h (NUM2ULL): new macro.</div><div class='add'>+</div><div class='add'>+Sun Nov 14 13:27:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP#object_address_group): remove odd number of 'f'</div><div class='add'>+	  prefixed to negative address.</div><div class='add'>+</div><div class='add'>+Sun Nov 14 10:48:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb (Integer::gcd2): faster implementation by</div><div class='add'>+	  &lt;erlercw@siu.edu&gt;. [ruby-talk:120232]</div><div class='add'>+</div><div class='add'>+Sun Nov 14 08:46:33 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: Logger just expects</div><div class='add'>+	  Logger#datetime_format to be used for Time#strftime independently of</div><div class='add'>+	  locale. [ruby-dev:24828]</div><div class='add'>+</div><div class='add'>+Fri Nov 12 17:32:07 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/README.bcc32, win32/README.win32: need bison instead of</div><div class='add'>+	  byacc.</div><div class='add'>+</div><div class='add'>+Fri Nov 12 15:15:06 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_options): now we cannot call rb_glob() before</div><div class='add'>+	  ruby_init(), so call rb_w32_cmdvector() at ruby_options().</div><div class='add'>+</div><div class='add'>+	* win32/win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and</div><div class='add'>+	  export it.</div><div class='add'>+</div><div class='add'>+Fri Nov 12 14:08:01 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/event.rb: remove $LOADED_FEATURES trick</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: ditto</div><div class='add'>+</div><div class='add'>+Fri Nov 12 00:31:05 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (fgdbm_store): StringValue() may alter string</div><div class='add'>+	  pointer.  [ruby-dev:24783]</div><div class='add'>+</div><div class='add'>+Thu Nov 11 17:58:19 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob): should have called rb_glob_caller().</div><div class='add'>+	  [ruby-dev:24773]</div><div class='add'>+</div><div class='add'>+Thu Nov 11 16:56:10 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb (test_truncate_wbuf): we want to test</div><div class='add'>+	  only File#truncate, not behavior of seek(2).</div><div class='add'>+</div><div class='add'>+Thu Nov 11 01:52:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): use stringified object.</div><div class='add'>+	  [ruby-dev:24768]</div><div class='add'>+</div><div class='add'>+Wed Nov 10 22:49:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (SimpleDelegator::dup): wrong number of</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass::dup): ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 10 19:47:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): path is a string object now.</div><div class='add'>+</div><div class='add'>+Wed Nov 10 12:31:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT (Example): extconf.rb is indispensable now.</div><div class='add'>+</div><div class='add'>+Wed Nov 10 03:33:36 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix SEGV when compiled with Tcl/Tk8.3.x</div><div class='add'>+	  or older</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tile/style.rb: bug fix</div><div class='add'>+</div><div class='add'>+Tue Nov  9 22:24:07 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf: original nkf.c rev:1.38</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: fix bug: can't parse long-name options</div><div class='add'>+</div><div class='add'>+	* ext/nkf/test.rb: fix bug: mime tests fail</div><div class='add'>+</div><div class='add'>+Tue Nov  9 14:27:18 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Officious): moved from DefaultList.</div><div class='add'>+</div><div class='add'>+Tue Nov  9 00:50:06 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb: Change version numbering of RDoc and ri</div><div class='add'>+</div><div class='add'>+Tue Nov  9 01:05:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob2): do not allocate buffer from heap to avoid</div><div class='add'>+	  memory leaks.  use string object for buffering instead.</div><div class='add'>+	  [ruby-dev:24738]</div><div class='add'>+</div><div class='add'>+	* dir.c (join_path): ditto.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): external input buffer may be modified even after</div><div class='add'>+	  rb_str_locktmp().  [ruby-dev:24735]</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): p or s may be NULL.  [ruby-dev:24749]</div><div class='add'>+</div><div class='add'>+Tue Nov  9 00:36:26 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/extservm.rb: add DRb::ExtServManager#uri=.</div><div class='add'>+	  [ruby-dev:24743]</div><div class='add'>+</div><div class='add'>+Mon Nov  8 22:20:19 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):</div><div class='add'>+	  Fix bug where parent class wasn't being detected if the</div><div class='add'>+	  child class was defined using the A::B notation.</div><div class='add'>+</div><div class='add'>+Mon Nov  8 00:14:13 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add setup for mingw32 cross compiling.</div><div class='add'>+	  [ruby-talk:119413]</div><div class='add'>+</div><div class='add'>+Sun Nov  7 23:49:26 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bind-event methods accept multi substitution</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvastag.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/texttag.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 20:40:16 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: rename WIN32OLE#ole_obj_help to</div><div class='add'>+	  WIN32OLE#ole_type. alias ole_obj_help to ole_type.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 11:18:59 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb (_parse): checks whether zone was given.</div><div class='add'>+</div><div class='add'>+Sat Nov  6 00:46:27 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_locktmp): check STR_TMPLOCK flag before</div><div class='add'>+	  locking.  [ruby-dev:24727]</div><div class='add'>+</div><div class='add'>+Fri Nov  5 19:07:16 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf: follow CVS Head of original nkf.</div><div class='add'>+</div><div class='add'>+Fri Nov  5 18:12:42 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/scrollable.rb: divide Scrollable module into</div><div class='add'>+	  X_Scrollable and Y_Scrollable</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/entry.rb: include X_Scrollable instead of Scrollable</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/autoload.rb: define autoload for X_Scrollable and</div><div class='add'>+	  Y_Scrollable</div><div class='add'>+</div><div class='add'>+Fri Nov  5 16:05:32 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkComm._at() supprts both of "@x,y" and "@x"</div><div class='add'>+</div><div class='add'>+Fri Nov  5 13:22:58 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: sorry. bug fix again.</div><div class='add'>+</div><div class='add'>+Fri Nov  5 13:17:54 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: bug fix</div><div class='add'>+</div><div class='add'>+Fri Nov  5 08:52:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): stricter GC stack check.</div><div class='add'>+</div><div class='add'>+Fri Nov  5 08:34:43 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): should have removed rb_str_unlocktmp(str).</div><div class='add'>+	  [ruby-dev:24708]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): buffer modification check.</div><div class='add'>+	  [ruby-dev:24708]</div><div class='add'>+</div><div class='add'>+Thu Nov  4 23:54:21 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c, regparse.c, regint.h: fixed conflicts between</div><div class='add'>+	  vendor branch.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 23:41:55 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ascii.c, euc_jp.c, oniggnu.h, oniguruma.h, regcomp.c,</div><div class='add'>+	  regenc.c, regenc.h, regerror.c, regexec.c, reggnu.c,</div><div class='add'>+	  regint.h, regparse.c, regparse.h, sjis.c, utf8.c:</div><div class='add'>+	  imported Oni Guruma 3.4.0.</div><div class='add'>+</div><div class='add'>+	* parse.y, re.c: Now mbclen() takes unsigned char as</div><div class='add'>+	  its argument.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 21:25:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): string modify check no longer based on</div><div class='add'>+	  tmplock.  [ruby-dev:24706]</div><div class='add'>+</div><div class='add'>+Thu Nov  4 21:13:48 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(typelib_file_from_typelib): search "win16"</div><div class='add'>+	  entry to get library path.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(oletypelib_path): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c(ole_typedesc2val): add VT_LPWSTR, VT_LPSTR,</div><div class='add'>+	  VT_ERROR case.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 15:02:14 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: forget to initialize instance_variables</div><div class='add'>+	  of TkVarAccess objects</div><div class='add'>+</div><div class='add'>+Thu Nov  4 09:11:35 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): enable GC stack checking.</div><div class='add'>+</div><div class='add'>+Thu Nov  4 03:11:33 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): lock strings temporarily.  [ruby-dev:24687]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): tmplock input buffer.</div><div class='add'>+	  [ruby-dev:24705]</div><div class='add'>+</div><div class='add'>+Wed Nov  3 22:24:17 2004  Daigo Moriwaki  &lt;techml@sgtpepper.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb: use Base64.encode64 to</div><div class='add'>+	  avoid warnings.</div><div class='add'>+</div><div class='add'>+Wed Nov  3 17:19:59 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq_bang): do not push frozen string from hash</div><div class='add'>+	  table.  [ruby-dev:24695]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_or): ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov  3 17:02:48 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: support to use different Tcl commands between</div><div class='add'>+	  configure and configinfo</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/font.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/itemconfig.rb: support to use different Tcl commands</div><div class='add'>+	  between item_configure and item_configinfo</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/itemfont.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/extconf.rb: install SUPPORT_STATUS</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib: some bug fixes (see ext/tk/ChangeLog.tkextlib)</div><div class='add'>+</div><div class='add'>+Wed Nov  3 15:38:28 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/*.rb: removed tab width configuration headers.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_{0.9,1.0}.rb: sort -&gt; do_sort.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/*.rb: changed API to RSS version independence.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb</div><div class='add'>+	  (RSS::Maker::XMLStyleSheets::XMLStyleSheet): checked required</div><div class='add'>+	  (pseudo) attributes.</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb (RSS::Maker::Items): sort -&gt; do_sort.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb (RSS::BaseModel.install_date_element): avoided</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss#textinput): added convenience method.</div><div class='add'>+</div><div class='add'>+Tue Nov  2 16:35:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/enumerator/enumerator.c (each_cons_i): pass copy of an</div><div class='add'>+	  internal consequent array.  [ruby-talk:118691]</div><div class='add'>+</div><div class='add'>+Tue Nov  2 14:54:02 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): need to set cmd if argc == 0 (win32).</div><div class='add'>+</div><div class='add'>+Tue Nov  2 01:20:09 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): IO.popen should take array as 1st argument for</div><div class='add'>+	  a command line.  [ruby-dev:24678]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): nail down dyna_var node when Proc object</div><div class='add'>+	  or continuation is created.  [ruby-dev:24671]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): do not expand argv array.  [ruby-dev:24670]</div><div class='add'>+</div><div class='add'>+Mon Nov  1 22:25:56 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb: changed xml-stylesheet's API of RSS Maker</div><div class='add'>+	  like to item's one.</div><div class='add'>+</div><div class='add'>+	* lib/rss/xml-stylesheet.rb (RSS::XMLStyleSheet#guess_type): fixed</div><div class='add'>+	  regular expression bug.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_xml-stylesheet.rb: updated tests for</div><div class='add'>+	  xml-stylesheet.</div><div class='add'>+</div><div class='add'>+Mon Nov  1 13:59:28 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (MANIFEST): do not use anymore, use extconf.rb instead.</div><div class='add'>+</div><div class='add'>+	* ext/enumerator/extconf.rb, ext/fcntl/extconf.rb,</div><div class='add'>+	  ext/stringio/extconf.rb: added.</div><div class='add'>+</div><div class='add'>+	* MANIFEST, ext/**/MANIFEST: removed.</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: remove MANIFEST stuff.</div><div class='add'>+</div><div class='add'>+Mon Nov  1 11:52:18 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): avoid conflict of variable name. [ruby-dev:24662]</div><div class='add'>+</div><div class='add'>+Mon Nov  1 11:46:19 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_exec): should check whether prog is NULL.</div><div class='add'>+</div><div class='add'>+Mon Nov  1 09:37:19 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker.rb: added entry point of RSS Maker.</div><div class='add'>+</div><div class='add'>+Mon Nov  1 03:14:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_get_method_body): store ICLASS in the cache.</div><div class='add'>+	  [ruby-core:03672]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_provided): should return true for loading library</div><div class='add'>+	  too for autoloading.  [ruby-core:03655]</div><div class='add'>+</div><div class='add'>+Mon Nov  1 01:14:52 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): create copy of popen specifier.  [ruby-dev:24656]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_locktmp): lock string temporarily.</div><div class='add'>+</div><div class='add'>+	* string.c (str_independent): add tmplock check.</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): lock output string temporarily.</div><div class='add'>+	  [ruby-dev:24649]</div><div class='add'>+</div><div class='add'>+	* io.c (io_write): use rb_str_locktmp().</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 23:37:00 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: on NetBSD don't use setruid() and setrgid().</div><div class='add'>+</div><div class='add'>+Sun Oct 31 23:12:10 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/*.rb: added RSS Maker.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_maker_*.rb: added tests for RSS Maker.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 16:58:12 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE.codepage, WIN32OLE.codepage=.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 14:35:26 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: add "\075?UTF-8?Q?" for Gmail.</div><div class='add'>+</div><div class='add'>+Sun Oct 31 14:18:56 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: emit lexer-event values to the parser</div><div class='add'>+	  (still incomplete).</div><div class='add'>+</div><div class='add'>+Sat Oct 30 15:24:41 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add WIN32OLE_TYPELIB class. add</div><div class='add'>+	  WIN32OLE#ole_typelib method.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLETYPELIB.rb: add WIN32OLE_TYPELIB class.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 06:53:24 2004  Peter Vanbroekhoven  &lt;peter.vanbroekhoven@cs.kuleuven.ac.be&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_XSTR should pass copy of literal string.</div><div class='add'>+</div><div class='add'>+Sat Oct 30 00:19:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_update): a[n,m]=nil no longer works as element</div><div class='add'>+	  deletion.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): protect continuation jump in.</div><div class='add'>+	  [ruby-dev:24642]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval), gc.c (gc_mark_children), node.h (NEW_ALIAS,</div><div class='add'>+	  NEW_VALIAS), parse.y (fitem): allow dynamic symbols to</div><div class='add'>+	  NODE_UNDEF and NODE_ALIAS.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 21:27:51 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_initialized): new function to check uninitialized</div><div class='add'>+	  object.  [ruby-talk:118234]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_path), io.c (rb_io_closed): check if initialized.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 19:05:33 2004  NARUSE, Yui  &lt;naruse@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf: follow nkf2.0.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 17:18:22 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ripper_s_allocate): add prototype for Microsoft compiler.</div><div class='add'>+</div><div class='add'>+	* range.c (range_step, range_each): need cast.</div><div class='add'>+</div><div class='add'>+Fri Oct 29 16:34:19 2004  Daiki Ueno  &lt;ueno@unixuser.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-parse-partial): Parse the rest of the</div><div class='add'>+	  line after opening heredoc identifier.  [ruby-dev:24635]</div><div class='add'>+</div><div class='add'>+Fri Oct 29 11:35:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_append_print, rb_parser_while_loop): body node</div><div class='add'>+	  can be empty.  [ruby-dev:24628]</div><div class='add'>+</div><div class='add'>+Fri Oct 29 10:00:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): forget to free some memory chunks.</div><div class='add'>+	  [ruby-core:03611]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): ruby_finalize_1 may cause exception,</div><div class='add'>+	  should be wrapped by PUSH_TAG/POP_TAG().  [ruby-dev:24627]</div><div class='add'>+</div><div class='add'>+Thu Oct 28 08:42:02 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_forward): use ANSI style.</div><div class='add'>+	  (argf_read): call argf_forward with argv argument.</div><div class='add'>+	  [ruby-dev:24624]</div><div class='add'>+</div><div class='add'>+Wed Oct 27 09:17:30 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): use a string object for exception safeness.</div><div class='add'>+	  [ruby-dev:24601]</div><div class='add'>+</div><div class='add'>+Wed Oct 27 07:38:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_TYPESHIFT): allow 4 more bits for line numbers.</div><div class='add'>+	  [ruby-talk:117841]</div><div class='add'>+</div><div class='add'>+	* ruby.h (FL_ABLE): nodes are not subject for flag operations.</div><div class='add'>+</div><div class='add'>+	* io.c (ARGF_FORWARD): should have specified argv explicitly,</div><div class='add'>+	  since we no longer have frame-&gt;argv saved.  [ruby-dev:24602]</div><div class='add'>+</div><div class='add'>+Tue Oct 26 23:30:39 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::Context::add_class_or_module):</div><div class='add'>+	  Restore correct :nopdoc: behavior with nested classes and modules.</div><div class='add'>+</div><div class='add'>+Tue Oct 26 18:21:29 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (RESIZE_CAPA): check string attribute before modifying</div><div class='add'>+	  capacity member of string structure.  [ruby-dev:24594]</div><div class='add'>+</div><div class='add'>+Tue Oct 26 11:33:26 2004  David G. Andersen  &lt;dga@lcs.mit.edu&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain</div><div class='add'>+	  performance.  [ruby-talk:117701]</div><div class='add'>+</div><div class='add'>+Tue Oct 26 10:56:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): raise ArgumentError for extra</div><div class='add'>+	  arguments, unless (digit)$ style used.</div><div class='add'>+</div><div class='add'>+Mon Oct 25 18:35:39 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (isUNCRoot): should check NUL after '.'.</div><div class='add'>+	  [ruby-dev:24590]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (isUNCRoot): fixed buffer overrun.</div><div class='add'>+</div><div class='add'>+Mon Oct 25 08:03:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (get_backtrace): ignore illegal backtrace.  [ruby-dev:24587]</div><div class='add'>+</div><div class='add'>+Sun Oct 24 00:40:50 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load, search_required, rb_require_safe, rb_require): use</div><div class='add'>+	  frozen shared string to avoid outside modification.  [ruby-dev:24580]</div><div class='add'>+</div><div class='add'>+Sat Oct 23 23:40:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_finalize): leave stdin/stdout/stderr open in</div><div class='add'>+	  interpreter termination.  [ruby-dev:24579]</div><div class='add'>+</div><div class='add'>+Sat Oct 23 22:18:32 2004  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (frame_free): Guy Decoux solved the leak problem.</div><div class='add'>+	  Thanks.  [ruby-core:03549]</div><div class='add'>+</div><div class='add'>+Sat Oct 23 00:20:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_append_input): clear klass for z-&gt;input</div><div class='add'>+	  to avoid potential vulnerability.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_run): always use zstream_append_input()</div><div class='add'>+	  to avoid SEGV.  [ruby-dev:24568]</div><div class='add'>+</div><div class='add'>+Fri Oct 22 12:02:28 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_alias): was warning for wrong condition.</div><div class='add'>+	  [ruby-dev:24565]</div><div class='add'>+</div><div class='add'>+Fri Oct 22 10:36:37 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#meta_vars):</div><div class='add'>+	  should check if path_info is not nil.</div><div class='add'>+</div><div class='add'>+Fri Oct 22 00:22:31 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_shift_buffer): should restore class</div><div class='add'>+	  field of a buffer.  [ruby-dev:24562]</div><div class='add'>+</div><div class='add'>+Fri Oct 22 00:20:33 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_include): should not treat char as negative value.</div><div class='add'>+	  [ruby-dev:24558]</div><div class='add'>+</div><div class='add'>+Thu Oct 21 21:32:30 2004  IWATSUKI Hiroyuki  &lt;don@na.rim.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (PStore#transaction): Use the empty content when a</div><div class='add'>+	  file is not found.  [ruby-dev:24561]</div><div class='add'>+</div><div class='add'>+Thu Oct 21 19:06:15 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb (WEBrick::HTTPResponse#send_body_io):</div><div class='add'>+	  ensure to close @body. (http://bugs.debian.org/277520)</div><div class='add'>+</div><div class='add'>+Thu Oct 21 13:11:31 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): variable name "fpw" is conflicted.</div><div class='add'>+</div><div class='add'>+Thu Oct 21 00:36:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_alias): should warn on method discarding.</div><div class='add'>+	  [ruby-dev:24546]</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_expand_buffer_into): hide internal</div><div class='add'>+	  string buffer by clearing klass.  [ruby-dev:24548]</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_getline): should not touch ruby_debug_lines if</div><div class='add'>+	  RIPPER is defined.  [ruby-dev:24547]</div><div class='add'>+</div><div class='add'>+Wed Oct 20 19:45:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_gsub): 	reentrant check.  [ruby-dev:24432]</div><div class='add'>+</div><div class='add'>+Wed Oct 20 12:42:53 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): rs modification check should not interfere</div><div class='add'>+	  in the loop.</div><div class='add'>+</div><div class='add'>+Wed Oct 20 10:31:33 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (lex_getline): should update ruby_debug_lines.</div><div class='add'>+</div><div class='add'>+Wed Oct 20 04:17:55 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_delete_if): should check if deleting element</div><div class='add'>+	  is a string.  [ruby-dev:24490]</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_delete_if): ditto.</div><div class='add'>+</div><div class='add'>+Wed Oct 20 01:37:18 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_times): Array#* should return an instance of</div><div class='add'>+	  the class of right operand.  [ruby-dev:24526]</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_detach_buffer): should not expose</div><div class='add'>+	  class-less object to Ruby world. [ruby-dev:24530]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_dup): provide Proc#dup as well.  [ruby-talk:116915]</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_exec): stack marking position may be higher than</div><div class='add'>+	  expected.  thanks to Guy Decoux.  [ruby-core:03527]</div><div class='add'>+</div><div class='add'>+Wed Oct 20 00:25:41 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): required name must not be changed before</div><div class='add'>+	  loading.  [ruby-dev:24492]</div><div class='add'>+</div><div class='add'>+Tue Oct 19 23:59:46 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_require_safe): provide the feature after loaded.</div><div class='add'>+	  [ruby-list:40085]</div><div class='add'>+</div><div class='add'>+Tue Oct 19 22:43:12 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_attr): If</div><div class='add'>+	  we come across 'attr' in a context where it isn't</div><div class='add'>+	  followed by a symbol, just issue a warning.</div><div class='add'>+</div><div class='add'>+Tue Oct 19 20:32:50 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole.c(ole_invoke): retrieve the result value when</div><div class='add'>+	  retrying the IDispatch::invoke.</div><div class='add'>+</div><div class='add'>+Tue Oct 19 17:24:11 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): block string buffer modification during</div><div class='add'>+	  rb_io_fread() by freezing it temporarily. [ruby-dev:24479]</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): block call at once the end of method.</div><div class='add'>+	  [ruby-dev:24487]</div><div class='add'>+</div><div class='add'>+	* ext/enumerator/enumerator.c (enum_each_slice): remove</div><div class='add'>+	  rb_gc_force_recycle() to prevent potential SEGV.</div><div class='add'>+	  [ruby-dev:24499]</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (zstream_expand_buffer): hide internal string</div><div class='add'>+	  buffer by clearing klass.  [ruby-dev:24510]</div><div class='add'>+</div><div class='add'>+Tue Oct 19 08:47:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): method result must be checked.  [ruby-dev:24504]</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): ditto.  [ruby-dev:24519]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 23:37:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): check inheritance by the internal function.</div><div class='add'>+	  [ruby-dev:24515]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 11:29:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_flags_mode, rb_io_mode_flags): distinguish whether file</div><div class='add'>+	  not existing is created.  [ruby-dev:24505]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 07:26:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_truncate): discard read buffer before truncation.</div><div class='add'>+	  [ruby-dev:24197]</div><div class='add'>+</div><div class='add'>+Mon Oct 18 01:56:03 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (WEBrick::HTTPRequest#initialize):</div><div class='add'>+	  initial value of accpet-* should be array.</div><div class='add'>+</div><div class='add'>+Mon Oct 18 00:42:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getservbyaname): protocol string</div><div class='add'>+	  might be altered.  [ruby-dev:24503]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): check if return value from succ is a</div><div class='add'>+	  string.  [ruby-dev:24504]</div><div class='add'>+</div><div class='add'>+Sun Oct 17 23:03:48 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: TkTimer#start and restart accept a block</div><div class='add'>+</div><div class='add'>+Sun Oct 17 12:53:46 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_func_methods): correct argument mismatch.</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_get_methods): ditto.</div><div class='add'>+	* ext/win32ole/win32ole.c (fole_put_methods): ditto.</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb: add test for WIN32OLE#ole_func_methods</div><div class='add'>+	  WIN32OLE#ole_get_methods, WIN32OLE#ole_put_methods</div><div class='add'>+</div><div class='add'>+Sat Oct 16 14:45:28 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss#to_s): removed garbage.</div><div class='add'>+</div><div class='add'>+Sat Oct 16 13:42:49 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/: untabified.</div><div class='add'>+	* test/rss/: untabified.</div><div class='add'>+	* lib/rss/0.9.rb (RSS::Rss#to_s): inent -&gt; indent.</div><div class='add'>+</div><div class='add'>+Sat Oct 16 13:34:56 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss: supported prety print.</div><div class='add'>+	* test/rss/test_1.0.rb: added test for calculating default indent size.</div><div class='add'>+</div><div class='add'>+Sat Oct 16 10:56:36 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): install-rb is needed for statically</div><div class='add'>+	  linked extensions.  [ruby-dev:24491]</div><div class='add'>+</div><div class='add'>+Fri Oct 15 18:07:08 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509store.c</div><div class='add'>+	  (ossl_x509stctx_initialize): setup OpenSSL::X509::StoreContext with</div><div class='add'>+	  ossl_x509stctx_* functions instead of X509_STORE_CTX_*.</div><div class='add'>+	  (ossl_x509store_set_time): add OpenSSL::X509::Store#time=.</div><div class='add'>+	  (ossl_x509stctx_set_time): add OpenSSL::X509::StoreContext#time=.</div><div class='add'>+</div><div class='add'>+	* test/openssl/ossl_x509store.rb: test certificate validity times.</div><div class='add'>+</div><div class='add'>+Fri Oct 15 18:04:35 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: TkTimer.new(interval, loop){ ... } is</div><div class='add'>+	  acceptable. Add TkTimer.start ( == new + start ).</div><div class='add'>+</div><div class='add'>+Fri Oct 15 12:43:09 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_stack): make prototype declaration consistent with</div><div class='add'>+	  the definition in gc.c.</div><div class='add'>+</div><div class='add'>+Thu Oct 14 13:33:59 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: added link to Tutorial.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 21:22:50 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb:</div><div class='add'>+	  add WEBrick::Config::FileHandler[:AcceptableLanguages].</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::FileHandler#set_filename): search files</div><div class='add'>+	  having suffix of language-name which Accept-Language header field</div><div class='add'>+	  includes if :AcceptableLanguages options is present.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::FileHandler#get_servlet): new method to</div><div class='add'>+	  search servlet correspond to the suffix of filename.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb: add attributes access methods: accept,</div><div class='add'>+	  accept_charset, accept_encoding, accept_language, content_length</div><div class='add'>+	  and content_type.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb: add attribute access methods:</div><div class='add'>+	  content_length, content_length=, content_type and content_type=.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.mime_types):</div><div class='add'>+	  use the second suffix to detect media type. (the first suffix</div><div class='add'>+	  may be a language name.)</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_qvalues):</div><div class='add'>+	  add method to parse Accept header field. it returns an Array of</div><div class='add'>+	  values sorted by the qvalues.</div><div class='add'>+</div><div class='add'>+Tue Oct 12 15:05:32 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (MODE_BINMODE, MODE_BINARY): fixed reversed condition.</div><div class='add'>+</div><div class='add'>+Mon Oct 11 17:51:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_popen): get mode string via rb_io_flags_mode() to</div><div class='add'>+	  avoid mode string modification.  [ruby-dev:24454]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline_fast): should take delim as unsigned char to</div><div class='add'>+	  distinguish EOF and '\377'.  [ruby-dev:24460]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): add check for RS modification.</div><div class='add'>+	  [ruby-dev:24461]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): use qsort() directly instead using</div><div class='add'>+	  rb_iterate().  [ruby-dev:24462]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_each_with_index): remove rb_gc_force_recycle() to</div><div class='add'>+	  prevent access to recycled object (via continuation for</div><div class='add'>+	  example).  [ruby-dev:24463]</div><div class='add'>+</div><div class='add'>+Mon Oct 11 13:48:20 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/*: untabify</div><div class='add'>+</div><div class='add'>+Sun Oct 10 12:32:08 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_require): Allow 'require'</div><div class='add'>+	  to be used as a variable name</div><div class='add'>+</div><div class='add'>+Sun Oct 10 02:49:14 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/filter.rb: require ripper/tokenizer.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/filter.rb (parse): argument is optional.</div><div class='add'>+</div><div class='add'>+Sun Oct 10 02:43:13 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: \n between two comments disappeared.</div><div class='add'>+</div><div class='add'>+Sat Oct  9 21:23:37 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/converter.rb: changed to try to use Iconv for default</div><div class='add'>+	  conversion.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: 0.0.9 -&gt; 0.1.0.</div><div class='add'>+</div><div class='add'>+Sat Oct  9 19:50:36 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): should not treat char as negative value.</div><div class='add'>+	  [ruby-dev:24460]</div><div class='add'>+</div><div class='add'>+Sat Oct  9 00:25:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fread): rb_thread_wait_fd() was lost.</div><div class='add'>+	  [ruby-dev:24457]</div><div class='add'>+</div><div class='add'>+Fri Oct  8 21:36:56 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_traverse): return value of Dir.entries is</div><div class='add'>+	  reliable. (pass $SAFE=1)</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_dir): return value of Dir.foreach is</div><div class='add'>+	  reliable. (pass $SAFE=1)</div><div class='add'>+</div><div class='add'>+Fri Oct  8 09:49:32 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): pointer modification check before each</div><div class='add'>+	  iteration.  [ruby-dev:24445]</div><div class='add'>+</div><div class='add'>+Fri Oct  8 01:13:05 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/optiondb.rb: make it more secure</div><div class='add'>+</div><div class='add'>+Thu Oct  7 23:47:57 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/scrollbar.rb: When 'set' operation, a scrollbar</div><div class='add'>+	  cannot propagate view port information from the source widget</div><div class='add'>+	  (that calls 'set') to other assigned widgets.</div><div class='add'>+</div><div class='add'>+Thu Oct  7 17:36:25 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: When CHILDKILLED and so on, Tk.errorCode returns</div><div class='add'>+	  a Fixnum for 2nd element (it's pid) of the return value.</div><div class='add'>+</div><div class='add'>+Thu Oct  7 12:55:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): should freeze buffer before thread context</div><div class='add'>+	  switch. [ruby-dev:24442]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): string conversion should at the top of the</div><div class='add'>+	  method.  [ruby-dev:24439]</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): buffer should be frozen only after the length</div><div class='add'>+	  check.  [ruby-dev:24440]</div><div class='add'>+</div><div class='add'>+Thu Oct  7 02:56:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c: use FMODE_APPEND.</div><div class='add'>+</div><div class='add'>+Thu Oct  7 01:05:33 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.errorInfo and Tk.errorCode</div><div class='add'>+</div><div class='add'>+Thu Oct  7 00:08:37 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_sysopen): preserve path in the buffer allocated by</div><div class='add'>+	  ALLOCA_N() to prevent modification.  [ruby-dev:24438]</div><div class='add'>+</div><div class='add'>+Wed Oct  6 09:21:00 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_mode_flags): preserve append mode flag.</div><div class='add'>+	  [ruby-dev:24436]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_modenum_mode): do not use external output buffer.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_justify): differ pointer retrieval to prevent</div><div class='add'>+	  padding string modification.  [ruby-dev:24434]</div><div class='add'>+</div><div class='add'>+	* range.c (range_each_func): allow func to terminate loop by</div><div class='add'>+	  returning RANGE_EACH_BREAK.</div><div class='add'>+</div><div class='add'>+	* range.c (member_i): use RANGE_EACH_BREAK. [ruby-talk:114959]</div><div class='add'>+</div><div class='add'>+Tue Oct  5 09:53:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fopen): mode string copy at the lowest level.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_flags_mode): requires output buffer no more.  no</div><div class='add'>+	  allocation needed.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_index): takes a block to compare items in an</div><div class='add'>+	  array.  [ruby-talk:113069] [Ruby2]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_rindex): ditto.</div><div class='add'>+</div><div class='add'>+Mon Oct  4 14:03:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_file_open_internal, rb_io_reopen): fname might be altered</div><div class='add'>+	  while GC.  [ruby-dev:24408]</div><div class='add'>+</div><div class='add'>+Mon Oct  4 12:53:45 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/optiondb.rb: support definition of command</div><div class='add'>+	  resources on widgets</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/image.rb: bug fix</div><div class='add'>+</div><div class='add'>+Sun Oct  3 21:16:05 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (TEXT_REGEXP): allow 8-bit characters for the german</div><div class='add'>+	  version of Microsoft Exchange Server.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (RTEXT_REGEXP): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (CTEXT_REGEXP): ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  2 20:34:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (local_vars): moved to struct parser_params.</div><div class='add'>+	  [ruby-dev:24391]</div><div class='add'>+</div><div class='add'>+	* parser.y (stmts): remove suspicious NODE_BEGIN.  [ruby-dev:24390]</div><div class='add'>+</div><div class='add'>+	* node.h (NEW_DVAR): extra semicolon.</div><div class='add'>+</div><div class='add'>+Sat Oct  2 00:42:20 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_byte): retrieve pointer from string value for each</div><div class='add'>+	  time.  [ruby-dev:24404]</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes0): ditto.</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_i): re-entrance check added.  [ruby-dev:24399]</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): should freeze all reading buffer.</div><div class='add'>+	  [ruby-dev:24400]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sum): should use bignums when bits is greater</div><div class='add'>+	  than or equals to sizeof(long)*CHAR_BITS. [ruby-dev:24395]</div><div class='add'>+</div><div class='add'>+	* eval.c (specific_eval): defer pointer retrieval to prevent</div><div class='add'>+	  unsafe sourcefile string modification.  [ruby-dev:24382]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sum): wrong cast caused wrong result.</div><div class='add'>+	  [ruby-dev:24385]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): hide temporary array from</div><div class='add'>+	  ObjectSpace.each_object.  [ruby-dev:24386]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sum): check was done with false pointer.</div><div class='add'>+	  [ruby-dev:24383]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sum): string may be altered.  [ruby-dev:24381]</div><div class='add'>+</div><div class='add'>+Fri Oct  1 11:40:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe</div><div class='add'>+	  sourcefile string modification.  [ruby-dev:24373]</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): block string buffer modification during</div><div class='add'>+	  rb_io_fread() by freezing it temporarily. [ruby-dev:24366]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): mode argument may be altered.</div><div class='add'>+	  [ruby-dev:24375]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_basename): ext argument may be altered.</div><div class='add'>+	  [ruby-dev:24377]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): use NODE instead of 2 element arrays.</div><div class='add'>+	  [ruby-dev:24378]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_chomp_bang): StringValue() may change the</div><div class='add'>+	  receiver.  [ruby-dev:24371]</div><div class='add'>+</div><div class='add'>+Fri Oct  1 11:25:20 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/grid.rb: revive TkGrid.grid</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/pack.rb: revive TkPack.pack</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/place.rb: revive TkPlace.place</div><div class='add'>+</div><div class='add'>+Thu Sep 30 00:50:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c (get_eval_string_core): accept a Regexp object</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: fix bug on 'exit' operation</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: 'tksearch' accepts a Regexp object as a</div><div class='add'>+	  matting pattern argument</div><div class='add'>+</div><div class='add'>+Wed Sep 29 10:58:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (sort_by_i): internally used object must not be changed</div><div class='add'>+	  outside.  [ruby-dev:24368]</div><div class='add'>+</div><div class='add'>+Mon Sep 27 21:25:12 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): invoke finalizers periodically.</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): defer running finalizers.  [ruby-dev:24354]</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_finalize_deferred): run deferred finalizers.</div><div class='add'>+</div><div class='add'>+Mon Sep 27 15:01:59 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: missing ';'.</div><div class='add'>+</div><div class='add'>+Mon Sep 27 13:46:45 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h, struct.c (rb_struct_s_members, rb_struct_members): public</div><div class='add'>+	  accessors.  [ruby-dev:24342]</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object, r_object0): use accessors.</div><div class='add'>+</div><div class='add'>+Mon Sep 27 09:14:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): comparison may change the capacity.</div><div class='add'>+	  [ruby-dev:24348]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): fill should honor length argument.</div><div class='add'>+	  [ruby-dev:24346]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): should not use ptr from shared array.</div><div class='add'>+	  [ruby-dev:24345]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_accept): don't retry for EWOULDBLOCK.</div><div class='add'>+	  [ruby-talk:113807]</div><div class='add'>+</div><div class='add'>+Sun Sep 26 08:05:10 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: provides {Time,Date,DateTime}#to_{time,date,datetime}.</div><div class='add'>+</div><div class='add'>+	* sample/cal.rb: uses getoptlong instead of getopts.</div><div class='add'>+</div><div class='add'>+Sat Sep 25 18:39:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (flatten): element size might change during comparison.</div><div class='add'>+	  [ruby-dev:24343]</div><div class='add'>+</div><div class='add'>+Sat Sep 25 01:52:49 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_members): wrong call of struct_members.</div><div class='add'>+	  [ruby-dev:24333]</div><div class='add'>+</div><div class='add'>+Fri Sep 24 16:09:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): propagate DVAR_DONT_RECYCLE on termination</div><div class='add'>+	  to avoid double call to rb_gc_force_recycle(). [ruby-dev:24311]</div><div class='add'>+</div><div class='add'>+Fri Sep 24 08:29:45 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_append_print): should handle prelude.</div><div class='add'>+	  [llama@u01.gate0]</div><div class='add'>+</div><div class='add'>+	* parse.y (rb_parser_while_loop): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_subseq): original object might be modified after</div><div class='add'>+	  sharing data creation.  [ruby-dev:24327]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_replace): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (ary_make_shared): freeze shared array. [ruby-dev:24325]</div><div class='add'>+</div><div class='add'>+	* struct.c (struct_members): always check struct size and size of</div><div class='add'>+	  members list in the class.  [ruby-dev:24320]</div><div class='add'>+</div><div class='add'>+Thu Sep 23 19:48:14 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/Makefile.dev: removed.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/ripper.rb.in: moved to lib/ripper/core.rb.in.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/core.rb.in: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-ripper_rb.rb: change comment.</div><div class='add'>+</div><div class='add'>+	* test/ripper/*.rb: on__scan event removed.</div><div class='add'>+</div><div class='add'>+	* test/ripper/*.rb: event name is changed: on__XXX -&gt; on_XXX.</div><div class='add'>+</div><div class='add'>+Thu Sep 23 09:29:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_sub_bang): check if string is not modified</div><div class='add'>+	  during iteration.  [ruby-dev:24315]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_rehash): replace st_foreach() by its deep</div><div class='add'>+	  checking counterpart.  [ruby-dev:24310]</div><div class='add'>+</div><div class='add'>+Wed Sep 22 14:21:54 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: on__scan event removed.</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: event name is changed: on__XXX -&gt; on_XXX.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/ripper.rb.in: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: sync with ripper.rb.in.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/tokenizer: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/filter: new file.</div><div class='add'>+</div><div class='add'>+	* sample/ripper/colorize.rb: new file.</div><div class='add'>+</div><div class='add'>+	* sample/ripper/strip-comment.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 13:50:49 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (hash_alloc): was using tbl pointer without</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 13:38:12 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_rehash): add iteration check.  [ruby-dev:24301]</div><div class='add'>+</div><div class='add'>+	* st.c (st_foreach): add deep check.</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch): returns KeyError instead of IndexError.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_fetch): ditto.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 13:02:02 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_call_handler): workaround for Ctrl-C.</div><div class='add'>+</div><div class='add'>+Wed Sep 22 09:04:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: remove global variables ruby_eval_tree and</div><div class='add'>+	  ruby_eval_tree_begin.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_collect_bang): element size might change during</div><div class='add'>+	  comparison.  [ruby-dev:24300]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_reject_bang): ditto. [ruby-dev:24300]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_eql): ditto. [ruby-dev:24300]</div><div class='add'>+</div><div class='add'>+Wed Sep 22 00:11:12 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: Add documentation for fork()</div><div class='add'>+</div><div class='add'>+Tue Sep 21 18:29:49 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_uniq_bang): element size might change during</div><div class='add'>+	  comparison.  [ruby-dev:24298]</div><div class='add'>+</div><div class='add'>+Mon Sep 20 17:46:51 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/tokenizer.rb: fix typo.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 17:38:43 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: tokens must be reordered.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/tokenizer.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 16:58:16 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: do not delay dispatching.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/tokenizer.rb: sort tokens by right order.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 15:17:47 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper/tokenizer.rb: new file.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 15:13:52 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: test #lineno and #column.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 14:50:17 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: delayed heredocument events should be</div><div class='add'>+	  dispatched after EOF.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 14:39:42 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: adjust lineno and columns for multi-line</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: delay heredocument events until seeing</div><div class='add'>+	  end-of-line.</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: event on__heredoc_contentn -&gt;</div><div class='add'>+	  on__tstring_content.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: sync with eventids2.c.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: test it.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-ripper_rb.rb: show basename of input.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/Makefile.dev: support objdir build.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 13:22:55 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: remove Ripper#pos.</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: Ripper#column should return the column of the</div><div class='add'>+	  current token.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 12:02:41 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: unify old_lex_p and token_head.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: now \r\n is saved correctly.</div><div class='add'>+</div><div class='add'>+	* parse.y: new macro lex_goto_eol() for next change.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 11:01:55 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: adjust line number for heredoc.  [ruby-dev:24272]</div><div class='add'>+</div><div class='add'>+Mon Sep 20 04:49:22 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/ripper.rb.in: new const Ripper::PARSER_EVENT_TABLE.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/ripper.rb.in: new const Ripper::SCANNER_EVENT_TABLE.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: sync with ripper.rb.in.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 04:13:00 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: test spaces before heredoc</div><div class='add'>+	  mark.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 03:46:54 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: spaces before heredoc marker was lost.</div><div class='add'>+	  [ruby-dev:24272]</div><div class='add'>+</div><div class='add'>+	* keywords: rb_reserved_word() should be defined only in ruby</div><div class='add'>+	  core.  [ruby-dev:24272]</div><div class='add'>+</div><div class='add'>+	* lex.c: sync with keywords.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/ripper.rb.in (parse): fix typo.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: sync with ripper.rb.in.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 03:37:59 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzfile_read_raw): call readpartial at first.</div><div class='add'>+	  (Zlib::GzipReader#readpartial): new method.</div><div class='add'>+</div><div class='add'>+Mon Sep 20 00:24:19 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): do not use qsort directly.  use</div><div class='add'>+	  rb_ary_sort_bang() instead.  [ruby-dev:24291]</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_sort_by): pedantic type check added.</div><div class='add'>+	  [ruby-dev:24291]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_foreach_iter): check iter_lev after each</div><div class='add'>+	  iteration.  [ruby-dev:24289]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_and): element size might change during</div><div class='add'>+	  comparison.  [ruby-dev:24290]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_or): ditto. [ruby-dev:24292]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal): wrong fix. [ruby-dev:24286]</div><div class='add'>+</div><div class='add'>+Sat Sep 18 15:02:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_equal): element size might change during</div><div class='add'>+	  comparison.  [ruby-dev:24254]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_diff): ditto. [ruby-dev:24274]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_select): ditto. [ruby-dev:24278]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): ditto. [ruby-dev:24283]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_rindex): ditto. [ruby-dev:24275]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_initialize): element size might change during</div><div class='add'>+	  initializing block.  [ruby-dev:24284]</div><div class='add'>+</div><div class='add'>+Sat Sep 18 14:10:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): avoid memory leak and unnecessary chdir to</div><div class='add'>+	  the original directory when exception has caused in changing</div><div class='add'>+	  direcotry or within block.  thanks to Johan Holmberg</div><div class='add'>+	  &lt;holmberg@iar.se&gt; [ruby-core:03446]</div><div class='add'>+</div><div class='add'>+Fri Sep 17 20:29:33 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: add prototypes for Microsoft compiler.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (parse.obj): lex.c exists at hdrdir.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (YACC, YFLAGS, parse.c):</div><div class='add'>+	  use bison.</div><div class='add'>+</div><div class='add'>+Fri Sep 17 17:11:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_delete): element comparison might change array</div><div class='add'>+	  size. [ruby-dev:24273]</div><div class='add'>+</div><div class='add'>+	* parse.y: make ruby parser reentrant. merge ripper parser to the</div><div class='add'>+	  real one.  this change makes ruby require bison.</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_truncate): clear stdio buffer before truncating</div><div class='add'>+	  the file.  [ruby-dev:24191]</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c: use rb_obj_class() instead of CLASS_OF</div><div class='add'>+	  which might return singleton class.  [ruby-dev:24202]</div><div class='add'>+</div><div class='add'>+Fri Sep 17 16:07:09 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: improve exit operation</div><div class='add'>+</div><div class='add'>+Fri Sep 17 15:01:57 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix SEGV when (thread_)vwait or</div><div class='add'>+	  (thread_)tkwait</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add alias wait_window to wait_destroy</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: support calling 'mainloop' on slave</div><div class='add'>+	  interpreters (however, the 'real' eventloop must be run on the</div><div class='add'>+	  Default Master IP)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: follow the changes of ext/tk/lib/multi-tk.rb</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/remote-ip_sample2.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkoptdb-safeTk.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu Sep 16 18:12:13 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI#start): should set REMOTE_USER</div><div class='add'>+	  to request.user attribute.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::FileHandler#initialize): should expand</div><div class='add'>+	  the pathname of document root directory.</div><div class='add'>+</div><div class='add'>+Thu Sep 16 15:49:28 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_intern): protect string argument from GC.</div><div class='add'>+	  [ruby-core:03411]</div><div class='add'>+</div><div class='add'>+Wed Sep 15 20:22:23 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkoptdb-safeTk.rb: fix a bug depend on the changes</div><div class='add'>+	  of MultiTkIp</div><div class='add'>+</div><div class='add'>+Tue Sep 14 23:54:11 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string was en-bugged by</div><div class='add'>+	  the previous changes.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 23:45:44 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::TextFormatter.for):</div><div class='add'>+	  Add Eric Hodel's simpleformatter.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 22:11:08 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: Add rdoc.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 20:24:49 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y [ripper]: space event is on__sp, not on__lwsp.</div><div class='add'>+	  [ruby-dev:24257]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend (ripper.o): No action is needed.</div><div class='add'>+	  [ruby-dev:24260]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: Borland make does not accept pipes in</div><div class='add'>+	  Makefile rules. [ruby-dev:24589]</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: separate rules for developpers.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/Makefile.dev: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/MANIFEST: add Makefile.dev.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-eventids1.rb: read from file, not</div><div class='add'>+	  stdin.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb: clean ripper.E.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-ripper_rb.rb: #include ids1/ids2</div><div class='add'>+	  function was lost.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-ripper_rb.rb: SCANNER_EVENTS wrongly</div><div class='add'>+	  contained parser events.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 14 16:59:37 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix SEGV</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: improve safe-level handling of argument proc</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/multi-ip_sample.rb: rename of old 'safe-tk.rb'</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/safe-tk.rb: new sample script</div><div class='add'>+</div><div class='add'>+Mon Sep 13 21:33:40 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_to_s): add optional</div><div class='add'>+	  second argument to specify the output format (see also</div><div class='add'>+	   X509_NAME_print_ex).</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_init): new constants:</div><div class='add'>+	  OpenSSL::X509::Name::COMPAT, OpenSSL::X509::Name::RFC2253,</div><div class='add'>+	  OpenSSL::X509::ONELINE, OpenSSL::X509::MULTILINE.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name::RFC2253DN):</div><div class='add'>+	  new module to provide the parse for RFC2253 DN format.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name.parse_rfc2253):</div><div class='add'>+	  new method to parse RFC2253 DN format.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 19:16:33 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_copy_prev): need frame_dup().  [ruby-dev:24103]</div><div class='add'>+</div><div class='add'>+Mon Sep 13 16:23:27 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp.new_master and new_slave accept</div><div class='add'>+	  safe-level value argument</div><div class='add'>+</div><div class='add'>+Mon Sep 13 10:48:37 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_getpid): don't need to use _getpid() on</div><div class='add'>+	  mswin32 and mingw32.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 10:22:05 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (nil_inspect): fix typo.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 09:29:58 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: (nmake hack) prepend "./" to ripper.c to</div><div class='add'>+	  avoid {$(srcdir)}.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 06:43:42 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-parse-event-ids.rb: does not use getopts.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-scan-event-ids.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 02:42:28 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup: add ripper.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.atheos: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.dj: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.emx: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.nt: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.x68: ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 02:26:31 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/ripper: ripper extension added.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/MANIFEST: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/README: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/depend: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/eventids2.c: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/ripper.rb.in: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/lib/ripper.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/check-event-arity.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/check-event-coverage.sh: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/check-scanner-event-coverage.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/list-called-events.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/src_rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/test/validate.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-eventids1.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-param-macros.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/generate-ripper_rb.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-parse-event-ids.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/list-scan-event-ids.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/preproc.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/ripper/tools/strip.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ripper: ripper tests added.</div><div class='add'>+</div><div class='add'>+	* test/ripper/dummyparser.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_parser_events.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_scanner_events.rb: new file.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 01:03:02 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: improve control of preserv/release tcltkip</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: store original 'exit' command</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c: fix(?) SEGV</div><div class='add'>+</div><div class='add'>+Mon Sep 13 00:22:53 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: fix file header.</div><div class='add'>+</div><div class='add'>+Mon Sep 13 00:20:39 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: ripper merged.</div><div class='add'>+</div><div class='add'>+	* lex.c: ditto.</div><div class='add'>+</div><div class='add'>+	* keywords: ditto.</div><div class='add'>+</div><div class='add'>+Sun Sep 12 23:53:17 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strdup): remove unnecessary code. (xmalloc never</div><div class='add'>+	  returns NULL.)</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_getcwd): fix memory leak on failure.</div><div class='add'>+</div><div class='add'>+Sun Sep 12 02:41:58 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add TclTkIp#allow_ruby_exit? and</div><div class='add'>+	  allow_ruby_exit=</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/MANUAL.euc: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/MANUAL.eng: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix some reasons of SEGV</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 11 16:09:46 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Fix up cross-file class merging.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 20:18:05 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_merge_tklist): fix suspicious</div><div class='add'>+	  pointer conversion.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 19:16:24 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: bccwin32 port starts to use RTL dll.</div><div class='add'>+	  (need to rebuild all) [ruby-dev:24138]</div><div class='add'>+</div><div class='add'>+	* win32/win32.{h,c}: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 15:55:59 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir_p): should pass mode argument to</div><div class='add'>+	  Dir.mkdir. [ruby-dev:24242]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: test it.</div><div class='add'>+</div><div class='add'>+Fri Sep 10 02:43:54 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/kilmer.rb: James Buck's</div><div class='add'>+	  patch for call-seq.</div><div class='add'>+</div><div class='add'>+Thu Sep  9 13:58:56 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): change flag value for setting</div><div class='add'>+	  'argv' and 'argv0' variable</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: follow changes of multi-tk.rb</div><div class='add'>+</div><div class='add'>+Thu Sep  9 11:46:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_classes): Allow</div><div class='add'>+	  spaces aroun parameter to define_method_under (James Buck)</div><div class='add'>+</div><div class='add'>+Wed Sep  8 18:44:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_write): zero fill a gap if exsts.</div><div class='add'>+	  [ruby-dev:24190]</div><div class='add'>+</div><div class='add'>+Wed Sep  8 15:19:49 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_init): cannot create a IP at level 4</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: improve 'exit' operation, security check,</div><div class='add'>+	  and error treatment</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: allow a trusted slave IP to create slave IPs</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/listbox.rb: add TkListbox#value, value=, clear,	and</div><div class='add'>+	  erase</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: add TkText#clear and erase</div><div class='add'>+</div><div class='add'>+Tue Sep  7 15:17:49 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): break immediately if a</div><div class='add'>+	  socket is non-blocking.  [ruby-talk:111654]</div><div class='add'>+</div><div class='add'>+Tue Sep  7 12:48:22 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (config.h): add fcntl.</div><div class='add'>+</div><div class='add'>+	* win32/win32.[ch] (fcntl): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_connect): support nonblocking mode.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (wait_connectable, ruby_connect): support</div><div class='add'>+	  nonblocking connect on various platforms.</div><div class='add'>+</div><div class='add'>+Mon Sep  6 11:00:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_chdir): the patch to shut up false warning when</div><div class='add'>+	  exception occurred within a block.  a patch was given from Johan</div><div class='add'>+	  Holmberg &lt;holmberg at iar.se&gt;.  [ruby-core:03292]</div><div class='add'>+</div><div class='add'>+Mon Sep  6 10:57:40 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menu.rb(TkOptionMenubutton#insert): call correct method</div><div class='add'>+</div><div class='add'>+Mon Sep  6 07:51:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (cvar_cbase): singletons should refer to outer cvar scope.</div><div class='add'>+	  [ruby-dev:24223]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should preserve previous ruby_wrapper value.</div><div class='add'>+	  [ruby-dev:24226]</div><div class='add'>+</div><div class='add'>+Sat Sep  4 01:14:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (cvar_cbase): class variables cause SEGV in</div><div class='add'>+	  instance_eval() for fixnums and symbols. [ruby-dev:24213]</div><div class='add'>+</div><div class='add'>+Fri Sep  3 17:47:58 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (make_struct): remove redefining constant when</div><div class='add'>+	  conflict.  [ruby-dev:24210]</div><div class='add'>+</div><div class='add'>+Fri Sep  3 11:31:44 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Tk.after makes TkCore::INTERP.tk_cmd_tbl grow</div><div class='add'>+	  [ruby-dev:24207]</div><div class='add'>+</div><div class='add'>+Fri Sep  3 02:12:48 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix typo [ruby-talk:111266]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: fix typo</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: improve safe-level treatment on slave IPs</div><div class='add'>+</div><div class='add'>+Fri Sep  3 01:54:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): extact target prefix from Makefiles.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: already built-in libraries satisfy dependencies.</div><div class='add'>+	  [ruby-dev:24028]</div><div class='add'>+</div><div class='add'>+Wed Sep  1 21:16:50 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/spinbox.rb: fix typo</div><div class='add'>+</div><div class='add'>+Wed Sep  1 19:28:37 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): label cannot precede variable declarations.</div><div class='add'>+</div><div class='add'>+Tue Aug 31 18:20:49 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c (cbsubst_init): fix memory leak</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c (cbsubst_get_all_subst_keys): fix SEGV</div><div class='add'>+</div><div class='add'>+Tue Aug 31 16:04:22 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_delete): when a tcltkip is deleted,</div><div class='add'>+	  destroy its root widget</div><div class='add'>+</div><div class='add'>+Tue Aug 31 12:30:36 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (del_root): fix SEGV</div><div class='add'>+</div><div class='add'>+Mon Aug 30 21:50:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: Add RDoc for Module.included.</div><div class='add'>+</div><div class='add'>+Mon Aug 30 23:11:06 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_driver.rb (and others): ri now merges documentation</div><div class='add'>+	  if it finds the same class in multiple places.</div><div class='add'>+</div><div class='add'>+Mon Aug 30 22:40:30 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: 'restart' method accepts arguments</div><div class='add'>+</div><div class='add'>+Mon Aug 30 15:10:46 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (GNU/k*BSD): fixed FTBFS on GNU/k*BSD. [ruby-dev:24051]</div><div class='add'>+</div><div class='add'>+Sun Aug 29 14:08:56 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: compile error on bcc32 [ruby-dev:24081]</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: MultiTkIp#eval_string does not work</div><div class='add'>+</div><div class='add'>+Sat Aug 28 23:04:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_and): protect parameters from GC.</div><div class='add'>+	  [ruby-talk:110664]</div><div class='add'>+</div><div class='add'>+Fri Aug 27 12:13:50 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (Init_stringio): add StringIO#readpartial as</div><div class='add'>+	  an alias for StringIO#sysread.</div><div class='add'>+</div><div class='add'>+Fri Aug 27 10:14:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec): strip trailing spaces.  [ruby-dev:24143]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): ditto.</div><div class='add'>+</div><div class='add'>+Thu Aug 26 04:38:29 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (return_jump): Minor typo in error message. Now reads</div><div class='add'>+	  "return can't jump across threads".</div><div class='add'>+</div><div class='add'>+Wed Aug 25 15:18:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): Exception#to_str is no longer defined.</div><div class='add'>+</div><div class='add'>+Wed Aug 25 11:39:10 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_equal): exceptions are equal if they share same</div><div class='add'>+	  class, message and backtrace. [ruby-talk:110354]</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_mesg_equal): ditto.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 16:41:48 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::FileStore#initialize): do not</div><div class='add'>+	  use a session id as a filename.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session/pstore.rb (CGI::Session::PStore#initialize): use</div><div class='add'>+	  Dir::tmpdir.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 14:32:17 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::FileStore#initialize): untaint</div><div class='add'>+	  session id after check.</div><div class='add'>+</div><div class='add'>+Tue Aug 24 08:57:51 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): d2i</div><div class='add'>+	  functions may replace the pointer indicated by the first argument.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.</div><div class='add'>+</div><div class='add'>+Mon Aug 23 12:43:32 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Config.default_config_hash): when multiple domains</div><div class='add'>+	  are set, Win32::Resolv.get_resolv_info returns Array.</div><div class='add'>+</div><div class='add'>+Sun Aug 22 16:27:38 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read):</div><div class='add'>+	  - should return an empty string if specified length to read is 0.</div><div class='add'>+	  - should check for pending data and wait for fd before reading.</div><div class='add'>+	  - call underlying IO's sysread if SSL session is not started.</div><div class='add'>+	  [ruby-dev:24072], [ruby-dev:24075]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_write):</div><div class='add'>+	  - call underlying IO's syswrite if SSL session is not started.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_pending): new method</div><div class='add'>+	  OpenSSL::SSL#pending.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: should not use select.</div><div class='add'>+</div><div class='add'>+Sun Aug 22 01:10:36 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#proxy_connect):</div><div class='add'>+	  should call :ProxyContentHandler before finishing CONNECT.</div><div class='add'>+</div><div class='add'>+Sat Aug 21 06:41:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb (find_tcl, find_tk): find stub library.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (arg_config, with_config): deal with '-' and '_'</div><div class='add'>+	  uniformly.  [ruby-dev:24118]</div><div class='add'>+</div><div class='add'>+Fri Aug 20 14:49:42 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_writable): no need to check read buffer if</div><div class='add'>+	  already changed to write mode.</div><div class='add'>+</div><div class='add'>+Fri Aug 20 11:46:43 2004  UENO Katsuhiro  &lt;katsu@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: GzipReader#ungetc caused crc error.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 16:29:45 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: Fail to treat a hash value of 'font' option.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bindinfo cannot return '%' substiturion infomation.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/menu.rb: typo bug.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 15:15:24 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (free_dir): fix memory leak.  reported by yamamoto</div><div class='add'>+	  madoka.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 09:19:27 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, win32/Makefile.sub (LIBS): need to link shell32</div><div class='add'>+	  library for SH* functions on mswin32 and mingw32.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub (LIBS): need to link ceshell library for SH*</div><div class='add'>+	  functions on mswince.</div><div class='add'>+</div><div class='add'>+Thu Aug 19 03:07:00 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/baseemitter.rb: folding now handles double-quoted strings,</div><div class='add'>+	  fixed problem with extra line feeds at end of folding, whitespace</div><div class='add'>+	  opening scalar blocks.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: subtelties in handling strings with</div><div class='add'>+	  non-printable characters and odd whitespace patterns.</div><div class='add'>+</div><div class='add'>+Wed Aug 18 23:44:20 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (rbuf_fill): OpenSSL::SSLSocket has its own</div><div class='add'>+	  buffer, select(2) might not work. [ruby-dev:24072]</div><div class='add'>+</div><div class='add'>+Wed Aug 18 17:10:12 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c (ruby_tcltk_stubs): need to call</div><div class='add'>+	  Tcl_FindExecutable() for Tcl/Tk 8.4.</div><div class='add'>+</div><div class='add'>+Wed Aug 18 12:52:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_eval): evaluates under special singleton</div><div class='add'>+	  classes as for special constants.</div><div class='add'>+</div><div class='add'>+Wed Aug 18 11:22:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (init_env): initialize HOME and USER environment</div><div class='add'>+	  variables unless set.</div><div class='add'>+</div><div class='add'>+Wed Aug 18 10:17:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (bind_eval): new method. [RCR 251]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_clear): new method. [ruby-dev:24104]</div><div class='add'>+</div><div class='add'>+Tue Aug 17 17:20:59 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): should clear allocated OpenFile.  pointed</div><div class='add'>+	  out by Guy Decoux. [ruby-core:03288]</div><div class='add'>+</div><div class='add'>+Tue Aug 17 01:36:32 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb: Remove extra indent. Tidy 'ri' option</div><div class='add'>+	  parsing so RDoc::usage plays better with OptionParser.</div><div class='add'>+</div><div class='add'>+Sat Aug 14 02:48:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/usage.rb: Added. Allows command line programs</div><div class='add'>+	  to report usage using their initial RDoc comment.</div><div class='add'>+</div><div class='add'>+Sat Aug 14 01:25:48 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: re2c no longer compiled with bit vectors.  caused</div><div class='add'>+	  problems for non-ascii characters. [ruby-core:03280]</div><div class='add'>+	* ext/syck/implicit.c: ditto.</div><div class='add'>+	* ext/syck/bytecode.c: ditto.</div><div class='add'>+</div><div class='add'>+Fri Aug 13 12:55:20 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.parse_range_header):</div><div class='add'>+	  fix regex for range-spec.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::DefaultFileHandler#make_partial_content):</div><div class='add'>+	  multipart/byteranges response was broken.</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb: refine example code.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 10:54:17 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubyio.h (rb_eof_error): should mark as NORETURN.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (make_cmdvector): adjust escaped successive</div><div class='add'>+	  double-quote handling.</div><div class='add'>+</div><div class='add'>+Thu Aug 12 01:53:10 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_buffered_data): extracted from rb_io_fread.</div><div class='add'>+	  (io_readpartial): new method IO#readpartial.</div><div class='add'>+	  [ruby-dev:24055]</div><div class='add'>+</div><div class='add'>+Wed Aug 11 17:17:50 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RPATHFLAG): stop setting RPATHFLAG on Interix.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 15:03:20 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/erbhandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::ERBHandler#do_GET): should select media type</div><div class='add'>+	  by suffix of script filename.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 12:51:43 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_s_glob): Roll in Austin Ziegler's Dir.glob and</div><div class='add'>+	  fnmatch updates.</div><div class='add'>+</div><div class='add'>+Mon Aug  9 06:33:06 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cp_r): copies symlink to symlink, except</div><div class='add'>+	  root entries of cp_r.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method FileUtils.copy_entry.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: more cp_r tests.</div><div class='add'>+</div><div class='add'>+Sun Aug  8 00:43:31 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/implicit.c: added sexagecimal float#base60.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (yaml_org_handler): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/token.c: indentation absolutely ignored when processing flow</div><div class='add'>+	  collections.  plain scalars are trimmed if indentation follows in</div><div class='add'>+	  an ambiguous flow collection.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 03:08:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (proc_daemon): new method.  should be modified for</div><div class='add'>+	  platforms without /dev/null.</div><div class='add'>+</div><div class='add'>+Sat Aug  7 00:50:01 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: Zlib::GzipReader#read(0) returns "" instead of nil.</div><div class='add'>+</div><div class='add'>+Wed Aug  4 13:26:00 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_bytes0): optimize out read(0). [ruby-talk:108276]</div><div class='add'>+</div><div class='add'>+Tue Aug  3 13:49:12 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/namespace.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/treectrl/tktreectrl.rb: add Tk::TreeCtrl.loupe</div><div class='add'>+</div><div class='add'>+Mon Aug  2 23:33:48 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb (test_fnmatch): added more tests.</div><div class='add'>+</div><div class='add'>+Mon Aug  2 18:04:21 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/msgcat.rb (set_translation): bug fix (fail to set</div><div class='add'>+	  trans_str to the same as src_str when trans_str is not given.)</div><div class='add'>+</div><div class='add'>+Mon Aug  2 17:40:44 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (blk_free): fixed serious memory leak. [ruby-dev:24013]</div><div class='add'>+</div><div class='add'>+Mon Aug  2 11:53:06 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): Fix infinite recursion</div><div class='add'>+	  looking up some top level symbols (batsman)</div><div class='add'>+</div><div class='add'>+Mon Aug  2 11:48:29 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Allow '.'s in</div><div class='add'>+	  variable names to support SWIG generated files (Hans Fugal)</div><div class='add'>+</div><div class='add'>+Sat Jul 31 23:08:00 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): stupid mistakes fixed. [ruby-dev:24006]</div><div class='add'>+</div><div class='add'>+Sat Jul 31 17:39:47 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-expr-beg, ruby-parse-partial,</div><div class='add'>+	  ruby-calculate-indent, ruby-move-to-block, ruby-forward-sexp,</div><div class='add'>+	  ruby-backward-sexp): keywords must match word-wise.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 13:37:51 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): avoid unnecessary method invocations.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 05:35:37 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: exceptions were using an older</div><div class='add'>+	  YAML.object_maker. [ruby-core:03080]</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c (sycklex_yaml_utf8): using newline_len to</div><div class='add'>+	  handline CR-LFs.  "\000" was showing up on folded blocks which</div><div class='add'>+	  stopped at EOF.</div><div class='add'>+</div><div class='add'>+Sat Jul 31 01:25:11 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): call is_defined() before invoking</div><div class='add'>+	  rb_eval().  [ruby-talk:107867]</div><div class='add'>+</div><div class='add'>+Fri Jul 30 16:10:54 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_fromUTF8_core): raise ArgumentError when</div><div class='add'>+	  the unknown encoding name is given.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_toUTF8_core): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertfrom): bug fix.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (Tk::Encoding.encoding_convertto): ditto.</div><div class='add'>+</div><div class='add'>+Wed Jul 28 18:59:17 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::initialize): remove at_exit code for CGI_PARAMS</div><div class='add'>+	  and CGI_COOKIES.  they will no longer be used.</div><div class='add'>+</div><div class='add'>+Wed Jul 28 15:44:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): should call rb_call_super() directly for</div><div class='add'>+	  visibility overriding.  [ruby-dev:23989]</div><div class='add'>+</div><div class='add'>+Wed Jul 28 01:04:44 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* env.h: remove argv from ruby_frame.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): no more copy on write.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): can receive *rest by specifying negative</div><div class='add'>+	  argc.  (-1 means 0 arg and *rest, -2 means 1 arg and *rest...)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): properly set frame's argc counter.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_mark_frame): need not to mark frame's argv</div><div class='add'>+</div><div class='add'>+	* gc.c (run_final): wrong order of data. [ruby-dev:23984]</div><div class='add'>+</div><div class='add'>+Tue Jul 27 07:05:04 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): copy on write for argument local variable</div><div class='add'>+	  assignment.</div><div class='add'>+</div><div class='add'>+	* eval.c (assign): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): update ruby_frame-&gt;argv with the default</div><div class='add'>+	  value used for the optional arguments.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): "===" calls rb_obj_equal() directly.</div><div class='add'>+	  [ruby-list:39937]</div><div class='add'>+</div><div class='add'>+Mon Jul 26 11:22:55 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick::HTTPUtils.escape): should</div><div class='add'>+	  escape space.</div><div class='add'>+</div><div class='add'>+Sun Jul 25 10:56:28 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.{h,c} (rb_w32_{f,fd,fs}open): workaround for bcc32's</div><div class='add'>+	  {f,fd,fs}open bug. set errno EMFILE and EBADF. [ruby-dev:23963]</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: fix method duplication.</div><div class='add'>+</div><div class='add'>+Sat Jul 24 13:32:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (rb_range_beg_len): returns Qnil only when "beg" points</div><div class='add'>+	  outside of a range.  No boundary check for "end".</div><div class='add'>+</div><div class='add'>+Fri Jul 23 16:40:25 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final): should not disclose NODE* to Ruby world.</div><div class='add'>+	  [ruby-dev:23957]</div><div class='add'>+</div><div class='add'>+Fri Jul 23 08:52:22 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (disconnected?): new method.</div><div class='add'>+</div><div class='add'>+Thu Jul 22 16:41:54 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb (CGI::Session::FileStore#update): sets the</div><div class='add'>+	  permission of the session data file to 0600.</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session/pstore.rb (CGI::Session::Pstore#initialize):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul 19 00:53:46 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb</div><div class='add'>+	  (WEBrick::HTTPServlet::CGIhandler#do_GET): set SystemRoot environment</div><div class='add'>+	  variable to CGI process on Windows native platforms. [ruby-dev:23936]</div><div class='add'>+</div><div class='add'>+Sun Jul 18 16:14:29 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/msgcat.rb (TkMsgCatalog.callback): bug fix</div><div class='add'>+	  ( wrong number of argument )</div><div class='add'>+</div><div class='add'>+Sun Jul 18 08:13:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): remove extra sign digit.</div><div class='add'>+</div><div class='add'>+Sun Jul 18 03:19:14 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (bracket): use NULL instead of 0.</div><div class='add'>+</div><div class='add'>+Sun Jul 18 02:35:30 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (receive_responses): return if a LOGOUT response</div><div class='add'>+	  received.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 23:59:01 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (send_string_data): wait command continuation</div><div class='add'>+	  requests before sending octet data of literals.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 23:54:59 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: TkVariable#ref returns a TkVariable object</div><div class='add'>+</div><div class='add'>+Sat Jul 17 22:04:44 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/ldap.rb: method hierarchical? should be in URI::LDAP.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 18:29:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): not to show same error messages twice.</div><div class='add'>+</div><div class='add'>+Sat Jul 17 14:18:11 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match_m): String#match should also take</div><div class='add'>+	  optional argument.  [ruby-core:03205]</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_match_m): add optional second argugment "pos" to</div><div class='add'>+	  specify match start point.  [ruby-core:03203]</div><div class='add'>+</div><div class='add'>+Sat Jul 17 13:13:32 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex::identify_string): %s string do not</div><div class='add'>+	  process expression interpolation.  [ruby-talk:106691]</div><div class='add'>+</div><div class='add'>+Sat Jul 17 05:26:27 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb: Incorporate Micheal Neumann's</div><div class='add'>+	  client-side imagemao patch</div><div class='add'>+</div><div class='add'>+Sat Jul 17 01:57:03 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): th-&gt;thread should be initialized to NULL.</div><div class='add'>+	  [ruby-talk:106657]  The solution was found by Guy Decoux.</div><div class='add'>+</div><div class='add'>+Fri Jul 16 22:30:28 2004  Michael Neumann  &lt;mneumann@ntecs.de&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_dev_major): new methods File::Stat#dev_major and</div><div class='add'>+	  #dev_minor. [ruby-core:03195]</div><div class='add'>+</div><div class='add'>+Fri Jul 16 11:17:38 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exit_initialize): use EXIT_SUCCESS instead of 0.</div><div class='add'>+	  [ruby-dev:23913]</div><div class='add'>+</div><div class='add'>+	* error.c (exit_success_p): new method SystemExit#success?.</div><div class='add'>+	  [ruby-dev:23912]</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_initialize): initialization for subclasses.</div><div class='add'>+	  [ruby-dev:23912]</div><div class='add'>+</div><div class='add'>+Thu Jul 15 23:53:38 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#warn, OptionParser#abort): Exception</div><div class='add'>+	  no longer has to_str method.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 22:59:48 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb: added dir_config for curses, ncurses,</div><div class='add'>+	  termcap.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 20:44:46 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* class.c: rdoc patch</div><div class='add'>+</div><div class='add'>+Thu Jul 15 14:12:34 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::load_file, YAML::parse_file): added.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: re2c compiled with bit vectors now.</div><div class='add'>+	* ext/syck/implicit.c: ditto.</div><div class='add'>+	* ext/syck/bytecode.c: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jul 15 10:15:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/, ext/tcltklib/: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: better operation for SIGINT when processing</div><div class='add'>+	  callbacks.</div><div class='add'>+	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: ditto.</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/validation.rb: add Tk::ValidateConfigure.__def_validcmd</div><div class='add'>+	  to define validatecommand methods easier</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (_genobj_for_tkwidget): support autoload Tk ext</div><div class='add'>+	  classes</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb and so on: remove the parent widget type</div><div class='add'>+	  check for items (e.g. canvas items; depends on the class) to</div><div class='add'>+	  avoid some troubles on Tk extension widget class definition.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/: add Iwidget and TkTable extension support</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkextlib/: add samples of Iwidget and TkTable</div><div class='add'>+</div><div class='add'>+Wed Jul 14 23:49:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_min_by): new method Enum#min_by.  added Enum#max_by</div><div class='add'>+	  as well.</div><div class='add'>+</div><div class='add'>+Wed Jul 14 18:05:21 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1cons_to_der): fix type of</div><div class='add'>+	  argument. [ruby-dev:23891]</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_x509store.rb: prune tests for CRL checking</div><div class='add'>+	  unless X509::V_FLAG_CRL_CHECK is defined.</div><div class='add'>+</div><div class='add'>+Wed Jul 14 12:20:05 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): should not convert string in the form of</div><div class='add'>+	  "-I.FE-X" which both "I" and "F" are ommitted. [ruby-dev:23883]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb (test_strtod): add test for bug fix.</div><div class='add'>+</div><div class='add'>+Wed Jul 14 00:33:48 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: rdoc patch. merged patch from Johan Holmberg</div><div class='add'>+	  &lt;holmberg@iar.se&gt; [ruby-core:3170]</div><div class='add'>+</div><div class='add'>+Tue Jul 13 19:39:12 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic#merge_path):</div><div class='add'>+	  "URI('http://www.example.com/foo/..') + './'" should return</div><div class='add'>+	  "URI('http://www.example.com/')".  [ruby-list:39838]</div><div class='add'>+	  "URI('http://www.example.com/') + './foo/bar/..'" should return</div><div class='add'>+	  "URI('http://www.example.com/foo/')".  [ruby-list:39844]</div><div class='add'>+</div><div class='add'>+	* test/uri/test_generic.rb (TestGeneric#test_merge): added tests.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 15:48:56 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): Do not add $(libdir) to $LIBPATH in</div><div class='add'>+	   extmk mode.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dir_config): Prepend a new library path instead of</div><div class='add'>+	  appending so it is tried first.</div><div class='add'>+</div><div class='add'>+Tue Jul 13 00:50:48 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Support call-seq: for Ruby files.</div><div class='add'>+</div><div class='add'>+Mon Jul 12 21:20:51 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* html_generator.rb: Support hyperlinks of the form {any text}[xxx]</div><div class='add'>+	  as well as stuff[xxx]</div><div class='add'>+</div><div class='add'>+Sat Jul 10 09:30:24 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/test_struct.rb: use qualified built-in class name</div><div class='add'>+	  (::Struct) to avoid name crash.</div><div class='add'>+</div><div class='add'>+Sat Jul 10 04:21:56 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: better operation for SIGINT when processing</div><div class='add'>+	  callbacks.</div><div class='add'>+	* ext/tk/lib/tk/msgcat.rb: ditto.</div><div class='add'>+	* ext/tk/lib/tk/variable.rb: ditto.</div><div class='add'>+	* ext/tk/lib/tk/timer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/validation.rb (__def_validcmd):  add a module</div><div class='add'>+	  function of Tk::ValidateConfigure to define validatecommand</div><div class='add'>+	  methods easier</div><div class='add'>+</div><div class='add'>+Fri Jul  9 22:18:59 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, enum.c, pack.c: rdoc patch from Johan Holmberg</div><div class='add'>+	  &lt;holmberg@iar.se&gt; [ruby-core:3132] [ruby-core:3136]</div><div class='add'>+</div><div class='add'>+	* numeric.c: rdoc patch.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 19:26:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::HTTPS#proxy_open): raise ArgumentError to</div><div class='add'>+	  notice https is not supported.</div><div class='add'>+</div><div class='add'>+Fri Jul  9 14:28:54 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_raise): accept third argument as well as</div><div class='add'>+	  Kernel#raise, and evaluate the arguments to create an exception in</div><div class='add'>+	  the caller's context.  [ruby-talk:105507]</div><div class='add'>+</div><div class='add'>+Fri Jul  9 01:47:08 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib: bug fix</div><div class='add'>+	* ext/tk/lib/tkextlib/itcl: add [incr Tcl] support</div><div class='add'>+	* ext/tk/lib/tkextlib/itk: add [incr Tk] support</div><div class='add'>+	* ext/tk/lib/tkextlib/iwidgets: midway point of [incr Widgets] support</div><div class='add'>+	* ext/tk/sample/tkextlib/iwidgets: very simple examples of</div><div class='add'>+	  [incr Widgets]</div><div class='add'>+</div><div class='add'>+Thu Jul  8 19:27:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_stack_end_address): detect stack end address</div><div class='add'>+	  variable supplied by system.  [ruby-core:03115]</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): use system provided address if possible.</div><div class='add'>+</div><div class='add'>+Thu Jul  8 00:05:23 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::initialize): got out code of</div><div class='add'>+	  generating tmpname.  [ruby-dev:23832][ruby-dev:23837]</div><div class='add'>+</div><div class='add'>+Wed Jul  7 02:31:41 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/{rss,parser,0.9,1.0,2.0}.rb: supported RSS 0.9x/2.0</div><div class='add'>+	  validation and validation which disregard order of elements.</div><div class='add'>+	* test/rss/test_parser.rb: added tests for RSS 0.9x/2.0</div><div class='add'>+	  validation.</div><div class='add'>+	* test/rss/{test_trackback,rss-testcase}.rb: fixed no good method</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+Wed Jul  7 00:48:34 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tktrans.rb,</div><div class='add'>+	  ext/tk/lib/tkextlib/treectrl.rb: fix syntax errors.</div><div class='add'>+</div><div class='add'>+Tue Jul  6 18:38:45 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib: improve framework of developping Tcl/Tk extension</div><div class='add'>+	  wrappers</div><div class='add'>+</div><div class='add'>+Mon Jul  5 23:56:42 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/{trackback,syndication,dublincore,content}.rb: worked</div><div class='add'>+	  with ruby 1.6 again.</div><div class='add'>+</div><div class='add'>+	* test/rss/rss-assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+Mon Jul  5 22:54:39 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (Kernel#URI): new global method for parsing URIs.</div><div class='add'>+</div><div class='add'>+Mon Jul  5 09:02:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_yield, rb_f_catch): 4th argument to rb_yield_0()</div><div class='add'>+	  is a set of bit flags.  [ruby-dev:23859]</div><div class='add'>+</div><div class='add'>+Mon Jul  5 01:20:17 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb(DRbConn self.open): If socket pool is full, close</div><div class='add'>+	  the socket whose last-access-time is oldest. (and add new one)</div><div class='add'>+	  [ruby-dev:23860]</div><div class='add'>+</div><div class='add'>+Sun Jul  4 12:24:50 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: added copyright header.</div><div class='add'>+</div><div class='add'>+Sat Jul  3 22:25:27 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* added files:</div><div class='add'>+	  * lib/soap/header/*</div><div class='add'>+	  * lib/soap/rpc/httpserver.rb</div><div class='add'>+	  * lib/wsdl/soap/cgiStubCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/classDefCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/classDefCreatorSupport.rb</div><div class='add'>+	  * lib/wsdl/soap/clientSkeltonCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/driverCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/mappingRegistryCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/methodDefCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/servantSkeltonCreator.rb</div><div class='add'>+	  * lib/wsdl/soap/standaloneServerStubCreator.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/enumeration.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/simpleRestriction.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/simpleType.rb</div><div class='add'>+	  * lib/xsd/codegen/*</div><div class='add'>+	  * lib/xsd/codegen.rb</div><div class='add'>+	  * sample/soap/authheader/*</div><div class='add'>+	  * sample/soap/raa2.4/*</div><div class='add'>+	  * sample/soap/ssl/*</div><div class='add'>+	  * sample/soap/swa/*</div><div class='add'>+	  * sample/soap/whois.rb</div><div class='add'>+	  * sample/wsdl/raa2.4/*</div><div class='add'>+	  * test/soap/header/*</div><div class='add'>+	  * test/soap/ssl/*</div><div class='add'>+	  * test/soap/struct/*</div><div class='add'>+	  * test/soap/swa/*</div><div class='add'>+	  * test/soap/wsdlDriver/*</div><div class='add'>+	  * test/wsdl/multiplefault.wsdl</div><div class='add'>+	  * test/wsdl/simpletype/*</div><div class='add'>+	  * test/wsdl/test_multiplefault.rb</div><div class='add'>+</div><div class='add'>+	* modified files:</div><div class='add'>+	  * lib/soap/baseData.rb</div><div class='add'>+	  * lib/soap/element.rb</div><div class='add'>+	  * lib/soap/generator.rb</div><div class='add'>+	  * lib/soap/netHttpClient.rb</div><div class='add'>+	  * lib/soap/parser.rb</div><div class='add'>+	  * lib/soap/property.rb</div><div class='add'>+	  * lib/soap/soap.rb</div><div class='add'>+	  * lib/soap/streamHandler.rb</div><div class='add'>+	  * lib/soap/wsdlDriver.rb</div><div class='add'>+	  * lib/soap/encodingstyle/handler.rb</div><div class='add'>+	  * lib/soap/encodingstyle/literalHandler.rb</div><div class='add'>+	  * lib/soap/encodingstyle/soapHandler.rb</div><div class='add'>+	  * lib/soap/mapping/factory.rb</div><div class='add'>+	  * lib/soap/mapping/mapping.rb</div><div class='add'>+	  * lib/soap/mapping/registry.rb</div><div class='add'>+	  * lib/soap/mapping/rubytypeFactory.rb</div><div class='add'>+	  * lib/soap/mapping/wsdlRegistry.rb</div><div class='add'>+	  * lib/soap/rpc/cgistub.rb</div><div class='add'>+	  * lib/soap/rpc/driver.rb</div><div class='add'>+	  * lib/soap/rpc/proxy.rb</div><div class='add'>+	  * lib/soap/rpc/router.rb</div><div class='add'>+	  * lib/soap/rpc/soaplet.rb</div><div class='add'>+	  * lib/soap/rpc/standaloneServer.rb</div><div class='add'>+	  * lib/wsdl/data.rb</div><div class='add'>+	  * lib/wsdl/definitions.rb</div><div class='add'>+	  * lib/wsdl/operation.rb</div><div class='add'>+	  * lib/wsdl/parser.rb</div><div class='add'>+	  * lib/wsdl/soap/definitions.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/complexContent.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/complexType.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/data.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/parser.rb</div><div class='add'>+	  * lib/wsdl/xmlSchema/schema.rb</div><div class='add'>+	  * lib/xsd/datatypes.rb</div><div class='add'>+	  * lib/xsd/qname.rb</div><div class='add'>+	  * sample/soap/sampleStruct/server.rb</div><div class='add'>+	  * sample/wsdl/amazon/AmazonSearch.rb</div><div class='add'>+	  * sample/wsdl/amazon/AmazonSearchDriver.rb</div><div class='add'>+	  * test/soap/test_property.rb</div><div class='add'>+	  * test/soap/calc/test_calc_cgi.rb</div><div class='add'>+	  * test/wsdl/test_emptycomplextype.rb</div><div class='add'>+</div><div class='add'>+	* summary</div><div class='add'>+	  * add SOAP Header mustUnderstand support.</div><div class='add'>+</div><div class='add'>+	  * add HTTP client SSL configuration and Cookies support (works</div><div class='add'>+	    completely with http-access2).</div><div class='add'>+</div><div class='add'>+	  * add header handler for handling sending/receiving SOAP Header.</div><div class='add'>+</div><div class='add'>+	  * map Ruby's anonymous Struct to common SOAP Struct in SOAP Object</div><div class='add'>+	    Model.  it caused error.</div><div class='add'>+</div><div class='add'>+	  * add WSDL simpleType support to restrict lexical value space.</div><div class='add'>+</div><div class='add'>+Sat Jul  3 17:19:44 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkextlib/tkDND.rb: fix syntax error.</div><div class='add'>+</div><div class='add'>+Thu Jul  1 18:36:08 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tcltklib: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk: bug fix and add Tcl/Tk extension support libraries</div><div class='add'>+</div><div class='add'>+Thu Jul  1 18:31:31 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (PStore#transaction): get rid of opening in write mode</div><div class='add'>+	  when read only transaction.  [ruby-dev:23842]</div><div class='add'>+</div><div class='add'>+Thu Jul  1 00:44:42 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_encrypt, ossl_cipher_decrypt):</div><div class='add'>+	  re-implemnt (the arguments for this method is ).</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_pkcs5_keyivgen): new method</div><div class='add'>+	  OpenSSL::Cipher::Cipher#pkcs5_keyivgen. it calls EVP_BytesToKey().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_set_key_length): new method</div><div class='add'>+	  OpenSSL::Cipher::Cipher#key_len=.</div><div class='add'>+</div><div class='add'>+Wed Jun 30 19:48:09 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check for EVP_CIPHER_CTX_copy, ENGINE_add,</div><div class='add'>+	  EVP_CIPHER_CTX_set_padding, EVP_CipherFinal_ex, EVP_CipherInit_ex,</div><div class='add'>+	  EVP_DigestFinal_ex and EVP_DigestInit_ex.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.c (EVP_CIPHER_CTX_copy): new function.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.h (EVP_DigestInit_ex, EVP_DigestFinal_ex,</div><div class='add'>+	  EVP_CipherInit_ex, EVP_CipherFinal_ex, HMAC_Init_ex): new macro for</div><div class='add'>+	  OpenSSL 0.9.6.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_alloc, ossl_cipher_initialize,</div><div class='add'>+	  ossl_cipher_copy, ossl_cipher_reset, ossl_cipher_encrypt,</div><div class='add'>+	  ossl_cipher_decrypt, ossl_cipher_final, ossl_cipher_set_key,</div><div class='add'>+	  ossl_cipher_set_iv): replace all EVP_CipherInit and</div><div class='add'>+	  EVP_CipherFinal into EVP_CipherInit_ex and EVP_CipherFinal_ex.</div><div class='add'>+	  and EVP_CIPHER_CTX_init should only be called once.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (ossl_cipher_set_padding): check for</div><div class='add'>+	  EVP_CIPHER_CTX_set_padding.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c (Init_ossl_cipher): Cipher#&lt;&lt; is deprecated.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: replace all EVP_DigestInit and</div><div class='add'>+	  EVP_DigestFinal into EVP_DigestInit_ex and EVP_DigestFinal_ex.</div><div class='add'>+	  and EVP_MD_CTX_init should only be called once.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c (digest_final): should call</div><div class='add'>+	  EVP_MD_CTX_cleanup to avoid memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c (ossl_hmac_initialize): repalce HMAC_init</div><div class='add'>+	  into HMAC_init_ex. and HMAC_CTX_init is moved to ossl_hmac_alloc.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c (hmac_final): should call</div><div class='add'>+	  HMAC_CTX_cleanup to avoid memory leak.</div><div class='add'>+</div><div class='add'>+	* test/openssl/test_cipher.rb, test/openssl/test_digest.rb,</div><div class='add'>+	  test/openssl/test_hmac.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Jun 30 16:59:39 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb (test_fnmatch): some tests for File.fnmatch</div><div class='add'>+	  are added.</div><div class='add'>+</div><div class='add'>+Wed Jun 30 11:38:51 2004  Mikael Brockman  &lt;phubuh@phubuh.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): should not be NULL.  [ruby-core:03098]</div><div class='add'>+</div><div class='add'>+Wed Jun 30 02:41:10 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_new): set buffer after</div><div class='add'>+	  Data_Wrap_Struct to avoid possible GC. [ruby-talk:104835]</div><div class='add'>+</div><div class='add'>+Tue Jun 29 10:31:19 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval_cmd, rb_thread_trap_eval): restore safe level.</div><div class='add'>+</div><div class='add'>+	* gc.c (define_final, run_final): preserve and restore safe level for</div><div class='add'>+	  finalizers.  [ruby-core:03058]</div><div class='add'>+</div><div class='add'>+	* signal.c (signal_exec, rb_trap_exit, trap): preserve and restore</div><div class='add'>+	  safe level for signal handlers.  [ruby-dev:23829]</div><div class='add'>+</div><div class='add'>+Mon Jun 28 14:57:56 2004  Jeff Mitchell  &lt;quixoticsycophant@yahoo.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, lib/mkmf.rb (LIBPATHFLAG): use double quotes due to</div><div class='add'>+	  DOSISH compilers.  [ruby-core:03107]</div><div class='add'>+</div><div class='add'>+Mon Jun 28 00:35:29 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/drb/*.rb: using 'DRb.thread.join' instead of 'gets'</div><div class='add'>+</div><div class='add'>+Sun Jun 27 22:36:47 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb: supported Hiki.</div><div class='add'>+</div><div class='add'>+Sat Jun 26 15:17:11 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_mod_class_variables): class variables are no longer</div><div class='add'>+	  inherited.  [ruby-dev:23808]</div><div class='add'>+</div><div class='add'>+Sat Jun 26 11:07:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (aix): -b must come at the start of the command line,</div><div class='add'>+	  and -e must not appear while testing libraries.  [ruby-talk:104501]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (find_header, dir_config): quote directory names if</div><div class='add'>+	  necessary.  [ruby-talk:104505]</div><div class='add'>+</div><div class='add'>+Sat Jun 26 00:13:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_fopen, rb_fdopen, rb_io_reopen): setvbuf() may return</div><div class='add'>+	  positive value on failure.  [ruby-dev:23792]</div><div class='add'>+</div><div class='add'>+Fri Jun 25 18:07:15 2004  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: bring back _stklen for DJGPP [ruby-core:3084]</div><div class='add'>+</div><div class='add'>+Fri Jun 25 15:33:01 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/extconf.rb: check stricter.  [ruby-talk:104501]</div><div class='add'>+</div><div class='add'>+Fri Jun 25 01:58:01 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/setup.mak: remove RUBY_EXTERN lines when</div><div class='add'>+	  including version.h. [ruby-talk:104456]</div><div class='add'>+</div><div class='add'>+Thu Jun 24 14:23:29 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fread): return already read data when system call is</div><div class='add'>+	  interrupted.  [ruby-talk:97206]</div><div class='add'>+</div><div class='add'>+Thu Jun 24 01:25:21 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.h: added declarations of ruby_version,</div><div class='add'>+	  ruby_release_date, ruby_platform.</div><div class='add'>+</div><div class='add'>+Thu Jun 24 01:07:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_sockaddr): Socket#gethostbyname()</div><div class='add'>+	  should give us packed address, not struct sockaddr.</div><div class='add'>+	  [ruby-core:03053]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 22:19:10 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_gethostbyaddr): Work around problem</div><div class='add'>+	  with OS X not returning 'from' parameter to recvfrom for</div><div class='add'>+	  connection-oriented sockets.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 22:16:16 2004  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: io_seek()'s retval should be checked [ruby-core:03045]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 21:48:27 2004  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: Fix indentation.</div><div class='add'>+</div><div class='add'>+	* main.c: Remove _stklen, and _CRT_glob. Move _stacksize for</div><div class='add'>+	  __human68k__ to gc.c where the others are.</div><div class='add'>+</div><div class='add'>+	* gc.c: put _stacksize in place and clean the #ifdefs macros.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 17:37:54 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb: added new option --ssl.</div><div class='add'>+</div><div class='add'>+Wed Jun 23 01:45:27 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_quotation):</div><div class='add'>+	  Fix problem with the 'r' being dropped from %r{xxx}</div><div class='add'>+</div><div class='add'>+Wed Jun 23 00:10:17 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_hresult2msg): remove trailing</div><div class='add'>+	  CRs and LFs. (doesn't depend on CR+LF) [ruby-dev:23749]</div><div class='add'>+</div><div class='add'>+Wed Jun 23 00:00:25 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (return_jump, break_jump): raise unexpected local jump</div><div class='add'>+	  exception directly.  [ruby-dev:23740]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): should check fcntl result.  [ruby-dev:23742]</div><div class='add'>+</div><div class='add'>+Tue Jun 22 23:35:43 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): support FZERO and FSPACE with NaN/Inf.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sprintf.rb (test_nan, test_inf): add tests.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 21:11:36 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (OLE_FREE): should not call CoFreeUnuse-</div><div class='add'>+	  dLibraries().</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_event_free): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_hresult2msg): truncate error message</div><div class='add'>+	  before CR.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 19:24:59 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): unify output of NaN, Inf and -Inf with</div><div class='add'>+	  "%f" or etc on all platform. [ruby-dev:23704], [ruby-dev:23747]</div><div class='add'>+</div><div class='add'>+Tue Jun 22 15:28:12 2004  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c: Remove explicit NIL_P() checks since rb_cmpint() does it</div><div class='add'>+	  again in the exactly same manner.</div><div class='add'>+</div><div class='add'>+Tue Jun 22 01:32:40 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c (ossl_dh_initialize): should create</div><div class='add'>+	  empty pkey object if no argument is passed. [ruby-talk:103328]</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_rsa.c (ossl_rsa_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c: add new methods: OpenSSL::PKey::DH#p,</div><div class='add'>+	  OpenSSL::PKey::DH#p=, OpenSSL::PKey::DH#g, OpenSSL::PKey::DH#g=,</div><div class='add'>+	  OpenSSL::PKey::DH#pub_key, OpenSSL::PKey::DH#pub_key=,</div><div class='add'>+	  OpenSSL::PKey::DH#priv_key and OpenSSL::PKey::DH#priv_key=.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c: add new methods: OpenSSL::PKey::DSA#p,</div><div class='add'>+	  OpenSSL::PKey::DSA#p=, OpenSSL::PKey::DSA#q, OpenSSL::PKey::DSA#q=,</div><div class='add'>+	  OpenSSL::PKey::DSA#g, OpenSSL::PKey::DSA#g=,</div><div class='add'>+	  OpenSSL::PKey::DSA#pub_key, OpenSSL::PKey::DSA#pub_key=,</div><div class='add'>+	  OpenSSL::PKey::DSA#priv_key and OpenSSL::PKey::DSA#priv_key=.</div><div class='add'>+</div><div class='add'>+Mon Jun 21 09:24:51 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_opendir): should set errno if error occurs</div><div class='add'>+	  when calling OS API.</div><div class='add'>+</div><div class='add'>+Sun Jun 20 21:12:54 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (binary=): send TYPE commands only once.</div><div class='add'>+</div><div class='add'>+Sat Jun 19 13:27:01 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_call): allow changing $SAFE.  [ruby-dev:23713]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_set_safe_level, proc_invoke, rb_mod_define_method): not</div><div class='add'>+	  set $SAFE for methods defined from Proc.  [ruby-dev:23697]</div><div class='add'>+</div><div class='add'>+Sat Jun 19 01:10:12 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/rss/tdiary_plugin/rss-recent.rb: added more information.</div><div class='add'>+</div><div class='add'>+Fri Jun 18 23:12:22 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_save_safe_level, rb_set_safe_level, safe_setter): limit</div><div class='add'>+	  safe level.</div><div class='add'>+</div><div class='add'>+Wed Jun 16 23:05:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_freeze): prepare string representation before</div><div class='add'>+	  freezing. [ruby-talk:103646]</div><div class='add'>+</div><div class='add'>+Wed Jun 16 19:57:24 2004  Michal Rokos  &lt;michal@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: extend testcase to check #first, #last,</div><div class='add'>+	  #shift, #unshift, #pop, #push</div><div class='add'>+</div><div class='add'>+Wed Jun 16 16:05:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c (ary_new): move alloc behind checks.  [ruby-core:02982]</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_pop_m, rb_ary_shift_m): take arg to behave as push</div><div class='add'>+	  and unshift.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_first, rb_ary_last): make shared array for result</div><div class='add'>+	  array, and correct doc for Array#first(n) and Array#last(n)</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_select): not accept any arg.</div><div class='add'>+</div><div class='add'>+Wed Jun 16 16:03:59 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_inherited_p): singleton class inherits Class</div><div class='add'>+	  rather than its object's class.  [ruby-dev:23690]</div><div class='add'>+</div><div class='add'>+Wed Jun 16 16:01:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (stack_grow_direction): memoize the direction.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): should always move to end of VALUE.</div><div class='add'>+</div><div class='add'>+Tue Jun 15 12:10:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix (TkWindow#grab)</div><div class='add'>+</div><div class='add'>+Mon Jun 14 18:23:27 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: bug fix</div><div class='add'>+</div><div class='add'>+Sun Jun 13 00:23:04 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/extconf.rb: [EXPERIMENTAL] MacOS X (darwin) support</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix thread trouble on callback proc, and</div><div class='add'>+	  eliminate warning about instance variable access</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menubar.rb: improve supported menu_spec</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/menuspec.rb: [add] menu_spec support library</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/root.rb: add menu_spec support</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/text.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/toplevel.rb: add menu_spec support</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/menubar?.rb: [add] sample of menu_spec usage</div><div class='add'>+</div><div class='add'>+Sat Jun 12 14:15:20 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: RDOC for File::FNM_CASEFOLD was missed.</div><div class='add'>+</div><div class='add'>+Sat Jun 12 11:15:53 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (target_os): strip -gnu suffix on Linux.</div><div class='add'>+</div><div class='add'>+Fri Jun 11 22:08:50 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: remove #indexes, #indices.</div><div class='add'>+</div><div class='add'>+	* hash.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c: remove #indexes, #indices, "values_at" warning</div><div class='add'>+	  from #select.</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (Init_dbm): set VERSION constant as "unknown" when</div><div class='add'>+	  DB_VERSION_STRING is not available.</div><div class='add'>+</div><div class='add'>+Thu Jun 10 19:19:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/sdbm/init.c (fsdbm_store): sdbm should use StringValue().</div><div class='add'>+	  [ruby-talk:103062]</div><div class='add'>+</div><div class='add'>+Wed Jun  9 16:09:01 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::merge,</div><div class='add'>+	  URI::Generic::route_from): accepts non-hierarchical URI.</div><div class='add'>+	  [ruby-dev:23631]</div><div class='add'>+</div><div class='add'>+	* test/uri/test_generic.rb (TestGeneric::test_route,</div><div class='add'>+	  TestGeneric::test_merge): added tests for above changes.</div><div class='add'>+</div><div class='add'>+Wed Jun  9 15:39:55 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Add support for DragonFly BSD.</div><div class='add'>+</div><div class='add'>+Wed Jun  9 15:07:06 2004  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* config.guess, config.sub: Update to a more recent version as of</div><div class='add'>+	  2004-01-20.</div><div class='add'>+</div><div class='add'>+Wed Jun  9 11:20:05 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c: remove unused functions and variables.</div><div class='add'>+</div><div class='add'>+Wed Jun  2 20:16:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new4): should share shared instance if it already</div><div class='add'>+	  exists.  [ruby-dev:23665]</div><div class='add'>+</div><div class='add'>+Wed Jun  2 12:41:53 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_gets_m): set lastline ($_) even when read line is</div><div class='add'>+	  nil.  [ruby-dev:23663]</div><div class='add'>+</div><div class='add'>+Fri May 28 11:20:31 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): bad influence on frame node.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): reverted wrongly removed condition.  [ruby-dev:23638]</div><div class='add'>+</div><div class='add'>+Thu May 27 21:37:50 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#initialize): fix pathname initialization</div><div class='add'>+	  by pathname.</div><div class='add'>+</div><div class='add'>+Thu May 27 20:02:09 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fwrite): check all case errno != 0 [ruby-dev:23648]</div><div class='add'>+</div><div class='add'>+Thu May 27 15:54:02 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb (MDTM_REGEXP): fix for demon's ftp server.</div><div class='add'>+	  Thanks, Rutger Nijlunsing.</div><div class='add'>+</div><div class='add'>+Thu May 27 14:53:13 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fwrite): workaround for bcc32's fwrite bug.</div><div class='add'>+	  add errno checking.  [ruby-dev:23627]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fwrite): should check if errno == ENOENT, too.</div><div class='add'>+</div><div class='add'>+Thu May 27 11:25:03 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: illegal require module name (../lib/csv.rb).</div><div class='add'>+</div><div class='add'>+Wed May 26 23:12:13 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV.read, CSV.readlines): added.  works as IO.read and</div><div class='add'>+	  IO.readlines in CSV format.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (CSV.parse): [CAUTION] behavior changed.  in the past,</div><div class='add'>+	  CSV.parse accepts a filename to be read-opened (it was just a</div><div class='add'>+	  shortcut of CSV.open(filename, 'r')).  now CSV.parse accepts a</div><div class='add'>+	  string or a stream to be parsed e.g.</div><div class='add'>+	  CSV.parse("1,2\n3,r") #=&gt; [['1', '2'], ['3', '4']]</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: follow above changes.</div><div class='add'>+</div><div class='add'>+Wed May 26 14:19:42 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval, eval): make line number consistent on eval with</div><div class='add'>+	  Proc.  [ruby-talk:101253]</div><div class='add'>+</div><div class='add'>+Wed May 26 13:59:17 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::skip_for_variable): Allow for</div><div class='add'>+	  'do' after for statement</div><div class='add'>+</div><div class='add'>+Wed May 26 13:56:03 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb (Generators::MarkUp::style_url): Fix</div><div class='add'>+	  relative path to code CSS file</div><div class='add'>+</div><div class='add'>+Wed May 26 13:14:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_init_copy): copy also positions.  [ruby-talk:100910]</div><div class='add'>+</div><div class='add'>+Wed May 26 00:00:00 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_new_parser): clear parser on init.</div><div class='add'>+	  thanks, ts. [ruby-core:02931]</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c (sycklex_yaml_utf8): buffer underflow.</div><div class='add'>+	  thanks, ts. [ruby-core:02929]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/baseemitter.rb (indent_text): simpler flow block code.</div><div class='add'>+</div><div class='add'>+Tue May 25 11:54:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0, proc_invoke, proc_arity): allow passing a block</div><div class='add'>+	  to a Proc.  [ruby-dev:23533]</div><div class='add'>+</div><div class='add'>+	* parse.y (block_par, block_var): ditto.</div><div class='add'>+</div><div class='add'>+Tue May 25 01:50:17 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_i2d_ASN1_TYPE, ossl_ASN1_TYPE_free):</div><div class='add'>+	  workaround for the versions earlier than OpenSSL-0.9.7.</div><div class='add'>+</div><div class='add'>+Mon May 24 10:46:26 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/html.rb: SYSTEM identifiers</div><div class='add'>+	  must be absolute URIs</div><div class='add'>+</div><div class='add'>+Sun May 23 04:53:50 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (transaction): allow overriding dump and load.</div><div class='add'>+	  [ruby-dev:23567]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/store.rb: follow lib/pstore.rb's change.</div><div class='add'>+</div><div class='add'>+Sat May 22 11:54:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add test/openssl/test_x509store.rb.</div><div class='add'>+</div><div class='add'>+	* ext/tk/MANIFEST: add recent files.</div><div class='add'>+</div><div class='add'>+Sat May 22 05:37:11 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/remote-tk.rb: (NEW library) controll Tk interpreters</div><div class='add'>+	  on the other processes by Tcl/Tk's 'send' command</div><div class='add'>+</div><div class='add'>+Fri May 21 09:22:05 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_parameters):</div><div class='add'>+	  Add ()'s around parameters that don't have them</div><div class='add'>+</div><div class='add'>+Fri May 21 02:21:11 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: fixed a few bugs around multi char record/field separator.</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: added boundary test for above feature.</div><div class='add'>+</div><div class='add'>+Thu May 20 17:02:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (check_sizeof): define result size.  [ruby-core:02911]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_header): macro name should not include equal</div><div class='add'>+	  sign.</div><div class='add'>+</div><div class='add'>+Thu May 20 14:35:52 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: check SCM_RIGHTS macro addition to</div><div class='add'>+	  the msg_control field to test existence of file descriptor passing</div><div class='add'>+	  by msg_control.</div><div class='add'>+</div><div class='add'>+Thu May 20 12:38:06 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq): always check if operands are NaN.</div><div class='add'>+	  [ruby-list:39685]</div><div class='add'>+</div><div class='add'>+Thu May 20 12:34:39 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_visibility):</div><div class='add'>+	  At Ryan Davis' suggestion, honor visibility modifers if guarded by a</div><div class='add'>+	  statement modifier</div><div class='add'>+</div><div class='add'>+Thu May 20 12:22:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_type): do not check pointer to incomplete type,</div><div class='add'>+	  which always get compiled.</div><div class='add'>+	  [ruby-list:39683]</div><div class='add'>+</div><div class='add'>+Wed May 19 23:45:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/inlinetest.rb (InlineTest::loadtest): requiring library with</div><div class='add'>+	  replaced $0 can make $0 == __FILE__ block be evaluated twice.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb (EnvUtil::rubybin): give priority to</div><div class='add'>+	  environment variable.  [ruby-dev:23538]</div><div class='add'>+</div><div class='add'>+Wed May 19 11:08:10 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: change permition of TkObject#tk_send from</div><div class='add'>+	  private to public</div><div class='add'>+</div><div class='add'>+Wed May 19 02:29:36 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: support TRACE.</div><div class='add'>+</div><div class='add'>+Wed May 19 02:21:53 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: do not use class variables.</div><div class='add'>+</div><div class='add'>+Tue May 18 21:21:43 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: writes lines with "\n" when row separator is not given.</div><div class='add'>+	  formerly it was "\r\n".</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: [CAUTION] API change</div><div class='add'>+</div><div class='add'>+	  * CSV::Row removed.  a row is represented as just an Array.  since</div><div class='add'>+	    CSV::Row was a subclass of Array, it won't hurt almost all programs</div><div class='add'>+	    except one which depended CSV::Row#match.</div><div class='add'>+</div><div class='add'>+	  * CSV::Cell removed.  a cell is represented as just a String or</div><div class='add'>+	    nil(NULL).  this change will cause widespread destruction.</div><div class='add'>+</div><div class='add'>+	      CSV.open("foo.csv", "r") do |row|</div><div class='add'>+		row.each do |cell|</div><div class='add'>+		  if cell.is_null       # Cell#is_null</div><div class='add'>+		    p "(NULL)"</div><div class='add'>+		  else</div><div class='add'>+		    p cell.data		# Cell#data</div><div class='add'>+		  end</div><div class='add'>+		end</div><div class='add'>+	      end</div><div class='add'>+</div><div class='add'>+	    must be just;</div><div class='add'>+</div><div class='add'>+	      CSV.open("foo.csv", "r") do |row|</div><div class='add'>+		row.each do |cell|</div><div class='add'>+		  if cell.nil?</div><div class='add'>+		    p "(NULL)"</div><div class='add'>+		  else</div><div class='add'>+		    p cell</div><div class='add'>+		  end</div><div class='add'>+		end</div><div class='add'>+	      end</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: [CAUTION] record separator(CR, LF, CR+LF) behavior</div><div class='add'>+	  change.  CSV.open, CSV.parse, and CSV,generate now do not force</div><div class='add'>+	  opened file binmode.  formerly it set binmode explicitly.</div><div class='add'>+</div><div class='add'>+	  with CSV.open, binmode of opened file depends the given mode</div><div class='add'>+	  parameter "r", "w", "rb", and "wb".  CSV.parse and CSV.generate open</div><div class='add'>+	  file with "r" and "w".</div><div class='add'>+</div><div class='add'>+	  setting mode properly is user's responsibility now.</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: accepts String as a fs (field separator/column separator)</div><div class='add'>+	  and rs (record separator/row separator)</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: added CSV.foreach(path, rs = nil, &amp;block).  CSV.foreach</div><div class='add'>+	  now does not handle "| cmd" as a path different from IO.foreach.</div><div class='add'>+	  needed?</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: updated.</div><div class='add'>+</div><div class='add'>+Tue May 18 14:24:20 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: added rdoc to beginning of lib.</div><div class='add'>+</div><div class='add'>+Tue May 18 14:00:46 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* node.h (NEW_DSTR): adjust list length.</div><div class='add'>+</div><div class='add'>+	* parse.y (literal_concat): ditto.</div><div class='add'>+</div><div class='add'>+Tue May 18 09:30:25 2004  SASADA Koichi  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_node): search cache entry first.</div><div class='add'>+</div><div class='add'>+Mon May 17 16:04:06 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): it's preferable that "p 0.0" outputs "0.0"</div><div class='add'>+	  instead of "0.0e+00". [ruby-dev:23480]</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): it's preferable that "p 0.00000000000000000001"</div><div class='add'>+	  outputs "1.0e-20" instead of "9.999999999999999e-21". (the precision</div><div class='add'>+	  is considered, but there is assumption DBL_DIG == 15 in current</div><div class='add'>+	  implementation)</div><div class='add'>+</div><div class='add'>+Mon May 17 10:13:33 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (setup_domain_and_type): honor duck typing.</div><div class='add'>+	  [ruby-dev:23522]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_getnameinfo): ditto.</div><div class='add'>+</div><div class='add'>+Mon May 17 00:36:21 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/baseemitter.rb (indent_text): was forcing a mod value</div><div class='add'>+	  of zero at times, which kept some blocks from getting indentation.</div><div class='add'>+</div><div class='add'>+Mon May 17 00:07:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: Cosmetic documentation changes.</div><div class='add'>+</div><div class='add'>+Sun May 16 20:55:49 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_initialize): accept optional 3rd argument to</div><div class='add'>+	  specify an open flag.</div><div class='add'>+	  (Init_dbm): define open flags: DBM::READER, DBM::WRITER, DBM::WRCREAT</div><div class='add'>+	  and DBM::NEWDB.</div><div class='add'>+</div><div class='add'>+Sat May 15 17:52:24 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb(test_strtod): Add test for signed 0.000...1</div><div class='add'>+</div><div class='add'>+Sat May 15 14:20:13 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/depend: add ruby's headers.</div><div class='add'>+</div><div class='add'>+Sat May 15 13:38:33 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/MANIFEST, ext/syck/depend: new file.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: range of exponential floats.  [ruby-core:02824]</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: tests for strings start with colon and some</div><div class='add'>+	  round trip.</div><div class='add'>+</div><div class='add'>+Sat May 15 12:04:58 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: removed fallback to pure Ruby parser.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/baseemitter.rb (node_text): rewriting folded scalars.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: reports style of scalars now, be they plain, block</div><div class='add'>+	  single-, or double-quoted.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/node.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (yaml_org_handler): symbols loaded only</div><div class='add'>+	  if scalar style is plain.</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb (test_perl_regexp): updated test to</div><div class='add'>+	  match new regexp serialization.</div><div class='add'>+</div><div class='add'>+Sat May 15 01:41:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): forgot to restore $SAFE value before evaluating</div><div class='add'>+	  compiled node.  [ruby-core:02872]</div><div class='add'>+</div><div class='add'>+Sat May 15 01:33:12 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* range.c (range_each_func): terminates loop if generating value</div><div class='add'>+	  is same to @end.  [ruby-talk:100269]</div><div class='add'>+</div><div class='add'>+Fri May 14 22:08:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): should not reuse frozen shared string if</div><div class='add'>+	  the original is not an instance of String. [ruby-talk:100193]</div><div class='add'>+</div><div class='add'>+Fri May 14 21:29:26 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mdump): preserve GMT bit in the marshal data.</div><div class='add'>+	  [ruby-talk:100213]</div><div class='add'>+</div><div class='add'>+Fri May 14 18:37:49 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/canvas.rb: improve coords support for canvas</div><div class='add'>+	  items. Now, supports all of the followings.</div><div class='add'>+	       TkcLine.new(c, 0, 0, 100, 100, :fill=&gt;'red')</div><div class='add'>+	       TkcLine.new(c, [0, 0, 100, 100], :fill=&gt;'red')</div><div class='add'>+	       TkcLine.new(c, [0, 0], [100, 100], :fill=&gt;'red')</div><div class='add'>+	       TkcLine.new(c, [[0, 0], [100, 100]], :fill=&gt;'red')</div><div class='add'>+	       TkcLine.new(c, :coords=&gt;[0, 0, 100, 100], :fill=&gt;'red')</div><div class='add'>+	       TkcLine.new(c, :coords=&gt;[[0, 0], [100, 100]], :fill=&gt;'red')</div><div class='add'>+</div><div class='add'>+Fri May 14 13:30:39 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: Add test for util.c revision 1.42.</div><div class='add'>+</div><div class='add'>+Fri May 14 12:13:46 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): strtod("0", &amp;end); =&gt; end should point '\0'.</div><div class='add'>+	 [ruby-dev:23498]</div><div class='add'>+</div><div class='add'>+Thu May 13 15:47:30 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb (Net::Telnet::login): "options" can specify</div><div class='add'>+	  regexps for login prompt and/or password prompt.</div><div class='add'>+</div><div class='add'>+Thu May 13 14:17:57 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (yaml_org_handler): some empty strings were</div><div class='add'>+	  loaded as symbols.</div><div class='add'>+</div><div class='add'>+Thu May 13 11:04:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): always add with null for 'Z'.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): terminated by null for 'Z'.  [ruby-talk:98281]</div><div class='add'>+</div><div class='add'>+Wed May 12 19:59:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_type, check_sizeof): replace unusable characters.</div><div class='add'>+	  [ruby-talk:99788]</div><div class='add'>+</div><div class='add'>+Wed May 12 17:41:42 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb (Resolv::DNS::Config): make it configurable without</div><div class='add'>+	  external file such as /etc/resolv.conf.</div><div class='add'>+</div><div class='add'>+Wed May 12 14:37:27 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c: attribute value of DC (short name of</div><div class='add'>+	  domainComponent) should be IA5String.</div><div class='add'>+</div><div class='add'>+Wed May 12 13:20:19 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk/composite.rb: improve configure methods (based on</div><div class='add'>+	  the proposal of [ruby-talk:99671]).</div><div class='add'>+</div><div class='add'>+Wed May 12 11:51:08 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_singleton_methods): fix rdoc</div><div class='add'>+</div><div class='add'>+Tue May 11 07:09:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): do not protect exception during receiver</div><div class='add'>+	  evaluation.</div><div class='add'>+</div><div class='add'>+Mon May 10 22:28:14 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (each_crlf_line): remove junk line.</div><div class='add'>+</div><div class='add'>+Mon May 10 21:44:42 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Change scheme for</div><div class='add'>+	  looking up symbols in  HTML generator.</div><div class='add'>+</div><div class='add'>+Mon May 10 16:45:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): warning during eval should not cause deadlock.</div><div class='add'>+	  [ruby-talk:98651]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): raise TypeError exception for superclass</div><div class='add'>+	  mismatch.  [ruby-list:39567]</div><div class='add'>+</div><div class='add'>+Mon May 10 12:11:37 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Hack to search parents</div><div class='add'>+	  for unqualified constant names.</div><div class='add'>+</div><div class='add'>+Mon May 10 01:18:15 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (logging): append "\n".</div><div class='add'>+</div><div class='add'>+Sun May  9 23:38:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb: ported documentation improvement from 1.8 branch</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb:   ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb:    ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb:   ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb: ditto</div><div class='add'>+</div><div class='add'>+Sun May  9 23:34:51 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: added test_strtod to test Float("0").</div><div class='add'>+</div><div class='add'>+Sun May  9 13:24:24 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/store.rb: use FileUtils::copy.</div><div class='add'>+</div><div class='add'>+Sun May  9 12:34:26 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c: removed unused file.</div><div class='add'>+</div><div class='add'>+Sat May  8 10:53:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): open should not ignore block when "to_open"</div><div class='add'>+	  method is used.  [ruby-dev:23478]</div><div class='add'>+</div><div class='add'>+Fri May  7 22:07:39 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mv): new option `force'. [ruby-talk:99457]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new method for command option reflection:</div><div class='add'>+	  FileUtils.commands, .options, .have_option?, .options_of,</div><div class='add'>+	  .collect_methods.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: module Verbose, NoWrite, DryRun do not have</div><div class='add'>+	  option flags @fileutils_verbose and @fileutils_noop, they make no</div><div class='add'>+	  sense.</div><div class='add'>+</div><div class='add'>+Fri May  7 21:50:21 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::parse_include): Allow</div><div class='add'>+	  multiple arguments to 'include'</div><div class='add'>+</div><div class='add'>+Fri May  7 21:03:51 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_list): Array() breaks pathes including "\n".</div><div class='add'>+	  [ruby-core:02843]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (mkdir): test "\n" in path.</div><div class='add'>+</div><div class='add'>+Fri May  7 20:53:25 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dbm/dbm.c (fdbm_modify): typo fixed. [ruby-dev:23473]</div><div class='add'>+</div><div class='add'>+Fri May  7 11:17:27 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): "0.0000000000000000001" should be converted</div><div class='add'>+	  to 1.0e-19 instead of 0.0. (leading zeros aren't significant digits)</div><div class='add'>+	  [ruby-talk:99318] [ruby-dev:23465]</div><div class='add'>+</div><div class='add'>+Thu May  6 22:27:32 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ippaddr): use NUMERICHOST if can not resolve</div><div class='add'>+	  hostname.</div><div class='add'>+</div><div class='add'>+Thu May  6 22:09:29 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/tkutil.c (get_eval_string_core): bug fix. [ruby-dev:23466]</div><div class='add'>+</div><div class='add'>+Thu May  6 14:22:29 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (to_yaml): added instance variable handling</div><div class='add'>+	  for Ranges, Strings, Structs, Regexps.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (to_yaml_fold): new method for setting a</div><div class='add'>+	  String's flow style.</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::object_maker): now uses Object.allocate.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: fixed transfer methods on structs, broke it</div><div class='add'>+	  last commit.</div><div class='add'>+</div><div class='add'>+Thu May  6 14:38:02 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): simplified code (not change behavior)</div><div class='add'>+</div><div class='add'>+Thu May  6 13:32:44 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: get rid of side effect of Config.expand, patched by</div><div class='add'>+	  &lt;tttt01@infoseek.jp&gt;  (ruby-bugs:PR#597)</div><div class='add'>+</div><div class='add'>+Thu May  6 11:40:28 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (string): accept NIL.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (body_type_basic): allow body-fields omissions.</div><div class='add'>+</div><div class='add'>+Thu May  6 01:59:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb (Generators::HtmlMethod::params):</div><div class='add'>+	  Don't include the &amp;block parameter if we have explicit</div><div class='add'>+	  yield parameters.</div><div class='add'>+</div><div class='add'>+Wed May  5 03:52:31 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/ring.rb: use recv instead of recvfrom.</div><div class='add'>+</div><div class='add'>+Wed May  5 00:38:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/gserver.rb: documented</div><div class='add'>+	* lib/xmlrpc/README.txt: introduced for documentation purposes</div><div class='add'>+</div><div class='add'>+Mon May  3 09:47:24 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):</div><div class='add'>+	  Fix parsing bug if yield called within 1 line block</div><div class='add'>+</div><div class='add'>+Sun May  2 21:56:48 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (rm_f, rm_r): test :force flag.</div><div class='add'>+</div><div class='add'>+Sun May  2 01:04:38 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib, ext/tk: renewal Ruby/Tk</div><div class='add'>+</div><div class='add'>+Fri Apr 30 20:08:41 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (SIZEOF_TIME_T): support SIZEOF_TIME_T == SIZEOF_INT.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 01:26:11 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h, regparse.c: imported Oni Guruma 2.2.8.</div><div class='add'>+</div><div class='add'>+Wed Apr 28 01:16:23 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h, regparse.c: imported Oni Guruma 2.2.7.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 14:43:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: LIBURUBY_A is needed for extconf.rb even when</div><div class='add'>+	  cross-compiling.</div><div class='add'>+</div><div class='add'>+Tue Apr 27 13:33:50 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): turn off NODE_NEWLINE flag to avoid</div><div class='add'>+	  unnecessary line trace for inlined expression.</div><div class='add'>+	  (ruby-bugs PR#1320)</div><div class='add'>+</div><div class='add'>+Tue Apr 27 08:15:13 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: passing Range tests.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: version 0.44.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.c: transfers no longer open an indentation.</div><div class='add'>+	  fixed transfers which precede blocks.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: fixed segfault if an anchor has been released already.</div><div class='add'>+</div><div class='add'>+	* ext/syck/node.c (syck_free_members): organized order of free'd nodes.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_write_m): test for proper string with</div><div class='add'>+	  StringValue.</div><div class='add'>+</div><div class='add'>+Mon Apr 26 23:56:54 2004  Daniel Kelley  &lt;news-1082945587@dkelley.gmp.san-jose.ca.us&gt;</div><div class='add'>+</div><div class='add'>+	* README.EXT, README.EXT.ja: fixed wrong function signature.</div><div class='add'>+	  [ruby-talk:98349]</div><div class='add'>+</div><div class='add'>+Mon Apr 26 21:40:09 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::Context::add_alias): Only alias</div><div class='add'>+	  to instance methods.</div><div class='add'>+</div><div class='add'>+Sun Apr 25 18:26:23 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_fork): set to no on DJGPP.</div><div class='add'>+</div><div class='add'>+Sat Apr 24 14:32:03 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: applied stack error handling patch. [ruby-dev:23431]</div><div class='add'>+</div><div class='add'>+Sat Apr 24 10:38:31 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::group_lines):</div><div class='add'>+	  Fix bug where consecutive headings are merged.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 23:24:47 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: $hdrdir should not contain macros, for backward</div><div class='add'>+	  compatibility.  [bruby-dev:28]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): in the case of extout, just copy</div><div class='add'>+	  script files, without comparison.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 16:38:46 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: sync taint/freeze flag between</div><div class='add'>+	  a pathname object and its internal string object.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 14:52:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt, arg, aref_args): should not make sole splat into</div><div class='add'>+	  array, in aref_args other than aref with op_asgn.</div><div class='add'>+</div><div class='add'>+Fri Apr 23 14:14:38 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb: don't use Regexp#source to embed regexps.</div><div class='add'>+	  [ruby-dev:23432]</div><div class='add'>+</div><div class='add'>+Thu Apr 22 18:25:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, ext/extmk.rb: make ext and .ext get removed by distclean.</div><div class='add'>+</div><div class='add'>+Thu Apr 22 10:07:01 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (distclean-local): should remove $(RBCONFIG).</div><div class='add'>+</div><div class='add'>+Thu Apr 22 04:17:57 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): allow binding methods to modules.</div><div class='add'>+	  [ruby-dev:23410]</div><div class='add'>+</div><div class='add'>+	* parse.y (aref_args): should pass expanded list.  [ruby-core:02793]</div><div class='add'>+</div><div class='add'>+Thu Apr 22 01:12:57 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_to_s): tweak output string based to preserve</div><div class='add'>+	  decimal point and to remove trailing zeros.  [ruby-talk:97891]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_index_m): use unsigned comparison for T_FIXNUM</div><div class='add'>+	  search.  [ruby-talk:97342]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 23:04:42 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb, test/rinda/test_rinda.rb: check Hash tuple size.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 20:05:00 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::HTTP#proxy_open): set Host: field explicitly.</div><div class='add'>+	  [ruby-list:39542]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 18:39:46 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: merge SMTP-TLS patch.  This patch is</div><div class='add'>+	  contributed by Daniel Hob. [ruby-core:02789]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 18:23:45 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: change coding style: def m( a ) -&gt; def m(a).</div><div class='add'>+</div><div class='add'>+Wed Apr 21 18:01:47 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: do not use class variables.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (do_start): ensure to clean up connection when</div><div class='add'>+	  authentication failed.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 17:23:59 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP#connect): CONNECT must precede SSL connect.</div><div class='add'>+	  [ruby-dev:23379]</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP.new): class variables are not inherited</div><div class='add'>+	  now.</div><div class='add'>+</div><div class='add'>+Wed Apr 21 15:56:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb (test_started): restore $0</div><div class='add'>+	  after changing process title.  [ruby-talk:97426]</div><div class='add'>+</div><div class='add'>+Wed Apr 21 10:18:06 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c(rb_spawn): fix SEGV at "p system('command line here')"</div><div class='add'>+	 (may happen only in bccwin32) [ruby-dev:23380]</div><div class='add'>+</div><div class='add'>+Mon Apr 19 20:58:44 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: Updated RDocs.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 18:11:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_equal): returns true if two hashes have same set</div><div class='add'>+	  of key-value set.  [ruby-talk:97559]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_eql): returns true if two hashes are equal and</div><div class='add'>+	  have same default values.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 08:19:11 2004  Doug Kearns  &lt;djkea2@mugca.its.monash.edu.au&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c, io.c, pack.c, lib/benchmark.rb, lib/cgi.rb, lib/csv.rb,</div><div class='add'>+	  lib/date.rb, lib/ftools.rb, lib/getoptlong.rb, lib/logger.rb,</div><div class='add'>+	  lib/matrix.rb, lib/monitor.rb, lib/set.rb, lib/thwait.rb,</div><div class='add'>+	  lib/timeout.rb, lib/yaml.rb, lib/drb/drb.rb, lib/irb/workspace.rb,</div><div class='add'>+	  lib/net/ftp.rb, lib/net/http.rb, lib/net/imap.rb, lib/net/pop.rb,</div><div class='add'>+	  lib/net/telnet.rb, lib/racc/parser.rb, lib/rinda/rinda.rb,</div><div class='add'>+	  lib/rinda/tuplespace.rb, lib/shell/command-processor.rb,</div><div class='add'>+	  lib/soap/rpc/soaplet.rb, lib/test/unit/testcase.rb,</div><div class='add'>+	  lib/test/unit/testsuite.rb: typo fix.</div><div class='add'>+</div><div class='add'>+Mon Apr 19 08:14:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Allow for</div><div class='add'>+	  #ifdef HAVE_PROTOTYPES</div><div class='add'>+</div><div class='add'>+Fri Apr 16 17:04:07 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_equal): always returns true or false, never</div><div class='add'>+	  returns nil. [ruby-dev:23404]</div><div class='add'>+</div><div class='add'>+Fri Apr 16 12:38:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRb::DRbUnknown::initialize): Exception#to_str is</div><div class='add'>+	  deprecated.</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRb::DRbServer::InvokeMethod::perform): multiple</div><div class='add'>+	  value class changed.</div><div class='add'>+</div><div class='add'>+	* lib/drb/invokemethod.rb (DRb::DRbServer::InvokeMethod18Mixin::block_yield):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+Fri Apr 16 08:27:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: skip linking when libraries to be preloaded not</div><div class='add'>+	  compiled.  [ruby-list:39561]</div><div class='add'>+</div><div class='add'>+Thu Apr 15 19:57:11 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (pst_success_p): new method Process::Status#success?.</div><div class='add'>+	  [ruby-dev:23385]</div><div class='add'>+</div><div class='add'>+	* rubytest.rb: do nothing while cross-compiling, return status in</div><div class='add'>+	  system independent style.</div><div class='add'>+</div><div class='add'>+Thu Apr 15 19:26:54 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_push_glob): Dir.glob() should return nil if block is given.</div><div class='add'>+	  (http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Dir)</div><div class='add'>+</div><div class='add'>+	* dir.c (push_braces): Dir.glob() should handle '{ }' nested more than</div><div class='add'>+	  3 times.</div><div class='add'>+</div><div class='add'>+	* dir.c (push_braces, rb_push_glob): Dir.glob() should handle escaped</div><div class='add'>+	  '{' and '}' and ','.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:23376]</div><div class='add'>+</div><div class='add'>+Thu Apr 15 17:12:13 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/gdbm/gdbm.c (Init_gdbm): define GDBM::READER, GDBM::WRITER,</div><div class='add'>+	  GDBM::WRCREAT and GDBM::NEWDB.</div><div class='add'>+	  (fgdbm_initialize): use specified read/write flag.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 13:06:09 2004  Doug Kearns  &lt;djkea2@mugca.its.monash.edu.au&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, enum.c, eval.c, file.c, io.c, numeric.c, object.c, prec.c,</div><div class='add'>+	  process.c, re.c, string.c: typos in RDoc comments.  [ruby-core:02783]</div><div class='add'>+</div><div class='add'>+Wed Apr 14 11:29:56 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (flo_eq): workaround for bcc32's bug.</div><div class='add'>+	  (ruby-bugs-ja:PR#594)</div><div class='add'>+</div><div class='add'>+Wed Apr 14 11:06:38 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::scan): Changed</div><div class='add'>+	  behavior of :enddoc: -- it now unconditionally terminates</div><div class='add'>+	  processing of the current file.</div><div class='add'>+</div><div class='add'>+Wed Apr 14 10:57:40 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: include &lt;net/socket.h&gt; to get fd_set definition in BeOS.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 23:00:55 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb: change pattern matching.</div><div class='add'>+	  a === b -&gt; a == b || a === b. [druby-ja:98]</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 21:50:57 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (PHONY): Borland make disallows empty command</div><div class='add'>+	  rules.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 17:55:16 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (begin_transport): should not overwrite HTTP</div><div class='add'>+	  request header. [ruby-list:39543]</div><div class='add'>+</div><div class='add'>+Tue Apr 13 16:48:00 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: merge POP3S patch.  This patch is contributed by</div><div class='add'>+	  Daniel Hobe.</div><div class='add'>+</div><div class='add'>+Tue Apr 13 02:56:29 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk: changed the order of ascii.c alphabetically.</div><div class='add'>+</div><div class='add'>+Mon Apr 12 19:11:21 2004  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_copy_finalizer): typo.  [ruby-core:02774]</div><div class='add'>+</div><div class='add'>+Mon Apr 12 18:45:58 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_init_i): should return</div><div class='add'>+	  a value.</div><div class='add'>+</div><div class='add'>+Mon Apr 12 10:39:50 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (rb_glob2, rb_glob, push_globs, push_braces, rb_push_glob):</div><div class='add'>+	  fix memory leak. (leaked when block was interrupted)</div><div class='add'>+</div><div class='add'>+Sun Apr 11 19:10:13 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (require_libraries): restore source file/line after</div><div class='add'>+	  statically linked extensions initialized.  [ruby-dev:23357]</div><div class='add'>+</div><div class='add'>+Sun Apr 11 10:47:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::TopLevel::add_class_or_module): Toplevel</div><div class='add'>+	  classes and modules are a special case too... (handle extending existing</div><div class='add'>+	  classes with or without :enddoc:)</div><div class='add'>+</div><div class='add'>+Sat Apr 10 23:51:13 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::Context::add_to): Implementation of :enddoc:</div><div class='add'>+	  made one too many assumptions...</div><div class='add'>+</div><div class='add'>+Sat Apr 10 00:00:19 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup/inline.rb: Fix problem</div><div class='add'>+	  with \_cat_&lt;b&gt;dog&lt;/b&gt;</div><div class='add'>+</div><div class='add'>+Fri Apr  9 17:05:21 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (has_magic, find_dirsep): incomplete '[' matches no character</div><div class='add'>+	  in Dir.glob. (follows File.fnmatch's behavior)</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch_helper): incomplete escape is ignored in File.fnmatch.</div><div class='add'>+	  (follows Dir.glob's behavior)</div><div class='add'>+</div><div class='add'>+	* dir.c (find_dirsep): '/' between '[' and ']' is ignored in Dir.glob.</div><div class='add'>+	  (follows File.fnmatch with File::FNM_PATHNAME 's behavior)</div><div class='add'>+</div><div class='add'>+	* dir.c (find_dirsep): escaped slash '\/' loses its meaning as</div><div class='add'>+	  directory separator in Dir.glob.</div><div class='add'>+</div><div class='add'>+	  [ruby-dev:23291]</div><div class='add'>+</div><div class='add'>+Thu Apr  8 20:25:19 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): skip uncompiled extensions.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): emit no rules for static library if</div><div class='add'>+	  $static is nil, e.g., outside of ext/.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb (test_started): show test</div><div class='add'>+	  name via $0.</div><div class='add'>+</div><div class='add'>+	* runruby.rb: set environments to use the compiled binary.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: do nothing while cross-compiling.</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb, test/soap/calc/test_calc_cgi.rb: use envutil to</div><div class='add'>+	  know ruby binary, and restore $: after require.</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: give priority to RUBY environment variable to</div><div class='add'>+	  use just compiled binary and libraries.</div><div class='add'>+</div><div class='add'>+Thu Apr  8 19:03:33 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): inverted condition.  [ruby-dev:23349]</div><div class='add'>+</div><div class='add'>+Thu Apr  8 18:22:00 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_s_list): return encoding list if no block</div><div class='add'>+	  is given.  [ruby-dev:23063]</div><div class='add'>+</div><div class='add'>+Wed Apr  7 15:29:24 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): use NUM2INT() instead of num2i32().</div><div class='add'>+</div><div class='add'>+Wed Apr  7 12:32:02 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb, lib/rss/1.0.rb: accepted rdf:resource or</div><div class='add'>+	  resource attribute in rdf:li.</div><div class='add'>+	* test/rss/test_parser.rb: added test for above change.</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb: reverted style.</div><div class='add'>+</div><div class='add'>+	* lib/rss/xmlparser.rb: normalized XMLParser class hierarchy.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 10:43:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, common.mk, */Makefile.sub (ext/extinit.o): OUTFLAG</div><div class='add'>+	  doesn't work for object files on VC.</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (config.h): need SIZEOF_TIME_T now.</div><div class='add'>+</div><div class='add'>+Wed Apr  7 00:24:34 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb: fix hash tuple bug.</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb</div><div class='add'>+</div><div class='add'>+Tue Apr  6 18:24:18 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_get_path): get path string via "to_path" method if</div><div class='add'>+	  path object is not a string. [Ruby2]</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): do not free threads in the</div><div class='add'>+	  exit finalizers.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_reopen): should use rb_io_check_io().</div><div class='add'>+</div><div class='add'>+Tue Apr  6 16:46:09 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check the size of time_t.</div><div class='add'>+</div><div class='add'>+	* time.c (time_add): new function.</div><div class='add'>+	  (time_plus): use time_add.</div><div class='add'>+	  (time_minus): use time_add.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 13:11:48 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (raise_socket_error): never return.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent): must return value.</div><div class='add'>+</div><div class='add'>+Tue Apr  6 00:14:43 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): remove Exception#to_str. [Ruby2]</div><div class='add'>+</div><div class='add'>+	* eval.c (error_print): should no call "to_str" anymore use</div><div class='add'>+	  "message" method instead.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_open): Kernel#open() calls "to_open" if the first</div><div class='add'>+	  argument responds to it. [Ruby2]</div><div class='add'>+</div><div class='add'>+Tue Apr  6 00:13:43 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb: add require 'drb/drb'</div><div class='add'>+</div><div class='add'>+Mon Apr  5 22:25:32 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb: new file.</div><div class='add'>+	  (TestZlibGzipWriter#test_new_nil): test for [ruby-dev:23228].</div><div class='add'>+</div><div class='add'>+Mon Apr  5 22:16:23 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc_list): {a: 1, b: 2} should be allowed.</div><div class='add'>+	  [ruby-dev:23328]</div><div class='add'>+</div><div class='add'>+Mon Apr  5 19:43:40 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regexec.c: imported Oni Guruma 2.2.6.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 19:39:10 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c, oniguruma.h: imported Oni Guruma 2.2.6.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 12:12:09 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (raise_socket_error): some platforms don't have</div><div class='add'>+	  EAI_SYSTEM.</div><div class='add'>+</div><div class='add'>+Mon Apr  5 08:18:23 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb: Remove leading ./ from file names so that cross</div><div class='add'>+	  references work properly.</div><div class='add'>+</div><div class='add'>+Sun Apr  4 14:01:20 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/options.rb (Options::parse): Allow multiple -x options to</div><div class='add'>+	  RDoc. Fix bug where files weren't being excluded properly</div><div class='add'>+</div><div class='add'>+Sat Apr  3 09:36:38 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: version 0.43.</div><div class='add'>+</div><div class='add'>+Sat Apr  3 08:28:47 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/lib/gram.c: allow root-level inline collections.</div><div class='add'>+	  [ruby-talk:94922]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb (Symbol#to_yaml): emit symbols as implicits.</div><div class='add'>+	  [ruby-talk:94930]</div><div class='add'>+</div><div class='add'>+Fri Apr  2 19:28:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (OUTFLAG): needed for static-linked-ext.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 18:00:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): extract necessary variables for static link</div><div class='add'>+	  from Makefile.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): save preload and libpath for next</div><div class='add'>+	  compile.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 17:27:17 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (top_include): include in the wrapped load is done for</div><div class='add'>+	  the wrapper, not for a singleton class for wrapped main.</div><div class='add'>+	  [ruby-dev:23305]</div><div class='add'>+</div><div class='add'>+Fri Apr  2 15:13:44 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_eq): use temporary double variable to save the</div><div class='add'>+	  result (internal float register may be bigger than 64 bits, for</div><div class='add'>+	  example, 80 bits on x86).  [ruby-dev:23311]</div><div class='add'>+</div><div class='add'>+Fri Apr  2 14:35:26 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): should generate unique identifier of the</div><div class='add'>+	  pushing block.  [ruby-talk:96363]</div><div class='add'>+</div><div class='add'>+Fri Apr  2 11:36:20 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_load): make $LOADED_FEATURES built-in.</div><div class='add'>+	  [ruby-dev:23299]</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_prog_init): make $PROGRAM_NAME built-in.</div><div class='add'>+</div><div class='add'>+	* lib/English.rb: remove $LOADED_FEATURES and $PROGRAM_NAME.</div><div class='add'>+</div><div class='add'>+Fri Apr  2 07:31:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: mistakingly removed do_not_reverse_lookup.</div><div class='add'>+	  [ruby-list:39475]</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent): fix memory leak, based on</div><div class='add'>+	  the patch from HORIKAWA Hisashi &lt;vzw00011@nifty.ne.jp&gt;.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 22:55:33 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Allow rdoc comments in</div><div class='add'>+	  =begin rdoc/=end</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb: Fix problem with comment in</div><div class='add'>+	  top-level method being taken as file comment.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 22:55:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb: Fix undefined variable warning.</div><div class='add'>+</div><div class='add'>+Thu Apr  1 19:58:37 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/{factory.rb,registry.rb}: fixed illegal mapped URI</div><div class='add'>+	  object with soap/marshal.</div><div class='add'>+	  added URIFactory class for URI mapping.  BasetypeFactory checks</div><div class='add'>+	  instance_variables when original mapping is not allowed (ivar must</div><div class='add'>+	  be empty).  Instance of URI have instance_variables but it must be</div><div class='add'>+	  llowed whenever original mapping is allowed or not.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 19:06:23 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (year_leap_p): new function.</div><div class='add'>+	  (timegm_noleapsecond): ditto.</div><div class='add'>+	  (search_time_t): use timegm_noleapsecond instead of</div><div class='add'>+	  mktime for first guess.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 12:05:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass): define internal methods of the</div><div class='add'>+	  result class, but not metaclass of the caller.  [ruby-talk:96156]</div><div class='add'>+</div><div class='add'>+	* intern.h: provide proper prototypes.  [ruby-core:02724]</div><div class='add'>+</div><div class='add'>+	* ruby.h: missing.h is now prerequisite to intern.h.</div><div class='add'>+</div><div class='add'>+Wed Mar 31 11:17:16 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): raises RangeError if uv is out of UTF8 value</div><div class='add'>+	  range.  [ruby-dev:23281]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_binmode): stdio buffer should be empty when calling</div><div class='add'>+	  IO#binmode.  [ruby-talk:96155]</div><div class='add'>+</div><div class='add'>+Tue Mar 30 20:25:34 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (search_time_t): limit guess range by mktime if it is</div><div class='add'>+	  available.  [ruby-dev:23274]</div><div class='add'>+</div><div class='add'>+Tue Mar 30 18:19:00 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): fix SEGV at retry in iterator's receiver.</div><div class='add'>+	  [ruby-dev:23227]</div><div class='add'>+</div><div class='add'>+Mon Mar 29 20:17:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_exec): follow older behavior if close-on-exec is not</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): protect from exceptions while waiting failed</div><div class='add'>+	  process, if status is given.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 16:25:37 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (clean-local, distclean-local): remove</div><div class='add'>+	  work files.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (clean-local): ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar 28 14:23:02 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: def m( arg ) -&gt; def m(arg).</div><div class='add'>+</div><div class='add'>+Sun Mar 28 14:09:13 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (auth): failed when account/password include "%".</div><div class='add'>+	  [ruby-talk:95933]</div><div class='add'>+</div><div class='add'>+Sat Mar 27 21:40:41 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: permit extra semicolon in content-type field.</div><div class='add'>+</div><div class='add'>+Sat Mar 27 10:40:48 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* (lib/pp.rb, lib/prettyprint.rb): define seplist in PP::PPMethods</div><div class='add'>+	  instead of PrettyPrint.</div><div class='add'>+</div><div class='add'>+Sat Mar 27 01:47:09 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: trim tail space of each line.  no user visible change.</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb: fixed class definition mismatch.</div><div class='add'>+</div><div class='add'>+	* sample/openssl/gen_csr.rb: fixed wrong usage text.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 23:15:24 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb (RI::Options::show_version):</div><div class='add'>+	  Add --version option</div><div class='add'>+</div><div class='add'>+Thu Mar 25 21:45:00 2004  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: Bug in + and - reported by Bret Jolly</div><div class='add'>+	  fixed.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 21:01:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* version.c (ruby_show_copyright): obtain copyright year from</div><div class='add'>+	  RUBY_RELEASE_YEAR.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 19:37:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: default rubyw icon to ruby.ico, and let DLL also</div><div class='add'>+	  include them.</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb: include winver.h for older WindowsCE.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 14:01:03 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, */Makefile.sub (lib, dll): phony targets.</div><div class='add'>+</div><div class='add'>+	* configure.in (ruby, miniruby): ditto.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in (rubyw): ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar 25 04:16:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb (RI::Options): Add the --list-names option,</div><div class='add'>+	  which dumps our all known names</div><div class='add'>+</div><div class='add'>+Thu Mar 25 03:57:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_util.rb (NameDescriptor::initialize): No longer</div><div class='add'>+	  allow nested classes to be designated using "."--you must</div><div class='add'>+	  now use "::"</div><div class='add'>+</div><div class='add'>+Thu Mar 25 02:00:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/one_page_html.rb (Page):</div><div class='add'>+	  Fix to work with C modules.</div><div class='add'>+</div><div class='add'>+Wed Mar 24 20:49:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri.rb: Documented (thanks Dmitry V. Sabanin).</div><div class='add'>+	* lib/uri/common.rb: Ditto.</div><div class='add'>+	* lib/uri/ftp.rb: Ditto.</div><div class='add'>+	* lib/uri/generic.rb: Ditto.</div><div class='add'>+	* lib/uri/http.rb: Ditto.</div><div class='add'>+	* lib/uri/https.rb: Ditto.</div><div class='add'>+	* lib/uri/ldap.rb: Ditto.</div><div class='add'>+	* lib/uri/mailto.rb: Ditto.</div><div class='add'>+</div><div class='add'>+Wed Mar 24 18:48:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($ruby, $topdir, $hdrdir): should not be affected by</div><div class='add'>+	  DESTDIR after installed.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (dummy_makefile): default file lists to be cleaned.</div><div class='add'>+</div><div class='add'>+Wed Mar 24 12:32:56 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::handle_class_module):</div><div class='add'>+	  Don't document methods if we don't know for sure the</div><div class='add'>+	  class or module.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):</div><div class='add'>+	  Don't store documentation for singleton classes if we</div><div class='add'>+	  don't know the real class.</div><div class='add'>+</div><div class='add'>+Wed Mar 24 11:11:26 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb (Generators::HTMLGenerator::load_html_template):</div><div class='add'>+	  Allow non-RDoc templates by putting a slash in the template name</div><div class='add'>+</div><div class='add'>+Wed Mar 24 10:05:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb (Tempfile::_close): should not clear @tmpname</div><div class='add'>+	  until the file is really removed. [ruby-core:02684]</div><div class='add'>+</div><div class='add'>+Wed Mar 24 04:12:44 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cvar_get): new method Module#class_variable_get.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_mod_cvar_set): ditto (Module#class_variable_set).</div><div class='add'>+</div><div class='add'>+Tue Mar 23 17:45:22 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_atfork): 1.9 warns no more for thread</div><div class='add'>+	  termination.  [ruby-dev:23212]</div><div class='add'>+</div><div class='add'>+Tue Mar 23 14:46:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, */Makefile.sub, common.mk (clean-local, distclean-local):</div><div class='add'>+	  separate files under directories due to directory separator.</div><div class='add'>+</div><div class='add'>+	* */Makefile.sub (MKFILES): common.mk and */Makefile.sub should not be</div><div class='add'>+	  removed.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, wince/Makefile.sub: $* cannot appear in explicit</div><div class='add'>+	  rules.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile.in: some mingw stuffs were missed.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): Borland make wrongly removes braces</div><div class='add'>+	  from command lines.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: needs bcc32/mkexports.rb.</div><div class='add'>+</div><div class='add'>+Mon Mar 22 08:21:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, */Makefile.sub, common.mk: extract common portions.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, cygwin/GNUmakefile.in, */Makefile.sub (RBCONFIG):</div><div class='add'>+	  separated time stamp file for rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* configure.in: append common.mk to Makefile.</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: keep mtime of rbconfig.rb if unchanged.</div><div class='add'>+</div><div class='add'>+	* win32/rm.bat: remove multiple files.</div><div class='add'>+</div><div class='add'>+	* wince/mkconfig_wce.rb: use fake.rb instead.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 22:17:35 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#virtual_host):</div><div class='add'>+	  sort @virtual_hosts in address, port, host order.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#lookup_server):</div><div class='add'>+	  hostname should not be match if :ServerAlias is not given.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 21:11:16 2004  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell/*: bug fix for Shell#system(command_line_string).</div><div class='add'>+</div><div class='add'>+Sun Mar 21 21:04:42 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: add -width option to .Bl for old groff.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 18:57:37 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/*: Test::Unit::TestCase -&gt; RSS::TestCase and</div><div class='add'>+	  Test::Unit::Assertions -&gt; RSS::Assertions.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 18:48:20 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/{rss,dublincore,syndication}.rb: handled W3CDTF correctly.</div><div class='add'>+</div><div class='add'>+Sun Mar 21 18:15:29 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_xml-stylesheet.rb: added tests for xml-stylesheet.</div><div class='add'>+</div><div class='add'>+	* lib/rss/xml-stylesheet.rb: added xml-stylesheet parsing</div><div class='add'>+	  function.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 23:51:03 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_require_safe): preserve old ruby_errinfo.</div><div class='add'>+	  [ruby-talk:95409]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_raise): should not clear backtrace information if</div><div class='add'>+	  exception object already have one.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 21:21:03 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: rm -rf $extout, not extout.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 15:25:36 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/template/html/html.rb (RDoc::Page): Force</div><div class='add'>+	  page background to white.</div><div class='add'>+</div><div class='add'>+Sat Mar 20 09:33:36 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb, lib/date/format.rb: _parse() now accepts fractional</div><div class='add'>+	  part of second minute that follows a comma or a full stop.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 21:06:21 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assoc_list): allow {sym: val} style Hash. [Ruby2]</div><div class='add'>+	  this change is done by Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 15:15:15 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_set): class variables become private to the</div><div class='add'>+	  particular class/module. [Ruby2]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_get): ditto.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_cvar_defined): ditto.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 11:31:32 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($beos, $solaris): add OS flags.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (RUBY): / is not recognized as path separator on</div><div class='add'>+	   nmake/bmake. [ruby-list:39388]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CLEANLIBS, CLEANOBJS): should remove *.exp with *.so.</div><div class='add'>+</div><div class='add'>+Fri Mar 19 01:55:57 2004  Mauricio Fernandez  &lt;batsman.geo@yahoo.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_sync): need not to check writable. [ruby-core:02674]</div><div class='add'>+</div><div class='add'>+Thu Mar 18 19:47:44 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb, rubytest.rb: do not depend on srcdir.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 18:50:06 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: no longer embed srcdir and compile_dir into</div><div class='add'>+	  rbconfig.rb.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb: obtain top_srcdir and topdir from library</div><div class='add'>+	  paths.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 17:46:35 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: do not undef :to_a.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 16:22:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_eq): avoid false positive by using scope and</div><div class='add'>+	  dyna_vars.  no longer use frame.uniq.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_arity): arity is now defined as number of</div><div class='add'>+	  parameters that would not be ignored. i.e. Proc.new{}.arity</div><div class='add'>+	  returns zero.  update test suites too.</div><div class='add'>+</div><div class='add'>+Thu Mar 18 15:27:25 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: remove specialized version of rb_Array().  use simple</div><div class='add'>+	  one defined in object.c.</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): remove Kernel#to_a.</div><div class='add'>+</div><div class='add'>+	* enum.c (enum_zip): use "to_a" instead of "to_ary".</div><div class='add'>+</div><div class='add'>+Wed Mar 17 00:22:03 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniguruma.h: imported Oniguruma 2.2.5.</div><div class='add'>+	* regparse.c: ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar 16 11:14:17 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch_helper): File.fnmatch('\.', '.') should return true.</div><div class='add'>+	  (Rev1.112 lost compatiblity)</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch_helper): File.fnmatch('\/', '/', File::FNM_PATHNAME)</div><div class='add'>+	  should return true. (Rev1.112 lost compatiblity)</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): File.fnmatch('**/.boo', '.foo/.boo',</div><div class='add'>+	  File::FNM_PATHNAME) should return false because of leading period.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 17:01:07 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (exc_initialize): calling 'to_str' each time just for</div><div class='add'>+	  type checking is too heavy.  [ruby-core:02661]</div><div class='add'>+</div><div class='add'>+Mon Mar 15 10:14:51 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SocketForwarder):</div><div class='add'>+	  add do_not_reverse_lookup.</div><div class='add'>+</div><div class='add'>+Mon Mar 15 07:39:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): should not re-submit TAG_BREAK if this</div><div class='add'>+	  yield is not break destination. [ruby-dev:23197]</div><div class='add'>+</div><div class='add'>+Sun Mar 14 22:07:38 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_raise): err at unstarted thread.  (PR#1302)</div><div class='add'>+</div><div class='add'>+Sat Mar 13 14:56:32 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_drb.rb: use 'druby://localhost:0'. [ruby-dev:23078]</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_eval.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_large.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_safe1.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/drb/ut_drb_drbssl.rb: use 'drbssl://localhost:0'.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 23:52:56 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): directory recursion '**/' can be used with</div><div class='add'>+	  File::FNM_PATHNAME. [ruby-dev:22901]</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch, fnmatch_helper): only '/' is accepted as path</div><div class='add'>+	  separator even in DOSISH environment. [ruby-dev:22974]</div><div class='add'>+	  [ruby-list:39337]</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch_helper): faster '*' matching.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 20:19:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (rb_cv_noreturn): default for platforms not support</div><div class='add'>+	  prototypes.</div><div class='add'>+</div><div class='add'>+	* ruby.c (ruby_init_loadpath): buffer for path name should have</div><div class='add'>+	  MAXPATHLEN.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): include topdir and hdrdir in VPATH.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): default dependency rule.</div><div class='add'>+</div><div class='add'>+Fri Mar 12 07:35:36 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config::General): add</div><div class='add'>+	  :DoNotReverseLookup.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (WEBrick::GenericServer#accept): call</div><div class='add'>+	  do_not_reverse_lookup for each socket if :DoNotReverseLookup</div><div class='add'>+	  is set.  [ruby-code:02357]</div><div class='add'>+</div><div class='add'>+Wed Mar 10 22:26:25 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (remove_dir): should handle symlink correctly.</div><div class='add'>+	  This patch is contributed by Christian Loew.  [ruby-talk:94635]</div><div class='add'>+</div><div class='add'>+Wed Mar 10 16:28:42 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (return_jump): set return value to the return</div><div class='add'>+	  destination.  separated from localjump_destination().</div><div class='add'>+</div><div class='add'>+	* eval.c (break_jump): break innermost loop (or thread or proc).</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): set exit_value for block break.</div><div class='add'>+</div><div class='add'>+Wed Mar 10 16:00:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_s_def): Struct::new executes block with</div><div class='add'>+	  generated struct class. [ruby-talk:02606]</div><div class='add'>+</div><div class='add'>+Wed Mar 10 15:58:43 2004  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): Only print backtrace if generating the backtrace</div><div class='add'>+	  doesn't generate an exception.  [ruby-core:02621]</div><div class='add'>+</div><div class='add'>+Wed Mar 10 10:15:16 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c (opt_W_getter): get rid of warning.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub:</div><div class='add'>+	  fixed dependency.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 13:04:26 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): raise IOError instead of calling</div><div class='add'>+	  rb_sys_fail().  [ruby-talk:23181]</div><div class='add'>+</div><div class='add'>+Tue Mar  9 10:03:40 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub:</div><div class='add'>+	  replaced regex.c entry with Oniguruma files.</div><div class='add'>+</div><div class='add'>+Tue Mar  9 01:09:46 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: replaced regex.c entry with Oniguruma files.</div><div class='add'>+</div><div class='add'>+Mon Mar  8 23:16:07 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPHeader did not initialized correctly.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (connect): does same debug output.</div><div class='add'>+</div><div class='add'>+Mon Mar  8 21:38:18 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (add_header): remove warning. [ruby-dev:23170]</div><div class='add'>+</div><div class='add'>+Mon Mar  8 21:09:39 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (range): Cancel change for incomplete '['. More discussion</div><div class='add'>+	  is needed.</div><div class='add'>+</div><div class='add'>+Mon Mar  8 19:35:13 2004  akira yamada  &lt;akira@arika.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb (URI::REGEXP::PATTERN::HOSTPORT): (?:#{PORT})</div><div class='add'>+	  -&gt; (?::#{PORT}).  [ruby-dev:23170]</div><div class='add'>+</div><div class='add'>+Mon Mar  8 15:03:24 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (range): treat incomplete '[' as ordinary character (like</div><div class='add'>+	  has_magic does). fix buffer overrun at incomplete escape like '[\'.</div><div class='add'>+</div><div class='add'>+Mon Mar  8 13:35:32 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regparse.c (parse_exp): need to separate initialization for bcc32.</div><div class='add'>+	  [ruby-dev:23169]</div><div class='add'>+</div><div class='add'>+	* oniguruma.h (ONIG_EXTERN): check __GNUC__ instead of __CYGWIN__.</div><div class='add'>+</div><div class='add'>+Mon Mar  8 01:05:55 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb (WEBrick::Config::HTTP): rename :RequestHander</div><div class='add'>+	  to :RequestCallback and add new option :ServerAlias.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): use</div><div class='add'>+	  :RequestCallback and warn if :RequestHandler is in server's option.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): should print</div><div class='add'>+	  error message for WEBrick::HTTPSataus::Error.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#lookup_server):</div><div class='add'>+	  lookup for hostname from :ServerAlias if the req.host is not match</div><div class='add'>+	  to :ServerName.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet.rb (WEBrick::HTTPServlet::CGIHandler#do_GET):</div><div class='add'>+	  use $?.exitstatus and refine log message.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 16:22:26 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): use $? instead of $&lt;.</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb (commit_new): use FileUtils.copy_stream for Cygwin.</div><div class='add'>+	  [ruby-dev:23157]</div><div class='add'>+</div><div class='add'>+Sun Mar  7 05:34:42 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: HTTPHeader keeps its header fields as an array.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method HTTPHeader#add_header, get_fields.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method HTTPHeader#content_length=.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method HTTPHeader#content_type, main_type,</div><div class='add'>+	  sub_type, type_params, content_type=, set_content_type.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTPHeader#basic_encode): result of pack(m) may</div><div class='add'>+	  contain multiple LFs.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 03:11:00 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method Net::HTTPRequest#body(=).</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: new method Net::HTTPRequest#body_stream(=).</div><div class='add'>+</div><div class='add'>+Sun Mar  7 02:06:07 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: spin off https code again.</div><div class='add'>+</div><div class='add'>+	* lib/net/https.rb: new file.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/https.rb: removed.  moved to net/https with</div><div class='add'>+	  slight modifications.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/protocols.rb: removed.  merged with net/http.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: new class BufferedIO.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: InternetMessageIO &lt; BufferedIO.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: BufferedIO.new takes an IO.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: follow InternetMessageIO's change.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Mar  7 00:55:03 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: remove method: InternetMessageIO#address,</div><div class='add'>+	  port, ip_address, read_timeout(=), socket.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: simplify code.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: apply latest coding style.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 15:15:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/depend: depends on re.h and regex.h.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: no version check needed.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c (strscan_init_copy): struct re_registers must</div><div class='add'>+	  not be bitwise copied.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 11:14:33 2004  David Black  &lt;dblack@wobblini.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: refixed the previous fix in IO#block_scanf</div><div class='add'>+</div><div class='add'>+Sat Mar  6 10:49:40 2004  David Black  &lt;dblack@wobblini.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: fixed a logic glitch in IO#block_scanf</div><div class='add'>+</div><div class='add'>+Sat Mar  6 02:00:19 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: net/https is merged.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/https.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Mar  6 00:39:21 2004  Kazuo Saito  &lt;ksaito@uranus.dti.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* oniggnu.h: imported from Oniguruma library.</div><div class='add'>+	* oniguruma.h: ditto.</div><div class='add'>+	* regcomp.c: ditto.</div><div class='add'>+	* regenc.c: ditto.</div><div class='add'>+	* regenc.h: ditto.</div><div class='add'>+	* regerror.c: ditto.</div><div class='add'>+	* regex.c: ditto.</div><div class='add'>+	* regexec.c: ditto.</div><div class='add'>+	* reggnu.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'>+	* ascii.c: ditto.</div><div class='add'>+	* euc_jp.c: ditto.</div><div class='add'>+	* sjis.c: ditto.</div><div class='add'>+	* utf8.c: ditto.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: added Oniguruma files listed above.</div><div class='add'>+</div><div class='add'>+	* LEGAL: added Oniguruma license.</div><div class='add'>+</div><div class='add'>+	* regex.h: now includes oniggnu.h.</div><div class='add'>+</div><div class='add'>+	* re.c: applied Oniguruma patch.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 23:13:08 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: support WebDAV methods, PROPPATCH, LOCK,</div><div class='add'>+	  UNLOCK, OPTIONS, PROPFIND, DELETE, MOVE, COPY, MKCOL.</div><div class='add'>+	  This patch is contributed by Tatsuki Sugiura.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 20:58:37 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Net::HTTPResponse#response is obsolete.</div><div class='add'>+	  [ruby-core:02592]</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Net::HTTPResponse#header is obsolete.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: Net::HTTPResponse#read_header is obsolete.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 20:10:57 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: new method StringScanner#initialize_copy</div><div class='add'>+	  to allow #dup and #clone.</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_strscan.rb: test StringScanner#dup.</div><div class='add'>+</div><div class='add'>+Fri Mar  5 19:42:09 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTPResponse#to_ary): should return an object</div><div class='add'>+	  which does not respond to #to_ary.  It causes infinite loop in</div><div class='add'>+	  puts. [ruby-core:02578]</div><div class='add'>+</div><div class='add'>+Fri Mar  5 00:51:35 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Move RDoc documentation so that you can</div><div class='add'>+	  now say 'ri Test::Unit'</div><div class='add'>+</div><div class='add'>+Thu Mar  4 22:31:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: miniruby is not needed for cross compile.</div><div class='add'>+</div><div class='add'>+	* configure.in (PREP): miniruby for native compile.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 11:46:32 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/extservm.rb (DRb::ExtServManager#invoke_service_command):</div><div class='add'>+	  detach server processes to get rid of zombies.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 10:41:25 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h (T_MASK): save 1 bit in flags bits by shifting T_xxx</div><div class='add'>+	  values.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 08:08:36 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: get rid of warnings.</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Mar  4 01:17:28 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_display.rb (DefaultDisplay::page): wait until the</div><div class='add'>+	  pager terminates.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 13:10:56 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_hash): new method. [ruby-talk:93968]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_eq): do not compare dyna_vars.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_hash): new method.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): protect break/return from within orphan (or</div><div class='add'>+	  lambda) Proc object.</div><div class='add'>+</div><div class='add'>+Wed Mar  3 09:52:05 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb ($topdir): use compile_dir only when not installed yet.</div><div class='add'>+	  [ruby-talk:94098]</div><div class='add'>+</div><div class='add'>+Wed Mar  3 01:18:52 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/converter.rb: handled Uconv::Error.</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb: DublincoreModel -&gt; DublinCoreModel</div><div class='add'>+</div><div class='add'>+Wed Mar  3 00:59:30 2004  David Black  &lt;dblack@wobblini.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: soak_up_spaces only ungetc's non-space last</div><div class='add'>+	  character</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: IO#block_scanf now returns partial last iteration</div><div class='add'>+	  array if format string matches partly</div><div class='add'>+</div><div class='add'>+Tue Mar  2 16:30:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): erred program name should be reported by</div><div class='add'>+	  exceptions, instead of the first argument.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn): ditto.</div><div class='add'>+</div><div class='add'>+	* process.c (proc_spawn_v): use first argument as program name.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_aspawn): ditto.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): search executable file if no program</div><div class='add'>+	  name given.</div><div class='add'>+</div><div class='add'>+	* lib/drb/extservm.rb (invoke_service_command): use Process.spawn.</div><div class='add'>+	  [ruby-dev:23103]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_display.rb (setup_pager): use IO.popen.</div><div class='add'>+	  [ruby-dev:23086], [ruby-dev:23103]</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/diagram.rb (convert_to_png): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/chm_generator.rb (compile_project): ditto.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 12:24:03 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, wince/Makefile.sub (config.h): shouldn't check</div><div class='add'>+	  defined? NORETURN. [ruby-dev:23100]</div><div class='add'>+</div><div class='add'>+Tue Mar  2 11:28:40 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (test_ljump): cannot use</div><div class='add'>+	  assert_nothing_raised due to passing block.</div><div class='add'>+</div><div class='add'>+Tue Mar  2 06:23:14 2004  David Black  &lt;dblack@wobblini.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: fixed Kernel#scanf to propagate code block</div><div class='add'>+</div><div class='add'>+Mon Mar  1 23:25:40 2004  David Black  &lt;dblack@wobblini.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: Partial fix so STDIN#scanf works with new</div><div class='add'>+	 STDIN#pos behavior</div><div class='add'>+</div><div class='add'>+Mon Mar  1 19:42:05 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak: configure's default is "--enable-install-doc"</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+Mon Mar  1 12:24:10 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_alias):</div><div class='add'>+	  Allow aliases to have parentheses</div><div class='add'>+</div><div class='add'>+Sun Feb 29 23:14:53 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_class):</div><div class='add'>+	  Handle :nodoc: on singleton classes.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 21:50:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, bcc32/README.bcc32, bcc32/configure.bat,</div><div class='add'>+	  bcc32/setup.mak: new configure scheme. use ``configure --prefix=dir''</div><div class='add'>+	  instead of ``make DESTDIR=dir install''.</div><div class='add'>+	  --with-static-linked-ext support on bccwin32. [ruby-dev:23034]</div><div class='add'>+</div><div class='add'>+Sat Feb 28 21:50:20 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak: "configure --disable-install-doc" is now working.</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 15:09:49 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat: append missing label ":exit".</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat: fix typo.</div><div class='add'>+</div><div class='add'>+Sat Feb 28 10:31:03 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add test_erb.rb</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb, test/erb/test_erb.rb: don't forget filename,</div><div class='add'>+	  if both filename and safe_level given. [ruby-dev:23050]</div><div class='add'>+</div><div class='add'>+Sat Feb 28 01:08:40 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should not allow symbol for invalid global</div><div class='add'>+	  variable (e.g. `:$-)`). [ruby-core:02518]</div><div class='add'>+</div><div class='add'>+Fri Feb 27 20:37:09 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): no orphan block check is needed when pcall</div><div class='add'>+	  is true.</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_destination): update localjump condition.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 02:10:49 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_destination): lambda should not interfere</div><div class='add'>+	  return from the yielded block.</div><div class='add'>+</div><div class='add'>+Fri Feb 27 00:53:49 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb, test/drb/drbtest.rb: require drb/eq.rb by default</div><div class='add'>+</div><div class='add'>+Thu Feb 26 12:15:02 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (make_cmdvector): adjust successive double-quote</div><div class='add'>+	  handling.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 09:42:56 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (delete_if_i): use st_delete_safe() (via</div><div class='add'>+	  rb_hash_delete()) instead of returning ST_DELETE.</div><div class='add'>+</div><div class='add'>+Thu Feb 26 02:35:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_exec): get rid of SEGV when exec failed for command</div><div class='add'>+	  in single string.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 21:17:33 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (obj_free), io.c (rb_io_fptr_finalize), rubyio.h (OpenFile):</div><div class='add'>+	  sharing OpenFile.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_initialize): accept IO instance.  [ruby-dev:22195]</div><div class='add'>+</div><div class='add'>+Wed Feb 25 21:16:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (with_destdir): should return the given argument if no</div><div class='add'>+	  DESTDIR is given.</div><div class='add'>+</div><div class='add'>+	* instruby.rb: use path name expansion of cmd.exe.</div><div class='add'>+</div><div class='add'>+Wed Feb 25 20:44:45 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi-lib.rb, lib/getopts.rb, lib/importenv.rb, lib/parsearg.rb:</div><div class='add'>+	  warn with caller position.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_content.rb, test/rss/test_dublincore.rb,</div><div class='add'>+	  test/rss/test_syndication.rb, test/rss/test_trackback.rb: use cgi</div><div class='add'>+	  instead of cgi-lib.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 18:42:03 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): '**/' should not match leading period</div><div class='add'>+	  unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]</div><div class='add'>+</div><div class='add'>+Tue Feb 24 18:03:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb (test_fnmatch): test for dir.c:1.108.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 17:07:17 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): File.fnmatch with File::FNM_PATHNAME was broken</div><div class='add'>+	  for the pattern including '*' followed by '/'.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 13:22:21 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc::normalized_file_list): Attempt to get better</div><div class='add'>+	  heuristics on which files to include and exclude. Now only include</div><div class='add'>+	  non-standard files if they are explicitly named in ARGV.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 07:23:30 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Deal with :stopdoc: when</div><div class='add'>+	  choosing a default main page to display (ie. don't select a page</div><div class='add'>+	  if we don't have documentation for it).</div><div class='add'>+</div><div class='add'>+Tue Feb 24 06:40:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RubyLex::identify_identifier): Handle</div><div class='add'>+	  class variables in code listings</div><div class='add'>+</div><div class='add'>+Tue Feb 24 06:32:27 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_aliases): Handle</div><div class='add'>+	  aliases in C files.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 06:16:22 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb (RDoc::RDoc::document): Now create op dir _before_</div><div class='add'>+	  parsing files.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 06:08:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_constant):</div><div class='add'>+	  Start collecting text of constant values earlier: was missing</div><div class='add'>+	  values in output if there was no space after '='</div><div class='add'>+</div><div class='add'>+Tue Feb 24 06:08:25 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Escape contant values.</div><div class='add'>+</div><div class='add'>+Tue Feb 24 03:45:06 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (ossl_config_each): add new method</div><div class='add'>+	  OpenSSL::Config#each. it iterates with section name, field name</div><div class='add'>+	  and value.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (Init_ossl_config): include Enumerable.</div><div class='add'>+</div><div class='add'>+Mon Feb 23 09:09:44 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb (parse_args): use optparse instead of getopts.</div><div class='add'>+</div><div class='add'>+	* instruby.rb (DOSISH): embedded path in batch files should not be</div><div class='add'>+	  prefixed by DESTDIR.  [ruby-core:02186]</div><div class='add'>+</div><div class='add'>+Sun Feb 22 14:58:04 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: $extstatic is Array or nil now.  [ruby-talk:93383]</div><div class='add'>+</div><div class='add'>+	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub: terminate options.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (init_mkmf): $INCFLAGS also should be lazy-evaluated.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 13:05:37 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/mailto.rb (URI::MailTo::to_s): should include fragment.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 12:58:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: use optparse instead of getopts.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 22 09:51:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* re.c: corrected documentation format (rb_reg_initialize_m)</div><div class='add'>+</div><div class='add'>+Sat Feb 21 22:41:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c: documented, but needs more effort.</div><div class='add'>+</div><div class='add'>+Sat Feb 21 14:33:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: prefer relative path.  [ruby-talk:93037]</div><div class='add'>+</div><div class='add'>+Sat Feb 21 11:12:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/os2.c, missing/x68.c: typo fix.  pointed out by greentea.</div><div class='add'>+</div><div class='add'>+Fri Feb 20 19:11:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct#initialize_copy): should not share</div><div class='add'>+	  members.  [ruby-dev:22966]</div><div class='add'>+</div><div class='add'>+Fri Feb 20 18:59:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB::IRB.parse_opts): add -I option to</div><div class='add'>+	  irb. [ruby-dev:39243]</div><div class='add'>+</div><div class='add'>+Fri Feb 20 12:55:27 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (pipe_open): fix typo.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): first argument to CreateProcess() must</div><div class='add'>+	  have path, not just basename.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 23:24:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb (Generators::HtmlClass::build_attribute_list):</div><div class='add'>+	  Support visibility modifiers for attributes</div><div class='add'>+</div><div class='add'>+Thu Feb 19 22:39:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb: documented</div><div class='add'>+</div><div class='add'>+Thu Feb 19 22:39:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: DRb.start_service only once in testsuites.</div><div class='add'>+	  DRb.start_service could handle this.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 22:24:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/rubytypeFactory.rb: should not dump singleton class.</div><div class='add'>+	  [ruby-dev:22588]</div><div class='add'>+	  c = class &lt;&lt; Object.new; class C; self; end; end; SOAPMarshal.dump(c)</div><div class='add'>+</div><div class='add'>+Thu Feb 19 18:08:18 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: improved documentation</div><div class='add'>+</div><div class='add'>+Thu Feb 19 18:08:18 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h: fixed prototypes.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (wait): same as waitpid() with -1.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 02:34:28 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup/preprocess.rb (SM::PreProcess::include_file):</div><div class='add'>+	  Only strip comment markers if all lines start with comments.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 03:05:49 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: StringScanner#restsize is obsolete;</div><div class='add'>+	  use #rest_size instead.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: StringScanner#matchedsize is obsolete;</div><div class='add'>+	  use #matched_size instead.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 02:42:19 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: don't use rb_eval_string, it defines</div><div class='add'>+	  classes under the module when required in module clauses.</div><div class='add'>+	  [ruby-dev:22951]</div><div class='add'>+</div><div class='add'>+Thu Feb 19 02:37:28 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: merge documentation from 1.8 branch.</div><div class='add'>+	  Thanks Gavin Sinclair.</div><div class='add'>+</div><div class='add'>+Thu Feb 19 00:20:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi-lib.rb:   deprecated after 1.8.1</div><div class='add'>+</div><div class='add'>+	* lib/getopts.rb:   ditto</div><div class='add'>+</div><div class='add'>+	* lib/importenv.rb: ditto</div><div class='add'>+</div><div class='add'>+	* lib/parsearg.rb:  ditto</div><div class='add'>+</div><div class='add'>+Thu Feb 19 00:11:05 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/markup/simple_markup/preprocess.rb (SM::PreProcess::handle):</div><div class='add'>+	  Strip extraneous space from filenames in :include:</div><div class='add'>+</div><div class='add'>+Wed Feb 18 22:53:41 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/unix.rb: remove O_NONBLOCk, thanks \ay</div><div class='add'>+</div><div class='add'>+Wed Feb 18 22:42:19 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/rinda/test_rinda.rb: improt test_rinda.rb</div><div class='add'>+</div><div class='add'>+Wed Feb 18 22:03:11 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/*: should not depend on $KCODE.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 18:07:09 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sprintf.rb: added tests.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 17:18:01 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: need to include &lt;olectl.h&gt; on Cygwin.</div><div class='add'>+</div><div class='add'>+Wed Feb 18 10:40:38 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): sign bit extension should not be done</div><div class='add'>+	  if FPLUS flag is specified.  [ruby-list:39224]</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): do not prepend dots for negative</div><div class='add'>+	  numbers if FZERO is specified.  [ruby-dev:39218]</div><div class='add'>+</div><div class='add'>+Wed Feb 18 10:23:34 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): clean up.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 23:40:34 2004  Guy Decoux  &lt;ts@moulon.inra.fr&gt;</div><div class='add'>+</div><div class='add'>+	* sprintf.c (rb_f_sprintf): preserve original val for</div><div class='add'>+	  format_integer. [ruby-talk:92975]</div><div class='add'>+</div><div class='add'>+Tue Feb 17 23:28:45 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/test_marshal.rb, test/ruby/test_marshal.rb: do $:</div><div class='add'>+	  trick to share the testcase test/ruby/marshaltestlib.rb.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 23:13:23 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/marshaltestlib.rb: common marshal testcase added.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: use above testsuite.</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/test_marshal.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/cmarshal.rb: removed (not used).</div><div class='add'>+</div><div class='add'>+Tue Feb 17 19:34:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): $extout_prefix doesn't vary for libraries.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): remove compile directory if empty.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args) lib/mkmf.rb (create_makefile): move</div><div class='add'>+	  initialization of $extout_prefix from lib/mkmf.rb.  [ruby-dev:22928]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: clear ext and extout directory when cleaning.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CLEANLIBS): should be under $(arch) directory.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 18:02:10 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: ScanError may be (wrongly) garbage</div><div class='add'>+	  collected. (thanks Gavin Sinclair)</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: move ::ScanError to StringScanner::Error.</div><div class='add'>+	  ::ScanError is also defined for backward compatibility.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: #peep is obsolete, use #peek.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: #empty? is obsolete, use #eos?.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: #clear is obsolete, use #terminate.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: #getbyte is obsolete, use #get_byte.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 12:12:47 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (parse_args): delay expanding $(extout) until invoking</div><div class='add'>+	  make.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (CLEANLIBS): should remove files have specific</div><div class='add'>+	  extensions.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 11:33:30 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/rexmlparser.rb: REXML version may be 4 digits.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 10:45:59 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_emitter_end_object): takes only one arg.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 07:48:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/SHIFT_JIS: wrong library name.</div><div class='add'>+</div><div class='add'>+Tue Feb 17 01:35:28 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): care that another thread replace NODE_DREGX_ONCE</div><div class='add'>+	  to NODE_LIT.  [ruby-dev:22920]</div><div class='add'>+</div><div class='add'>+Tue Feb 17 01:20:57 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: new module FileUtils::DryRun.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 23:28:14 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: document reduction.  [ruby-core:02429]</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: added 0..1 test with "0".."1" on display.</div><div class='add'>+	  it should be defined that the specification about what kind of Range</div><div class='add'>+	  is supported in ruby's custom type in YAML.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 22:22:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: corrected doc format</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb: added documentation (from Hugh Sasse)</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb: ditto</div><div class='add'>+</div><div class='add'>+	  [Note: rinda files actually committed Wed Feb 18 07:27:00 2004]</div><div class='add'>+</div><div class='add'>+Mon Feb 16 20:28:52 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: show more warnings. (refering to mingw)</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 18:35:58 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): should create *.pdb on ext/,</div><div class='add'>+	  not .ext/.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (config.status): convert the name of import</div><div class='add'>+	  library.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): now don't need to remove</div><div class='add'>+	  $(TARGET).lib.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 15:45:22 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check functions, fork spawnv.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_s_popen): accept argv not only single command line.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_proc_exec_n): export.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_check_argv): check if arguments are safe to invoke.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_fork): retry to fork.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_spawn): spawn child process asynchronously.</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): raise an exception if the command could not</div><div class='add'>+	  execute.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_argv_size): count necessary size for joined</div><div class='add'>+	  arguments.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_join_argv): join arguments with quoting.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_pipe_exec, rb_w32_spawn, rb_w32_aspawn):</div><div class='add'>+	  accept program name adding to command line.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 15:18:33 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb: add note for Racc full package.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 15:13:01 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/README: new file.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/MANIFEST: add README.</div><div class='add'>+</div><div class='add'>+Mon Feb 16 12:29:10 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_s_list): new method Iconv.list</div><div class='add'>+	  (libiconv only).</div><div class='add'>+</div><div class='add'>+Mon Feb 16 10:29:52 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (CompareImpl): File.fnmatch and Dir.glob get better performance</div><div class='add'>+	  in Win32. This is achived by calling downcase() for single-byte</div><div class='add'>+	  characters. (CharLower() is slower than downcase())</div><div class='add'>+</div><div class='add'>+Mon Feb 16 02:14:29 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: should warn suspicious pointer conversion.</div><div class='add'>+</div><div class='add'>+	* bcc32/setup.mak: ditto.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 20:56:22 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (push_braces): remove wrong const. [ruby-dev:22891]</div><div class='add'>+</div><div class='add'>+Sun Feb 15 20:41:15 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/soap/calc/httpd.rb, sample/soap/exchange/httpd.rb,</div><div class='add'>+	  sample/soap/sampleStruct/httpd.rb, sample/wsdl/googleSearch/httpd.rb:</div><div class='add'>+	  use soap/property instead of getopts for configuring DocumentRoot</div><div class='add'>+	  and port# of httpd.  see samplehttpd.conf below.</div><div class='add'>+</div><div class='add'>+	* sample/soap/calc/samplehttpd.conf,</div><div class='add'>+	  sample/soap/exchange/samplehttpd.conf,</div><div class='add'>+	  sample/soap/sampleStruct/samplehttpd.conf,</div><div class='add'>+	  sample/wsdl/googleSearch/samplehttpd.conf: added.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 19:13:33 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/tuplespace.rb: read(tpl,0), raise RequestExpiredError</div><div class='add'>+	  if not found.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 15:48:57 2004  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c: add IDispatch wrapper in val2variant.</div><div class='add'>+	  Thanks, arton.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 15:23:29 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h, dir.c (rb_glob): add const.</div><div class='add'>+</div><div class='add'>+Sun Feb 15 01:46:05 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: absolute path of ruby is assigned to $(RUBY).</div><div class='add'>+	  [ruby-dev:22870]</div><div class='add'>+</div><div class='add'>+Sat Feb 14 23:59:11 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb: use fileutils.rb instead of ftools.rb.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): define</div><div class='add'>+	  STACK_GROW_DIRECTION.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (config.h): add newer checks.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub (config.h): define NEED_IO_SEEK_BETWEEN_RW.</div><div class='add'>+</div><div class='add'>+Sat Feb 14 23:26:27 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/un.rb: use OptionParser instead of getopts.</div><div class='add'>+</div><div class='add'>+Sat Feb 14 11:28:14 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* sample/drb/*: import lib/drb/sample</div><div class='add'>+</div><div class='add'>+Sat Feb 14 11:14:12 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: add pretty_print, thanks gotoken.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 21:51:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: slighly improved documentation (sync with 1.8)</div><div class='add'>+</div><div class='add'>+Fri Feb 13 19:57:01 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_trackback.rb: added tests for TrackBack with RSS</div><div class='add'>+	  2.0.</div><div class='add'>+</div><div class='add'>+	* test/rss/common.rb: added methods make RSS 2.0.</div><div class='add'>+</div><div class='add'>+	* lib/rss/trackback.rb: TrackBack API is decided.</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb: RSS::VERSION 0.0.7 -&gt; 0.0.8.</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb, lib/rss/rss.rb: replaced $DEBUG by RSS::DEBUG.</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb: removed RSS 2.0 URI. Because RSS 2.0 doesn't</div><div class='add'>+	  have URI.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 14:41:00 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: en-bugged at last commit (Feb 11 23:24:22 2004)</div><div class='add'>+</div><div class='add'>+Fri Feb 13 12:26:37 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: rescue SystemCallError instead</div><div class='add'>+	  of EINVAL.  File.link may raise EACCES on network file systems.</div><div class='add'>+</div><div class='add'>+Fri Feb 13 05:18:58 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: File.link raises EINVAL on</div><div class='add'>+	  Win9x. [ruby-dev:22713]</div><div class='add'>+</div><div class='add'>+Thu Feb 12 21:49:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb: documented</div><div class='add'>+</div><div class='add'>+Thu Feb 12 21:19:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: added and tidied documentation</div><div class='add'>+</div><div class='add'>+Thu Feb 12 20:45:01 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb (WriteAdapater#puts): must append "\n" to</div><div class='add'>+	  the string, don't prepend. (ruby-bugs:PR#1280)</div><div class='add'>+</div><div class='add'>+Thu Feb 12 20:31:43 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_tmpsrc): cpp32 of Borland C++ ignores #error</div><div class='add'>+	  directives in DOS line-ending files at all.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 15:23:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (rparen): ignore preceding newlines to right parentheses.</div><div class='add'>+	  (ruby-bugs:PR#1221) [ruby-dev:22858]</div><div class='add'>+</div><div class='add'>+Thu Feb 12 14:17:43 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set ac_cv_func_link to yes to enable link() on MinGW.</div><div class='add'>+	  [ruby-dev:22241]</div><div class='add'>+</div><div class='add'>+Thu Feb 12 13:32:49 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (link): raise NotImplementedError on Win9X.</div><div class='add'>+	  contributed by Tietew. [ruby-dev:22713]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (link): add const.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 09:56:19 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkComm::tk_split_list): suppress a warning.</div><div class='add'>+</div><div class='add'>+Thu Feb 12 02:23:56 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: use assert_raise instead of assert_raises.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/tsort.rb: ditto.</div><div class='add'>+	  use TSortHash and TSortArray instead of Hash and Array in test.</div><div class='add'>+</div><div class='add'>+Wed Feb 11 23:24:22 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: properly treat a Tcl/Tk's string with escaping</div><div class='add'>+	  special characters.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 20:49:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_proc): return bound Proc object.  [ruby-dev:22854]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_define_method): bind method body itself for Method</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+	* node.h (NODE_DMETHOD): deprecated.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_inherited_p): export.</div><div class='add'>+</div><div class='add'>+Tue Feb 10 16:43:50 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): purge unused check.  [ruby-dev:22850]</div><div class='add'>+</div><div class='add'>+Tue Feb 10 14:33:08 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match): raise TypeError when both arguments are</div><div class='add'>+	  strings. [ruby-dev:22851]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match2): removed.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,</div><div class='add'>+	  wince/Makefile.sub (string.c): now not depend on version.h.</div><div class='add'>+</div><div class='add'>+Mon Feb  9 17:46:07 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub, configure.in,</div><div class='add'>+	  runruby.rb: run rdoc, test and so on with compiled extension</div><div class='add'>+	  libraries.  [ruby-dev:22688]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, lib/mkmf.rb: make extension libraries in separated</div><div class='add'>+	  directory, similar to the actual directory structure.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (FileUtils.copy_file): use the mode of the original</div><div class='add'>+	  file to create new file.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_paths.rb (RI::Paths::SYSDIR): get rid of unexpected</div><div class='add'>+	  influence by environment variable.</div><div class='add'>+</div><div class='add'>+	* bcc32/configure.bat, win32/configure.bat: add install-doc options.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c, win32/win32.h (rb_w32_fstat): fix Borland C runtime</div><div class='add'>+	  bug which returns wrong mode.  [ruby-dev:22846]</div><div class='add'>+</div><div class='add'>+Mon Feb  9 16:30:12 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (detach_process_watcher): return the last status.</div><div class='add'>+	  [ruby-dev:22841]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 16:46:08 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PP::PPMethods::object_address_group): suppress negative</div><div class='add'>+	  sign for higher heap areas.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 16:18:27 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb (YAML_Unit_Tests::test_range_cycle):</div><div class='add'>+	  added tests.</div><div class='add'>+</div><div class='add'>+Sun Feb  8 15:51:57 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb (TestFile::test_fnmatch): added tests for</div><div class='add'>+	  File.fnmatch. [ruby-dev:22815][ruby-dev:22819]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 15:41:45 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb (YAML_Unit_Tests::test_range_cycle):</div><div class='add'>+	  added tests. [ruby-core:02306] [ruby-core:02311]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 14:24:35 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTP#request): should not overwrite Connection</div><div class='add'>+	  header. (ruby-bugs:PR#1274)</div><div class='add'>+</div><div class='add'>+Sun Feb  8 10:11:21 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): Dir.glob('**/') did not work. [ruby-dev:22832]</div><div class='add'>+</div><div class='add'>+Sun Feb  8 00:29:26 2004  Hirokazu Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): File.fnmatch('*?', 'a') should return true.</div><div class='add'>+	  [ruby-dev:22815]</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): File.fnmatch('\[1\]' , '[1]') should return true.</div><div class='add'>+	  [ruby-dev:22819]</div><div class='add'>+</div><div class='add'>+	* dir.c: Did some styles (no change to behavior)</div><div class='add'>+</div><div class='add'>+Sat Feb  7 19:56:11 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb (IRB.rc_files): yield possible rc file names.</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb (IRB::ReadlineInputMethod::initialize):</div><div class='add'>+	  load and save history automatically.  [ruby-core:02352]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 22:48:16 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb (gen_url): Support</div><div class='add'>+	  https in RDoc hyperlinks</div><div class='add'>+</div><div class='add'>+Fri Feb  6 22:41:22 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PPInspectTest#test_to_s_with_iv): rollback the previous</div><div class='add'>+	  commit.  [ruby-dev:22813]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 22:22:50 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PPInspectTest#test_to_s_with_iv): remove instance</div><div class='add'>+	  variable which is defined in the test.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 18:54:18 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb (TestProc::test_eq): added a</div><div class='add'>+	  test.  [ruby-dev:22599]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 18:26:00 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb (TestProc::test_eq): added tests for</div><div class='add'>+	  Proc#==.  [ruby-dev:22592], [ruby-dev:22601]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 10:12:06 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (bsock_do_not_reverse_lookup): control reverse</div><div class='add'>+	  lookup for every instance.  [ruby-core:02346]</div><div class='add'>+</div><div class='add'>+Fri Feb  6 09:15:11 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/extend-command.rb: add irb_help command.  [ruby-talk:91610]</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb (IRB::ExtendCommand::Help): show RDoc.</div><div class='add'>+</div><div class='add'>+Fri Feb  6 00:48:37 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb (PrettyPrint#first?): obsoleted.</div><div class='add'>+</div><div class='add'>+Thu Feb  5 23:56:55 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb (PrettyPrint#seplist): added.</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (PPMethods#pp_object): use seplist.</div><div class='add'>+	  (PPMethods#pp_hash): ditto.</div><div class='add'>+	  (Array#pretty_print): ditto.</div><div class='add'>+	  (Struct#pretty_print): ditto.</div><div class='add'>+	  (MatchData#pretty_print): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb (Set#pretty_print): use seplist.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 22:39:46 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_mode): should not sign-expand, so backout.</div><div class='add'>+</div><div class='add'>+Wed Feb  4 02:12:06 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_l): fix wrong method name in document.</div><div class='add'>+	  (test_S): ditto.</div><div class='add'>+	  (test_b): ditto.</div><div class='add'>+	  (test_c): ditto.</div><div class='add'>+	  (test_suid): ditto.</div><div class='add'>+	  (test_sgid): ditto.</div><div class='add'>+	  (test_sticky): ditto.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 22:36:25 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb, lib/rss/content.rb, lib/rss/dublincore.rb,</div><div class='add'>+	  lib/rss/rss.rb, lib/rss/syndication.rb: removed warnings.</div><div class='add'>+</div><div class='add'>+	* lib/rss/converter.rb: removed handling load error of nkf.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_syndication.rb, test/rss/test_trackback.rb,</div><div class='add'>+	  test/rss/test_dublincore.rb, test/rss/test_content.rb: replaced</div><div class='add'>+	  'require "rss/parser"' by 'require "rss/1.0"'.</div><div class='add'>+</div><div class='add'>+	* test/rss/test_parser.rb, test/rss/test_accessor.rb: removed</div><div class='add'>+	  'require "rss/parser"'.</div><div class='add'>+</div><div class='add'>+Tue Feb  3 11:23:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (reduce_nodes): remove tail returns.  [ruby-talk:90934]</div><div class='add'>+</div><div class='add'>+Tue Feb  3 08:04:57 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (Struct#pretty_print_cycle): follow 1.8 style.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 22:06:31 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (block_append, new_evstr, void_expr0): remove no longer used</div><div class='add'>+	  labels.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 18:45:50 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (dln_load): don't specify RTLD_GLOBAL on Interix,</div><div class='add'>+	  because it caused SEGV when running runner.rb.</div><div class='add'>+</div><div class='add'>+Mon Feb  2 01:54:00 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb (Struct#pretty_print): make it 1.8 style.</div><div class='add'>+	  (Numeric#pretty_print, FalseClass#pretty_print)</div><div class='add'>+	  (TrueClass#pretty_print, Module#pretty_print): fix pp for objects</div><div class='add'>+	  with instance variables.  [ruby-talk:91157]</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): return nil on loopback</div><div class='add'>+	  address.</div><div class='add'>+</div><div class='add'>+	* lib/resolv-replace.rb (BasicSocket#send): don't replace because</div><div class='add'>+	  it has no hostname argument.</div><div class='add'>+	  (IPSocket.getaddress): raise SocketError instead of</div><div class='add'>+	  Resolv::ResolvError for errors.</div><div class='add'>+	  (TCPSocket#initialize, UDPSocket#bind, UDPSocket#connect)</div><div class='add'>+	  (SOCKSSocket#initialize): use IPSocket.getaddress instead of</div><div class='add'>+	  Resolv.getaddress.</div><div class='add'>+	  (UDPSocket#send): recognize 3 arguments form.  try all addresses on</div><div class='add'>+	  4 arguments form.</div><div class='add'>+</div><div class='add'>+Sun Feb  1 23:00:00 2004  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal.c: Bug in BigDecimal("1e#{n}").add BigDecimal('.5'),n)</div><div class='add'>+	  reported and fixed by Javier Goizueta.</div><div class='add'>+</div><div class='add'>+Sun Feb  1 18:21:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	  From ruby_1_8 branch:</div><div class='add'>+	* lib/test/unit.rb: rearranged documentation for RDoc's sake.</div><div class='add'>+	* lib/matrix.rb: improved documentation.</div><div class='add'>+	* lib/net/http.rb: slight documentation formatting improvement.</div><div class='add'>+</div><div class='add'>+Sun Feb  1 05:30:06 2004  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): warn HTTP_PROXY.</div><div class='add'>+	 raise an errror on non-http proxy URI.</div><div class='add'>+	 (OpenURI::Buffer#&lt;&lt;): make a tempfile binmode.  [ruby-talk:90793]</div><div class='add'>+</div><div class='add'>+Sun Feb  1 00:57:41 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb (RSS::Parser): added @@default_parser. Used</div><div class='add'>+	  XML parser became selectable.</div><div class='add'>+	* test/rss/test_parser.rb: added tests for</div><div class='add'>+	  RSS::Parser.default_parser.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 02:28:15 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RPATHFLAG): set to -Wl,-R like NetBSD on Interix.</div><div class='add'>+</div><div class='add'>+Sat Jan 31 01:09:41 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: leading 0 padding of timestamp usec part.</div><div class='add'>+</div><div class='add'>+Fri Jan 30 18:53:23 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (KR_REHASH): wrong hash value on sizeof(long) &gt; sizeof(int).</div><div class='add'>+</div><div class='add'>+Thu Jan 29 23:11:57 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (DLEXT2): removed.  Ruby does not treat</div><div class='add'>+	  ".dll" as a extension library anymore.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub (DLEXT2):</div><div class='add'>+	  ditto.</div><div class='add'>+</div><div class='add'>+	* util.c (mblen): fix overrun.  [ruby-dev:22672]</div><div class='add'>+</div><div class='add'>+Thu Jan 29 22:41:53 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Allow 'link:' in Tidylinks.</div><div class='add'>+	  THis means you can write "see f1[link:files/f1_rb.html]".</div><div class='add'>+</div><div class='add'>+Thu Jan 29 22:24:47 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/openssl/gen_csr.rb: follow OpenSSL::X509::Name change.</div><div class='add'>+	  ASN.1 type of subject DN elements were wrong.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 22:19:51 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/*: remove $: trick.  [ruby-dev:22763]  use test/runner.rb to</div><div class='add'>+	  run test.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 19:28:16 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (Request#initialize): reject only when a path is</div><div class='add'>+	  empty. [ruby-dev:22771]</div><div class='add'>+</div><div class='add'>+Thu Jan 29 18:54:08 2004  H.Yamamoto  &lt;ocean@m2.ccsnet.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): infinite loop bug in win32 code.</div><div class='add'>+	  [ruby-dev:22770]</div><div class='add'>+</div><div class='add'>+Thu Jan 29 17:03:49 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: merge tuning from H.Yamamoto &lt;ocean@m2.ccsnet.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:22761]</div><div class='add'>+</div><div class='add'>+Thu Jan 29 11:32:14 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/test_*: do $: trick while searching a module in the current</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+	* test/xsd/test_xmlschemaparser.rb, test/wsdl/test_emptycomplextype.rb,</div><div class='add'>+	  test/soap/helloworld/test_helloworld.rb,</div><div class='add'>+	  test/soap/calc/{test_calc.rb,test_calc2.rb}: do File.expand_path</div><div class='add'>+	  before using __FILE__.</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: assert_equals -&gt; assert_equal.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 01:56:02 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: usec round-tripping skew. [ruby-core:2305]</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: character Range now round-trips. [ruby-core:2306]</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: add Time and Range tests.</div><div class='add'>+</div><div class='add'>+Thu Jan 29 00:00:46 2004  Kouhei Sutou  &lt;kou@cozmixng.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss: rss/parser.rb is always required.</div><div class='add'>+</div><div class='add'>+Wed Jan 28 15:09:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss/*.rb: remove "test/" prefix.</div><div class='add'>+</div><div class='add'>+Wed Jan 28 13:07:02 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/extconf.rb: include iconv.h for libiconv.  [ruby-dev:22715]</div><div class='add'>+</div><div class='add'>+Wed Jan 28 12:43:07 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rss: rss library imported. [ruby-dev:22726]</div><div class='add'>+</div><div class='add'>+Wed Jan 28 04:29:41 2004  Eric Schwartz  &lt;emschwar@fc.hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb: use LOCK_SH to read, and a few other</div><div class='add'>+	  improvements.  [ruby-core:02328]</div><div class='add'>+</div><div class='add'>+Tue Jan 27 15:00:14 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el: better support for general delimited</div><div class='add'>+	  strings.  [ruby-dev:22695]</div><div class='add'>+</div><div class='add'>+Tue Jan 27 11:04:40 2004  FUKUMOTO Atsushi  &lt;fukumoto@nospam.imasy.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (s_recvfrom): sending length should be an</div><div class='add'>+	  invariant while retrying on EAGAIN.  [ruby-talk:89962]</div><div class='add'>+</div><div class='add'>+Tue Jan 27 10:31:28 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (set_argv): fix condition.</div><div class='add'>+</div><div class='add'>+Tue Jan 27 02:26:31 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (WEBrick:HTTPUtils::parse_header):</div><div class='add'>+	  refine regex for header-name.</div><div class='add'>+</div><div class='add'>+Mon Jan 26 22:53:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: Remove documentation references to $defout.</div><div class='add'>+</div><div class='add'>+Mon Jan 26 14:41:46 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb (WeakRef::initialize): set up @__id before</div><div class='add'>+	  calling "super".</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::initialize): preserve</div><div class='add'>+	  singleton_method_added method [ruby-dev:22685]</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (Delegator::initialize): use Kernel::raise</div><div class='add'>+	  instead of mere raise.  [ruby-dev:22681]</div><div class='add'>+</div><div class='add'>+Mon Jan 26 12:45:23 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: define CONST84 when TCL_MAJOR_VERSION == 7</div><div class='add'>+</div><div class='add'>+Mon Jan 26 11:30:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: Makefiles should depend on also rbconfig.rb.</div><div class='add'>+	  (ruby-bugs:PR#1256)</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (set_argv): set real arguments to</div><div class='add'>+	  WIN32OLE::ARGV.  [ruby-list:39073]</div><div class='add'>+</div><div class='add'>+Sun Jan 25 18:25:26 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_add_entry): third</div><div class='add'>+	  argument become optional.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (Init_x509name): emailAddress and</div><div class='add'>+	  domainComponent should be IA5String.</div><div class='add'>+</div><div class='add'>+Sun Jan 25 01:45:38 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#run): support</div><div class='add'>+	  virtual host.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#virtual_host): add</div><div class='add'>+	  new method to register virtual hosting server.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (WEBrick::HTTPServer#lookup_server): add</div><div class='add'>+	  new method to lookup virtual hosting server.</div><div class='add'>+</div><div class='add'>+Sat Jan 24 13:06:26 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509hame.c (ossl_x509name_initialize): change</div><div class='add'>+	  second argument. it expected to be a Hash not an Integer.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_add_entry): add new</div><div class='add'>+	  function for OpenSSL::X509::Name#add_entry.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (Init_ossl_x509name): add constants</div><div class='add'>+	  OpenSSL::X509::Name::DEFAULT_OBJECT_TYPE and OBJECT_TYPE_TEMPLATE.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb (OpenSSL::X509::Name#initialize):</div><div class='add'>+	  second argument takes OBJECT_TYPE_TEMPLATE by default.</div><div class='add'>+</div><div class='add'>+Fri Jan 23 02:26:30 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (num2i32): pack should not raise RangeError.</div><div class='add'>+	  [ruby-dev:22654]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): do not auto convert nil to zero.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 22:54:53 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (BEG_REGEXP): allow 8-bit characters in quoted</div><div class='add'>+	  strings for Novell GroupWise Internet Agent.</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (DATA_REGEXP): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 18:35:49 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/e2mmap.rb (VERSION): remove unnecessary version checking.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 16:21:02 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (string_content): reset lexical states at the beginning of</div><div class='add'>+	  string contents.  [ruby-list:39061]</div><div class='add'>+</div><div class='add'>+Thu Jan 22 08:08:50 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (opt_rescue): use NODE_ERRINFO() instead of</div><div class='add'>+	  NODE_GVAR("$!"), to avoid confusion from variable aliasing.</div><div class='add'>+	  [ruby-talk:90074]</div><div class='add'>+</div><div class='add'>+	* version.c (Init_version): remove obsolete constants VERSION</div><div class='add'>+	  etc.  [ruby-dev:22643]</div><div class='add'>+</div><div class='add'>+Thu Jan 22 01:46:32 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (newline_node): do not use NODE_NEWLINE node anymore,</div><div class='add'>+	  use NEWLINE flag instead.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 01:12:12 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* missing/os2.c (chdir, getcwd):</div><div class='add'>+	  use _chdir2 and _getcwd2 supporting multiple drives in OS/2 with EMX.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 00:33:52 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check availability of link(). [ruby-dev:22237]</div><div class='add'>+	* file.c (rb_file_s_link): raise an exception when link() is unavailable.</div><div class='add'>+	* missing/os2.c (link): removed. File#link isn't supported.</div><div class='add'>+	* bcc32/Makefile.sub: define HAVE_LINK to enable link(). [ruby-dev:22241]</div><div class='add'>+	* win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 00:26:25 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: typo: RUBY_MBCHAR_MAX was RUBY_MBCHAR_MAXSIZE.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 00:12:51 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h: define RUBY_MBCHAR_MAX instead of MB_CUR_MAX.</div><div class='add'>+	* dir.c (Next, emx_mblen): use RUBY_MBCHAR_MAX for mblen().</div><div class='add'>+	* file.c (CharNext): ditto.</div><div class='add'>+	* ruby.c (translate_char): ditto.</div><div class='add'>+	* util.c (__crt0_glob_function): ditto.</div><div class='add'>+</div><div class='add'>+Thu Jan 22 00:10:01 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: :nodoc: the Deprecated module</div><div class='add'>+</div><div class='add'>+Wed Jan 21 23:52:39 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Interix(SFU) support.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 23:03:45 2004  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: remove O_NONBLOCK, thanks \ay</div><div class='add'>+	* lib/drb/extserv.rb: typo</div><div class='add'>+</div><div class='add'>+Wed Jan 21 17:57:56 2004  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (envelope): allow NIL.</div><div class='add'>+	* lib/net/imap.rb (body): ditto.</div><div class='add'>+	* lib/net/imap.rb (number): ditto.</div><div class='add'>+	* lib/net/imap.rb (ensure_nz_number): show a detailed error</div><div class='add'>+	  message.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 16:44:15 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (merge_libs): squeeze successive same libraries.</div><div class='add'>+	  [ruby-dev:22652]</div><div class='add'>+</div><div class='add'>+Wed Jan 21 16:10:36 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: enclosed in a module.  [ruby-core:02285]</div><div class='add'>+</div><div class='add'>+Wed Jan 21 16:01:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/rmd160/extconf.rb: have_library appends found library.</div><div class='add'>+</div><div class='add'>+Wed Jan 21 11:36:00 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_gethostbyname): returns host if</div><div class='add'>+	  ai_canonname is NULL. (ruby-bugs PR#1243)</div><div class='add'>+</div><div class='add'>+	* parse.y (block_append): update nd_end for "real" head node.</div><div class='add'>+	  [ruby-list:39058]</div><div class='add'>+</div><div class='add'>+Tue Jan 20 14:48:28 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: should check &lt;openssl/conf_api.h&gt; instead</div><div class='add'>+	  of OPENSSL_VERSION_NUMBER. [ruby-list:39056]</div><div class='add'>+</div><div class='add'>+Tue Jan 20 14:43:17 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb: Add RDoc</div><div class='add'>+</div><div class='add'>+Tue Jan 20 14:25:51 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/abbrev.rb: Add RDoc</div><div class='add'>+</div><div class='add'>+Tue Jan 20 13:22:39 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Document aliases at</div><div class='add'>+	  top-most level.</div><div class='add'>+</div><div class='add'>+	* lib/English.rb: Document English.rb.</div><div class='add'>+</div><div class='add'>+Tue Jan 20 04:41:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb (MarshalTestLib::test_exception): test</div><div class='add'>+	  for [ruby-dev:22604].</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb (MarshalTestLibtest_singleton): test</div><div class='add'>+	  for [ruby-dev:22588].</div><div class='add'>+</div><div class='add'>+Tue Jan 20 02:38:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_class): should not dump singleton class.</div><div class='add'>+	  [ruby-dev:22631]</div><div class='add'>+</div><div class='add'>+Tue Jan 20 02:49:22 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for OpenSSL version.</div><div class='add'>+	  [ruby-list:39054]</div><div class='add'>+</div><div class='add'>+Mon Jan 19 23:56:20 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (name_err_mesg_to_str): inverted condition for result of</div><div class='add'>+	  inspection.  [ruby-dev:22628]</div><div class='add'>+</div><div class='add'>+Mon Jan 19 22:24:28 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/exyacc.rb: escape '}' to avoid warning.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb: escape '{' and '}' to avoid warnings.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 21:28:06 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/defs.h, win32/win3.c, win32/win32.h, file.c: remove</div><div class='add'>+	  useless casts for Borland C.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 17:39:38 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (NameError::message): internal use only.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): use hidden constant.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 16:30:53 2004  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: added tests for [ruby-dev:22614] and</div><div class='add'>+	  [ruby-dev:22617].</div><div class='add'>+</div><div class='add'>+Mon Jan 19 13:09:21 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb, win32/Makefile.sub, win32/configure.bat,</div><div class='add'>+	  win32/setup.mak: --with-static-linked-ext support on mswin32.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 06:49:07 2004  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date.rb: zone was wrong when it was behind UTC.</div><div class='add'>+	  Thanks Mark J. Reed.</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: %z is now always replaced by four digits</div><div class='add'>+	  with a leading plus or minus sign.</div><div class='add'>+</div><div class='add'>+	* sample/cal.rb: added a class, anyway.</div><div class='add'>+</div><div class='add'>+Mon Jan 19 01:08:39 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, error.c, eval.c, intern.h, object.c, variable.c:</div><div class='add'>+	  do not set path if it is a singleton class.  [ruby-dev:22588]</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension): give extended string, not a</div><div class='add'>+	  delegater object.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 23:59:44 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb: prefer us_EN locale encodings or</div><div class='add'>+	  former.  [ruby-dev:22609]</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_create): raise InvalidEncoding</div><div class='add'>+	  exception when EINVAL.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 23:16:34 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, error.c, file.c, io.c, numeric.c, object.c, re.c, struct.c,</div><div class='add'>+	  time.c: marked init_copy functions nodoc.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 20:47:35 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.c: use translate_char() on Cygwin.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 20:00:16 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/wsdlDriver.rb, lib/wsdl/soap/operation.rb: add support of</div><div class='add'>+	  "parts" attribute of soap:body element in WSDL.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/xmlSchema/schema.rb: friendly warning message for</div><div class='add'>+	  simpleType element which is not supported for now.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/soap/{soapbodyparts.wsdl,test_soapbodyparts.wsdl}: new</div><div class='add'>+	  files.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 16:46:48 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_overflow_p): should return results.  [ruby-dev:22614]</div><div class='add'>+</div><div class='add'>+Sun Jan 18 12:07:24 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: new test case to test Time#[+-].</div><div class='add'>+</div><div class='add'>+	* time.c (time_plus, time_minus): fix RangeError for a negative</div><div class='add'>+	  argument in environments whose time_t is unsigned. [ruby-dev:22608]</div><div class='add'>+</div><div class='add'>+Sun Jan 18 02:33:26 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (_WIN32): undef _WIN32 on Cygwin before defining DOSISH.</div><div class='add'>+</div><div class='add'>+Sun Jan 18 00:23:55 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (class2path): check anonymous class/module before</div><div class='add'>+	  checking referable, and allow singleton classes.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 23:58:51 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (NameError::Message): new class for lazy evaluation of</div><div class='add'>+	  message to ensure replaced before marshalling.  [ruby-dev:22604]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): use NameError::Message.</div><div class='add'>+</div><div class='add'>+Sat Jan 17 21:49:50 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/time.rb (test_rfc2822, test_rfc3339, test_encode_xmlschema):</div><div class='add'>+	  should not expect that all platforms handle negative time_t value.</div><div class='add'>+</div><div class='add'>+Fri Jan 16 23:53:09 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_eq): compare also arguments and environment</div><div class='add'>+	  (including local variables).  [ruby-dev:22590]</div><div class='add'>+</div><div class='add'>+Fri Jan 16 14:33:35 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (class2path): get class path and check referable.</div><div class='add'>+	  [ruby-dev:22588]</div><div class='add'>+</div><div class='add'>+Thu Jan 15 12:58:26 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): do not append EOF.  (ruby-bugs-ja:PR#585)</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fwrite): ad-hockery hack to get rid of HP-UX stdio</div><div class='add'>+	  weird behavior.  [ruby-dev:22424]</div><div class='add'>+</div><div class='add'>+Wed Jan 14 21:13:06 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/inlinetest.rb (InlineTest::eval_part): eval under the top</div><div class='add'>+	  level environment.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 17:54:17 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/inlinetest.rb (InlineTest::loadtest): require instead of</div><div class='add'>+	  load, to get rid of multiple loading.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 13:30:52 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/extconf.rb: wrapper iconv.rb is dependent on platform.</div><div class='add'>+</div><div class='add'>+Wed Jan 14 09:32:02 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add test/net/test_httpheader.rb. (commit miss?)</div><div class='add'>+</div><div class='add'>+Wed Jan 14 00:58:35 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): move SystemStackError from under</div><div class='add'>+	  StandardError to Exception.  [ruby-talk:89782]</div><div class='add'>+</div><div class='add'>+Tue Jan 13 18:03:02 2004  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_wr, rb_stat_ww): New functions</div><div class='add'>+	  implementing new methods (File::Stat#world_readable?,</div><div class='add'>+	  File::Stat#world_writable?).</div><div class='add'>+</div><div class='add'>+Tue Jan 13 16:53:25 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: omission of Date library code caused</div><div class='add'>+	  test suite failure. [ruby-core:2251]</div><div class='add'>+</div><div class='add'>+Tue Jan 13 16:50:03 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: use $0 as the default application class name.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 14:48:00 2004  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: New methods (Pathname#world_readable?,</div><div class='add'>+	  Pathname#world_writable?).</div><div class='add'>+</div><div class='add'>+Tue Jan 13 14:48:01 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): allow no "when" case. [ruby-dev:22578]</div><div class='add'>+</div><div class='add'>+	* ruby.h (rb_class_of): reduce branch. [ruby-dev:22577]</div><div class='add'>+</div><div class='add'>+	* ruby.h (rb_type): ditto.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 14:26:59 2004  Kazuhiro NISHIYAMA  &lt;zn@mbf.nifty.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/testrunnerutilities.rb (TestRunnerUtilities):</div><div class='add'>+	  moved run method which allows output level.  [ruby-dev:22554]</div><div class='add'>+</div><div class='add'>+Tue Jan 13 13:04:24 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_*.rb: Pathname#parent -&gt; Pathname#dirname.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 11:38:58 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb (YAML_Unit_Tests::test_spec_type_{int,float}):</div><div class='add'>+	  fix syntax error.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 07:52:40 2004  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/bytecode.c: turn off default implicit typing.</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.c: detect base60 integers.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: handle base60, as well as hex and octal</div><div class='add'>+	  with commas.  implicit typing of ruby symbols.</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: add test.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 04:29:52 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_driver.rb (RiDriver::report_method_stuff):</div><div class='add'>+	  Show fully-qualified class names in class list.</div><div class='add'>+</div><div class='add'>+Tue Jan 13 01:24:17 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_wr): Rdoc fix.  [ruby-core:02225]</div><div class='add'>+</div><div class='add'>+Tue Jan 13 01:04:37 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_paths.rb (RI::Paths): First attempt at</div><div class='add'>+	  incorporating DESTDIR in the rdoc installation.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 23:26:21 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): fix position after FCALL.  [ruby-dev:22574]</div><div class='add'>+</div><div class='add'>+Mon Jan 12 18:00:11 2004  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (test_wr, test_ww): New functions implementing new</div><div class='add'>+	  methods (File::world_readable?, File::world_writable?).</div><div class='add'>+</div><div class='add'>+	* file.c (S_IRUGO, S_IGUGO): New macros.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 12:07:22 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods):</div><div class='add'>+	  Someone changed the "// in eval.c" comments to "/*...*/" style,</div><div class='add'>+	  so the parsing of the source file name broke.</div><div class='add'>+</div><div class='add'>+	* object.c: Remove spurious space in TrueClass documentation.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body): Fix</div><div class='add'>+	  bad regexp: if the code before a documented method contained</div><div class='add'>+	  a comment that wasn't terminated by whitespace, that comment</div><div class='add'>+	  and all intervening code was included in the following</div><div class='add'>+	  method's documentation.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter::break_to_newline):</div><div class='add'>+	  HTML formats need explicit line breaks.</div><div class='add'>+</div><div class='add'>+Mon Jan 12 02:24:07 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb (RI::HtmlFormatter): Add HTML</div><div class='add'>+	  generation support to ri (Elliot Hughes)</div><div class='add'>+</div><div class='add'>+Sun Jan 11 23:54:41 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* env.h (ruby_frame, ruby_scope, ruby_in_eval, ruby_class,</div><div class='add'>+	  ruby_dyna_vars): export.  [ruby-dev:22566]</div><div class='add'>+</div><div class='add'>+Sun Jan 11 02:35:53 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent): a bug in brace position.</div><div class='add'>+</div><div class='add'>+	* configure.in: install rdoc by default. if you do not want to</div><div class='add'>+	  install rdoc, specify --disable-install-doc.</div><div class='add'>+</div><div class='add'>+Sun Jan 11 02:07:47 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb (RI::Options::OptionList::OptionList):</div><div class='add'>+	  Also accept command line options via the 'RI' environment variable.</div><div class='add'>+</div><div class='add'>+Sat Jan 10 21:27:41 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): need to add message delimiter. [ruby-dev:22561]</div><div class='add'>+</div><div class='add'>+Sat Jan 10 01:54:50 2004  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (__NeXT__): Ensure that all standard S_IRUSR, S_IWGRP,</div><div class='add'>+	  S_IRWXO, etc. macros are defined since future code might require</div><div class='add'>+	  them (even though present code only requires a subset).</div><div class='add'>+</div><div class='add'>+	* defines.h (__NeXT__): Bug fix: WORDS_BIGENDIAN was not being set</div><div class='add'>+	  correctly on Rhapsody when -arch compiler flag was used (via</div><div class='add'>+	  configure's --enable-fat-binary option).</div><div class='add'>+</div><div class='add'>+Sat Jan 10 23:01:41 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LIBPATHFLAG, RPATHFLAG): enclose paths with single</div><div class='add'>+	  quotes.  [ruby-dev:22564]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (libpathflag): do not enclose with quotes always.</div><div class='add'>+</div><div class='add'>+	* {bcc32,win32,wince}/Makefile.sub (LIBPATHFLAG): quoted.</div><div class='add'>+</div><div class='add'>+Sat Jan 10 22:46:18 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_inspect): new method, Dir#inspect.  [ruby-dev:22562]</div><div class='add'>+</div><div class='add'>+Fri Jan  9 17:36:51 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent): getaddrinfo(3) on BSD do not</div><div class='add'>+	  fill ai_canonname if serv is not supplied.  (ruby-bugs PR#1243)</div><div class='add'>+</div><div class='add'>+Fri Jan  9 13:14:59 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb: do not ignore exceptions(LoadError</div><div class='add'>+	  and SystemExitError) while loading a testcase.  smell of bug.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb: add new test of the LoadError.</div><div class='add'>+</div><div class='add'>+	* test/drb/{test_drbssl.rb,test_drbunix.rb}: do not define testcase if</div><div class='add'>+	  openssl is not installed.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb: assert_raises -&gt; assert_raise.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 11:52:16 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h: &lt;errno.h&gt; is needed to use errno which may be a macro.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 11:20:24 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): should not reduce necessary libraries.</div><div class='add'>+	  [ruby-dev:22440]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (merge_libs): merge libraries according to</div><div class='add'>+	  dependency.</div><div class='add'>+</div><div class='add'>+Fri Jan  9 10:05:23 2004  Siena.  &lt;siena@faculty.chiba-u.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (libpathflag): use single quotes.  [ruby-dev:22440]</div><div class='add'>+</div><div class='add'>+Thu Jan  8 23:49:21 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (RDOCTARGET): new macro.  if you want to install</div><div class='add'>+	  rdoc documentation, you need to run configure with</div><div class='add'>+	  --enable-install-doc.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 21:17:43 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c (ossl_pkey_to_der): removed; it returns</div><div class='add'>+	  public key only.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dh.c (ossl_dh_to_der): new function for</div><div class='add'>+	  OpenSSL::PKey::DH#to_der.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_to_der): new function for</div><div class='add'>+	  OpenSSL::PKey::DSA#to_der.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_to_der): new function for</div><div class='add'>+	  OpenSSL::PKey::RSA#to_der.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 18:25:29 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): should not recurse in exceptional status.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 16:51:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/wsdl/datetime/test_datetime.rb: fixed a stupid testcase which</div><div class='add'>+	  dumps "E" at month-end.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 11:20:01 2004  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, object.c, process.c, re.c: don't use C++ style comments.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 08:46:14 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (yaml_org_handler): lazy-load Date for</div><div class='add'>+	  static-ext.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 07:06:30 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: preserve order in Setup.  [ruby-dev:22503]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: move dependent libraries just after depended</div><div class='add'>+	  libraries.</div><div class='add'>+</div><div class='add'>+	* ext/digest/*/extconf.rb: depend on digest.</div><div class='add'>+</div><div class='add'>+Thu Jan  8 04:36:17 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (WEBrick::CGI#initialize): should create</div><div class='add'>+	  @config[:Logger] if it was not given.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 22:28:12 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): fix memory leak.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 21:15:07 2004  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/webrick/*: new files.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add sample/webrick/*</div><div class='add'>+</div><div class='add'>+Wed Jan  7 20:51:51 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/net/test_httpheader.rb: new file.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add test/net/test_httpheader.rb.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 20:42:06 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (HTTPHeader#content_length): should return nil</div><div class='add'>+	  unless header exists. [ruby-dev:22519]</div><div class='add'>+</div><div class='add'>+Wed Jan  7 14:26:05 2004  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb (TkPanedWindow): use epath for embedded windows.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tktext.rb: use epath for embedded windows.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: use epath for window items.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 14:24:04 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/{attachment.rb,mimemessage.rb}: added from soap4r/1.5.2.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 13:00:18 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_driver.rb: Fix problem where ri was</div><div class='add'>+	  being too eager to find matches of ambiguous method</div><div class='add'>+	  names (such as "ri Thread.join" would return both</div><div class='add'>+	  Thread.join and ThreadsWait.join)</div><div class='add'>+</div><div class='add'>+Wed Jan  7 12:35:41 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb: revert command parse regexps.  [ruby-list:39014] by</div><div class='add'>+	  Shirai,Kaoru.</div><div class='add'>+</div><div class='add'>+Wed Jan  7 08:21:04 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parserfactory.rb: Check for shebang</div><div class='add'>+	  line in files that would otherwise be treated as</div><div class='add'>+	  plain text.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 22:13:34 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_modfunc): should break if m has no super class.</div><div class='add'>+	  [ruby-dev:22498]</div><div class='add'>+</div><div class='add'>+Tue Jan  6 21:51:37 2004  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (fptr_finalize): should save errno just after failure.</div><div class='add'>+	  [ruby-dev:22492]</div><div class='add'>+</div><div class='add'>+Tue Jan  6 20:51:10 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb(Logger#msg2str): no special treatment for the object</div><div class='add'>+	  which responds to :to_str.</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb(LogDevice#initialize): remove type checking if the</div><div class='add'>+	  given object is a String.  Kernel.open handles it correctly.</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: follow above change (ArgumentError -&gt;</div><div class='add'>+	  TypeError.)</div><div class='add'>+</div><div class='add'>+Tue Jan  6 14:53:14 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* bin/ri: split out the display side, making it pluggable. Added</div><div class='add'>+	  new ri_driver and ri_display files in lib/rdoc/ri.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 11:29:43 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/inlinetest.rb, test/{test_generator.rb,test_ipaddr.rb,</div><div class='add'>+	  test_pathname.rb,test_pp.rb,test_prettyprint.rb,test_set.rb,</div><div class='add'>+	  test_time.rb,test_tsort.rb: added.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 09:38:27 2004  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* import soap4r/1.5.2;</div><div class='add'>+</div><div class='add'>+	* lib/soap/{attachment.rb,baseData.rb,encodingstyle/soapHandler.rb}:</div><div class='add'>+	  introduce SOAPExternalReference class as a referenct to SOAPEnvelope</div><div class='add'>+	  external content.</div><div class='add'>+</div><div class='add'>+	* lib/soap/{attachment.rb,mimemessage.rb}: great SwA (SOAP messages</div><div class='add'>+	  with Attachments) support code by Jamie Herre.</div><div class='add'>+</div><div class='add'>+	* lib/soap/{element.rb,marshal.rb,parser.rb,processor.rb,</div><div class='add'>+	  streamHandler.rb,wsdlDriver.rb}: SwA support.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/{cgistub.rb,driver.rb,element.rb,proxy.rb,router.rb,</div><div class='add'>+	  soaplet.rb}: SwA support and refactoring.</div><div class='add'>+</div><div class='add'>+	* lib/soap/generator.rb, lib/soap/mapping/mapping.rb: follow</div><div class='add'>+	  SOAPReference#initialize signature change.</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/factory.rb: deleted unused methods.</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/rubytypeFactory.rb: do no ignore case while xsi:type</div><div class='add'>+	  string &lt;-&gt; Ruby class name matching.</div><div class='add'>+</div><div class='add'>+	* lib/xsd/datatypes.rb: check the smallest positive non-zero</div><div class='add'>+	  single-precision float exactly instead of packing with "f".</div><div class='add'>+	  [ruby-talk:88822]</div><div class='add'>+</div><div class='add'>+	* test/soap/test_basetype.rb, test/xsd/test_xsd.rb: use 1.402e-45, not</div><div class='add'>+	  1.4e-45.  1.4e-45 is smaller than 2 ** -149...</div><div class='add'>+</div><div class='add'>+	* test/soap/test_basetype.rb, test/soap/marshal/test_marshal.rb,</div><div class='add'>+	  test/xsd/test_xsd.rb: use "(-1.0 / (1.0 / 0.0))" instead of "-0.0".</div><div class='add'>+</div><div class='add'>+	* test/soap/test_streamhandler.rb: revert to the previous test that</div><div class='add'>+	  warns "basic_auth unsupported under net/http".</div><div class='add'>+</div><div class='add'>+Tue Jan  6 06:37:53 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* bin/rdoc: Add --ri-system switch</div><div class='add'>+</div><div class='add'>+	* lib/.document: Update with list of files that seem to have</div><div class='add'>+	  documentation</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Reorder comment to make it RDoc friendly.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add install-nodoc target, and make it</div><div class='add'>+	  generate RDoc on default install.</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_options.rb (RI::Options::parse): Add</div><div class='add'>+	  --doc-dir option to ri.</div><div class='add'>+</div><div class='add'>+Tue Jan  6 00:04:40 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method_or_yield_parameters):</div><div class='add'>+	  fix parsing if there are braces in a method parameter list</div><div class='add'>+</div><div class='add'>+Tue Jan  6 01:01:04 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/dir.h, win32/win32.c: fix patch miss.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub: fix file dependency.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 20:32:00 2004  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: enhanced documentation.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 18:58:47 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: merge tuning from H.Yamamoto &lt;ocean@m2.ccsnet.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:22486]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): unpack requires big endian offet (OFF16B</div><div class='add'>+	  and OFF32B).  The patch is from Minero Aoki in [ruby-dev:22489]</div><div class='add'>+</div><div class='add'>+	* pack.c (OFF16B): add big-endian offset again.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 03:00:53 2004  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: new test test_unpack_N.</div><div class='add'>+</div><div class='add'>+Mon Jan  5 01:47:53 2004  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): remove duplicated object files</div><div class='add'>+	  from $objs on DOSISH platforms.</div><div class='add'>+</div><div class='add'>+Sat Jan  3 02:44:48 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h (TRAP_END): preserve errno before switching context.</div><div class='add'>+	  [ruby-core:02137]</div><div class='add'>+</div><div class='add'>+Sat Jan  3 01:18:08 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c: merge tuning from H.Yamamoto &lt;ocean@m2.ccsnet.ne.jp&gt;.</div><div class='add'>+	  [ruby-dev:22476]</div><div class='add'>+</div><div class='add'>+Fri Jan  2 14:54:11 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* bin/ri: Add new --classes option, and arrange for</div><div class='add'>+	  help messages to be paged too.</div><div class='add'>+</div><div class='add'>+	* bin/rdoc: Add statistics.</div><div class='add'>+</div><div class='add'>+	* process.c: (MG) Added Process documentation</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb (RI::AttributeFormatter::wrap):</div><div class='add'>+	  Fix problem with labels not displaying in RI labeled</div><div class='add'>+	  lists using BS and ANSI modes.</div><div class='add'>+</div><div class='add'>+Fri Jan  2 01:50:13 2004  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_eof): ARGF.eof? should not have any side effect.</div><div class='add'>+	  [ruby-dev:22469]</div><div class='add'>+</div><div class='add'>+Thu Jan  1 09:03:20 2004  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* bin/ri (report_class_stuff): Fix problem with ambiguous nested</div><div class='add'>+	  classes not matching.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 17:25:17 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_each_byte): should return self.  [ruby-dev:22465]</div><div class='add'>+</div><div class='add'>+Wed Dec 31 15:05:00 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: Corrected small coding error.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 15:00:00 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: Completed documentation.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 11:20:34 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::do_methods): Make</div><div class='add'>+	  file referenced in "// in sss.c" relative to current file.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 11:17:37 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/generators/html_generator.rb: Fix problem when</div><div class='add'>+	  a public method was aliased, but the alias is then</div><div class='add'>+	  made private, and hence doesn't appear in RDoc output.</div><div class='add'>+</div><div class='add'>+Wed Dec 31 01:33:05 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, error.c, eval.c, io.c, prec.c, range.c, re.c,</div><div class='add'>+	  string.c, time.c: Add RDoc for Kernel functions, and tidy.</div><div class='add'>+</div><div class='add'>+Tue Dec 30 19:39:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_readline): should raise EOFError at the end of</div><div class='add'>+	  files.  [ruby-dev:22458]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): should concatenate input files when length</div><div class='add'>+	  argument is nil. [ruby-dev:22450]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): should update supplied string buffer (2nd</div><div class='add'>+	  argument) even when IO#read is called multiple times.</div><div class='add'>+</div><div class='add'>+	* io.c: should initialize lineno by zero. [ruby-dev:22460]</div><div class='add'>+</div><div class='add'>+Tue Dec 30 12:30:30 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/code_objects.rb (RDoc::Context::find_symbol): If a</div><div class='add'>+	  class and a method have the same name, finding Xxx.abc was trying</div><div class='add'>+	  to find 'abc' in method 'Xxx', not class 'Xxx'.</div><div class='add'>+</div><div class='add'>+Tue Dec 30 08:32:32 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::parse_method):</div><div class='add'>+	  Handle undoing nsting of yield parameters correctly for:</div><div class='add'>+</div><div class='add'>+	    def each_entry(&amp;b) Dir.foreach(@path) {|f| yield P.new(f) } end</div><div class='add'>+</div><div class='add'>+Tue Dec 30 07:30:00 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: Added documentation.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 20:08:17 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (GenericRequest#initialize): check if path</div><div class='add'>+	  begins with '/'.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: def m( arg ) -&gt; def m(arg)</div><div class='add'>+</div><div class='add'>+Mon Dec 29 12:51:02 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: Add RDoc for Kernel global functions.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 11:00:16 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* array.c: Tidy up RDoc loose ends.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 05:05:51 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* struct.c, random: Add RDoc comments</div><div class='add'>+</div><div class='add'>+Mon Dec 29 02:25:00 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: Improved documentation.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 02:20:54 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: Add RDoc for class Proc, Method, UnboundMethod</div><div class='add'>+</div><div class='add'>+Mon Dec 29 02:20:26 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* instruby.rb: fix install directory if destdir and compile_dir are</div><div class='add'>+	  not in the same drive.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb: ditto. [ruby-list:39009]</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, win32/README.win32, win32/configure.bat,</div><div class='add'>+	  win32/setup.mak: new configure scheme. use ``configure --prefix=dir''</div><div class='add'>+	  instead of ``nmake DESTDIR=dir install''.</div><div class='add'>+</div><div class='add'>+Mon Dec 29 00:41:44 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* math.c: Add RDoc comments</div><div class='add'>+</div><div class='add'>+Sun Dec 28 20:19:11 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_sysread): StringIO.new.sysread didn't</div><div class='add'>+	  raise EOFError.</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (gzreader_gets): don't increment lineno when</div><div class='add'>+	  gzfile_read_all returns "".</div><div class='add'>+</div><div class='add'>+Sun Dec 28 15:25:08 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* class.c,object.c,parse.y,sprintf.c,variable.c: Document classes</div><div class='add'>+	  Object, Module, etc...</div><div class='add'>+</div><div class='add'>+Sun Dec 28 11:55:29 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: generate bom.csv and mac.csv files on the fly.</div><div class='add'>+	  [ruby-talk:88852]</div><div class='add'>+</div><div class='add'>+	* test/csv/{bom.csv,mac.csv}: removed.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 08:56:51 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: Thead[Group] RDoc (thanks to MG)</div><div class='add'>+</div><div class='add'>+Sun Dec 28 03:50:05 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_override_comment):</div><div class='add'>+	  Escape method names used in regexp</div><div class='add'>+</div><div class='add'>+Sun Dec 28 01:46:02 2003  Dave Thomas  &lt;dave@wireless_3.local.thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_formatter.rb (RI::TextFormatter::display_flow_item):</div><div class='add'>+	  Add support for rules in 'ri' output.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 01:35:35 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_body):</div><div class='add'>+	  Sometimes the Ruby source aliases two otherwise</div><div class='add'>+	  unrelated methods (for example Kernel#object_id and</div><div class='add'>+	  Kernel#hash are both the same C function). Provide a</div><div class='add'>+	  facility to allow the methods to be documented</div><div class='add'>+	  separately.</div><div class='add'>+</div><div class='add'>+Sun Dec 28 01:05:31 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c, signal.c: RDoc collemts added by Elliott Hughes</div><div class='add'>+</div><div class='add'>+Sun Dec 28 00:46:25 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_c.rb (RDoc::C_Parser::find_class_comment):</div><div class='add'>+	  Some Ruby source uses lower-case class names for the</div><div class='add'>+	  Init_Xxx C function name.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 23:41:46 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: fix "test: too many arguments" error.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 15:32:40 2003  Dave Thomas  &lt;dave@wireless_3.local.thomases.com&gt;</div><div class='add'>+</div><div class='add'>+	* time.c: Add RDoc comments for Time class.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 15:07:26 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* object.c: Add RDoc comments for Symbol class.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 14:39:53 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (Init_Numeric): Add RDoc comments.</div><div class='add'>+</div><div class='add'>+Sat Dec 27 00:44:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): warn always for stdin on inplace edit mode.</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): need to check string value.</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): allow ARGF.read(nil).  [ruby-dev:22433]</div><div class='add'>+</div><div class='add'>+Fri Dec 26 23:02:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_backquote): need not to check nil result.</div><div class='add'>+	  [ruby-core:02078]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_getline): should return nil when read_all gives</div><div class='add'>+	  empty string, even when nil rs is specified. [ruby-core:02077]</div><div class='add'>+</div><div class='add'>+Fri Dec 26 18:33:54 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check if getcontext and setcontext are available.</div><div class='add'>+</div><div class='add'>+	* eval.c: use presence of getcontext/setcontext.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 16:40:53 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (PathnameTest#test_plus): add 2 assertions.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 14:05:13 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: new test test_pack_N.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 12:53:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): add sign check for 'i', and 'l'.</div><div class='add'>+	  [ruby-dev:22427]</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_quad_pack): add range check for 'quad int'.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 10:58:58 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add vms/config.h and remove vms/config.h_in.</div><div class='add'>+</div><div class='add'>+Fri Dec 26 10:42:00 2003  AKIYOSHI, Masamichi  &lt;masamichi.akiyoshi@hp.com&gt;</div><div class='add'>+</div><div class='add'>+	* io.c: [VMS] "rfm=stmlf" is specified for open() and fopen().</div><div class='add'>+</div><div class='add'>+Thu Dec 25 22:29:53 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_update): don't return any value.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 15:30:17 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_update): call rb_str_modify().</div><div class='add'>+</div><div class='add'>+Thu Dec 25 05:08:09 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): search actual file name once when no</div><div class='add'>+	  extension specified.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 04:00:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.8.1 released.</div><div class='add'>+</div><div class='add'>+Thu Dec 25 00:17:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check for nanosleep, -lrt if required.</div><div class='add'>+	  [ruby-core:02059]</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_timer): use select(2) if nanosleep(2) is not</div><div class='add'>+	  available.</div><div class='add'>+</div><div class='add'>+	* eval.c: check __stub_getcontext for glibc on some platforms.</div><div class='add'>+	  [ruby-list:38984]</div><div class='add'>+</div><div class='add'>+Wed Dec 24 23:48:04 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/test_basetype.rb, test/soap/marshal/test_marshal.rb</div><div class='add'>+	  test/xsd/test_xsd.rb: use "(-1.0 / (1.0 / 0.0))" instead of "-0.0"</div><div class='add'>+	  to express -0.0.  [ruby-talk:88786]</div><div class='add'>+</div><div class='add'>+Wed Dec 24 23:29:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tsort.rb (test_orphaned_break): removed.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 20:53:06 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmulticolumnlist.rb: new sample</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmultilistframe.rb: bug fix</div><div class='add'>+</div><div class='add'>+Wed Dec 24 20:37:37 2003  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (LDSHARED): Fixed typographical error in assignment of</div><div class='add'>+	  LDSHARED for Rhapsody which caused linking of extension modules to</div><div class='add'>+	  fail.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 17:51:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_thread_flock): enable thread support again.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 16:46:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (catch_timer): do not call rb_thread_schedule() inside to</div><div class='add'>+	  avoid pthread_mutex_lock() deadlock.  interrupts to system calls</div><div class='add'>+	  are detected by TRAP_END via EINTR error.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_timer): do not post signal unless it is</div><div class='add'>+	  absolutely necessary.</div><div class='add'>+</div><div class='add'>+	* rubysig.h (TRAP_END): add CHECK_INTS to switch thread.</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): check if nextp is smaller than</div><div class='add'>+	  pend.  [ruby-dev:22372]</div><div class='add'>+</div><div class='add'>+	* eval.c (umethod_bind): remove method overridden check.</div><div class='add'>+	  [ruby-dev:22366]</div><div class='add'>+</div><div class='add'>+Wed Dec 24 16:13:05 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read): should check for error</div><div class='add'>+	  status by SSL_get_error().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_write): ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 14:23:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): clear the buffer argument</div><div class='add'>+	  when returning nil.  [ruby-dev:22363]</div><div class='add'>+</div><div class='add'>+	* test/ruby/ut_eof.rb (TestEOF::test_eof_0, TestEOF::test_eof_1):</div><div class='add'>+	  add buffer argument tests.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 14:07:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: Modules are allowed to rescue.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb: show output_level in order.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb: get rid of successive same</div><div class='add'>+	  directories in load path.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb (test_assert_nothing_raised,</div><div class='add'>+	  test_assert_raise): test for modules.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 13:43:34 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb (authenticate): remove "\n" from base64 encoded</div><div class='add'>+	  strings.</div><div class='add'>+</div><div class='add'>+Wed Dec 24 11:26:41 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: should not create any</div><div class='add'>+	  files or directories in current directory.  [ruby-talk:88724]</div><div class='add'>+</div><div class='add'>+Wed Dec 24 10:29:53 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): never return nil at</div><div class='add'>+	  unlimited read.  [ruby-dev:22334]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): support second</div><div class='add'>+	  argument.  [ruby-dev:22350]</div><div class='add'>+</div><div class='add'>+Wed Dec 24 09:38:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (arg): should return 0 after error.  [ruby-dev:22360]</div><div class='add'>+</div><div class='add'>+Wed Dec 24 00:56:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): do not return nil at the end of file.</div><div class='add'>+	  [ruby-dev:22334]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): do not depend on nil at eof behavior of</div><div class='add'>+	  IO#read().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_join): dup exception before re-raising it.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_eof): call clearerr() to prevent side effect.  this</div><div class='add'>+	  patch is supplied by Masahiro Sakai &lt;sakai@tom.sfc.keio.ac.jp&gt;.</div><div class='add'>+	  [ruby-dev:22234]</div><div class='add'>+</div><div class='add'>+	* pack.c (OFF16): get offset for big endian machines.</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): use OFF16 instead of OFF16B.</div><div class='add'>+	  [ruby-dev:22344]</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_unpack): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 22:47:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): set FMODE_RBUF always, even if</div><div class='add'>+	  NEED_IO_SEEK_BETWEEN_RW is not defined. [ruby-dev:22340]</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_writable): clear FMODE_RBUF before writing</div><div class='add'>+	  something.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 22:25:00 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: incomplete RDoc documentation added in place of</div><div class='add'>+	  existing RD comments.  Tabs converted to spaces.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 19:44:47 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/test_streamhandler.rb (test_basic_auth): removed.</div><div class='add'>+	  soap4r + basic_auth is not officially supported in ruby/1.8.1 even</div><div class='add'>+	  though soap4r + basic_auth + http-access2 should run fine.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 19:42:59 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_ungetc): raise an exception at unread stream to</div><div class='add'>+	  avoid unspecified behavior.  [ruby-dev:22330]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (test_syntax): glob relatively from</div><div class='add'>+	  __FILE__.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 18:09:40 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (pack_pack): remove unnecessary negative value check.</div><div class='add'>+	  [ruby-dev:22329]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 17:26:55 2003  KONISHI Hiromasa  &lt;konishih@fd6.so-net.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub (config.h): bcc has finite(). [ruby-list:38940]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 16:08:16 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/encodings/US-ASCII.rb: typo.  [ruby-talk:88650]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb: num of asserts depended on running dir.</div><div class='add'>+</div><div class='add'>+	* test/xsd/test_noencoding.rb: rexml + without iconv/uconv cannot</div><div class='add'>+	  handle euc-jp.  install iconv, uconv or xmlscan.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 14:13:51 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::check_userinfo,</div><div class='add'>+	  URI::Generic::check_user, URI::Generic::check_password): tests</div><div class='add'>+	  conflicts/depends with other components closely.</div><div class='add'>+</div><div class='add'>+	* test/uri/test_generic.rb (TestGeneric::test_set_component):</div><div class='add'>+	  added tets.</div><div class='add'>+</div><div class='add'>+Tue Dec 23 11:08:34 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/xsd/test_noencoding.rb: rescue Errno::EINVAL and do not test.</div><div class='add'>+	  "euc-jp" might not be in supported encoding name list.</div><div class='add'>+	  [ruby-talk:88650]</div><div class='add'>+</div><div class='add'>+Tue Dec 23 06:10:31 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (CGI): add support for mod_ruby.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (CGI::Socket): add check for existence of</div><div class='add'>+	  OpenSSL module in all HTTPS related methods.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (CGI::Socket#cipher): should create similar</div><div class='add'>+	  value to OpenSSL::SSLSocket#cipher.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb (HTTPResponse#setup_header): should</div><div class='add'>+	  set "connection: close" if @keep_alive is false.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb (HTTPrequest#meta_vars): add supprt for</div><div class='add'>+	  SSL_PROTOCOL, SSL_CIPHER_USEKEYSIZE and SSL_CIPHER_ALGKEYSIZE.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 23:00:05 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic::check_opaque): fixed typo.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 21:59:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (map_charset): always ensure code is a String.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 21:15:29 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_init_copy): always copy singleton class.</div><div class='add'>+	  [ruby-dev:22325]</div><div class='add'>+</div><div class='add'>+Mon Dec 22 20:44:36 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic#route_from): accepts urls which</div><div class='add'>+	  has no host-part.</div><div class='add'>+</div><div class='add'>+	* test/uri/test_generic.rb (TestGeneric::test_route): added a test.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 20:38:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb: reduce eval.</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::read_multipart): alias path to</div><div class='add'>+	  local_path.  [ruby-list:38883]</div><div class='add'>+</div><div class='add'>+Mon Dec 22 20:09:31 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/test_property.rb: remove duplicated test method.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 18:22:04 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub (config.h): remove</div><div class='add'>+	  HAVE_ISINF definition to follow previous commits of missing.h</div><div class='add'>+	  and win32/win32.h.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 17:23:42 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ac_cv_func_setitimer): moved from defines.h</div><div class='add'>+</div><div class='add'>+	* defines.h, rubysig.h, signal.c: removed macro handling which</div><div class='add'>+	  should be done in configure.</div><div class='add'>+</div><div class='add'>+	* configure.in (intrinsics.h): check if present.</div><div class='add'>+</div><div class='add'>+	* ruby.h: include intrinsics.h if available.</div><div class='add'>+</div><div class='add'>+	* bignum.c, marshal.c: include ieeefp.h if available.</div><div class='add'>+</div><div class='add'>+	* missing.h (isinf): define as a macro if finite() and isnan()</div><div class='add'>+	  are available.  [ruby-core:02032]</div><div class='add'>+</div><div class='add'>+Mon Dec 22 17:07:31 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (mingw): set isnan, finite and isinf to yes.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 13:40:19 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.rb: passing block by reference.</div><div class='add'>+</div><div class='add'>+Mon Dec 22 00:32:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_with_disable_interrupt): use ENABLE_INTS instead of</div><div class='add'>+	  ALLOW_INTS which may switch context.  [ruby-dev:22319]</div><div class='add'>+</div><div class='add'>+	* ext/syck/emitter.c (syck_emitter_write): str bigger than</div><div class='add'>+	  e-&gt;bufsize causes buffer overflow.  [ruby-dev:22307]</div><div class='add'>+</div><div class='add'>+Sun Dec 21 17:29:00 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (rb_check_inheritable): new function.  [ruby-dev:22316]</div><div class='add'>+</div><div class='add'>+	* intern.h: add prototype.</div><div class='add'>+</div><div class='add'>+	* eval.c (superclass): use rb_check_inheritable().</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_initialize): check argument validity.</div><div class='add'>+</div><div class='add'>+Sun Dec 21 16:25:10 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#+): re-implemented to resolve ".." in</div><div class='add'>+	  beginning of the argument.</div><div class='add'>+	  (Pathname#join): concatenate from the last argument.</div><div class='add'>+	  (Pathname#parent): just use Pathname#+.</div><div class='add'>+</div><div class='add'>+Sun Dec 21 00:12:37 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add new methods (TkScrollbar#assign, assign_list)</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmultilistframe.rb: use TkScrollbar#assign method</div><div class='add'>+</div><div class='add'>+Sat Dec 20 21:59:03 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): refine regexp.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (CGI#start): NPH scripts return status line</div><div class='add'>+	  instead of Status: header field.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb (CGI::Socket): refine some coditions.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 16:07:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion::complete): wrong</div><div class='add'>+	  Regexp for word boundary.  pointed out by Gavin Sinclair.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::make_switch): [no-] prefix was</div><div class='add'>+	  missing.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 11:40:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb (YAML::YAML): adjust Marshal version.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 03:56:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_with_disable_interrupt): prohibit thread context</div><div class='add'>+	  switch during proc execution.  [ruby-dev:21899]</div><div class='add'>+</div><div class='add'>+Sat Dec 20 02:41:02 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb: add file. (yet another CGI library)</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add lib/webrick/cgi.rb.</div><div class='add'>+</div><div class='add'>+Sat Dec 20 02:18:31 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-calculate-indent): proper indentation</div><div class='add'>+	  inside of parentheses.  [ruby-dev:22308]</div><div class='add'>+</div><div class='add'>+Fri Dec 19 21:24:22 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): should not set</div><div class='add'>+	  HTTP_CONTENT_TYPE and HTTP_CONTENT_LENGTH.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb (HTTPRequest#parse): should check presence</div><div class='add'>+	  of cert() method to detect SSLSocket.</div><div class='add'>+</div><div class='add'>+Fri Dec 19 22:56:46 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.rb (SOAP::Property#load): new method for loading</div><div class='add'>+	  property value into existing property tree.</div><div class='add'>+</div><div class='add'>+	* test/soap/test_property.rb: add test.</div><div class='add'>+</div><div class='add'>+Fri Dec 19 19:21:49 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/runit/cui/testrunner.rb (RUNIT::CUI::TestRunner::run):</div><div class='add'>+	  should use Test::Unit::UI::{PROGRESS_ONLY,VERBOSE}.</div><div class='add'>+</div><div class='add'>+Fri Dec 19 17:36:49 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmultilistbox.rb: bug fix</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmultilistframe.rb: new sample script</div><div class='add'>+</div><div class='add'>+Fri Dec 19 03:44:27 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (parse_form_data): should return an</div><div class='add'>+	  empty Hash if the body is empty.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 21:47:35 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): should remove deffile if it's</div><div class='add'>+	  made by miniruby. based on nobu's patch.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 21:44:21 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (stack_extend): ignore inline optimization on VC7.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (OS, RT): can override.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub (LDFLAGS): ditto. shouldn't use pdb:none</div><div class='add'>+	  option. based on Tietew's patch [ruby-dev:22289]</div><div class='add'>+</div><div class='add'>+Thu Dec 18 16:38:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (fnmatch): unlike find_dirsep(), rb_path_next() never</div><div class='add'>+	  return NULL.</div><div class='add'>+</div><div class='add'>+Thu Dec 18 15:27:59 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (IPSocket::getaddress): merge usa's patch.</div><div class='add'>+	  [ruby-dev:21678]</div><div class='add'>+</div><div class='add'>+Wed Dec 17 15:15:30 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::Value::[]): should work like</div><div class='add'>+	  String#[] if more than one arguments are specified.</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb: avoid using common instance name as "@obj".</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::QueryExtension::Value): Value is no longer</div><div class='add'>+	  subclass of String, but DelegateClass(String).</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: restore function check for init_color.</div><div class='add'>+	  [ruby-list:38905]</div><div class='add'>+</div><div class='add'>+	* Makefile.in: need to specify $(MAINLIBS) for the miniruby</div><div class='add'>+	  generation rule.</div><div class='add'>+</div><div class='add'>+	* configure.in: better FreeBSD -lc_r support.</div><div class='add'>+</div><div class='add'>+Wed Dec 17 00:16:14 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: new method</div><div class='add'>+	  StringScanner#beginning_of_line? (alias #bol?)</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: new method StringScanner#concat and #&lt;&lt;.</div><div class='add'>+</div><div class='add'>+	* ext/strscan/strscan.c: StringScanner#new(str) does not duplicate</div><div class='add'>+	  nor freeze STR (allow destructive modification).</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb: test new methods above.</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb: test destructive string</div><div class='add'>+	  modification.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 21:20:47 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb: don't use local variable `pp'.</div><div class='add'>+</div><div class='add'>+	* lib/prettyprint.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 13:20:43 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: condition bug of if statement on</div><div class='add'>+	  {pack,grid}_propagate methods</div><div class='add'>+</div><div class='add'>+Tue Dec 16 03:17:29 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: comments in strings. [ruby-talk:88012]</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: add test.</div><div class='add'>+</div><div class='add'>+Tue Dec 16 01:14:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (catch_timer): check rb_thread_crtical in main native</div><div class='add'>+	  thread.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_timer): just sends signals periodically, to</div><div class='add'>+	  prevent main native thread from receiving them in critical</div><div class='add'>+	  section.  [ruby-core:01959]</div><div class='add'>+</div><div class='add'>+Mon Dec 15 13:32:22 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (check_dirname): check string safety and remove extraneous</div><div class='add'>+	  trailing directory separators.  [ruby-dev:22279]</div><div class='add'>+</div><div class='add'>+	* file.c: renamed and externalized rb_path_next,</div><div class='add'>+	  rb_path_skip_prefix, rb_path_last_separator, rb_path_end.</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes for rb_path_next, rb_path_skip_prefix,</div><div class='add'>+	  rb_path_last_separator, rb_path_end.</div><div class='add'>+</div><div class='add'>+Mon Dec 15 09:27:46 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): first argument</div><div class='add'>+	  of rb_protect should take an argument of VALUE.</div><div class='add'>+</div><div class='add'>+Sun Dec 14 18:46:48 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (Init_socket): IPv6 is not supported although</div><div class='add'>+	  AF_INET6 is defined on MinGW.</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb (AF_INET6): workaround in the environment which does</div><div class='add'>+	  not support IPv6.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 18:55:16 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb: preserve original order.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/extconf.rb: remove wrapper file at clean.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 18:09:42 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_timer): use timer by sub-thread and nanosleep.</div><div class='add'>+	  [ruby-talk:87519]</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): no stack adjustment for THREAD_SAFE.</div><div class='add'>+</div><div class='add'>+Sat Dec 13 17:17:59 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_alloc): cache the created object at first time.</div><div class='add'>+	  [ruby-talk:61288], [ruby-dev:22240]</div><div class='add'>+</div><div class='add'>+Sat Dec 13 09:01:23 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check ucontext.h.</div><div class='add'>+</div><div class='add'>+	* eval.c: use getcontext/setcontext() instead of setjmp/longjmp()</div><div class='add'>+	  on ia64 or with native thread enabled.  [ruby-core:01932]</div><div class='add'>+</div><div class='add'>+Sat Dec 13 03:09:14 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: anonymous struct fix. [ruby-core:01946]</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb: add test.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 22:36:44 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: add Cell#to_str and Cell#to_s for /.../ =~ aCell,</div><div class='add'>+	  "#{aCell}" and so on.</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: add tests.</div><div class='add'>+</div><div class='add'>+Fri Dec 12 19:33:06 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir): remove trailing `/' from pathes.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (rmdir): ditto. [ruby-dev:22238]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (rmdir_r): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_copy_dir): check if it is a directory after</div><div class='add'>+	  mkdir(2).</div><div class='add'>+</div><div class='add'>+Fri Dec 12 06:06:09 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): fix class name in warning message for</div><div class='add'>+	  define_method.  [ruby-dev:22235]</div><div class='add'>+</div><div class='add'>+Thu Dec 11 21:24:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs12.[ch]: new files. add OpenSSL::PKCS12.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.[ch]: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/MANIFEST: add ossl_pkcs12.[ch].</div><div class='add'>+</div><div class='add'>+Thu Dec 11 20:54:28 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir_p): remove trailing `/' befere mkdir(2).</div><div class='add'>+	  mkdir("nonexistdir/") does not work on NetBSD/Alpha 1.6.1.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_list): call to_str for all arguments.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 20:07:01 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb (makedirs): sync with fileutils.</div><div class='add'>+</div><div class='add'>+Thu Dec 11 19:53:03 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir_p): catch all SystemCallErrors.</div><div class='add'>+	  (mkdir("C:\") causes EACCESS on Windows 2000/NTFS)</div><div class='add'>+</div><div class='add'>+Thu Dec 11 19:08:02 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (mkdir_p): check if it is a directory after</div><div class='add'>+	  mkdir(2) instead of before mkdir(2), to avoid race condition.</div><div class='add'>+	  [ruby-talk:87730]</div><div class='add'>+	  Refer: mkinstalldirs sh script, GNU mkdir(1) (coreutils 5.0)</div><div class='add'>+</div><div class='add'>+Thu Dec 11 18:49:30 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: def m( arg ) -&gt; def m(arg).</div><div class='add'>+</div><div class='add'>+Thu Dec 11 11:39:43 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (ieeefp.h), numeric.c: needed for finite() on</div><div class='add'>+	  Solaris.  [ruby-core:01921]</div><div class='add'>+</div><div class='add'>+	* file.c (rb_stat_inspect): adjust format specifier.</div><div class='add'>+</div><div class='add'>+	* parse.c (arg_prepend): nodetype() is for debug use.</div><div class='add'>+</div><div class='add'>+	* ruby.h (ISASCII, etc): cast to int to get rid of warning.</div><div class='add'>+</div><div class='add'>+	* ruby.h (alloca.h): include even in GCC.  [ruby-core:01925]</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (GetVpValue): adjust format</div><div class='add'>+	  specifier.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_prec, BigDecimal_coerce,</div><div class='add'>+	  BigDecimal_divmod): use rb_assoc_new() to suppress memory usage.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c (BigDecimal_split): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/dl/sym.c (rb_dlsym_guardcall): guard itself should be</div><div class='add'>+	  volatile.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): ensure actual parameter with</div><div class='add'>+	  format specifier.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (MasterDevice, SlaveDevice, deviceNo): do not</div><div class='add'>+	  define unless used.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (getDevice): get rid of warning.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (port_str, sock_s_getaddrinfo,</div><div class='add'>+	  sock_s_getnameinfo): FIX2INT() now returns long.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (init_inetsock_internal): uninitialized</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (syck_parser_assign_io): add prototype.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c (rb_syck_mktime, yaml_org_handler): use</div><div class='add'>+	  ISDIGIT() instead of isdigit() to avoid warnings and for</div><div class='add'>+	  platforms which don't support non-ascii charater.</div><div class='add'>+</div><div class='add'>+Wed Dec 10 19:28:56 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): set EOF flag at short read.</div><div class='add'>+	  [ruby-dev:22223], [ruby-dev:22224]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 18:07:25 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb: new method ERB#filename(=). [ruby-dev:22208]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 17:54:51 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): do not set EOF flag when</div><div class='add'>+	  requested length is zero.  [ruby-dev:22214]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 17:17:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): should return given string even if data read is</div><div class='add'>+	  empty.  [ruby-dev:22207]</div><div class='add'>+</div><div class='add'>+Wed Dec 10 17:16:06 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): adjust behavior at reading</div><div class='add'>+	  beyond EOF to IO.  [ruby-dev:22205]</div><div class='add'>+</div><div class='add'>+	* test/ruby/ut_eof.rb (TestEOF::Seek): test behaviors at reading</div><div class='add'>+	  beyond EOF.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb, test/stringio/test_stringio.rb: include</div><div class='add'>+	  TestEOF::Seek test case.</div><div class='add'>+</div><div class='add'>+Wed Dec 10 15:01:19 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/monitor/test_monitor.rb (test_cond): use Queue#deq</div><div class='add'>+	  instead of sleep.</div><div class='add'>+</div><div class='add'>+Wed Dec 10 14:45:39 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (HAVE_SYS_IOCTL_H): need to include &lt;sys/ioctl.h&gt;</div><div class='add'>+	  for TIOCSCTTY on *BSD.  based on gotoyuzo's patch.</div><div class='add'>+	  (ruby-bugs:PR#1211)</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c (establishShell): should close descriptors if fork</div><div class='add'>+	  failed.</div><div class='add'>+</div><div class='add'>+Wed Dec 10 12:53:05 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: define execv() using do_aspawn().</div><div class='add'>+</div><div class='add'>+	* process.c (proc_exec_v): remove #ifdef's which stopped needing.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 23:32:23 2003  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/tkcanvas.rb, ext/tk/lib/tkdialog.rb,</div><div class='add'>+	  ext/tk/lib/tkentry.rb, ext/tk/lib/tkscrollbox.rb, ext/tk/lib/tktext.rb,</div><div class='add'>+	  ext/tk/sample/tkalignbox.rb, ext/tk/sample/tkcombobox.rb,</div><div class='add'>+	  ext/tk/sample/tkmultilistbox.rb, ext/tk/sample/tkoptdb.rb, ext/tk/sample/tktextframe.rb,</div><div class='add'>+	  ext/tk/sample/demos-en/dialog1.rb, ext/tk/sample/demos-en/dialog2.rb,</div><div class='add'>+	  ext/tk/sample/demos-jp/dialog1.rb, ext/tk/sample/demos-jp/dialog2.rb:</div><div class='add'>+	  overrided instance methods, which are private methods on the super</div><div class='add'>+	  class, are changed to 'private'</div><div class='add'>+</div><div class='add'>+Tue Dec  9 19:53:02 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/generic.rb (URI::Generic#route_from0): make case insensitive</div><div class='add'>+	  for host-part.</div><div class='add'>+</div><div class='add'>+	* test/uri/test_generic.rb (test_route): added tests for the above</div><div class='add'>+	  change.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 14:10:48 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_check_readable): don't call io_seek if EOF flag is set,</div><div class='add'>+	  to avoid clearing EOF flag.</div><div class='add'>+	  (rb_io_check_writable): ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 02:53:55 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkalignbox.rb: new sample script</div><div class='add'>+</div><div class='add'>+Tue Dec  9 00:45:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: renamed #assert_raises to #assert_raise</div><div class='add'>+	  and made the former call the latter. [ruby-core:01890]</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  9 00:07:35 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/standaloneServer.rb: add 'shutdown' and 'status'</div><div class='add'>+	  methods as delegates to WEBrick.</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/{test_calc.rb,test_calc2.rb},</div><div class='add'>+	  test/soap/helloworld/test_helloworld.rb,</div><div class='add'>+	  test/wsdl/datetime/test_datetime.rb, test/wsdl/raa/test_raa.rb:</div><div class='add'>+	  follow the change.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 22:48:03 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb: remove dependency to a particular</div><div class='add'>+	  runner.  [ruby-core:01901], [ruby-list:38869]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/testrunnerutilities.rb: moved output level</div><div class='add'>+	  constants from Console.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/{fox,gtk,gtk2,tk}/testrunner.rb (initialize):</div><div class='add'>+	  accept output_level.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 15:03:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c (syck_io_str_read): get rid of buffer overflow.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 13:02:11 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/common.rb: new method URI.regexp. [ruby-dev:22121]</div><div class='add'>+</div><div class='add'>+	* test/uri/test_common.rb: add test for URI.regexp.</div><div class='add'>+</div><div class='add'>+Mon Dec  8 12:44:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c: define swap16 and swap32 only if they are not</div><div class='add'>+	  defined. OpenBSD defines these macros. [ruby-dev:22181]</div><div class='add'>+</div><div class='add'>+Sun Dec  7 20:54:17 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (map_charset): make case sensitive.</div><div class='add'>+	  ext/iconv/charset_alias.rb (charset_alias): don't ignore</div><div class='add'>+	  config.charset's information.  sort aliases.</div><div class='add'>+</div><div class='add'>+Sat Dec  6 22:58:03 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_start_ssl): new function to wrap</div><div class='add'>+	  SSL_connect and SSL_accept; if SSL_connect (or SSL_accept) returned</div><div class='add'>+	  but not finished the handshake process, we should retry it.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_connect): call ossl_start_ssl.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_read): allow signal traps.</div><div class='add'>+</div><div class='add'>+Sat Dec  6 21:45:10 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (flush_before_seek): flush before seek on any platform.</div><div class='add'>+</div><div class='add'>+	* configure.in: ditto.</div><div class='add'>+</div><div class='add'>+Sat Dec  6 17:23:00 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/soap.rb(SOAP::Env.getenv): allow upcase environment variable</div><div class='add'>+	  as well as downcase one.</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb(SOAP::NetHttpClient#proxy=): check URI.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 23:22:30 2003  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_raises,</div><div class='add'>+	  Test::Unit::Assertions::assert_nothing_raised): use the last</div><div class='add'>+	  argument as message unless class object.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb (test_assert_raises): test for</div><div class='add'>+	  multiple exception list.  [ruby-core:01891]</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb (test_assert_nothing_raised): test</div><div class='add'>+	  for non-exception classes.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 22:23:04 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb: proxy support did not work.  fixed.</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.rb: add class methods for loading property from</div><div class='add'>+	  stream/file/propertyfile.  propertyfile is a file which is located at</div><div class='add'>+	  somedir in $:.</div><div class='add'>+</div><div class='add'>+	* lib/soap/soap.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb,</div><div class='add'>+	  lib/wsdl/importer.rb: load property from propertyfile 'soap/property'</div><div class='add'>+	  e.g. /usr/local/lib/ruby/site_ruby/1.8/soap/property.</div><div class='add'>+</div><div class='add'>+	* test/soap/test_property.rb, test/soap/test_streamhandler.rb: new file.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 17:26:23 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): maintain tmp_end_procs.</div><div class='add'>+	  [ruby-dev:22154]</div><div class='add'>+</div><div class='add'>+Fri Dec  5 13:36:59 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_exec_end_proc): should not clear end_procs and</div><div class='add'>+	  ephemeral_end_procs before execution. [ruby-dev:22144]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_extend): call Module#extended hook after</div><div class='add'>+	  extended_object.  [ruby-list:38866]</div><div class='add'>+</div><div class='add'>+	* object.c (Init_Object): Module#extended defined.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 13:17:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pipe.rb: use IO.pipe instead of IO.popen.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 11:54:45 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): follow IO#read.</div><div class='add'>+</div><div class='add'>+	* test/ruby/ut_eof.rb, test/ruby/test_file.rb, test/ruby/test_pipe.rb,</div><div class='add'>+	  test/stringio/test_stringio.rb: add EOF test.</div><div class='add'>+</div><div class='add'>+Fri Dec  5 02:49:35 2003  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_raises):</div><div class='add'>+	  allow multiple exception list.  [ruby-core:01884]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (Test::Unit::Assertions::assert_nothing_raised):</div><div class='add'>+	  check whether arguments are subclass of Exception.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 23:54:00 2003  Rick Ohnemus  &lt;rick.ohnemus@systemware.com&gt;</div><div class='add'>+</div><div class='add'>+	* dln.c (aix_loaderror): should not use member named 'errno' which</div><div class='add'>+	  might be a macro (e.g. on AIX).</div><div class='add'>+</div><div class='add'>+Thu Dec  4 23:32:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): do not depend on lseek position.</div><div class='add'>+	  [ruby-dev:22026]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 22:37:26 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): preserve $! value when retry happens in the</div><div class='add'>+	  rescue clause.  [ruby-talk:86697]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 21:50:07 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRb::DRbMessage::send_request, send_reply):</div><div class='add'>+	  should rescue errors and re-raise DRbConnError on write too.</div><div class='add'>+	  [ruby-dev:22132]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 16:41:17 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (exc_list): allow expanding list.  [ruby-dev:22134]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 14:09:24 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_cp): test if the error is</div><div class='add'>+	  kind of SystemCallError.  It is needless details that which errno</div><div class='add'>+	  is set on each systems.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 13:24:13 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: use Object#__send__ instead of Object#send.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 13:17:45 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/streamHandler.rb: support latest released version of</div><div class='add'>+	  http-access2.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 13:04:44 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/soap.rb: add SOAP::Env module for environment repository</div><div class='add'>+	  such as HTTP_PROXY.</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.rb: property implementation.</div><div class='add'>+</div><div class='add'>+	* lib/soap/streamHandler.rb, lib/soap/wsdlDriver.rb,</div><div class='add'>+	  lib/soap/rpc/driver.rb: use soap/property.rb.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/importer.rb, lib/soap/wsdlDriver.rb, lib/soap/rpc/driver.rb:</div><div class='add'>+	  use SOAP::Env.</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb: add basic_auth, ssl_config, and cookie</div><div class='add'>+	  management interface, but ignored for now.</div><div class='add'>+</div><div class='add'>+	* lib/xsd/charset.rb: add XSD::Charset.encoding= interface to set</div><div class='add'>+	  wiredump charset explicitly.  it was fixed to 'utf-8' when iconv or</div><div class='add'>+	  uconv module was found.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 10:43:58 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/sym.c (rb_dlsym_guardcall): __declspec(noinline) is VC7</div><div class='add'>+	  feature.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 10:27:12 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: update hyperlink to the Japanese document.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 09:12:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (asn1time_to_time): should check that</div><div class='add'>+	  the underlying value of ASN1_TIME isn't NULL. [ruby-core:01881]</div><div class='add'>+</div><div class='add'>+Thu Dec  4 08:29:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (GenericServer#start): should rescue</div><div class='add'>+	  Exception to avoid unexpected aborting. [ruby-core:01853]</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (GenericServer#start_thread): should check</div><div class='add'>+	  that peeraddr isn't nil before printing.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb (HTTPResponse#start_thread): should</div><div class='add'>+	  rescue Exception to avoid unexpected aborting of thread.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 03:48:59 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#link, Pathname#symlink): obsoleted.</div><div class='add'>+	  (Pathname#make_link, Pathname#make_symlink): new method.</div><div class='add'>+</div><div class='add'>+Thu Dec  4 01:45:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): should not terminate on empty string; wait</div><div class='add'>+	  until real EOF.  [ruby-dev:21969]</div><div class='add'>+</div><div class='add'>+	* io.c (argf_read): should adjust length to read, when length is</div><div class='add'>+	  specified and read spans command line argument files.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 19:38:36 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: correct fcntl parameter. [ruby-dev:22120]</div><div class='add'>+</div><div class='add'>+Wed Dec  3 13:49:07 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: 'format'==&gt;'Kernel.format' (avoid override trouble)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkcanvas.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkdialog.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tktext.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Dec  3 13:28:13 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (lex.c): try gperf first, and copy from the source</div><div class='add'>+	  directory if failed.  [ruby-dev:22123]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (MTIMES): let makefiles depend to mkmf.rb.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): DLDFLAGS was duplicated.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 23:18:12 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: wrote the warning about HTTP_PROXY environment</div><div class='add'>+	  variable.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 21:31:42 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/testrb: new test runner.  [ruby-core:01845]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner.run,</div><div class='add'>+	  Test::Unit::AutoRunner#process_args): take test list to run and</div><div class='add'>+	  options.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner::RUNNERS,</div><div class='add'>+	  Test::Unit::AutoRunner#run): should not exit inside a library,</div><div class='add'>+	  just return the result instead.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: exit with the test result.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 20:18:48 2003  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found</div><div class='add'>+	  instead of Bison or byacc.</div><div class='add'>+</div><div class='add'>+	* parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least</div><div class='add'>+	  10000 (Bison's default) since some old versions of Yacc define it as</div><div class='add'>+	  low as 150 by default, which is too low for Ruby to parse some files,</div><div class='add'>+	  such as date/format.rb.  Among other issues, the parse problem causes</div><div class='add'>+	  "make test" to fail.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 20:03:20 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: check if Pathnames are usable</div><div class='add'>+	  for arguments.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 04:22:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: fixed #assert_no_match message.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Dec  2 00:43:00 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: string buffering bug.  decrementing by full</div><div class='add'>+	  max_size now. [ruby-core:01834]</div><div class='add'>+</div><div class='add'>+Mon Dec  1 21:33:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* numeric.c (num_sadded): prohibit singleton method definition for</div><div class='add'>+	  Numerics.  fill yet another gap between Fixnum and Bignum.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 17:33:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (htov16): converts endian using swap16. htov32(), hton16,</div><div class='add'>+	  hton32 as well. [ruby-talk:85377]</div><div class='add'>+</div><div class='add'>+	* pack.c (swap16): swap 2 bytes no matter how big short is on the</div><div class='add'>+	  platform.  swap32() is also prepared.</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2int): returns long to preserve information.</div><div class='add'>+	  rb_fix2int(), rb_num2uint(), rb_fix2uint() as well.</div><div class='add'>+	  [ruby-talk:85377]</div><div class='add'>+</div><div class='add'>+	* numeric.c (rb_num2uint): should not check for value range if the</div><div class='add'>+	  source value is negative.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 17:14:34 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/optparse/opttest.rb: added.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 16:10:52 2003  Dave Thomas  &lt;dave@pragprog.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/rdoc.rb: (etc) initial merge into main tree.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 14:17:49 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_each_src_dest0): call #to_str to allow</div><div class='add'>+	  Pathname for arguments. [ruby-core:01795]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: does much strict test on</div><div class='add'>+	  "same" files detecting.</div><div class='add'>+</div><div class='add'>+Mon Dec  1 09:28:14 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='add'>+	  (XCFLAGS): re-export $(XCFLAGS).</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='add'>+	  (ARCH_FLAG): export $(ARCH_FLAG) (perhaps empty value).</div><div class='add'>+</div><div class='add'>+Mon Dec  1 01:03:27 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (TRY_LINK, link_command): added support for DLDFLAGS</div><div class='add'>+	  and ARCH_FLAG.  [ruby-dev:22085]</div><div class='add'>+</div><div class='add'>+Sun Nov 30 20:18:07 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: keep ARCH_FLAG separate. export ARCH_FLAG.</div><div class='add'>+	  [ruby-core:01819]</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add ARCH_FLAG to CFLAGS.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add @CPPFLAGS@ to CPPFLAGS.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (link_command, cc_command): use ARCH_FLAG.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (configuration): add ARCH_FLAG to DLDFLAGS.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: add ARCH_FLAG to DLDFLAGS.</div><div class='add'>+</div><div class='add'>+	* configure.in: should put getcwd in AC_CHECK_FUNCS, not</div><div class='add'>+	  AC_REPLACE_FUNCS.  [ruby-core:01826]</div><div class='add'>+</div><div class='add'>+Sun Nov 30 18:22:48 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: do not override CCDLDFLAGS, LDFLAGS, XLDFLAGS,</div><div class='add'>+	  DLDFLAGS and LDSHARED.</div><div class='add'>+</div><div class='add'>+	* configure.in: XCFLAGS for compiling ruby itself.  ARCH_FLAG is</div><div class='add'>+	  reflected in CFLAGS.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: ditto.  do not import XCFLAGS from config.status.</div><div class='add'>+</div><div class='add'>+Sun Nov 30 17:37:36 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: bug fix [ruby-talk:86746]</div><div class='add'>+</div><div class='add'>+Sun Nov 30 13:02:00 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/encodingstyle/soapHandler.rb: refactoring - Simplifying</div><div class='add'>+	  Conditional Expressions.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/soap/definitions.rb: refactoring - Move Method.</div><div class='add'>+</div><div class='add'>+	* test/xsd/{test_noencoding.rb,noencoding.xml}: new files.  test for</div><div class='add'>+	  encoding unspecified XML file parsing.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/{test_fault.rb,map,datetime}: new files.  test of</div><div class='add'>+	  SOAPFault, dateTime and Apache's Map.</div><div class='add'>+</div><div class='add'>+Sun Nov 30 09:35:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_update): get rid of SEGV at just allocated String.</div><div class='add'>+	  [ruby-core:01812]</div><div class='add'>+</div><div class='add'>+Fri Nov 28 23:19:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark): explicitly check mark recursion levels, instead</div><div class='add'>+	  of unreliable stack length.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 22:49:56 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rinda/rinda.rb: fix TupleSpaceProxy#read, read_all.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 21:44:40 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_ln_s): should be a file, not</div><div class='add'>+	  a directory for FreeBSD.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 19:37:56 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (env_has_value, env_index): must match exactly.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb (test_has_value, test_index): condition for</div><div class='add'>+	  aboves.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 17:59:20 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: add tests for ENV.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 17:47:46 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb (DRbMessage#load): rescue Errno::* and raise</div><div class='add'>+	  DRbConnError.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 15:41:15 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#realpath): obsolete the force_absolute</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 14:41:52 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/streamHandler.rb: drop unused http parameters.</div><div class='add'>+</div><div class='add'>+	* lib/soap/encodingstyle/soapHandler.rb, lib/soap/mapping/factory.rb,</div><div class='add'>+	  lib/soap/mapping/mapping.rb, lib/soap/mapping/registry.rb,</div><div class='add'>+	  lib/wsdl/soap/complexType.rb: ApacheSOAP's map support was broken</div><div class='add'>+	  under WSDL dynanic client environment.  fixed.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/raa/*: add tests.</div><div class='add'>+</div><div class='add'>+	* lib/xsd/datatypes.rb: dateTime precision bug fix (at least, I hope.)</div><div class='add'>+	  bug of soap4r.  XSDDateTimeImple.to_time passed a Float to</div><div class='add'>+	  Time.local/Time.gm as an usec, and NUM2LONG(rb_num2long for Float)</div><div class='add'>+	  causes rounding error.</div><div class='add'>+</div><div class='add'>+	* test/soap/test_basetype.rb, test/xsd/test_xsd.rb: add tests.</div><div class='add'>+</div><div class='add'>+Fri Nov 28 04:15:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (method_arity): used wrong Proc object.  [ruby-talk:86504]</div><div class='add'>+</div><div class='add'>+Fri Nov 28 00:47:29 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_exit), process.c (rb_f_exit_bang): treat true as</div><div class='add'>+	  success, false as failure.  [ruby-dev:22067]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_abort, rb_thread_switch), process.c (rb_f_system): use</div><div class='add'>+	  ANSI macro instead of hard coded value.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_exit), process.c (rb_f_exit_bang): use VALUEs not but</div><div class='add'>+	  TYPEs.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 22:05:48 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c: FreeBSD/ia64 currently does not have a way for a</div><div class='add'>+	  process to get the base address for the RSE backing store, so</div><div class='add'>+	  hardcode it for the moment.</div><div class='add'>+	  [submitted by: Marcel Moolenaar &lt;marcel@FreeBSD.org&gt;]</div><div class='add'>+</div><div class='add'>+Thu Nov 27 17:36:42 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: bug fix on TkTimer#cancel_on_exception=(mode).</div><div class='add'>+	  TkTimer#wait recieves the exception of the callback.</div><div class='add'>+	  The exception is kept on @return_value.</div><div class='add'>+</div><div class='add'>+Thu Nov 27 16:58:48 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_stat): remove _fullpath() for NUL: device.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 15:38:47 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_ln_s): should take the</div><div class='add'>+	  existing symbolic link for OpenBSD.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 04:48:42 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: removed YYTOKTMP references which</div><div class='add'>+	  were causing buffer overflows on large block scalars,</div><div class='add'>+	  comments, quoted scalars and plain scalars.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: dynamic changing of buffer size.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: default buffer size of 4k.</div><div class='add'>+</div><div class='add'>+Wed Nov 26 00:55:30 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpresponse.rb: add HTTPResponse#keep_alive=.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (HTTPServer#run): should pass the</div><div class='add'>+	  request's keep_alive flag to the response.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 21:41:35 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (ENV_IGNORECASE): should define when DOSISH without</div><div class='add'>+	  human68k. [ruby-dev:22047]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_has_value, env_index): don't ignore case of value.</div><div class='add'>+	  [ruby-dev:22048]</div><div class='add'>+</div><div class='add'>+Tue Nov 25 21:39:37 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (path_check_1): honor sticky bits always.</div><div class='add'>+	  [ruby-talk:86273]</div><div class='add'>+</div><div class='add'>+Tue Nov 25 20:02:14 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: do test in more deep</div><div class='add'>+	  directory.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_nowrite.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 19:04:23 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): ENV case sensitivity test</div><div class='add'>+	  refined.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 18:13:30 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: chdir Dir.tmpdir before each</div><div class='add'>+	  test. [ruby-dev:22045]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_nowrite.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 17:52:11 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): use http_proxy under CGI</div><div class='add'>+	  if the environment variable is case sensitive.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 16:41:33 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb:</div><div class='add'>+	  removed.  this test requires extra libraries in soap4r/1.5.*.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 16:24:42 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/**/*.rb, lib/wsdl/**/*.rb, lib/xsd/**/*.rb: changed license;</div><div class='add'>+	  GPL2 -&gt; Ruby's.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/driver.rb, lib/soap/wsdlDriver.rb,</div><div class='add'>+	  lib/soap/streamHandler.rb: add interface to streamhandler.</div><div class='add'>+</div><div class='add'>+	* lib/soap/marshal.rb: raise error if parse fails.</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb: add https support.  Patched by</div><div class='add'>+	  Oliver M. Bolzer.</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb: dump HTTP response message body by itself.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/driver.rb, lib/soap/rpc/proxy.rb,</div><div class='add'>+	  lib/soap/wsdlDriver.rb: add driver#mandatorycharset interface to foce</div><div class='add'>+	  using charset for parsing response from buggy server.</div><div class='add'>+</div><div class='add'>+	* lib/soap/encodingstyle/soapHandler.rb: support Apache Axis's half</div><div class='add'>+	  typed multi-ref array.</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/factory.rb, lib/soap/mapping/registry.rb: map</div><div class='add'>+	  SOAPStruct which has multi-accessors which name are the same, to an</div><div class='add'>+	  array.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/element.rb: fixed illegal parameter order.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/element.rb: element name of response message could have</div><div class='add'>+	  the name other than 'return'.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/operation.rb, lib/wsdl/operationBinding.rb,</div><div class='add'>+	  lib/wsdl/soap/classDefCreator.rb, lib/wsdl/soap/methodDefCreator.rb,</div><div class='add'>+	  lib/wsdl/soap/methodDefCreatorSupport.rb: WSDL/1.1 allows plural</div><div class='add'>+	  fault definition in a operation. [ruby-talk:84948]</div><div class='add'>+</div><div class='add'>+	* test/wsdl/multiplefault.wsdl, test/wsdl/test_multiplefault.rb: add</div><div class='add'>+	  test for above fix.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/soap/complexType.rb: support WSDL array definition with</div><div class='add'>+	  maxOccures="unbound".</div><div class='add'>+</div><div class='add'>+	* lib/xsd/charset.rb: use cp932 under emx.  Patched by</div><div class='add'>+	  Siena. / SHINAGAWA, Norihide in [ruby-dev:21972]</div><div class='add'>+</div><div class='add'>+	* lib/xsd/xmlparser/parser.rb: set @charset nil by default.  Nil means</div><div class='add'>+	  'follow encoding declaration in XML'.</div><div class='add'>+</div><div class='add'>+	* sample/soap/digraph.rb, sample/wsdl/amazon/wsdlDriver.rb,</div><div class='add'>+	  sample/wsdl/googleSearch/sampleClient.rb,</div><div class='add'>+	  sample/wsdl/googleSearch/wsdlDriver.rb,</div><div class='add'>+	  test/wsdl/test_emptycomplextype.rb,</div><div class='add'>+	  test/wsdl/marshal/test_wsdlmarshal.rb,</div><div class='add'>+	  test/xsd/test_xmlschemaparser.rb: use File.open(...) { |f| f.read }</div><div class='add'>+	  instead of File.open(...).read. [ruby-dev:21964]</div><div class='add'>+</div><div class='add'>+	* test/wsdl/emptycomplextype.wsdl, test/wsdl/test_emptycomplextype.rb:</div><div class='add'>+	  simplify the test case.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/axisArray/*: add tests for axis's array encoding.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 16:15:29 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: don't treat Cygwin as Windows.</div><div class='add'>+</div><div class='add'>+Tue Nov 25 15:18:28 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: change default value of --enable-pthread (default: no)</div><div class='add'>+</div><div class='add'>+Tue Nov 25 07:31:16 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): allow newlines just before right argument</div><div class='add'>+	  parenthesis.  (ruby-bugs:PR#1221)</div><div class='add'>+</div><div class='add'>+Mon Nov 24 23:32:06 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_loop, URI::HTTP#proxy_open): use</div><div class='add'>+	  catch/throw for redirection instead of exception.</div><div class='add'>+	  (OpenURI.open_loop, OpenURI.redirectable?): restrict redirection.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 19:59:48 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): use CGI_HTTP_PROXY</div><div class='add'>+	  instead of HTTP_PROXY in the CGI environment.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 19:32:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/extconf.rb: check for pw_passwd in struct passwd and</div><div class='add'>+	  gr_passwd in struct group for DJGPP.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/Setup.dj: support for curses, etc, zlib.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 17:00:00 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb: validate option names.</div><div class='add'>+	  :content_length_proc and :progress_proc option implemented.</div><div class='add'>+</div><div class='add'>+Mon Nov 24 14:53:10 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='add'>+	  (XCFLAGS): output empty value instead of `-DRUBY_EXPORT'.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 23:09:45 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: set enable_pthread to no on MinGW.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 22:56:20 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: add --enable-pthread option (default: yes)</div><div class='add'>+</div><div class='add'>+Sat Nov 22 22:48:46 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add Tk.grab_release and fix bug of TkComposite</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: bug fix of TkAfter#start</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkcombobox.rb: new sample script</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add native thread check</div><div class='add'>+</div><div class='add'>+Sat Nov 22 18:49:47 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (window_nodelay): nodelay() of NetBSD's</div><div class='add'>+	  libcruses returns no value, just like keypad().</div><div class='add'>+</div><div class='add'>+Sat Nov 22 17:36:36 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='add'>+	  (HAVE_GETCWD): output to config.h.</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub</div><div class='add'>+	  (XCFLAGS): output to config.status.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 13:10:10 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (have_st_ino?): djgpp has valid st_ino.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 11:28:48 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): stack region is far smaller than usual if</div><div class='add'>+	  pthread is used.</div><div class='add'>+</div><div class='add'>+Sat Nov 22 07:30:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/util/backtracefilter.rb: fixed a bug that occurred</div><div class='add'>+	  when an exception had no backtrace.</div><div class='add'>+</div><div class='add'>+	* test/testunit/util/test_backtracefilter.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Nov 21 16:44:18 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkentry.rb: fix the encoding trouble of percent</div><div class='add'>+	  substitutions on validatecommand option of TkEntry widget</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fix bug on {pack|grid}_propagate() method</div><div class='add'>+</div><div class='add'>+Fri Nov 21 16:12:11 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: Fix markups and grammar.</div><div class='add'>+</div><div class='add'>+Fri Nov 21 14:49:42 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.1: wrote about ruby related environment variables.</div><div class='add'>+</div><div class='add'>+Fri Nov 21 12:28:03 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_extended): singleton methods should not be checked</div><div class='add'>+	  when dumping via marshal_dump() or _dump(). [ruby-talk:85909]</div><div class='add'>+</div><div class='add'>+Fri Nov 21 01:40:00 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: check &lt;pthread.h&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: include pthread.h if existence.</div><div class='add'>+	  define is_ruby_native() macro when not HAVE_NATIVETHREAD</div><div class='add'>+</div><div class='add'>+	* eval.c: undef is_ruby_native() function when not HAVE_NATIVETHREAD</div><div class='add'>+</div><div class='add'>+Fri Nov 21 00:43:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: use #__send__ instead of #send.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Nov 20 19:19:22 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: don't find the Cygwin's pthread library on MinGW.</div><div class='add'>+</div><div class='add'>+Thu Nov 20 19:15:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (have_st_ino?): emx (OS/2 with EMX) does not</div><div class='add'>+	  have st_ino (always 0). [ruby-dev:21972]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (rename_cannot_overwrite_file?): emx does not</div><div class='add'>+	  allow overwriting files by rename(2).</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: windows? -&gt;</div><div class='add'>+	  have_drive_letter?, have_file_perm?</div><div class='add'>+</div><div class='add'>+Thu Nov 20 17:50:58 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkballoonhelp.rb: new sample script</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tkmultilistbox.rb: ditto</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/tktextframe.rb: ditto</div><div class='add'>+</div><div class='add'>+Thu Nov 20 13:37:34 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ruby.h: define is_ruby_native_thread() for no native thread</div><div class='add'>+	  environment</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto</div><div class='add'>+</div><div class='add'>+Thu Nov 20 12:42:47 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: always check existence of the pthread library</div><div class='add'>+</div><div class='add'>+	* ruby.h: define macros for ruby's native thread check</div><div class='add'>+</div><div class='add'>+	* eval.c: add ruby's native thread check</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto</div><div class='add'>+</div><div class='add'>+Wed Nov 19 14:45:18 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (to_ary): print more friendly warning message.</div><div class='add'>+</div><div class='add'>+Wed Nov 19 14:32:08 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_same?): add djgpp and wince.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cannot_overwrite_file?): add wince.</div><div class='add'>+</div><div class='add'>+Wed Nov 19 11:04:47 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (cannot_overwrite_file?, have_st_ino?): bccwin32</div><div class='add'>+	  is same as mswin32.</div><div class='add'>+</div><div class='add'>+Wed Nov 19 07:54:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: do not run tests if $! is set.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertionfailederror.rb: extend StandardError instead</div><div class='add'>+	  Exception (irb catches the former but not the latter).</div><div class='add'>+</div><div class='add'>+Tue Nov 18 23:31:36 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/memmove.c (memmove): take void *, not char *.</div><div class='add'>+</div><div class='add'>+	* missing.h (memmove): ditto.</div><div class='add'>+</div><div class='add'>+	* missing.h (strchr, strrchr): return char *, not int.</div><div class='add'>+</div><div class='add'>+Tue Nov 18 22:20:10 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_same?): temporal fix for windows.</div><div class='add'>+</div><div class='add'>+Tue Nov 18 19:05:04 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_same?): check by inode instead of path</div><div class='add'>+	  name, to detect two hard links pointing to the same content.</div><div class='add'>+</div><div class='add'>+	* test/fileutils.rb: did not create correctly looped symlinks.</div><div class='add'>+</div><div class='add'>+Tue Nov 18 18:23:05 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_read): behave as IO at empty string.</div><div class='add'>+	  [ruby-dev:21939], [ruby-dev:21941]</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_getc, strio_getline): set EOF flag.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_rewind, strio_seek, strio_ungetc):</div><div class='add'>+	  clear EOF flag.</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb: imported from [ruby-dev:21941].</div><div class='add'>+</div><div class='add'>+Tue Nov 18 14:06:35 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (fu_each_src_dest): raise if src==dest.</div><div class='add'>+	  [ruby-talk:85344] [ruby-core:01699]</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: use Object#is_a? instead of Class#=== to allow</div><div class='add'>+	  e.g. remote objects for receivers.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: FileTest -&gt; File.</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb: put parentheses for arguments of File.xxxx?</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_cp): test "cp a a".</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_mv): test "mv a a".</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_ln): test "ln a a".</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_ln_s): test "ln_s a a".</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb (test_install): test "install a a".</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb: new method assert_symlink.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileasserts.rb: assert_is_directory -&gt; assert_directory.</div><div class='add'>+</div><div class='add'>+Mon Nov 17 19:38:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (getcwdofdrv): avoid using getcwd() directly, use</div><div class='add'>+	  my_getcwd() instead.</div><div class='add'>+</div><div class='add'>+	* merged NeXT, OpenStep, Rhapsody ports patch from Eric Sunshine</div><div class='add'>+	  &lt;sunshine@sunshineco.com&gt;.  [ruby-core:01596]</div><div class='add'>+</div><div class='add'>+Mon Nov 17 10:50:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion::complete): allow least</div><div class='add'>+	  common completion for three or more candidates.</div><div class='add'>+</div><div class='add'>+Mon Nov 17 09:41:38 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/tk/testrunner.rb,</div><div class='add'>+	  lib/test/unit/ui/gtk/testrunner.rb:</div><div class='add'>+	  run GUI main loop in sub thread.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/gtk2/testrunner.rb: imported from rough.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb (keyword_display): sort keywords.</div><div class='add'>+</div><div class='add'>+Sun Nov 16 18:10:57 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): iterator should return value from next inside</div><div class='add'>+	  begin/rescue/end.  (ruby-bugs:PR#1218)</div><div class='add'>+</div><div class='add'>+Sun Nov 16 13:26:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): LINK check earlier than anything else,</div><div class='add'>+	  i.e. do not dump TYPE_IVAR for already dumped objects.</div><div class='add'>+	  (ruby-bugs:PR#1220)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): call "inherited" only when a new class is</div><div class='add'>+	  generated; not on reopening.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): prepend error position in evaluating string to</div><div class='add'>+	  "mesg" attribute string only when it's available and is a</div><div class='add'>+	  string.</div><div class='add'>+</div><div class='add'>+Sun Nov 16 12:16:10 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: logging response body. [experimental]</div><div class='add'>+	  [ruby-list:38800]</div><div class='add'>+</div><div class='add'>+Sun Nov 16 10:49:38 2003  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (Thread.exclusive): wrap method definition in</div><div class='add'>+	  class Thread to enable rdoc to process.</div><div class='add'>+</div><div class='add'>+Sun Nov 16 09:45:23 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (set_debug_output): warn if method is called</div><div class='add'>+	  after #start.  [ruby-dev:38798]</div><div class='add'>+</div><div class='add'>+Sun Nov 16 04:41:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): do not re-raise exception to avoid unnecessary</div><div class='add'>+	  exception copying, instead modify exception and internal</div><div class='add'>+	  information to adjust eval().</div><div class='add'>+</div><div class='add'>+	* eval.c (backtrace): can return the current frame information</div><div class='add'>+	  only if lev &lt; -1.</div><div class='add'>+</div><div class='add'>+Sat Nov 15 22:16:42 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* /ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext):</div><div class='add'>+	  refine error message.</div><div class='add'>+</div><div class='add'>+Sat Nov 15 10:05:40 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_loop, OpenURI::HTTP#proxy_open):</div><div class='add'>+	  refactored to support options.</div><div class='add'>+	  (Buffer): maintain size by this class.</div><div class='add'>+</div><div class='add'>+Sat Nov 15 07:40:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_node): new API to retrieve method body.</div><div class='add'>+</div><div class='add'>+Fri Nov 14 13:21:30 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: fix (en-bugged at 2003/11/07)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkdialog.rb: TkDialog.new accepts a parent widget</div><div class='add'>+	  argument [ruby-talk:85066]</div><div class='add'>+</div><div class='add'>+Thu Nov 13 20:53:35 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (Kernel[#.]open): hard coded URI schemes removed.</div><div class='add'>+	  [ruby-ext:02251]</div><div class='add'>+</div><div class='add'>+Thu Nov 13 19:17:00 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/tk/testrunner.rb: use grid and panedwindow</div><div class='add'>+	  (if available)</div><div class='add'>+</div><div class='add'>+Thu Nov 13 17:56:41 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (OpenURI.open_uri): use File::RDONLY.</div><div class='add'>+	  reported by Take_tk &lt;ggb03124@nifty.ne.jp&gt;.</div><div class='add'>+	  [ruby-ext:02245]</div><div class='add'>+</div><div class='add'>+Thu Nov 13 16:45:53 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509req.c (ossl_x509req_to_der): add function for</div><div class='add'>+	  X509::Request#to_der.</div><div class='add'>+</div><div class='add'>+Thu Nov 13 11:31:14 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion#complete): prior shorter</div><div class='add'>+	  name to containing longer name.</div><div class='add'>+</div><div class='add'>+Thu Nov 13 06:08:54 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: stop freezing some classes</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 17:32:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb (assert_throws, assert_nothing_thrown):</div><div class='add'>+	  uncaught throw in sub thread raises ThreadError.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/tk/testrunner.rb (setup_ui): "expand" is not</div><div class='add'>+	  necessary.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 14:09:43 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/monitor/test_monitor.rb: fix the timing problem by Queue.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 12:59:44 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/monitor/test_monitor.rb: added.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 10:14:28 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: refactored. Thanks, Gennady Bystritsky.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 06:11:39 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_x509_sk2ary, ossl_x509crl_sk2ary):</div><div class='add'>+	  add functions to convert STACK into Array.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: add prototypes.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_set_certificates,</div><div class='add'>+	  ossl_pkcs7_get_certificates, ossl_pkcs7_get_crls,</div><div class='add'>+	  ossl_pkcs7_set_crls): add functions for PKCS7#certificates=</div><div class='add'>+	  PKCS7#certificates, PKCS7#crls= and PKCS7#crls.</div><div class='add'>+</div><div class='add'>+Wed Nov 12 00:47:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/testrunnermediator.rb: should require 'test/unit'.</div><div class='add'>+</div><div class='add'>+Tue Nov 11 23:54:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/gtk/testrunner.rb: added a rescue clause to handle</div><div class='add'>+	  the case when the requested font is not available.</div><div class='add'>+</div><div class='add'>+Tue Nov 11 22:44:08 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (appendline): file may not end with newline.  a bug if</div><div class='add'>+	  READ_DATA_PENDING_PTR is defined. [ruby-talk:84925]</div><div class='add'>+</div><div class='add'>+Tue Nov 11 10:42:41 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: raise an exception when creating TkWindow</div><div class='add'>+	  object, because TkWindow class is an abstract class.</div><div class='add'>+</div><div class='add'>+Tue Nov 11 03:30:43 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ext/openssl/ossl_conf.c (ossl_config_get_value): return nil</div><div class='add'>+	  if the specified value doesn't exist.</div><div class='add'>+</div><div class='add'>+	* lib/ext/openssl/ossl_conf.c (ossl_config_get_section): return</div><div class='add'>+	  a empty hash if the specified section doesn't exist.</div><div class='add'>+</div><div class='add'>+Mon Nov 10 11:40:29 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb (wait): return true on signal/broadcastfalse and</div><div class='add'>+	  false on timeout. Thanks Gennady Bystritsky.</div><div class='add'>+</div><div class='add'>+Mon Nov 10 00:07:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (primary): primary_value may be 0 when syntax error.</div><div class='add'>+	  [ruby-talk:84893]</div><div class='add'>+</div><div class='add'>+Sun Nov  9 02:05:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: un-deprecated #assert_not_nil to</div><div class='add'>+	  maintain symmetry with #assert_nil. Also added better output for</div><div class='add'>+	  #assert_kind_of.</div><div class='add'>+</div><div class='add'>+	* test/testunit/tc_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 18:50:20 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/wsdl/raa/*: add new testcase for WSDL loading, parsing and</div><div class='add'>+	  reading.</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/*: backport from soap4r/1.5.1.  all differences are</div><div class='add'>+	  for ruby/1.6.</div><div class='add'>+</div><div class='add'>+	* lib/soap/*: backport from soap4r/1.5.1.  all differences are for</div><div class='add'>+	  ruby/1.6.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/data.rb, lib/wsdl/xmlSchema/data.rb: move definition of</div><div class='add'>+	  ArrayTypeAttrName from ::WSDL::XMLSchema::* to ::WSDL::*.</div><div class='add'>+	  [ruby-talk:84813]</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/soap/definitions.rb: element name typo in custom exception</div><div class='add'>+	  struct definition which is needed for wsdlDriver; camelCase -&gt;</div><div class='add'>+	  underscore_name.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 13:49:50 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: improvement of pthread check</div><div class='add'>+</div><div class='add'>+Sat Nov  8 13:28:46 2003  Takaaki Tateishi  &lt;ttate@ttsky.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/dl/sym.c: Add DL.win32_last_error and DL.last_error.</div><div class='add'>+	  Thanks, Kaoru Shirai.</div><div class='add'>+</div><div class='add'>+Sat Nov  8 06:19:38 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: To fix 'pthread-enabled Tcl/Tk' problem,</div><div class='add'>+	  TclTkIp#_eval calls Tcl_Eval() on the mainloop thread only</div><div class='add'>+	  (queueing a handler to the EventQueue).</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/README.1st: edit the description of '--with-pthread-ext'</div><div class='add'>+</div><div class='add'>+Fri Nov  7 23:23:04 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (Pathname#+): if self or the argument is `.', return</div><div class='add'>+	  another.</div><div class='add'>+	  (Pathname#parent): if self is `.', return `..'.</div><div class='add'>+	  (Pathname#children): if self is `.', don't prepend self for a</div><div class='add'>+	  pathname in a result.</div><div class='add'>+	  (Pathname#join): re-implemented using Pathname#+.</div><div class='add'>+	  (Pathname#find): if self is `.', remove `./' prefix of yielding</div><div class='add'>+	  pathname.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 10:23:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent): get rid of SEGV on aliases</div><div class='add'>+	  lookup failure.  (ruby-bugs:PR#1215)</div><div class='add'>+</div><div class='add'>+Fri Nov  7 04:08:05 2003  UENO Katsuhiro  &lt;katsu@blue.sky.or.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c (Init_zlib): define Zlib::GzipReader#each_line as</div><div class='add'>+	  an alias of Zlib::GzipReader#each.</div><div class='add'>+</div><div class='add'>+Fri Nov  7 01:03:16 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): save and restore rb_prohibit_interrupt.</div><div class='add'>+	  [ruby-dev:21857]</div><div class='add'>+</div><div class='add'>+Thu Nov  6 18:05:07 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_inspect): show the path also at a closed file.</div><div class='add'>+	  [ruby-dev:21851]</div><div class='add'>+</div><div class='add'>+Thu Nov  6 11:42:07 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_set_string, strio_reopen): check</div><div class='add'>+	  tainted.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_copy, strio_ungetc, strio_write,</div><div class='add'>+	  strio_putc): add infection.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (strio_path): just nil.  [ruby-dev:21846]</div><div class='add'>+</div><div class='add'>+	* ruby.c (proc_options): reserve searched script path in the</div><div class='add'>+	  source file name table.  [ruby-list:38765]</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Completion#complete): default not to</div><div class='add'>+	  ignore case on completion.  [ruby-talk:84726]</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (make_cmdvector): process backslashes even if a quote</div><div class='add'>+	  is not enclosed.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 23:49:45 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/openssl/gen_csr.rb: there (at least) is a CA which does not</div><div class='add'>+	  accept DN in UTF8STRING format.  it's a sample.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 22:55:16 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, eval.c, signal.c: : add '--with-pthread-ext'</div><div class='add'>+	  option to fix the pthread trouble on 'tcltklib'</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/README.1st: add the description of '--with-pthread-ext'</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tktext.rb: add TkText#text_copy, text_cut, text_paste</div><div class='add'>+	  to support Tcl/Tk8.4's tk_textCopy, tk_textCut, tk_textPaste</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkMenu#set_focus support Tcl/Tk's</div><div class='add'>+	  tk_menuSetFocus</div><div class='add'>+</div><div class='add'>+Wed Nov  5 17:33:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): allow interrupt during loaded program</div><div class='add'>+	  evaluation.  [ruby-dev:21834]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_fetch): always warn if default argument and a</div><div class='add'>+	  block are supplied at the same time. [ruby-dev:21842]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_fetch): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fetch): ditto.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 19:08:47 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser::Switch::PlacedArgument::parse):</div><div class='add'>+	  do not remove next argument if empty value is placed.</div><div class='add'>+</div><div class='add'>+	* test/optparse: added.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 17:05:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/gtk/testrunner.rb: typo.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 11:13:32 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c: add #include "version.h". this file still depends on it.</div><div class='add'>+</div><div class='add'>+	* Makefile.in, bcc32/Makefile.sub, win32/Makefile.sub,</div><div class='add'>+	  wince/Makefile.sub: add version.h dependency to string.c.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 09:14:23 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: revert to the previous revision.</div><div class='add'>+</div><div class='add'>+Wed Nov  5 08:39:51 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb (HTTPRequest#parse): set @client_cert_chain.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb (HTTPRequest#meta_vars): create</div><div class='add'>+	  SSL_CLIENT_CERT_CHAIN_n from @client_cert_chain.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_get_peer_cert_chain): return nil</div><div class='add'>+	  if no cert-chain was given.</div><div class='add'>+</div><div class='add'>+Tue Nov  4 23:44:48 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, wince/Makefile.sub:</div><div class='add'>+	  remove needless version.h dependency.</div><div class='add'>+</div><div class='add'>+Tue Nov  4 23:38:43 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* class.c, hash.c, string.c: remove #include "version.h".</div><div class='add'>+</div><div class='add'>+	* Makefile.in: remove needless version.h dependency.</div><div class='add'>+</div><div class='add'>+Tue Nov  4 06:54:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (read_all): fptr-&gt;f may be NULL, if IO is closed in the</div><div class='add'>+	  signal handler.</div><div class='add'>+</div><div class='add'>+	* io.c (io_read): ditto.</div><div class='add'>+</div><div class='add'>+	* string.c (get_pat): remove 1.8.0 warning code.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match): extend warning until 1.8.2.</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_match2): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (class_instance_method_list): remove 1.8.0 warnings.</div><div class='add'>+	  method_list now recurs.  [ruby-dev:21816]</div><div class='add'>+</div><div class='add'>+	* class.c (rb_obj_singleton_methods): ditto.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_select): remove select with block.</div><div class='add'>+	  [ruby-dev:21824]</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_select): ditto.</div><div class='add'>+</div><div class='add'>+	* hash.c (env_select): ditto.</div><div class='add'>+</div><div class='add'>+	* re.c (match_select): ditto.</div><div class='add'>+</div><div class='add'>+	* struct.c (rb_struct_select): ditto.</div><div class='add'>+</div><div class='add'>+Mon Nov  3 22:53:21 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/racc/parser.rb: synchronize with Racc 1.4.4.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/racc/cparse/cparse.c (parse_main): should abort when</div><div class='add'>+	  the length of LR state stack &lt;=1, not ==0.</div><div class='add'>+</div><div class='add'>+Mon Nov  3 08:50:47 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (check_uid_switch): remove duplicated error messages.</div><div class='add'>+</div><div class='add'>+	* process.c (check_gid_switch): ditto.</div><div class='add'>+</div><div class='add'>+Sun Nov  2 02:28:33 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/ssl.rb: new option :SSLExtraChainCert.</div><div class='add'>+</div><div class='add'>+Sun Nov  2 01:02:04 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_hash): Update the HASH_PERL alternative hash</div><div class='add'>+	  algorithm in sync with Perl 5.8.</div><div class='add'>+</div><div class='add'>+	* st.c (strhash): Ditto.</div><div class='add'>+</div><div class='add'>+Sat Nov  1 18:21:09 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_ssl_peer_cert_chain): add new method</div><div class='add'>+	  SSLSocket#peer_cert_chain.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509req.c (GetX509ReqPtr): new function</div><div class='add'>+	  which returns underlying X509_REQ.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_issuer_cert,</div><div class='add'>+	  ossl_x509extfactory_set_subject_cert, ossl_x509extfactory_set_crl,</div><div class='add'>+	  ossl_x509extfactory_set_subject_req, ossl_x509extfactory_set_config):</div><div class='add'>+	  use underlying C struct without duplication not to leak momory.</div><div class='add'>+</div><div class='add'>+Sat Nov  1 01:49:03 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/factory.rb: mark marshalled basetype objects when</div><div class='add'>+	  @allow_original_mapping is true.  multi-referencing basetype node is</div><div class='add'>+	  prohibited in SOAP/1.1 encoding but soap4r's original ruby object</div><div class='add'>+	  mapping requires basetype to be marked to detect self referencing</div><div class='add'>+	  loop.  e.g. o = 1; o.instance_eval { @iv = o }  soap4r's original</div><div class='add'>+	  mapping is only used through soap/marshal API.</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/test_marshal.rb: add tests for self referencing</div><div class='add'>+	  immutable objects.</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/test_calc_cgi.rb: fix test name.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 22:26:29 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/string_wce.c (strrchr): should decrement pointer.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub: correct a range of isdigit().</div><div class='add'>+</div><div class='add'>+Fri Oct 31 12:55:24 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in, lib/mkmf.rb: add RPATHFLAG for NetBSD.</div><div class='add'>+	  [ruby-dev:21791]</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub, win32/Makefile.sub, win32/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 31 01:38:14 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub, win32/Makefile.sub (.y.c): allow white spaces</div><div class='add'>+	  at the beginning of line to remove by sed. (ruby-bugs-ja:PR#580)</div><div class='add'>+</div><div class='add'>+Fri Oct 31 01:02:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* compar.c (cmp_equal): protect exceptions from &lt;=&gt; comparison</div><div class='add'>+	  again.  returns nil if any exception or error happened during</div><div class='add'>+	  comparison.</div><div class='add'>+</div><div class='add'>+	* eval.c (search_required): should update *featurep when DLEXT2 is</div><div class='add'>+	  defined. (ruby-bugs-ja:PR#581)</div><div class='add'>+</div><div class='add'>+Thu Oct 30 23:41:04 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: add DRbArray</div><div class='add'>+</div><div class='add'>+	* lib/drb/invokemethod.rb: fix Hash#each problem. [ruby-dev:21773]</div><div class='add'>+</div><div class='add'>+	* lib/drb/unix.rb: add LoadError. [ruby-dev:21743]</div><div class='add'>+</div><div class='add'>+Thu Oct 30 23:19:11 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/generator.rb: better XML pretty printing.</div><div class='add'>+</div><div class='add'>+	* lib/soap/encodingstyle/soapHandler.rb: remove unnecessary namespace</div><div class='add'>+	  assignment in the element which has "encodingStyle" attribute, and</div><div class='add'>+	  add necessary namespace assignment for "arrayType" attribute.</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/test_calc_cgi.rb: take over $DEBUG to ruby process</div><div class='add'>+	  through CGI.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 22:59:39 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/yaml2byte.c: HASH const too long.  Thanks, matz.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 19:13:53 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/MANIFEST: Add yamlbyte.h.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 14:25:31 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (READ_DATA_BUFFERED): new macro to detect whether stdio</div><div class='add'>+	  buffer filled.</div><div class='add'>+</div><div class='add'>+	* io.c (rb_io_fptr_cleanup): move path deallocation to</div><div class='add'>+	  rb_io_fptr_finalize (finalizer called by GC).</div><div class='add'>+</div><div class='add'>+Thu Oct 30 13:23:39 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (logop): left may be NULL. [ruby-talk:84539]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): NODE_CASE nd_head may be NULL.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 10:14:51 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb: make fox runner work.</div><div class='add'>+</div><div class='add'>+Thu Oct 30 09:32:26 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (rb_f_system): fixed lack of security check before</div><div class='add'>+	  calling do_spawn() on win32. [ruby-talk:84555]</div><div class='add'>+</div><div class='add'>+Thu Oct 30 02:46:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): single array value to normal Proc#call</div><div class='add'>+	  (i.e. not via lambda call), should be treated just like yield.</div><div class='add'>+	  [ruby-dev:21726]</div><div class='add'>+</div><div class='add'>+Thu Oct 30 02:25:48 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#initialize):</div><div class='add'>+	  add new method to inherit @sync from @io.sync.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): no need to</div><div class='add'>+	  set sync flag explicitly.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): call super.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_setup): set extra chain</div><div class='add'>+	  certificates in @extra_chain_cert.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 22:02:04 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb: use rbconfig.rb to make the path of ruby</div><div class='add'>+	  interpreter to exec, instead of test/ruby/envutil.rb,</div><div class='add'>+</div><div class='add'>+Wed Oct 29 19:58:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (CONST84): define CONST84 when it is not</div><div class='add'>+	  defined and TCL_MAJOR_VERSION &gt;= 8.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (VwaitVarProc, WaitVariableProc,</div><div class='add'>+	  rb_threadVwaitProc): use CONST84 instead of CONST.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_rbTkWaitCommand,</div><div class='add'>+	  ip_rb_threadTkWaitCommand): use CONST84 always.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 17:27:05 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_s_union, Init_Regexp): new method `Regexp.union'.</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (realpath): examine Dir.pwd because it may have</div><div class='add'>+	  symlinks.</div><div class='add'>+</div><div class='add'>+Wed Oct 29 17:16:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): must not disturb original jump.</div><div class='add'>+	  [ruby-dev:21733]</div><div class='add'>+</div><div class='add'>+Wed Oct 29 15:28:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Proc): taint preallocated exception object</div><div class='add'>+	  sysstack_error. [ruby-talk:84534]</div><div class='add'>+</div><div class='add'>+Wed Oct 29 11:27:39 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (ret_args): node may be NULL. [ruby-talk:84530]</div><div class='add'>+</div><div class='add'>+Tue Oct 28 15:20:12 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (VwaitVarProc, ip_rbVwaitObjCmd,</div><div class='add'>+	  WaitVariableProc, WaitVisibilityProc, WaitWindowProc,</div><div class='add'>+	  ip_rbTkWaitObjCmd, ip_rbTkWaitCommand, rb_threadVwaitProc,</div><div class='add'>+	  rb_threadWaitVisibilityProc, rb_threadWaitWindowProc,</div><div class='add'>+	  ip_rb_threadVwaitObjCmd, ip_rb_threadTkWaitObjCmd): prototype;</div><div class='add'>+	  avoid VC++ warnings.</div><div class='add'>+</div><div class='add'>+Mon Oct 27 19:19:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_longjmp): ignore reentering error while warning.</div><div class='add'>+	  [ruby-dev:21730]</div><div class='add'>+</div><div class='add'>+Mon Oct 27 00:23:50 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_ruby): bug fix on Win : hang-up when</div><div class='add'>+	  calling 'exit' in the Tk callback procedure. [ruby-list:38656]</div><div class='add'>+</div><div class='add'>+Sat Oct 25 09:18:04 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_method_missing): protect exception from within</div><div class='add'>+	  "inspect".  (ruby-bugs:PR#1204)</div><div class='add'>+</div><div class='add'>+Fri Oct 24 23:26:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* hash.c (rb_hash_each): Hash#each should yield single value.</div><div class='add'>+	  [ruby-talk:84420]</div><div class='add'>+</div><div class='add'>+	* hash.c (env_each): ditto for ENV.each.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 20:25:32 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (GenericServer#start): should rescue</div><div class='add'>+	  IOError from IO::accept. [ruby-dev:21692]</div><div class='add'>+</div><div class='add'>+Thu Oct 23 17:59:36 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): initialize stack bottom for embedding.</div><div class='add'>+	  [ruby-dev:21686]</div><div class='add'>+</div><div class='add'>+	* ext/dl/extconf.rb: move list of files to clean from DEPEND file,</div><div class='add'>+	  to get rid of macro redefinitions.</div><div class='add'>+</div><div class='add'>+Thu Oct 23 13:44:00 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: integrate operations for stack_type.  [ruby-dev:21681]</div><div class='add'>+</div><div class='add'>+Thu Oct 23 00:41:45 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/*, test/soap/helloworld/*: set logging threshold</div><div class='add'>+	  to ERROR.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 12:53:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):</div><div class='add'>+	  ignore tests which raised LoadError.</div><div class='add'>+</div><div class='add'>+	* test/drb/drbtest.rb, test/ruby/test_beginendblock.rb,</div><div class='add'>+	  test/ruby/test_system.rb: avoid requiring same file twice.</div><div class='add'>+</div><div class='add'>+	* test/drb/test_drbssl.rb, test/drb/test_drbunix.rb: should not use</div><div class='add'>+	  ARGV unless invoked directly.  do not create test cases unless</div><div class='add'>+	  required libraries are available.</div><div class='add'>+</div><div class='add'>+Wed Oct 22 02:31:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): should not ignore exit_value in END</div><div class='add'>+	  execution. [ruby-dev:21670]</div><div class='add'>+</div><div class='add'>+Tue Oct 21 23:16:26 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): call finalizers and exit procs before</div><div class='add'>+	  terminating threads.</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): preserve ruby_errinfo before ruby_finalize_0().</div><div class='add'>+</div><div class='add'>+Tue Oct 21 15:57:11 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#collect_file):</div><div class='add'>+	  prepend the directory of target file to the load path.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 15:08:53 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_spawn, do_aspawn): should wait child process even</div><div class='add'>+	  if callded with P_OVERLAY.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (do_spawn, do_aspawn): should return child's exit</div><div class='add'>+	  status to parent.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 00:35:02 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/*, test/soap/helloworld/*: catch the exception from</div><div class='add'>+	  test server thread and recover.</div><div class='add'>+</div><div class='add'>+Tue Oct 21 00:22:57 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* test/drb/*: import drb/runit.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 23:55:47 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): set current node after arguments evaluation.</div><div class='add'>+	  [ruby-dev:21632]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): set current node and keep it at local jump.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 22:01:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_cleanup): keep thread group for main thread.</div><div class='add'>+	  [ruby-dev:21644]</div><div class='add'>+</div><div class='add'>+Mon Oct 20 18:28:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_catch): backout.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 17:31:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()</div><div class='add'>+	  destination.</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_destination): use unique number in ruby_frame</div><div class='add'>+	  for localjump destination.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 11:31:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (test_signal): restore old trap.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 11:00:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): loosen page free condition to avoid add_heap()</div><div class='add'>+	  race condition. [ruby-dev:21633]</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_sweep): do not update malloc_limit when malloc_increase</div><div class='add'>+	  is smaller than malloc_limit.</div><div class='add'>+</div><div class='add'>+Mon Oct 20 09:45:12 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (debug_command): remove debug print.</div><div class='add'>+</div><div class='add'>+Sun Oct 19 13:12:30 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (foreachline, dir_foreach): add obsolete warning.</div><div class='add'>+</div><div class='add'>+Sun Oct 19 00:14:22 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/*, test/soap/helloworkd/*: changed port# of test</div><div class='add'>+	  server. (17171)</div><div class='add'>+</div><div class='add'>+Sat Oct 18 23:01:32 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* missing/acosh.c (DBL_MANT_DIG): typo fix(ifdef -&gt; ifndef).</div><div class='add'>+</div><div class='add'>+Sat Oct 18 05:48:59 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: YAML::Syck::compile method.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.c: Buffer edge bug.</div><div class='add'>+</div><div class='add'>+	* ext/syck/yaml2byte.c: YAML to bytecode converter.</div><div class='add'>+</div><div class='add'>+	* ext/syck/yamlbyte.h: Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/bytecode.c: Bytecode parser fixes to empty collections</div><div class='add'>+	  and empty strings.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: Ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 23:07:38 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/enumerator/enumerator.c, ext/enumerator/enumerator.txt:</div><div class='add'>+	  Provide Kernel#to_enum as an alias for Kernel#enum_for.  Maybe</div><div class='add'>+	  this is a better name.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 23:00:30 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: Add rdoc documentation.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 22:16:42 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: Reword and fix Overview.</div><div class='add'>+</div><div class='add'>+	* lib/set.rb: It is not necessary to require</div><div class='add'>+	  'test/unit/ui/console/testrunner'.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 11:15:22 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb: added.</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add test/ruby/test_range.rb.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 03:21:23 2003  William Sobel  &lt;will.sobel@barra.com&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (make_hostent): h_aliases may be NULL.</div><div class='add'>+	  (ruby-bugs:PR#1195)</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_gethostbyaddr): ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct 17 00:12:41 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: (bug fix) instance variable @frame was used</div><div class='add'>+	  without initializing on TkComposite module.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 23:51:04 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: If $DEBUG == true and some exception is caused</div><div class='add'>+	  in a callback operation, Ruby/Tk shows a (verbose) backtrace</div><div class='add'>+	  information on the callback process.</div><div class='add'>+</div><div class='add'>+Thu Oct 16 17:09:19 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (DEBUGGER__::Context::debug_command): do not call</div><div class='add'>+	  debug_silent_eval() when $1 is not set. (ruby-bugs:PR#1194)</div><div class='add'>+</div><div class='add'>+Thu Oct 16 16:54:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_upto): ("a"..."a").to_a should return [].</div><div class='add'>+	  [ruby-core:01634]</div><div class='add'>+</div><div class='add'>+Thu Oct 16 16:40:51 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb:</div><div class='add'>+	  Add Tk::EncodedString and Tk::UTF8_String class to support</div><div class='add'>+	  characters using the \uXXXX escape to the UNICODE string.</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/{demos-en,demos-jp}/unicodeout.rb</div><div class='add'>+	  new demo-scripts (samples of Tk::UTF8_String)</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/{demos-en,demos-jp}/widget</div><div class='add'>+	  add entries for 'unicodeout.rb'</div><div class='add'>+</div><div class='add'>+Thu Oct 16 08:38:06 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest.rb (test_eq): show failed class.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (test_break, test_return_trace_func):</div><div class='add'>+	  test localjump destination.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 20:22:31 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb: use URI::HTTP#request_uri instead of</div><div class='add'>+	  instance_eval('path_query').  [ruby-list:38575]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 17:24:45 2003  URABE Shyouhei  &lt;root@mput.dip.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb (CGI::Cookie): tiny typo fix.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 15:00:54 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_run): just return FAILURE instead of parse error</div><div class='add'>+	  count.  [ruby-list:38569]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 13:17:02 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (rb_digest_base_alloc): need to initialize</div><div class='add'>+	  buffer. [ruby-dev:21622]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 11:23:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): dump extended modules as well.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): TYPE_USRMARSHAL should restore extended</div><div class='add'>+	  modules before invoking marshal_load.  these two fixes are done</div><div class='add'>+	  by Masatoshi Seki &lt;m_seki@mva.biglobe.ne.jp&gt;.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 09:30:34 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/enumerator/enumerator.c (enumerator_each): avoid VC++ warning.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: include stdio.h for definition of FILE.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 08:09:07 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/bytecode.c: Checkin of YAML bytecode support.</div><div class='add'>+</div><div class='add'>+	* ext/syck/gram.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'>+	* ext/syck/handler.c: Ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck/handler.c: Now using 'tag' rather than 'taguri' in type URIs.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: Ditto (on both counts).</div><div class='add'>+</div><div class='add'>+Wed Oct 15 05:05:53 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/generator.rb: A new library which converts an internal</div><div class='add'>+	  iterator to an external iterator.</div><div class='add'>+</div><div class='add'>+	* lib/abbrev.rb: A new library which creates an abbreviation table</div><div class='add'>+	  from a list.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 04:31:51 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/entry3.rb, ext/tk/sample/demos-jp/entry3.rb:</div><div class='add'>+	  new demo-scripts</div><div class='add'>+</div><div class='add'>+	* ext/tk/sample/demos-en/widget, ext/tk/sample/demos-jp/widget:</div><div class='add'>+	  add entries for 'entry3.rb'</div><div class='add'>+</div><div class='add'>+Wed Oct 15 04:31:47 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest.rb: Moved from ext/digest/test.rb.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 03:53:20 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: fixed trouble on auto-load Tcl commands (enbug</div><div class='add'>+	  on the last commit).</div><div class='add'>+</div><div class='add'>+Wed Oct 15 00:25:00 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): argument parentheses preceded by spaces should</div><div class='add'>+	  be warned; not error.  [ruby-talk:84103]</div><div class='add'>+</div><div class='add'>+Wed Oct 15 00:20:15 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: replace Tcl/Tk's vwait and tkwait to</div><div class='add'>+	  switch on threads smoothly and avoid seg-fault.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: add TclTkIp._thread_vwait and</div><div class='add'>+	  _thread_tkwait for waiting on a thread. (Because Tcl/Tk's vwait</div><div class='add'>+	  and tkwait command wait on an eventloop.)</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: support TclTkIp._thread_vwait and</div><div class='add'>+	  _thread_tkwait.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: now, TkVariable#wait has 2 arguments.</div><div class='add'>+	  If 1st argument is true, waits on a thread. If false, waits on</div><div class='add'>+	  an eventloop. If 2nd argument is true, checks existence of</div><div class='add'>+	  rootwidgets. If false, doesn't. Default is wait(true, false).</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: add TkVariable#tkwait(arg) which is equal to</div><div class='add'>+	  TkVariable#wait(arg, true). wait_visibility and wait_destroy</div><div class='add'>+	  have an argument for waiting on a thread or an eventloop.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: improve of accessing Tcl/Tk's special variables.</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkafter.rb: support 'wait on a thread' and 'wait on</div><div class='add'>+	  an eventloop'.</div><div class='add'>+</div><div class='add'>+Wed Oct 15 00:10:24 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/baseData.rb: Introduce SOAPType as the common ancestor of</div><div class='add'>+	  SOAPBasetype and SOAPCompoundtype.</div><div class='add'>+</div><div class='add'>+	* lib/soap/generator.rb, lib/soap/element.rb, lib/soap/encodingstyle/*:</div><div class='add'>+	  Encoding methods signature change.  Pass SOAPGenerator as a parameter.</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/*, test/soap/marshal/test_marshal.rb: Refactoring</div><div class='add'>+	  for better marshalling/unmarshalling support.  Now I think SOAP</div><div class='add'>+	  marshaller supports all kind of object graph which is supported by</div><div class='add'>+	  Ruby's original marshaller.  Of course there could be bugs as always.</div><div class='add'>+	  Find it.  :-)</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/standaloneServer.rb: Set severity threshould to INFO.</div><div class='add'>+	  DEBUG is too noisy.</div><div class='add'>+</div><div class='add'>+	* lib/xsd/datatypes.rb: DateTime#of is obsoleted.  Use DateTime#offset.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/emptycomplextype.wsdl, test/xsd/xmlschema.xml: Avoid</div><div class='add'>+	  useless warning.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 19:09:35 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_finalize_0): return the given exit status unless</div><div class='add'>+	  SystemExit got raised.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 11:53:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (ruby_stop): never return.</div><div class='add'>+</div><div class='add'>+	* ruby.h (ruby_run): ditto.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 04:43:55 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (realpath): make ELOOP check bit more robust.</div><div class='add'>+	  (children): prepend self by default.</div><div class='add'>+	  (chroot): obsoleted.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 02:29:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_require_safe): segfault after loading .so.</div><div class='add'>+</div><div class='add'>+Tue Oct 14 02:05:23 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup*, ext/enumerator/*: Add ext/enumerator, a helper</div><div class='add'>+	  module for the Enumerable interface.</div><div class='add'>+</div><div class='add'>+Mon Oct 13 23:55:59 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: use Config::CONFIG["ruby_install_name"],</div><div class='add'>+	  not "ruby".</div><div class='add'>+</div><div class='add'>+Mon Oct 13 23:57:29 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_feature_p): match by classified suffix.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_require_safe): require library in the specified safe</div><div class='add'>+	  level.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload, rb_autoload_load): restore safe level</div><div class='add'>+	  when autoload was called.  [ruby-dev:21338]</div><div class='add'>+</div><div class='add'>+	* intern.h: prototypes; rb_require_safe.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: accept non-option arguments.</div><div class='add'>+</div><div class='add'>+Mon Oct 13 20:49:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new4): should not preserve FL_TAINT status in the</div><div class='add'>+	  internal shared string. [ruby-dev:21601]</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_new4): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: use EXIT_SUCCESS and EXIT_FAILURE for exit values.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto. [ruby-list:38521]</div><div class='add'>+</div><div class='add'>+Mon Oct 13 19:51:02 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb (debug_command): should enter emacs mode when</div><div class='add'>+	  assigned any value to the environment variable "EMACS".</div><div class='add'>+	  On Meadow, (getenv "EMACS") is "meadow".</div><div class='add'>+</div><div class='add'>+Sun Oct 12 14:45:03 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb: check "windows.h", not "windows".</div><div class='add'>+	  [ruby-talk:84051]</div><div class='add'>+</div><div class='add'>+Sat Oct 11 20:41:03 2003  Corinna Vinschen  &lt;corinna@vinschen.de&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (eaccess): Use access(2) on Cygwin.</div><div class='add'>+</div><div class='add'>+Sat Oct 11 17:09:21 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rexml/quickpath.rb (REXML::QuickPath::match):</div><div class='add'>+	  escape '[' to avoid warning.</div><div class='add'>+</div><div class='add'>+Sat Oct 11 16:08:41 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (realpath): check existence of the file.</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (realpath): re-implemented.</div><div class='add'>+	  (realpath_root?, realpath_rec): removed</div><div class='add'>+</div><div class='add'>+Sat Oct 11 10:19:39 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: handle exceptions correctly. Thanks, Gennady</div><div class='add'>+	  Bystritsky.</div><div class='add'>+</div><div class='add'>+Fri Oct 10 07:50:54 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): inheritance line adjustment as like as</div><div class='add'>+	  rb_call_super().</div><div class='add'>+</div><div class='add'>+Fri Oct 10 01:19:00 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_initialize): add</div><div class='add'>+	  optional argument to specify the DirectoryString type</div><div class='add'>+	  (ASN1::UTF8STRING by default). RFC3280 deprecates PrintableString</div><div class='add'>+	  for DirectoryString, and strongly requires to use UTF8String for</div><div class='add'>+	  all certificates issued after December, 31 2003.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb (X509::Name::parse): ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 23:50:21 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): prevent thread from GC.</div><div class='add'>+	  [ruby-dev:21572]</div><div class='add'>+</div><div class='add'>+Thu Oct  9 19:11:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): non-volatile should be restored from</div><div class='add'>+	  volatile.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 17:43:36 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_save_safe_level, proc_get_safe_level,</div><div class='add'>+	  proc_set_safe_level): save/restore safe level 1..4.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 16:33:23 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): remove unnecessary iv restoration for</div><div class='add'>+	  USRMARSHAL. [ruby-dev:21582]</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): dump generic instance variables from</div><div class='add'>+	  a string from '_dump'.</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_generic_ivar_table): return 0 if obj's FL_EXIVAR</div><div class='add'>+	  is not set.</div><div class='add'>+</div><div class='add'>+	* time.c (time_dump): copy instance variables to dumped string, to</div><div class='add'>+	  be included in the marshaled data.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big2ulong): add range check to ensure round trip.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 15:45:27 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* pack.c (uv_to_utf8): change message to "out of range", since</div><div class='add'>+	  negative values are not "too big". [ruby-dev:21567]</div><div class='add'>+</div><div class='add'>+Thu Oct  9 14:05:38 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_set_end_proc, rb_exec_end_proc): restore safe level.</div><div class='add'>+	  [ruby-dev:21557]</div><div class='add'>+</div><div class='add'>+Thu Oct  9 10:51:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): no error if block is empty.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 06:43:33 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_error): id should be ID.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): nd_rval is set in copy_node_scope().</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): unused variable.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): nothing to do for empty node.</div><div class='add'>+</div><div class='add'>+	* eval.c (call_end_proc, proc_invoke): adjust backtrace in END.</div><div class='add'>+	  [ruby-dev:21551]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): set the value by break as the result.</div><div class='add'>+	  [ruby-dev:21552]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0, rb_thread_raise, rb_callcc): save</div><div class='add'>+	  variables across THREAD_SAVE_CONTEXT.</div><div class='add'>+</div><div class='add'>+Thu Oct  9 12:05:46 2003  Eric Sunshine  &lt;sunshine@sunshineco.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: revived NextStep, OpenStep, and Rhapsody ports which</div><div class='add'>+	  had become unbuildable; enhanced --enable-fat-binary option so that</div><div class='add'>+	  it accepts a list of desired architectures (rather than assuming a</div><div class='add'>+	  fixed list), or defaults to a platform-appropriate list if user does</div><div class='add'>+	  not provide an explicit list; made the default list of architectures</div><div class='add'>+	  for MAB (fat binary) more comprehensive; now uses -fno-common even</div><div class='add'>+	  when building the interpreter (in addition to using it for</div><div class='add'>+	  extensions), thus allowing the interpreter to be embedded into a</div><div class='add'>+	  plugin module of an external project (in addition to allowing</div><div class='add'>+	  embedding directly into an application); added checks for</div><div class='add'>+	  &lt;netinet/in_systm.h&gt; (needed by `socket' extension) and getcwd(); now</div><div class='add'>+	  ensures that -I/usr/local/include is employed when extensions'</div><div class='add'>+	  extconf.rb scripts invoke have_header() since extension checks on</div><div class='add'>+	  NextStep and OpenStep will fail without it if the desired resource</div><div class='add'>+	  resides in the /usr/local tree; fixed formatting of --help message.</div><div class='add'>+</div><div class='add'>+	* Makefile.in: $(LIBRUBY_A) rule now deletes the archive before</div><div class='add'>+	  invoking $(AR) since `ar' on Apple/NeXT can not "update" MAB archives</div><div class='add'>+	  (see configure's --enable-fat-binary option); added rule for new</div><div class='add'>+	  missing/getcwd.c.</div><div class='add'>+</div><div class='add'>+	* defines.h: fixed endian handling during MAB build (see configure's</div><div class='add'>+	  --enable-fat-binary option) to ensure that all portions of the</div><div class='add'>+	  project see the correct WORDS_BIGENDIAN value (some extension modules</div><div class='add'>+	  were getting the wrong endian setting); added missing constants</div><div class='add'>+	  GETPGRP_VOID, WNOHANG, WUNTRACED, X_OK, and type pid_t for NextStep</div><div class='add'>+	  and OpenStep; removed unnecessary and problematic HAVE_SYS_WAIT_H</div><div class='add'>+	  define in NeXT section.</div><div class='add'>+</div><div class='add'>+	* dir.c: do not allow NAMLEN() macro to trust dirent::d_namlen on</div><div class='add'>+	  NextStep since, on some installations, this value always resolves</div><div class='add'>+	  uselessly to zero.</div><div class='add'>+</div><div class='add'>+	* dln.c: added error reporting to NextStep extension loader since the</div><div class='add'>+	  previous behavior of failing silently was not useful; now ensures</div><div class='add'>+	  that NSLINKMODULE_OPTION_BINDNOW compatibility constant is defined</div><div class='add'>+	  for OpenStep and Rhapsody; no longer includes &lt;mach-o/dyld.h&gt; twice</div><div class='add'>+	  on Rhapsody since this header lacks multiple-include protection,</div><div class='add'>+	  which resulted in "redefinition" compilation errors.</div><div class='add'>+</div><div class='add'>+	* main.c: also create hard reference to objc_msgSend() on NeXT</div><div class='add'>+	  platforms (in addition to Apple platforms).</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb: now exports XCFLAGS from configure script to extension</div><div class='add'>+	  makefiles so that extensions can be built MAB (see configure's</div><div class='add'>+	  --enable-fat-binary option); also utilize XCFLAGS in cc_command()</div><div class='add'>+	  (but not cpp_command() because MAB flags are incompatible with</div><div class='add'>+	  direct invocation of `cpp').</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: now additionally checks for presence of these</div><div class='add'>+	  curses functions which are not present on NextStep or Openstep:</div><div class='add'>+	  bkgd(), bkgdset(), color(), curs(), getbkgd(), init(), scrl(), set(),</div><div class='add'>+	  setscrreg(), wattroff(), wattron(), wattrset(), wbkgd(), wbkgdset(),</div><div class='add'>+	  wscrl(), wsetscrreg()</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c: added appropriate #ifdef's for additional set of</div><div class='add'>+	  curses functions now checked by extconf.rb; fixed curses_bkgd() and</div><div class='add'>+	  window_bkgd() to correctly return boolean result rather than numeric</div><div class='add'>+	  result; fixed window_getbkgd() to correctly signal an error by</div><div class='add'>+	  returning nil rather than -1.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: setup_passwd() and setup_group() now check for null</div><div class='add'>+	  pointers before invoking rb_tainted_str_new2() upon fields extracted</div><div class='add'>+	  from `struct passwd' and `struct group' since null pointers in some</div><div class='add'>+	  fields are common on NextStep/OpenStep (especially so for the</div><div class='add'>+	  `pw_comment' field) and rb_tainted_str_new2() throws an exception</div><div class='add'>+	  when it receives a null pointer.</div><div class='add'>+</div><div class='add'>+	* ext/pty/pty.c: include "util.h" for strdup()/ruby_strdup() for</div><div class='add'>+	  platforms such as NextStep and OpenStep which lack strdup().</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c: cast first argument of getservbyname(),</div><div class='add'>+	  gethostbyaddr(), and gethostbyname() from (const char*) to non-const</div><div class='add'>+	  (char*) for older platforms such as NextStep and OpenStep.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c: include "util.h" for strdup()/ruby_strdup() for</div><div class='add'>+	  platforms such as NextStep and OpenStep which lack strdup(); include</div><div class='add'>+	  &lt;netinet/in_systm.h&gt; if present for NextStep and OpenStep; cast first</div><div class='add'>+	  argument of gethostbyaddr() and getservbyname() from (const char*) to</div><div class='add'>+	  non-const (char*) for older platforms.</div><div class='add'>+</div><div class='add'>+	* ext/syslog/syslog.c: include "util.h" for strdup()/ruby_strdup() for</div><div class='add'>+	  platforms such as NextStep and OpenStep which lack strdup().</div><div class='add'>+</div><div class='add'>+Wed Oct  8 22:19:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: removed installation instructions.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/testrunnermediator.rb: moved the run flag to a more</div><div class='add'>+	  central location.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: extracted the running code in to AutoRunner.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb: added.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb: extracted common test</div><div class='add'>+	  collection functionality in to a module.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector.rb: ditto; added.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/dir.rb: added. Supports collecting tests out</div><div class='add'>+	  of a directory structure.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb: added.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: simplified to use the new capabilities.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 15:23:09 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb: add tests for nested BEGIN/END.</div><div class='add'>+</div><div class='add'>+	* test/ruby/beginmainend.rb: add tests for nested BEGIN/END.</div><div class='add'>+</div><div class='add'>+	* test/ruby/endblockwarn.rb: new file added to test of END-in-method</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 12:23:47 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/fcntl.c (Init_fcntl): define Fcntl::O_ACCMODE.</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: useless assignment removed.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 09:13:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb (test_endinmethod): END{} is now</div><div class='add'>+	  allowed in eval.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 04:15:25 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): should not expand mrhs if lhs is solely starred.</div><div class='add'>+</div><div class='add'>+Tue Oct  7 02:57:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): rhs of multiple assignment should not be</div><div class='add'>+	  expanded using "to_a". [ruby-dev:21527]</div><div class='add'>+</div><div class='add'>+Tue Oct  7 01:42:34 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1_get_asn1type): use appropriate</div><div class='add'>+	  free function for ASN1_OBJECT.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_sn): add new function for</div><div class='add'>+	  ASN1::ObjectId#sn; it returns short name text representation of OID.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_ln): add new function for</div><div class='add'>+	  ASN1::ObjectId#ln; it returns long name text representation of OID.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c (ossl_asn1obj_get_oid): add new function for</div><div class='add'>+	  ASN1::ObjectId#oid; it returns numerical representation of OID.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 22:59:46 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb (IOReader, BasicWriter): call binmode when a given IO</div><div class='add'>+	  respond_to?(:binmode).  record separator was wrong when you gave</div><div class='add'>+	  text mode IO to Reader.parse and Writer.generate.</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: add tests for above change.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 16:23:38 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): wrong method name in the message.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 16:02:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (stmt): END in method should cause warning.</div><div class='add'>+	  [ruby-dev:21519]</div><div class='add'>+</div><div class='add'>+Mon Oct  6 15:17:23 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (test_block_argument_without_paren):</div><div class='add'>+	  added. (follows sample/test.rb)</div><div class='add'>+</div><div class='add'>+Mon Oct  6 11:57:06 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: added</div><div class='add'>+	  test for eval-ed BEGIN END order.</div><div class='add'>+</div><div class='add'>+Mon Oct  6 09:19:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should pass "weak" value to next level.</div><div class='add'>+	  [ruby-dev:21496]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_alloc): should not use cached object if klass is</div><div class='add'>+	  different. [ruby-talk:83685]</div><div class='add'>+</div><div class='add'>+Sun Oct  5 23:27:09 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check recvmsg even if sendmsg is exists.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (thread_read_select): restored.</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: version information is added in document.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 23:07:03 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_END): block should be given.  [ruby-dev:21497]</div><div class='add'>+</div><div class='add'>+Sun Oct  5 22:51:23 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ext/openssl/extconf.rb: add check for some engine functions</div><div class='add'>+	  unavailable in OpenSSL-0.9.6.</div><div class='add'>+</div><div class='add'>+	* lib/ext/openssl/ossl_engine.c: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 17:56:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): fix evaluation order.  [ruby-list:38431]</div><div class='add'>+</div><div class='add'>+Sun Oct  5 15:05:06 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/uri/*: translated RUNIT to Test::Unit.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 14:37:39 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xsd/datatypes.rb: Rational -&gt; Decimal string bug fix.</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/test_marshal.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/test_calc_cgi.rb: add Config::CONFIG["EXEEXT"] to</div><div class='add'>+	  RUBYBIN.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 13:47:22 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb, test/ruby/beginmainend.rb: add tests</div><div class='add'>+	  about scope, order and allowed syntax.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 11:54:29 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: added.  split "rubybin" from test_system.rb.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb: use envutil.rb</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb: added.</div><div class='add'>+</div><div class='add'>+	* test/ruby/beginmainend.rb: added.  used in test_beginendblock.rb.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 11:23:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/runit/test_testresult.rb: removed some unnecessary</div><div class='add'>+	  cruft.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 11:14:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubyunit.rb: aliasing TestCase into the top level is</div><div class='add'>+	  problematic.</div><div class='add'>+</div><div class='add'>+	* lib/runit/assert.rb: fixed a couple of bugs caused by recent</div><div class='add'>+	  refactoring in Test::Unit.</div><div class='add'>+</div><div class='add'>+	* test/testunit/runit/*: added.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 10:55:29 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb (URI::Generic#find_proxy): no_proxy support did not</div><div class='add'>+	  work.  [ruby-dev:21484]</div><div class='add'>+</div><div class='add'>+Sun Oct  5 09:52:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: will use pp for output if available.</div><div class='add'>+	  Can be disabled by setting Assertions.use_pp = false.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: made a small change to exception</div><div class='add'>+	  formatting.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 07:42:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: made small improvements to assertion</div><div class='add'>+	  messages. Deprecated Assertions#assert_not_nil; use #assert instead.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/util/test_procwrapper.rb: use #assert instead of</div><div class='add'>+	  #assert_not_nil.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 04:10:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: refactored message building.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 03:40:22 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.h: global symbols should be declared</div><div class='add'>+	  as external.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 03:03:20 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb (test_else): added.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 02:12:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: changed assertion messages to rely more</div><div class='add'>+	  heavily on #inspect. Added backtrace filtering for exceptions in</div><div class='add'>+	  assertion messages.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sun Oct  5 02:12:00 2003  Masatoshi SEKI  &lt;m_seki@mva.biglobe.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* lib/drb/acl.rb, lib/drb/ssl.rb: added.</div><div class='add'>+</div><div class='add'>+	* lib/drb/drb.rb: exit from a thread using 'break'.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 21:49:14 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): the type of space is changed to unsigned int</div><div class='add'>+	  from double.  [ruby-dev:21483]</div><div class='add'>+</div><div class='add'>+Sat Oct  4 17:52:59 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/netHttpClient.rb: follow http-access2.  hosts which matches</div><div class='add'>+	  ENV['no_proxy'] or ENV['NO_PROXY'] are not proxyed.</div><div class='add'>+	  - [,:] separated. ("ruby-lang.org:rubyist.net")</div><div class='add'>+	  - no regexp. (give "ruby-lang.org", not "*.ruby-lang.org")</div><div class='add'>+	  - if you want specify host by IP address, give full address.</div><div class='add'>+	    ("192.168.1.1, 192.168.1.2")</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/cgistub.rb: return "Status: XXX MMM" line.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: give testsuite name.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 15:16:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): instance variable dump do not cause error</div><div class='add'>+	  for objects that cannot be dumped, if they traversed from</div><div class='add'>+	  marshal_dump.  they are just ignored.</div><div class='add'>+</div><div class='add'>+	* gc.c (Init_stack): cast "space" (doble value) into unsigned</div><div class='add'>+	  int.  should run on PowerPC.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not execute else part if any exception</div><div class='add'>+	  is caught. [ruby-dev:21482]</div><div class='add'>+</div><div class='add'>+	* parse.y (f_args): should allow unparenthesized block argument.</div><div class='add'>+</div><div class='add'>+	* parse.y (f_rest_arg): should allow unparenthesized rest</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 14:59:51 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (initialize): raise ArgumentError if argument has</div><div class='add'>+	  '\0' character.</div><div class='add'>+	  (relative_path_from): new method.</div><div class='add'>+	  (each_entry): new method for replacement of dir_foreach.</div><div class='add'>+	  (foreach, foreachline, dir_foreach, chdir): obsoleted.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 12:58:48 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/uri/* (6 files): added.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 12:44:45 2003  akira yamada  &lt;akira@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/uri/ftp.rb, lib/uri/mailto.rb: renamed to #to_s from #to_str.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 07:33:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testsuite.rb: changed #&lt;&lt; to return self, and added</div><div class='add'>+	  #delete.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_testsuite.rb: ditto. Also slightly refactored</div><div class='add'>+	  #test_size.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb: collector now preserves the</div><div class='add'>+	  hierarchy of suites.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 04:48:49 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: default keys handled.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: lowered default buffer size to 16k for increased</div><div class='add'>+	  performance.</div><div class='add'>+</div><div class='add'>+	* test/yaml: checkin of basic unit tests.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 04:24:19 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for X509V3_set_nconf.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_set_config):</div><div class='add'>+	  cannot implement if X509V3_set_nconf doesn't exist.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 02:12:44 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xsd/datatypes.rb: dump sign by itself.  under the problematic</div><div class='add'>+	  platform, sprintf("%+.10g", -0.0) =&gt; +0.  sigh.</div><div class='add'>+</div><div class='add'>+	* sample/wsdl/amazon/*: update schema ver2 to ver3.</div><div class='add'>+</div><div class='add'>+Sat Oct  4 01:33:46 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb (initialize): duplicate and freeze argument.</div><div class='add'>+	  (to_s): return duplicated string.</div><div class='add'>+	  (children): new method.</div><div class='add'>+	  (each_line): new alias to foreachline.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 16:13:19 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.c: add DER encoder and decoder.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.h: add OpenSSL::ASN1 module.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (Init_openssl): call Init_ossl_asn1.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check if X509_ATTRIBUTE has field "single".</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): accept</div><div class='add'>+	  DER encoded data argument.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c (ossl_x509attr_get_value): return</div><div class='add'>+	  DER encoded data in OpenSSL::ASN1 types.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 13:02:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: refactored to use optparse.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: added support for selecting the output</div><div class='add'>+	  level from the command-line.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: added a command-line switch to stop processing</div><div class='add'>+	  the command-line, allowing arguments to be passed to tests.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: changed the method for specifying a runner or a</div><div class='add'>+	  filter from the command-line.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb: fixed a bug causing all</div><div class='add'>+	  tests to be excluded when the filter was set to an empty array.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+Fri Oct  3 08:14:32 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb (RubyLex::identify_identifier): support</div><div class='add'>+	  'class ::Foo' syntax. [ruby-talk:83514]</div><div class='add'>+</div><div class='add'>+Fri Oct  3 08:01:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: added a default message for #assert,</div><div class='add'>+	  #assert_block, and #flunk.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/failure.rb: failures now show a better trace of where</div><div class='add'>+	  they occurred.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_failure.rb: ditto (added).</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_testcase.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/util/backtracefilter.rb: added.</div><div class='add'>+</div><div class='add'>+	* test/testunit/util/test_backtracefilter.rb: added.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/error.rb: changed to use BacktraceFilter and improved</div><div class='add'>+	  output.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_error.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 20:33:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_failure_initialize): conform with</div><div class='add'>+	  orthodox initialization method.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_fail): initialize exception instance</div><div class='add'>+	  from the class, and do not share instance variables with the</div><div class='add'>+	  others.  [ruby-dev:21470]</div><div class='add'>+</div><div class='add'>+Thu Oct  2 18:20:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (Init_Time): define initialize.  [ruby-dev:21469]</div><div class='add'>+</div><div class='add'>+Thu Oct  2 17:39:38 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.c: add a new module OpenSSL::Engine.</div><div class='add'>+	  it supports OpenSSL hardware cryptographic engine interface.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_engine.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/MANIFEST: add ossl_engine.c and ossl_engine.h.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for openssl/engine.h.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c: call Init_ossl_engine().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: include openssl/engine.h.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_{rsa,dsa,dh}.c: check if underlying</div><div class='add'>+	  EVP_PKEY referes engine.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 17:22:37 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_load): restore instance variables (if any) before</div><div class='add'>+	  loading from marshaled data.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 14:19:15 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_fail): now yield erred substring, and</div><div class='add'>+	  set error object to $!.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): error handler block should</div><div class='add'>+	  return appended part and the rest.  if rest is nil, the</div><div class='add'>+	  conversion stops.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 12:00:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_0): look up constants in Object as</div><div class='add'>+	  well.  [ruby-dev:21458]</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_defined.rb (TestDefined::test_defined): test for</div><div class='add'>+	  constants.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 11:17:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/assertions.rb: should not capture an</div><div class='add'>+	  AssertionFailedError unless explicitly requested.</div><div class='add'>+</div><div class='add'>+	* test/testunit/test_assertions.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_objectspace.rb: fixed a test failure</div><div class='add'>+	  caused by methods being returned in different orders on different</div><div class='add'>+	  platforms by moving test sorting from TestSuite into the locations</div><div class='add'>+	  where suites are constructed. [ruby-talk:83156]</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testsuite.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb: ditto.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 03:25:01 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_raise): prototype; avoid VC++ warning.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 01:37:34 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* time.c (time_mdump): new marshal dumper. _dump is still</div><div class='add'>+	  available for compatibility.</div><div class='add'>+</div><div class='add'>+	* time.c (time_mload): new marshal loader.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): preserve instance variables for objects</div><div class='add'>+	  with marshal_dump.</div><div class='add'>+</div><div class='add'>+	* marshal.c (r_object0): restore instance variables before calling</div><div class='add'>+	  marshal_load.</div><div class='add'>+</div><div class='add'>+	* error.c (rb_warn_m): always return nil.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 01:32:46 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_block_given_p): real required condition is</div><div class='add'>+	  ruby_frame-&gt;prev-&gt;iter == ITER_CUR.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_block_given_p): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): update ruby_frame-&gt;iter only when previous</div><div class='add'>+	  value is ITER_NOT.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 01:02:35 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_defined_at): should exclude constants from</div><div class='add'>+	  Object when TYPE(klass) == T_MODULE *and* exclude is on.</div><div class='add'>+	  [ruby-dev:21458]</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): do not lookup constants from Object</div><div class='add'>+	  when TYPE(klass) == T_MODULE *and* exclude is on.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 00:21:11 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: unlinking file before close causes</div><div class='add'>+	  problem under win32 box.</div><div class='add'>+</div><div class='add'>+	* lib/xsd/datatypes.rb(XSDFloat, XSDDouble): add +/- sign explicitly</div><div class='add'>+	  when stringified and embedded into XML instance.  Ruby's sprintf may</div><div class='add'>+	  format -0.0 as "0.0" (no minus sign) depending on underlying C</div><div class='add'>+	  sprintf implementation.</div><div class='add'>+</div><div class='add'>+	* test/xsd/test_xsd.rb, test/soap/test_basetype.rb: follow above change.</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/*: give httpd config param "CGIInterpreter".</div><div class='add'>+	  "/usr/bin/env ruby" thing does not work under non-Unix boxes.</div><div class='add'>+</div><div class='add'>+Thu Oct  2 00:25:21 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c (ruby_signal_name): adjust to the prototype.</div><div class='add'>+</div><div class='add'>+	* process.c (pst_inspect): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c (etc_getgrent, Init_etc): typo.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 20:49:41 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (heaps): manage slots and limits together.  [ruby-dev:21453]</div><div class='add'>+</div><div class='add'>+	* gc.c (add_heap): should not clear heaps slot even if realloc()</div><div class='add'>+	  failed.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 20:36:49 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add wince/mkconfig_wce.rb.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 17:22:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c: add new functions: setpwent, getpwent, endpwent,</div><div class='add'>+	  setgrent, getgrent, endgrent.</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (sock_s_gethostbyname): do not reverse lookup.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 17:01:30 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): Object scope had priority over required file</div><div class='add'>+	  scope.  [ruby-dev:21415]</div><div class='add'>+</div><div class='add'>+Wed Oct  1 14:09:53 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/mkconfig_wce.rb: sorry, forget to commit.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 10:08:42 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/setup.mak: add sigmarionIII SDK support.</div><div class='add'>+</div><div class='add'>+	* wince/Makefile.sub: ditto.</div><div class='add'>+</div><div class='add'>+	* wince/mkexports.rb: fix linker error in SH4.</div><div class='add'>+</div><div class='add'>+	* wince/mkconfig_wce.rb: camouflage RUBY_PLATFORM for compiling ext.</div><div class='add'>+</div><div class='add'>+Wed Oct  1 08:02:52 2003  Takaaki Uematsu  &lt;uema2x@jcom.home.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* wince/time_wce.c (time): add zero check.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 16:11:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: copy lex.c from $(srcdir) if it's not the current</div><div class='add'>+	  directory.  [ruby-dev:21437]</div><div class='add'>+</div><div class='add'>+Tue Sep 30 11:29:23 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (pst_inspect): describe stopped process "stopped".</div><div class='add'>+</div><div class='add'>+Tue Sep 30 09:31:56 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: glob for directories.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 09:11:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): while/until should not capture break unless</div><div class='add'>+	  they are destination of the break.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 03:12:02 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (finish): revert to 1.93.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (finish): revert to 1.60.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (finish): revert to 1.67.</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (do_start): ensure to close socket if failed to</div><div class='add'>+	  start session.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (do_start): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (do_start): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb: SMTP#started? wrongly returned false always.</div><div class='add'>+</div><div class='add'>+Tue Sep 30 02:54:49 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: new test</div><div class='add'>+	  test_break__nested_loop[123].</div><div class='add'>+</div><div class='add'>+Mon Sep 29 23:39:13 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb (finish): does not raise IOError even if</div><div class='add'>+	  !started?, to allow closing socket which was opened before</div><div class='add'>+	  session started.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb (finish): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (finish): ditto.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 19:06:51 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/extconf.rb: add windows.h checking.</div><div class='add'>+	  (ruby-bugs:PR#1185)</div><div class='add'>+</div><div class='add'>+Mon Sep 29 16:18:30 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: check if the given logdevice object respond_to :write</div><div class='add'>+	  and :close, not is_a? IO.  duck duck.</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: self IO.pipe reading/writing may be</div><div class='add'>+	  locked by the flood.  use tempfile.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/xmlSchema/data.rb: wrong constant reference.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 16:11:23 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: clean up temporary symlink.</div><div class='add'>+	  Patched by NaHi.  [ruby-dev:21420]</div><div class='add'>+</div><div class='add'>+Mon Sep 29 11:16:55 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_atfork): wrong format specifier.</div><div class='add'>+	  [ruby-dev:21428]</div><div class='add'>+</div><div class='add'>+	* process.c (pst_inspect): better description.</div><div class='add'>+</div><div class='add'>+Mon Sep 29 02:31:44 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb (Utils::su): use setgid and setuid to</div><div class='add'>+	  set real and effective IDs. and setup group access list by</div><div class='add'>+	  initgroups.</div><div class='add'>+</div><div class='add'>+Sun Sep 28 11:14:19 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c (Init_digest): `copy_object' was deprecated.</div><div class='add'>+	  `initialize_copy' should be defined.</div><div class='add'>+</div><div class='add'>+	* ext/stringio/stringio.c (Init_stringio): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 18:25:13 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/xsd/charset.rb: XSD::Charset.is_ces did return always true under</div><div class='add'>+	  $KCODE = "NONE" environment.  check added.</div><div class='add'>+</div><div class='add'>+	* test/xsd/test_xsd.rb: add tests for above fix.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 15:58:50 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/cgistub.rb: make logging severity threshold higher.</div><div class='add'>+</div><div class='add'>+	* lib/soap/rpc/standaloneServer.rb: defer WEBrick server start to give</div><div class='add'>+	  a chance to reset logging severity threshold.</div><div class='add'>+</div><div class='add'>+	* test/soap/calc/test_*, test/soap/helloworld/test_helloworld.rb: run</div><div class='add'>+	  silent.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 09:44:18 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: clear all errors on Windows.</div><div class='add'>+	  [ruby-dev:21417]</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_nowrite.rb: ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 04:57:07 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb: new file.  only asserts unlink-before-close</div><div class='add'>+	  behaviour now.</div><div class='add'>+</div><div class='add'>+	* test/soap/marshal/test_digraph.rb: should close before unlink.</div><div class='add'>+	  unlink-before-close pattern is not needed here.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 03:32:37 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/soap/*, test/wsdl/*, test/xsd/*: move TestCase classes into</div><div class='add'>+	  each module namespace.  TestMarshal in</div><div class='add'>+	  test/soap/marshal/test_marshal.rb crashed with</div><div class='add'>+	  test/ruby/test_marshal.rb.</div><div class='add'>+</div><div class='add'>+Sat Sep 27 01:30:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): on win32, type of the 4th</div><div class='add'>+	  argument of getsockopt is char *.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 18:35:40 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/resolv-replace.rb: 1.8 compliance.  [ruby-talk:82946]</div><div class='add'>+</div><div class='add'>+Fri Sep 26 17:39:27 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: add test for ruby's objects.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 09:52:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* defines.h (flush_register_windows): use volatile only for gcc on</div><div class='add'>+	  Solaris.  [ruby-dev:21403]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (xsystem): use system directly to honor shell meta</div><div class='add'>+	  charaters.</div><div class='add'>+</div><div class='add'>+Fri Sep 26 00:10:13 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/README: updated.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 17:48:10 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_buf2str): fix type of 1st argument for</div><div class='add'>+	  rb_protect.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_hmac.c (ossl_hmac_digest): should return meaningful</div><div class='add'>+	  value.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 09:00:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb: Added OpenStruct#==.</div><div class='add'>+</div><div class='add'>+	* test/ostruct/test_ostruct.rb: Added.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 07:55:26 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c, ext/openssl/ossl_pkey_dsa.c,</div><div class='add'>+	  ext/openssl/ossl_pkey_rsa.c, ext/bigdecimal/bigdecimal.h: must</div><div class='add'>+	  not use C++ or C99 style comment yet.  (ruby-bugs:PR#1184)</div><div class='add'>+</div><div class='add'>+Thu Sep 25 00:23:22 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add SOAP4R.</div><div class='add'>+</div><div class='add'>+Thu Sep 25 00:13:15 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/soap/* (29 files): SOAP4R added.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl/* (42 files): WSDL4R added.</div><div class='add'>+</div><div class='add'>+	* lib/xsd/* (12 files): XSD4R added.</div><div class='add'>+</div><div class='add'>+	* test/soap/* (16 files): added.</div><div class='add'>+</div><div class='add'>+	* test/wsdl/* (2 files): added.</div><div class='add'>+</div><div class='add'>+	* test/xsd/* (3 files): added.</div><div class='add'>+</div><div class='add'>+	* sample/soap/* (27 files): added.</div><div class='add'>+</div><div class='add'>+	* sample/wsdl/* (13 files): added.</div><div class='add'>+</div><div class='add'>+Wed Sep 24 02:08:11 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb: conform to mswin32.</div><div class='add'>+	  [ruby-talk:82735], [ruby-talk:82748], [ruby-talk:82818]</div><div class='add'>+</div><div class='add'>+Tue Sep 23 23:10:16 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: add Logger#&lt;&lt;(msg) for writing msg without any</div><div class='add'>+	  formatting.</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep 23 20:47:51 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_warn_m): should not warn if -W0 is specified.</div><div class='add'>+	  [ruby-talk:82675]</div><div class='add'>+</div><div class='add'>+Mon Sep 22 21:28:57 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: updated.</div><div class='add'>+</div><div class='add'>+Mon Sep 22 19:22:26 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (AC_CHECK_FUNCS): add setuid and setgid.</div><div class='add'>+</div><div class='add'>+Mon Sep 22 12:34:55 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* util.c (ruby_strtod): skip preceding zeros before counting</div><div class='add'>+	  digits in the mantissa. (ruby-bugs:PR#1181)</div><div class='add'>+</div><div class='add'>+Sun Sep 21 04:12:36 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspreq_initialize): the argument</div><div class='add'>+	  should be a String.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ocsp.c (ossl_ocspres_initialize): ditt.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c (ossl_x509attr_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): ditto.</div><div class='add'>+</div><div class='add'>+Sat Sep 20 11:49:05 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: typo fixed.</div><div class='add'>+</div><div class='add'>+	* test/logger/test_logger.rb: new file.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 11:39:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/testunit/*: Added.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Documentation update.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/ui/console/testrunner.rb (TestRunner#initialize):</div><div class='add'>+	  Ditto.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit.rb: Factored out an ObjectSpace collector.</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb: Ditto.</div><div class='add'>+</div><div class='add'>+	* sample/testunit/*: Added.</div><div class='add'>+</div><div class='add'>+Fri Sep 19 01:00:48 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb (BasicLog#log): get rid of as ineffectual</div><div class='add'>+	  condition.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb (BasicLog#format): add "\n" to message.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 22:43:20 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should push PROT_PCALL tag for orphans.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should update "result" for orphans.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 20:33:03 2003  Tietew  &lt;tietew-ml-ruby-list@tietew.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (str_xquote): do not prepend escapes in</div><div class='add'>+	  backqoute literals.  [ruby-list:38409]</div><div class='add'>+</div><div class='add'>+Thu Sep 18 20:30:17 2003  Tanaka Akira  &lt;akr@m17n.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb: update document.</div><div class='add'>+</div><div class='add'>+Thu Sep 18 15:27:05 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb: new file.  Logger, formerly called devel-logger or</div><div class='add'>+	  Devel::Logger.</div><div class='add'>+</div><div class='add'>+	* sample/logger/*: new file.  samples of logger.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 23:41:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_destination): should not raise ThreadError</div><div class='add'>+	  exception for "break". [ruby-dev:21348]</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): use result instead of prot_tag-&gt;retval.</div><div class='add'>+	  retval is no longer propagated to the ancestors.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 20:34:00 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_string, parse_string, yylex): escaped terminator</div><div class='add'>+	  is now interpreted as is.  [ruby-talk:82206]</div><div class='add'>+</div><div class='add'>+Wed Sep 17 18:52:36 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/fileutils/fileassertions.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_fileutils.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/fileutils/test_nowrite.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 18:51:02 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb: require test/unit.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 18:35:34 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb: new file.</div><div class='add'>+</div><div class='add'>+Wed Sep 17 18:03:30 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl: all files are reviewed to simplify and avoid memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: add check for assert.h.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_buf2str): new function to convert</div><div class='add'>+	  C buffer to String and free buffer.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_x509_ary2sk): new function to convert</div><div class='add'>+	  Array of OpenSSL::X509 to STACK_OF(X509) with exception safe.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c (ossl_to_der, ossl_to_der_if_possible): new</div><div class='add'>+	  functions to convert object to DER string.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bio.c (ossl_membio2str): new function to convert</div><div class='add'>+	  BIO to String object and free BIO.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bio.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkcs7.c (ossl_pkcs7_to_der): add for "to_der".</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509name.c (ossl_x509name_to_der): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509ext_to_der): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (create_ext_from_array): removed</div><div class='add'>+	  and reimplement in openssl/x509.rb.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509attr.c: reimplemented and disable some</div><div class='add'>+	  method temporarily. this class doesn't work fine without ASN.1</div><div class='add'>+	  data support;-) I'll rewrite in near future.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.c (X509::Attribute): get rid off</div><div class='add'>+	  unused code.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.c (X509::ExtensionFactory): refine all.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 22:25:06 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: add negative tests of row_sep.</div><div class='add'>+</div><div class='add'>+Tue Sep 16 18:02:36 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* regex.c (re_compile_pattern): should not translate character</div><div class='add'>+	  class range edge. [ruby-list:38393]</div><div class='add'>+</div><div class='add'>+Tue Sep 16 16:47:56 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* MANIFEST: add test/csv/mac.csv.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, bcc32/Makefile.sub (test): add phony NUL target.</div><div class='add'>+</div><div class='add'>+Mon Sep 15 19:02:52 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb: add extra pamameter to specify row(record) separater</div><div class='add'>+	  character.  To parse Mac's CR separated CSV, do like this.</div><div class='add'>+	    CSV.open("mac.csv", "r", ?,, ?\r) { |row| p row.to_a }</div><div class='add'>+	  The 3rd parameter in this example ?, is for column separater and the</div><div class='add'>+	  4th ?\r is for row separater.  Row separater is nil by default.  Nil</div><div class='add'>+	  separater means "\r\n" or "\n".</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: add tests for above feature.</div><div class='add'>+</div><div class='add'>+	* test/csv/mac.csv: added.  Sample CR separated CSV file.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 22:41:48 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c: move ASN.1 stuff to ossl_asn1.[ch]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.c: move BIO stuff to ossl_bio.[ch]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_asn1.[ch]: new files</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bio.[ch]: new files</div><div class='add'>+</div><div class='add'>+Fri Sep 12 12:30:41 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h (rb_disable_super, rb_enable_super): replace with dummy</div><div class='add'>+	  expressions instead of prototypes.  the functions remain yet for</div><div class='add'>+	  binary compatibility.  [ruby-talk:81758]</div><div class='add'>+</div><div class='add'>+Fri Sep 12 12:09:54 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_and): convert argument using 'to_int'.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_or): ditto.</div><div class='add'>+</div><div class='add'>+	* bignum.c (rb_big_xor): ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep 12 07:06:14 2003  David Black  &lt;dblack@superlink.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb: Took out useless @matched_item variable; some small</div><div class='add'>+	  refactoring.</div><div class='add'>+</div><div class='add'>+Thu Sep 11 08:43:44 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_require): allow "require" on $SAFE&gt;0, if feature</div><div class='add'>+	  name is not tainted.</div><div class='add'>+</div><div class='add'>+	* lib/rexml/parsers/baseparser.rb (REXML::Parsers::BaseParser::stream):</div><div class='add'>+	  Supports StringIO.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 22:47:30 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: add a workaround for win32 platform.</div><div class='add'>+	  libeay32.dll doesn't export functions defined in conf_api.h.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (ossl_config_initialize): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (ossl_config_add_value): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c (set_conf_section_i): should check</div><div class='add'>+	  if the argument is Array.</div><div class='add'>+</div><div class='add'>+Wed Sep 10 22:41:54 2003  Tietew  &lt;tietew@tietew.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (win32_get_exception_list): avoid VC7 warning.</div><div class='add'>+	  [ruby-win32:577]</div><div class='add'>+</div><div class='add'>+Tue Sep  9 10:39:51 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (struct tag): dst should be VALUE.</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_destination): stop at the scope where the current</div><div class='add'>+	  block was created.  [ruby-dev:21353]</div><div class='add'>+</div><div class='add'>+Tue Sep  9 05:17:04 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.rb: avoid compile error in OpenSSL-0.9.6.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 02:41:35 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c: Refine compatibility.</div><div class='add'>+</div><div class='add'>+Tue Sep  9 01:50:45 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (HTTPServer#access_log): add "\n" to</div><div class='add'>+	  the message.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb (BasicLog#log): add "\n" only if needed.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 22:15:33 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: modify security check at creating</div><div class='add'>+	  a new interpreter</div><div class='add'>+</div><div class='add'>+Mon Sep  8 20:00:12 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb, lib/optparse/version.rb: search also all</div><div class='add'>+	  capital versions.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 19:26:33 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: include openssl/conf.h and openssl/conf_api.h.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.c: refine all with backward compatibility.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_config.h: export GetConfigPtr() and DupConfigPtr().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509.c: added new constants under X509 module.</div><div class='add'>+	  DEFAULT_CERT_AREA, DEFAULT_CERT_DIR, DEFAULT_CERT_FILE,</div><div class='add'>+	  DEFAULT_CERT_DIR_ENV, DEFAULT_CERT_FILE_ENV and DEFAULT_PRIVATE_DIR.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509extfactory_free): don't free</div><div class='add'>+	  the members of the struct. it's left to GC.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (ossl_x509_set_config): add for config=.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (Xossl_x509extfactory_initialize):</div><div class='add'>+	  add attr readers: issuer_certificate, subject_certificate,</div><div class='add'>+	  subject_request, crl and config.</div><div class='add'>+</div><div class='add'>+Mon Sep  8 18:26:41 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/accesslog.rb (AccessLog::setup_params): use req.port</div><div class='add'>+	  instead of config[:Port] or req.request_uri.port.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httprequest.rb (HTTPRequest#meta_vars): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb (FileHandler#dir_list): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb: :Listen option never be used.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (GenericServer#initialize): don't use :Listen</div><div class='add'>+	  option and add warning message.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb (BasicLog#&lt;&lt;): shortcut of log(INFO, ...).</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (HTTPServer#accesslog): use &lt;&lt; for logging.</div><div class='add'>+</div><div class='add'>+Sun Sep  7 16:08:28 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (lib_mainloop_core): fixed signal-trap bug</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/*.rb: Ruby/Tk works at $SAFE == 4</div><div class='add'>+</div><div class='add'>+Sat Sep  6 02:26:34 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_*.rb: assert_same, assert_match, and so on.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 18:45:46 2003  Mauricio Fernandez  &lt;batsman.geo@yahoo.com&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (assignable): call rb_compile_error(), not rb_bug().</div><div class='add'>+	  [ruby-core:01523]</div><div class='add'>+</div><div class='add'>+Sat Sep  6 17:40:41 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ruby_missing.c: rid of unnecessary backward</div><div class='add'>+	  compatibility stuff. and remove DEFINE_ALLOC_WRAPPER from</div><div class='add'>+	  all sources.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (X509::Extension.new): new method.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (X509::Extension#oid=): new method.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (X509::Extension#value=): new method.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_x509ext.c (X509::Extension#critical=): new method.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 01:23:22 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): need to quote cmd if RUBYSHELL is set.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (CreateChild): fix condition about whether to call</div><div class='add'>+	  shell or not.</div><div class='add'>+</div><div class='add'>+Sat Sep  6 00:36:20 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in (test): phony target.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_library, find_library): configure by library</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#order, #permute, #parse): allow an</div><div class='add'>+	  array as argument.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_*.rb: moved invariants to left side in</div><div class='add'>+	  assert_equal, and use assert_nil, assert_raises and so on.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (isInternalCmd): distinguish command.com and</div><div class='add'>+	  cmd.exe.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (make_cmdvector): a character just after wildcard</div><div class='add'>+	  was ignored.  [ruby-core:01518]</div><div class='add'>+</div><div class='add'>+Fri Sep  5 20:27:08 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_*.rb: replace 'assert(a == b)' with assert_equal(a, b)'</div><div class='add'>+</div><div class='add'>+Fri Sep  5 18:00:51 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/x509.rb: new method X509::Name::parse.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.c: add ossl_digest_new().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_digest.h: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.c: add ossl_cipher_new().</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_cipher.h: ditto.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 15:32:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): should not</div><div class='add'>+	  search delimiter forward if found in backward.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 13:32:48 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: arguments should be keys.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 12:09:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb (test_system): check existence of ruby</div><div class='add'>+	  interpreter.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 11:32:17 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (--version): fix assignment/reference order.</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb (OptionParser#help): new; OptionParser#to_s may</div><div class='add'>+	  be deprecated in future.</div><div class='add'>+</div><div class='add'>+	* lib/optparse/version.rb (OptionParser#show_version): hide Object.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: fix optparse usage.</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: glob all testsuits if no tests given.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 10:42:58 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: added.  gets testcases from command line and runs it.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb: remove useless part which was for dumping test</div><div class='add'>+	  result.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 09:28:59 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb: added.  splitter.rb which I made to split</div><div class='add'>+	  sample/test.rb into test/ruby/test_* kindly removed GC test (the</div><div class='add'>+	  last section in the original test) to reduce things to be worried.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 03:00:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (test_block_in_arg): add no block</div><div class='add'>+	  given tests.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb (test_ljump): uncomment LocalJumpError</div><div class='add'>+	  test.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 01:10:11 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby: tests for ruby itself.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases.</div><div class='add'>+	  some tests could not be translates...  search '!!' mark to see it.</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: should require 'csv', not '../lib/csv'.  test</div><div class='add'>+	  runner should set load path correctly.</div><div class='add'>+</div><div class='add'>+Fri Sep  5 01:03:59 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: close opened files for CSV::IOBuf explicitly.</div><div class='add'>+	  opened file cannot be removed under win32 box.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 23:59:40 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (tokadd_string): newlines have no special meanings in</div><div class='add'>+	  %w/%W, otherwise they are ignored only when interpolation is</div><div class='add'>+	  enabled.  [ruby-dev:21325]</div><div class='add'>+</div><div class='add'>+Thu Sep  4 19:38:25 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/.cvsignore: added.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/.cvsignore: added.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 19:28:24 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* sample/openssl: added.  Sample of standard distribution library</div><div class='add'>+	  should be locate in sample/{module_name}/*.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/sample/*: removed.  move to sample/openssl/*.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 18:02:15 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: use remove_const to reduce warnings.  use</div><div class='add'>+	  Dir.tmpdir to locate working files.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 17:41:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-here-doc-beg-re): underscore also is</div><div class='add'>+	  valid delimiter.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-here-doc-end-match): must quote</div><div class='add'>+	  arbitrary string to use as regexp.</div><div class='add'>+</div><div class='add'>+	* misc/ruby-mode.el (ruby-font-lock-maybe-here-docs): must not</div><div class='add'>+	  call `ruby-here-doc-end-match' unless `ruby-here-doc-beg-re'</div><div class='add'>+	  matched.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 15:40:07 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/csv/test_csv.rb: run on test/unit original layer.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 12:54:50 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: headerless documents with root-level spacing now</div><div class='add'>+	  honored.</div><div class='add'>+</div><div class='add'>+Thu Sep  4 00:06:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (mark_frame_adj): need to adjust argv pointer if using</div><div class='add'>+	  system's alloca. [ruby-core:01503]</div><div class='add'>+</div><div class='add'>+Wed Sep  3 21:33:20 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* test: add test directory.  Test::Unit aware testcases and needed</div><div class='add'>+	  files should be located in this directory.  dir/file name convention;</div><div class='add'>+	    test/{module_name}/test_{testcase_name}.rb</div><div class='add'>+	    test/{module_name}/{needed_files}</div><div class='add'>+	  someday, someone will write testrunner which searches test_*.rb and</div><div class='add'>+	  run testcases automatically.</div><div class='add'>+</div><div class='add'>+	* test/csv/*: add testcase for lib/csv.rb.</div><div class='add'>+</div><div class='add'>+Wed Sep  3 01:37:09 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (rb_f_gets): should call next_argv() before type check</div><div class='add'>+	  current_file. [ruby-list:38336]</div><div class='add'>+</div><div class='add'>+Tue Sep  2 20:37:15 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): warning</div><div class='add'>+	  for skipping server verification.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 23:36:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): should retrieve retval when pcall is true.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 14:09:20 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb: check s6_addr8 in in6_addr (Tru64 UNIX).</div><div class='add'>+	  the patch is submitted by nmu &lt;nmu@users.sourceforge.jp&gt;.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getaddrinfo.c (getaddrinfo): should use in6_addr8 on</div><div class='add'>+	  some platforms.</div><div class='add'>+</div><div class='add'>+	* ext/socket/getnameinfo.c (getnameinfo): ditto.</div><div class='add'>+</div><div class='add'>+Tue Sep  2 14:02:19 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c (ip_invoke): fixed bug on passing a exception</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb}:</div><div class='add'>+	  bug fix and improvement of font control</div><div class='add'>+</div><div class='add'>+Tue Sep  2 09:51:36 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): should not handle exceptions within rescue</div><div class='add'>+	  argument.  [ruby-talk:80804]</div><div class='add'>+</div><div class='add'>+Tue Sep  2 00:44:37 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch): fix overrun.  [ruby-talk:80759]</div><div class='add'>+</div><div class='add'>+Tue Sep  2 00:41:27 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (map_charset): use lower case keys.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_fail): just yield error and return the</div><div class='add'>+	  result if a block is given.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/iconv.c (iconv_convert): yield error and append the</div><div class='add'>+	  result if a block is given.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb (charset_alias): optional third</div><div class='add'>+	  argument.</div><div class='add'>+</div><div class='add'>+	* ext/iconv/charset_alias.rb (charset_alias): use CP932 instead of</div><div class='add'>+	  SHIFT_JIS on cygwin.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 18:34:25 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): make tail recursion in ELSE clause of</div><div class='add'>+	  RESCUE a jump.</div><div class='add'>+</div><div class='add'>+Mon Sep  1 18:00:02 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (aref_args): forgot to call NEW_SPLAT(). reported by</div><div class='add'>+	  Dave Butcher.</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): protect thgroup_default.  suggested by Guy</div><div class='add'>+	  Decoux in [ruby-talk:80623]</div><div class='add'>+</div><div class='add'>+Mon Sep  1 16:59:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_switch): add RESTORE_EXIT; exit by another</div><div class='add'>+	  thread termination.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_start_0): should not error_print() within</div><div class='add'>+	  terminated thread, because $stderr used by it might be</div><div class='add'>+	  overriden now.  [ruby-dev:21280]</div><div class='add'>+</div><div class='add'>+Sun Aug 31 22:46:55 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (TAG_DST()): take no argument.</div><div class='add'>+</div><div class='add'>+	* process.c (p_gid_sw_ensure): return VALUE.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 22:27:10 2003  Hidetoshi NAGAI  &lt;nagai@dumbo.ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c (p_gid_sw_ensure): lack of function type</div><div class='add'>+</div><div class='add'>+Sun Aug 31 12:25:06 2003  Nobuyoshi Nakada  &lt;nobu.nokada@softhome.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb: --version takes an optional argument; "all" or</div><div class='add'>+	  a list of package names.</div><div class='add'>+</div><div class='add'>+Sun Aug 31 10:17:02 2003  Tadayoshi Funaba  &lt;tadf@dotrb.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/date/format.rb: yyyy/mm is not an acceptable format.</div><div class='add'>+</div><div class='add'>+	* lib/time.rb: follow above.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 14:25:43 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_iter_break): should not call TAG_JUMP directly.</div><div class='add'>+</div><div class='add'>+Sat Aug 30 03:58:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (struct BLOCK): remove BLOCKTAG, use scope instead.</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_TAG): no longer propagate retval.  retval is now set</div><div class='add'>+	  directly by localjump_destination().</div><div class='add'>+</div><div class='add'>+	* eval.c (localjump_destination): new function to cast</div><div class='add'>+	  return/break local jump.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): stop TAG_RETURN/TAG_BREAK escaping.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 22:35:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bigdecimal.c *.html: The 2nd arg. for add,sub,mult, and div is 0,</div><div class='add'>+	  then result will be the same as +,-,*,/ respectively.</div><div class='add'>+</div><div class='add'>+Fri Aug 29 17:30:15 2003  Hidetoshi NAGAI  &lt;nagai@ai.kyutech.ac.jp&gt;</div><div class='add'>+</div><div class='add'>+	* process.c: bug fix</div><div class='add'>+</div><div class='add'>+	* process.c: add rb_secure(2) to methods of Process::{UID,GID,Sys}</div><div class='add'>+</div><div class='add'>+	* process.c: deny handling IDs during evaluating the block given to</div><div class='add'>+	  the Process::{UID,GID}.switch method</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: some methods have no effect if on slave-IP</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: can create a interpreter without Tk</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/tcltklib.c: bug fix on handling exceptions</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/MANUAL.euc: modify</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: freeze some core modules</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/multi-tk.rb: more secure</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: TkVariable.new(array) --&gt; treat the array as the</div><div class='add'>+	  Tk's list</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb: improve accessibility of TkVariable object</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb,</div><div class='add'>+	  ext/tk/lib/tktext.rb: fix bug of font handling</div><div class='add'>+</div><div class='add'>+	* ext/tk/lib/tkfont.rb: TkFont.new() accepts compound fonts</div><div class='add'>+</div><div class='add'>+Thu Aug 28 22:07:12 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_autoload_load): call const_missing if autoloading</div><div class='add'>+	  constant is not defined to allow hook.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): use rb_const_get_from() instead of</div><div class='add'>+	  rb_const_get_at().</div><div class='add'>+</div><div class='add'>+	* eval.c (is_defined): forgot to check NODE_COLON3.</div><div class='add'>+</div><div class='add'>+Thu Aug 28 17:30:24 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c (rb_const_get_0): should check constants defined in</div><div class='add'>+	  included modules, if klass is Object. [ruby-talk:79302]</div><div class='add'>+</div><div class='add'>+	* numeric.c (check_uint): check should be done using UINT_MAX, not</div><div class='add'>+	  INT_MAX. this fix is submitted by Lyle Johnson</div><div class='add'>+	  &lt;lyle@knology.net&gt; in [ruby-core:01486]</div><div class='add'>+</div><div class='add'>+Thu Aug 28 05:02:52 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (singleton): typo fixed (ruby-bugs-ja:PR#562)</div><div class='add'>+</div><div class='add'>+Thu Aug 28 02:37:45 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval): *a = [1,2] now assigns [[1,2]] to a.</div><div class='add'>+	  consistent with *a = [1], which set [[1]] to a.</div><div class='add'>+</div><div class='add'>+	* node.h: merge NODE_RESTARY to NODE_SPLAT.</div><div class='add'>+</div><div class='add'>+	* parse.y: rules simplified a bit by removing NODE_RESTARY.</div><div class='add'>+</div><div class='add'>+	* sample/test.rb: updated for new assignment behavior.</div><div class='add'>+</div><div class='add'>+Wed Aug 27 22:33:24 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* error.c (rb_bug): should not use other methods; this function is</div><div class='add'>+	  not for ordinary use.  [ruby-dev:21259]</div><div class='add'>+</div><div class='add'>+Wed Aug 27 15:07:57 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb (check_response): AUTH CRAM-MD5 returns 334</div><div class='add'>+	  response. [ruby-list:38279]</div><div class='add'>+</div><div class='add'>+Wed Aug 27 05:10:15 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (map_errno): support winsock error.</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (pipe_exec, CreateChild, poll_child_status, waitpid,</div><div class='add'>+	  kill, link, rb_w32_rename, unixtime_to_filetime, rb_w32_utime):</div><div class='add'>+	  pass errno to map_errno().</div><div class='add'>+</div><div class='add'>+	* win32/win32.c (rb_w32_select, rb_w32_accept, rb_w32_bind,</div><div class='add'>+	  rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname,</div><div class='add'>+	  rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv,</div><div class='add'>+	  rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt,</div><div class='add'>+	  rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr,</div><div class='add'>+	  rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname,</div><div class='add'>+	  rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport,</div><div class='add'>+	  rb_w32_fclose, rb_w32_close): use map_errno().</div><div class='add'>+</div><div class='add'>+	* win32/win32.h: add winsock errors.</div><div class='add'>+</div><div class='add'>+Tue Aug 26 23:53:23 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb (OpenStruct::method_missing): prohibit modifying</div><div class='add'>+	  frozen OpenStruct. [ruby-talk:80214]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 20:03:50 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_tmpsrc): add the hook for source.</div><div class='add'>+	  [ruby-list:38122]</div><div class='add'>+</div><div class='add'>+Tue Aug 26 15:59:53 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* implicit.c (syck_type_id_to_taguri): corrected detection of</div><div class='add'>+	  x-private types.</div><div class='add'>+</div><div class='add'>+Sun Aug 24 01:02:48 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (file_expand_path): performance improvement.</div><div class='add'>+	  [ruby-talk:79748]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 23:41:16 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* file.c (rb_file_s_expand_path): avoid calling rb_scan_args() for</div><div class='add'>+	  apparent cases. [ruby-talk:79748]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 18:56:53 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c (rb_nkf_putchar): should use rb_str_resize() to just</div><div class='add'>+	  resize a string, rb_str_cat() disallows NULL.  [ruby-dev:21237]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 16:48:41 2003  Keiju Ishitsuka  &lt;keiju@ishitsuka.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/ruby-lex.rb: bug fix for "foo" !~ /bar/. [ruby-talk:79942]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 15:59:58 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_eval, rb_iterate, block_pass): reduce PUSH/POP_TAG and</div><div class='add'>+	  EXEC_TAG() for retry.  [ruby-dev:21216]</div><div class='add'>+</div><div class='add'>+Sat Aug 23 02:32:33 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_splat): should check if "values" is array.</div><div class='add'>+</div><div class='add'>+	* enum.c (each_with_index_i): typo.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 17:07:05 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* enum.c (inject_i): use rb_yield_values.</div><div class='add'>+</div><div class='add'>+	* enum.c (each_with_index_i): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_splat): new function to call "yield *values".</div><div class='add'>+</div><div class='add'>+	* string.c (rb_str_scan): use rb_yield_splat().</div><div class='add'>+</div><div class='add'>+Fri Aug 22 06:13:22 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: refactoring of the transfer method</div><div class='add'>+	  dispatch.  added yaml_org_handler for faster dispatch of</div><div class='add'>+	  transfers to base types.</div><div class='add'>+</div><div class='add'>+	* lib/yaml/rubytypes.rb: removed handling of builtins from</div><div class='add'>+	  Ruby library.</div><div class='add'>+</div><div class='add'>+	* ext/syck/token.c: quoted and block scalars are now implicit !str</div><div class='add'>+</div><div class='add'>+	* ext/syck/implicit.c: empty string detected as !null.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 01:00:31 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (block_pass): improve passing current block.</div><div class='add'>+</div><div class='add'>+Fri Aug 22 00:13:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: Int. overflow bug in multiplication</div><div class='add'>+	  fixed, and VpNmlz() speed up.</div><div class='add'>+</div><div class='add'>+Wed Aug 20 16:44:49 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c (ruby_connect): many systems seem to have</div><div class='add'>+	  a problem in select() after EINPROGRESS.  [ruby-list:38080]</div><div class='add'>+</div><div class='add'>+Wed Aug 20 01:31:17 2003  why the lucky stiff  &lt;why@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.h: Parser definition problems on HP-UX.</div><div class='add'>+	  [ruby-talk:79389]</div><div class='add'>+</div><div class='add'>+	* ext/syck/handler.c (syck_hdlr_get_anchor): Memory leak.</div><div class='add'>+</div><div class='add'>+	* ext/syck/syck.s (syck_io_file_read): Bad arguments to fread.</div><div class='add'>+</div><div class='add'>+	* ext/syck/rubyext.c: Tainting issues.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 23:20:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c .h .html: to_s("+") implemented.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb: E implemented.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 11:19:33 2003  Shugo Maeda  &lt;shugo@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* io.c (next_argv): should not call GetOpenFile() if rb_stdout is</div><div class='add'>+	  not a IO (T_FILE).</div><div class='add'>+</div><div class='add'>+Tue Aug 19 07:47:10 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/ssl.rb: new file; SSL/TLS enhancement for GenericServer.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb: SSLSocket handling is moved to webrick/ssl.rb.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/compat.rb (File::fnmatch): remove old migration code.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb (HTTPServer#run): ditto.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (GenericServer#listen): the body of this</div><div class='add'>+	  method is pull out as Utils::create_lisnteners.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb (Utils::create_lisnteners): new method.</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb (GenericServer#start): should rescue</div><div class='add'>+	  unknown errors. and refine comments.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): should close</div><div class='add'>+	  socket if SSLSocket raises error.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 07:47:09 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c: sync_close is moved to SSLSocket as</div><div class='add'>+	  a builtin.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#close): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb (Buffering#puts): should</div><div class='add'>+	  add a return to the tails of each line.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb: new class OpenSSL::SSL::SSLServer.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect): use sync_close.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/sample/echo_svr.rb: use SSLServer.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/sample/echo_cli.rb: add example of SSLSocket#sync_close.</div><div class='add'>+</div><div class='add'>+Tue Aug 19 01:24:34 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): Mac OS X standard</div><div class='add'>+	  headers are inconsistent at this macro.  [ruby-core:01432]</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb: check if _XOPEN_SOURCE_EXTENDED breaks.</div><div class='add'>+</div><div class='add'>+	* ext/tcltklib/stubs.c: Status macro in X11/Xthreads.h bothers</div><div class='add'>+	  winspool.h</div><div class='add'>+</div><div class='add'>+	* instruby.rb: make list at first instead of iterator.</div><div class='add'>+	  [ruby-talk:79347]</div><div class='add'>+</div><div class='add'>+Mon Aug 18 11:23:11 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (glob_helper): preserve raw order for **.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 23:39:55 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO): need to compile.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 17:10:03 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/ssl.rb (SSLSocket#sync_close=): add a</div><div class='add'>+	  method to specify if the underlying IO will be closed in</div><div class='add'>+	  SSLSocket#close.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: add forwarders to</div><div class='add'>+	  setsockopt, getsockopt and fcntl.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/net/protocols.rb: enable sync for SSLSocket.</div><div class='add'>+</div><div class='add'>+Sun Aug 17 11:32:04 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): should not force to remake Makefile when</div><div class='add'>+	  installation and so on.</div><div class='add'>+</div><div class='add'>+Sat Aug 16 23:58:18 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_symbol, w_object): get rid of warnings.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memsearch): ditto.</div><div class='add'>+</div><div class='add'>+	* time.c (time_dump): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): not continue making when extconf.rb</div><div class='add'>+	  failed.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/extconf.rb: check __VA_ARGS__ macro more precisely.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl.h: remove version.h dependency.</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ruby_missing.h: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (pkg_config): use --libs output except with</div><div class='add'>+	  only-L for other options.  [ruby-list:38099]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (create_makefile): separate rule for static</div><div class='add'>+	  library from shared object.</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub, bcc32/Makefile.sub, wince/Makefile.sub:</div><div class='add'>+	  define exec_prefix and libdir.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 23:15:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c .h: Bug in combination of limit &amp; div</div><div class='add'>+	  method fixed.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb: atan() &amp; sqrt() added.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 12:01:44 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in (HUGE_ST_INO): check whether struct stat.st_ino</div><div class='add'>+	  is larger than long.  [ruby-dev:21194]</div><div class='add'>+	  http://www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html</div><div class='add'>+</div><div class='add'>+	* error.c (syserr_eqq): errno might exceed Fixnum limit.</div><div class='add'>+</div><div class='add'>+	* error.c (Init_Exception): moved base initialization from</div><div class='add'>+	  init_syserr().</div><div class='add'>+</div><div class='add'>+	* inits.c (rb_call_inits): postpone initializing errnos until</div><div class='add'>+	  Bignum is available.</div><div class='add'>+</div><div class='add'>+Fri Aug 15 12:01:43 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED): needed to let</div><div class='add'>+	  keyname() and so on be declared.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (curses_resizeterm, window_resize):</div><div class='add'>+	  arguments conflicted with macros in term.h.</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c (Curses module methods): ensure</div><div class='add'>+	  initialized.  [ruby-dev:21191]</div><div class='add'>+</div><div class='add'>+Fri Aug 15 02:08:53 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (id2ref): recycle check should be done by klass == 0.</div><div class='add'>+	  [ruby-core:01408]</div><div class='add'>+</div><div class='add'>+Fri Aug 15 01:34:23 2003  Michal Rokos  &lt;m.rokos@sh.cvut.cz&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey.c: move generate_cb here</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_pkey_{dh|dsa|rsa}.c: adapt to this cb</div><div class='add'>+</div><div class='add'>+	* ext/openssl/openssl_missing.[ch]: add (0.9.6x, x&lt;j) missing BN funcs</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_bn.c: use supplied funcs from openssl_missing.c</div><div class='add'>+</div><div class='add'>+Fri Aug 15 00:38:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c: Bug in div method fixed.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/lib/bigdecimal/math.rb: Newly added.</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/sample/pi.rb: Changed so as to use math.rb.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 21:19:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (Init_Thread): Continuation#[] added.  [ruby-talk:79028]</div><div class='add'>+</div><div class='add'>+Thu Aug 14 20:03:34 2003  Masaki Suketa  &lt;masaki.suketa@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (OLE_FREE): should not call</div><div class='add'>+	  ole_message_loop.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_event_free): ditto.</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c (ole_initialize): stop calling</div><div class='add'>+	  OleUninitialize at exit.</div><div class='add'>+</div><div class='add'>+Thu Aug 14 11:27:37 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_data_object_alloc): check type of 1st argument.</div><div class='add'>+	  [ruby-dev:21192]</div><div class='add'>+</div><div class='add'>+Thu Aug 14 00:21:14 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (mlhs_node): should allow "::Foo" (colon3) as lhs.</div><div class='add'>+</div><div class='add'>+	* parse.y (lhs): ditto.</div><div class='add'>+</div><div class='add'>+	* parse.y (yylex): should return tCOLON3 right after kCLASS.</div><div class='add'>+	  [ruby-talk:78918]</div><div class='add'>+</div><div class='add'>+	* error.c (exc_initialize): was converting argument to string too</div><div class='add'>+	  eagerly.  Only check was needed. [ruby-talk:78958]</div><div class='add'>+</div><div class='add'>+Wed Aug 13 23:31:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal/bigdecimal.c .h .html: Ambiguity of</div><div class='add'>+	  BigDecimal::limit removed.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 19:21:34 2003  Christian Neukirchen  &lt;chneukirchen@yahoo.de&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb (HTTPServer#run): should set syncing-mode</div><div class='add'>+	  to SSLSocket. [ruby-talk:78919]</div><div class='add'>+</div><div class='add'>+Wed Aug 13 18:13:49 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (POP_BLOCK): turn on BLOCK_LEFT flag when leaving block.</div><div class='add'>+</div><div class='add'>+	* eval.c (proc_invoke): unpack return/break destination when block</div><div class='add'>+	  is already left.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 15:58:31 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_s_alloc): add function prototype to avoid VC++</div><div class='add'>+	  warning.</div><div class='add'>+</div><div class='add'>+Wed Aug 13 13:50:59 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Win32API/Win32API.c (Win32API_initialize): should pass some</div><div class='add'>+	  class to first argument of Data_Wrap_Struct(). (ruby-bugs:PR#1109)</div><div class='add'>+</div><div class='add'>+Tue Aug 12 16:55:11 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* Makefile.in: static link libraries to LIBRUBY_SO with static linked</div><div class='add'>+	  ext.  [ruby-dev:21157]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): sort extension library initialization order.</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): compact $extlibs.</div><div class='add'>+</div><div class='add'>+Tue Aug 12 02:48:56 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_SAVE_CONTEXT): should explicitly turn off the</div><div class='add'>+	  flag before calling getcontext(2).</div><div class='add'>+</div><div class='add'>+	* eval.c (struct thread): add member to save backing store on</div><div class='add'>+	  IA64. (ruby-bugs PR1086)</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_mark): mark IA64 backing store region.</div><div class='add'>+</div><div class='add'>+	* eval.c (thread_free): free saved IA64 backing store.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_save_context): save IA64 backing store as well.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_thread_restore_context): restore IA64 backing store.</div><div class='add'>+</div><div class='add'>+	* eval.c (THREAD_ALLOC): initialize IA64 members.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 22:31:50 2003  NAKAMURA, Hiroshi  &lt;nahi@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb(debug_command): inspection command should inspect</div><div class='add'>+	  resulting value even if it's nil.  [ruby-dev:21180] by OMAE, jun</div><div class='add'>+	  &lt;jun66j5@ybb.ne.jp&gt;.</div><div class='add'>+</div><div class='add'>+	* lib/debug.rb(debug_command): incomplete regexp.</div><div class='add'>+</div><div class='add'>+Mon Aug 11 17:33:07 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call_super): do not use rb_block_given_p() for</div><div class='add'>+	  check. [ruby-talk:78656]</div><div class='add'>+</div><div class='add'>+	* eval.c (BEGIN_CALLARGS): push ITER_NOT only when ITER_PRE.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 10:43:05 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/openssl/lib/openssl/buffering.rb: increase BLOCK_SIZE</div><div class='add'>+	  from 1k to 16k bytes. [ruby-talk:78603]</div><div class='add'>+</div><div class='add'>+	* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): enable</div><div class='add'>+	  partial write to allow interruption in SSLSocket#write.</div><div class='add'>+</div><div class='add'>+Sun Aug 10 00:34:16 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: remove unnecessary '--drive-name=$(CC)'</div><div class='add'>+	  for ccache.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 10:36:21 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): do not dump generic instance variable when</div><div class='add'>+	  marshal_dump is defined.</div><div class='add'>+</div><div class='add'>+Sat Aug  9 00:35:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal.c: F style output(like 1234.56789) implemented</div><div class='add'>+	  to to_s method.</div><div class='add'>+	* ext/bigdecimal_??.html: F style output(like 1234.56789)</div><div class='add'>+	  implemented to to_s method.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 12:33:17 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* bcc32/Makefile.sub: rubyw.exe should be a Windows GUI program.</div><div class='add'>+	  add the -aa option to WLDFLAGS.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 11:29:26 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should set `c_arg' at first.</div><div class='add'>+</div><div class='add'>+Fri Aug  8 03:22:28 2003  GOTOU Yuuzou  &lt;gotoyuzo@notwork.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb (FormData#list): should not take</div><div class='add'>+	  a side effect for the receiver.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 14:40:37 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: better --disbale-shared option support.</div><div class='add'>+</div><div class='add'>+	* cygwin/GNUmakefile: add forwarding DLL target for cygwin.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 14:21:05 2003  Corinna Vinschen  &lt;vinschen@redhat.com&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in: Fix Cygwin specific naming of libraries to</div><div class='add'>+	  be net distribution compliant. (ruby-bugs:PR#1077)</div><div class='add'>+	  cygwin-ruby18.dll -&gt; cygruby18.dll</div><div class='add'>+</div><div class='add'>+Thu Aug  7 12:51:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_at_exit): should not be called without a block.</div><div class='add'>+	  block_given check added.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 06:46:06 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): forgot to pop ruby_class.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_call0): update ruby_class as well as ruby_cref.</div><div class='add'>+	  (ruby-bugs-ja:PR#540)</div><div class='add'>+</div><div class='add'>+Thu Aug  7 04:52:50 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_yield_0): remove ruby_frame-&gt;cbase and unify to</div><div class='add'>+	  ruby_cref.  [ruby-talk:78141]</div><div class='add'>+</div><div class='add'>+Thu Aug  7 04:19:15 2003  Akinori MUSHA  &lt;knu@iDaemons.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c: FreeBSD/ia64's mcontext_t is a bit different from that of</div><div class='add'>+	  Linux/ia64.  This makes gc.c compile but miniruby coredumps for</div><div class='add'>+	  the moment.</div><div class='add'>+</div><div class='add'>+Thu Aug  7 00:15:00 2003  Shigeo Kobayashi  &lt;shigek@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/bigdecimal.c: Comparison results adjusted to Float's.</div><div class='add'>+	* ext/bigdecimal.c: Use rb_num_coerce_????(x,y) instead of own.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 22:58:00 2003  Nathaniel Talbott  &lt;ntalbott@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/testcase.rb: Added equality checking.</div><div class='add'>+	* lib/test/unit/testsuite.rb: Added equality checking.</div><div class='add'>+	* lib/test/unit/assertions.rb: Fixed a warning.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 17:28:10 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): pass LIBPATH to make ruby.  [ruby-dev:21137]</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb (extmake): set library name as source file name in</div><div class='add'>+	  Init_ext().  [ruby-dev:21137]</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (Logging::postpone): postpone logging messages after</div><div class='add'>+	  heading message as the result of the block.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (macro_defined?): append newline to src unless ended</div><div class='add'>+	  with it.</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (have_library): treat nil function name as "main".</div><div class='add'>+	  (ruby-bugs:PR#1083)</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb (pkg_config): should append additional libraries to</div><div class='add'>+	  $libs but not $LIBS.  [ruby-dev:21137]</div><div class='add'>+</div><div class='add'>+	* ext/io/wait/extconf.rb: check DOSISH macro instead of platform.</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha1/extconf.rb: have_library already appends library</div><div class='add'>+	  name.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 17:23:57 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c: initialize /* OK */ variables by Qnil to stop warnings.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 04:58:32 2003  NAKAMURA Usaku  &lt;usa@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ext/Setup*: add io/wait and openssl.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 01:13:38 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_autoload): use ruby_cbase instead of ruby_class.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_autoload_p): ditto.</div><div class='add'>+</div><div class='add'>+	* class.c (rb_mod_init_copy): no longer implements independent</div><div class='add'>+	  clone and dup methods.  override "initialize_copy" instead.</div><div class='add'>+	  [ruby-core:01352]</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_s_alloc): define Class allocation function.</div><div class='add'>+	  this makes Classes to follow clone framework that uses</div><div class='add'>+	  initialize_copy.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_initialize): separate instantiation and</div><div class='add'>+	  initialization.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_obj_alloc): prohibit instantiation from</div><div class='add'>+	  uninitialized class.</div><div class='add'>+</div><div class='add'>+	* object.c (rb_class_superclass): check uninitialized class.</div><div class='add'>+</div><div class='add'>+	* array.c (rb_ary_fill): wrong index processing with block.  this</div><div class='add'>+	  fix was done by Koji Arai &lt;JCA02266@nifty.ne.jp&gt; [ruby-list:38029]</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should preserve generic ivar for nil,</div><div class='add'>+	  true, false, symbols, and fixnums.</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_uclass): base_klass check should be done after</div><div class='add'>+	  rb_class_real().</div><div class='add'>+</div><div class='add'>+Wed Aug  6 01:18:50 2003  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb: update document.</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb: ditto.</div><div class='add'>+</div><div class='add'>+Wed Aug  6 00:48:37 2003  Koji Arai  &lt;jca02266@nifty.ne.jp&gt;</div><div class='add'>+</div><div class='add'>+	* marshal.c (w_object): should recommend marshal_dump rather than</div><div class='add'>+	  _dump_data.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 17:58:57 2003  WATANABE Hirofumi  &lt;eban@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb (install): should preserve timestamp only.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 17:31:59 2003  Ian Macdonald  &lt;ian@caliban.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/shell/command-processor.rb (Shell::CommandProcessor::rmdir):</div><div class='add'>+	  simple typo.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 15:47:34 2003  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_load): should preserve current source file/line.</div><div class='add'>+</div><div class='add'>+Tue Aug  5 10:04:42 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* string.c (str_new4): ptr may refer to null_str.</div><div class='add'>+</div><div class='add'>+Mon Aug  4 17:25:18 2003  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* stable version 1.8.0 released.</div><div class='add'>+</div><div class='add'>+For the changes before 1.8.0, see doc/ChangeLog-1.8.0</div><div class='add'>+</div><div class='add'>+Local variables:</div><div class='add'>+add-log-time-format: (lambda ()</div><div class='add'>+  (let* ((time (current-time))</div><div class='add'>+	 (system-time-locale "C")</div><div class='add'>+	 (diff (+ (cadr time) 32400))</div><div class='add'>+	 (lo (% diff 65536))</div><div class='add'>+	 (hi (+ (car time) (/ diff 65536))))</div><div class='add'>+  (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))</div><div class='add'>+indent-tabs-mode: t</div><div class='add'>+tab-width: 8</div><div class='add'>+end:</div><div class='head'>diff --git a/doc/ChangeLog-YARV b/doc/ChangeLog-YARV<br/>new file mode 100644<br/>index 0000000000..cbc51c5593<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/ChangeLog-YARV?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/ChangeLog-YARV</a></div><div class='hunk'>@@ -0,0 +1,6917 @@</div><div class='add'>+# $Id: ChangeLog 590 2006-12-31 09:02:34Z ko1 $</div><div class='add'>+#</div><div class='add'>+# YARV ChangeLog</div><div class='add'>+#  from Mon, 03 May 2004 01:24:19 +0900</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+Sun Dec 31 18:01:50 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bin/* : ruby/trunk/bin 11437</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Sun Dec 31 17:42:05 2006  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : remove old Kernel#funcall definition</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-12-30(Sat) 07:59:26 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* catch up ruby/trunk 11437</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : reorder tag initialization</div><div class='add'>+</div><div class='add'>+	* eval.c : fix to support __send!, funcall and prohibit funcall as</div><div class='add'>+	send</div><div class='add'>+</div><div class='add'>+	* eval_error.h, eval_jump.h, eval_safe.h : fix prototypes</div><div class='add'>+</div><div class='add'>+	* eval_method.h, vm.c : check re-definition at rb_add_method()</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix typo</div><div class='add'>+</div><div class='add'>+	* compile.c : fix white spaces</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb : fix to support __send, ...</div><div class='add'>+</div><div class='add'>+	* lib/getoptlong.rb : fix to work on YARV</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb : use __send! instead of __send__</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : comment out codes which use |&amp;b| type block parameter</div><div class='add'>+</div><div class='add'>+	* ext/ripper/extconf.rb : turn off</div><div class='add'>+</div><div class='add'>+	* test/ripper/test_files.rb, test_parser_events.rb,</div><div class='add'>+	test_scanner_events.rb : fix to check it has ripper module</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : remove showing file path length limitation</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_eval.rb : use __send! instead of __send__</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-12-19(Tue) 11:46:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* doc/* : added</div><div class='add'>+</div><div class='add'>+	* ext/openssl : added</div><div class='add'>+</div><div class='add'>+	* ext/ripper : added</div><div class='add'>+</div><div class='add'>+	* test/openssl : added</div><div class='add'>+</div><div class='add'>+	* test/ripper : added</div><div class='add'>+</div><div class='add'>+	* misc : added</div><div class='add'>+</div><div class='add'>+	* rb/ -&gt; tool/ : renamed</div><div class='add'>+</div><div class='add'>+	* common.mk : fixed for above change</div><div class='add'>+</div><div class='add'>+	* ruby_doc/* : move to topdir</div><div class='add'>+</div><div class='add'>+	* sample/* : added</div><div class='add'>+</div><div class='add'>+	* test2.rb : removed</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-12-15(Fri) 09:42:46 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : remove obsolete codes</div><div class='add'>+</div><div class='add'>+	* insns.def : fix a comment of getconstant</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-12-13(Wed) 16:26:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, compile.c, compile.h, debug.c, debug.h,</div><div class='add'>+	insnhelper.h, insns.def, iseq.c, thread.c, thread_pthread.ci,</div><div class='add'>+	thread_pthread.h, thread_win32.ci, thread_win32.h, vm.c, vm.h,</div><div class='add'>+	vm_dump.c, vm_evalbody.ci,  vm_opts.h.base,  yarv.h, </div><div class='add'>+	yarv_version.h, yarvcore.c, yarvcore.h :</div><div class='add'>+	add a header includes copyright</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-12-12(Tue) 13:13:32 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : add PREFETCH() statement</div><div class='add'>+</div><div class='add'>+	* vm.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix LIKELY(x) and</div><div class='add'>+	remove main_thread_val field from yarv_vm_t</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : support fork</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* process.c : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : </div><div class='add'>+</div><div class='add'>+	* thread_pthread.ci : rename timer thread functions</div><div class='add'>+</div><div class='add'>+	* thread_win32.ci : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-10(Fri) 21:29:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to compile arguments</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to duplicate first array value on concatarray</div><div class='add'>+	instruction</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add a test for above change</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : fix to catch up Ruby HEAD (fix to remove test about</div><div class='add'>+	module duplicate)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-10(Fri) 12:49:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix to inherit visibility on</div><div class='add'>+	NODE_SUPER method invocation</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-10(Fri) 09:13:46 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c : revert module duplicate inclusion</div><div class='add'>+</div><div class='add'>+	* parse.y : catch up current Ruby HEAD</div><div class='add'>+</div><div class='add'>+	* node.h : ditto</div><div class='add'>+</div><div class='add'>+	* compile.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* iseq.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : define Continuation (null class)</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : fix to output backtrae to stderr</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_block.rb : remove unsupported test</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test about super</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syntax.rb : add a test about case/when</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-09(Thu) 10:22:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* call_cfunc.h -&gt; call_cfunc.ci : renamed</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h, vm_evalbody.ci : ditto</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h, thread_pthread.ci : separate declaration and</div><div class='add'>+	implementation</div><div class='add'>+</div><div class='add'>+	* thread_win32.h, thread_win32.ci : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : use *.ci instead of *.c as implementation</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* common.mk : fix rules for above changes</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-08(Wed) 17:23:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : show C level backtrace (pointer only) with</div><div class='add'>+	backtrace() function (glibc feature)</div><div class='add'>+</div><div class='add'>+	* configure.in : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add NSDR method (show C level backtrace)</div><div class='add'>+</div><div class='add'>+	* error.c : fix indent</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-07(Tue) 13:17:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_set_errinfo) : added</div><div class='add'>+</div><div class='add'>+	* ruby.h : ditto</div><div class='add'>+</div><div class='add'>+	* version.h : fix version number</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb : fix to remove Thread.critical</div><div class='add'>+</div><div class='add'>+	* ext/dbm, dl, gdbm, iconv, io, pty, sdbm : added</div><div class='add'>+</div><div class='add'>+	* test/dbm, gdbm, io, logger, net, readline, sdbm, soap, </div><div class='add'>+	  webrick, win32ole, wsdl, xsd : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-06(Mon) 22:32:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c : import Ruby HEAD</div><div class='add'>+</div><div class='add'>+	* ext/socket/extconf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/date.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/set.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/soap/mapping/rubytypeFactory.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/soap/mimemessage.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/soap/property.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'>+	* lib/xmlrpc/create.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xsd/codegen/gensupport.rb : ditto</div><div class='add'>+</div><div class='add'>+	* object.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h : ditto</div><div class='add'>+</div><div class='add'>+	* string.c : ditto</div><div class='add'>+</div><div class='add'>+	* version.h : ditto</div><div class='add'>+</div><div class='add'>+	* rb/ir.rb : fix to use "diffs" directory</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : add "const"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-06(Mon) 16:36:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : remove "static" from external global variables</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* array.c : fix indent</div><div class='add'>+</div><div class='add'>+	* insns.def : add a suitable cast</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : allow scalar value on splat arguments</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_block.rb : fix to synchronize Ruby HEAD</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : remove String#each for 1.9</div><div class='add'>+</div><div class='add'>+	* template/vm.inc.tmpl : ditto (remove String#each_with_index)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-06(Mon) 13:22:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* iseq.c : fixed GC debugging outputs</div><div class='add'>+</div><div class='add'>+	* rb/parse.rb : fixed output format</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-04(Sat) 09:46:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to duplicate "#{'foo'}" string</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c : import Ruby HEAD</div><div class='add'>+</div><div class='add'>+	* keywords : ditto</div><div class='add'>+</div><div class='add'>+	* lex.c : ditto</div><div class='add'>+</div><div class='add'>+	* parse.y : ditto</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb : fix to current specification</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-03(Fri) 20:58:36 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/utf8tbl.h : missed to add</div><div class='add'>+</div><div class='add'>+	* configure.in : import ruby HEAD</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_clone.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/socket/test_unix.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/strscan/test_stringscanner.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/testunit/collector/test_dir.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-11-03(Fri) 20:22:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c : import current ruby HEAD and apply API changes</div><div class='add'>+	This version has some known bugs</div><div class='add'>+</div><div class='add'>+	* bignum.c : ditto</div><div class='add'>+</div><div class='add'>+	* blockinlining.c : ditto</div><div class='add'>+</div><div class='add'>+	* class.c : ditto</div><div class='add'>+</div><div class='add'>+	* compile.c : ditto</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'>+	* enum.c : ditto</div><div class='add'>+</div><div class='add'>+	* enumerator.c : ditto</div><div class='add'>+</div><div class='add'>+	* error.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_error.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/*</div><div class='add'>+</div><div class='add'>+	* file.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* hash.c : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* instruby.rb : ditto</div><div class='add'>+</div><div class='add'>+	* intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* io.c : ditto</div><div class='add'>+</div><div class='add'>+	* iseq.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/*</div><div class='add'>+</div><div class='add'>+	* marshal.c : ditto</div><div class='add'>+</div><div class='add'>+	* math.c : ditto</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c : ditto</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb : ditto</div><div class='add'>+</div><div class='add'>+	* node.h : ditto</div><div class='add'>+</div><div class='add'>+	* numeric.c : ditto</div><div class='add'>+</div><div class='add'>+	* object.c : ditto</div><div class='add'>+</div><div class='add'>+	* oniguruma.h : ditto</div><div class='add'>+</div><div class='add'>+	* pack.c : ditto</div><div class='add'>+</div><div class='add'>+	* parse.y : ditto</div><div class='add'>+</div><div class='add'>+	* prec.c : ditto</div><div class='add'>+</div><div class='add'>+	* process.c : ditto</div><div class='add'>+</div><div class='add'>+	* random.c : ditto</div><div class='add'>+</div><div class='add'>+	* range.c : ditto</div><div class='add'>+</div><div class='add'>+	* rb/ir.rb : ditto</div><div class='add'>+</div><div class='add'>+	* re.c : ditto</div><div class='add'>+</div><div class='add'>+	* regcomp.c : ditto</div><div class='add'>+</div><div class='add'>+	* regerror.c : ditto</div><div class='add'>+</div><div class='add'>+	* regexec.c : ditto</div><div class='add'>+</div><div class='add'>+	* regint.h : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.c : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.h : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h : 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'>+	* sample/test.rb : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* sprintf.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.h : ditto</div><div class='add'>+</div><div class='add'>+	* string.c : ditto</div><div class='add'>+</div><div class='add'>+	* struct.c : ditto</div><div class='add'>+</div><div class='add'>+	* test/*</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* time.c : ditto</div><div class='add'>+</div><div class='add'>+	* util.c : ditto</div><div class='add'>+</div><div class='add'>+	* variable.c : ditto</div><div class='add'>+</div><div class='add'>+	* version.h : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto</div><div class='add'>+</div><div class='add'>+	* win32/*</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-10-31(Tue) 22:47:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y : fix NEWHEAP bugs (import HEAD)</div><div class='add'>+</div><div class='add'>+	* ruby.c, intern.h, yarvcore.c (rb_load_file) : change to</div><div class='add'>+	return parsed node pointer</div><div class='add'>+</div><div class='add'>+	* rb/ir.rb : add check mode</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-09-01(Fri) 22:05:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix a bug of peephole optimization and enable</div><div class='add'>+	regexp optimization</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-21(Mon) 05:27:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb : remove "remove_method :gcd2"</div><div class='add'>+</div><div class='add'>+	* opt_insn_unif.def : unset opt setting</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-18(Fri) 17:55:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add dependency of yarvcore.h to thread.o</div><div class='add'>+</div><div class='add'>+	* gc.c : change comment line</div><div class='add'>+</div><div class='add'>+	* thread.c : remove some line break</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : reoder initialize sequence to mark main thread</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-18(Fri) 16:51:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add a support for cache values per thread</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : move a expression after acquiring lock</div><div class='add'>+</div><div class='add'>+	* compile.c : add a cast to remove warning</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-18(Fri) 02:07:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to return rhs value on ATTRASGIN</div><div class='add'>+</div><div class='add'>+	* insns.def (setn) : add insn setn</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-17(Thu) 22:46:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : clear callee_id ([yarv-dev:1073])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-17(Thu) 22:14:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : fix error message</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-17(Thu) 12:23:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : change initilize routine order ([yarv-dev:1067])</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (Init_yarv) : init th-&gt;machine_stack_start</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : add malloc value check ([yarv-dev:1066])</div><div class='add'>+</div><div class='add'>+	* insns.def (opt_eq) : fix typo ([yarv-dev:1072])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_opts.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for last commit</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-17(Thu) 11:02:16 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (clone_method) : check undef-ed method ([yarv-dev:1068])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-15(Tue) 15:07:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix opt_plus routine ([yarv-dev-en:149])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_opts.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-08-06(Sun) 06:24:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : fix build rule (build only ruby binary when benchmark)</div><div class='add'>+</div><div class='add'>+	* yarvcore.[ch] : fix and add yarv_iseq_new_with_* API</div><div class='add'>+</div><div class='add'>+	* blockinlining.c : ditto</div><div class='add'>+</div><div class='add'>+	* compile.c : ditto</div><div class='add'>+</div><div class='add'>+	* compile.h : ditto</div><div class='add'>+</div><div class='add'>+	* iseq.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_method.h : check redefinition for specialized instruction</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.h : ditto</div><div class='add'>+</div><div class='add'>+	* numeric.c : add Fixnum#succ</div><div class='add'>+</div><div class='add'>+	* thread.c : remove duplicated method Thread#current</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove duplicated method Proc#clone</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_opts.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-20(Thu) 04:10:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix [yarv-dev:1041] problem (raise TypeError)</div><div class='add'>+</div><div class='add'>+	* eval.c : rb_funcall2 send as NOEX_PRIVATE and check scope</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-20(Thu) 03:38:46 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix [yarv-dev:1040] bug</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-18(Tue) 18:45:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* some files : set property "svn:eol-style" as native</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-18(Tue) 18:35:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+        * gc.h : fix a static function name</div><div class='add'>+</div><div class='add'>+        * vm.c : remove Japanese comments</div><div class='add'>+</div><div class='add'>+        * yarvcore.c : add a comment</div><div class='add'>+</div><div class='add'>+	* some files : set property "svn:eol-style" as native</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-18(Tue) 16:48:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : remove unused code</div><div class='add'>+</div><div class='add'>+	* compile.c : add checking value</div><div class='add'>+</div><div class='add'>+	* iseq.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix yarv_th_eval prototype declaration</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : use compile instead of parse method</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-12(Wed) 15:18:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv_version.h : 0.4.1</div><div class='add'>+</div><div class='add'>+	* Changes : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-12(Wed) 13:38:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+        * eval.c : fix indent</div><div class='add'>+</div><div class='add'>+        * gc.h : fix syntax bug</div><div class='add'>+</div><div class='add'>+        * thread_pthread.h : vanish warnning message</div><div class='add'>+</div><div class='add'>+        * iseq.c : ditto</div><div class='add'>+</div><div class='add'>+        * compile.c : ditto</div><div class='add'>+</div><div class='add'>+        * thread.c : ditto</div><div class='add'>+</div><div class='add'>+        * vm.c : ditto</div><div class='add'>+</div><div class='add'>+        * yarvcore.c : prohibit tail call optimization to mark </div><div class='add'>+	iseq object</div><div class='add'>+</div><div class='add'>+        * yarvcore.h : add some allocator function declaration</div><div class='add'>+</div><div class='add'>+        * yarvtest/test_eval.rb : remove output</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-12(Wed) 05:01:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : undef alloc funcs</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto (use factory faction)</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* iseq.c : fix compile option creation</div><div class='add'>+</div><div class='add'>+	* rb/allload.rb : use compile_file method</div><div class='add'>+</div><div class='add'>+	* rb/compile.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rb/parse.rb : ditto</div><div class='add'>+</div><div class='add'>+	* template/insnstbl.html : hide mail addr</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-11(Tue) 21:34:29 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: new test test_JVN_13947696.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-11(Tue) 21:26:41 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_alias.rb: new test test_JVN_83768862.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-11(Tue) 11:33:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix compile error on C90</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-11(Tue) 10:40:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* disasm.c : removed</div><div class='add'>+</div><div class='add'>+	* iseq.c : added</div><div class='add'>+</div><div class='add'>+	* common.mk : ditto</div><div class='add'>+</div><div class='add'>+	* blockinlining.c : Get*Val =&gt; Get*Ptr</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</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'>+	* compile.c : rename local variable insnobj =&gt; iobj</div><div class='add'>+</div><div class='add'>+	* compile.c : support yarv_compile_option_t</div><div class='add'>+</div><div class='add'>+	* gc.h : added</div><div class='add'>+</div><div class='add'>+	* insns.def : use OPT_CHECKED_RUN instead of IGNORE_OPTIMIZE</div><div class='add'>+</div><div class='add'>+	* rb/compile.rb : use compile option</div><div class='add'>+</div><div class='add'>+	* template/optinsn.inc.tmpl : fix function name</div><div class='add'>+</div><div class='add'>+	* vm_opts.h.base : change macros</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : ditto</div><div class='add'>+</div><div class='add'>+	* yarv.h : fix yarvcore_eval_parsed parameter type</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix some interfaces (functions)</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add a type yarv_compile_option_t</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-06(Thu) 13:45:20 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yasm.rb : pass builder object if block arity == 1</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-05(Wed) 11:23:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yasm.rb : fix method name</div><div class='add'>+</div><div class='add'>+	* vm.c (th_set_top_stack) : check toplevel or not</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-04(Tue) 20:05:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/compile.rb : added</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : disable load/store test</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-04(Tue) 18:17:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix some bugs about load iseq data</div><div class='add'>+</div><div class='add'>+	* disasm.c : ditto (store)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_f_local_variables) : fix bugs</div><div class='add'>+</div><div class='add'>+	* insns.def : fix otp_ltlt condition bug</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : rename some functions</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : add iseq load/store tests</div><div class='add'>+	(to enable this, remove comment)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-07-03(Mon) 01:54:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : add parameter "th" to thread_set_raised</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_error.h : declare with ANSI style</div><div class='add'>+</div><div class='add'>+	* disasm.c : rename iseq_iseq2simpledata() to iseq_data_to_ary</div><div class='add'>+</div><div class='add'>+	* lib/yasm.rb : rename Instruction#to_simpledata to</div><div class='add'>+	Instruction#to_a</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : fix bug (Proc.new{|*args| p args}.call(1) #=&gt; 1)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_proc.rb : add a tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-06-21(Wed) 09:19:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : remove yarv_iseq_t#catch_table_ary and</div><div class='add'>+	add yarv_iseq_t#compile_data#catch_table_ary</div><div class='add'>+</div><div class='add'>+	* compile.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove unused code</div><div class='add'>+</div><div class='add'>+	* thread.c : add rb_gc_mark_threads() (from eval_thread.c)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-31(Wed) 21:26:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+        * parse.y : prohibit tail call optimization to mark vparsr</div><div class='add'>+	object</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-25(Thu) 15:37:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c : support NEW_ATTRASGN node</div><div class='add'>+</div><div class='add'>+	* class.c : skip undefined method to collect ([yarv-dev:999])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* compile.c : fix opt_regexpmatch1 condition</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb : fix [yarv-dev:1009]</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix typo</div><div class='add'>+</div><div class='add'>+	* thread.c : prohibit unlock by not mutex owner thread</div><div class='add'>+</div><div class='add'>+	* vm_opts.h.base : change default option</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-18(Thu) 16:00:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* intern.h : fix prototype declarations for last re.c change</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-18(Thu) 12:12:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/runruby.rb : added</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_alone) : check if vm-&gt;living_threads</div><div class='add'>+	is available</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-18(Thu) 12:05:35 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* signal.c : not mask SIGSEGV</div><div class='add'>+</div><div class='add'>+	* thread.c : fix debug output on Win32</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.h : add some debug prints</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : mark machine registers on thread_mark</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-17(Wed) 18:09:20 +900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* dir.c (sys_warning): should not call a vararg function</div><div class='add'>+	  rb_sys_warning() indirectly.  [ruby-core:07886]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-17(Wed) 16:41:41 +900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): should not allow modifying literal</div><div class='add'>+	  regexps.  frozen check moved from rb_reg_initialize_m as well.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_reg_initialize): should not modify untainted objects in</div><div class='add'>+	  safe levels higher than 3.</div><div class='add'>+</div><div class='add'>+	* re.c (rb_memcmp): type change from char* to const void*.</div><div class='add'>+</div><div class='add'>+	* dir.c (dir_close): should not close untainted dir stream.</div><div class='add'>+</div><div class='add'>+	* dir.c (GetDIR): add tainted/frozen check for each dir operation.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-07(Sun) 21:06:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c : remove Mutex#unlock_and_stop and add Mutex#sleep</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb : ditto</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : fix stack size</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : fix sleep</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : disable to use get/setcontext</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb : add experimental implementation </div><div class='add'>+	using thraeds pool</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-05(Fri) 13:59:00 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : disable a test</div><div class='add'>+</div><div class='add'>+	* thread.c : do trylock before lock on mutex_lock</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : use CriticalSection instead of Mutex</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-05(Fri) 03:03:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : vtune rule make run test.rb</div><div class='add'>+</div><div class='add'>+	* disasm.c : fix syntax errors (on VC)</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb : Mutex#synchronize is defined here</div><div class='add'>+</div><div class='add'>+	* lib/*.rb : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : separate pthread or not</div><div class='add'>+</div><div class='add'>+	* thread.c : support lightweight wakeup</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : ditto</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : restore last change</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-04(Thu) 18:11:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove rb_thread_interrupt</div><div class='add'>+</div><div class='add'>+	* intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : change signal transfer route</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : ditto</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarv.h : support GET_VM()</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : change yarv_thread_t/yarv_vm_t structure</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : decrease threads to test</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-05-04(Thu) 00:26:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : experimental support of thread cache</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-25(Tue) 22:30:14 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : remove struct yarv_cmethod_info, add</div><div class='add'>+	data structure for profiling and extend yarv_control_frame_t</div><div class='add'>+</div><div class='add'>+	* vm.c : make pop_frame() and apply above change</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def (leave): use pop_frame() instead of</div><div class='add'>+	POP_CONTROL_STACK_FRAME() macro</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : remove some macros</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : change th_set_top_stack() prototype</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-18(Tue) 18:37:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, disasm.c : support export/import exception</div><div class='add'>+	information</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : change "struct catch_table_entry" member variable</div><div class='add'>+	order</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-13(Thu) 17:11:30 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* bignum.c : import ruby 1.9 HEAD (Ruby 1.9.0 2006-04-08)</div><div class='add'>+</div><div class='add'>+	* dir.c : ditto</div><div class='add'>+</div><div class='add'>+	* enumerator.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/.document : ditto</div><div class='add'>+</div><div class='add'>+	* ext/extmk.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/utf8tbl.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/nkf/test.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/socket/.cvsignore : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/sample/excel2.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEMETHOD.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEPARAM.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLETYPE.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLETYPELIB.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEVARIABLE.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testOLEVARIANT.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testall.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* instruby.rb : ditto</div><div class='add'>+</div><div class='add'>+	* io.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/find.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/mkmf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rational.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/parsers/parse_rb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ri/ri_paths.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/collector/objectspace.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb : ditto</div><div class='add'>+</div><div class='add'>+	* math.c : ditto</div><div class='add'>+</div><div class='add'>+	* mkconfig.rb : ditto</div><div class='add'>+</div><div class='add'>+	* object.c : ditto</div><div class='add'>+</div><div class='add'>+	* oniguruma.h : ditto</div><div class='add'>+</div><div class='add'>+	* pack.c : ditto</div><div class='add'>+</div><div class='add'>+	* parse.y : ditto</div><div class='add'>+</div><div class='add'>+	* re.c : ditto</div><div class='add'>+</div><div class='add'>+	* re.h : ditto</div><div class='add'>+</div><div class='add'>+	* regcomp.c : ditto</div><div class='add'>+</div><div class='add'>+	* regerror.c : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h : 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'>+	* string.c : ditto</div><div class='add'>+</div><div class='add'>+	* test/digest/test_digest.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb : ditto</div><div class='add'>+</div><div class='add'>+	* time.c : ditto</div><div class='add'>+</div><div class='add'>+	* util.c : ditto</div><div class='add'>+</div><div class='add'>+	* version.h : ditto</div><div class='add'>+</div><div class='add'>+	* win32/mkexports.rb : ditto</div><div class='add'>+</div><div class='add'>+	* win32/resource.rb : ditto</div><div class='add'>+</div><div class='add'>+	* win32/win32.c : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-11(Tue) 11:26:53 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/yasm.rb : move to lib/yasm.rb</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-09(Sun) 03:04:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : change to accept method iseq object when loading from</div><div class='add'>+	simple data</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add a debug output</div><div class='add'>+</div><div class='add'>+	* rb/yasm.rb : change some interfaces</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-07(Fri) 20:25:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix miss about range of catch "next"</div><div class='add'>+</div><div class='add'>+	* eval.c : add braces</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-04-07(Fri) 11:09:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : fix some make rules</div><div class='add'>+</div><div class='add'>+	* insns.def : rename some instructions name</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : change some operand type name</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : ditto</div><div class='add'>+</div><div class='add'>+	* template/insns.inc.tmpl : add YARV_MAX_INSTRUCTION_SIZE macro</div><div class='add'>+</div><div class='add'>+	* compile.c, disasm.c, yarvcore.c : support load/store iseq from/to simple</div><div class='add'>+	data structure such as array, literals, and so on</div><div class='add'>+</div><div class='add'>+	* rb/yasm.rb : supported</div><div class='add'>+</div><div class='add'>+	* vm.c : change interface of eval_define_method</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : remove unused externals</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-03-08(Wed) 10:31:29 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb (DelegateClass): do not delegate #send and</div><div class='add'>+	  #funcall.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-27(Mon) 22:39:17 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: last commit causes busy loop, revert it. [yarv-dev:990]</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: non_block=true wrongly caused ThreadError.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-27(Mon) 21:33:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : fix to display command line</div><div class='add'>+</div><div class='add'>+	* compile.c : fix comparison between a pointer and 0</div><div class='add'>+</div><div class='add'>+	* debug.c : fix to output stder</div><div class='add'>+</div><div class='add'>+	* disasm.c : add debug function</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : fix to skip class definition</div><div class='add'>+</div><div class='add'>+	* ruby.h : fix T_VALUE to T_VALUES</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* node.h : fix prototypes</div><div class='add'>+</div><div class='add'>+	* vm.c : add VM_DEBUG macro</div><div class='add'>+</div><div class='add'>+	* vm.c : fix compile error on VC++</div><div class='add'>+</div><div class='add'>+	* vm.c : fix to inherit last lfp[0] on th_set_finish_env</div><div class='add'>+</div><div class='add'>+	* vm.c : fix to add one svar location for any frame</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add YARV_CLASS_SPECIAL_P() and YARV_BLOCK_PTR_P()</div><div class='add'>+</div><div class='add'>+	* rdoc/ : removed</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to propagete throw state</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-27(Mon) 13:54:47 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/syslog: imported from Ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* ext/racc: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-27(Mon) 12:47:10 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y: follow coding style change.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-27(Mon) 11:53:07 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/README: imported from Ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* lib/gserver.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/readbytes.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/parsearg.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/racc: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/rinda: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-27(Mon) 11:27:19 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (Queue#pop): faster code. [yarv-dev:973]</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (Queue#pop): avoid to push same thread in to</div><div class='add'>+	  @waiting.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-23(Thu) 23:32:53 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/open3.rb: imported from Ruby CVS trunk HEAD (rev 1.12).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-23(Thu) 15:10:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : support rb_frame_self()</div><div class='add'>+</div><div class='add'>+	* eval_intern.h (th_get_ruby_level_cfp) : return 0 if no cfp</div><div class='add'>+</div><div class='add'>+	* eval_load.c : comment out scope set</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix to initialize/free process of iseq</div><div class='add'>+</div><div class='add'>+	* vm.c (th_invoke_proc) : fix to set special cref always</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_proc.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 23:33:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add rule "runruby"</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove obsolete comment</div><div class='add'>+</div><div class='add'>+	* eval.c : remove unused functions</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : add rb_register_mark_object() and use it</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : add rb_thread_run_parallel()</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : change bootstrap</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 19:27:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/.cvsignore : removed</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/.document : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 18:17:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : set Binding as YARVCore::VM::Binding</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 12:54:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog : remove needless line</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 12:49:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rubysig.h : remove CHECK_INTS</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* win32/win32.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarv_version.h : 0.4.0</div><div class='add'>+</div><div class='add'>+	* Changes : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 11:36:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test.rb : removed</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 11:12:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* README : renewed</div><div class='add'>+</div><div class='add'>+	* version.c : fixed version message</div><div class='add'>+</div><div class='add'>+	* yarvext/ : removed</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 10:33:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/.document : imported from Ruby 1.9 HEAD</div><div class='add'>+</div><div class='add'>+	* .document : ditto</div><div class='add'>+</div><div class='add'>+	* ext/.document : ditto</div><div class='add'>+</div><div class='add'>+	* lib/ftools.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rdoc/ : ditto</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove unused functions</div><div class='add'>+</div><div class='add'>+	* process.c : ditto</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : compare modified date of vm_opts.h and</div><div class='add'>+	vm_opts.h.base</div><div class='add'>+</div><div class='add'>+	* ruby.h : rename RValue to RValues</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 06:32:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in : remove last commit</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 06:18:53 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in : add default program prefix "-yarv"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 06:11:36 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : change default rule (same as HEAD)</div><div class='add'>+</div><div class='add'>+	* configure : removed</div><div class='add'>+</div><div class='add'>+	* eval.c : remove last commit</div><div class='add'>+</div><div class='add'>+	* vm.c : fix stack traverse</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : initialize top of control frame</div><div class='add'>+</div><div class='add'>+	* version.c : 2.0</div><div class='add'>+</div><div class='add'>+	* version.h : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 04:50:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : change to rewind C level control frame</div><div class='add'>+</div><div class='add'>+	* vm.c : change to initialize cfp#proc and fix comparison of</div><div class='add'>+	cfp and limit_cfp</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove last commit</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 03:25:56 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : initialize each stack of thread</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-22(Wed) 00:02:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c : fix synchornize return value ([yarv-dev:957])</div><div class='add'>+	and some synchornization error</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : add debug helper function</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-21(Tue) 20:54:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : fix place of rb_thread_terminate_all()</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove unused functions</div><div class='add'>+</div><div class='add'>+	* yarv.h : remove GET_VM()</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : </div><div class='add'>+</div><div class='add'>+	* intern.h : change rb_thread_signal_raise/exit interface</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb : use block with IO.popen</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : fix interrupt process</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix thread free process</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : remove yarv_vm_t#thread_critical, etc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-21(Tue) 12:42:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove unused function rb_thread_schedule()</div><div class='add'>+</div><div class='add'>+	* thread.c : rename yarv_thread_schedule to rb_thread_schedule()</div><div class='add'>+</div><div class='add'>+	* thread.c, eval.c : fix to terminate all thread and barrier at</div><div class='add'>+	eval.c#ruby_cleanup()</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : remove native_thread_cleanup()</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : separete assersions to tests</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-21(Tue) 02:13:33 +900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y (f_arglist): should set command_start = Qtrue for</div><div class='add'>+	  command body.  [ruby-talk:180648]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 20:41:07 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c : fix to synchronize signal_thread_list access</div><div class='add'>+	and fix typo</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 17:54:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : remove unused Binding functions and</div><div class='add'>+	set is_lambda of Proc used define_method</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : support Proc#dup/clone, Binding#dup/clone</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : remove unsupport features (Proc as Binding)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 16:28:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add a dependency to vm.c on eval_intern.h</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : fix to initialize tag-&gt;tag</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_jump.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : use local variable</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 15:13:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm3_thread_create_join.rb : added</div><div class='add'>+</div><div class='add'>+	* test/yaml/test_yaml.rb : imported from Ruby CVS trunk HEAD</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 14:49:46 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/yaml.rb: imported from Ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* lib/yaml: ditto.</div><div class='add'>+</div><div class='add'>+	* ext/syck: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 13:58:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support block parameter which is NODE_ATTRASGN</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_block.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_DASGN_CURR level check</div><div class='add'>+</div><div class='add'>+	* compile.c : fix "||=" (at firtst, check "defined? val")</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_MATCH3 (permute receiver and argument)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* eval.c : add rb_each()</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : increment a timeout value</div><div class='add'>+</div><div class='add'>+	* thread.c, yarvcore.h : fix "join" flow</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : ditto</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* vm.h, vm.c, vm_dump.c, insns.def : add FRAME_MAGIC_LAMBDA and</div><div class='add'>+	support return from lambda (especially retrun from method defined</div><div class='add'>+	by "define_method")</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove unused functions</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 11:22:31 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: now Object#funcall is defined.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 11:04:32 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/CVS: removed.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 10:55:59 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/mutex_m.rb: imported from Ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* lib/observer.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/wsdl: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/monitor.rb: ditto (removing Thread.critical=).</div><div class='add'>+</div><div class='add'>+	* lib/xsd: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/soap: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/drb.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/drb: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-20(Mon) 10:49:31 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (Init_yarvcore): fix typo (duo -&gt; dup).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-19(Sun) 01:27:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : "return" from lambda{} break block</div><div class='add'>+</div><div class='add'>+	* eval.c : Unsupport Proc as Binding</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb : apply above changes</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove unused function yarv_yield_values()</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-18(Sat) 03:19:36 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, insns.def : fix passing value when thread killed</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-19(Sun) 01:19:42 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb (SizedQueue): didn't work.  This patch was</div><div class='add'>+	  contributed by yukimizake. [yarv-dev:916]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-18(Sat) 03:19:36 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, insns.def : fix passing value when thread killed</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-18(Sat) 02:40:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c, vm_macro.def : change BMETHOD algorithm</div><div class='add'>+	([yarv-dev:914])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-17(Fri) 23:59:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, yarv.h : change th_invoke_proc() interface</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto and fix NODE_BMETHOD call</div><div class='add'>+</div><div class='add'>+	* vm.c : change name ("th_set_env()" to "push_frame()") and</div><div class='add'>+	change interface</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* eval.c : remove proc_jump_error()</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_answer.rb : added</div><div class='add'>+</div><div class='add'>+	* vm_opts.h.base : add optimize option</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-17(Fri) 13:37:57 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, ruby.h : add rb_errinfo()</div><div class='add'>+</div><div class='add'>+	* eval_error.h (error_pos) : fix process order</div><div class='add'>+</div><div class='add'>+	* bin/erb : imported from ruby 1.9</div><div class='add'>+</div><div class='add'>+	* bin/irb : ditto</div><div class='add'>+</div><div class='add'>+	* bin/rdoc : ditto</div><div class='add'>+</div><div class='add'>+	* bin/ri : ditto</div><div class='add'>+</div><div class='add'>+	* bin/testrb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/.cvsignore : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/curses.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/depend : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/extconf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/hello.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/mouse.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/rain.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/view.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/curses/view2.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/.cvsignore : ditto</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/depend : ditto</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/extconf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/fcntl/fcntl.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/readline/README : ditto</div><div class='add'>+</div><div class='add'>+	* ext/readline/README.ja : ditto</div><div class='add'>+</div><div class='add'>+	* ext/readline/depend : ditto</div><div class='add'>+</div><div class='add'>+	* ext/readline/extconf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/readline/readline.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/.document : ditto</div><div class='add'>+</div><div class='add'>+	* ext/zlib/doc/zlib.rd : ditto</div><div class='add'>+</div><div class='add'>+	* ext/zlib/extconf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/zlib/zlib.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/cgi/.document : ditto</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/cgi/session/pstore.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/builtin-command.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/command-processor.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/error.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/filter.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/process-controller.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/system-command.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell/version.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/.document : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/README.rdoc : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/README.txt : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/base64.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/client.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/config.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/create.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/datetime.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/httpserver.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/marshal.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/parser.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/server.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/xmlrpc/utils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/README : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/code_objects.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/diagram.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/dot/dot.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/chm_generator.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/html_generator.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/ri_generator.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/chm/chm.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/html/hefss.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/html/html.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/html/kilmer.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/html/old_html.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/html/one_page_html.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/xml/rdf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/template/xml/xml.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/generators/xml_generator.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/sample/rdoc2latex.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/sample/sample.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/fragments.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/inline.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/lines.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/preprocess.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/to_flow.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/to_html.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/simple_markup/to_latex.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/test/AllTests.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/test/TestInline.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/markup/test/TestParse.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/options.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/parsers/parse_c.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/parsers/parse_f95.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/parsers/parse_rb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/parsers/parse_simple.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/parsers/parserfactory.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/rdoc.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_cache.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_descriptions.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_display.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_driver.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_formatter.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_options.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_paths.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_reader.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_util.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/ri/ri_writer.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/template.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/tokenstream.rb : ditto</div><div class='add'>+</div><div class='add'>+	* rdoc/usage.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/bug_bool.expected : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/bug_bool.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/bug_cdata.expected : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/bug_cdata.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/bug_covert.expected : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/bug_covert.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/datetime_iso8601.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/fault.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/value.expected : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/value.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/xml1.expected : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/data/xml1.xml : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_datetime.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_features.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_marshal.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_parser.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/test_webrick_server.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/xmlrpc/webrick_testing.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/zlib/test_zlib.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-17(Fri) 09:41:35 +900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c (sleep_timeval): sleep should always sleep for</div><div class='add'>+	  specified amount of time.  [ruby-talk:180067]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-17(Fri) 02:20:32 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_safe.h, ruby.h : remove ruby_safe_level and add</div><div class='add'>+	rb_safe_level() and rb_set_safe_level_force()</div><div class='add'>+</div><div class='add'>+	* eval.c : use above functions</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_method.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* variable.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c (th_invoke_proc) : save and restore safe level</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_proc.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* thread.c : remove unused functions</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-17(Fri) 01:08:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : remove a setspecial second unused operand</div><div class='add'>+</div><div class='add'>+	* eval_load.c : remove unused variable th</div><div class='add'>+</div><div class='add'>+	* eval_proc.c, yarvcore.c : remove some functions from eval_proc.c</div><div class='add'>+	and move to yarvcore.c</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to delete warnings</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : comment out Proc#clone tests</div><div class='add'>+</div><div class='add'>+	* version.c : add constant RUBY_VM_DATE</div><div class='add'>+</div><div class='add'>+	* vm.c : fix some functions</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-16(Thu) 22:58:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : use th_yield_setup_args at yield and Proc#call</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-16(Thu) 19:51:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix analysis of block parameter</div><div class='add'>+</div><div class='add'>+	* disasm.c : remove rb_bug() (temporarily)</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : fix passing block parameter</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : add "Proc = YARVCore::VM::Proc"</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb : disable on mswin32</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : fix syntax error (for non GCC)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 22:34:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h : move rb_clear_cache_by_id position</div><div class='add'>+</div><div class='add'>+	* thread.c : fix Thread#kill</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb : enable tests except cygwin version</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : ditto and enable timeout</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 22:13:29 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/runit: forgot to commit.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 22:12:25 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb: do not use Thread.critical=.</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/inlinetest.rb: forgot to commit.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 21:34:17 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_pp.rb: imported from Ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* test/test_shellwords.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/test_set.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/test_time.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/test_ipaddr.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/test_prettyprint.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/test_tsort.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/strscan: ditto.</div><div class='add'>+</div><div class='add'>+	* test/testunit: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 20:03:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h : duplicate NODE_METHOD at make an alias</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 19:48:59 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/rss: imported from Ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 19:47:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c, vm.c : remove methoddef, singletonmethoddef</div><div class='add'>+	instructions and make new insn definemethod</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : set toplevel visibility to private</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 17:39:16 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : </div><div class='add'>+</div><div class='add'>+	* eval_jump.h, vm.c : localjump_error() and jump_tag_but_local_jump()</div><div class='add'>+	move to th_localjump_error and th_jump_tag_but_local_jump at vm.c</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c (th_make_jump_tag_but_local_jump) : added</div><div class='add'>+</div><div class='add'>+	* opt_insn_unif.def : fix indnet (revert change)</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : ditto</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix error message</div><div class='add'>+</div><div class='add'>+	* thread.c : raise exception at join if illegal local jump</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-15(Wed) 14:21:45 +900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* ChangeLog: add local variables line to support Emacs.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_exec): add new method from 1.9.</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_module_exec): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c (yield_under_i): should not pass self as an argument to</div><div class='add'>+	  the block for instance_eval.  [ruby-core:07364]</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_obj_instance_eval): should be no singleton classes for</div><div class='add'>+	  true, false, and nil.  [ruby-dev:28186]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 19:30:20 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c : fix indent</div><div class='add'>+</div><div class='add'>+	* eval.c : fix block_given</div><div class='add'>+</div><div class='add'>+	* gc.c : add STACK_START and use it as a substitute for</div><div class='add'>+	rb_gc_stack_start</div><div class='add'>+</div><div class='add'>+	* vm.c : fix to raise error if th_yield doesn't have block given</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix to skip iseq mark array at ObjectSpace.each_object</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 18:15:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* configure.in : enable pthread by deafult</div><div class='add'>+</div><div class='add'>+	* ascii.c : import ruby 1.9 HEAD</div><div class='add'>+</div><div class='add'>+	* bignum.c : ditto</div><div class='add'>+</div><div class='add'>+	* compar.c : ditto</div><div class='add'>+</div><div class='add'>+	* configure : ditto</div><div class='add'>+</div><div class='add'>+	* defines.h : ditto</div><div class='add'>+</div><div class='add'>+	* dln.c : ditto</div><div class='add'>+</div><div class='add'>+	* dln.h : ditto</div><div class='add'>+</div><div class='add'>+	* enum.c : ditto</div><div class='add'>+</div><div class='add'>+	* enumerator.c : ditto</div><div class='add'>+</div><div class='add'>+	* euc_jp.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/tests/testWIN32OLE.rb : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c : ditto</div><div class='add'>+</div><div class='add'>+	* file.c : ditto</div><div class='add'>+</div><div class='add'>+	* hash.c : ditto</div><div class='add'>+</div><div class='add'>+	* io.c : ditto</div><div class='add'>+</div><div class='add'>+	* lex.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rexml/document.rb : ditto</div><div class='add'>+</div><div class='add'>+	* main.c : ditto</div><div class='add'>+</div><div class='add'>+	* marshal.c : ditto</div><div class='add'>+</div><div class='add'>+	* math.c : ditto</div><div class='add'>+</div><div class='add'>+	* missing.h : ditto</div><div class='add'>+</div><div class='add'>+	* object.c : ditto</div><div class='add'>+</div><div class='add'>+	* oniguruma.h : ditto</div><div class='add'>+</div><div class='add'>+	* pack.c : ditto</div><div class='add'>+</div><div class='add'>+	* process.c : ditto</div><div class='add'>+</div><div class='add'>+	* random.c : ditto</div><div class='add'>+</div><div class='add'>+	* range.c : ditto</div><div class='add'>+</div><div class='add'>+	* rb/ir.rb : ditto</div><div class='add'>+</div><div class='add'>+	* re.c : ditto</div><div class='add'>+</div><div class='add'>+	* regcomp.c : ditto</div><div class='add'>+</div><div class='add'>+	* regenc.c : ditto</div><div class='add'>+</div><div class='add'>+	* regenc.h : ditto</div><div class='add'>+</div><div class='add'>+	* regerror.c : ditto</div><div class='add'>+</div><div class='add'>+	* regexec.c : ditto</div><div class='add'>+</div><div class='add'>+	* regint.h : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.c : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.h : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h : ditto</div><div class='add'>+</div><div class='add'>+	* rubyio.h : ditto</div><div class='add'>+</div><div class='add'>+	* sjis.c : ditto</div><div class='add'>+</div><div class='add'>+	* sprintf.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.h : ditto</div><div class='add'>+</div><div class='add'>+	* struct.c : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_struct.rb : ditto</div><div class='add'>+</div><div class='add'>+	* time.c : ditto</div><div class='add'>+</div><div class='add'>+	* utf8.c : ditto</div><div class='add'>+</div><div class='add'>+	* util.c : ditto</div><div class='add'>+</div><div class='add'>+	* util.h : ditto</div><div class='add'>+</div><div class='add'>+	* version.h : ditto</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub : ditto</div><div class='add'>+</div><div class='add'>+	* win32/win32.c : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 16:40:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, eval_proc.c : fix rb_proc_arity</div><div class='add'>+</div><div class='add'>+	* eval.c : declare funcall same as send (temporarily)</div><div class='add'>+</div><div class='add'>+	* lib/thread.rb : added</div><div class='add'>+</div><div class='add'>+	* test/pathname/test_pathname.rb : imported from ruby 1.9</div><div class='add'>+</div><div class='add'>+	* test/scanf/data.txt : ditto</div><div class='add'>+</div><div class='add'>+	* test/scanf/test_scanf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/scanf/test_scanfblocks.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/scanf/test_scanfio.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/socket/test_socket.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/socket/test_tcp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/socket/test_udp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/socket/test_unix.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/stringio/test_stringio.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/uri/test_common.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/uri/test_ftp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/uri/test_generic.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/uri/test_http.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/uri/test_ldap.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/uri/test_mailto.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 15:59:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c : Change Thread.critical warnning message</div><div class='add'>+</div><div class='add'>+	* lib/webrick.rb : imported from ruby 1.9</div><div class='add'>+</div><div class='add'>+	* lib/webrick/accesslog.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cgi.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/compat.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/config.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/cookie.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/htmlutils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/authenticator.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/basicauth.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/digestauth.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/htdigest.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/htgroup.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/htpasswd.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpauth/userdb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpproxy.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/httpresponse.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/https.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpserver.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/abstract.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgi_runner.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/cgihandler.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/erbhandler.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/filehandler.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpservlet/prochandler.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpstatus.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httputils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/httpversion.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/log.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/server.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/ssl.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/utils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/webrick/version.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 14:55:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support "defined?($1)", ...</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syntax.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* rb/makedocs.rb : fix template directory path</div><div class='add'>+</div><div class='add'>+	* vm.c : fix to handle break from proc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 12:42:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : fix rb_iterate hook</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_block.rb : add a tests for above</div><div class='add'>+</div><div class='add'>+	* vm.c : remove unused comment</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 12:01:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : fix to check passed block at block_given_p</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : fix to pass block at Method#call</div><div class='add'>+</div><div class='add'>+	* runruby.rb : fix to apply ruby</div><div class='add'>+</div><div class='add'>+	* test/runner.rb : GC.stress (comment out)</div><div class='add'>+</div><div class='add'>+	* vm.c : fix indnet</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 08:04:33 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb: use Mutex instead of Thread.critical.</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb: |x,| -&gt; |x,_| to avoid YARV bug (tmp).</div><div class='add'>+</div><div class='add'>+	* lib/rexml: imported from ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* test/digest: ditto.</div><div class='add'>+</div><div class='add'>+	* test/fileutils: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ostruct: ditto.</div><div class='add'>+</div><div class='add'>+	* test/erb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/optparse: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb: turn off a test to avoid unknown error</div><div class='add'>+	  (tmp).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 07:52:03 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/digest: imported from ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+	* test/fileutils: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ostruct: ditto.</div><div class='add'>+</div><div class='add'>+	* test/erb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/optparse: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 06:26:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, parse.y : support BEGIN{} (remove local scope)</div><div class='add'>+</div><div class='add'>+	* test/ruby/beginmainend.rb : fix to apply YARV's specification</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb : enable BEGIN{} test</div><div class='add'>+</div><div class='add'>+	* signal.c : exit at double segv</div><div class='add'>+</div><div class='add'>+	* insns.def (preexe) : remove instruction "preexe"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 05:53:56 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_cleanup): th-&gt;errinfo contains a NODE while</div><div class='add'>+	  break'ing, check it before refering klass.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 05:45:07 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix stack calc of send</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : remove SEGV causing code</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 02:24:21 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: list order is not a matter.</div><div class='add'>+</div><div class='add'>+	* test/csv: imported from ruby CVS trunk HEAD.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 02:06:25 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb: unlock tests.</div><div class='add'>+</div><div class='add'>+	* test/ruby/beginmainend.rb: new file (imported from ruby CVS</div><div class='add'>+	  trunk HEAD).</div><div class='add'>+</div><div class='add'>+	* test/ruby/endblockwarn.rb: new file (imported from ruby CVS</div><div class='add'>+	  trunk HEAD).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb: new file (imported from ruby CVS trunk</div><div class='add'>+	  HEAD).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 01:42:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* error.c : fix include file positon</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : skip test_exit_action on cygwin</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 01:36:57 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_class.rb: new file (imported from rubicon).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 01:32:23 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: ignore PP mixins.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 01:24:56 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: removed (-&gt;(){...} syntax is</div><div class='add'>+	  obsolete).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 01:20:54 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: import many tests from rubicon.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 01:06:57 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to avoid stack consistency error</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_exception.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 00:42:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, vm_macro.def : rename VM_CALL_SUPER to VM_CALL_SUPER_BIT</div><div class='add'>+</div><div class='add'>+	* insns.def (send) : set a flag of super as fcall</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-14(Tue) 00:31:24 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: fix typo.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb: unlock tests.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 23:53:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm_macro.def : fix NODE_ZSUPER dispatch and</div><div class='add'>+	fix error message when super without suitable method ([yarv-dev:846])</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add VM_CALL_SUPER definition</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add a test of Module#private_class_method</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 22:49:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : traverse all iseq to find super method ([yarv-dev:859])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add clear iseq-&gt;defined_method_id</div><div class='add'>+</div><div class='add'>+	* signal.c : fix to prohibit double segv handler kicked</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 22:09:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_DECL, NODE_CLASS with NODE_CLON3 prefix</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 21:20:57 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix indent</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to prohibit "redo" from eval expression</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 20:36:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : fix constant search bug ([yarv-dev:788])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test of [yarv-dev:788]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 18:09:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_clone.rb : enable tests with Class#clone</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 17:42:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c : support Class#clone</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : remove popcref</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, vm.c, insns.def : remove yarv_thread_t#cref_stack</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add tests for singleton class</div><div class='add'>+</div><div class='add'>+	* gc.c : remove "FRAME *" unused variable</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : fix COPY_CREF</div><div class='add'>+</div><div class='add'>+	* rb/mklog.rb : add default message</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : support NODE_ZSUPER as method type</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 00:11:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c : refoctoring with CFLAGS+=-Wunused</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_method.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* parse.y : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-13(Mon) 02:32:34 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_const.rb: show better message.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_module.rb: new file.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-12(Sun) 22:22:35 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c : revert last commit</div><div class='add'>+</div><div class='add'>+	* ascii.c : ditto </div><div class='add'>+</div><div class='add'>+	* bignum.c : ditto </div><div class='add'>+</div><div class='add'>+	* class.c : ditto </div><div class='add'>+</div><div class='add'>+	* compar.c : ditto </div><div class='add'>+</div><div class='add'>+	* defines.h : ditto </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'>+	* dln.h : ditto </div><div class='add'>+</div><div class='add'>+	* enum.c : ditto </div><div class='add'>+</div><div class='add'>+	* enumerator.c : ditto </div><div class='add'>+</div><div class='add'>+	* error.c : ditto </div><div class='add'>+</div><div class='add'>+	* euc_jp.c : ditto </div><div class='add'>+</div><div class='add'>+	* file.c : ditto </div><div class='add'>+</div><div class='add'>+	* gc.c : ditto </div><div class='add'>+</div><div class='add'>+	* hash.c : ditto </div><div class='add'>+</div><div class='add'>+	* intern.h : ditto </div><div class='add'>+</div><div class='add'>+	* io.c : ditto </div><div class='add'>+</div><div class='add'>+	* lex.c : ditto </div><div class='add'>+</div><div class='add'>+	* main.c : ditto </div><div class='add'>+</div><div class='add'>+	* marshal.c : ditto </div><div class='add'>+</div><div class='add'>+	* math.c : ditto </div><div class='add'>+</div><div class='add'>+	* missing.h : ditto </div><div class='add'>+</div><div class='add'>+	* node.h : ditto </div><div class='add'>+</div><div class='add'>+	* numeric.c : ditto </div><div class='add'>+</div><div class='add'>+	* object.c : ditto </div><div class='add'>+</div><div class='add'>+	* oniguruma.h : ditto </div><div class='add'>+</div><div class='add'>+	* pack.c : ditto </div><div class='add'>+</div><div class='add'>+	* prec.c : ditto </div><div class='add'>+</div><div class='add'>+	* process.c : ditto </div><div class='add'>+</div><div class='add'>+	* random.c : ditto </div><div class='add'>+</div><div class='add'>+	* range.c : ditto </div><div class='add'>+</div><div class='add'>+	* rb/mklog.rb : ditto </div><div class='add'>+</div><div class='add'>+	* re.c : ditto </div><div class='add'>+</div><div class='add'>+	* regcomp.c : ditto </div><div class='add'>+</div><div class='add'>+	* regenc.c : ditto </div><div class='add'>+</div><div class='add'>+	* regenc.h : ditto </div><div class='add'>+</div><div class='add'>+	* regerror.c : ditto </div><div class='add'>+</div><div class='add'>+	* regex.h : ditto </div><div class='add'>+</div><div class='add'>+	* regexec.c : ditto </div><div class='add'>+</div><div class='add'>+	* regint.h : ditto </div><div class='add'>+</div><div class='add'>+	* regparse.c : ditto </div><div class='add'>+</div><div class='add'>+	* regparse.h : ditto </div><div class='add'>+</div><div class='add'>+	* ruby.c : ditto </div><div class='add'>+</div><div class='add'>+	* ruby.h : ditto </div><div class='add'>+</div><div class='add'>+	* rubyio.h : ditto </div><div class='add'>+</div><div class='add'>+	* rubysig.h : ditto </div><div class='add'>+</div><div class='add'>+	* signal.c : ditto </div><div class='add'>+</div><div class='add'>+	* sjis.c : ditto </div><div class='add'>+</div><div class='add'>+	* sprintf.c : ditto </div><div class='add'>+</div><div class='add'>+	* st.c : ditto </div><div class='add'>+</div><div class='add'>+	* st.h : ditto </div><div class='add'>+</div><div class='add'>+	* string.c : ditto </div><div class='add'>+</div><div class='add'>+	* struct.c : ditto </div><div class='add'>+</div><div class='add'>+	* time.c : ditto </div><div class='add'>+</div><div class='add'>+	* utf8.c : ditto </div><div class='add'>+</div><div class='add'>+	* util.c : ditto </div><div class='add'>+</div><div class='add'>+	* util.h : ditto </div><div class='add'>+</div><div class='add'>+	* variable.c : ditto </div><div class='add'>+</div><div class='add'>+	* version.c : ditto </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-12(Sun) 21:33:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c : fix to ruby's indent</div><div class='add'>+</div><div class='add'>+	* ascii.c : ditto</div><div class='add'>+</div><div class='add'>+	* bignum.c : ditto</div><div class='add'>+</div><div class='add'>+	* blockinlining.c : ditto</div><div class='add'>+</div><div class='add'>+	* call_cfunc.h : ditto</div><div class='add'>+</div><div class='add'>+	* class.c : ditto</div><div class='add'>+</div><div class='add'>+	* compar.c : ditto</div><div class='add'>+</div><div class='add'>+	* compile.c : ditto</div><div class='add'>+</div><div class='add'>+	* compile.h : ditto</div><div class='add'>+</div><div class='add'>+	* debug.c : ditto</div><div class='add'>+</div><div class='add'>+	* debug.h : ditto</div><div class='add'>+</div><div class='add'>+	* defines.h : ditto</div><div class='add'>+</div><div class='add'>+	* dir.c : ditto</div><div class='add'>+</div><div class='add'>+	* disasm.c : ditto</div><div class='add'>+</div><div class='add'>+	* dln.c : ditto</div><div class='add'>+</div><div class='add'>+	* dln.h : ditto</div><div class='add'>+</div><div class='add'>+	* enum.c : ditto</div><div class='add'>+</div><div class='add'>+	* enumerator.c : ditto</div><div class='add'>+</div><div class='add'>+	* error.c : ditto</div><div class='add'>+</div><div class='add'>+	* euc_jp.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_error.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_load.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_method.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : ditto</div><div class='add'>+</div><div class='add'>+	* eval_safe.h : ditto</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* file.c : ditto</div><div class='add'>+</div><div class='add'>+	* gc.c : ditto</div><div class='add'>+</div><div class='add'>+	* hash.c : ditto</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : ditto</div><div class='add'>+</div><div class='add'>+	* insns.def : ditto</div><div class='add'>+</div><div class='add'>+	* intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* io.c : ditto</div><div class='add'>+</div><div class='add'>+	* lex.c : ditto</div><div class='add'>+</div><div class='add'>+	* main.c : ditto</div><div class='add'>+</div><div class='add'>+	* marshal.c : ditto</div><div class='add'>+</div><div class='add'>+	* math.c : ditto</div><div class='add'>+</div><div class='add'>+	* missing.h : ditto</div><div class='add'>+</div><div class='add'>+	* node.h : ditto</div><div class='add'>+</div><div class='add'>+	* numeric.c : ditto</div><div class='add'>+</div><div class='add'>+	* object.c : ditto</div><div class='add'>+</div><div class='add'>+	* oniguruma.h : ditto</div><div class='add'>+</div><div class='add'>+	* opt_insn_unif.def : ditto</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : ditto</div><div class='add'>+</div><div class='add'>+	* pack.c : ditto</div><div class='add'>+</div><div class='add'>+	* prec.c : ditto</div><div class='add'>+</div><div class='add'>+	* process.c : ditto</div><div class='add'>+</div><div class='add'>+	* random.c : ditto</div><div class='add'>+</div><div class='add'>+	* range.c : ditto</div><div class='add'>+</div><div class='add'>+	* re.c : ditto</div><div class='add'>+</div><div class='add'>+	* re.h : ditto</div><div class='add'>+</div><div class='add'>+	* regcomp.c : ditto</div><div class='add'>+</div><div class='add'>+	* regenc.c : ditto</div><div class='add'>+</div><div class='add'>+	* regenc.h : ditto</div><div class='add'>+</div><div class='add'>+	* regerror.c : ditto</div><div class='add'>+</div><div class='add'>+	* regex.h : ditto</div><div class='add'>+</div><div class='add'>+	* regexec.c : ditto</div><div class='add'>+</div><div class='add'>+	* regint.h : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.c : ditto</div><div class='add'>+</div><div class='add'>+	* regparse.h : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h : ditto</div><div class='add'>+</div><div class='add'>+	* rubyio.h : ditto</div><div class='add'>+</div><div class='add'>+	* rubysig.h : ditto</div><div class='add'>+</div><div class='add'>+	* signal.c : ditto</div><div class='add'>+</div><div class='add'>+	* sjis.c : ditto</div><div class='add'>+</div><div class='add'>+	* sprintf.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.h : ditto</div><div class='add'>+</div><div class='add'>+	* string.c : ditto</div><div class='add'>+</div><div class='add'>+	* struct.c : ditto</div><div class='add'>+</div><div class='add'>+	* test.rb : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : ditto</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : ditto</div><div class='add'>+</div><div class='add'>+	* time.c : ditto</div><div class='add'>+</div><div class='add'>+	* utf8.c : ditto</div><div class='add'>+</div><div class='add'>+	* util.c : ditto</div><div class='add'>+</div><div class='add'>+	* util.h : ditto</div><div class='add'>+</div><div class='add'>+	* variable.c : ditto</div><div class='add'>+</div><div class='add'>+	* version.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm.h : ditto</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : ditto</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : ditto</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto</div><div class='add'>+</div><div class='add'>+	* yarv.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarv_version.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-12(Sun) 15:53:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/abbrev.rb : added</div><div class='add'>+</div><div class='add'>+	* lib/base64.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/cgi-lib.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/csv.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/date2.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/eregex.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/ipaddr.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/chws.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/fork.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/help.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/load.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/nop.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/pushws.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/cmd/subirb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/completion.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/context.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/change-ws.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/history.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/loader.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/math-mode.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/multi-irb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/save-history.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/tracer.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/use-loader.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ext/workspaces.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/extend-command.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/frame.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/help.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/init.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/input-method.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/error.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/help-message : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/CVS/Entries : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/CVS/Repository : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/CVS/Root : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/error.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/lc/ja/help-message : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/locale.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/notifier.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/output-method.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/ruby-token.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/slex.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/version.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/workspace.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/ws-for-case-2.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/irb/xmp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/jcode.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/logger.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/mailread.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/mathn.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/parsedate.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/pathname.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/ping.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/pstore.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/resolv-replace.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/resolv.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/0.9.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/1.0.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/2.0.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/content.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/converter.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/dublincore.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/image.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/0.9.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/1.0.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/2.0.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/base.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/content.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/dublincore.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/image.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/syndication.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/taxonomy.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/maker/trackback.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/parser.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/rexmlparser.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/rss.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/syndication.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/taxonomy.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/trackback.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/utils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/xml-stylesheet.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/xmlparser.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rss/xmlscanner.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/rubyunit.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/scanf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/shell.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/singleton.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/tsort.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/weakref.rb : ditto</div><div class='add'>+</div><div class='add'>+	* eval_jump.c : removed</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-12(Sun) 15:39:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* parse.y : fix to remove including env.h</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_exception.rb : fix syntax (add 'end')</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-12(Sun) 15:14:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* env.h : removed</div><div class='add'>+</div><div class='add'>+	* common.mk : remove env.h dependency</div><div class='add'>+</div><div class='add'>+	* compile.c, eval_intern.h : remove include env.h</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.h, gc.c, error.c : remove T_SCOPE, T_VARMAP</div><div class='add'>+</div><div class='add'>+	* parse.y, eval.c : use rb_parse_in_eval() instead of ruby_in_eval</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h : add a prase_in_eval member to yarv_thread_t</div><div class='add'>+</div><div class='add'>+	* insns.def : add push value to throw instruction</div><div class='add'>+	for stack consistency</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_exception.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb : fix typo</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-12(Sun) 05:05:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, eval_load.c, eval_proc.c, node.h,</div><div class='add'>+	insnhelper.h, insns.def, vm.c, yarvcore.c, yarvcore.h : </div><div class='add'>+	change cref data structure and unify ruby_class and ruby_cbase</div><div class='add'>+	and some refoctoring</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-11(Sat) 23:41:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (methoddef) : fix method declaration in method</div><div class='add'>+</div><div class='add'>+	* thread.c : Thread.critical to show warning (no effect)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-11(Sat) 20:20:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix [yarv-dev:831]</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-11(Sat) 14:29:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/mklog.rb : use svk</div><div class='add'>+</div><div class='add'>+	* error.c : remove newline</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_block_call) : added</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove some unused functions, comments</div><div class='add'>+</div><div class='add'>+	* thread.c : add comments (move from eval_thread.c) and support Mutex</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_select) : supported</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h (native_mutex_trylock) : added (macro)</div><div class='add'>+</div><div class='add'>+	* thread_win32.h (native_mutex_trylock) : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove unused code</div><div class='add'>+</div><div class='add'>+	* array.c : import ruby 1.9</div><div class='add'>+</div><div class='add'>+	* compar.c : ditto</div><div class='add'>+</div><div class='add'>+	* dln.c : ditto</div><div class='add'>+</div><div class='add'>+	* enum.c : ditto</div><div class='add'>+</div><div class='add'>+	* enumerator.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/digest/digest.h : ditto</div><div class='add'>+</div><div class='add'>+	* ext/digest/sha2/sha2.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/etc/etc.c : ditto</div><div class='add'>+</div><div class='add'>+	* ext/win32ole/win32ole.c : ditto</div><div class='add'>+</div><div class='add'>+	* hash.c : ditto</div><div class='add'>+</div><div class='add'>+	* intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* io.c : ditto</div><div class='add'>+</div><div class='add'>+	* main.c : ditto</div><div class='add'>+</div><div class='add'>+	* missing.h : ditto</div><div class='add'>+</div><div class='add'>+	* missing/flock.c : ditto</div><div class='add'>+</div><div class='add'>+	* missing/isinf.c : ditto</div><div class='add'>+</div><div class='add'>+	* missing/vsnprintf.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/complex.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/delegate.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/erb.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/matrix.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/mkmf.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/optparse.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/ostruct.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/pp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/timeout.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/tmpdir.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/test/unit/autorunner.rb : ditto</div><div class='add'>+</div><div class='add'>+	* node.h : ditto</div><div class='add'>+</div><div class='add'>+	* object.c : ditto</div><div class='add'>+</div><div class='add'>+	* parse.y : ditto</div><div class='add'>+</div><div class='add'>+	* ruby.c : ditto</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : ditto</div><div class='add'>+</div><div class='add'>+	* sprintf.c : ditto</div><div class='add'>+</div><div class='add'>+	* st.c : ditto</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_whileuntil.rb : ditto</div><div class='add'>+</div><div class='add'>+	* test/runner.rb : ditto</div><div class='add'>+</div><div class='add'>+	* time.c : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/.document : added</div><div class='add'>+</div><div class='add'>+	* lib/net/ftp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/http.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/https.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/imap.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/pop.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/protocol.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/smtp.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/net/telnet.rb : ditto</div><div class='add'>+</div><div class='add'>+	* lib/open-uri.rb : ditto</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-10(Fri) 08:07:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def, yarvcore.h : support defined?(private_method) and</div><div class='add'>+	defined?(protected_method) (separate DEFINE_METHOD / DEFINE_FUNC)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syntax.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each) : fix NODE_RETURN bug</div><div class='add'>+	(double ensure invoke)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* eval.c (get_errinfo) : fix to search $!</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_exception.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* eval_safe.h : support $SAFE</div><div class='add'>+</div><div class='add'>+	* ext/socket/socket.c : import ruby 1.9</div><div class='add'>+</div><div class='add'>+	* gc.c (gc_mark_children) : fix making T_VALUE</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb : use GC.stress</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandler) : send interrupt signal if thread blocked</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb : remove assert false</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb : change fail message</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : remove assert false</div><div class='add'>+</div><div class='add'>+	* thread.c (thread_start_func_2) : set local_lfp/local_svar</div><div class='add'>+	at thread creation</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : export native_thread_interrupt</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : export native_thread_interrupt</div><div class='add'>+</div><div class='add'>+	* version.h : import ruby 1.9</div><div class='add'>+</div><div class='add'>+	* vm.c (lfp_svar), yarvcore.h : fix to use Thread local svar</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub : import ruby 1.9</div><div class='add'>+</div><div class='add'>+	* win32/dir.h : ditto</div><div class='add'>+</div><div class='add'>+	* win32/setup.mak : ditto</div><div class='add'>+</div><div class='add'>+	* win32/win32.c : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : fix to remove using ARGV</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-10(Fri) 01:04:58 +0900  Yukihiro Matsumoto  &lt;matz@ruby-lang.org&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_call_finalizer_at_exit): turn on during_gc while</div><div class='add'>+	  invoking finalizers.</div><div class='add'>+</div><div class='add'>+	* gc.c (rb_gc_finalize_deferred): ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-08(Wed) 23:17:44 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: method names were wrongly duplicated.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-08(Wed) 21:30:01 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* ext/nkf: added (imported from ruby CVS trunk HEAD).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/depend: new file (rev 1.5).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/extconf.rb: new file (rev 1.2).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf.c: new file (rev 1.12).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/test.rb: new file (rev 1.7).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/nkf.c: new file (rev 1.17).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/config.h: new file (rev 1.4).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/nkf-utf8/utf8tbl.c: new file (rev 1.6).</div><div class='add'>+</div><div class='add'>+	* ext/nkf/lib/kconv.rb: new file (rev 1.13).</div><div class='add'>+</div><div class='add'>+	* test/nkf: added (imported from ruby CVS trunk HEAD).</div><div class='add'>+</div><div class='add'>+	* test/nkf/test_kconv.rb: new file (rev 1.1).</div><div class='add'>+</div><div class='add'>+	* test/nkf/test_nkf.rb: new file (rev 1.1).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-08(Wed) 21:07:36 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/find.rb: new file (imported from ruby CVS trunk HEAD,</div><div class='add'>+	  rev 1.15).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-07(Tue) 17:58:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support BEGIN{} and add preexe instruction</div><div class='add'>+</div><div class='add'>+	* insns.def : fix getspecial/setspecial instructions</div><div class='add'>+	to catch up svar change</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb : remove stopper</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_fd_writable) : add a debug output</div><div class='add'>+</div><div class='add'>+	* thread.c (rb_thread_wait_fd) : add a debug output</div><div class='add'>+</div><div class='add'>+	* vm.c (lfp_svar) : refactoring and fix some problems</div><div class='add'>+</div><div class='add'>+	* vm_dump.c (yarv_bug) : add branch</div><div class='add'>+</div><div class='add'>+	* yarv.h : remove unused declarations</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (vm_free) : VM object should not free by GC</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-07(Tue) 14:42:25 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_load.c : remove rb_thread_start_1()</div><div class='add'>+</div><div class='add'>+	* eval.c : fix some prototypes and indents</div><div class='add'>+</div><div class='add'>+	* eval_thread.c, thread.c : move some functions</div><div class='add'>+	from eval_thread.c to thread.c</div><div class='add'>+</div><div class='add'>+	* signal.c (sighandler) : add line braek in error message</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h, thread.c : support ThreadGroup</div><div class='add'>+</div><div class='add'>+	* ruby.h, gc.c, vm.c : make new basic type RValue and T_VALUE.</div><div class='add'>+	RValue includes three values in itself.  RValue is used as</div><div class='add'>+	svar</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-06(Mon) 23:51:41 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: import many tests from rubicon.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-04(Sat) 18:36:41 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: import many tests from rubicon.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-04(Sat) 17:47:44 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb (test_exit_action): lib/timeout.rb is</div><div class='add'>+	  not implemented yet.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-04(Sat) 17:42:31 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb: lib/timeout.rb is not implemented</div><div class='add'>+	  yet.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-04(Sat) 16:22:38 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pipe.rb: remove useless require.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb: turn off the test case which causes</div><div class='add'>+	  segmentation fault (tmp).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-04(Sat) 08:19:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add dependency to yarvcore.h on signal.o</div><div class='add'>+</div><div class='add'>+	* compile.c (iseq_compile_each) : fix [yarv-dev:795] problem</div><div class='add'>+	(prohibit "break", "next" jump from eval)</div><div class='add'>+</div><div class='add'>+	* eval.c : fix indent</div><div class='add'>+</div><div class='add'>+	* eval_thread.c, thread.c : remove some functions and move to thread.c</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : fix [yarv-dev:799] and [yarv-dev:800]</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb : remove GC.debug_flag control</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb : disable</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb : disable</div><div class='add'>+</div><div class='add'>+	* thread.c : fix thread_debug() and many bugs</div><div class='add'>+</div><div class='add'>+	* thread.c (yarv_thread_s_new) : move living_threads setting</div><div class='add'>+</div><div class='add'>+	* thread.c (yarv_thread_join) : fix</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : add type native_thread_data_t (dummy)</div><div class='add'>+	and support interrupt blocking thread</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h (native_thread_apply_priority) : added</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : add type native_thread_data_t (dummy)</div><div class='add'>+	and support interrupt blocking thread</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : use win32 thread system on cygwin and fix</div><div class='add'>+	some struct members</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_thread.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-03(Fri) 00:08:09 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: import many tests from rubicon.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-02(Thu) 23:20:13 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/envutil.rb: new file (imported from ruby trunk HEAD).</div><div class='add'>+</div><div class='add'>+	* test/ruby/marshaltestlib.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_array.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_beginendblock.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_clone.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_dir.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_env.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_file.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_float.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_fnmatch.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_hash.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_io.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_marshal.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_math.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pack.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_path.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_pipe.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_rand.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_range.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_readpartial.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_regexp.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_settracefunc.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_signal.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_sprintf.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_string.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_stringchar.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_struct.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_symbol.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_system.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_time.rb: ditto.</div><div class='add'>+</div><div class='add'>+	* test/ruby/ut_eof.rb: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-02(Thu) 22:53:44 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: test [yarv-dev:777].</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-02-01(Wed) 03:51:39 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* gc.c : add GC.debug_flag= method</div><div class='add'>+</div><div class='add'>+	* insns.def : support method definition in method</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-29(Sun) 11:40:26 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_proc.c (proc_alloc) : fix [yarv-dev:777]</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_proc.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* insns.def : fix [yarv-dev:782] and add YARV_CHECK_INTS()</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : fix [yarv-dev-en:23]</div><div class='add'>+</div><div class='add'>+	* vm.c (th_call0) : add YARV_CHECK_INTS()</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-09(Mon) 11:56:34 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h: add prototype (remove warning).</div><div class='add'>+</div><div class='add'>+	* vm.c (th_invoke_proc): make save variables volatile.</div><div class='add'>+</div><div class='add'>+	* eval.c (eval): initialize local variables (remove warnings).</div><div class='add'>+</div><div class='add'>+	* eval_thread.c (rb_exec_recursive): ditto.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (thread_mark): ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c (th_invoke_proc): ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: remove useless prototypes.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-09(Mon) 10:25:12 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_thread.c: rb_thread_join is required to build ruby on</div><div class='add'>+	  Linux.</div><div class='add'>+</div><div class='add'>+	* compile.c: unify coding style.</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-06(Fri) 09:21:34 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c: coding style change only.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-04(Wed) 14:12:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (ruby_init), eval_intern.h : use POP_TAG_INIT() at bootstrap</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove unused functions and comments</div><div class='add'>+</div><div class='add'>+	* intern.h : expose rb_make_exception()</div><div class='add'>+</div><div class='add'>+	* signal.c : support signal</div><div class='add'>+</div><div class='add'>+	* thread.c (yarv_thread_execute_interrupts) : added</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h (thread_timer) : set interrupt_flag of</div><div class='add'>+	current runnning threads</div><div class='add'>+</div><div class='add'>+	* vm.c (th_invoke_proc) : jump with JUMP_TAG() if some exception</div><div class='add'>+	occurres</div><div class='add'>+</div><div class='add'>+	* yarv.h : add yarv_set_current_running_thread_raw() for bootstrap</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add yarv_segv() and segv() method for test</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (Init_yarvcore) : set yarv_thread_t#running_thread</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix yarv_thread_t members</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-03(Tue) 22:25:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* disasm.c (insn_operand_intern) : fix to add child iseq</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c : remove obsolete static variables (ruby_scope,</div><div class='add'>+	ruby_dyna_vars, ruby_frame)</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_mod_s_constants) : use ruby_cref()</div><div class='add'>+</div><div class='add'>+	* eval.c (eval) : use th_restore_klass()</div><div class='add'>+</div><div class='add'>+	* eval_proc.c (rb_f_binding) : use th_store_klass()</div><div class='add'>+</div><div class='add'>+	* insns.def (concatarray) : fix insn ([expr, *nil] =&gt; [expr])</div><div class='add'>+</div><div class='add'>+	* vm.c (th_set_env), insnhelper.h : remove macro</div><div class='add'>+</div><div class='add'>+	* vm.c (eval_get_cvar_base) : use get_cref</div><div class='add'>+</div><div class='add'>+	* vm.c (th_make_proc) : use th_store_klass()</div><div class='add'>+</div><div class='add'>+	* vm_macro.def (macro_eval_invoke_func) : fix option args size</div><div class='add'>+</div><div class='add'>+	* vm_macro.def (macro_eval_invoke_func) : raise stack overflow error</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add yarv_stored_klass_t type</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix mark functions around yarv_stored_klass_t</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-01(Sun) 05:14:26 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/benchmark.rb: new file (imported from original ruby, rev</div><div class='add'>+	  1.10).</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-01(Sun) 03:51:10 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c: add prototype.</div><div class='add'>+</div><div class='add'>+	* re.c: remove warning: long -&gt; unsigned long.</div><div class='add'>+</div><div class='add'>+	* debug.c: adjust coding style.</div><div class='add'>+</div><div class='add'>+	* yarv.h: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-01(Sun) 03:43:33 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* variable.c: add prototype.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_load.c: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2006-01-01(Sun) 02:41:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add address analyse to vtune rule</div><div class='add'>+</div><div class='add'>+	* rb/vtlh.rb : added for above</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb, template/vm.inc.tmpl : insert #line directive</div><div class='add'>+	to reference above</div><div class='add'>+</div><div class='add'>+	* vm_macro.def (macro_eval_invoke_cfunc) : fix indent</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : fix indent, spacing</div><div class='add'>+	and add a test for alias</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-31(Sat) 12:42:05 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add Intel VTune rule (make vtune)</div><div class='add'>+</div><div class='add'>+	* eval.c, yarvcore.h : fix to remove yarv_thread_t#local_*</div><div class='add'>+</div><div class='add'>+	* parse.y (top_local_init_gen) : fix a problem ([yarv-dev:765])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_eval.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_eval) :remove unused function</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (Init_yarvcore) : remove YARVCore::Thread::eval method</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (thread_eval) : remove unused function</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-31(Sat) 06:05:00 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (eval_search_super_klass) : pass block to method missing</div><div class='add'>+</div><div class='add'>+	* vm_macro.def (macro_eval_invoke_method) : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-31(Sat) 03:11:14 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c (eval), eval_proc.c (rb_f_binding) : save klass, etc to</div><div class='add'>+	binding and use it at eval</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : ditto</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_eval.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (th_get_special_cref) : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add a prototype of above</div><div class='add'>+</div><div class='add'>+	* vm.c (th_get_cref) : refactoring</div><div class='add'>+</div><div class='add'>+	* vm.c (eval_get_ev_const) : fix SEGV at A::B (A is not class/module)</div><div class='add'>+	([yarv-dev:758])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* rb/mklog.rb : use external diff command and show function name</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-30(Fri) 19:07:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h, eval.c, eval_proc.c : support</div><div class='add'>+	Ruby's Binding</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : support TOPLEVEL_BINDING</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_eval.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-30(Fri) 13:12:28 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: more tests for</div><div class='add'>+	  module_eval/instance_eval.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-30(Fri) 05:06:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add dependency (yarvcore.h) for gc.c</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, eval_load.c, eval_method.h,</div><div class='add'>+	insns.def, insnhelper.h, vm.c, yarvcore.c, yarvcore.h :</div><div class='add'>+	re-write class reference</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_eval.rb : added</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_proc.rb : </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-29(Thu) 12:27:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h :</div><div class='add'>+	remvoe needless yarv_iseq_t#rewind_frame_size</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-29(Thu) 11:17:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add dependency to test-all rule</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_sourceline), vm.c (th_get_sourceline) :</div><div class='add'>+	fix to skip process if iseq is ifunc</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb : assert(fail, ...) instead of assert_fail</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb : ditto</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : fix stack dump (iseq name)</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : store proc (block proc) to cfp#proc for GC mark</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : mark above on thread_mark</div><div class='add'>+</div><div class='add'>+	* eval.c (exec_under) : replace block#self ([yarv-dev:751])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-29(Thu) 01:56:46 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : fix setting of Proc cref ([yarv-dev:741])</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix indent</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-29(Thu) 00:17:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* disasm.c : show (block) local variable simple (not as symbol)</div><div class='add'>+</div><div class='add'>+	* gc.c : fix syntax error</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-28(Wed) 23:35:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* class.c (method_entry) : fixed for undefed method ([yarv-dev:743])</div><div class='add'>+</div><div class='add'>+	* compile.c : fix errinfo dvar id (#$!)</div><div class='add'>+	and fix NODE_ERRINFO compilation</div><div class='add'>+</div><div class='add'>+	* eval_proc.c, yarvcore.c : support YARVCore::VM::Proc.new</div><div class='add'>+</div><div class='add'>+	* insns.def : remove useless TODO comments</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to use strict array conversion on</div><div class='add'>+	checkarrayinclude</div><div class='add'>+</div><div class='add'>+	* insns.def : fix defined?(yield) ([yarv-dev:744])</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : change yarv_iseq_t layout</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-28(Wed) 16:49:55 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: add TODO comment.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: rename YARVCore::VM::Proc -&gt; Proc</div><div class='add'>+	  (tmp).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: use assert_fail.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-28(Wed) 16:28:35 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_clone.rb: removed (tmp).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: define missing method Object#funcall</div><div class='add'>+	  (tmp).</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: turn off tests for "-&gt;".</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: turn off tests for |&amp;b|.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: turn off tests for $SAFE setter.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-28(Wed) 15:31:46 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix calculation of stack_max</div><div class='add'>+</div><div class='add'>+	* eval.c (rb_iter) : fix block/retry handling</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* insns.def : fix block passing on super (super(&amp;nil))</div><div class='add'>+</div><div class='add'>+	* vm_macro.def, insns.def : fix convert method of object to array</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : fix a test for above</div><div class='add'>+</div><div class='add'>+	* vm.c : fix backtrace generate algorithm</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-28(Wed) 10:36:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h : refactoring (remove self passing, etc)</div><div class='add'>+</div><div class='add'>+	* disasm.c : support showing ID of method/dynamic local variables</div><div class='add'>+</div><div class='add'>+	* rb/allload.rb : add verbose version (it's enable by $DEBUG)</div><div class='add'>+</div><div class='add'>+	* template/insns.inc.tmpl, template/insns_info.inc.tmpl,</div><div class='add'>+	template/minsns.inc.tmpl, template/opt_sc.inc.tmpl,</div><div class='add'>+	template/optinsn.inc.tmpl, template/optunifs.inc.tmpl,</div><div class='add'>+	template/vmtc.inc.tmpl : fix a comment</div><div class='add'>+</div><div class='add'>+	* variable.c (mod_av_set) : fix to clear inline cache ([yarv-dev:720])</div><div class='add'>+</div><div class='add'>+	* eval_method.h : fix to clear inline method cache</div><div class='add'>+</div><div class='add'>+	* vm.c, rb/insns2vm.rb, template/insns_info.inc.tmpl, compile.c,</div><div class='add'>+	insns.def, vm_evalbody.h, vm_macro.def :</div><div class='add'>+	fix operands types (ulong -&gt; num_t, ...)</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix to check SPECIAL_CONST_P() at splat array</div><div class='add'>+	([yarv-dev:722])</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix to throw syntax error</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, eval.c, eval_error.h, eval_jump.h :</div><div class='add'>+	add yarv_vm_t#exit_code to fix problem at cleanup ([yarv-dev:723])</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to invoke zsuper in method defined by define_method</div><div class='add'>+	([yarv-dev:704])</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : fix comments</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-27(Tue) 01:52:07 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, intern.h, insns.def : expose rb_ary_replace and use it</div><div class='add'>+	in insns.def</div><div class='add'>+</div><div class='add'>+	* eval.c : fix to use SCOPE_* to NOEX_*</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : remove SCOPE_*</div><div class='add'>+	and fix SCOPE_TEST() and SCOPE_SET(f)</div><div class='add'>+</div><div class='add'>+	* eval_load.c : save and store klass and visibility</div><div class='add'>+	at require and load</div><div class='add'>+</div><div class='add'>+	* eval_method.h : fix undefed method node ([yarv-dev-en:8])</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : fix define_method ([yarv-dev:704])</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, vm.h : remove GET_VM_STATE_VERSION(),</div><div class='add'>+	INC_VM_STATE_VERSION() and move these to vm.h</div><div class='add'>+</div><div class='add'>+	* insns.def : supportintg visibility</div><div class='add'>+</div><div class='add'>+	* node.h : remove NOEX_RECV</div><div class='add'>+</div><div class='add'>+	* variable.c, vm.c : add rb_vm_change_state() and use it in</div><div class='add'>+	remove_const</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def, yarvcore.h, yarvcore.c : add eval_push_cref(),</div><div class='add'>+	eval_pop_cref() and th_cref_init to manage current visibility</div><div class='add'>+</div><div class='add'>+	* yarv.h : add a prototype of rb_vm_change_state()</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, insns.def : add defined_method_id and support</div><div class='add'>+	super in define_method scope</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 20:44:38 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_basicinstructions.rb: new file.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 08:40:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c (eval_get_ev_const) : fix to skip nil</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 08:27:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : fix GET_CVAR_EV_KLASS [yarv-dev:703]</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 07:51:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : add emptstack insn for all NODE_RETURN</div><div class='add'>+	and optimize it if it's not needed</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 07:08:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, gc.c : add "gc_debug_flag" to debug gc</div><div class='add'>+</div><div class='add'>+	* insns.def : add emptstack</div><div class='add'>+</div><div class='add'>+	* compile.c, rb/insns2vm.rb, template/insns_info.inc.tmpl :</div><div class='add'>+	change interface of insn_stack_increase</div><div class='add'>+</div><div class='add'>+	* compile.c : fix return from ensure in method [yarv-dev:702]</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 02:15:02 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_alias.rb: do not use unimplemented defined?.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-26(Mon) 02:00:11 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/runner.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_alias.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_clone.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_eval.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_iterator.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_lambda.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_proc.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_super.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_assignment.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_bignum.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_call.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_case.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_condition.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_const.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_defined.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_exception.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_gc.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_ifunless.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_method.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_trace.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_variable.rb: new file.</div><div class='add'>+</div><div class='add'>+	* test/ruby/test_whileuntil.rb: new file.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-25(Sun) 07:40:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, compile.c : fix block inlining</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix to support tracing stack depth</div><div class='add'>+	with operands unification</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : fix to print Qundef on stack dump</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-25(Sun) 01:45:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c, rb/insns2vm.rb, template/insns_info.inc.tmpl : </div><div class='add'>+	trace stack depth at compile time</div><div class='add'>+	and use it  as cont_sp for exception handling</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_exception.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : ditto</div><div class='add'>+</div><div class='add'>+	* Merry Xmas :)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-24(Sat) 19:34:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h : fix ADD_CATCH_ENTRY and add LABEL#sp</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : fix catch to remove illegal error</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-24(Sat) 09:05:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_method.h : change data structure for RClass#m_tbl</div><div class='add'>+</div><div class='add'>+	* class.c, eval.c, eval_proc.c : fix for above changes</div><div class='add'>+</div><div class='add'>+	* node.h, gc.c : change NODE_FBODY, NODE_METHOD members</div><div class='add'>+	for above changes</div><div class='add'>+</div><div class='add'>+	* insns.def : support private/protected visibility</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : ditto</div><div class='add'>+</div><div class='add'>+	* vm.c : ditto</div><div class='add'>+</div><div class='add'>+	* thread.c : fix typo</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : fix typo</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : fix typo</div><div class='add'>+</div><div class='add'>+	* eval.c, yarvcore.h : add yarv_thread_t#method_missing_reason</div><div class='add'>+	to pass method_missing reason and use it to build error message</div><div class='add'>+</div><div class='add'>+	* compile.c : use ADD_CALL instead of ADD_SEND for</div><div class='add'>+	NODE_X(D)STR, NODE_CONST (func)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-22(Thu) 02:45:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv_version.h, Changes : 0.3.3</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-20(Tue) 04:04:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix self::Const access</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-20(Tue) 01:52:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to expand VALUES value</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_massign.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-20(Tue) 01:32:35 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, insnhelper.h : fix cvar in singleton method/class</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-20(Tue) 01:03:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h : support all defined?() syntax</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_COLON2 </div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add or fix tests for above</div><div class='add'>+</div><div class='add'>+	* win32/* : update all</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-17(Sat) 10:46:08 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_macro.def: fix printf type mismatch for LP64 system (again).</div><div class='add'>+</div><div class='add'>+	* parse.y: introduce descriptive macro for special values of</div><div class='add'>+	  lvtbl-&gt;dvars.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-17(Sat) 09:39:27 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_macro.def (macro_eval_invoke_method): fix printf type mismatch</div><div class='add'>+	  for LP64 system.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-14(Wed) 03:49:40 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : change rescue/ensure iseq name</div><div class='add'>+</div><div class='add'>+	* eval.c, intern.h : fix a prototype</div><div class='add'>+</div><div class='add'>+	* insns.def, yarvcore.h : add trace_function</div><div class='add'>+</div><div class='add'>+	* vm.c : fix deadly bug (illegal pointer cast)</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : remove unused local variables</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : add parameter size check</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : comment out 2 assertions</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-13(Tue) 03:55:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : fix indent</div><div class='add'>+</div><div class='add'>+	* insns.def : fix getspecial instruction to return nil</div><div class='add'>+	if no entry</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syntax.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* lib/un.rb : added</div><div class='add'>+</div><div class='add'>+	* template/*.tmpl : fix typo</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-13(Mon) 01:38:17 +0900  Minero Aoki  &lt;aamine@loveruby.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv.h: add prototypes.</div><div class='add'>+</div><div class='add'>+	* intern.h: ditto.</div><div class='add'>+</div><div class='add'>+	* eval.c: ditto.</div><div class='add'>+</div><div class='add'>+	* debug.c: ditto.</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h: fix printf type mismatch for LP64 system</div><div class='add'>+	  (Linux/AMD64).</div><div class='add'>+</div><div class='add'>+	* variable.c: ditto.</div><div class='add'>+</div><div class='add'>+	* object.c: ditto.</div><div class='add'>+</div><div class='add'>+	* gc.c: ditto.</div><div class='add'>+</div><div class='add'>+	* process.c: ditto.</div><div class='add'>+</div><div class='add'>+	* error.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* vm.h: ditto.</div><div class='add'>+</div><div class='add'>+	* vm_dump.c: ditto.</div><div class='add'>+</div><div class='add'>+	* disasm.c: ditto.</div><div class='add'>+</div><div class='add'>+	* marshal.c: ditto.</div><div class='add'>+</div><div class='add'>+	* eval_thread.c: ditto.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-11(Sun) 22:00:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : call "inherited" method when a class is inherited</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix yarv_iseq_t field layout</div><div class='add'>+</div><div class='add'>+	* common.mk : add dependence on yarvcore.h to eval*.o files</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_POSTEXE logic</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : use GC_GUARDED_PTR_REF instead of magic number</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : fix indent</div><div class='add'>+</div><div class='add'>+	* configure : re-autoconf</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-10(Sat) 03:57:20 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : fix blockinlining.o build rule</div><div class='add'>+</div><div class='add'>+	* insns.def : remove logic for zsuper</div><div class='add'>+</div><div class='add'>+	* template/optinsn.inc.tmpl : </div><div class='add'>+</div><div class='add'>+	* vm.c : remove thread_yield_light_prepare, thread_yield_light_invoke</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_ZSUPER with optargs, restarg</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-09(Fri) 01:13:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, numeric.c, range.c : add prototype of</div><div class='add'>+	block inlining function</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, vm_opts.h.base : add block inlining flag </div><div class='add'>+</div><div class='add'>+	* common.mk, debug.h, debug.c : add debug_breakpoint() for gdb</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to use size_t on compile_data_alloc(),</div><div class='add'>+	fix illegal cast, fix to set arg_simple at compiling block,</div><div class='add'>+</div><div class='add'>+	* compile.c, vm.c : fix NODE_NEXT, NODE_BREAK logic</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h, compile.c, eval.c : remove</div><div class='add'>+	yarv_iseq_t#root_iseq and add yarv_iseq_t#local_iseq and fix</div><div class='add'>+	to use this member field</div><div class='add'>+</div><div class='add'>+	* eval_method.h : fix indent</div><div class='add'>+</div><div class='add'>+	* gc.c : fix indent</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : remove "zsuper" instruction (use "super"</div><div class='add'>+	instead).  This is because NODE_ZSUPER represent with only "super"</div><div class='add'>+	instruction</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add proc_arity</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-05(Mon) 03:58:30 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* array.c, blockinlining.c : support block inlining for Array#each</div><div class='add'>+</div><div class='add'>+	* disasm.c : fix catch table format</div><div class='add'>+</div><div class='add'>+	* insns.def : fix stack consistency error message</div><div class='add'>+</div><div class='add'>+	* vm.c : fix to skip pushing value at "next"</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : move definision of </div><div class='add'>+	"struct iseq_compile_data_ensure_node_stack" to compile.c</div><div class='add'>+</div><div class='add'>+	* compile.c : fix ensure catch table creation</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_flow.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-03(Sat) 22:27:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, compile.c, yarvcore.c, yarvcore.h,</div><div class='add'>+	numeric.c, range.c : collect block inlining logic to blockinlining.c</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-12-03(Sat) 20:24:07 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* blockinlining.c, common.mk : add blockinlining.c</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h, blockinlining.c, compile.c, compile.h,</div><div class='add'>+	gc.c, node.h, numeric.c, range.c :</div><div class='add'>+	support block inlining for Integer#times, Range#each</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to set block redo/next point at last,</div><div class='add'>+	and fix NODE_OP_ASGN1</div><div class='add'>+</div><div class='add'>+	* compile.c, vm.c : add specialized instruction "opt_le"</div><div class='add'>+</div><div class='add'>+	* disasm.c : fix to show block, and to show catch type as string</div><div class='add'>+	and change node_name logic</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : fix function type declaration</div><div class='add'>+</div><div class='add'>+	* insns.def : add instruction "putundef", "opt_checkenv"</div><div class='add'>+	to support block inlining and add stack check routine</div><div class='add'>+</div><div class='add'>+	* lib/cgi.rb : add global variable $CGI_DONTINPUT</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : add some operand unification rules</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix operand unification logic for BLOCKISEQ</div><div class='add'>+</div><div class='add'>+	* vm.c : fix exception handling routine (collect stack operations)</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix macro_eval_invoke_bmethod</div><div class='add'>+</div><div class='add'>+	* yarvsubst.c : removed</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syn.rb : rename to yarvtest/test_syntax.rb</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : remove tempfile explicitly</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-30(Wed) 01:13:57 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add vm_opts.h rule</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def : fix proc creation under class and block</div><div class='add'>+	environment</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-29(Tue) 16:39:07 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_proc.c, vm.c, vm_macro.def : </div><div class='add'>+	support define_method and invoke NODE_BMETHOD method</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-29(Tue) 13:18:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : add iseq_add_mark_object, iseq_add_mark_object_compile_time</div><div class='add'>+	and use it to mark objects on iseq</div><div class='add'>+</div><div class='add'>+	* compile.h, compile.c : remove cast on NEW_CHILD_ISEQVAL, NEW_ISEQVAL</div><div class='add'>+	and interface</div><div class='add'>+</div><div class='add'>+	* compile.c, disasm.c, insns.def, vm_macro.def, rb/insns2vm.rb :</div><div class='add'>+	add BLOCKISEQ parameter type</div><div class='add'>+</div><div class='add'>+	* gc.c : fix garbage_collect to return true if only allocate memory</div><div class='add'>+</div><div class='add'>+	* vm.c : fix insertion order of proc/env</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : add typedef yarv_iseq_t *BLOCKISEQ</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.c : add idTimes</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix proc_mark, env_mark around iseq mark</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-28(Mon) 09:02:57 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def, vm_evalbody.h : support super</div><div class='add'>+	with splat argument and block (and zsuper with block)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_class.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h, yarvcore.c, insns.def, time.c, string.c :</div><div class='add'>+	add opt_succ insn</div><div class='add'>+</div><div class='add'>+	* eval_method.h : fix indent</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : apply cast to vanish a warning</div><div class='add'>+</div><div class='add'>+	* lib/tempfile.rb, lib/tmpdir.rb : added</div><div class='add'>+</div><div class='add'>+	* vm.c : eval_method_missing added</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : refactoring</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-21(Mon) 21:21:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h, yarvcore.c : remove "iseqobj"</div><div class='add'>+	variables and rename to "iseq"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-21(Mon) 07:31:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix block parameter error</div><div class='add'>+</div><div class='add'>+	* ext/* : added</div><div class='add'>+</div><div class='add'>+	* lib/optparse* : added</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_sieve.rb : fix parameter</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-21(Mon) 03:47:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : optimize condition in literal</div><div class='add'>+</div><div class='add'>+	* thread_win32.h : fix win32 thread function prototype</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-20(Sun) 17:58:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_AND/OR bug</div><div class='add'>+</div><div class='add'>+	* eval.c : support rb_frame_this_func()</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-20(Sun) 12:32:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.c, yarvcore.h : support NODE_OPT_N</div><div class='add'>+</div><div class='add'>+	* compile.h : add macro ADD_CALL</div><div class='add'>+</div><div class='add'>+	* debug.c : add debug_v() and change to use only printf</div><div class='add'>+	on debug_id()</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : </div><div class='add'>+</div><div class='add'>+	* vm.c : fix make_proc_from_block</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-19(Sat) 14:55:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* import ruby 1.9.0 (2005-11-18)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-19(Sat) 06:08:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/test : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-19(Sat) 05:48:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : useless jump elimination (if/unless destination)</div><div class='add'>+</div><div class='add'>+	* eval.c : rb_iter_break support,</div><div class='add'>+	 fix rb_iterate (clear errinfo if break)</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : support rb_node_arity (YARV_METHOD_NODE)</div><div class='add'>+</div><div class='add'>+	* insns.def : change variable name</div><div class='add'>+</div><div class='add'>+	* vm.c : fix th_invoke_yield and add th_iter_break()</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : fix yarv_bug()</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix proc_mark to check IFUNC node and add</div><div class='add'>+	global ruby method SDR() for debug</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syn.rb : add a test for all condition combination</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-15(Tue) 05:52:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/forwardable.rb : added</div><div class='add'>+</div><div class='add'>+	* common.mk : remove "vm.o : CFLAGS += -fno-crossjumping" rule</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h, insns.def : add FCALL/VCALL flag</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : add onceinlinecache instruction</div><div class='add'>+</div><div class='add'>+	* eval.c : support $!, $@, raise (== raise $!)</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : add some unification rule (send flags)</div><div class='add'>+</div><div class='add'>+	* vm.c : fix return process</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix option prameters</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-15(Tue) 00:42:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : support rb_frame_pop() and rb_frame_callee(),</div><div class='add'>+	add rb_sourcefile(), rb_sourceline(),</div><div class='add'>+	</div><div class='add'>+</div><div class='add'>+	* compile.c : support postposition while/until,</div><div class='add'>+	fix block parameter index</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syn.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix env_mark</div><div class='add'>+</div><div class='add'>+	* vm.h, yarvcore.h : move vm.h#cmethod_info to</div><div class='add'>+	 yarvcore.h#yarv_cmethod_info</div><div class='add'>+</div><div class='add'>+	* vm.c : add th_get_sourceline()</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : fix PASS_PASSED_BLOCK()</div><div class='add'>+</div><div class='add'>+	* eval_load.c : fix re-enter require (temporalily)</div><div class='add'>+</div><div class='add'>+	* insns.def : permit re-open class when superclass is same</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-11(Fri) 01:20:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : add "allload" rule</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h, insns.def, vm_macro.def, disasm.c :</div><div class='add'>+	change arg_rest, arg_block offset (1)</div><div class='add'>+</div><div class='add'>+	* insns.def : add postexe instruction</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : support rest block parameter</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_block.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* rb/allload.rb : get path from ARGV</div><div class='add'>+</div><div class='add'>+	* vm_opts.h.base : set default off</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-01(Tue) 08:28:19 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/other-lang/eval.rb : fix path</div><div class='add'>+</div><div class='add'>+	* lib/English.rb, lib/cgi.rb, lib/complex.rb, lib/delegate.rb : </div><div class='add'>+	added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-11-01(Tue) 08:18:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : push and pop values after checkincludearray for</div><div class='add'>+	stack caching</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-31(Mon) 15:37:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_mandelbrot.rb : added</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_app_factorial.rb : fixed parameter</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_count_words.rb, benchmark/run_rite.rb : use</div><div class='add'>+	real file</div><div class='add'>+</div><div class='add'>+	* common.mk : add "ext" rule, add some dependencies and add option</div><div class='add'>+	to bench-each rule (renamed from bench-item)</div><div class='add'>+</div><div class='add'>+	* compile.c : fix get_root_iseq_object (check iseq type),</div><div class='add'>+	support splat case/when. support //o (regexp)</div><div class='add'>+</div><div class='add'>+	* eval.c : support *_eval, fix rb_obj_call_init to pass block</div><div class='add'>+</div><div class='add'>+	* eval_jump.h : support throw/catch</div><div class='add'>+</div><div class='add'>+	* eval_load.c : save klass_nest_stack when require</div><div class='add'>+</div><div class='add'>+	* eval_method.h : fix ruby_cbase()</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : GET_EV_KLASS checks toplevel or not</div><div class='add'>+</div><div class='add'>+	* insns.def, yarvcore.c : fix singleton method definition and fix</div><div class='add'>+	super class's method</div><div class='add'>+</div><div class='add'>+	* lib/shellwords.rb : use String() instead of String.new()</div><div class='add'>+</div><div class='add'>+	* vm.c : check class iseq or not when making Proc and</div><div class='add'>+	add eval_search_super_klass function</div><div class='add'>+</div><div class='add'>+	* vm.h : CMETHOD_INFO_P to yarvcore.h</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : splat if object type is T_ARRAY</div><div class='add'>+</div><div class='add'>+	* vm_opts.h, vm_opts.h.base : rename to vm_opts.h.base</div><div class='add'>+	insns2vm.rb will copy it to build directory</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add Proc#[]</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : change INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE</div><div class='add'>+	to 512</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_* : invalidate splat non array code (like: "*1")</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : use tempfile instead of popen</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-28(Fri) 09:11:53 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : fix test</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-28(Fri) 08:43:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run_rite.rb : add -I options to run benchmark</div><div class='add'>+</div><div class='add'>+	* common.mk : pass options to some rules with RUNOPT</div><div class='add'>+	and add -I options</div><div class='add'>+</div><div class='add'>+	* compile.c : fix massign with constant</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_massign.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* eval_load.c : fix load_wait()</div><div class='add'>+</div><div class='add'>+	* eval_method.h : support ruby_cbase()</div><div class='add'>+</div><div class='add'>+	* lib/*.rb : add or modify libraries to run on yarv</div><div class='add'>+	* parse.y : change to ANSI C style</div><div class='add'>+</div><div class='add'>+	* vm.c : fix making proc process under cfunc/ifunc environment</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix block pass</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add yarv_obj_is_proc()</div><div class='add'>+</div><div class='add'>+	* eval.c : fix rb_obj_is_proc to use yarv_obj_is_proc()</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-27(Thu) 11:50:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* some files : import from ruby 1.9.0 (2005-10-12)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-16(Sun) 14:50:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c, yarvcore.h, yarvcore.c : add insns "bitblt" and "answer"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-11(Tue) 17:01:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv_version.h, Changes : 0.3.2</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-11(Tue) 13:35:25 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : add YARV_CHECK_INTS()</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.h, thread_win32.h : kick timer thread</div><div class='add'>+	when another thread kicked</div><div class='add'>+</div><div class='add'>+	* vm.c : remove debug print</div><div class='add'>+</div><div class='add'>+	* vm_opts.h : add OPT_CALL_THREADED_CODE</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : remove "\r" from answer</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-07(Fri) 09:36:36 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add member variable "interrupt_flag" to yarv_thread_t</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-05(Wed) 21:20:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eva.c, eval_thread.c, ruby.h, eval_error.h, eval_jump.h, </div><div class='add'>+	eval_load.c, thread.c, error.c, compile.h : remove ruby_errinfo</div><div class='add'>+</div><div class='add'>+	* thread_win32.h, thread_pthread.h : set stack size to 4KB</div><div class='add'>+</div><div class='add'>+	* vm.c : fix making env routine</div><div class='add'>+</div><div class='add'>+	* vm_dump.c, vm.h : support frame type "EVAL" and fix magic number</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix some mark/free routine</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-05(Wed) 09:08:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, eval_intern.h, vm.c, eval_jump.h, yarvcore.h :</div><div class='add'>+	re-define PUSH/POP/EXEC/JUMP_TAG to use thread local tag</div><div class='add'>+</div><div class='add'>+	* inits.c, yarvcore.c : fix boostrap</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-03(Mon) 22:28:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_COLON2 bugs</div><div class='add'>+</div><div class='add'>+	* compile.h : fix debug routine</div><div class='add'>+</div><div class='add'>+	* disasm.c : add space between insn and operand</div><div class='add'>+</div><div class='add'>+	* insns.def : add comment of classdef, singletonclassdef</div><div class='add'>+</div><div class='add'>+	* vm.c, yarv.h : fix invoke_light routine</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix to mark each threads</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-02(Sun) 05:55:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : add "system_working" global variable</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-02(Sun) 01:23:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c : add raw gets (for test), and fix indent</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-01(Sat) 23:06:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread_win32.h, common.mk : add thread_win32.h</div><div class='add'>+</div><div class='add'>+	* thread.c : support _WIN32 thread</div><div class='add'>+</div><div class='add'>+	* thread.c, thread_pthread.h : fix some interface</div><div class='add'>+</div><div class='add'>+	* eval_thread.c : remove debug print</div><div class='add'>+</div><div class='add'>+	* gc.c : fix stack region</div><div class='add'>+</div><div class='add'>+	* win32/Makefile.sub : add -MD flag to LDFLAGS</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix mark and sweep debug print</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix VM#living_threads data type to st_table</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-10-01(Sat) 00:25:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, yarvcore.h : rename GIL (Global Interpreter Lock) to</div><div class='add'>+	GVL (Global VM Lock)</div><div class='add'>+</div><div class='add'>+	* thread_pthread.h : fix pthread mutex initialize</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-30(Fri) 20:11:19 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c : support join with timeout</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : use GET_VM()</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-30(Fri) 14:59:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* thread.c, common.mk : add thread.c</div><div class='add'>+</div><div class='add'>+	* thread.c, gc.c, eval_thread.c, yarvcore.c, yarvcore.h : </div><div class='add'>+	support native thread (on pthread)</div><div class='add'>+</div><div class='add'>+	* insns.def : add YARV_CHECK_INTS() check</div><div class='add'>+</div><div class='add'>+	* yarv.h : add GET_VM() macro</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-29(Thu) 22:43:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_intern.h, eval_thread.c : move thread_status to eval_intern.h</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix thread/vm value</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add some parameter to yarv_thread_t</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-29(Thu) 01:52:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h : add line number on last end instruction</div><div class='add'>+</div><div class='add'>+	* vm.c : fix line no detection</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-28(Wed) 00:02:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, eval_load.c, eval.c, eval_intern.h : add eval_load.c</div><div class='add'>+</div><div class='add'>+	* disasm.c : fix around block local variables</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : fix typo</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-27(Tue) 16:45:20 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : remove debug print</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-27(Tue) 16:41:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : support Kernel.local_variables</div><div class='add'>+</div><div class='add'>+	* parse.y, yarvcore.c : move some functions</div><div class='add'>+	(rb_(backref|lastline)_(get|set)) from parse.y to yarvcore.c</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix typo of YARV_PREVIOUS_CONTROL_FRAME</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-26(Mon) 18:51:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c, compile.c, parse.y, vm.c, yarvcore.h :</div><div class='add'>+	 eval() works with binding (Env)</div><div class='add'>+</div><div class='add'>+	* vm.c : add th_set_eval_stack</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_syn.rb : remove an assert "defined?(local_var)"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-25(Sun) 19:30:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_vm2_send.rb : added</div><div class='add'>+</div><div class='add'>+	* common.mk : add rule "bench-item"</div><div class='add'>+</div><div class='add'>+	* eval_intern.h : add PASS_PASSED_BLOCK()</div><div class='add'>+</div><div class='add'>+	* eval_proc.c : support some functions</div><div class='add'>+</div><div class='add'>+	* rb/mklog.rb : added</div><div class='add'>+</div><div class='add'>+	* vm.c : fix prototype style and coding style</div><div class='add'>+</div><div class='add'>+	* yarv.h : add some prototypes of functions</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h, eval.c : yarv_thread_t#ifuncnode -&gt; passed_block,</div><div class='add'>+	and add yarv_proc_t#safe_level</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-25(Sun) 11:01:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* some files : import from ruby 1.9.0 (2005-09-25)</div><div class='add'>+</div><div class='add'>+	* eval*, vm.c, vm_macro.def : remove frame, scope, ...</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove yarv_block_given_p()</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, insnhelper.h : move some macro from insnhelper.h to yarvcore.h</div><div class='add'>+	to use these in eval.c</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-24(Sat) 15:51:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval* : remove dependency to ruby_dyna_vars and ruby_class</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-23(Fri) 20:39:14 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval_*.[ch] : split eval.c to some files</div><div class='add'>+</div><div class='add'>+	* *.[ch] : import ruby 1.9.0 (2004-09-23)</div><div class='add'>+</div><div class='add'>+	* parse.y : remove dependency to ruby_dyna_vars and ruby_scope</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-15(Thu) 16:51:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h : fix "for" scope</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_block.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-14(Wed) 06:11:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, vm_evalbody.h, vm.h, vm_dump.c,</div><div class='add'>+	compile.c, yarvcore.c : use #ifdef insted of #if for recognize</div><div class='add'>+	vm options</div><div class='add'>+</div><div class='add'>+	* vm_opts.h : fix default options</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-10(Sat) 14:10:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_opts.h : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, rb/insns2vm.h : use vm_opts.h</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-10(Sat) 04:53:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, insns.def, compile.c : add DEFINED_YIELD</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_yield.rb : add test_1_ary_and_1_params</div><div class='add'>+</div><div class='add'>+	* insns.def : fix splat and svalue</div><div class='add'>+</div><div class='add'>+	* vm.c : fix to perform with proc with ifunc (incomplete)</div><div class='add'>+</div><div class='add'>+	* sample/test.rb : added (comment out unsupported features)</div><div class='add'>+</div><div class='add'>+	* common.mk : add rule "runtest"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-09-09(Fri) 19:32:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : add splatarray</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_massign.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-31(Wed) 22:55:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (yarvcore_eval_parsed): fix to return value</div><div class='add'>+</div><div class='add'>+	* yarv_version.h, Changes : 0.3.1</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-20(Sat) 10:19:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/ir.rb : add some check</div><div class='add'>+</div><div class='add'>+	* import today's ruby HEAD</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-18(Thu) 23:29:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : fix object file extension</div><div class='add'>+</div><div class='add'>+	* rb/ir.rb : added (import ruby script)</div><div class='add'>+</div><div class='add'>+	* rb/diff.rb : removed</div><div class='add'>+</div><div class='add'>+	* import today's ruby HEAD</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-18(Thu) 12:59:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk : rule test -&gt; test2, test1 -&gt; test</div><div class='add'>+</div><div class='add'>+	* compile.c : fix when clause bug and splat arugment</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-17(Wed) 05:22:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix block local parameter setting routine and support</div><div class='add'>+	massign in block parameter initialze</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_yield.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : support array concat (ex: "[x, *y]")</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_bin.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 19:51:19 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support nested massign</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_massign.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 10:25:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : support rb_yield_0 with 0 args</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 09:09:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/fileutils.rb : imported</div><div class='add'>+</div><div class='add'>+	* insns.def : fix yield argument (same as last commit)</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_yield.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 08:29:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : fix to support rb_yield_0 with multiple values</div><div class='add'>+</div><div class='add'>+	* common.mk : add parse, run1p ruelse</div><div class='add'>+</div><div class='add'>+	* compile.c : support yield with ARGSCAT/SPLAT</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def : fix yield arguments to do compatible behaviour</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_yield.rb : added for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 06:00:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to set klass_nest_stack on singleton</div><div class='add'>+	method definition</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_method.rb : add a test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 05:34:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test1.rb : added.  gdb and run1 rule run this script</div><div class='add'>+</div><div class='add'>+	* compile.c : fix error handled variable access</div><div class='add'>+</div><div class='add'>+	* yarvtest/test_exception.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 04:26:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* base ruby : ruby 1.9.0 (2005-08-15)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-16(Tue) 03:54:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* common.mk, Makefile.in : move some rules to common.mk</div><div class='add'>+</div><div class='add'>+	* rb/diff.rb : added</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : fix to compare output last value</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-15(Mon) 18:27:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* Changes : 0.3.0</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-15(Mon) 17:56:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix to add prototype</div><div class='add'>+</div><div class='add'>+	* all files : propset svn:eol-style native</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-15(Mon) 10:48:53 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* eval.c : support rb_load</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-15(Mon) 09:42:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : define SDR()</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : stack_dump_raw() -&gt; vm_stack_dump_raw()</div><div class='add'>+</div><div class='add'>+	* yarvtest/yarvtest.rb : add rite test scheme</div><div class='add'>+</div><div class='add'>+	* benchmark/run_rite.rb : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, inits.c : add Init_vm()</div><div class='add'>+</div><div class='add'>+	* yarv.h : add some prototype declarations, GET_THREAD()</div><div class='add'>+</div><div class='add'>+	* eval.c : remove unused functions</div><div class='add'>+</div><div class='add'>+	* eval.c : support Kernel.eval, some schemes (same as evalc.patch)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-15(Mon) 00:53:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv_version.h : move configurations to yarvcore.h</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove VALUE yarv_get_current_running_thread() and</div><div class='add'>+	add yarv_thread_t *yarv_get_current_running_thread(), ...</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : yarv_thread_t#vm -&gt; vm_value</div><div class='add'>+</div><div class='add'>+	* compile.c : fix "break from nested classes"</div><div class='add'>+</div><div class='add'>+	* yarvext/extconf.rb : use have_func instead of defined?(YARV_PACHED)</div><div class='add'>+</div><div class='add'>+	* depend : fix pass</div><div class='add'>+</div><div class='add'>+	* eval.c : change to kick VM</div><div class='add'>+</div><div class='add'>+	* version.c : fix to show yarv version</div><div class='add'>+</div><div class='add'>+	* common.mk : fix dependent</div><div class='add'>+</div><div class='add'>+	* inits.c : fix to kick Init_yarvcore</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-14(Sun) 02:05:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* README : add description</div><div class='add'>+</div><div class='add'>+	* yarvext/depend : move to topdir/depend</div><div class='add'>+</div><div class='add'>+2005-08-14(Sun) 01:50:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* merge yarv to ruby (prepare)</div><div class='add'>+</div><div class='add'>+	* make yarvext/ to build as extension</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-13(Sat) 09:36:26 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* evalc.patch, insns.def, compile.c : fix to support current</div><div class='add'>+	ruby HEAD.</div><div class='add'>+</div><div class='add'>+	* 0.2.3</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-08(Mon) 19:13:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h, Changes : 0.2.2</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-08(Mon) 17:17:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h, vm.c, insns.def, yarvcore.h, yarvcore.c :</div><div class='add'>+	remove yarv_iseq_t#iseq_dt and add yarv_iseq_t#encoded.</div><div class='add'>+	use yarv_iseq_t#encoded anytime</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h, vm.h, extconf.rb, version.h :</div><div class='add'>+	support call threaded code (incomplete)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-08-01(Mon) 05:26:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : support yield with multiple values</div><div class='add'>+</div><div class='add'>+	* compile.c : fix dynavars</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix to mark defined method</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-31(Sun) 23:27:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, vm.c, insns.def : fix search object path</div><div class='add'>+</div><div class='add'>+	* compile.c : fix "for" statement</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix rest, opt arguments</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-31(Sun) 14:52:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : fix block parameter</div><div class='add'>+</div><div class='add'>+	* compile.c : fix to unuse compile_data-&gt;in_ensure</div><div class='add'>+</div><div class='add'>+	* insns.def : add orphan check when return</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-31(Sun) 03:25:05 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, compile.c, yarvcore.h, insns.def :</div><div class='add'>+	support jump from rescue/ensure/class/module</div><div class='add'>+</div><div class='add'>+	* test/test_flow.rb : add tests for above fix</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-30(Sat) 04:44:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : struct iseq_compile_data_ensure_node_stack is added</div><div class='add'>+</div><div class='add'>+	* compile.c : insert ensure clause before break/next/redo</div><div class='add'>+</div><div class='add'>+	* vm.c : fix return/break handling</div><div class='add'>+</div><div class='add'>+	* yarv.h, vm.c : fix lightweight yield</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def, vm_macro.def : change arguments of th_set_env (add sp)</div><div class='add'>+</div><div class='add'>+	* test/test_flow.rb : added</div><div class='add'>+</div><div class='add'>+	* test/yarvtest.rb : add ae_flow</div><div class='add'>+</div><div class='add'>+	* compile.c, vm_macro.def : add tail-call/tail-recursion optimization</div><div class='add'>+	(experimental)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-29(Fri) 20:14:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : make_name_for_block and make_name_with_str</div><div class='add'>+	are added</div><div class='add'>+</div><div class='add'>+	* insns.def : fix if unmatched size arg size to yield</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : add test for above fix</div><div class='add'>+</div><div class='add'>+	* vm.c : add th_backtrace_each and fix backtrace notation</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : set top level iseq name to "&lt;main&gt;"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-29(Fri) 13:20:19 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : fix yarv_iseq_t to pass VC (cl)</div><div class='add'>+</div><div class='add'>+	* vm_dump.c : ditto</div><div class='add'>+</div><div class='add'>+	* compile.h : ditto</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : ditto</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : include 'math.h'</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : raise error when yield without block</div><div class='add'>+</div><div class='add'>+	* vm.c : implement thread_backtrace</div><div class='add'>+</div><div class='add'>+	* vm.c, yarvsubst.c, yarv.h : implement thread_yield_light_prepare and</div><div class='add'>+	thread_yield_light_invoke</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : Integer#times uses yarv specific version</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-28(Thu) 21:35:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add another mark function for thread/stack</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : fix register allocation for x86_64</div><div class='add'>+</div><div class='add'>+	* vm.h : use asm for tc on x86_64</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-28(Thu) 20:17:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add mark/free message to debug gc</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, insns.def, vm_macro.def : remove and</div><div class='add'>+	add new RESTORE_REGS</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : fix register allocation</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-28(Thu) 02:00:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, etc : change VM stack structure. re-write all</div><div class='add'>+	vm functions to do it</div><div class='add'>+</div><div class='add'>+	* vm_macro.def : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-08(Fri) 01:36:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : don't use fmod on AMD64</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-08(Fri) 00:14:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* Changes : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-07(Thu) 23:54:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : 0.3.0</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-07(Thu) 23:52:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* 0.2.1 : released</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-07(Thu) 23:50:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : 0.2.1</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-07(Thu) 23:47:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb, extconf.rb : add --[enable|disable]-opt-unify-all-combination</div><div class='add'>+	and --disable-opts</div><div class='add'>+</div><div class='add'>+	* vm.h : DISPATCH_ARCH_DEPEND_WAY is only enabled on GCC 3.x</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-06(Wed) 13:20:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* depend, rb/eval.rb : add ITEMS option to benchmark rule</div><div class='add'>+</div><div class='add'>+	* benchmark/* : changed</div><div class='add'>+</div><div class='add'>+	* benchmark/other-lang/* : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-04(Mon) 04:02:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h. yarvcore.c : add idDIV, idMOD, idEq, idLength</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : add specialized insn for above method id</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-03(Sun) 20:31:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h : remove cYarvThrowObject (unused)</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h, insns.def : </div><div class='add'>+	thread_object#stack_mark_poinetr</div><div class='add'>+</div><div class='add'>+	* depend, rb/eval.rb : BOPT, TOPT -&gt; OPT</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-03(Sun) 13:53:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h : INSN_OBJECT, LABEL_OBJECT -&gt; INSN, LABEL,</div><div class='add'>+	ISEQ_LINK_ELEMENT, ISEQ_LINK_ANCHOR -&gt; LINK_ELEMENT, LINK_ANCHOR,</div><div class='add'>+	and some fixes</div><div class='add'>+</div><div class='add'>+	* tmpl/optinsn.inc.tmpl : ditto</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h : remove label_object, insn_object</div><div class='add'>+	prepare_iseq_build, cleanup_iseq_build are added</div><div class='add'>+</div><div class='add'>+	* insns.def : remove unused variable from send</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-02(Sat) 04:19:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : add GC protect for opt_aset</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-02(Sat) 03:49:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add option -fno-reorder-blocks to vm.asm rule</div><div class='add'>+</div><div class='add'>+	* insns.def : fix opt_aset bugs</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add tests for aset, aref</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-02(Sat) 03:05:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : fix output</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : add register for x86_64</div><div class='add'>+</div><div class='add'>+	* rb/asm_parse.rb : fix to shor size and length</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-02(Sat) 02:56:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : move specialized instruction point (new_insn_send)</div><div class='add'>+</div><div class='add'>+	* insns.def : add opt_aref, opt_aset</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-07-01(Fri) 11:04:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.h : fix to pass VALUE type to new_insn_body</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : add cast</div><div class='add'>+</div><div class='add'>+	* compile.c : fix getdynamic argument (0 == Qfalse -&gt; I2F(0))</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-30(Thu) 23:34:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/eval.rb : add and fix some rules</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : generate all</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : add -r (ruby only) option</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-30(Thu) 23:25:23 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tmpl/vmtc.inc.tmpl : add const prefix</div><div class='add'>+</div><div class='add'>+	* /rb/asm_parse.rb, extconf.rb : added and make assembler analised output </div><div class='add'>+</div><div class='add'>+	* opt_operand.def : add send operands unification</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : add HEAP_CLASS_OF(obj)</div><div class='add'>+</div><div class='add'>+	* insns.def : fix opt_plus, opt_ltlt</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.h : move _tag</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : fix file select</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-30(Thu) 06:07:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add collect-usage-analysis option</div><div class='add'>+</div><div class='add'>+	* opt_operand.def, opt_insn_unif.def : add some rules</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-29(Wed) 23:28:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, extconf.rb, vm.h, compile.c :</div><div class='add'>+	DISPATCH_DIRECT_THREADED_CODE, DISPATCH_THREADED_CODE</div><div class='add'>+	 -&gt; OPT_DIRECT_THREADED_CODE,  OPT_INDIRECT_THREADED_CODE.</div><div class='add'>+	if at least one of then is defined, OPT_THREADED_CODE is defined</div><div class='add'>+</div><div class='add'>+	* benchmark/* : fix name and parameters</div><div class='add'>+</div><div class='add'>+	* rb/eval.rb : added for YARV evaluation</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-29(Wed) 16:16:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : fix output format</div><div class='add'>+</div><div class='add'>+	* call_cfunc.inc -&gt; call_cfunc.h</div><div class='add'>+</div><div class='add'>+	* vm.h : add sign by asm statement</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 22:28:40 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : fix method search</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 22:26:34 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : fix options</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 21:50:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : fix output format</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 21:34:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* depend : add option TOPT to test rules</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : fix output format</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 21:15:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix opt_case_dispatch instruction</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : output all usertimes when exit benchmark</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 20:35:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb, compile.c, tmpl/optinsn.inc.tmpl, vm.c :</div><div class='add'>+	change extconf options</div><div class='add'>+</div><div class='add'>+2005-06-28(Tue) 13:20:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : add -y, --yarv-only option</div><div class='add'>+</div><div class='add'>+	* depend : add BOPT to tbench rule</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-27(Mon) 23:31:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* depend : add gdb rule</div><div class='add'>+</div><div class='add'>+	* vm.h : use inline assembler for x86 (to support gcc 3.4.x)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-27(Mon) 20:04:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, compile.c, disasm.c : remove unused variables</div><div class='add'>+</div><div class='add'>+	* vm.h, insnhelper.h, debug.h : fix to reduce warning</div><div class='add'>+</div><div class='add'>+	* vm.c, vm_dump.c : move VM state dump (debug) functions to vm_dump.c</div><div class='add'>+</div><div class='add'>+	* depend : adde reconf rule</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : </div><div class='add'>+</div><div class='add'>+	* vm_evalbody.inc : rename to vm_evalbody.h</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-27(Mon) 16:50:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns2vm.rb : fix generating unif insn</div><div class='add'>+</div><div class='add'>+	* compile.c : add useless pop/swap insn elimination with stack caching</div><div class='add'>+</div><div class='add'>+	* depend : remove compiled.o dependency</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-26(Sun) 14:06:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : use tmpfile instead of popen</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix generating insn unification logic</div><div class='add'>+</div><div class='add'>+	* opt_insn_unif.def : add some unification rules</div><div class='add'>+</div><div class='add'>+	* compile.c : add verify_list function and fix unification logic</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-22(Wed) 12:58:26 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c, insns.def,  compile.c : add mult optimization</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add test_fact</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-21(Tue) 22:34:07 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, compile.[ch], tmpl/optinsn.inc.tmpl, rb/insns2vm.rb :</div><div class='add'>+	change data structure (don't use Ruby's array to represent a</div><div class='add'>+	instruction sequence)</div><div class='add'>+</div><div class='add'>+	* disasm.c : add separator</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-14(Tue) 07:48:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support "for" statement</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : add test for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.[ch] : add global id idEach</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-08(Wed) 22:30:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : add if/unless(L1) jump (L2) :L1 =&gt; unless/if(L2)</div><div class='add'>+	optimize (condition reversal) and fix typo</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-07(Tue) 08:29:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix to remove compiler warning</div><div class='add'>+</div><div class='add'>+	* version.h : 0.2.1</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-07(Tue) 08:16:22 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : iseq_link_element changed to double linked list</div><div class='add'>+</div><div class='add'>+	* disasm.c : support dump struct iseq_link_element</div><div class='add'>+</div><div class='add'>+	* compile.c : use double linked list instead of array</div><div class='add'>+	for intermediate representation</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-06(Mon) 15:38:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c : add link structure to insn and label object</div><div class='add'>+</div><div class='add'>+	* compile.h, compile.c : remove some variables in function top scope</div><div class='add'>+	of iseq_compile_each and some optimization (now working)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-04(Sat) 16:12:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix previous commit</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-04(Sat) 15:56:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix stack caching (after jump state)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-04(Sat) 09:12:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix some point for previous commit</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-04(Sat) 07:31:21 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : optimize case/when statement</div><div class='add'>+	(dispatch on constant time)</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, disasm.c, rb/insns2vm.rb : fixed for above</div><div class='add'>+	(CDHASH)</div><div class='add'>+</div><div class='add'>+	* test/test_syn.rb : add test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-04(Sat) 03:41:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c : add some temporary variable test</div><div class='add'>+	(it'll be vanished)</div><div class='add'>+</div><div class='add'>+	* compile.c : NODE_CASE optimize (use topn instead of dup/swap)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-06-03(Fri) 00:54:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : apply flow optimization for while/until statement</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-04(Fri) 19:34:32 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix category (comment)</div><div class='add'>+</div><div class='add'>+	* depend : remove space betweeen target name and colon</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-04(Fri) 15:55:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tmpl/yarvarch.ja : fix typo</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-04(Fri) 13:30:19 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* depend : add a rule for jitcompile.o</div><div class='add'>+</div><div class='add'>+	* vm.h : fix a macro argument</div><div class='add'>+</div><div class='add'>+	* version.h : 0.2.0</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-03(Thu) 08:35:14 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : remove vm_evalbody.inc call_cfunc.inc from clean target</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-03(Thu) 00:54:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tmpl/insns.inc.tmpl : fixed typo</div><div class='add'>+</div><div class='add'>+	* insns.def : store th-&gt;pc to current pc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-03(Thu) 00:31:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* tmpl/yarvarch.ja, doc/yarv.rb : write current architecture of yarv</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-03-01(Tue) 13:50:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (yarvcore_eval_parsed) : added</div><div class='add'>+	(separeted from yarvcore_eval)</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, compile.c : iseq_translate_direct_threaded_code</div><div class='add'>+	is moved to compile.c</div><div class='add'>+</div><div class='add'>+	* depend : add rule for yasmdata.rb</div><div class='add'>+</div><div class='add'>+	* rb/yasm.rb : support top-level and method-level assemble</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-26(Sat) 08:09:57 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb, compile.c, vm.h : change type long to OFFSET</div><div class='add'>+</div><div class='add'>+	* tmpl/yasmdata.rb.tmpl : added</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : add yasmdata_rb method</div><div class='add'>+</div><div class='add'>+	* rb/yasm.rb : fix some interface (incomplete)</div><div class='add'>+</div><div class='add'>+	* compile.c : iseq_setup added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : YARVCore::InstructionSequence::Instruction#make added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-24(Thu) 07:45:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/yasm.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-24(Thu) 01:13:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : remove useless statements</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-24(Thu) 00:46:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb (InsnInfo) : add @is_sc attr and remove</div><div class='add'>+	is_sc method</div><div class='add'>+</div><div class='add'>+	* compile.c : fix NODE_CASE/NODE_WHEN bug (cond at 'when'</div><div class='add'>+	must not be popped)</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_OP_ASGN1 to &amp;&amp;= and ||=</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-23(Wed) 09:17:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, yarvcore.c : thread_svar added and fix svar location</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-21(Mon) 08:38:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : make type "struct iseq_compile_data"</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : iseq_object#insn_info_ary to iseq_object#insn_info_tbl </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-21(Mon) 05:24:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (compile_string) : remove null check of node</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-19(Sat) 03:52:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : 0.1.1</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-18(Fri) 20:57:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c : add idLTLT, idMethodMissing</div><div class='add'>+</div><div class='add'>+	* compile.c : suopport lval (or others) block parameter</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* insns.def (send) : support method_missing</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* insns.def : opt_ltlt and </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-18(Fri) 08:54:40 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/runc.rb : added</div><div class='add'>+</div><div class='add'>+	* benchmark/contrib/pentomino.rb : added opt_ltlt</div><div class='add'>+	and Float, String plus specialization</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-18(Fri) 07:49:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : remove debug print</div><div class='add'>+</div><div class='add'>+	* rb/aotcompile.rb : skip if yarvcore.so is not created</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-18(Fri) 06:46:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix block passing</div><div class='add'>+	and block argument</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-18(Fri) 05:52:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : thread_get_ev_const, thread_get_ev_defined is added</div><div class='add'>+	(separated from insns.def)</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : GET_EV_KLASS(klass) is added</div><div class='add'>+	(separated from insns.def)</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, insns.def, compile.c : support defined? expression (limited)</div><div class='add'>+</div><div class='add'>+	* test/test_syn.rb : tests for above is added </div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support block passed method dispatch</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : tests for above is added</div><div class='add'>+</div><div class='add'>+	* compile.h : CALL_ARGS_SPLAT is removed</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-16(Wed) 13:32:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* disasm.c : fix ID to String method</div><div class='add'>+</div><div class='add'>+	* compile.c : NODE_SUPER, NODE_ZSUPER check 'poped'</div><div class='add'>+	and NODE_RETURN check outer type</div><div class='add'>+	and NODE_DREGX_ONCE supported (temporarily)</div><div class='add'>+</div><div class='add'>+	* test/test_syn.rb : add a test</div><div class='add'>+</div><div class='add'>+	* test/test_jump.rb : add a test</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-16(Wed) 06:07:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.[hc] : use Symbol instead of Fixnum to represent ID</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : add attr_reader :insns, :insn_map</div><div class='add'>+</div><div class='add'>+	* vm.h, rb/insns2vm.rb : END_INSN have one arg</div><div class='add'>+</div><div class='add'>+	* jitcompile.c : jit compiler framework (experimental)</div><div class='add'>+</div><div class='add'>+	* rb/aotcompile.rb : refactoring</div><div class='add'>+</div><div class='add'>+	* compiled.c : add constant pool</div><div class='add'>+</div><div class='add'>+	* vm_evalbody.inc, call_cfunc.inc, vm.c : separeted from vm.c</div><div class='add'>+</div><div class='add'>+	* insns.def : fix return val</div><div class='add'>+</div><div class='add'>+	* depend : add rules for compiled.o</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-14(Mon) 13:09:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insnhelper.h, yarvcore.h: move YARV_METHOD_NODE to yarvcore.h</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add 2 members jit_compiled and iseq_orig</div><div class='add'>+	to struct iseq_object</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add yarv_jitcompile and global function jitcompile</div><div class='add'>+</div><div class='add'>+	* insns.def : insn opt_call_native_compiled added</div><div class='add'>+</div><div class='add'>+	* jitcompile.c : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-12(Sat) 05:38:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (putstring) : fixed to duplicate string object</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb, tmpl/optunifs.inc.tmpl, compile.c : support</div><div class='add'>+	instructions unification (aka super instruction)</div><div class='add'>+</div><div class='add'>+	* opt_insn_unif.def : added for above</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_unif1.rb : added to measure efficiency of unification</div><div class='add'>+</div><div class='add'>+	* depend : fixed for above</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add option --(enable|disalbe)-opt-insns-unification</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-11(Fri) 12:14:39 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, vm.c, insns.def : permit to access svar from</div><div class='add'>+	cfunc environment</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-09(Wed) 19:31:06 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ite.rb : added (ruby -rite [script file])</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-02-09(Wed) 02:25:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.[hc] : add member compile_data (hash) to iseq_object</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h : check label is already set</div><div class='add'>+</div><div class='add'>+	* compile.c, extconf.rb : support __goto__ and __label__ statement</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-25(Tue) 12:49:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : add break test to test_times</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-25(Tue) 03:34:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : check ruby version if yarv patch is applied or not</div><div class='add'>+</div><div class='add'>+	* evalc.patch : fixed for rb_call_super and above check</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-25(Tue) 03:21:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : refactoring (mainly, make InsnsDef::InsnInfo</div><div class='add'>+	to represent each instruction information)</div><div class='add'>+</div><div class='add'>+	* depend, rb/makedocs.rb : fixed for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (thread_call_super) : added</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_call_super) : added</div><div class='add'>+</div><div class='add'>+	* vm.h : add struct cmethod_info</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : use cmethod_info to represent C method info</div><div class='add'>+</div><div class='add'>+	* insns.def : use iseq_object#klass_nest_stack</div><div class='add'>+	to search super/zsuper's class</div><div class='add'>+</div><div class='add'>+	* prosym.rb : removed</div><div class='add'>+</div><div class='add'>+	* ToDo : write todo things on wiki</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-18(Tue) 23:44:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : check ENV['RUBY'] to use ruby binary</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-10(Mon) 08:44:40 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : 0.1.0</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-09(Sun) 22:01:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* repository : svn propset svn:eol-style native *.c *.h tmpl/*.tmpl</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-09(Sun) 21:48:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : FREE_UNLESS_NULL, MARK_UNLESS_NULL macros are added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : some insn/label methods are added</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add structure menber "insns_ary" to iseq_object</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def (thread_eval_body) : return values with throw</div><div class='add'>+</div><div class='add'>+	* prosym.rb : added</div><div class='add'>+</div><div class='add'>+	* insns.def : add YARV_AOT_COMPILED and some procedure</div><div class='add'>+</div><div class='add'>+	* depend : add compiled.c</div><div class='add'>+</div><div class='add'>+	* compiled.c : added to build compiled Ruby program (C source)</div><div class='add'>+	by AOT compiler</div><div class='add'>+</div><div class='add'>+	* rb/aotcompile.rb : AOT compiler</div><div class='add'>+</div><div class='add'>+	* aotct.rb, rb/aotctest.rb : test and benchmark AOT compiler</div><div class='add'>+</div><div class='add'>+	* rb/allload.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-09(Sun) 08:30:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (yarv_yield_values) : added</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_call0) : change interface. substitute rb_call0 in</div><div class='add'>+	yarv environment</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (yarv_call0) : fix for above</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (yarv_call0_cfunc) : removed</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : change passing items for yarv_setup</div><div class='add'>+</div><div class='add'>+	* evalc.patch : fix for above</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_lists.rb : fix (unsupport block passing)</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : use full path to ruby</div><div class='add'>+</div><div class='add'>+	* insns.def (yield): raise error if argc &gt; expected argc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-08(Sat) 16:07:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add descrioptions</div><div class='add'>+</div><div class='add'>+	* compile.c : fix bugs (getinlinecache operands)</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : initial value of yarvGlobalStateVersion</div><div class='add'>+	to 1</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-08(Sat) 14:39:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, vm.c, evalc.patch : support making backtrace</div><div class='add'>+	(incompatible with current ruby interpreter)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-08(Sat) 11:25:46 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* evalc.patch : commit for previous commit change</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, compile.c, insns.def : MC to IC (inline cache),</div><div class='add'>+	and changed to using IC by set/getinlinecache</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-08(Sat) 10:04:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add global variable sym[IC]FUNC</div><div class='add'>+</div><div class='add'>+	* yarvcore.c (yarv_iterate, yarv_call0_cfunc) : added</div><div class='add'>+	(each called from rb_iterate, rb_call0 with NODE_CFUNC)</div><div class='add'>+</div><div class='add'>+	* vm.c (stack_dump_raw) : fixed to prints more detail</div><div class='add'>+</div><div class='add'>+	* vm.c (stack_dump_th, stack_dump_thobj) : added to</div><div class='add'>+	dumps thread_object states (for VALUE, struct pointer)</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_dump_regs) : added</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_call0, thread_call0_cfunc, thread_invoke_yield, </div><div class='add'>+	thread_invoke_yield_cfunc), insns.def (yield, send) :</div><div class='add'>+	fixed, added to support IFUNC</div><div class='add'>+</div><div class='add'>+	* vm.c, yarvcore.c, insns.def : change type purpose</div><div class='add'>+	thread_object#block_ptr (it holds IFUNC block information,</div><div class='add'>+	so this type was changed to 'NODE *')</div><div class='add'>+</div><div class='add'>+	* vm.c (stack_dump_each) : fixed for above</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb (test_ifunc) : test for above</div><div class='add'>+</div><div class='add'>+	* vm.c (get_block_objec, thread_make_env_object) : fixed bugs</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb (test_xstr) : remove `ls` test</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-06(Thu) 21:35:18 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarv : trying to support NODE_IFUNC (rb_iterate)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-05(Wed) 06:50:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, insns.def, disasm.c, rb/insns2vm.rb, compile.[ch] :</div><div class='add'>+	support inline method cache</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add -*-inline-method-cache (default: enable)</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : add a test for above</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_poly_method.rb : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add option string</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-04(Tue) 17:15:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : add compile_array and duparray insn</div><div class='add'>+	to optimize only literal array creation</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_array.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-04(Tue) 10:02:40 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* README : fix version</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-04(Tue) 09:57:25 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* ToDo : reflect current status</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-04(Tue) 09:43:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_VALUES, NODE_ARGSCAT, NODE_SPLAT</div><div class='add'>+</div><div class='add'>+	* test/test_massign.rb : add tests for above</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_swap.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-04(Tue) 06:25:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.h : COMPILE_ERROR break contol (instead of return)</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_MASGN</div><div class='add'>+</div><div class='add'>+	* insns.def : change expandarray for massign and add topn insn</div><div class='add'>+</div><div class='add'>+	* test/test_massign.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-03(Mon) 21:20:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : store block when create proc</div><div class='add'>+</div><div class='add'>+	* test/test_proc.rb : add a test for above change</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add global function "once"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-02(Sun) 00:40:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_super.rb : fix bug (remove infinite loop)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 23:45:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_z?super.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 23:37:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bmx_so_object.rb : rename to benchmark/bm_so_object.rb</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 23:19:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_OP_ASGN2, NODE_OP_ASGN_AND, NODE_OP_ASGN_OR,</div><div class='add'>+	NODE_SUPER, NODE_ZSUPER, NODE_MATCH</div><div class='add'>+</div><div class='add'>+	* insns.def : support super, zsuper (currently, super can't</div><div class='add'>+	handle with block)</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add test for op_asgin2, op_assgin_and/or</div><div class='add'>+</div><div class='add'>+	* test/test_class.rb : add test for super, zsuper</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 20:39:29 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_MATCH</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : fix yarv_svar bug (fix condition boundary)</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : save cfp/lfp/dfp vars to thread_object (th)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 20:03:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : 0.0.1</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add idIntern declaration</div><div class='add'>+</div><div class='add'>+	* insns.def : add getspecial, setspecial.</div><div class='add'>+	implement getclassvariable, setclassvariable.</div><div class='add'>+	store lfp before reg match (opt_regexpmatch1)</div><div class='add'>+</div><div class='add'>+	* compile.c : support ditto, flipflop</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : support svar</div><div class='add'>+</div><div class='add'>+	* test/test_syn.rb : add test for flipflop</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add test for dsym, cvar, backref</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 09:09:32 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : add getspecial insn</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_NTH_REF, NODE_BACK_REF</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 06:53:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : support alias, undef</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : test for above</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : fix enbug</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2005-01-01(Sat) 06:00:32 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_jump.rb : add test (next with value)</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c, compile.c, compile.h :</div><div class='add'>+	raise compile error exception instead of rb_bug</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, evalc.patch : support "require"</div><div class='add'>+</div><div class='add'>+	* test.rb : restore $" after evaluation with ruby</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : remove unnecesary each</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-17(Fri) 18:56:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix newhash</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-15(Wed) 13:29:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add version string</div><div class='add'>+</div><div class='add'>+	* compile.c : fix rescure clause bug</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-14(Tue) 22:46:30 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : add reput insn</div><div class='add'>+</div><div class='add'>+	* vm.h : show stack cache registers when stack dump</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb, compile.c : fix stack caching bugs</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-14(Tue) 00:51:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns2vm.rb, compile.c, tmpl/opt_sc.inc.tmpl : fix bugs</div><div class='add'>+</div><div class='add'>+	* rb/mixc-asm.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-14(Tue) 00:17:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c, compile.c : fix SC bugs</div><div class='add'>+	(SC state management)</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add option -[enable|disable]-opt-stack-caching</div><div class='add'>+</div><div class='add'>+	* insns2vm.rb : accept CPPFLAGS options</div><div class='add'>+</div><div class='add'>+	* vm.c : support restrore register for pc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-13(Mon) 16:53:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : add macro INSN_IS_SC()</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-11(Sat) 10:51:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : support singleton method definition</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : add test for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-11(Sat) 03:17:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/*.rb : modify</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add $cleanfiles</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-08(Wed) 13:01:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : change to disable stack caching</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-07(Tue) 19:37:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : add default after</div><div class='add'>+</div><div class='add'>+	* insns.def : fix to work on stack caching</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-07(Tue) 15:07:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* depend : add some dependency to *.inc files</div><div class='add'>+</div><div class='add'>+	* vm.c : add "register" and asm("regname") descriptor</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb, compile.c : add stack caching support</div><div class='add'>+</div><div class='add'>+	* tmpl/opt_sc.inc.tmpl : added to above change</div><div class='add'>+</div><div class='add'>+	* rb/makedocs.rb : fix file path</div><div class='add'>+</div><div class='add'>+	* extconf.rb : fix option selection</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-06(Mon) 11:20:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add vm.asm target if compiler is gcc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-06(Mon) 09:56:24 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h : rename method_frame's member block to block_ptr</div><div class='add'>+</div><div class='add'>+	* extconf.rb : add "-fno-crossjumping" option when compiler</div><div class='add'>+	is gcc</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : add unification insn send</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.rb : define symbol instead of declare const</div><div class='add'>+	variable (for more optmize on VC)</div><div class='add'>+</div><div class='add'>+	* insns.def : move enter point in send</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-06(Mon) 04:53:51 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, opt_operand.def, rb/insns2vm.rb, depend :</div><div class='add'>+	support operand unification</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-05(Sun) 03:16:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def : speed up throw/catch scheme</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-05(Sun) 01:47:05 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : fix catch handler bugs</div><div class='add'>+</div><div class='add'>+	* test/test_jump.rb : test_complex_jump added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-03(Fri) 20:39:05 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/contrib/mcq.rb : added</div><div class='add'>+	(from URABE Syouhei)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-03(Fri) 20:35:28 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : support break in rb_yield block</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-03(Fri) 14:26:35 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support block local variable in current</div><div class='add'>+	ruby specification (patche from Kent Sibilev)</div><div class='add'>+</div><div class='add'>+	* insns.def : support attr_* (patch from Kent Sibilev)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-02(Thu) 21:04:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* opt_operand.def : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-02(Thu) 13:20:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, vm.h, vm.c, insns.def, insnhelper.h, yarvutil.rb :</div><div class='add'>+	add usage analisys framework </div><div class='add'>+</div><div class='add'>+	* disasm.c : insn_operand_intern to separate function</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : run each benchmark on another process</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-12-01(Wed) 10:26:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : yield check block is given</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_lists.rb : rename to bmx_lists.rb</div><div class='add'>+	(because it's not work ... bug?)</div><div class='add'>+</div><div class='add'>+	* insns.def : opt_* support other type calc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-30(Tue) 16:14:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_array.rb : added</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_matrix.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-30(Tue) 14:11:30 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/getrev.rb : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : add YARVCore::REV, YARVCore::DATE constant</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-30(Tue) 13:05:42 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_OP_ASGN1 (incomplete)</div><div class='add'>+</div><div class='add'>+	* insns.def : add dupn</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-30(Tue) 08:52:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : 0.0.0.f</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-30(Tue) 08:43:59 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_class.rb : add test_initialize and test_to_s</div><div class='add'>+</div><div class='add'>+	* yarvsubst.c : use rb_funcall instead of yarv_funcall</div><div class='add'>+</div><div class='add'>+	* evalc.patch : fix ruby's patch</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_so_*.rb : change naming rule. "bm_so_*" from</div><div class='add'>+	language shootout</div><div class='add'>+</div><div class='add'>+	* depend : tbench target item is ITEM env val (default: bmx_temp)</div><div class='add'>+</div><div class='add'>+	* vm.c : show raw address if environment is in heap at dumping stack trace</div><div class='add'>+</div><div class='add'>+	* vm.c : thread_call0 added</div><div class='add'>+</div><div class='add'>+	* vm.c : fix thread_yield_light_invoke</div><div class='add'>+</div><div class='add'>+	* yarv.h, yarvcore.c : remove yarv_funcall</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-29(Mon) 11:37:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test/test_proc.rb : add test test_nestproc</div><div class='add'>+</div><div class='add'>+	* yarvsubst.c : comment out yarv_Array_each</div><div class='add'>+</div><div class='add'>+	* insns.def : restore lfp/dfp after call_cfunc</div><div class='add'>+</div><div class='add'>+	* vm.c : fix stack dump routine</div><div class='add'>+</div><div class='add'>+	* vm.c : impliment thread_funcall (temporarily)</div><div class='add'>+</div><div class='add'>+	* yarv.h : add IS_YARV_WORKING(), SET_YARV_START(), SET_YARV_STOP()</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : remove check with yarv_in_work</div><div class='add'>+</div><div class='add'>+	* evalc.patch : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-27(Sat) 00:19:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : free -&gt; ruby_xfree</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-26(Fri) 02:11:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm,c : fix bug</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-22(Mon) 11:19:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_ackermann.rb, bm_proc.rb, bm_simpleiter.rb,</div><div class='add'>+	bm_so_exception.rb, bm_wc.rb, wc.input added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-22(Mon) 02:31:56 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_proc.rb : add some test</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, vm.c : support yield in C method (as rb_yield)</div><div class='add'>+</div><div class='add'>+	* vm.c (thread_yield_light_(prepare|invoke)) : support lightweight</div><div class='add'>+	yield</div><div class='add'>+</div><div class='add'>+	* yarv.h : added</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarv.h : support yarv_is_working, yarv_block_given_p, </div><div class='add'>+	yarv_yield, yarv_funcall (only dummy function)</div><div class='add'>+</div><div class='add'>+	* vm.c : thread_eval_body changed return value</div><div class='add'>+</div><div class='add'>+	* yarvsubst.c : added and add yarv_Integer_times, yarv_Array_each</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : block_ptr is added to struct thread_object</div><div class='add'>+</div><div class='add'>+	* insns.def : pass block when C method call</div><div class='add'>+</div><div class='add'>+	* insnhelper.h : add GET_ISEQOBJ(cfp) macro</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-21(Sun) 07:25:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c : support Proc#call</div><div class='add'>+</div><div class='add'>+	* test/test_proc.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-19(Fri) 18:04:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : support creating Proc object</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-15(Mon) 14:19:27 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def (send) : use clear_local_size to specify</div><div class='add'>+	clear local table vars.</div><div class='add'>+</div><div class='add'>+	* insns.def : block represent data shares lfp, dfp with frame data</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-13(Sat) 18:19:41 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, insns.def : add VM_CALL_ARGS_SPLAT_BIT and</div><div class='add'>+	VM_CALL_ARGS_BLOCKARG_BIT</div><div class='add'>+</div><div class='add'>+	* compile.c, compile.h : add ADD_SEND, ADD_SEND_R</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-10(Wed) 08:26:25 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* add "vm_" prefix to (block_object, proc_object, env_object)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-03(Wed) 15:52:14 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c, disasm.c, compile.c, insns.def, vm.c :</div><div class='add'>+	fix to move x86_64 (illegal cast, etc)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-11-01(Mon) 04:45:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, compile.c, debug.c, version.h : </div><div class='add'>+	redesgin gc debug scheme (GC_CHECK())</div><div class='add'>+</div><div class='add'>+	* yarvcore.c : mark iseqobj-&gt;current_block on GC</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : last "throw" in ensure/rescue block</div><div class='add'>+	use operand throwobj and before this insn, use "getdynamic 0, 1"</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_temp.rb : move to benchmark bmx_temp.rb</div><div class='add'>+</div><div class='add'>+	* depend : change some targets</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-10-25(Mon) 19:57:58 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : push exception iseq to iseqobj-&gt;iseq_mark_ary</div><div class='add'>+	to mark for GC</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-10-10(Sun) 16:25:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : remove $_, $' area from method local frame</div><div class='add'>+	and provide that's special method local variables pointer(LFP[-1])</div><div class='add'>+</div><div class='add'>+	* disasm.c : change environment showing format</div><div class='add'>+</div><div class='add'>+	* yarvcore.(h|c) : add YarvProc, YarvEnv</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add arg_block field to iseq_object</div><div class='add'>+	and init -1 as default value</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-30(Thu) 19:50:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support passing splat argument</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support rest argument</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support optional argument initializer</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : add tests for above</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-29(Wed) 10:50:03 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix rescue clause popped</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_random.rb : move to benchmark/bmx_random.rb</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-29(Wed) 01:25:35 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* many many files: change stack frame design</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-16(Thu) 08:51:37 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h : support 'return' from method</div><div class='add'>+	in ensure clause</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-13(Mon) 21:56:40 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support inline cache constant access</div><div class='add'>+	on NODE_COLON2, NODE_COLON3</div><div class='add'>+</div><div class='add'>+	* depend : add 'vtest' rule(verbose test)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-13(Mon) 10:58:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, yarvcore.h : support redo/next/break in</div><div class='add'>+	while/until</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-13(Mon) 08:50:19 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_jump.rb : added(correctly)</div><div class='add'>+</div><div class='add'>+	* benchamark/bm_(ensure|rescue|simplereturn).rb added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-12(Sun) 23:30:20 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_jump.rb : added</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c : add 'putnil' insn</div><div class='add'>+</div><div class='add'>+	* compile.c : use '===' when rescue check</div><div class='add'>+</div><div class='add'>+	* insns.def : remove 'rescuecheck' insn</div><div class='add'>+</div><div class='add'>+	* compile.c : support retry in begin/rescue clause</div><div class='add'>+</div><div class='add'>+	* ToDo : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-08(Wed) 12:34:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, yarvcore.c : add idThrow*</div><div class='add'>+</div><div class='add'>+	* insns.def, compile.c, vm.c : support retry, break,</div><div class='add'>+	next, redo, return(imcomplete)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-03(Fri) 13:40:08 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : add nop after rescue body</div><div class='add'>+</div><div class='add'>+	* insns.def, vm.c : support stack rewind when thrown</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-01(Wed) 17:31:01 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_exception.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-01(Wed) 13:15:14 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.c, insns.def : implementing exception handling</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-09-01(Wed) 00:18:54 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : add 'throw' insn</div><div class='add'>+</div><div class='add'>+	* compile.c : support 'rescue' and 'ensure' clause</div><div class='add'>+</div><div class='add'>+	* yarvcore.c, yarvcore.h : add 'catch_table' to iseq_struct</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-30(Mon) 19:06:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.h : NEW_ISEQOBJ don't pass self as parent</div><div class='add'>+</div><div class='add'>+	* compile.c : use NEW_CHILD_ISEQOBJ explicitly</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-29(Sun) 21:09:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : trying to implement rescue/ensure</div><div class='add'>+</div><div class='add'>+	* insns.def : fix yield bug(lfp, dfp link)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-28(Sat) 13:52:15 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix dvar bug</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : add test</div><div class='add'>+</div><div class='add'>+	* insns.def, insnhelper.h : remove unused source code</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-28(Sat) 08:51:26 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_DASGN</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : add test</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-28(Sat) 08:13:04 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support access to instance variable</div><div class='add'>+</div><div class='add'>+	* test/test_class.rb : add test of instance variable</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_block.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-28(Sat) 07:48:43 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : fix block parameter name</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-28(Sat) 07:27:52 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support method call with block</div><div class='add'>+	and yield and add some functions</div><div class='add'>+</div><div class='add'>+	* compile.c, insns.def : support dynavars accessor</div><div class='add'>+</div><div class='add'>+	* test/test_block.rb : added</div><div class='add'>+</div><div class='add'>+	* vm.c : fix block parameter stack dump</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-27(Fri) 23:56:47 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c(iseq_compile) : remove parameter iseqtype</div><div class='add'>+	(this information can access via self)</div><div class='add'>+</div><div class='add'>+2004-08-27(Fri) 17:13:35 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add test(absolute path constant)</div><div class='add'>+</div><div class='add'>+	* yarvcore.h, compile.c(iseq_compile) : change parameter</div><div class='add'>+</div><div class='add'>+	* insns.def(classdef) : fix bug</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-27(Fri) 04:53:13 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : support setconstant, getconstant, classdef,</div><div class='add'>+	moduledef</div><div class='add'>+</div><div class='add'>+	* vm.h : fix debug levels and so on</div><div class='add'>+</div><div class='add'>+	* vm.h : foo_WORD -&gt; foo_WC</div><div class='add'>+</div><div class='add'>+	* test/test_class.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-25(Wed) 17:51:50 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix getconstant/setconstant/classdef</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-25(Wed) 14:27:10 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* debug.[ch] : added</div><div class='add'>+</div><div class='add'>+	* compile.c, disasm.c : use debug interface</div><div class='add'>+</div><div class='add'>+	* compile.c : support some nodes</div><div class='add'>+</div><div class='add'>+	* compile.c, rb/insns2vm.rb : remove TS_CPATH</div><div class='add'>+</div><div class='add'>+	* insns.def : modify classdef/moduledef/singletonclassdef</div><div class='add'>+	and add popcref</div><div class='add'>+</div><div class='add'>+	* and others...</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-08-18(Wed) 20:16:45 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix case/when statement with empty else clause</div><div class='add'>+</div><div class='add'>+	* insns.def : enable compile</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add class search path scheme</div><div class='add'>+</div><div class='add'>+	* test/test_syn.rb : add switch/case test case</div><div class='add'>+</div><div class='add'>+	* tmpl/yarvarch.ja : update documents</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-22(Sat) 01:30:44 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvutil.rb : add eval_in_wrap</div><div class='add'>+</div><div class='add'>+	* test/test_*.rb : change to use eval_in_wrap</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-20(Thu) 02:50:32 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* support global variables</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_*.rb : add some benchmarks</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_ATTRASGN</div><div class='add'>+</div><div class='add'>+	* compile.c : add debugi(...)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-19(Wed) 23:19:38 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_method.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-19(Wed) 22:56:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : fix typo</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb : sort benchmark order by filename</div><div class='add'>+</div><div class='add'>+	* extconf.rb : use --enable/disable-xxx</div><div class='add'>+</div><div class='add'>+	* version.h : ditto(don't touch to change yarv options)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-19(Wed) 21:18:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* yarvutil.rb : added</div><div class='add'>+</div><div class='add'>+	* test.rb, test/*, benchmark/run.rb : use yarvutil.rb</div><div class='add'>+</div><div class='add'>+	* version.h : USE_OPTIMIZED_REGEXP_MATCH added</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add idEqTilde</div><div class='add'>+</div><div class='add'>+	* yarvcore.c(yarvcore_parse, yarvcore_eval) : require file and line</div><div class='add'>+	parameter</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add regexp test</div><div class='add'>+</div><div class='add'>+	* benchmark/bm_regexp.rb : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-19(Wed) 13:57:31 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : add compile_dstr(self, node)</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_MATCH2, NODE_MATCH3, NODE_DXSTR</div><div class='add'>+</div><div class='add'>+	* insns.def : add toregexp</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-18(Tue) 10:12:20 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_XDSTR</div><div class='add'>+</div><div class='add'>+	* test/test_bin.rb : add test for above change</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-18(Tue) 09:46:33 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def(send) : store regs before call_cfunc</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-18(Tue) 08:55:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_DSTR, NODE_EVSTR</div><div class='add'>+</div><div class='add'>+	* compile.c : support NODE_XSTR</div><div class='add'>+</div><div class='add'>+	* insns.def : add tostring operation</div><div class='add'>+</div><div class='add'>+	* rb/makedocs.rb : fix directory path</div><div class='add'>+</div><div class='add'>+	* depend : add tbench rule</div><div class='add'>+</div><div class='add'>+	* yarvcore.h : add 'exten ID idBackquote'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-18(Tue) 00:09:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h : add USE_OPTIMIZED_BASIC_OPERATION</div><div class='add'>+</div><div class='add'>+	* yarvcore.h(struct thread_object) : add 'VALUE stat_insn_usage'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-17(Mon) 11:28:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* version.h, insns.def, yarvcore.c : add FAKE_INLINE_METHOD_CACHE</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-17(Mon) 09:05:53 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* compile.c : fix generating opt_* insn process</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-17(Mon) 08:58:49 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/(bm_tarai.rb, bm_fib.rb) : added</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-17(Mon) 08:20:12 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/(bm_tak.rb, bm_reccount.rb) : added</div><div class='add'>+</div><div class='add'>+	* insns.def : test method cache(incomplete)</div><div class='add'>+</div><div class='add'>+	* insns.def : add expandarray insn</div><div class='add'>+</div><div class='add'>+	* yarvcore.c(iseq_init) : add parameter 'parent'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-17(Mon) 01:49:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* benchmark/run.rb, bm_factorial.rb, bm_whileloop.rb : added</div><div class='add'>+</div><div class='add'>+	* insns.def(send) : set id to ruby_frame-&gt;orig_func</div><div class='add'>+</div><div class='add'>+	* check behavior on mswin32 and cygwin</div><div class='add'>+</div><div class='add'>+	* insns.def(send) : check stack overflow</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-16(Sun) 08:00:55 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* change frame structure(debugging)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-14(Fri) 15:06:02 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns2vm.rb : support file name arguments</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-14(Fri) 04:33:09 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* insns.def : support (easy) constant</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-12(Wed) 01:51:48 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* rb/insns2vm.b : set directory prefix</div><div class='add'>+</div><div class='add'>+	* disasm.c : fix bug</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-12(Wed) 00:00:17 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h, compiler.h, version.h : move *DEBUG defs to version.h</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-11(Tue) 23:00:11 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* vm.h, version.h, yarvcore.h : move gcc ver check to version.h</div><div class='add'>+	and include version.h from yarvcore.h</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+2004-05-11(Tue) 19:16:26 +0900  Koichi Sasada  &lt;ko1@atdot.net&gt;</div><div class='add'>+</div><div class='add'>+	* 0.0.0.d : imported</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+Local variables:</div><div class='add'>+add-log-time-format: (lambda ()</div><div class='add'>+  (let* ((time (current-time))</div><div class='add'>+	 (diff (+ (cadr time) 32400))</div><div class='add'>+	 (lo (% diff 65536))</div><div class='add'>+	 (hi  (+ (car time) (/ diff 65536))))</div><div class='add'>+  (format-time-string "%Y-%m-%d(%a) %H:%M:%S +900"  (list hi lo) t)))</div><div class='add'>+indent-tabs-mode: t</div><div class='add'>+tab-width: 8</div><div class='add'>+end:</div><div class='head'>diff --git a/doc/NEWS-1.8.7 b/doc/NEWS-1.8.7<br/>new file mode 100644<br/>index 0000000000..460a7c9328<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS-1.8.7?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/NEWS-1.8.7</a></div><div class='hunk'>@@ -0,0 +1,648 @@</div><div class='add'>+= NEWS</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.8.6 release</div><div class='add'>+</div><div class='add'>+=== Configuration changes</div><div class='add'>+</div><div class='add'>+* default C flags</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'>+* vendor_ruby directory</div><div class='add'>+</div><div class='add'>+  A new library directory named `vendor_ruby' is introduced in</div><div class='add'>+  addition to `site_ruby'.  The idea is to separate libraries</div><div class='add'>+  installed by the package system (`vendor') from manually (`site')</div><div class='add'>+  installed libraries preventing the former from getting overwritten</div><div class='add'>+  by the latter, while preserving the user option to override vendor</div><div class='add'>+  libraries with site libraries. (`site_ruby' takes precedence over</div><div class='add'>+  `vendor_ruby')</div><div class='add'>+</div><div class='add'>+  If you are a package maintainer, make each library package configure</div><div class='add'>+  the library passing the `--vendor' option to `extconf.rb' so that</div><div class='add'>+  the library files will get installed under `vendor_ruby'.</div><div class='add'>+</div><div class='add'>+  You can change the directory locations using configure options such</div><div class='add'>+  as `--with-sitedir=DIR' and `--with-vendordir=DIR'.</div><div class='add'>+</div><div class='add'>+=== Global constants</div><div class='add'>+</div><div class='add'>+* new constants</div><div class='add'>+</div><div class='add'>+  * RUBY_COPYRIGHT</div><div class='add'>+  * RUBY_DESCRIPTION</div><div class='add'>+</div><div class='add'>+=== Library updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* new library</div><div class='add'>+</div><div class='add'>+  * securerandom</div><div class='add'>+</div><div class='add'>+* builtin classes</div><div class='add'>+</div><div class='add'>+  * Array#flatten</div><div class='add'>+  * Array#flatten!</div><div class='add'>+</div><div class='add'>+    Take an optional argument that determines the level of recursion</div><div class='add'>+    to flatten.</div><div class='add'>+</div><div class='add'>+  * Array#eql?</div><div class='add'>+  * Array#hash</div><div class='add'>+  * Array#==</div><div class='add'>+  * Array#&lt;=&gt;</div><div class='add'>+</div><div class='add'>+    Handle recursive data properly.</div><div class='add'>+</div><div class='add'>+  * Array#index</div><div class='add'>+  * Array#rindex</div><div class='add'>+</div><div class='add'>+    Use a given block if no argument is given.</div><div class='add'>+</div><div class='add'>+  * Array#collect!</div><div class='add'>+  * Array#map!</div><div class='add'>+  * Array#each</div><div class='add'>+  * Array#each_index</div><div class='add'>+  * Array#reverse_each</div><div class='add'>+  * Array#reject</div><div class='add'>+  * Array#reject!</div><div class='add'>+  * Array#delete_if</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+    Note that #map and #collect still return an array unlike Ruby 1.9</div><div class='add'>+    to keep compatibility.</div><div class='add'>+</div><div class='add'>+  * Array#pop</div><div class='add'>+  * Array#shift</div><div class='add'>+</div><div class='add'>+    Take an optional argument specifying the number of elements to</div><div class='add'>+    remove.</div><div class='add'>+</div><div class='add'>+  * Array#choice</div><div class='add'>+  * Array#combination</div><div class='add'>+  * Array#cycle</div><div class='add'>+  * Array#drop</div><div class='add'>+  * Array#drop_while</div><div class='add'>+  * Array#permutation</div><div class='add'>+  * Array#product</div><div class='add'>+  * Array#shuffle</div><div class='add'>+  * Array#shuffle!</div><div class='add'>+  * Array#take,</div><div class='add'>+  * Array#take_while</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * Binding#eval</div><div class='add'>+</div><div class='add'>+    New method.</div><div class='add'>+</div><div class='add'>+  * Dir#each</div><div class='add'>+  * Dir#foreach</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * Enumerable::Enumerator</div><div class='add'>+</div><div class='add'>+    New class for various enumeration defined by the enumerator library.</div><div class='add'>+</div><div class='add'>+  * Enumerable#each_slice</div><div class='add'>+  * Enumerable#each_cons</div><div class='add'>+  * Object#to_enum</div><div class='add'>+  * Object#enum_for</div><div class='add'>+</div><div class='add'>+    New methods for various enumeration defined by the enumerator library.</div><div class='add'>+</div><div class='add'>+  * Enumerable#count</div><div class='add'>+  * Enumerable#cycle</div><div class='add'>+  * Enumerable#drop</div><div class='add'>+  * Enumerable#drop_while</div><div class='add'>+  * Enumerable#find_index</div><div class='add'>+  * Enumerable#first</div><div class='add'>+  * Enumerable#group_by</div><div class='add'>+  * Enumerable#max_by</div><div class='add'>+  * Enumerable#min_by</div><div class='add'>+  * Enumerable#minmax</div><div class='add'>+  * Enumerable#minmax_by</div><div class='add'>+  * Enumerable#none?</div><div class='add'>+  * Enumerable#one?</div><div class='add'>+  * Enumerable#take</div><div class='add'>+  * Enumerable#take_while</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * Enumerable#find</div><div class='add'>+  * Enumerable#find_all</div><div class='add'>+  * Enumerable#partition</div><div class='add'>+  * Enumerable#reject</div><div class='add'>+  * Enumerable#select</div><div class='add'>+  * Enumerable#sort_by</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+    Note that #map and #collect still return an array unlike Ruby 1.9</div><div class='add'>+    to keep compatibility.</div><div class='add'>+</div><div class='add'>+  * Enumerable#inject</div><div class='add'>+</div><div class='add'>+    Accepts a binary operator instead of a block.</div><div class='add'>+</div><div class='add'>+  * Enumerable#reduce</div><div class='add'>+</div><div class='add'>+    New alias to #inject.</div><div class='add'>+</div><div class='add'>+  * Hash#eql?</div><div class='add'>+  * Hash#hash</div><div class='add'>+  * Hash#==</div><div class='add'>+</div><div class='add'>+    Handle recursive data properly.</div><div class='add'>+</div><div class='add'>+  * Hash#delete_if</div><div class='add'>+  * Hash#each</div><div class='add'>+  * Hash#each_key</div><div class='add'>+  * Hash#each_pair</div><div class='add'>+  * Hash#each_value</div><div class='add'>+  * Hash#reject!</div><div class='add'>+  * Hash#select</div><div class='add'>+  * ENV.delete_if</div><div class='add'>+  * ENV.each</div><div class='add'>+  * ENV.each_key</div><div class='add'>+  * ENV.each_pair</div><div class='add'>+  * ENV.each_value</div><div class='add'>+  * ENV.reject!</div><div class='add'>+  * ENV.select</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * GC.stress</div><div class='add'>+  * GC.stress=</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * Integer#ord</div><div class='add'>+  * Integer#odd?</div><div class='add'>+  * Integer#even?</div><div class='add'>+  * Integer#pred</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * Integer#downto</div><div class='add'>+  * Integer#times</div><div class='add'>+  * Integer#upto</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * IO#each</div><div class='add'>+  * IO#each_line</div><div class='add'>+  * IO#each_byte</div><div class='add'>+  * IO.foreach</div><div class='add'>+  * ARGF.each</div><div class='add'>+  * ARGF.each_line</div><div class='add'>+  * ARGF.each_byte</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * IO#bytes</div><div class='add'>+  * IO#chars</div><div class='add'>+  * IO#each_char</div><div class='add'>+  * IO#getbyte</div><div class='add'>+  * IO#lines</div><div class='add'>+  * IO#readbyte</div><div class='add'>+  * ARGF.bytes</div><div class='add'>+  * ARGF.chars</div><div class='add'>+  * ARGF.each_char</div><div class='add'>+  * ARGF.getbyte</div><div class='add'>+  * ARGF.lines</div><div class='add'>+  * ARGF.readbyte</div><div class='add'>+</div><div class='add'>+    New methods. </div><div class='add'>+</div><div class='add'>+  * Method#name</div><div class='add'>+  * Method#owner</div><div class='add'>+  * Method#receiver</div><div class='add'>+  * UnboundMethod#name</div><div class='add'>+  * UnboundMethod#owner</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * Module#class_exec</div><div class='add'>+  * Module#module_exec</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * Numeric#step</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * Object#instance_exec</div><div class='add'>+  * Object#tap</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * ObjectSpace.each_object</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * Process.exec implemented.</div><div class='add'>+</div><div class='add'>+  * Range#each</div><div class='add'>+  * Range#step</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * Regexp.union accepts an array of patterns.</div><div class='add'>+</div><div class='add'>+  * String#bytesize</div><div class='add'>+</div><div class='add'>+    New method, returning the size in bytes. (alias length and size)</div><div class='add'>+</div><div class='add'>+  * String#chars</div><div class='add'>+  * String#each_char</div><div class='add'>+  * String#partition</div><div class='add'>+  * String#rpartition</div><div class='add'>+  * String#start_with?</div><div class='add'>+  * String#end_with?</div><div class='add'>+</div><div class='add'>+    New methods.  These are $KCODE aware unlike #index, #rindex and</div><div class='add'>+    #include?.</div><div class='add'>+</div><div class='add'>+  * String#each_byte</div><div class='add'>+  * String#each</div><div class='add'>+  * String#each_line</div><div class='add'>+  * String#gsub(pattern)</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * String#upto</div><div class='add'>+</div><div class='add'>+    An optional second argument is added to specify if the last value</div><div class='add'>+    should be included.</div><div class='add'>+</div><div class='add'>+  * StopIteration</div><div class='add'>+</div><div class='add'>+    New exception class that causes Kernel#loop to stop iteration when</div><div class='add'>+    raised.</div><div class='add'>+</div><div class='add'>+  * Struct#each</div><div class='add'>+  * Struct#each_pair</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+  * Symbol#to_proc</div><div class='add'>+</div><div class='add'>+    New method.</div><div class='add'>+</div><div class='add'>+  * __method__</div><div class='add'>+</div><div class='add'>+    New global function that returns the name of the current method as</div><div class='add'>+    a Symbol.</div><div class='add'>+</div><div class='add'>+* enumerator</div><div class='add'>+</div><div class='add'>+  * Enumerator is now a built-in module.  The #next and #rewind</div><div class='add'>+    methods are implemented using the "generator" library.  Use with</div><div class='add'>+    care and be aware of the performance loss.</div><div class='add'>+</div><div class='add'>+* ipaddr</div><div class='add'>+</div><div class='add'>+  * New methods</div><div class='add'>+    * IPAddr#&lt;=&gt;</div><div class='add'>+    * IPAddr#succ</div><div class='add'>+</div><div class='add'>+      IPAddr objects are now comparable and enumerable having these</div><div class='add'>+      methods.  This also means that it is possible to have a Range</div><div class='add'>+      object between two IPAddr objects.</div><div class='add'>+</div><div class='add'>+    * IPAddr#to_range</div><div class='add'>+</div><div class='add'>+      A new method to create a Range object for the (network) address.</div><div class='add'>+</div><div class='add'>+  * Type coercion support</div><div class='add'>+    * IPAddr#&amp;</div><div class='add'>+    * IPAddr#|</div><div class='add'>+    * IPAddr#==</div><div class='add'>+    * IPAddr#include?</div><div class='add'>+</div><div class='add'>+      These methods now accept a string or an integer instead of an</div><div class='add'>+      IPAddr object as the argument.</div><div class='add'>+</div><div class='add'>+* net/smtp</div><div class='add'>+</div><div class='add'>+  * Support SSL/TLS.</div><div class='add'>+</div><div class='add'>+* openssl</div><div class='add'>+</div><div class='add'>+  * New classes</div><div class='add'>+    * OpenSSL::PKey::EC</div><div class='add'>+    * OpenSSL::PKey::EC::Group</div><div class='add'>+    * OpenSSL::PKey::EC::Point</div><div class='add'>+    * OpenSSL::PKey::PKCS5</div><div class='add'>+    * OpenSSL::SSL::Session</div><div class='add'>+</div><div class='add'>+  * Documentation!</div><div class='add'>+</div><div class='add'>+  * Various new methods (see documentation).</div><div class='add'>+</div><div class='add'>+  * Remove redundant module namespace in Cipher, Digest, PKCS7, PKCS12.</div><div class='add'>+    Compatibility classes are provided which will be removed in Ruby 1.9.</div><div class='add'>+</div><div class='add'>+* shellwords</div><div class='add'>+</div><div class='add'>+  * Add methods for escaping shell-unsafe characters:</div><div class='add'>+    * Shellwords.join</div><div class='add'>+    * Shellwords.escape</div><div class='add'>+    * Array#shelljoin</div><div class='add'>+    * String#shellescape</div><div class='add'>+</div><div class='add'>+  * Add shorthand methods:</div><div class='add'>+    * Shellwords.split (alias shellwords)</div><div class='add'>+    * String#shellsplit</div><div class='add'>+</div><div class='add'>+* stringio</div><div class='add'>+</div><div class='add'>+  * StringIO#getbyte</div><div class='add'>+  * StringIO#readbyte</div><div class='add'>+</div><div class='add'>+    New methods. (aliases for compatibility with 1.9)</div><div class='add'>+</div><div class='add'>+  * StringIO#each_char</div><div class='add'>+  * StringIO#chars</div><div class='add'>+</div><div class='add'>+    New methods.</div><div class='add'>+</div><div class='add'>+  * StringIO#each</div><div class='add'>+  * StringIO#each_line</div><div class='add'>+  * StringIO#each_byte</div><div class='add'>+</div><div class='add'>+    Return an enumerator if no block is given.</div><div class='add'>+</div><div class='add'>+* tempfile</div><div class='add'>+</div><div class='add'>+  * Tempfile.open and Tempfile.new now accept a suffix for the</div><div class='add'>+    temporary file to be created.  To specify a suffix, pass an array</div><div class='add'>+    of [basename, suffix] as the first argument.</div><div class='add'>+</div><div class='add'>+      Tempfile.open(['image', 'jpg']) { |tempfile| ... }</div><div class='add'>+</div><div class='add'>+* tmpdir</div><div class='add'>+</div><div class='add'>+  * New method:</div><div class='add'>+</div><div class='add'>+    * Dir.mktmpdir</div><div class='add'>+</div><div class='add'>+* uri</div><div class='add'>+</div><div class='add'>+  * added LDAPS scheme.</div><div class='add'>+  * Change for RFC3986:</div><div class='add'>+    * FTP</div><div class='add'>+      * URI('ftp://example.com/foo').path #=&gt; 'foo'</div><div class='add'>+      * URI('ftp://example.com/%2Ffoo').path #=&gt; '/foo'</div><div class='add'>+      * URI::FTP.build([nil, 'example.com', nil, '/foo', 'i').to_s #=&gt; 'ftp://example.com/%2Ffoo;type=i'</div><div class='add'>+    * URI merge</div><div class='add'>+      * URI('http://a/b/c/d;p?q').merge('?y') == URI('http://a/b/c/d;p?y')</div><div class='add'>+      * URI('http://a/b/c/d;p?q').merge('/./g') == URI('http://a/g')</div><div class='add'>+      * URI('http://a/b/c/d;p?q').merge('/../g') == URI('http://a/g')</div><div class='add'>+      * URI('http://a/b/c/d;p?q').merge('../../../g') == URI('http://a/g')</div><div class='add'>+      * URI('http://a/b/c/d;p?q').merge('../../../../g') == URI('http://a/g')</div><div class='add'>+</div><div class='add'>+* rss</div><div class='add'>+</div><div class='add'>+  * 0.1.6 -&gt; 0.2.4</div><div class='add'>+</div><div class='add'>+  * Fix image module URI</div><div class='add'>+</div><div class='add'>+  * Atom support</div><div class='add'>+</div><div class='add'>+  * ITunes module support</div><div class='add'>+</div><div class='add'>+  * Slash module support</div><div class='add'>+</div><div class='add'>+  * content:encoded with RSS 2.0 support</div><div class='add'>+</div><div class='add'>+=== Interpreter Implementation</div><div class='add'>+</div><div class='add'>+* passing a block to a Proc [experimental]</div><div class='add'>+</div><div class='add'>+  This implementation in current shape is known to be buggy/broken,</div><div class='add'>+  especially with nested block invocation.  Take this as an</div><div class='add'>+  experimental feature.</div><div class='add'>+</div><div class='add'>+* stack trace</div><div class='add'>+</div><div class='add'>+  On non-SystemStackError exception, full stack trace is shown.</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* String#slice! had some unintentional bugs and they have been fixed</div><div class='add'>+  because either they disagreed with documentation or their respective</div><div class='add'>+  behavior of #slice.  Unfortunately, this causes some</div><div class='add'>+  incompatibilities in the following (somewhat rare) cases.</div><div class='add'>+</div><div class='add'>+  * #slice! no longer expands the array when an out-of-boundary value</div><div class='add'>+    is given.</div><div class='add'>+</div><div class='add'>+      # Ruby 1.8.6</div><div class='add'>+      a = [1,2]</div><div class='add'>+      a.slice!(4,0)   #=&gt; nil</div><div class='add'>+      a               #=&gt; [1,2,nil,nil]</div><div class='add'>+</div><div class='add'>+      # Ruby 1.8.7</div><div class='add'>+      a = [1,2]</div><div class='add'>+      a.slice!(4,0)   #=&gt; nil</div><div class='add'>+      a               #=&gt; [1,2]</div><div class='add'>+</div><div class='add'>+  * #slice! no longer raises an exception but returns nil when a</div><div class='add'>+    negative length or out-of-boundary negative position is given.</div><div class='add'>+</div><div class='add'>+      # Ruby 1.8.6</div><div class='add'>+      a = [1,2]</div><div class='add'>+      a.slice!(1,-1)  #=&gt; (raises IndexError)</div><div class='add'>+      a.slice!(-5,1)  #=&gt; (raises IndexError)</div><div class='add'>+</div><div class='add'>+      # Ruby 1.8.7</div><div class='add'>+      a = [1,2]</div><div class='add'>+      a.slice!(1,-1)  #=&gt; nil</div><div class='add'>+      a.slice!(-5,1)  #=&gt; nil</div><div class='add'>+</div><div class='add'>+* String#to_i, String#hex and String#oct no longer accept a sequence</div><div class='add'>+  of underscores (`__') as part of a number.</div><div class='add'>+</div><div class='add'>+    # Ruby 1.8.6</div><div class='add'>+    '1__0'.to_i     #=&gt; 10</div><div class='add'>+    '1__0'.to_i(2)  #=&gt; 2  # 0b10</div><div class='add'>+    '1__0'.oct      #=&gt; 8  # 010</div><div class='add'>+    '1__0'.hex      #=&gt; 16 # 0x10</div><div class='add'>+</div><div class='add'>+    # Ruby 1.8.7</div><div class='add'>+    '1__0'.to_i     #=&gt; 1</div><div class='add'>+    '1__0'.to_i(2)  #=&gt; 1</div><div class='add'>+    '1__0'.oct      #=&gt; 1</div><div class='add'>+    '1__0'.hex      #=&gt; 1</div><div class='add'>+</div><div class='add'>+  The old behavior was inconsistent with Ruby syntax and considered as</div><div class='add'>+  a bug.</div><div class='add'>+</div><div class='add'>+* date</div><div class='add'>+</div><div class='add'>+  * Date.parse</div><div class='add'>+</div><div class='add'>+    '##.##.##' (where each '#' is a digit) is now taken as 'YY.MM.DD'</div><div class='add'>+    instead of 'MM.DD.YY'.  While the change may confuse you, you can</div><div class='add'>+    always use Date.strptime() when you know what you are dealing</div><div class='add'>+    with.</div><div class='add'>+</div><div class='add'>+* stringio</div><div class='add'>+</div><div class='add'>+  * StringIO#each_byte</div><div class='add'>+</div><div class='add'>+    The return value changed from nil to self.  This is what the</div><div class='add'>+    document says and the same as each_line() does.</div><div class='add'>+</div><div class='add'>+* tempfile</div><div class='add'>+</div><div class='add'>+  * The file name format has changed.  No dots are included by default</div><div class='add'>+    in temporary file names any more.  See above for how to specify a</div><div class='add'>+    suffix.</div><div class='add'>+</div><div class='add'>+* uri</div><div class='add'>+</div><div class='add'>+  * See above for details.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.8.5 release</div><div class='add'>+</div><div class='add'>+=== New platforms/build tools support</div><div class='add'>+</div><div class='add'>+* IA64 HP-UX</div><div class='add'>+</div><div class='add'>+* Visual C++ 8 SP1</div><div class='add'>+</div><div class='add'>+* autoconf 2.6x</div><div class='add'>+</div><div class='add'>+=== Global constants</div><div class='add'>+</div><div class='add'>+* RUBY_PATCHLEVEL</div><div class='add'>+</div><div class='add'>+  New constant since 1.8.5-p1.</div><div class='add'>+</div><div class='add'>+=== Library updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* builtin classes</div><div class='add'>+</div><div class='add'>+  * New method: Kernel#instance_variable_defined?</div><div class='add'>+</div><div class='add'>+  * New method: Module#class_variable_defined?</div><div class='add'>+</div><div class='add'>+  * New feature: Dir::glob() can now take an array of glob patterns.</div><div class='add'>+</div><div class='add'>+* date</div><div class='add'>+</div><div class='add'>+  * Updated based on date2 4.0.3.</div><div class='add'>+</div><div class='add'>+* digest</div><div class='add'>+</div><div class='add'>+  * New internal APIs for C and Ruby.</div><div class='add'>+</div><div class='add'>+  * Support for autoloading.</div><div class='add'>+</div><div class='add'>+      require 'digest'</div><div class='add'>+</div><div class='add'>+      # autoloads digest/md5</div><div class='add'>+      md = Digest::MD5.digest("string")</div><div class='add'>+</div><div class='add'>+  * New digest class methods: file</div><div class='add'>+</div><div class='add'>+  * New digest instance methods: clone, reset, new, inspect,</div><div class='add'>+    digest_length (alias size or length), block_length()</div><div class='add'>+</div><div class='add'>+  * New library: digest/bubblebabble</div><div class='add'>+</div><div class='add'>+  * New function: Digest(name)</div><div class='add'>+</div><div class='add'>+* fileutils</div><div class='add'>+</div><div class='add'>+  * New option for FileUtils.cp_r(): :remove_destination</div><div class='add'>+</div><div class='add'>+* nkf</div><div class='add'>+</div><div class='add'>+  * Updated based on nkf as of 2007-01-28.</div><div class='add'>+</div><div class='add'>+* thread</div><div class='add'>+</div><div class='add'>+  * Replaced with much faster mutex implementation in C.  The former</div><div class='add'>+    implementation, which is slow but considered to be stable, is</div><div class='add'>+    available with a configure option `--disable-fastthread'.</div><div class='add'>+</div><div class='add'>+* tk</div><div class='add'>+</div><div class='add'>+  * Updated Tile extension support based on Tile 0.7.8.</div><div class='add'>+</div><div class='add'>+  * Support --without-X11 configure option for non-X11 versions of</div><div class='add'>+    Tcl/Tk (e.g. Tcl/Tk Aqua).</div><div class='add'>+</div><div class='add'>+  * New sample script: irbtkw.rbw -- IRB on Ruby/Tk. It has no trouble</div><div class='add'>+    about STDIN blocking on Windows.</div><div class='add'>+</div><div class='add'>+* webrick</div><div class='add'>+</div><div class='add'>+  * New method: WEBrick::Cookie.parse_set_cookies()</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+* builtin classes</div><div class='add'>+</div><div class='add'>+  * String#intern now raises SecurityError when $SAFE level is greater</div><div class='add'>+    than zero.</div><div class='add'>+</div><div class='add'>+* date</div><div class='add'>+</div><div class='add'>+  * Time#to_date and Time#to_datetime are added as private methods.</div><div class='add'>+    They cause name conflict error in ActiveSupport 1.4.1 and prior,</div><div class='add'>+    which comes with Rails 1.2.2 and prior.  Updating ActiveSupport</div><div class='add'>+    and/or Rails to the latest versions fixes the problem.</div><div class='add'>+</div><div class='add'>+* digest</div><div class='add'>+</div><div class='add'>+  * The constructor does no longer take an initial string to feed.</div><div class='add'>+    The following examples show how to migrate:</div><div class='add'>+</div><div class='add'>+      # Before</div><div class='add'>+      md = Digest::MD5.new("string")</div><div class='add'>+      # After (works with any version)</div><div class='add'>+      md = Digest::MD5.new.update("string")</div><div class='add'>+        </div><div class='add'>+      # Before</div><div class='add'>+      hd = Digest::MD5.new("string").hexdigest</div><div class='add'>+      # After (works with any version)</div><div class='add'>+      hd = Digest::MD5.hexdigest("string")</div><div class='add'>+</div><div class='add'>+  * Digest::Base#==</div><div class='add'>+</div><div class='add'>+    * self == string</div><div class='add'>+</div><div class='add'>+      Automatic detection between binary digest values and hexadecimal</div><div class='add'>+      digest values has been dropped.  It is always assumed that a</div><div class='add'>+      hexadecimal digest value is given for comparison.</div><div class='add'>+</div><div class='add'>+    * self == md</div><div class='add'>+</div><div class='add'>+      Digest objects are compared by the resulting digest values, not</div><div class='add'>+      by the exact vector states.</div><div class='add'>+</div><div class='add'>+* fileutils</div><div class='add'>+</div><div class='add'>+  * A minor implementation change breaks Rake &lt;=0.7.1.</div><div class='add'>+    Updating Rake to 0.7.2 or higher fixes the problem.</div><div class='add'>+</div><div class='add'>+* tk</div><div class='add'>+</div><div class='add'>+  * Tk::X_Scrollable (Y_Scrollable) is renamed to Tk::XScrollable</div><div class='add'>+    (YScrollable). Tk::X_Scrollable (Y_Scrollable) is still available,</div><div class='add'>+    but it is an alias name.</div><div class='head'>diff --git a/doc/NEWS-1.9.1 b/doc/NEWS-1.9.1<br/>new file mode 100644<br/>index 0000000000..f2afa00bdc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS-1.9.1?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/NEWS-1.9.1</a></div><div class='hunk'>@@ -0,0 +1,422 @@</div><div class='add'>+= NEWS</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.8.7 release</div><div class='add'>+See doc/NEWS-1.8.7 for changes between 1.8.6 and 1.8.7.</div><div class='add'>+</div><div class='add'>+=== Compatibility issues</div><div class='add'>+</div><div class='add'>+* language core</div><div class='add'>+</div><div class='add'>+    * New syntax and semantics</div><div class='add'>+          o Block arguments are always local</div><div class='add'>+          o New semantics for block arguments</div><div class='add'>+          o defined? and local variables</div><div class='add'>+          o Parser expects that your source code has only valid byte</div><div class='add'>+            sequence in some character encoding.  Use magic comments</div><div class='add'>+            to tell the parser which encoding you use.</div><div class='add'>+          o New semantics for constant definition in instance_eval</div><div class='add'>+            or in module_eval.</div><div class='add'>+</div><div class='add'>+    * Deprecated syntax</div><div class='add'>+          o colon (:) instead of "then" in if/unless or case expression.</div><div class='add'>+          o retry in a loop or an iterator.</div><div class='add'>+</div><div class='add'>+* builtin classes and objects</div><div class='add'>+</div><div class='add'>+    * Kernel and Object</div><div class='add'>+          o Kernel#methods and #singleton_methods used to return an </div><div class='add'>+            array of strings but now they return an array of symbols.</div><div class='add'>+    * Class and Module</div><div class='add'>+          o Module#attr works as Module#attr_reader by default.</div><div class='add'>+	    Optional boolean argument is obsolete.</div><div class='add'>+          o Module#instance_methods, #private_instance_methods and</div><div class='add'>+            #public_instance_methods used to return an array of </div><div class='add'>+            strings but now they return an array of symbols.</div><div class='add'>+          o Extra subclassing check when binding UnboundMethods</div><div class='add'>+            </div><div class='add'>+    * Exceptions</div><div class='add'>+          o Exceptions are equal to each other if they belong to </div><div class='add'>+            the same class and have the same message and backtrace.</div><div class='add'>+          o SystemStackError used to be a subclass of StandardError</div><div class='add'>+            but not it is a direct subclass of Exception.</div><div class='add'>+          o SecurityError: ditto</div><div class='add'>+          o Removed Exception#to_str [Ruby2]</div><div class='add'>+</div><div class='add'>+    * Enumerable and Enumerator</div><div class='add'>+          o Enumerable::Enumerator, compatibility alias of Enumerator,</div><div class='add'>+            is removed.</div><div class='add'>+          o Enumerable#{map,collect} called without a block returns</div><div class='add'>+            an enumerator.</div><div class='add'>+          o Even more builtin and bundled libraries have been made to</div><div class='add'>+            return an enumerator when called without a block.</div><div class='add'>+    * Array</div><div class='add'>+          o Array#nitems was removed (use count {|i| !i.nil?})</div><div class='add'>+          o Array#choice was removed (use sample)</div><div class='add'>+          o Array#[m,n] = nil places nil in the array.</div><div class='add'>+    * Hash</div><div class='add'>+          o Hash#to_s is equivalent to Hash#inspect</div><div class='add'>+          o Semantics for Hash#each and Hash#each_pair</div><div class='add'>+          o Hash#select returns a hash</div><div class='add'>+          o Hash#key is the new name for #index which has been</div><div class='add'>+            deprecated.</div><div class='add'>+          o Hash preserves order.  It enumerates its elements in the</div><div class='add'>+            order in which the keys are inserted.</div><div class='add'>+          o Most of the changes in Hash apply to hash like interfaces</div><div class='add'>+            such as ENV and *DBM.</div><div class='add'>+    * IO operations</div><div class='add'>+          o Many methods used to act byte-wise but now some of those act </div><div class='add'>+            character-wise. You can use alternate byte-wise methods.</div><div class='add'>+          o IO#getc</div><div class='add'>+          o Non-blocking IO</div><div class='add'>+          o Kernel#open takes "t" for newline conversion</div><div class='add'>+          o Kernel#open takes encoding specified</div><div class='add'>+          o IO automatically converts byte sequence from a character</div><div class='add'>+            encodings into another if specified.</div><div class='add'>+          o StringIO#readpartial</div><div class='add'>+          o IO.try_convert</div><div class='add'>+          o IO.binread</div><div class='add'>+          o IO.copy_stream</div><div class='add'>+          o IO#binmode?</div><div class='add'>+          o IO#close_on_exec= and IO#close_on_exec?</div><div class='add'>+          o Limit input in IO#gets, IO#readline, IO#readlines,</div><div class='add'>+            IO#each_line, IO#lines, IO.foreach, IO.readlines,</div><div class='add'>+            StringIO#gets, StringIO#readline, StringIO#each,</div><div class='add'>+            StringIO#readlines</div><div class='add'>+          o IO#ungetc, StringIO#ungetc</div><div class='add'>+          o IO#ungetbyte, StringIO#ungetbyte</div><div class='add'>+          o IO#internal_encoding, IO#external_encoding,</div><div class='add'>+            IO#set_encoding</div><div class='add'>+          o IO.pipe takes encoding option</div><div class='add'>+          o Directive %u behaves like %d for negative values in </div><div class='add'>+            printf-style formatting.</div><div class='add'>+    * File and Dir operations</div><div class='add'>+          o #to_path is called as necessary in File.path, File.chmod,</div><div class='add'>+            File.lchmod, File.chown, File.lchown, File.utime,</div><div class='add'>+            File.unlink, etc..</div><div class='add'>+          o File.world_readable?</div><div class='add'>+          o File.world_writable?</div><div class='add'>+          o Dir.[], Dir.glob</div><div class='add'>+          o Dir.exist?</div><div class='add'>+          o Dir.exists?</div><div class='add'>+    * File::Stat</div><div class='add'>+          o File::Stat#world_readable?</div><div class='add'>+          o File::Stat#world_writable?</div><div class='add'>+    * String</div><div class='add'>+          o No longer an Enumerable: use each_line/lines for line</div><div class='add'>+            oriented operation</div><div class='add'>+          o Encoding-awareness</div><div class='add'>+              o Character-wise semantics in many methods instead of</div><div class='add'>+                byte-wise.</div><div class='add'>+                  o String#[]: Indexing a String with an integer returns a</div><div class='add'>+                    single character String instead of an integer.</div><div class='add'>+                  o String#[]=: No longer takes an integer as right</div><div class='add'>+                    side value.  Note that "str[i] = ?c" because of</div><div class='add'>+                    the following change.</div><div class='add'>+                  o ?c is evaluated to a single character string</div><div class='add'>+                    instead of an integer.</div><div class='add'>+    * Regexp</div><div class='add'>+          o Encoding-awareness</div><div class='add'>+          o Regexp matches only with strings which is encoded in a</div><div class='add'>+            compatible character encoding to the regexp's.</div><div class='add'>+          o Regexp#kcode is removed. use Regexp#encoding.</div><div class='add'>+    * Symbols: restriction on literal symbols</div><div class='add'>+    * Numeric</div><div class='add'>+          o Numeric#div always rounds as Integer#div has done.</div><div class='add'>+          o Numeric#fdiv: ditto.</div><div class='add'>+    * Integer</div><div class='add'>+          o Integer(nil) raises TypeError</div><div class='add'>+    * Fixnum</div><div class='add'>+          o Fixnum#id2name removed</div><div class='add'>+          o Fixnum#to_sym removed</div><div class='add'>+    * Struct</div><div class='add'>+          o Struct#inspect</div><div class='add'>+    * Time</div><div class='add'>+          o New format in Time#to_s</div><div class='add'>+          o Timezone information preserved on Marshal.dump/load</div><div class='add'>+    * $SAFE and bound methods</div><div class='add'>+          o New trusted/untrusted model in addition to</div><div class='add'>+            tainted/untainted model.</div><div class='add'>+</div><div class='add'>+    * Deprecation</div><div class='add'>+          o $= (global flag for case-sensitiveness on string matching)</div><div class='add'>+          o Kernel#to_a</div><div class='add'>+          o Kernel#getc, #gsub, #sub</div><div class='add'>+          o Kernel#callcc and Continuation now become 'continuation'</div><div class='add'>+            bundled library.</div><div class='add'>+          o Object#type</div><div class='add'>+          o Removed Array and Hash #indices, #indexes</div><div class='add'>+          o Hash#index</div><div class='add'>+          o ENV.index</div><div class='add'>+          o Process::Status#to_int</div><div class='add'>+          o Numeric#rdiv</div><div class='add'>+          o Precision is removed.  Don't cry, it will be redesigned</div><div class='add'>+            and come back in future version.</div><div class='add'>+          o Symbol#to_int and Symbol#to_i</div><div class='add'>+          o $KCODE is no longer effective.  Use Encoding related</div><div class='add'>+            features of each class.</div><div class='add'>+          o VERSION and friends</div><div class='add'>+</div><div class='add'>+* bundled libraries</div><div class='add'>+</div><div class='add'>+    * Pathname</div><div class='add'>+          o No longer has #to_str nor #=~.</div><div class='add'>+    * time and date</div><div class='add'>+          o Time.parse and Date.parse interprets slashed numerical dates </div><div class='add'>+	    as "dd/mm/yyyy".</div><div class='add'>+    * Readline</div><div class='add'>+          o If Readline uses libedit, Readline::HISTORY[0] returns the</div><div class='add'>+            first of the history.</div><div class='add'>+    * Continuation</div><div class='add'>+          o as above</div><div class='add'>+</div><div class='add'>+    * Deprecation</div><div class='add'>+          o Complex#image: use Complex#imag</div><div class='add'>+          o All SSL-related class methods in Net::SMTP</div><div class='add'>+          o Prime#cache, Prime#primes, Prime#primes_so_far</div><div class='add'>+          o mailread library: use tmail gem.</div><div class='add'>+          o cgi-lib library: use cgi.</div><div class='add'>+          o date2 library: use date.</div><div class='add'>+          o eregex library</div><div class='add'>+          o finalize library: use ObjectSpace.define_finalizer if you</div><div class='add'>+            really need a finalizer. really?</div><div class='add'>+          o ftools library: use fileutils.</div><div class='add'>+          o generator library: use Enumerator.</div><div class='add'>+          o importenv library and Env library</div><div class='add'>+          o jcode library: use multilingualization support of String</div><div class='add'>+          o parsedate library</div><div class='add'>+          o ping library</div><div class='add'>+          o readbytes library</div><div class='add'>+          o getopts library and parsearg library: use optparse or</div><div class='add'>+            getoptlong.</div><div class='add'>+          o soap, wsdl and xsd libraries: use soap4r gem.</div><div class='add'>+          o Win32API library: use dl.</div><div class='add'>+          o dl library: Reimplemented and API changed. use the new</div><div class='add'>+	    version of dl or ffi gem.</div><div class='add'>+          o rubyunit library and runit library: use minitest or</div><div class='add'>+            test/unit. Or use anything you love through RubyGems.</div><div class='add'>+          o test/unit is reimplemented on top of minitest.  This is</div><div class='add'>+            not fully compatible with the original.</div><div class='add'>+</div><div class='add'>+=== Language core changes</div><div class='add'>+</div><div class='add'>+    * New syntax and semantics</div><div class='add'>+          o Magic comments to declare in which encoding your source</div><div class='add'>+            code is written</div><div class='add'>+          o New literal hash syntax and new syntax for hash style </div><div class='add'>+	    arguments </div><div class='add'>+          o New syntax for lambdas</div><div class='add'>+          o .() and calling Procs without #call/#[]</div><div class='add'>+          o Block in block arguments</div><div class='add'>+          o Block local variables</div><div class='add'>+          o Mandatory arguments after optional arguments allowed</div><div class='add'>+          o Multiple splats allowed</div><div class='add'>+          o #[] can take splatted arguments, hash style arguments </div><div class='add'>+            and a block.</div><div class='add'>+          o New directives in printf-style formatted strings (%).</div><div class='add'>+          o Newlines allowed before ternary colon operator (:) and</div><div class='add'>+            method call dot operator (.)</div><div class='add'>+          o Negative operators such as !, != and !~ are now</div><div class='add'>+            overloadable</div><div class='add'>+          o Encoding.default_external and default_internal</div><div class='add'>+          o __ENCODING__: New pseudo variable to hold the current</div><div class='add'>+            script's encoding</div><div class='add'>+</div><div class='add'>+=== Library updates</div><div class='add'>+</div><div class='add'>+* builtin classes and objects</div><div class='add'>+    * Kernel and Object</div><div class='add'>+          o BasicObject</div><div class='add'>+          o Object#=~ returns nil instead of false by default.</div><div class='add'>+          o Kernel#define_singleton_method</div><div class='add'>+	  o Kernel#load can load a library from the highest versions</div><div class='add'>+	    of gems by default.</div><div class='add'>+    * Class and Module</div><div class='add'>+          o Module#const_defined?, #const_get and #method_defined?</div><div class='add'>+            take an optional parameter.</div><div class='add'>+          o #class_variable_{set,get} are public.</div><div class='add'>+          o Class of singleton classes</div><div class='add'>+</div><div class='add'>+    * Errno::EXXX</div><div class='add'>+          o All of those are always defined.  Errno::EXXX will be</div><div class='add'>+            defined as an alias to Errno::NOERROR if your platform</div><div class='add'>+            does not have one.</div><div class='add'>+</div><div class='add'>+    * Binding#eval</div><div class='add'>+    * Blocks and Procs</div><div class='add'>+          o Arity of blocks without arguments</div><div class='add'>+          o proc is now a synonym of Proc.new</div><div class='add'>+          o Proc#yield</div><div class='add'>+          o Passing blocks to #[]</div><div class='add'>+          o Proc#lambda?</div><div class='add'>+          o Proc#curry</div><div class='add'>+    * Fiber: coroutines/micro-threads</div><div class='add'>+    * Thread</div><div class='add'>+          o Thread.critical and Thread.critical= removed</div><div class='add'>+          o Thread#exit!, Thread#kill! and Thread#terminate! removed.</div><div class='add'>+</div><div class='add'>+    * Enumerable and Enumerator</div><div class='add'>+          o Enumerator#enum_cons and Enumerator#enum_slice are</div><div class='add'>+            removed.  Use #each_cons and #each_slice without a block.            </div><div class='add'>+          o Enumerable#each_with_index can take optional arguments</div><div class='add'>+            and passes them to #each.</div><div class='add'>+          o Enumerable#each_with_object</div><div class='add'>+          o Enumerator#with_object</div><div class='add'>+          o Enumerator.new { ... }</div><div class='add'>+    * Array</div><div class='add'>+          o Array#delete returns a deleted element rather than a given</div><div class='add'>+            object</div><div class='add'>+          o Array#to_s is equivalent to Array#inspect</div><div class='add'>+          o Array.try_convert</div><div class='add'>+          o Array#pack('m0') complies with RFC 4648.</div><div class='add'>+    * Hash</div><div class='add'>+          o preserving item insertion order</div><div class='add'>+          o Hash#default_proc=</div><div class='add'>+          o Hash#_compare_by_identity and Hash#compare_by_identity?</div><div class='add'>+          o Hash.try_convert</div><div class='add'>+          o Hash#assoc</div><div class='add'>+          o Hash#rassoc</div><div class='add'>+          o Hash#flatten</div><div class='add'>+    * Range</div><div class='add'>+          o Range#cover?</div><div class='add'>+          o Range#include? iterates over elements and compares the</div><div class='add'>+            given value with each element unless the range is numeric.</div><div class='add'>+            Use Range#cover? for the old behavior, i.e. comparison</div><div class='add'>+            with boundary values.</div><div class='add'>+          o Range#min, Range#max</div><div class='add'>+</div><div class='add'>+    * File and Dir operations</div><div class='add'>+          o New methods</div><div class='add'>+    * Process</div><div class='add'>+          o Process.spawn</div><div class='add'>+          o Process.daemon</div><div class='add'>+    * String</div><div class='add'>+          o String#clear</div><div class='add'>+          o String#ord</div><div class='add'>+          o String#getbyte, String#setbyte</div><div class='add'>+          o String#chars and String#each_char act as character-wise.</div><div class='add'>+          o String#codepoints, String#each_codepoint</div><div class='add'>+          o String#unpack with a block</div><div class='add'>+          o String#hash</div><div class='add'>+          o String.try_convert</div><div class='add'>+          o String#encoding</div><div class='add'>+	  o String#force_encoding, String#encode and String#encode!</div><div class='add'>+          o String#ascii_only?</div><div class='add'>+          o String#valid_encoding?</div><div class='add'>+	  o String#match</div><div class='add'>+    * Symbol</div><div class='add'>+          o Zero-length symbols allowed</div><div class='add'>+          o Symbol#intern</div><div class='add'>+          o Symbol#encoding</div><div class='add'>+          o Symbol methods similar to those in String</div><div class='add'>+    * Regexp</div><div class='add'>+          o Regexp#=== matches symbols</div><div class='add'>+          o Regexp.try_convert</div><div class='add'>+          o Regexp#match</div><div class='add'>+          o Regexp#fixed_encoding?</div><div class='add'>+          o Regexp#encoding</div><div class='add'>+          o Regexp#named_captures</div><div class='add'>+          o Regexp#names</div><div class='add'>+    * MatchData</div><div class='add'>+          o MatchData#names</div><div class='add'>+          o MatchData#regexp</div><div class='add'>+    * Encoding</div><div class='add'>+    * Encoding::Converter</div><div class='add'>+          o supports conversion between many encodings</div><div class='add'>+    * Numeric</div><div class='add'>+          o Numeric#upto, #downto, #times, #step</div><div class='add'>+          o Numeric#real?, Complex#real?</div><div class='add'>+          o Numeric#magnitude</div><div class='add'>+    * Rational / Complex</div><div class='add'>+          o They are in the core library now</div><div class='add'>+    * Math</div><div class='add'>+          o Math#log takes an optional argument.</div><div class='add'>+          o Math#log2</div><div class='add'>+          o Math#cbrt, Math#lgamma, Math#gamma</div><div class='add'>+    * Time</div><div class='add'>+          o Time.times removed.  Use Process.times.</div><div class='add'>+          o Time#sunday?</div><div class='add'>+          o Time#monday?</div><div class='add'>+          o Time#tuesday?</div><div class='add'>+          o Time#wednesday?</div><div class='add'>+          o Time#thursday?</div><div class='add'>+          o Time#friday?</div><div class='add'>+          o Time#saturday?</div><div class='add'>+          o Time#tv_nsec and Time#nsec</div><div class='add'>+    * Misc. new methods</div><div class='add'>+          o RUBY_ENGINE to distinguish between Ruby processor implementation</div><div class='add'>+          o public_method</div><div class='add'>+          o public_send</div><div class='add'>+          o GC.count</div><div class='add'>+          o ObjectSpace.count_objects</div><div class='add'>+          o Method#hash, Proc#hash</div><div class='add'>+          o Method#source_location, UnboundMethod#source_location and</div><div class='add'>+	    Proc#source_location</div><div class='add'>+          o __callee__</div><div class='add'>+          o Elements in $LOAD_PATH and $LOADED_FEATURES are expanded</div><div class='add'>+</div><div class='add'>+* bundled libraries</div><div class='add'>+    * RubyGems</div><div class='add'>+          o Package management system for Ruby.</div><div class='add'>+          o Integrated with Ruby's library loader.</div><div class='add'>+    * Rake</div><div class='add'>+          o Ruby make. A simple ruby build program with capabilities</div><div class='add'>+            similar to make.</div><div class='add'>+    * minitest</div><div class='add'>+          o Our new testing library which is faster, cleaner and easier</div><div class='add'>+	    to read than the old test/unit.</div><div class='add'>+          o You can introduce the old test/unit as testunit gem through</div><div class='add'>+            RubyGems if you want.</div><div class='add'>+    * CMath</div><div class='add'>+          o Complex number version of Math</div><div class='add'>+    * Prime</div><div class='add'>+          o Extracted from Mathn and improved. You can easily enumerate</div><div class='add'>+            prime numbers.</div><div class='add'>+          o Prime.new is obsolete. Use its class methods.</div><div class='add'>+    * ripper</div><div class='add'>+          o Ruby script parser</div><div class='add'>+    * Readline</div><div class='add'>+          o Readline.vi_editing_mode?</div><div class='add'>+          o Readline.emacs_editing_mode?</div><div class='add'>+          o Readline::HISTORY.clear</div><div class='add'>+    * Tk</div><div class='add'>+          o TkXXX widget classes are removed and redefined as aliases of </div><div class='add'>+            Tk::XXX classes.</div><div class='add'>+    * RDoc</div><div class='add'>+          o Updated to version 2.2.2.  See:</div><div class='add'>+            http://rubyforge.org/frs/shownotes.php?group_id=627&amp;release_id=26434</div><div class='add'>+    * json</div><div class='add'>+          o JSON (JavaScript Object Notation) encoder/decoder</div><div class='add'>+</div><div class='add'>+* commandline options</div><div class='add'>+    * -E, --encoding</div><div class='add'>+    * -U</div><div class='add'>+    * --enable-gems, --disable-gems</div><div class='add'>+    * --enable-rubyopt, --disable-rubyopt</div><div class='add'>+    * long options are allowed in RUBYOPT environment variable.</div><div class='add'>+</div><div class='add'>+=== Implementation changes</div><div class='add'>+</div><div class='add'>+* Memory Diet</div><div class='add'>+    * Object Compaction - Object, Array, String, Hash, Struct, Class,</div><div class='add'>+      Module</div><div class='add'>+    * st_table compaction (inlining small tables)</div><div class='add'>+* YARV</div><div class='add'>+    * Ruby codes are compiled into opcodes before executed.</div><div class='add'>+    * Native thread</div><div class='add'>+</div><div class='add'>+* Platform supports</div><div class='add'>+    * Support levels</div><div class='add'>+          (0) Supported</div><div class='add'>+          (1) Best effort</div><div class='add'>+          (2) Perhaps</div><div class='add'>+          (3) Not supported</div><div class='add'>+    * Dropped</div><div class='add'>+          o No longer supports djgpp, bcc32, human68k, MacOS 9 or earlier,</div><div class='add'>+            VMS nor Windows CE.</div><div class='head'>diff --git a/doc/NEWS-1.9.2 b/doc/NEWS-1.9.2<br/>new file mode 100644<br/>index 0000000000..11e5c82c58<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/NEWS-1.9.2?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/NEWS-1.9.2</a></div><div class='hunk'>@@ -0,0 +1,499 @@</div><div class='add'>+# -*- rd -*-</div><div class='add'>+= NEWS</div><div class='add'>+</div><div class='add'>+This document is a list of user visible feature changes made between</div><div class='add'>+releases except for bug fixes.</div><div class='add'>+</div><div class='add'>+Note that each entry is kept so brief that no reason behind or</div><div class='add'>+reference information is supplied with.  For a full list of changes</div><div class='add'>+with all sufficient information, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+== Changes since the 1.9.1 release</div><div class='add'>+=== Library updates (outstanding ones only)</div><div class='add'>+</div><div class='add'>+* builtin classes</div><div class='add'>+</div><div class='add'>+  * Array</div><div class='add'>+    * new method:</div><div class='add'>+      * Array#keep_if</div><div class='add'>+      * Array#repeated_combination</div><div class='add'>+      * Array#repeated_permutation</div><div class='add'>+      * Array#rotate</div><div class='add'>+      * Array#rotate!</div><div class='add'>+      * Array#select!</div><div class='add'>+      * Array#sort_by!</div><div class='add'>+</div><div class='add'>+    * extended methods:</div><div class='add'>+      * Array#{uniq,uniq!,product} can take a block.</div><div class='add'>+</div><div class='add'>+  * Complex</div><div class='add'>+    * new methods:</div><div class='add'>+      * Complex#rationalize</div><div class='add'>+</div><div class='add'>+  * Dir</div><div class='add'>+    * new method:</div><div class='add'>+      * Dir.home</div><div class='add'>+</div><div class='add'>+  * Encoding</div><div class='add'>+    * new encodings:</div><div class='add'>+      * Big5</div><div class='add'>+      * Big5-UAO</div><div class='add'>+      * ISO-2022-JP-KDDI</div><div class='add'>+      * SJIS-DoCoMo</div><div class='add'>+      * SJIS-KDDI</div><div class='add'>+      * SJIS-SoftBank</div><div class='add'>+      * UTF8-DoCoMo</div><div class='add'>+      * UTF8-KDDI</div><div class='add'>+      * UTF8-SoftBank</div><div class='add'>+</div><div class='add'>+    * new method:</div><div class='add'>+      * ascii_compatible?</div><div class='add'>+</div><div class='add'>+  * Enumerable</div><div class='add'>+    * New methods:</div><div class='add'>+      * Enumerable#chunk</div><div class='add'>+      * Enumerable#collect_concat</div><div class='add'>+      * Enumerable#each_entry</div><div class='add'>+      * Enumerable#flat_map</div><div class='add'>+      * Enumerable#slice_before</div><div class='add'>+</div><div class='add'>+  * Enumerator</div><div class='add'>+    * new methods:</div><div class='add'>+      * Enumerator#peek</div><div class='add'>+      * Enumerator#next_values</div><div class='add'>+      * Enumerator#peek_values</div><div class='add'>+      * Enumerator#feed</div><div class='add'>+      * StopIteration#result</div><div class='add'>+</div><div class='add'>+    * extended methods:</div><div class='add'>+      * #with_index accepts an optional argument that specifies the</div><div class='add'>+        index number to start with, defaulted to 0.</div><div class='add'>+</div><div class='add'>+    * incompatible changes:</div><div class='add'>+      * #rewind now calls the "rewind" method of the enclosed object</div><div class='add'>+        if defined.</div><div class='add'>+      * #next doesn't clear the position at end.</div><div class='add'>+</div><div class='add'>+  * ENV</div><div class='add'>+    * Uses locale's encoding</div><div class='add'>+    * ENV.[]= raises Errno::{EINVAL,ENOMEM} etc. on failure.</div><div class='add'>+    * new methods:</div><div class='add'>+      * ENV.keep_if</div><div class='add'>+      * ENV.select!</div><div class='add'>+</div><div class='add'>+  * Float</div><div class='add'>+    * new constants:</div><div class='add'>+      * Float::INFINITY</div><div class='add'>+      * Float::NAN</div><div class='add'>+    * new methods:</div><div class='add'>+      * Float#rationalize</div><div class='add'>+</div><div class='add'>+  * File</div><div class='add'>+    * new methods:</div><div class='add'>+      * File.realpath</div><div class='add'>+      * File.realdirpath</div><div class='add'>+      * File#size</div><div class='add'>+</div><div class='add'>+  * GC::Profiler</div><div class='add'>+    * new method:</div><div class='add'>+      * GC::Profiler.total_time</div><div class='add'>+</div><div class='add'>+  * Hash</div><div class='add'>+    * new methods:</div><div class='add'>+      * Hash#keep_if</div><div class='add'>+      * Hash#select!</div><div class='add'>+</div><div class='add'>+  * IO</div><div class='add'>+    * new method:</div><div class='add'>+      * IO#autoclose=</div><div class='add'>+      * IO#autoclose?</div><div class='add'>+      * IO#fdatasync</div><div class='add'>+      * IO#codepoints</div><div class='add'>+      * IO#each_codepoint</div><div class='add'>+</div><div class='add'>+    * extended methods:</div><div class='add'>+      * IO.pipe can take a block.</div><div class='add'>+</div><div class='add'>+    * new modules:</div><div class='add'>+      * IO::WaitReadable</div><div class='add'>+      * IO::WaitWritable</div><div class='add'>+        They are used to extend non-blocking exceptions.</div><div class='add'>+</div><div class='add'>+  * Integer</div><div class='add'>+    * new methods:</div><div class='add'>+      * Integer#rationalize</div><div class='add'>+</div><div class='add'>+  * Kernel</div><div class='add'>+    * new methods:</div><div class='add'>+      * Kernel#respond_to_missing?</div><div class='add'>+      * Kernel#singleton_class</div><div class='add'>+      * Kernel#require_relative</div><div class='add'>+</div><div class='add'>+    * extended methods:</div><div class='add'>+      * Kernel#respond_to? can be used to detect methods not implemented.</div><div class='add'>+        For example, Process.respond_to?(:fork) returns false on Windows.</div><div class='add'>+</div><div class='add'>+    * incompatible changes:</div><div class='add'>+      * Kernel#instance_eval yields the receiver.</div><div class='add'>+</div><div class='add'>+      * Kernel#exec</div><div class='add'>+      * Kernel#spawn</div><div class='add'>+      * Kernel#system</div><div class='add'>+      * Kernel#` (`...`)</div><div class='add'>+        ..etc.</div><div class='add'>+</div><div class='add'>+        On Windows, the current directory is no longer implicitly</div><div class='add'>+        prepended to the default command search path, just like other</div><div class='add'>+        platforms.</div><div class='add'>+</div><div class='add'>+  * MatchData</div><div class='add'>+    * New method:</div><div class='add'>+      * MatchData#==</div><div class='add'>+</div><div class='add'>+  * NilClass</div><div class='add'>+    * new methods:</div><div class='add'>+      * NilClass#rationalize</div><div class='add'>+</div><div class='add'>+  * Object</div><div class='add'>+    * extended methods:</div><div class='add'>+      * Float() supports hexadecimal floating point format.</div><div class='add'>+      * printf() supports %a/%A format.</div><div class='add'>+</div><div class='add'>+  * Proc</div><div class='add'>+    * extended method:</div><div class='add'>+      * Proc#source_location returns location even if receiver is a method</div><div class='add'>+        defined by attr_reader / attr_writer / attr_accessor.</div><div class='add'>+</div><div class='add'>+  * Process</div><div class='add'>+    * extended methods:</div><div class='add'>+      * Process.spawn accepts [:child, FD] for a redirect target.</div><div class='add'>+</div><div class='add'>+  * Random (new class to generate pseudo-random numbers)</div><div class='add'>+</div><div class='add'>+  * Rational</div><div class='add'>+    * new methods:</div><div class='add'>+      * Rational#rationalize</div><div class='add'>+</div><div class='add'>+  * String</div><div class='add'>+    * extended methods:</div><div class='add'>+      * string[regexp, name] is supported for named capture.</div><div class='add'>+</div><div class='add'>+  * Thread</div><div class='add'>+    * new methods:</div><div class='add'>+      * Thread#add_trace_func</div><div class='add'>+      * Thread#set_trace_func</div><div class='add'>+</div><div class='add'>+  * Time</div><div class='add'>+    * extended feature:</div><div class='add'>+      * time_t restriction is removed to represent before 1901 and after 2038.</div><div class='add'>+        Proleptic Gregorian calendar is used for old dates.</div><div class='add'>+      * Time.new have optional arguments to specify date with time offset.</div><div class='add'>+      * Time#getlocal, Time#localtime have optional time offset argument.</div><div class='add'>+</div><div class='add'>+    * new method:</div><div class='add'>+      * Time#to_r</div><div class='add'>+      * Time#subsec</div><div class='add'>+      * Time#round</div><div class='add'>+</div><div class='add'>+    * incompatible changes:</div><div class='add'>+      * The year argument of Time.{utc,gm,local,mktime} is now interpreted as</div><div class='add'>+        the value itself.  For example, Time.utc(99) means the year 99 AD,</div><div class='add'>+        not 1999 AD.</div><div class='add'>+</div><div class='add'>+* digest</div><div class='add'>+  * new methods:</div><div class='add'>+    * Digest::Class.base64digest</div><div class='add'>+    * Digest::Instance#base64digest</div><div class='add'>+    * Digest::Instance#base64digest!</div><div class='add'>+</div><div class='add'>+  * Digest::HMAC (digest/hmac) has been marked as deprecated because</div><div class='add'>+    it was unintentional for the experimental library to be included</div><div class='add'>+    in the final release of 1.9.1.  Please use OpenSSL::HMAC instead.</div><div class='add'>+</div><div class='add'>+* rss</div><div class='add'>+</div><div class='add'>+  * 0.2.4 -&gt; 0.2.7.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker.make</div><div class='add'>+    * raise an exception not returns nil for invalid feed making.</div><div class='add'>+    * requires block.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker.[]</div><div class='add'>+    * new method to return maker class.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker.supported?(version)</div><div class='add'>+    * new method to check whether given version is supported.</div><div class='add'>+</div><div class='add'>+  * RSS::Maker: item.guid.permanent_link?</div><div class='add'>+    * new alias of item.guid.isPermaLink</div><div class='add'>+  * RSS::Maker: item.guid.permanent_link=</div><div class='add'>+    * new alias of item.guid.isPermaLink=</div><div class='add'>+</div><div class='add'>+* DL</div><div class='add'>+  * Now uses libffi as a backend if avaiable.</div><div class='add'>+    It means DL works fine on more platforms.</div><div class='add'>+</div><div class='add'>+* Fiddle</div><div class='add'>+  * A lightweight wrapper for libffi.</div><div class='add'>+</div><div class='add'>+* YAML</div><div class='add'>+  * Now uses libyaml as a backend if available.</div><div class='add'>+    It means YAML library supports new standards for YAML.</div><div class='add'>+</div><div class='add'>+* Psych</div><div class='add'>+  * A wrapper for libyaml.</div><div class='add'>+</div><div class='add'>+* JSON</div><div class='add'>+  * Update to JSON 1.1.9</div><div class='add'>+</div><div class='add'>+* REXML</div><div class='add'>+</div><div class='add'>+  * REXML::Document.entity_expansion_limit=</div><div class='add'>+</div><div class='add'>+    New method to set the entity expansion limit. By default the limit is</div><div class='add'>+    set to 10000.  See the following URL for details.</div><div class='add'>+</div><div class='add'>+    http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/</div><div class='add'>+</div><div class='add'>+* RDoc</div><div class='add'>+</div><div class='add'>+  * Updated to RDoc 2.5.8</div><div class='add'>+</div><div class='add'>+* RubyGems</div><div class='add'>+</div><div class='add'>+  * Updated to RubyGems 1.3.7</div><div class='add'>+</div><div class='add'>+* logger</div><div class='add'>+</div><div class='add'>+  * imported upstream version (logger/1.2.7)</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'>+</div><div class='add'>+* matrix</div><div class='add'>+  * API change to adhere strictly to mathematical definitions:</div><div class='add'>+    * Matrices must now be rectangular.</div><div class='add'>+    * trace, regular?, singular? are defined only for square matrices</div><div class='add'>+    * support for empty matrices</div><div class='add'>+    * all integer matrices now have the right determinant (also an integer)</div><div class='add'>+</div><div class='add'>+  * Matrix and Vector include Enumerable.</div><div class='add'>+</div><div class='add'>+  * new methods:</div><div class='add'>+    * Matrix.build</div><div class='add'>+    * Matrix.empty</div><div class='add'>+    * Matrix#conj</div><div class='add'>+    * Matrix#conjugate</div><div class='add'>+    * Matrix#each</div><div class='add'>+    * Matrix#each_with_index</div><div class='add'>+    * Matrix#empty?</div><div class='add'>+    * Matrix#imag</div><div class='add'>+    * Matrix#imaginary</div><div class='add'>+    * Matrix#real</div><div class='add'>+    * Matrix#real?</div><div class='add'>+    * Matrix#rect</div><div class='add'>+    * Matrix#rectangular</div><div class='add'>+</div><div class='add'>+* net/http</div><div class='add'>+  * merged net/https.</div><div class='add'>+</div><div class='add'>+* open3</div><div class='add'>+  * new methods:</div><div class='add'>+    * Open3.popen2</div><div class='add'>+    * Open3.popen2e</div><div class='add'>+    * Open3.capture3</div><div class='add'>+    * Open3.capture2</div><div class='add'>+    * Open3.capture2e</div><div class='add'>+    * Open3.pipeline_rw</div><div class='add'>+    * Open3.pipeline_r</div><div class='add'>+    * Open3.pipeline_w</div><div class='add'>+    * Open3.pipeline_start</div><div class='add'>+    * Open3.pipeline</div><div class='add'>+</div><div class='add'>+* pty</div><div class='add'>+  * new methods:</div><div class='add'>+    * PTY.open</div><div class='add'>+    * PTY.check</div><div class='add'>+  * deprecated methods:</div><div class='add'>+    * protect_signal</div><div class='add'>+    * reset_signal</div><div class='add'>+</div><div class='add'>+* openssl</div><div class='add'>+  * new methods:</div><div class='add'>+    * OpenSSL::Buffering#read_nonblock</div><div class='add'>+    * OpenSSL::Buffering#write_nonblock</div><div class='add'>+    * OpenSSL::SSL::SSLSocket#connect_nonblock</div><div class='add'>+    * OpenSSL::SSL::SSLSocket#accept_nonblock</div><div class='add'>+</div><div class='add'>+* scanf</div><div class='add'>+  * support %a/%A format.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+* socket</div><div class='add'>+</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Socket#{recvfrom,recvfrom_nonblock,accept,accept_nonblock,sysaccept}</div><div class='add'>+      returns a sender address as Addrinfo object instead of a binary sockaddr string.</div><div class='add'>+      Addrinfo#to_s returns the old binary sockaddr string.</div><div class='add'>+    * BasicSocket#getsockopt returns Socket::Option object instead of a binary string.</div><div class='add'>+      Socket::Option#to_s returns the old binary string.</div><div class='add'>+    * Socket.do_not_reverse_lookup is turned on by default now.</div><div class='add'>+</div><div class='add'>+  * new class:</div><div class='add'>+    * Addrinfo</div><div class='add'>+    * Socket::Option</div><div class='add'>+    * Socket::AncillaryData</div><div class='add'>+</div><div class='add'>+  * new methods:</div><div class='add'>+    * Socket.ip_address_list</div><div class='add'>+    * Socket.tcp</div><div class='add'>+    * Socket.tcp_server_loop</div><div class='add'>+    * Socket.tcp_server_sockets</div><div class='add'>+    * Socket.udp_server_sockets</div><div class='add'>+    * Socket.udp_server_loop_on</div><div class='add'>+    * Socket.udp_server_loop</div><div class='add'>+    * Socket.unix</div><div class='add'>+    * Socket.unix_server_loop</div><div class='add'>+    * Socket.unix_server_socket</div><div class='add'>+    * Socket.accept_loop</div><div class='add'>+    * Socket#ipv6only!</div><div class='add'>+    * BasicSocket#local_address</div><div class='add'>+    * BasicSocket#remote_address</div><div class='add'>+    * BasicSocket#connect_address</div><div class='add'>+    * BasicSocket#sendmsg</div><div class='add'>+    * BasicSocket#sendmsg_nonblock</div><div class='add'>+    * BasicSocket#recvmsg</div><div class='add'>+    * BasicSocket#recvmsg_nonblock</div><div class='add'>+    * BasicSocket#getpeereid</div><div class='add'>+</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Socket.new's 3rd argument is optional now.</div><div class='add'>+    * Socket.pair's 3rd argument is optional now.</div><div class='add'>+    * Socket.pair and UNIXSocket.pair can take a block.</div><div class='add'>+    * BasicSocket#send, UDPSocket#send, Socket.getnameinfo, Socket#bind, and</div><div class='add'>+      Socket#{connect,connect_nonblock} accepts an Addrinfo object as sockaddr.</div><div class='add'>+    * BasicSocket#getsockopt accepts a Socket::Option object.</div><div class='add'>+    * Socket.getaddrinfo and IPSocket#{addr,peeraddr} accept an optional</div><div class='add'>+      argument to turn reverse lookup on/off.</div><div class='add'>+</div><div class='add'>+    * constant names can be accepted as well as constant values.</div><div class='add'>+      i.e. Socket.new(:PF_INET, :SOCK_STREAM, 0)</div><div class='add'>+      The constant names can be specified without the prefix.</div><div class='add'>+      i.e. Socket.new(:INET, :STREAM, 0)</div><div class='add'>+      * protocol/address family</div><div class='add'>+      * socket type</div><div class='add'>+      * socket option protocol level</div><div class='add'>+      * socket option name</div><div class='add'>+      * shutdown's argument</div><div class='add'>+</div><div class='add'>+* stringio</div><div class='add'>+  * new methods:</div><div class='add'>+    * StringIO#read_nonblock</div><div class='add'>+    * StringIO#write_nonblock</div><div class='add'>+* pathname</div><div class='add'>+  * new methods:</div><div class='add'>+    * Pathname#binread</div><div class='add'>+    * Pathname#realdirpath</div><div class='add'>+    * Pathname#each_child</div><div class='add'>+</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Pathname#realpath and Pathname#realdirpath takes optional basedir</div><div class='add'>+      argument.</div><div class='add'>+</div><div class='add'>+* Readline</div><div class='add'>+  * new methods:</div><div class='add'>+    * Readline.set_screen_size</div><div class='add'>+    * Readline.get_screen_size</div><div class='add'>+</div><div class='add'>+  * extended methods:</div><div class='add'>+    * Readline.completion_proc= accepts nil.</div><div class='add'>+      nil means to use default completion proc.</div><div class='add'>+</div><div class='add'>+* set</div><div class='add'>+  * new methods:</div><div class='add'>+    * Set#keep_if</div><div class='add'>+    * Set#select!</div><div class='add'>+</div><div class='add'>+* time</div><div class='add'>+  * incompatible changes:</div><div class='add'>+    * Time.parse raises ArgumentError when no date information.</div><div class='add'>+</div><div class='add'>+* thread</div><div class='add'>+  * extended method:</div><div class='add'>+    * ConditionVariable#wait takes timeout argument.</div><div class='add'>+</div><div class='add'>+* securerandom</div><div class='add'>+  * new methods:</div><div class='add'>+    * SecureRandom.urlsafe_base64</div><div class='add'>+</div><div class='add'>+* URI</div><div class='add'>+  * new methods:</div><div class='add'>+    * URI.encode_www_form</div><div class='add'>+    * URI.decode_www_form</div><div class='add'>+    * URI.encode_www_form_component</div><div class='add'>+    * URI.decode_www_form_component</div><div class='add'>+  * Obsoleted methods:</div><div class='add'>+    * URI.decode</div><div class='add'>+    * URI.encode</div><div class='add'>+    * URI.escape</div><div class='add'>+    * URI.unescape</div><div class='add'>+</div><div class='add'>+* etc</div><div class='add'>+  * new methods:</div><div class='add'>+    * Etc::Passwd.each</div><div class='add'>+    * Etc::Group.each</div><div class='add'>+</div><div class='add'>+* zlib</div><div class='add'>+  * new methods:</div><div class='add'>+    * Zlib::GzipFile#path</div><div class='add'>+    * Zlib.#adler32_combine</div><div class='add'>+    * Zlib.#crc32_combine</div><div class='add'>+</div><div class='add'>+* rbconfig</div><div class='add'>+  * new methods:</div><div class='add'>+    * RbConfig.ruby</div><div class='add'>+</div><div class='add'>+=== Language changes</div><div class='add'>+</div><div class='add'>+* Regexp properties (\p{}) names now ignore underscores, spaces, and case, so</div><div class='add'>+  \p{ol chiki} is the same as \p{Ol_Chiki}</div><div class='add'>+* Regexps now support Unicode 5.2 (new characters and scripts)</div><div class='add'>+* \d, \s, and \w are now ASCII only; use POSIX bracket classes and \p{} for</div><div class='add'>+  Unicode semantics</div><div class='add'>+* $: no longer includes the current directory, use require_relative</div><div class='add'>+* Symbol with an invalid encoding is forbidden to exist.</div><div class='add'>+</div><div class='add'>+=== Compilation options</div><div class='add'>+</div><div class='add'>+* --program-prefix and --program-suffix no longer act on the shared object</div><div class='add'>+  names nor paths to libraries.</div><div class='add'>+</div><div class='add'>+  use --with-rubylibprefix='${libruby}/${RUBY_INSTALL_NAME}' and</div><div class='add'>+  --with-soname='${RUBY_INSTALL_NAME}' for the same result as Ruby 1.9.1.</div><div class='add'>+</div><div class='add'>+* --with-arch is added for universal binary, instead of</div><div class='add'>+  --enable-fat-binary option.</div><div class='add'>+</div><div class='add'>+=== Compatibility issues (excluding feature bug fixes)</div><div class='add'>+</div><div class='add'>+  * Enumerator#rewind</div><div class='add'>+  * Socket#recvfrom</div><div class='add'>+  * Socket#recvfrom_nonblock</div><div class='add'>+  * Socket#accept</div><div class='add'>+  * Socket#accept_nonblock</div><div class='add'>+  * Socket#sysaccept</div><div class='add'>+  * BasicSocket#getsockopt</div><div class='add'>+  * Time.utc</div><div class='add'>+  * Time.gm</div><div class='add'>+  * Time.local</div><div class='add'>+  * Time.mktime</div><div class='add'>+  * Time.parse</div><div class='add'>+  * --program-prefix and --program-suffix</div><div class='add'>+  * --enable-fat-binary</div><div class='add'>+  * $:</div><div class='add'>+</div><div class='add'>+    See above.</div><div class='add'>+</div><div class='add'>+  * Digest::HMAC</div><div class='add'>+</div><div class='add'>+    Deprecated.  See above.</div><div class='head'>diff --git a/doc/etc.rd b/doc/etc.rd<br/>new file mode 100644<br/>index 0000000000..b69f9884ad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/etc.rd?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/etc.rd</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+# etc.rd -  -*- mode: rd; coding: us-ascii -*- created at: Fri Jul 14 00:47:15 JST 1995</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+= Etc(Module)</div><div class='add'>+</div><div class='add'>+The module to retrieve information from running OS.  All operations</div><div class='add'>+defined in this module are module functions, so that you can include</div><div class='add'>+Etc module into your class.</div><div class='add'>+</div><div class='add'>+== Module Function</div><div class='add'>+</div><div class='add'>+--- getlogin</div><div class='add'>+</div><div class='add'>+	returns login name of the user.  It this fails, try getpwuid().</div><div class='add'>+</div><div class='add'>+--- getpwnam(name)</div><div class='add'>+</div><div class='add'>+	searches in /etc/passwd file (or equivalent database), and</div><div class='add'>+	returns password entry for the user.  The return value is an</div><div class='add'>+	passwd structure, which has members described below.</div><div class='add'>+</div><div class='add'>+	  struct passwd</div><div class='add'>+	    name 	# user name(string)</div><div class='add'>+	    passwd	# encrypted password(string)</div><div class='add'>+	    uid		# user ID(integer)</div><div class='add'>+	    gid		# group ID(integer)</div><div class='add'>+	    gecos	# gecos field(string)</div><div class='add'>+	    dir		# home directory(string)</div><div class='add'>+	    shell	# login shell(string)</div><div class='add'>+	    # members below are optional</div><div class='add'>+	    change	# password change time(integer)</div><div class='add'>+	    quota	# quota value(integer)</div><div class='add'>+	    age		# password age(integer)</div><div class='add'>+	    class	# user access class(string)</div><div class='add'>+	    comment	# comment(string)</div><div class='add'>+	    expire	# account expiration time(integer)	    </div><div class='add'>+	  end</div><div class='add'>+</div><div class='add'>+	See getpwnam(3) for detail.</div><div class='add'>+</div><div class='add'>+--- getpwuid([uid])</div><div class='add'>+</div><div class='add'>+	returns passwd entry for the specified user id.  If uid is</div><div class='add'>+	ommitted, use the value from getuid().  See getpwuid(3) for</div><div class='add'>+	detail.</div><div class='add'>+</div><div class='add'>+--- getgrgid(gid)</div><div class='add'>+</div><div class='add'>+	searches in /etc/group file (or equivalent database), and</div><div class='add'>+	returns group entry for the group id.  The return value is an</div><div class='add'>+	group structure, which has members described below.</div><div class='add'>+</div><div class='add'>+	  struct group</div><div class='add'>+	    name 	# group name(string)</div><div class='add'>+	    passwd	# group password(string)</div><div class='add'>+	    gid		# group ID(integer)</div><div class='add'>+	    mem		# array of the group member names</div><div class='add'>+	  end</div><div class='add'>+</div><div class='add'>+	See getgrgid(3) for detail.</div><div class='add'>+</div><div class='add'>+--- getgrnam(name)</div><div class='add'>+</div><div class='add'>+	returns the group entry for the specified name.  The return</div><div class='add'>+	value is the group structure.  See getgrnam(3) for detail.</div><div class='add'>+</div><div class='add'>+--- group</div><div class='add'>+</div><div class='add'>+	iterates over all group entries.</div><div class='add'>+</div><div class='add'>+--- passwd</div><div class='add'>+</div><div class='add'>+	iterates over all passwd entries.</div><div class='add'>+</div><div class='add'>+=end</div><div class='head'>diff --git a/doc/etc.rd.ja b/doc/etc.rd.ja<br/>new file mode 100644<br/>index 0000000000..39a1efbff1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/etc.rd.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/etc.rd.ja</a></div><div class='hunk'>@@ -0,0 +1,75 @@</div><div class='add'>+# etc.rd.ja -  -*- mode: rd; coding: euc-jp; -*- created at: Fri Jul 14 00:47:15 JST 1995</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+= Etc(¥â¥¸¥å¡¼¥ë)</div><div class='add'>+</div><div class='add'>+¼Â¹Ô¤·¤Æ¤¤¤ëOS¤«¤é¤Î¾ðÊó¤òÆÀ¤ë¤¿¤á¤Î¥â¥¸¥å¡¼¥ë¡¥¥¯¥é¥¹¤Ë¥¤¥ó¥¯¥ë¡¼¥É</div><div class='add'>+¤·¤Æ»È¤¦¤³¤È¤â¤Ç¤­¤ë¡¥</div><div class='add'>+</div><div class='add'>+== Module Function</div><div class='add'>+</div><div class='add'>+--- getlogin</div><div class='add'>+</div><div class='add'>+	¼«Ê¬¤ÎloginÌ¾¤òÊÖ¤¹¡¥¤³¤ì¤¬¼ºÇÔ¤·¤¿¾ì¹ç¤Ïgetpwuid()¤òÍÑ¤¤¤ë¤È</div><div class='add'>+	ÎÉ¤¤¡¥</div><div class='add'>+</div><div class='add'>+--- getpwnam(name)</div><div class='add'>+</div><div class='add'>+	/etc/passwd¥Õ¥¡¥¤¥ë(¤¢¤ë¤¤¤ÏDBM¥Õ¥¡¥¤¥ë¤äNIS¥Ç¡¼¥¿¥Ù¡¼¥¹)¤ò¸¡</div><div class='add'>+	º÷¤·¡¤name¤ÎÌ¾Á°¤ò»ý¤Äpasswd¥¨¥ó¥È¥ê¤òÊÖ¤¹¡¥Ìá¤êÃÍ¤Ïpasswd¹½Â¤</div><div class='add'>+	ÂÎ¤Ç°Ê²¼¤Î¥á¥ó¥Ð¤ò»ý¤Ä¡¥</div><div class='add'>+</div><div class='add'>+	  struct passwd</div><div class='add'>+	    name 	# ¥æ¡¼¥¶Ì¾(Ê¸»úÎó)</div><div class='add'>+	    passwd	# ¥Ñ¥¹¥ï¡¼¥É(Ê¸»úÎó)</div><div class='add'>+	    uid		# ¥æ¡¼¥¶ID(À°¿ô)</div><div class='add'>+	    gid		# ¥°¥ë¡¼¥×ID(À°¿ô)</div><div class='add'>+	    gecos	# gecos¥Õ¥£¡¼¥ë¥É(Ê¸»úÎó)</div><div class='add'>+	    dir		# ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê(Ê¸»úÎó)</div><div class='add'>+	    shell	# ¥í¥°¥¤¥ó¥·¥§¥ë(Ê¸»úÎó)</div><div class='add'>+	    # °Ê¹ß¤Î¥á¥ó¥Ð¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤ÏÄó¶¡¤µ¤ì¤Ê¤¤¡¥</div><div class='add'>+	    change	# ¥Ñ¥¹¥ï¡¼¥ÉÊÑ¹¹»þ´Ö(À°¿ô)</div><div class='add'>+	    quota	# ¥¯¥©¡¼¥¿(À°¿ô)</div><div class='add'>+	    age		# ¥¨¡¼¥¸(À°¿ô)</div><div class='add'>+	    class	# ¥æ¡¼¥¶¥¢¥¯¥»¥¹¥¯¥é¥¹(Ê¸»úÎó)</div><div class='add'>+	    comment	# ¥³¥á¥ó¥È(Ê¸»úÎó)</div><div class='add'>+	    expire	# ¥¢¥«¥¦¥ó¥ÈÍ­¸ú´ü¸Â(À°¿ô)	    </div><div class='add'>+	  end</div><div class='add'>+</div><div class='add'>+	¾ÜºÙ¤Ïgetpwnam(3)¤ò»²¾È¤Î¤³¤È¡¥</div><div class='add'>+</div><div class='add'>+--- getpwuid([uid])</div><div class='add'>+</div><div class='add'>+	uid¤ò¥æ¡¼¥¶ID¤È¤¹¤ëpasswd¥¨¥ó¥È¥ê¤òÊÖ¤¹¡¥Ìá¤êÃÍ¤Ïgetpwnam()¤È</div><div class='add'>+	Æ±ÍÍ¤Ç¤¢¤ë¡¥°ú¿ô¤ò¾ÊÎ¬¤·¤¿¾ì¹ç¤Ë¤Ïgetuid()¤ÎÃÍ¤òÍÑ¤¤¤ë¡¥¾ÜºÙ¤Ï</div><div class='add'>+	getpwuid(3)¤ò»²¾È¤Î¤³¤È¡¥</div><div class='add'>+</div><div class='add'>+--- getgrgid(gid)</div><div class='add'>+</div><div class='add'>+	/etc/group¥Õ¥¡¥¤¥ë(¤¢¤ë¤¤¤Ï¡Ägetpwnam»²¾È)¤ò¸¡º÷¤·¡¤gid¤ò¥°¥ë¡¼</div><div class='add'>+	¥×ID¤È¤¹¤ë¥°¥ë¡¼¥×¥¨¥ó¥È¥ê¤òÊÖ¤¹¡¥Ìá¤êÃÍ¤Ïgroup¹½Â¤ÂÎ¤Ç°Ê²¼¤Î</div><div class='add'>+	¥á¥ó¥Ð¤ò»ý¤Ä¡¥</div><div class='add'>+</div><div class='add'>+	  struct group</div><div class='add'>+	    name 	# ¥°¥ë¡¼¥×Ì¾(Ê¸»úÎó)</div><div class='add'>+	    passwd	# ¥°¥ë¡¼¥×¤Î¥Ñ¥¹¥ï¡¼¥É(Ê¸»úÎó)</div><div class='add'>+	    gid		# ¥°¥ë¡¼¥×ID(À°¿ô)</div><div class='add'>+	    mem		# ¥°¥ë¡¼¥×¥á¥ó¥ÐÌ¾¤ÎÇÛÎó</div><div class='add'>+	  end</div><div class='add'>+</div><div class='add'>+	¾ÜºÙ¤Ïgetgrgid(3)¤ò»²¾È¤Î¤³¤È¡¥</div><div class='add'>+</div><div class='add'>+--- getgrnam(name)</div><div class='add'>+</div><div class='add'>+	name¤È¤¤¤¦Ì¾Á°¤Î¥°¥ë¡¼¥×¥¨¥ó¥È¥ê¤òÊÖ¤¹¡¥Ìá¤êÃÍ¤Ïgetgrgid()¤ÈÆ±</div><div class='add'>+	ÍÍ¤Ç¤¢¤ë¡¥¾ÜºÙ¤Ïgetgrnam(3)¤ò»²¾È¡¥</div><div class='add'>+</div><div class='add'>+--- group</div><div class='add'>+</div><div class='add'>+	Á´¤Æ¤Î¥°¥ë¡¼¥×¥¨¥ó¥È¥ê¤ò½ç¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥¤¥Æ¥ì¡¼¥¿¡¥</div><div class='add'>+</div><div class='add'>+--- passwd</div><div class='add'>+</div><div class='add'>+	Á´¤Æ¤Îpasswd¥¨¥ó¥È¥ê¤ò½ç¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥¤¥Æ¥ì¡¼¥¿¡¥</div><div class='add'>+</div><div class='add'>+=end</div><div class='head'>diff --git a/doc/forwardable.rd b/doc/forwardable.rd<br/>new file mode 100644<br/>index 0000000000..0eca25b90a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/forwardable.rd?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/forwardable.rd</a></div><div class='hunk'>@@ -0,0 +1,83 @@</div><div class='add'>+ -- forwardable.rb</div><div class='add'>+						</div><div class='add'>+                                                $Release Version: 1.1 $</div><div class='add'>+                                                $Revision$</div><div class='add'>+						Original version by Tosh</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+= Forwardable</div><div class='add'>+</div><div class='add'>+A Module to define delegations for selected methods to a class.</div><div class='add'>+</div><div class='add'>+== Usage</div><div class='add'>+</div><div class='add'>+Using through extending the class.</div><div class='add'>+  </div><div class='add'>+  class Foo</div><div class='add'>+    extend Forwardable</div><div class='add'>+</div><div class='add'>+    def_delegators("@out", "printf", "print")</div><div class='add'>+    def_delegators(:@in, :gets)</div><div class='add'>+    def_delegator(:@contents, :[], "content_at")</div><div class='add'>+  end</div><div class='add'>+  f = Foo.new</div><div class='add'>+  f.printf ...</div><div class='add'>+  f.gets</div><div class='add'>+  f.content_at(1)</div><div class='add'>+</div><div class='add'>+== Methods</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_instance_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      adding the delegations for each method of ((|methods|)) to</div><div class='add'>+      ((|accessor|)).</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_instance_delegator(accessor, method, ali = method)</div><div class='add'>+      </div><div class='add'>+      adding the delegation for ((|method|)) to ((|accessor|)). When</div><div class='add'>+      you give optional argument ((|ali|)), ((|ali|)) is used as the</div><div class='add'>+      name of the delegation method, instead of ((|method|)).</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      the alias of ((|Forwardable#def_instance_delegators|)).</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_delegator(accessor, method, ali = method)</div><div class='add'>+      </div><div class='add'>+      the alias of ((|Forwardable#def_instance_delegator|)).</div><div class='add'>+</div><div class='add'>+= SingleForwardable</div><div class='add'>+</div><div class='add'>+a Module to define delegations for selected methods to an object.</div><div class='add'>+</div><div class='add'>+== Usage</div><div class='add'>+</div><div class='add'>+Using through extending the object.</div><div class='add'>+</div><div class='add'>+  g = Goo.new</div><div class='add'>+  g.extend SingleForwardable</div><div class='add'>+  g.def_delegator("@out", :puts)</div><div class='add'>+  g.puts ...</div><div class='add'>+</div><div class='add'>+== Methods</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_singleton_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      adding the delegations for each method of ((|methods|)) to</div><div class='add'>+      ((|accessor|)).</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method)</div><div class='add'>+</div><div class='add'>+      adding the delegation for ((|method|)) to ((|accessor|)). When</div><div class='add'>+      you give optional argument ((|ali|)), ((|ali|)) is used as the</div><div class='add'>+      name of the delegation method, instead of ((|method|)).</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      the alias of ((|SingleForwardable#def_instance_delegators|)).</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_delegator(accessor, method, ali = method)</div><div class='add'>+</div><div class='add'>+      the alias of ((|SingleForwardable#def_instance_delegator|)).</div><div class='add'>+=end</div><div class='head'>diff --git a/doc/forwardable.rd.ja b/doc/forwardable.rd.ja<br/>new file mode 100644<br/>index 0000000000..48186b111f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/forwardable.rd.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/forwardable.rd.ja</a></div><div class='hunk'>@@ -0,0 +1,80 @@</div><div class='add'>+  -- forwatable.rb</div><div class='add'>+                                                $Release Version: 1.1 $</div><div class='add'>+                                                $Revision$</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+= Forwardable</div><div class='add'>+</div><div class='add'>+¥¯¥é¥¹¤ËÂÐ¤·¥á¥½¥Ã¥É¤Î°Ñ¾ùµ¡Ç½¤òÄêµÁ¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+== »È¤¤Êý</div><div class='add'>+</div><div class='add'>+¥¯¥é¥¹¤ËÂÐ¤·¤Æextend¤·¤Æ»È¤¤¤Þ¤¹. </div><div class='add'>+  </div><div class='add'>+  class Foo</div><div class='add'>+    extend Forwardable</div><div class='add'>+</div><div class='add'>+    def_delegators("@out", "printf", "print")</div><div class='add'>+    def_delegators(:@in, :gets)</div><div class='add'>+    def_delegator(:@contents, :[], "content_at")</div><div class='add'>+  end</div><div class='add'>+  f = Foo.new</div><div class='add'>+  f.printf ...</div><div class='add'>+  f.gets</div><div class='add'>+  f.content_at(1)</div><div class='add'>+</div><div class='add'>+== ¥á¥½¥Ã¥É</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_instance_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      ((|methods|))¤ÇÅÏ¤µ¤ì¤¿¥á¥½¥Ã¥É¤Î¥ê¥¹¥È¤ò((|accessor¤Ë|))°Ñ¾ù¤¹¤ë</div><div class='add'>+      ¤è¤¦¤Ë¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_instance_delegator(accessor, method, ali = method)</div><div class='add'>+</div><div class='add'>+      ((||method|))¤ÇÅÏ¤µ¤ì¤¿¥á¥½¥Ã¥É¤ò((|accessor|))¤Ë°Ñ¾ù¤¹¤ë¤è¤¦¤Ë¤·</div><div class='add'>+      ¤Þ¤¹. ((|ali|))¤¬°ú¿ô¤È¤·¤ÆÅÏ¤µ¤ì¤¿¤È¤­¤Ï, ¥á¥½¥Ã¥É((|ali|))¤¬¸Æ¤Ð</div><div class='add'>+      ¤ì¤¿¤È¤­¤Ë¤Ï, ((|accessor|))¤ËÂÐ¤·((|method|))¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      ((|Forwardable#def_instance_delegators|))¤ÎÊÌÌ¾¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+--- Forwardable#def_delegator(accessor, method, ali = method)</div><div class='add'>+</div><div class='add'>+      ((|Forwardable#def_instance_delegator|))¤ÎÊÌÌ¾¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+= SingleForwardable</div><div class='add'>+</div><div class='add'>+¥ª¥Ö¥¸¥§¥¯¥È¤ËÂÐ¤·, ¥á¥½¥Ã¥É¤Î°Ñ¾ùµ¡Ç½¤òÄêµÁ¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+== »È¤¤Êý</div><div class='add'>+</div><div class='add'>+¥ª¥Ö¥¸¥§¥¯¥È¤ËÂÐ¤·¤Æ((|extend|))¤·¤Æ»È¤¤¤Þ¤¹. </div><div class='add'>+</div><div class='add'>+  g = Goo.new</div><div class='add'>+  g.extend SingleForwardable</div><div class='add'>+  g.def_delegator("@out", :puts)</div><div class='add'>+  g.puts ...</div><div class='add'>+</div><div class='add'>+== ¥á¥½¥Ã¥É</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_singleton_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      ((|methods|))¤ÇÅÏ¤µ¤ì¤¿¥á¥½¥Ã¥É¤Î¥ê¥¹¥È¤ò((|accessor|))¤Ë°Ñ¾ù¤¹¤ë</div><div class='add'>+      ¤è¤¦¤Ë¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method)</div><div class='add'>+</div><div class='add'>+      ((|method|))¤ÇÅÏ¤µ¤ì¤¿¥á¥½¥Ã¥É¤ò((|accessor|))¤Ë°Ñ¾ù¤¹¤ë¤è¤¦¤Ë¤·¤Þ</div><div class='add'>+      ¤¹. ((|ali|))¤¬°ú¿ô¤È¤·¤ÆÅÏ¤µ¤ì¤¿¤È¤­¤Ï, ¥á¥½¥Ã¥É((|ali|))¤¬¸Æ¤Ð¤ì</div><div class='add'>+      ¤¿¤È¤­¤Ë¤Ï, ((|accessor|))¤ËÂÐ¤·((|method|))¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_delegators(accessor, *methods)</div><div class='add'>+</div><div class='add'>+      ((|SingleForwardable#def_singleton_delegators|))¤ÎÊÌÌ¾¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+--- SingleForwardable#def_delegator(accessor, method, ali = method)</div><div class='add'>+</div><div class='add'>+      ((|SingleForwardable#def_singleton_delegator|))¤ÎÊÌÌ¾¤Ç¤¹.</div><div class='add'>+=end</div><div class='head'>diff --git a/doc/images/boottime-classes.png b/doc/images/boottime-classes.png<br/>new file mode 100644<br/>index 0000000000..b5fab75c41<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/images/boottime-classes.png?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/images/boottime-classes.png</a></div>Binary files differ<div class='head'>diff --git a/doc/irb/irb-tools.rd.ja b/doc/irb/irb-tools.rd.ja<br/>new file mode 100644<br/>index 0000000000..7711f96e08<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/irb/irb-tools.rd.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/irb/irb-tools.rd.ja</a></div><div class='hunk'>@@ -0,0 +1,184 @@</div><div class='add'>+irb´ØÏ¢¤ª¤Þ¤±¥³¥Þ¥ó¥É¤È¥é¥¤¥Ö¥é¥ê</div><div class='add'>+				$Release Version: 0.7.1 $</div><div class='add'>+			   	$Revision$</div><div class='add'>+			   	by Keiju ISHITSUKA(Nihon Rational Co.,Ltd.)</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+:¥³¥Þ¥ó¥É:</div><div class='add'>+* rtags		-- ruby tags command</div><div class='add'>+</div><div class='add'>+:´Ø¿ô¥é¥¤¥Ö¥é¥ê:</div><div class='add'>+* xmp		-- irb version of gotoken xmp-function</div><div class='add'>+</div><div class='add'>+:¥¯¥é¥¹¥é¥¤¥Ö¥é¥ê:</div><div class='add'>+* frame.rb      -- frame tracer</div><div class='add'>+* completion.rb -- irb completor</div><div class='add'>+</div><div class='add'>+= rtags</div><div class='add'>+</div><div class='add'>+rtags¤ÏemacsµÚ¤ÓviÍÑ¤Î, TAG¥Õ¥¡¥¤¥ë¤ò¤Ä¤¯¤ë¥³¥Þ¥ó¥É¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+== »È¤¤Êý</div><div class='add'>+</div><div class='add'>+   rtags [-vi] file....</div><div class='add'>+</div><div class='add'>+¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ËemacsÍÑ¤ÎTAGS¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤Þ¤¹. -vi¥ª¥×¥·¥ç¥ó¤ò</div><div class='add'>+¤Ä¤±¤¿»þ¤Ë¤ÏviÍÑ¤Îtags¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+emacs¤Î¾ì¹ç, ÄÌ¾ï¤Îetags.el¤¬¤½¤Î¤Þ¤Þ»È¤¨¤Þ¤¹. ¸¡º÷²ÄÇ½¤Ê¤Î¤Ï,</div><div class='add'>+</div><div class='add'>+* ¥¯¥é¥¹</div><div class='add'>+* ¥á¥½¥Ã¥É</div><div class='add'>+* ÆÃ°Û¥á¥½¥Ã¥É</div><div class='add'>+* alias</div><div class='add'>+* attr¤ÇÀë¸À¤µ¤ì¤¿¥¢¥¯¥»¥µ(¥Ñ¥é¥á¡¼¥¿¤¬¥·¥ó¥Ü¥ë¤«Ê¸»úÎó¥ê¥Æ¥é¥ë¤Ë¸Â¤ë)</div><div class='add'>+* attr_XXX¤ÇÀë¸À¤µ¤ì¤¿¥¢¥¯¥»¥µ(¥Ñ¥é¥á¡¼¥¿¤¬¥·¥ó¥Ü¥ë¤«Ê¸»úÎó¥ê¥Æ¥é¥ë¤Ë¸Â¤ë)</div><div class='add'>+</div><div class='add'>+¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+C¤Ê¤É¤Ç»È¤Ã¤Æ¤¤¤ë¤Î¤È°ã¤¦¤Î¤Ï, ¥³¥ó¥×¥ê¡¼¥·¥ç¥ó¤Ë´Ø¤¹¤ëÉôÊ¬¤Ç,</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'>+</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'>+ÆÃ°Û¥á¥½¥Ã¥É(¥¯¥é¥¹¥á¥½¥Ã¥É)¤Ï</div><div class='add'>+</div><div class='add'>+  ::¥¯¥é¥¹Ì¾::....::¥¯¥é¥¹Ì¾.¥á¥½¥Ã¥ÉÌ¾</div><div class='add'>+</div><div class='add'>+¤Ç¥³¥ó¥×¥ê¡¼¥·¥ç¥ó¤ò¹Ô¤Ê¤¦¤È¤³¤í¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+= xmp.rb</div><div class='add'>+</div><div class='add'>+¤´¤È¤±¤óxmp¤Î¾å°Ì¸ß´¹¥Ð¡¼¥¸¥ç¥ó¤Ç¤¹. ¤¿¤À, Èó¾ï¤Ë½Å¤¤¤Î¤Ç¤´¤È¤±¤óxmp¤Ç</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'>+    require "irb/xmp"</div><div class='add'>+    xmp &lt;&lt;END</div><div class='add'>+    foo = 1</div><div class='add'>+    foo</div><div class='add'>+    END</div><div class='add'>+    ---</div><div class='add'>+    foo = 1</div><div class='add'>+        ==&gt;1</div><div class='add'>+    foo</div><div class='add'>+	==&gt;1</div><div class='add'>+</div><div class='add'>+=== XMP¥¤¥ó¥¹¥¿¥ó¥¹¤òÍÑ¤¤¤ë.</div><div class='add'>+</div><div class='add'>+¤³¤Î¾ì¹ç¤Ï, XMP¤¬¥³¥ó¥Æ¥­¥¹¥È¾ðÊó¤ò»ý¤Ä¤Î¤Ç, ÊÑ¿ô¤ÎÃÍ¤Ê¤É¤òÊÝ»ý¤·¤Æ¤¤</div><div class='add'>+¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  require "irb/xmp"</div><div class='add'>+  xmp = XMP.new</div><div class='add'>+  xmp.puts &lt;&lt;END</div><div class='add'>+  foo = 1</div><div class='add'>+  foo</div><div class='add'>+  END</div><div class='add'>+  xmp.puts &lt;&lt;END</div><div class='add'>+  foo</div><div class='add'>+  END</div><div class='add'>+  ===</div><div class='add'>+  foo = 1</div><div class='add'>+      ==&gt;1</div><div class='add'>+  foo</div><div class='add'>+      ==&gt;1</div><div class='add'>+  foo</div><div class='add'>+      ==&gt;1</div><div class='add'>+</div><div class='add'>+== ¥³¥ó¥Æ¥­¥¹¥È¤Ë´Ø¤·¤Æ</div><div class='add'>+</div><div class='add'>+XMP¥á¥½¥Ã¥É·²¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ï, ¸Æ¤Ó½Ð¤¹Á°¤Î¥³¥ó¥Æ¥­¥¹¥È¤ÇÉ¾²Á¤µ¤ì¤Þ¤¹.</div><div class='add'>+ÌÀ¼¨Åª¤Ë¥³¥ó¥Æ¥­¥¹¥È¤ò»ØÄê¤¹¤ë¤È¤½¤Î¥³¥ó¥Æ¥­¥¹¥È¤ÇÉ¾²Á¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+Îã:</div><div class='add'>+</div><div class='add'>+  xmp "foo", an_binding</div><div class='add'>+</div><div class='add'>+:Ãí:</div><div class='add'>+¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ë¤ÏÂÐ±þ¤·¤Æ¤¤¤Þ¤»¤ó.</div><div class='add'>+</div><div class='add'>+= frame.rb</div><div class='add'>+¸½ºß¼Â¹ÔÃæ¤Î¥Õ¥ì¡¼¥à¾ðÊó¤ò¼è¤ê°·¤¦¤¿¤á¤Î¥¯¥é¥¹¤Ç¤¹. </div><div class='add'>+</div><div class='add'>+* IRB::Frame.top(n = 0)</div><div class='add'>+  ¾å¤«¤énÈÖÌÜ¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò¼è¤ê½Ð¤·¤Þ¤¹. n¤Ï0¤¬ºÇ¾å°Ì¤Ë¤Ê¤ê¤Þ¤¹.</div><div class='add'>+* IRB::Frame.bottom(n = 0)</div><div class='add'>+  ²¼¤«¤énÈÖÌÜ¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò¼è¤ê½Ð¤·¤Þ¤¹. n¤Ï0¤¬ºÇ²¼°Ì¤Ë¤Ê¤ê¤Þ¤¹.</div><div class='add'>+* IRB::Frame.sender</div><div class='add'>+  ¥»¥ó¥À¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ò¼è¤ê½Ð¤·¤Þ¤¹. ¥»¥ó¥À¤È¤Ï, ¤½¤Î¥á¥½¥Ã</div><div class='add'>+  ¥É¤ò¸Æ¤Ó½Ð¤·¤¿Â¦¤Îself¤Î¤³¤È¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+:Ãí:</div><div class='add'>+set_trace_func¤òÍÑ¤¤¤ÆRuby¤Î¼Â¹Ô¤ò¥È¥ì¡¼¥¹¤·¤Æ¤¤¤Þ¤¹. ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ë</div><div class='add'>+¤ÏÂÐ±þ¤·¤Æ¤¤¤Þ¤»¤ó.</div><div class='add'>+</div><div class='add'>+= completion.rb</div><div class='add'>+irb¤Îcompletionµ¡Ç½¤òÄó¶¡¤¹¤ë¤â¤Î¤Ç¤¹. </div><div class='add'>+</div><div class='add'>+== »È¤¤Êý</div><div class='add'>+</div><div class='add'>+   % irb -r irb/completion</div><div class='add'>+</div><div class='add'>+¤È¤¹¤ë¤«, ~/.irbrc Ãæ¤Ë</div><div class='add'>+</div><div class='add'>+   require "irb/completion"</div><div class='add'>+</div><div class='add'>+¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤. irb¼Â¹ÔÃæ¤Ë require "irb/completion" ¤·¤Æ¤â¤è¤¤¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+irb¼Â¹ÔÃæ¤Ë (TAB) ¤ò²¡¤¹¤È¥³¥ó¥×¥ì¡¼¥·¥ç¥ó¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+¥È¥Ã¥×¥ì¥Ù¥ë¤Ç(TAB)¤ò²¡¤¹¤È¤¹¤Ù¤Æ¤Î¹½Ê¸Í×ÁÇ, ¥¯¥é¥¹, ¥á¥½¥Ã¥É¤Î¸õÊä¤¬¤Ç</div><div class='add'>+¤Þ¤¹. ¸õÊä¤¬Í£°ì¤Ê¤é¤Ð´°Á´¤ËÊä´°¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  irb(main):001:0&gt; in    </div><div class='add'>+  in                    inspect               instance_eval</div><div class='add'>+  include               install_alias_method  instance_of?</div><div class='add'>+  initialize            install_aliases       instance_variables</div><div class='add'>+  irb(main):001:0&gt; inspect</div><div class='add'>+  "main"</div><div class='add'>+  irb(main):002:0&gt; foo = Object.new</div><div class='add'>+  #&lt;Object:0x4027146c&gt;</div><div class='add'>+</div><div class='add'>+  ((|ÊÑ¿ôÌ¾.|))¤Î¸å¤Ë(TAB)¤ò²¡¤¹¤È, ¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥á¥½¥Ã¥É°ìÍ÷¤¬¤Ç¤Þ</div><div class='add'>+  ¤¹.</div><div class='add'>+</div><div class='add'>+  irb(main):003:0&gt; foo.</div><div class='add'>+  foo.==                  foo.frozen?             foo.protected_methods</div><div class='add'>+  foo.===                 foo.hash                foo.public_methods</div><div class='add'>+  foo.=~                  foo.id                  foo.respond_to?</div><div class='add'>+  foo.__id__              foo.inspect             foo.send</div><div class='add'>+  foo.__send__            foo.instance_eval       foo.singleton_methods</div><div class='add'>+  foo.class               foo.instance_of?        foo.taint</div><div class='add'>+  foo.clone               foo.instance_variables  foo.tainted?</div><div class='add'>+  foo.display             foo.is_a?               foo.to_a</div><div class='add'>+  foo.dup                 foo.kind_of?            foo.to_s</div><div class='add'>+  foo.eql?                foo.method              foo.type</div><div class='add'>+  foo.equal?              foo.methods             foo.untaint</div><div class='add'>+  foo.extend              foo.nil?                </div><div class='add'>+  foo.freeze              foo.private_methods     </div><div class='add'>+</div><div class='add'>+=end</div><div class='add'>+</div><div class='add'>+% Begin Emacs Environment</div><div class='add'>+% Local Variables:</div><div class='add'>+% mode: text</div><div class='add'>+% comment-column: 0</div><div class='add'>+% comment-start: "%"</div><div class='add'>+% comment-end: "\n"</div><div class='add'>+% End:</div><div class='add'>+%</div><div class='add'>+</div><div class='head'>diff --git a/doc/irb/irb.rd b/doc/irb/irb.rd<br/>new file mode 100644<br/>index 0000000000..75274006e1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/irb/irb.rd?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/irb/irb.rd</a></div><div class='hunk'>@@ -0,0 +1,391 @@</div><div class='add'>+irb -- interactive ruby</div><div class='add'>+		$Release Version: 0.9 $</div><div class='add'>+		$Revision$</div><div class='add'>+		by Keiju ISHITSUKA(keiju@ishitsuka.com)</div><div class='add'>+		by gotoken-san who is original translater from japanese version</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+= What is irb?</div><div class='add'>+</div><div class='add'>+irb stands for `interactive ruby'. irb is a tool to execute interactively</div><div class='add'>+ruby expressions read from stdin. </div><div class='add'>+</div><div class='add'>+= Invoking</div><div class='add'>+</div><div class='add'>+  % irb</div><div class='add'>+</div><div class='add'>+= Usage</div><div class='add'>+</div><div class='add'>+Use of irb is easy if you know ruby.  Executing irb, prompts are </div><div class='add'>+displayed as follows. Then, enter expression of ruby. A input is</div><div class='add'>+executed when it is syntacticaly completed. </div><div class='add'>+</div><div class='add'>+  dim% irb</div><div class='add'>+  irb(main):001:0&gt; 1+2</div><div class='add'>+  3</div><div class='add'>+  irb(main):002:0&gt; class Foo</div><div class='add'>+  irb(main):003:1&gt;  def foo</div><div class='add'>+  irb(main):004:2&gt;    print 1</div><div class='add'>+  irb(main):005:2&gt;  end</div><div class='add'>+  irb(main):006:1&gt; end</div><div class='add'>+  nil</div><div class='add'>+  irb(main):007:0&gt; </div><div class='add'>+</div><div class='add'>+And, Readline extesion module can be used with irb. Using Readline</div><div class='add'>+is the standard default action if Readline is installed. </div><div class='add'>+</div><div class='add'>+= Command line option</div><div class='add'>+</div><div class='add'>+  irb.rb [options] file_name opts</div><div class='add'>+  options:</div><div class='add'>+  -f		    suppress read ~/.irbrc </div><div class='add'>+  -m		    bc mode (fraction or matrix are available)</div><div class='add'>+  -d                set $DEBUG  to true (same as `ruby -d')</div><div class='add'>+  -Kc		    same as `ruby -Kc'</div><div class='add'>+  -r load-module    same as `ruby -r'</div><div class='add'>+  --verbose	    command input is echoed(default)</div><div class='add'>+  --noverbose	    command input isn't echoed</div><div class='add'>+  --echo	    commands are echoed immediately before execution(default)</div><div class='add'>+  --noecho	    commands aren't echoed immediately before execution</div><div class='add'>+  --inspect	    uses `inspect' for output (the default except bc mode)</div><div class='add'>+  --noinspect	    doesn't uses inspect for output</div><div class='add'>+  --readline	    uses Readline extension module</div><div class='add'>+  --noreadline	    doesn't use Readline extension module</div><div class='add'>+  --prompt prompt-mode</div><div class='add'>+  --prompt-mode prompt-mode</div><div class='add'>+		    switches prompt mode. Pre-defined prompt modes are</div><div class='add'>+		    `default', `simple', `xmp' and `inf-ruby'</div><div class='add'>+			    </div><div class='add'>+  --inf-ruby-mode   uses prompt appreciate for inf-ruby-mode on emacs. </div><div class='add'>+		    Suppresses --readline. </div><div class='add'>+  --simple-prompt   simple prompt mode</div><div class='add'>+  --noprompt	    no prompt</div><div class='add'>+  --tracer	    display trace for each execution of commands.</div><div class='add'>+  --back-trace-limit n</div><div class='add'>+		    displayes backtrace top n and tail n. The default</div><div class='add'>+		    value is 16. </div><div class='add'>+  --irb_debug n	    sets internal debug level to n (It shouldn't be used)</div><div class='add'>+  -v, --version	    prints the version of irb</div><div class='add'>+</div><div class='add'>+= Configurations</div><div class='add'>+</div><div class='add'>+irb reads `~/.irbrc' when it is invoked. If `~/.irbrb' doesn't exist</div><div class='add'>+irb try to read in the order `.irbrc', `irb.rc', `_irbrc' then `$irbrc'. </div><div class='add'>+</div><div class='add'>+The following is altanative to the command line option. To use them</div><div class='add'>+type as follows in an irb session. </div><div class='add'>+</div><div class='add'>+  IRB.conf[:IRB_NAME]="irb"</div><div class='add'>+  IRB.conf[:MATH_MODE]=false</div><div class='add'>+  IRB.conf[:USE_TRACER]=false</div><div class='add'>+  IRB.conf[:USE_LOADER]=false</div><div class='add'>+  IRB.conf[:IGNORE_SIGINT]=true</div><div class='add'>+  IRB.conf[:IGNORE_EOF]=false</div><div class='add'>+  IRB.conf[:INSPECT_MODE]=nil</div><div class='add'>+  IRB.conf[:IRB_RC] = nil</div><div class='add'>+  IRB.conf[:BACK_TRACE_LIMIT]=16</div><div class='add'>+  IRB.conf[:USE_LOADER] = false</div><div class='add'>+  IRB.conf[:USE_READLINE] = nil</div><div class='add'>+  IRB.conf[:USE_TRACER] = false</div><div class='add'>+  IRB.conf[:IGNORE_SIGINT] = true</div><div class='add'>+  IRB.conf[:IGNORE_EOF] = false</div><div class='add'>+  IRB.conf[:PROMPT_MODE] = :DEFALUT</div><div class='add'>+  IRB.conf[:PROMPT] = {...}</div><div class='add'>+  IRB.conf[:DEBUG_LEVEL]=0</div><div class='add'>+  IRB.conf[:VERBOSE]=true</div><div class='add'>+</div><div class='add'>+== Customizing prompt</div><div class='add'>+</div><div class='add'>+To costomize the prompt you set a variable</div><div class='add'>+</div><div class='add'>+  IRB.conf[:PROMPT]</div><div class='add'>+</div><div class='add'>+For example, describe as follows in `.irbrc'. </div><div class='add'>+</div><div class='add'>+  IRB.conf[:PROMPT][:MY_PROMPT] = { # name of prompt mode</div><div class='add'>+    :PROMPT_I =&gt; nil,		  # normal prompt</div><div class='add'>+    :PROMPT_S =&gt; nil,		  # prompt for continuated strings</div><div class='add'>+    :PROMPT_C =&gt; nil,		  # prompt for continuated statement</div><div class='add'>+    :RETURN =&gt; "    ==&gt;%s\n"	  # format to return value</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+Then, invoke irb with the above prompt mode by</div><div class='add'>+</div><div class='add'>+  % irb --prompt my-prompt</div><div class='add'>+</div><div class='add'>+Or add the following in `.irbrc'. </div><div class='add'>+</div><div class='add'>+  IRB.conf[:PROMPT_MODE] = :MY_PROMPT</div><div class='add'>+</div><div class='add'>+Constants PROMPT_I, PROMPT_S and PROMPT_C specifies the format. </div><div class='add'>+In the prompt specification, some special strings are available. </div><div class='add'>+</div><div class='add'>+  %N	command name which is running</div><div class='add'>+  %m	to_s of main object (self)</div><div class='add'>+  %M	inspect of main object (self)</div><div class='add'>+  %l	type of string(", ', /, ]), `]' is inner %w[...]</div><div class='add'>+  %NNi	indent level. NN is degits and means as same as printf("%NNd"). </div><div class='add'>+        It can be ommited</div><div class='add'>+  %NNn	line number. </div><div class='add'>+  %%    %</div><div class='add'>+</div><div class='add'>+For instance, the default prompt mode is defined as follows:</div><div class='add'>+</div><div class='add'>+IRB.conf[:PROMPT_MODE][:DEFAULT] = {</div><div class='add'>+      :PROMPT_I =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='add'>+      :PROMPT_S =&gt; "%N(%m):%03n:%i%l ",</div><div class='add'>+      :PROMPT_C =&gt; "%N(%m):%03n:%i* ",</div><div class='add'>+      :RETURN =&gt; "%s\n"</div><div class='add'>+} </div><div class='add'>+</div><div class='add'>+RETURN is used to printf. </div><div class='add'>+</div><div class='add'>+== Configurating subirb</div><div class='add'>+</div><div class='add'>+The command line option or IRB.conf specify the default behavior of</div><div class='add'>+(sub)irb. On the other hand, each conf of in the next sction `6. Command' </div><div class='add'>+is used to individually configurate (sub)irb. </div><div class='add'>+</div><div class='add'>+If proc is set to IRB.conf[:IRB_RC], its subirb will be invoked after</div><div class='add'>+execution of that proc under giving the context of irb as its</div><div class='add'>+aregument. By this mechanism each subirb can be configurated. </div><div class='add'>+</div><div class='add'>+= Command</div><div class='add'>+</div><div class='add'>+For irb commands, both simple name and `irb_'-prefixed name are prepared. </div><div class='add'>+</div><div class='add'>+--- exit, quit, irb_exit	</div><div class='add'>+    Quits (sub)irb. </div><div class='add'>+</div><div class='add'>+--- conf, irb_context</div><div class='add'>+    Displays current configuration. Modifing the configuration is</div><div class='add'>+    achieved by sending message to `conf'. </div><div class='add'>+</div><div class='add'>+--- conf.eval_history = N</div><div class='add'>+    Sets execution result history.</div><div class='add'>+    N is a integer or nil. If N &gt; 0, the number of historys is N. </div><div class='add'>+    If N == 0, the number of historys is unlimited. If N is nill,</div><div class='add'>+    execution result history isn't used(default).</div><div class='add'>+</div><div class='add'>+--- conf.back_trace_limit</div><div class='add'>+    Sets display lines of backtrace as top n and tail n. </div><div class='add'>+    The default value is 16.</div><div class='add'>+    </div><div class='add'>+--- conf.debug_level = N</div><div class='add'>+    Sets debug level of irb. </div><div class='add'>+</div><div class='add'>+--- conf.ignore_eof = true/false</div><div class='add'>+    Whether ^D (control-d) will be ignored or not. </div><div class='add'>+    If false is set, ^D means quit. </div><div class='add'>+</div><div class='add'>+--- conf.ignore_sigint= true/false</div><div class='add'>+    Whether ^C (control-c) will be ignored or not. </div><div class='add'>+    If false is set, ^D means quit.  If true, </div><div class='add'>+      during input:   cancel inputing then return to top level. </div><div class='add'>+      during execute: abondon current execution. </div><div class='add'>+</div><div class='add'>+--- conf.inf_ruby_mode = true/false</div><div class='add'>+    Whether inf-ruby-mode or not. The default value is false.</div><div class='add'>+</div><div class='add'>+--- conf.inspect_mode = true/false/nil</div><div class='add'>+    Specifies inspect mode. </div><div class='add'>+    true:  display inspect</div><div class='add'>+    false: display to_s</div><div class='add'>+    nil:   inspect mode in non math mode, </div><div class='add'>+           non inspect mode in math mode. </div><div class='add'>+</div><div class='add'>+--- conf.math_mode</div><div class='add'>+    Whether bc mode or not. </div><div class='add'>+</div><div class='add'>+--- conf.use_loader = true/false</div><div class='add'>+    Whether irb's own file reader method is used when load/require or not. </div><div class='add'>+    This mode is globaly affected (irb wide). </div><div class='add'>+</div><div class='add'>+--- conf.prompt_c</div><div class='add'>+    prompt for a continuating statement (e.g, immediately after of `if')</div><div class='add'>+</div><div class='add'>+--- conf.prompt_i</div><div class='add'>+    standard prompt</div><div class='add'>+</div><div class='add'>+--- conf.prompt_s</div><div class='add'>+    prompt for a continuating string</div><div class='add'>+</div><div class='add'>+--- conf.rc</div><div class='add'>+    Whether ~/.irbrc is read or not. </div><div class='add'>+</div><div class='add'>+--- conf.use_prompt = true/false</div><div class='add'>+    Prompting or not. </div><div class='add'>+</div><div class='add'>+--- conf.use_readline = true/false/nil</div><div class='add'>+    Whether readline is used or not. </div><div class='add'>+    true: uses </div><div class='add'>+    false: doen't use</div><div class='add'>+    nil: intends to use readline except for inf-ruby-mode (default)</div><div class='add'>+#</div><div class='add'>+#--- conf.verbose=T/F</div><div class='add'>+#    Whether verbose messages are display or not. </div><div class='add'>+</div><div class='add'>+--- cws, chws, irb_change_workspace [obj]</div><div class='add'>+    obj will be self. If obj is omitted, self will be home-object, or</div><div class='add'>+    the main object of first started irb.</div><div class='add'>+</div><div class='add'>+--- pushws, irb_pushws, irb_push_workspace [obj]</div><div class='add'>+    same as UNIX-shell command pushd.</div><div class='add'>+</div><div class='add'>+--- popws, irb_popws, irb_pop_workspace</div><div class='add'>+    same as UNIX-shell command popd</div><div class='add'>+</div><div class='add'>+--- irb [obj]</div><div class='add'>+    Invoke subirb. If obj is given, obj will be self. </div><div class='add'>+</div><div class='add'>+--- jobs, irb_jobs</div><div class='add'>+    List of subirb</div><div class='add'>+</div><div class='add'>+--- fg n, irb_fg n</div><div class='add'>+    Switch into specified subirb. The following is candidates of n:</div><div class='add'>+</div><div class='add'>+      irb number</div><div class='add'>+      thhread</div><div class='add'>+      irb object</div><div class='add'>+      self(obj which is specified of irb obj)</div><div class='add'>+</div><div class='add'>+--- kill n, irb_kill n</div><div class='add'>+    Kill subirb. The means of n is as same as the case of irb_fg. </div><div class='add'>+</div><div class='add'>+--- source, irb_source  path</div><div class='add'>+    This is a like UNIX-shell command source. evaluate script in path</div><div class='add'>+    on current context.</div><div class='add'>+</div><div class='add'>+--- irb_load path, prev</div><div class='add'>+    irb-version of Ruby's load.</div><div class='add'>+</div><div class='add'>+= System variable</div><div class='add'>+</div><div class='add'>+--- _  The latest value of evaluation (it is local)</div><div class='add'>+--- __ The history of evaluation values.</div><div class='add'>+    __[line_no] return an evaluation value of line number&lt;line_no&gt;. If</div><div class='add'>+    line_no is a negative, return value before -&lt;line_no&gt; from latest</div><div class='add'>+    value.</div><div class='add'>+</div><div class='add'>+= Session Example</div><div class='add'>+</div><div class='add'>+  dim% ruby irb.rb</div><div class='add'>+  irb(main):001:0&gt; irb                        # invoke subirb</div><div class='add'>+  irb#1(main):001:0&gt; jobs                     # list of subirbs</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : stop)</div><div class='add'>+  #1-&gt;irb#1 on main (#&lt;Thread:0x40125d64&gt; : running)</div><div class='add'>+  nil</div><div class='add'>+  irb#1(main):002:0&gt; fg 0                     # switch job</div><div class='add'>+  nil</div><div class='add'>+  irb(main):002:0&gt; class Foo;end</div><div class='add'>+  nil</div><div class='add'>+  irb(main):003:0&gt; irb Foo                    # invoke subirb which has the </div><div class='add'>+					      #              context of Foo</div><div class='add'>+  irb#2(Foo):001:0&gt; def foo                   # define Foo#foo</div><div class='add'>+  irb#2(Foo):002:1&gt;   print 1</div><div class='add'>+  irb#2(Foo):003:1&gt; end</div><div class='add'>+  nil</div><div class='add'>+  irb#2(Foo):004:0&gt; fg 0                      # switch job</div><div class='add'>+  nil</div><div class='add'>+  irb(main):004:0&gt; jobs                       # list of job</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : running)</div><div class='add'>+  #1-&gt;irb#1 on main (#&lt;Thread:0x40125d64&gt; : stop)</div><div class='add'>+  #2-&gt;irb#2 on Foo (#&lt;Thread:0x4011d54c&gt; : stop)</div><div class='add'>+  nil</div><div class='add'>+  irb(main):005:0&gt; Foo.instance_methods       # Foo#foo is defined asurely</div><div class='add'>+  ["foo"]</div><div class='add'>+  irb(main):006:0&gt; fg 2                       # switch job</div><div class='add'>+  nil</div><div class='add'>+  irb#2(Foo):005:0&gt; def bar                   # define Foo#bar</div><div class='add'>+  irb#2(Foo):006:1&gt;  print "bar"</div><div class='add'>+  irb#2(Foo):007:1&gt; end</div><div class='add'>+  nil</div><div class='add'>+  irb#2(Foo):010:0&gt;  Foo.instance_methods</div><div class='add'>+  ["bar", "foo"]</div><div class='add'>+  irb#2(Foo):011:0&gt; fg 0                      </div><div class='add'>+  nil</div><div class='add'>+  irb(main):007:0&gt; f = Foo.new</div><div class='add'>+  #&lt;Foo:0x4010af3c&gt;</div><div class='add'>+  irb(main):008:0&gt; irb f                      # invoke subirb which has the</div><div class='add'>+					      #  context of f (instance of Foo)</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):001:0&gt; jobs</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : stop)</div><div class='add'>+  #1-&gt;irb#1 on main (#&lt;Thread:0x40125d64&gt; : stop)</div><div class='add'>+  #2-&gt;irb#2 on Foo (#&lt;Thread:0x4011d54c&gt; : stop)</div><div class='add'>+  #3-&gt;irb#3 on #&lt;Foo:0x4010af3c&gt; (#&lt;Thread:0x4010a1e0&gt; : running)</div><div class='add'>+  nil</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):002:0&gt; foo         # evaluate f.foo</div><div class='add'>+  1nil</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):003:0&gt; bar         # evaluate f.bar</div><div class='add'>+  barnil</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):004:0&gt; kill 1, 2, 3# kill job</div><div class='add'>+  nil</div><div class='add'>+  irb(main):009:0&gt; jobs</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : running)</div><div class='add'>+  nil</div><div class='add'>+  irb(main):010:0&gt; exit                       # exit</div><div class='add'>+  dim% </div><div class='add'>+</div><div class='add'>+= Restrictions</div><div class='add'>+</div><div class='add'>+Because irb evaluates the inputs immediately after the imput is</div><div class='add'>+syntactically completed, irb gives slight different result than</div><div class='add'>+directly use ruby. Known difference is pointed out here. </div><div class='add'>+</div><div class='add'>+</div><div class='add'>+== Declaration of the local variable</div><div class='add'>+</div><div class='add'>+The following causes an error in ruby:</div><div class='add'>+</div><div class='add'>+  eval "foo = 0"</div><div class='add'>+  foo</div><div class='add'>+  --</div><div class='add'>+  -:2: undefined local variable or method `foo' for #&lt;Object:0x40283118&gt; (NameError)</div><div class='add'>+  ---</div><div class='add'>+  NameError</div><div class='add'>+</div><div class='add'>+Though, the above will successfully done by irb. </div><div class='add'>+</div><div class='add'>+  &gt;&gt; eval "foo = 0"</div><div class='add'>+ =&gt; 0</div><div class='add'>+ &gt;&gt; foo</div><div class='add'>+ =&gt; 0</div><div class='add'>+</div><div class='add'>+Ruby evaluates a code after reading entire of code and determination</div><div class='add'>+of the scope of local variables. On the other hand, irb do</div><div class='add'>+immediately. More precisely, irb evaluate at first</div><div class='add'>+</div><div class='add'>+  evel "foo = 0" </div><div class='add'>+</div><div class='add'>+then foo is defined on this timing. It is because of this</div><div class='add'>+incompatibility.</div><div class='add'>+</div><div class='add'>+If you'd like to detect those differences, begin...end can be used:</div><div class='add'>+</div><div class='add'>+  &gt;&gt; begin</div><div class='add'>+  ?&gt;   eval "foo = 0"</div><div class='add'>+  &gt;&gt;   foo</div><div class='add'>+  &gt;&gt; end</div><div class='add'>+  NameError: undefined local variable or method `foo' for #&lt;Object:0x4013d0f0&gt;</div><div class='add'>+  (irb):3</div><div class='add'>+  (irb_local_binding):1:in `eval'</div><div class='add'>+</div><div class='add'>+== Here-document</div><div class='add'>+</div><div class='add'>+Implementation of Here-document is incomplete. </div><div class='add'>+</div><div class='add'>+== Symbol</div><div class='add'>+</div><div class='add'>+Irb can not always recognize a symbol as to be Symbol. Concretely, an</div><div class='add'>+expression have completed, however Irb regard it as continuation line.</div><div class='add'>+</div><div class='add'>+=end</div><div class='add'>+</div><div class='add'>+% Begin Emacs Environment</div><div class='add'>+% Local Variables:</div><div class='add'>+% mode: text</div><div class='add'>+% comment-column: 0</div><div class='add'>+% comment-start: "%"</div><div class='add'>+% comment-end: "\n"</div><div class='add'>+% End:</div><div class='add'>+%</div><div class='head'>diff --git a/doc/irb/irb.rd.ja b/doc/irb/irb.rd.ja<br/>new file mode 100644<br/>index 0000000000..6e3abd7b3c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/irb/irb.rd.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/irb/irb.rd.ja</a></div><div class='hunk'>@@ -0,0 +1,412 @@</div><div class='add'>+irb -- interactive ruby</div><div class='add'>+				$Release Version: 0.9.5 $</div><div class='add'>+			   	$Revision$</div><div class='add'>+			   	by Keiju ISHITSUKA(keiju@ruby-lang.org)</div><div class='add'>+=begin</div><div class='add'>+= irb¤È¤Ï?</div><div class='add'>+</div><div class='add'>+irb¤Ïinteractive ruby¤ÎÎ¬¤Ç¤¹. ruby¤Î¼°¤òÉ¸½àÆþÎÏ¤«¤é´ÊÃ±¤ËÆþÎÏ/¼Â¹Ô¤¹¤ë</div><div class='add'>+¤¿¤á¤Î¥Ä¡¼¥ë¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+= µ¯Æ°</div><div class='add'>+</div><div class='add'>+  % irb</div><div class='add'>+</div><div class='add'>+¤Ç¹Ô¤Ê¤¤¤Þ¤¹. </div><div class='add'>+</div><div class='add'>+= »È¤¤Êý</div><div class='add'>+</div><div class='add'>+irb¤Î»È¤¤Êý¤Ï, Ruby¤µ¤¨ÃÎ¤Ã¤Æ¤¤¤ì¤Ð¤¤¤¿¤Ã¤Æ´ÊÃ±¤Ç¤¹. ´ðËÜÅª¤Ë¤Ï irb ¤È</div><div class='add'>+¤¤¤¦¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤¹. irb¤ò¼Â¹Ô¤¹¤ë¤È, °Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥ó¥×</div><div class='add'>+¥È¤¬É½¤ì¤Æ¤­¤Þ¤¹. ¸å¤Ï, ruby¤Î¼°¤òÆþ¤ì¤Æ²¼¤µ¤¤. ¼°¤¬´°·ë¤·¤¿»þÅÀ¤Ç¼Â¹Ô</div><div class='add'>+¤µ¤ì¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  dim% irb</div><div class='add'>+  irb(main):001:0&gt; 1+2</div><div class='add'>+  3</div><div class='add'>+  irb(main):002:0&gt; class Foo</div><div class='add'>+  irb(main):003:1&gt;  def foo</div><div class='add'>+  irb(main):004:2&gt;    print 1</div><div class='add'>+  irb(main):005:2&gt;  end</div><div class='add'>+  irb(main):006:1&gt; end</div><div class='add'>+  nil</div><div class='add'>+  irb(main):007:0&gt; </div><div class='add'>+</div><div class='add'>+¤Þ¤¿, irb¤ÏReadline¥â¥¸¥å¡¼¥ë¤Ë¤âÂÐ±þ¤·¤Æ¤¤¤Þ¤¹. Readline¥â¥¸¥å¡¼¥ë¤¬</div><div class='add'>+¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï, ¤½¤ì¤ò»È¤¦¤Î¤¬É¸½à¤ÎÆ°ºî¤Ë¤Ê¤ê¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+= ¥³¥Þ¥ó¥É¥ª¥×¥·¥ç¥ó</div><div class='add'>+</div><div class='add'>+  irb.rb [options] file_name opts</div><div class='add'>+  options:</div><div class='add'>+  -f		    ~/.irbrc ¤òÆÉ¤ß¹þ¤Þ¤Ê¤¤.</div><div class='add'>+  -m		    bc¥â¡¼¥É(Ê¬¿ô, ¹ÔÎó¤Î·×»»¤¬¤Ç¤­¤ë)</div><div class='add'>+  -d                $DEBUG ¤òtrue¤Ë¤¹¤ë(ruby -d ¤ÈÆ±¤¸)</div><div class='add'>+  -Kc		    ruby -Kc¤ÈÆ±¤¸</div><div class='add'>+  -r load-module    ruby -r ¤ÈÆ±¤¸.</div><div class='add'>+  --verbose	    ¤³¤ì¤«¤é¼Â¹Ô¤¹¤ë¹Ô¤òÉ½¼¨¤¹¤ë(¥Ç¥Õ¥©¥ë¥È)</div><div class='add'>+  --noverbose	    ¤³¤ì¤«¤é¼Â¹Ô¤¹¤ë¹Ô¤òÉ½¼¨¤·¤Ê¤¤</div><div class='add'>+  --echo	    ¼Â¹Ô·ë²Ì¤òÉ½¼¨¤¹¤ë(¥Ç¥Õ¥©¥ë¥È)</div><div class='add'>+  --noecho	    ¼Â¹Ô·ë²Ì¤òÉ½¼¨¤·¤Ê¤¤</div><div class='add'>+  --inspect	    ·ë²Ì½ÐÎÏ¤Ëinspect¤òÍÑ¤¤¤ë(bc¥â¡¼¥É°Ê³°¤Ï¥Ç¥Õ¥©¥ë¥È). </div><div class='add'>+  --noinspect	    ·ë²Ì½ÐÎÏ¤Ëinspect¤òÍÑ¤¤¤Ê¤¤.</div><div class='add'>+  --readline	    readline¥é¥¤¥Ö¥é¥ê¤òÍøÍÑ¤¹¤ë.</div><div class='add'>+  --noreadline	    readline¥é¥¤¥Ö¥é¥ê¤òÍøÍÑ¤·¤Ê¤¤. ¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ï,</div><div class='add'>+		    inf-ruby-mode°Ê³°¤Çreadline¥é¥¤¥Ö¥é¥ê¤òÍøÍÑ¤·¤è¤¦</div><div class='add'>+		    ¤È¤¹¤ë. </div><div class='add'>+  --prompt prompt-mode</div><div class='add'>+  --prompt-mode prompt-mode</div><div class='add'>+		    ¥×¥í¥ó¥×¥È¥â¡¼¥É¤òÀÚÂØ¤¨¤Þ¤¹. ¸½ºßÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥×</div><div class='add'>+		    ¥í¥ó¥×¥È¥â¡¼¥É¤Ï, default, simple, xmp, inf-ruby¤¬</div><div class='add'>+		    ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹. ¥Ç¥Õ¥©¥ë¥È¤Ïdefault¥×¥í¥ó¥×¥È¥â¡¼</div><div class='add'>+		    ¥É¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.</div><div class='add'>+			    </div><div class='add'>+  --inf-ruby-mode   emacs¤Îinf-ruby-modeÍÑ¤Î¥×¥í¥ó¥×¥ÈÉ½¼¨¤ò¹Ô¤Ê¤¦. ÆÃ</div><div class='add'>+		    ¤Ë»ØÄê¤¬¤Ê¤¤¸Â¤ê, readline¥é¥¤¥Ö¥é¥ê¤Ï»È¤ï¤Ê¤¯¤Ê¤ë.</div><div class='add'>+  --simple-prompt</div><div class='add'>+		    Èó¾ï¤Ë¥·¥ó¥×¥ë¤Ê¥×¥í¥ó¥×¥È¤òÍÑ¤¤¤ë¥â¡¼¥É¤Ç¤¹.</div><div class='add'>+  --noprompt	    ¥×¥í¥ó¥×¥ÈÉ½¼¨¤ò¹Ô¤Ê¤ï¤Ê¤¤.</div><div class='add'>+  --tracer	    ¥³¥Þ¥ó¥É¼Â¹Ô»þ¤Ë¥È¥ì¡¼¥¹¤ò¹Ô¤Ê¤¦.</div><div class='add'>+  --back-trace-limit n</div><div class='add'>+		    ¥Ð¥Ã¥¯¥È¥ì¡¼¥¹É½¼¨¤ò¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ÎÆ¬¤«¤é n, ¸å¤í</div><div class='add'>+		    ¤«¤én¤À¤±¹Ô¤Ê¤¦. ¥Ç¥Õ¥©¥ë¥È¤Ï16 </div><div class='add'>+  --irb_debug n	    irb¤Î¥Ç¥Ð¥Ã¥°¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤òn¤ËÀßÄê¤¹¤ë(ÍøÍÑ¤·¤Ê</div><div class='add'>+		    ¤¤Êý¤¬ÌµÆñ¤Ç¤·¤ç¤¦).</div><div class='add'>+  -v, --version	    irb¤Î¥Ð¡¼¥¸¥ç¥ó¤òÉ½¼¨¤¹¤ë</div><div class='add'>+</div><div class='add'>+= ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥·¥ç¥ó</div><div class='add'>+</div><div class='add'>+irbµ¯Æ°»þ¤Ë``~/.irbrc''¤òÆÉ¤ß¹þ¤ß¤Þ¤¹. ¤â¤·Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï,</div><div class='add'>+``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''¤Î½ç¤Ëload¤ò»î¤ß¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+¥ª¥×¥·¥ç¥ó¤òÀßÄê¤¹¤ëÂå¤ï¤ê¤Ë, °Ê²¼¤Î¥³¥Þ¥ó¥É¤Ç¤â¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤òÀßÄê</div><div class='add'>+¤Ç¤­¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  IRB.conf[:IRB_NAME]="irb"</div><div class='add'>+  IRB.conf[:MATH_MODE]=false</div><div class='add'>+  IRB.conf[:USE_TRACER]=false</div><div class='add'>+  IRB.conf[:USE_LOADER]=false</div><div class='add'>+  IRB.conf[:IGNORE_SIGINT]=true</div><div class='add'>+  IRB.conf[:IGNORE_EOF]=false</div><div class='add'>+  IRB.conf[:INSPECT_MODE]=nil</div><div class='add'>+  IRB.conf[:IRB_RC] = nil</div><div class='add'>+  IRB.conf[:BACK_TRACE_LIMIT]=16</div><div class='add'>+  IRB.conf[:USE_LOADER] = false</div><div class='add'>+  IRB.conf[:USE_READLINE] = nil</div><div class='add'>+  IRB.conf[:USE_TRACER] = false</div><div class='add'>+  IRB.conf[:IGNORE_SIGINT] = true</div><div class='add'>+  IRB.conf[:IGNORE_EOF] = false</div><div class='add'>+  IRB.conf[:PROMPT_MODE] = :DEFALUT</div><div class='add'>+  IRB.conf[:PROMPT] = {...}</div><div class='add'>+  IRB.conf[:DEBUG_LEVEL]=0</div><div class='add'>+  IRB.conf[:VERBOSE]=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'>+   IRB.conf[:PROMPT]</div><div class='add'>+</div><div class='add'>+¤òÍÑ¤¤¤Þ¤¹. Îã¤¨¤Ð, .irbrc¤ÎÃæ¤Ç²¼¤Î¤è¤¦¤Ê¼°¤òµ­½Ò¤·¤Þ¤¹:</div><div class='add'>+</div><div class='add'>+   IRB.conf[:PROMPT][:MY_PROMPT] = { # ¥×¥í¥ó¥×¥È¥â¡¼¥É¤ÎÌ¾Á°</div><div class='add'>+     :PROMPT_I =&gt; nil,		  # ÄÌ¾ï¤Î¥×¥í¥ó¥×¥È</div><div class='add'>+     :PROMPT_N =&gt; nil,		  # ·ÑÂ³¹Ô¤Î¥×¥í¥ó¥×¥È</div><div class='add'>+     :PROMPT_S =&gt; nil,		  # Ê¸»úÎó¤Ê¤É¤Î·ÑÂ³¹Ô¤Î¥×¥í¥ó¥×¥È</div><div class='add'>+     :PROMPT_C =&gt; nil,		  # ¼°¤¬·ÑÂ³¤·¤Æ¤¤¤ë»þ¤Î¥×¥í¥ó¥×¥È</div><div class='add'>+     :RETURN =&gt; "    ==&gt;%s\n"	  # ¥ê¥¿¡¼¥ó»þ¤Î¥×¥í¥ó¥×¥È</div><div class='add'>+   }</div><div class='add'>+</div><div class='add'>+¥×¥í¥ó¥×¥È¥â¡¼¥É¤ò»ØÄê¤·¤¿¤¤»þ¤Ë¤Ï,</div><div class='add'>+</div><div class='add'>+  irb --prompt my-prompt</div><div class='add'>+</div><div class='add'>+¤Ç¤½¤Î¥×¥í¥ó¥×¥È¥â¡¼¥É¤Çµ¯Æ°¤µ¤ì¤Þ¤¹. ¤Þ¤¿¤Ï, .irbrc¤Ë²¼¼°¤òµ­½Ò¤·¤Æ¤â</div><div class='add'>+OK¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+  IRB.conf[:PROMPT_MODE] = :MY_PROMPT</div><div class='add'>+</div><div class='add'>+PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_C¤Ï, ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄê¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+  %N	µ¯Æ°¤·¤Æ¤¤¤ë¥³¥Þ¥ó¥ÉÌ¾¤¬½ÐÎÏ¤µ¤ì¤ë.</div><div class='add'>+  %m	main¥ª¥Ö¥¸¥§¥¯¥È(self)¤¬to_s¤Ç½ÐÎÏ¤µ¤ì¤ë.</div><div class='add'>+  %M	main¥ª¥Ö¥¸¥§¥¯¥È(self)¤¬inspect¤µ¤ì¤Æ½ÐÎÏ¤µ¤ì¤ë.</div><div class='add'>+  %l	Ê¸»úÎóÃæ¤Î¥¿¥¤¥×¤òÉ½¤¹(", ', /, ], `]'¤Ï%w¤ÎÃæ¤Î»þ)</div><div class='add'>+  %NNi	¥¤¥ó¥Ç¥ó¥È¤Î¥ì¥Ù¥ë¤òÉ½¤¹. NN¤Ï¿ô»ú¤¬Æþ¤êprintf¤Î%NNd¤ÈÆ±¤¸. ¾Ê</div><div class='add'>+	Î¬²ÄÇ½</div><div class='add'>+  %NNn	¹ÔÈÖ¹æ¤òÉ½¤·¤Þ¤¹.</div><div class='add'>+  %%    %</div><div class='add'>+</div><div class='add'>+Îã¤¨¤Ð, ¥Ç¥Õ¥©¥ë¥È¤Î¥×¥í¥ó¥×¥È¥â¡¼¥É¤Ï:</div><div class='add'>+</div><div class='add'>+  IRB.conf[:PROMPT_MODE][:DEFAULT] = {</div><div class='add'>+      :PROMPT_I =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='add'>+      :PROMPT_N =&gt; "%N(%m):%03n:%i&gt; ",</div><div class='add'>+      :PROMPT_S =&gt; "%N(%m):%03n:%i%l ",</div><div class='add'>+      :PROMPT_C =&gt; "%N(%m):%03n:%i* ",</div><div class='add'>+      :RETURN =&gt; "%s\n"</div><div class='add'>+  } </div><div class='add'>+</div><div class='add'>+¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+RETURN¤Ï, ¸½ºß¤Î¤È¤³¤íprintf·Á¼°¤Ç¤¹. ¾­Íè»ÅÍÍ¤¬ÊÑ¤ï¤ë¤«¤âÃÎ¤ì¤Þ¤»¤ó.</div><div class='add'>+</div><div class='add'>+== ¥µ¥Öirb¤ÎÀßÄê</div><div class='add'>+</div><div class='add'>+¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤ª¤è¤ÓIRB.conf¤Ï(¥µ¥Ö)irbµ¯Æ°»þ¤Î¥Ç¥Õ¥©¥ë¥È¤Î</div><div class='add'>+ÀßÄê¤ò·è¤á¤ë¤â¤Î¤Ç, `5. ¥³¥Þ¥ó¥É'¤Ë¤¢¤ëconf¤Ç¸ÄÊÌ¤Î(¥µ¥Ö)irb¤ÎÀßÄê¤¬¤Ç</div><div class='add'>+¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+IRB.conf[:IRB_RC]¤Ëproc¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¤È, ¥µ¥Öirb¤òµ¯Æ°¤¹¤ë»þ¤Ë¤½¤Î</div><div class='add'>+proc¤òirb¤Î¥³¥ó¥Æ¥­¥¹¥È¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤·¤Þ¤¹. ¤³¤ì¤Ë¤è¤Ã¤Æ¸ÄÊÌ¤Î¥µ</div><div class='add'>+¥Öirb¤´¤È¤ËÀßÄê¤òÊÑ¤¨¤ë¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+= ¥³¥Þ¥ó¥É</div><div class='add'>+</div><div class='add'>+irb³ÈÄ¥¥³¥Þ¥ó¥É¤Ï, ´ÊÃ±¤ÊÌ¾Á°¤ÈÆ¬¤Ë`irb_'¤ò¤Ä¤±¤¿Ì¾Á°¤ÈÎ¾ÊýÄêµÁ¤µ¤ì¤Æ</div><div class='add'>+¤¤¤Þ¤¹. ¤³¤ì¤Ï, ´ÊÃ±¤ÊÌ¾Á°¤¬override¤µ¤ì¤¿»þ¤Î¤¿¤á¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+--- exit, quit, irb_exit	</div><div class='add'>+    ½ªÎ»¤¹¤ë. </div><div class='add'>+    ¥µ¥Öirb¤Î¾ì¹ç, ¤½¤Î¥µ¥Öirb¤ò½ªÎ»¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- conf, irb_context</div><div class='add'>+    irb¤Î¸½ºß¤ÎÀßÄê¤òÉ½¼¨¤¹¤ë. ÀßÄê¤ÎÊÑ¹¹¤Ï, conf¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤³</div><div class='add'>+    ¤È¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤¨¤ë. </div><div class='add'>+</div><div class='add'>+--- conf.eval_history = N</div><div class='add'>+    ¼Â¹Ô·ë²Ì¤Î¥Ò¥¹¥È¥êµ¡Ç½¤ÎÀßÄê.</div><div class='add'>+    nn¤ÏÀ°¿ô¤«nil¤Ç nn&gt;0 ¤Ç¤¢¤ì¤Ð¤½¤Î¿ô¤À¤±¥Ò¥¹¥È¥ê¤Ë¤¿¤á¤ë¡£nn==0¤Î»þ¤Ï</div><div class='add'>+    ÌµÀ©¸Â¤Ëµ­²±¤¹¤ë¡¢nil¤À¤È¥Ò¥¹¥È¥êµ¡Ç½¤Ï¤ä¤á¤ë(¥Ç¥Õ¥©¥ë¥È). </div><div class='add'>+</div><div class='add'>+--- Conf.back_trace_limit</div><div class='add'>+    ¥Ð¥Ã¥¯¥È¥ì¡¼¥¹É½¼¨¤ò¥Ð¥Ã¥¯¥È¥ì¡¼¥¹¤ÎÆ¬¤«¤én, ¸å¤í¤«¤én¤À¤±¹Ô¤Ê¤¦.</div><div class='add'>+    ¥Ç¥Õ¥©¥ë¥È¤Ï16</div><div class='add'>+    </div><div class='add'>+--- conf.debug_level = N</div><div class='add'>+    irbÍÑ¤Î¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë¤ÎÀßÄê</div><div class='add'>+</div><div class='add'>+--- conf.ignore_eof = true/false</div><div class='add'>+    ^D¤¬ÆþÎÏ¤µ¤ì¤¿»þ¤ÎÆ°ºî¤òÀßÄê¤¹¤ë. true¤Î»þ¤Ï^D¤òÌµ»ë¤¹¤ë, false¤Î</div><div class='add'>+    »þ¤Ïirb¤ò½ªÎ»¤¹¤ë. </div><div class='add'>+</div><div class='add'>+--- conf.ignore_sigint= true/false</div><div class='add'>+    ^C¤¬ÆþÎÏ¤µ¤ì¤¿»þ¤ÎÆ°ºî¤òÀßÄê¤¹¤ë. false»þ¤Ï, irb¤ò½ªÎ»¤¹¤ë. true¤Î</div><div class='add'>+    »þ¤ÎÆ°ºî¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë:</div><div class='add'>+      ÆþÎÏÃæ: ¤³¤ì¤Þ¤ÇÆþÎÏ¤·¤¿¤â¤Î¤ò¥­¥ã¥ó¥»¥ë¤·¥È¥Ã¥×¥ì¥Ù¥ë¤ËÌá¤ë. </div><div class='add'>+      ¼Â¹ÔÃæ: ¼Â¹Ô¤òÃæ»ß¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- conf.inf_ruby_mode = true/false</div><div class='add'>+    inf-ruby-modeÍÑ¤Î¥×¥í¥ó¥×¥ÈÉ½¼¨¤ò¹Ô¤Ê¤¦. ¥Ç¥Õ¥©¥ë¥È¤Ïfalse.</div><div class='add'>+</div><div class='add'>+--- conf.inspect_mode = true/false/nil</div><div class='add'>+    ¥¤¥ó¥¹¥Ú¥¯¥È¥â¡¼¥É¤òÀßÄê¤¹¤ë.</div><div class='add'>+    true: ¥¤¥ó¥¹¥Ú¥¯¥È¤·¤ÆÉ½¼¨¤¹¤ë.</div><div class='add'>+    false: ÄÌ¾ï¤Îprint¤ÇÉ½¼¨¤¹¤ë.</div><div class='add'>+    nil: ÄÌ¾ï¥â¡¼¥É¤Ç¤¢¤ì¤Ð, inspect mode¤È¤Ê¤ê, math¥â¡¼¥É¤Î»þ¤Ï, non</div><div class='add'>+	 inspect mode¤È¤Ê¤ë.   </div><div class='add'>+</div><div class='add'>+--- conf.math_mode</div><div class='add'>+    »²¾È¤Î¤ß. bc¥â¡¼¥É(Ê¬¿ô, ¹ÔÎó¤Î·×»»¤¬¤Ç¤­¤Þ¤¹)¤«¤É¤¦¤«?</div><div class='add'>+</div><div class='add'>+--- conf.use_loader = true/false</div><div class='add'>+    load/require»þ¤Ëirb¤ÎfileÆÉ¤ß¹þ¤ßµ¡Ç½¤òÍÑ¤¤¤ë¥â¡¼¥É¤Î¥¹¥¤¥Ã¥Á(¥Ç¥Õ¥©</div><div class='add'>+    ¥ë¥È¤ÏÍÑ¤¤¤Ê¤¤). ¤³¤Î¥â¡¼¥É¤ÏIRBÁ´ÂÎ¤ËÈ¿±Ç¤µ¤ì¤ë.</div><div class='add'>+</div><div class='add'>+--- conf.prompt_c</div><div class='add'>+    if¤ÎÄ¾¸å¤Ê¤É, ¹Ô¤¬·ÑÂ³¤·¤Æ¤¤¤ë»þ¤Î¥×¥í¥ó¥×¥È.</div><div class='add'>+</div><div class='add'>+--- conf.prompt_i</div><div class='add'>+    ÄÌ¾ï¤Î¥×¥í¥ó¥×¥È.</div><div class='add'>+</div><div class='add'>+--- conf.prompt_s</div><div class='add'>+    Ê¸»úÎóÃæ¤Ê¤É¤òÉ½¤¹¥×¥í¥ó¥×¥È.</div><div class='add'>+</div><div class='add'>+--- conf.rc</div><div class='add'>+    ~/.irbrc¤òÆÉ¤ß¹þ¤ó¤À¤«¤É¤¦¤«?</div><div class='add'>+</div><div class='add'>+--- conf.use_prompt = true/false</div><div class='add'>+    ¥×¥í¥ó¥×¥ÈÉ½¼¨¤¹¤ë¤«¤É¤¦¤«? ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥×¥í¥ó¥×¥È¤òÉ½¼¨¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- conf.use_readline = true/false/nil</div><div class='add'>+    readline¤ò»È¤¦¤«¤É¤¦¤«?</div><div class='add'>+    true: readline¤ò»È¤¦.</div><div class='add'>+    false: readline¤ò»È¤ï¤Ê¤¤.</div><div class='add'>+    nil: (¥Ç¥Õ¥©¥ë¥È)inf-ruby-mode°Ê³°¤Çreadline¥é¥¤¥Ö¥é¥ê¤òÍøÍÑ¤·¤è</div><div class='add'>+         ¤¦¤È¤¹¤ë.  </div><div class='add'>+#</div><div class='add'>+#--- conf.verbose=T/F</div><div class='add'>+#    irb¤«¤é¤¤¤í¤¤¤í¤Ê¥á¥Ã¥»¡¼¥¸¤ò½ÐÎÏ¤¹¤ë¤«?</div><div class='add'>+</div><div class='add'>+--- cws, chws, irb_cws, irb_chws, irb_change_workspace [obj]</div><div class='add'>+    obj¤òself¤È¤¹¤ë. obj¤¬¾ÊÎ¬¤µ¤ì¤¿¤È¤­¤Ï, home workspace, ¤¹¤Ê¤ï¤Á</div><div class='add'>+    irb¤òµ¯Æ°¤·¤¿¤È¤­¤Îmain object¤òself¤È¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- pushws, irb_pushws, irb_push_workspace [obj]</div><div class='add'>+    UNIX¥·¥§¥ë¥³¥Þ¥ó¥É¤Îpushd¤ÈÆ±ÍÍ.</div><div class='add'>+</div><div class='add'>+--- popws, irb_popws, irb_pop_workspace</div><div class='add'>+    UNIX¥·¥§¥ë¥³¥Þ¥ó¥É¤Îpopd¤ÈÆ±ÍÍ.</div><div class='add'>+</div><div class='add'>+--- irb [obj]</div><div class='add'>+    ¥µ¥Öirb¤òÎ©¤Á¤¢¤²¤ë. obj¤¬»ØÄê¤µ¤ì¤¿»þ¤Ï, ¤½¤Îobj¤òself¤È¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- jobs, irb_jobs</div><div class='add'>+    ¥µ¥Öirb¤Î¥ê¥¹¥È</div><div class='add'>+</div><div class='add'>+--- fg n, irb_fg n</div><div class='add'>+    »ØÄê¤·¤¿¥µ¥Öirb¤Ë¥¹¥¤¥Ã¥Á¤¹¤ë. n¤Ï, ¼¡¤Î¤â¤Î¤ò»ØÄê¤¹¤ë.</div><div class='add'>+</div><div class='add'>+      irbÈÖ¹æ</div><div class='add'>+      ¥¹¥ì¥Ã¥É</div><div class='add'>+      irb¥ª¥Ö¥¸¥§¥¯¥È</div><div class='add'>+      self(irb obj¤Çµ¯Æ°¤·¤¿»þ¤Îobj)</div><div class='add'>+</div><div class='add'>+--- kill n, irb_kill n</div><div class='add'>+      ¥µ¥Öirb¤òkill¤¹¤ë. n¤Ïfg¤ÈÆ±¤¸.</div><div class='add'>+</div><div class='add'>+--- source, irb_source  path</div><div class='add'>+    UNIX¥·¥§¥ë¥³¥Þ¥ó¥É¤Îsource¤È»÷¤Æ¤¤¤ë. ¸½ºß¤Î´Ä¶­¾å¤ÇpathÆâ¤Î¥¹¥¯¥ê</div><div class='add'>+    ¥×¥È¤òÉ¾²Á¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- irb_load path, prev</div><div class='add'>+</div><div class='add'>+    Ruby¤Îload¤ÎirbÈÇ.</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'>+    ¼Â¹Ô·ë²Ì¤ÎÍúÎò¤ò³Ð¤¨¤Æ¤¤¤ë.</div><div class='add'>+    __[line_no]¤Ç¡¢¤½¤Î¹Ô¤Ç¼Â¹Ô¤·¤¿·ë²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë. line_no¤¬Éé¤Î</div><div class='add'>+    »þ¤Ë¤Ï¡¢ºÇ¿·¤Î·ë²Ì¤«¤é-line_noÁ°¤Î·ë²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë.</div><div class='add'>+</div><div class='add'>+=  »ÈÍÑÎã</div><div class='add'>+</div><div class='add'>+°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+  dim% ruby irb.rb</div><div class='add'>+  irb(main):001:0&gt; irb                        # ¥µ¥Öirb¤ÎÎ©¤Á¤¢¤²</div><div class='add'>+  irb#1(main):001:0&gt; jobs                     # ¥µ¥Öirb¤Î¥ê¥¹¥È</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : stop)</div><div class='add'>+  #1-&gt;irb#1 on main (#&lt;Thread:0x40125d64&gt; : running)</div><div class='add'>+  nil</div><div class='add'>+  irb#1(main):002:0&gt; fg 0                     # job¤Î¥¹¥¤¥Ã¥Á</div><div class='add'>+  nil</div><div class='add'>+  irb(main):002:0&gt; class Foo;end</div><div class='add'>+  nil</div><div class='add'>+  irb(main):003:0&gt; irb Foo                    # Foo¤ò¥³¥ó¥Æ¥­¥¹¥È¤·¤Æirb</div><div class='add'>+					      # Î©¤Á¤¢¤²</div><div class='add'>+  irb#2(Foo):001:0&gt; def foo                   # Foo#foo¤ÎÄêµÁ</div><div class='add'>+  irb#2(Foo):002:1&gt;   print 1</div><div class='add'>+  irb#2(Foo):003:1&gt; end</div><div class='add'>+  nil</div><div class='add'>+  irb#2(Foo):004:0&gt; fg 0                      # job¤ò¥¹¥¤¥Ã¥Á</div><div class='add'>+  nil</div><div class='add'>+  irb(main):004:0&gt; jobs                       # job¤Î¥ê¥¹¥È</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : running)</div><div class='add'>+  #1-&gt;irb#1 on main (#&lt;Thread:0x40125d64&gt; : stop)</div><div class='add'>+  #2-&gt;irb#2 on Foo (#&lt;Thread:0x4011d54c&gt; : stop)</div><div class='add'>+  nil</div><div class='add'>+  irb(main):005:0&gt; Foo.instance_methods       # Foo#foo¤¬¤Á¤ã¤ó¤ÈÄêµÁ¤µ</div><div class='add'>+					      # ¤ì¤Æ¤¤¤ë</div><div class='add'>+  ["foo"]</div><div class='add'>+  irb(main):006:0&gt; fg 2                       # job¤ò¥¹¥¤¥Ã¥Á</div><div class='add'>+  nil</div><div class='add'>+  irb#2(Foo):005:0&gt; def bar                   # Foo#bar¤òÄêµÁ</div><div class='add'>+  irb#2(Foo):006:1&gt;  print "bar"</div><div class='add'>+  irb#2(Foo):007:1&gt; end</div><div class='add'>+  nil</div><div class='add'>+  irb#2(Foo):010:0&gt;  Foo.instance_methods</div><div class='add'>+  ["bar", "foo"]</div><div class='add'>+  irb#2(Foo):011:0&gt; fg 0                      </div><div class='add'>+  nil</div><div class='add'>+  irb(main):007:0&gt; f = Foo.new</div><div class='add'>+  #&lt;Foo:0x4010af3c&gt;</div><div class='add'>+  irb(main):008:0&gt; irb f                      # Foo¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Çirb¤ò</div><div class='add'>+					      # Î©¤Á¤¢¤²¤ë.</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):001:0&gt; jobs</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : stop)</div><div class='add'>+  #1-&gt;irb#1 on main (#&lt;Thread:0x40125d64&gt; : stop)</div><div class='add'>+  #2-&gt;irb#2 on Foo (#&lt;Thread:0x4011d54c&gt; : stop)</div><div class='add'>+  #3-&gt;irb#3 on #&lt;Foo:0x4010af3c&gt; (#&lt;Thread:0x4010a1e0&gt; : running)</div><div class='add'>+  nil</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):002:0&gt; foo         # f.foo¤Î¼Â¹Ô</div><div class='add'>+  nil</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):003:0&gt; bar         # f.bar¤Î¼Â¹Ô</div><div class='add'>+  barnil</div><div class='add'>+  irb#3(#&lt;Foo:0x4010af3c&gt;):004:0&gt; kill 1, 2, 3# job¤Îkill</div><div class='add'>+  nil</div><div class='add'>+  irb(main):009:0&gt; jobs</div><div class='add'>+  #0-&gt;irb on main (#&lt;Thread:0x400fb7e4&gt; : running)</div><div class='add'>+  nil</div><div class='add'>+  irb(main):010:0&gt; exit                       # ½ªÎ»</div><div class='add'>+  dim% </div><div class='add'>+</div><div class='add'>+= »ÈÍÑ¾å¤ÎÀ©¸Â</div><div class='add'>+</div><div class='add'>+irb¤Ï, É¾²Á¤Ç¤­¤ë»þÅÀ(¼°¤¬ÊÄ¤¸¤¿»þÅÀ)¤Ç¤ÎÃà¼¡¼Â¹Ô¤ò¹Ô¤Ê¤¤¤Þ¤¹. ¤·¤¿¤¬¤Ã</div><div class='add'>+¤Æ, ruby¤òÄ¾ÀÜ»È¤Ã¤¿»þ¤È, ¼ã´³°Û¤Ê¤ëÆ°ºî¤ò¹Ô¤Ê¤¦¾ì¹ç¤¬¤¢¤ê¤Þ¤¹.</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'>+  eval "foo = 0"</div><div class='add'>+  foo</div><div class='add'>+  --</div><div class='add'>+  -:2: undefined local variable or method `foo' for #&lt;Object:0x40283118&gt; (NameError)</div><div class='add'>+  ---</div><div class='add'>+  NameError</div><div class='add'>+</div><div class='add'>+¤È¤³¤í¤¬, irb¤òÍÑ¤¤¤ë¤È</div><div class='add'>+</div><div class='add'>+  &gt;&gt; eval "foo = 0"</div><div class='add'>+  =&gt; 0</div><div class='add'>+  &gt;&gt; foo</div><div class='add'>+  =&gt; 0</div><div class='add'>+</div><div class='add'>+¤È¤Ê¤ê, ¥¨¥é¡¼¤òµ¯¤³¤·¤Þ¤»¤ó. ¤³¤ì¤Ï, ruby¤¬ºÇ½é¤Ë¥¹¥¯¥ê¥×¥ÈÁ´ÂÎ¤ò¥³¥ó</div><div class='add'>+¥Ñ¥¤¥ë¤·¤Æ¥í¡¼¥«¥ëÊÑ¿ô¤ò·èÄê¤¹¤ë¤«¤é¤Ç¤¹. ¤½¤ì¤ËÂÐ¤·, irb¤Ï¼Â¹Ô²ÄÇ½¤Ë</div><div class='add'>+¤Ê¤ë(¼°¤¬ÊÄ¤¸¤ë)¤È¼«Æ°Åª¤ËÉ¾²Á¤·¤Æ¤¤¤ë¤«¤é¤Ç¤¹. ¾åµ­¤ÎÎã¤Ç¤Ï, </div><div class='add'>+</div><div class='add'>+  evel "foo = 0" </div><div class='add'>+</div><div class='add'>+¤ò¹Ô¤Ê¤Ã¤¿»þÅÀ¤ÇÉ¾²Á¤ò¹Ô¤Ê¤¤, ¤½¤Î»þÅÀ¤ÇÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤ë¤¿¤á, ¼¡¼°¤Ç </div><div class='add'>+ÊÑ¿ôfoo¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤«¤é¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+¤³¤Î¤è¤¦¤Êruby¤Èirb¤ÎÆ°ºî¤Î°ã¤¤¤ò²ò·è¤·¤¿¤¤¾ì¹ç¤Ï, begin...end¤Ç³ç¤Ã¤Æ</div><div class='add'>+¥Ð¥Ã¥ÁÅª¤Ë¼Â¹Ô¤·¤Æ²¼¤µ¤¤:</div><div class='add'>+</div><div class='add'>+  &gt;&gt; begin</div><div class='add'>+  ?&gt;   eval "foo = 0"</div><div class='add'>+  &gt;&gt;   foo</div><div class='add'>+  &gt;&gt; end</div><div class='add'>+  NameError: undefined local variable or method `foo' for #&lt;Object:0x4013d0f0&gt;</div><div class='add'>+  (irb):3</div><div class='add'>+  (irb_local_binding):1:in `eval'</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'>+</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'>+% Begin Emacs Environment</div><div class='add'>+% Local Variables:</div><div class='add'>+% mode: text</div><div class='add'>+% comment-column: 0</div><div class='add'>+% comment-start: "%"</div><div class='add'>+% comment-end: "\n"</div><div class='add'>+% End:</div><div class='add'>+%</div><div class='add'>+</div><div class='head'>diff --git a/doc/pty/README b/doc/pty/README<br/>new file mode 100644<br/>index 0000000000..d6368f3758<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/pty/README?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/pty/README</a></div><div class='hunk'>@@ -0,0 +1,84 @@</div><div class='add'>+pty extension version 0.3 by A.ito</div><div class='add'>+</div><div class='add'>+1. Introduction</div><div class='add'>+</div><div class='add'>+This extension module adds ruby a functionality to execute an </div><div class='add'>+arbitrary command through pseudo tty (pty).</div><div class='add'>+</div><div class='add'>+2. Install</div><div class='add'>+</div><div class='add'>+Follow the instruction below.</div><div class='add'>+</div><div class='add'>+(1) Execute</div><div class='add'>+</div><div class='add'>+      ruby extconf.rb</div><div class='add'>+</div><div class='add'>+    then Makefile is generated.</div><div class='add'>+</div><div class='add'>+(3) Do make; make install.</div><div class='add'>+</div><div class='add'>+3. What you can do</div><div class='add'>+</div><div class='add'>+This extension module defines a module named PTY, which contains</div><div class='add'>+following module fungtions:</div><div class='add'>+</div><div class='add'>+   getpty(command)</div><div class='add'>+   spawn(command)</div><div class='add'>+</div><div class='add'>+      This function reserves a pty, executes command over the pty </div><div class='add'>+      and returns an array. The return value is an array with three</div><div class='add'>+      elements. The first element in the array is for reading and the </div><div class='add'>+      second for writing. The third element is the process ID of the</div><div class='add'>+      child process. If this function is called with an iterator block,</div><div class='add'>+      the array is passed to the block as block parameters, and the</div><div class='add'>+      function itself returns nil.</div><div class='add'>+</div><div class='add'>+      When the child process is suspended or finished, an exception is</div><div class='add'>+      raised.  If this function is called with an iterator block,</div><div class='add'>+      exception is raised only within the block.  Child process</div><div class='add'>+      monitor is terminated on block exit.</div><div class='add'>+</div><div class='add'>+   protect_signal</div><div class='add'>+   reset_signal</div><div class='add'>+</div><div class='add'>+      These functions are obsolete in this version of pty.</div><div class='add'>+</div><div class='add'>+   PTY.open</div><div class='add'>+</div><div class='add'>+      Allocates a pty (pseudo-terminal).</div><div class='add'>+</div><div class='add'>+      It returns an array which contains an IO object and a File object.</div><div class='add'>+      The former is the master of the pty.</div><div class='add'>+      The latter is the slave of the pty.</div><div class='add'>+</div><div class='add'>+      If a block is given, it yields the array instead of return.</div><div class='add'>+      The value of the block is returned.</div><div class='add'>+      master_io and slave_file is closed when return if they are not closed.</div><div class='add'>+</div><div class='add'>+   PTY.check(pid[, raise=false])</div><div class='add'>+</div><div class='add'>+      checks the status of the child process specified by pid, and</div><div class='add'>+      returns nil if the process is still alive and active.</div><div class='add'>+      Otherwise, returns Process::Status about the process if raise is</div><div class='add'>+      false, or PTY::ChildExited exception is raised.</div><div class='add'>+</div><div class='add'>+4. License</div><div class='add'>+</div><div class='add'>+(C) Copyright 1998 by Akinori Ito.</div><div class='add'>+</div><div class='add'>+This software may be redistributed freely for this purpose, in full </div><div class='add'>+or in part, provided that this entire copyright notice is included </div><div class='add'>+on any copies of this software and applications and derivations thereof.</div><div class='add'>+</div><div class='add'>+This software is provided on an "as is" basis, without warranty of any</div><div class='add'>+kind, either expressed or implied, as to any matter including, but not</div><div class='add'>+limited to warranty of fitness of purpose, or merchantability, or</div><div class='add'>+results obtained from use of this software.</div><div class='add'>+</div><div class='add'>+5. Bug report</div><div class='add'>+</div><div class='add'>+Please feel free to send E-mail to</div><div class='add'>+</div><div class='add'>+   aito@ei5sun.yz.yamagata-u.ac.jp</div><div class='add'>+</div><div class='add'>+for any bug report, opinion, contribution, etc.</div><div class='head'>diff --git a/doc/pty/README.expect b/doc/pty/README.expect<br/>new file mode 100644<br/>index 0000000000..fddbb6fdad<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/pty/README.expect?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/pty/README.expect</a></div><div class='hunk'>@@ -0,0 +1,22 @@</div><div class='add'>+	README for expect</div><div class='add'>+		by A. Ito, 28 October, 1998</div><div class='add'>+</div><div class='add'>+	Expect library adds IO class a method called expect(), which</div><div class='add'>+does similar act to tcl's expect extension. </div><div class='add'>+</div><div class='add'>+The usage of the method is:</div><div class='add'>+</div><div class='add'>+   IO#expect(pattern,timeout=9999999)</div><div class='add'>+</div><div class='add'>+where `pattern' is an instance of String or Regexp and `timeout'</div><div class='add'>+is Fixnum, which can be omitted. </div><div class='add'>+	When the method is called without block, it waits until the</div><div class='add'>+input which matches the pattern is obtained from the IO or the time</div><div class='add'>+specified as the timeout passes. When the pattern is obtained from the</div><div class='add'>+IO, the method returns an array. The first element of the array is the</div><div class='add'>+entire string obtained from the IO until the pattern matches. The</div><div class='add'>+following elements indicates the specific pattern which matched to the</div><div class='add'>+anchor in the regular expression. If the method ends because of</div><div class='add'>+timeout, it returns nil. </div><div class='add'>+ 	When the method is called with block, the array is passed as</div><div class='add'>+the block parameter.</div><div class='head'>diff --git a/doc/pty/README.expect.ja b/doc/pty/README.expect.ja<br/>new file mode 100644<br/>index 0000000000..db84695ee5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/pty/README.expect.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/pty/README.expect.ja</a></div><div class='hunk'>@@ -0,0 +1,21 @@</div><div class='add'>+	README for expect</div><div class='add'>+		by A. Ito, 28 October, 1998</div><div class='add'>+</div><div class='add'>+  Expect¥é¥¤¥Ö¥é¥ê¤Ï¡¤tcl ¤Î expect ¥Ñ¥Ã¥±¡¼¥¸¤È»÷¤¿¤è¤¦¤Êµ¡Ç½¤ò</div><div class='add'>+IO¥¯¥é¥¹¤ËÄÉ²Ã¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+  ÄÉ²Ã¤µ¤ì¤ë¥á¥½¥Ã¥É¤Î»È¤¤Êý¤Ï¼¡¤ÎÄÌ¤ê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+   IO#expect(pattern,timeout=9999999)</div><div class='add'>+</div><div class='add'>+pattern ¤Ï String ¤« Regexp ¤Î¥¤¥ó¥¹¥¿¥ó¥¹¡¤timeout ¤Ï Fixnum</div><div class='add'>+¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¹¡¥timeout ¤Ï¾ÊÎ¬¤Ç¤­¤Þ¤¹¡¥</div><div class='add'>+  ¤³¤Î¥á¥½¥Ã¥É¤¬¥Ö¥í¥Ã¥¯¤Ê¤·¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¡¤¤Þ¤º¥ì¥·¡¼¥Ð¤Ç¤¢¤ë</div><div class='add'>+IO¥ª¥Ö¥¸¥§¥¯¥È¤«¤é pattern ¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¿¡¼¥ó¤¬ÆÉ¤ß¤³¤Þ¤ì¤ë</div><div class='add'>+¤Þ¤ÇÂÔ¤Á¤Þ¤¹¡¥¥Ñ¥¿¡¼¥ó¤¬ÆÀ¤é¤ì¤¿¤é¡¤¤½¤Î¥Ñ¥¿¡¼¥ó¤Ë´Ø¤¹¤ëÇÛÎó¤ò</div><div class='add'>+ÊÖ¤·¤Þ¤¹¡¥ÇÛÎó¤ÎºÇ½é¤ÎÍ×ÁÇ¤Ï¡¤pattern ¤Ë¥Þ¥Ã¥Á¤¹¤ë¤Þ¤Ç¤ËÆÉ¤ß¤³</div><div class='add'>+¤Þ¤ì¤¿ÆâÍÆ¤ÎÊ¸»úÎó¤Ç¤¹¡¥2ÈÖÌÜ°Ê¹ß¤ÎÍ×ÁÇ¤Ï¡¤pattern ¤ÎÀµµ¬É½¸½</div><div class='add'>+¤ÎÃæ¤Ë¥¢¥ó¥«¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¡¤¤½¤Î¥¢¥ó¥«¡¼¤Ë¥Þ¥Ã¥Á¤¹¤ëÉôÊ¬¤Ç¤¹¡¥</div><div class='add'>+¤â¤·¥¿¥¤¥à¥¢¥¦¥È¤¬µ¯¤­¤¿¾ì¹ç¤Ï¡¤¤³¤Î¥á¥½¥Ã¥É¤Ïnil¤òÊÖ¤·¤Þ¤¹¡¥</div><div class='add'>+  ¤³¤Î¥á¥½¥Ã¥É¤¬¥Ö¥í¥Ã¥¯ÉÕ¤­¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¤Ë¤Ï¡¤¥Þ¥Ã¥Á¤·¤¿Í×ÁÇ¤Î</div><div class='add'>+ÇÛÎó¤¬¥Ö¥í¥Ã¥¯°ú¿ô¤È¤·¤ÆÅÏ¤µ¤ì¡¤¥Ö¥í¥Ã¥¯¤¬É¾²Á¤µ¤ì¤Þ¤¹¡¥</div><div class='head'>diff --git a/doc/pty/README.ja b/doc/pty/README.ja<br/>new file mode 100644<br/>index 0000000000..ca2a01442a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/pty/README.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/pty/README.ja</a></div><div class='hunk'>@@ -0,0 +1,76 @@</div><div class='add'>+pty ³ÈÄ¥¥â¥¸¥å¡¼¥ë version 0.3 by A.ito</div><div class='add'>+</div><div class='add'>+1. ¤Ï¤¸¤á¤Ë</div><div class='add'>+</div><div class='add'>+¤³¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ï¡¤²¾ÁÛtty (pty) ¤òÄÌ¤·¤ÆÅ¬Åö¤Ê¥³¥Þ¥ó¥É¤ò</div><div class='add'>+¼Â¹Ô¤¹¤ëµ¡Ç½¤ò ruby ¤ËÄó¶¡¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+2. ¥¤¥ó¥¹¥È¡¼¥ë</div><div class='add'>+</div><div class='add'>+¼¡¤Î¤è¤¦¤Ë¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+(1)  ruby extconf.rb</div><div class='add'>+</div><div class='add'>+    ¤ò¼Â¹Ô¤¹¤ë¤È Makefile ¤¬À¸À®¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+(2) make; make install ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡¥</div><div class='add'>+</div><div class='add'>+3. ²¿¤¬¤Ç¤­¤ë¤«</div><div class='add'>+</div><div class='add'>+¤³¤Î³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ï¡¤PTY ¤È¤¤¤¦¥â¥¸¥å¡¼¥ë¤òÄêµÁ¤·¤Þ¤¹¡¥¤½¤ÎÃæ</div><div class='add'>+¤Ë¤Ï¡¤¼¡¤Î¤è¤¦¤Ê¥â¥¸¥å¡¼¥ë´Ø¿ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+   getpty(command)</div><div class='add'>+   spawn(command)</div><div class='add'>+</div><div class='add'>+      ¤³¤Î´Ø¿ô¤Ï¡¤²¾ÁÛtty¤ò³ÎÊÝ¤·¡¤»ØÄê¤µ¤ì¤¿¥³¥Þ¥ó¥É¤ò¤½¤Î²¾ÁÛtty</div><div class='add'>+      ¤Î¸þ¤³¤¦¤Ç¼Â¹Ô¤·¡¤ÇÛÎó¤òÊÖ¤·¤Þ¤¹¡¥Ìá¤êÃÍ¤Ï3¤Ä¤ÎÍ×ÁÇ¤«¤é¤Ê¤ë</div><div class='add'>+      ÇÛÎó¤Ç¤¹¡¥ºÇ½é¤ÎÍ×ÁÇ¤Ï²¾ÁÛtty¤«¤éÆÉ¤ß½Ð¤¹¤¿¤á¤ÎIO¥ª¥Ö¥¸¥§¥¯¥È¡¤</div><div class='add'>+      2ÈÖÌÜ¤Ï½ñ¤­¤³¤à¤¿¤á¤ÎIO¥ª¥Ö¥¸¥§¥¯¥È¡¤3ÈÖÌÜ¤Ï»Ò¥×¥í¥»¥¹¤Î¥×¥í</div><div class='add'>+      ¥»¥¹ID¤Ç¤¹¡¥¤³¤Î´Ø¿ô¤¬¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ð¤ì¤¿¾ì¹ç¡¤¤³¤ì¤é¤Î</div><div class='add'>+      Í×ÁÇ¤Ï¥Ö¥í¥Ã¥¯¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅÏ¤µ¤ì¡¤´Ø¿ô¼«ÂÎ¤Ïnil¤òÊÖ¤·¤Þ¤¹¡¥</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'>+   protect_signal</div><div class='add'>+   reset_signal</div><div class='add'>+</div><div class='add'>+      ÇÑ»ßÍ½Äê¤Ç¤¹¡¥</div><div class='add'>+</div><div class='add'>+   PTY.open</div><div class='add'>+</div><div class='add'>+      ²¾ÁÛtty¤ò³ÎÊÝ¤·¡¤¥Þ¥¹¥¿¡¼Â¦¤ËÂÐ±þ¤¹¤ëIO¥ª¥Ö¥¸¥§¥¯¥È¤È¥¹¥ì¡¼¥ÖÂ¦¤Ë</div><div class='add'>+      ÂÐ±þ¤¹¤ëFile¥ª¥Ö¥¸¥§¥¯¥È¤ÎÇÛÎó¤òÊÖ¤·¤Þ¤¹¡¥¥Ö¥í¥Ã¥¯ÉÕ¤­¤Ç¸Æ¤Ó½Ð¤µ</div><div class='add'>+      ¤ì¤¿¾ì¹ç¤Ï¡¤¤³¤ì¤é¤ÎÍ×ÁÇ¤Ï¥Ö¥í¥Ã¥¯¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅÏ¤µ¤ì¡¤¥Ö¥í¥Ã</div><div class='add'>+      ¥¯¤«¤éÊÖ¤µ¤ì¤¿·ë²Ì¤òÊÖ¤·¤Þ¤¹¡¥¤Þ¤¿¡¢¤³¤Î¥Þ¥¹¥¿¡¼IO¤È¥¹¥ì¡¼¥ÖFile</div><div class='add'>+      ¤Ï¡¢¥Ö¥í¥Ã¥¯¤òÈ´¤±¤ë¤È¤­¤Ë¥¯¥í¡¼¥ººÑ¤ß¤Ç¤Ê¤±¤ì¤Ð¥¯¥í¡¼¥º¤µ¤ì¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+   PTY.check(pid[, raise=false])</div><div class='add'>+</div><div class='add'>+      pid¤Ç»ØÄê¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¤ò¥Á¥§¥Ã¥¯¤·¡¤¼Â¹ÔÃæ¤Ç¤¢¤ì¤Ðnil¤ò</div><div class='add'>+      ÊÖ¤·¤Þ¤¹¡¥½ªÎ»¤·¤Æ¤¤¤ë¤«Ää»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢ÂèÆó°ú¿ô¤¬µ¶¤Ç¤¢¤ì¤Ð¡¢</div><div class='add'>+      ÂÐ±þ¤¹¤ëProcess::Status¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹¡£¿¿¤Ç¤¢¤ì¤Ð</div><div class='add'>+      PTY::ChildExitedÎã³°¤¬È¯À¸¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+4. ÍøÍÑ¤Ë¤Ä¤¤¤Æ</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'>+¤ó¡¥</div><div class='add'>+</div><div class='add'>+¤³¤Î¥×¥í¥°¥é¥à¤ÎÍøÍÑ¡¦ÇÛÉÛ¤½¤ÎÂ¾¤³¤Î¥×¥í¥°¥é¥à¤Ë´Ø·¸¤¹¤ë¹Ô°Ù¤Ë¤è</div><div class='add'>+¤Ã¤ÆÀ¸¤¸¤¿¤¤¤«¤Ê¤ëÂ»³²¤ËÂÐ¤·¤Æ¤â¡¤ºî¼Ô¤Ï°ìÀÚÀÕÇ¤¤òÉé¤¤¤Þ¤»¤ó¡¥</div><div class='add'>+</div><div class='add'>+5. ¥Ð¥°Êó¹ðÅù</div><div class='add'>+</div><div class='add'>+¥Ð¥°¥ì¥Ý¡¼¥È¤Ï´¿·Þ¤·¤Þ¤¹¡¥</div><div class='add'>+</div><div class='add'>+	aito@ei5sun.yz.yamagata-u.ac.jp</div><div class='add'>+</div><div class='add'>+¤Þ¤ÇÅÅ»Ò¥á¡¼¥ë¤Ç¥Ð¥°¥ì¥Ý¡¼¥È¤ò¤ªÁ÷¤ê¤¯¤À¤µ¤¤¡¥</div><div class='head'>diff --git a/doc/rake/CHANGES b/doc/rake/CHANGES<br/>new file mode 100644<br/>index 0000000000..3b1a02b812<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/CHANGES?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/CHANGES</a></div><div class='hunk'>@@ -0,0 +1,440 @@</div><div class='add'>+</div><div class='add'>+= Rake Changelog</div><div class='add'>+</div><div class='add'>+== Version 0.8.7</div><div class='add'>+</div><div class='add'>+* Fixed EXEEXT for JRuby on windows.</div><div class='add'>+</div><div class='add'>+== Version 0.8.6</div><div class='add'>+</div><div class='add'>+* Minor fixes to the RDoc generation (removed dependency on darkfish</div><div class='add'>+  and removed inline source option).</div><div class='add'>+</div><div class='add'>+== Version 0.8.5</div><div class='add'>+</div><div class='add'>+* Better support for the system command on Windows.</div><div class='add'>+</div><div class='add'>+== Version 0.8.4</div><div class='add'>+</div><div class='add'>+* Preserve case when locating rakefiles (patch from James</div><div class='add'>+  M. Lawrence/quix)</div><div class='add'>+</div><div class='add'>+* Better support for windows paths in the test task (patch from Simon</div><div class='add'>+  Chiang/bahuvrihi)</div><div class='add'>+</div><div class='add'>+* Windows system dir search order is now: HOME, HOMEDRIVE + HOMEPATH,</div><div class='add'>+  APPDATA, USERPROFILE (patch from Luis Lavena)</div><div class='add'>+</div><div class='add'>+* MingGW is now recognized as a windows platform.  (patch from Luis</div><div class='add'>+  Lavena)</div><div class='add'>+</div><div class='add'>+* Numerous fixes to the windows test suite (patch from Luis Lavena).</div><div class='add'>+</div><div class='add'>+* Improved Rakefile case insensitivity testing (patch from Luis</div><div class='add'>+  Lavena).</div><div class='add'>+</div><div class='add'>+* Fixed stray ARGV option problem that was interfering with</div><div class='add'>+  Test::Unit::Runner.</div><div class='add'>+</div><div class='add'>+* Fixed default verbose mode (was accidently changed to false).  </div><div class='add'>+</div><div class='add'>+* Removed reference to manage_gem to fix the warning produced by the</div><div class='add'>+  gem package task.</div><div class='add'>+</div><div class='add'>+== Version 0.8.3</div><div class='add'>+</div><div class='add'>+* Enhanced the system directory detection in windows. We now check</div><div class='add'>+  HOMEDRIVE/HOMEPATH and USERPROFILE if APPDATA isn't found. (Patch</div><div class='add'>+  supplied by James Tucker). Rake no long aborts if it can't find the</div><div class='add'>+  directory.</div><div class='add'>+</div><div class='add'>+* Added fix to handle ruby installations in directories with spaces in</div><div class='add'>+  their name.  </div><div class='add'>+</div><div class='add'>+== Version 0.8.2</div><div class='add'>+</div><div class='add'>+* Fixed bug in package task so that it will include the subdir</div><div class='add'>+  directory in the package for testing. (Bug found by Adam Majer)</div><div class='add'>+</div><div class='add'>+* Added ENV var to rakefile to prevent OS X from including extended</div><div class='add'>+  attribute junk in a tar file. (Bug found by Adam Majer)</div><div class='add'>+</div><div class='add'>+* Fixed filename dependency order bug in test_inspect_pending and</div><div class='add'>+  test_to_s_pending. (Bug found by Adam Majer)</div><div class='add'>+</div><div class='add'>+* Fixed check for file utils options to make them immune to the</div><div class='add'>+  symbol/string differences. (Patch supplied by Edwin Pratomo)</div><div class='add'>+</div><div class='add'>+* Fixed bug with rules involving multiple source (Patch supplied by</div><div class='add'>+  Emanuel Indermühle)</div><div class='add'>+</div><div class='add'>+* Switched from getoptlong to optparse (patches supplied by Edwin</div><div class='add'>+  Pratomo)</div><div class='add'>+</div><div class='add'>+* The -T option will now attempt to dynamically sense the size of the</div><div class='add'>+  terminal.  RAKE_COLUMNS will override any dynamic sensing.</div><div class='add'>+</div><div class='add'>+* FileList#clone and FileList#dup have better sematics w.r.t. taint</div><div class='add'>+  and freeze.</div><div class='add'>+</div><div class='add'>+* Added ability clear prerequisites, and/or actions from an existing</div><div class='add'>+  task.</div><div class='add'>+</div><div class='add'>+* Added the ability to reenable a task to be invoked a second time.</div><div class='add'>+</div><div class='add'>+* Changed RDoc test task to have no default template. This makes it</div><div class='add'>+  easier for the tempate to pick up the template from the environment.</div><div class='add'>+</div><div class='add'>+* Changed from using Mutex to Monitor. Evidently Mutex causes thread</div><div class='add'>+  join errors when Ruby is compiled with -disable-pthreads. (Patch</div><div class='add'>+  supplied by Ittay Dror) </div><div class='add'>+</div><div class='add'>+* Fixed bug in makefile parser that had problems with extra spaces in</div><div class='add'>+  file task names. (Patch supplied by Ittay Dror)</div><div class='add'>+</div><div class='add'>+* Added a performance patch for reading large makefile dependency</div><div class='add'>+  files. (Patch supplied by Ittay Dror)</div><div class='add'>+</div><div class='add'>+* Default values for task arguments can easily be specified with the</div><div class='add'>+  :with_defaults method. (Idea for default argument merging supplied</div><div class='add'>+  by (Adam Q. Salter)</div><div class='add'>+</div><div class='add'>+* The -T output will only self-truncate if the output is a tty.</div><div class='add'>+  However, if RAKE_COLUMNS is explicitly set, it will be honored in</div><div class='add'>+  any case. (Patch provided by Gavin Stark).</div><div class='add'>+</div><div class='add'>+* Numerous fixes for running under windows. A big thanks to Bheeshmar</div><div class='add'>+  Redheendran for spending a good part of the afternoon at the</div><div class='add'>+  Lonestar Ruby Conference to help me work out these issues.</div><div class='add'>+</div><div class='add'>+== Version 0.8.1</div><div class='add'>+</div><div class='add'>+* Removed requires on parsedate.rb (in Ftptools)</div><div class='add'>+* Removed ftools from rake.rb.  Made it options in sys.rb</div><div class='add'>+</div><div class='add'>+== Version 0.8.0</div><div class='add'>+</div><div class='add'>+* Added task parameters (e.g. "rake build[version7]")</div><div class='add'>+* Made task parameters passable to prerequisites.</div><div class='add'>+* Comments are limited to 80 columns or so (suggested by Jamis Buck).</div><div class='add'>+* Added -D to display full comments (suggested by Jamis Buck).</div><div class='add'>+* The rake program will set the status value used in any explicit</div><div class='add'>+  exit(n) calls. (patch provided by Stephen Touset)</div><div class='add'>+* Fixed error in functional tests that were not including session (and</div><div class='add'>+  silently skipping the functionl tests.</div><div class='add'>+* Removed --usage and make -h the same as -H.</div><div class='add'>+* Make a prettier inspect for tasks.</div><div class='add'>+</div><div class='add'>+== Version 0.7.3</div><div class='add'>+</div><div class='add'>+* Added existing and existing! methods to FileList</div><div class='add'>+* FileLists now claim to be Arrays (via is_a?) to get better support</div><div class='add'>+  from the FileUtil module.</div><div class='add'>+* Added init and top_level for custom rake applications.</div><div class='add'>+</div><div class='add'>+== Version 0.7.2</div><div class='add'>+</div><div class='add'>+* Error messages are now send to stderr rather than stdout (from</div><div class='add'>+  Payton Quackenbush).</div><div class='add'>+* Better error handling on invalid command line arguments (from Payton</div><div class='add'>+  Quackenbush).</div><div class='add'>+* Added rcov task and updated unit testing for better code coverage.</div><div class='add'>+* Fixed some bugs where the application object was going to the global</div><div class='add'>+  appliation instead of using its own data.</div><div class='add'>+* Added square and curly bracket patterns to FileList#include (Tilman</div><div class='add'>+  Sauerbeck). </div><div class='add'>+* Added plain filename support to rule dependents (suggested by Nobu</div><div class='add'>+  Nakada). </div><div class='add'>+* Added pathmap support to rule dependents.</div><div class='add'>+* Added a 'tasks' method to a namespace to get a list of tasks</div><div class='add'>+  associated with the namespace.</div><div class='add'>+* Fixed the method name leak from FileUtils (bug found by Glenn</div><div class='add'>+  Vanderburg). </div><div class='add'>+* Added rake_extension to handle detection of extension collisions.</div><div class='add'>+* Added test for noop, bad_option and verbose flags to sh command.</div><div class='add'>+* Removed dependency on internal fu_xxx functions from FileUtils.</div><div class='add'>+* Added a 'shame' task to the Rakefile.</div><div class='add'>+* Added tar_command and zip_command options to the Package task.</div><div class='add'>+* Added a description to the gem task in GemPackageTask.</div><div class='add'>+* Fixed a bug when rules have multiple prerequisites (patch by Joel</div><div class='add'>+  VanderWerf)</div><div class='add'>+* Added a protected 'require "rubygems"' to test/test_application to</div><div class='add'>+  unbreak cruisecontrol.rb.</div><div class='add'>+* Added the handful of RakeFileUtils to the private method as well.</div><div class='add'>+* Added block based exclusion.</div><div class='add'>+* The clean task will no longer delete 'core' if it is a directory.</div><div class='add'>+* Removed rake_dup.  Now we just simply rescue a bad dup.</div><div class='add'>+* Refactored the FileList reject logic to remove duplication.</div><div class='add'>+* Removed if __FILE__ at the end of the rake.rb file.</div><div class='add'>+</div><div class='add'>+== Version 0.7.1</div><div class='add'>+</div><div class='add'>+* Added optional filter parameter to the --tasks command line option.</div><div class='add'>+* Added flatten to allow rule transform procs to return lists of</div><div class='add'>+  prereqs (Joel VanderWerf provided patch).</div><div class='add'>+* Added pathmap to String and FileList.</div><div class='add'>+* The -r option will now load .rake files (but a straight require</div><div class='add'>+  doesn't yet).  NOTE: This is experimental ... it may be</div><div class='add'>+  discontinued.</div><div class='add'>+* The -f option without a value will disable the search for a</div><div class='add'>+  Rakefile.  The assumption is that the -r files are adequate.</div><div class='add'>+* Fixed the safe_ln function to fall back to cp in more error</div><div class='add'>+  scenarios.</div><div class='add'>+</div><div class='add'>+== Version 0.7.0</div><div class='add'>+</div><div class='add'>+* Added Rake.original_dir to return the original starting directory of</div><div class='add'>+  the rake application.</div><div class='add'>+* Added safe_ln support for openAFS (from Ludvig Omholt).</div><div class='add'>+* Added --trace reminder on short exception messages (David Heinemeier</div><div class='add'>+  Hansson suggestion).</div><div class='add'>+* Added multitask declaration that executes prerequisites in</div><div class='add'>+  parallel. (Doug Young providied an initial implementation).</div><div class='add'>+* Fixed missing_const hack to be compatible with Rails. (Jamis Buck</div><div class='add'>+  supplied test case).</div><div class='add'>+* Made the RDoc task default to internal (in-process) RDoc formatting.</div><div class='add'>+  The old behavior is still available by setting the +external+ flag</div><div class='add'>+  to true.</div><div class='add'>+* Rakefiles are now loaded with the expanded path to prevent</div><div class='add'>+  accidental polution from the Ruby load path.</div><div class='add'>+* The +namespace+ command now returns a NameSpace object that can be</div><div class='add'>+  used to lookup tasks defined in that namespace.  This allows for</div><div class='add'>+  better anonymous namespace behavior.</div><div class='add'>+* Task objects my now be used in prerequisite lists directly.</div><div class='add'>+</div><div class='add'>+== Version 0.6.1</div><div class='add'>+</div><div class='add'>+* Rebuilt 0.6.0 gem without signing.</div><div class='add'>+</div><div class='add'>+== Version 0.6.0</div><div class='add'>+</div><div class='add'>+* Fixed file creation bug in the unit tests (caused infinite loop on</div><div class='add'>+  windows).</div><div class='add'>+* Fixed bug where session based functional tests were run under</div><div class='add'>+  windows.</div><div class='add'>+* Fixed bug in directory tasks so that updating a directory will not</div><div class='add'>+  retrigger file tasks depending on the directory (see</div><div class='add'>+  FileCreationTask and EarlyTime).</div><div class='add'>+* Added egrep to FileList</div><div class='add'>+* ruby command now runs same ruby version as rake.</div><div class='add'>+* Added investigation to task object. (suggested by Martin Fowler)</div><div class='add'>+* Added ruby_opts to the test task to allow arbitrary ruby options to</div><div class='add'>+  be passed to the test script. (Greg Fast)</div><div class='add'>+* Fixed the test loader to ignore options. (Greg Fast)</div><div class='add'>+* Moved Task, FileTask, FileCreationTask and RakeApp into the Rake</div><div class='add'>+  module namespace.  Old style namespace behavior can be invoked via</div><div class='add'>+  the --classic-namespace option. (requested by Kelly Felkins).</div><div class='add'>+* GemTask is now sensitive to the gem platform (Masao Mutoh).</div><div class='add'>+* A non-existing file prerequisite will no longer cause an exception</div><div class='add'>+  (Philipp Neubeck).</div><div class='add'>+* Multiple prerequisites on Rake rules now allowed (initial patch</div><div class='add'>+  supplied by Stuart Jansen).</div><div class='add'>+</div><div class='add'>+== Version 0.5.4</div><div class='add'>+</div><div class='add'>+* Added double quotes to the test runner.</div><div class='add'>+* Added .svn to default ignore list.</div><div class='add'>+* Updated FileList#include to support nested arrays and filelists.</div><div class='add'>+</div><div class='add'>+== Version 0.5.3</div><div class='add'>+</div><div class='add'>+* Added support for importing Rakefile and other dependencies.</div><div class='add'>+* Fixed bug so that now rules can chain off of existing tasks as well</div><div class='add'>+  as existing files.</div><div class='add'>+* Fixed verbose flag bug in the testing task.  Shortened some failure</div><div class='add'>+  messages.</div><div class='add'>+* Make FileUtils methods private at the top level module to avoid</div><div class='add'>+  accidental method leaking into other objects.</div><div class='add'>+* Added test loader option to test task.  "testrb" is no longer the</div><div class='add'>+  default test loader.  It is now eating syntax errors that should</div><div class='add'>+  halt the unit tests.</div><div class='add'>+* Revamped FileList so that it works more like and array (addressed</div><div class='add'>+  flatten bug).  Added many tests around file list.</div><div class='add'>+* Added +ext+ method to both String and FileList.</div><div class='add'>+</div><div class='add'>+== Version 0.5.0</div><div class='add'>+</div><div class='add'>+* Fixed documentation that was lacking the Rake module name (Tilman</div><div class='add'>+  Sauerbeck).</div><div class='add'>+* Added tar.gz and tar.bz2 support to package task (Tilman Sauerbeck).</div><div class='add'>+* Recursive rules are now supported (Tilman Sauerbeck).</div><div class='add'>+* Added warning option for the Test Task (requested by Eric Hodel).</div><div class='add'>+* The jamis rdoc template is only used if it exists.</div><div class='add'>+* Added fix for Ruby 1.8.2 test/unit and rails problem.</div><div class='add'>+* Added contributed rake man file (Jani Monoses).</div><div class='add'>+* Added Brian Candler's fix for problems in --trace and --dry-run</div><div class='add'>+  mode.</div><div class='add'>+</div><div class='add'>+== Version 0.4.15</div><div class='add'>+</div><div class='add'>+* Fixed a bug that prevented the TESTOPTS flag from working with the</div><div class='add'>+  revised for 1.8.2 test task.</div><div class='add'>+* Updated the docs on --trace to indicate that it also enables a full</div><div class='add'>+  backtrace on errors. </div><div class='add'>+</div><div class='add'>+== Version 0.4.14</div><div class='add'>+</div><div class='add'>+* Modified the TestTask to workaround the Ruby 1.8.2 change in</div><div class='add'>+  autoexecuting unit tests.</div><div class='add'>+</div><div class='add'>+== Version 0.4.13</div><div class='add'>+</div><div class='add'>+* Fixed the dry-run flag so it is operating again.</div><div class='add'>+* Multiple arguments to sh and ruby commands will not be interpreted</div><div class='add'>+  by the shell (patch provided by Jonathan Paisley).</div><div class='add'>+</div><div class='add'>+== Version 0.4.12</div><div class='add'>+</div><div class='add'>+* Added --silent (-s) to suppress the (in directory) rake message.</div><div class='add'>+</div><div class='add'>+== Version 0.4.11</div><div class='add'>+</div><div class='add'>+* Changed the "don't know how to rake" message (finally)</div><div class='add'>+* Changes references to a literal "Rakefile" to reference the global</div><div class='add'>+  variable $rakefile (which contains the actual name of the rakefile).</div><div class='add'>+</div><div class='add'>+== Version 0.4.10</div><div class='add'>+</div><div class='add'>+* Added block support to the "sh" command, allowing users to take</div><div class='add'>+  special actions on the result of the system call.  E.g.</div><div class='add'>+</div><div class='add'>+    sh "shell_command" do |ok, res|</div><div class='add'>+      puts "Program returned #{res.exitstatus}" if ! ok</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+== Version 0.4.9</div><div class='add'>+</div><div class='add'>+* Switched to Jamis Buck's RDoc template.</div><div class='add'>+* Removed autorequire from Rake's gem spec.  This prevents the Rake</div><div class='add'>+  libraries from loading while using rails.</div><div class='add'>+</div><div class='add'>+== Version 0.4.8</div><div class='add'>+</div><div class='add'>+* Added support for .rb versions of Rakefile.</div><div class='add'>+* Removed \\\n's from test task.</div><div class='add'>+* Fixed Ruby 1.9 compatibility issue with FileList.</div><div class='add'>+</div><div class='add'>+== Version 0.4.7</div><div class='add'>+</div><div class='add'>+* Fixed problem in FileList that caused Ruby 1.9 to go into infinite</div><div class='add'>+  recursion.  Since to_a was removed from Object, it does not need to</div><div class='add'>+  added back into the list of methods to rewrite in FileList.  (Thanks</div><div class='add'>+  to Kent Sibilev for pointing this out).</div><div class='add'>+</div><div class='add'>+== Version 0.4.6</div><div class='add'>+* Removed test version of ln in FileUtils that prevented safe_ln from</div><div class='add'>+  using ln.</div><div class='add'>+</div><div class='add'>+== Version 0.4.5</div><div class='add'>+* Upgraded comments in TestTask.</div><div class='add'>+* FileList to_s and inspect now automatically resolve pending changes.</div><div class='add'>+* FileList#exclude properly returns the FileList.</div><div class='add'>+</div><div class='add'>+== Version 0.4.4</div><div class='add'>+* Fixed initialization problem with @comment.</div><div class='add'>+* Now using multi -r technique in TestTask.  Switch Rakefile back to</div><div class='add'>+  using the built-in test task macros because the rake runtime is no</div><div class='add'>+  longer needed.</div><div class='add'>+* Added 'TEST=filename' and 'TESTOPTS=options' to the Test Task</div><div class='add'>+  macros.</div><div class='add'>+* Allow a +test_files+ attribute in test tasks.  This allows more</div><div class='add'>+  flexibility in specifying test files.</div><div class='add'>+</div><div class='add'>+== Version 0.4.3</div><div class='add'>+* Fixed Comment leakage.</div><div class='add'>+</div><div class='add'>+== Version 0.4.2</div><div class='add'>+* Added safe_ln that falls back to a copy if a file link is not supported.</div><div class='add'>+* Package builder now uses safe_ln.</div><div class='add'>+</div><div class='add'>+== Version 0.4.1</div><div class='add'>+* Task comments are now additive, combined with "/".</div><div class='add'>+* Works with (soon to be released) rubygems 0.6.2 (or 0.7.0)</div><div class='add'>+</div><div class='add'>+== Version 0.4.0</div><div class='add'>+* FileList now uses deferred loading.  The file system is not searched</div><div class='add'>+  until the first call that needs the file names.</div><div class='add'>+* VAR=VALUE options are now accepted on the command line and are</div><div class='add'>+  treated like environment variables.  The values may be tested in a</div><div class='add'>+  Rakefile by referencing ENV['VAR'].</div><div class='add'>+* File.mtime is now used (instead of File.new().mtime).</div><div class='add'>+</div><div class='add'>+== Version 0.3.2.x</div><div class='add'>+</div><div class='add'>+* Removed some hidden dependencies on rubygems.  Tests now will test</div><div class='add'>+  gems only if they are installed.</div><div class='add'>+* Removed Sys from some example files.  I believe that is that last</div><div class='add'>+  reference to Sys outside of the contrib area.</div><div class='add'>+* Updated all copyright notices to include 2004.</div><div class='add'>+</div><div class='add'>+== Version 0.3.2</div><div class='add'>+</div><div class='add'>+* GEM Installation now works with the application stub.</div><div class='add'>+</div><div class='add'>+== Version 0.3.1</div><div class='add'>+</div><div class='add'>+* FileLists now automatically ignore CVS, .bak, !</div><div class='add'>+* GEM Installation now works.</div><div class='add'>+</div><div class='add'>+== Version 0.3.0</div><div class='add'>+</div><div class='add'>+Promoted 0.2.10.</div><div class='add'>+</div><div class='add'>+== Version 0.2.10</div><div class='add'>+General</div><div class='add'>+</div><div class='add'>+* Added title to Rake's rdocs</div><div class='add'>+* Contrib packages are no longer included in the documentation.</div><div class='add'>+</div><div class='add'>+RDoc Issues</div><div class='add'>+</div><div class='add'>+* Removed default for the '--main' option</div><div class='add'>+* Fixed rendering of the rdoc options</div><div class='add'>+* Fixed clean/clobber confusion with rerdoc</div><div class='add'>+* 'title' attribute added</div><div class='add'>+</div><div class='add'>+Package Task Library Issues</div><div class='add'>+</div><div class='add'>+* Version (or explicit :noversion) is required.</div><div class='add'>+* +package_file+ attribute is now writable</div><div class='add'>+</div><div class='add'>+FileList Issues</div><div class='add'>+</div><div class='add'>+* Dropped bang version of exclude.  Now using ant-like include/exclude semantics.</div><div class='add'>+* Enabled the "yield self" idiom in FileList#initialize.</div><div class='add'>+</div><div class='add'>+== Version 0.2.9</div><div class='add'>+</div><div class='add'>+This version contains numerous changes as the RubyConf.new(2003)</div><div class='add'>+presentation was being prepared.  The changes include:</div><div class='add'>+</div><div class='add'>+* The monolithic rubyapp task library is in the process of being</div><div class='add'>+  dropped in favor of lighter weight task libraries.</div><div class='add'>+</div><div class='add'>+== Version 0.2.7</div><div class='add'>+</div><div class='add'>+* Added "desc" for task descriptions.</div><div class='add'>+* -T will now display tasks with descriptions.</div><div class='add'>+* -P will display tasks and prerequisites.</div><div class='add'>+* Dropped the Sys module in favor of the 1.8.x FileUtils module.  Sys</div><div class='add'>+  is still supported in the contrib area.</div><div class='add'>+</div><div class='add'>+== Version 0.2.6</div><div class='add'>+</div><div class='add'>+* Moved to RubyForge</div><div class='add'>+</div><div class='add'>+== Version 0.2.5</div><div class='add'>+</div><div class='add'>+* Switched to standard ruby app builder.</div><div class='add'>+* Added no_match option to file matcher.</div><div class='add'>+</div><div class='add'>+== Version 0.2.4</div><div class='add'>+</div><div class='add'>+* Fixed indir, which neglected to actually change directories.</div><div class='add'>+</div><div class='add'>+== Version 0.2.3</div><div class='add'>+</div><div class='add'>+* Added rake module for a help target</div><div class='add'>+* Added 'for_files' to Sys</div><div class='add'>+* Added a $rakefile constant</div><div class='add'>+* Added test for selecting proper rule with multiple targets.</div><div class='head'>diff --git a/doc/rake/README b/doc/rake/README<br/>new file mode 100644<br/>index 0000000000..41668dd727<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/README?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/README</a></div><div class='hunk'>@@ -0,0 +1,196 @@</div><div class='add'>+= RAKE -- Ruby Make </div><div class='add'>+</div><div class='add'>+Supporting Rake version: 0.8.6</div><div class='add'>+</div><div class='add'>+This package contains Rake, a simple ruby build program with</div><div class='add'>+capabilities similar to make.</div><div class='add'>+</div><div class='add'>+Rake has the following features:</div><div class='add'>+</div><div class='add'>+* Rakefiles (rake's version of Makefiles) are completely defined in</div><div class='add'>+  standard Ruby syntax.  No XML files to edit.  No quirky Makefile</div><div class='add'>+  syntax to worry about (is that a tab or a space?)</div><div class='add'>+</div><div class='add'>+* Users can specify tasks with prerequisites.</div><div class='add'>+</div><div class='add'>+* Rake supports rule patterns to synthesize implicit tasks.</div><div class='add'>+</div><div class='add'>+* Flexible FileLists that act like arrays but know about manipulating</div><div class='add'>+  file names and paths.</div><div class='add'>+</div><div class='add'>+* A library of prepackaged tasks to make building rakefiles easier. For example,</div><div class='add'>+  tasks for building tarballs, gems and RDoc output are provided.</div><div class='add'>+</div><div class='add'>+* Supports parallel execution of tasks.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+== Installation</div><div class='add'>+</div><div class='add'>+=== Gem Installation</div><div class='add'>+</div><div class='add'>+Download and install  rake with the following.</div><div class='add'>+</div><div class='add'>+   gem install rake</div><div class='add'>+</div><div class='add'>+=== Normal Installation</div><div class='add'>+</div><div class='add'>+You can download the source tarball of the latest version of Rake from</div><div class='add'>+</div><div class='add'>+* http://rubyforge.org/project/showfiles.php?group_id=50</div><div class='add'>+</div><div class='add'>+Extract the tarball and run</div><div class='add'>+</div><div class='add'>+  % ruby install.rb</div><div class='add'>+</div><div class='add'>+from its distribution directory.</div><div class='add'>+</div><div class='add'>+== Usage</div><div class='add'>+</div><div class='add'>+=== Simple Example</div><div class='add'>+</div><div class='add'>+First, you must write a "Rakefile" file which contains the build rules. Here's</div><div class='add'>+a simple example:</div><div class='add'>+</div><div class='add'>+  task :default =&gt; [:test]</div><div class='add'>+  </div><div class='add'>+  task :test do</div><div class='add'>+    ruby "test/unittest.rb"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+This Rakefile has two tasks:</div><div class='add'>+</div><div class='add'>+* A task named "test", which - upon invocation - will run a unit test file in</div><div class='add'>+  Ruby.</div><div class='add'>+* A task named "default". This task does nothing by itself, but it has exactly</div><div class='add'>+  one dependency, namely the "test" task. Invoking the "default" task will</div><div class='add'>+  cause Rake to invoke the "test" task as well.</div><div class='add'>+</div><div class='add'>+Running the "rake" command without any options will cause it to run the</div><div class='add'>+"default" task in the Rakefile:</div><div class='add'>+</div><div class='add'>+  % ls</div><div class='add'>+  Rakefile     test/</div><div class='add'>+  % rake</div><div class='add'>+  (in /home/some_user/Projects/rake)</div><div class='add'>+  ruby test/unittest.rb</div><div class='add'>+  ....unit test output here...</div><div class='add'>+</div><div class='add'>+Type "rake --help" for all available options.</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+=== More Information</div><div class='add'>+</div><div class='add'>+* For details on Rake's command-line invocation, read</div><div class='add'>+  doc/command_line_usage.rdoc[http://rake.rubyforge.org/files/doc/command_line_usage_rdoc.html]</div><div class='add'>+* For details on writing Rakefiles, see</div><div class='add'>+  doc/rakefile.rdoc[http://rake.rubyforge.org/files/doc/rakefile_rdoc.html].</div><div class='add'>+* For the original announcement of Rake, see</div><div class='add'>+  doc/rational.rdoc[http://rake.rubyforge.org/files/doc/rational_rdoc.html].</div><div class='add'>+* For a glossary of terms, see</div><div class='add'>+  doc/glossary.rdoc[http://rake.rubyforge.org/files/doc/glossary_rdoc.html].</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+== Development</div><div class='add'>+</div><div class='add'>+=== Source Repository</div><div class='add'>+</div><div class='add'>+Rake is currently hosted at github. The github web page is</div><div class='add'>+http://github.com/jimweirich/rake. The public git clone URL is</div><div class='add'>+</div><div class='add'>+* git://github.com/jimweirich/rake.git</div><div class='add'>+</div><div class='add'>+=== Running the Rake Test Suite</div><div class='add'>+</div><div class='add'>+If you wish to run the unit and functional tests that come with Rake:</div><div class='add'>+</div><div class='add'>+* Install the 'session' gem in order to run the functional tests.</div><div class='add'>+* CD into the top project directory of rake.</div><div class='add'>+* Type one of the following:</div><div class='add'>+</div><div class='add'>+     rake                  # If you have a version of rake installed</div><div class='add'>+     ruby -Ilib bin/rake   # If you do not have a version of rake installed.</div><div class='add'>+</div><div class='add'>+=== Issues and Bug Reports</div><div class='add'>+</div><div class='add'>+Bugs, features requests and other issues can be logged at</div><div class='add'>+</div><div class='add'>+* http://onestepback.org/redmine/projects/show/rake</div><div class='add'>+</div><div class='add'>+You will need an account to before you can post issues.  Register at</div><div class='add'>+http://onestepback.org/redmine/account/register.  Or you can send me</div><div class='add'>+an email (at jim dot weirich at gmail dot com)</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+== Online Resources</div><div class='add'>+</div><div class='add'>+=== Rake References</div><div class='add'>+</div><div class='add'>+* Rake Documentation Home: http://docs.rubyrake.org</div><div class='add'>+* Rake Project Page: http://rubyforge.org/projects/rake</div><div class='add'>+* Rake API Documents: http://rake.rubyforge.org</div><div class='add'>+* Rake Source Code Repo:  http://github.com/jimweirich/rake</div><div class='add'>+* Rake Git Repo Clone URL: git://github.com/jimweirich/rake.git</div><div class='add'>+</div><div class='add'>+=== Presentations and Articles about Rake</div><div class='add'>+</div><div class='add'>+* Jim Weirich's 2003 RubyConf presentation: http://onestepback.org/articles/buildingwithrake/</div><div class='add'>+* Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html</div><div class='add'>+</div><div class='add'>+== Other Make Reinvisionings ...</div><div class='add'>+</div><div class='add'>+Rake is a late entry in the make replacement field.  Here are links to</div><div class='add'>+other projects with similar (and not so similar) goals.</div><div class='add'>+</div><div class='add'>+* http://directory.fsf.org/bras.html -- Bras, one of earliest</div><div class='add'>+  implementations of "make in a scripting language".</div><div class='add'>+* http://www.a-a-p.org -- Make in Python</div><div class='add'>+* http://www.aromatic.com/tools/jam.txt -- JAM, Java Automated Make</div><div class='add'>+* http://ant.apache.org -- The Ant project</div><div class='add'>+* http://ppt.perl.org/commands/make/index.html -- Make from the Perl</div><div class='add'>+  Power Tools implementation.</div><div class='add'>+* http://search.cpan.org/search?query=PerlBuildSystem -- The Perl Build System</div><div class='add'>+* http://make.rubyforge.org -- Rant, another Ruby make tool.</div><div class='add'>+</div><div class='add'>+== Credits</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;Ryan Dlugosz&lt;/b&gt;] For the initial conversation that sparked Rake.</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;nobu.nokada@softhome.net&lt;/b&gt;] For the initial patch for rule support.</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;Tilman Sauerbeck &lt;tilman@code-monkey.de&gt;&lt;/b&gt;] For the recursive rule patch.</div><div class='add'>+</div><div class='add'>+== License</div><div class='add'>+</div><div class='add'>+Rake is available under an MIT-style license.</div><div class='add'>+</div><div class='add'>+:include: MIT-LICENSE</div><div class='add'>+</div><div class='add'>+== Support</div><div class='add'>+</div><div class='add'>+The Rake homepage is http://rake.rubyforge.org.  You can find the Rake</div><div class='add'>+RubyForge page at http://rubyforge.org/projects/rake.</div><div class='add'>+</div><div class='add'>+Feel free to submit commits or feature requests.  If you send a patch,</div><div class='add'>+remember to update the corresponding unit tests.  If fact, I prefer</div><div class='add'>+new feature to be submitted in the form of new unit tests.</div><div class='add'>+</div><div class='add'>+For other information, feel free to ask on the ruby-talk mailing list</div><div class='add'>+(which is mirrored to comp.lang.ruby) or contact</div><div class='add'>+jim dot weirich at gmail.com.</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+</div><div class='add'>+= Other stuff</div><div class='add'>+</div><div class='add'>+Author::   Jim Weirich &lt;jim.weirich@gmail.com&gt;</div><div class='add'>+Requires:: Ruby 1.8.0 or later</div><div class='add'>+License::  Copyright 2003-2008 by Jim Weirich.</div><div class='add'>+           Released under an MIT-style license.  See the LICENSE file</div><div class='add'>+           included in the distribution.</div><div class='add'>+</div><div class='add'>+== Warranty</div><div class='add'>+</div><div class='add'>+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 merchantibility and fitness for a particular</div><div class='add'>+purpose.</div><div class='head'>diff --git a/doc/rake/command_line_usage.rdoc b/doc/rake/command_line_usage.rdoc<br/>new file mode 100644<br/>index 0000000000..c60e53f51a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/command_line_usage.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/command_line_usage.rdoc</a></div><div class='hunk'>@@ -0,0 +1,102 @@</div><div class='add'>+= Rake Command Line Usage</div><div class='add'>+</div><div class='add'>+Rake is invoked from the command line using:</div><div class='add'>+</div><div class='add'>+   % rake [&lt;em&gt;options&lt;/em&gt; ...]  [&lt;em&gt;VAR&lt;/em&gt;=&lt;em&gt;VALUE&lt;/em&gt;]  [&lt;em&gt;targets&lt;/em&gt; ...]</div><div class='add'>+</div><div class='add'>+Options are:</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;&lt;em&gt;name&lt;/em&gt;=&lt;em&gt;value&lt;/em&gt;&lt;/tt&gt;]</div><div class='add'>+    Set the environment variable &lt;em&gt;name&lt;/em&gt; to &lt;em&gt;value&lt;/em&gt;</div><div class='add'>+    during the execution of the &lt;b&gt;rake&lt;/b&gt; command.  You can access</div><div class='add'>+    the value by using ENV['&lt;em&gt;name&lt;/em&gt;'].  </div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--classic-namespace&lt;/tt&gt; (-n)]</div><div class='add'>+    Import the Task, FileTask, and FileCreateTask into the top-level</div><div class='add'>+    scope to be compatible with older versions of Rake.  Alternatively</div><div class='add'>+    you can include the line &lt;code&gt;require</div><div class='add'>+    'rake/classic_namespace'&lt;/code&gt; in your Rakefile to get the</div><div class='add'>+    classic behavior.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--describe&lt;/tt&gt; _pattern_ (-D)]</div><div class='add'>+    Describe the tasks (matching optional PATTERN), then exit.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--dry-run&lt;/tt&gt; (-n)]</div><div class='add'>+    Do a dry run.  Print the tasks invoked and executed, but do not</div><div class='add'>+    actually execute any of the actions.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--execute&lt;/tt&gt; _code_ (-e)]</div><div class='add'>+    Execute some Ruby code and exit.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--execute-print&lt;/tt&gt; _code_ (-p)]</div><div class='add'>+    Execute some Ruby code, print the result, and exit.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--execute-continue&lt;/tt&gt; _code_ (-p)]</div><div class='add'>+    Execute some Ruby code, then continue with normal task processing.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--help&lt;/tt&gt;  (-H)]</div><div class='add'>+    Display some help text and exit.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--libdir&lt;/tt&gt; _directory_  (-I)]</div><div class='add'>+    Add _directory_ to the list of directories searched for require.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--nosearch&lt;/tt&gt;  (-N)]</div><div class='add'>+    Do not search for a Rakefile in parent directories.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--prereqs&lt;/tt&gt;  (-P)]</div><div class='add'>+    Display a list of all tasks and their immediate prerequisites.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--quiet&lt;/tt&gt; (-q)]</div><div class='add'>+    Do not echo commands from FileUtils.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--rakefile&lt;/tt&gt; _filename_ (-f)]</div><div class='add'>+    Use _filename_ as the name of the rakefile. The default rakefile</div><div class='add'>+    names are +rakefile+ and +Rakefile+ (with +rakefile+ taking</div><div class='add'>+    precedence). If the rakefile is not found in the current</div><div class='add'>+    directory, +rake+ will search parent directories for a match. The</div><div class='add'>+    directory where the Rakefile is found will become the current</div><div class='add'>+    directory for the actions executed in the Rakefile.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--rakelibdir&lt;/tt&gt; _rakelibdir_ (-R)]</div><div class='add'>+    Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--require&lt;/tt&gt; _name_ (-r)]</div><div class='add'>+    Require _name_ before executing the Rakefile.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--rules&lt;/tt&gt;]</div><div class='add'>+    Trace the rules resolution.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--silent (-s)&lt;/tt&gt;]</div><div class='add'>+    Like --quiet, but also suppresses the 'in directory' announcement.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--system&lt;/tt&gt; (-g)]</div><div class='add'>+    Use the system wide (global) rakefiles. The project Rakefile is</div><div class='add'>+    ignored. By default, the system wide rakefiles are used only if no</div><div class='add'>+    project Rakefile is found. On Unix-like system, the system wide</div><div class='add'>+    rake files are located in $HOME/.rake. On a windows system they</div><div class='add'>+    are stored in $APPDATA/Rake.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--no-system&lt;/tt&gt; (-G)]</div><div class='add'>+    Use the project level Rakefile, ignoring the system-wide (global)</div><div class='add'>+    rakefiles.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--tasks&lt;/tt&gt; (-T)]</div><div class='add'>+    Display a list of the major tasks and their comments.  Comments</div><div class='add'>+    are defined using the "desc" command.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--trace&lt;/tt&gt; (-t)]</div><div class='add'>+    Turn on invoke/execute tracing. Also enable full backtrace on</div><div class='add'>+    errors.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--usage&lt;/tt&gt; (-h)]</div><div class='add'>+    Display a usage message and exit.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--verbose&lt;/tt&gt; (-v)]</div><div class='add'>+    Echo the Sys commands to standard output.</div><div class='add'>+</div><div class='add'>+[&lt;tt&gt;--version&lt;/tt&gt; (-V)]</div><div class='add'>+    Display the program version and exit.</div><div class='add'>+</div><div class='add'>+In addition, any command line option of the form</div><div class='add'>+&lt;em&gt;VAR&lt;/em&gt;=&lt;em&gt;VALUE&lt;/em&gt; will be added to the environment hash</div><div class='add'>+&lt;tt&gt;ENV&lt;/tt&gt; and may be tested in the Rakefile.</div><div class='head'>diff --git a/doc/rake/example/Rakefile1 b/doc/rake/example/Rakefile1<br/>new file mode 100644<br/>index 0000000000..39f8bcceb0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/example/Rakefile1?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/example/Rakefile1</a></div><div class='hunk'>@@ -0,0 +1,38 @@</div><div class='add'>+# Example Rakefile -*- ruby -*-</div><div class='add'>+</div><div class='add'>+task :default =&gt; [:main]</div><div class='add'>+</div><div class='add'>+file "a.o" =&gt; ["a.c"] do |t|</div><div class='add'>+  src = t.name.sub(/\.o$/, '.c')</div><div class='add'>+  sh "gcc #{src} -c -o #{t.name}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+file "b.o" =&gt; ["b.c"] do |t|</div><div class='add'>+  src = t.name.sub(/\.o$/, '.c')</div><div class='add'>+  sh "gcc #{src} -c -o #{t.name}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+file "main.o" =&gt; ["main.c"] do |t|</div><div class='add'>+  src = t.name.sub(/\.o$/, '.c')</div><div class='add'>+  sh "gcc #{src} -c -o #{t.name}"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+OBJFILES = ["a.o", "b.o", "main.o"]</div><div class='add'>+task :obj =&gt; OBJFILES</div><div class='add'>+</div><div class='add'>+file "main" =&gt; OBJFILES do |t|</div><div class='add'>+  sh "gcc -o #{t.name} main.o a.o b.o"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+task :clean do</div><div class='add'>+  rm_f FileList['*.o']</div><div class='add'>+  Dir['*~'].each { |fn| rm_f fn }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+task :clobber =&gt; [:clean] do</div><div class='add'>+  rm_f "main"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+task :run =&gt; ["main"] do</div><div class='add'>+  sh "./main"</div><div class='add'>+end</div><div class='head'>diff --git a/doc/rake/example/Rakefile2 b/doc/rake/example/Rakefile2<br/>new file mode 100644<br/>index 0000000000..35310eceb5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/example/Rakefile2?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/example/Rakefile2</a></div><div class='hunk'>@@ -0,0 +1,35 @@</div><div class='add'>+# Example Rakefile -*- ruby -*-</div><div class='add'>+# Using the power of Ruby</div><div class='add'>+</div><div class='add'>+task :default =&gt; [:main]</div><div class='add'>+</div><div class='add'>+def ext(fn, newext)</div><div class='add'>+  fn.sub(/\.[^.]+$/, newext)</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+SRCFILES = Dir['*.c']</div><div class='add'>+OBJFILES = SRCFILES.collect { |fn| ext(fn,".o") }</div><div class='add'>+</div><div class='add'>+OBJFILES.each do |objfile|</div><div class='add'>+  srcfile = ext(objfile, ".c")</div><div class='add'>+  file objfile =&gt; [srcfile] do |t|</div><div class='add'>+    sh "gcc #{srcfile} -c -o #{t.name}"</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+file "main" =&gt; OBJFILES do |t|</div><div class='add'>+  sh "gcc -o #{t.name} main.o a.o b.o"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+task :clean do</div><div class='add'>+  rm_f FileList['*.o']</div><div class='add'>+  Dir['*~'].each { |fn| rm_f fn }</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+task :clobber =&gt; [:clean] do</div><div class='add'>+  rm_f "main"</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+task :run =&gt; ["main"] do</div><div class='add'>+  sh "./main"</div><div class='add'>+end</div><div class='head'>diff --git a/doc/rake/example/a.c b/doc/rake/example/a.c<br/>new file mode 100644<br/>index 0000000000..620e6f8007<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/example/a.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/example/a.c</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='add'>+void a()</div><div class='add'>+{</div><div class='add'>+    printf ("In function a\n");</div><div class='add'>+}</div><div class='head'>diff --git a/doc/rake/example/b.c b/doc/rake/example/b.c<br/>new file mode 100644<br/>index 0000000000..9b24aa1273<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/example/b.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/example/b.c</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='add'>+void b()</div><div class='add'>+{</div><div class='add'>+    printf ("In function b\n");</div><div class='add'>+}</div><div class='head'>diff --git a/doc/rake/example/main.c b/doc/rake/example/main.c<br/>new file mode 100644<br/>index 0000000000..a04558a251<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/example/main.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/example/main.c</a></div><div class='hunk'>@@ -0,0 +1,11 @@</div><div class='add'>+#include &lt;stdio.h&gt;</div><div class='add'>+</div><div class='add'>+extern void a();</div><div class='add'>+extern void b();</div><div class='add'>+</div><div class='add'>+int main ()</div><div class='add'>+{</div><div class='add'>+    a();</div><div class='add'>+    b();</div><div class='add'>+    return 0;</div><div class='add'>+}</div><div class='head'>diff --git a/doc/rake/glossary.rdoc b/doc/rake/glossary.rdoc<br/>new file mode 100644<br/>index 0000000000..0ca1869306<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/glossary.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/glossary.rdoc</a></div><div class='hunk'>@@ -0,0 +1,51 @@</div><div class='add'>+= Glossary</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;action&lt;/b&gt;]</div><div class='add'>+	Code to be executed in order to perform a task.  Actions in a</div><div class='add'>+	rakefile are specified in a code block (usually delimited by</div><div class='add'>+	+do+/+end+ pairs.</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;execute&lt;/b&gt;]</div><div class='add'>+	When a task is executed, all of its actions are performed, in</div><div class='add'>+	the order they were defined.  Note that unlike</div><div class='add'>+	&lt;tt&gt;invoke&lt;/tt&gt;, &lt;tt&gt;execute&lt;/tt&gt; always executes the actions</div><div class='add'>+	(without invoking or executing the prerequisites).</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;file task&lt;/b&gt; (FileTask)]</div><div class='add'>+	 A file task is a task whose purpose is to create a file</div><div class='add'>+	 (which has the same name as the task).  When invoked, a file</div><div class='add'>+	 task will only execute if one or more of the following</div><div class='add'>+	 conditions are true.</div><div class='add'>+</div><div class='add'>+         1. The associated file does not exist.</div><div class='add'>+	 2. A prerequisite has a later time stamp than the existing file.</div><div class='add'>+</div><div class='add'>+	 Because normal Tasks always have the current time as</div><div class='add'>+	 timestamp, a FileTask that has a normal Task prerequisite</div><div class='add'>+	 will always execute.</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;invoke&lt;/b&gt;]</div><div class='add'>+	When a task is invoked, first we check to see if it has been</div><div class='add'>+	invoked before.  if it has been, then nothing else is done.</div><div class='add'>+	If this is the first time its been invoked, then we invoke</div><div class='add'>+	each of its prerequisites.  Finally, we check to see if we</div><div class='add'>+	need to execute the actions of this task by calling</div><div class='add'>+	&lt;tt&gt;needed?&lt;/tt&gt;.  Finally, if the task is needed, we execute</div><div class='add'>+	its actions.</div><div class='add'>+</div><div class='add'>+	NOTE: Currently prerequisites are invoked even if the task is</div><div class='add'>+	not needed.  This may change in the future.</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;prerequisites&lt;/b&gt;]</div><div class='add'>+	Every task has a set (possiblity empty) of prerequisites.  A</div><div class='add'>+	prerequisite P to Task T is itself a task that must be invoked</div><div class='add'>+	before Task T.  </div><div class='add'>+</div><div class='add'>+[&lt;b&gt;rule&lt;/b&gt;]</div><div class='add'>+	A rule is a recipe for synthesizing a task when no task is</div><div class='add'>+	explicitly defined.  Rules generally synthesize file tasks.</div><div class='add'>+</div><div class='add'>+[&lt;b&gt;task&lt;/b&gt; (Task)]</div><div class='add'>+	Basic unit of work in a rakefile.  A task has a name, a set of</div><div class='add'>+	prerequisites and a list of actions to be performed.</div><div class='add'>+</div><div class='head'>diff --git a/doc/rake/jamis.rb b/doc/rake/jamis.rb<br/>new file mode 100644<br/>index 0000000000..c7bc84ac5b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/jamis.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/jamis.rb</a></div><div class='hunk'>@@ -0,0 +1,591 @@</div><div class='add'>+module RDoc</div><div class='add'>+module Page</div><div class='add'>+</div><div class='add'>+FONTS = "\"Bitstream Vera Sans\", Verdana, Arial, Helvetica, sans-serif"</div><div class='add'>+</div><div class='add'>+STYLE = &lt;&lt;CSS</div><div class='add'>+a {</div><div class='add'>+  color: #00F;</div><div class='add'>+  text-decoration: none;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+a:hover {</div><div class='add'>+  color: #77F;</div><div class='add'>+  text-decoration: underline;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+body, td, p {</div><div class='add'>+  font-family: %fonts%;</div><div class='add'>+  background: #FFF;</div><div class='add'>+  color: #000;</div><div class='add'>+  margin: 0px;</div><div class='add'>+  font-size: small;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#content {</div><div class='add'>+  margin: 2em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#description p {</div><div class='add'>+  margin-bottom: 0.5em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.sectiontitle {</div><div class='add'>+  margin-top: 1em;</div><div class='add'>+  margin-bottom: 1em;</div><div class='add'>+  padding: 0.5em;</div><div class='add'>+  padding-left: 2em;</div><div class='add'>+  background: #005;</div><div class='add'>+  color: #FFF;</div><div class='add'>+  font-weight: bold;</div><div class='add'>+  border: 1px dotted black;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.attr-rw {</div><div class='add'>+  padding-left: 1em;</div><div class='add'>+  padding-right: 1em;</div><div class='add'>+  text-align: center;</div><div class='add'>+  color: #055;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.attr-name {</div><div class='add'>+  font-weight: bold;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.attr-desc {</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.attr-value {</div><div class='add'>+  font-family: monospace;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.file-title-prefix {</div><div class='add'>+  font-size: large;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.file-title {</div><div class='add'>+  font-size: large;</div><div class='add'>+  font-weight: bold;</div><div class='add'>+  background: #005;</div><div class='add'>+  color: #FFF;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.banner {</div><div class='add'>+  background: #005;</div><div class='add'>+  color: #FFF;</div><div class='add'>+  border: 1px solid black;</div><div class='add'>+  padding: 1em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.banner td {</div><div class='add'>+  background: transparent;</div><div class='add'>+  color: #FFF;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+h1 a, h2 a, .sectiontitle a, .banner a {</div><div class='add'>+  color: #FF0;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+h1 a:hover, h2 a:hover, .sectiontitle a:hover, .banner a:hover {</div><div class='add'>+  color: #FF7;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.dyn-source {</div><div class='add'>+  display: none;</div><div class='add'>+  background: #FFE;</div><div class='add'>+  color: #000;</div><div class='add'>+  border: 1px dotted black;</div><div class='add'>+  margin: 0.5em 2em 0.5em 2em;</div><div class='add'>+  padding: 0.5em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.dyn-source .cmt {</div><div class='add'>+  color: #00F;</div><div class='add'>+  font-style: italic;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.dyn-source .kw {</div><div class='add'>+  color: #070;</div><div class='add'>+  font-weight: bold;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.method {</div><div class='add'>+  margin-left: 1em;</div><div class='add'>+  margin-right: 1em;</div><div class='add'>+  margin-bottom: 1em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.description pre {</div><div class='add'>+  padding: 0.5em;</div><div class='add'>+  border: 1px dotted black;</div><div class='add'>+  background: #FFE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.method .title {</div><div class='add'>+  font-family: monospace;</div><div class='add'>+  font-size: large;</div><div class='add'>+  border-bottom: 1px dashed black;</div><div class='add'>+  margin-bottom: 0.3em;</div><div class='add'>+  padding-bottom: 0.1em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.method .description, .method .sourcecode {</div><div class='add'>+  margin-left: 1em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.description p, .sourcecode p {</div><div class='add'>+  margin-bottom: 0.5em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.method .sourcecode p.source-link {</div><div class='add'>+  text-indent: 0em;</div><div class='add'>+  margin-top: 0.5em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.method .aka {</div><div class='add'>+  margin-top: 0.3em;</div><div class='add'>+  margin-left: 1em;</div><div class='add'>+  font-style: italic;</div><div class='add'>+  text-indent: 2em;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+h1 {</div><div class='add'>+  padding: 1em;</div><div class='add'>+  border: 1px solid black;</div><div class='add'>+  font-size: x-large;</div><div class='add'>+  font-weight: bold;</div><div class='add'>+  color: #FFF;</div><div class='add'>+  background: #007;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+h2 {</div><div class='add'>+  padding: 0.5em 1em 0.5em 1em;</div><div class='add'>+  border: 1px solid black;</div><div class='add'>+  font-size: large;</div><div class='add'>+  font-weight: bold;</div><div class='add'>+  color: #FFF;</div><div class='add'>+  background: #009;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+h3, h4, h5, h6 {</div><div class='add'>+  padding: 0.2em 1em 0.2em 1em;</div><div class='add'>+  border: 1px dashed black;</div><div class='add'>+  color: #000;</div><div class='add'>+  background: #AAF;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+.sourcecode &gt; pre {</div><div class='add'>+  padding: 0.5em;</div><div class='add'>+  border: 1px dotted black;</div><div class='add'>+  background: #FFE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+CSS</div><div class='add'>+</div><div class='add'>+XHTML_PREAMBLE = %{&lt;?xml version="1.0" encoding="%charset%"?&gt;</div><div class='add'>+&lt;!DOCTYPE html</div><div class='add'>+     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"</div><div class='add'>+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+HEADER = XHTML_PREAMBLE + &lt;&lt;ENDHEADER</div><div class='add'>+&lt;html&gt;</div><div class='add'>+  &lt;head&gt;</div><div class='add'>+    &lt;title&gt;%title%&lt;/title&gt;</div><div class='add'>+    &lt;meta http-equiv="Content-Type" content="text/html; charset=%charset%" /&gt;</div><div class='add'>+    &lt;link rel="stylesheet" href="%style_url%" type="text/css" media="screen" /&gt;</div><div class='add'>+</div><div class='add'>+    &lt;script language="JavaScript" type="text/javascript"&gt;</div><div class='add'>+    // &lt;![CDATA[</div><div class='add'>+</div><div class='add'>+        function toggleSource( id )</div><div class='add'>+        {</div><div class='add'>+          var elem</div><div class='add'>+          var link</div><div class='add'>+</div><div class='add'>+          if( document.getElementById )</div><div class='add'>+          {</div><div class='add'>+            elem = document.getElementById( id )</div><div class='add'>+            link = document.getElementById( "l_" + id )</div><div class='add'>+          }</div><div class='add'>+          else if ( document.all )</div><div class='add'>+          {</div><div class='add'>+            elem = eval( "document.all." + id )</div><div class='add'>+            link = eval( "document.all.l_" + id )</div><div class='add'>+          }</div><div class='add'>+          else</div><div class='add'>+            return false;</div><div class='add'>+</div><div class='add'>+          if( elem.style.display == "block" )</div><div class='add'>+          {</div><div class='add'>+            elem.style.display = "none"</div><div class='add'>+            link.innerHTML = "show source"</div><div class='add'>+          }</div><div class='add'>+          else</div><div class='add'>+          {</div><div class='add'>+            elem.style.display = "block"</div><div class='add'>+            link.innerHTML = "hide source"</div><div class='add'>+          }</div><div class='add'>+        }</div><div class='add'>+</div><div class='add'>+        function openCode( url )</div><div class='add'>+        {</div><div class='add'>+          window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" )</div><div class='add'>+        }</div><div class='add'>+      // ]]&gt;</div><div class='add'>+    &lt;/script&gt;</div><div class='add'>+  &lt;/head&gt;</div><div class='add'>+</div><div class='add'>+  &lt;body&gt;</div><div class='add'>+ENDHEADER</div><div class='add'>+</div><div class='add'>+FILE_PAGE = &lt;&lt;HTML</div><div class='add'>+&lt;table border='0' cellpadding='0' cellspacing='0' width="100%" class='banner'&gt;</div><div class='add'>+  &lt;tr&gt;&lt;td&gt;</div><div class='add'>+    &lt;table width="100%" border='0' cellpadding='0' cellspacing='0'&gt;&lt;tr&gt;</div><div class='add'>+      &lt;td class="file-title" colspan="2"&gt;&lt;span class="file-title-prefix"&gt;File&lt;/span&gt;&lt;br /&gt;%short_name%&lt;/td&gt;</div><div class='add'>+      &lt;td align="right"&gt;</div><div class='add'>+        &lt;table border='0' cellspacing="0" cellpadding="2"&gt;</div><div class='add'>+          &lt;tr&gt;</div><div class='add'>+            &lt;td&gt;Path:&lt;/td&gt;</div><div class='add'>+            &lt;td&gt;%full_path%</div><div class='add'>+IF:cvsurl</div><div class='add'>+              &amp;nbsp;(&lt;a href="%cvsurl%"&gt;CVS&lt;/a&gt;)</div><div class='add'>+ENDIF:cvsurl</div><div class='add'>+            &lt;/td&gt;</div><div class='add'>+          &lt;/tr&gt;</div><div class='add'>+          &lt;tr&gt;</div><div class='add'>+            &lt;td&gt;Modified:&lt;/td&gt;</div><div class='add'>+            &lt;td&gt;%dtm_modified%&lt;/td&gt;</div><div class='add'>+          &lt;/tr&gt;</div><div class='add'>+        &lt;/table&gt;</div><div class='add'>+      &lt;/td&gt;&lt;/tr&gt;</div><div class='add'>+    &lt;/table&gt;</div><div class='add'>+  &lt;/td&gt;&lt;/tr&gt;</div><div class='add'>+&lt;/table&gt;&lt;br&gt;</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+###################################################################</div><div class='add'>+</div><div class='add'>+CLASS_PAGE = &lt;&lt;HTML</div><div class='add'>+&lt;table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'&gt;&lt;tr&gt;</div><div class='add'>+  &lt;td class="file-title"&gt;&lt;span class="file-title-prefix"&gt;%classmod%&lt;/span&gt;&lt;br /&gt;%full_name%&lt;/td&gt;</div><div class='add'>+  &lt;td align="right"&gt;</div><div class='add'>+    &lt;table cellspacing=0 cellpadding=2&gt;</div><div class='add'>+      &lt;tr valign="top"&gt;</div><div class='add'>+        &lt;td&gt;In:&lt;/td&gt;</div><div class='add'>+        &lt;td&gt;</div><div class='add'>+START:infiles</div><div class='add'>+HREF:full_path_url:full_path:</div><div class='add'>+IF:cvsurl</div><div class='add'>+&amp;nbsp;(&lt;a href="%cvsurl%"&gt;CVS&lt;/a&gt;)</div><div class='add'>+ENDIF:cvsurl</div><div class='add'>+END:infiles</div><div class='add'>+        &lt;/td&gt;</div><div class='add'>+      &lt;/tr&gt;</div><div class='add'>+IF:parent</div><div class='add'>+    &lt;tr&gt;</div><div class='add'>+      &lt;td&gt;Parent:&lt;/td&gt;</div><div class='add'>+      &lt;td&gt;</div><div class='add'>+IF:par_url</div><div class='add'>+        &lt;a href="%par_url%"&gt;</div><div class='add'>+ENDIF:par_url</div><div class='add'>+%parent%</div><div class='add'>+IF:par_url</div><div class='add'>+         &lt;/a&gt;</div><div class='add'>+ENDIF:par_url</div><div class='add'>+     &lt;/td&gt;</div><div class='add'>+   &lt;/tr&gt;</div><div class='add'>+ENDIF:parent</div><div class='add'>+         &lt;/table&gt;</div><div class='add'>+        &lt;/td&gt;</div><div class='add'>+        &lt;/tr&gt;</div><div class='add'>+      &lt;/table&gt;</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+###################################################################</div><div class='add'>+</div><div class='add'>+METHOD_LIST = &lt;&lt;HTML</div><div class='add'>+  &lt;div id="content"&gt;</div><div class='add'>+IF:diagram</div><div class='add'>+  &lt;table cellpadding='0' cellspacing='0' border='0' width="100%"&gt;&lt;tr&gt;&lt;td align="center"&gt;</div><div class='add'>+    %diagram%</div><div class='add'>+  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</div><div class='add'>+ENDIF:diagram</div><div class='add'>+</div><div class='add'>+IF:description</div><div class='add'>+  &lt;div class="description"&gt;%description%&lt;/div&gt;</div><div class='add'>+ENDIF:description</div><div class='add'>+</div><div class='add'>+IF:requires</div><div class='add'>+  &lt;div class="sectiontitle"&gt;Required Files&lt;/div&gt;</div><div class='add'>+  &lt;ul&gt;</div><div class='add'>+START:requires</div><div class='add'>+  &lt;li&gt;HREF:aref:name:&lt;/li&gt;</div><div class='add'>+END:requires</div><div class='add'>+  &lt;/ul&gt;</div><div class='add'>+ENDIF:requires</div><div class='add'>+</div><div class='add'>+IF:toc</div><div class='add'>+  &lt;div class="sectiontitle"&gt;Contents&lt;/div&gt;</div><div class='add'>+  &lt;ul&gt;</div><div class='add'>+START:toc</div><div class='add'>+  &lt;li&gt;&lt;a href="#%href%"&gt;%secname%&lt;/a&gt;&lt;/li&gt;</div><div class='add'>+END:toc</div><div class='add'>+  &lt;/ul&gt;</div><div class='add'>+ENDIF:toc</div><div class='add'>+</div><div class='add'>+IF:methods</div><div class='add'>+  &lt;div class="sectiontitle"&gt;Methods&lt;/div&gt;</div><div class='add'>+  &lt;ul&gt;</div><div class='add'>+START:methods</div><div class='add'>+  &lt;li&gt;HREF:aref:name:&lt;/li&gt;</div><div class='add'>+END:methods</div><div class='add'>+  &lt;/ul&gt;</div><div class='add'>+ENDIF:methods</div><div class='add'>+</div><div class='add'>+IF:includes</div><div class='add'>+&lt;div class="sectiontitle"&gt;Included Modules&lt;/div&gt;</div><div class='add'>+&lt;ul&gt;</div><div class='add'>+START:includes</div><div class='add'>+  &lt;li&gt;HREF:aref:name:&lt;/li&gt;</div><div class='add'>+END:includes</div><div class='add'>+&lt;/ul&gt;</div><div class='add'>+ENDIF:includes</div><div class='add'>+</div><div class='add'>+START:sections</div><div class='add'>+IF:sectitle</div><div class='add'>+&lt;div class="sectiontitle"&gt;&lt;a nem="%secsequence%"&gt;%sectitle%&lt;/a&gt;&lt;/div&gt;</div><div class='add'>+IF:seccomment</div><div class='add'>+&lt;div class="description"&gt;</div><div class='add'>+%seccomment%</div><div class='add'>+&lt;/div&gt;</div><div class='add'>+ENDIF:seccomment</div><div class='add'>+ENDIF:sectitle</div><div class='add'>+</div><div class='add'>+IF:classlist</div><div class='add'>+  &lt;div class="sectiontitle"&gt;Classes and Modules&lt;/div&gt;</div><div class='add'>+  %classlist%</div><div class='add'>+ENDIF:classlist</div><div class='add'>+</div><div class='add'>+IF:constants</div><div class='add'>+  &lt;div class="sectiontitle"&gt;Constants&lt;/div&gt;</div><div class='add'>+  &lt;table border='0' cellpadding='5'&gt;</div><div class='add'>+START:constants</div><div class='add'>+  &lt;tr valign='top'&gt;</div><div class='add'>+    &lt;td class="attr-name"&gt;%name%&lt;/td&gt;</div><div class='add'>+    &lt;td&gt;=&lt;/td&gt;</div><div class='add'>+    &lt;td class="attr-value"&gt;%value%&lt;/td&gt;</div><div class='add'>+  &lt;/tr&gt;</div><div class='add'>+IF:desc</div><div class='add'>+  &lt;tr valign='top'&gt;</div><div class='add'>+    &lt;td&gt;&amp;nbsp;&lt;/td&gt;</div><div class='add'>+    &lt;td colspan="2" class="attr-desc"&gt;%desc%&lt;/td&gt;</div><div class='add'>+  &lt;/tr&gt;</div><div class='add'>+ENDIF:desc</div><div class='add'>+END:constants</div><div class='add'>+  &lt;/table&gt;</div><div class='add'>+ENDIF:constants</div><div class='add'>+</div><div class='add'>+IF:attributes</div><div class='add'>+  &lt;div class="sectiontitle"&gt;Attributes&lt;/div&gt;</div><div class='add'>+  &lt;table border='0' cellpadding='5'&gt;</div><div class='add'>+START:attributes</div><div class='add'>+  &lt;tr valign='top'&gt;</div><div class='add'>+    &lt;td class='attr-rw'&gt;</div><div class='add'>+IF:rw</div><div class='add'>+[%rw%]</div><div class='add'>+ENDIF:rw</div><div class='add'>+    &lt;/td&gt;</div><div class='add'>+    &lt;td class='attr-name'&gt;%name%&lt;/td&gt;</div><div class='add'>+    &lt;td class='attr-desc'&gt;%a_desc%&lt;/td&gt;</div><div class='add'>+  &lt;/tr&gt;</div><div class='add'>+END:attributes</div><div class='add'>+  &lt;/table&gt;</div><div class='add'>+ENDIF:attributes</div><div class='add'>+</div><div class='add'>+IF:method_list</div><div class='add'>+START:method_list</div><div class='add'>+IF:methods</div><div class='add'>+&lt;div class="sectiontitle"&gt;%type% %category% methods&lt;/div&gt;</div><div class='add'>+START:methods</div><div class='add'>+&lt;div class="method"&gt;</div><div class='add'>+  &lt;div class="title"&gt;</div><div class='add'>+IF:callseq</div><div class='add'>+    &lt;a name="%aref%"&gt;&lt;/a&gt;&lt;b&gt;%callseq%&lt;/b&gt;</div><div class='add'>+ENDIF:callseq</div><div class='add'>+IFNOT:callseq</div><div class='add'>+    &lt;a name="%aref%"&gt;&lt;/a&gt;&lt;b&gt;%name%&lt;/b&gt;%params%</div><div class='add'>+ENDIF:callseq</div><div class='add'>+IF:codeurl</div><div class='add'>+[ &lt;a href="javascript:openCode('%codeurl%')"&gt;source&lt;/a&gt; ]</div><div class='add'>+ENDIF:codeurl</div><div class='add'>+  &lt;/div&gt;</div><div class='add'>+IF:m_desc</div><div class='add'>+  &lt;div class="description"&gt;</div><div class='add'>+  %m_desc%</div><div class='add'>+  &lt;/div&gt;</div><div class='add'>+ENDIF:m_desc</div><div class='add'>+IF:aka</div><div class='add'>+&lt;div class="aka"&gt;</div><div class='add'>+  This method is also aliased as</div><div class='add'>+START:aka</div><div class='add'>+  &lt;a href="%aref%"&gt;%name%&lt;/a&gt;</div><div class='add'>+END:aka</div><div class='add'>+&lt;/div&gt;</div><div class='add'>+ENDIF:aka</div><div class='add'>+IF:sourcecode</div><div class='add'>+&lt;div class="sourcecode"&gt;</div><div class='add'>+  &lt;p class="source-link"&gt;[ &lt;a href="javascript:toggleSource('%aref%_source')" id="l_%aref%_source"&gt;show source&lt;/a&gt; ]&lt;/p&gt;</div><div class='add'>+  &lt;div id="%aref%_source" class="dyn-source"&gt;</div><div class='add'>+&lt;pre&gt;</div><div class='add'>+%sourcecode%</div><div class='add'>+&lt;/pre&gt;</div><div class='add'>+  &lt;/div&gt;</div><div class='add'>+&lt;/div&gt;</div><div class='add'>+ENDIF:sourcecode</div><div class='add'>+&lt;/div&gt;</div><div class='add'>+END:methods</div><div class='add'>+ENDIF:methods</div><div class='add'>+END:method_list</div><div class='add'>+ENDIF:method_list</div><div class='add'>+END:sections</div><div class='add'>+&lt;/div&gt;</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+FOOTER = &lt;&lt;ENDFOOTER</div><div class='add'>+  &lt;/body&gt;</div><div class='add'>+&lt;/html&gt;</div><div class='add'>+ENDFOOTER</div><div class='add'>+</div><div class='add'>+BODY = HEADER + &lt;&lt;ENDBODY</div><div class='add'>+  !INCLUDE! &lt;!-- banner header --&gt;</div><div class='add'>+</div><div class='add'>+  &lt;div id="bodyContent"&gt;</div><div class='add'>+    #{METHOD_LIST}</div><div class='add'>+  &lt;/div&gt;</div><div class='add'>+</div><div class='add'>+  #{FOOTER}</div><div class='add'>+ENDBODY</div><div class='add'>+</div><div class='add'>+########################## Source code ##########################</div><div class='add'>+</div><div class='add'>+SRC_PAGE = XHTML_PREAMBLE + &lt;&lt;HTML</div><div class='add'>+&lt;html&gt;</div><div class='add'>+&lt;head&gt;&lt;title&gt;%title%&lt;/title&gt;</div><div class='add'>+&lt;meta http-equiv="Content-Type" content="text/html; charset=%charset%"&gt;</div><div class='add'>+&lt;style&gt;</div><div class='add'>+.ruby-comment    { color: green; font-style: italic }</div><div class='add'>+.ruby-constant   { color: #4433aa; font-weight: bold; }</div><div class='add'>+.ruby-identifier { color: #222222;  }</div><div class='add'>+.ruby-ivar       { color: #2233dd; }</div><div class='add'>+.ruby-keyword    { color: #3333FF; font-weight: bold }</div><div class='add'>+.ruby-node       { color: #777777; }</div><div class='add'>+.ruby-operator   { color: #111111;  }</div><div class='add'>+.ruby-regexp     { color: #662222; }</div><div class='add'>+.ruby-value      { color: #662222; font-style: italic }</div><div class='add'>+  .kw { color: #3333FF; font-weight: bold }</div><div class='add'>+  .cmt { color: green; font-style: italic }</div><div class='add'>+  .str { color: #662222; font-style: italic }</div><div class='add'>+  .re  { color: #662222; }</div><div class='add'>+&lt;/style&gt;</div><div class='add'>+&lt;/head&gt;</div><div class='add'>+&lt;body bgcolor="white"&gt;</div><div class='add'>+&lt;pre&gt;%code%&lt;/pre&gt;</div><div class='add'>+&lt;/body&gt;</div><div class='add'>+&lt;/html&gt;</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+########################## Index ################################</div><div class='add'>+</div><div class='add'>+FR_INDEX_BODY = &lt;&lt;HTML</div><div class='add'>+!INCLUDE!</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+FILE_INDEX = XHTML_PREAMBLE + &lt;&lt;HTML</div><div class='add'>+&lt;html&gt;</div><div class='add'>+&lt;head&gt;</div><div class='add'>+&lt;meta http-equiv="Content-Type" content="text/html; charset=%charset%"&gt;</div><div class='add'>+&lt;style&gt;</div><div class='add'>+&lt;!--</div><div class='add'>+  body {</div><div class='add'>+    background-color: #EEE;</div><div class='add'>+    font-family: #{FONTS};</div><div class='add'>+    color: #000;</div><div class='add'>+    margin: 0px;</div><div class='add'>+  }</div><div class='add'>+  .banner {</div><div class='add'>+    background: #005;</div><div class='add'>+    color: #FFF;</div><div class='add'>+    padding: 0.2em;</div><div class='add'>+    font-size: small;</div><div class='add'>+    font-weight: bold;</div><div class='add'>+    text-align: center;</div><div class='add'>+  }</div><div class='add'>+  .entries {</div><div class='add'>+    margin: 0.25em 1em 0 1em;</div><div class='add'>+    font-size: x-small;</div><div class='add'>+  }</div><div class='add'>+  a {</div><div class='add'>+    color: #00F;</div><div class='add'>+    text-decoration: none;</div><div class='add'>+    white-space: nowrap;</div><div class='add'>+  }</div><div class='add'>+  a:hover {</div><div class='add'>+    color: #77F;</div><div class='add'>+    text-decoration: underline;</div><div class='add'>+  }</div><div class='add'>+--&gt;</div><div class='add'>+&lt;/style&gt;</div><div class='add'>+&lt;base target="docwin"&gt;</div><div class='add'>+&lt;/head&gt;</div><div class='add'>+&lt;body&gt;</div><div class='add'>+&lt;div class="banner"&gt;%list_title%&lt;/div&gt;</div><div class='add'>+&lt;div class="entries"&gt;</div><div class='add'>+START:entries</div><div class='add'>+&lt;a href="%href%"&gt;%name%&lt;/a&gt;&lt;br&gt;</div><div class='add'>+END:entries</div><div class='add'>+&lt;/div&gt;</div><div class='add'>+&lt;/body&gt;&lt;/html&gt;</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+CLASS_INDEX = FILE_INDEX</div><div class='add'>+METHOD_INDEX = FILE_INDEX</div><div class='add'>+</div><div class='add'>+INDEX = XHTML_PREAMBLE + &lt;&lt;HTML</div><div class='add'>+&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;</div><div class='add'>+&lt;head&gt;</div><div class='add'>+  &lt;title&gt;%title%&lt;/title&gt;</div><div class='add'>+  &lt;meta http-equiv="Content-Type" content="text/html; charset=%charset%"&gt;</div><div class='add'>+&lt;/head&gt;</div><div class='add'>+</div><div class='add'>+&lt;frameset cols="20%,*"&gt;</div><div class='add'>+    &lt;frameset rows="15%,35%,50%"&gt;</div><div class='add'>+        &lt;frame src="fr_file_index.html"   title="Files" name="Files" /&gt;</div><div class='add'>+        &lt;frame src="fr_class_index.html"  name="Classes" /&gt;</div><div class='add'>+        &lt;frame src="fr_method_index.html" name="Methods" /&gt;</div><div class='add'>+    &lt;/frameset&gt;</div><div class='add'>+IF:inline_source</div><div class='add'>+      &lt;frame  src="%initial_page%" name="docwin"&gt;</div><div class='add'>+ENDIF:inline_source</div><div class='add'>+IFNOT:inline_source</div><div class='add'>+    &lt;frameset rows="80%,20%"&gt;</div><div class='add'>+      &lt;frame  src="%initial_page%" name="docwin"&gt;</div><div class='add'>+      &lt;frame  src="blank.html" name="source"&gt;</div><div class='add'>+    &lt;/frameset&gt;</div><div class='add'>+ENDIF:inline_source</div><div class='add'>+    &lt;noframes&gt;</div><div class='add'>+          &lt;body bgcolor="white"&gt;</div><div class='add'>+            Click &lt;a href="html/index.html"&gt;here&lt;/a&gt; for a non-frames</div><div class='add'>+            version of this page.</div><div class='add'>+          &lt;/body&gt;</div><div class='add'>+    &lt;/noframes&gt;</div><div class='add'>+&lt;/frameset&gt;</div><div class='add'>+</div><div class='add'>+&lt;/html&gt;</div><div class='add'>+HTML</div><div class='add'>+</div><div class='add'>+end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+</div><div class='head'>diff --git a/doc/rake/proto_rake.rdoc b/doc/rake/proto_rake.rdoc<br/>new file mode 100644<br/>index 0000000000..39b9b88c1f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/proto_rake.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/proto_rake.rdoc</a></div><div class='hunk'>@@ -0,0 +1,127 @@</div><div class='add'>+= Original Prototype Rake</div><div class='add'>+</div><div class='add'>+This is the original 100 line prototype rake program.</div><div class='add'>+</div><div class='add'>+---</div><div class='add'>+ #!/usr/bin/env ruby</div><div class='add'>+ </div><div class='add'>+ require 'ftools'</div><div class='add'>+ </div><div class='add'>+ class Task</div><div class='add'>+   TASKS = Hash.new</div><div class='add'>+ </div><div class='add'>+   attr_reader :prerequisites</div><div class='add'>+ </div><div class='add'>+   def initialize(task_name)</div><div class='add'>+     @name = task_name</div><div class='add'>+     @prerequisites = []</div><div class='add'>+     @actions = []</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def enhance(deps=nil, &amp;block)</div><div class='add'>+     @prerequisites |= deps if deps</div><div class='add'>+     @actions &lt;&lt; block if block_given?</div><div class='add'>+     self</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def name</div><div class='add'>+     @name.to_s</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def invoke</div><div class='add'>+     @prerequisites.each { |n| Task[n].invoke }</div><div class='add'>+     execute if needed?</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def execute</div><div class='add'>+     return if @triggered</div><div class='add'>+     @triggered = true</div><div class='add'>+     @actions.collect { |act| result = act.call(self) }.last</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def needed?</div><div class='add'>+     true</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def timestamp</div><div class='add'>+     Time.now</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   class &lt;&lt; self</div><div class='add'>+     def [](task_name)</div><div class='add'>+       TASKS[intern(task_name)] or fail "Don't know how to rake #{task_name}"</div><div class='add'>+     end</div><div class='add'>+     </div><div class='add'>+     def define_task(args, &amp;block)</div><div class='add'>+       case args</div><div class='add'>+       when Hash</div><div class='add'>+ 	fail "Too Many Target Names: #{args.keys.join(' ')}" if args.size &gt; 1</div><div class='add'>+ 	fail "No Task Name Given" if args.size &lt; 1</div><div class='add'>+ 	task_name = args.keys[0]</div><div class='add'>+ 	deps = args[task_name]</div><div class='add'>+       else</div><div class='add'>+ 	task_name = args</div><div class='add'>+ 	deps = []</div><div class='add'>+       end</div><div class='add'>+       deps = deps.collect {|d| intern(d) }</div><div class='add'>+       get(task_name).enhance(deps, &amp;block)</div><div class='add'>+     end</div><div class='add'>+ </div><div class='add'>+     def get(task_name)</div><div class='add'>+       name = intern(task_name)</div><div class='add'>+       TASKS[name] ||= self.new(name)</div><div class='add'>+     end</div><div class='add'>+ </div><div class='add'>+     def intern(task_name)</div><div class='add'>+       (Symbol === task_name) ? task_name : task_name.intern</div><div class='add'>+     end</div><div class='add'>+   end</div><div class='add'>+ end</div><div class='add'>+ </div><div class='add'>+ class FileTask &lt; Task</div><div class='add'>+   def needed?</div><div class='add'>+     return true unless File.exist?(name)</div><div class='add'>+     latest_prereq = @prerequisites.collect{|n| Task[n].timestamp}.max</div><div class='add'>+     return false if latest_prereq.nil?</div><div class='add'>+     timestamp &lt; latest_prereq</div><div class='add'>+   end</div><div class='add'>+ </div><div class='add'>+   def timestamp</div><div class='add'>+     File.new(name.to_s).mtime</div><div class='add'>+   end</div><div class='add'>+ end</div><div class='add'>+ </div><div class='add'>+ def task(args, &amp;block)</div><div class='add'>+   Task.define_task(args, &amp;block)</div><div class='add'>+ end</div><div class='add'>+ </div><div class='add'>+ def file(args, &amp;block)</div><div class='add'>+   FileTask.define_task(args, &amp;block)</div><div class='add'>+ end</div><div class='add'>+ </div><div class='add'>+ def sys(cmd)</div><div class='add'>+   puts cmd</div><div class='add'>+   system(cmd) or fail "Command Failed: [#{cmd}]"</div><div class='add'>+ end</div><div class='add'>+   </div><div class='add'>+ def rake</div><div class='add'>+   begin</div><div class='add'>+     here = Dir.pwd</div><div class='add'>+     while ! File.exist?("Rakefile")</div><div class='add'>+       Dir.chdir("..")</div><div class='add'>+       fail "No Rakefile found" if Dir.pwd == here</div><div class='add'>+       here = Dir.pwd</div><div class='add'>+     end</div><div class='add'>+     puts "(in #{Dir.pwd})"</div><div class='add'>+     load "./Rakefile"</div><div class='add'>+     ARGV.push("default") if ARGV.size == 0</div><div class='add'>+     ARGV.each { |task_name| Task[task_name].invoke }</div><div class='add'>+   rescue Exception =&gt; ex</div><div class='add'>+     puts "rake aborted ... #{ex.message}"</div><div class='add'>+     puts ex.backtrace.find {|str| str =~ /Rakefile/ } || ""</div><div class='add'>+   end    </div><div class='add'>+ end</div><div class='add'>+ </div><div class='add'>+ if __FILE__ == $0 then</div><div class='add'>+   rake</div><div class='add'>+ end</div><div class='head'>diff --git a/doc/rake/rakefile.rdoc b/doc/rake/rakefile.rdoc<br/>new file mode 100644<br/>index 0000000000..f8ae72c32a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/rakefile.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/rakefile.rdoc</a></div><div class='hunk'>@@ -0,0 +1,534 @@</div><div class='add'>+= Rakefile Format (as of version 0.8.3)</div><div class='add'>+</div><div class='add'>+First of all, there is no special format for a Rakefile.  A Rakefile</div><div class='add'>+contains executable Ruby code.  Anything legal in a ruby script is</div><div class='add'>+allowed in a Rakefile.</div><div class='add'>+</div><div class='add'>+Now that we understand there is no special syntax in a Rakefile, there</div><div class='add'>+are some conventions that are used in a Rakefile that are a little</div><div class='add'>+unusual in a typical Ruby program.  Since a Rakefile is tailored to</div><div class='add'>+specifying tasks and actions, the idioms used in a Rakefile are</div><div class='add'>+designed to support that.</div><div class='add'>+</div><div class='add'>+So, what goes into a Rakefile?</div><div class='add'>+</div><div class='add'>+== Tasks</div><div class='add'>+</div><div class='add'>+Tasks are the main unit of work in a Rakefile.  Tasks have a name</div><div class='add'>+(usually given as a symbol or a string), a list of prerequisites (more</div><div class='add'>+symbols or strings) and a list of actions (given as a block).</div><div class='add'>+</div><div class='add'>+=== Simple Tasks</div><div class='add'>+</div><div class='add'>+A task is declared by using the +task+ method.  +task+ takes a single</div><div class='add'>+parameter that is the name of the task.</div><div class='add'>+</div><div class='add'>+  task :name</div><div class='add'>+</div><div class='add'>+=== Tasks with Prerequisites</div><div class='add'>+</div><div class='add'>+Any prerequisites are given as a list (inclosed in square brackets)</div><div class='add'>+following the name and an arrow (=&gt;).</div><div class='add'>+</div><div class='add'>+  task :name =&gt; [:prereq1, :prereq2]</div><div class='add'>+</div><div class='add'>+&lt;b&gt;NOTE:&lt;/b&gt; Although this syntax looks a little funky, it is legal</div><div class='add'>+Ruby.  We are constructing a hash where the key is :name and the value</div><div class='add'>+for that key is the list of prerequisites.  It is equivalent to the</div><div class='add'>+following ...</div><div class='add'>+</div><div class='add'>+  hash = Hash.new</div><div class='add'>+  hash[:name] = [:prereq1, :prereq2]</div><div class='add'>+  task(hash)</div><div class='add'>+</div><div class='add'>+=== Tasks with Actions</div><div class='add'>+</div><div class='add'>+Actions are defined by passing a block to the +task+ method.  Any Ruby</div><div class='add'>+code can be placed in the block.  The block may reference the task</div><div class='add'>+object via the block paramter..</div><div class='add'>+</div><div class='add'>+  task :name =&gt; [:prereq1, :prereq2] do |t|</div><div class='add'>+    # actions (may reference t)</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+=== Multiple Definitions</div><div class='add'>+</div><div class='add'>+A task may be specified more than once.  Each specification adds its</div><div class='add'>+prerequisites and actions to the existing definition.  This allows one</div><div class='add'>+part of a rakefile to specify the actions and a different rakefile</div><div class='add'>+(perhaps separately generated) to specify the dependencies.</div><div class='add'>+</div><div class='add'>+For example, the following is equivalent to the single task</div><div class='add'>+specification given above.</div><div class='add'>+</div><div class='add'>+  task :name</div><div class='add'>+  task :name =&gt; [:prereq1]</div><div class='add'>+  task :name =&gt; [:prereq2]</div><div class='add'>+  task :name do |t|</div><div class='add'>+    # actions</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== File Tasks</div><div class='add'>+</div><div class='add'>+Some tasks are designed to create a file from one or more other files.</div><div class='add'>+Tasks that generate these files may be skipped if the file already</div><div class='add'>+exists.  File tasks are used to specify file creation tasks.</div><div class='add'>+</div><div class='add'>+File tasks are declared using the +file+ method (instead of the +task+</div><div class='add'>+method).  In addition, file tasks are usually named with a string</div><div class='add'>+rather than a symbol.</div><div class='add'>+</div><div class='add'>+The following file task creates a executable program (named +prog+)</div><div class='add'>+given two object files name &lt;tt&gt;a.o&lt;/tt&gt; and &lt;tt&gt;b.o&lt;/tt&gt;.  The tasks</div><div class='add'>+for creating &lt;tt&gt;a.o&lt;/tt&gt; and &lt;tt&gt;b.o&lt;/tt&gt; are not shown.</div><div class='add'>+</div><div class='add'>+  file "prog" =&gt; ["a.o", "b.o"] do |t|</div><div class='add'>+    sh "cc -o #{t.name} #{t.prerequisites.join(' ')}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== Directory Tasks</div><div class='add'>+</div><div class='add'>+It is common to need to create directories upon demand.  The</div><div class='add'>++directory+ convenience method is a short-hand for creating a FileTask</div><div class='add'>+that creates the directory.  For example, the following declaration</div><div class='add'>+...</div><div class='add'>+</div><div class='add'>+  directory "testdata/examples/doc"</div><div class='add'>+</div><div class='add'>+is equivalent to ...</div><div class='add'>+</div><div class='add'>+  file "testdata"              do |t| mkdir t.name end</div><div class='add'>+  file "testdata/examples"     do |t| mkdir t.name end</div><div class='add'>+  file "testdata/examples/doc" do |t| mkdir t.name end</div><div class='add'>+</div><div class='add'>+The +directory+ method does not accept prerequisites or actions, but</div><div class='add'>+both prerequisites and actions can be added later.  For example ...</div><div class='add'>+</div><div class='add'>+  directory "testdata"</div><div class='add'>+  file "testdata" =&gt; ["otherdata"]</div><div class='add'>+  file "testdata" do</div><div class='add'>+    cp Dir["standard_data/*.data"], "testdata"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== Tasks with Parallel Prerequisites</div><div class='add'>+</div><div class='add'>+Rake allows parallel execution of prerequisites using the following syntax:</div><div class='add'>+</div><div class='add'>+  multitask :copy_files =&gt; [:copy_src, :copy_doc, :copy_bin] do</div><div class='add'>+    puts "All Copies Complete"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+In this example, +copy_files+ is a normal rake task.  Its actions are</div><div class='add'>+executed whereever all of its prerequisites are done.  The big</div><div class='add'>+difference is that the prerequisites (+copy_src+, +copy_bin+ and</div><div class='add'>++copy_doc+) are executed in parallel.  Each of the prerequisites are</div><div class='add'>+run in their own Ruby thread, possibly allowing faster overall runtime.</div><div class='add'>+</div><div class='add'>+=== Secondary Prerequisites</div><div class='add'>+</div><div class='add'>+If any of the primary prerequites of a multitask have common secondary</div><div class='add'>+prerequisites, all of the primary/parallel prerequisites will wait</div><div class='add'>+until the common prerequisites have been run.</div><div class='add'>+</div><div class='add'>+For example, if the &lt;tt&gt;copy_&lt;em&gt;xxx&lt;/em&gt;&lt;/tt&gt; tasks have the</div><div class='add'>+following prerequisites:</div><div class='add'>+</div><div class='add'>+  task :copy_src =&gt; [:prep_for_copy]</div><div class='add'>+  task :copy_bin =&gt; [:prep_for_copy]</div><div class='add'>+  task :copy_doc =&gt; [:prep_for_copy]</div><div class='add'>+</div><div class='add'>+Then the +prep_for_copy+ task is run before starting all the copies in</div><div class='add'>+parallel.  Once +prep_for_copy+ is complete, +copy_src+, +copy_bin+,</div><div class='add'>+and +copy_doc+ are all run in parallel.  Note that +prep_for_copy+ is</div><div class='add'>+run only once, even though it is referenced in multiple threads.</div><div class='add'>+</div><div class='add'>+=== Thread Safety</div><div class='add'>+</div><div class='add'>+The Rake internal data structures are thread-safe with respect</div><div class='add'>+to the multitask parallel execution, so there is no need for the user</div><div class='add'>+to do extra synchronization for Rake's benefit.  However, if there are</div><div class='add'>+user data structures shared between the parallel prerequisites, the</div><div class='add'>+user must do whatever is necessary to prevent race conditions.</div><div class='add'>+</div><div class='add'>+== Tasks with Arguments</div><div class='add'>+</div><div class='add'>+Prior to version 0.8.0, rake was only able to handle command line</div><div class='add'>+arguments of the form NAME=VALUE that were passed into Rake via the</div><div class='add'>+ENV hash.  Many folks had asked for some kind of simple command line</div><div class='add'>+arguments, perhaps using "--" to separate regular task names from</div><div class='add'>+argument values on the command line.  The problem is that there was no</div><div class='add'>+easy way to associate positional arguments on the command line with</div><div class='add'>+different tasks.  Suppose both tasks :a and :b expect a command line</div><div class='add'>+argument: does the first value go with :a?  What if :b is run first?</div><div class='add'>+Should it then get the first command line argument.</div><div class='add'>+</div><div class='add'>+Rake 0.8.0 solves this problem by explicitly passing values directly</div><div class='add'>+to the tasks that need them.  For example, if I had a release task</div><div class='add'>+that required a version number, I could say:</div><div class='add'>+</div><div class='add'>+   rake release[0.8.2]</div><div class='add'>+</div><div class='add'>+And the string "0.8.2" will be passed to the :release task.  Multiple</div><div class='add'>+arguments can be passed by separating them with a comma, for example:</div><div class='add'>+</div><div class='add'>+   rake name[john,doe]</div><div class='add'>+</div><div class='add'>+Just a few words of caution.  The rake task name and its arguments</div><div class='add'>+need to be a single command line argument to rake.  This generally</div><div class='add'>+means no spaces.  If spaces are needed, then the entire rake +</div><div class='add'>+argument string should be quoted.  Something like this:</div><div class='add'>+</div><div class='add'>+   rake "name[billy bob, smith]"</div><div class='add'>+</div><div class='add'>+(Quoting rules vary between operating systems and shells, so make sure</div><div class='add'>+you consult the proper docs for your OS/shell).</div><div class='add'>+</div><div class='add'>+=== Tasks that Expect Parameters</div><div class='add'>+</div><div class='add'>+Parameters are only given to tasks that are setup to expect them.  In</div><div class='add'>+order to handle named parameters, the task declaration syntax for</div><div class='add'>+tasks has been extended slightly.</div><div class='add'>+</div><div class='add'>+For example, a task that needs a first name and last name might be</div><div class='add'>+declared as:</div><div class='add'>+</div><div class='add'>+   task :name, [:first_name, :last_name]</div><div class='add'>+</div><div class='add'>+The first argument is still the name of the task (:name in this case).</div><div class='add'>+The next to argumements are the names of the parameters expected by</div><div class='add'>+:name in an array (:first_name and :last_name in the example).</div><div class='add'>+</div><div class='add'>+To access the values of the paramters, the block defining the task</div><div class='add'>+behaviour can now accept a second parameter:</div><div class='add'>+</div><div class='add'>+   task :name, [:first_name, :last_name] do |t, args|</div><div class='add'>+     puts "First name is #{args.first_name}"</div><div class='add'>+     puts "Last  name is #{args.last_name}"</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+The first argument of the block "t" is always bound to the current</div><div class='add'>+task object.  The second argument "args" is an open-struct like object</div><div class='add'>+that allows access to the task arguments.  Extra command line</div><div class='add'>+arguments to a task are ignored.  Missing command line arguments are</div><div class='add'>+given the nil value.</div><div class='add'>+</div><div class='add'>+If you wish to specify default values for the arguments, you can use</div><div class='add'>+the with_defaults method in the task body.  Here is the above example</div><div class='add'>+where we specify default values for the first and last names:</div><div class='add'>+</div><div class='add'>+   task :name, [:first_name, :last_name] do |t, args|</div><div class='add'>+     args.with_defaults(:first_name =&gt; "John", :last_name =&gt; "Dough")</div><div class='add'>+     puts "First name is #{args.first_name}"</div><div class='add'>+     puts "Last  name is #{args.last_name}"</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+=== Tasks that Expect Parameters and Have Prerequisites</div><div class='add'>+</div><div class='add'>+Tasks that use parameters have a slightly different format for</div><div class='add'>+prerequisites.  Use the arrow notation to indicate the prerequisites</div><div class='add'>+for tasks with arguments.  For example:</div><div class='add'>+</div><div class='add'>+   task :name, [:first_name, :last_name] =&gt; [:pre_name] do |t, args|</div><div class='add'>+     args.with_defaults(:first_name =&gt; "John", :last_name =&gt; "Dough")</div><div class='add'>+     puts "First name is #{args.first_name}"</div><div class='add'>+     puts "Last  name is #{args.last_name}"</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+=== Deprecated Task Parameters Format</div><div class='add'>+</div><div class='add'>+There is an older format for declaring task parameters that omitted</div><div class='add'>+the task argument array and used the :needs keyword to introduce the</div><div class='add'>+dependencies.  That format is still supported for compatibility, but</div><div class='add'>+is not recommended for use.</div><div class='add'>+</div><div class='add'>+== Accessing Task Programatically</div><div class='add'>+</div><div class='add'>+Sometimes it is useful to manipulate tasks programatically in a</div><div class='add'>+Rakefile. To find a task object, use the &lt;tt&gt;:[]&lt;/tt&gt; operator on the</div><div class='add'>+&lt;tt&gt;Rake::Task&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+=== Programmatic Task Example</div><div class='add'>+</div><div class='add'>+For example, the following Rakefile defines two tasks.  The :doit task</div><div class='add'>+simply prints a simple "DONE" message.  The :dont class will lookup</div><div class='add'>+the doit class and remove (clear) all of its prerequisites and</div><div class='add'>+actions.</div><div class='add'>+</div><div class='add'>+   task :doit do</div><div class='add'>+     puts "DONE"</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+   task :dont do</div><div class='add'>+     Rake::Task[:doit].clear</div><div class='add'>+   end        </div><div class='add'>+</div><div class='add'>+Running this example:</div><div class='add'>+</div><div class='add'>+  $ rake doit</div><div class='add'>+  (in /Users/jim/working/git/rake/x)</div><div class='add'>+  DONE</div><div class='add'>+  $ rake dont doit</div><div class='add'>+  (in /Users/jim/working/git/rake/x)</div><div class='add'>+  $ </div><div class='add'>+</div><div class='add'>+The ability to programmatically manipulate tasks gives rake very</div><div class='add'>+powerful meta-programming capabilities w.r.t. task execution, but</div><div class='add'>+should be used with cation.</div><div class='add'>+</div><div class='add'>+== Rules</div><div class='add'>+</div><div class='add'>+When a file is named as a prerequisite, but does not have a file task</div><div class='add'>+defined for it, Rake will attempt to synthesize a task by looking at a</div><div class='add'>+list of rules supplied in the Rakefile.</div><div class='add'>+</div><div class='add'>+Suppose we were trying to invoke task "mycode.o", but no task is</div><div class='add'>+defined for it.  But the rakefile has a rule that look like this ...</div><div class='add'>+</div><div class='add'>+  rule '.o' =&gt; ['.c'] do |t|</div><div class='add'>+    sh "cc #{t.source} -c -o #{t.name}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+This rule will synthesize any task that ends in ".o".  It has a</div><div class='add'>+prerequisite a source file with an extension of ".c" must exist.  If</div><div class='add'>+Rake is able to find a file named "mycode.c", it will automatically</div><div class='add'>+create a task that builds "mycode.o" from "mycode.c".</div><div class='add'>+</div><div class='add'>+If the file "mycode.c" does not exist, rake will attempt</div><div class='add'>+to recursively synthesize a rule for it. </div><div class='add'>+</div><div class='add'>+When a task is synthesized from a rule, the +source+ attribute of the</div><div class='add'>+task is set to the matching source file.  This allows us to write</div><div class='add'>+rules with actions that reference the source file.</div><div class='add'>+</div><div class='add'>+=== Advanced Rules</div><div class='add'>+</div><div class='add'>+Any regular expression may be used as the rule pattern.  Additionally,</div><div class='add'>+a proc may be used to calculate the name of the source file.  This</div><div class='add'>+allows for complex patterns and sources.</div><div class='add'>+</div><div class='add'>+The following rule is equivalent to the example above.</div><div class='add'>+</div><div class='add'>+  rule( /\.o$/ =&gt; [</div><div class='add'>+    proc {|task_name| task_name.sub(/\.[^.]+$/, '.c') }</div><div class='add'>+  ]) do |t|</div><div class='add'>+    sh "cc #{t.source} -c -o #{t.name}"</div><div class='add'>+  end    </div><div class='add'>+</div><div class='add'>+&lt;b&gt;NOTE:&lt;/b&gt; Because of a _quirk_ in Ruby syntax, parenthesis are</div><div class='add'>+required on *rule* when the first argument is a regular expression.</div><div class='add'>+</div><div class='add'>+The following rule might be used for Java files ...</div><div class='add'>+</div><div class='add'>+  rule '.java' =&gt; [</div><div class='add'>+    proc { |tn| tn.sub(/\.class$/, '.java').sub(/^classes\//, 'src/') }</div><div class='add'>+  ] do |t|</div><div class='add'>+    java_compile(t.source, t.name)  </div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+&lt;b&gt;NOTE:&lt;/b&gt; +java_compile+ is a hypothetical method that invokes the</div><div class='add'>+java compiler.</div><div class='add'>+</div><div class='add'>+== Importing Dependencies</div><div class='add'>+</div><div class='add'>+Any ruby file (including other rakefiles) can be included with a</div><div class='add'>+standard Ruby +require+ command.  The rules and declarations in the</div><div class='add'>+required file are just added to the definitions already accumulated.</div><div class='add'>+</div><div class='add'>+Because the files are loaded _before_ the rake targets are evaluated,</div><div class='add'>+the loaded files must be "ready to go" when the rake command is</div><div class='add'>+invoked.  This make generated dependency files difficult to use.  By</div><div class='add'>+the time rake gets around to updating the dependencies file, it is too</div><div class='add'>+late to load it.</div><div class='add'>+</div><div class='add'>+The +import+ command addresses this by specifying a file to be loaded</div><div class='add'>+_after_ the main rakefile is loaded, but _before_ any targets on the</div><div class='add'>+command line are specified.  In addition, if the file name matches an</div><div class='add'>+explicit task, that task is invoked before loading the file.  This</div><div class='add'>+allows dependency files to be generated and used in a single rake</div><div class='add'>+command invocation.</div><div class='add'>+</div><div class='add'>+=== Example:</div><div class='add'>+</div><div class='add'>+  require 'rake/loaders/makefile'</div><div class='add'>+</div><div class='add'>+  file ".depends.mf" =&gt; [SRC_LIST] do |t|</div><div class='add'>+    sh "makedepend -f- -- #{CFLAGS} -- #{t.prerequisites} &gt; #{t.name}"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  import ".depends.mf"</div><div class='add'>+</div><div class='add'>+If ".depends" does not exist, or is out of date w.r.t. the source</div><div class='add'>+files, a new ".depends" file is generated using +makedepend+ before</div><div class='add'>+loading.</div><div class='add'>+</div><div class='add'>+== Comments</div><div class='add'>+</div><div class='add'>+Standard Ruby comments (beginning with "#") can be used anywhere it is</div><div class='add'>+legal in Ruby source code, including comments for tasks and rules.</div><div class='add'>+However, if you wish a task to be described using the "-T" switch,</div><div class='add'>+then you need to use the +desc+ command to describe the task.</div><div class='add'>+</div><div class='add'>+=== Example:</div><div class='add'>+</div><div class='add'>+  desc "Create a distribution package"</div><div class='add'>+  task :package =&gt; [ ... ] do ... end</div><div class='add'>+</div><div class='add'>+The "-T" switch (or "--tasks" if you like to spell things out) will</div><div class='add'>+display a list of tasks that have a defined comment.  If you use</div><div class='add'>++desc+ to describe your major tasks, you have a semi-automatic way of</div><div class='add'>+generating a summary of your Rake file.</div><div class='add'>+</div><div class='add'>+  traken$ rake -T</div><div class='add'>+  (in /home/.../rake)</div><div class='add'>+  rake clean            # Remove any temporary products.</div><div class='add'>+  rake clobber          # Remove any generated file.</div><div class='add'>+  rake clobber_rdoc     # Remove rdoc products</div><div class='add'>+  rake contrib_test     # Run tests for contrib_test</div><div class='add'>+  rake default          # Default Task</div><div class='add'>+  rake install          # Install the application</div><div class='add'>+  rake lines            # Count lines in the main rake file</div><div class='add'>+  rake rdoc             # Build the rdoc HTML Files</div><div class='add'>+  rake rerdoc           # Force a rebuild of the RDOC files</div><div class='add'>+  rake test             # Run tests</div><div class='add'>+  rake testall          # Run all test targets</div><div class='add'>+</div><div class='add'>+Only tasks with descriptions will be displayed with the "-T" switch.</div><div class='add'>+Use "-P" (or "--prereqs") to get a list of all tasks and their</div><div class='add'>+prerequisites.</div><div class='add'>+</div><div class='add'>+== Namespaces</div><div class='add'>+</div><div class='add'>+As projects grow (and along with it, the number of tasks), it is</div><div class='add'>+common for task names to begin to clash.  For example, if you might</div><div class='add'>+have a main program and a set of sample programs built by a single</div><div class='add'>+Rakefile.  By placing the tasks related to the main program in one</div><div class='add'>+namespace, and the tasks for building the sample programs in a</div><div class='add'>+different namespace, the task names will not will not interfer with</div><div class='add'>+each other.</div><div class='add'>+</div><div class='add'>+For example:</div><div class='add'>+</div><div class='add'>+  namespace "main"</div><div class='add'>+    task :build do</div><div class='add'>+      # Build the main program</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  namespace "samples" do</div><div class='add'>+    task :build do</div><div class='add'>+      # Build the sample programs</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  task :build =&gt; ["main:build", "samples:build"]</div><div class='add'>+</div><div class='add'>+Referencing a task in a separate namespace can be achieved by</div><div class='add'>+prefixing the task name with the namespace and a colon</div><div class='add'>+(e.g. "main:build" refers to the :build task in the +main+ namespace).</div><div class='add'>+Nested namespaces are supported, so</div><div class='add'>+</div><div class='add'>+Note that the name given in the +task+ command is always the unadorned</div><div class='add'>+task name without any namespace prefixes.  The +task+ command always</div><div class='add'>+defines a task in the current namespace.  </div><div class='add'>+</div><div class='add'>+=== FileTasks</div><div class='add'>+</div><div class='add'>+File task names are not scoped by the namespace command.  Since the</div><div class='add'>+name of a file task is the name of an actual file in the file system,</div><div class='add'>+it makes little sense to include file task names in name space.</div><div class='add'>+Directory tasks (created by the +directory+ command) are a type of</div><div class='add'>+file task and are also not affected by namespaces.</div><div class='add'>+</div><div class='add'>+=== Name Resolution</div><div class='add'>+</div><div class='add'>+When looking up a task name, rake will start with the current</div><div class='add'>+namespace and attempt to find the name there.  If it fails to find a</div><div class='add'>+name in the current namespace, it will search the parent namespaces</div><div class='add'>+until a match is found (or an error occurs if there is no match).</div><div class='add'>+</div><div class='add'>+The "rake" namespace is a special implicit namespace that refers to</div><div class='add'>+the toplevel names.</div><div class='add'>+</div><div class='add'>+If a task name begins with a "^" character, the name resolution will</div><div class='add'>+start in the parent namespace.  Multiple "^" characters are allowed.</div><div class='add'>+</div><div class='add'>+Here is an example file with multiple :run tasks and how various names</div><div class='add'>+resolve in different locations.</div><div class='add'>+</div><div class='add'>+  task :run</div><div class='add'>+</div><div class='add'>+  namespace "one" do</div><div class='add'>+    task :run</div><div class='add'>+</div><div class='add'>+    namespace "two" do</div><div class='add'>+      task :run</div><div class='add'>+</div><div class='add'>+      # :run            =&gt; "one:two:run"</div><div class='add'>+      # "two:run"       =&gt; "one:two:run"</div><div class='add'>+      # "one:two:run"   =&gt; "one:two:run"</div><div class='add'>+      # "one:run"       =&gt; "one:run"</div><div class='add'>+      # "^run"          =&gt; "one:run"</div><div class='add'>+      # "^^run"         =&gt; "rake:run" (the top level task)</div><div class='add'>+      # "rake:run"      =&gt; "rake:run" (the top level task)</div><div class='add'>+    end</div><div class='add'>+</div><div class='add'>+    # :run       =&gt; "one:run"</div><div class='add'>+    # "two:run"  =&gt; "one:two:run"</div><div class='add'>+    # "^run"     =&gt; "rake:run"</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+  # :run           =&gt; "rake:run"</div><div class='add'>+  # "one:run"      =&gt; "one:run"</div><div class='add'>+  # "one:two:run"  =&gt; "one:two:run"</div><div class='add'>+</div><div class='add'>+== FileLists</div><div class='add'>+</div><div class='add'>+FileLists are the way Rake manages lists of files.  You can treat a</div><div class='add'>+FileList as an array of strings for the most part, but FileLists</div><div class='add'>+support some additional operations.</div><div class='add'>+</div><div class='add'>+=== Creating a FileList</div><div class='add'>+</div><div class='add'>+Creating a file list is easy.  Just give it the list of file names:</div><div class='add'>+</div><div class='add'>+   fl = FileList['file1.rb', file2.rb']</div><div class='add'>+</div><div class='add'>+Or give it a glob pattern:</div><div class='add'>+</div><div class='add'>+   fl = FileList['*.rb']</div><div class='add'>+</div><div class='add'>+== Odds and Ends</div><div class='add'>+</div><div class='add'>+=== do/end verses { }</div><div class='add'>+</div><div class='add'>+Blocks may be specified with either a +do+/+end+ pair, or with curly</div><div class='add'>+braces in Ruby.  We _strongly_ recommend using +do+/+end+ to specify the</div><div class='add'>+actions for tasks and rules.  Because the rakefile idiom tends to</div><div class='add'>+leave off parenthesis on the task/file/rule methods, unusual</div><div class='add'>+ambiguities can arise when using curly braces.</div><div class='add'>+</div><div class='add'>+For example, suppose that the method +object_files+ returns a list of</div><div class='add'>+object files in a project.  Now we use +object_files+ as the</div><div class='add'>+prerequistes in a rule specified with actions in curly braces.</div><div class='add'>+</div><div class='add'>+  # DON'T DO THIS!</div><div class='add'>+  file "prog" =&gt; object_files {</div><div class='add'>+    # Actions are expected here (but it doesn't work)!</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+Because curly braces have a higher precedence than +do+/+end+, the</div><div class='add'>+block is associated with the +object_files+ method rather than the</div><div class='add'>++file+ method.</div><div class='add'>+</div><div class='add'>+This is the proper way to specify the task ...</div><div class='add'>+</div><div class='add'>+  # THIS IS FINE</div><div class='add'>+  file "prog" =&gt; object_files do</div><div class='add'>+    # Actions go here</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+----</div><div class='add'>+</div><div class='add'>+== See</div><div class='add'>+</div><div class='add'>+* README -- Main documentation for Rake.</div><div class='head'>diff --git a/doc/rake/rational.rdoc b/doc/rake/rational.rdoc<br/>new file mode 100644<br/>index 0000000000..f741e65bf8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/rational.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/rational.rdoc</a></div><div class='hunk'>@@ -0,0 +1,151 @@</div><div class='add'>+= Why rake?</div><div class='add'>+</div><div class='add'>+Ok, let me state from the beginning that I never intended to write this</div><div class='add'>+code.  I'm not convinced it is useful, and I'm not convinced anyone</div><div class='add'>+would even be interested in it.  All I can say is that Why's onion truck</div><div class='add'>+must by been passing through the Ohio valley.</div><div class='add'>+</div><div class='add'>+What am I talking about? ... A Ruby version of Make.</div><div class='add'>+</div><div class='add'>+See, I can sense you cringing already, and I agree.  The world certainly</div><div class='add'>+doesn't need yet another reworking of the "make" program.  I mean, we</div><div class='add'>+already have "ant".  Isn't that enough?</div><div class='add'>+</div><div class='add'>+It started yesterday.  I was helping a coworker fix a problem in one of</div><div class='add'>+the Makefiles we use in our project.  Not a particularly tough problem,</div><div class='add'>+but during the course of the conversation I began lamenting some of the</div><div class='add'>+shortcomings of make.  In particular, in one of my makefiles I wanted to</div><div class='add'>+determine the name of a file dynamically and had to resort to some</div><div class='add'>+simple scripting (in Ruby) to make it work.  "Wouldn't it be nice if you</div><div class='add'>+could just use Ruby inside a Makefile" I said.</div><div class='add'>+</div><div class='add'>+My coworker (a recent convert to Ruby) agreed, but wondered what it</div><div class='add'>+would look like.  So I sketched the following on the whiteboard...</div><div class='add'>+</div><div class='add'>+    "What if you could specify the make tasks in Ruby, like this ..."</div><div class='add'>+</div><div class='add'>+      task "build" do</div><div class='add'>+        java_compile(...args, etc ...)</div><div class='add'>+      end</div><div class='add'>+</div><div class='add'>+    "The task function would register "build" as a target to be made,</div><div class='add'>+    and the block would be the action executed whenever the build</div><div class='add'>+    system determined that it was time to do the build target."</div><div class='add'>+</div><div class='add'>+We agreed that would be cool, but writing make from scratch would be WAY</div><div class='add'>+too much work.  And that was the end of that!</div><div class='add'>+</div><div class='add'>+... Except I couldn't get the thought out of my head.  What exactly</div><div class='add'>+would be needed to make the about syntax work as a make file?  Hmmm, you</div><div class='add'>+would need to register the tasks, you need some way of specifying</div><div class='add'>+dependencies between tasks, and some way of kicking off the process. </div><div class='add'>+Hey!  What if we did ... and fifteen minutes later I had a working</div><div class='add'>+prototype of Ruby make, complete with dependencies and actions.</div><div class='add'>+</div><div class='add'>+I showed the code to my coworker and we had a good laugh.  It was just</div><div class='add'>+about a page worth of code that reproduced an amazing amount of the</div><div class='add'>+functionality of make.  We were both truely stunned with the power of</div><div class='add'>+Ruby.</div><div class='add'>+</div><div class='add'>+But it didn't do everything make did.  In particular, it didn't have</div><div class='add'>+timestamp based file dependencies (where a file is rebuilt if any of its</div><div class='add'>+prerequisite files have a later timestamp).  Obviously THAT would be a</div><div class='add'>+pain to add and so Ruby Make would remain an interesting experiment.</div><div class='add'>+</div><div class='add'>+... Except as I walked back to my desk, I started thinking about what</div><div class='add'>+file based dependecies would really need.  Rats!  I was hooked again,</div><div class='add'>+and by adding a new class and two new methods, file/timestamp</div><div class='add'>+dependencies were implemented.</div><div class='add'>+</div><div class='add'>+Ok, now I was really hooked.  Last night (during CSI!) I massaged the</div><div class='add'>+code and cleaned it up a bit.  The result is a bare-bones replacement</div><div class='add'>+for make in exactly 100 lines of code.</div><div class='add'>+</div><div class='add'>+For the curious, you can see it at ...</div><div class='add'>+* doc/proto_rake.rdoc</div><div class='add'>+</div><div class='add'>+Oh, about the name.  When I wrote the example Ruby Make task on my</div><div class='add'>+whiteboard, my coworker exclaimed "Oh! I have the perfect name: Rake ...</div><div class='add'>+Get it?  Ruby-Make. Rake!"  He said he envisioned the tasks as leaves</div><div class='add'>+and Rake would clean them up  ... or something like that.  Anyways, the</div><div class='add'>+name stuck.</div><div class='add'>+</div><div class='add'>+Some quick examples ...</div><div class='add'>+</div><div class='add'>+A simple task to delete backup files ...</div><div class='add'>+</div><div class='add'>+   task :clean do</div><div class='add'>+     Dir['*~'].each {|fn| rm fn rescue nil}</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+Note that task names are symbols (they are slightly easier to type</div><div class='add'>+than quoted strings ... but you may use quoted string if you would</div><div class='add'>+rather). Rake makes the methods of the FileUtils module directly</div><div class='add'>+available, so we take advantage of the &lt;tt&gt;rm&lt;/tt&gt; command.  Also note</div><div class='add'>+the use of "rescue nil" to trap and ignore errors in the &lt;tt&gt;rm&lt;/tt&gt;</div><div class='add'>+command.</div><div class='add'>+</div><div class='add'>+To run it, just type "rake clean".  Rake will automatically find a</div><div class='add'>+Rakefile in the current directory (or above!) and will invoke the</div><div class='add'>+targets named on the command line.  If there are no targets explicitly</div><div class='add'>+named, rake will invoke the task "default".</div><div class='add'>+</div><div class='add'>+Here's another task with dependencies ...</div><div class='add'>+</div><div class='add'>+   task :clobber =&gt; [:clean] do</div><div class='add'>+     rm_r "tempdir"</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+Task :clobber depends upon task :clean, so :clean will be run before</div><div class='add'>+:clobber is executed. </div><div class='add'>+</div><div class='add'>+Files are specified by using the "file" command.  It is similar to the</div><div class='add'>+task command, except that the task name represents a file, and the task</div><div class='add'>+will be run only if the file doesn't exist, or if its modification time</div><div class='add'>+is earlier than any of its prerequisites.</div><div class='add'>+</div><div class='add'>+Here is a file based dependency that will compile "hello.cc" to</div><div class='add'>+"hello.o".</div><div class='add'>+</div><div class='add'>+   file "hello.cc"</div><div class='add'>+   file "hello.o" =&gt; ["hello.cc"] do |t|</div><div class='add'>+     srcfile = t.name.sub(/\.o$/, ".cc")</div><div class='add'>+     sh %{g++ #{srcfile} -c -o #{t.name}}</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+I normally specify file tasks with string (rather than symbols).  Some</div><div class='add'>+file names can't be represented by symbols.  Plus it makes the</div><div class='add'>+distinction between them more clear to the casual reader.  </div><div class='add'>+</div><div class='add'>+Currently writing a task for each and every file in the project would be</div><div class='add'>+tedious at best.  I envision a set of libraries to make this job</div><div class='add'>+easier.  For instance, perhaps something like this ...</div><div class='add'>+</div><div class='add'>+   require 'rake/ctools'</div><div class='add'>+   Dir['*.c'].each do |fn|</div><div class='add'>+     c_source_file(fn)</div><div class='add'>+   end</div><div class='add'>+</div><div class='add'>+where "c_source_file" will create all the tasks need to compile all the</div><div class='add'>+C source files in a directory.  Any number of useful libraries could be</div><div class='add'>+created for rake.</div><div class='add'>+</div><div class='add'>+That's it.  There's no documentation (other than whats in this</div><div class='add'>+message).  Does this sound interesting to anyone?  If so, I'll continue</div><div class='add'>+to clean it up and write it up and publish it on RAA.  Otherwise, I'll</div><div class='add'>+leave it as an interesting excerise and a tribute to the power of Ruby.</div><div class='add'>+</div><div class='add'>+Why /might/ rake be interesting to Ruby programmers.  I don't know,</div><div class='add'>+perhaps ...</div><div class='add'>+</div><div class='add'>+* No weird make syntax (only weird Ruby syntax :-)</div><div class='add'>+* No need to edit or read XML (a la ant)</div><div class='add'>+* Platform independent build scripts.</div><div class='add'>+* Will run anywhere Ruby exists, so no need to have "make" installed.</div><div class='add'>+  If you stay away from the "sys" command and use things like</div><div class='add'>+  'ftools', you can have a perfectly platform independent</div><div class='add'>+  build script.  Also rake is only 100 lines of code, so it can</div><div class='add'>+  easily be packaged along with the rest of your code.</div><div class='add'>+</div><div class='add'>+So ... Sorry for the long rambling message.  Like I said, I never</div><div class='add'>+intended to write this code at all.</div><div class='head'>diff --git a/doc/rake/release_notes/rake-0.8.7.rdoc b/doc/rake/release_notes/rake-0.8.7.rdoc<br/>new file mode 100644<br/>index 0000000000..fb0c5d4e36<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rake/release_notes/rake-0.8.7.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rake/release_notes/rake-0.8.7.rdoc</a></div><div class='hunk'>@@ -0,0 +1,55 @@</div><div class='add'>+= Rake 0.8.7 Released</div><div class='add'>+</div><div class='add'>+Rake version 0.8.5 introduced greatly improved support for executing</div><div class='add'>+commands on Windows.  The "sh" command now has the same semantics on</div><div class='add'>+Windows that it has on Unix based platforms.</div><div class='add'>+</div><div class='add'>+Rake version 0.8.6 includes minor fixes the the RDoc generation.</div><div class='add'>+Rake version 0.8.7 includes a minor fix for JRuby running on windows.</div><div class='add'>+</div><div class='add'>+== Changes</div><div class='add'>+</div><div class='add'>+=== New Features / Enhancements in Version 0.8.5</div><div class='add'>+</div><div class='add'>+* Improved implementation of the Rake system command for Windows.</div><div class='add'>+  (patch from James M. Lawrence/quix)</div><div class='add'>+</div><div class='add'>+* Support for Ruby 1.9's improved system command.  (patch from James</div><div class='add'>+  M. Lawrence/quix)</div><div class='add'>+</div><div class='add'>+* Rake now includes the configured extension when invoking an</div><div class='add'>+  executable (Config::CONFIG['EXEEXT])</div><div class='add'>+</div><div class='add'>+=== Bug Fixes in Version 0.8.5</div><div class='add'>+</div><div class='add'>+* Environment variable keys are now correctly cased (it matters in</div><div class='add'>+  some implementations).</div><div class='add'>+</div><div class='add'>+== What is Rake</div><div class='add'>+</div><div class='add'>+Rake is a build tool similar to the make program in many ways. But</div><div class='add'>+instead of cryptic make recipes, Rake uses standard Ruby code to</div><div class='add'>+declare tasks and dependencies. You have the full power of a modern</div><div class='add'>+scripting language built right into your build tool.</div><div class='add'>+</div><div class='add'>+== Availability</div><div class='add'>+</div><div class='add'>+The easiest way to get and install rake is via RubyGems ...</div><div class='add'>+</div><div class='add'>+  gem install rake    (you may need root/admin privileges)</div><div class='add'>+</div><div class='add'>+Otherwise, you can get it from the more traditional places:</div><div class='add'>+</div><div class='add'>+Home Page:: http://rake.rubyforge.org/</div><div class='add'>+Download::  http://rubyforge.org/project/showfiles.php?group_id=50</div><div class='add'>+GitHub::    git://github.com/jimweirich/rake.git </div><div class='add'>+</div><div class='add'>+== Thanks</div><div class='add'>+</div><div class='add'>+As usual, it was input from users that drove a alot of these changes. The</div><div class='add'>+following people either contributed patches, made suggestions or made</div><div class='add'>+otherwise helpful comments.  Thanks to ...</div><div class='add'>+</div><div class='add'>+* Charles Nutter</div><div class='add'>+</div><div class='add'>+-- Jim Weirich</div><div class='head'>diff --git a/doc/re.rdoc b/doc/re.rdoc<br/>new file mode 100644<br/>index 0000000000..d629a4a79e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/re.rdoc?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/re.rdoc</a></div><div class='hunk'>@@ -0,0 +1,582 @@</div><div class='add'>+# -*- mode: rdoc; coding: utf-8; fill-column: 74; -*-</div><div class='add'>+</div><div class='add'>+Regular expressions (&lt;i&gt;regexp&lt;/i&gt;s) are patterns which describe the</div><div class='add'>+contents of a string. They're used for testing whether a string contains a</div><div class='add'>+given pattern, or extracting the portions that match. They are created</div><div class='add'>+with the &lt;tt&gt;/&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;/&lt;/tt&gt; and</div><div class='add'>+&lt;tt&gt;%r{&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;}&lt;/tt&gt; literals or the &lt;tt&gt;Regexp.new&lt;/tt&gt;</div><div class='add'>+constructor.</div><div class='add'>+</div><div class='add'>+A regexp is usually delimited with forward slashes (&lt;tt&gt;/&lt;/tt&gt;). For</div><div class='add'>+example:</div><div class='add'>+</div><div class='add'>+    /hay/ =~ 'haystack'   #=&gt; 0</div><div class='add'>+    /y/.match('haystack') #=&gt; #&lt;MatchData "y"&gt;</div><div class='add'>+</div><div class='add'>+If a string contains the pattern it is said to &lt;i&gt;match&lt;/i&gt;. A literal</div><div class='add'>+string matches itself.</div><div class='add'>+</div><div class='add'>+    # 'haystack' does not contain the pattern 'needle', so doesn't match.</div><div class='add'>+    /needle/.match('haystack') #=&gt; nil</div><div class='add'>+    # 'haystack' does contain the pattern 'hay', so it matches</div><div class='add'>+    /hay/.match('haystack')    #=&gt; #&lt;MatchData "hay"&gt;</div><div class='add'>+</div><div class='add'>+Specifically, &lt;tt&gt;/st/&lt;/tt&gt; requires that the string contains the letter</div><div class='add'>+_s_ followed by the letter _t_, so it matches _haystack_, also.</div><div class='add'>+</div><div class='add'>+== Metacharacters and Escapes</div><div class='add'>+</div><div class='add'>+The following are &lt;i&gt;metacharacters&lt;/i&gt; &lt;tt&gt;(&lt;/tt&gt;, &lt;tt&gt;)&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;[&lt;/tt&gt;, &lt;tt&gt;]&lt;/tt&gt;, &lt;tt&gt;{&lt;/tt&gt;, &lt;tt&gt;}&lt;/tt&gt;, &lt;tt&gt;.&lt;/tt&gt;, &lt;tt&gt;?&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;+&lt;/tt&gt;, &lt;tt&gt;*&lt;/tt&gt;. They have a specific meaning when appearing in a</div><div class='add'>+pattern. To match them literally they must be backslash-escaped. To match</div><div class='add'>+a backslash literally backslash-escape that: &lt;tt&gt;\\\\\\&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+    /1 \+ 2 = 3\?/.match('Does 1 + 2 = 3?') #=&gt; #&lt;MatchData "1 + 2 = 3?"&gt;</div><div class='add'>+</div><div class='add'>+Patterns behave like double-quoted strings so can contain the same</div><div class='add'>+backslash escapes.</div><div class='add'>+</div><div class='add'>+    /\s\u{6771 4eac 90fd}/.match("Go to æ±äº¬éƒ½")</div><div class='add'>+        #=&gt; #&lt;MatchData " æ±äº¬éƒ½"&gt;</div><div class='add'>+</div><div class='add'>+Arbitrary Ruby expressions can be embedded into patterns with the</div><div class='add'>+&lt;tt&gt;#{...}&lt;/tt&gt; construct.</div><div class='add'>+</div><div class='add'>+    place = "æ±äº¬éƒ½"</div><div class='add'>+    /#{place}/.match("Go to æ±äº¬éƒ½")</div><div class='add'>+        #=&gt; #&lt;MatchData "æ±äº¬éƒ½"&gt;</div><div class='add'>+</div><div class='add'>+== Character Classes</div><div class='add'>+</div><div class='add'>+A &lt;i&gt;character class&lt;/i&gt; is delimited with square brackets (&lt;tt&gt;[&lt;/tt&gt;,</div><div class='add'>+&lt;tt&gt;]&lt;/tt&gt;) and lists characters that may appear at that point in the</div><div class='add'>+match. &lt;tt&gt;/[ab]/&lt;/tt&gt; means _a_ or _b_, as opposed to &lt;tt&gt;/ab/&lt;/tt&gt; which</div><div class='add'>+means _a_ followed by _b_.</div><div class='add'>+</div><div class='add'>+    /W[aeiou]rd/.match("Word") #=&gt; #&lt;MatchData "Word"&gt;</div><div class='add'>+</div><div class='add'>+Within a character class the hyphen (&lt;tt&gt;-&lt;/tt&gt;) is a metacharacter</div><div class='add'>+denoting an inclusive range of characters. &lt;tt&gt;[abcd]&lt;/tt&gt; is equivalent</div><div class='add'>+to &lt;tt&gt;[a-d]&lt;/tt&gt;. A range can be followed by another range, so</div><div class='add'>+&lt;tt&gt;[abcdwxyz]&lt;/tt&gt; is equivalent to &lt;tt&gt;[a-dw-z]&lt;/tt&gt;. The order in which</div><div class='add'>+ranges or individual characters appear inside a character class is</div><div class='add'>+irrelevant.</div><div class='add'>+</div><div class='add'>+    /[0-9a-f]/.match('9f') #=&gt; #&lt;MatchData "9"&gt;</div><div class='add'>+    /[9f]/.match('9f')     #=&gt; #&lt;MatchData "9"&gt;</div><div class='add'>+</div><div class='add'>+If the first character of a character class is a caret (&lt;tt&gt;^&lt;/tt&gt;) the</div><div class='add'>+class is inverted: it matches any character _except_ those named.</div><div class='add'>+</div><div class='add'>+    /[^a-eg-z]/.match('f') #=&gt; #&lt;MatchData "f"&gt;</div><div class='add'>+</div><div class='add'>+A character class may contain another character class. By itself this</div><div class='add'>+isn't useful because &lt;tt&gt;[a-z[0-9]]&lt;/tt&gt; describes the same set as</div><div class='add'>+&lt;tt&gt;[a-z0-9]&lt;/tt&gt;. However, character classes also support the &lt;tt&gt;&amp;&amp;&lt;/tt&gt;</div><div class='add'>+operator which performs set intersection on its arguments. The two can be</div><div class='add'>+combined as follows:</div><div class='add'>+</div><div class='add'>+    /[a-w&amp;&amp;[^c-g]z]/ # ([a-w] AND ([^c-g] OR z))</div><div class='add'>+    # This is equivalent to:</div><div class='add'>+    /[abh-w]/</div><div class='add'>+</div><div class='add'>+The following metacharacters also behave like character classes:</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/./&lt;/tt&gt; - Any character except a newline.</div><div class='add'>+* &lt;tt&gt;/./m&lt;/tt&gt; - Any character (the +m+ modifier enables multiline mode)</div><div class='add'>+* &lt;tt&gt;/\w/&lt;/tt&gt; - A word character (&lt;tt&gt;[a-zA-Z0-9_]&lt;/tt&gt;)</div><div class='add'>+* &lt;tt&gt;/\W/&lt;/tt&gt; - A non-word character (&lt;tt&gt;[^a-zA-Z0-9_]&lt;/tt&gt;)</div><div class='add'>+* &lt;tt&gt;/\d/&lt;/tt&gt; - A digit character (&lt;tt&gt;[0-9]&lt;/tt&gt;)</div><div class='add'>+* &lt;tt&gt;/\D/&lt;/tt&gt; - A non-digit character (&lt;tt&gt;[^0-9]&lt;/tt&gt;)</div><div class='add'>+* &lt;tt&gt;/\h/&lt;/tt&gt; - A hexdigit character (&lt;tt&gt;[0-9a-fA-F]&lt;/tt&gt;)</div><div class='add'>+* &lt;tt&gt;/\H/&lt;/tt&gt; - A non-hexdigit character (&lt;tt&gt;[^0-9a-fA-F]&lt;/tt&gt;)</div><div class='add'>+* &lt;tt&gt;/\s/&lt;/tt&gt; - A whitespace character: &lt;tt&gt;/[ \t\r\n\f]/&lt;/tt&gt;</div><div class='add'>+* &lt;tt&gt;/\S/&lt;/tt&gt; - A non-whitespace character: &lt;tt&gt;/[^ \t\r\n\f]/&lt;/tt&gt;</div><div class='add'>+</div><div class='add'>+POSIX &lt;i&gt;bracket expressions&lt;/i&gt; are also similar to character classes.</div><div class='add'>+They provide a portable alternative to the above, with the added benefit</div><div class='add'>+that they encompass non-ASCII characters. For instance, &lt;tt&gt;/\d/&lt;/tt&gt;</div><div class='add'>+matches only the ASCII decimal digits (0-9); whereas &lt;tt&gt;/[[:digit:]]/&lt;/tt&gt;</div><div class='add'>+matches any character in the Unicode _Nd_ category.</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/[[:alnum:]]/&lt;/tt&gt; - Alphabetic and numeric character</div><div class='add'>+* &lt;tt&gt;/[[:alpha:]]/&lt;/tt&gt; - Alphabetic character</div><div class='add'>+* &lt;tt&gt;/[[:blank:]]/&lt;/tt&gt; - Space or tab</div><div class='add'>+* &lt;tt&gt;/[[:cntrl:]]/&lt;/tt&gt; - Control character</div><div class='add'>+* &lt;tt&gt;/[[:digit:]]/&lt;/tt&gt; - Digit</div><div class='add'>+* &lt;tt&gt;/[[:graph:]]/&lt;/tt&gt; - Non-blank character (excludes spaces, control</div><div class='add'>+  characters, and similar)</div><div class='add'>+* &lt;tt&gt;/[[:lower:]]/&lt;/tt&gt; - Lowercase alphabetical character</div><div class='add'>+* &lt;tt&gt;/[[:print:]]/&lt;/tt&gt; - Like [:graph:], but includes the space character</div><div class='add'>+* &lt;tt&gt;/[[:punct:]]/&lt;/tt&gt; - Punctuation character</div><div class='add'>+* &lt;tt&gt;/[[:space:]]/&lt;/tt&gt; - Whitespace character (&lt;tt&gt;[:blank:]&lt;/tt&gt;, newline,</div><div class='add'>+   carriage return, etc.)</div><div class='add'>+* &lt;tt&gt;/[[:upper:]]/&lt;/tt&gt; - Uppercase alphabetical</div><div class='add'>+* &lt;tt&gt;/[[:xdigit:]]/&lt;/tt&gt; - Digit allowed in a hexadecimal number (i.e.,</div><div class='add'>+  0-9a-fA-F)</div><div class='add'>+</div><div class='add'>+Ruby also supports the following non-POSIX character classes:</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/[[:word:]]/&lt;/tt&gt; - A character in one of the following Unicode</div><div class='add'>+  general categories _Letter_, _Mark_, _Number_,</div><div class='add'>+  &lt;i&gt;Connector_Punctuation&lt;/i&gt;</div><div class='add'>+* &lt;tt&gt;/[[:ascii:]]/&lt;/tt&gt; - A character in the ASCII character set</div><div class='add'>+</div><div class='add'>+    # U+06F2 is "EXTENDED ARABIC-INDIC DIGIT TWO"</div><div class='add'>+    /[[:digit:]]/.match("\u06F2")    #=&gt; #&lt;MatchData "\u{06F2}"&gt;</div><div class='add'>+    /[[:upper:]][[:lower:]]/.match("Hello") #=&gt; #&lt;MatchData "He"&gt;</div><div class='add'>+    /[[:xdigit:]][[:xdigit:]]/.match("A6")  #=&gt; #&lt;MatchData "A6"&gt;</div><div class='add'>+</div><div class='add'>+== Repetition</div><div class='add'>+</div><div class='add'>+The constructs described so far match a single character. They can be</div><div class='add'>+followed by a repetition metacharacter to specify how many times they need</div><div class='add'>+to occur. Such metacharacters are called &lt;i&gt;quantifiers&lt;/i&gt;.</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;*&lt;/tt&gt; - Zero or more times</div><div class='add'>+* &lt;tt&gt;+&lt;/tt&gt; - One or more times</div><div class='add'>+* &lt;tt&gt;?&lt;/tt&gt; - Zero or one times (optional)</div><div class='add'>+* &lt;tt&gt;{&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt;&lt;tt&gt;}&lt;/tt&gt; - Exactly &lt;i&gt;n&lt;/i&gt; times</div><div class='add'>+* &lt;tt&gt;{&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt;&lt;tt&gt;,}&lt;/tt&gt; - &lt;i&gt;n&lt;/i&gt; or more times</div><div class='add'>+* &lt;tt&gt;{,&lt;/tt&gt;&lt;i&gt;m&lt;/i&gt;&lt;tt&gt;}&lt;/tt&gt; - &lt;i&gt;m&lt;/i&gt; or less times</div><div class='add'>+* &lt;tt&gt;{&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt;&lt;tt&gt;,&lt;/tt&gt;&lt;i&gt;m&lt;/i&gt;&lt;tt&gt;}&lt;/tt&gt; - At least &lt;i&gt;n&lt;/i&gt; and</div><div class='add'>+  at most &lt;i&gt;m&lt;/i&gt; times</div><div class='add'>+</div><div class='add'>+    # At least one uppercase character ('H'), at least one lowercase</div><div class='add'>+    # character ('e'), two 'l' characters, then one 'o'</div><div class='add'>+    "Hello".match(/[[:upper:]]+[[:lower:]]+l{2}o/) #=&gt; #&lt;MatchData "Hello"&gt;</div><div class='add'>+</div><div class='add'>+Repetition is &lt;i&gt;greedy&lt;/i&gt; by default: as many occurrences as possible</div><div class='add'>+are matched while still allowing the overall match to succeed. By</div><div class='add'>+contrast, &lt;i&gt;lazy&lt;/i&gt; matching makes the minimal amount of matches</div><div class='add'>+necessary for overall success. A greedy metacharacter can be made lazy by</div><div class='add'>+following it with &lt;tt&gt;?&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+    # Both patterns below match the string. The first uses a greedy</div><div class='add'>+    # quantifier so '.+' matches '&lt;a&gt;&lt;b&gt;'; the second uses a lazy</div><div class='add'>+    # quantifier so '.+?' matches '&lt;a&gt;'.</div><div class='add'>+    /&lt;.+&gt;/.match("&lt;a&gt;&lt;b&gt;")  #=&gt; #&lt;MatchData "&lt;a&gt;&lt;b&gt;"&gt;</div><div class='add'>+    /&lt;.+?&gt;/.match("&lt;a&gt;&lt;b&gt;") #=&gt; #&lt;MatchData "&lt;a&gt;"&gt;</div><div class='add'>+</div><div class='add'>+A quantifier followed by &lt;tt&gt;+&lt;/tt&gt; matches &lt;i&gt;possessively&lt;/i&gt;: once it</div><div class='add'>+has matched it does not backtrack. They behave like greedy quantifiers,</div><div class='add'>+but having matched they refuse to "give up" their match even if this</div><div class='add'>+jeopardises the overall match.</div><div class='add'>+</div><div class='add'>+== Capturing</div><div class='add'>+</div><div class='add'>+Parentheses can be used for &lt;i&gt;capturing&lt;/i&gt;. The text enclosed by the</div><div class='add'>+&lt;i&gt;n&lt;/i&gt;&lt;sup&gt;th&lt;/sup&gt; group of parentheses can be subsequently referred to</div><div class='add'>+with &lt;i&gt;n&lt;/i&gt;. Within a pattern use the &lt;i&gt;backreference&lt;/i&gt;</div><div class='add'>+&lt;tt&gt;\&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt;; outside of the pattern use</div><div class='add'>+&lt;tt&gt;MatchData[&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt;&lt;tt&gt;]&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+    # 'at' is captured by the first group of parentheses, then referred to</div><div class='add'>+    # later with \1</div><div class='add'>+    /[csh](..) [csh]\1 in/.match("The cat sat in the hat")</div><div class='add'>+        #=&gt; #&lt;MatchData "cat sat in" 1:"at"&gt;</div><div class='add'>+    # Regexp#match returns a MatchData object which makes the captured</div><div class='add'>+    # text available with its #[] method.</div><div class='add'>+    /[csh](..) [csh]\1 in/.match("The cat sat in the hat")[1] #=&gt; 'at'</div><div class='add'>+</div><div class='add'>+Capture groups can be referred to by name when defined with the</div><div class='add'>+&lt;tt&gt;(?&lt;&lt;/tt&gt;&lt;i&gt;name&lt;/i&gt;&lt;tt&gt;&gt;)&lt;/tt&gt; or &lt;tt&gt;(?'&lt;/tt&gt;&lt;i&gt;name&lt;/i&gt;&lt;tt&gt;')&lt;/tt&gt;</div><div class='add'>+constructs.</div><div class='add'>+</div><div class='add'>+    /\$(?&lt;dollars&gt;\d+)\.(?&lt;cents&gt;\d+)/.match("$3.67")</div><div class='add'>+        =&gt; #&lt;MatchData "$3.67" dollars:"3" cents:"67"&gt;</div><div class='add'>+    /\$(?&lt;dollars&gt;\d+)\.(?&lt;cents&gt;\d+)/.match("$3.67")[:dollars] #=&gt; "3"</div><div class='add'>+</div><div class='add'>+Named groups can be backreferenced with &lt;tt&gt;\k&lt;&lt;/tt&gt;&lt;i&gt;name&lt;/i&gt;&lt;tt&gt;&gt;&lt;/tt&gt;,</div><div class='add'>+where _name_ is the group name.</div><div class='add'>+</div><div class='add'>+    /(?&lt;vowel&gt;[aeiou]).\k&lt;vowel&gt;.\k&lt;vowel&gt;/.match('ototomy')</div><div class='add'>+        #=&gt; #&lt;MatchData "ototo" vowel:"o"&gt;</div><div class='add'>+</div><div class='add'>+*Note*: A regexp can't use named backreferences and numbered</div><div class='add'>+backreferences simultaneously.</div><div class='add'>+</div><div class='add'>+When named capture groups are used with a literal regexp on the left-hand</div><div class='add'>+side of an expression and the &lt;tt&gt;=~&lt;/tt&gt; operator, the captured text is</div><div class='add'>+also assigned to local variables with corresponding names.</div><div class='add'>+</div><div class='add'>+    /\$(?&lt;dollars&gt;\d+)\.(?&lt;cents&gt;\d+)/ =~ "$3.67" #=&gt; 0</div><div class='add'>+    dollars #=&gt; "3"</div><div class='add'>+</div><div class='add'>+== Grouping</div><div class='add'>+</div><div class='add'>+Parentheses also &lt;i&gt;group&lt;/i&gt; the terms they enclose, allowing them to be</div><div class='add'>+quantified as one &lt;i&gt;atomic&lt;/i&gt; whole.</div><div class='add'>+</div><div class='add'>+    # The pattern below matches a vowel followed by 2 word characters:</div><div class='add'>+    # 'aen'</div><div class='add'>+    /[aeiou]\w{2}/.match("Caenorhabditis elegans") #=&gt; #&lt;MatchData "aen"&gt;</div><div class='add'>+    # Whereas the following pattern matches a vowel followed by a word</div><div class='add'>+    # character, twice, i.e. &lt;tt&gt;[aeiou]\w[aeiou]\w&lt;/tt&gt;: 'enor'.</div><div class='add'>+    /([aeiou]\w){2}/.match("Caenorhabditis elegans")</div><div class='add'>+        #=&gt; #&lt;MatchData "enor" 1:"or"&gt;</div><div class='add'>+</div><div class='add'>+The &lt;tt&gt;(?:&lt;/tt&gt;...&lt;tt&gt;)&lt;/tt&gt; construct provides grouping without</div><div class='add'>+capturing. That is, it combines the terms it contains into an atomic whole</div><div class='add'>+without creating a backreference. This benefits performance at the slight</div><div class='add'>+expense of readabilty.</div><div class='add'>+</div><div class='add'>+    # The group of parentheses captures 'n' and the second 'ti'. The</div><div class='add'>+    # second group is referred to later with the backreference \2</div><div class='add'>+    /I(n)ves(ti)ga\2ons/.match("Investigations")</div><div class='add'>+        #=&gt; #&lt;MatchData "Investigations" 1:"n" 2:"ti"&gt;</div><div class='add'>+    # The first group of parentheses is now made non-capturing with '?:',</div><div class='add'>+    # so it still matches 'n', but doesn't create the backreference. Thus,</div><div class='add'>+    # the backreference \1 now refers to 'ti'.</div><div class='add'>+    /I(?:n)ves(ti)ga\1ons/.match("Investigations")</div><div class='add'>+        #=&gt; #&lt;MatchData "Investigations" 1:"ti"&gt;</div><div class='add'>+</div><div class='add'>+=== Atomic Grouping</div><div class='add'>+</div><div class='add'>+Grouping can be made &lt;i&gt;atomic&lt;/i&gt; with</div><div class='add'>+&lt;tt&gt;(?&gt;&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt;. This causes the subexpression &lt;i&gt;pat&lt;/i&gt;</div><div class='add'>+to be matched independently of the rest of the expression such that what</div><div class='add'>+it matches becomes fixed for the remainder of the match, unless the entire</div><div class='add'>+subexpression must be abandoned and subsequently revisited. In this</div><div class='add'>+way &lt;i&gt;pat&lt;/i&gt; is treated as a non-divisible whole. Atomic grouping is</div><div class='add'>+typically used to optimise patterns so as to prevent the regular</div><div class='add'>+expression engine from backtracking needlesly.</div><div class='add'>+</div><div class='add'>+    # The &lt;tt&gt;"&lt;/tt&gt; in the pattern below matches the first character of</div><div class='add'>+    # the string, then &lt;tt&gt;.*&lt;/tt&gt; matches &lt;i&gt;Quote"&lt;/i&gt;. This causes the</div><div class='add'>+    # overall match to fail, so the text matched by &lt;tt&gt;.*&lt;/tt&gt; is</div><div class='add'>+    # backtracked by one position, which leaves the final character of the</div><div class='add'>+    # string available to match &lt;tt&gt;"&lt;/tt&gt;</div><div class='add'>+          /".*"/.match('"Quote"')     #=&gt; #&lt;MatchData "\"Quote\""&gt;</div><div class='add'>+    # If &lt;tt&gt;.*&lt;/tt&gt; is grouped atomically, it refuses to backtrack</div><div class='add'>+    # &lt;i&gt;Quote"&lt;/i&gt;, even though this means that the overall match fails</div><div class='add'>+    /"(?&gt;.*)"/.match('"Quote"') #=&gt; nil</div><div class='add'>+</div><div class='add'>+== Subexpression Calls</div><div class='add'>+</div><div class='add'>+The &lt;tt&gt;\g&lt;&lt;/tt&gt;&lt;i&gt;name&lt;/i&gt;&lt;tt&gt;&gt;&lt;/tt&gt; syntax matches the previous</div><div class='add'>+subexpression named _name_, which can be a group name or number, again.</div><div class='add'>+This differs from backreferences in that it re-executes the group rather</div><div class='add'>+than simply trying to re-match the same text.</div><div class='add'>+</div><div class='add'>+    # Matches a &lt;i&gt;(&lt;/i&gt; character and assigns it to the &lt;tt&gt;paren&lt;/tt&gt;</div><div class='add'>+    # group, tries to call that the &lt;tt&gt;paren&lt;/tt&gt; sub-expression again</div><div class='add'>+    # but fails, then matches a literal &lt;i&gt;)&lt;/i&gt;.</div><div class='add'>+    /\A(?&lt;paren&gt;\(\g&lt;paren&gt;*\))*\z/ =~ '()'</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+    /\A(?&lt;paren&gt;\(\g&lt;paren&gt;*\))*\z/ =~ '(())' #=&gt; 0</div><div class='add'>+    # ^1</div><div class='add'>+    #      ^2</div><div class='add'>+    #           ^3</div><div class='add'>+    #                 ^4</div><div class='add'>+    #      ^5</div><div class='add'>+    #           ^6</div><div class='add'>+    #                      ^7</div><div class='add'>+    #                       ^8</div><div class='add'>+    #                       ^9</div><div class='add'>+    #                           ^10</div><div class='add'>+</div><div class='add'>+1.  Matches at the beginning of the string, i.e. before the first</div><div class='add'>+    character.</div><div class='add'>+2.  Enters a named capture group called &lt;tt&gt;paren&lt;/tt&gt;</div><div class='add'>+3.  Matches a literal &lt;i&gt;(&lt;/i&gt;, the first character in the string</div><div class='add'>+4.  Calls the &lt;tt&gt;paren&lt;/tt&gt; group again, i.e. recurses back to the</div><div class='add'>+    second step</div><div class='add'>+5.  Re-enters the &lt;tt&gt;paren&lt;/tt&gt; group</div><div class='add'>+6.  Matches a literal &lt;i&gt;(&lt;/i&gt;, the second character in the</div><div class='add'>+    string</div><div class='add'>+7.  Try to call &lt;tt&gt;paren&lt;/tt&gt; a third time, but fail because</div><div class='add'>+    doing so would prevent an overall successful match</div><div class='add'>+8.  Match a literal &lt;i&gt;)&lt;/i&gt;, the third character in the string.</div><div class='add'>+    Marks the end of the second recursive call</div><div class='add'>+9.  Match a literal &lt;i&gt;)&lt;/i&gt;, the fourth character in the string</div><div class='add'>+10. Match the end of the string</div><div class='add'>+</div><div class='add'>+== Alternation</div><div class='add'>+</div><div class='add'>+The vertical bar metacharacter (&lt;tt&gt;|&lt;/tt&gt;) combines two expressions into</div><div class='add'>+a single one that matches either of the expressions. Each expression is an</div><div class='add'>+&lt;i&gt;alternative&lt;/i&gt;.</div><div class='add'>+</div><div class='add'>+    /\w(and|or)\w/.match("Feliformia") #=&gt; #&lt;MatchData "form" 1:"or"&gt;</div><div class='add'>+    /\w(and|or)\w/.match("furandi")    #=&gt; #&lt;MatchData "randi" 1:"and"&gt;</div><div class='add'>+    /\w(and|or)\w/.match("dissemblance") #=&gt; nil</div><div class='add'>+</div><div class='add'>+== Character Properties</div><div class='add'>+</div><div class='add'>+The &lt;tt&gt;\p{}&lt;/tt&gt; construct matches characters with the named property,</div><div class='add'>+much like POSIX bracket classes.</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/\p{Alnum}/&lt;/tt&gt; - Alphabetic and numeric character</div><div class='add'>+* &lt;tt&gt;/\p{Alpha}/&lt;/tt&gt; - Alphabetic character</div><div class='add'>+* &lt;tt&gt;/\p{Blank}/&lt;/tt&gt; - Space or tab</div><div class='add'>+* &lt;tt&gt;/\p{Cntrl}/&lt;/tt&gt; - Control character</div><div class='add'>+* &lt;tt&gt;/\p{Digit}/&lt;/tt&gt; - Digit</div><div class='add'>+* &lt;tt&gt;/\p{Graph}/&lt;/tt&gt; - Non-blank character (excludes spaces, control</div><div class='add'>+  characters, and similar)</div><div class='add'>+* &lt;tt&gt;/\p{Lower}/&lt;/tt&gt; - Lowercase alphabetical character</div><div class='add'>+* &lt;tt&gt;/\p{Print}/&lt;/tt&gt; - Like &lt;tt&gt;\p{Graph}&lt;/tt&gt;, but includes the space character</div><div class='add'>+* &lt;tt&gt;/\p{Punct}/&lt;/tt&gt; - Punctuation character</div><div class='add'>+* &lt;tt&gt;/\p{Space}/&lt;/tt&gt; - Whitespace character (&lt;tt&gt;[:blank:]&lt;/tt&gt;, newline,</div><div class='add'>+  carriage return, etc.)</div><div class='add'>+* &lt;tt&gt;/\p{Upper}/&lt;/tt&gt; - Uppercase alphabetical</div><div class='add'>+* &lt;tt&gt;/\p{XDigit}/&lt;/tt&gt; - Digit allowed in a hexadecimal number (i.e., 0-9a-fA-F)</div><div class='add'>+* &lt;tt&gt;/\p{Word}/&lt;/tt&gt; - A member of one of the following Unicode general</div><div class='add'>+  category &lt;i&gt;Letter&lt;/i&gt;, &lt;i&gt;Mark&lt;/i&gt;, &lt;i&gt;Number&lt;/i&gt;,</div><div class='add'>+  &lt;i&gt;Connector\_Punctuation&lt;/i&gt;</div><div class='add'>+* &lt;tt&gt;/\p{ASCII}/&lt;/tt&gt; - A character in the ASCII character set</div><div class='add'>+* &lt;tt&gt;/\p{Any}/&lt;/tt&gt; - Any Unicode character (including unassigned</div><div class='add'>+  characters)</div><div class='add'>+* &lt;tt&gt;/\p{Assigned}/&lt;/tt&gt; - An assigned character</div><div class='add'>+</div><div class='add'>+A Unicode character's &lt;i&gt;General Category&lt;/i&gt; value can also be matched</div><div class='add'>+with &lt;tt&gt;\p{&lt;/tt&gt;&lt;i&gt;Ab&lt;/i&gt;&lt;tt&gt;}&lt;/tt&gt; where &lt;i&gt;Ab&lt;/i&gt; is the category's</div><div class='add'>+abbreviation as described below:</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/\p{L}/&lt;/tt&gt; - 'Letter'</div><div class='add'>+* &lt;tt&gt;/\p{Ll}/&lt;/tt&gt; - 'Letter: Lowercase'</div><div class='add'>+* &lt;tt&gt;/\p{Lm}/&lt;/tt&gt; - 'Letter: Mark'</div><div class='add'>+* &lt;tt&gt;/\p{Lo}/&lt;/tt&gt; - 'Letter: Other'</div><div class='add'>+* &lt;tt&gt;/\p{Lt}/&lt;/tt&gt; - 'Letter: Titlecase'</div><div class='add'>+* &lt;tt&gt;/\p{Lu}/&lt;/tt&gt; - 'Letter: Uppercase</div><div class='add'>+* &lt;tt&gt;/\p{Lo}/&lt;/tt&gt; - 'Letter: Other'</div><div class='add'>+* &lt;tt&gt;/\p{M}/&lt;/tt&gt; - 'Mark'</div><div class='add'>+* &lt;tt&gt;/\p{Mn}/&lt;/tt&gt; - 'Mark: Nonspacing'</div><div class='add'>+* &lt;tt&gt;/\p{Mc}/&lt;/tt&gt; - 'Mark: Spacing Combining'</div><div class='add'>+* &lt;tt&gt;/\p{Me}/&lt;/tt&gt; - 'Mark: Enclosing'</div><div class='add'>+* &lt;tt&gt;/\p{N}/&lt;/tt&gt; - 'Number'</div><div class='add'>+* &lt;tt&gt;/\p{Nd}/&lt;/tt&gt; - 'Number: Decimal Digit'</div><div class='add'>+* &lt;tt&gt;/\p{Nl}/&lt;/tt&gt; - 'Number: Letter'</div><div class='add'>+* &lt;tt&gt;/\p{No}/&lt;/tt&gt; - 'Number: Other'</div><div class='add'>+* &lt;tt&gt;/\p{P}/&lt;/tt&gt; - 'Punctuation'</div><div class='add'>+* &lt;tt&gt;/\p{Pc}/&lt;/tt&gt; - 'Punctuation: Connector'</div><div class='add'>+* &lt;tt&gt;/\p{Pd}/&lt;/tt&gt; - 'Punctuation: Dash'</div><div class='add'>+* &lt;tt&gt;/\p{Ps}/&lt;/tt&gt; - 'Punctuation: Open'</div><div class='add'>+* &lt;tt&gt;/\p{Pe}/&lt;/tt&gt; - 'Punctuation: Close'</div><div class='add'>+* &lt;tt&gt;/\p{Pi}/&lt;/tt&gt; - 'Punctuation: Initial Quote'</div><div class='add'>+* &lt;tt&gt;/\p{Pf}/&lt;/tt&gt; - 'Punctuation: Final Quote'</div><div class='add'>+* &lt;tt&gt;/\p{Po}/&lt;/tt&gt; - 'Punctuation: Other'</div><div class='add'>+* &lt;tt&gt;/\p{S}/&lt;/tt&gt; - 'Symbol'</div><div class='add'>+* &lt;tt&gt;/\p{Sm}/&lt;/tt&gt; - 'Symbol: Math'</div><div class='add'>+* &lt;tt&gt;/\p{Sc}/&lt;/tt&gt; - 'Symbol: Currency'</div><div class='add'>+* &lt;tt&gt;/\p{Sc}/&lt;/tt&gt; - 'Symbol: Currency'</div><div class='add'>+* &lt;tt&gt;/\p{Sk}/&lt;/tt&gt; - 'Symbol: Modifier'</div><div class='add'>+* &lt;tt&gt;/\p{So}/&lt;/tt&gt; - 'Symbol: Other'</div><div class='add'>+* &lt;tt&gt;/\p{Z}/&lt;/tt&gt; - 'Separator'</div><div class='add'>+* &lt;tt&gt;/\p{Zs}/&lt;/tt&gt; - 'Separator: Space'</div><div class='add'>+* &lt;tt&gt;/\p{Zl}/&lt;/tt&gt; - 'Separator: Line'</div><div class='add'>+* &lt;tt&gt;/\p{Zp}/&lt;/tt&gt; - 'Separator: Paragraph'</div><div class='add'>+* &lt;tt&gt;/\p{C}/&lt;/tt&gt; - 'Other'</div><div class='add'>+* &lt;tt&gt;/\p{Cc}/&lt;/tt&gt; - 'Other: Control'</div><div class='add'>+* &lt;tt&gt;/\p{Cf}/&lt;/tt&gt; - 'Other: Format'</div><div class='add'>+* &lt;tt&gt;/\p{Cn}/&lt;/tt&gt; - 'Other: Not Assigned'</div><div class='add'>+* &lt;tt&gt;/\p{Co}/&lt;/tt&gt; - 'Other: Private Use'</div><div class='add'>+* &lt;tt&gt;/\p{Cs}/&lt;/tt&gt; - 'Other: Surrogate'</div><div class='add'>+</div><div class='add'>+Lastly, &lt;tt&gt;\p{}&lt;/tt&gt; matches a character's Unicode &lt;i&gt;script&lt;/i&gt;. The</div><div class='add'>+following scripts are supported: &lt;i&gt;Arabic&lt;/i&gt;, &lt;i&gt;Armenian&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Balinese&lt;/i&gt;, &lt;i&gt;Bengali&lt;/i&gt;, &lt;i&gt;Bopomofo&lt;/i&gt;, &lt;i&gt;Braille&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Buginese&lt;/i&gt;, &lt;i&gt;Buhid&lt;/i&gt;, &lt;i&gt;Canadian_Aboriginal&lt;/i&gt;, &lt;i&gt;Carian&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Cham&lt;/i&gt;, &lt;i&gt;Cherokee&lt;/i&gt;, &lt;i&gt;Common&lt;/i&gt;, &lt;i&gt;Coptic&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Cuneiform&lt;/i&gt;, &lt;i&gt;Cypriot&lt;/i&gt;, &lt;i&gt;Cyrillic&lt;/i&gt;, &lt;i&gt;Deseret&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Devanagari&lt;/i&gt;, &lt;i&gt;Ethiopic&lt;/i&gt;, &lt;i&gt;Georgian&lt;/i&gt;, &lt;i&gt;Glagolitic&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Gothic&lt;/i&gt;, &lt;i&gt;Greek&lt;/i&gt;, &lt;i&gt;Gujarati&lt;/i&gt;, &lt;i&gt;Gurmukhi&lt;/i&gt;, &lt;i&gt;Han&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Hangul&lt;/i&gt;, &lt;i&gt;Hanunoo&lt;/i&gt;, &lt;i&gt;Hebrew&lt;/i&gt;, &lt;i&gt;Hiragana&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Inherited&lt;/i&gt;, &lt;i&gt;Kannada&lt;/i&gt;, &lt;i&gt;Katakana&lt;/i&gt;, &lt;i&gt;Kayah_Li&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Kharoshthi&lt;/i&gt;, &lt;i&gt;Khmer&lt;/i&gt;, &lt;i&gt;Lao&lt;/i&gt;, &lt;i&gt;Latin&lt;/i&gt;, &lt;i&gt;Lepcha&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Limbu&lt;/i&gt;, &lt;i&gt;Linear_B&lt;/i&gt;, &lt;i&gt;Lycian&lt;/i&gt;, &lt;i&gt;Lydian&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Malayalam&lt;/i&gt;, &lt;i&gt;Mongolian&lt;/i&gt;, &lt;i&gt;Myanmar&lt;/i&gt;, &lt;i&gt;New_Tai_Lue&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Nko&lt;/i&gt;, &lt;i&gt;Ogham&lt;/i&gt;, &lt;i&gt;Ol_Chiki&lt;/i&gt;, &lt;i&gt;Old_Italic&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Old_Persian&lt;/i&gt;, &lt;i&gt;Oriya&lt;/i&gt;, &lt;i&gt;Osmanya&lt;/i&gt;, &lt;i&gt;Phags_Pa&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Phoenician&lt;/i&gt;, &lt;i&gt;Rejang&lt;/i&gt;, &lt;i&gt;Runic&lt;/i&gt;, &lt;i&gt;Saurashtra&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Shavian&lt;/i&gt;, &lt;i&gt;Sinhala&lt;/i&gt;, &lt;i&gt;Sundanese&lt;/i&gt;, &lt;i&gt;Syloti_Nagri&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Syriac&lt;/i&gt;, &lt;i&gt;Tagalog&lt;/i&gt;, &lt;i&gt;Tagbanwa&lt;/i&gt;, &lt;i&gt;Tai_Le&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Tamil&lt;/i&gt;, &lt;i&gt;Telugu&lt;/i&gt;, &lt;i&gt;Thaana&lt;/i&gt;, &lt;i&gt;Thai&lt;/i&gt;, &lt;i&gt;Tibetan&lt;/i&gt;,</div><div class='add'>+&lt;i&gt;Tifinagh&lt;/i&gt;, &lt;i&gt;Ugaritic&lt;/i&gt;, &lt;i&gt;Vai&lt;/i&gt;, and &lt;i&gt;Yi&lt;/i&gt;.</div><div class='add'>+</div><div class='add'>+    # Unicode codepoint U+06E9 is named "ARABIC PLACE OF SAJDAH" and</div><div class='add'>+    # belongs to the Arabic script.</div><div class='add'>+    /\p{Arabic}/.match("\u06E9") #=&gt; #&lt;MatchData "\u06E9"&gt;</div><div class='add'>+</div><div class='add'>+All character properties can be inverted by prefixing their name with a</div><div class='add'>+caret (&lt;tt&gt;^&lt;/tt&gt;).</div><div class='add'>+</div><div class='add'>+    # Letter 'A' is not in the Unicode Ll (Letter; Lowercase) category, so</div><div class='add'>+    # this match succeeds</div><div class='add'>+    /\p{^Ll}/.match("A") #=&gt; #&lt;MatchData "A"&gt;</div><div class='add'>+</div><div class='add'>+== Anchors</div><div class='add'>+</div><div class='add'>+Anchors are metacharacter that match the zero-width positions between</div><div class='add'>+characters, &lt;i&gt;anchoring&lt;/i&gt; the match to a specific position.</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;^&lt;/tt&gt; - Matches beginning of line</div><div class='add'>+* &lt;tt&gt;$&lt;/tt&gt; - Matches end of line</div><div class='add'>+* &lt;tt&gt;\A&lt;/tt&gt; - Matches beginning of string.</div><div class='add'>+* &lt;tt&gt;\Z&lt;/tt&gt; - Matches end of string. If string ends with a newline,</div><div class='add'>+  it matches just before newline</div><div class='add'>+* &lt;tt&gt;\z&lt;/tt&gt; - Matches end of string</div><div class='add'>+* &lt;tt&gt;\G&lt;/tt&gt; - Matches point where last match finished</div><div class='add'>+* &lt;tt&gt;\b&lt;/tt&gt; - Matches word boundaries when outside brackets;</div><div class='add'>+  backspace (0x08) when inside brackets</div><div class='add'>+* &lt;tt&gt;\B&lt;/tt&gt; - Matches non-word boundaries</div><div class='add'>+* &lt;tt&gt;(?=&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt; - &lt;i&gt;Positive lookahead&lt;/i&gt; assertion:</div><div class='add'>+  ensures that the following characters match &lt;i&gt;pat&lt;/i&gt;, but doesn't</div><div class='add'>+  include those characters in the matched text</div><div class='add'>+* &lt;tt&gt;(?!&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt; - &lt;i&gt;Negative lookahead&lt;/i&gt; assertion:</div><div class='add'>+  ensures that the following characters do not match &lt;i&gt;pat&lt;/i&gt;, but</div><div class='add'>+  doesn't include those characters in the matched text</div><div class='add'>+* &lt;tt&gt;(?&lt;=&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt; - &lt;i&gt;Positive lookbehind&lt;/i&gt;</div><div class='add'>+  assertion: ensures that the preceding characters match &lt;i&gt;pat&lt;/i&gt;, but</div><div class='add'>+  doesn't include those characters in the matched text</div><div class='add'>+* &lt;tt&gt;(?&lt;!&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt; - &lt;i&gt;Negative lookbehind&lt;/i&gt;</div><div class='add'>+  assertion: ensures that the preceding characters do not match</div><div class='add'>+  &lt;i&gt;pat&lt;/i&gt;, but doesn't include those characters in the matched text</div><div class='add'>+</div><div class='add'>+    # If a pattern isn't anchored it can begin at any point in the string</div><div class='add'>+    /real/.match("surrealist") #=&gt; #&lt;MatchData "real"&gt;</div><div class='add'>+    # Anchoring the pattern to the beginning of the string forces the</div><div class='add'>+    # match to start there. 'real' doesn't occur at the beginning of the</div><div class='add'>+    # string, so now the match fails</div><div class='add'>+    /\Areal/.match("surrealist") #=&gt; nil</div><div class='add'>+    # The match below fails because although 'Demand' contains 'and', the</div><div class='add'>+    pattern does not occur at a word boundary.</div><div class='add'>+    /\band/.match("Demand")</div><div class='add'>+    # Whereas in the following example 'and' has been anchored to a</div><div class='add'>+    # non-word boundary so instead of matching the first 'and' it matches</div><div class='add'>+    # from the fourth letter of 'demand' instead</div><div class='add'>+    /\Band.+/.match("Supply and demand curve") #=&gt; #&lt;MatchData "and curve"&gt;</div><div class='add'>+    # The pattern below uses positive lookahead and positive lookbehind to</div><div class='add'>+    # match text appearing in &lt;b&gt;&lt;/b&gt; tags without including the tags in the</div><div class='add'>+    # match</div><div class='add'>+    /(?&lt;=&lt;b&gt;)\w+(?=&lt;\/b&gt;)/.match("Fortune favours the &lt;b&gt;bold&lt;/b&gt;")</div><div class='add'>+        #=&gt; #&lt;MatchData "bold"&gt;</div><div class='add'>+</div><div class='add'>+== Options</div><div class='add'>+</div><div class='add'>+The end delimiter for a regexp can be followed by one or more single-letter</div><div class='add'>+options which control how the pattern can match.</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/pat/i&lt;/tt&gt; - Ignore case</div><div class='add'>+* &lt;tt&gt;/pat/m&lt;/tt&gt; - Treat a newline as a character matched by &lt;tt&gt;.&lt;/tt&gt;</div><div class='add'>+* &lt;tt&gt;/pat/x&lt;/tt&gt; - Ignore whitespace and comments in the pattern</div><div class='add'>+* &lt;tt&gt;/pat/o&lt;/tt&gt; - Perform &lt;tt&gt;#{}&lt;/tt&gt; interpolation only once</div><div class='add'>+</div><div class='add'>+&lt;tt&gt;i&lt;/tt&gt;, &lt;tt&gt;m&lt;/tt&gt;, and &lt;tt&gt;x&lt;/tt&gt; can also be applied on the</div><div class='add'>+subexpression level with the</div><div class='add'>+&lt;tt&gt;(?&lt;/tt&gt;&lt;i&gt;on&lt;/i&gt;&lt;tt&gt;-&lt;/tt&gt;&lt;i&gt;off&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt; construct, which</div><div class='add'>+enables options &lt;i&gt;on&lt;/i&gt;, and disables options &lt;i&gt;off&lt;/i&gt; for the</div><div class='add'>+expression enclosed by the parentheses.</div><div class='add'>+</div><div class='add'>+    /a(?i:b)c/.match('aBc') #=&gt; #&lt;MatchData "aBc"&gt;</div><div class='add'>+    /a(?i:b)c/.match('abc') #=&gt; #&lt;MatchData "abc"&gt;</div><div class='add'>+</div><div class='add'>+== Free-Spacing Mode and Comments</div><div class='add'>+</div><div class='add'>+As mentioned above, the &lt;tt&gt;x&lt;/tt&gt; option enables &lt;i&gt;free-spacing&lt;/i&gt;</div><div class='add'>+mode. Literal white space inside the pattern is ignored, and the</div><div class='add'>+octothorpe (&lt;tt&gt;#&lt;/tt&gt;) character introduces a comment until the end of</div><div class='add'>+the line. This allows the components of the pattern to be organised in a</div><div class='add'>+potentially more readable fashion.</div><div class='add'>+</div><div class='add'>+    # A contrived pattern to match a number with optional decimal places</div><div class='add'>+    float_pat = /\A</div><div class='add'>+        [[:digit:]]+ # 1 or more digits before the decimal point</div><div class='add'>+        (\.          # Decimal point</div><div class='add'>+            [[:digit:]]+ # 1 or more digits after the decimal point</div><div class='add'>+        )? # The decimal point and following digits are optional</div><div class='add'>+    \Z/x</div><div class='add'>+    float_pat.match('3.14') #=&gt; #&lt;MatchData "3.14" 1:".14"&gt;</div><div class='add'>+</div><div class='add'>+*Note*: To match whitespace in an &lt;tt&gt;x&lt;/tt&gt; pattern use an escape such as</div><div class='add'>+&lt;tt&gt;\s&lt;/tt&gt; or &lt;tt&gt;\p{Space}&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+Comments can be included in a non-&lt;tt&gt;x&lt;/tt&gt; pattern with the</div><div class='add'>+&lt;tt&gt;(?#&lt;/tt&gt;&lt;i&gt;comment&lt;/i&gt;&lt;tt&gt;)&lt;/tt&gt; construct, where &lt;i&gt;comment&lt;/i&gt; is</div><div class='add'>+arbitrary text ignored by the regexp engine.</div><div class='add'>+</div><div class='add'>+== Encoding</div><div class='add'>+</div><div class='add'>+Regular expressions are assumed to use the source encoding. This can be</div><div class='add'>+overridden with one of the following modifiers.</div><div class='add'>+</div><div class='add'>+* &lt;tt&gt;/&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;/u&lt;/tt&gt; - UTF-8</div><div class='add'>+* &lt;tt&gt;/&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;/e&lt;/tt&gt; - EUC-JP</div><div class='add'>+* &lt;tt&gt;/&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;/s&lt;/tt&gt; - Windows-31J</div><div class='add'>+* &lt;tt&gt;/&lt;/tt&gt;&lt;i&gt;pat&lt;/i&gt;&lt;tt&gt;/n&lt;/tt&gt; - ASCII-8BIT</div><div class='add'>+</div><div class='add'>+A regexp can be matched against a string when they either share an</div><div class='add'>+encoding, or the regexp's encoding is _US-ASCII_ and the string's encoding</div><div class='add'>+is ASCII-compatible.</div><div class='add'>+</div><div class='add'>+If a match between incompatible encodings is attempted an</div><div class='add'>+&lt;tt&gt;Encoding::CompatibilityError&lt;/tt&gt; exception is raised.</div><div class='add'>+</div><div class='add'>+The &lt;tt&gt;Regexp#fixed_encoding?&lt;/tt&gt; predicate indicates whether the regexp</div><div class='add'>+has a &lt;i&gt;fixed&lt;/i&gt; encoding, that is one incompatible with ASCII. A</div><div class='add'>+regexp's encoding can be explicitly fixed by supplying</div><div class='add'>+&lt;tt&gt;Regexp::FIXEDENCODING&lt;/tt&gt; as the second argument of</div><div class='add'>+&lt;tt&gt;Regexp.new&lt;/tt&gt;:</div><div class='add'>+</div><div class='add'>+    r = Regexp.new("a".force_encoding("iso-8859-1"),Regexp::FIXEDENCODING)</div><div class='add'>+    r =~"a\u3042"</div><div class='add'>+       #=&gt; Encoding::CompatibilityError: incompatible encoding regexp match</div><div class='add'>+            (ISO-8859-1 regexp with UTF-8 string)</div><div class='add'>+</div><div class='add'>+== Performance</div><div class='add'>+</div><div class='add'>+Certain pathological combinations of constructs can lead to abysmally bad</div><div class='add'>+performance.</div><div class='add'>+</div><div class='add'>+Consider a string of 25 &lt;i&gt;a&lt;/i&gt;s, a &lt;i&gt;d&lt;/i&gt;, 4 &lt;i&gt;a&lt;/i&gt;s, and a</div><div class='add'>+&lt;i&gt;c&lt;/i&gt;.</div><div class='add'>+</div><div class='add'>+    s = 'a' * 25 + 'd' 'a' * 4 + 'c'</div><div class='add'>+        #=&gt; "aaaaaaaaaaaaaaaaaaaaaaaaadadadadac"</div><div class='add'>+</div><div class='add'>+The following patterns match instantly as you would expect:</div><div class='add'>+</div><div class='add'>+    /(b|a)/ =~ s #=&gt; 0</div><div class='add'>+    /(b|a+)/ =~ s #=&gt; 0</div><div class='add'>+    /(b|a+)*\/ =~ s #=&gt; 0</div><div class='add'>+</div><div class='add'>+However, the following pattern takes appreciably longer:</div><div class='add'>+</div><div class='add'>+    /(b|a+)*c/ =~ s #=&gt; 32</div><div class='add'>+</div><div class='add'>+This happens because an atom in the regexp is quantified by both an</div><div class='add'>+immediate &lt;tt&gt;+&lt;/tt&gt; and an enclosing &lt;tt&gt;*&lt;/tt&gt; with nothing to</div><div class='add'>+differentiate which is in control of any particular character. The</div><div class='add'>+nondeterminism that results produces super-linear performance. (Consult</div><div class='add'>+&lt;i&gt;Mastering Regular Expressions&lt;/i&gt; (3rd ed.), pp 222, by</div><div class='add'>+&lt;i&gt;Jeffery Friedl&lt;/i&gt;, for an in-depth analysis). This particular case</div><div class='add'>+can be fixed by use of atomic grouping, which prevents the unnecessary</div><div class='add'>+backtracking:</div><div class='add'>+</div><div class='add'>+    (start = Time.now) &amp;&amp; /(b|a+)*c/ =~ s &amp;&amp; (Time.now - start)</div><div class='add'>+       #=&gt; 24.702736882</div><div class='add'>+    (start = Time.now) &amp;&amp; /(?&gt;b|a+)*c/ =~ s &amp;&amp; (Time.now - start)</div><div class='add'>+       #=&gt; 0.000166571</div><div class='add'>+</div><div class='add'>+A similar case is typified by the following example, which takes</div><div class='add'>+approximately 60 seconds to execute for me:</div><div class='add'>+</div><div class='add'>+    # Match a string of 29 &lt;i&gt;a&lt;/i&gt;s against a pattern of 29 optional</div><div class='add'>+    # &lt;i&gt;a&lt;/i&gt;s followed by 29 mandatory &lt;i&gt;a&lt;/i&gt;s.</div><div class='add'>+    Regexp.new('a?' * 29 + 'a' * 29) =~ 'a' * 29</div><div class='add'>+</div><div class='add'>+The 29 optional &lt;i&gt;a&lt;/i&gt;s match the string, but this prevents the 29</div><div class='add'>+mandatory &lt;i&gt;a&lt;/i&gt;s that follow from matching. Ruby must then backtrack</div><div class='add'>+repeatedly so as to satisfy as many of the optional matches as it can</div><div class='add'>+while still matching the mandatory 29. It is plain to us that none of the</div><div class='add'>+optional matches can succeed, but this fact unfortunately eludes Ruby.</div><div class='add'>+</div><div class='add'>+One approach for improving performance is to anchor the match to the</div><div class='add'>+beginning of the string, thus significantly reducing the amount of</div><div class='add'>+backtracking needed.</div><div class='add'>+</div><div class='add'>+    Regexp.new('\A' 'a?' * 29 + 'a' * 29).match('a' * 29)</div><div class='add'>+        #=&gt; #&lt;MatchData "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"&gt;</div><div class='add'>+</div><div class='head'>diff --git a/doc/rubygems/ChangeLog b/doc/rubygems/ChangeLog<br/>new file mode 100644<br/>index 0000000000..2e67a4c2c5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rubygems/ChangeLog?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rubygems/ChangeLog</a></div><div class='hunk'>@@ -0,0 +1,5689 @@</div><div class='add'>+# -*- coding: utf-8 -*-</div><div class='add'>+</div><div class='add'>+2010-02-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  1.3.6.</div><div class='add'>+	* test/*:  Windows test fixes</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Fix same file detection on windows.</div><div class='add'>+</div><div class='add'>+2010-02-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb:  Fix use of ConfigFile#api_key= vs</div><div class='add'>+	  #rubygems_api_key=.  Patch by Nick Quaranto.</div><div class='add'>+</div><div class='add'>+2010-02-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile:  RubyGems doesn't depend on previous RubyGems.</div><div class='add'>+</div><div class='add'>+2010-02-11  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  http://rubygems.org is now the default source.</div><div class='add'>+	* lib/rubygems/dependency.rb:  Only warn once about</div><div class='add'>+	  #version_requirement</div><div class='add'>+</div><div class='add'>+2010-02-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* bin/update_rubygems:  Use system, exec more correctly, remove</div><div class='add'>+	  useless puts.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  List every version when</div><div class='add'>+	  --prerelease --all is given.</div><div class='add'>+</div><div class='add'>+2010-02-08  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb:  Support --prerelease.</div><div class='add'>+	* lib/rubygems/commands/fetch_command.rb:  Support --prerelease.</div><div class='add'>+	* lib/rubygems/format.rb:  Don't crash on empty files.  Bug #27292 by</div><div class='add'>+	  Ian Ragsdale.</div><div class='add'>+	* lib/rubygems/server.rb:  Fix markup.  Bug #27045 by Eric Young.</div><div class='add'>+	* History.txt:  RubyGems 1.3.6 release notes.</div><div class='add'>+</div><div class='add'>+2010-02-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Allow prerelease gems to</div><div class='add'>+	  depend on non-prerelease gems.</div><div class='add'>+</div><div class='add'>+2010-02-06  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem_commands_specification_command.rb:  Don't enforce YAML</div><div class='add'>+	  format.  Patch #27791 by Aaron Patterson.</div><div class='add'>+	* lib/rubygems/version.rb:  Allow captial letters in prerelease</div><div class='add'>+	  versions.</div><div class='add'>+	* lib/rubygems/config_file.rb:  Explain format of ~/.gemrc.  Bug</div><div class='add'>+	  #27698 by J Smith.</div><div class='add'>+	* lib/rubygems/gem_path_searcher.rb:  Handle nil require_paths.</div><div class='add'>+	  Patch #27334 by Roger Pack.</div><div class='add'>+	* lib/rubygems/server.rb:  Handle --bind option.  Patch #27357 by</div><div class='add'>+	  Bruno Michel.</div><div class='add'>+	* lib/rubygems/doc_manager:  gem rdoc --overwrite to preserve built</div><div class='add'>+	  rdoc.  Patch #25982 by Akinori MUSHA.</div><div class='add'>+	* lib/rubygems/commands/which_command.rb:  Fail if no paths were</div><div class='add'>+	  found.  Adapted patch #27681 by Caio Chassot.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Don't copy if the file is where we</div><div class='add'>+	  want it.  Patch #27409 by Jakub Å Å¥astnÃ½.</div><div class='add'>+</div><div class='add'>+2010-02-01  John Barnette  &lt;jbarnette@rubygems.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command*: Add 'gem push' and 'gem owner' for</div><div class='add'>+	  interacting with modern/Gemcutter sources [Nick Quaranto]</div><div class='add'>+</div><div class='add'>+2010-01-18  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_list.rb:  Ignore development dependencies</div><div class='add'>+	  unless explicitly needed.  Bug #27608 by Roger Pack.</div><div class='add'>+</div><div class='add'>+2010-01-12  John Barnette &lt;jbarnette@rubygems.org&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile: Don't add development deps when building the</div><div class='add'>+	  rubygems-update gem, it borks older versions when they're updating</div><div class='add'>+	  from a stub index.</div><div class='add'>+</div><div class='add'>+2009-12-22  Evan Phoenix  &lt;evan@fallingsnow.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb: Don't bother re-Marshaling the spec</div><div class='add'>+	  YAML list.</div><div class='add'>+</div><div class='add'>+2009-11-04  John Barnette  &lt;jbarnette@rubygems.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/timer.rb: Removed. The deprecation sun set in July.</div><div class='add'>+</div><div class='add'>+2009-10-14  John Barnette  &lt;jbarnette@rubygems.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency.rb: Burndown/cleanup. Refactored code</div><div class='add'>+	  and tests. Gem::Dependency.version_requirement(s) is deprecated in</div><div class='add'>+	  favor of Gem::Dependency.requirement.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/requirement.rb: Burndown/cleanup. Refactored code</div><div class='add'>+	  and tests. See test/support/shortcuts.rb for some new test helpers.</div><div class='add'>+</div><div class='add'>+2009-10-13  John Barnette  &lt;jbarnette@rubygems.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options.rb: Make --source additive,</div><div class='add'>+	  not exclusive. If exclusive sources are desired, use</div><div class='add'>+	  --clear-sources first.</div><div class='add'>+</div><div class='add'>+2009-09-29  John Barnette  &lt;jbarnette@rubyforge.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb: Be slightly more robust when faced</div><div class='add'>+	  with corrupted indexes.</div><div class='add'>+</div><div class='add'>+2009-09-03  John Barnette  &lt;jbarnette@rubyforge.org&gt;</div><div class='add'>+</div><div class='add'>+	* LOTS: Use "raise" consistently, not "fail".</div><div class='add'>+</div><div class='add'>+2009-09-01  John Barnette  &lt;jbarnette@rubyforge.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: Gem::Version immutability</div><div class='add'>+	  burndown. Changed canonical internal representation to an</div><div class='add'>+	  Array. Refactored significant amounts of the internals for</div><div class='add'>+	  clarity. Breaking change: Gem::Version::Requirement is no longer</div><div class='add'>+	  available, use Gem::Requirement instead. Breaking change: custom</div><div class='add'>+	  YAML marshaling is gone. Credit to Yehuda Katz for certain bits of</div><div class='add'>+	  a related patch.</div><div class='add'>+	* test/test_gem_dependency.rb: Moved a bunch of tests over from</div><div class='add'>+	  test_gem_version.rb. Work in progress.</div><div class='add'>+	* test/test_gem_specification.rb: Removed a failing YAML</div><div class='add'>+	  test. Many more will be going away shortly.</div><div class='add'>+	* test/test_gem_version.rb: Significant refactoring for</div><div class='add'>+	  maintainability and clarity. Moved a ton of poorly-placed tests to</div><div class='add'>+	  test_gem_dependency.rb for future refactoring.</div><div class='add'>+</div><div class='add'>+2009-08-19  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Cleanup of rdoc and file layout.</div><div class='add'>+	* lib/rubygems/versions.rb: Added Version#spermy_recommendation</div><div class='add'>+	  and fixed bug in Version::Part#inspect. General cleanup.</div><div class='add'>+</div><div class='add'>+2009-07-29  John Barnette &lt;jbarnette@rubyforge.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package/tar_input.rb:  Add Maglev to the list of</div><div class='add'>+	  implementations with working Zlib. Bug #26790 by Peter McLain.</div><div class='add'>+</div><div class='add'>+2009-07-21  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  1.3.5.</div><div class='add'>+	* lib/rubygems/package.rb:  Remove dangling digest require.  Reported</div><div class='add'>+	  by Jeremy Kemper.</div><div class='add'>+</div><div class='add'>+2009-06-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* release_notes/:  Merged into History.txt for Hoe.</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb:  Streamlined install text.</div><div class='add'>+</div><div class='add'>+2009-06-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* release_notes/rel_1_3_5.rdoc:  RubyGems 1.3.5 release notes.</div><div class='add'>+	* lib/rubygems/builder.rb:  Only print out with verbose.</div><div class='add'>+	* lib/rubygems/package_task.rb:  Only print out with -t.</div><div class='add'>+</div><div class='add'>+2009-06-12  Ryan Davis  &lt;ryand@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile:  Switched to Hoe.</div><div class='add'>+</div><div class='add'>+2009-06-10  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  --user-install is no longer enabled by</div><div class='add'>+	  default.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Fix use of prerelease gems.</div><div class='add'>+</div><div class='add'>+2009-06-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* util/gem_prelude.rb.template:  Backports from 1.9.</div><div class='add'>+</div><div class='add'>+2009-06-03  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* bin/gem:  Support 1.8.6+</div><div class='add'>+	* lib/rubygems/digest*:  Removed, support dropped for Ruby &lt; 1.8.6</div><div class='add'>+	* lib/rubygems/installer.rb:  Support env(1) in wrong path, use</div><div class='add'>+	  /bin/sh if shebang has options.  By Nobu, ruby trunk r22853.</div><div class='add'>+	* lib/rubygems/config_file.rb:  Switch to stdcall for appdata folder.</div><div class='add'>+	  [ruby-core:22601].</div><div class='add'>+	* lib/rubygems.rb:  Use only File::expand_path on 1.9 for home dir.</div><div class='add'>+	  Don't recklessly create directories.  Simplify RbConfig::datadir</div><div class='add'>+	  definition.</div><div class='add'>+</div><div class='add'>+2009-05-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/which_command.rb:  Only print out directory</div><div class='add'>+	  information to a TTY.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.3.4.</div><div class='add'>+	* doc/release_notes/rel_1_3_4.rdoc:  RubyGems 1.3.4 release notes.</div><div class='add'>+</div><div class='add'>+2009-05-28  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb:  Fix --format-executable</div><div class='add'>+	  option name.</div><div class='add'>+	* lib/rubygems/requirement.rb:  Fix typo in #parse.  Bug #26000 by</div><div class='add'>+	  Mike Gunderloy.</div><div class='add'>+</div><div class='add'>+2009-05-21  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Add 'dev' and svn revision for -1 RUBY_PATCHLEVEL</div><div class='add'>+	  and RUBY_REVISION.</div><div class='add'>+</div><div class='add'>+2009-05-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb:  Restore 1.9.1 path behavior.</div><div class='add'>+	* lib/rubygems/specification.rb:  Fix undefined ivar warning.</div><div class='add'>+	* lib/rubygems/indexer.rb:  Force loading of builder gem.</div><div class='add'>+	* test/gemutilities.rb:  Remove gem_prelude code by hand to avoid 1.9</div><div class='add'>+	  warnings.</div><div class='add'>+</div><div class='add'>+2009-05-19  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem_specification.rb: skip symlinks tests on Windows.</div><div class='add'>+	* test/test_gem_commands_install_command.rb: skip chmod test on</div><div class='add'>+	  Windows.</div><div class='add'>+</div><div class='add'>+2009-05-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems*:  Fix 1.9 warnings about circular require.</div><div class='add'>+</div><div class='add'>+2009-05-12  Daniel Berger  &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Fixed the download method in the</div><div class='add'>+	  remote_fetcher.rb file so that it handles local installs on MS</div><div class='add'>+	  Windows when using explicit paths that aren't on the 'C:' drive.</div><div class='add'>+	  Bug #25882 by Lars Christensen.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Replaced deprecated</div><div class='add'>+	  Gem::SourceIndex method 'search' with 'find_name' in the 'execute'</div><div class='add'>+	  method.</div><div class='add'>+</div><div class='add'>+2009-05-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Support prerelease version</div><div class='add'>+	  listing (--prerelease), list locally installed prereleases.</div><div class='add'>+	* lib/rubygems/source_info_cache.rb:  Gem::SourceInfoCache is</div><div class='add'>+	  officially unsupported, maintaining its tests is hard.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Add #all_gems, fix #remove_spec,</div><div class='add'>+	  #search to work with it.  Prerelease gems can now be used.</div><div class='add'>+</div><div class='add'>+2009-05-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 1.3.3.</div><div class='add'>+	* doc/release_notes/rel_1_3_3.rdoc:  RubyGems 1.3.3 release notes.</div><div class='add'>+	* lib/rubygems/specification.rb:  Default has_rdoc to true, ignore</div><div class='add'>+	  its value.</div><div class='add'>+	* lib/rubygems/doc_manager.rb:  Always generate RDoc regardless of</div><div class='add'>+	  #has_rdoc?</div><div class='add'>+	* lib/rubygems.rb:  Raise Gem::LoadError if Kernel#gem fails due to</div><div class='add'>+	  previously-loaded gem.  Bug reported by Alf Mikula.</div><div class='add'>+</div><div class='add'>+2009-05-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/server_command.rb:  Allow port names with</div><div class='add'>+	  --port.</div><div class='add'>+	* lib/rubygems/requirement.rb:  Match prerelease versions and ~&gt;</div><div class='add'>+	  correctly.  Patch #25759 by Yossef Mendelssohn.</div><div class='add'>+</div><div class='add'>+2009-05-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Check bindir for executables, not</div><div class='add'>+	  root.  Bug reported by David Chelimsky.  Remove Time.today, no way</div><div class='add'>+	  to override it before RubyGems loads.  Bug #25564 by Emanuele</div><div class='add'>+	  Vicentini.  Raise Gem::Exception for #installation_path when not</div><div class='add'>+	  installed.  Bug #25741 by Daniel Berger.  Don't error in #validate</div><div class='add'>+	  when homepage is nil.  Bug #25677 by Mike Burrows.</div><div class='add'>+	* lib/rubygems/commands/cleanup_command.rb:  Clean up --user-install</div><div class='add'>+	  gems.  Bug #25516 by Brett Eisenberg.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Uninstall executables from the correct</div><div class='add'>+	  directory.  Bug #25555 by Brett Eisenberg.</div><div class='add'>+	* lib/rubygems/server.rb:  Add search that jumps to RDoc.  Patch</div><div class='add'>+	  #22959 by Vladimir Dobriakov.</div><div class='add'>+</div><div class='add'>+2009-05-01  James Tucker  &lt;jftucker@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Gem.bin_path now escapes paths with spaces.</div><div class='add'>+</div><div class='add'>+2009-04-30  Daniel Berger  &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Replaced deprecated</div><div class='add'>+	  Gem::SourceIndex method 'search' with 'find_name' when using</div><div class='add'>+	  the -t option. Fixes bug # 25632 by Daniel Berger.</div><div class='add'>+</div><div class='add'>+2009-04-30  James Tucker  &lt;jftucker@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/ext/rake_builder.rb: Use explicit ruby command loading</div><div class='add'>+	  rubygems to invoke rake.</div><div class='add'>+</div><div class='add'>+2009-04-24  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/specification_command.rb:  Added requesting</div><div class='add'>+	  single fields from a spec.</div><div class='add'>+</div><div class='add'>+2009-04-23  James Tucker  &lt;jftucker@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/ext/configure_builder.rb: Support Gem::Command.build_args.</div><div class='add'>+</div><div class='add'>+2009-04-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 1.3.2.</div><div class='add'>+</div><div class='add'>+2009-04-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Complain when summary and</div><div class='add'>+	  description are identical.</div><div class='add'>+</div><div class='add'>+2009-04-08  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Strip directories, complain for</div><div class='add'>+	  non-files in #validate.</div><div class='add'>+</div><div class='add'>+2009-04-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Implement #initialize_copy.</div><div class='add'>+	* lib/rubygems/commands/contents_command.rb:  Add --no-prefix and</div><div class='add'>+	  --all.</div><div class='add'>+</div><div class='add'>+2009-04-06  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb:  Don't allow gem to overwrite ruby on</div><div class='add'>+	  install.  Fixes bug #24958 by Michael Soulier.</div><div class='add'>+	* doc/release_notes/rel_1_3_2.rdoc:  Preliminary 1.3.2 release notes.</div><div class='add'>+	* Rakefile:  Trim off some stale code, switch to Manifest.txt, one</div><div class='add'>+	  step closer to Hoe!</div><div class='add'>+</div><div class='add'>+2009-04-06  Daniel Berger  &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem_ext_configure_builder.rb: Better handling for MS</div><div class='add'>+	  Windows.</div><div class='add'>+	* test/gemutilities.rb: Added the make_command and vc_windows? helper</div><div class='add'>+	  methods.</div><div class='add'>+</div><div class='add'>+2009-04-03  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/: RDoc improvements.</div><div class='add'>+</div><div class='add'>+2009-04-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb:  Fix --destdir.  Patch</div><div class='add'>+	  #24970 by Richard Brown.</div><div class='add'>+</div><div class='add'>+2009-04-02  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: Documentation of prerelease</div><div class='add'>+	versions. See http://technomancy.us/123 for details.</div><div class='add'>+</div><div class='add'>+2009-03-31  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  If the cached specs file won't load,</div><div class='add'>+	  refetch.  Bug #24961 by Dylan Stamat.</div><div class='add'>+	* lib/rubygems/defaults.rb:  Add a sanity check to</div><div class='add'>+	  Gem.default_exec_format.  Workaround for bug #24958 by Michael</div><div class='add'>+	  Soulier.</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb:  Fix confusion with option</div><div class='add'>+	  names.  Patch #24971 by Richard Brown.</div><div class='add'>+	* lib/rubygems/specification.rb:  Make #validate complain about</div><div class='add'>+	  not-files.</div><div class='add'>+	* lib/gauntlet_rubygems.rb:  For verification of the validator.</div><div class='add'>+</div><div class='add'>+2009-03-27  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  RubyGems now loads plugins from rubygems_plugin.rb</div><div class='add'>+	  in installed gems.  This can be used to add commands (See</div><div class='add'>+	  Gem::CommandManager) or add install/uninstall hooks (See</div><div class='add'>+	  Gem::Installer and Gem::Uninstaller).</div><div class='add'>+	* setup.rb:  Ensure we're in a RubyGems dir when installing.</div><div class='add'>+</div><div class='add'>+2009-03-26  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package_task.rb:  Import from Rake's</div><div class='add'>+	  rake/gempackagetask.rb</div><div class='add'>+	* Rakefile:  Switched to RDoc::Task from RDoc 2.4.2.</div><div class='add'>+	* lib/rubygems.rb:  Gem.find_files now returns paths in $LOAD_PATH.</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb:  Allow sources to be added</div><div class='add'>+	  behind proxies.  Bug #24785 by Elia Schito.</div><div class='add'>+</div><div class='add'>+2009-03-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Fix typo.  Patch #24446</div><div class='add'>+	  by Luis Parravicini.</div><div class='add'>+	* lib/rubygems/version.rb:  Handle non-String versions by calling</div><div class='add'>+	  #to_s.  Patch #24392 by Stephen Bannasch.</div><div class='add'>+</div><div class='add'>+2009-03-22  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Always escape URI's to deal with spaces</div><div class='add'>+	  and such, regardless of platform.</div><div class='add'>+	* lib/rubygesm/validator.rb: Use the test-unit gem if installed.</div><div class='add'>+	  Part of the fix for RF #24261 by Daniel Berger</div><div class='add'>+	* lib/rubygems/commands/install_command.rb: Explictly require</div><div class='add'>+	  rubygems/uninstaller.rb if the user wants to bail because of failed</div><div class='add'>+	  tests.</div><div class='add'>+	  Part of the fix for RF #24261 by Daniel Berger</div><div class='add'>+</div><div class='add'>+2009-03-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Make `gem unpack` work with</div><div class='add'>+	  more than one gem name, fix warning about installation location.</div><div class='add'>+</div><div class='add'>+2009-03-16  James Tucker &lt;jftucker@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Deprecate ConfigMap[:RUBY_INSTALL_NAME]</div><div class='add'>+	* lib/rubygems/defaults.rb: Gem.default_exec_format to use </div><div class='add'>+		ConfigMap[:ruby_install_name].</div><div class='add'>+		Fixes Bug #24457</div><div class='add'>+	* util/gem_prelude.rb.template: Fix potential bug in</div><div class='add'>+	  Gem.default_exec_format when ConfigMap[:BASERUBY] is not 'ruby'.</div><div class='add'>+</div><div class='add'>+2009-03-14  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Cleanup quotes on Windows stub scripts.</div><div class='add'>+	  Fixes Bug #24039.</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb: ditto.</div><div class='add'>+</div><div class='add'>+2008-03-13  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/uninstall_command.rb:  Add --user-install to</div><div class='add'>+	  allow uninstallation from ~/.gem.  Bug #23760 by Roger Pack.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Automatically uninstall from</div><div class='add'>+	  Gem.user_dir.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Rescue InstallError</div><div class='add'>+	  and continue.  Bug #19268 by Gabriel Wilkins.</div><div class='add'>+	* lib/rubygems/doc_manager.rb:  Remove some options from the args list</div><div class='add'>+	  that RDoc no longer supports.</div><div class='add'>+</div><div class='add'>+2008-03-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  #description no longer removes</div><div class='add'>+	  newlines.</div><div class='add'>+	* lib/rubygems/indexer.rb:  Wrap description in a pre and force-wrap</div><div class='add'>+	  lines to 78 characters for prettier display.</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb:  Clarify RubyGems RDoc</div><div class='add'>+	  installation location.  Bug #22656 by Gian Marco Gherardi.</div><div class='add'>+</div><div class='add'>+2008-03-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Add platforms to gem list</div><div class='add'>+	  -d.</div><div class='add'>+	* lib/rubygems/commands/setup_command.rb:  Allow setup to run from</div><div class='add'>+	  read-only location.  Patch #21862 by Luis Herrera.</div><div class='add'>+	* lib/rubygems/package/tar_input.rb:  Use real File methods.  Bug</div><div class='add'>+	  #23966 by Mike Furr.</div><div class='add'>+	* lib/rubygems.rb:  Don't add PATCHLEVEL if it's -1.  Patch #24048 by</div><div class='add'>+	  Jeremy Kemper.</div><div class='add'>+	* lib/rubygems/package/tar_input.rb:  Choose security policy</div><div class='add'>+	  correctly.  Bug #24001 by Mike Furr.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Handle local paths with spaces.</div><div class='add'>+	  Bug #24169 by Ryan Davis.</div><div class='add'>+	* lib/rubygems/specification.rb:  Removed Gem::Specification::list,</div><div class='add'>+	  causes leaks.  Bug #23668 by Steve Purcell.</div><div class='add'>+</div><div class='add'>+2008-03-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Use Gem::bin_path in executable stubs to</div><div class='add'>+	  work around Kernel#load bug.</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Copy user_install down to</div><div class='add'>+	  Gem::DependencyInstaller.  Patch #23573 by Alf Mikula.</div><div class='add'>+	* lib/rubygems/command.rb:  Add info on gem server directly to `gem</div><div class='add'>+	  help`.  Patch #22271 by Hugh Sasse.</div><div class='add'>+</div><div class='add'>+2008-03-06  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Don't allow FIXME in specs.</div><div class='add'>+	* lib/rubygems/commands/spec_command.rb:  Add --ruby and --marshal</div><div class='add'>+	  formats.</div><div class='add'>+	* lib/rubygems.rb:  Add Gem::bin_path.  Patch #24114 by James Tucker.</div><div class='add'>+</div><div class='add'>+2008-03-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb:  Moved guts to lib/rubygems/commands/setup_command.rb.</div><div class='add'>+	* lib/rubygems/indexer.rb:  Added RSS feed generation on full index</div><div class='add'>+	  update.</div><div class='add'>+</div><div class='add'>+2008-03-04  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/*: Prerelease gems go into their own index now and are excluded</div><div class='add'>+	from other indices. InstallCommand only gets prereleases if explicitly</div><div class='add'>+	requested. Thanks to Alex Vollmer.</div><div class='add'>+</div><div class='add'>+2008-03-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/*: Add lots of pretty pretty_print stuff!</div><div class='add'>+</div><div class='add'>+2008-02-25  Ryan Davis  &lt;ryand@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/check_command.rb:  Fix various usability</div><div class='add'>+	  issues.</div><div class='add'>+</div><div class='add'>+2009-02-10  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/specification: Refactored and fixed the installation_path</div><div class='add'>+	method. It was overwrought and it now no longer uses File::SEPARATOR</div><div class='add'>+	explicitly.</div><div class='add'>+	[RubyForge: bug #23879 by Daniel Berger]</div><div class='add'>+</div><div class='add'>+2009-02-10  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/validator.rb: The Gem::Validator#verify_gem_file method</div><div class='add'>+	now explicitly rescues Errno::EINVAL as well as Errno::ENOENT because</div><div class='add'>+	MS Windows raises a different SystemCallError for empty paths.</div><div class='add'>+	</div><div class='add'>+2009-01-21  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Split out nil and file handling in</div><div class='add'>+	the download method. Modified file URI handling to work properly.</div><div class='add'>+	[RubyForge: bug #16495 by Paul Sadauskas]</div><div class='add'>+	</div><div class='add'>+2009-01-19  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Added uri scheme validation back</div><div class='add'>+	into the open_uri_or_path method, though it now accepts 'https' and</div><div class='add'>+	'file' as well.</div><div class='add'>+	* test/test_gem_remote_fetcher.rb: Updated the test_fetch_size_bad_uri</div><div class='add'>+	to reflect the updated error message.</div><div class='add'>+</div><div class='add'>+2009-01-15  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Removed the open_file_uri_path method</div><div class='add'>+	since the URI#path method already does the same thing, and changed</div><div class='add'>+	the file_uri? method so that it explicitly calls .to_s.</div><div class='add'>+	* lib/rubygems/local_remote_options.rb: Allow file urls.</div><div class='add'>+</div><div class='add'>+2009-01-15  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/commands/generate_index_command.rb: Fixed a typo in</div><div class='add'>+	the description.</div><div class='add'>+	* test/test_gem_doc_manager.rb: The test_uninstall_doc_unwritable</div><div class='add'>+	test is now skipped on Windows.</div><div class='add'>+	* test/test_gem_install_update_options.rb: The</div><div class='add'>+	test_user_install_disabled_read_only test is now skipped on Windows.</div><div class='add'>+	* test/test_gem_installer.rb: The test_generate_bin_symlink_no_perms</div><div class='add'>+	and test_generate_bin_script_no_perms tests are now skipped on Windows.</div><div class='add'>+</div><div class='add'>+2009-01-14  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/specification.rb: Added support for a license attribute.</div><div class='add'>+	[RubyForge: feature #11041 (partial) by Kevin Williams]</div><div class='add'>+	* lib/rubygems/commands/query_command.rb: Gem detail information now</div><div class='add'>+	includes license information.</div><div class='add'>+	* test/test_gem_specification.rb: Added tests for the license attribute.</div><div class='add'>+</div><div class='add'>+2009-01-05  Chad Woolley &lt;thewoolleyman@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* move processing of build args out of gem binary so they are handled correctly via API usage.</div><div class='add'>+	* lib/rubygems/command.rb: Add class accessor for build_args.</div><div class='add'>+	* lib/rubygems/ext/rake_builder.rb: Use Gem::Command.build_args instead of ARGV.</div><div class='add'>+	* lib/rubygems/ext/ext_conf_builder.rb: Use Gem::Command.build_args instead of ARGV.</div><div class='add'>+	* lib/rubygems/gem_runner.rb: Move build arg processing from gem binary.</div><div class='add'>+	* lib/rubygems/commands/contents_command.rb: Use nonzero return code (required to make tests pass).</div><div class='add'>+	* bin/gem: Move build arg processing to gem_runner.rb.</div><div class='add'>+	[RubyForge: bug #23210]</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb:  Fix --config-file option with no</div><div class='add'>+	equals and subsequent options to properly assign config file.</div><div class='add'>+	Previously config file was overwritten by subsequent option.</div><div class='add'>+	Fixes bug #16688.</div><div class='add'>+</div><div class='add'>+2009-1-4  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: Remove existing path if it already</div><div class='add'>+	exists before installing.</div><div class='add'>+	[RubyForge: patch #22837 by Eric Wong]</div><div class='add'>+	* lib/rubygems.rb: Minor modification to the location_of_caller</div><div class='add'>+	method - deal with possible characters after line number</div><div class='add'>+</div><div class='add'>+2009-1-3  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems.rb: Better activation error message.</div><div class='add'>+	[RubyForge: patch #23082 by Tim Carey-Smith]</div><div class='add'>+</div><div class='add'>+2009-1-2  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+	* lib/rubygems/ext/rake_builder.rb: Quote path if it contains spaces</div><div class='add'>+	[RubyForge: patch #23003 by Charlie Savage]</div><div class='add'>+	* lib/rubygems/local_remote_options.rb: Ignore duplicate sources</div><div class='add'>+	[RubyForge: bug #22277 by Elliot Temple]</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Automatically normalize the URI</div><div class='add'>+	[RubyForge: bug #22151 by Alex Legler]</div><div class='add'>+	* lib/rubygems/specification.rb: Ensure that specification_version is</div><div class='add'>+	a Fixnum [RubyForge: bug #22598 by Tsutomu Kuroda]</div><div class='add'>+	* lib/rubygems/specification.rb: Bumped the CURRENT_SPECIFICATION_VERSION</div><div class='add'>+	and added an entry to the SPECIFICATION_VERSION_HISTORY</div><div class='add'>+</div><div class='add'>+2009-1-1  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem_dependency.rb: Removed a duplicate "def dep" that</div><div class='add'>+	was causing a warning.</div><div class='add'>+	* lib/rubygems/platform.rb: Added an empty? method in order to</div><div class='add'>+	better handle gem indexing when dealing with gems created</div><div class='add'>+	prior to 0.9.5. [Rubyforge: bug #22603 by Johnathan Conley]</div><div class='add'>+	* lib/rubygems.rb: Added an explicit 'require "etc"'.</div><div class='add'>+	[RubyForge: bug #22313 by Matthew Boedicker]</div><div class='add'>+</div><div class='add'>+2008-12-31  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options: Allow 'https' as a valid scheme</div><div class='add'>+	in addition to 'http' [RubyForge: patch #22485 by Duarte Henriques] </div><div class='add'>+	* setup.rb: Deal with extraneous quotation mark when autogenerating</div><div class='add'>+	.bat file on MS Windows [RubyForge: bug #22712 Takayuki Ishikawa]</div><div class='add'>+	* lib/rubygems/commands/unpack_command.rb: Fixed the --target option</div><div class='add'>+	[RubyForge: patch #22532 by Bryan Ash]</div><div class='add'>+</div><div class='add'>+2008-12-30  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/builder.rb: Don't allow .gem file to be added back</div><div class='add'>+	onto itself [RubyForge: bug #19136, patch #23346 by Daniel Berger]</div><div class='add'>+	* lib/rubygems/defaults.rb: The default_path now only returns the</div><div class='add'>+	default_dir if the Gem.user_home doesn't exist</div><div class='add'>+	[RubyForge: bug #23037 by Pierre PLR]</div><div class='add'>+	* lib/rubygems.rb: Handle the possibility that Etc.getpwuid might</div><div class='add'>+	return nil on platforms other than Windows</div><div class='add'>+	[RubyForge: bug #22764 by Dudley Flanders]</div><div class='add'>+</div><div class='add'>+2008-12-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb:  Set title for generated documentation.</div><div class='add'>+	* lib/rubygems/dependency.rb:  Make #=~ work with Gem::Specification.</div><div class='add'>+</div><div class='add'>+2008-12-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Fix documentation for</div><div class='add'>+	Gem::Installer#write_spec.  Issue by okkez.</div><div class='add'>+</div><div class='add'>+2008-12-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options.rb:  Merge documentation fix by</div><div class='add'>+	okkez [ruby-dev:37271].</div><div class='add'>+	* lib/rubygems/source_info_cache_entry.rb:  Merge documentation fix</div><div class='add'>+	from [ruby-dev:37255].</div><div class='add'>+</div><div class='add'>+2008-12-08  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Add Gem::promote_load_path</div><div class='add'>+</div><div class='add'>+2008-12-01  Ryan Davis  &lt;ryand-ruby@zenspider.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: made threadsafe.</div><div class='add'>+</div><div class='add'>+2008-11-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Don't do any post-install</div><div class='add'>+	stuff if no gems were installed.  Issue by Daniel Berger.</div><div class='add'>+</div><div class='add'>+2008-11-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb:  Read the file outside the exception</div><div class='add'>+	block so we raise a sane error.</div><div class='add'>+	* lib/rubygems/indexer.rb:  Allow the modern index to be updated</div><div class='add'>+	incrementally.  Allow the legacy and modern indicies to be updated</div><div class='add'>+	separately.</div><div class='add'>+</div><div class='add'>+2008-11-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb:  Added ability to only generate modern or</div><div class='add'>+	legacy indicies.</div><div class='add'>+</div><div class='add'>+2008-11-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/timer.rb:  Deprecate and move methods to Gem and</div><div class='add'>+	Gem::StreamUI.</div><div class='add'>+</div><div class='add'>+2008-11-11  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/, test/: Make Version understand prerelease</div><div class='add'>+	versions using letters. (eg. '1.2.1.b') Thanks to Josh Susser and</div><div class='add'>+	Alex Vollmer.</div><div class='add'>+</div><div class='add'>+2008-11-03  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Gem name must be a String.</div><div class='add'>+</div><div class='add'>+2008-10-31  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb:  Update to support 1.9 libdir.</div><div class='add'>+	* util/gem_prelude.rb:  Move to .template, automatically fold in</div><div class='add'>+	defaults.</div><div class='add'>+</div><div class='add'>+2008-10-29  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Handle nonexistent home directory.  Bug #22229 by</div><div class='add'>+	Alexey Verkhovsky.</div><div class='add'>+</div><div class='add'>+2008-10-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb, lib/rubygems/custom_require.rb:  Make kernel</div><div class='add'>+	methods private.  Patch #20801 by James M. Lawrence.  Expose</div><div class='add'>+	our kernel extensions to RDoc.  Make Gem::location_of_caller behave on</div><div class='add'>+	Windows.  Patch by Daniel Berger.</div><div class='add'>+	* doc/release_notes/rel_1_3_1.rdoc:  Final release notes for 1.3.1.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.3.1.</div><div class='add'>+</div><div class='add'>+2008-10-10  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/unpack_command.rb:  Silence PATH warning.</div><div class='add'>+</div><div class='add'>+2008-10-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Fix requires for inflate, deflate, etc.</div><div class='add'>+	* test/*:  Convert to minitest/unit.</div><div class='add'>+	* lib/rubygems/validator.rb:  Fix for MiniTest instead of test/unit</div><div class='add'>+	classic in 1.9.</div><div class='add'>+</div><div class='add'>+2008-10-03  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Make Gem.dir respect :gemhome value from config.</div><div class='add'>+	* lib/rubygems/config_file.rb: Expose :gemhome value.</div><div class='add'>+</div><div class='add'>+2008-09-26  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Disregard ownership of ~ under Windows while</div><div class='add'>+	creating ~/.gem.  Fixes issues related to no uid support under</div><div class='add'>+	Windows.</div><div class='add'>+</div><div class='add'>+2008-09-24  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* doc/release_notes/rel_1_3_0.rdoc:  Final release notes for 1.3.0.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.3.0.</div><div class='add'>+	* lib/rubygems/builder.rb:  Examine process status correctly.  Patch</div><div class='add'>+	  by Nobu.</div><div class='add'>+	* test/test_gem_ext_rake_builder.rb:  Override Gem.ruby and</div><div class='add'>+	  ENV['rake'] for 1.9 integration.  Patch by Nobu.</div><div class='add'>+</div><div class='add'>+2008-09-16  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Use the path set in the config file if</div><div class='add'>+	applicable.</div><div class='add'>+	* lib/rubygems/config_file.rb: Expose the path.</div><div class='add'>+</div><div class='add'>+2008-09-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Only create ~/.gem by user owning ~.  Bug #21561</div><div class='add'>+	by Neil Wilson.</div><div class='add'>+</div><div class='add'>+2008-09-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb:  Autoload SpecFetcher to improve load</div><div class='add'>+	time.  Patch #21577 by Simon Chiang.</div><div class='add'>+	* lib/rubygems/commands/lock_command.rb:  Modernize.  Fix --strict.</div><div class='add'>+	Patch #21814 by Sven Engelhardt.</div><div class='add'>+	* lib/rubygems/platform.rb:  Fix for solaris platform.  Patch #21911</div><div class='add'>+	by Bob Remeika.</div><div class='add'>+</div><div class='add'>+2008-09-10  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Describe _version_ in `gem</div><div class='add'>+	help install`.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb:  Describe environment</div><div class='add'>+	variables and gemrc in `gem help env`.</div><div class='add'>+	* lib/rubygems.rb:  Warn when executing Gem::manage_gems.</div><div class='add'>+	* lib/rubygems/doc_manager.rb:  Have RubyGems update the ri cache.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Ensure specs are read as UTF-8.</div><div class='add'>+	* lib/rubygems/specification.rb:  Add magic comment to .gemspec files</div><div class='add'>+	so they are read in as UTF-8.</div><div class='add'>+</div><div class='add'>+2008-08-22  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Corrected usage of HOMEDRIVE and HOMEPATH on Windows.</div><div class='add'>+	Escape Gem.ruby if spaces in the path are present. Solves bug related to</div><div class='add'>+	extensions compile process.</div><div class='add'>+	* test/test_gem.rb: Added test to verify both conditions.</div><div class='add'>+</div><div class='add'>+2008-08-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* doc/release_notes/rel_1_3_0.rdoc:  Initial release notes for 1.3.0.</div><div class='add'>+	* util/CL2notes:  Release note creation helper script.</div><div class='add'>+</div><div class='add'>+2008-08-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options.rb:  Added #both? to complement</div><div class='add'>+	  #local? and #remote?.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Print out LOCAL/REMOTE with</div><div class='add'>+	--both, even without a TTY.</div><div class='add'>+	* lib/rubygems.rb:  Add Gem.find_files, allows a gem to discover</div><div class='add'>+	features provided by other gems.</div><div class='add'>+</div><div class='add'>+2008-08-14  Wilson Bilkovich  &lt;wilson@supremetyrant.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb: Deprecate options to 'search' other than</div><div class='add'>+	Gem::Dependency instances and issue warning until November 2008.</div><div class='add'>+	* lib/rubygems/platform.rb:	Remove deprecated constant warnings</div><div class='add'>+	and really deprecate them.</div><div class='add'>+	* Rakefile: If the SETUP_OPTIONS environment variable is set, pass its</div><div class='add'>+	contents as arguments to setup.rb</div><div class='add'>+	* test/test_gem_commands_uninstall_command.rb: Added</div><div class='add'>+</div><div class='add'>+2008-08-13  Wilson Bilkovich  &lt;wilson@supremetyrant.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/uninstaller.rb:	Fix binary script uninstallation.</div><div class='add'>+	Bug #21234 by Neil Wilson.</div><div class='add'>+	* test/test_gem_commands_uninstall_command.rb: Added</div><div class='add'>+</div><div class='add'>+2008-08-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Try to create directory before diverting</div><div class='add'>+	to ~/.gems.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Fix uninstallation with -i.  Bug</div><div class='add'>+	#20812 by John Clayton.  Have #remove_all call #uninstall_gem so hooks</div><div class='add'>+	get called.  Bug #21242 by Neil Wilson.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Fix updating RubyGems when</div><div class='add'>+	no previous rubygems-update is installed.  Bug #20775 by Hemant Kumar.</div><div class='add'>+</div><div class='add'>+2008-08-11  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Fix HTTPS support.  Patch #21072 by</div><div class='add'>+	Alex Arnell.  Fix Not Modified handling.  Bug #21310 by Gordon</div><div class='add'>+	Thiesfeld.</div><div class='add'>+</div><div class='add'>+2008-07-11  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb: Properly build --destdir folder structure using Pathname.</div><div class='add'>+	* test/mockgemui.rb: Fix warnings about instance variables in a module.</div><div class='add'>+</div><div class='add'>+2008-07-02  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb: Add Gem.user_dir to use paths like</div><div class='add'>+	~/.gem/ruby/1.8/gems and the like instead of just ~/.gem. Update</div><div class='add'>+	remote fetcher and installer to use it.</div><div class='add'>+</div><div class='add'>+2008-07-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Add #gem_home, #bin_dir for hooks.  Use</div><div class='add'>+	DependencyInstaller's source_index so reinstallation via -i does not</div><div class='add'>+	fail.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Add #gem_home, #bin_dir for hooks.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Don't print LOCAL/REMOTE</div><div class='add'>+	gems if stdout is not a TTY.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Use the regexp we already</div><div class='add'>+	have for `gem list --installed`.  Bug #20876 by Nick Hoffman.</div><div class='add'>+	* lib/rubygems/commands/which_command.rb:  Clarify what `gem which` is</div><div class='add'>+	for.</div><div class='add'>+</div><div class='add'>+2008-06-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_ext_configure_builder.rb:  Locale-free patch by Yusuke</div><div class='add'>+	Endoh [ruby-core:17444].</div><div class='add'>+	* lib/rubygems.rb:  Add pre/post (un)install hooks.</div><div class='add'>+	* lib/rubygems/installer.rb:  Call pre/post install hooks as</div><div class='add'>+	appropriate.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Call pre/post uninstall hooks as</div><div class='add'>+	appropriate.  Minor refactoring of #uninstall.</div><div class='add'>+	* lib/rubygems/package/tar_reader.rb:  Some OSs raise EINVAL on seek.</div><div class='add'>+	Based on patch in bug #20791 by Neil Wilson.</div><div class='add'>+	* lib/rubygems/specification.rb:  Correctly check for support of</div><div class='add'>+	development dependencies for #to_ruby.  Bug #20778 by Evan Weaver.</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Correctly load all cache file even if</div><div class='add'>+	latest has been loaded.  Bug #20776 by Uwe Kubosch.</div><div class='add'>+</div><div class='add'>+2008-06-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb:  Add Gem::ConfigFile constants for</div><div class='add'>+	packagers and implementors to override defaults.</div><div class='add'>+	* test/*:  Fixes to run tests when under test/rubygems/.  Patch by</div><div class='add'>+	Yusuke ENDOH [ruby-core:17353].</div><div class='add'>+</div><div class='add'>+2008-06-24  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Cleanup to support</div><div class='add'>+	if-modified-since requests.  pair: Ryan Davis</div><div class='add'>+	* lib/rubygems/indexer:  Force platform to Gem::Platform::RUBY when</div><div class='add'>+	nil or blank.  Fixes various uninstallable gems.</div><div class='add'>+</div><div class='add'>+2008-06-24  Phil Hagelberg &lt;technomancy@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Fall back on ~/.gem if GEM_HOME is</div><div class='add'>+	not writable.</div><div class='add'>+	* lib/rubygems/install_update_options.rb: Allow --user-install or</div><div class='add'>+	--no-user-install command-line switch to explicitly force whether</div><div class='add'>+	or not ~/.gem should be used.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Use ~/.gem/cache if cache dir is</div><div class='add'>+	not writable.</div><div class='add'>+	* test/gemutilities.rb: Use MockGemUi for all tests.</div><div class='add'>+</div><div class='add'>+2008-06-21  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Load specifications from the future.</div><div class='add'>+	Roll back specification version change.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Reset connection when an HTTP</div><div class='add'>+	server misbehaves.</div><div class='add'>+	* setup.rb:  Fix --destdir for windows.</div><div class='add'>+	* doc/release_notes/rel_1_2_0.rdoc:  Bugs in RubyGems were</div><div class='add'>+	unintentionally added, order bug fixes by importance.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.2.0.</div><div class='add'>+</div><div class='add'>+2008-06-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Improve output when a gem to uninstall</div><div class='add'>+	isn't found.  Bug #20746 reported by Chad Wooley.</div><div class='add'>+	* setup.rb:  Fix rdoc installation with --destdir.  Patch #20739 by</div><div class='add'>+	Matthew Kent.</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Don't reset GEM_PATH when</div><div class='add'>+	installing.  Fixes Bug #20746 by Chad Wooley.</div><div class='add'>+</div><div class='add'>+2008-06-20  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb: Only prepend install_destdir when especified. Fixes</div><div class='add'>+	installation issues related to Windows paths (/C:/...)</div><div class='add'>+</div><div class='add'>+2008-06-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Ensure that the entire</div><div class='add'>+	dependency chain is installed.  Fixes bug reported by Chad Woolley.</div><div class='add'>+</div><div class='add'>+2008-06-18  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb:  Restore matching</div><div class='add'>+	everything when no name is specified, regexp matching.  Fixes bug</div><div class='add'>+	#20716, bug #20717 by Chad Woolley.</div><div class='add'>+</div><div class='add'>+2008-06-18  Chad Woolley  &lt;thewoolleyman@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb:  Fix --config-file option with no</div><div class='add'>+	equals and subsequent options to properly assign config file.</div><div class='add'>+	Previously config file was overwritten by subsequent option.</div><div class='add'>+	Fixes bug #16688.</div><div class='add'>+</div><div class='add'>+2008-06-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb:  Gem::Version #hash and #eql? now operate</div><div class='add'>+	on the version string, terms of the version string, so "1" and "1.0"</div><div class='add'>+	no longer correspond to the same slot.  Fixes indexer bug reported by</div><div class='add'>+	Chad Woolley.</div><div class='add'>+	* setup.rb:  Fix --format-executable.  Patch #20698 by Richard Brown.</div><div class='add'>+	* util/gem_prelude.rb:  Prevent infinite recursion, check for Gem now.</div><div class='add'>+	Patch from ruby trunk by nobu.</div><div class='add'>+	* lib/*:  Spelling cleanup.  Patch from trunk by Evan Farrar.</div><div class='add'>+	* test/*:  Fixes for win32 test failures reported by Luis Lavena.</div><div class='add'>+	* util/gem_prelude.rb:  Only remove methods added by gem_prelude.rb.</div><div class='add'>+</div><div class='add'>+2008-06-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb:  Fix quick_index generation.</div><div class='add'>+	* lib/rubygems/specification.rb:  Correctly guard new spec features</div><div class='add'>+	for older RubyGems.</div><div class='add'>+	* lib/rubygems/config_file.rb:  Add system-wide config file</div><div class='add'>+	(/etc/gemrc).  Patch #14723 by Phil Hagelberg.  Add windows code to</div><div class='add'>+	use appropriate directory.  Code by Daniel Berger.</div><div class='add'>+	* doc/release_notes/rel_1_2_0.rdoc:  Draft of 1.2.0 release notes.</div><div class='add'>+</div><div class='add'>+2008-06-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/server.rb:  Store off if we are returning Marshal</div><div class='add'>+	format before running =~ again.  Fixes bug reported by Chad Woolley.</div><div class='add'>+	* lib/rubygems/commands/stale_command.rb:  `gem stale` lists gems by</div><div class='add'>+	last access time.  Patch #20593 by Aaron Patterson.</div><div class='add'>+	* lib/rubygems/setup.rb:  Add --vendor and --destdir to setup.rb for</div><div class='add'>+	packagers.  Patch #20610 by Richard Brown.  Don't look for stub</div><div class='add'>+	files to remove any more.</div><div class='add'>+	* lib/rubygems/specification.rb:  Bump specification version and be</div><div class='add'>+	backwards compatible with type 2 specs.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Add installed location to</div><div class='add'>+	details for installed gems.</div><div class='add'>+</div><div class='add'>+2008-06-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Only install all dependencies</div><div class='add'>+	when install_dir option is set.  Don't include satisfied dependencies</div><div class='add'>+	when gathering dependencies.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Display authors, rubyforge</div><div class='add'>+	and homepage urls with details.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb:  Add executable</div><div class='add'>+	directory (from Rubinius).</div><div class='add'>+	* lib/rubygems/commands/install_command.rb:  Don't set install_dir by</div><div class='add'>+	default.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Don't set install_dir by</div><div class='add'>+	default.  Use #find_missing for efficiency.</div><div class='add'>+</div><div class='add'>+2008-06-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/server.rb:  Fully mirror Gem::Indexer indexes, set</div><div class='add'>+	correct content-type headers, always refresh the source index.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Add spec_dirs so that #refresh! will</div><div class='add'>+	always reload from the same locations.  #refresh! on manually-built</div><div class='add'>+	SourceIndex now raises.  Fixes #20509 by Chad Woolley.</div><div class='add'>+</div><div class='add'>+2008-06-06  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Remove previous bin_script_path in case</div><div class='add'>+	it is a symlink.</div><div class='add'>+	* lib/rubygems/commands/pristine_command.rb:  Force reinstallation of</div><div class='add'>+	the gem using the installer.  Fixes bug #20387 by Erik Persson.</div><div class='add'>+	* lib/rubygems/doc_manager.rb:  Ensure args to RDoc are all strings.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Use find_matching to discover updated</div><div class='add'>+	specs instead of fetch.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Platform, not name in spec</div><div class='add'>+	tuples.</div><div class='add'>+</div><div class='add'>+2008-06-05  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options.rb:  Ensure remote repository URLs</div><div class='add'>+	reference directories.  Fixes bug #20134 by Neil Wilson.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Gracefully handle ^C or explicit exit</div><div class='add'>+	while loading .gemspec files from disk.  Fixes bug #20523 by Joel</div><div class='add'>+	VanderWerf.</div><div class='add'>+	* lib/rubygems/specification.rb:  Use File#expand_path in</div><div class='add'>+	installation_path.  Fixes bug #19317 by Hemant Kumar.</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Fix legacy test against URI.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Always raise FetchError from</div><div class='add'>+	RemoteFetcher.  Fix FetchErrors without URIs.  Refactor Net::HTTP</div><div class='add'>+	request code to use persistent connections for HEAD requests.  Feature</div><div class='add'>+	Request #7973 by Christian Schachtzabel.</div><div class='add'>+	* lib/rubygems.rb:  Don't load custom_require until after the OS and</div><div class='add'>+	implementation have had a chance to set paths.</div><div class='add'>+</div><div class='add'>+2008-06-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/source_index.rb:  Only fetch specs we need in</div><div class='add'>+	#outdated.</div><div class='add'>+	* lib/rubygems.rb:  Fix typo in ::activate exception.</div><div class='add'>+	* lib/rubygems/dependency.rb:  For #to_s, display dependency type when</div><div class='add'>+	nil.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Reset #installed_gems for</div><div class='add'>+	every #install.  Fixes bug #19444 by Glenn Rempe.</div><div class='add'>+	* lib/rubygems/installer.rb:  Don't re-read the disk to check for new</div><div class='add'>+	gems, add them by hand on install.</div><div class='add'>+</div><div class='add'>+2008-06-03  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Add ::gzip, ::gunzip, ::deflate and ::inflate.</div><div class='add'>+	* lib/rubygems/server.rb:  Add specs and latest_specs indicies.</div><div class='add'>+	* setup.rb:  Don't require rdoc until needed.  Patch #20414 by Brian</div><div class='add'>+	Candler.</div><div class='add'>+	* lib/uninstaller.rb:  Correctly uninstall gems installed with a</div><div class='add'>+	legacy platform.  Patch #19877 by Luis Lavena.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Only fetch remote specs</div><div class='add'>+	when we know what we're looking for.</div><div class='add'>+</div><div class='add'>+2008-06-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:  Remove double slash in</div><div class='add'>+	#installation_path.  Fixes bug #19896 by Heiko Seebach.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Require StringIO.  Fixes bug #19866</div><div class='add'>+	by Caleb Land.</div><div class='add'>+	* lib/rubygems.rb:  Require rubygems/defaults/#{RBX_ENGINE}.rb and</div><div class='add'>+	rubygem/defaults/operating_system.rb if they exist.  (OS require comes</div><div class='add'>+	first and may be overridden by operating system.)</div><div class='add'>+</div><div class='add'>+2008-06-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb:  Ensure identical names, versions and</div><div class='add'>+	platforms are identical for a smaller index.</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Only write to cache when we own it.</div><div class='add'>+	* lib/rubygems.rb:  Honor default_path if GEM_PATH environment</div><div class='add'>+	variable is not set.  Patch #19502 by Donavan Pantke.</div><div class='add'>+	* lib/rubygems/installer.rb:  Set file mode indicated by tar file.</div><div class='add'>+	Patch #19737 by Jason Roelofs.</div><div class='add'>+</div><div class='add'>+2008-06-01  John Barnette &lt;jbarnette@rubyforge.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Add Gem.available?(gem, *specs) for easy availability</div><div class='add'>+	checks at runtime.</div><div class='add'>+</div><div class='add'>+2008-05-31  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb:  Delay fetching specs</div><div class='add'>+	until needed.  Reverse dependencies can no longer be calculated for</div><div class='add'>+	remote sources.  Add backwards compatibility.</div><div class='add'>+	* lib/rubygems/commands/fetch_command.rb:  Add backwards</div><div class='add'>+	compatibility.</div><div class='add'>+</div><div class='add'>+2008-05-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/local_remote_options.rb:  --sources option should not</div><div class='add'>+	add URIs to Gem.sources.</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Add #warn_legacy to help handling</div><div class='add'>+	legacy sources.</div><div class='add'>+	* luby/rubygems/commands/query_command.rb:  Add backwards</div><div class='add'>+	compatibility with legacy sources.</div><div class='add'>+</div><div class='add'>+2008-05-28  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Add #uri to</div><div class='add'>+	Gem::RemoteFetcher::FetchError.</div><div class='add'>+	* lib/rubygems/user_interaction.rb:  Improve RDoc slightly.</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Introduce backwards compatibility for</div><div class='add'>+	legacy (pre 1.2) repositories</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb:  Backwards compatibility</div><div class='add'>+	and restoration of --update.</div><div class='add'>+	* lib/rubygems/specification.rb:  Ensure nil-typed dependencies become</div><div class='add'>+	runtime dependencies.</div><div class='add'>+</div><div class='add'>+2008-05-27  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Switch #fetch, #find_matching to be</div><div class='add'>+	compatible with Gem::SourceInfoCache#search_with_source.  Add caching</div><div class='add'>+	for .gemspec files.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Switch to SpecFetcher.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Switch #outdated to use SpecFetcher.</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb:  Switch to SpecFetcher.</div><div class='add'>+	* lib/rubygems/commands/outdated_command.rb:  Switch to SpecFetcher.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Switch to SpecFetcher.</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb:  Switch to SpecFetcher.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Switch to SpecFetcher.</div><div class='add'>+	* lib/rubygems/version.rb:  Handle comparisons with non-Gem::Version</div><div class='add'>+	objects.</div><div class='add'>+</div><div class='add'>+2008-05-13  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  Add caching of specs, latest_specs</div><div class='add'>+	files.</div><div class='add'>+	* test/gemutilities.rb:  Ensure Gem.user_home doesn't point to ~.</div><div class='add'>+</div><div class='add'>+2008-05-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb:  Add Marshal format index of spec names,</div><div class='add'>+	versions and platforms.  WIP.</div><div class='add'>+	* lib/rubygems/spec_fetcher.rb:  WIP for replacement of</div><div class='add'>+	Gem::SourceInfoCache and SourceInfoCacheEntry.</div><div class='add'>+	* lib/rubygems/dependency.rb:  Add #=~.</div><div class='add'>+</div><div class='add'>+2008-05-07 John Barnette &lt;jbarnette@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb, et. al: Let gems have development</div><div class='add'>+	dependencies, which aren't installed (except when --development is</div><div class='add'>+	supplied) or activated.</div><div class='add'>+</div><div class='add'>+2008-05-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb:  Refactored into simpler more imperative</div><div class='add'>+	code.</div><div class='add'>+	* lib/rubygems.rb:  Leave rbconfig/datadir.rb for non-RubyGems use.</div><div class='add'>+</div><div class='add'>+2008-04-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/server.rb:  Refresh the source index per request so new</div><div class='add'>+	gems will be found after server startup.</div><div class='add'>+</div><div class='add'>+2008-04-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb:  Only print out "Bulk updating" when</div><div class='add'>+	verbose, fix #latest_specs documentation.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Add :cache_dir option for</div><div class='add'>+	Tinderbox.</div><div class='add'>+</div><div class='add'>+2008-04-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/test_utilities.rb:  Expose some internal testing</div><div class='add'>+	utilities that are of general use.</div><div class='add'>+</div><div class='add'>+2008-04-10  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Fix Gem.prefix so it reports nil when rubygems.rb</div><div class='add'>+	is in sitelibdir, libdir, or doesn't have 'lib' as a parent directory.</div><div class='add'>+	* doc/release_notes/rel_1_1_1.rdoc:  RubyGems 1.1.1 release notes.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.1.1.</div><div class='add'>+</div><div class='add'>+2008-04-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/server.rb:  Fix fragment URIs.  Patch by James Tucker.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Pass</div><div class='add'>+	--no-format-executable to setup.rb.  Patch by Stephen Bannasch.</div><div class='add'>+</div><div class='add'>+2008-04-06  Chad Woolley  &lt;thewoolleyman@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Add setter Gems.platforms=, to allow platforms</div><div class='add'>+	to be set/reset when invoking or testing RubyGems programatically.</div><div class='add'>+	Also force Gems.platforms to automatically reset to default of</div><div class='add'>+	[Gem::Platform::RUBY, Gem::Platform.local] if cleared.</div><div class='add'>+	* lib/rubygems/version_option.rb:  Change add_platform_option</div><div class='add'>+	to initialize Gem.platforms to contain only Gem::Platform::RUBY</div><div class='add'>+</div><div class='add'>+2008-04-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb:  Make Gem::SourceIndex#refresh!</div><div class='add'>+	more-correct.  Reported by Paul Haddad.</div><div class='add'>+	* lib/rubygems.rb:  Add Gem::refresh.  Bug #19176 by Hongli Lai.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Put downloaded gems into</div><div class='add'>+	install_dir's cache.  Patch #19182 by Richard Brown.</div><div class='add'>+</div><div class='add'>+2008-04-03  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb:  Merge full cache file into</div><div class='add'>+	latest data.  Don't write cache files when checking for them.  Only</div><div class='add'>+	update full cache file when we've read it.  Refresh all data when</div><div class='add'>+	loading all data.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Fix --force to work without</div><div class='add'>+	network for dependent gems.  Fix all-fetching test.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Obey --all flag for gem</div><div class='add'>+	query.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb:  Don't display</div><div class='add'>+	RubyGemsPackageVersion.</div><div class='add'>+	* lib/rubygems/indexer.rb:  Fix typo.  Patch by Tom Copeland.</div><div class='add'>+	* lib/rubygems/command_manager.rb:  Display RubyGemsVersion with</div><div class='add'>+	--version.</div><div class='add'>+	* lib/rubygems/commands/pristine_command.rb:  Rebuild extensions along</div><div class='add'>+	with everything else.  Patch #19281 by Dr. Nic Williams.</div><div class='add'>+</div><div class='add'>+2008-04-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Fix prefix to point to directory above RubyGems,</div><div class='add'>+	so RubyGems will be installed into lib/.</div><div class='add'>+	* setup.rb:  Work around apple's libdir-installed RubyGems, by</div><div class='add'>+	installing into sitelibdir.</div><div class='add'>+	* Rakefile:  Add svnversion to RubyGems version number for `rake</div><div class='add'>+	install`.</div><div class='add'>+</div><div class='add'>+2008-03-31  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/: Allow tests to use a random (but controlled) port number</div><div class='add'>+	instead of a hardcoded one. This helps CI tools when running</div><div class='add'>+	parallels builds.</div><div class='add'>+</div><div class='add'>+2008-03-30  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem.rb: Leave APPLE_GEM_HOME tests only to *nixes.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Errno::ECONNABORTED raised on Windows</div><div class='add'>+	on closed Keep-Alive connections.</div><div class='add'>+</div><div class='add'>+2008-03-29  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* gemspecs/:  Removed.</div><div class='add'>+	* examples/:  Removed.</div><div class='add'>+	* doc/design/:  Removed.</div><div class='add'>+	* doc/rdoc_templates/:  Removed.</div><div class='add'>+	* Rakefile:  Package doc/release_notes/.</div><div class='add'>+	* setup.rb:  Use full path to release_notes, ensure RDoc can be</div><div class='add'>+	both removed and installed.</div><div class='add'>+</div><div class='add'>+2008-03-28  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* bin/gem, Rakefile:  RubyGems now requires Ruby &gt; 1.8.3.</div><div class='add'>+	* lib/rubygems.rb:  Added Gem.ruby_version, Gem.read_binary,</div><div class='add'>+	Gem.binary_mode.</div><div class='add'>+	* lib/, test/:  Read files in binary mode for windows and ruby 1.9.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Only update once.</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb:  Ditto.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Fix #remove_extra, #find_missing so</div><div class='add'>+	legacy platform gems don't get updated repeatedly.</div><div class='add'>+	* doc/release_notes/rel_1_1_0.rdoc:  RubyGems 1.1.0 release notes.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.1.0.</div><div class='add'>+</div><div class='add'>+2008-03-28  Ryan Woodrum  &lt;rwoodrum@avvo.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/query_command.rb: Add --installed</div><div class='add'>+	subcommand to check if a gem and/or version is installed.</div><div class='add'>+	* test/test_gem_commands_query_command.rb: Add relevant tests.</div><div class='add'>+	* test/gemutilities.rb: Override exit() for query tests.</div><div class='add'>+	* test/mockgemui.rb: Add =() to manipulate output values (clear).</div><div class='add'>+</div><div class='add'>+2008-03-28  Chad Woolley  &lt;thewoolleyman@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Add reset_cache_file.</div><div class='add'>+</div><div class='add'>+2008-03-27  Chad Woolley  &lt;thewoolleyman@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb: Raise Gem::SystemExitException</div><div class='add'>+	instead of exiting, kill unused terminate_interaction!.</div><div class='add'>+	* lib/rubygems/exceptions.rb: Add Gem::SystemExitException.</div><div class='add'>+	* lib/rubygems/commands/install_command.rb: Raise</div><div class='add'>+	Gem::SystemExitException instead of exiting.</div><div class='add'>+	* bin/gem: Rescue Gem::SystemExitException and exit with</div><div class='add'>+	specified exit_code.</div><div class='add'>+	* test/test_gem_commands_install_command.rb: Assert on</div><div class='add'>+	Gem::SystemExitException and exit_code in tests.</div><div class='add'>+</div><div class='add'>+2008-03-27  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb:  Allow sources to be</div><div class='add'>+	removed without network.  Fixes bug #18644 by Mikel Lindsaar.</div><div class='add'>+</div><div class='add'>+2008-03-27  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb: Use platform specific</div><div class='add'>+	PATH_SEPARATOR instead of hardcoded ':'</div><div class='add'>+	* test/test_gem_commands_unpack_command.rb: Ditto.</div><div class='add'>+	* test/test_gem_commands_environment_command.rb: Ditto.</div><div class='add'>+	* test/gemutilities.rb: Fix binary file reads being truncated on</div><div class='add'>+	Windows.</div><div class='add'>+	* test/test_gem_commands_install_command.rb: Switch to read_binary.</div><div class='add'>+	* test/test_gem_commands_update_command.rb: Ditto.</div><div class='add'>+	* test/test_gem_commands_server_command.rb: Consider full path when</div><div class='add'>+	evaluating location (instead of hardcoded or missing drive leter).</div><div class='add'>+	* test/test_gem_installer.rb: Ditto.</div><div class='add'>+	* test/test_gem_dependency_installer.rb: exclude no-wrapper tests for</div><div class='add'>+	Windows.</div><div class='add'>+</div><div class='add'>+2008-03-26  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Handle backslashes that came from GEM_HOME and</div><div class='add'>+	GEM_PATH on Windows.</div><div class='add'>+</div><div class='add'>+2008-03-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb:  Add updating from latest index,</div><div class='add'>+	default to updating from latest index.  Reduces common-case update</div><div class='add'>+	to under 3,000 gems at present.</div><div class='add'>+	* lib/rubygems/remote_fetcher:  Fix error reporting from net/http.</div><div class='add'>+	* lib/rubygems.rb:  Sort methods, remove last vestiges of autorequire,</div><div class='add'>+	RDoc cleanup.</div><div class='add'>+</div><div class='add'>+2008-03-23  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb: generated Windows stubs will honors prefix using Gem.ruby</div><div class='add'>+	instead of hardcoded 'ruby.exe'</div><div class='add'>+	* lib/rubygems/installer.rb: generated Windows stubs scripts will now</div><div class='add'>+	work from differnt directories than Gem::bindir. Fixes bug #16259 by</div><div class='add'>+	Claus Folke Brobak</div><div class='add'>+</div><div class='add'>+2008-03-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem_source_info_cache.rb:  Test with real objects now.</div><div class='add'>+	* lib/rubygems/source_index.rb:  #latest_specs now has latest specs</div><div class='add'>+	for all platforms.</div><div class='add'>+	* lib/rubygems/source_info_cache.rb:  Add latest cache data, only load</div><div class='add'>+	full cache data when needed.</div><div class='add'>+</div><div class='add'>+2008-03-20  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/gemutilities.rb:  Change all the file processing mechanism to</div><div class='add'>+	enable binary mode by default (required for Windows file operations</div><div class='add'>+	dealing with non-printable characters).</div><div class='add'>+</div><div class='add'>+2008-03-19  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package/tar_output.rb: Adapted code to use #wrap instead</div><div class='add'>+	of #new when dealing with Zlib::GzipWriter (fixes SEGV and warnings due</div><div class='add'>+	GzipWriter object not being closed explicitly).</div><div class='add'>+</div><div class='add'>+2008-03-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb:  Add latest_index.</div><div class='add'>+</div><div class='add'>+2008-03-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/defaults.rb:  Add special case for RUBY_ENGINE constant</div><div class='add'>+	when setting default gem dir.</div><div class='add'>+	* Rakefile:  Add update_rubinius and diff_rubinius.</div><div class='add'>+</div><div class='add'>+2008-03-08  Lincoln Stoll  &lt;lstoll@lstoll.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/server.rb:  Drop use of RDoc's TemplatePage in favor of</div><div class='add'>+	ERB.</div><div class='add'>+</div><div class='add'>+2008-03-04  Ryan Davis  &lt;ryan@wrath.local&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Moved #download from</div><div class='add'>+	DependencyInstaller.</div><div class='add'>+	* lib/rubygems/commands/fetch_command.rb: Updated to use #download.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: install now takes name or dep.</div><div class='add'>+	Renamed gather_specs_to_download to find_spec_by_name_and_version.</div><div class='add'>+	Modifed #initialize to not take gem name or version.</div><div class='add'>+</div><div class='add'>+2008-03-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package*:  Removed #open_from_io and friends, switched</div><div class='add'>+	to #open, no special handling for file names.</div><div class='add'>+	* lib/rubygems/package/tar_output.rb:  Refactored ::open to use</div><div class='add'>+	instance methods.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Print out number of requests made</div><div class='add'>+	before connection reset.</div><div class='add'>+</div><div class='add'>+2008-02-29  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package/tar_reader/entry.rb:  Removed is_directory and</div><div class='add'>+	is_file? in favor of file? and directory?.</div><div class='add'>+</div><div class='add'>+2008-02-28  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb:  Broke up Tar bits into separate files.</div><div class='add'>+	* lib/rubygems/package/tar_reader/entry.rb:  Don't copy TarHeader data</div><div class='add'>+	into Entry, go through #header instead.  Better tests for</div><div class='add'>+	TarReader::Entry.</div><div class='add'>+</div><div class='add'>+2008-02-27  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Automatically fall back to</div><div class='add'>+	local-only install on network error.  Fixes bug #15759 by Chauk-Mean P.</div><div class='add'>+	* lib/rubygems/source_index.rb:  Process spec dirs so that earlier</div><div class='add'>+	dirs override later dirs.  Fixes bug #14816 by Kurt Stephens.</div><div class='add'>+</div><div class='add'>+2008-02-26  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/update_command.rb:  Only update gems that need</div><div class='add'>+	updates.  Fixes bug #14780 by Mathieu Lajugie.  Don't force</div><div class='add'>+	remote-only updates.  Properly handle dependencies when updating.</div><div class='add'>+	Fixes bug #17488 by Hongli Lai.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb:  Display path as a</div><div class='add'>+	usable path.</div><div class='add'>+	* lib/rubygems.rb:  Don't add APPLE_GEM_HOME with ENV['GEM_HOME'].</div><div class='add'>+</div><div class='add'>+2008-02-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb:  Expand sitelibdir when checking prefix.  Fixes bug</div><div class='add'>+	#17983 by Hemant Kumar.</div><div class='add'>+	* setup.rb:  Print release notes on installation.  Tell people where</div><div class='add'>+	`gem` was installed.</div><div class='add'>+	* bin/update_rubygems:  Added --help output to explain how to install</div><div class='add'>+	earlier versions of RubyGems.  Added --version option workaround.</div><div class='add'>+	Fixes bug #16842 by Chad Woolley.</div><div class='add'>+	* lib/rubygems/install_command.rb:  Give proper exit code on failure.</div><div class='add'>+	Fixes bug #17438 by Josh Nichols.</div><div class='add'>+</div><div class='add'>+2008-02-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Change hosts correctly when</div><div class='add'>+	redirecting.  Handle EOFError from Net::HTTP.</div><div class='add'>+	* lib/rubygems/commands/specification_command.rb:  Pull specifications</div><div class='add'>+	from gem files.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  When :executable is set, don't ask the</div><div class='add'>+	user.  Fixes bug #16812 by Matt Mower.  Raise exception instead of</div><div class='add'>+	printing message when gem is not in GEM_HOME.</div><div class='add'>+	* lib/rubygems/uninstall_command.rb:  Print message when gem is not in</div><div class='add'>+	GEM_HOME.</div><div class='add'>+	* lib/rubygems/commands/cleanup_command.rb:  Clean up all old gems.</div><div class='add'>+	* lib/rubygems/commands/unpack_command.rb:  Scan every gem path when</div><div class='add'>+	unpacking.  Fixes bug #17602 by Ryan Davis.</div><div class='add'>+</div><div class='add'>+2008-02-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/install_update_options.rb: Add --bindir option to</div><div class='add'>+	specify destination to install executables into.  Patch #17937 by</div><div class='add'>+	Donavan Pantke.</div><div class='add'>+	* lib/rubygems/specification.rb: Fix Time.today == Time.today.  Bug</div><div class='add'>+	#17413 by Andrei Bocan.</div><div class='add'>+	* setup.rb: Properly check for deletablitily of user and system</div><div class='add'>+	caches.  Bug #17869 by Alexey Verkhovsky.  Fix --no-format-executable.</div><div class='add'>+	Fixes bug #16879 by Charles Nutter.</div><div class='add'>+</div><div class='add'>+2008-02-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Add persistent connection support.</div><div class='add'>+	Patch #18180 by Aaron Patterson.</div><div class='add'>+	* lib/rubygems/installer.rb: Fix #shebang to use the ruby install</div><div class='add'>+	name.  Patch #16878 by Donavan Pantke.</div><div class='add'>+	* lib/rubygems/defaults.rb, lib/rubygems.rb: Enable defaults for</div><div class='add'>+	Gem.path and Gem.bindir.  Patch #17886 by Donavan Pantke.</div><div class='add'>+	* test/test_gem_ext_configure_builder.rb: Make test_self_build_fail</div><div class='add'>+	more platform independent.  Patch #17599 by Martin Krauskopf.</div><div class='add'>+</div><div class='add'>+2008-02-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/fetch_command.rb: Fix a bug when fetching</div><div class='add'>+	from non-default sources.  Report non-existent gems instead of</div><div class='add'>+	crashing.</div><div class='add'>+</div><div class='add'>+2008-01-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/update_command.rb: Use portable and safe ENV</div><div class='add'>+	operation.  Patch by usa in ruby SVN revision 14739.</div><div class='add'>+	* lib/rubygems/open-uri.rb: Fix tests.  Patch by NARUSE Yui.</div><div class='add'>+	[ruby-dev:33336]</div><div class='add'>+</div><div class='add'>+2007-12-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* util/gem_prelude.rb:  Remove methods from Gem, not QuickLoader, to</div><div class='add'>+	fix warnings.</div><div class='add'>+</div><div class='add'>+2007-12-22  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb:  Put GEM PATHS in the</div><div class='add'>+	correct order.</div><div class='add'>+	* lib/rubygems/commands/uninstall_command.rb:  Add --install-dir to</div><div class='add'>+	specify which local repository to uninstall from.  Patch #15151 by</div><div class='add'>+	Donavan Pantke.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Only allow uninstallation of gems from</div><div class='add'>+	specified directory.  Properly clean up executables on uninstall.</div><div class='add'>+	Patch #15151 by Donavan Pantke.</div><div class='add'>+	* lib/rubygems/install_update_options.rb:  Add --no-env-shebang</div><div class='add'>+	option.  Patch #16508 by Donavan Pantke.</div><div class='add'>+	* util/gem_prelude.rb:  Use require to load rubygems.rb to make</div><div class='add'>+	$LOADED_FEATURES correct on RubyGems update.</div><div class='add'>+</div><div class='add'>+2007-12-21  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* util/gem_prelude.rb:  Place bin before lib so bin stubs work.</div><div class='add'>+</div><div class='add'>+2007-12-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile:  Require Ruby &gt; 1.8.2.  Enable CERT_DIR.</div><div class='add'>+	* lib/rubygems.rb:  Work with RbConfig and Config.  Bug #16457 by</div><div class='add'>+	Christian Ramilo, John Barnette.</div><div class='add'>+	* lib/rubygems/commands/build_command.rb:  Relax yaml? test to work</div><div class='add'>+	with Ruby 1.8.3.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.0.1.</div><div class='add'>+	* doc/release_notes/rel_1_0_1.rdoc:  RubyGems 1.0.1 release notes.</div><div class='add'>+</div><div class='add'>+2007-12-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Revert change that only wrapped</div><div class='add'>+	executables with #!.</div><div class='add'>+	* lib/rubygems/specification.rb:  Warn about a lot of things that</div><div class='add'>+	could be wrong with gemspecs on build, including missing #!.  Use</div><div class='add'>+	'x86-mswin32' for legacy 'mswin32' platform, fix CURRENT platform.</div><div class='add'>+	Paired with Luis Lavena.</div><div class='add'>+	* lib/rubygems/remote_installer.rb:  Deleted.</div><div class='add'>+	* lib/rubygems.rb:  Removed Kernel#require_gem.</div><div class='add'>+	* doc/release_notes/rel_1_0_0.rdoc:  RubyGems 1.0 release notes.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb:  1.0.0.</div><div class='add'>+</div><div class='add'>+2007-12-18  Luis Lavena  &lt;luislavena@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/mirror_command.rb: Work around URI::parse</div><div class='add'>+	processing file:// scheme and drive paths on Windows.</div><div class='add'>+	* test/test_gem_commands_mirror_command.rb: ditto.</div><div class='add'>+</div><div class='add'>+2007-12-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Copy files into bindir if they don't</div><div class='add'>+	have a shebang.  Bug reported by Luis Lavena.</div><div class='add'>+	* lib/rubygems/server.rb:  Handle platforms in Gem::Server#quick.</div><div class='add'>+	Exactly match gem names.  Bugs reported by Chad Woolley.</div><div class='add'>+	* lib/rubygems/platform.rb:  Remove platform constants in favor of</div><div class='add'>+	Gem::Platform::CURRENT.  Bug reported by Luis Lavena.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Work around Dir::glob not</div><div class='add'>+	understanding File::ALT_SEPARATOR.  Bug submitted by Luis Lavena.</div><div class='add'>+</div><div class='add'>+2007-12-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Be more verbose in error messages</div><div class='add'>+	from OpenURI.</div><div class='add'>+	* lib/rubygems/server.rb:  Be more verbose in error/missing responses.</div><div class='add'>+</div><div class='add'>+2007-12-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Output extension build results when</div><div class='add'>+	really verbose.  From bug #15853 John Croisant.</div><div class='add'>+	* lib/rubygems/specification.rb:  Fix backwards compatibility with</div><div class='add'>+	0.9.4, don't allow the platform to be nil or an empty string.  Bug</div><div class='add'>+	#16177 by Dan Manges.</div><div class='add'>+	* setup.rb:  Re-exec setup.rb if rubygems is loaded and RUBYOPT is</div><div class='add'>+	set.  Fixes bug #15974 by Joshua Sierles.</div><div class='add'>+	* lib/rubygems/update_command.rb:  Tweak formatting of updated</div><div class='add'>+	message.  Bug #15625 by Bil Kleb.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb:  Add URI to exception message for</div><div class='add'>+	Gem::RemoteFetcher#fetch_size.  Bug #14801 by Bil Kleb.</div><div class='add'>+</div><div class='add'>+2007-12-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/query_command.rb:  Don't display duplicate</div><div class='add'>+	version numbers.  Bug #15828 by Tim Fletcher.</div><div class='add'>+	* setup.rb:  Fix my stupidity with --help.  Patch #16308 by Stephen</div><div class='add'>+	Bannasch.  Fix --prefix= argument.  Bug #16002 by Piglop.</div><div class='add'>+</div><div class='add'>+2007-12-13  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/server_command.rb:  Fix --no-daemon.  Bug by</div><div class='add'>+	Chad Woolley.</div><div class='add'>+	* lib/rubygems/server.rb:  Fix Marshal quick index.  Bug by Chad</div><div class='add'>+	Woolley.</div><div class='add'>+	* lib/rubygems/installer.rb: Respect Gem::Specification#bindir.  Bug</div><div class='add'>+	#16202 by Suraj Kurapati.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb: Fix `gem update mysql`.</div><div class='add'>+	Bug #16244 by Stephen Bannasch.</div><div class='add'>+</div><div class='add'>+2007-12-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb:  Add --format-executable option to</div><div class='add'>+	install executables with ruby's program-suffix and prefix.  Patch</div><div class='add'>+	#14688 by Jeremy Kemper.  Also, installing in really-verbose mode</div><div class='add'>+	prints out written files.</div><div class='add'>+	* setup.rb:  Add --format-executable option to install gem with ruby's</div><div class='add'>+	program-suffix and prefix.  Add --help.  Fixes bug #16056 by Chad</div><div class='add'>+	Woolley.</div><div class='add'>+	* lib/rubygems/uninstaller.rb:  Fallback to original_platform_name</div><div class='add'>+	correctly.  Patch #15960 by Nicola Piccinini's friend.</div><div class='add'>+</div><div class='add'>+2007-12-11  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb:  Correct test run failures when no tests</div><div class='add'>+	are provided.  Patch #15701 by JÃ©rÃ©my Zurcher.</div><div class='add'>+	* lib/rubygems/commands/mirror_command.rb:  Don't File.join a</div><div class='add'>+	URI::HTTP.  Patch #16116 by Morgan Nelson.</div><div class='add'>+	* lib/rubygems/commands/unpack_command.rb:  Add --target option to</div><div class='add'>+	`gem unpack`.  Patch #16154 by Kevin Barnes.</div><div class='add'>+</div><div class='add'>+2007-12-10  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb:  Revert to nil for the default</div><div class='add'>+	security policy to avoid requiring OpenSSL.</div><div class='add'>+	* lib/rubygems/defaults.rb: Consolidate defaults for easier editing.</div><div class='add'>+	Patch #15150 by Donavan Pantke.</div><div class='add'>+</div><div class='add'>+2007-11-27  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb: Remove dependency on forwadable.</div><div class='add'>+	Patch by Koichi Sasada.</div><div class='add'>+	* lib/rubygems/specification.rb: Reduce dependency on time.rb.  Patch</div><div class='add'>+	by Koichi Sasada.</div><div class='add'>+</div><div class='add'>+2007-11-26  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: Fix bug 15948 with version bump</div><div class='add'>+	* test/test_gem_version.rb: Test for bug 15948 with version bump</div><div class='add'>+	* util/gem_prelude.rb: wrap init code with exception handler</div><div class='add'>+	and skip badly formed directory names</div><div class='add'>+</div><div class='add'>+2007-11-23  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Centralize all CONFIG options into Hash</div><div class='add'>+	Gem::ConfigMap with keys as symbols, change all references</div><div class='add'>+	to CONFIG to ConfigMap</div><div class='add'>+	* lib/rubygems/require_paths_builder.rb: Added to support </div><div class='add'>+	building .require_paths file</div><div class='add'>+	* lib/rubygems/installer.rb: Add building of .require_paths if</div><div class='add'>+	needed</div><div class='add'>+	* lib/rubygems/platform.rb: Use new ConfigMap hash for arch</div><div class='add'>+	* lib/rubygems</div><div class='add'>+	* util/gem_prelude.rb: new gem prelude for Ruby 1.9</div><div class='add'>+	* test/test_gem_installer.rb: change to use ConfigMap hash</div><div class='add'>+	* test/gemutilities.rb: change to use ConfigMap hash</div><div class='add'>+</div><div class='add'>+2007-11-21  Daniel Berger &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/platform.rb: Gem::Platform.new now returns</div><div class='add'>+	Gem::Platform.local if the arch matches Gem::Platform::CURRENT.</div><div class='add'>+	Bugs #15815 and #15782 submitted by Daniel Berger.</div><div class='add'>+</div><div class='add'>+2007-11-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/platform.rb: Handle bare 'mswin32' platform's CPU.</div><div class='add'>+</div><div class='add'>+2007-11-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 0.9.5.</div><div class='add'>+</div><div class='add'>+2007-11-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/gemutilities: Add a legacy platform gem to the default test</div><div class='add'>+	gems list.</div><div class='add'>+	* lib/rubygems/specification.rb: Add Gem::Specification#original_name</div><div class='add'>+	for legacy purposes</div><div class='add'>+	* lib/rubygems/indexer.rb: Use #original_name to make the indexer</div><div class='add'>+	backwards compatible.</div><div class='add'>+	* lib/rubygems/master_index_builder.rb: Reduce memory consumption.</div><div class='add'>+</div><div class='add'>+2007-11-13  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 0.9.4.7 beta.</div><div class='add'>+	* lib/rubygems.rb: Patch for RUBY_FRAMEWORK for OS X 10.5.  Patch</div><div class='add'>+	submitted by Laurent Sansonetti.</div><div class='add'>+	* lib/rubygems.rb: cygwin, djgpp, mingw are Windows platforms.  Fixes</div><div class='add'>+	bug #15537 by Roger Pack.</div><div class='add'>+</div><div class='add'>+2007-11-11  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile: Tasks for maintaining ruby trunk export of RubyGems.</div><div class='add'>+	* lib/rubygems/specification.rb: Preserve original platform across</div><div class='add'>+	serialization.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Retry with original platform</div><div class='add'>+	name on fetch error.</div><div class='add'>+</div><div class='add'>+2007-11-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Set #original_platform only once.</div><div class='add'>+	* lib/rubygems/indexer.rb: Handle legacy platforms.</div><div class='add'>+	* lib/rubygems/platform.rb: Gem::Platform is a valid argument.  Bug</div><div class='add'>+	#15511 submitted by Daniel Berger.</div><div class='add'>+	* lib/rubygems/custom_require.rb: Fix compatibility with 1.8.2.  Bug</div><div class='add'>+	#14933 submitted by Aaron Patterson.</div><div class='add'>+	* lib/rubygems/command.rb: Now '-V' enables verbose.  Bug #14951</div><div class='add'>+	submitted by Sasa Ebach.</div><div class='add'>+	* lib/rubygems/commands/check_command.rb: Change use of '-v', '-V' to</div><div class='add'>+	match above.</div><div class='add'>+	* lib/rubygems/package.rb: #send! is gone again.</div><div class='add'>+	* lib/rubygems.rb: Don't add custom_require for 1.9.</div><div class='add'>+	* test/*: Make compatible with 1.9 import.</div><div class='add'>+</div><div class='add'>+2007-10-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Don't re-use @platform to maintain</div><div class='add'>+	backwards compatibility.</div><div class='add'>+	* lib/rubygems/platform.rb: Handle nil and 'ruby' platforms in ::new.</div><div class='add'>+</div><div class='add'>+2007-10-20	Daniel Berger	&lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/uninstaller.rb: Changed '.cmd' to '.bat' in the</div><div class='add'>+	remove_executables method for MS Windows. Patch from Luis Lavena.</div><div class='add'>+</div><div class='add'>+2007-10-18  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 0.9.4.6 beta.</div><div class='add'>+</div><div class='add'>+2007-10-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/update_command.rb: Don't install with</div><div class='add'>+	dependencies when updating.  This is a hack.</div><div class='add'>+</div><div class='add'>+2007-10-19  Daniel Berger  &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb: gem.cmd stub is now gem.cmd, and the stub generation was</div><div class='add'>+	changed - now better for NT. Patch #14725 (Luis Lavena).</div><div class='add'>+	* lib/rubygems/installer.rb: Same as for setup.rb.</div><div class='add'>+</div><div class='add'>+2007-10-18  Daniel Berger  &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/platform.rb: Modified the Platform.local method for MS</div><div class='add'>+	Windows for versions built with VC++ 6. Patch #14727 (Luis Lavena).</div><div class='add'>+	* test/test_gem_specification.rb: Added version independent tests for</div><div class='add'>+	MS Windows. Patch #14727 (Luis Lavena).</div><div class='add'>+</div><div class='add'>+2007-10-18  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Add platform to User-Agent.</div><div class='add'>+	* lib/rubygems/commands/install_command.rb: Fix typo.  Debian bug</div><div class='add'>+	#443135 submitted by Reuben Thomas.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Don't install dropped</div><div class='add'>+	dependencies.  Fixes bug #14724 submitted by Luis Lavena.</div><div class='add'>+</div><div class='add'>+2007-10-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/update_command.rb: Unset RUBYOPT when running</div><div class='add'>+	setup.rb</div><div class='add'>+	* setup.rb: Re-exec without RUBYOPT if it is set.  Fixes bug #14683</div><div class='add'>+	submitted by Lyle Johnson.</div><div class='add'>+</div><div class='add'>+2007-10-16  Daniel Berger  &lt;djberg96@gmail.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer/abstract_index_builder.rb: The compress method</div><div class='add'>+	now does a binary read to make MS Windows happy.</div><div class='add'>+</div><div class='add'>+2007-10-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb: Installs bin stubs that warn when you try to use the old</div><div class='add'>+	commands.  Simple mswin deprecation stubs by Luis Lavena.</div><div class='add'>+</div><div class='add'>+2007-10-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* setup.rb: Remove source caches on install.</div><div class='add'>+	* doc/release_notes/rel_0_9_5.rdoc: Draft added.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 0.9.4.5 beta.</div><div class='add'>+</div><div class='add'>+2007-10-10  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Fix small bug found by Alan C.</div><div class='add'>+	Francis.</div><div class='add'>+</div><div class='add'>+2007-10-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Use install_dir so custom gem</div><div class='add'>+	repos can be used.</div><div class='add'>+	* lib/rubygems/specification.rb: Always set required attributes, even</div><div class='add'>+	if they match the default.</div><div class='add'>+</div><div class='add'>+2007-10-08  Ryan Davis  &lt;ryan@wrath.local&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Fixed require order so custom_require is</div><div class='add'>+	last. Added HACK tag to remind Jim to release rake.</div><div class='add'>+	* test/test_gem_source_index.rb: Fixed latest_specs' tests so</div><div class='add'>+	failures were much more readable.</div><div class='add'>+	* lib/rubygems/source_index.rb: Fixed latest_specs to deal with</div><div class='add'>+	platforms appropriately. Returns array again.</div><div class='add'>+</div><div class='add'>+2007-10-08  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb: Boost bulk_threshold to 1000, Marshal</div><div class='add'>+	format is smaller than yaml format quick index.</div><div class='add'>+	* lib/rubygems/installer.rb: Make #shebang correctly rewrite env</div><div class='add'>+	shebangs.</div><div class='add'>+	* lib/rubygems/specification.rb: Mark Time.today for removal, too much</div><div class='add'>+	depends upon it now.</div><div class='add'>+</div><div class='add'>+2007-10-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Sped up ::_load.</div><div class='add'>+	* lib/rubygems/source_index.rb: Sped up #search.</div><div class='add'>+	* lib/rubygems/version.rb: Replace #to_ints with #ints, and cache</div><div class='add'>+	result.</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Only flush cache when it changes.</div><div class='add'>+</div><div class='add'>+2007-10-05  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb: Allow customization of completion</div><div class='add'>+	message for progress reporters.</div><div class='add'>+	* lib/rubygems/command.rb: Add --quiet option.</div><div class='add'>+	* lib/rubygems/commands/generate_index_command.rb: Add description.</div><div class='add'>+</div><div class='add'>+2007-10-04  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/uninstaller.rb: Also check and uninstall old platform</div><div class='add'>+	name to ensure legacy platform gems are uninstalled.</div><div class='add'>+	* lib/rubygems/doc_manager.rb: Remove existing rdoc and ri directory</div><div class='add'>+	so regenerating docs succeeds even if previously interrupted.</div><div class='add'>+</div><div class='add'>+2007-10-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb: Make #outdated search only for gems</div><div class='add'>+	matching the current platform.</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb: Add --platform.</div><div class='add'>+	* lib/rubygems/commands/outdated_command.rb: Ditto.</div><div class='add'>+	* lib/rubygems/commands/specification_command.rb: Ditto.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb: Ditto.</div><div class='add'>+</div><div class='add'>+2007-10-02  Wilson Bilkovich  &lt;wilson@supremetyrant.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Custom Marshal format to reduce index</div><div class='add'>+	size.</div><div class='add'>+	* lib/rubygems/requirement.rb: Ditto</div><div class='add'>+	* lib/rubygems/version.rb: Ditto</div><div class='add'>+</div><div class='add'>+2007-10-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/platform.rb: Handle mswin32 on VC6.  Partial patch and</div><div class='add'>+	assistance by Luis Lavena.  Handle cpu-os-version style platforms for</div><div class='add'>+	command-line arguments.</div><div class='add'>+</div><div class='add'>+2007-09-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Gem::Specification is now</div><div class='add'>+	forward-compatible while loading.</div><div class='add'>+</div><div class='add'>+2007-09-29  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache_entry.rb: Correctly handle URIs.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: ditto.</div><div class='add'>+	* lib/rubygems/remote_options.rb: Add --update-sources option.  Patch</div><div class='add'>+	#14246 submitted by Alan Francis.</div><div class='add'>+	* lib/rubygems/config_file.rb: Add update_sources setting to control</div><div class='add'>+	automatic refreshing of sources (patch #14246).  Fix bug where things</div><div class='add'>+	would be overwritten in ~/.gemrc when they shouldn't.</div><div class='add'>+</div><div class='add'>+2007-09-28  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems.rb: Gem.ruby now returns the full path.  Added</div><div class='add'>+	Gem.prefix to make self updating work right.</div><div class='add'>+	* setup.rb, pre-install.rb, post-install.rb: Replace with a small,</div><div class='add'>+	simple setup script that works.</div><div class='add'>+	* lib/rubygems/commands/update_command.rb: Pass rdoc, ri and prefix</div><div class='add'>+	flags down to setup.rb when self updating.</div><div class='add'>+</div><div class='add'>+2007-09-26  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version_option.rb: Always include RUBY platform,</div><div class='add'>+	allow RUBY platform as an option.</div><div class='add'>+	* lib/rubygems/specification.rb: Gems with non-ruby platform sort</div><div class='add'>+	last (first in preference for installation).</div><div class='add'>+	* lib/rubygems/platform.rb: Allow matching of legacy platforms.</div><div class='add'>+	* lib/rubygems/source_index.rb: Add only_platform option to #search.</div><div class='add'>+</div><div class='add'>+2007-09-24  Wilson Bilkovich  &lt;wilson@supremetyrant.com&gt;</div><div class='add'>+	* lib/rubygems/indexer.rb: Generate a Marshal index in parallel to YAML</div><div class='add'>+	* lib/rubygems/source_index.rb: Fetch a Marshal index if it exists, to</div><div class='add'>+	avoid the memory cost of parsing a huge YAML file</div><div class='add'>+	* lib/rubygems/commands/mirror_command.rb: Check for Marshal first</div><div class='add'>+	* lib/rubygems/indexer/abstract_index_builder.rb: Index refactoring</div><div class='add'>+	* lib/rubygems/indexer/marshal_index_builder.rb: Build Marshal index</div><div class='add'>+	* lib/rubygems/indexer/master_index_builder.rb: Simplify YAML generation</div><div class='add'>+	* lib/rubygems/indexer/quick_index_builder.rb: Build Marshal quickindex</div><div class='add'>+	* lib/rubygems/server.rb: Serve up Marshal index as well as YAML</div><div class='add'>+	* lib/rubygems/source_info_cache_entry.rb: Expect a Marshal index</div><div class='add'>+</div><div class='add'>+2007-09-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/fetch_command.rb: `gem fetch` downloads a gem</div><div class='add'>+	to the current directory.  Feature request #10752 by Bret Pettichord.</div><div class='add'>+	* lib/rubygems/commands/local_remote_options.rb, etc.: Fix spelling of</div><div class='add'>+	'threshold'.</div><div class='add'>+	* lib/rubygems/installer.rb: Revert feature request #8818, it</div><div class='add'>+	interferes with `ruby -S` and multiple versions of ruby (1.8 and 1.9).</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Fix a bug where the wrong</div><div class='add'>+	platform gem would be installed.</div><div class='add'>+	* lib/rubygems/version_option.rb: Add --platform.</div><div class='add'>+	* lib/rubygems/install_update_options.rb: Verify --security-policy.</div><div class='add'>+	* lib/rubygems/local_remote_options.rb: Verify --source, --http-proxy.</div><div class='add'>+</div><div class='add'>+2007-09-22  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/open-uri.rb: Don't document our OpenURI.</div><div class='add'>+	* lib/rubygems/commands/generate_index_command.rb: Fix Indexer class</div><div class='add'>+	change.</div><div class='add'>+	* lib/rubygems/commands/mirror_command.rb: Fix for 1.9.</div><div class='add'>+	* lib/rubygems/commands/pristine_command.rb: Have `gem pristine`</div><div class='add'>+	give a better report of what it accomplished.</div><div class='add'>+	* lib/rubygems/command.rb: Add optional description field.</div><div class='add'>+	* lib/rubygems/installer.rb: Hack around broken Pathname#absolute? on</div><div class='add'>+	windows.  Patch #14139 by Jim Hughes.</div><div class='add'>+</div><div class='add'>+2007-09-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* misc files: Tests pass on 1.9.</div><div class='add'>+	* test/gemutilities.rb: Added Object#send! stub for 1.8.</div><div class='add'>+	* test/test_open_uri.rb: Require gem_open_uri.rb to avoid warnings.</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb: Clarify `gem sources -c`</div><div class='add'>+	and what `gem sources` does.  Patch by Hugh Sasse.</div><div class='add'>+</div><div class='add'>+2007-09-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/platform.rb: Make Gem::Platform a class.</div><div class='add'>+	* lib/rubygems/specification.rb: Gem::Specification#validate returns</div><div class='add'>+	true, non-Gem::Platform platforms are no longer allowed.</div><div class='add'>+	* test/gemutilities.rb: 1.9 compatiblity fixes.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Work around a bug in URI.parse</div><div class='add'>+	which misinterprets "C:/".  Patch #13537 submitted by Daniel Berger.</div><div class='add'>+	* lib/rubygems/format.rb: Ensure file handles are closed.  Patch</div><div class='add'>+	#13533 submitted by Daniel Berger.</div><div class='add'>+	* test/test_gem_installer.rb: Win32 path fix.  Patch #13528 submitted</div><div class='add'>+	by Daniel Berger.</div><div class='add'>+	* test/gemutilities.rb: Make the platform be a win32 platform on</div><div class='add'>+	win32.  Fixes confusion in generate_bin_symlink tests.  Patch #13529</div><div class='add'>+	submitted by Daniel Berger.</div><div class='add'>+	* test/test_gem_specification.rb: Sequel to above.  Patch</div><div class='add'>+	#13535 submitted by Daniel Berger.</div><div class='add'>+	* lib/rubygems/source_index.rb: Make the updating cache message more</div><div class='add'>+	clear.  Patch #12778 submitted by Bil Kleb.</div><div class='add'>+	* lib/rubygems/server.rb: Allow gem's rdoc-style.css to be used.</div><div class='add'>+	Patch #13589 by Stephen Bannasch.</div><div class='add'>+	* lib/rubygems/indexer.rb: Fail on missing builder gem only when</div><div class='add'>+	trying to use the indexer.  Fixes bug #13939 by Bryan Stearns.</div><div class='add'>+	* lib/rubygems/indexer/indexer.rb: Move Indexer up one level in</div><div class='add'>+	nesting.</div><div class='add'>+	* lib/rubygems/indexer/compressor.rb: Only used in</div><div class='add'>+	Gem::Indexer::AbstractIndexBuilder subclasses, merged there.</div><div class='add'>+	* lib/rubygems/command_aids.rb: Merged Gem::CommandAids into</div><div class='add'>+	Gem::Command since that's the only place it gets used.</div><div class='add'>+	* misc other files: mswin fixes.  Paired with Daniel Berger.</div><div class='add'>+</div><div class='add'>+2007-08-24  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Fix #full_name for versionless</div><div class='add'>+	platforms.</div><div class='add'>+	* lib/rubygems/command_manager.rb: We're only looking for NameError.</div><div class='add'>+	* lib/rubygems/command.rb: 1.9 fix.</div><div class='add'>+	* lib/rubygems/format.rb: ditto.</div><div class='add'>+	* lib/rubygems/installer.rb: ditto.</div><div class='add'>+</div><div class='add'>+2007-08-24  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: 0.9.4.4</div><div class='add'>+</div><div class='add'>+2007-08-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/platform.rb: Add HPUX, AIX and NetBSD.  Thanks to</div><div class='add'>+	Daniel Berger, Yutaka KANEMOTO and Andre Nathan respectively.</div><div class='add'>+	* lib/rubygems/installer.rb: Move all option setting to #initialize to</div><div class='add'>+	make `gem pristine` work again.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb: Include platforms.</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Support local non-root</div><div class='add'>+	installation.</div><div class='add'>+</div><div class='add'>+2007-08-22  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Don't reinstall dependencies</div><div class='add'>+	existing in the install dir.  Don't install dependencies for older</div><div class='add'>+	versions of the gem we're installing.  #installed_gems now contains</div><div class='add'>+	loaded gemspecs.  Always prefer local gems.  Handle globs correctly.</div><div class='add'>+	All deps are now installed into the install_dir.</div><div class='add'>+	* lib/rubygems/commands/install_command.rb: Switch to</div><div class='add'>+	Gem::DependencyInstaller.  Warn when -y is given, it will be removed.</div><div class='add'>+	Try our best to install everything the user asked.</div><div class='add'>+	* lib/rubygems.rb: Gem.bindir now handles Pathname correctly.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Don't downcase anymore.</div><div class='add'>+</div><div class='add'>+2007-08-21  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Add installation from local</div><div class='add'>+	gems.  Install gems in the correct order.  Handle -E, -f,</div><div class='add'>+	--ignore-dependencies, -i, -r, -l, -b, -P, -w, -v options for `gem</div><div class='add'>+	install`</div><div class='add'>+	* test/gemutilities.rb: Work around OS X /private/tmp.</div><div class='add'>+	* lib/rubygems/platform.rb: Switch to using arch instead of target_*</div><div class='add'>+	for JRuby compatibility.  Thanks to Nick Sieger.</div><div class='add'>+</div><div class='add'>+2007-08-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_installer.rb: Add working but unfinished</div><div class='add'>+	Gem::DependencyInstaller.</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Add #search_with_source.</div><div class='add'>+	* lib/rubygems/dependency_list.rb: Move #fill_dependencies to</div><div class='add'>+	Gem::DependencyInstaller</div><div class='add'>+	* lib/rubygems/platform.rb: Split from specification.rb.  Add methods</div><div class='add'>+	to recognize platforms from Config::CONFIG.</div><div class='add'>+	* lib/rubygems.rb: Add Gem::platforms.</div><div class='add'>+	* lib/rubygems/specification.rb: Disallow String platforms.</div><div class='add'>+</div><div class='add'>+2007-08-18  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Search by Gem::Dependenency.</div><div class='add'>+	* lib/rubygems/source_index: Search by Gem::Dependenency.</div><div class='add'>+	* lib/rubygems/version.rb: Version can be String or Integer.</div><div class='add'>+	Gem::Requirement::default is now &gt;= 0.  Gem::Requirement can be built</div><div class='add'>+	from a Gem::Dependency.</div><div class='add'>+	* lib/rubygems/dependency_list.rb: Uses TSort now.  Add</div><div class='add'>+	Gem::DependencyList#fill_dependencies.</div><div class='add'>+	* lib/rubygems/server.rb: Support quick index.</div><div class='add'>+</div><div class='add'>+2007-08-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/dependency_list.rb: For diamond dependencies with</div><div class='add'>+	different versions on the bottom of the diamond, trim all but the</div><div class='add'>+	latest dependency.  This will prevent gems like hoe from being</div><div class='add'>+	installed multiple times.</div><div class='add'>+</div><div class='add'>+2007-08-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Support building mkrf extensions.  Fixes</div><div class='add'>+	bug #11313.  Patch by Jeremy Hinegardner.</div><div class='add'>+	* lib/rubygems/installer.rb: Ensure bin files are executable.  Fixes</div><div class='add'>+	bug #8985 submitted by Ara Howard.</div><div class='add'>+	* lib/rubygems/installer.rb: Insert installing gem home dir into bin</div><div class='add'>+	wrapper.  Patch #8818 by Ara Howard.</div><div class='add'>+</div><div class='add'>+2007-08-13  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/uninstall_command.rb: Gems with version of 0</div><div class='add'>+	can now be uninstalled.</div><div class='add'>+</div><div class='add'>+2007-08-11  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb: Command-line args override ~/.gemrc</div><div class='add'>+	now.  Gem.sources is pulled from ~/.gemrc now.  Gem::ConfigFile can</div><div class='add'>+	write itself out now.</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb: Now writes out</div><div class='add'>+	Gem.configuration on changes.  No longer checks source cache on</div><div class='add'>+	--list.</div><div class='add'>+</div><div class='add'>+2007-08-09  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Make Gem::SourceInfoCache#search</div><div class='add'>+	only search gems in Gem.sources.</div><div class='add'>+	* lib/rubygems.rb: Make Gem::configuration a real Gem::ConfigFile</div><div class='add'>+	object.</div><div class='add'>+	* lib/rubygems/commands/query_command.rb: Fix `gem query --details`.</div><div class='add'>+	Add `gem query --no-versions`.</div><div class='add'>+	* lib/rubygems/local_remote_options.rb: Make `gem mumble --source URL`</div><div class='add'>+	only use that source.</div><div class='add'>+	* lib/rubygems/config_file.rb: Fix Gem::ConfigFile#[]= to match</div><div class='add'>+	Gem::ConfigFile#[].</div><div class='add'>+</div><div class='add'>+2007-08-08  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/specification_command.rb: Match only exact gem</div><div class='add'>+	names.  Fixes bug #9681.  Patch by Michael DeCandia.</div><div class='add'>+	* lib/rubygems/commands/unpack_command.rb: Match only exact gem names.</div><div class='add'>+	Fixes bug #9681.  Patch by Michael DeCandia.</div><div class='add'>+	* lib/rubygems/commands/contents_command.rb: Match only exact gem</div><div class='add'>+	names.  Fixes bug #9681.  Patch by Michael DeCandia</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Perform a GET request if the HEAD</div><div class='add'>+	request doesn't have Content-Length.  Fixes bug #9771.  Patch by Ben</div><div class='add'>+	Bleything.</div><div class='add'>+	* lib/rubygems.rb: Clear Gem::searcher when we Gem::clear_paths.</div><div class='add'>+	Fixes bug #12886.  Submitted by Peter Williams.</div><div class='add'>+	* lib/rubygems.rb: Add #default_sources and rework #sources to use it.</div><div class='add'>+	* post-install.rb: No longer runs install_sources.</div><div class='add'>+	* pkgs/sources: Updated to something what a 0.0.2 would look like, if</div><div class='add'>+	we ever make one.</div><div class='add'>+</div><div class='add'>+2007-08-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Removed and broken up into individual</div><div class='add'>+	files.</div><div class='add'>+	* lib/rubygems/command_manager.rb: Lazily loads gem commands.  Now to</div><div class='add'>+	use CommandManager just "require 'rubygems/command_manager'" and</div><div class='add'>+	everything will be there.</div><div class='add'>+</div><div class='add'>+2007-08-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/*, test/*: Pushed down dependencies as far as reasonable.</div><div class='add'>+	Removed Gem::manage_gems.  Now only 14 files are loaded with "require</div><div class='add'>+	'rubygems'".  Added tests for `gem build` and `gem cert`.</div><div class='add'>+	* lib/rubygems/extensions.rb: Added common place for all extensions.</div><div class='add'>+</div><div class='add'>+2007-07-26  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_gem_ext_configure_builder.rb: Linux has different behavior</div><div class='add'>+	for `sh ./configure` when configure is missing.  Fix adapted from</div><div class='add'>+	Patch #10019 by Donavan Pantke.</div><div class='add'>+	* lib/rubygems/commands/pristine_command.rb: Compare fully-qualified</div><div class='add'>+	paths.  Fixes bug #7976 by Lyle Johnson.</div><div class='add'>+	* lib/rubygems/config_file.rb: Add ConfigFile#[]=, so --proxy</div><div class='add'>+	command-line option works.  Fixes #8152 by Justin Sabelkko.</div><div class='add'>+	* lib/rubygems/post-install.rb: Make sure we use the</div><div class='add'>+	latest-and-greatest RubyGems when running post-install.rb.  Fixes Bug</div><div class='add'>+	#8411 by Duy Nguyen.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: An empty HTTP_PROXY means no proxy.</div><div class='add'>+	Fixes Bug #9042 by Michael Brodhead.</div><div class='add'>+	* lib/rubygems/version.rb: Disallow newlines in version string.  Strip</div><div class='add'>+	spaces from version string.  Fixes Bug #9499 by Bryce Kerley.</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb: Fix spelling error.  Fixes</div><div class='add'>+	Bug #11064 by Chris Eskow.</div><div class='add'>+</div><div class='add'>+2007-07-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/indexer.rb: Create the index in /tmp, then move it into</div><div class='add'>+	place when we're done.  This will prevent spurious bulk index updates</div><div class='add'>+	from occurring while the quick index is missing.  Remove the option to</div><div class='add'>+	not build the quick index.</div><div class='add'>+	* lib/rubygems/commands/generate_index_command.rb: --no-quick is gone.</div><div class='add'>+	* lib/rubygems/user_interaction.rb: If stdin is not a tty, it is</div><div class='add'>+	unlikely that gem is going to get a response when asking a question.</div><div class='add'>+	Patch #10660 by Paul Brannan.</div><div class='add'>+	* lib/rubygems/validator.rb: Output test failures when using install</div><div class='add'>+	-t.  Patch #10659 by Paul Brannan.</div><div class='add'>+	* lib/rubygems/custom_require.rb (Kernel#require): Only rescue a</div><div class='add'>+	LoadError that matches the file we are requiring.  Patch #10723 by</div><div class='add'>+	Tyler Rick.</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb: Support HTTP basic authentication.</div><div class='add'>+	Patch #8121 by Max Dunn.</div><div class='add'>+	* lib/rubygems/commands/install_command.rb: Don't raise an error when</div><div class='add'>+	a gem has no tests.  Patch #11824 by Katsuyuki MIYAMUKO.</div><div class='add'>+</div><div class='add'>+2007-07-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/commands/contents_command.rb: Add --lib-only option, remove</div><div class='add'>+	useless --list option.  Feature request #9498 by Martin DeMello.</div><div class='add'>+	* lib/rubygems/specification.rb: Restrict to only files in</div><div class='add'>+	#require_paths.  Add #required_rubygems_version.  Feature request</div><div class='add'>+	#7780 by Eric Hodel.</div><div class='add'>+	* lib/rubygems/commands/dependency_command.rb: Display dependencies for</div><div class='add'>+	remote gems.  Feature request #12133 by Eric Hodel.  -r for reverse</div><div class='add'>+	dependencies is now -R.</div><div class='add'>+	* lib/rubygems/commands/specification_command.rb: Display</div><div class='add'>+	specifications for remote gems.  Feature request #12133 by Eric Hodel.</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#install): Check</div><div class='add'>+	required_rubygems_version.</div><div class='add'>+	* lib/rubygems/user_interaction.rb</div><div class='add'>+	(Gem::UserInteraction#choose_from_list): Check result for EOF.  Fixes</div><div class='add'>+	bug #8018.  Patch by Jos Backus.</div><div class='add'>+	* post-install.rb: Install using absolute path.  Fixes bug #10675.</div><div class='add'>+	Patch by Jeremy Burks.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb: Add RUBY VERSION to</div><div class='add'>+	environment output.</div><div class='add'>+	* lib/rubygems/command.rb: Don't worry about duplicated command-line</div><div class='add'>+	options, OptionParser takes care of them for us.</div><div class='add'>+</div><div class='add'>+2007-07-22  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb (Gem::Specification#files): Make it</div><div class='add'>+	faster</div><div class='add'>+	* lib/rubygems/command.rb: Better documentation.  -v flag now lets you</div><div class='add'>+	get to "really verbose" mode which makes the verbose progress meter</div><div class='add'>+	work.  Add command groups to separate types of commands easily.</div><div class='add'>+	* lib/rubygems/commands/which_command.rb, bin/gemwhich: Move `gemwhich`</div><div class='add'>+	under `gem`.</div><div class='add'>+	* lib/rubygems/commands/mirror_command.rb, bin/gem_mirror: Move</div><div class='add'>+	`gem_mirror` under `gem`.</div><div class='add'>+	* lib/rubygems/commands/lock_command.rb, bin/gemlock: Move `gemlock`</div><div class='add'>+	under `gem`.</div><div class='add'>+	* lib/rubygems/commands/server_command.rb, bin/gem_server: Move</div><div class='add'>+	`gem_server` under `gem`.</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager#initialize): Only raise</div><div class='add'>+	when operating on the filesystem.</div><div class='add'>+	* lib/rubygems/server.rb: Remove option processing, now in</div><div class='add'>+	Gem::Commands::ServerCommand.</div><div class='add'>+	* lib/rubygems/commands/generate_index.rb, bin/index_gem_repository.rb:</div><div class='add'>+	Move `index_gem_repository.rb` to `gem generate_index`.</div><div class='add'>+	* lib/rubygems/indexer (Gem::Indexer): Extract from</div><div class='add'>+	index_gem_repository.rb and merge RubyForge changes.</div><div class='add'>+	* lib/rubygems/command_manager.rb (Gem::CommandManager#run): Print</div><div class='add'>+	backtrace when --debug is set too.</div><div class='add'>+	* lib/rubygems/command_manager.rb (Gem::CommandManager#load_and_instantiate):</div><div class='add'>+	Don't infinitely loop in retry.</div><div class='add'>+	* bin/gemri: Removed.  Everybody should have ri integration now.</div><div class='add'>+	* lib/rubygems/config_file.rb: Allow settings to be examined.  Pull</div><div class='add'>+	settings from .gemrc.</div><div class='add'>+	* lib/rubygems/commands/environment_command.rb: Add ruby executable</div><div class='add'>+	and configuration settings to `gem env`.</div><div class='add'>+	* lib/rubygems/indexer/indexer.rb (Gem::Indexer::Indexer#build_index):</div><div class='add'>+	Now uses UserInteraction.</div><div class='add'>+	* various: Use UserInteraction for output.</div><div class='add'>+	* lib/gemconfigure.rb: Removed. Same as multiple gem commands.</div><div class='add'>+	* lib/rubygems/commands/contents_command.rb: Removed extra --verbose</div><div class='add'>+	option.</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::LocalRemoteOptions): Moved -B,</div><div class='add'>+	--source, -p from Gem::Commands::common_options.</div><div class='add'>+</div><div class='add'>+2007-07-22  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Added another example to the gem</div><div class='add'>+	example output (Gile Bowkett)</div><div class='add'>+	* test/test_documentation_generation.rb, lib/rubygems/doc_manager.rb:</div><div class='add'>+	Added a test for documentation generation and fixed a bug when doc</div><div class='add'>+	location is not writable.</div><div class='add'>+</div><div class='add'>+2007-06-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_path_searcher.rb (Gem::GemPathSearcher): Moved out</div><div class='add'>+	of lib/rubygems/custom_require.rb and added tests.</div><div class='add'>+</div><div class='add'>+2007-06-02  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb (Gem::try_file): Fix for issue</div><div class='add'>+	where a non-existing source cache file causes the gem command to</div><div class='add'>+	not find a gem.  This fixes it by marshalling out an empty</div><div class='add'>+	hash.  (Thanks to Nick Sieger for this fix).</div><div class='add'>+</div><div class='add'>+2007-06-01  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb</div><div class='add'>+	(Gem::OperationNotSupportedError::latest_partials): Changed from</div><div class='add'>+	match data style to $1 style regexp (on the recommendation of</div><div class='add'>+	better performance).</div><div class='add'>+</div><div class='add'>+2007-05-30  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem::SourceIndex::update):</div><div class='add'>+	Modified to get the bulk_threshhold from the configuration.</div><div class='add'>+	(Gem::SourceIndex::convert_specs): Ryan removed the "reduce_specs"</div><div class='add'>+	method because it is not needed any more and is creating memory</div><div class='add'>+	overhead.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb (Gem::ConfigFile): Added</div><div class='add'>+	bulk_threshhold field to ConfigFile.</div><div class='add'>+	(Gem::ConfigFile::initialize): Initialize bulk threshhold to 500.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb</div><div class='add'>+	(Gem::Command::specific_extra_args_hash): Added</div><div class='add'>+	-B (--bulk-threshhold) option to allow user specified bulk</div><div class='add'>+	download threshhold.</div><div class='add'>+</div><div class='add'>+2007-05-23  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/commands/sources_command.rb</div><div class='add'>+	(Gem::Commands::SourcesCommand::initialize): Added a --clear-all</div><div class='add'>+	option to the sources subcommand.  Clear-all will remove the cache</div><div class='add'>+	files.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb (Gem): Moved system_cache_file</div><div class='add'>+	and user_cache_file to class methods so that we can get the file</div><div class='add'>+	names without creating a SourceInfoCache instance.</div><div class='add'>+</div><div class='add'>+2007-05-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Teach SIC to repair itself</div><div class='add'>+	when it encounters a bad cache file.</div><div class='add'>+</div><div class='add'>+2007-05-14  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+		* lib/rubygems/command_manager.rb: Re-added registration for</div><div class='add'>+	gem cleanup command which I accidentally removed during refactoring.</div><div class='add'>+</div><div class='add'>+2007-05-10  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Uncommented the require</div><div class='add'>+	'sources' line.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Uncommented the require</div><div class='add'>+	'sources' line.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to version 0.9.3</div><div class='add'>+	in preparation for release.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (Gem::TarInput::zipped_stream):</div><div class='add'>+	Zipped_stream now always uses the in memory string IO buffer.</div><div class='add'>+	There were just too many problems with ZLib (on windows)</div><div class='add'>+	otherwise.</div><div class='add'>+</div><div class='add'>+2007-03-26  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	*  (Index): new digest technique.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb (Gem::Validator::verify_gem): Removed</div><div class='add'>+	really old MD5 and replaced with gem based digests.  </div><div class='add'>+	</div><div class='add'>+	* experimental/deployment.rb (Gem::Deployment::Manager::initialize):</div><div class='add'>+	New digest technique.</div><div class='add'>+</div><div class='add'>+	* experimental/test_deployment.rb (TestDeployment::test_deployed_file):</div><div class='add'>+	New digest technique.</div><div class='add'>+</div><div class='add'>+2007-03-26  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* Extracted the big ball of mud that was gem_commands.rb into    </div><div class='add'>+	separate files.</div><div class='add'>+</div><div class='add'>+2007-03-17  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* Various ruby 1.8.6 fixes for failing tests.</div><div class='add'>+	</div><div class='add'>+	* Updated setup.rb to 3.4.1</div><div class='add'>+	</div><div class='add'>+	* Renamed cmd_manager to command_manager to keep names consistent</div><div class='add'>+	</div><div class='add'>+	* lib/installer.rb: Rework path checking to use Pathname (ara howard bug #8811)</div><div class='add'>+	</div><div class='add'>+2007-03-02  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Add bin directory before library directory,</div><div class='add'>+	otherwise gems like rake don't work.</div><div class='add'>+</div><div class='add'>+2007-03-01  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/open-uri.rb: Fix all the infinite loop errors.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Add dirs from activate after -I and ENV['RUBYLIB']</div><div class='add'>+	dirs.  Otherwise gems won't allow -I to work when #gem is called.</div><div class='add'>+</div><div class='add'>+2007-02-11  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/gemutilities.rb: Fix to make Windows tests pass. (Anatol Pomozov)</div><div class='add'>+</div><div class='add'>+2007-02-05  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to version 0.9.2</div><div class='add'>+	and made a release.</div><div class='add'>+</div><div class='add'>+2007-02-04  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* Fixed failing tests (changed from assert_equal to assert_match to </div><div class='add'>+	  deal with ARGV inconsistencies in test vs. production).</div><div class='add'>+</div><div class='add'>+2007-02-03  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Bumped version to 0.9.1.1.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_open_uri.rb: Added the patched open-uri back</div><div class='add'>+	into the gems software.  Evidently, the 1.8 version of open-uri</div><div class='add'>+	does not handle authenticating proxies with username and password.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb (Gem::cache_data): Added</div><div class='add'>+	rescue block to capture bad file loads.  The original rescue was</div><div class='add'>+	only around the marshal load (bug was probably introduced when the</div><div class='add'>+	file data was preloaded into a string).</div><div class='add'>+	(Gem::set_cache_data): Added set_cache_data to be used during</div><div class='add'>+	testing to avoid reload the cache file over and over.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Added require for command class so</div><div class='add'>+	that this file can be loaded independently.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem::SourceIndex::outdated): Minor</div><div class='add'>+	cleanup.</div><div class='add'>+</div><div class='add'>+	* test/gemutilities.rb</div><div class='add'>+	(RubyGemTestCase::util_setup_source_info_cache): Minor cleanup</div><div class='add'>+</div><div class='add'>+	* test/test_gem_source_info_cache.rb</div><div class='add'>+	(TestGemSourceInfoCache::test_write_cache_user): Switched to using</div><div class='add'>+	set_cache_data here and several other places to avoid rereading</div><div class='add'>+	the cache data over and over again.</div><div class='add'>+</div><div class='add'>+2007-02-02  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb:</div><div class='add'>+	Fixed gem unpack (broken since 0.9.1)</div><div class='add'>+</div><div class='add'>+2007-01-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb (Gem::SourceInfoCache#cache_data):</div><div class='add'>+	Read the source_cache in binary mode for mswin.</div><div class='add'>+</div><div class='add'>+2007-01-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Released 0.9.1.</div><div class='add'>+</div><div class='add'>+2007-01-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#extract_files): Only allow</div><div class='add'>+	installation to absolute directories.  (Call File::expand_path first).</div><div class='add'>+	More informative message for attempting to install with bad path.</div><div class='add'>+	* post-install.rb: Install sources first, since its rather important.</div><div class='add'>+</div><div class='add'>+2007-01-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: require 'fileutils', as its</div><div class='add'>+	needed.</div><div class='add'>+</div><div class='add'>+2007-01-12  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#extract_files): Don't</div><div class='add'>+	allow gems to place files outside the installation directory.  Fixes</div><div class='add'>+	bug 7751 by Gavin Sinclair.</div><div class='add'>+</div><div class='add'>+2007-01-08  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb</div><div class='add'>+	(Gem::Specification::test_suite_file): Added rescue clause for</div><div class='add'>+	default_executable.</div><div class='add'>+	(Gem::Specification::add_bindir): Added rescue clause for</div><div class='add'>+	add_bindir.</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestSpecification::test_pathologically_bad_non_array_stuff_doesnt_goof_up_files):</div><div class='add'>+	Added a sanity check on hash for some pathologically bad case.</div><div class='add'>+	(TestSpecification::test_pathologically_bad_exectuables_doesnt_goof_up_hash):</div><div class='add'>+	Added sanity check for pathologically bad executables field.</div><div class='add'>+</div><div class='add'>+2007-01-08  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::PristineCommand#execute): Better</div><div class='add'>+	messaging.</div><div class='add'>+	* lib/rubygems.rb, lib/rubygems/custom_require.rb: Correctly include</div><div class='add'>+	documentation for methods added to Kernel.</div><div class='add'>+</div><div class='add'>+2007-01-07  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile: Include GPL.txt.  Fixes bug #7572 by David Lee.</div><div class='add'>+</div><div class='add'>+2007-01-06  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to version</div><div class='add'>+	0.9.0.9.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb</div><div class='add'>+	(Gem::Specification::test_suite_file): Rewrote default_executable</div><div class='add'>+	to be a bit more explicit.</div><div class='add'>+	(Gem::Specification::add_bindir): Rewrote the 'files' accessor to</div><div class='add'>+	handle pathologically bad input.</div><div class='add'>+	(Gem::Specification::copy_of): Added as_array private method.</div><div class='add'>+</div><div class='add'>+	* Rakefile (package_version): Added '*.out' to clobber list.</div><div class='add'>+	Removed the broken-1.0.0.gem file from the clobber list.</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestSpecification::test_default_executable):</div><div class='add'>+	Seriously beefed up tests for certain specification issues.</div><div class='add'>+</div><div class='add'>+	* test/gemenvironment.rb (TestEnvironment::create): Added the 'f'</div><div class='add'>+	flag to deleting 'gemhome'.</div><div class='add'>+</div><div class='add'>+2006-12-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* post-install.rb, lib/rubygems/server.rb: RubyGems now installs RDoc</div><div class='add'>+	and ri for itself.</div><div class='add'>+</div><div class='add'>+2006-12-28  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#build_extensions):</div><div class='add'>+	Extension build failures now raise Gem::Installer::ExtensionBuildErrors.</div><div class='add'>+</div><div class='add'>+2006-12-26  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (Gem::Package::TarInput#initialize): Bad</div><div class='add'>+	packages now raise FormatError instead of a generic RuntimeError.</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#install): Raise an</div><div class='add'>+	InstallError when we have a bad gem file.</div><div class='add'>+</div><div class='add'>+2006-12-25  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb (Gem::GemPathSearcher::find):</div><div class='add'>+	Removed SUFFIX_PATTERN.  Evidently this was miss during an earlier</div><div class='add'>+	attempt to remove it.</div><div class='add'>+	(Gem::GemPathSearcher::matching_file): Changed reference to</div><div class='add'>+	SUFFIX_PATTERN into a call to Gem.suffix_pattern.</div><div class='add'>+</div><div class='add'>+	* Removed tab characters from numerous source files.</div><div class='add'>+	</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::uninstall): Removed</div><div class='add'>+	stray tab characters.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Kernel::require_gem): Added file and line</div><div class='add'>+	number information to require_gem worning (makes it easier to</div><div class='add'>+	track down those offending lines of code).</div><div class='add'>+	(Kernel::location_of_caller): Added helper function to determine</div><div class='add'>+	file and line number of caller.</div><div class='add'>+</div><div class='add'>+2006-12-25  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#app_script_text):</div><div class='add'>+	Simpler, more readable bin script.</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::PristineCommand#execute):</div><div class='add'>+	Regenerate bin scripts.  This will clean up require_gem in scripts.</div><div class='add'>+</div><div class='add'>+2006-12-24  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb (Gem::RemoteFetcher#fetch_path):</div><div class='add'>+	Rescue various errors and return a more-friendly error.</div><div class='add'>+</div><div class='add'>+2006-12-23  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb lib/rubygems/gem_commands.rb: Make help</div><div class='add'>+	output fit in 80 columns.</div><div class='add'>+	* lib/rubygems/rubygems_version.rb: Bump version to 0.9.0.8, beta</div><div class='add'>+	time!  (Oops, didn't go into beta.)</div><div class='add'>+</div><div class='add'>+2006-12-20  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb (Gem::RemoteFetcher#fetch_size): Give</div><div class='add'>+	a sensible error on bad URIs.</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::SourceCommand): Allow management</div><div class='add'>+	of sources in source_cache.  Fixes bug #1128.</div><div class='add'>+	* lib/rubygems.rb (Kernel#require_gem): Add deprecation warning in</div><div class='add'>+	favor of gem.</div><div class='add'>+</div><div class='add'>+2006-12-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::ExtBuilder): Refactored for</div><div class='add'>+	uniformity.</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller#specs_n_sources_matching): Don't display gems</div><div class='add'>+	that can't be installed.</div><div class='add'>+	* lib/rubygems.rb, pre-install.rb: Fix installation errors on 1.9.</div><div class='add'>+	Fixes bug #4536 by Ryan Davis.</div><div class='add'>+	* lib/rubygems/source_index.rb, lib/rubygems/gem_commands.rb,</div><div class='add'>+	lib/rubygems-custom_require.rb: Use File.join with glob strings.</div><div class='add'>+	Fixes bug #1096 submitted by Chad Fowler.</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller#install_dependencies): Make --force actually</div><div class='add'>+	force.  Fixes bug #7365 by Robert James.</div><div class='add'>+</div><div class='add'>+2006-12-18  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands (Gem::OutdatedCommand): Add a way to see</div><div class='add'>+	which gems are out-of-date.</div><div class='add'>+</div><div class='add'>+	* setup.rb: Ignore errors for .config and InstalledFiles when</div><div class='add'>+	the source path is read-only/NFS.  Fixes bugs #1395 and #1374.  Patch</div><div class='add'>+	by Ryan Davis.</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: Pull code out into lib/rubygems/server.rb for</div><div class='add'>+	reusability.  Closes Feature Request #2220 by Chris Morris.</div><div class='add'>+</div><div class='add'>+2006-12-16  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/: Added functional test for extension gems proving that</div><div class='add'>+	non-compiling extensions don't result in success message.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Raise exception if loaded spec is</div><div class='add'>+	nil.  Closes bug #7299.</div><div class='add'>+</div><div class='add'>+	* test/gemenvironment.rb: Clean out gemhome every time to avoid dirty</div><div class='add'>+	directory failing tests.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Change uninstall to require a full gem</div><div class='add'>+	name (not a partial match).  Fixes bug #6007 and related unreported</div><div class='add'>+	issues.</div><div class='add'>+</div><div class='add'>+2006-12-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller): Correctly uninstall</div><div class='add'>+	executables if GEM_HOME is set.  Patch #2264 by Sylvain Joyeux.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::loaded_specs): Expose list of currently loaded</div><div class='add'>+	gems.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands (Gem::UninstallCommand): Allow multiple</div><div class='add'>+	gems to be uninstalled at once.</div><div class='add'>+</div><div class='add'>+2006-12-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* post-install.rb: Don't attempt to read unreadable files.  Fixes</div><div class='add'>+	bug #2851.</div><div class='add'>+</div><div class='add'>+2006-12-13  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* pre-install.rb.rb, post-install.rb: Don't call manage_gems because</div><div class='add'>+	we don't have sources installed yet.  Bump version requirement to</div><div class='add'>+	1.8.2 since rubygems/open-uri.rb was removed.  Should fix bug #6206.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#build_extensions): Capture</div><div class='add'>+	stderr into results when building extensions.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::ContentsCommand): Allow version</div><div class='add'>+	to be passed to gem contents.  Not backwards compatible, -v now -V and</div><div class='add'>+	vice versa.  Select newest gem for contents.  Fixes bugs #2723, #7225.</div><div class='add'>+	Patches by Sava Chankov, Tom Pollard.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InstallCommand#execute): Allow</div><div class='add'>+	install errors to result in non-zero exit code.  Fixes bug #2773.</div><div class='add'>+</div><div class='add'>+2006-12-03  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#install):</div><div class='add'>+	Add :cache_dir option to override the default.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#download_gem): </div><div class='add'>+	Check cache to see if the gem has been cached before downloading.</div><div class='add'>+</div><div class='add'>+2006-12-02  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::OperationNotSupportedError::suffixes,</div><div class='add'>+	Gem::OperationNotSupportedError::suffix_pattern): Removed</div><div class='add'>+	duplicate copies of the SUFFIX_PATTERN by providing a global</div><div class='add'>+	method Gem.suffixes and Gem.suffix_pattern.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb (Gem::open_uri_or_path): Reworked</div><div class='add'>+	the connection options for the open-uri call.  Since we are not</div><div class='add'>+	using the rubygems supplied open_uri, we can use some new options</div><div class='add'>+	available that make proxy handling much easier.</div><div class='add'>+	(Gem::file_uri): Renamed is_file_uri to file_uri?.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/loadpath_manager.rb (Gem::LoadPathManager::self):</div><div class='add'>+	Added .jar to list of suffixes.</div><div class='add'>+</div><div class='add'>+	* test/functional.rb (FunctionalTest::test_env_remotesources):</div><div class='add'>+	Changed test to uses Gem.sources (the sources method on</div><div class='add'>+	remote_fetcher was removed).</div><div class='add'>+</div><div class='add'>+	* test/test_remote_fetcher.rb (TestRemoteFetcher): Renamed some of</div><div class='add'>+	the test constants and instance variables so that they were more</div><div class='add'>+	consistent and explained the tests a wee bit better.</div><div class='add'>+	(TestRemoteFetcher::test_no_proxy): Added assert_data_from_server</div><div class='add'>+	and assert_data_from_proxy to make it clear what the test was</div><div class='add'>+	doing and give better error messages on errors.</div><div class='add'>+	(TestRemoteFetcher::assert_data_from_server): Added</div><div class='add'>+	assert_data_from_server.</div><div class='add'>+	(TestRemoteFetcher::assert_data_from_proxy): Added</div><div class='add'>+	assert_data_from_proxy.</div><div class='add'>+</div><div class='add'>+2006-11-30  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/open-uri.rb: Removed the duplicated library.</div><div class='add'>+</div><div class='add'>+2006-11-30  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification (Gem::Specification#eql?): Allow gemspecs</div><div class='add'>+	to be used intelligently with Array#- and Array#uniq.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Return extension-building results in</div><div class='add'>+	Exception on build failure.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Ensure gems with similar names</div><div class='add'>+	cannot be matched for install.  (Broken when searching was removed</div><div class='add'>+	from RemoteInstaller.)</div><div class='add'>+</div><div class='add'>+2006-11-29  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* post-install.rb: Now requires rbconfig.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb, lib/rubygems/version.rb: Fixed many</div><div class='add'>+	ivar warnings due to YAML specs.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb, lib/rubygems/validator.rb</div><div class='add'>+	(Gem::Validator#unit_test Gem::RemoteInstaller::): Ensure the</div><div class='add'>+	current directory is restored.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb, lib/rubygems/remote_installer.rb,</div><div class='add'>+	lib/rubygems/installer.rb: Raise more-friendly and less-deadly errors.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#install):</div><div class='add'>+	Create version requirement correctly.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller#find_gem_to_install): Allow RemoteInstaller to</div><div class='add'>+	work with SilentUI.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_fetcher.rb (RemoteFetcher#open_uri_or_path):</div><div class='add'>+	Don't double-require open-uri.</div><div class='add'>+</div><div class='add'>+2006-11-27  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb</div><div class='add'>+	(Gem::Specification#default_executable):  Fixed bug where @executables</div><div class='add'>+	could be nil when loaded from index.</div><div class='add'>+</div><div class='add'>+2006-11-21  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem::SourceIndex#latest_specs):  Grab</div><div class='add'>+	the latest versions of everything in the index.  Written by Ryan</div><div class='add'>+	Davis.</div><div class='add'>+</div><div class='add'>+2006-11-20  Rich Kilmer  &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb: Added PristineCommand</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Added PristineCommand to restore</div><div class='add'>+	gems to pristine condition in the event of files begin deleted</div><div class='add'>+	based on the cached .gem file</div><div class='add'>+</div><div class='add'>+2006-11-19  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/*_fetcher.rb: Removed code specific to remote source</div><div class='add'>+	index updating.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::RemoteInstaller#search):</div><div class='add'>+	Moved to Gem::SourceInfoCache#search</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache.rb: Taught to update itself</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_info_cache_entry.rb: Taught to update itself</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb: Taught to update itself from a uri.</div><div class='add'>+</div><div class='add'>+2006-11-18  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Applied Kevin Clark's patch to make</div><div class='add'>+	RubyGems recognize mkrf files.</div><div class='add'>+</div><div class='add'>+2006-11-17  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_remote_fetcher.rb:  Don't allow files in Dir.pwd to make</div><div class='add'>+	tests fail.  Spotted by Chad Fowler.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::RemoteFetcher,</div><div class='add'>+	Gem::CacheFetcher):  Break out of remote_installer.rb into separate</div><div class='add'>+	files.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::SourceInfoCache,</div><div class='add'>+	Gem::SourceInfoCacheEntry):  Allow requiring just the source cache</div><div class='add'>+	without the remote fetcher.</div><div class='add'>+</div><div class='add'>+2006-11-16  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_local_cache.rb: Moved to better name</div><div class='add'>+</div><div class='add'>+	* test/test_gem_source_info_cache.rb: Renamed test methods to match</div><div class='add'>+	implementations.  Sorted test names.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer (Gem::SourceInfoCache): cache_data no</div><div class='add'>+	longer resets dirty flag.  Sped up source cache loading.  Exposed</div><div class='add'>+	cache file name in use.</div><div class='add'>+	</div><div class='add'>+2006-11-15  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* test/, lib/: Made files -w clean.</div><div class='add'>+</div><div class='add'>+	* test/: Made tests run independently.</div><div class='add'>+</div><div class='add'>+	* Rakefile: Tests now run with warnings on.</div><div class='add'>+</div><div class='add'>+2006-11-14  Eric Hodel  &lt;drbrain@segment7.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb (Gem::StreamUI#progress_reporter):</div><div class='add'>+	Fix for Gem.configuration.verbose = nil, false</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::configuration): Fix RakeFileUtils pollution.</div><div class='add'>+</div><div class='add'>+2006-10-05  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer::shebang): Updated to</div><div class='add'>+	optionally call env_shebang if the command line option is set.</div><div class='add'>+	(Gem::Installer::shebang_env): Added this method.</div><div class='add'>+</div><div class='add'>+2006-09-25  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to version</div><div class='add'>+	0.9.0.6.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/security.rb (Gem::Security::Exception): Added</div><div class='add'>+	permissions for cert files and directories.</div><div class='add'>+	(Gem::Security::Policy::verify_gem): File.exists? =&gt; File.exist?</div><div class='add'>+	(Gem::Security::self.verify_trust_dir): Beefed up code to create</div><div class='add'>+	trust directory structure.</div><div class='add'>+	(Gem::Security::self): Apply permissions when creating trust</div><div class='add'>+	files.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (TarInput::initialize): File.exists? =&gt;</div><div class='add'>+	File.exist?</div><div class='add'>+</div><div class='add'>+2006-09-24  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb</div><div class='add'>+	(Gem::OperationNotSupportedError::configuration): Added</div><div class='add'>+	method_missing to configuration hash to allow nicer reference</div><div class='add'>+	syntax.</div><div class='add'>+</div><div class='add'>+2006-09-22  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::initialize): Proxy patch fixup to</div><div class='add'>+	escape user/password from Anatol Pomozov.</div><div class='add'>+	(Gem::RemoteSourceFetcher::connect_to): Proxy patch fixup to</div><div class='add'>+	escape user/password from Anatol Pomozov.</div><div class='add'>+</div><div class='add'>+	* test/test_remote_fetcher.rb (TestRemoteFetcher::setup): Proxy</div><div class='add'>+	patch fixup to escape user/password from Anatol Pomozov.</div><div class='add'>+	(TestRemoteFetcher::test_no_proxy): Proxy patch fixup to escape</div><div class='add'>+	user/password from Anatol Pomozov.</div><div class='add'>+</div><div class='add'>+	* test/io_capture.rb (Gem::IoCapture): Created new IoCapture</div><div class='add'>+	module to handle capturing output of code under test.</div><div class='add'>+</div><div class='add'>+	* test/test_installer.rb</div><div class='add'>+	(TestInstaller::test_generate_bin_symlinks_win32): Removed ugly</div><div class='add'>+	$TESTING hack and substituted new io capture module.</div><div class='add'>+	(TestInstaller::test_install_with_message): Removed one-off stdout</div><div class='add'>+	capture and replaced with new IO Capture module.</div><div class='add'>+</div><div class='add'>+2006-09-19  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to version</div><div class='add'>+	0.9.0.3.</div><div class='add'>+</div><div class='add'>+	* test/test_version_comparison.rb (TestRequirementEquality): Added</div><div class='add'>+	more tests for Dependency equality testing and one additions check</div><div class='add'>+	for requirement vs non-requirement equality.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Dependency::==) Fixed '=' bug in</div><div class='add'>+	'==' code.</div><div class='add'>+</div><div class='add'>+2006-09-18 Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	Only show the last 3 gem versions on a multiplatform remote</div><div class='add'>+	install list.</div><div class='add'>+</div><div class='add'>+2006-09-18  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller::install): Added Hugh Sasse's patch for</div><div class='add'>+	skipping gems on install.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to 0.9.0.2.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Dependency::hash): Added hash code</div><div class='add'>+	--http-proxy, the ENV var http_proxy and with no proxy.</div><div class='add'>+</div><div class='add'>+2006-08-26  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller::download_gem): Fixed download_gems so that</div><div class='add'>+	it properly passes the proxy option to the fetcher class. (based</div><div class='add'>+	on patch by Andy Shen).</div><div class='add'>+</div><div class='add'>+2006-08-12  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/index_gem_repository.rb (Indexer::sanitize): Added a</div><div class='add'>+	sanitize step to the gem index generation in the hope of avoiding</div><div class='add'>+	problems with non-ASCII names in the yaml data.</div><div class='add'>+</div><div class='add'>+2006-06-14  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile (announce): Added 1.9 hack for ENV['CERT_DIR'].  Remove</div><div class='add'>+	this in the future if 1.9 behavior changes.</div><div class='add'>+</div><div class='add'>+2006-06-13  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile: ENV['CERT_DIR'] is now '' rather than nil.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb (Gem::Specification::initialize):</div><div class='add'>+	Eric added some 1.9 compatibility code (funcall vs send).</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (TarOutput::self): Eric added some 1.9</div><div class='add'>+	compatibility code (funcall vs send).</div><div class='add'>+</div><div class='add'>+	* experimental/deployment.rb (Gem::Deployment): Moved the</div><div class='add'>+	deployment code out of the live code base into the experimental</div><div class='add'>+	directory.  The code wasn't used and the tests were not all</div><div class='add'>+	passing.</div><div class='add'>+</div><div class='add'>+2006-06-11  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/gemri: Added gemri to bin directory.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb (Gem::GemPathSearcher::find):</div><div class='add'>+	Added .rbw to suffix pattern in custom_require.</div><div class='add'>+</div><div class='add'>+2006-06-07  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Added copyright notices to all Ruby files.</div><div class='add'>+</div><div class='add'>+2006-04-07  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::RDocCommand::execute): Added</div><div class='add'>+	RI option to the rdoc subcommand.</div><div class='add'>+</div><div class='add'>+2006-04-05  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_parse_commands.rb</div><div class='add'>+	(TestParseCommands::test_parsing_update_options): Fixed unit tests</div><div class='add'>+	to assert that the install dir is expanded.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager::generate_ri):</div><div class='add'>+	Break out from generate_rdoc to support installing all RI docs</div><div class='add'>+	first.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb</div><div class='add'>+	(Gem::InstallUpdateOptions::add_install_update_options): Expanded</div><div class='add'>+	repository directory to absolute path.</div><div class='add'>+	(Gem::InstallCommand::execute): Make sure that *all* of the RI</div><div class='add'>+	documents are generated before generating any RDocs (due to a bug</div><div class='add'>+	in the RDoc library).</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::ExtExtConfBuilder::self): Fixed</div><div class='add'>+	typo in ExtExtConfBuilder that prevented C based gems to install.</div><div class='add'>+	(Gem::ExtExtConfBuilder::self): Installed patch to prevent the</div><div class='add'>+	overriding of target_prefix in native extensions (thanks to Aaron</div><div class='add'>+	Patterson for the patch).</div><div class='add'>+</div><div class='add'>+2006-04-04  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped to version</div><div class='add'>+	0.8.11.10.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/incremental_fetcher.rb</div><div class='add'>+	(Gem::IncrementalFetcher::update_cache): Now falls back to bulk</div><div class='add'>+	updates if the number of gems if over 50.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::source_index): Added "bulk" to the</div><div class='add'>+	update message to differentiate it from the incremental message.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb</div><div class='add'>+	(Gem::Specification::Specification): Modified to add dashes to</div><div class='add'>+	gemspecs generated under Ruby 1.8.3.  This makes it easier to run</div><div class='add'>+	RubyGems on a 1.8.2 system.</div><div class='add'>+</div><div class='add'>+2006-04-01  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager::run_rdoc): Changed</div><div class='add'>+	exception handler to print error message if document generation</div><div class='add'>+	fails, but then to continue with the rest of the installation.</div><div class='add'>+	Permission errors still terminate the install because if one</div><div class='add'>+	install fails because of permission problems, chances are that all</div><div class='add'>+	will fail.</div><div class='add'>+	(Gem::DocManager::install_ri): Removed wrapping of exceptions with</div><div class='add'>+	DocumentError.  Most exceptions now don't propagate out of</div><div class='add'>+	run_rdoc.</div><div class='add'>+	(Gem::DocManager::install_rdoc): Removed wrapping of exceptions</div><div class='add'>+	with DocumentError.  Most exceptions now don't propagate out of</div><div class='add'>+	run_rdoc.</div><div class='add'>+</div><div class='add'>+2006-02-23  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* bin/index_gem_repository.rb (MasterIndexBuilder::cleanup): Fixed</div><div class='add'>+	bug where we were trying to read the index file (to compress it)</div><div class='add'>+	before it was closed, often leading to a truncated index file.</div><div class='add'>+</div><div class='add'>+Tue Jan 24 16:26:13 2006  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/config_file.rb</div><div class='add'>+	Luca Pireddu reported a fatal error when permissions on</div><div class='add'>+	.gemrc were too restrictive.  Fixed.</div><div class='add'>+</div><div class='add'>+Tue Dec  6 14:51:13 2005  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb</div><div class='add'>+		(Gem::SourceIndex::load_specification): Added an untaint call to</div><div class='add'>+		make the code run in SAFE=1 mode under 1.8.3.</div><div class='add'>+	(Gem::SourceIndex::load_gems_in): Untaint here too.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer::install): Untaint</div><div class='add'>+		here too.</div><div class='add'>+	(Gem::Installer::extract_files): Untaint here too.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb</div><div class='add'>+		(Gem::GemPathSearcher::matching_file): Untaint here too.</div><div class='add'>+</div><div class='add'>+	* test/gemenvironment.rb: Added $SAFE=1 to the test environment to</div><div class='add'>+		make sure we can run in $SAFE mode.</div><div class='add'>+</div><div class='add'>+2005-12-03  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Bumped version to</div><div class='add'>+	0.8.11.6'</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb</div><div class='add'>+	(Gem::StreamUI::SimpleProgressReporter::done): Added several new</div><div class='add'>+	progress reporters.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb</div><div class='add'>+	(Gem::Command::specific_extra_args_hash): Added --verbose</div><div class='add'>+	processing.</div><div class='add'>+	</div><div class='add'>+	* lib/rubygems/config_file.rb (Gem::ConfigFile::handle_arguments):</div><div class='add'>+	Added --traceback as alias for --backtrace (I always get them</div><div class='add'>+	confused).</div><div class='add'>+	(Gem::ConfigFile::initialize): Added a verbose option.</div><div class='add'>+</div><div class='add'>+2005-11-28  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::SourceInfoCacheEntry::replace_source_index): Fixed the</div><div class='add'>+	SourceIndexCacheEntry so that it will manufacture an empty source</div><div class='add'>+	index if given a nil value for the +si+ value.</div><div class='add'>+</div><div class='add'>+2005-11-08  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems.rb: Ara Howard's fix to allow 0.0.0 to be a valid gem</div><div class='add'>+	version.</div><div class='add'>+</div><div class='add'>+2005-11-08  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Fixed bug in gem unpack.  It was</div><div class='add'>+	sorting incorrectly, resulting in the wrong version being unpacked in</div><div class='add'>+	some edge cases. Thanks to Jakob Skjerning for the detailed bug report.</div><div class='add'>+</div><div class='add'>+2005-11-03  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: Fixed bug that would cause the executables</div><div class='add'>+	from the wrong gem to be uninstalled if the names matched the same</div><div class='add'>+	regex.  Thanks Eric Hodel.</div><div class='add'>+</div><div class='add'>+2005-11-01  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::UpdateCommand::initialize):</div><div class='add'>+	Upgrade =&gt; Update change.</div><div class='add'>+	(Gem::UpdateCommand::execute): Upgrade =&gt; Update change.</div><div class='add'>+	(Gem::UpdateCommand::execute): Upgrade =&gt; Update change.</div><div class='add'>+</div><div class='add'>+2005-11-01  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Allow gem unpack to accept a gem file</div><div class='add'>+	path instead of gem name: gem unpack mygem-1.0.0.gem.</div><div class='add'>+</div><div class='add'>+2005-10-31  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: Tilman Sauerbeck's patch to support</div><div class='add'>+	extensions built with Rake!</div><div class='add'>+</div><div class='add'>+2005-09-13  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (TarInput::initialize): Removed</div><div class='add'>+	requirement for SSL when signatures are found in a gem.  Only</div><div class='add'>+	require SSL if the security policy requires checking the</div><div class='add'>+	signatures.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb (Kernel::require): Disabled</div><div class='add'>+	autorequire during custom require.</div><div class='add'>+</div><div class='add'>+2005-09-07  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_openssl.rb (Gem::ensure_ssl_available): Added a</div><div class='add'>+	test in gem_openssl to make sure the ruby portion of ssl is also</div><div class='add'>+	loaded.</div><div class='add'>+</div><div class='add'>+2005-08-31  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile (install): Changed the rake install task to use setup.rb.</div><div class='add'>+</div><div class='add'>+2005-07-08  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Applied Daniel Roux's patch</div><div class='add'>+	to make RubyGems work with authenticating proxies.</div><div class='add'>+</div><div class='add'>+2005-07-08  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Preparing for release 0.8.11.</div><div class='add'>+</div><div class='add'>+2005-06-12  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb</div><div class='add'>+	(Gem::Installer::installation_satisfies_dependency): Refactored</div><div class='add'>+	dependency check into ensure_dependency! and</div><div class='add'>+	installation_satisfies_dependency?.</div><div class='add'>+</div><div class='add'>+2005-06-12  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems.rb,lib/rubygems/installer.rb: Applied Mark Hubbart's</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Applied David Glasser's install-</div><div class='add'>+	* Applied Paul Duncan's incredibly complete gem signing patch.</div><div class='add'>+	Thanks, Paul!</div><div class='add'>+	* lib/rubygems/installer.rb: Fixed bug in installer that caused</div><div class='add'>+	dependency installation not to work.</div><div class='add'>+</div><div class='add'>+2005-06-06  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/specification.rb: Fixed Erik hatcher's reported bug</div><div class='add'>+	of gem directories having "-" at the end of their names (e.g.</div><div class='add'>+	"BlueCloth-1.0.0-".</div><div class='add'>+</div><div class='add'>+2005-06-01  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* scripts/specdoc.rb (_resolve_links): Updated to generate hieraki</div><div class='add'>+	format so it can be included in the docs.rubygems.org site.</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb (TestSpecification::test_to_ruby):</div><div class='add'>+	Fixed test on date that hard-coded a specific date.</div><div class='add'>+</div><div class='add'>+2005-05-29  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Changes from the Seattle Code fest: (1) Package list command</div><div class='add'>+	(e.g. gem inspect GEM).  (2) .gemrc settings now allow cvsrc like</div><div class='add'>+	options to set defaults per subcommand.  (3) The autorequire spec</div><div class='add'>+	attribute will now accept a list.  (4) Binwrappers vs symlinks</div><div class='add'>+	(more info to follow).  (5) Substituted Time for Date in specs,</div><div class='add'>+	increasing performance dramatically in an important area.</div><div class='add'>+</div><div class='add'>+2005-05-04  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::find_home): Changed rescue</div><div class='add'>+	clause from Exception to StandardError.  Exception doesn't seem to</div><div class='add'>+	catch everything ... I'm not sure I understand why.</div><div class='add'>+</div><div class='add'>+2005-04-29  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/specifiation.rb: Marcel Molina's patch to discover</div><div class='add'>+	which attributes in the spec are Array attributes.</div><div class='add'>+</div><div class='add'>+2005-04-27  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: -y is now a synonym for </div><div class='add'>+	--include-dependencies</div><div class='add'>+</div><div class='add'>+2005-04-21  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: Added non-require_gem dependency check</div><div class='add'>+	for installation.</div><div class='add'>+</div><div class='add'>+2005-04-03  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* pre-install.rb: Added version check to RubyGems installation.</div><div class='add'>+</div><div class='add'>+2005-03-25  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/rubygems_version.rb (Gem): Created release for</div><div class='add'>+	0.8.10.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb</div><div class='add'>+	(Gem::UpdateCommand::do_rubygems_update): Update --system now runs</div><div class='add'>+	the ruby command directly rather than trying to load the</div><div class='add'>+	update-rubygems command.  There were too many things to go wrong</div><div class='add'>+	with the old way.</div><div class='add'>+</div><div class='add'>+2005-03-24  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller::find_dependencies_not_installed): Fixed to</div><div class='add'>+	reload source index before attempting to detect dependencies.</div><div class='add'>+</div><div class='add'>+2005-03-23  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller::find_dependencies_not_installed): Switched</div><div class='add'>+	to using SourceIndex#find_name to detect missing dependencies,</div><div class='add'>+	avoiding a gem activation during an install.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer::install): Removed</div><div class='add'>+	activate call from install step.  If we need to do something about</div><div class='add'>+	dependencies at this time, then we need a better way to do them.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Removed the require for rubygems/timer.</div><div class='add'>+</div><div class='add'>+2005-03-16  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/gemenvironment.rb (TestEnvironment::create): Added require</div><div class='add'>+	on gem/builder.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem::SourceIndex::initialize):</div><div class='add'>+	Allowing default argument to new to be an empty hash.</div><div class='add'>+	(Gem::SourceIndex::from_installed_gems): Refactored into a class</div><div class='add'>+	method that invokes a instance method.</div><div class='add'>+	(Gem::SourceIndex::refresh): Refresh now does a complete reload</div><div class='add'>+	from disk.  This should be more accurate that the earlier version.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::uninstall): removed</div><div class='add'>+	unneeded refresh!.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::source_index): Removed</div><div class='add'>+	automatic refresh from Gem.source_index ... it wasn't reliable</div><div class='add'>+	when removing installed gems.</div><div class='add'>+	(Gem::Exception::activate): Added detection of previously loaded</div><div class='add'>+	gems.</div><div class='add'>+</div><div class='add'>+2005-03-15  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: (htonl) rdoc opens in existing browser window.</div><div class='add'>+</div><div class='add'>+2005-03-14  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Released 0.8.8</div><div class='add'>+	</div><div class='add'>+2005-03-14  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Released 0.8.7</div><div class='add'>+	</div><div class='add'>+2005-03-13  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer#shebang): Refactored and</div><div class='add'>+	stripped result to avoid ^M issues.</div><div class='add'>+</div><div class='add'>+2005-03-11  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::DependencyCommand): Added a</div><div class='add'>+	new command "gem dependency" to show the dependencies of an</div><div class='add'>+	installed gem.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::CommandManager::initialize):</div><div class='add'>+	Added DependencyCommand to the command manager registrar.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Requirement): Unnested Requirement</div><div class='add'>+	from the Version class.  There was no benefit to having it nested.</div><div class='add'>+	Gem::Version::Requirement is set to point to the new class so to</div><div class='add'>+	be compatible with old gems.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::ask_if_ok): Changed</div><div class='add'>+	uninstaller confirm message to read 'Continue with uninstall'.</div><div class='add'>+	Its clearer that way.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::required_location): Switch to</div><div class='add'>+	use SourceIndex#find_name rather than search.  Made sure a nil</div><div class='add'>+	value is returned with a path is not found.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem::SourceIndex::search): Changed</div><div class='add'>+	parameter name to gem_pattern to emphasize using Regex in search.</div><div class='add'>+	(Gem::SourceIndex::find_name): Added find_name to handle the</div><div class='add'>+	common case of searching for an exact match on the short name.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::activate): Make sure that</div><div class='add'>+	activate more closely adheres to honoring the auto_require=&gt;false</div><div class='add'>+	request.</div><div class='add'>+	(Gem::Exception::report_activate_error): Out of line error</div><div class='add'>+	reporting for activate.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller::find_dependencies_not_installed): Found</div><div class='add'>+	another location that was using require_gem with auto_require.</div><div class='add'>+	Fixed to use :auto_require=&gt;false.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb</div><div class='add'>+	(Gem::InstallUpdateOptions::add_install_update_options): Added</div><div class='add'>+	--ignore-dependencies option.  Still needs to be wired to logic.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Installer::install): Added call</div><div class='add'>+	to require_gem_with_options.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Kernel::require_gem_with_options): Added to</div><div class='add'>+	allow easier specification of the autorequire flag for</div><div class='add'>+	Gem.activate.</div><div class='add'>+</div><div class='add'>+2005-03-10  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::normalize_uri): Normialize a URI to</div><div class='add'>+	start with http:// if it does not already.</div><div class='add'>+</div><div class='add'>+	* test/test_deployment.rb (TestDeployment::xtest_deploy_sources):</div><div class='add'>+	Disabled this test.  It is part of the new deployment software and</div><div class='add'>+	is not working yet.</div><div class='add'>+</div><div class='add'>+2005-03-09  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/gemconfigure.rb (Gem::self): Added to aid dynamic</div><div class='add'>+	versioning.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command::command_manager): Moved</div><div class='add'>+	command_manager to base class.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::CleanupCommand::execute):</div><div class='add'>+	Both implicit and explicit gems now work with cleanup.  </div><div class='add'>+</div><div class='add'>+2005-03-08  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::ok_to_remove):</div><div class='add'>+	Fixed source index to be loaded from the installed gems when doing</div><div class='add'>+	an "OK TO REMOVE" dependency check.</div><div class='add'>+</div><div class='add'>+2005-03-06  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* lib/rubygems/deployment.rb: beginning of a deployment capability</div><div class='add'>+</div><div class='add'>+	* test/test_deployment.rb: first tests of new deployment system</div><div class='add'>+</div><div class='add'>+2005-03-04  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Small bugfix for the case when you</div><div class='add'>+	pass in a gem name (or more) to cleanup for the cleanup command.</div><div class='add'>+</div><div class='add'>+2005-03-04  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::ok_to_remove):</div><div class='add'>+	Reworked logic in uninstall to be intelligent about dependencies.</div><div class='add'>+	We only complain about dependencies if removing a gem will cause a</div><div class='add'>+	dependency error.  The uninstaller now checks for :ignore, :all</div><div class='add'>+	and :executables options.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::CommandManager::initialize):</div><div class='add'>+	Registered Cleanup command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::CleanupCommand): Added</div><div class='add'>+	Cleanup command to gem.</div><div class='add'>+	(Gem::UninstallCommand::initialize): Added --all, --ignore and</div><div class='add'>+	--executables options to uninstall.  This helps to avoid excessive</div><div class='add'>+	YESes all the time.</div><div class='add'>+</div><div class='add'>+2005-02-28  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::LocalSourceInfoCache::write_cache): Open cache file in</div><div class='add'>+	binary mode.</div><div class='add'>+</div><div class='add'>+2005-02-28  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/config_file.rb: don't warn about not being able to</div><div class='add'>+	find config file.</div><div class='add'>+	* lib/rubygems/doc_manager.rb: (for DHH) don't install rdoc docs for</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Print which gems are updated on 'gem</div><div class='add'>+	update'.  If --system is used, report that the rubygems system</div><div class='add'>+	software has been updated.</div><div class='add'>+	* lib/rubygems/installer.rb: Cleaned up the uninstall has_dependents</div><div class='add'>+	logic and output.  It was misleading and buggy before.</div><div class='add'>+</div><div class='add'>+2005-02-27  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/config_file.rb</div><div class='add'>+	(Gem::ConfigFile::default_config_file_name): Fixed bug in finding</div><div class='add'>+	home directory for the .gemrc file.</div><div class='add'>+</div><div class='add'>+2005-02-27  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* Released 0.8.6</div><div class='add'>+</div><div class='add'>+	* Fixed a small bug with shebang construction</div><div class='add'>+</div><div class='add'>+2005-02-26  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Released 0.8.5</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc):</div><div class='add'>+	Removed warning about generating rdocs on gems w/o an rdoc flag.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb</div><div class='add'>+	(Gem::UpdateCommand::do_rubygems_update): Added --system option to</div><div class='add'>+	update to specifically update the version of rubygems.</div><div class='add'>+	(Gem::UpdateCommand::which_to_update): Fixed some refactoring bugs</div><div class='add'>+	in the which_to_update method.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::LocalSourceInfoCache::read_cache): switched to Marshal</div><div class='add'>+	rather than Yaml for local cache.</div><div class='add'>+</div><div class='add'>+	* bin/gem: Added requirement for Ruby &gt;= 1.8.0.</div><div class='add'>+</div><div class='add'>+2005-02-10  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* bin/gem_server: Added Martin Ankerl's wonderful new gem_server</div><div class='add'>+	template</div><div class='add'>+</div><div class='add'>+2005-01-27  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Fixed</div><div class='add'>+	`gem update` so it accepts a list of gems to update and _only_</div><div class='add'>+	updates those.</div><div class='add'>+	* lib/rubygems/installer.rb: Fixed a bug in the new shebang code.</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Attempt to fix Curt Hibbs'  </div><div class='add'>+	reported Proxy bug without actually having a proxy to test with.</div><div class='add'>+</div><div class='add'>+2005-01-22  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/custom_require.rb: Lyle Johnson's fix for Bug #1379</div><div class='add'>+</div><div class='add'>+2005-01-20  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/validator.rb: Applied Austin Ziegler/Kasper Schiess's</div><div class='add'>+	patch to fix unit test running bug.</div><div class='add'>+</div><div class='add'>+2005-01-14  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: attempt at fixing Ryan Davis's</div><div class='add'>+	reported Shebang bug.  STILL NOT WORKING, because it doesn't work</div><div class='add'>+	with ^M characters.</div><div class='add'>+	* lib/rubygems/config_file.rb: small but ugly error fixed if no</div><div class='add'>+	config file exists.</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Fixed bug http://rubyforge.org/tracker/index.php?func=detail&amp;aid=1331&amp;group_id=126&amp;atid=575.</div><div class='add'>+</div><div class='add'>+2005-01-01  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* Released 0.8.4</div><div class='add'>+</div><div class='add'>+2004-12-31  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile: Switch to standard Rake test tasks.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::read_data): Added a retry to try a</div><div class='add'>+	lower case gem name if the open failed.  This fixes a problem</div><div class='add'>+	where case differences are preventing some gems from installing.</div><div class='add'>+</div><div class='add'>+2004-12-29  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InstallCommand::execute):</div><div class='add'>+	Changed the RemoteInstaller to take an options hash rather than</div><div class='add'>+	individual options.  This will leave the interface more resilient</div><div class='add'>+	to changes as more options are added</div><div class='add'>+	(e.g. --install_dependencies).</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb (Gem::Specification): Marked array</div><div class='add'>+	attributes explicitly.  This allows for explicit conversion to</div><div class='add'>+	arrays when assigned.</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestSimpleSpecification::test_array_attributes): Added test for</div><div class='add'>+	array_attributes forcing values to arrays.</div><div class='add'>+</div><div class='add'>+2004-12-28  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::ensure_gem_subdirectories):</div><div class='add'>+	Fixed the Ryan Davis patch to work correctly when directories are</div><div class='add'>+	not writable.</div><div class='add'>+	</div><div class='add'>+2004-12-18  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/version.rb: Erik Veenstra's sort patch.</div><div class='add'>+	* lib/rubygems.rb: Ryan Davis's installation bug fix.</div><div class='add'>+</div><div class='add'>+2004-12-14  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_loadmanager.rb: invalidated it as a unit test; it's</div><div class='add'>+	incompatible with custom_require.rb.</div><div class='add'>+</div><div class='add'>+2004-12-12  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb: simple bug fix.</div><div class='add'>+</div><div class='add'>+2004-12-12  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/custom_require.rb: new file to replace</div><div class='add'>+	loadpath_manager.rb and speed up the custom require functionality.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/timer.rb: new file; simple benchmarking tool that's</div><div class='add'>+	useful at the moment but needn't stay in RubyGems permanently.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb: include Enumerable and implement #size</div><div class='add'>+	and #length.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: removed lazy initialisation of</div><div class='add'>+	attributes to reduce #copy_of invocations; folded</div><div class='add'>+	Specification.copy_of into Specification#copy_of.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: require 'rubygems/custom_require' instead of</div><div class='add'>+	'rubygems/loadpath_manager'; removed out of date documentation; added</div><div class='add'>+	"require 'rubygems/timer'" to temporarily assist with benchmarks.</div><div class='add'>+</div><div class='add'>+2004-12-07  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* Released 0.8.3</div><div class='add'>+</div><div class='add'>+2004-12-06  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestLegacyYamlSpecification::test_load): Fixed test to avoid the</div><div class='add'>+	__FILE__ stuff.  Running tests from rakefile guarantees that the</div><div class='add'>+	file paths start from the right location.</div><div class='add'>+</div><div class='add'>+	* pkgs/sources/sources.gemspec: Made Gem.sources_spec idempotent.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb (Gem::Specification::initialize):</div><div class='add'>+	Added @@gather to Gem::Specification to facilitate proper loads.</div><div class='add'>+	(Gem::Specification::Specification): Added Specification.load.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/source_index.rb (Gem::SourceIndex): Fixed comments</div><div class='add'>+	'long name' =&gt; 'full name'.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::BuildCommand::load_gemspecs):</div><div class='add'>+	Changed to use Gem.Specification.load.</div><div class='add'>+</div><div class='add'>+	* Rakefile: Added sources-*.gem to clobber list.</div><div class='add'>+	(egrep): Upgraded the DBG finder to include breakpoint.</div><div class='add'>+</div><div class='add'>+	* post-install.rb (install_sources): Using block version of chdir.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::LocalSourceInfoCache::read_cache): Fixed initialization of</div><div class='add'>+	cache.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Updated version to 0.8.2.</div><div class='add'>+</div><div class='add'>+2004-12-04  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::LocalSourceInfoCache::writable_file): Now just returns the</div><div class='add'>+	selected cache file (which was selected based on writability).</div><div class='add'>+	(Gem::LocalSourceInfoCache::try_file): Added try_file to determine</div><div class='add'>+	if a file is a candidate for a cache file.</div><div class='add'>+	(Gem::LocalSourceInfoCache::select_cache_file): Added failure if</div><div class='add'>+	there are not valid cache file candidates.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception): Renamed @@cache to</div><div class='add'>+	@@source_index.</div><div class='add'>+	(Gem::Exception::source_index): Renamed Gem.cache to</div><div class='add'>+	Gem.source_index (but left cache as an alias).</div><div class='add'>+</div><div class='add'>+2004-12-03  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::LocalSourceInfoCache):</div><div class='add'>+	Added a local cache manager object to implement the read/write</div><div class='add'>+	policies on the system and user cache files.</div><div class='add'>+	(Gem::LocalSourceInfoCache::update): Added update and flush to the</div><div class='add'>+	caching fetcher so that it knows when it needs to update the local</div><div class='add'>+	cache files.</div><div class='add'>+	(Gem::RemoteInstaller::initialize): Switched to using a cached</div><div class='add'>+	fetcher in the remote installer.  All the caching logic was</div><div class='add'>+	removed from the installer.  User writable cache files are now</div><div class='add'>+	supported.</div><div class='add'>+	(Gem::RemoteInstaller::write_gem_to_file): write_gem_to_file now</div><div class='add'>+	will create the path if needed.</div><div class='add'>+</div><div class='add'>+2004-12-02  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/package.rb (TarInput::zipped_stream): To workaround</div><div class='add'>+	a problem with earlier than 1.2.1, we read the zipped data into a</div><div class='add'>+	string, and then return an IO object on that string.</div><div class='add'>+	(TarInput::each): Refactored getting a stream to the zipped data</div><div class='add'>+	into &lt;tt&gt;zipped_stream&lt;/tt&gt;.</div><div class='add'>+</div><div class='add'>+2004-12-01  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::convert_spec): We now proprocess the</div><div class='add'>+	yaml string data to reduce it in size.  This was done to</div><div class='add'>+	workaround a problem with large YAML files (although it is just a</div><div class='add'>+	temporary fix because our yaml data keeps growing and growing).</div><div class='add'>+</div><div class='add'>+	* Rakefile: Added more targets to the clobber target.</div><div class='add'>+</div><div class='add'>+	* test/test_remote_fetcher.rb</div><div class='add'>+	(TestRemoteFetcher::test_explicit_proxy): Added tests for proxy</div><div class='add'>+	support.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::connect_to): Refactored to add proxy</div><div class='add'>+	support.</div><div class='add'>+</div><div class='add'>+2004-11-28  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/loadpath_manager.rb: Added Mauricio's patch to work</div><div class='add'>+	around string contains null byte issue.</div><div class='add'>+</div><div class='add'>+2004-11-27  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteSourceFetcher::get_size): Switched from open-uri with</div><div class='add'>+	early abort to an HTTP.head call to get the size of the yaml file</div><div class='add'>+	on the server.</div><div class='add'>+</div><div class='add'>+2004-11-26  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestDefaultSpecification::test_defaults): Added test for some</div><div class='add'>+	basic defaults in a gem spec.</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb (MockFetcher::source_info): Made</div><div class='add'>+	the fake test data more realistic.</div><div class='add'>+	(TestRemoteInstaller::test_source_info): Improved tests.</div><div class='add'>+</div><div class='add'>+2004-11-26  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb (MockFetcher): Added MockFetcher</div><div class='add'>+	to make testing the remote installer easier. Currently there are</div><div class='add'>+	two remote installer test classes.  Eventually TestRemoteInstaller</div><div class='add'>+	will succeed RemoteInstallerTest, which is very incomplete.</div><div class='add'>+</div><div class='add'>+	* test/test_package.rb (TC_TarReader::TC_TarInput): Made the unit</div><div class='add'>+	test ignore the setgid bit.  The setgid bit doesn't work on my</div><div class='add'>+	laptop for some reason.  This may be a problem with my laptop</div><div class='add'>+	rather than with this code.  Should investigate further.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb (Gem::RemoteSourceFetcher):</div><div class='add'>+	Added a Fetcher object to the remote installer to handle all the</div><div class='add'>+	details of getting the remote information.  This allows testing</div><div class='add'>+	the logic of the remote installer without actually doing remote</div><div class='add'>+	calls.</div><div class='add'>+	(Gem::RemoteInstaller::sources): Renamed get_caches to</div><div class='add'>+	source_info.  The problem is that cache is too generic and there</div><div class='add'>+	are actually several things that we will cache in the system.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb (Gem::Cache::self): Changed interface to</div><div class='add'>+	from_installed_gems slightly.</div><div class='add'>+	(Gem::Cache::self): Reordered rescue clauses so that the syntax</div><div class='add'>+	exception might actually be handled.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::ensure_gem_subdirectories):</div><div class='add'>+	Dumped the check_gem_subdirectories method to use the almost</div><div class='add'>+	identical ensure_gem_subdirectories method.</div><div class='add'>+	(Gem::Exception::ensure_gem_subdirectories): Only attempt to</div><div class='add'>+	create the gem subdirectories if we can actually write them.</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: Added date of last file modification to header</div><div class='add'>+	of /yaml.  This is in preparation for using a head command with</div><div class='add'>+	date/time stamping in fetching the source cache.</div><div class='add'>+</div><div class='add'>+2004-11-25  Ryan Davis &lt;ryand@zenspider.com&gt;</div><div class='add'>+	* lib/rubygems.rb: Added GEM_SKIP functionality, which will tell</div><div class='add'>+	loadpath_manager not to load specific libs from gems.  For</div><div class='add'>+	testing/ development purposes.  Created by Ryan Davis.</div><div class='add'>+</div><div class='add'>+2004-11-24  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/specification.rb: Allow multiple authors per gem.</div><div class='add'>+	* lib/rubygems/gem_commands.rb: command line error message if you</div><div class='add'>+	run 'gem install' with no args.</div><div class='add'>+	* lib/rubygems/loadpath_manager.rb: Fixed @specs bug as reported by</div><div class='add'>+	Lothar Schulz on ruby-talk.</div><div class='add'>+</div><div class='add'>+2004-11-07  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems.rb,lib/rubygems/installer.rb,lib/rubygems/cache.rb</div><div class='add'>+	lib/rubygems/remote_installer.rb,lib/rubygems/gem_commands.rb: </div><div class='add'>+	Fixes to make non-root installation work properly.  Still need to</div><div class='add'>+	fix uninstallation.</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Allow multiple gems/gem names on the</div><div class='add'>+	command line for install.</div><div class='add'>+</div><div class='add'>+2004-10-31  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/version.rb,test/test_version_comparison.rb: Patrick May's</div><div class='add'>+	* post-install.rb: Patrick May's fix for rubygems lib not being found</div><div class='add'>+	during install.</div><div class='add'>+</div><div class='add'>+2004-10-29  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* packages/,pkgs,install.rb: renamed "packages" to "pkgs" to avoid</div><div class='add'>+	* remote_installer.rb: Added user-agent reporting for remote</div><div class='add'>+	operations</div><div class='add'>+	* setup.rb,install.rb,bin/update_rubygems: removed install.rb and </div><div class='add'>+	added setup.rb and post-install.rb.  Changed update_rubygems so that</div><div class='add'>+	params passed to it can be passed on to setup.rb</div><div class='add'>+		</div><div class='add'>+2004-10-25  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb</div><div class='add'>+	(Gem::Uninstaller::remove_executables): Corrected spelling of</div><div class='add'>+	"addtion".</div><div class='add'>+</div><div class='add'>+2004-10-24  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Version::Requirement::self): Now</div><div class='add'>+	properly handles arrays of version constraints.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/loadpath_manager.rb</div><div class='add'>+	(Gem::LoadPathManager::Gem::Specification): Added comments</div><div class='add'>+	describing the fast Spec class purpose. Added to_s to</div><div class='add'>+	Gem::Specification (both fast and slow versions).</div><div class='add'>+	(Gem::LoadPathManager.paths): Returns (cached) list of gem paths.</div><div class='add'>+	(Gem::LoadPathManager::self): Refactored to use glob_over in</div><div class='add'>+	search_loadpaths and search_gempaths.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Added some requires.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb (Gem::Cache::refresh): Fixed refresh! to</div><div class='add'>+	call load_specification on the Cache class, not on itself.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::activate): added comments to</div><div class='add'>+	activate.  Also made sure that partial name matches in the gem</div><div class='add'>+	cache search were avoided.</div><div class='add'>+	(Gem::Exception::clear_paths): Added code to clear the gem cache</div><div class='add'>+	when reseting the gem paths.</div><div class='add'>+	(Gem::Exception::require): Added a function to take a gem name and</div><div class='add'>+	a library file name (in that gem) and return a path to the library</div><div class='add'>+	in the gem.  David HH was interested in this in order to speed up</div><div class='add'>+	some require statements under ModRuby.  Eventually I hope we won't</div><div class='add'>+	need these special tricks.</div><div class='add'>+	(Gem::Exception::latest_partials): Fixed bug that assumed exactly</div><div class='add'>+	three digits in a version number.</div><div class='add'>+</div><div class='add'>+	* Rakefile (egrep): Added two tasks to find all the FIXME/TODO</div><div class='add'>+	markers in the source code comments and to find the DBG print</div><div class='add'>+	lines.</div><div class='add'>+</div><div class='add'>+2004-10-23  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestSimpleSpecification::test_add_bindir_to_list_of_files):</div><div class='add'>+	Verify that an executable doesn't need the bindir if bindir is</div><div class='add'>+	set.</div><div class='add'>+	(TestSimpleSpecification::test_no_bindir_in_list_of_files): Added</div><div class='add'>+	test the verify that exectuable can be written without a default</div><div class='add'>+	binder.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb</div><div class='add'>+	(Gem::Installer::generate_bin_scripts): Added check so that the</div><div class='add'>+	bindir is access only when there are actually executables to</div><div class='add'>+	install.  Checking for an installable bindir was giving permission</div><div class='add'>+	errors when installing test gems.</div><div class='add'>+</div><div class='add'>+2004-10-21  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: Show extension build errors during install</div><div class='add'>+	in addition to logging them to gem_make.out</div><div class='add'>+</div><div class='add'>+2004-10-02  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb,lib/rubygems/gem_commands.rb: Added</div><div class='add'>+	--test option for "gem check" that runs unit tests on already-</div><div class='add'>+	installed gems.</div><div class='add'>+</div><div class='add'>+2004-09-30  Rich Kilmer  &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb -  externalized the loaded_from runtime </div><div class='add'>+	var on specification</div><div class='add'>+	* lib/rubygems/cache.rb - optimized cache refresh! method and refactored </div><div class='add'>+	processing of files when building cache.</div><div class='add'>+	* lib/rubygems/loadpath_manager.rb - fixed bug in loadpath manager in </div><div class='add'>+	finding native extensions that have ext on os x, win32 and solaris</div><div class='add'>+</div><div class='add'>+2004-09-20  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb:  If file match during local install is</div><div class='add'>+	a directory, don't try to treat it erroneously as a gem (bug reported</div><div class='add'>+	by Rich).</div><div class='add'>+	* lib/rubygems.rb:  Fixed small bug in #latest_load_paths</div><div class='add'>+</div><div class='add'>+	(NOTE: It looks like 0.8.0/0.8.1 was released in this timeframe)</div><div class='add'>+	</div><div class='add'>+2004-09-14  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems.rb: Fixed bug in require_gem (thanks Jamis Buck!)</div><div class='add'>+	that would require a gem based on an inexact search of its name</div><div class='add'>+	in the local cache.  This caused copland-webrick to be loaded</div><div class='add'>+	when a request was made for "copland".</div><div class='add'>+</div><div class='add'>+2004-09-12  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/specification.rb, test/test_specification.rb: Removed</div><div class='add'>+	library_stubs attribute.</div><div class='add'>+</div><div class='add'>+2004-09-12  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* scripts/specdoc.rb: Check that all attributes are documented; and</div><div class='add'>+	  improved formatting.</div><div class='add'>+	* scripts/specdoc.yaml: test_suite_file -&gt; test_files; finished</div><div class='add'>+	  documentation.</div><div class='add'>+	* scripts/specdoc.data: misc changes.</div><div class='add'>+</div><div class='add'>+2004-09-11  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_parse_commands.rb: Fix failing unit tests due to Rich's fix from</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Add bindir to executable path on file list</div><div class='add'>+</div><div class='add'>+2004-09-11  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb - got rid of stub options</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/install.rb - changed output of messages so the UI would format</div><div class='add'>+	better </div><div class='add'>+</div><div class='add'>+	* bin/gem_server - exit! from ^c</div><div class='add'>+</div><div class='add'>+2004-09-09  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/loadpath_manager.rb: Small bug when gem specs have ruby </div><div class='add'>+	version requirements.</div><div class='add'>+	* lib/rubygems/specification.rb, lib/rubygems/gem_commands.rb: Fixed failing</div><div class='add'>+	functional test.</div><div class='add'>+</div><div class='add'>+2004-09-08  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* install.rb: added stub removal to the install process</div><div class='add'>+</div><div class='add'>+2004-09-06  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* test/test_package.rb: Fixed failing unit test as per Mauricio's email to </div><div class='add'>+	the rubygems list.</div><div class='add'>+	* Fixed minor issues with Windows cmd file generation.</div><div class='add'>+</div><div class='add'>+2004-09-06  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* lib/rubygems/remote_installer.rb - enabled caching of source caches</div><div class='add'>+	based on the size of the yaml.Z/yaml file.</div><div class='add'>+	</div><div class='add'>+2004-08-29  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* /lib/rubygems/gem_command.rb: small big fix for local gem installs</div><div class='add'>+	on Windows.</div><div class='add'>+</div><div class='add'>+2004-08-28  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* /lib/rubygems/installer.rb, /lib/rubygems/doc_manager.rb, </div><div class='add'>+	/lib/rubygems/cmd_manager.rb - Added an exception: FilePermissionError</div><div class='add'>+	which checks to ensure write access to the install/uninstall/rdoc </div><div class='add'>+	destination directories and raises a nice error instead of the standard</div><div class='add'>+	one. </div><div class='add'>+</div><div class='add'>+2004-08-28  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* /lib/rubygems/installer.rb - commented out stub addition and removal</div><div class='add'>+</div><div class='add'>+2004-08-28  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* /lib/rubygems.rb, /lib/rubygems/loadpath_manager.rb -</div><div class='add'>+	this adds all the loadpath_manager stuff with the 'ultimate require hack' to</div><div class='add'>+	rubygems.rb.  Also, require_gem methods body has been extracted into a method</div><div class='add'>+	Gem.activate that differs in the calling signature in that the second param is</div><div class='add'>+	a boolean that determines whether to autorequire or not.</div><div class='add'>+</div><div class='add'>+2004-08-27  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction - added ask_yes_no as a method</div><div class='add'>+	which returns true/false and formats/processes the [yn] stuff.</div><div class='add'>+	it also has an optional second parameter of true/false for the</div><div class='add'>+	default value.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb, lib/rubygems/remote_installer.rb, </div><div class='add'>+	lib/rubygems/command_manager.rb - changed all places where ask </div><div class='add'>+	was used with [Yn] to ask_yes_no</div><div class='add'>+</div><div class='add'>+2004-08-24  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Library stubs are now installed as per</div><div class='add'>+	  'library_stubs' gemspec attribute.  A stub is (still) also installed</div><div class='add'>+	  for the 'autorequire' attribute.  All library stub handling</div><div class='add'>+	  refactored into two new classes: LibraryStubs and LibraryStub.</div><div class='add'>+</div><div class='add'>+	* test/test_parse_commands.rb: as per 2004-08-17 below, the 'update'</div><div class='add'>+	  command takes --rdoc as its default now.</div><div class='add'>+</div><div class='add'>+2004-08-22  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: fixed stub generation...i added the version </div><div class='add'>+	stuff that only app stubs should have...sorry!</div><div class='add'>+</div><div class='add'>+2004-08-17  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: --rdoc is default on 'update' command,</div><div class='add'>+	  consistent with 'install'.  'default_str' methods changed to reflect</div><div class='add'>+	  --rdoc being default now.</div><div class='add'>+</div><div class='add'>+2004-08-21  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Proper checking for gems in local </div><div class='add'>+	directory on local install.  rescue Gem::LoadError to avoid ugly</div><div class='add'>+	backtrace.</div><div class='add'>+	* lib/rubygems/installer.rb: created Gem::LoadError to hold extra</div><div class='add'>+	metadata.  Setting up for proper dependency installation on local</div><div class='add'>+	installs.</div><div class='add'>+	</div><div class='add'>+2004-08-20  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	</div><div class='add'>+	* lib/rubygems/specification.rb: Fixed small bug in the previous spec</div><div class='add'>+	change commit.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb: Prevent catastrophic failure if a gemspec is </div><div class='add'>+	corrupted.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Fixed (in not a great way) a bug that would</div><div class='add'>+	cause a zero-length spec file to be written to the gem specifications</div><div class='add'>+	directory.</div><div class='add'>+</div><div class='add'>+2004-08-19  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: #files auto-includes any #extensions,</div><div class='add'>+	#extra_rdoc_files, #test_files, etc. that weren't explicitly added</div><div class='add'>+	to the file list.</div><div class='add'>+</div><div class='add'>+2004-08-18  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: One more bug with #test_files.</div><div class='add'>+	Default value of [] wasn't set, resulting in an attempt to call</div><div class='add'>+	#empty? on nil.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Unit tests appear to be working now.</div><div class='add'>+	Still more testing to do.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb, lib/rubygems/installer.rb: Fixed</div><div class='add'>+	minor bugs in default selections for questions asked during </div><div class='add'>+	installation and uninstallation</div><div class='add'>+	</div><div class='add'>+2004-08-17  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:</div><div class='add'>+	  - #test_suite_file and #test_files now work on older gems.</div><div class='add'>+	  - Added Specification.from_yaml for loading YAML gemspecs</div><div class='add'>+	  - #to_ruby doesn't emit 'specification_version'</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: Updated test-on-install code to use</div><div class='add'>+	  Specification#test_files instead of #unit_test_suite.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/old_format.rb: Use Specification.from_yaml</div><div class='add'>+	* lib/rubygems/package.rb:    Ditto</div><div class='add'>+</div><div class='add'>+2004-08-17  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb: --debug option to turn on $DEBUG</div><div class='add'>+	* lib/rubygems/config_file.rb: ditto</div><div class='add'>+</div><div class='add'>+2004-08-11  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: The application stub now defaults to </div><div class='add'>+	the latest version of the library, and optionally allows an initial </div><div class='add'>+	parameter conforming to _VERSION_ to be passed to select a prior </div><div class='add'>+	version of the library (this initial parameter, if present, is shifted </div><div class='add'>+	off of ARGV). This change was re-added...I erased it somehow :(</div><div class='add'>+</div><div class='add'>+2004-08-11  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb:</div><div class='add'>+	  - 'gem spec X' displays spec for _latest_ version of X.  Added</div><div class='add'>+	    '--all' option if you want to see all versions.</div><div class='add'>+	  - RDocCommand code cleanup and slight change: document _all_</div><div class='add'>+	    versions of the gem by default, not just the first.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb: removed 'kilmer' default template</div><div class='add'>+	  option and obsolete error message.</div><div class='add'>+</div><div class='add'>+2004-08-12  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* Added "gem rdoc" command for generating docs for already-installed</div><div class='add'>+	gems</div><div class='add'>+</div><div class='add'>+2004-08-11  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* bin/generate_yaml_index: updated to work with new gem format (and use the Gem::Format</div><div class='add'>+	 class to read).  Will deploy after testing on RubyForge.</div><div class='add'>+	* lib/rubygems/gem_commands.rb: generate rdoc by default on installs (I think this is</div><div class='add'>+	 just good practice.</div><div class='add'>+	* lib/rubygems/remote_install.rb: raise an exception if dependent gems cannot be found </div><div class='add'>+	 on remote_install</div><div class='add'>+</div><div class='add'>+2004-08-11  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/gem_commands.rb: query is now case insensitive (as it used to be)</div><div class='add'>+	* lib/rubygems/installer.rb: gem_make.out wasn't being written when an extension failed to compile.</div><div class='add'>+</div><div class='add'>+2004-08-11  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* removed String.to_requirement...we should not modify </div><div class='add'>+	  base classes in Ruby! modified to get rid of said to_requirement </div><div class='add'>+	  with Gem::Version::Requirement.create(obj)</div><div class='add'>+</div><div class='add'>+	* specification.rb - fixed constructor bug of version requirement...</div><div class='add'>+	  it now defaults to Requirement.default</div><div class='add'>+</div><div class='add'>+2004-08-11  Chad Fowler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* One more specification.rb bug fixed.</div><div class='add'>+</div><div class='add'>+2004-08-11  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:</div><div class='add'>+	  - Added convenience class methods: attribute_names,</div><div class='add'>+	    attribute_defaults, default_value, required_attributes, and</div><div class='add'>+	    required_attribute?.</div><div class='add'>+</div><div class='add'>+	  - IMPORTANT: attribute readers now use lazy initialization, just</div><div class='add'>+	    like some of them did before the 2004-08-01 change.  This was done</div><div class='add'>+	    to fix the breakage when loading older gemspecs.</div><div class='add'>+</div><div class='add'>+	  - IMPORTANT: replaced instance variable access with attribute reader</div><div class='add'>+	    method calls in many cases.  This is in line with the above change.</div><div class='add'>+</div><div class='add'>+	  - Good documentation for the "attribute" method.</div><div class='add'>+</div><div class='add'>+	  - Renamed _copy -&gt; _copy_of.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb:</div><div class='add'>+	  - Some fairly shallow changes. Exception handling needs improvement.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb:</div><div class='add'>+	  - (Version.create) new method (for convenience)</div><div class='add'>+	  - (Version::Requirement.create) new method (for convenience)</div><div class='add'>+	  - (Version::Requirement.default) new method (for consistency)</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb: test attribute_names instead of</div><div class='add'>+	  attributes.  Other "class convenience" methods remain to be tested</div><div class='add'>+	  at this stage.  Also added test classes for legacy gemspecs.</div><div class='add'>+</div><div class='add'>+	* test/data/legacy/keyedlist-0.4.0.ruby: added.</div><div class='add'>+	* test/data/legacy/keyedlist-0.4.0.yaml: added.</div><div class='add'>+</div><div class='add'>+2004-08-06  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:</div><div class='add'>+	  - Added convenience class methods: attribute_names,</div><div class='add'>+	    attribute_defaults, default_value, required_attributes, and</div><div class='add'>+	    required_attribute?.</div><div class='add'>+</div><div class='add'>+	  - IMPORTANT: attribute readers now use lazy initialization, just</div><div class='add'>+	    like some of them did before the 2004-08-01 change.  This was done</div><div class='add'>+	    to fix the breakage when loading older gemspecs.</div><div class='add'>+</div><div class='add'>+	  - Good documentation for the "attribute" method.</div><div class='add'>+</div><div class='add'>+	  - Renamed _copy -&gt; _copy_of.</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb: test attribute_names instead of</div><div class='add'>+	  attributes.  Other "class convenience" methods remain to be tested</div><div class='add'>+	  at this stage.</div><div class='add'>+</div><div class='add'>+2004-08-01  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb:</div><div class='add'>+	  - (Re)defined class methods: attribute, attributes,</div><div class='add'>+	    required_attribute, read_only, overwrite_accessor.	@@attributes</div><div class='add'>+	    contains a list of attribute names and default values.  This</div><div class='add'>+	    allows higher-level specification of gemspec attributes, and the</div><div class='add'>+	    handling of them in a DRY fashion.</div><div class='add'>+</div><div class='add'>+	  - to_yaml_properties now includes all properties, to ensure</div><div class='add'>+	    correct deserialization of a Gem::Specification object.</div><div class='add'>+</div><div class='add'>+	  - #to_ruby and #to_yaml_properties rewritten to use @@attributes</div><div class='add'>+</div><div class='add'>+	  - Introduced 'specification_version' attribute and three constants:</div><div class='add'>+	    NONEXISTENT_SPECIFICATION_VERSION, CURRENT_SPECIFICATION_VERSION, and</div><div class='add'>+	    SPECIFICATION_VERSION_HISTORY.  This allows us to track changes to</div><div class='add'>+	    the spec format.</div><div class='add'>+</div><div class='add'>+	  - Refactored several "helper" methods, using the new class method</div><div class='add'>+	    'attribute_alias_singular', which provides a "singular" alias for</div><div class='add'>+	    a "plural" attribute (e.g. require_path and require_paths).</div><div class='add'>+</div><div class='add'>+	  - All gemspec attributes now defined in a uniform fashion, which</div><div class='add'>+	    implies that they all have valid instance variables on</div><div class='add'>+	    initialization.  Previously, some attributes were lazily</div><div class='add'>+	    initialized.</div><div class='add'>+</div><div class='add'>+	  - Introduced attribute 'library_stubs', to allow the specification</div><div class='add'>+	    of several stub files.  (That feature not implemented, though.)</div><div class='add'>+</div><div class='add'>+	  - Introduced attribute 'test_files' and deprecated 'test_suite_file'.</div><div class='add'>+</div><div class='add'>+	  - Provided #warn_deprecated stub of a method, but don't know what to</div><div class='add'>+	    do with it.</div><div class='add'>+</div><div class='add'>+	  - Deprecated #has_test_suite? in favour of (new) #has_unit_tests?</div><div class='add'>+</div><div class='add'>+	  - Used overwrite_accessor to provide special behaviour for the</div><div class='add'>+	    setting of some attributes.</div><div class='add'>+</div><div class='add'>+	  - The 'date' attribute is now a Date object.	We don't need high</div><div class='add'>+	    resolution, and Time objects, being system-dependent, are not nice</div><div class='add'>+	    to deal with.</div><div class='add'>+</div><div class='add'>+	  - Various code style changes.</div><div class='add'>+</div><div class='add'>+	  - Summary: uniform treatment of gemspec attributes; reduced code by</div><div class='add'>+	    refactoring; 'test_suite_file' deprecated for 'test_files';</div><div class='add'>+	    'library_stubs' introduced; spec versioning introduced.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: (Dependency) added #to_s, #==, and an</div><div class='add'>+	  alias (requirements_list -&gt; requirement_list).</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb: several new tests: _singular_attributes,</div><div class='add'>+	  _deprecated_attributes, _defaults, _to_{yaml,ruby}_and_back,</div><div class='add'>+	  _directly_setting_dependencies_doesnt_work, and more.  Plus a new</div><div class='add'>+	  class to give Specification a more thorough workout (TestSpecificationComplex).</div><div class='add'>+</div><div class='add'>+	* scripts/runtest.rb: require 'pp' so it's always available in unit</div><div class='add'>+	  tests.</div><div class='add'>+</div><div class='add'>+2004-07-30  Rich Kilmer  &lt;rich@infoether.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb The application stub now defaults </div><div class='add'>+	  to the latest version of the library, and optionally allows </div><div class='add'>+	  an initial parameter conforming to _VERSION_ to be passed</div><div class='add'>+	  to select a prior version of the library (this initial </div><div class='add'>+	  parameter, if present, is shifted off of ARGV).</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb correct? is now a class method on</div><div class='add'>+	  Version enabling Gem::Version.correct?(...)</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/install.rb make it so uninstalling a gem will</div><div class='add'>+	  not remove executables if another version of that gem is </div><div class='add'>+	  installed and needs those executables</div><div class='add'>+</div><div class='add'>+2004-07-26  Jim Weirich  &lt;jim@tardis&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::latest_load_paths): Added</div><div class='add'>+	latest_load_paths and refactored all_load_paths to use common</div><div class='add'>+	code.</div><div class='add'>+</div><div class='add'>+2004-07-25  Rich Kilmer  &lt;rich@infoether.com&gt;</div><div class='add'>+	* fixed bug in using --source in command.rb (removed short -s version)</div><div class='add'>+</div><div class='add'>+	* changed spec to use the RUBY_PLATFORM for Platform::CURRENT</div><div class='add'>+</div><div class='add'>+	* added ability to choose from list of available gems on remote install</div><div class='add'>+	  if (1) some of the gems are binary and (2) there are move than one.</div><div class='add'>+	  If the gems are all source gems, the latest is selected.</div><div class='add'>+</div><div class='add'>+2004-07-25  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::all_load_paths): Added</div><div class='add'>+	all_load_paths utility function.</div><div class='add'>+</div><div class='add'>+	* bin/update_rubygems: Added a command to update the gem</div><div class='add'>+	installation based on a update gem.</div><div class='add'>+</div><div class='add'>+	* Rakefile: Pulled package file list out into a constant so it can</div><div class='add'>+	be reused between the package command and the gem package command.</div><div class='add'>+	Added a gem package target to support rubygems updates.</div><div class='add'>+</div><div class='add'>+2004-07-22  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb:</div><div class='add'>+	  * (Requirement#initialize) initialize @version to avoid warning</div><div class='add'>+	  * (Dependency#initialize) initialize @version_requirement to avoid</div><div class='add'>+	    warning</div><div class='add'>+</div><div class='add'>+2004-07-19  Chad Fowler     &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* install.rb: Shebang line should point to the ruby version used during</div><div class='add'>+	installation.</div><div class='add'>+</div><div class='add'>+2004-07-19  Assaph Mehr     &lt;assaph@avaya.com&gt;</div><div class='add'>+	* lib/rubygems/command.rb, packages/sources/lib/sources.rb: Added</div><div class='add'>+	command-line-configurable sources.</div><div class='add'>+</div><div class='add'>+2004-07-18  Chad Fowler	    &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/validator.rb: Fixed a bug that would cause "managed"</div><div class='add'>+	files to appear to be unmanaged due to differences in how the paths</div><div class='add'>+	were formatted.</div><div class='add'>+</div><div class='add'>+2004-07-17  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (InstallCommand#execute): removed clear</div><div class='add'>+	  bug (name -&gt; gem.name).</div><div class='add'>+</div><div class='add'>+2004-07-14  Rich Kilmer     &lt;rich@infoether.com&gt;</div><div class='add'>+	* added old_format.rb which is used in the (hack) in format.rb </div><div class='add'>+	  to detect the older version of a gem, and if present, switches </div><div class='add'>+	  to that class instead.</div><div class='add'>+	* fixed the ARGV passing in bin/gem to ingore args past -- which</div><div class='add'>+	  are used for passing params to source gems (extconf.rb)</div><div class='add'>+</div><div class='add'>+2004-07-13  Chad Fowler	    &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/installer.rb, lib/rubygems/package.rb, </div><div class='add'>+	lib/rubygems/format.rb, test/test_package.rb: Added Mauricio </div><div class='add'>+	Fernandez's patch to replace old gem format with tar.gz format.</div><div class='add'>+	Fixed some failing unit tests that resulted.  Still a couple left.</div><div class='add'>+	* lib/rubygems.rb: Fixed a bug introduced by the previous patch.</div><div class='add'>+</div><div class='add'>+2004-07-13  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: (#require_gem) added the ability to do</div><div class='add'>+	  "require_gem 'rake/packagetask'", for instance, which is a</div><div class='add'>+	  shortcut for "require_gem 'rake'; require 'rake/packagetask'".</div><div class='add'>+</div><div class='add'>+2004-07-13  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: refactored --version option</div><div class='add'>+	  in all cases to the new VersionOption module.</div><div class='add'>+</div><div class='add'>+2004-07-13  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb: added 'unpack' command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (UnpackCommand): added.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Installer#unpack): added.</div><div class='add'>+</div><div class='add'>+2004-07-09  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/user_interaction.rb (Gem::StreamUI::ask and</div><div class='add'>+	Gem::StreamUI::choose_from_list): Added flush before each gets.</div><div class='add'>+</div><div class='add'>+2004-07-05  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command#defaults_str): added.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command#create_option_parser):</div><div class='add'>+	  Defaults for the options are included in the parser output.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb: all commands which have options</div><div class='add'>+	  and defaults now have #defaults_str implemented.</div><div class='add'>+</div><div class='add'>+2004-07-05  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command#create_option_parser):</div><div class='add'>+	Make the argument and option sections optional.  They are only</div><div class='add'>+	printed if there are options or arguments defined.</div><div class='add'>+</div><div class='add'>+2004-07-05  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb:</div><div class='add'>+	  - scrubbed up the 'help' command a bit, removing its options</div><div class='add'>+	  - added information to 'help commands'</div><div class='add'>+</div><div class='add'>+2004-07-04  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb:</div><div class='add'>+	  - modified generic help and examples</div><div class='add'>+	  - improved 'list' and 'search' help, and fixed bug in 'search'</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb: </div><div class='add'>+	  - explicit support for top-level commands --help and --version</div><div class='add'>+	  - no more support for --examples and --commands</div><div class='add'>+</div><div class='add'>+2004-07-04  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb:</div><div class='add'>+	  - added 'list' and 'search' commands ('list' is no longer an alias</div><div class='add'>+	    for 'query')</div><div class='add'>+	  - modified return value from all 'arguments' methods (see command.rb)</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb: added 'search' command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb:</div><div class='add'>+	    (Command#create_option_parser): enhanced the option parser for 'help'</div><div class='add'>+					    display</div><div class='add'>+	    (Command#remove_option): added (to support 'list' and 'search')</div><div class='add'>+</div><div class='add'>+	* Rakefile: added 'gem' target.  Runs "local" (not installed) command</div><div class='add'>+	  and libraries.</div><div class='add'>+</div><div class='add'>+2004-07-04  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* Rakefile: added 'install' target.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb: code formatting.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb:</div><div class='add'>+	  - refactored common install and update options into new module</div><div class='add'>+	    InstallUpdateOptions</div><div class='add'>+	      . consolidated option pairs (e.g. --test &amp; --no-test ==&gt; --[no-]test)</div><div class='add'>+	      . --gen-rdoc is now --rdoc</div><div class='add'>+	  - (UninstallCommand) corrected typo</div><div class='add'>+	  - (InstallCommand) corrected output with local install</div><div class='add'>+</div><div class='add'>+	* test/test_parse_commands.rb: :%s/--gen-rdoc/--rdoc/g</div><div class='add'>+</div><div class='add'>+2004-07-03  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InstallCommand::initialize):</div><div class='add'>+	Added --no-gen-rdoc and --no-test to allow the user to override</div><div class='add'>+	.gemrc default options.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc):</div><div class='add'>+	Concatenate the local rdoc options to the end of the spec's rdoc</div><div class='add'>+	options.</div><div class='add'>+	(Gem::DocManager::configured_args): Added configured_args as a</div><div class='add'>+	place to store local rdoc options.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_runner.rb (Gem::GemRunner::do_configuration):</div><div class='add'>+	Configuration handled in do_configuration now.</div><div class='add'>+	(Gem::GemRunner::do_configuration): Set the local rdoc</div><div class='add'>+	configuration from the config file.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command::handles): Added a</div><div class='add'>+	handles? method to Command so that we can detect which extra</div><div class='add'>+	arguments can be used with a command.</div><div class='add'>+	(Gem::Command::add_extra_args): New method to add the config</div><div class='add'>+	file's extra arguments to the front of the argument list.</div><div class='add'>+	(Gem::Command::extra_args): Added extra_args to Command class to</div><div class='add'>+	hold the extra args discovered in the config file.</div><div class='add'>+</div><div class='add'>+	* Rakefile: Added TEST=filename option to all the test targets.</div><div class='add'>+</div><div class='add'>+	* test/functional.rb (FunctionalTest::test_gemrc): Added</div><div class='add'>+	functional test for gemrc.</div><div class='add'>+</div><div class='add'>+	* scripts/gemdoc.data: Added an example to the specification command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception::manage_gems): Added gem_runner</div><div class='add'>+	and config_file to manage_gems.</div><div class='add'>+	(Gem::Exception::use_paths): use_paths now accepts (and ignores)</div><div class='add'>+	nil parameters.</div><div class='add'>+</div><div class='add'>+	* bin/gem: Make Gem::GemRunner the top level object.  It now</div><div class='add'>+	creates and calls the CommandManager /after/ the arguments are</div><div class='add'>+	processed.</div><div class='add'>+</div><div class='add'>+	* Rakefile: Added test/data/gemhome to clobber list.</div><div class='add'>+</div><div class='add'>+2004-07-01  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/test_specification.rb</div><div class='add'>+	(TestSpecification::test_rdoc_files_included): Test for rdoc files</div><div class='add'>+	included in file list.	Test for redundent file removal.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb (Gem::Specification::validate):</div><div class='add'>+	Added gem version to validation requirement.  Added normalize to</div><div class='add'>+	remove redundent files in lists.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InfoCommand::usage): Added</div><div class='add'>+	usage and arguments methods for InfoCommand.</div><div class='add'>+	(Gem::SpecificationCommand::usage): Fixed several usage comments.</div><div class='add'>+</div><div class='add'>+2004-06-30  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InstallCommand::usage):</div><div class='add'>+	Upcased the comment on the usage statement (and corresponding</div><div class='add'>+	option).  This makes the variable part of the command</div><div class='add'>+	(e.g. GEMNAME) stand out from the static parts.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::CommandManager::process_args):</div><div class='add'>+	Downcased commands before searching (allows upper case or mixed</div><div class='add'>+	case for commands on command line).</div><div class='add'>+</div><div class='add'>+	* install.rb (install_rb): Fixed bug where the installer falsely</div><div class='add'>+	triggered the old repository upgrade when the directory part of</div><div class='add'>+	the file contained the matching "-digits." pattern.  Now the</div><div class='add'>+	pattern must be in the file's base name.</div><div class='add'>+</div><div class='add'>+2004-06-26  Gavin Sinclair  &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+</div><div class='add'>+	* scripts/specdoc.rb: added (to generate gem specificiation document)</div><div class='add'>+	* scripts/specdoc.data: added (supports specdoc.rb)</div><div class='add'>+	* scripts/specdoc.yaml: added (supports specdoc.rb)</div><div class='add'>+</div><div class='add'>+2004-06-27  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* scripts/gemdoc.data Removed extraneous &lt;em&gt; marker. </div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb</div><div class='add'>+	(Gem::Specification::satisfies_requirement): HA!  Caught another</div><div class='add'>+	version_requirement vs version_requirements error.  (I really</div><div class='add'>+	regret the decision to change that name.)</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::has_dependents):</div><div class='add'>+	Changed call to alert to alert_warning.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::UninstallCommand::execute):</div><div class='add'>+	Again, remove local error handling to allow the error to perculate</div><div class='add'>+	up the chain to the top level.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc):</div><div class='add'>+	Removed one level of exception handling.  Only catching RDocErrors</div><div class='add'>+	at the outermost level.  And instead of reporting the error and</div><div class='add'>+	swallowing it, I convert it to a Gem::DocumentError (with the same</div><div class='add'>+	error message).  This is for better error handling.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command::handle_options): Removed</div><div class='add'>+	exception handling from handle_options.  This allows errors to be</div><div class='add'>+	handled at the top level.  Makes for a more consistent error</div><div class='add'>+	interface.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocumentError): Added</div><div class='add'>+	DocumentError to wrap RDocErrors (which derive from Exception</div><div class='add'>+	... yuck).</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::RemoteError): RemoteError and</div><div class='add'>+	LocalInstallationError are now Gem::Exceptions (rather than</div><div class='add'>+	StandardErrors).  </div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Gem::Exception): Changed base of Gem::Exception</div><div class='add'>+	to RuntimeError (was ::Exception).  Apps using gem as a library</div><div class='add'>+	would have to catch Gem::Exceptions explicitly (yuck), or catch</div><div class='add'>+	Exceptions generically.  Catching Exceptions will catch</div><div class='add'>+	EVERYTHING, including things like SystemExit.  By makeing</div><div class='add'>+	Gem::Exception a RuntimeError, apps can catch RuntimeError or even</div><div class='add'>+	StandardError.</div><div class='add'>+</div><div class='add'>+2004-06-26  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* test/functional.rb (FunctionalTest::test_all_command_helps):</div><div class='add'>+	Added functional test to show all commands have usage messaegs.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::HelpCommand::execute): Added</div><div class='add'>+	version option to help (gem help version).</div><div class='add'>+	(Gem): Cleaned up the help text.  Dropped unneeded verbage.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb</div><div class='add'>+	(Gem::CommandManager::find_command_possibilities): Added</div><div class='add'>+	find_command_possibilities to help the Help command look for</div><div class='add'>+	commands.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::uninstall): Fixed</div><div class='add'>+	null pointer bug where a list was destroyed in a method.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::BuildCommand::load_gemspecs):</div><div class='add'>+	yaml gemspec files are now accepted by the build command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command::parser): Created an</div><div class='add'>+	on-demand option parser for all commands.</div><div class='add'>+	(Gem::Command::handle_options): Command line option hash is now</div><div class='add'>+	and instance variable with a reader.</div><div class='add'>+</div><div class='add'>+	* Rakefile: Linked package version to the value in the rubygems.rb</div><div class='add'>+	file.  The gem env command now shows both gem version (e.g. 0.6)</div><div class='add'>+	and the package version (e.g. 0.6.1).</div><div class='add'>+</div><div class='add'>+2004-06-25  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InfoCommand): Dropped the</div><div class='add'>+	version command (its available via gem env).  Added a gem info</div><div class='add'>+	command to extract the yaml from a gemfile.</div><div class='add'>+	(Gem::LocalRemoteOptions): Refactored the local/remote options</div><div class='add'>+	(adding and testing) into a mixin module.</div><div class='add'>+</div><div class='add'>+	* test/test_version_comparison.rb</div><div class='add'>+	(TestDependencies::test_normalization): Added some tests for the</div><div class='add'>+	normalization issues mentions below.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Dependency::normalize): Old gems</div><div class='add'>+	have requirements and dependencies incoded in the Yaml spec in an</div><div class='add'>+	out of date format.  When loaded, they have incorrect instance</div><div class='add'>+	variables for modern objects.  I added a normalize call to handle</div><div class='add'>+	transforming out dated objects in to modern objects. (Remember</div><div class='add'>+	this next time we change the data structure of something in the</div><div class='add'>+	spec file.)</div><div class='add'>+	(Gem::Version::Requirement::parse): Requirements are comparable</div><div class='add'>+	now, just so that we can test them with asserts.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb</div><div class='add'>+	(Gem::RemoteInstaller::find_dependencies_not_installed): Fixed</div><div class='add'>+	recursive call to require_gem to properly pass dependency</div><div class='add'>+	information.</div><div class='add'>+	</div><div class='add'>+	* lib/rubygems/installer.rb (Gem::Uninstaller::has_dependents):</div><div class='add'>+	Fixed reference to version_requirement (needs to be plural).</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/command.rb (Gem::Command::invoke): Command now</div><div class='add'>+	handles it own help messages.  Commands no longer have to return</div><div class='add'>+	true/false to trigger help messages.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::CommandManager::process_args):</div><div class='add'>+	Moved help handling into the help command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::HelpCommand): Renamed the</div><div class='add'>+	base command to HelpCommand and made it handle a lot of the help</div><div class='add'>+	options.  Still need work on individual command helps.</div><div class='add'>+</div><div class='add'>+	* test/functional.rb (FunctionalTest::test_env_version): Added a</div><div class='add'>+	bunch of new functional tests for the environment command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/gem_commands.rb (Gem::InstallCommand::execute):</div><div class='add'>+	Made multiple gem names an error for now.  Should look at later.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::ListCommand): Added list as an</div><div class='add'>+	alias to query.</div><div class='add'>+	(Gem::UpdateCommand::initialize): Corrected spelling of install</div><div class='add'>+	(intall) in several places.</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: Added Gem.manage_gems to the gem_server to fix</div><div class='add'>+	missing requirements.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::InstallCommand::initialize):</div><div class='add'>+	Added missing --both option to install.</div><div class='add'>+</div><div class='add'>+	* test/test_command.rb</div><div class='add'>+	(TestCommand::test_invode_with_bad_options): Catch the termination</div><div class='add'>+	request.</div><div class='add'>+</div><div class='add'>+	* test/mockgemui.rb (MockGemUi::terminate_interaction): Make the</div><div class='add'>+	mock UI throw an exception when a termination is requested.  This</div><div class='add'>+	makes sure that we don't miss accidental terminations.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::CommandManager::find_command):</div><div class='add'>+	Added find_command to handle best matching command names.</div><div class='add'>+</div><div class='add'>+	* test/functional.rb (FunctionalTest::test_build): Updated</div><div class='add'>+	functional tests to use the new command structure.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Version::Requirement): Changed the</div><div class='add'>+	pessimistic version comparison operator to "~&gt;".  I like to think</div><div class='add'>+	of it as "approximately greater than".	(It was "&gt;*").</div><div class='add'>+</div><div class='add'>+	* bin/gem: Moved gem2 into the standard gem script location.  It</div><div class='add'>+	is now stable enough to use as the standard command.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cmd_manager.rb (Gem::CommandManager::run): Added</div><div class='add'>+	run method to trap errors while running commands.  Makes for</div><div class='add'>+	prettier output.</div><div class='add'>+	(Gem::CommandManager): Move *all* commands to their own classes.</div><div class='add'>+	Simplified CommandManager.  Lowered the coupling between</div><div class='add'>+	CommandManager and the Commands (the commands don't even need to</div><div class='add'>+	know about the manager anymore).  CommandManager maybe created</div><div class='add'>+	with "new" for testing (the script will continue to use</div><div class='add'>+	"instance").</div><div class='add'>+	(Gem::RubyGemsInfoCommand): New command.</div><div class='add'>+	(Gem::VersionCommand): New command.</div><div class='add'>+</div><div class='add'>+2004-06-24  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+	</div><div class='add'>+	* lib/rubygems/user_interaction.rb (Gem::UserInteraction):</div><div class='add'>+	Significantly rewrote the whole user interaction scheme.  We are</div><div class='add'>+	now using an UI object that responds to the standard list of UI</div><div class='add'>+	commands (e.g. say, alert, ask).  The UserInteraction module</div><div class='add'>+	defines all the interaction methods to be forwarded to the default</div><div class='add'>+	UI objects.  The "ui" method returns that default object (and you</div><div class='add'>+	can use self.ui=(new_ui) to change it).  Also the use_ui(new_ui) {</div><div class='add'>+	} command is convienent for switching the UI object for a short</div><div class='add'>+	period of time.</div><div class='add'>+</div><div class='add'>+2004-06-18  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* broke test_cmd_manager.rb into test_parse_commands and </div><div class='add'>+	test_process_commands to test the parsing of command line options</div><div class='add'>+	and the funtionality, respectively. </div><div class='add'>+</div><div class='add'>+2004-06-18  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* added new unit test file: test/test_cmd_manager.rb to test the </div><div class='add'>+	command manager classes.  this is just the first few tests which</div><div class='add'>+	will be expanded to a full test suite.</div><div class='add'>+</div><div class='add'>+2004-06-17  Chad FOwler &lt;chad@chadfowler.com&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Fixed bug in windows batch file generation</div><div class='add'>+	which was causing file not found errors.</div><div class='add'>+	* lib/rubygems/installer.rb: Uninstall now removes scripts and batch </div><div class='add'>+	* lib/rubygems/specification.rb: Fixed install bug.  Thanks to Mark </div><div class='add'>+	Sparshatt for the fix (via the rubyforge bug tracker). </div><div class='add'>+</div><div class='add'>+2004-06-17  Jim Weirich  &lt;jim@weirichhouse.org&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb (Gem::DocManager::generate_rdoc):</div><div class='add'>+	Changed rdoc generation to do a chdir into the base source</div><div class='add'>+	directory and then to use a relative path for all the source</div><div class='add'>+	files.	This makes the generated RDOC html look better and may fix</div><div class='add'>+	the windows drive/rdoc bug as a side effect.</div><div class='add'>+</div><div class='add'>+2004-06-17  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* Added ability to capture the UserInteraction with:</div><div class='add'>+	c = Gem::UserInteraction.capture</div><div class='add'>+	and then you can override specific methods like 'say':</div><div class='add'>+	c.on_say {|statement| puts "you said: #{statement}"}</div><div class='add'>+</div><div class='add'>+2004-06-15  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* Added refactored command handling in rubygems/cmd_manager.rb and a </div><div class='add'>+	(temporary) bin/gem2 command file to test things out.  Once we feel</div><div class='add'>+	comfortable, we can replace gem with gem2.</div><div class='add'>+</div><div class='add'>+2004-06-10  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* Isolated all user interaction to pass through module methods on a new</div><div class='add'>+	Gem::UserInteraction module.  Those methods will be the method of abstracting</div><div class='add'>+	the interaction of RubyGems for use in a GUI-based solution.</div><div class='add'>+</div><div class='add'>+2004-06-10  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* require 'rubygems' now minimally requires only the files needed</div><div class='add'>+	for runtime access to gems...not management of gems.  To manage</div><div class='add'>+	gems you now additionally need to execute Gem::manage_gems prior</div><div class='add'>+	to using the builder/installer/etc.  This makes gemspecs not </div><div class='add'>+	backward compatible unless they add that line to the gemspec </div><div class='add'>+	after the require 'rubygems' line.</div><div class='add'>+</div><div class='add'>+2004-06-10  Gavin Sinclair &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+	* bin/gem: --upgrade-all was broken, probably as a result of the</div><div class='add'>+	  search changes listed below.</div><div class='add'>+</div><div class='add'>+2004-06-09  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/remote_install.rb: delegate search functionality to</div><div class='add'>+	  Cache class, bringing remote and local search and list together into</div><div class='add'>+	  one piece of code.</div><div class='add'>+	* bin/gem, lib/rubygems/validator.rb: move all STDIO work to bin/gem.</div><div class='add'>+	  Validator.alien now returns a hash of ErrorData objects.</div><div class='add'>+	* bin/gem, lib/rubygems/installer.rb: move most of the STDIO stuff to</div><div class='add'>+	  bin/gem, communicating via exceptions in this case.</div><div class='add'>+</div><div class='add'>+2004-06-08  Rich Kilmer  &lt;rich@infoether.com&gt;</div><div class='add'>+	* Fixed the drive problem on win32 (hopefully) so multiple drives</div><div class='add'>+	  should now work.  Its still a hack until rdoc is fixed.</div><div class='add'>+</div><div class='add'>+2004-06-08  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* Fixed bug caused by method change on Version::Requirement</div><div class='add'>+</div><div class='add'>+2004-06-08  Rich Kilmer &lt;rich@infoether.com&gt;</div><div class='add'>+	* fixed bug in doc_manager.rb whereby the extra_rdoc_files should</div><div class='add'>+	  be appended to the list of directories prior to prepending the</div><div class='add'>+	  full path.</div><div class='add'>+</div><div class='add'>+2004-06-08  Gavin Sinclair &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+	* bin/gem_server: List installed gems in [name,version] order.</div><div class='add'>+</div><div class='add'>+2004-06-08  Gavin Sinclair &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+	* lib/rubygems/installer.rb: don't warn about not being able to</div><div class='add'>+	  install a library stub if a library stub is already installed.</div><div class='add'>+	  Still warn if it's not a library stub that's there already.</div><div class='add'>+</div><div class='add'>+2004-06-08  Gavin Sinclair &lt;gsinclair@soyabean.com.au&gt;</div><div class='add'>+	* bin/gem: renamed --upgrade-dist to --upgrade--all and fixed bug.</div><div class='add'>+	* lib/rubygems/installer.rb: fixed bug with Ruby version assertion.</div><div class='add'>+</div><div class='add'>+2004-06-07  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/remote_installer.rb, lib/rubygems/version.rb: Fixed old</div><div class='add'>+	  dependency on #version method for Gem::Version::Requirement</div><div class='add'>+	* bin/gem: new --upgrade-dist option allows one to upgrade every</div><div class='add'>+	  installed gem</div><div class='add'>+	* lib/rubygems/specification.rb,lib/rubygems/installer.rb: new</div><div class='add'>+	  #required_ruby_version attribute added to gem specification for specifying a</div><div class='add'>+	  dependency on which version of ruby the gem needs.	Format it accepts is</div><div class='add'>+	  the same as the Gem::Version::Requirement format.</div><div class='add'>+</div><div class='add'>+2004-06-06  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* bin/gem: install_stub is once again the default due to requests.</div><div class='add'>+</div><div class='add'>+2004-06-04  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* lib/rubygems/specification.rb, lib/rubygems/doc_manager.rb:  </div><div class='add'>+	Allow arbitrary files to be added for rdoc to run over them (as per</div><div class='add'>+	Jim's request).</div><div class='add'>+</div><div class='add'>+2004-06-04  Chad Fowler  &lt;chad@chadfowler.com&gt;</div><div class='add'>+	* bin/gem:  Reformatted --search and --list output such that</div><div class='add'>+	multiple versions of a gem are compressed into a single entry</div><div class='add'>+	(with version numbers in parentheses)</div><div class='add'>+</div><div class='add'>+2004-05-31  Jim Weirich  &lt;jweirich@one.net&gt;</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Dependency): Dependency attribute</div><div class='add'>+	renamed to version_requirements (made plural).</div><div class='add'>+	(Gem::Version::bump): Added bump to implement pessimistic</div><div class='add'>+	operator.</div><div class='add'>+	(Gem::Version::Requirement): Added pessimistic operator to list of</div><div class='add'>+	operators. Operators now implemented using lambda.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb (Kernel::require_gem): require_gem now takes an</div><div class='add'>+	array of requirement strings.</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb (Gem::Version::Requirement::initialize):</div><div class='add'>+	Simplified initialization by making parse a bit smarter.</div><div class='add'>+	(Gem::Version::Requirement::satisfied_by): Simplified by using</div><div class='add'>+	all?</div><div class='add'>+	(Gem::Version::Requirement::satisfy): Added explicit one</div><div class='add'>+	requirement satisfy test.</div><div class='add'>+	(Gem::Version::Requirement::parse): parse now returns a two</div><div class='add'>+	element string array (operator and version string).  We don't</div><div class='add'>+	bother converting to an integer array during parsing.</div><div class='add'>+</div><div class='add'>+2004-05-31 18:38 chadfowler</div><div class='add'>+</div><div class='add'>+	* gemspec now supports #rdoc_options, to which you can append</div><div class='add'>+	strings that will be passed to rdoc as additional options.</div><div class='add'>+</div><div class='add'>+2004-05-08 21:57  chadfowler</div><div class='add'>+</div><div class='add'>+	* Using Gem::RubyGemsVersion to match the release number.  If we</div><div class='add'>+	need to use this as an internal version format specifier in the</div><div class='add'>+	future, we can use the Gem::Version semantics.</div><div class='add'>+</div><div class='add'>+2004-05-30 14:33 gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem: Split --help into --help (basic), --help-options (what</div><div class='add'>+	  --help used to be), and --help-examples.</div><div class='add'>+</div><div class='add'>+2004-04-30 15:57  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: --install-stub is no longer the default ;)</div><div class='add'>+</div><div class='add'>+2004-04-30 15:51  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Rich Kilmer (who kicks butt) figured</div><div class='add'>+	  out how to fix the library stub stuff.</div><div class='add'>+</div><div class='add'>+2004-04-29 19:12  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb: Dick Davies fixed a bug in the doc</div><div class='add'>+	  generator.</div><div class='add'>+</div><div class='add'>+2004-04-29 13:41  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Added skeleton code and comments to</div><div class='add'>+	  uninstall stub apps and libs</div><div class='add'>+</div><div class='add'>+2004-04-29 12:20  gsinclair</div><div class='add'>+</div><div class='add'>+	* install.rb: Don't install library stub for 'sources'</div><div class='add'>+</div><div class='add'>+2004-04-29 12:20  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Improvements to library stub</div><div class='add'>+	  installation: * don't overwrite existing file (emit warning) *</div><div class='add'>+	  nice warning if there's a permission problem * observe</div><div class='add'>+	  --[no-]install-stub flag (rather, observe the argument to</div><div class='add'>+	  #install)</div><div class='add'>+</div><div class='add'>+2004-04-29 12:16  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem: --install-stub is now the default</div><div class='add'>+</div><div class='add'>+2004-04-26 20:20  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb: Cleaning up after Gavin and his</div><div class='add'>+	  test-breaking self. ;)</div><div class='add'>+</div><div class='add'>+2004-04-26 12:06  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/remote_installer.rb: Installing a gem now causes a</div><div class='add'>+	  library stub to be installed as well, allowing you to require</div><div class='add'>+	  'package' without knowing it's a gem.</div><div class='add'>+</div><div class='add'>+2004-04-25 23:18  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/: installer.rb, specification.rb: Prompt user if</div><div class='add'>+	  trying to uninstall a gem that other gems *may* depend on.</div><div class='add'>+</div><div class='add'>+2004-04-25 09:27  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb: Changed expected test results to</div><div class='add'>+	  match new (old) gem naming scheme--"ruby" doesn't appear as a</div><div class='add'>+	  platform in the gem name.</div><div class='add'>+</div><div class='add'>+2004-04-25 05:50  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem: Changed @directory -&gt; @install_dir for clarity</div><div class='add'>+</div><div class='add'>+2004-04-25 05:47  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem: Improved display of gems, platform-wise</div><div class='add'>+</div><div class='add'>+2004-04-25 05:46  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Added documentation</div><div class='add'>+</div><div class='add'>+2004-04-25 04:17  jimweirich</div><div class='add'>+</div><div class='add'>+	* test/functional.rb: Fixed functional test to properly name a Ruby</div><div class='add'>+	  platform gem.</div><div class='add'>+</div><div class='add'>+2004-04-25 04:17  jimweirich</div><div class='add'>+</div><div class='add'>+	* packages/sources/.cvsignore, test/data/one/.cvsignore: Ignore the</div><div class='add'>+	  proper gem name.</div><div class='add'>+</div><div class='add'>+2004-04-25 04:17  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Undefined several attributes that</div><div class='add'>+	  were redefined to avoid warnings.</div><div class='add'>+</div><div class='add'>+2004-04-25 04:17  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Need to initialize @gem_home and @gem_path with</div><div class='add'>+	  ||= to avoid warning.</div><div class='add'>+</div><div class='add'>+2004-04-25 03:40  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb, test/test_gempaths.rb: RUBY_GEMS -&gt; GEM_PATH</div><div class='add'>+	  (environment variable)</div><div class='add'>+</div><div class='add'>+2004-04-25 03:33  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Pretty-print the specification</div><div class='add'>+</div><div class='add'>+2004-04-25 03:18  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Handle platform in a (hopefully)</div><div class='add'>+	  consistent manner</div><div class='add'>+</div><div class='add'>+2004-04-25 03:16  gsinclair</div><div class='add'>+</div><div class='add'>+	* install.rb: Use return value from Builder#build to locate gem</div><div class='add'>+	  file</div><div class='add'>+</div><div class='add'>+2004-04-25 03:09  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/builder.rb: Return file name from #build</div><div class='add'>+</div><div class='add'>+2004-04-25 02:32  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Platform goes at the *end* of the</div><div class='add'>+	  full name now.</div><div class='add'>+</div><div class='add'>+2004-04-22 06:19  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb: Fixed test to reflect fewer cache</div><div class='add'>+	  sources :(</div><div class='add'>+</div><div class='add'>+2004-04-21 17:19  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: added support to download the</div><div class='add'>+	  yaml index as a .Z (zlib compressed) file if it exists, then move</div><div class='add'>+	  on to the plain yaml file if it does not</div><div class='add'>+</div><div class='add'>+2004-04-20 20:23  chadfowler</div><div class='add'>+</div><div class='add'>+	* examples/application/an-app.gemspec, lib/rubygems/format.rb,</div><div class='add'>+	  packages/sources/lib/sources.rb: Committed Dick Davies' patch to</div><div class='add'>+	  fix broken tests.</div><div class='add'>+</div><div class='add'>+2004-04-18 01:51  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/doc_manager.rb: RDoc generation observes</div><div class='add'>+	  'rdoc' config file value</div><div class='add'>+</div><div class='add'>+2004-04-17 12:15  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem: Improved 'build' error output</div><div class='add'>+</div><div class='add'>+2004-04-17 12:12  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/remote_installer.rb,</div><div class='add'>+	  rubygems/specification.rb, rubygems/validator.rb: All</div><div class='add'>+	  gems-related exceptions now extend Gem::Exception</div><div class='add'>+</div><div class='add'>+2004-04-17 12:11  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Improved handling of summary and</div><div class='add'>+	  decription strings - convert to single line</div><div class='add'>+</div><div class='add'>+2004-04-17 01:09  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem: Prevent remote install attempt if local install was</div><div class='add'>+	  successful</div><div class='add'>+</div><div class='add'>+2004-04-17 00:49  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/builder.rb: Better formatted the output code</div><div class='add'>+</div><div class='add'>+2004-04-16 21:31  gsinclair</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Stoopid coding error (thanks</div><div class='add'>+	  Kent Sibilev)</div><div class='add'>+</div><div class='add'>+2004-04-16 00:00  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: added code to optionally use nmake</div><div class='add'>+	  instead of make on win32 systems</div><div class='add'>+</div><div class='add'>+2004-04-15 20:12  gsinclair</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb: Clarified proxy</div><div class='add'>+	  handling and interface: --[no-]http-proxy [URL]</div><div class='add'>+</div><div class='add'>+2004-04-13 00:16  jimweirich</div><div class='add'>+</div><div class='add'>+	* bin/gem, test/bogussources.rb, test/functional.rb: Oops, missed</div><div class='add'>+	  an instance of GEM_PATH in the gem binary.</div><div class='add'>+</div><div class='add'>+2004-04-12 21:28  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb: Oops.	Missed a GEM_PATH.</div><div class='add'>+</div><div class='add'>+2004-04-12 21:11  jimweirich</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb: removed setting of environment</div><div class='add'>+	  variable for now.</div><div class='add'>+</div><div class='add'>+2004-04-12 21:09  jimweirich</div><div class='add'>+</div><div class='add'>+	* Rakefile, lib/rubygems.rb, lib/rubygems/cache.rb,</div><div class='add'>+	  lib/rubygems/installer.rb, packages/sources/.cvsignore,</div><div class='add'>+	  scripts/runtest.rb, test/.cvsignore, test/bogussources.rb,</div><div class='add'>+	  test/test_format.rb, test/test_gempaths.rb,</div><div class='add'>+	  test/test_remote_installer.rb, test/test_validator.rb: Added</div><div class='add'>+	  test/temp to the clobber list.  Broke out tests into inline to</div><div class='add'>+	  avoid test dependencies on rubygem.</div><div class='add'>+</div><div class='add'>+2004-04-12 07:52  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/installer.rb,</div><div class='add'>+	  rubygems/remote_installer.rb: Cleaning up output strings wrt</div><div class='add'>+	  formating of "gem (version)".</div><div class='add'>+</div><div class='add'>+2004-04-12 07:41  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: Gavin Sinclair's uninstall bug.</div><div class='add'>+</div><div class='add'>+2004-04-11 15:26  jimweirich</div><div class='add'>+</div><div class='add'>+	* test/data/one/: .cvsignore, one-ruby-0.0.1.gem:  removed</div><div class='add'>+	  one-ruby*.gem from source control.  This gem is automatically</div><div class='add'>+	  generated in testing.</div><div class='add'>+</div><div class='add'>+2004-04-11 10:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Gavin Sinclair's test code enhancements</div><div class='add'>+</div><div class='add'>+2004-04-11 07:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/remote_installer.rb, lib/rubygems/specification.rb,</div><div class='add'>+	  test/insure_session.rb, test/test_remote_installer.rb,</div><div class='add'>+	  test/data/one/one-ruby-0.0.1.gem: Gavin Sinclair patches to make</div><div class='add'>+	  installer return types less ambiguous.</div><div class='add'>+</div><div class='add'>+2004-04-09 10:29  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb, test/data/one/one-ruby-0.0.1.gem: gem</div><div class='add'>+	  -u input validation patch by Ville Aine</div><div class='add'>+</div><div class='add'>+2004-04-07 07:49  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/cache.rb, test/data/one/one-ruby-0.0.1.gem:</div><div class='add'>+	  Finally have passing tests.</div><div class='add'>+</div><div class='add'>+2004-04-07 07:24  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb,</div><div class='add'>+	  test/data/one/one-ruby-0.0.1.gem: Allow default option to work on</div><div class='add'>+	  remote dependency prompt.</div><div class='add'>+</div><div class='add'>+2004-04-07 07:05  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb, test/test_remote_installer.rb,</div><div class='add'>+	  test/data/one/one-ruby-0.0.1.gem: Applied George Marrows' patch</div><div class='add'>+	  to remote_install</div><div class='add'>+</div><div class='add'>+2004-04-07 06:23  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, test/data/one/one-ruby-0.0.1.gem: No longer "seeing"</div><div class='add'>+	  double on remote searches</div><div class='add'>+</div><div class='add'>+2004-04-05 07:39  chadfowler</div><div class='add'>+</div><div class='add'>+	* Rakefile, test/test_remote_installer.rb,</div><div class='add'>+	  test/data/one/one-ruby-0.0.1.gem: remote_installer tests aren't</div><div class='add'>+	  completely hosed anymore.</div><div class='add'>+</div><div class='add'>+2004-04-05 06:16  chadfowler</div><div class='add'>+</div><div class='add'>+	* Rakefile, test/data/one/one-ruby-0.0.1.gem: Rake target for</div><div class='add'>+	  running all tests (unit + functional) "alltests"</div><div class='add'>+</div><div class='add'>+2004-04-05 00:48  jimweirich</div><div class='add'>+</div><div class='add'>+	* test/: insure_session.rb, data/one/README.one,</div><div class='add'>+	  data/one/one-ruby-0.0.1.gem, data/one/one.gemspec,</div><div class='add'>+	  data/one/lib/one.rb: added for functional tests</div><div class='add'>+</div><div class='add'>+2004-04-05 00:48  jimweirich</div><div class='add'>+</div><div class='add'>+	* test/functional.rb: Moved session gem detection to insure_session</div><div class='add'>+	  file.  Modified functional tests to use gem command.	Removed</div><div class='add'>+	  some directory stuff because rake guarantees the starting</div><div class='add'>+	  directory.  Added test_info functional test.	Added test_build</div><div class='add'>+	  functional test.  Added assert status.</div><div class='add'>+</div><div class='add'>+2004-04-05 00:48  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Changed exceptions to inherit</div><div class='add'>+	  from RunTimeError</div><div class='add'>+</div><div class='add'>+2004-04-05 00:48  jimweirich</div><div class='add'>+</div><div class='add'>+	* bin/gem: Changed Installer to RemoteInstaller in rubygems-info.</div><div class='add'>+</div><div class='add'>+2004-04-05 00:48  jimweirich</div><div class='add'>+</div><div class='add'>+	* Rakefile: Added generated test gem to clobber list.  Added</div><div class='add'>+	  functional test target to rakefile.</div><div class='add'>+</div><div class='add'>+2004-04-04 21:17  chadfowler</div><div class='add'>+</div><div class='add'>+	* packages/sources/lib/sources.rb: Added gems mirror at</div><div class='add'>+	  http://gems.chadfowler.com</div><div class='add'>+</div><div class='add'>+2004-04-04 20:51  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb, test/functional.rb:</div><div class='add'>+	  More improved error messages (don't show stack trace when using</div><div class='add'>+	  bin/gem)</div><div class='add'>+</div><div class='add'>+2004-04-04 20:43  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb: Only read specs that end in "gemspec".</div><div class='add'>+	  The code doesn't handle non-gemspecs very well at all.</div><div class='add'>+</div><div class='add'>+2004-04-04 20:15  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/mock/gems/specifications/sources-0.0.1.gemspec: [no log</div><div class='add'>+	  message]</div><div class='add'>+</div><div class='add'>+2004-04-04 20:09  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/mock/gems/gems/sources-0.0.1/lib/sources.rb: Rearranging</div><div class='add'>+	  things a bit</div><div class='add'>+</div><div class='add'>+2004-04-04 20:02  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb, test/bogussources.rb,</div><div class='add'>+	  test/functional.rb: Better error messages on unresolvable host.</div><div class='add'>+</div><div class='add'>+2004-04-04 12:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* redist/session.gem, test/bogussources.rb, test/functional.rb:</div><div class='add'>+	  Added the beginnings of a functional test suite.</div><div class='add'>+</div><div class='add'>+2004-04-03 22:02  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb: Just had to explicitly rescue</div><div class='add'>+	  VerificationError.  All is well.</div><div class='add'>+</div><div class='add'>+2004-04-03 22:01  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb: Mauricio fixed a problem with alien</div><div class='add'>+	  (just failed to update it when we changed the gem directory), but</div><div class='add'>+	  now there's another issue I can't find.  Anyway, this fix is</div><div class='add'>+	  obviously needed.  But alien is broken anyway.</div><div class='add'>+</div><div class='add'>+2004-04-03 21:57  chadfowler</div><div class='add'>+</div><div class='add'>+	* install.rb, lib/rubygems/builder.rb: Batsman's bug report and</div><div class='add'>+	  code for the bugs I introduced today. :)</div><div class='add'>+</div><div class='add'>+2004-04-03 09:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Defaulting a spec's require_path</div><div class='add'>+	  to [] to avoid downstream errors.</div><div class='add'>+</div><div class='add'>+2004-04-03 09:06  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/builder.rb, test/test_builder.rb: builder now</div><div class='add'>+	  validates the gemspec.</div><div class='add'>+</div><div class='add'>+2004-04-03 08:48  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb, test/test_specification.rb: Added</div><div class='add'>+	  checking for gem specs to make sure they have all required</div><div class='add'>+	  attributes.</div><div class='add'>+</div><div class='add'>+2004-04-03 08:06  chadfowler</div><div class='add'>+</div><div class='add'>+	* gemspecs/rublog.gemspec: My original rublog gem was broken, in</div><div class='add'>+	  that it didn't have a require_path.</div><div class='add'>+</div><div class='add'>+2004-04-02 07:48  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Prompt for installation of</div><div class='add'>+	  dependencies.</div><div class='add'>+</div><div class='add'>+	  For now, there is a puts/gets in the middle of</div><div class='add'>+	  remote_installer.rb  This should probably be cleaned up later</div><div class='add'>+	  (return control flow to the gem program to install the</div><div class='add'>+	  dependencies, for example.</div><div class='add'>+</div><div class='add'>+2004-04-02 07:37  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: [no log message]</div><div class='add'>+</div><div class='add'>+2004-04-02 07:34  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/: simple_gem.rb, test_format.rb: Some things I forgot to cvs</div><div class='add'>+	  add earlier.</div><div class='add'>+</div><div class='add'>+2004-04-02 07:29  chadfowler</div><div class='add'>+</div><div class='add'>+	* example/: test.gemspec, lib/test.rb, lib/test/wow.rb: Removing</div><div class='add'>+	  example directory in favor of "examples" directory (just better</div><div class='add'>+	  organized).</div><div class='add'>+</div><div class='add'>+2004-04-02 07:26  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_all.rb: Removed test_all.rb.  Rake is obviously a</div><div class='add'>+	  better way to do it.</div><div class='add'>+</div><div class='add'>+2004-03-31 19:13  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/format.rb, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/validator.rb, test/test_all.rb,</div><div class='add'>+	  test/test_validator.rb: More tests and refactoring to support</div><div class='add'>+	  them.</div><div class='add'>+</div><div class='add'>+2004-03-30 02:41  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: allow passing parameters to extconf.rb</div><div class='add'>+	  with:</div><div class='add'>+</div><div class='add'>+	  ruby -i blah.gem --local -- --with-option</div><div class='add'>+</div><div class='add'>+	  everything past the -- will go to the extconf.rb...just like</div><div class='add'>+	  setup.rb</div><div class='add'>+</div><div class='add'>+2004-03-30 02:34  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/: installer.rb, specification.rb: very initial</div><div class='add'>+	  capability to build source gems.  this only lets you build native</div><div class='add'>+	  extensions so long as you do not have to specify --with-</div><div class='add'>+	  directories</div><div class='add'>+</div><div class='add'>+2004-03-29 08:31  rich</div><div class='add'>+</div><div class='add'>+	* install.rb: switched migration of old gems to new ./gems subdir</div><div class='add'>+	  to use FileUtils rather than ftools...hope to fix reported win32</div><div class='add'>+	  error.</div><div class='add'>+</div><div class='add'>+2004-03-29 01:04  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb: fixed bug in pathing based on new</div><div class='add'>+	  directory structure</div><div class='add'>+</div><div class='add'>+2004-03-29 01:03  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: fixed bug in default for proxy</div><div class='add'>+	  (should default to nil not true)</div><div class='add'>+</div><div class='add'>+2004-03-29 01:03  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem: updated with patch to allow for config file with minor</div><div class='add'>+	  difference from gavin's patch which passes a nil to the</div><div class='add'>+	  RemoteInstaller if the proxy does not exist</div><div class='add'>+</div><div class='add'>+2004-03-28 23:22  rich</div><div class='add'>+</div><div class='add'>+	* install.rb: added code to migrate gems if they are in the old</div><div class='add'>+	  directory structure</div><div class='add'>+</div><div class='add'>+2004-03-28 21:30  rich</div><div class='add'>+</div><div class='add'>+	* install.rb, lib/rubygems.rb, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/specification.rb: changed path of installed gems to</div><div class='add'>+	  be:</div><div class='add'>+</div><div class='add'>+	  ruby/gems/1.8/gems</div><div class='add'>+</div><div class='add'>+	  which cleans up the root.</div><div class='add'>+</div><div class='add'>+2004-03-28 18:53  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_all.rb: This is the file to run for all of the tests.</div><div class='add'>+</div><div class='add'>+	  test_remote_installer is commented out for now.  The open URI</div><div class='add'>+	  patch that George gave us makes the code a lot nicer to look at,</div><div class='add'>+	  but a little harder to test.</div><div class='add'>+</div><div class='add'>+2004-03-28 18:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb, test/test_cache.rb,</div><div class='add'>+	  test/test_remote_installer.rb: Added some tests for cache search</div><div class='add'>+</div><div class='add'>+2004-03-28 12:19  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/validator.rb, test/test_validator.rb: Some</div><div class='add'>+	  tests for the validator.</div><div class='add'>+</div><div class='add'>+	  Made the validator more testable.</div><div class='add'>+</div><div class='add'>+2004-03-28 09:30  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/validator.rb: Fixed a problem with false</div><div class='add'>+	  alarms in the validator.</div><div class='add'>+</div><div class='add'>+2004-03-27 08:23  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: No longer have an option to pass http proxy host into</div><div class='add'>+	  the gem program.  Only reads it from the environment.  This is</div><div class='add'>+	  because George's patch (and open-uri) work this way, and I'm lazy</div><div class='add'>+	  right now.</div><div class='add'>+</div><div class='add'>+2004-03-27 08:17  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: George Marrows' nice patch to</div><div class='add'>+	  remove a bunch of code from remote_installer.</div><div class='add'>+</div><div class='add'>+	  Our remote_installer tests are failing.  We really need to start</div><div class='add'>+	  paying attention to the test directory. :(`</div><div class='add'>+</div><div class='add'>+2004-03-24 23:26  jimweirich</div><div class='add'>+</div><div class='add'>+	* install.rb: Do not install commands ending in ~.</div><div class='add'>+</div><div class='add'>+2004-03-24 23:25  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Changed executables from accessor</div><div class='add'>+	  to writer to avoid redefinition.</div><div class='add'>+</div><div class='add'>+2004-03-21 21:10  jimweirich</div><div class='add'>+</div><div class='add'>+	* bin/gem: fixed uninitialized directory option</div><div class='add'>+</div><div class='add'>+2004-03-21 15:34  jimweirich</div><div class='add'>+</div><div class='add'>+	* bin/gem: removed carriage returns that screwed up the #! line</div><div class='add'>+</div><div class='add'>+2004-03-21 09:02  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Gavin's bin/gem refactoring.</div><div class='add'>+</div><div class='add'>+2004-03-20 17:03  jimweirich</div><div class='add'>+</div><div class='add'>+	* bin/gem: added wrapping to gem listing</div><div class='add'>+</div><div class='add'>+2004-03-20 12:22  chadfowler</div><div class='add'>+</div><div class='add'>+	* install.rb: More cleaning by Gavin Sinclair</div><div class='add'>+</div><div class='add'>+2004-03-20 12:08  chadfowler</div><div class='add'>+</div><div class='add'>+	* examples/application/an-app.gemspec,</div><div class='add'>+	  examples/application/bin/myapp,</div><div class='add'>+	  examples/application/lib/somefunctionality.rb, lib/rubygems.rb,</div><div class='add'>+	  lib/rubygems/installer.rb, lib/rubygems/specification.rb: Added</div><div class='add'>+	  functionality for installing applications into the system bindir.</div><div class='add'>+	  Needs cleaning and refactoring.</div><div class='add'>+</div><div class='add'>+2004-03-20 07:53  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: [no log message]</div><div class='add'>+</div><div class='add'>+2004-03-19 23:03  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: More intuitive default.</div><div class='add'>+</div><div class='add'>+2004-03-19 10:45  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: * Some minor rearranging of the test stuff so that</div><div class='add'>+	  installation errors will also abort the test run * Don't try to</div><div class='add'>+	  run tests if none are included with the gem</div><div class='add'>+</div><div class='add'>+2004-03-18 22:27  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, example/lib/test.rb, lib/rubygems/cache.rb,</div><div class='add'>+	  lib/rubygems/specification.rb: * Preliminary support for: gem -i</div><div class='add'>+	  blah-0.0.1.gem --run-tests Needs to be cleaned up considerably.</div><div class='add'>+	  * Introduction of new gemspec metadata "unit_test_suite", which</div><div class='add'>+	  will be require'd in order to load all unit tests</div><div class='add'>+</div><div class='add'>+2004-03-17 09:33  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Applied Gavin Sinclair's patch to make help output</div><div class='add'>+	  better.</div><div class='add'>+</div><div class='add'>+2004-03-16 21:55  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Added --remote-list option for gem command to display</div><div class='add'>+	  all gems on server.</div><div class='add'>+</div><div class='add'>+2004-03-16 21:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, doc/UserDoc.html: Fixed --help case inconsistencies and</div><div class='add'>+	  documentation typos as per Scott Harper's email.</div><div class='add'>+</div><div class='add'>+2004-03-16 21:41  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: --list and --search display are the same.</div><div class='add'>+</div><div class='add'>+2004-03-16 21:33  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Implemented some of Scott Harper's search suggestions:</div><div class='add'>+	  case insensitive sort of returned gems and display description</div><div class='add'>+	  with gem name in search results.</div><div class='add'>+</div><div class='add'>+2004-03-16 21:20  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb: http_proxy  option</div><div class='add'>+	  implemented</div><div class='add'>+</div><div class='add'>+2004-03-15 07:19  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/remote_installer.rb: Installation is now case</div><div class='add'>+	  insensitive (like search)</div><div class='add'>+</div><div class='add'>+2004-03-15 07:07  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO, bin/gem, lib/rubygems/remote_installer.rb: Better error</div><div class='add'>+	  messages.  updated TODO list.</div><div class='add'>+</div><div class='add'>+2004-03-14 21:02  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb: --dir didn't work with</div><div class='add'>+	  remote-install.  Now it does.</div><div class='add'>+</div><div class='add'>+2004-03-14 17:48  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem: fixed uninstall bug</div><div class='add'>+</div><div class='add'>+2004-03-14 17:18  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb: changed to remove &lt;drive&gt;: on</div><div class='add'>+	  win32...ug</div><div class='add'>+</div><div class='add'>+2004-03-14 16:15  rich</div><div class='add'>+</div><div class='add'>+	* install.rb: fixed typo</div><div class='add'>+</div><div class='add'>+2004-03-14 16:13  rich</div><div class='add'>+</div><div class='add'>+	* install.rb: generate cmd files</div><div class='add'>+</div><div class='add'>+2004-03-14 16:13  rich</div><div class='add'>+</div><div class='add'>+	* bin/: gem.cmd, gem_server.cmd: now generate cmd files</div><div class='add'>+</div><div class='add'>+2004-03-14 15:52  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Fixed a small bug with --gen-rdoc and the remote</div><div class='add'>+	  installer.</div><div class='add'>+</div><div class='add'>+2004-03-14 15:38  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Back to version 1.0 ;)</div><div class='add'>+</div><div class='add'>+2004-03-14 15:36  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Updated rubygemsversion</div><div class='add'>+</div><div class='add'>+2004-03-14 15:31  chadfowler</div><div class='add'>+</div><div class='add'>+	* README: credits</div><div class='add'>+</div><div class='add'>+2004-03-14 15:24  rich</div><div class='add'>+</div><div class='add'>+	* README: initial readme</div><div class='add'>+</div><div class='add'>+2004-03-14 15:12  rich</div><div class='add'>+</div><div class='add'>+	* doc/UserDoc.html: updated w/doc on documentation ;-)</div><div class='add'>+</div><div class='add'>+2004-03-14 15:01  rich</div><div class='add'>+</div><div class='add'>+	* gemspecs/jabber4r.gemspec: added jabber4r gemspec</div><div class='add'>+</div><div class='add'>+2004-03-14 14:58  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: change the documentation path to /</div><div class='add'>+</div><div class='add'>+2004-03-14 14:57  rich</div><div class='add'>+</div><div class='add'>+	* install.rb: remove installing .rb files from ./bin</div><div class='add'>+</div><div class='add'>+2004-03-14 14:32  rich</div><div class='add'>+</div><div class='add'>+	* doc/: DevDoc.txt, GemSpecification.txt, UserDoc.html,</div><div class='add'>+	  UserDoc.txt: updated with latest docs</div><div class='add'>+</div><div class='add'>+2004-03-14 12:05  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb: Fixed tests.</div><div class='add'>+</div><div class='add'>+2004-03-14 11:31  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Fixed bug that would manifest</div><div class='add'>+	  itself if a gem creator put apostrophes/single-quotes in the gem</div><div class='add'>+	  spec.</div><div class='add'>+</div><div class='add'>+2004-03-14 00:04  rich</div><div class='add'>+</div><div class='add'>+	* doc/: UserDoc.html, UserDoc.txt: finished user's guide</div><div class='add'>+</div><div class='add'>+2004-03-13 21:48  rich</div><div class='add'>+</div><div class='add'>+	* doc/: DevDoc.html, UserDoc.html, UserDoc.txt: updated user's</div><div class='add'>+	  guide...will finish section on ruby's library mgt soon ;-)</div><div class='add'>+</div><div class='add'>+2004-03-13 20:48  chadfowler</div><div class='add'>+</div><div class='add'>+	* doc/DevDoc.txt: Added documentation on making and distributing</div><div class='add'>+	  gems</div><div class='add'>+</div><div class='add'>+2004-03-13 20:20  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: [no log message]</div><div class='add'>+</div><div class='add'>+2004-03-13 19:51  rich</div><div class='add'>+</div><div class='add'>+	* doc/: DevDoc.html, DevDoc.txt, GemSpecification.html,</div><div class='add'>+	  GemSpecification.txt, UserDoc.html, UserDoc.txt, doc.css,</div><div class='add'>+	  makedoc.rb: added these doc (wiki) files from</div><div class='add'>+	  http://rubygems.rubyforge.org/</div><div class='add'>+</div><div class='add'>+2004-03-13 17:56  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO, gemspecs/README, gemspecs/cgikit-1.1.0.gemspec,</div><div class='add'>+	  gemspecs/linguistics.gemspec, gemspecs/ook.gemspec,</div><div class='add'>+	  gemspecs/progressbar.gemspec, gemspecs/redcloth.gemspec,</div><div class='add'>+	  gemspecs/rublog.gemspec, gemspecs/ruby-doom.gemspec,</div><div class='add'>+	  gemspecs/rubyjdwp.gemspec, gemspecs/statistics.gemspec: Added</div><div class='add'>+	  some gemspecs for actual RAA packages.</div><div class='add'>+</div><div class='add'>+2004-03-13 14:35  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO, lib/rubygems/remote_installer.rb: Preliminary HTTP Proxy</div><div class='add'>+	  support.  Untested.</div><div class='add'>+</div><div class='add'>+2004-03-13 09:11  chadfowler</div><div class='add'>+</div><div class='add'>+	* packages/sources/lib/sources.rb: Changed to point to rubyforge</div><div class='add'>+</div><div class='add'>+2004-03-12 22:40  rich</div><div class='add'>+</div><div class='add'>+	* bin/generate_yaml_index.rb: generates a yaml index for a gems</div><div class='add'>+	  repository</div><div class='add'>+</div><div class='add'>+2004-03-12 22:02  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: No longer serving gem specs.</div><div class='add'>+</div><div class='add'>+2004-03-12 21:42  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO, bin/gem_server.cgi: We decided to trash gem_server.cgi in</div><div class='add'>+	  favor of the static content generator Rich is working on.</div><div class='add'>+</div><div class='add'>+2004-03-12 21:15  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: [no log message]</div><div class='add'>+</div><div class='add'>+2004-03-12 20:11  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/remote_installer.rb: Basic search funtionality in.</div><div class='add'>+</div><div class='add'>+	  Slight refactoring of Installer and RemoteInstaller</div><div class='add'>+</div><div class='add'>+2004-03-12 18:28  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: [no log message]</div><div class='add'>+</div><div class='add'>+2004-03-12 16:37  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: [no log message]</div><div class='add'>+</div><div class='add'>+2004-03-12 16:14  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: More TODO items</div><div class='add'>+</div><div class='add'>+2004-03-08 13:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO, bin/gem_server, example/test.gemspec: Use rdoc templates</div><div class='add'>+	  for HTML.  Nearly XHTML compliant.</div><div class='add'>+</div><div class='add'>+2004-03-08 08:21  chadfowler</div><div class='add'>+</div><div class='add'>+	* TODO: Added TODO list</div><div class='add'>+</div><div class='add'>+2004-03-08 08:12  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb: Fixed a small (but crippling) bug in</div><div class='add'>+	  the validator.</div><div class='add'>+</div><div class='add'>+2004-01-24 13:49  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems.rb, lib/rubygems/cache.rb,</div><div class='add'>+	  lib/rubygems/validator.rb, lib/rubygems/version.rb: More cleanup.</div><div class='add'>+</div><div class='add'>+2004-01-24 13:29  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb: A little cleaning of</div><div class='add'>+	  (Remote)Installer inconsistencies</div><div class='add'>+</div><div class='add'>+2004-01-24 13:23  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Removed the weird instance variable thing we had going</div><div class='add'>+	  on. :)</div><div class='add'>+</div><div class='add'>+2004-01-07 17:34  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: removed old cruft</div><div class='add'>+</div><div class='add'>+2003-12-24 11:32  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb: Gem validation was returning false</div><div class='add'>+	  negatives (corrupted gems were not reporting their corruption).</div><div class='add'>+</div><div class='add'>+2003-12-18 14:18  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb: Lyle noticed some out of date rdoc</div><div class='add'>+	  documentation.  Thanks Lyle!</div><div class='add'>+</div><div class='add'>+2003-12-03 08:05  chadfowler</div><div class='add'>+</div><div class='add'>+	* install.rb: Gavin's patch for installing the files in bin/ on</div><div class='add'>+	  rubygems installation.</div><div class='add'>+</div><div class='add'>+2003-11-30 00:36  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Little warnings adjustment</div><div class='add'>+</div><div class='add'>+2003-11-29 17:27  jimweirich</div><div class='add'>+</div><div class='add'>+	* Rakefile: added Rakefile to package</div><div class='add'>+</div><div class='add'>+2003-11-29 16:23  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Removed defined? and initialized</div><div class='add'>+	  @platform</div><div class='add'>+</div><div class='add'>+2003-11-29 16:08  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Initialized @loaded and check</div><div class='add'>+	  defined?(@platform) to silence some -w warnings.</div><div class='add'>+</div><div class='add'>+2003-11-29 09:26  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem_server, lib/rubygems/doc_manager.rb: updated to support</div><div class='add'>+	  /doc URL to generate list of installed gems w/doc link for rdoc</div><div class='add'>+	  generated links.</div><div class='add'>+</div><div class='add'>+2003-11-29 08:30  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/doc_manager.rb: minor format change of error message</div><div class='add'>+</div><div class='add'>+2003-11-29 08:29  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/builder.rb, lib/rubygems/doc_manager.rb,</div><div class='add'>+	  lib/rubygems/installer.rb: instantiates DocManager now.  errors</div><div class='add'>+	  out on no install of RDoc.  warns if .gemspec does not specify</div><div class='add'>+	  having rdoc, but rdoc is generated</div><div class='add'>+</div><div class='add'>+2003-11-29 02:13  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems.rb, lib/rubygems/doc_manager.rb,</div><div class='add'>+	  lib/rubygems/format.rb, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/specification.rb: added capability to generate rdoc</div><div class='add'>+	  on install of gem (--gen-rdoc).  this doc is placed in</div><div class='add'>+	  Gem.dir+doc+gem.full_name fixed but in installer when moving to</div><div class='add'>+	  format (not calling each) added doc manager to add/remove</div><div class='add'>+	  documenatation (right now only rdoc)</div><div class='add'>+</div><div class='add'>+2003-11-29 01:28  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: should not define the attr_readers</div><div class='add'>+	  for requirements/dependencies so undef is unnecessary</div><div class='add'>+</div><div class='add'>+2003-11-29 00:12  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Undefing dependencies and</div><div class='add'>+	  requirements removes warning when used with -w.</div><div class='add'>+</div><div class='add'>+2003-11-29 00:12  jimweirich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: Using defined?($GEM_PATH) avoids warning when</div><div class='add'>+	  used with -w switch.</div><div class='add'>+</div><div class='add'>+2003-11-28 15:58  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, example/test.gemspec, lib/rubygems.rb,</div><div class='add'>+	  lib/rubygems/installer.rb, lib/rubygems/validator.rb,</div><div class='add'>+	  lib/rubygems/format.rb: Separated gem file reading into a</div><div class='add'>+	  separate class/file.</div><div class='add'>+</div><div class='add'>+2003-11-28 15:20  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: added has_rdoc?/has_rdoc methods</div><div class='add'>+	  ... will be used to autogenerate rdoc</div><div class='add'>+</div><div class='add'>+2003-11-28 12:30  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/validator.rb: Rdoc added</div><div class='add'>+</div><div class='add'>+2003-11-28 11:51  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems.rb, lib/rubygems/validator.rb: A little</div><div class='add'>+	  rearranging of the validation/alien code.  It's still ugly, but</div><div class='add'>+	  at least it's in its own file now. :)</div><div class='add'>+</div><div class='add'>+2003-11-28 11:40  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Removed a little cruft.</div><div class='add'>+</div><div class='add'>+2003-11-27 11:04  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Print success message for each gem *not* containing</div><div class='add'>+	  errors.</div><div class='add'>+</div><div class='add'>+2003-11-27 11:00  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/installer.rb: Preliminary support for gem</div><div class='add'>+	  directory validation (--alien).  Looks for bad or missing gem</div><div class='add'>+	  files, missing spec files, files installed that aren't part of</div><div class='add'>+	  the gem, checksum mismatches, etc.</div><div class='add'>+</div><div class='add'>+	  Very ugly code.  Very ugly output.  Work in progress.</div><div class='add'>+</div><div class='add'>+2003-11-24 11:58  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: change full_name to include</div><div class='add'>+	  platform</div><div class='add'>+</div><div class='add'>+2003-11-24 09:15  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Option for HTTP Proxy server for remote-install.  Not</div><div class='add'>+	  yet implemented.</div><div class='add'>+</div><div class='add'>+2003-11-23 20:22  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/builder.rb: Removed a stray \" in builder's success</div><div class='add'>+	  message</div><div class='add'>+</div><div class='add'>+2003-11-23 20:16  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Leaving escape in but commenting</div><div class='add'>+	  out its functionality because it hosed some other things up.</div><div class='add'>+	  Need to revisit this for the case where:</div><div class='add'>+</div><div class='add'>+	   s.summary = "Chad's Thing" # It's the apostrophe</div><div class='add'>+</div><div class='add'>+2003-11-23 20:08  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: Escape quotes to avoid invalid</div><div class='add'>+	  gemspecs in the #{Gem.dir}/specifications directory</div><div class='add'>+</div><div class='add'>+2003-11-23 19:21  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Less ugly error message on file IO problems.</div><div class='add'>+</div><div class='add'>+2003-11-22 22:34  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Very simple support for validating a gem.  Will probably</div><div class='add'>+	  move this into the libs eventually.</div><div class='add'>+</div><div class='add'>+2003-11-22 20:53  chadfowler</div><div class='add'>+</div><div class='add'>+	* example/test.gemspec, lib/rubygems/builder.rb: Generate MD5</div><div class='add'>+	  checksum for gem and store it in the file.  Will be used to</div><div class='add'>+	  validate gem file before installation.</div><div class='add'>+</div><div class='add'>+2003-11-22 13:58  chadfowler</div><div class='add'>+</div><div class='add'>+	* install.rb, lib/rubygems/remote_installer.rb,</div><div class='add'>+	  packages/sources/sources.gemspec,</div><div class='add'>+	  packages/sources/lib/sources.rb: remote-install sources are now</div><div class='add'>+	  installed as a ruby gem at the time of rubygems installation.</div><div class='add'>+	  sources gemspec included in the rubygems distribution.</div><div class='add'>+</div><div class='add'>+2003-11-22 12:52  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Allow gem info by --version</div><div class='add'>+</div><div class='add'>+2003-11-22 11:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/cache.rb: Fixed the bug I introduced</div><div class='add'>+	  by fixing Rich's bug with gem cache caching. ;)</div><div class='add'>+</div><div class='add'>+	  Gem::Cache now has a #refresh! method.</div><div class='add'>+</div><div class='add'>+2003-11-22 10:16  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems.rb, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/remote_installer.rb: - Fixed bug in Gem.cache</div><div class='add'>+	  (though we may want to revisit it for in-memory caching - Command</div><div class='add'>+	  line configurable version for uninstall</div><div class='add'>+</div><div class='add'>+2003-11-22 00:28  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/cache.rb: rdoc'd search method</div><div class='add'>+</div><div class='add'>+2003-11-22 00:24  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/cache.rb, lib/rubygems/version.rb,</div><div class='add'>+	  test/test_version_comparison.rb: removed search_by_name because</div><div class='add'>+	  search does the same thing.  version::requirement was updated to</div><div class='add'>+	  that if you did not specific a version operation, it assumes an =</div><div class='add'>+	  sign.  updated tests accordingly</div><div class='add'>+</div><div class='add'>+2003-11-21 23:58  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/: cache.rb, installer.rb: allow version to be</div><div class='add'>+	  specified in uninstall (if called programatically)</div><div class='add'>+</div><div class='add'>+2003-11-21 23:52  rich</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/cache.rb, rubygems/installer.rb,</div><div class='add'>+	  rubygems/specification.rb: &gt; moved all searching into cache..and</div><div class='add'>+	  now search by name/version and return an</div><div class='add'>+	  ordered list (.last == highest version).</div><div class='add'>+	  &gt; modified uninstaller to allow selecting a specific version to</div><div class='add'>+	  uninstall if</div><div class='add'>+	  multiple versions are installed.</div><div class='add'>+	  &gt; implemented comparison function on specification.</div><div class='add'>+	  &gt; changed require_gem to use new search of cache function</div><div class='add'>+</div><div class='add'>+2003-11-21 21:06  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/remote_installer.rb: Added ability to</div><div class='add'>+	  specify optional version requirement for remote installations</div><div class='add'>+</div><div class='add'>+2003-11-21 20:25  chadfowler</div><div class='add'>+</div><div class='add'>+	* test/test_remote_installer.rb: Removed carriage returns</div><div class='add'>+</div><div class='add'>+2003-11-21 19:04  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem_server: Converted from getopts to optparse.</div><div class='add'>+</div><div class='add'>+2003-11-21 18:31  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: changed the order in which operations are</div><div class='add'>+	  performed in require_gem.  it now requires dependent gems prior</div><div class='add'>+	  to adding the require_paths to a gem.  otherwise we could have</div><div class='add'>+	  had a LoadError on a dependent gem but the paths were already</div><div class='add'>+	  added...potential problem</div><div class='add'>+</div><div class='add'>+2003-11-21 18:21  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: updated to ensure</div><div class='add'>+	  (specifications/cache) directories exist for a provided path</div><div class='add'>+</div><div class='add'>+2003-11-21 18:01  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: updated rdoc</div><div class='add'>+</div><div class='add'>+2003-11-21 17:59  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem, lib/rubygems/builder.rb, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/specification.rb: fixed various bugs with the</div><div class='add'>+	  $GEM_PATH stuff, specifically on uninstall.  Also, changed to</div><div class='add'>+	  allow specifying a directory on install (--dir) and force install</div><div class='add'>+	  (--force).  Changed the builder generated ruby header to use</div><div class='add'>+	  optparse.</div><div class='add'>+</div><div class='add'>+2003-11-21 07:03  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/cache.rb,</div><div class='add'>+	  rubygems/remote_installer.rb: Remote installation of dependencies</div><div class='add'>+	  now works.  It downloads all dependent gems or errors out.</div><div class='add'>+</div><div class='add'>+	  Fixed bug in require_gem.  Wrong call to cache.</div><div class='add'>+</div><div class='add'>+2003-11-21 00:59  rich</div><div class='add'>+</div><div class='add'>+	* bin/gem, example/test.gemspec, lib/rubygems.rb,</div><div class='add'>+	  lib/rubygems/cache.rb, lib/rubygems/installer.rb,</div><div class='add'>+	  lib/rubygems/specification.rb: added capability to support</div><div class='add'>+	  multiple paths $GEM_PATH in Ruby and RUBY_GEMS in the ARGV.  Lots</div><div class='add'>+	  of changes were needed to support this.  also added the --force</div><div class='add'>+	  and --dir options to gem installtion</div><div class='add'>+</div><div class='add'>+2003-11-20 22:50  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/gem: Switched to optparse.  Not a whole lot gained, but it</div><div class='add'>+	  seems to be the way Ruby is going.  It's nice not to have to do</div><div class='add'>+	  the "when" stuff, I guess.</div><div class='add'>+</div><div class='add'>+2003-11-19 23:41  chadfowler</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/: installer.rb, remote_installer.rb: Added</div><div class='add'>+	  chadfowler.com to the hardcoded remote install list.</div><div class='add'>+</div><div class='add'>+	  Fixed a dangling YAML.load that broke uninstall.</div><div class='add'>+</div><div class='add'>+2003-11-19 22:56  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems.rb: fixed bug in loading rubygems</div><div class='add'>+</div><div class='add'>+2003-11-19 22:51  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/: gem_server, gem_server.cgi: require 'yaml' :)</div><div class='add'>+</div><div class='add'>+2003-11-19 22:44  rich</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/cache.rb, rubygems/specification.rb:</div><div class='add'>+	  changed the format of stuff stored in the spec directory to ruby</div><div class='add'>+	  instead of YAML.  This allows us to not have to load yaml in</div><div class='add'>+	  'require_gem'.  switched the specification list to a Cache</div><div class='add'>+	  object.</div><div class='add'>+</div><div class='add'>+2003-11-19 21:56  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/installer.rb: write the spec file in ruby and not in</div><div class='add'>+	  yaml format (in the spec dir)</div><div class='add'>+</div><div class='add'>+2003-11-19 20:32  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: added to_ruby method to generate a</div><div class='add'>+	  ruby string that can be eval'ed in to build a Gem Specification</div><div class='add'>+</div><div class='add'>+2003-11-17 21:37  jimweirich</div><div class='add'>+</div><div class='add'>+	* bin/: gem_server, gem_server.cgi: removed carriage returns</div><div class='add'>+</div><div class='add'>+2003-11-17 21:19  chadfowler</div><div class='add'>+</div><div class='add'>+	* install.rb: Accidentally left some junk in the file.</div><div class='add'>+</div><div class='add'>+2003-11-17 19:50  dblack</div><div class='add'>+</div><div class='add'>+	* test/test_version_comparison.rb: * Test cases for Version.rb</div><div class='add'>+</div><div class='add'>+2003-11-17 19:50  dblack</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: * Split off tests into</div><div class='add'>+	  rubygems/tests/test_version_comparison.rb</div><div class='add'>+</div><div class='add'>+2003-11-17 12:37  chadfowler</div><div class='add'>+</div><div class='add'>+	* install.rb: Create File.join(Config::CONFIG['libdir'], "ruby",</div><div class='add'>+	  "gems") + "specifications" and + "cache" during installation.</div><div class='add'>+</div><div class='add'>+	  Need to remove this from rubygems.rb and replace with</div><div class='add'>+	  ensure_directory call.</div><div class='add'>+</div><div class='add'>+2003-11-17 12:29  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: rdoc added</div><div class='add'>+</div><div class='add'>+2003-11-17 11:31  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/specification.rb: rdoc added</div><div class='add'>+</div><div class='add'>+2003-11-17 10:38  rich</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/: cache.rb, installer.rb: made rdoc comments and</div><div class='add'>+	  renamed some variables</div><div class='add'>+</div><div class='add'>+2003-11-17 08:48  dblack</div><div class='add'>+</div><div class='add'>+	* lib/rubygems/version.rb: * Added stricter checking of incoming</div><div class='add'>+	  Requirement string</div><div class='add'>+</div><div class='add'>+	  * Added unit tests at end of file</div><div class='add'>+</div><div class='add'>+2003-11-17 07:32  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/: gem_server, gem_server.cgi: Refactored gem_server program</div><div class='add'>+	  and added an equivalent CGI version.</div><div class='add'>+</div><div class='add'>+2003-11-17 00:14  rich</div><div class='add'>+</div><div class='add'>+	* lib/: rubygems.rb, rubygems/builder.rb, rubygems/cache.rb: added</div><div class='add'>+	  rdoc documentation</div><div class='add'>+</div><div class='add'>+2003-11-16 17:15  chadfowler</div><div class='add'>+</div><div class='add'>+	* bin/: gem.cmd, gem_server.cmd: Added some batch files for Windows</div><div class='add'>+</div><div class='add'>+2003-11-16 17:08  rich</div><div class='add'>+</div><div class='add'>+	* install.rb, bin/gem, bin/gem_server, example/test.gemspec,</div><div class='add'>+	  example/lib/test.rb, example/lib/test/wow.rb, lib/rubygems.rb,</div><div class='add'>+	  lib/rubygems/builder.rb, lib/rubygems/cache.rb,</div><div class='add'>+	  lib/rubygems/installer.rb, lib/rubygems/remote_installer.rb,</div><div class='add'>+	  lib/rubygems/specification.rb, lib/rubygems/version.rb,</div><div class='add'>+	  test/test_remote_installer.rb: Initial import developed at</div><div class='add'>+	  RubyConf 2003 by:</div><div class='add'>+</div><div class='add'>+	  Rich Kilmer Chad Fowler David Black Paul Brannon Jim Weirich</div><div class='add'>+</div><div class='add'>+2003-11-16 17:08  rich</div><div class='add'>+</div><div class='add'>+	* install.rb, bin/gem, bin/gem_server, example/test.gemspec,</div><div class='add'>+	  example/lib/test.rb, example/lib/test/wow.rb, lib/rubygems.rb,</div><div class='add'>+	  lib/rubygems/builder.rb, lib/rubygems/cache.rb,</div><div class='add'>+	  lib/rubygems/installer.rb, lib/rubygems/remote_installer.rb,</div><div class='add'>+	  lib/rubygems/specification.rb, lib/rubygems/version.rb,</div><div class='add'>+	  test/test_remote_installer.rb: Initial revision</div><div class='add'>+</div><div class='add'>+Local variables:</div><div class='add'>+indent-tabs-mode: t</div><div class='add'>+tab-width: 8</div><div class='add'>+end:</div><div class='head'>diff --git a/doc/rubygems/History.txt b/doc/rubygems/History.txt<br/>new file mode 100644<br/>index 0000000000..4a80b1bfb4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rubygems/History.txt?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rubygems/History.txt</a></div><div class='hunk'>@@ -0,0 +1,852 @@</div><div class='add'>+# -*- coding: utf-8 -*-</div><div class='add'>+</div><div class='add'>+=== 1.3.6 / 2010-02-17</div><div class='add'>+</div><div class='add'>+NOTE:</div><div class='add'>+</div><div class='add'>+http://rubygems.org is now the default source for downloading gems.</div><div class='add'>+</div><div class='add'>+You may have sources set via ~/.gemrc, so you should replace</div><div class='add'>+http://gems.rubyforge.org with http://rubygems.org</div><div class='add'>+</div><div class='add'>+http://gems.rubyforge.org will continue to work for the forseeable future.</div><div class='add'>+</div><div class='add'>+New features:</div><div class='add'>+</div><div class='add'>+* `gem` commands</div><div class='add'>+  * Added `gem push` and `gem owner` for interacting with modern/Gemcutter</div><div class='add'>+    sources</div><div class='add'>+  * `gem dep` now supports --prerelease.</div><div class='add'>+  * `gem fetch` now supports --prerelease.</div><div class='add'>+  * `gem server` now supports --bind.  Patch #27357 by Bruno Michel.</div><div class='add'>+  * `gem rdoc` no longer overwrites built documentation.  Use --overwrite</div><div class='add'>+    force rebuilding.  Patch #25982 by Akinori MUSHA.</div><div class='add'>+* Captial letters are now allowed in prerelease versions.</div><div class='add'>+</div><div class='add'>+Bug fixes:</div><div class='add'>+</div><div class='add'>+* Development deps are no longer added to rubygems-update gem so older</div><div class='add'>+  versions can update sucessfully.</div><div class='add'>+* Installer bugs:</div><div class='add'>+  * Prerelease gems can now depend on non-prerelease gems.</div><div class='add'>+  * Development dependencies are ignored unless explicitly needed.  Bug #27608</div><div class='add'>+    by Roger Pack.</div><div class='add'>+* `gem` commands</div><div class='add'>+  * `gem which` now fails if no paths were found.  Adapted patch #27681 by</div><div class='add'>+    Caio Chassot.</div><div class='add'>+  * `gem server` no longer has invalid markup.  Bug #27045 by Eric Young.</div><div class='add'>+  * `gem list` and friends show both prerelease and regular gems when</div><div class='add'>+    --prerelease --all is given</div><div class='add'>+* Gem::Format no longer crashes on empty files.  Bug #27292 by Ian Ragsdale.</div><div class='add'>+* Gem::GemPathSearcher handles nil require_paths. Patch #27334 by Roger Pack.</div><div class='add'>+* Gem::RemoteFetcher no longer copies the file if it is where we want it.</div><div class='add'>+  Patch #27409 by Jakub Å Å¥astnÃ½.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* lib/rubygems/timer.rb has been removed.</div><div class='add'>+* Gem::Dependency#version_requirements is deprecated and will be removed on or</div><div class='add'>+  after August 2010.</div><div class='add'>+* Bulk index update is no longer supported.</div><div class='add'>+* Gem::manage_gems was removed in 1.3.3.</div><div class='add'>+* Time::today was removed in 1.3.3.</div><div class='add'>+</div><div class='add'>+=== 1.3.5 / 2009-07-21</div><div class='add'>+</div><div class='add'>+Bug fixes:</div><div class='add'>+</div><div class='add'>+* Fix use of prerelease gems.</div><div class='add'>+* Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* Bulk index update is no longer supported (the code currently remains, but not</div><div class='add'>+  the tests)</div><div class='add'>+* Gem::manage_gems was removed in 1.3.3.</div><div class='add'>+* Time::today was removed in 1.3.3.</div><div class='add'>+</div><div class='add'>+=== 1.3.4 / 2009-05-03</div><div class='add'>+</div><div class='add'>+Bug Fixes:</div><div class='add'>+</div><div class='add'>+* Fixed various warnings</div><div class='add'>+* Gem::ruby_version works correctly for 1.8 branch and trunk</div><div class='add'>+* Prerelease gems now show up in `gem list` and can be used</div><div class='add'>+* Fixed option name for `gem setup --format-executable`</div><div class='add'>+* RubyGems now matches Ruby &gt; 1.9.1 gem paths</div><div class='add'>+* Gem::RemoteFetcher#download now works for explicit Windows paths across</div><div class='add'>+  drives.  Bug #25882 by Lars Christensen</div><div class='add'>+* Fix typo in Gem::Requirement#parse.  Bug #26000 by Mike Gunderloy.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* Bulk index update is no longer supported (the code currently remains, but not</div><div class='add'>+  the tests)</div><div class='add'>+* Gem::manage_gems was removed in 1.3.3.</div><div class='add'>+* Time::today was removed in 1.3.3.</div><div class='add'>+</div><div class='add'>+=== 1.3.3 / 2009-05-04</div><div class='add'>+</div><div class='add'>+New Features:</div><div class='add'>+</div><div class='add'>+* `gem server` allows port names (from /etc/services) with --port.</div><div class='add'>+* `gem server` now has search that jumps to RDoc.  Patch #22959 by Vladimir</div><div class='add'>+  Dobriakov.</div><div class='add'>+* `gem spec` can retrieve single fields from a spec (like `gem spec rake</div><div class='add'>+  authors`).</div><div class='add'>+* Gem::Specification#has_rdoc= is deprecated and ignored (defaults to true)</div><div class='add'>+* RDoc is now generated regardless of Gem::Specification#has_rdoc?</div><div class='add'>+</div><div class='add'>+Bug Fixes:</div><div class='add'>+</div><div class='add'>+* `gem clean` now cleans up --user-install gems.  Bug #25516 by Brett</div><div class='add'>+  Eisenberg.</div><div class='add'>+* Gem.bin_path now escapes paths with spaces.</div><div class='add'>+* Rake extension builder uses explicit correctly loads rubygems when invoking</div><div class='add'>+  rake.</div><div class='add'>+* Prerelease versions now match "~&gt;" correctly.  Patch #25759 by Yossef</div><div class='add'>+  Mendelssohn.</div><div class='add'>+* Check bindir for executables, not root when validating.  Bug reported by</div><div class='add'>+  David Chelimsky.</div><div class='add'>+* Remove Time.today, no way to override it before RubyGems loads.  Bug #25564</div><div class='add'>+  by Emanuele Vicentini</div><div class='add'>+* Raise Gem::Exception for #installation_path when not installed.  Bug #25741</div><div class='add'>+  by Daniel Berger.</div><div class='add'>+* Don't raise in Gem::Specification#validate when homepage is nil.  Bug #25677</div><div class='add'>+  by Mike Burrows.</div><div class='add'>+* Uninstall executables from the correct directory.  Bug #25555 by Brett</div><div class='add'>+  Eisenberg.</div><div class='add'>+* Raise Gem::LoadError if Kernel#gem fails due to previously-loaded gem.  Bug</div><div class='add'>+  reported by Alf Mikula.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* Gem::manage_gems has been removed.</div><div class='add'>+* Time::today has been removed early.  There was no way to make it warn and be</div><div class='add'>+  easy to override with user code.</div><div class='add'>+</div><div class='add'>+=== 1.3.2 / 2009-04-15</div><div class='add'>+</div><div class='add'>+Select New Features:</div><div class='add'>+</div><div class='add'>+* RubyGems now loads plugins from rubygems_plugin.rb in installed gems.</div><div class='add'>+  This can be used to add commands (See Gem::CommandManager) or add</div><div class='add'>+  install/uninstall hooks (See Gem::Installer and Gem::Uninstaller).</div><div class='add'>+* Gem::Version now understands prerelease versions using letters. (eg.</div><div class='add'>+  '1.2.1.b')  Thanks to Josh Susser, Alex Vollmer and Phil Hagelberg.</div><div class='add'>+* RubyGems now includes a Rake task for creating gems which replaces rake's</div><div class='add'>+  Rake::GemPackageTask.  See Gem::PackageTask.</div><div class='add'>+* Gem::find_files now returns paths in $LOAD_PATH.</div><div class='add'>+* Added Gem::promote_load_path for use with Gem::find_files</div><div class='add'>+* Added Gem::bin_path to make finding executables easier.  Patch #24114 by</div><div class='add'>+  James Tucker.</div><div class='add'>+* Various improvements to build arguments for installing gems.</div><div class='add'>+* `gem contents` added --all and --no-prefix.</div><div class='add'>+* Gem::Specification</div><div class='add'>+  * #validate strips directories and errors on not-files.</div><div class='add'>+  * #description no longer removes newlines.</div><div class='add'>+  * #name must be a String.</div><div class='add'>+  * FIXME and TODO are no longer allowed in various fields.</div><div class='add'>+  * Added support for a license attribute.  Feature #11041 (partial).</div><div class='add'>+  * Removed Gem::Specification::list, too much process growth.  Bug #23668 by</div><div class='add'>+    Steve Purcell.</div><div class='add'>+* `gem generate_index`</div><div class='add'>+  * Can now generate an RSS feed.</div><div class='add'>+  * Modern indicies can now be updated incrementally.</div><div class='add'>+  * Legacy indicies can be updated separately from modern.</div><div class='add'>+</div><div class='add'>+Select Bugs Fixed:</div><div class='add'>+</div><div class='add'>+* Better gem activation error message. Patch #23082.</div><div class='add'>+* Kernel methods are now private.  Patch #20801 by James M. Lawrence.</div><div class='add'>+* Fixed various usability issues with `gem check`.</div><div class='add'>+* `gem update` now rescues InstallError and continues.  Bug #19268 by Gabriel</div><div class='add'>+  Wilkins.</div><div class='add'>+* Allow 'https', 'file' as a valid schemes for --source.  Patch #22485.</div><div class='add'>+* `gem install`</div><div class='add'>+  * Now removes existing path before installing.  Bug #22837.</div><div class='add'>+  * Uses Gem::bin_path in executable stubs to work around Kernel#load bug in</div><div class='add'>+    1.9.</div><div class='add'>+  * Correctly handle build args (after --) via the API.  Bug #23210.</div><div class='add'>+* --user-install</div><div class='add'>+  * `gem install --no-user-install` now works.  Patch #23573 by Alf Mikula.</div><div class='add'>+  * `gem uninstall` can now uninstall from ~/.gem.  Bug #23760 by Roger Pack.</div><div class='add'>+* setup.rb</div><div class='add'>+  * Clarify RubyGems RDoc installation location.  Bug #22656 by Gian Marco</div><div class='add'>+    Gherardi.</div><div class='add'>+  * Allow setup to run from read-only location.  Patch #21862 by Luis Herrera.</div><div class='add'>+  * Fixed overwriting ruby executable when BASERUBY was not set.  Bug #24958</div><div class='add'>+    by Michael Soulier.</div><div class='add'>+  * Ensure we're in a RubyGems dir when installing.</div><div class='add'>+  * Deal with extraneous quotation mark when autogenerating .bat file on MS</div><div class='add'>+    Windows.  Bug #22712.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* Gem::manage_gems has been removed.</div><div class='add'>+* Time::today will be removed in RubyGems 1.4.</div><div class='add'>+</div><div class='add'>+Special thanks to Chad Wooley for backwards compatibility testing and Luis</div><div class='add'>+Lavena and Daniel Berger for continuing windows support.</div><div class='add'>+</div><div class='add'>+=== 1.3.1 / 2008-10-28</div><div class='add'>+</div><div class='add'>+Bugs fixed:</div><div class='add'>+</div><div class='add'>+* Disregard ownership of ~ under Windows while creating ~/.gem.  Fixes</div><div class='add'>+  issues related to no uid support under Windows.</div><div class='add'>+* Fix requires for Gem::inflate, Gem::deflate, etc.</div><div class='add'>+* Make Gem.dir respect :gemhome value from config.  (Note: this feature may be</div><div class='add'>+  removed since it is hard to implement on 1.9.)</div><div class='add'>+* Kernel methods are now private.  Patch #20801 by James M. Lawrence.</div><div class='add'>+* Gem::location_of_caller now behaves on Windows.  Patch by Daniel Berger.</div><div class='add'>+* Silence PATH warning.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* Gem::manage_gems will be removed on or after March 2009.</div><div class='add'>+</div><div class='add'>+=== 1.3.0 / 2008-09-25</div><div class='add'>+</div><div class='add'>+New features:</div><div class='add'>+</div><div class='add'>+* RubyGems doesn't print LOCAL/REMOTE titles for `gem query` and friends if</div><div class='add'>+  stdout is not a TTY, except with --both.</div><div class='add'>+* Added Gem.find_files, allows a gem to discover features provided by other</div><div class='add'>+  gems.</div><div class='add'>+* Added pre/post (un)install hooks for packagers of RubyGems.  (Not for gems</div><div class='add'>+  themselves).</div><div class='add'>+* RubyGems now installs gems into ~/.gem if GEM_HOME is not writable.  Use</div><div class='add'>+  --no-user-install command-line switch to disable this behavior.</div><div class='add'>+* Fetching specs for update now uses If-Modified-Since requests.</div><div class='add'>+* RubyGems now updates the ri cache when the rdoc gem is installed and</div><div class='add'>+  documentation is generated.</div><div class='add'>+</div><div class='add'>+Deprecation Notices:</div><div class='add'>+</div><div class='add'>+* Gem::manage_gems now warns when called.  It will be removed on or after March</div><div class='add'>+  2009.</div><div class='add'>+</div><div class='add'>+Bugs Fixed:</div><div class='add'>+</div><div class='add'>+* RubyGems 1.3.0+ now updates when no previous rubygems-update is installed.</div><div class='add'>+  Bug #20775 by Hemant Kumar.</div><div class='add'>+* RubyGems now uses the regexp we already have for `gem list --installed`.  Bug</div><div class='add'>+  #20876 by Nick Hoffman.</div><div class='add'>+* Platform is now forced to Gem::Platform::RUBY when nil or blank in the</div><div class='add'>+  indexer.  Fixes various uninstallable gems.</div><div class='add'>+* Handle EINVAL on seek.  Based on patch in bug #20791 by Neil Wilson.</div><div class='add'>+* Fix HTTPS support.  Patch #21072 by Alex Arnell.</div><div class='add'>+* RubyGems now loads all cache files even if latest has been loaded.  Bug</div><div class='add'>+  #20776 by Uwe Kubosch.</div><div class='add'>+* RubyGems checks for support of development dependencies for #to_ruby.  Bug</div><div class='add'>+  #20778 by Evan Weaver.</div><div class='add'>+* Now specifications from the future can be loaded.</div><div class='add'>+* Binary script uninstallation fixed.  Bug #21234 by Neil Wilson.</div><div class='add'>+* Uninstallation with -i fixed.  Bug #20812 by John Clayton.</div><div class='add'>+* Gem::Uninstaller#remove_all now calls Gem::Uninstaller#uninstall_gem so hooks</div><div class='add'>+  get called.  Bug #21242 by Neil Wilson.</div><div class='add'>+* Gem.ruby now properly escaped on windows.  Fixes problem with extension</div><div class='add'>+  compilation.</div><div class='add'>+* `gem lock --strict` works again.  Patch #21814 by Sven Engelhardt.</div><div class='add'>+* Platform detection for Solaris was improved.  Patch #21911 by Bob Remeika.</div><div class='add'>+</div><div class='add'>+Other Changes Include:</div><div class='add'>+</div><div class='add'>+* `gem help install` now describes _version_ argument to executable stubs</div><div class='add'>+* `gem help environment` describes environment variables and ~/.gemrc and</div><div class='add'>+  /etc/gemrc</div><div class='add'>+* On-disk gemspecs are now read in UTF-8 and written with a UTF-8 magic comment</div><div class='add'>+* Rakefile</div><div class='add'>+  * If the SETUP_OPTIONS environment variable is set, pass its contents as</div><div class='add'>+    arguments to setup.rb</div><div class='add'>+* lib/rubygems/platform.rb</div><div class='add'>+  * Remove deprecated constant warnings and really deprecate them.  (WIN32,</div><div class='add'>+    etc).</div><div class='add'>+* lib/rubygems/remote_fetcher.rb</div><div class='add'>+  * Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable.</div><div class='add'>+* lib/rubygems/source_index.rb</div><div class='add'>+  * Deprecate options to 'search' other than Gem::Dependency instances and</div><div class='add'>+    issue warning until November 2008.</div><div class='add'>+* setup.rb</div><div class='add'>+  * --destdir folder structure now built using Pathname, so it works for</div><div class='add'>+    Windows platforms.</div><div class='add'>+* test/*</div><div class='add'>+  * Fixes to run tests when under test/rubygems/.  Patch by Yusuke ENDOH</div><div class='add'>+    [ruby-core:17353].</div><div class='add'>+* test/test_ext_configure_builder.rb</div><div class='add'>+  * Locale-free patch by Yusuke Endoh [ruby-core:17444].</div><div class='add'>+</div><div class='add'>+=== 1.2.0 / 2008-06-21</div><div class='add'>+</div><div class='add'>+New features:</div><div class='add'>+</div><div class='add'>+* RubyGems no longer performs bulk updates and instead only fetches the gemspec</div><div class='add'>+  files it needs.  Alternate sources will need to upgrade to RubyGems 1.2 to</div><div class='add'>+  allow RubyGems to take advantage of the new metadata updater.  If a pre 1.2</div><div class='add'>+  remote source is in the sources list, RubyGems will revert to the bulk update</div><div class='add'>+  code for compatibility.</div><div class='add'>+* RubyGems now has runtime and development dependency types.  Use</div><div class='add'>+  #add_development_dependency and #add_runtime_dependency.  All typeless</div><div class='add'>+  dependencies are considered to be runtime dependencies.</div><div class='add'>+* RubyGems will now require rubygems/defaults/operating_system.rb and</div><div class='add'>+  rubygems/defaults/#{RBX_ENGINE}.rb if they exist.  This allows packagers and</div><div class='add'>+  ruby implementers to add custom behavior to RubyGems via these files.  (If</div><div class='add'>+  the RubyGems API is insufficient, please suggest improvements via the</div><div class='add'>+  RubyGems list.)</div><div class='add'>+* /etc/gemrc (and windows equivalent) for global settings</div><div class='add'>+* setup.rb now handles --vendor and --destdir for packagers</div><div class='add'>+* `gem stale` command that lists gems by last access time</div><div class='add'>+</div><div class='add'>+Bugs Fixed:</div><div class='add'>+</div><div class='add'>+* File modes from gems are now honored, patch #19737</div><div class='add'>+* Marshal Gem::Specification objects from the future can now be loaded.</div><div class='add'>+* A trailing / is now added to remote sources when missing, bug #20134</div><div class='add'>+* Gems with legacy platforms will now be correctly uninstalled, patch #19877</div><div class='add'>+* `gem install --no-wrappers` followed by `gem install --wrappers` no longer</div><div class='add'>+  overwrites executables</div><div class='add'>+* `gem pristine` now forces reinstallation of gems, bug #20387</div><div class='add'>+* RubyGems gracefully handles ^C while loading .gemspec files from disk, bug</div><div class='add'>+  #20523</div><div class='add'>+* Paths are expanded in more places, bug #19317, bug #19896</div><div class='add'>+* Gem::DependencyInstaller resets installed gems every install, bug #19444</div><div class='add'>+* Gem.default_path is now honored if GEM_PATH is not set, patch #19502</div><div class='add'>+</div><div class='add'>+Other Changes Include:</div><div class='add'>+</div><div class='add'>+* setup.rb</div><div class='add'>+  * stub files created by RubyGems 0.7.x and older are no longer removed.  When</div><div class='add'>+    upgrading from these ancient versions, upgrade to 1.1.x first to clean up</div><div class='add'>+    stubs.</div><div class='add'>+  * RDoc is no longer required until necessary, patch #20414</div><div class='add'>+* `gem server`</div><div class='add'>+  * Now completely matches the output of `gem generate_index` and</div><div class='add'>+    has correct content types</div><div class='add'>+  * Refreshes from source directories for every hit.  The server will no longer</div><div class='add'>+    need to be restarted after installing gems.</div><div class='add'>+* `gem query --details` and friends now display author, homepage, rubyforge url</div><div class='add'>+  and installed location</div><div class='add'>+* `gem install` without -i no longer reinstalls dependencies if they are in</div><div class='add'>+  GEM_PATH but not in GEM_HOME</div><div class='add'>+* Gem::RemoteFetcher now performs persistent connections for HEAD requests,</div><div class='add'>+  bug #7973</div><div class='add'>+</div><div class='add'>+=== 1.1.1 / 2008-04-11</div><div class='add'>+</div><div class='add'>+Bugs Fixed:</div><div class='add'>+</div><div class='add'>+* Gem.prefix now returns non-nil only when RubyGems was installed outside</div><div class='add'>+  sitelibdir or libdir.</div><div class='add'>+* The `gem server` gem list now correctly links to gem details.</div><div class='add'>+* `gem update --system` now passes --no-format-executable to setup.rb.</div><div class='add'>+* Gem::SourceIndex#refresh! now works with multiple gem repositories.</div><div class='add'>+* Downloaded gems now go into --install-dir's cache directory.</div><div class='add'>+* Various fixes to downloading gem metadata.</div><div class='add'>+* `gem install --force` now ignores network errors too.</div><div class='add'>+* `gem pristine` now rebuilds extensions.</div><div class='add'>+* `gem update --system` now works on virgin Apple ruby.</div><div class='add'>+* Gem::RemoteFetcher handles Errno::ECONNABORTED.</div><div class='add'>+* Printing of release notes fixed.</div><div class='add'>+</div><div class='add'>+=== 1.1.0 / 2008-03-29</div><div class='add'>+</div><div class='add'>+New features:</div><div class='add'>+</div><div class='add'>+* RubyGems now uses persistent connections on index updates.  Index updates are</div><div class='add'>+  much faster now.</div><div class='add'>+* RubyGems only updates from a latest index by default, cutting candidate gems</div><div class='add'>+  for updates to roughly 1/4 (at present).  Index updates are even faster</div><div class='add'>+  still.</div><div class='add'>+  * `gem list -r` may only show the latest version of a gem, add --all to see</div><div class='add'>+    all gems.</div><div class='add'>+* `gem spec` now extracts specifications from .gem files.</div><div class='add'>+* `gem query --installed` to aid automation of checking for gems.</div><div class='add'>+</div><div class='add'>+Bugs Fixed:</div><div class='add'>+</div><div class='add'>+* RubyGems works with both Config and RbConfig now.</div><div class='add'>+* Executables are now cleaned upon uninstall.</div><div class='add'>+* You can now uninstall from a particular directory.</div><div class='add'>+* Updating from non-default sources fixed.</div><div class='add'>+* Executable stubs now use ruby install name in shebang.</div><div class='add'>+* `gem unpack` checks every directory in Gem.path now.</div><div class='add'>+* `gem install` now exits with non-zero exit code when appropriate.</div><div class='add'>+* `gem update` only updates gems that need updates.</div><div class='add'>+* `gem update` doesn't force remote-only updates.</div><div class='add'>+* `gem update` handles dependencies properly when updating.</div><div class='add'>+* Gems are now loaded in Gem.path order.</div><div class='add'>+* Gem stub scripts on windows now work outside Gem.bindir.</div><div class='add'>+* `gem sources -r` now works without network access.</div><div class='add'>+</div><div class='add'>+Other Changes Include:</div><div class='add'>+</div><div class='add'>+* RubyGems now requires Ruby &gt; 1.8.3.</div><div class='add'>+* Release notes are now printed upon installation.</div><div class='add'>+* `gem env path` now prints a usable path.</div><div class='add'>+* `gem install` reverts to local-only installation upon network error.</div><div class='add'>+* Tar handling code refactoring and cleanup.</div><div class='add'>+* Gem::DependencyInstaller's API has changed.</div><div class='add'>+</div><div class='add'>+For a full list of changes to RubyGems, see the ChangeLog file.</div><div class='add'>+</div><div class='add'>+=== 1.0.1 / 2007-12-20</div><div class='add'>+</div><div class='add'>+Bugs Fixed:</div><div class='add'>+</div><div class='add'>+* Installation on Ruby 1.8.3 through 1.8.5 fixed</div><div class='add'>+* `gem build` on 1.8.3 fixed</div><div class='add'>+</div><div class='add'>+Other Changes Include:</div><div class='add'>+</div><div class='add'>+* Since RubyGems 0.9.5, RubyGems is no longer supported on Ruby 1.8.2 or older,</div><div class='add'>+  this is official in RubyGems 1.0.1.</div><div class='add'>+</div><div class='add'>+=== 1.0.0 / 2007-12-20</div><div class='add'>+</div><div class='add'>+Major New Features Include:</div><div class='add'>+</div><div class='add'>+* RubyGems warns about various problems with gemspecs during gem building</div><div class='add'>+* More-consistent versioning for the RubyGems software</div><div class='add'>+</div><div class='add'>+Other Changes Include:</div><div class='add'>+</div><div class='add'>+* Fixed various bugs and problems with installing gems on Windows</div><div class='add'>+* Fixed using `gem server` for installing gems</div><div class='add'>+* Various operations are even more verbose with --verbose</div><div class='add'>+* Built gems are now backwards compatible with 0.9.4</div><div class='add'>+* Improved detection of RUBYOPT loading rubygems</div><div class='add'>+* `ruby setup.rb` now has a --help option</div><div class='add'>+* Gem::Specification#bindir is now respected on installation</div><div class='add'>+* Executable stubs can now be installed to match ruby's name, so if ruby is</div><div class='add'>+  installed as 'ruby18', foo_exec will be installed as 'foo_exec18'</div><div class='add'>+* `gem unpack` can now unpack into a specific directory with --target</div><div class='add'>+* OpenSSL is no longer required by default</div><div class='add'>+</div><div class='add'>+Deprecations and Deletions:</div><div class='add'>+</div><div class='add'>+* Kernel#require_gem has been removed</div><div class='add'>+* Executables without a shebang will not be wrapped in a future version, this</div><div class='add'>+  may cause such executables to fail to operate on installation</div><div class='add'>+* Gem::Platform constants other than RUBY and CURRENT have been removed</div><div class='add'>+* Gem::RemoteInstaller was removed</div><div class='add'>+* Gem::Specification#test_suite_file and #test_suite_file= are deprecated in</div><div class='add'>+  favor of #test_file and #test_file=</div><div class='add'>+* Gem::Specification#autorequire= has been deprecated</div><div class='add'>+* Time::today will be removed in a future version</div><div class='add'>+</div><div class='add'>+=== 0.9.5 / 2007-11-19</div><div class='add'>+</div><div class='add'>+Major New Features Include:</div><div class='add'>+</div><div class='add'>+* Platform support</div><div class='add'>+* Automatic installation of platform gems</div><div class='add'>+* New bandwidth and memory friendlier index file format</div><div class='add'>+* "Offline" mode (--no-update-sources)</div><div class='add'>+* Bulk update threshold can be specified (-B, --bulk-threshold)</div><div class='add'>+* New `gem fetch` command</div><div class='add'>+* `gem` now has "really verbose" output when you specify -v</div><div class='add'>+* Improved stubs and `gem.bat` on mswin, including better compatiblity</div><div class='add'>+  with the One-Click Installer.</div><div class='add'>+</div><div class='add'>+Other Changes Include:</div><div class='add'>+</div><div class='add'>+* Time::today is deprecated and will be removed at a future date</div><div class='add'>+* Gem::manage_gems is deprecated and will be removed at a future date</div><div class='add'>+* `gem install --include-dependencies` (-y) is now deprecated since it is the</div><div class='add'>+  default, use --ignore-dependencies to turn off automatic dependency</div><div class='add'>+  installation</div><div class='add'>+* Multi-version diamond dependencies only are installed once</div><div class='add'>+* Processing a YAML bulk index update takes less memory</div><div class='add'>+* `gem install -i` makes sure all depenencies are installed</div><div class='add'>+* `gem update --system` reinstalls into the prefix it was originally installed</div><div class='add'>+  in</div><div class='add'>+* `gem update --system` respects --no-rdoc and --no-ri flags</div><div class='add'>+* HTTP basic authentication support for proxies</div><div class='add'>+* Gem::Specification#platforms should no longer be a String, use</div><div class='add'>+  Gem::Platform::CURRENT when building binary gems instead</div><div class='add'>+* `gem env` has more diagnostic information</div><div class='add'>+* require 'rubygems' loads less code</div><div class='add'>+* sources.gem is gone, RubyGems now uses built-in defaults</div><div class='add'>+* `gem install --source` will no longer add --source by default, use `gem</div><div class='add'>+  sources --add` to make it a permanent extra source</div><div class='add'>+* `gem query` (list) no longer prints details by default</div><div class='add'>+* Exact gem names are matched in various places</div><div class='add'>+* mkrf extensions are now supported</div><div class='add'>+* A gem can depend on a specific RubyGems version</div><div class='add'>+* `gem_server` is now `gem server`</div><div class='add'>+* `gemlock` is now `gem lock`</div><div class='add'>+* `gem_mirror` is now `gem mirror`</div><div class='add'>+* `gemwhich` is now `gem which`</div><div class='add'>+* `gemri` is no longer included with RubyGems</div><div class='add'>+* `index_gem_repository.rb` is now `gem generate_index`</div><div class='add'>+* `gem` performs more validation of parameters</div><div class='add'>+* Custom rdoc styles are now supported</div><div class='add'>+* Gem indexer no longer removes quick index during index creation</div><div class='add'>+* Kernel#require only rescues a LoadError for the file being required now</div><div class='add'>+* `gem dependencies` can now display some information for remote gems</div><div class='add'>+* Updating RubyGems now works with RUBYOPT=-rubygems</div><div class='add'>+</div><div class='add'>+Special thanks to:</div><div class='add'>+</div><div class='add'>+* Daniel Berger</div><div class='add'>+* Luis Lavena</div><div class='add'>+* Tom Copeland</div><div class='add'>+* Wilson Bilkovich</div><div class='add'>+</div><div class='add'>+=== 0.9.4 / 2007-05-23</div><div class='add'>+</div><div class='add'>+If you are experiencing problems with the source index (e.g. strange</div><div class='add'>+"No Method" errors), or problems with zlib (e.g. "Buffer Error"</div><div class='add'>+messsage), we recommend upgrading to RubyGems 0.9.4.</div><div class='add'>+</div><div class='add'>+Bug Fixes Include:</div><div class='add'>+</div><div class='add'>+* Several people have been experiencing problems with no method errors</div><div class='add'>+  on the source index cache.  The source index cache is now a bit more</div><div class='add'>+  self healing.  Furthermore, if the source index cache is</div><div class='add'>+  irreparable, then it is automatically dropped and reloaded.</div><div class='add'>+* The source cache files may now be dropped with the "gem sources</div><div class='add'>+  --clear-all" command.  (This command may require root is the system</div><div class='add'>+  source cache is in a root protected area).</div><div class='add'>+* Several sub-commands were accidently dropped from the "gem" command.</div><div class='add'>+  These commands have been restored.</div><div class='add'>+</div><div class='add'>+=== 0.9.3 / 2007-05-10</div><div class='add'>+</div><div class='add'>+Bug Fixes Include:</div><div class='add'>+</div><div class='add'>+The ZLib library on Windows will occasionally complains about a buffer error</div><div class='add'>+when unpacking gems.  The Gems software has a workaround for that problem, but</div><div class='add'>+the workaround was only enabled for versions of ZLib 1.2.1 or earlier.  We</div><div class='add'>+have received several reports of the error occuring with ZLib 1.2.3, so we</div><div class='add'>+have permanently enabled the work around on all versions.</div><div class='add'>+</div><div class='add'>+=== 0.9.2 / 2007-02-05</div><div class='add'>+</div><div class='add'>+Bug Fixes Include:</div><div class='add'>+</div><div class='add'>+* The "unpack" command now works properly.</div><div class='add'>+* User name and password are now passed properly to the authenticating</div><div class='add'>+  proxy when downloading gems.</div><div class='add'>+</div><div class='add'>+=== 0.9.1 / 2007-01-16</div><div class='add'>+</div><div class='add'>+See ChangeLog</div><div class='add'>+</div><div class='add'>+=== 0.9.0 / 2006-06-28</div><div class='add'>+</div><div class='add'>+Finally, the much anticipated RubyGems version 0.9.0 is now available.</div><div class='add'>+This release includes a number of new features and bug fixes.  The</div><div class='add'>+number one change is that we can now download the gem index</div><div class='add'>+incrementally.  This will greatly speed up the gem command when only a</div><div class='add'>+few gems are out of date.</div><div class='add'>+</div><div class='add'>+Major Enhancments include:</div><div class='add'>+</div><div class='add'>+* The gem index is now downloaded incrementally, only updating entries</div><div class='add'>+  that are out of date.  If more than 50 entries are out of date, we</div><div class='add'>+  revert back to a bulk download.</div><div class='add'>+* Several patches related to allowing RubyGems to work with</div><div class='add'>+  authenticating proxies (from Danie Roux and Anatol Pomozov).  Just</div><div class='add'>+  put the user and password in the proxy URL (e.g. -p</div><div class='add'>+  http://user:password@proxy.address.com:8080) or use the</div><div class='add'>+  HTTP_PROXY_USER and HTTP_PROXY_PASS environment variables.</div><div class='add'>+* The gem unpack command can now accept a file path rather than just a</div><div class='add'>+  install gem name.</div><div class='add'>+* Both RI and RDOC documents are now generated by default.</div><div class='add'>+* A gemri command is included to read gem RI docs (only needed for</div><div class='add'>+  Ruby 1.8.4 or earlier).</div><div class='add'>+</div><div class='add'>+Minor enhancements include:</div><div class='add'>+</div><div class='add'>+* Verison 0.0.0 is now a valid gem version.</div><div class='add'>+* Better detection of missing SSL functionality.</div><div class='add'>+* SSL is not required if the security policy does not require</div><div class='add'>+  signature checking.</div><div class='add'>+* Rake built extensions are now supported (Tilman Sauerbeck).</div><div class='add'>+* Several autorequire bug fixes.</div><div class='add'>+* --traceback is now an alias for --backtrace (I can never remember</div><div class='add'>+  which one it is).</div><div class='add'>+* SAFE=1 compatibility fixes.</div><div class='add'>+* .rbw is now a supported suffix for RubyGem's custom require.</div><div class='add'>+* Several Ruby 1.9 compatibility fixes (Eric Hodel).</div><div class='add'>+</div><div class='add'>+Bug Fixes:</div><div class='add'>+</div><div class='add'>+* Added dashes to gemspecs generated in Ruby 1.8.3.  This solves some</div><div class='add'>+  cross-Ruby version compatibility issues.</div><div class='add'>+* Fixed bug where the wrong executables could be uninstalled (Eric</div><div class='add'>+  Hodel).</div><div class='add'>+* Fixed bug where gem unpack occasionally unpacked the wrong gem.</div><div class='add'>+* Fixed bug where a fatal error occured when permissions on .gemrc</div><div class='add'>+  were too restrictive (reported by Luca Pireddu).</div><div class='add'>+* Fixed prefix handling for native expressions (patch by Aaron Patterson).</div><div class='add'>+* Fixed several Upgrade =&gt; Update typos.</div><div class='add'>+</div><div class='add'>+=== 0.8.11 / 2005-07-13</div><div class='add'>+</div><div class='add'>+* -y is a synonym for --include-dependencies.</div><div class='add'>+* Better handling of errors in the top level rescue clause.</div><div class='add'>+* Package list command (e.g. gem inspect GEM).</div><div class='add'>+* .gemrc now allows cvsrc-like options to set defaults per subcommand.</div><div class='add'>+* The autorequire gem spec field will now accept a list.</div><div class='add'>+* Substituted Time for Date in specs, increasing performance</div><div class='add'>+  dramatically.</div><div class='add'>+* Fixed reported bug of gem directories ending in "-" (reported by</div><div class='add'>+  Erik Hatcher).</div><div class='add'>+* Fixed but in installer that caused dependency installation to not</div><div class='add'>+  work.</div><div class='add'>+* Added Paul Duncan's gem signing patch.</div><div class='add'>+* Added Mark Hubbart's Framework patch (for better integration with OS</div><div class='add'>+  X).</div><div class='add'>+* Added David Glasser's install-from-mirror patch.</div><div class='add'>+* Additional internal structural cleanup and test reorganization.</div><div class='add'>+</div><div class='add'>+=== 0.8.10 / 2005-03-27</div><div class='add'>+</div><div class='add'>+* In multi-user environments, it is common to supply mulitple versions of gems</div><div class='add'>+  (for example Rails), allowing individual users to select the version of the</div><div class='add'>+  gem they desire.  This allows a user to be insulated from updates to that</div><div class='add'>+  gem.  RubyGems 0.8.10 fixes a problem where gems could occasionally become</div><div class='add'>+  confused about the current versions of libraries selected by the user.</div><div class='add'>+* The other annoying bug is that if there are any existing rubygems-update gems</div><div class='add'>+  installed, then the "gem update --system" command will download a new</div><div class='add'>+  update, but install the latest update prior to the download.</div><div class='add'>+</div><div class='add'>+=== 0.8.9</div><div class='add'>+</div><div class='add'>+Never released</div><div class='add'>+</div><div class='add'>+=== 0.8.8 / 2005-03-14</div><div class='add'>+</div><div class='add'>+* Moved the master definition of class Requirement back under version.</div><div class='add'>+  Kept the body of Requirement under Gem.</div><div class='add'>+</div><div class='add'>+=== 0.8.7 / 2005-03-14</div><div class='add'>+</div><div class='add'>+Even though it has only been a few weeks since that last release,</div><div class='add'>+there are quite a number of new features in 0.8.7.  A complete list of</div><div class='add'>+new features will be given below, but here is a summary of the hot</div><div class='add'>+items.</div><div class='add'>+</div><div class='add'>+* The bug that prevented some users from installing rails has been</div><div class='add'>+  squashed.  A big thanks to Bill Guindon (aGorilla) for helping track</div><div class='add'>+  that one down.</div><div class='add'>+</div><div class='add'>+There are several new commands available on the gem command:</div><div class='add'>+</div><div class='add'>+* gem cleanup GEMNAME -- Cleanup (uninstall) all the old versions of</div><div class='add'>+  gem.  If the gem name is omitted, the entire repository is cleaned.</div><div class='add'>+* gem dependency GEMNAME -- Show the dependencies for the named gems.</div><div class='add'>+  This is really helpful when trying to figure out what gem needs what</div><div class='add'>+  other gem.</div><div class='add'>+</div><div class='add'>+There changes to the existing commands as well.</div><div class='add'>+</div><div class='add'>+* gem uninstall is much smarter about removing gems from the</div><div class='add'>+  repository.  Lists of gems are now uninstalled in proper dependency</div><div class='add'>+  order (ie. if A depends on B, A is uninstalled first).  Also,</div><div class='add'>+  warnings about broken dependencies occur only when removing the</div><div class='add'>+  *last* gem that supports a dependency is removed.</div><div class='add'>+</div><div class='add'>+Both gem install and gem uninstall support some new command line</div><div class='add'>+options that can reduce the amount of yes/no queries given the user.</div><div class='add'>+For install we have:</div><div class='add'>+</div><div class='add'>+* --ignore-dependencies -- Only install requests gems, no</div><div class='add'>+  dependendecies are automatically installed.</div><div class='add'>+* --include-dependencies -- Automatically install dependencies,</div><div class='add'>+  without confirmation.</div><div class='add'>+</div><div class='add'>+For gem uninstall, the new options are:</div><div class='add'>+</div><div class='add'>+* --all -- Uninstall all matching gems without confirmation.</div><div class='add'>+* --ignore-dependencies -- Uninstall, even if dependencies are broken.</div><div class='add'>+* --executables -- Remove executables without confirmation</div><div class='add'>+</div><div class='add'>+Under general cleanup, gems will not, by default, run RDoc on packages</div><div class='add'>+that do not have the RDoc flag set.</div><div class='add'>+</div><div class='add'>+And finally there is a new library file 'gemconfigure' to aid in</div><div class='add'>+writing version sensitive applications (without undue dependencies on</div><div class='add'>+RubyGems); and 'gemwhich', a short script to locate libraries in the</div><div class='add'>+file system.  You can read more about them here:</div><div class='add'>+</div><div class='add'>+* gemconfigure: http://docs.rubygems.org/read/chapter/4#page73</div><div class='add'>+* gemwhich: http://docs.rubygems.org/read/chapter/17</div><div class='add'>+</div><div class='add'>+=== 0.8.6 / 2005-02-27</div><div class='add'>+</div><div class='add'>+* Fixed a small bug with shebang construction</div><div class='add'>+</div><div class='add'>+=== 0.8.5 / 2005-02-26</div><div class='add'>+</div><div class='add'>+Do you know how you used to dread getting the following message while</div><div class='add'>+installing gems?</div><div class='add'>+</div><div class='add'>+  Updating Gem source index for: http://gems.rubyforge.org</div><div class='add'>+</div><div class='add'>+It could take up to 30 seconds (on my machine, even worse on others) for</div><div class='add'>+that crazy source index to update.</div><div class='add'>+</div><div class='add'>+This latest release of RubyGems speeds that wait time up considerably.</div><div class='add'>+The following table gives the following times for installing RedCloth</div><div class='add'>+with a required source index update on three system we had available to</div><div class='add'>+us.  No RDoc generation was included in the following times.</div><div class='add'>+</div><div class='add'>+  RubyGems    Linux         Mac OSX      Windows</div><div class='add'>+  0.8.4       33 secs       73 secs      58 secs</div><div class='add'>+  0.8.5        8 secs       14 secs      21 secs</div><div class='add'>+</div><div class='add'>+The new caching code is at least 3x faster than previous versions.  Woo</div><div class='add'>+Hoo!</div><div class='add'>+</div><div class='add'>+=== 0.8.4 / 2005-01-01</div><div class='add'>+</div><div class='add'>+* Rubygems 0.8.3's installer was broken unless you already had an older</div><div class='add'>+  version of RubyGems installed.  That's fixed.</div><div class='add'>+* Change in the way Gem::Specification internally deals with lazy attributes</div><div class='add'>+  and defaults, bringing (with some loadpath_manager changes) a fairly</div><div class='add'>+  significant increase in speed.</div><div class='add'>+* Support for lower-cased Gem file names (for you, Paul Duncan :)</div><div class='add'>+* Erik Veenstra's patch for making Gem versions sortable.</div><div class='add'>+</div><div class='add'>+=== 0.8.3 / 2004-12-07</div><div class='add'>+</div><div class='add'>+No real earth shattering news here, but there were a number of really</div><div class='add'>+annoying issues involving other libraries that RubyGems depends upon.</div><div class='add'>+0.8.3 contains some workarounds for these issues.  In particular:</div><div class='add'>+</div><div class='add'>+* Added workaround for the null byte in Dir string issue. (see</div><div class='add'>+  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121702).</div><div class='add'>+  (Thanks to Mauricio FernÃ¡ndez for the quick response on this one).</div><div class='add'>+* Added workaround for old version of Zlib on windows that caused</div><div class='add'>+  Ruwiki to fail to install. (see</div><div class='add'>+  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/121770)</div><div class='add'>+* Added workaround for large YAML file issues.  (We dynamically cut</div><div class='add'>+  down the size of the source index YAML file and seem to have worked</div><div class='add'>+  around immediate issues.</div><div class='add'>+</div><div class='add'>+There has been some minor usability enhancements and changes ...</div><div class='add'>+</div><div class='add'>+* A user specific source index cache can be used when the site-wide</div><div class='add'>+  cache is unwritable (i.e. because you are running as a non-admin).</div><div class='add'>+  This *greatly* speeds up gem commands run in non-admin mode when the</div><div class='add'>+  site-wide cache is out of date.</div><div class='add'>+* The gem command now used an HTTP HEAD command to detect if the</div><div class='add'>+  server's source index needs to be downloaed.</div><div class='add'>+* gem check gemname --test will run unit tests on installed gems that</div><div class='add'>+  have unit tests.</div><div class='add'>+* Multiple gem names are allowed on the gem install command line.</div><div class='add'>+  This means you can do:</div><div class='add'>+  </div><div class='add'>+    gem install rake rails needle postgres-pr pimki</div><div class='add'>+  </div><div class='add'>+  (Ok, you get the idea)</div><div class='add'>+* Multiple authors my be specified in a Gem spec.</div><div class='add'>+* Switched to using setup.rb (rather than a custom install script) for</div><div class='add'>+  the installation of RubyGems itself.  If you have installed RubyGems</div><div class='add'>+  before, double check the installation instructions and make sure you</div><div class='add'>+  use setup.rb instead of install.rb.</div><div class='add'>+* Ryan Davis has provided a patch so you can use an env variable</div><div class='add'>+  (GEM_SKIP), to tell loadpath_manager not to load gems of those</div><div class='add'>+  names.  This was useful for him while testing libs that he had in</div><div class='add'>+  development.</div><div class='add'>+</div><div class='add'>+=== 0.8.1 / 2009-09-14</div><div class='add'>+</div><div class='add'>+* Quick release to capture some bug fixes.</div><div class='add'>+</div><div class='add'>+=== 0.8.0 / 2009-09-12</div><div class='add'>+</div><div class='add'>+* Remove need for library stubs.  Set the RUBYOPT environment variable to</div><div class='add'>+  include "rrubygems", and a normal require will find gem files.  Continue to</div><div class='add'>+  use 'require_gem gem_name, version' to specify gem versions.</div><div class='add'>+* Deprecated "test_suite_file" gemspec attribute in favor of "test_files" array.</div><div class='add'>+* Generates rdoc by default on installs.</div><div class='add'>+* Adopted tar/gzip file format, thanks to Mauricio Fernandez.</div><div class='add'>+* "gem rdoc" allows generation of rdoc after gem installation (will add a "gem</div><div class='add'>+  test"</div><div class='add'>+* Application stubs can now accept an optional parameter of _VERSION_ that will</div><div class='add'>+  run an arbitrary version of the application requested.</div><div class='add'>+* Various bug fixes</div><div class='add'>+* Various platform-independency improvements</div><div class='add'>+* "gem spec --all" displays spec info for all installed version of a given gem.</div><div class='add'>+* Dynamic caching of sources</div><div class='add'>+* Support for user-definable sources on the command line (thanks Assaph Mehr)</div><div class='add'>+* More intelligent support for platform-dependent gems.  Use Platform::CURRENT</div><div class='add'>+  when building a gem to set its platform to the one you're building on.</div><div class='add'>+  Installation displays a choice of platform-dependent gems, allowing the user</div><div class='add'>+  to pick.</div><div class='add'>+* Added "gem unpack" for "unpacking" a gem to the current directory</div><div class='add'>+</div><div class='add'>+=== 0.7.0 / 2004-07-09</div><div class='add'>+</div><div class='add'>+See ChangeLog</div><div class='add'>+</div><div class='add'>+=== 0.6.0 / 2004-06-08</div><div class='add'>+</div><div class='add'>+* Collapse output of --search and --list (and gem_server) operations so that</div><div class='add'>+  each gem is listed only once, with each of its versions listed on the same</div><div class='add'>+  line.</div><div class='add'>+* bin/gem: new --upgrade-all option allows one to upgrade every installed gem</div><div class='add'>+* new #required_ruby_version attribute added to gem specification for</div><div class='add'>+  specifying a dependency on which version of ruby the gem needs.  Format it</div><div class='add'>+  accepts is the same as the Gem::Version::Requirement format:</div><div class='add'>+  </div><div class='add'>+    spec.required_ruby_version = "&gt; 1.8.0"</div><div class='add'>+* --install-stub defaults to true, so library stubs are created</div><div class='add'>+</div><div class='add'>+=== 0.5.0 / 2004-06-06</div><div class='add'>+</div><div class='add'>+* Jim added the ability to specify version constraints to avoid API</div><div class='add'>+  incompatibilities.  This has been the subject of much debate for the past</div><div class='add'>+  couple of months, with many ideas and code contributed by Eivind Eklund and</div><div class='add'>+  Mauricio Fernandez.  The following set of assertions shows how it works:</div><div class='add'>+  </div><div class='add'>+    assert_inadequate("1.3", "~&gt; 1.4")</div><div class='add'>+    assert_adequate(  "1.4", "~&gt; 1.4")</div><div class='add'>+    assert_adequate(  "1.5", "~&gt; 1.4")</div><div class='add'>+    assert_inadequate("2.0", "~&gt; 1.4") # This one is key--the new operator</div><div class='add'>+				       # disallows major version number</div><div class='add'>+				       # differences.</div><div class='add'>+* Group gem search output when multiple versions exist for a given gem:</div><div class='add'>+  </div><div class='add'>+    activerecord (0.7.8, 0.7.7, 0.7.6, 0.7.5)</div><div class='add'>+      Implements the ActiveRecord pattern for ORM.</div><div class='add'>+* Add arbitrary RDoc-able files via gemspec (not just Ruby source files) for</div><div class='add'>+  people who have, for example, README.rdoc in their distributions.  Add to</div><div class='add'>+  gemspec via: spec.extra_rdoc_files = ["list", "of", "files"].  Ruby files are</div><div class='add'>+  automatically included.</div><div class='add'>+* Some small bug fixes</div><div class='add'>+</div><div class='add'>+=== 0.4.0 / 2004-05-31</div><div class='add'>+</div><div class='add'>+* Minor bug fixes including Windows compatability issues</div><div class='add'>+</div><div class='add'>+=== 0.3.0 / 2004-04-30</div><div class='add'>+</div><div class='add'>+* Cleanup of command-line arguments and handling.  Most commands accept a</div><div class='add'>+  --local or --remote modifier.</div><div class='add'>+* Creation of Application Gems (packages that include executable programs).</div><div class='add'>+  See http://rubygems.rubyforge.org/wiki/wiki.pl?DeveloperGuide for information</div><div class='add'>+  on how to use it.</div><div class='add'>+* Basic functionality for installing binary gems from source (:extensions</div><div class='add'>+  property of gem specification holds an array of paths to extconf.rb files to</div><div class='add'>+  be used for compilation)</div><div class='add'>+* Install library "stub" allowing a normal 'require' to work (which then does</div><div class='add'>+  the rubygems require and 'require_gem'</div><div class='add'>+* --run-tests runs the test suite specified by the "test_suite_file" property</div><div class='add'>+  of a gem specification</div><div class='add'>+* HTTP Proxy support works.  Rewrite of HTTP code.</div><div class='add'>+* Unit and functional tests added (see Rakefile).</div><div class='add'>+* Prompt before remote-installing dependencies during gem installation.</div><div class='add'>+* Config file for storing preferences for 'gem' command usage.</div><div class='add'>+* Generally improved error messages (still more work to do)</div><div class='add'>+* Rearranged gem directory structure for cleanliness.</div><div class='add'>+</div><div class='add'>+=== 0.2.0 / 2004-03-14</div><div class='add'>+</div><div class='add'>+* Initial public release</div><div class='add'>+</div><div class='head'>diff --git a/doc/rubygems/LICENSE.txt b/doc/rubygems/LICENSE.txt<br/>new file mode 100644<br/>index 0000000000..db88c5e118<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rubygems/LICENSE.txt?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rubygems/LICENSE.txt</a></div><div class='hunk'>@@ -0,0 +1,53 @@</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 GPL (see the GPL.txt file), or the conditions</div><div class='add'>+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) rename any non-standard executables so the names do not conflict</div><div class='add'>+	  with standard executables, which must also be provided.</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/doc/rubygems/README b/doc/rubygems/README<br/>new file mode 100644<br/>index 0000000000..68a52593d4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/rubygems/README?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/rubygems/README</a></div><div class='hunk'>@@ -0,0 +1,41 @@</div><div class='add'>+= RubyGems</div><div class='add'>+</div><div class='add'>+* http://rubygems.org/</div><div class='add'>+* http://docs.rubygems.org/</div><div class='add'>+* http://rubygems.rubyforge.org/</div><div class='add'>+* http://rubyforge.org/projects/rubygems</div><div class='add'>+</div><div class='add'>+== DESCRIPTION</div><div class='add'>+</div><div class='add'>+RubyGems is a package management framework for Ruby.</div><div class='add'>+</div><div class='add'>+This gem is an update for the RubyGems software. You must have an</div><div class='add'>+installation of RubyGems before this update can be applied.</div><div class='add'>+</div><div class='add'>+See Gem for information on RubyGems (or `ri Gem`)</div><div class='add'>+</div><div class='add'>+To upgrade to the latest RubyGems, run:</div><div class='add'>+</div><div class='add'>+  $ gem update --system  # you might need to be an administrator or root</div><div class='add'>+</div><div class='add'>+NOTE:  RubyGems 1.1 and 1.2 have problems upgrading when there is no</div><div class='add'>+rubygems-update installed.  You will need to use the following instructions</div><div class='add'>+if you see "Nothing to update".</div><div class='add'>+</div><div class='add'>+If you have an older version of RubyGems installed, then you can still</div><div class='add'>+do it in two steps:</div><div class='add'>+</div><div class='add'>+  $ gem install rubygems-update  # again, might need to be admin/root</div><div class='add'>+  $ update_rubygems              # ... here too</div><div class='add'>+</div><div class='add'>+If you don't have any RubyGems install, there is still the pre-gem approach to</div><div class='add'>+getting software, doing it manually:</div><div class='add'>+</div><div class='add'>+1. Download from: http://rubyforge.org/frs/?group_id=126</div><div class='add'>+2. Unpack into a directory and cd there</div><div class='add'>+3. Install with: ruby setup.rb  # you may need admin/root privilege</div><div class='add'>+</div><div class='add'>+For more details and other options, see:</div><div class='add'>+</div><div class='add'>+  ruby setup.rb --help</div><div class='add'>+</div><div class='head'>diff --git a/doc/shell.rd b/doc/shell.rd<br/>new file mode 100644<br/>index 0000000000..8a1f7c5a80<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/shell.rd?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/shell.rd</a></div><div class='hunk'>@@ -0,0 +1,347 @@</div><div class='add'>+ -- shell.rb</div><div class='add'>+				$Release Version: 0.6.0 $</div><div class='add'>+			   	$Revision$</div><div class='add'>+			   	by Keiju ISHITSUKA(keiju@ishitsuka.com)</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+= What's shell.rb?</div><div class='add'>+</div><div class='add'>+It realizes a wish to do execution of commands with filters and pipes</div><div class='add'>+like sh/csh by using just native facilities of ruby.</div><div class='add'>+</div><div class='add'>+= Main classes</div><div class='add'>+</div><div class='add'>+== Shell</div><div class='add'>+</div><div class='add'>+Every shell object has its own current working directory, and executes</div><div class='add'>+each command as if it stands in the directory.</div><div class='add'>+</div><div class='add'>+--- Shell#cwd</div><div class='add'>+--- Shell#dir</div><div class='add'>+--- Shell#getwd</div><div class='add'>+--- Shell#pwd</div><div class='add'>+</div><div class='add'>+      Returns the current directory</div><div class='add'>+</div><div class='add'>+--- Shell#system_path</div><div class='add'>+</div><div class='add'>+      Returns the command search path in an array</div><div class='add'>+</div><div class='add'>+--- Shell#umask</div><div class='add'>+</div><div class='add'>+      Returns the umask</div><div class='add'>+</div><div class='add'>+== Filter</div><div class='add'>+</div><div class='add'>+Any result of command exection is a Filter.  Filter include</div><div class='add'>+Enumerable, therefore a Filter object can use all Enumerable</div><div class='add'>+facilities.</div><div class='add'>+</div><div class='add'>+= Main methods</div><div class='add'>+</div><div class='add'>+== Command definitions</div><div class='add'>+</div><div class='add'>+In order to execute a command on your OS, you need to define it as a</div><div class='add'>+Shell method.</div><div class='add'>+</div><div class='add'>+Alternatively, you can execute any command via Shell#system even if it</div><div class='add'>+is not defined.</div><div class='add'>+</div><div class='add'>+--- Shell.def_system_command(command, path = command)</div><div class='add'>+</div><div class='add'>+      Defines a command.  Registers &lt;path&gt; as a Shell method</div><div class='add'>+      &lt;command&gt;.</div><div class='add'>+</div><div class='add'>+      ex)</div><div class='add'>+      Shell.def_system_command "ls"</div><div class='add'>+        Defines ls.</div><div class='add'>+</div><div class='add'>+      Shell.def_system_command "sys_sort", "sort"</div><div class='add'>+        Defines sys_sort as sort.</div><div class='add'>+</div><div class='add'>+--- Shell.undef_system_command(command)</div><div class='add'>+</div><div class='add'>+      Undefines a commmand</div><div class='add'>+</div><div class='add'>+--- Shell.alias_command(ali, command, *opts) {...}</div><div class='add'>+</div><div class='add'>+      Aliases a command.</div><div class='add'>+</div><div class='add'>+      ex)</div><div class='add'>+        Shell.alias_command "lsC", "ls", "-CBF", "--show-control-chars"</div><div class='add'>+        Shell.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}</div><div class='add'>+</div><div class='add'>+--- Shell.unalias_command(ali)</div><div class='add'>+</div><div class='add'>+      Unaliases a command.</div><div class='add'>+</div><div class='add'>+--- Shell.install_system_commands(pre = "sys_")</div><div class='add'>+</div><div class='add'>+      Defines all commands in the default_system_path as Shell method,</div><div class='add'>+      all with &lt;pre&gt; prefixed to their names.</div><div class='add'>+</div><div class='add'>+== Creation</div><div class='add'>+</div><div class='add'>+--- Shell.new</div><div class='add'>+</div><div class='add'>+      Creates a Shell object which current directory is set to the</div><div class='add'>+      process current directory.</div><div class='add'>+</div><div class='add'>+--- Shell.cd(path)</div><div class='add'>+</div><div class='add'>+      Creates a Shell object which current directory is set to</div><div class='add'>+      &lt;path&gt;.</div><div class='add'>+</div><div class='add'>+== Process management</div><div class='add'>+</div><div class='add'>+--- Shell#jobs</div><div class='add'>+</div><div class='add'>+      Returns a list of scheduled jobs.</div><div class='add'>+</div><div class='add'>+--- Shell#kill sig, job</div><div class='add'>+</div><div class='add'>+      Sends a signal &lt;sig&gt; to &lt;job&gt;.</div><div class='add'>+</div><div class='add'>+== Current directory operations</div><div class='add'>+</div><div class='add'>+--- Shell#cd(path, &amp;block)</div><div class='add'>+--- Shell#chdir</div><div class='add'>+</div><div class='add'>+      Changes the current directory to &lt;path&gt;.  If a block is given,</div><div class='add'>+      it restores the current directory when the block ends.</div><div class='add'>+</div><div class='add'>+--- Shell#pushd(path = nil, &amp;block)</div><div class='add'>+--- Shell#pushdir</div><div class='add'>+</div><div class='add'>+      Pushes the current directory to the directory stack, changing</div><div class='add'>+      the current directory to &lt;path&gt;.  If &lt;path&gt; is omitted, it</div><div class='add'>+      exchanges its current directory and the top of its directory</div><div class='add'>+      stack.  If a block is given, it restores the current directory</div><div class='add'>+      when the block ends.</div><div class='add'>+</div><div class='add'>+--- Shell#popd</div><div class='add'>+--- Shell#popdir</div><div class='add'>+</div><div class='add'>+      Pops a directory from the directory stack, and sets the current</div><div class='add'>+      directory to it.</div><div class='add'>+</div><div class='add'>+== File and directory operations</div><div class='add'>+</div><div class='add'>+--- Shell#foreach(path = nil, &amp;block)</div><div class='add'>+</div><div class='add'>+      Same as:</div><div class='add'>+        File#foreach (when path is a file)</div><div class='add'>+        Dir#foreach (when path is a directory)</div><div class='add'>+</div><div class='add'>+--- Shell#open(path, mode)</div><div class='add'>+</div><div class='add'>+      Same as:</div><div class='add'>+        File#open (when path is a file)</div><div class='add'>+        Dir#open (when path is a directory)</div><div class='add'>+</div><div class='add'>+--- Shell#unlink(path)</div><div class='add'>+</div><div class='add'>+      Same as:</div><div class='add'>+        Dir#open (when path is a file)</div><div class='add'>+        Dir#unlink (when path is a directory)</div><div class='add'>+</div><div class='add'>+--- Shell#test(command, file1, file2)</div><div class='add'>+--- Shell#[command, file1, file2]</div><div class='add'>+</div><div class='add'>+      Same as test().</div><div class='add'>+      ex)</div><div class='add'>+          sh[?e, "foo"]</div><div class='add'>+          sh[:e, "foo"]</div><div class='add'>+          sh["e", "foo"]</div><div class='add'>+          sh[:exists?, "foo"]</div><div class='add'>+          sh["exists?", "foo"]</div><div class='add'>+</div><div class='add'>+--- Shell#mkdir(*path)</div><div class='add'>+</div><div class='add'>+      Same as Dir.mkdir (with multiple directories allowed)</div><div class='add'>+</div><div class='add'>+--- Shell#rmdir(*path)</div><div class='add'>+</div><div class='add'>+      Same as Dir.rmdir (with multiple directories allowed)</div><div class='add'>+</div><div class='add'>+== Command execution</div><div class='add'>+</div><div class='add'>+--- System#system(command, *opts)</div><div class='add'>+</div><div class='add'>+      Executes &lt;command&gt; with &lt;opts&gt;.</div><div class='add'>+</div><div class='add'>+      ex)</div><div class='add'>+        print sh.system("ls", "-l")</div><div class='add'>+        sh.system("ls", "-l") | sh.head &gt; STDOUT</div><div class='add'>+</div><div class='add'>+--- System#rehash</div><div class='add'>+</div><div class='add'>+      Does rehash.</div><div class='add'>+</div><div class='add'>+--- Shell#transact &amp;block</div><div class='add'>+</div><div class='add'>+      Executes a block as self.</div><div class='add'>+      ex)</div><div class='add'>+        sh.transact{system("ls", "-l") | head &gt; STDOUT}</div><div class='add'>+</div><div class='add'>+--- Shell#out(dev = STDOUT, &amp;block)</div><div class='add'>+</div><div class='add'>+      Does transact, with redirecting the result output to &lt;dev&gt;.</div><div class='add'>+</div><div class='add'>+== Internal commands</div><div class='add'>+</div><div class='add'>+--- Shell#echo(*strings)</div><div class='add'>+--- Shell#cat(*files)</div><div class='add'>+--- Shell#glob(patten)</div><div class='add'>+--- Shell#tee(file)</div><div class='add'>+</div><div class='add'>+      Return Filter objects, which are results of their execution.</div><div class='add'>+</div><div class='add'>+--- Filter#each &amp;block</div><div class='add'>+</div><div class='add'>+      Iterates a block for each line of it.</div><div class='add'>+</div><div class='add'>+--- Filter#&lt;(src)</div><div class='add'>+</div><div class='add'>+      Inputs from &lt;src&gt;, which is either a string of a file name or an</div><div class='add'>+      IO.</div><div class='add'>+</div><div class='add'>+--- Filter#&gt;(to)</div><div class='add'>+</div><div class='add'>+      Outputs to &lt;to&gt;, which is either a string of a file name or an</div><div class='add'>+      IO.</div><div class='add'>+</div><div class='add'>+--- Filter#&gt;&gt;(to)</div><div class='add'>+</div><div class='add'>+      Appends the ouput to &lt;to&gt;, which is either a string of a file</div><div class='add'>+      name or an IO.</div><div class='add'>+</div><div class='add'>+--- Filter#|(filter)</div><div class='add'>+</div><div class='add'>+      Processes a pipeline.</div><div class='add'>+</div><div class='add'>+--- Filter#+(filter)</div><div class='add'>+</div><div class='add'>+      (filter1 + filter2) outputs filter1, and then outputs filter2.</div><div class='add'>+</div><div class='add'>+--- Filter#to_a</div><div class='add'>+--- Filter#to_s</div><div class='add'>+</div><div class='add'>+== Built-in commands</div><div class='add'>+</div><div class='add'>+--- Shell#atime(file)</div><div class='add'>+--- Shell#basename(file, *opt)</div><div class='add'>+--- Shell#chmod(mode, *files)</div><div class='add'>+--- Shell#chown(owner, group, *file)</div><div class='add'>+--- Shell#ctime(file)</div><div class='add'>+--- Shell#delete(*file)</div><div class='add'>+--- Shell#dirname(file)</div><div class='add'>+--- Shell#ftype(file)</div><div class='add'>+--- Shell#join(*file)</div><div class='add'>+--- Shell#link(file_from, file_to)</div><div class='add'>+--- Shell#lstat(file)</div><div class='add'>+--- Shell#mtime(file)</div><div class='add'>+--- Shell#readlink(file)</div><div class='add'>+--- Shell#rename(file_from, file_to)</div><div class='add'>+--- Shell#split(file)</div><div class='add'>+--- Shell#stat(file)</div><div class='add'>+--- Shell#symlink(file_from, file_to)</div><div class='add'>+--- Shell#truncate(file, length)</div><div class='add'>+--- Shell#utime(atime, mtime, *file)</div><div class='add'>+</div><div class='add'>+      Equivalent to the class methods of File with the same names.</div><div class='add'>+</div><div class='add'>+--- Shell#blockdev?(file)</div><div class='add'>+--- Shell#chardev?(file)</div><div class='add'>+--- Shell#directory?(file)</div><div class='add'>+--- Shell#executable?(file)</div><div class='add'>+--- Shell#executable_real?(file)</div><div class='add'>+--- Shell#exist?(file)/Shell#exists?(file)</div><div class='add'>+--- Shell#file?(file)</div><div class='add'>+--- Shell#grpowned?(file)</div><div class='add'>+--- Shell#owned?(file)</div><div class='add'>+--- Shell#pipe?(file)</div><div class='add'>+--- Shell#readable?(file)</div><div class='add'>+--- Shell#readable_real?(file)</div><div class='add'>+--- Shell#setgid?(file)</div><div class='add'>+--- Shell#setuid?(file)</div><div class='add'>+--- Shell#size(file)/Shell#size?(file)</div><div class='add'>+--- Shell#socket?(file)</div><div class='add'>+--- Shell#sticky?(file)</div><div class='add'>+--- Shell#symlink?(file)</div><div class='add'>+--- Shell#writable?(file)</div><div class='add'>+--- Shell#writable_real?(file)</div><div class='add'>+--- Shell#zero?(file)</div><div class='add'>+</div><div class='add'>+      Equivalent to the class methods of FileTest with the same names.</div><div class='add'>+</div><div class='add'>+--- Shell#syscopy(filename_from, filename_to)</div><div class='add'>+--- Shell#copy(filename_from, filename_to)</div><div class='add'>+--- Shell#move(filename_from, filename_to)</div><div class='add'>+--- Shell#compare(filename_from, filename_to)</div><div class='add'>+--- Shell#safe_unlink(*filenames)</div><div class='add'>+--- Shell#makedirs(*filenames)</div><div class='add'>+--- Shell#install(filename_from, filename_to, mode)</div><div class='add'>+</div><div class='add'>+      Equivalent to the class methods of FileTools with the same</div><div class='add'>+      names.</div><div class='add'>+</div><div class='add'>+      And also, there are some aliases for convenience:</div><div class='add'>+</div><div class='add'>+--- Shell#cmp	&lt;- Shell#compare</div><div class='add'>+--- Shell#mv	&lt;- Shell#move</div><div class='add'>+--- Shell#cp	&lt;- Shell#copy</div><div class='add'>+--- Shell#rm_f	&lt;- Shell#safe_unlink</div><div class='add'>+--- Shell#mkpath	&lt;- Shell#makedirs</div><div class='add'>+</div><div class='add'>+= Samples</div><div class='add'>+</div><div class='add'>+== ex1</div><div class='add'>+</div><div class='add'>+  sh = Shell.cd("/tmp")</div><div class='add'>+  sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")</div><div class='add'>+  sh.cd("shell-test-1")</div><div class='add'>+  for dir in ["dir1", "dir3", "dir5"]</div><div class='add'>+    if !sh.exists?(dir)</div><div class='add'>+      sh.mkdir dir</div><div class='add'>+      sh.cd(dir) do</div><div class='add'>+	f = sh.open("tmpFile", "w")</div><div class='add'>+	f.print "TEST\n"</div><div class='add'>+	f.close</div><div class='add'>+      end</div><div class='add'>+      print sh.pwd</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== ex2</div><div class='add'>+</div><div class='add'>+  sh = Shell.cd("/tmp")</div><div class='add'>+  sh.transact do</div><div class='add'>+    mkdir "shell-test-1" unless exists?("shell-test-1")</div><div class='add'>+    cd("shell-test-1")</div><div class='add'>+    for dir in ["dir1", "dir3", "dir5"]</div><div class='add'>+      if !exists?(dir)</div><div class='add'>+	mkdir dir</div><div class='add'>+	cd(dir) do</div><div class='add'>+	  f = open("tmpFile", "w")</div><div class='add'>+	  f.print "TEST\n"</div><div class='add'>+	  f.close</div><div class='add'>+	end</div><div class='add'>+	print pwd</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== ex3</div><div class='add'>+</div><div class='add'>+  sh.cat("/etc/printcap") | sh.tee("tee1") &gt; "tee2"</div><div class='add'>+  (sh.cat &lt; "/etc/printcap") | sh.tee("tee11") &gt; "tee12"</div><div class='add'>+  sh.cat("/etc/printcap") | sh.tee("tee1") &gt;&gt; "tee2"</div><div class='add'>+  (sh.cat &lt; "/etc/printcap") | sh.tee("tee11") &gt;&gt; "tee12"</div><div class='add'>+</div><div class='add'>+== ex4</div><div class='add'>+</div><div class='add'>+  print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}</div><div class='add'>+</div><div class='add'>+=end</div><div class='head'>diff --git a/doc/shell.rd.ja b/doc/shell.rd.ja<br/>new file mode 100644<br/>index 0000000000..33e5a9ed9b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/doc/shell.rd.ja?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>doc/shell.rd.ja</a></div><div class='hunk'>@@ -0,0 +1,335 @@</div><div class='add'>+ -- shell.rb</div><div class='add'>+				$Release Version: 0.6.0 $</div><div class='add'>+			   	$Revision$</div><div class='add'>+			   	by Keiju ISHITSUKA(keiju@ishitsuka.com)</div><div class='add'>+</div><div class='add'>+=begin</div><div class='add'>+</div><div class='add'>+= ÌÜÅª</div><div class='add'>+</div><div class='add'>+ruby¾å¤Çsh/csh¤Î¤è¤¦¤Ë¥³¥Þ¥ó¥É¤Î¼Â¹ÔµÚ¤Ó¥Õ¥£¥ë¥¿¥ê¥ó¥°¤ò¼ê·Ú¤Ë¹Ô¤¦.</div><div class='add'>+sh/csh¤ÎÀ©¸æÊ¸¤Ïruby¤Îµ¡Ç½¤òÍÑ¤¤¤Æ¼Â¸½¤¹¤ë.</div><div class='add'>+</div><div class='add'>+= ¼ç¤Ê¥¯¥é¥¹°ìÍ÷</div><div class='add'>+</div><div class='add'>+== Shell</div><div class='add'>+</div><div class='add'>+Shell¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»ý¤Á, ¥³¥Þ¥ó¥É¼Â¹Ô¤Ï¤½¤³¤«¤é¤Î</div><div class='add'>+ÁêÂÐ¥Ñ¥¹¤Ë¤Ê¤ê¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell#cwd</div><div class='add'>+--- Shell#dir</div><div class='add'>+--- Shell#getwd</div><div class='add'>+--- Shell#pwd</div><div class='add'>+</div><div class='add'>+      ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊÖ¤¹¡£</div><div class='add'>+</div><div class='add'>+--- Shell#system_path</div><div class='add'>+</div><div class='add'>+      ¥³¥Þ¥ó¥É¥µ¡¼¥Á¥Ñ¥¹¤ÎÇÛÎó¤òÊÖ¤¹¡£</div><div class='add'>+</div><div class='add'>+--- Shell#umask</div><div class='add'>+</div><div class='add'>+      umask¤òÊÖ¤¹¡£</div><div class='add'>+</div><div class='add'>+== Filter</div><div class='add'>+</div><div class='add'>+¥³¥Þ¥ó¥É¤Î¼Â¹Ô·ë²Ì¤Ï¤¹¤Ù¤ÆFilter¤È¤·¤Æ¤«¤¨¤ê¤Þ¤¹. Enumerable¤òinclude¤·</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'>+OS¾å¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¤Þ¤º, Shell¤Î¥á¥½¥Ã¥É¤È¤·¤ÆÄêµÁ¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+Ãí) ¥³¥Þ¥ó¥É¤òÄêµÁ¤·¤Ê¤¯¤È¤âÄ¾ÀÜ¼Â¹Ô¤Ç¤­¤ëShell#system¥³¥Þ¥ó¥É¤â¤¢¤ê¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell.def_system_command(command, path = command)</div><div class='add'>+</div><div class='add'>+      Shell¤Î¥á¥½¥Ã¥É¤È¤·¤Æcommand¤òÅÐÏ¿¤·¤Þ¤¹. </div><div class='add'>+</div><div class='add'>+      Îã)</div><div class='add'>+      Shell.def_system_command "ls"</div><div class='add'>+        ls ¤òÄêµÁ</div><div class='add'>+</div><div class='add'>+      Shell.def_system_command "sys_sort", "sort"</div><div class='add'>+        sort¥³¥Þ¥ó¥É¤òsys_sort¤È¤·¤ÆÄêµÁ</div><div class='add'>+</div><div class='add'>+--- Shell.undef_system_command(command)</div><div class='add'>+</div><div class='add'>+      command¤òºï½ü¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell.alias_command(ali, command, *opts) {...}</div><div class='add'>+</div><div class='add'>+      command¤Îalias¤ò¤·¤Þ¤¹. </div><div class='add'>+</div><div class='add'>+      Îã)</div><div class='add'>+        Shell.alias_command "lsC", "ls", "-CBF", "--show-control-chars"</div><div class='add'>+        Shell.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}</div><div class='add'>+</div><div class='add'>+--- Shell.unalias_command(ali)</div><div class='add'>+</div><div class='add'>+      command¤Îalias¤òºï½ü¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell.install_system_commands(pre = "sys_")</div><div class='add'>+</div><div class='add'>+      system_path¾å¤Ë¤¢¤ëÁ´¤Æ¤Î¼Â¹Ô²ÄÇ½¥Õ¥¡¥¤¥ë¤òShell¤ËÄêµÁ¤¹¤ë. ¥á¥½¥Ã</div><div class='add'>+      ¥ÉÌ¾¤Ï¸µ¤Î¥Õ¥¡¥¤¥ëÌ¾¤ÎÆ¬¤Ëpre¤ò¤Ä¤±¤¿¤â¤Î¤È¤Ê¤ë.</div><div class='add'>+</div><div class='add'>+== À¸À®</div><div class='add'>+</div><div class='add'>+--- Shell.new</div><div class='add'>+</div><div class='add'>+      ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤¹¤ëShell¥ª</div><div class='add'>+      ¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell.cd(path)</div><div class='add'>+</div><div class='add'>+      path¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤È¤¹¤ëShell¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+== ¥×¥í¥»¥¹´ÉÍý</div><div class='add'>+</div><div class='add'>+--- Shell#jobs</div><div class='add'>+</div><div class='add'>+      ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ëjob¤Î°ìÍ÷¤òÊÖ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell#kill sig, job</div><div class='add'>+</div><div class='add'>+      job¤Ë¥·¥°¥Ê¥ësig¤òÁ÷¤ë</div><div class='add'>+</div><div class='add'>+== ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥êÁàºî</div><div class='add'>+</div><div class='add'>+--- Shell#cd(path, &amp;block)</div><div class='add'>+--- Shell#chdir</div><div class='add'>+</div><div class='add'>+      ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òpath¤Ë¤¹¤ë. ¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ð¤ì¤¿¤È¤­¤Ë¤Ï</div><div class='add'>+      ¥Ö¥í¥Ã¥¯¼Â¹ÔÃæ¤Î¤ß¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊÑ¹¹¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- Shell#pushd(path = nil, &amp;block)</div><div class='add'>+--- Shell#pushdir</div><div class='add'>+</div><div class='add'>+      ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¥Ç¥£¥ì¥¯¥È¥ê¥¹¥¿¥Ã¥¯¤Ë¤Ä¤ß, ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯</div><div class='add'>+      ¥È¥ê¤òpath¤Ë¤¹¤ë. path¤¬¾ÊÎ¬¤µ¤ì¤¿¤È¤­¤Ë¤Ï, ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤È</div><div class='add'>+      ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥¿¥Ã¥¯¤Î¥È¥Ã¥×¤ò¸ò´¹¤¹¤ë. ¥¤¥Æ¥ì¡¼¥¿¤È¤·¤Æ¸Æ¤Ð¤ì¤¿¤È</div><div class='add'>+      ¤­¤Ë¤Ï, ¥Ö¥í¥Ã¥¯¼Â¹ÔÃæ¤Î¤ßpushd¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- Shell#popd</div><div class='add'>+--- Shell#popdir</div><div class='add'>+</div><div class='add'>+      ¥Ç¥£¥ì¥¯¥È¥ê¥¹¥¿¥Ã¥¯¤«¤é¥Ý¥Ã¥×¤·, ¤½¤ì¤ò¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤ë.</div><div class='add'>+</div><div class='add'>+== ¥Õ¥¡¥¤¥ë/¥Ç¥£¥ì¥¯¥È¥êÁàºî</div><div class='add'>+</div><div class='add'>+--- Shell#foreach(path = nil, &amp;block)</div><div class='add'>+</div><div class='add'>+      path¤¬¥Õ¥¡¥¤¥ë¤Ê¤é, File#foreach</div><div class='add'>+      path¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ê¤é, Dir#foreach</div><div class='add'>+</div><div class='add'>+--- Shell#open(path, mode)</div><div class='add'>+</div><div class='add'>+      path¤¬¥Õ¥¡¥¤¥ë¤Ê¤é, File#open</div><div class='add'>+      path¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ê¤é, Dir#open</div><div class='add'>+</div><div class='add'>+--- Shell#unlink(path)</div><div class='add'>+</div><div class='add'>+      path¤¬¥Õ¥¡¥¤¥ë¤Ê¤é, File#unlink</div><div class='add'>+      path¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ê¤é, Dir#unlink</div><div class='add'>+</div><div class='add'>+--- Shell#test(command, file1, file2)</div><div class='add'>+--- Shell#[command, file1, file2]</div><div class='add'>+</div><div class='add'>+      ¥Õ¥¡¥¤¥ë¥Æ¥¹¥È´Ø¿ôtest¤ÈÆ±¤¸. </div><div class='add'>+      Îã)</div><div class='add'>+          sh[?e, "foo"]</div><div class='add'>+          sh[:e, "foo"]</div><div class='add'>+          sh["e", "foo"]</div><div class='add'>+          sh[:exists?, "foo"]</div><div class='add'>+          sh["exists?", "foo"]</div><div class='add'>+</div><div class='add'>+--- Shell#mkdir(*path)</div><div class='add'>+</div><div class='add'>+      Dir.mkdir¤ÈÆ±¤¸(Ê£¿ô²Ä)</div><div class='add'>+</div><div class='add'>+--- Shell#rmdir(*path)</div><div class='add'>+</div><div class='add'>+      Dir.rmdir¤ÈÆ±¤¸(Ê£¿ô²Ä)</div><div class='add'>+</div><div class='add'>+== ¥³¥Þ¥ó¥É¼Â¹Ô</div><div class='add'>+</div><div class='add'>+--- System#system(command, *opts)</div><div class='add'>+</div><div class='add'>+      command¤ò¼Â¹Ô¤¹¤ë.</div><div class='add'>+      Îã)</div><div class='add'>+        print sh.system("ls", "-l")</div><div class='add'>+        sh.system("ls", "-l") | sh.head &gt; STDOUT</div><div class='add'>+</div><div class='add'>+--- System#rehash</div><div class='add'>+</div><div class='add'>+      ¥ê¥Ï¥Ã¥·¥å¤¹¤ë</div><div class='add'>+</div><div class='add'>+--- Shell#transact &amp;block</div><div class='add'>+</div><div class='add'>+      ¥Ö¥í¥Ã¥¯Ãæ¤Ç¤Ïshell¤òself¤È¤·¤Æ¼Â¹Ô¤¹¤ë.</div><div class='add'>+      Îã)</div><div class='add'>+        sh.transact{system("ls", "-l") | head &gt; STDOUT}</div><div class='add'>+</div><div class='add'>+--- Shell#out(dev = STDOUT, &amp;block)</div><div class='add'>+</div><div class='add'>+      transact¤ò¸Æ¤Ó½Ð¤·¤½¤Î·ë²Ì¤òdev¤Ë½ÐÎÏ¤¹¤ë.</div><div class='add'>+</div><div class='add'>+== ÆâÉô¥³¥Þ¥ó¥É</div><div class='add'>+</div><div class='add'>+--- Shell#echo(*strings)</div><div class='add'>+--- Shell#cat(*files)</div><div class='add'>+--- Shell#glob(patten)</div><div class='add'>+--- Shell#tee(file)</div><div class='add'>+</div><div class='add'>+      ¤³¤ì¤é¤Ï¼Â¹Ô¤¹¤ë¤È, ¤½¤ì¤é¤òÆâÍÆ¤È¤¹¤ëFilter¥ª¥Ö¥¸¥§¥¯¥È¤òÊÖ¤·¤Þ¤¹. </div><div class='add'>+</div><div class='add'>+--- Filter#each &amp;block</div><div class='add'>+</div><div class='add'>+      ¥Õ¥£¥ë¥¿¤Î°ì¹Ô¤º¤Ä¤òblock¤ËÅÏ¤¹.</div><div class='add'>+</div><div class='add'>+--- Filter#&lt;(src)</div><div class='add'>+</div><div class='add'>+      src¤ò¥Õ¥£¥ë¥¿¤ÎÆþÎÏ¤È¤¹¤ë. src¤¬, Ê¸»úÎó¤Ê¤é¤Ð¥Õ¥¡¥¤¥ë¤ò, IO¤Ç¤¢¤ì</div><div class='add'>+      ¤Ð¤½¤ì¤ò¤½¤Î¤Þ¤ÞÆþÎÏ¤È¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- Filter#&gt;(to)</div><div class='add'>+</div><div class='add'>+      src¤ò¥Õ¥£¥ë¥¿¤Î½ÐÎÏ¤È¤¹¤ë. to¤¬, Ê¸»úÎó¤Ê¤é¤Ð¥Õ¥¡¥¤¥ë¤Ë, IO¤Ç¤¢¤ì</div><div class='add'>+      ¤Ð¤½¤ì¤ò¤½¤Î¤Þ¤Þ½ÐÎÏ¤È¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- Filter#&gt;&gt;(to)</div><div class='add'>+</div><div class='add'>+      src¤ò¥Õ¥£¥ë¥¿¤ËÄÉ²Ã¤¹¤ë. to¤¬, Ê¸»úÎó¤Ê¤é¤Ð¥Õ¥¡¥¤¥ë¤Ë, IO¤Ç¤¢¤ì¤Ð</div><div class='add'>+      ¤½¤ì¤ò¤½¤Î¤Þ¤Þ½ÐÎÏ¤È¤¹¤ë.</div><div class='add'>+</div><div class='add'>+--- Filter#|(filter)</div><div class='add'>+</div><div class='add'>+      ¥Ñ¥¤¥×·ë¹ç</div><div class='add'>+</div><div class='add'>+--- Filter#+(filter)</div><div class='add'>+</div><div class='add'>+      filter1 + filter2 ¤Ï filter1¤Î½ÐÎÏ¤Î¸å, filter2¤Î½ÐÎÏ¤ò¹Ô¤¦.</div><div class='add'>+</div><div class='add'>+--- Filter#to_a</div><div class='add'>+--- Filter#to_s</div><div class='add'>+</div><div class='add'>+== ÁÈ¹þ¤ß¥³¥Þ¥ó¥É</div><div class='add'>+</div><div class='add'>+--- Shell#atime(file)</div><div class='add'>+--- Shell#basename(file, *opt)</div><div class='add'>+--- Shell#chmod(mode, *files)</div><div class='add'>+--- Shell#chown(owner, group, *file)</div><div class='add'>+--- Shell#ctime(file)</div><div class='add'>+--- Shell#delete(*file)</div><div class='add'>+--- Shell#dirname(file)</div><div class='add'>+--- Shell#ftype(file)</div><div class='add'>+--- Shell#join(*file)</div><div class='add'>+--- Shell#link(file_from, file_to)</div><div class='add'>+--- Shell#lstat(file)</div><div class='add'>+--- Shell#mtime(file)</div><div class='add'>+--- Shell#readlink(file)</div><div class='add'>+--- Shell#rename(file_from, file_to)</div><div class='add'>+--- Shell#split(file)</div><div class='add'>+--- Shell#stat(file)</div><div class='add'>+--- Shell#symlink(file_from, file_to)</div><div class='add'>+--- Shell#truncate(file, length)</div><div class='add'>+--- Shell#utime(atime, mtime, *file)</div><div class='add'>+</div><div class='add'>+      ¤³¤ì¤é¤ÏFile¥¯¥é¥¹¤Ë¤¢¤ëÆ±Ì¾¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤ÈÆ±¤¸¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell#blockdev?(file)</div><div class='add'>+--- Shell#chardev?(file)</div><div class='add'>+--- Shell#directory?(file)</div><div class='add'>+--- Shell#executable?(file)</div><div class='add'>+--- Shell#executable_real?(file)</div><div class='add'>+--- Shell#exist?(file)/Shell#exists?(file)</div><div class='add'>+--- Shell#file?(file)</div><div class='add'>+--- Shell#grpowned?(file)</div><div class='add'>+--- Shell#owned?(file)</div><div class='add'>+--- Shell#pipe?(file)</div><div class='add'>+--- Shell#readable?(file)</div><div class='add'>+--- Shell#readable_real?(file)</div><div class='add'>+--- Shell#setgid?(file)</div><div class='add'>+--- Shell#setuid?(file)</div><div class='add'>+--- Shell#size(file)/Shell#size?(file)</div><div class='add'>+--- Shell#socket?(file)</div><div class='add'>+--- Shell#sticky?(file)</div><div class='add'>+--- Shell#symlink?(file)</div><div class='add'>+--- Shell#writable?(file)</div><div class='add'>+--- Shell#writable_real?(file)</div><div class='add'>+--- Shell#zero?(file)</div><div class='add'>+</div><div class='add'>+      ¤³¤ì¤é¤ÏFileTest¥¯¥é¥¹¤Ë¤¢¤ëÆ±Ì¾¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤ÈÆ±¤¸¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell#syscopy(filename_from, filename_to)</div><div class='add'>+--- Shell#copy(filename_from, filename_to)</div><div class='add'>+--- Shell#move(filename_from, filename_to)</div><div class='add'>+--- Shell#compare(filename_from, filename_to)</div><div class='add'>+--- Shell#safe_unlink(*filenames)</div><div class='add'>+--- Shell#makedirs(*filenames)</div><div class='add'>+--- Shell#install(filename_from, filename_to, mode)</div><div class='add'>+</div><div class='add'>+      ¤³¤ì¤é¤ÏFileTools¥¯¥é¥¹¤Ë¤¢¤ëÆ±Ì¾¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¤ÈÆ±¤¸¤Ç¤¹.</div><div class='add'>+</div><div class='add'>+      ¤½¤ÎÂ¾, °Ê²¼¤Î¤â¤Î¤¬¥¨¥¤¥ê¥¢¥¹¤µ¤ì¤Æ¤¤¤Þ¤¹.</div><div class='add'>+</div><div class='add'>+--- Shell#cmp	&lt;- Shell#compare</div><div class='add'>+--- Shell#mv	&lt;- Shell#move</div><div class='add'>+--- Shell#cp	&lt;- Shell#copy</div><div class='add'>+--- Shell#rm_f	&lt;- Shell#safe_unlink</div><div class='add'>+--- Shell#mkpath	&lt;- Shell#makedirs</div><div class='add'>+</div><div class='add'>+= ¥µ¥ó¥×¥ë</div><div class='add'>+</div><div class='add'>+== ex1</div><div class='add'>+</div><div class='add'>+  sh = Shell.cd("/tmp")</div><div class='add'>+  sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")</div><div class='add'>+  sh.cd("shell-test-1")</div><div class='add'>+  for dir in ["dir1", "dir3", "dir5"]</div><div class='add'>+    if !sh.exists?(dir)</div><div class='add'>+      sh.mkdir dir</div><div class='add'>+      sh.cd(dir) do</div><div class='add'>+	f = sh.open("tmpFile", "w")</div><div class='add'>+	f.print "TEST\n"</div><div class='add'>+	f.close</div><div class='add'>+      end</div><div class='add'>+      print sh.pwd</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== ex2</div><div class='add'>+</div><div class='add'>+  sh = Shell.cd("/tmp")</div><div class='add'>+  sh.transact do</div><div class='add'>+    mkdir "shell-test-1" unless exists?("shell-test-1")</div><div class='add'>+    cd("shell-test-1")</div><div class='add'>+    for dir in ["dir1", "dir3", "dir5"]</div><div class='add'>+      if !exists?(dir)</div><div class='add'>+	mkdir dir</div><div class='add'>+	cd(dir) do</div><div class='add'>+	  f = open("tmpFile", "w")</div><div class='add'>+	  f.print "TEST\n"</div><div class='add'>+	  f.close</div><div class='add'>+	end</div><div class='add'>+	print pwd</div><div class='add'>+      end</div><div class='add'>+    end</div><div class='add'>+  end</div><div class='add'>+</div><div class='add'>+== ex3</div><div class='add'>+</div><div class='add'>+  sh.cat("/etc/printcap") | sh.tee("tee1") &gt; "tee2"</div><div class='add'>+  (sh.cat &lt; "/etc/printcap") | sh.tee("tee11") &gt; "tee12"</div><div class='add'>+  sh.cat("/etc/printcap") | sh.tee("tee1") &gt;&gt; "tee2"</div><div class='add'>+  (sh.cat &lt; "/etc/printcap") | sh.tee("tee11") &gt;&gt; "tee12"</div><div class='add'>+</div><div class='add'>+== ex4</div><div class='add'>+</div><div class='add'>+  print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}</div><div class='add'>+</div><div class='add'>+=end</div><div class='head'>diff --git a/enc/Makefile.in b/enc/Makefile.in<br/>new file mode 100644<br/>index 0000000000..203a83dbfd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/Makefile.in?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/Makefile.in</a></div><div class='hunk'>@@ -0,0 +1,74 @@</div><div class='add'>+V = 0</div><div class='add'>+Q1 = $(V:1=)</div><div class='add'>+Q = $(Q1:0=@)</div><div class='add'>+n=$(NULLCMD)</div><div class='add'>+ECHO1 = $(V:1=@$n)</div><div class='add'>+ECHO = $(ECHO1:0=@echo)</div><div class='add'>+</div><div class='add'>+encsrcdir = @srcdir@</div><div class='add'>+topdir = .</div><div class='add'>+prefix = @prefix@</div><div class='add'>+exec_prefix = @exec_prefix@</div><div class='add'>+libdir = @libdir@</div><div class='add'>+top_srcdir = $(encsrcdir:/enc=)</div><div class='add'>+srcdir = $(top_srcdir)</div><div class='add'>+arch = @arch@</div><div class='add'>+EXTOUT = @EXTOUT@</div><div class='add'>+hdrdir = $(srcdir)/include</div><div class='add'>+arch_hdrdir = $(EXTOUT)/include/$(arch)</div><div class='add'>+ENCSODIR = $(EXTOUT)/$(arch)/enc</div><div class='add'>+TRANSSODIR = $(ENCSODIR)/trans</div><div class='add'>+DLEXT = @DLEXT@</div><div class='add'>+OBJEXT = @OBJEXT@</div><div class='add'>+</div><div class='add'>+BUILTIN_ENCS	= ascii.c us_ascii.c\</div><div class='add'>+		  unicode.c utf_8.c</div><div class='add'>+</div><div class='add'>+BUILTIN_TRANSES	= newline.trans</div><div class='add'>+</div><div class='add'>+RUBY_SO_NAME = @RUBY_SO_NAME@</div><div class='add'>+LIBRUBY = @LIBRUBY@</div><div class='add'>+LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@</div><div class='add'>+LIBRUBYARG_STATIC = $(LIBRUBYARG_SHARED)</div><div class='add'>+</div><div class='add'>+empty =</div><div class='add'>+CC = @CC@</div><div class='add'>+OUTFLAG = @OUTFLAG@$(empty)</div><div class='add'>+COUTFLAG = @COUTFLAG@$(empty)</div><div class='add'>+CFLAGS = $(CCDLFLAGS) @CFLAGS@ @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@</div><div class='add'>+CCDLFLAGS = @CCDLFLAGS@</div><div class='add'>+INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(top_srcdir)</div><div class='add'>+DEFS = @DEFS@</div><div class='add'>+CPPFLAGS = @CPPFLAGS@ -DONIG_ENC_REGISTER=rb_enc_register</div><div class='add'>+LDFLAGS = @LDFLAGS@</div><div class='add'>+LDSHARED = @LDSHARED@</div><div class='add'>+ldflags  = $(LDFLAGS)</div><div class='add'>+dldflags = @DLDFLAGS@</div><div class='add'>+archflag = @ARCH_FLAG@</div><div class='add'>+DLDFLAGS = $(ldflags) $(dldflags) $(archflag)</div><div class='add'>+RUBY     = $(MINIRUBY)</div><div class='add'>+</div><div class='add'>+WORKDIRS = @WORKDIRS@</div><div class='add'>+</div><div class='add'>+NULLCMD = @NULLCMD@</div><div class='add'>+RM = @RM@</div><div class='add'>+RMDIR = @RMDIR@</div><div class='add'>+RMDIRS = @RMDIRS@</div><div class='add'>+MAKEDIRS = @MAKEDIRS@</div><div class='add'>+</div><div class='add'>+.SUFFIXES: .trans</div><div class='add'>+</div><div class='add'>+all: make-workdir</div><div class='add'>+</div><div class='add'>+make-workdir:</div><div class='add'>+	$(Q)$(MAKEDIRS) $(WORKDIRS)</div><div class='add'>+</div><div class='add'>+clean:</div><div class='add'>+</div><div class='add'>+distclean: clean</div><div class='add'>+	$(Q)$(RM) enc.mk</div><div class='add'>+realclean: distclean clean-srcs</div><div class='head'>diff --git a/enc/ascii.c b/enc/ascii.c<br/>new file mode 100644<br/>index 0000000000..3d62ec9bf7<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/ascii.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/ascii.c</a></div><div class='hunk'>@@ -0,0 +1,93 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  ascii.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2006  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(ascii, ASCII) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ASCII-8BIT",/* name */</div><div class='add'>+  1,           /* max byte length */</div><div class='add'>+  1,           /* min byte length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  onigenc_ascii_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  onigenc_ascii_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("BINARY", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("IBM437", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP437", "IBM437")</div><div class='add'>+ENC_REPLICATE("IBM737", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP737", "IBM737")</div><div class='add'>+ENC_REPLICATE("IBM775", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP775", "IBM775")</div><div class='add'>+ENC_REPLICATE("CP850", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("IBM850", "CP850")</div><div class='add'>+ENC_REPLICATE("IBM852", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("CP852", "IBM852")</div><div class='add'>+ENC_REPLICATE("IBM855", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("CP855", "IBM855")</div><div class='add'>+ENC_REPLICATE("IBM857", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP857", "IBM857")</div><div class='add'>+ENC_REPLICATE("IBM860", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP860", "IBM860")</div><div class='add'>+ENC_REPLICATE("IBM861", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP861", "IBM861")</div><div class='add'>+ENC_REPLICATE("IBM862", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP862", "IBM862")</div><div class='add'>+ENC_REPLICATE("IBM863", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP863", "IBM863")</div><div class='add'>+ENC_REPLICATE("IBM864", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP864", "IBM864")</div><div class='add'>+ENC_REPLICATE("IBM865", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP865", "IBM865")</div><div class='add'>+ENC_REPLICATE("IBM866", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP866", "IBM866")</div><div class='add'>+ENC_REPLICATE("IBM869", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP869", "IBM869")</div><div class='add'>+ENC_REPLICATE("Windows-1258", "ASCII-8BIT")</div><div class='add'>+ENC_ALIAS("CP1258", "Windows-1258")</div><div class='add'>+ENC_REPLICATE("GB1988", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macCentEuro", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macCroatian", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macCyrillic", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macGreek", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macIceland", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macRoman", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macRomania", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macThai", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macTurkish", "ASCII-8BIT")</div><div class='add'>+ENC_REPLICATE("macUkraine", "ASCII-8BIT")</div><div class='head'>diff --git a/enc/big5.c b/enc/big5.c<br/>new file mode 100644<br/>index 0000000000..c39329170e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/big5.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/big5.c</a></div><div class='hunk'>@@ -0,0 +1,367 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  big5.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+static const int EncLen_BIG5[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1</div><div class='add'>+};</div><div class='add'>+static const int EncLen_BIG5_HKSCS[] = {</div><div class='add'>+ /* LEN  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F */</div><div class='add'>+ /* 0 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 1 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 2 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 3 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 4 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 5 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 6 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 7 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 8 */ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* 9 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* A */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* B */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* C */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* D */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* E */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* F */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const int EncLen_BIG5_UAO[] = {</div><div class='add'>+ /* LEN  0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F */</div><div class='add'>+ /* 0 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 1 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 2 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 3 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 4 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 5 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 6 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 7 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+ /* 8 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* 9 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* A */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* B */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* C */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* D */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* E */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+ /* F */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  },</div><div class='add'>+  { /* S2   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_mbc_enc_len0(const UChar* p, const UChar* e, int tridx, const int tbl[])</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s = trans[tridx][firstbyte];</div><div class='add'>+#define RETURN(n) \</div><div class='add'>+    return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \</div><div class='add'>+                         ONIGENC_CONSTRUCT_MBCLEN_INVALID()</div><div class='add'>+  if (s &lt; 0) RETURN(1);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(tbl[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  RETURN(2);</div><div class='add'>+#undef RETURN</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+    return big5_mbc_enc_len0(p, e, 0, EncLen_BIG5);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_hkscs_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+    return big5_mbc_enc_len0(p, e, 2, EncLen_BIG5_HKSCS);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_uao_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+    return big5_mbc_enc_len0(p, e, 2, EncLen_BIG5_UAO);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+big5_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_to_code(enc, p, end);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_code_to_mbc(enc, code, buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,</div><div class='add'>+                   UChar* lower, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_case_fold(enc, flag,</div><div class='add'>+                                   pp, end, lower);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+big5_is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		      const UChar** pp, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_is_code_ctype(enc, code, ctype);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const char BIG5_CAN_BE_TRAIL_TABLE[256] = {</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define BIG5_HKSCS_P(enc) ((enc)-&gt;precise_mbc_enc_len == big5_hkscs_mbc_enc_len)</div><div class='add'>+#define BIG5_UAO_P(enc) ((enc)-&gt;precise_mbc_enc_len == big5_uao_mbc_enc_len)</div><div class='add'>+</div><div class='add'>+#define BIG5_ISMB_FIRST(byte)  ( \</div><div class='add'>+	BIG5_HKSCS_P(enc) ? EncLen_BIG5_HKSCS[byte] &gt; 1 : \</div><div class='add'>+	EncLen_BIG5[byte] &gt; 1 \</div><div class='add'>+	)</div><div class='add'>+#define BIG5_ISMB_TRAIL(byte)  BIG5_CAN_BE_TRAIL_TABLE[(byte)]</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+big5_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  if (BIG5_ISMB_TRAIL(*p)) {</div><div class='add'>+    while (p &gt; start) {</div><div class='add'>+      if (! BIG5_ISMB_FIRST(*--p)) {</div><div class='add'>+	p++;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+big5_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+</div><div class='add'>+  return (BIG5_ISMB_TRAIL(c) ? FALSE : TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: Big5  (preferred MIME name)</div><div class='add'>+ * MIBenum: 2026</div><div class='add'>+ * Source: Chinese for Taiwan Multi-byte set.</div><div class='add'>+ *         PCL Symbol Set Id: 18T</div><div class='add'>+ * Alias: csBig5</div><div class='add'>+ */</div><div class='add'>+OnigEncodingDefine(big5, BIG5) = {</div><div class='add'>+  big5_mbc_enc_len,</div><div class='add'>+  "Big5",     /* name */</div><div class='add'>+  2,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  big5_mbc_to_code,</div><div class='add'>+  onigenc_mb2_code_to_mbclen,</div><div class='add'>+  big5_code_to_mbc,</div><div class='add'>+  big5_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  big5_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  big5_left_adjust_char_head,</div><div class='add'>+  big5_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: CP950</div><div class='add'>+ * Source: http://msdn.microsoft.com/en-us/goglobal/cc305155.aspx</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("CP950", "Big5")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: Big5-HKSCS</div><div class='add'>+ * MIBenum: 2101</div><div class='add'>+ * Source: http://www.iana.org/assignments/charset-reg/Big5-HKSCS</div><div class='add'>+ * Source: http://www.ogcio.gov.hk/ccli/eng/hkscs/mapping_table_2008.html</div><div class='add'>+ * Alias: None</div><div class='add'>+ */</div><div class='add'>+OnigEncodingDefine(big5_hkscs, BIG5_HKSCS) = {</div><div class='add'>+  big5_hkscs_mbc_enc_len,</div><div class='add'>+  "Big5-HKSCS",     /* name */</div><div class='add'>+  2,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  big5_mbc_to_code,</div><div class='add'>+  onigenc_mb2_code_to_mbclen,</div><div class='add'>+  big5_code_to_mbc,</div><div class='add'>+  big5_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  big5_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  big5_left_adjust_char_head,</div><div class='add'>+  big5_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("Big5-HKSCS:2008", "Big5-HKSCS")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: CP951</div><div class='add'>+ * Source: http://www.microsoft.com/hk/hkscs/default.aspx</div><div class='add'>+ * Source: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0e6f5ac8-7baa-4571-b8e8-78b3b776afd7&amp;DisplayLang=en</div><div class='add'>+ * Source: http://blogs.msdn.com/b/shawnste/archive/2007/03/12/cp-951-hkscs.aspx</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("CP951", "Big5-HKSCS")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: Big5-UAO [NOT registered by IANA!]</div><div class='add'>+ * Source: http://moztw.org/docs/big5/table/big5_2003-b2u.txt</div><div class='add'>+ */</div><div class='add'>+OnigEncodingDefine(big5_uao, BIG5_UAO) = {</div><div class='add'>+  big5_uao_mbc_enc_len,</div><div class='add'>+  "Big5-UAO",     /* name */</div><div class='add'>+  2,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  big5_mbc_to_code,</div><div class='add'>+  onigenc_mb2_code_to_mbclen,</div><div class='add'>+  big5_code_to_mbc,</div><div class='add'>+  big5_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  big5_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  big5_left_adjust_char_head,</div><div class='add'>+  big5_is_allowed_reverse_match</div><div class='add'>+};</div><div class='head'>diff --git a/enc/cp949.c b/enc/cp949.c<br/>new file mode 100644<br/>index 0000000000..3eb46c976a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/cp949.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/cp949.c</a></div><div class='hunk'>@@ -0,0 +1,219 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  cp949.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+static const int EncLen_CP949[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char CP949_CAN_BE_TRAIL_TABLE[256] = {</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define CP949_ISMB_FIRST(byte)  (EncLen_CP949[byte] &gt; 1)</div><div class='add'>+#define CP949_ISMB_TRAIL(byte)  CP949_CAN_BE_TRAIL_TABLE[(byte)]</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ A, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cp949_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s = trans[0][firstbyte];</div><div class='add'>+#define RETURN(n) \</div><div class='add'>+    return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \</div><div class='add'>+                         ONIGENC_CONSTRUCT_MBCLEN_INVALID()</div><div class='add'>+  if (s &lt; 0) RETURN(1);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_CP949[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  RETURN(2);</div><div class='add'>+#undef RETURN</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+cp949_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_to_code(enc, p, end);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cp949_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_code_to_mbc(enc, code, buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cp949_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,</div><div class='add'>+                    UChar* lower, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_case_fold(enc, flag,</div><div class='add'>+                                   pp, end, lower);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+cp949_is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		       const UChar** pp, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cp949_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_is_code_ctype(enc, code, ctype);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+cp949_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  if (CP949_ISMB_TRAIL(*p)) {</div><div class='add'>+    while (p &gt; start) {</div><div class='add'>+      if (! CP949_ISMB_FIRST(*--p)) {</div><div class='add'>+	p++;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+cp949_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+  return (CP949_ISMB_TRAIL(c) ? FALSE : TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(cp949, CP949) = {</div><div class='add'>+  cp949_mbc_enc_len,</div><div class='add'>+  "CP949",      /* name */</div><div class='add'>+  2,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  cp949_mbc_to_code,</div><div class='add'>+  onigenc_mb2_code_to_mbclen,</div><div class='add'>+  cp949_code_to_mbc,</div><div class='add'>+  cp949_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  cp949_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  cp949_left_adjust_char_head,</div><div class='add'>+  cp949_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+/*</div><div class='add'>+ * Name: CP949</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/dbcs/949.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/EUC-KR#EUC-KR</div><div class='add'>+ */</div><div class='head'>diff --git a/enc/depend b/enc/depend<br/>new file mode 100644<br/>index 0000000000..8e930d5053<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/depend?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/depend</a></div><div class='hunk'>@@ -0,0 +1,162 @@</div><div class='add'>+% inplace = File.identical?($srcdir, ".")</div><div class='add'>+% workdirs = %w"$(ENCSODIR) $(TRANSSODIR) enc enc/trans"</div><div class='add'>+% CONFIG["WORKDIRS"] = workdirs.join(' ')</div><div class='add'>+% CONFIG["DLDFLAGS"].sub!(/(\A|\s)(-\S+(?:\s*\w*)?\$\(TARGET\)\S*)/, '\1')</div><div class='add'>+% dldflags = $2</div><div class='add'>+% enable_shared = CONFIG['ENABLE_SHARED'] == 'yes'</div><div class='add'>+% deffile = (true if /\$\(DEFFILE\)/ =~ CONFIG["LINK_SO"])</div><div class='add'>+% encs = Dir.open($srcdir) {|d| d.grep(/.+\.c\z/)} - BUILTIN_ENCS</div><div class='add'>+% encs.each {|e| e.chomp!(".c")}</div><div class='add'>+% encs.reject! {|e| !ENC_PATTERNS.any? {|p| File.fnmatch?(p, e)}} if !ENC_PATTERNS.empty?</div><div class='add'>+% encs.reject! {|e| NOENC_PATTERNS.any? {|p| File.fnmatch?(p, e)}}</div><div class='add'>+% alphanumeric_order = proc {|e| e.scan(/(\d+)|(\D+)/).map {|n,a| a||[n.size,n.to_i]}.flatten}</div><div class='add'>+% encs = encs.sort_by(&amp;alphanumeric_order)</div><div class='add'>+% encs.unshift(encs.delete("encdb"))</div><div class='add'>+% atrans = []</div><div class='add'>+% trans = Dir.open($srcdir+"/trans") {|d|</div><div class='add'>+%   d.select {|e|</div><div class='add'>+%     if e.chomp!('.trans')</div><div class='add'>+%       atrans &lt;&lt; e</div><div class='add'>+%       true</div><div class='add'>+%     elsif e.chomp!('.c')</div><div class='add'>+%       true</div><div class='add'>+%     end</div><div class='add'>+%   }</div><div class='add'>+% }</div><div class='add'>+% trans -= BUILTIN_TRANSES</div><div class='add'>+% atrans -= BUILTIN_TRANSES</div><div class='add'>+% trans.uniq!</div><div class='add'>+% atrans = atrans.sort_by(&amp;alphanumeric_order)</div><div class='add'>+% trans = trans.sort_by(&amp;alphanumeric_order)</div><div class='add'>+% trans.unshift(trans.delete("transdb"))</div><div class='add'>+% trans.compact!</div><div class='add'>+% trans |= atrans</div><div class='add'>+% trans.map! {|e| "trans/#{e}"}</div><div class='add'>+% dependencies = encs + trans</div><div class='add'>+% cleanlibs = Shellwords.shellwords(CONFIG["cleanlibs"] || "")</div><div class='add'>+% cleanobjs = Shellwords.shellwords(CONFIG["cleanobjs"] || "")</div><div class='add'>+% cleanobjs &lt;&lt; "$*.def" if deffile</div><div class='add'>+% rule_subst = CONFIG["RULE_SUBST"] || "%s"</div><div class='add'>+% transvpath = rule_subst.dup.sub!(/\{[^{}]+\}/, '$(TRANSVPATH)/') || "enc/trans/%s"</div><div class='add'>+% transvpath_prefix = (rule_subst.dup.sub!(/\{[^{}]+\}/, '{$(TRANSVPATH)}') || "") % ""</div><div class='add'>+% if File::ALT_SEPARATOR</div><div class='add'>+%   pathrep = proc {|path| path.gsub('/', File::ALT_SEPARATOR).gsub(/\$\(([@&lt;?*]\w?|\w+)\)/, "$(\\1:/=\\#{File::ALT_SEPARATOR})")}</div><div class='add'>+% else</div><div class='add'>+%   pathrep = proc {|path| path}</div><div class='add'>+% end</div><div class='add'>+</div><div class='add'>+VPATH = &lt;%=%w[$(arch_hdrdir)/ruby $(hdrdir)/ruby $(srcdir) $(encsrcdir)].join(CONFIG["PATH_SEPARATOR"])%&gt;</div><div class='add'>+LIBPATH = &lt;%=libpathflag($DEFLIBPATH)%&gt;</div><div class='add'>+LIBS = &lt;%=</div><div class='add'>+if enable_shared or RbConfig.expand(CONFIG["LIBRUBY"].dup) != RbConfig.expand(CONFIG["LIBRUBY_A"].dup)</div><div class='add'>+  CONFIG['LIBRUBYARG']</div><div class='add'>+else</div><div class='add'>+  ''</div><div class='add'>+end %&gt; &lt;%=CONFIG['LIBS']%&gt; $(EXTLIBS)</div><div class='add'>+</div><div class='add'>+ENCOBJS = &lt;%=encs.map {|e|"enc/#{e}.$(OBJEXT)"}.join(" \\\n\t  ")%&gt;&lt;%="\n" if encs.size&gt;1%&gt;</div><div class='add'>+ENCSOS = &lt;%=encs.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\\n\t ")%&gt;&lt;%="\n" if encs.size&gt;1%&gt;</div><div class='add'>+ENCCLEANLIBS = &lt;%=cleanlibs.map {|clean|</div><div class='add'>+  clean.gsub(/\$\*(\.\w+)?/) {"$(ENCOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}</div><div class='add'>+}.join(" ")%&gt;</div><div class='add'>+ENCCLEANOBJS = &lt;%=cleanobjs.map {|clean|</div><div class='add'>+  clean.gsub(/\$\*(\.\w+)?/) {"$(ENCOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}</div><div class='add'>+}.join(" ")%&gt;</div><div class='add'>+</div><div class='add'>+TRANSVPATH = $(srcdir)/enc/trans</div><div class='add'>+</div><div class='add'>+TRANSCSRCS = &lt;%=atrans.map {|e| transvpath % "#{e}.c"}.join(" \\\n\t     ")%&gt;&lt;%="\n" if trans.size&gt;1%&gt;</div><div class='add'>+TRANSOBJS = &lt;%=trans.map {|e|"enc/#{e}.$(OBJEXT)"}.join(" \\\n\t    ")%&gt;&lt;%="\n" if trans.size&gt;1%&gt;</div><div class='add'>+TRANSSOS = &lt;%=trans.map {|e|"$(ENCSODIR)/#{e}.$(DLEXT)"}.join(" \\\n\t   ")%&gt;&lt;%="\n" if trans.size&gt;1%&gt;</div><div class='add'>+TRANSCLEANLIBS = &lt;%=cleanlibs.map {|clean|</div><div class='add'>+  clean.gsub(/\$\*(\.\w+)?/) {"$(TRANSOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}</div><div class='add'>+}.join(" ")%&gt;</div><div class='add'>+TRANSCLEANOBJS = &lt;%=cleanobjs.map {|clean|</div><div class='add'>+  clean.gsub(/\$\*(\.\w+)?/) {"$(TRANSOBJS#{$1 ? ":.#{CONFIG["OBJEXT"]}=#{$1}" : ""})"}</div><div class='add'>+}.join(" ")%&gt;</div><div class='add'>+</div><div class='add'>+encs: all</div><div class='add'>+all: enc trans</div><div class='add'>+enc: $(ENCSOS)</div><div class='add'>+trans: $(TRANSSOS)</div><div class='add'>+</div><div class='add'>+srcs: $(TRANSCSRCS)</div><div class='add'>+</div><div class='add'>+&lt;%=transvpath_prefix%&gt;.trans&lt;%=transvpath_prefix%&gt;.c:</div><div class='add'>+	$(ECHO) generating table from $@</div><div class='add'>+	$(Q)$(MINIRUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo "$@" "$&lt;"</div><div class='add'>+</div><div class='add'>+% unless encs.empty? or trans.empty?</div><div class='add'>+</div><div class='add'>+%   unless encs.empty?</div><div class='add'>+$(ENCOBJS): regenc.h oniguruma.h config.h defines.h</div><div class='add'>+%   end</div><div class='add'>+%   unless trans.empty?</div><div class='add'>+$(TRANSOBJS): ruby.h intern.h config.h defines.h missing.h encoding.h oniguruma.h st.h transcode_data.h</div><div class='add'>+%   end</div><div class='add'>+%   atrans.each do |e|</div><div class='add'>+%     src = "#{e}.trans"</div><div class='add'>+</div><div class='add'>+&lt;%=transvpath % "#{e}.c"%&gt;: &lt;%= transvpath % "#{e}.trans"%&gt;</div><div class='add'>+%     src = [*IO.read(File.join($srcdir, "trans", src)).scan(/^\s*require\s+[\'\"]([^\'\"]*)/).flatten.map{|c|c+".rb"}]</div><div class='add'>+&lt;%=transvpath % "#{e}.c"%&gt;: &lt;%= src.map {|e| transvpath % "#{e}"}.join(" ")%&gt; $(srcdir)/tool/transcode-tblgen.rb</div><div class='add'>+%   end</div><div class='add'>+</div><div class='add'>+% end</div><div class='add'>+% link_so = LINK_SO.gsub(/\n/, "\n\t")</div><div class='add'>+% link_so.gsub!(/(-(?:implib|pdb):\S+)-\$\(arch\)\./, '\1.')</div><div class='add'>+% dependencies.each do |e|</div><div class='add'>+%   obj = "enc/#{e}.$(OBJEXT)"</div><div class='add'>+%   df = ("enc/#{e}.def" if deffile)</div><div class='add'>+%   target = e.dup</div><div class='add'>+%   if target.sub!(/\Atrans\//, '$(TRANSSODIR)/')</div><div class='add'>+%     mesg = "transcoder"</div><div class='add'>+%   else</div><div class='add'>+%     target = "$(ENCSODIR)/#{e}"</div><div class='add'>+%     mesg = "encoding"</div><div class='add'>+%   end</div><div class='add'>+&lt;%=target%&gt;.$(DLEXT): &lt;%=obj%&gt;</div><div class='add'>+	$(ECHO) linking &lt;%=mesg%&gt; $(@F)</div><div class='add'>+%   cmd = link_so.sub(/\$\(OBJS\)/) {obj}</div><div class='add'>+%   base = File.basename(e)</div><div class='add'>+%   cmd.sub!(/(?=\$\(DLDFLAGS\))/) {dldflags.sub(/\$\(TARGET\)/) {base} + " "} if dldflags</div><div class='add'>+%   if df</div><div class='add'>+	$(Q)echo&gt; &lt;%=df%&gt; EXPORTS</div><div class='add'>+	$(Q)echo&gt;&gt; &lt;%=df%&gt; &lt;%=EXPORT_PREFIX%&gt;Init_&lt;%=base%&gt;</div><div class='add'>+%     cmd.sub!(/\$\(DEFFILE\)/) {df}</div><div class='add'>+%     cmd.gsub!(/-(?:implib|pdb):/) {|s|"#{s}enc/#{e.sub(/[^\/]+\z/, '')}"}</div><div class='add'>+%   end</div><div class='add'>+	$(Q)$(MAKEDIRS) "$(@D)"</div><div class='add'>+	$(Q)&lt;%=cmd%&gt;</div><div class='add'>+</div><div class='add'>+% end</div><div class='add'>+% dependencies.each do |e|</div><div class='add'>+&lt;%="enc/#{e}.$(OBJEXT)"%&gt;: &lt;%="$(encsrcdir)/#{e}.c"%&gt;</div><div class='add'>+	-$(Q)$(MAKEDIRS) "$(@D)"</div><div class='add'>+	$(ECHO) compiling &lt;%= "$(encsrcdir)/#{e}.c"%&gt;</div><div class='add'>+	$(Q)&lt;%=COMPILE_C.gsub(/\$(\()?&lt;(\:[^)]+)?(\))?/){"$(encsrcdir)/#{e}.c"}%&gt;</div><div class='add'>+</div><div class='add'>+% end</div><div class='add'>+</div><div class='add'>+enc/encdb.$(OBJEXT): encdb.h</div><div class='add'>+enc/trans/transdb.$(OBJEXT): transdb.h</div><div class='add'>+</div><div class='add'>+clean:</div><div class='add'>+% %w[$(ENCSOS) $(ENCOBJS) $(ENCCLEANOBJS) $(ENCCLEANLIBS) $(TRANSSOS) $(TRANSOBJS) $(TRANSCLEANOBJS) $(TRANSCLEANLIBS)].each do |clean|</div><div class='add'>+	$(Q)$(RM) &lt;%=pathrep[clean]%&gt;</div><div class='add'>+% end</div><div class='add'>+% @ignore_error = $nmake ? '' : ' 2&gt; /dev/null || true'</div><div class='add'>+% unless inplace</div><div class='add'>+	$(Q)$(RM) enc/unicode/name2ctype.h</div><div class='add'>+	-$(Q)$(RMDIR) enc/unicode&lt;%=@ignore_error%&gt;</div><div class='add'>+% end</div><div class='add'>+% workdirs.reverse_each do|dir|</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep[dir]%&gt;&lt;%=@ignore_error%&gt;</div><div class='add'>+% end</div><div class='add'>+</div><div class='add'>+clean-srcs:</div><div class='add'>+	$(Q)$(RM) &lt;%=pathrep['$(TRANSCSRCS)']%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc/trans']%&gt;&lt;%=@ignore_error%&gt;</div><div class='add'>+	$(Q)$(RM) enc/unicode/name2ctype.h</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc/unicode']%&gt;&lt;%=@ignore_error%&gt;</div><div class='add'>+	-$(Q)$(RMDIR) &lt;%=pathrep['enc']%&gt;&lt;%=@ignore_error%&gt;</div><div class='head'>diff --git a/enc/emacs_mule.c b/enc/emacs_mule.c<br/>new file mode 100644<br/>index 0000000000..e75e40b168<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/emacs_mule.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/emacs_mule.c</a></div><div class='hunk'>@@ -0,0 +1,340 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  emacs_mule.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regint.h"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#define emacsmule_islead(c)    ((UChar )(c) &lt; 0x9e)</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+    CHARACTER := ASCII_CHAR | MULTIBYTE_CHAR</div><div class='add'>+    MULTIBYTE_CHAR := PRIMARY_CHAR_1 | PRIMARY_CHAR_2</div><div class='add'>+                      | SECONDARY_CHAR_1 | SECONDARY_CHAR_2</div><div class='add'>+    PRIMARY_CHAR_1   := LEADING_CODE_PRI C1</div><div class='add'>+    PRIMARY_CHAR_2   := LEADING_CODE_PRI C1 C2</div><div class='add'>+    SECONDARY_CHAR_1 := LEADING_CODE_SEC LEADING_CODE_EXT C1</div><div class='add'>+    SECONDARY_CHAR_2 := LEADING_CODE_SEC LEADING_CODE_EXT C1 C2</div><div class='add'>+    ASCII_CHAR := 0 | 1 | ... | 127</div><div class='add'>+    LEADING_CODE_PRI := 129 | 130 | ... | 153</div><div class='add'>+    LEADING_CODE_SEC := 154 | 155 | 156 | 157</div><div class='add'>+    C1, C2, LEADING_CODE_EXT := 160 | 161 | ... | 255</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+static const int EncLen_EmacsMule[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2, S3, S4, S5, S6 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 5, 6, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A</div><div class='add'>+  },</div><div class='add'>+  { /* S2   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1</div><div class='add'>+  },</div><div class='add'>+  { /* S3   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S4   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S5   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ 2, 2, 2, 2, 2, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S6   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, F</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s;</div><div class='add'>+  s = trans[0][firstbyte];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EmacsMule[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EmacsMule[firstbyte]-2);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(3) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EmacsMule[firstbyte]-3);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(4) :</div><div class='add'>+                       ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int c, i, len;</div><div class='add'>+  OnigCodePoint n;</div><div class='add'>+</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  n = (OnigCodePoint )*p++;</div><div class='add'>+  if (len == 1) return n;</div><div class='add'>+</div><div class='add'>+  for (i = 1; i &lt; len; i++) {</div><div class='add'>+    if (p &gt;= end) break;</div><div class='add'>+    c = *p++;</div><div class='add'>+    n &lt;&lt;= 8;  n += c;</div><div class='add'>+  }</div><div class='add'>+  return n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (ONIGENC_IS_CODE_ASCII(code)) return 1;</div><div class='add'>+  else if (code &gt; 0xffffffff) return 0;</div><div class='add'>+  else if ((code &amp; 0xff000000) &gt;= 0x80000000) return 4;</div><div class='add'>+  else if ((code &amp;   0xff0000) &gt;= 0x800000) return 3;</div><div class='add'>+  else if ((code &amp;     0xff00) &gt;= 0x8000) return 2;</div><div class='add'>+  else</div><div class='add'>+    return ONIGERR_INVALID_CODE_POINT_VALUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  UChar *p = buf;</div><div class='add'>+</div><div class='add'>+  if ((code &amp; 0xff000000) != 0) *p++ = (UChar )(((code &gt;&gt; 24) &amp; 0xff));</div><div class='add'>+  if ((code &amp;   0xff0000) != 0) *p++ = (UChar )(((code &gt;&gt; 16) &amp; 0xff));</div><div class='add'>+  if ((code &amp;     0xff00) != 0) *p++ = (UChar )(((code &gt;&gt;  8) &amp; 0xff));</div><div class='add'>+  *p++ = (UChar )(code &amp; 0xff);</div><div class='add'>+</div><div class='add'>+  if (enclen(enc, buf, p) != (p - buf))</div><div class='add'>+    return ONIGERR_INVALID_CODE_POINT_VALUE;</div><div class='add'>+  return (int)(p - buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end, UChar* lower,</div><div class='add'>+	      OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int len;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (ONIGENC_IS_MBC_ASCII(p)) {</div><div class='add'>+    *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    len = mbc_enc_len(p, end, enc);</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+      *lower++ = *p++;</div><div class='add'>+    }</div><div class='add'>+    (*pp) += len;</div><div class='add'>+    return len; /* return byte length of converted char to lower */</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  while (!emacsmule_islead(*p) &amp;&amp; p &gt; start) p--;</div><div class='add'>+  return (UChar* )p;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 128)</div><div class='add'>+    return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return (code_to_mbclen(code, enc) &gt; 1 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: Emacs-Mule</div><div class='add'>+ * Link: http://www.m17n.org/mule/pricai96/mule.en.html</div><div class='add'>+ */</div><div class='add'>+OnigEncodingDefine(emacs_mule, Emacs_Mule) = {</div><div class='add'>+  mbc_enc_len,</div><div class='add'>+  "Emacs-Mule",   /* name */</div><div class='add'>+  4,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  mbc_to_code,</div><div class='add'>+  code_to_mbclen,</div><div class='add'>+  code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match,</div><div class='add'>+  0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+ENC_REPLICATE("stateless-ISO-2022-JP", "Emacs-Mule")</div><div class='head'>diff --git a/enc/encdb.c b/enc/encdb.c<br/>new file mode 100644<br/>index 0000000000..958b33504e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/encdb.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/encdb.c</a></div><div class='hunk'>@@ -0,0 +1,27 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+</div><div class='add'>+  enc/encdb.c -</div><div class='add'>+</div><div class='add'>+  $Author$</div><div class='add'>+  created at: Mon Apr  7 15:51:31 2008</div><div class='add'>+</div><div class='add'>+  Copyright (C) 2008 Yukihiro Matsumoto</div><div class='add'>+</div><div class='add'>+**********************************************************************/</div><div class='add'>+</div><div class='add'>+int rb_encdb_replicate(const char *alias, const char *orig);</div><div class='add'>+int rb_encdb_alias(const char *alias, const char *orig);</div><div class='add'>+int rb_encdb_dummy(const char *name);</div><div class='add'>+void rb_encdb_declare(const char *name);</div><div class='add'>+void rb_enc_set_base(const char *name, const char *orig);</div><div class='add'>+#define ENC_REPLICATE(name, orig) rb_encdb_replicate((name), (orig))</div><div class='add'>+#define ENC_ALIAS(name, orig) rb_encdb_alias((name), (orig))</div><div class='add'>+#define ENC_DUMMY(name) rb_encdb_dummy(name)</div><div class='add'>+#define ENC_DEFINE(name) rb_encdb_declare(name)</div><div class='add'>+#define ENC_SET_BASE(name, orig) rb_enc_set_base((name), (orig))</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_encdb(void)</div><div class='add'>+{</div><div class='add'>+#include "encdb.h"</div><div class='add'>+}</div><div class='head'>diff --git a/enc/euc_jp.c b/enc/euc_jp.c<br/>new file mode 100644<br/>index 0000000000..7667c5800e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/euc_jp.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/euc_jp.c</a></div><div class='hunk'>@@ -0,0 +1,398 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  euc_jp.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regint.h"</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+#define eucjp_islead(c)    ((UChar )((c) - 0xa1) &gt; 0xfe - 0xa1)</div><div class='add'>+</div><div class='add'>+static const int EncLen_EUCJP[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, 1, 2,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  },</div><div class='add'>+  { /* S2   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s;</div><div class='add'>+  s = trans[0][firstbyte];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCJP[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCJP[firstbyte]-2);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(3) :</div><div class='add'>+                       ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int c, i, len;</div><div class='add'>+  OnigCodePoint n;</div><div class='add'>+</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  n = (OnigCodePoint )*p++;</div><div class='add'>+  if (len == 1) return n;</div><div class='add'>+</div><div class='add'>+  for (i = 1; i &lt; len; i++) {</div><div class='add'>+    if (p &gt;= end) break;</div><div class='add'>+    c = *p++;</div><div class='add'>+    n &lt;&lt;= 8;  n += c;</div><div class='add'>+  }</div><div class='add'>+  return n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (ONIGENC_IS_CODE_ASCII(code)) return 1;</div><div class='add'>+  else if (code &gt; 0xffffff)</div><div class='add'>+      return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;</div><div class='add'>+  else if (code &amp; 0x800000) return 3;</div><div class='add'>+  else if (code &amp; 0x8000) return 2;</div><div class='add'>+  else</div><div class='add'>+    return ONIGERR_INVALID_CODE_POINT_VALUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+code_to_mbc_first(OnigCodePoint code)</div><div class='add'>+{</div><div class='add'>+  int first;</div><div class='add'>+</div><div class='add'>+  if ((code &amp; 0xff0000) != 0) {</div><div class='add'>+    first = (code &gt;&gt; 16) &amp; 0xff;</div><div class='add'>+  }</div><div class='add'>+  else if ((code &amp; 0xff00) != 0) {</div><div class='add'>+    first = (code &gt;&gt; 8) &amp; 0xff;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    return (int )code;</div><div class='add'>+  }</div><div class='add'>+  return first;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  UChar *p = buf;</div><div class='add'>+</div><div class='add'>+  if ((code &amp; 0xff0000) != 0) *p++ = (UChar )(((code &gt;&gt; 16) &amp; 0xff));</div><div class='add'>+  if ((code &amp;   0xff00) != 0) *p++ = (UChar )(((code &gt;&gt;  8) &amp; 0xff));</div><div class='add'>+  *p++ = (UChar )(code &amp; 0xff);</div><div class='add'>+</div><div class='add'>+#if 1</div><div class='add'>+  if (enclen(enc, buf, p) != (p - buf))</div><div class='add'>+    return ONIGERR_INVALID_CODE_POINT_VALUE;</div><div class='add'>+#endif</div><div class='add'>+  return (int)(p - buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end, UChar* lower,</div><div class='add'>+	      OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int len;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (ONIGENC_IS_MBC_ASCII(p)) {</div><div class='add'>+    *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    int i;</div><div class='add'>+</div><div class='add'>+    len = enclen(enc, p, end);</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+      *lower++ = *p++;</div><div class='add'>+    }</div><div class='add'>+    (*pp) += len;</div><div class='add'>+    return len; /* return byte length of converted char to lower */</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  /* In this encoding</div><div class='add'>+     mb-trail bytes doesn't mix with single bytes.</div><div class='add'>+  */</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  while (!eucjp_islead(*p) &amp;&amp; p &gt; start) p--;</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+  if (c &lt;= 0x7e || c == 0x8e || c == 0x8f)</div><div class='add'>+    return TRUE;</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 PropertyInited = 0;</div><div class='add'>+static const OnigCodePoint** PropertyList;</div><div class='add'>+static int PropertyListNum;</div><div class='add'>+static int PropertyListSize;</div><div class='add'>+static hash_table_type* PropertyNameTable;</div><div class='add'>+</div><div class='add'>+static const OnigCodePoint CR_Hiragana[] = {</div><div class='add'>+  1,</div><div class='add'>+  0xa4a1, 0xa4f3</div><div class='add'>+}; /* CR_Hiragana */</div><div class='add'>+</div><div class='add'>+static const OnigCodePoint CR_Katakana[] = {</div><div class='add'>+  3,</div><div class='add'>+  0xa5a1, 0xa5f6,</div><div class='add'>+  0xaaa6, 0xaaaf,</div><div class='add'>+  0xaab1, 0xaadd</div><div class='add'>+}; /* CR_Katakana */</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+init_property_list(void)</div><div class='add'>+{</div><div class='add'>+  int r;</div><div class='add'>+</div><div class='add'>+  PROPERTY_LIST_ADD_PROP("hiragana", CR_Hiragana);</div><div class='add'>+  PROPERTY_LIST_ADD_PROP("katakana", CR_Katakana);</div><div class='add'>+  PropertyInited = 1;</div><div class='add'>+</div><div class='add'>+ end:</div><div class='add'>+  return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+property_name_to_ctype(OnigEncoding enc, UChar* p, UChar* end)</div><div class='add'>+{</div><div class='add'>+  st_data_t ctype;</div><div class='add'>+  UChar *s, *e;</div><div class='add'>+</div><div class='add'>+  PROPERTY_LIST_INIT_CHECK;</div><div class='add'>+</div><div class='add'>+  s = e = ALLOCA_N(UChar, end-p+1);</div><div class='add'>+  for (; p &lt; end; p++) {</div><div class='add'>+    *e++ = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  if (onig_st_lookup_strend(PropertyNameTable, s, e, &amp;ctype) == 0) {</div><div class='add'>+    return onigenc_minimum_property_name_to_ctype(enc, s, e);</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (int)ctype;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (ctype &lt;= ONIGENC_MAX_STD_CTYPE) {</div><div class='add'>+    if (code &lt; 128)</div><div class='add'>+      return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);</div><div class='add'>+    else {</div><div class='add'>+      if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) {</div><div class='add'>+	return (code_to_mbclen(code, enc) &gt; 1 ? TRUE : FALSE);</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    PROPERTY_LIST_INIT_CHECK;</div><div class='add'>+</div><div class='add'>+    ctype -= (ONIGENC_MAX_STD_CTYPE + 1);</div><div class='add'>+    if (ctype &gt;= (unsigned int )PropertyListNum)</div><div class='add'>+      return ONIGERR_TYPE_BUG;</div><div class='add'>+</div><div class='add'>+    return onig_is_in_code_range((UChar* )PropertyList[ctype], code);</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'>+static int</div><div class='add'>+get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,</div><div class='add'>+		     const OnigCodePoint* ranges[], OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (ctype &lt;= ONIGENC_MAX_STD_CTYPE) {</div><div class='add'>+    return ONIG_NO_SUPPORT_CONFIG;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    *sb_out = 0x80;</div><div class='add'>+</div><div class='add'>+    PROPERTY_LIST_INIT_CHECK;</div><div class='add'>+</div><div class='add'>+    ctype -= (ONIGENC_MAX_STD_CTYPE + 1);</div><div class='add'>+    if (ctype &gt;= (OnigCtype )PropertyListNum)</div><div class='add'>+      return ONIGERR_TYPE_BUG;</div><div class='add'>+</div><div class='add'>+    *ranges = PropertyList[ctype];</div><div class='add'>+    return 0;</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(euc_jp, EUC_JP) = {</div><div class='add'>+  mbc_enc_len,</div><div class='add'>+  "EUC-JP",   /* name */</div><div class='add'>+  3,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  mbc_to_code,</div><div class='add'>+  code_to_mbclen,</div><div class='add'>+  code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  get_ctype_code_range,</div><div class='add'>+  left_adjust_char_head,</div><div class='add'>+  is_allowed_reverse_match,</div><div class='add'>+  0</div><div class='add'>+};</div><div class='add'>+/*</div><div class='add'>+ * Name: EUC-JP</div><div class='add'>+ * MIBenum: 18</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://home.m05.itscom.net/numa/cde/sjis-euc/sjis-euc.html</div><div class='add'>+ * Link: http://home.m05.itscom.net/numa/uocjleE.pdf</div><div class='add'>+ */</div><div class='add'>+ENC_ALIAS("eucJP", "EUC-JP") /* UI-OSF Application Platform Profile for Japanese Environment Version 1.1 */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: eucJP-ms</div><div class='add'>+ * Link: http://home.m05.itscom.net/numa/cde/ucs-conv/ucs-conv.html</div><div class='add'>+ * Link: http://www2d.biglobe.ne.jp/~msyk/charcode/cp932/eucJP-ms.html</div><div class='add'>+ * Link: http://ja.wikipedia.org/wiki/EUC-JP</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("eucJP-ms", "EUC-JP") /* TOG/JVC CDE/Motif Technical WG */</div><div class='add'>+ENC_ALIAS("euc-jp-ms", "eucJP-ms")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: CP51932</div><div class='add'>+ * MIBenum: 2108</div><div class='add'>+ * Link: http://www.iana.org/assignments/charset-reg/CP51932</div><div class='add'>+ * Link: http://search.cpan.org/src/NARUSE/Encode-EUCJPMS-0.07/ucm/cp51932.ucm</div><div class='add'>+ * Link: http://legacy-encoding.sourceforge.jp/wiki/index.php?cp51932</div><div class='add'>+ * Link: http://msyk.at.webry.info/200511/article_2.html</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("CP51932", "EUC-JP")</div><div class='head'>diff --git a/enc/euc_kr.c b/enc/euc_kr.c<br/>new file mode 100644<br/>index 0000000000..af5f7828f0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/euc_kr.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/euc_kr.c</a></div><div class='hunk'>@@ -0,0 +1,192 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  euc_kr.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+static const int EncLen_EUCKR[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euckr_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s = trans[0][firstbyte];</div><div class='add'>+#define RETURN(n) \</div><div class='add'>+    return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \</div><div class='add'>+                         ONIGENC_CONSTRUCT_MBCLEN_INVALID()</div><div class='add'>+  if (s &lt; 0) RETURN(1);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCKR[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  RETURN(2);</div><div class='add'>+#undef RETURN</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+euckr_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_to_code(enc, p, end);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euckr_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_code_to_mbc(enc, code, buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euckr_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,</div><div class='add'>+                    UChar* lower, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_case_fold(enc, flag,</div><div class='add'>+                                   pp, end, lower);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+euckr_is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		       const UChar** pp, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euckr_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_is_code_ctype(enc, code, ctype);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define euckr_islead(c)    ((c) &lt; 0xa1 || (c) == 0xff)</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+euckr_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  /* Assumed in this encoding,</div><div class='add'>+     mb-trail bytes don't mix with single bytes.</div><div class='add'>+  */</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  while (!euckr_islead(*p) &amp;&amp; p &gt; start) p--;</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euckr_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+  if (c &lt;= 0x7e) return TRUE;</div><div class='add'>+  else           return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(euc_kr, EUC_KR) = {</div><div class='add'>+  euckr_mbc_enc_len,</div><div class='add'>+  "EUC-KR",   /* name */</div><div class='add'>+  2,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  euckr_mbc_to_code,</div><div class='add'>+  onigenc_mb2_code_to_mbclen,</div><div class='add'>+  euckr_code_to_mbc,</div><div class='add'>+  euckr_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  euckr_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  euckr_left_adjust_char_head,</div><div class='add'>+  euckr_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("eucKR", "EUC-KR")</div><div class='head'>diff --git a/enc/euc_tw.c b/enc/euc_tw.c<br/>new file mode 100644<br/>index 0000000000..5fed8a893d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/euc_tw.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/euc_tw.c</a></div><div class='hunk'>@@ -0,0 +1,225 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  euc_tw.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2008  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+static const int EncLen_EUCTW[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2, S3 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, 2, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  },</div><div class='add'>+  { /* S2   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* b */ 3, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S3   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euctw_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s = trans[0][firstbyte];</div><div class='add'>+#define RETURN(n) \</div><div class='add'>+    return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \</div><div class='add'>+                         ONIGENC_CONSTRUCT_MBCLEN_INVALID()</div><div class='add'>+  if (s &lt; 0) RETURN(1);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_EUCTW[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) RETURN(2);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-2);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) RETURN(3);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-3);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  RETURN(4);</div><div class='add'>+#undef RETURN</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+euctw_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_to_code(enc, p, end);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euctw_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb4_code_to_mbc(enc, code, buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euctw_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,</div><div class='add'>+                    UChar* lower, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_case_fold(enc, flag,</div><div class='add'>+                                   pp, end, lower);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euctw_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb4_is_code_ctype(enc, code, ctype);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#define euctw_islead(c)    ((UChar )((c) - 0xa1) &gt; 0xfe - 0xa1)</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+euctw_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  /* Assumed in this encoding,</div><div class='add'>+     mb-trail bytes don't mix with single bytes.</div><div class='add'>+  */</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  while (!euctw_islead(*p) &amp;&amp; p &gt; start) p--;</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+euctw_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+  if (c &lt;= 0x7e) return TRUE;</div><div class='add'>+  else           return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(euc_tw, EUC_TW) = {</div><div class='add'>+  euctw_mbc_enc_len,</div><div class='add'>+  "EUC-TW",   /* name */</div><div class='add'>+  4,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  euctw_mbc_to_code,</div><div class='add'>+  onigenc_mb4_code_to_mbclen,</div><div class='add'>+  euctw_code_to_mbc,</div><div class='add'>+  euctw_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  euctw_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  euctw_left_adjust_char_head,</div><div class='add'>+  euctw_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("eucTW", "EUC-TW")</div><div class='head'>diff --git a/enc/gb18030.c b/enc/gb18030.c<br/>new file mode 100644<br/>index 0000000000..36e60af6b5<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/gb18030.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/gb18030.c</a></div><div class='hunk'>@@ -0,0 +1,601 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  gb18030.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2005-2007  KUBO Takehiro &lt;kubo AT jiubao DOT org&gt;</div><div class='add'>+ *                          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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#if 1</div><div class='add'>+#define DEBUG_GB18030(arg)</div><div class='add'>+#else</div><div class='add'>+#define DEBUG_GB18030(arg) printf arg</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+enum {</div><div class='add'>+  C1, /* one-byte char */</div><div class='add'>+  C2, /* one-byte or second of two-byte char */</div><div class='add'>+  C4, /* one-byte or second or fourth of four-byte char */</div><div class='add'>+  CM  /* first of two- or four-byte char or second of two-byte char */</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char GB18030_MAP[] = {</div><div class='add'>+  C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1,</div><div class='add'>+  C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1,</div><div class='add'>+  C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1, C1,</div><div class='add'>+  C4, C4, C4, C4, C4, C4, C4, C4, C4, C4, C1, C1, C1, C1, C1, C1,</div><div class='add'>+  C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2,</div><div class='add'>+  C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2,</div><div class='add'>+  C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2,</div><div class='add'>+  C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C2, C1,</div><div class='add'>+  C2, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM,</div><div class='add'>+  CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, CM, C1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1, S2, S3 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F,</div><div class='add'>+    /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  },</div><div class='add'>+  { /* S2   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* 9 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* a */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* b */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* c */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* d */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* e */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,</div><div class='add'>+    /* f */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, F</div><div class='add'>+  },</div><div class='add'>+  { /* S3   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 5 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 6 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 7 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 8 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 9 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* a */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* b */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* c */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* d */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* e */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* f */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gb18030_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s = trans[0][firstbyte];</div><div class='add'>+#define RETURN(n) \</div><div class='add'>+    return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \</div><div class='add'>+                         ONIGENC_CONSTRUCT_MBCLEN_INVALID()</div><div class='add'>+  if (s &lt; 0) RETURN(1);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(2-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) RETURN(2);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-2);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  if (s &lt; 0) RETURN(3);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(4-3);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  RETURN(4);</div><div class='add'>+#undef RETURN</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+gb18030_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int c, i, len;</div><div class='add'>+  OnigCodePoint n;</div><div class='add'>+</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  n = (OnigCodePoint )(*p++);</div><div class='add'>+  if (len == 1) return n;</div><div class='add'>+</div><div class='add'>+  for (i = 1; i &lt; len; i++) {</div><div class='add'>+    if (p &gt;= end) break;</div><div class='add'>+    c = *p++;</div><div class='add'>+    n &lt;&lt;= 8;  n += c;</div><div class='add'>+  }</div><div class='add'>+  return n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gb18030_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb4_code_to_mbc(enc, code, buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gb18030_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,</div><div class='add'>+                      UChar* lower, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_case_fold(enc, flag,</div><div class='add'>+                                   pp, end, lower);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+gb18030_is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+			 const UChar** pp, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gb18030_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb4_is_code_ctype(enc, code, ctype);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+enum state {</div><div class='add'>+  S_START,</div><div class='add'>+  S_one_C2,</div><div class='add'>+  S_one_C4,</div><div class='add'>+  S_one_CM,</div><div class='add'>+</div><div class='add'>+  S_odd_CM_one_CX,</div><div class='add'>+  S_even_CM_one_CX,</div><div class='add'>+</div><div class='add'>+  /* CMC4 : pair of "CM C4" */</div><div class='add'>+  S_one_CMC4,</div><div class='add'>+  S_odd_CMC4,</div><div class='add'>+  S_one_C4_odd_CMC4,</div><div class='add'>+  S_even_CMC4,</div><div class='add'>+  S_one_C4_even_CMC4,</div><div class='add'>+</div><div class='add'>+  S_odd_CM_odd_CMC4,</div><div class='add'>+  S_even_CM_odd_CMC4,</div><div class='add'>+</div><div class='add'>+  S_odd_CM_even_CMC4,</div><div class='add'>+  S_even_CM_even_CMC4,</div><div class='add'>+</div><div class='add'>+  /* C4CM : pair of "C4 CM" */</div><div class='add'>+  S_odd_C4CM,</div><div class='add'>+  S_one_CM_odd_C4CM,</div><div class='add'>+  S_even_C4CM,</div><div class='add'>+  S_one_CM_even_C4CM,</div><div class='add'>+</div><div class='add'>+  S_even_CM_odd_C4CM,</div><div class='add'>+  S_odd_CM_odd_C4CM,</div><div class='add'>+  S_even_CM_even_C4CM,</div><div class='add'>+  S_odd_CM_even_C4CM</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+gb18030_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+  enum state state = S_START;</div><div class='add'>+</div><div class='add'>+  DEBUG_GB18030(("----------------\n"));</div><div class='add'>+  for (p = s; p &gt;= start; p--) {</div><div class='add'>+    DEBUG_GB18030(("state %d --(%02x)--&gt;\n", state, *p));</div><div class='add'>+    switch (state) {</div><div class='add'>+    case S_START:</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+	return (UChar *)s;</div><div class='add'>+      case C2:</div><div class='add'>+	state = S_one_C2; /* C2 */</div><div class='add'>+	break;</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_one_C4; /* C4 */</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_one_CM; /* CM */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_C2: /* C2 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)s;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_one_CX; /* CM C2 */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_C4: /* C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)s;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_one_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_CM: /* CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+	return (UChar *)s;</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_odd_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_one_CX; /* CM CM */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_odd_CM_one_CX: /* CM C2 */ /* CM CM */ /* CM CM CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 1);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_one_CX;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_even_CM_one_CX: /* CM CM C2 */ /* CM CM CM */ /* CM CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)s;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_one_CX;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_one_CMC4: /* CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+	return (UChar *)(s - 1);</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_one_C4_odd_CMC4; /* C4 CM C4 */</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_one_CX; /* CM CM C4 */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_odd_CMC4: /* CM C4 CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+	return (UChar *)(s - 1);</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_one_C4_odd_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_odd_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_C4_odd_CMC4: /* C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 1);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CMC4; /* CM C4 CM C4 */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_even_CMC4: /* CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+	return (UChar *)(s - 3);</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_one_C4_even_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_even_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_C4_even_CMC4: /* C4 CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 3);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_odd_CM_odd_CMC4: /* CM CM C4 CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 3);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_odd_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_even_CM_odd_CMC4: /* CM CM CM C4 CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 1);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_odd_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_odd_CM_even_CMC4: /* CM CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 1);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_even_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_even_CM_even_CMC4: /* CM CM CM C4 CM C4 */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 3);</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_even_CMC4;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_odd_C4CM: /* C4 CM */  /* C4 CM C4 CM C4 CM*/</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)s;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_one_CM_odd_C4CM; /* CM C4 CM */</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_CM_odd_C4CM: /* CM C4 CM */ /* CM C4 CM C4 CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+	return (UChar *)(s - 2); /* |CM C4 CM */</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_even_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_odd_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_even_C4CM: /* C4 CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 2);  /* C4|CM C4 CM */</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_one_CM_even_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_one_CM_even_C4CM: /* CM C4 CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+	return (UChar *)(s - 0);  /*|CM C4 CM C4|CM */</div><div class='add'>+      case C4:</div><div class='add'>+	state = S_odd_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_even_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_even_CM_odd_C4CM: /* CM CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 0); /* |CM CM|C4|CM */</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_odd_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_odd_CM_odd_C4CM: /* CM CM CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 2); /* |CM CM|CM C4 CM */</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_odd_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+</div><div class='add'>+    case S_even_CM_even_C4CM: /* CM CM C4 CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 2); /* |CM CM|C4|CM C4 CM */</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_odd_CM_even_C4CM;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+      break;</div><div class='add'>+    case S_odd_CM_even_C4CM: /* CM CM CM C4 CM C4 CM */</div><div class='add'>+      switch (GB18030_MAP[*p]) {</div><div class='add'>+      case C1:</div><div class='add'>+      case C2:</div><div class='add'>+      case C4:</div><div class='add'>+	return (UChar *)(s - 0);  /* |CM CM|CM C4 CM C4|CM */</div><div class='add'>+      case CM:</div><div class='add'>+	state = S_even_CM_even_C4CM;</div><div class='add'>+	break;</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'>+  DEBUG_GB18030(("state %d\n", state));</div><div class='add'>+  switch (state) {</div><div class='add'>+  case S_START:             return (UChar *)(s - 0);</div><div class='add'>+  case S_one_C2:            return (UChar *)(s - 0);</div><div class='add'>+  case S_one_C4:            return (UChar *)(s - 0);</div><div class='add'>+  case S_one_CM:            return (UChar *)(s - 0);</div><div class='add'>+</div><div class='add'>+  case S_odd_CM_one_CX:     return (UChar *)(s - 1);</div><div class='add'>+  case S_even_CM_one_CX:    return (UChar *)(s - 0);</div><div class='add'>+</div><div class='add'>+  case S_one_CMC4:          return (UChar *)(s - 1);</div><div class='add'>+  case S_odd_CMC4:          return (UChar *)(s - 1);</div><div class='add'>+  case S_one_C4_odd_CMC4:   return (UChar *)(s - 1);</div><div class='add'>+  case S_even_CMC4:         return (UChar *)(s - 3);</div><div class='add'>+  case S_one_C4_even_CMC4:  return (UChar *)(s - 3);</div><div class='add'>+</div><div class='add'>+  case S_odd_CM_odd_CMC4:   return (UChar *)(s - 3);</div><div class='add'>+  case S_even_CM_odd_CMC4:  return (UChar *)(s - 1);</div><div class='add'>+</div><div class='add'>+  case S_odd_CM_even_CMC4:  return (UChar *)(s - 1);</div><div class='add'>+  case S_even_CM_even_CMC4: return (UChar *)(s - 3);</div><div class='add'>+</div><div class='add'>+  case S_odd_C4CM:          return (UChar *)(s - 0);</div><div class='add'>+  case S_one_CM_odd_C4CM:   return (UChar *)(s - 2);</div><div class='add'>+  case S_even_C4CM:         return (UChar *)(s - 2);</div><div class='add'>+  case S_one_CM_even_C4CM:  return (UChar *)(s - 0);</div><div class='add'>+</div><div class='add'>+  case S_even_CM_odd_C4CM:  return (UChar *)(s - 0);</div><div class='add'>+  case S_odd_CM_odd_C4CM:   return (UChar *)(s - 2);</div><div class='add'>+  case S_even_CM_even_C4CM: return (UChar *)(s - 2);</div><div class='add'>+  case S_odd_CM_even_C4CM:  return (UChar *)(s - 0);</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (UChar* )s;  /* never come here. (escape warning) */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gb18030_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return GB18030_MAP[*s] == C1 ? TRUE : FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: GB18030</div><div class='add'>+ * MIBenum: 114</div><div class='add'>+ * Link: http://www.iana.org/assignments/charset-reg/GB18030</div><div class='add'>+ */</div><div class='add'>+OnigEncodingDefine(gb18030, GB18030) = {</div><div class='add'>+  gb18030_mbc_enc_len,</div><div class='add'>+  "GB18030",   /* name */</div><div class='add'>+  4,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  gb18030_mbc_to_code,</div><div class='add'>+  onigenc_mb4_code_to_mbclen,</div><div class='add'>+  gb18030_code_to_mbc,</div><div class='add'>+  gb18030_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  gb18030_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  gb18030_left_adjust_char_head,</div><div class='add'>+  gb18030_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+</div><div class='head'>diff --git a/enc/gb2312.c b/enc/gb2312.c<br/>new file mode 100644<br/>index 0000000000..6fc15735fc<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/gb2312.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/gb2312.c</a></div><div class='hunk'>@@ -0,0 +1,13 @@</div><div class='add'>+#include &lt;ruby/ruby.h&gt;</div><div class='add'>+#include &lt;ruby/encoding.h&gt;</div><div class='add'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+void</div><div class='add'>+Init_gb2312(void)</div><div class='add'>+{</div><div class='add'>+    rb_enc_register("GB2312", rb_enc_find("EUC-KR"));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+ENC_ALIAS("EUC-CN", "GB2312")</div><div class='add'>+ENC_ALIAS("eucCN", "GB2312")</div><div class='add'>+ENC_REPLICATE("GB12345", "GB2312")</div><div class='head'>diff --git a/enc/gbk.c b/enc/gbk.c<br/>new file mode 100644<br/>index 0000000000..ace7f378af<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/gbk.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/gbk.c</a></div><div class='hunk'>@@ -0,0 +1,222 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  gbk.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+static const int EncLen_GBK[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char GBK_CAN_BE_TRAIL_TABLE[256] = {</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define GBK_ISMB_FIRST(byte)  (EncLen_GBK[byte] &gt; 1)</div><div class='add'>+#define GBK_ISMB_TRAIL(byte)  GBK_CAN_BE_TRAIL_TABLE[(byte)]</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ A, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* b */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* c */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* d */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F,</div><div class='add'>+    /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gbk_mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s = trans[0][firstbyte];</div><div class='add'>+#define RETURN(n) \</div><div class='add'>+    return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(n) : \</div><div class='add'>+                         ONIGENC_CONSTRUCT_MBCLEN_INVALID()</div><div class='add'>+  if (s &lt; 0) RETURN(1);</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_GBK[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  RETURN(2);</div><div class='add'>+#undef RETURN</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+gbk_mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_to_code(enc, p, end);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gbk_code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_code_to_mbc(enc, code, buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gbk_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,</div><div class='add'>+                    UChar* lower, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_mbc_case_fold(enc, flag,</div><div class='add'>+                                   pp, end, lower);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+gbk_is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		       const UChar** pp, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gbk_is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mb2_is_code_ctype(enc, code, ctype);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+gbk_left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  if (GBK_ISMB_TRAIL(*p)) {</div><div class='add'>+    while (p &gt; start) {</div><div class='add'>+      if (! GBK_ISMB_FIRST(*--p)) {</div><div class='add'>+	p++;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+gbk_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+  return (GBK_ISMB_TRAIL(c) ? FALSE : TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(gbk, GBK) = {</div><div class='add'>+  gbk_mbc_enc_len,</div><div class='add'>+  "GBK",      /* name */</div><div class='add'>+  2,          /* max enc length */</div><div class='add'>+  1,          /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  gbk_mbc_to_code,</div><div class='add'>+  onigenc_mb2_code_to_mbclen,</div><div class='add'>+  gbk_code_to_mbc,</div><div class='add'>+  gbk_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  gbk_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  gbk_left_adjust_char_head,</div><div class='add'>+  gbk_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+/*</div><div class='add'>+ * Name: GBK</div><div class='add'>+ * MIBenum: 113</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.iana.org/assignments/charset-reg/GBK</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/dbcs/936.mspx</div><div class='add'>+ */</div><div class='add'>+ENC_ALIAS("CP936", "GBK")</div><div class='head'>diff --git a/enc/iso_2022_jp.h b/enc/iso_2022_jp.h<br/>new file mode 100644<br/>index 0000000000..8cfad0be06<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_2022_jp.h?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_2022_jp.h</a></div><div class='hunk'>@@ -0,0 +1,42 @@</div><div class='add'>+#include "regenc.h"</div><div class='add'>+/* dummy for unsupported, statefull encoding */</div><div class='add'>+ENC_DUMMY("ISO-2022-JP");</div><div class='add'>+ENC_ALIAS("ISO2022-JP", "ISO-2022-JP");</div><div class='add'>+ENC_REPLICATE("ISO-2022-JP-2", "ISO-2022-JP");</div><div class='add'>+ENC_ALIAS("ISO2022-JP2", "ISO-2022-JP-2");</div><div class='add'>+</div><div class='add'>+/* Windows Codepage 50220</div><div class='add'>+ * a ISO-2022-JP variant.</div><div class='add'>+ * This includes</div><div class='add'>+ * * US-ASCII</div><div class='add'>+ * * JIS X 0201 Latin</div><div class='add'>+ * * JIS X 0201 Katakana</div><div class='add'>+ * * JIS X 0208</div><div class='add'>+ * * NEC special characters</div><div class='add'>+ * * NEC selected IBM extended characters</div><div class='add'>+ * and this implementation doesn't include</div><div class='add'>+ * * User Defined Characters</div><div class='add'>+ *</div><div class='add'>+ * So this CP50220 has the same characters of CP51932.</div><div class='add'>+ *</div><div class='add'>+ * See http://legacy-encoding.sourceforge.jp/wiki/index.php?cp50220</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("CP50220", "ISO-2022-JP");</div><div class='add'>+</div><div class='add'>+/* Windows Codepage 50221</div><div class='add'>+ * a ISO-2022-JP variant.</div><div class='add'>+ * This includes</div><div class='add'>+ * * US-ASCII</div><div class='add'>+ * * JIS X 0201 Latin</div><div class='add'>+ * * JIS X 0201 Katakana</div><div class='add'>+ * * JIS X 0208</div><div class='add'>+ * * NEC special characters</div><div class='add'>+ * * NEC selected IBM extended characters</div><div class='add'>+ * and this implementation doesn't include</div><div class='add'>+ * * User Defined Characters</div><div class='add'>+ *</div><div class='add'>+ * So this CP50221 has the same characters of CP51932.</div><div class='add'>+ *</div><div class='add'>+ * See http://legacy-encoding.sourceforge.jp/wiki/index.php?cp50221</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("CP50221", "ISO-2022-JP");</div><div class='head'>diff --git a/enc/iso_8859_1.c b/enc/iso_8859_1.c<br/>new file mode 100644<br/>index 0000000000..a10a7679b8<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_1.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_1.c</a></div><div class='hunk'>@@ -0,0 +1,287 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_1.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))</div><div class='add'>+</div><div class='add'>+#define ENC_IS_ISO_8859_1_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_1_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_1_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,</div><div class='add'>+  0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+  { 0xc0, 0xe0 },</div><div class='add'>+  { 0xc1, 0xe1 },</div><div class='add'>+  { 0xc2, 0xe2 },</div><div class='add'>+  { 0xc3, 0xe3 },</div><div class='add'>+  { 0xc4, 0xe4 },</div><div class='add'>+  { 0xc5, 0xe5 },</div><div class='add'>+  { 0xc6, 0xe6 },</div><div class='add'>+  { 0xc7, 0xe7 },</div><div class='add'>+  { 0xc8, 0xe8 },</div><div class='add'>+  { 0xc9, 0xe9 },</div><div class='add'>+  { 0xca, 0xea },</div><div class='add'>+  { 0xcb, 0xeb },</div><div class='add'>+  { 0xcc, 0xec },</div><div class='add'>+  { 0xcd, 0xed },</div><div class='add'>+  { 0xce, 0xee },</div><div class='add'>+  { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+  { 0xd0, 0xf0 },</div><div class='add'>+  { 0xd1, 0xf1 },</div><div class='add'>+  { 0xd2, 0xf2 },</div><div class='add'>+  { 0xd3, 0xf3 },</div><div class='add'>+  { 0xd4, 0xf4 },</div><div class='add'>+  { 0xd5, 0xf5 },</div><div class='add'>+  { 0xd6, 0xf6 },</div><div class='add'>+  { 0xd8, 0xf8 },</div><div class='add'>+  { 0xd9, 0xf9 },</div><div class='add'>+  { 0xda, 0xfa },</div><div class='add'>+  { 0xdb, 0xfb },</div><div class='add'>+  { 0xdc, 0xfc },</div><div class='add'>+  { 0xdd, 0xfd },</div><div class='add'>+  { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+		    OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+		    OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+            numberof(CaseFoldMap), CaseFoldMap, 1,</div><div class='add'>+            flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+			   const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+			   OnigCaseFoldCodeItem items[],</div><div class='add'>+			   OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (0x41 &lt;= *p &amp;&amp; *p &lt;= 0x5a) {</div><div class='add'>+    items[0].byte_len = 1;</div><div class='add'>+    items[0].code_len = 1;</div><div class='add'>+    items[0].code[0] = (OnigCodePoint )(*p + 0x20);</div><div class='add'>+    if (*p == 0x53 &amp;&amp; end &gt; p + 1</div><div class='add'>+	&amp;&amp; (*(p+1) == 0x53 || *(p+1) == 0x73)) { /* SS */</div><div class='add'>+      items[1].byte_len = 2;</div><div class='add'>+      items[1].code_len = 1;</div><div class='add'>+      items[1].code[0] = (OnigCodePoint )0xdf;</div><div class='add'>+      return 2;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+      return 1;</div><div class='add'>+  }</div><div class='add'>+  else if (0x61 &lt;= *p &amp;&amp; *p &lt;= 0x7a) {</div><div class='add'>+    items[0].byte_len = 1;</div><div class='add'>+    items[0].code_len = 1;</div><div class='add'>+    items[0].code[0] = (OnigCodePoint )(*p - 0x20);</div><div class='add'>+    if (*p == 0x73 &amp;&amp; end &gt; p + 1</div><div class='add'>+	&amp;&amp; (*(p+1) == 0x73 || *(p+1) == 0x53)) { /* ss */</div><div class='add'>+      items[1].byte_len = 2;</div><div class='add'>+      items[1].code_len = 1;</div><div class='add'>+      items[1].code[0] = (OnigCodePoint )0xdf;</div><div class='add'>+      return 2;</div><div class='add'>+    }</div><div class='add'>+    else</div><div class='add'>+      return 1;</div><div class='add'>+  }</div><div class='add'>+  else if (0xc0 &lt;= *p &amp;&amp; *p &lt;= 0xcf) {</div><div class='add'>+    items[0].byte_len = 1;</div><div class='add'>+    items[0].code_len = 1;</div><div class='add'>+    items[0].code[0] = (OnigCodePoint )(*p + 0x20);</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else if (0xd0 &lt;= *p &amp;&amp; *p &lt;= 0xdf) {</div><div class='add'>+    if (*p == 0xdf) {</div><div class='add'>+      items[0].byte_len = 1;</div><div class='add'>+      items[0].code_len = 2;</div><div class='add'>+      items[0].code[0] = (OnigCodePoint )'s';</div><div class='add'>+      items[0].code[1] = (OnigCodePoint )'s';</div><div class='add'>+</div><div class='add'>+      items[1].byte_len = 1;</div><div class='add'>+      items[1].code_len = 2;</div><div class='add'>+      items[1].code[0] = (OnigCodePoint )'S';</div><div class='add'>+      items[1].code[1] = (OnigCodePoint )'S';</div><div class='add'>+</div><div class='add'>+      items[2].byte_len = 1;</div><div class='add'>+      items[2].code_len = 2;</div><div class='add'>+      items[2].code[0] = (OnigCodePoint )'s';</div><div class='add'>+      items[2].code[1] = (OnigCodePoint )'S';</div><div class='add'>+</div><div class='add'>+      items[3].byte_len = 1;</div><div class='add'>+      items[3].code_len = 2;</div><div class='add'>+      items[3].code[0] = (OnigCodePoint )'S';</div><div class='add'>+      items[3].code[1] = (OnigCodePoint )'s';</div><div class='add'>+</div><div class='add'>+      return 4;</div><div class='add'>+    }</div><div class='add'>+    else if (*p != 0xd7) {</div><div class='add'>+      items[0].byte_len = 1;</div><div class='add'>+      items[0].code_len = 1;</div><div class='add'>+      items[0].code[0] = (OnigCodePoint )(*p + 0x20);</div><div class='add'>+      return 1;</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  else if (0xe0 &lt;= *p &amp;&amp; *p &lt;= 0xef) {</div><div class='add'>+    items[0].byte_len = 1;</div><div class='add'>+    items[0].code_len = 1;</div><div class='add'>+    items[0].code[0] = (OnigCodePoint )(*p - 0x20);</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else if (0xf0 &lt;= *p &amp;&amp; *p &lt;= 0xfe) {</div><div class='add'>+    if (*p != 0xf7) {</div><div class='add'>+      items[0].byte_len = 1;</div><div class='add'>+      items[0].code_len = 1;</div><div class='add'>+      items[0].code[0] = (OnigCodePoint )(*p - 0x20);</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'>+mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+	      UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ONIGENC_ISO_8859_1_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		 const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_1_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    /* 0xdf, 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */</div><div class='add'>+    if (*p &gt;= 0xaa &amp;&amp; *p &lt;= 0xba)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_1_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_1, ISO_8859_1) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-1",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-1", "ISO-8859-1")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1252</div><div class='add'>+ * MIBenum: 2252</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1252</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1252", "ISO-8859-1")</div><div class='add'>+ENC_ALIAS("CP1252", "Windows-1252")</div><div class='head'>diff --git a/enc/iso_8859_10.c b/enc/iso_8859_10.c<br/>new file mode 100644<br/>index 0000000000..1643278dfd<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_10.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_10.c</a></div><div class='hunk'>@@ -0,0 +1,244 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_10.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_10_TO_LOWER_CASE(c) EncISO_8859_10_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_10_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_10_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_10_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\261', '\262', '\263', '\264', '\265', '\266', '\247',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\255', '\276', '\277',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_10_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2,</div><div class='add'>+  0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0, 0x30e2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			  const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+			  UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_10_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_10_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_10_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xb1 },</div><div class='add'>+ { 0xa2, 0xb2 },</div><div class='add'>+ { 0xa3, 0xb3 },</div><div class='add'>+ { 0xa4, 0xb4 },</div><div class='add'>+ { 0xa5, 0xb5 },</div><div class='add'>+ { 0xa6, 0xb6 },</div><div class='add'>+ { 0xa8, 0xb8 },</div><div class='add'>+ { 0xa9, 0xb9 },</div><div class='add'>+ { 0xaa, 0xba },</div><div class='add'>+ { 0xab, 0xbb },</div><div class='add'>+ { 0xac, 0xbc },</div><div class='add'>+ { 0xae, 0xbe },</div><div class='add'>+ { 0xaf, 0xbf },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd7, 0xf7 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			       OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+			       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+				       const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+				       OnigCaseFoldCodeItem items[],</div><div class='add'>+				       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_10, ISO_8859_10) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-10", /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-10", "ISO-8859-10")</div><div class='head'>diff --git a/enc/iso_8859_11.c b/enc/iso_8859_11.c<br/>new file mode 100644<br/>index 0000000000..257d9d8919<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_11.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_11.c</a></div><div class='hunk'>@@ -0,0 +1,111 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_11.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_IS_ISO_8859_11_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_11_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_11_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_11_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_11, ISO_8859_11) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-11",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  onigenc_ascii_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-11", "ISO-8859-11")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: TIS-620</div><div class='add'>+ * MIBenum: 2259</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Thai_Industrial_Standard_620-2533</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("TIS-620", "ISO-8859-11")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: Windows-874</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/874.mspx</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-874", "ISO-8859-11")</div><div class='add'>+ENC_ALIAS("CP874", "Windows-874")</div><div class='head'>diff --git a/enc/iso_8859_13.c b/enc/iso_8859_13.c<br/>new file mode 100644<br/>index 0000000000..f29cb2e281<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_13.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_13.c</a></div><div class='hunk'>@@ -0,0 +1,243 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_13.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_13_TO_LOWER_CASE(c) EncISO_8859_13_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_13_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_13_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_13_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',</div><div class='add'>+  '\270', '\251', '\272', '\253', '\254', '\255', '\256', '\277',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_13_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x34a2, 0x00a0, 0x34a2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x34a2,</div><div class='add'>+  0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x00a0, 0x01a0,</div><div class='add'>+  0x30e2, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			  const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+			  UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_13_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_13_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    /* 0xdf, 0xb5 are lower case letter, but can't convert. */</div><div class='add'>+    if (*p == 0xb5)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_13_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+				OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+				OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+				       const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+				       OnigCaseFoldCodeItem items[],</div><div class='add'>+				       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_13, ISO_8859_13) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-13",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-13", "ISO-8859-13")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1257</div><div class='add'>+ * MIBenum: 2257</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1257.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1257</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1257", "ISO-8859-13")</div><div class='add'>+ENC_ALIAS("CP1257", "Windows-1257")</div><div class='head'>diff --git a/enc/iso_8859_14.c b/enc/iso_8859_14.c<br/>new file mode 100644<br/>index 0000000000..be83f93f80<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_14.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_14.c</a></div><div class='hunk'>@@ -0,0 +1,246 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_14.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_14_TO_LOWER_CASE(c) EncISO_8859_14_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_14_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_14_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_14_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\242', '\242', '\243', '\245', '\245', '\253', '\247',</div><div class='add'>+  '\270', '\251', '\272', '\253', '\274', '\255', '\256', '\377',</div><div class='add'>+  '\261', '\261', '\263', '\263', '\265', '\265', '\266', '\271',</div><div class='add'>+  '\270', '\271', '\272', '\277', '\274', '\276', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_14_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x30e2, 0x00a0, 0x34a2, 0x30e2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x00a0, 0x34a2, 0x30e2, 0x34a2, 0x01a0, 0x00a0, 0x34a2,</div><div class='add'>+  0x34a2, 0x30e2, 0x34a2, 0x30e2, 0x34a2, 0x30e2, 0x00a0, 0x34a2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x34a2, 0x30e2, 0x34a2, 0x30e2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			  const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+			  UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_14_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1; /* return byte length of converted char to lower */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		 const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_14_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_14_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xa2 },</div><div class='add'>+ { 0xa4, 0xa5 },</div><div class='add'>+ { 0xa6, 0xab },</div><div class='add'>+ { 0xa8, 0xb8 },</div><div class='add'>+ { 0xaa, 0xba },</div><div class='add'>+ { 0xac, 0xbc },</div><div class='add'>+ { 0xaf, 0xff },</div><div class='add'>+</div><div class='add'>+ { 0xb0, 0xb1 },</div><div class='add'>+ { 0xb2, 0xb3 },</div><div class='add'>+ { 0xb4, 0xb5 },</div><div class='add'>+ { 0xb7, 0xb9 },</div><div class='add'>+ { 0xbb, 0xbf },</div><div class='add'>+ { 0xbd, 0xbe },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd7, 0xf7 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+				OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+				OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+				       const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+				       OnigCaseFoldCodeItem items[],</div><div class='add'>+				       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_14, ISO_8859_14) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-14",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-14", "ISO-8859-14")</div><div class='head'>diff --git a/enc/iso_8859_15.c b/enc/iso_8859_15.c<br/>new file mode 100644<br/>index 0000000000..2ec41b66c0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_15.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_15.c</a></div><div class='hunk'>@@ -0,0 +1,240 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_15.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_15_TO_LOWER_CASE(c) EncISO_8859_15_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_15_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_15_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_15_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\241', '\242', '\243', '\244', '\245', '\250', '\247',</div><div class='add'>+  '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\270', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\275', '\275', '\377', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_15_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x00a0,</div><div class='add'>+  0x30e2, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x34a2, 0x30e2, 0x00a0, 0x01a0,</div><div class='add'>+  0x30e2, 0x10a0, 0x30e2, 0x01a0, 0x34a2, 0x30e2, 0x34a2, 0x01a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			  const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+			  UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_15_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1; /* return byte length of converted char to lower */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		 const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_15_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    /* 0xdf etc.. are lower case letter, but can't convert. */</div><div class='add'>+    if (*p == 0xaa || *p == 0xb5 || *p == 0xba)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_15_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa6, 0xa8 },</div><div class='add'>+</div><div class='add'>+ { 0xb4, 0xb8 },</div><div class='add'>+ { 0xbc, 0xbd },</div><div class='add'>+ { 0xbe, 0xff },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+				OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+				OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+				       const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+				       OnigCaseFoldCodeItem items[],</div><div class='add'>+				       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_15, ISO_8859_15) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-15",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-15", "ISO-8859-15")</div><div class='head'>diff --git a/enc/iso_8859_16.c b/enc/iso_8859_16.c<br/>new file mode 100644<br/>index 0000000000..3ddc1d91c6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_16.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_16.c</a></div><div class='hunk'>@@ -0,0 +1,242 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_16.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_16_TO_LOWER_CASE(c) EncISO_8859_16_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_16_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_16_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_16_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\242', '\242', '\263', '\245', '\245', '\250', '\247',</div><div class='add'>+  '\250', '\251', '\272', '\253', '\256', '\255', '\256', '\277',</div><div class='add'>+  '\260', '\261', '\271', '\263', '\270', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\275', '\275', '\377', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_16_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x30e2, 0x34a2, 0x00a0, 0x01a0, 0x34a2, 0x00a0,</div><div class='add'>+  0x30e2, 0x00a0, 0x34a2, 0x01a0, 0x34a2, 0x01a0, 0x30e2, 0x34a2,</div><div class='add'>+  0x00a0, 0x00a0, 0x34a2, 0x30e2, 0x34a2, 0x01a0, 0x00a0, 0x01a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x01a0, 0x34a2, 0x30e2, 0x34a2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			  const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+			  OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_16_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1; /* return byte length of converted char to lower */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_16_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_16_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xa2 },</div><div class='add'>+ { 0xa3, 0xb3 },</div><div class='add'>+ { 0xa6, 0xa8 },</div><div class='add'>+ { 0xaa, 0xba },</div><div class='add'>+ { 0xac, 0xae },</div><div class='add'>+ { 0xaf, 0xbf },</div><div class='add'>+</div><div class='add'>+ { 0xb2, 0xb9 },</div><div class='add'>+ { 0xb4, 0xb8 },</div><div class='add'>+ { 0xbc, 0xbd },</div><div class='add'>+ { 0xbe, 0xff },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd7, 0xf7 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+				OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+				OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+				       const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+				       OnigCaseFoldCodeItem items[],</div><div class='add'>+				       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_16, ISO_8859_16) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-16",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-16", "ISO-8859-16")</div><div class='head'>diff --git a/enc/iso_8859_2.c b/enc/iso_8859_2.c<br/>new file mode 100644<br/>index 0000000000..6c0d2d7dc1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_2.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_2.c</a></div><div class='hunk'>@@ -0,0 +1,252 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_2.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_2_TO_LOWER_CASE(c) EncISO_8859_2_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_2_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_2_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_2_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\261', '\242', '\263', '\244', '\265', '\266', '\247',</div><div class='add'>+  '\250', '\271', '\272', '\273', '\274', '\255', '\276', '\277',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_2_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x00a0, 0x34a2, 0x00a0, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x00a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2,</div><div class='add'>+  0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, 0x30e2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+	      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_2_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1; /* return byte length of converted char to lower */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_2_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xb1 },</div><div class='add'>+ { 0xa3, 0xb3 },</div><div class='add'>+ { 0xa5, 0xb5 },</div><div class='add'>+ { 0xa6, 0xb6 },</div><div class='add'>+ { 0xa9, 0xb9 },</div><div class='add'>+ { 0xaa, 0xba },</div><div class='add'>+ { 0xab, 0xbb },</div><div class='add'>+ { 0xac, 0xbc },</div><div class='add'>+ { 0xae, 0xbe },</div><div class='add'>+ { 0xaf, 0xbf },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+		    OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+		    OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+            numberof(CaseFoldMap), CaseFoldMap, 1,</div><div class='add'>+            flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+			   const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+			   OnigCaseFoldCodeItem items[],</div><div class='add'>+			   OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     numberof(CaseFoldMap), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_2_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_2, ISO_8859_2) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-2",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-2", "ISO-8859-2")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1250</div><div class='add'>+ * MIBenum: 2250</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1250.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1250</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1250", "ISO-8859-2")</div><div class='add'>+ENC_ALIAS("CP1250", "Windows-1250")</div><div class='head'>diff --git a/enc/iso_8859_3.c b/enc/iso_8859_3.c<br/>new file mode 100644<br/>index 0000000000..81c0c742b6<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_3.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_3.c</a></div><div class='hunk'>@@ -0,0 +1,240 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_3.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_3_TO_LOWER_CASE(c) EncISO_8859_3_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_3_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_3_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_3_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\261', '\242', '\243', '\244', '\245', '\266', '\247',</div><div class='add'>+  '\250', '\271', '\272', '\273', '\274', '\255', '\256', '\277',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\303', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\320', '\361', '\362', '\363', '\364', '\365', '\366', '\327',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_3_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x00a0, 0x00a0, 0x00a0, 0x0000, 0x34a2, 0x00a0,</div><div class='add'>+  0x00a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x0000, 0x34a2,</div><div class='add'>+  0x00a0, 0x30e2, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x30e2, 0x01a0,</div><div class='add'>+  0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x11a0, 0x0000, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x0000, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x0000, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+	      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_3_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_3_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */</div><div class='add'>+    if (*p == 0xb5)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_3_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xb1 },</div><div class='add'>+ { 0xa6, 0xb6 },</div><div class='add'>+ { 0xa9, 0xb9 },</div><div class='add'>+ { 0xaa, 0xba },</div><div class='add'>+ { 0xab, 0xbb },</div><div class='add'>+ { 0xac, 0xbc },</div><div class='add'>+ { 0xaf, 0xbf },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+		    OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+		    OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+			   const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+			   OnigCaseFoldCodeItem items[],</div><div class='add'>+			   OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_3, ISO_8859_3) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-3",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-3", "ISO-8859-3")</div><div class='head'>diff --git a/enc/iso_8859_4.c b/enc/iso_8859_4.c<br/>new file mode 100644<br/>index 0000000000..ec71c4bcbf<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_4.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_4.c</a></div><div class='hunk'>@@ -0,0 +1,242 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_4.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_4_TO_LOWER_CASE(c) EncISO_8859_4_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_4_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_4_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_4_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\261', '\242', '\263', '\244', '\265', '\266', '\247',</div><div class='add'>+  '\250', '\271', '\272', '\273', '\274', '\255', '\276', '\257',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\277', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_4_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x30e2, 0x34a2, 0x00a0, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x00a0, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x00a0,</div><div class='add'>+  0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x00a0, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x34a2, 0x30e2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+	      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_4_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1; /* return byte length of converted char to lower */</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_4_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    if (*p == 0xa2)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_4_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xb1 },</div><div class='add'>+ { 0xa3, 0xb3 },</div><div class='add'>+ { 0xa5, 0xb5 },</div><div class='add'>+ { 0xa6, 0xb6 },</div><div class='add'>+ { 0xa9, 0xb9 },</div><div class='add'>+ { 0xaa, 0xba },</div><div class='add'>+ { 0xab, 0xbb },</div><div class='add'>+ { 0xac, 0xbc },</div><div class='add'>+ { 0xae, 0xbe },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb },</div><div class='add'>+ { 0xdc, 0xfc },</div><div class='add'>+ { 0xdd, 0xfd },</div><div class='add'>+ { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+		    OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+		    OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+			   const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+			   OnigCaseFoldCodeItem items[],</div><div class='add'>+			   OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_4, ISO_8859_4) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-4",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-4", "ISO-8859-4")</div><div class='head'>diff --git a/enc/iso_8859_5.c b/enc/iso_8859_5.c<br/>new file mode 100644<br/>index 0000000000..81cc8e5b32<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_5.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_5.c</a></div><div class='hunk'>@@ -0,0 +1,230 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_5.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2008  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_5_TO_LOWER_CASE(c) EncISO_8859_5_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_5_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_5_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_5_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\255', '\376', '\377',</div><div class='add'>+  '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',</div><div class='add'>+  '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',</div><div class='add'>+  '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_5_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x00a0, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+	      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_5_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_5_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_5_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xa1, 0xf1 },</div><div class='add'>+ { 0xa2, 0xf2 },</div><div class='add'>+ { 0xa3, 0xf3 },</div><div class='add'>+ { 0xa4, 0xf4 },</div><div class='add'>+ { 0xa5, 0xf5 },</div><div class='add'>+ { 0xa6, 0xf6 },</div><div class='add'>+ { 0xa7, 0xf7 },</div><div class='add'>+ { 0xa8, 0xf8 },</div><div class='add'>+ { 0xa9, 0xf9 },</div><div class='add'>+ { 0xaa, 0xfa },</div><div class='add'>+ { 0xab, 0xfb },</div><div class='add'>+ { 0xac, 0xfc },</div><div class='add'>+ { 0xae, 0xfe },</div><div class='add'>+ { 0xaf, 0xff },</div><div class='add'>+</div><div class='add'>+ { 0xb0, 0xd0 },</div><div class='add'>+ { 0xb1, 0xd1 },</div><div class='add'>+ { 0xb2, 0xd2 },</div><div class='add'>+ { 0xb3, 0xd3 },</div><div class='add'>+ { 0xb4, 0xd4 },</div><div class='add'>+ { 0xb5, 0xd5 },</div><div class='add'>+ { 0xb6, 0xd6 },</div><div class='add'>+ { 0xb7, 0xd7 },</div><div class='add'>+ { 0xb8, 0xd8 },</div><div class='add'>+ { 0xb9, 0xd9 },</div><div class='add'>+ { 0xba, 0xda },</div><div class='add'>+ { 0xbb, 0xdb },</div><div class='add'>+ { 0xbc, 0xdc },</div><div class='add'>+ { 0xbd, 0xdd },</div><div class='add'>+ { 0xbe, 0xde },</div><div class='add'>+ { 0xbf, 0xdf },</div><div class='add'>+</div><div class='add'>+ { 0xc0, 0xe0 },</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+		    OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+		    OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+			   const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+			   OnigCaseFoldCodeItem items[],</div><div class='add'>+			   OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_5, ISO_8859_5) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-5",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-5", "ISO-8859-5")</div><div class='head'>diff --git a/enc/iso_8859_6.c b/enc/iso_8859_6.c<br/>new file mode 100644<br/>index 0000000000..7384061a1f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_6.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_6.c</a></div><div class='hunk'>@@ -0,0 +1,107 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_6.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_IS_ISO_8859_6_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_6_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_6_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x0000, 0x0000, 0x0000, 0x00a0, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x01a0, 0x01a0, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x01a0, 0x0000, 0x0000, 0x0000, 0x01a0,</div><div class='add'>+  0x0000, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_6_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_6, ISO_8859_6) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-6",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  onigenc_ascii_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-6", "ISO-8859-6")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1256</div><div class='add'>+ * MIBenum: 2256</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1256.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1256</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1256", "ISO-8859-6")</div><div class='add'>+ENC_ALIAS("CP1256", "Windows-1256")</div><div class='head'>diff --git a/enc/iso_8859_7.c b/enc/iso_8859_7.c<br/>new file mode 100644<br/>index 0000000000..2f916171db<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_7.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_7.c</a></div><div class='hunk'>@@ -0,0 +1,237 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_7.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_7_TO_LOWER_CASE(c) EncISO_8859_7_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_7_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_7_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_7_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',</div><div class='add'>+  '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\334', '\267',</div><div class='add'>+  '\335', '\336', '\337', '\273', '\374', '\275', '\375', '\376',</div><div class='add'>+  '\300', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\322', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\334', '\335', '\336', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_7_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x01a0, 0x01a0, 0x00a0, 0x0000, 0x0000, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x0000, 0x01a0, 0x00a0, 0x01a0, 0x0000, 0x01a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x00a0, 0x34a2, 0x01a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x01a0, 0x34a2, 0x10a0, 0x34a2, 0x34a2,</div><div class='add'>+  0x30e2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x0000, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x0000</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+	      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_7_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		 const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_7_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    if (*p == 0xc0 || *p == 0xe0)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_7_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+ { 0xb6, 0xdc },</div><div class='add'>+ { 0xb8, 0xdd },</div><div class='add'>+ { 0xb9, 0xde },</div><div class='add'>+ { 0xba, 0xdf },</div><div class='add'>+ { 0xbc, 0xfc },</div><div class='add'>+ { 0xbe, 0xfd },</div><div class='add'>+ { 0xbf, 0xfe },</div><div class='add'>+</div><div class='add'>+ { 0xc1, 0xe1 },</div><div class='add'>+ { 0xc2, 0xe2 },</div><div class='add'>+ { 0xc3, 0xe3 },</div><div class='add'>+ { 0xc4, 0xe4 },</div><div class='add'>+ { 0xc5, 0xe5 },</div><div class='add'>+ { 0xc6, 0xe6 },</div><div class='add'>+ { 0xc7, 0xe7 },</div><div class='add'>+ { 0xc8, 0xe8 },</div><div class='add'>+ { 0xc9, 0xe9 },</div><div class='add'>+ { 0xca, 0xea },</div><div class='add'>+ { 0xcb, 0xeb },</div><div class='add'>+ { 0xcc, 0xec },</div><div class='add'>+ { 0xcd, 0xed },</div><div class='add'>+ { 0xce, 0xee },</div><div class='add'>+ { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+ { 0xd0, 0xf0 },</div><div class='add'>+ { 0xd1, 0xf1 },</div><div class='add'>+ { 0xd2, 0xf2 },</div><div class='add'>+ { 0xd3, 0xf3 },</div><div class='add'>+ { 0xd4, 0xf4 },</div><div class='add'>+ { 0xd5, 0xf5 },</div><div class='add'>+ { 0xd6, 0xf6 },</div><div class='add'>+ { 0xd7, 0xf7 },</div><div class='add'>+ { 0xd8, 0xf8 },</div><div class='add'>+ { 0xd9, 0xf9 },</div><div class='add'>+ { 0xda, 0xfa },</div><div class='add'>+ { 0xdb, 0xfb }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+		    OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+		    OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+			   const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+			   OnigCaseFoldCodeItem items[],</div><div class='add'>+			   OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_7, ISO_8859_7) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-7",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-7", "ISO-8859-7")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1253</div><div class='add'>+ * MIBenum: 2253</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1253.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1253</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1253", "ISO-8859-7")</div><div class='add'>+ENC_ALIAS("CP1253", "Windows-1253")</div><div class='head'>diff --git a/enc/iso_8859_8.c b/enc/iso_8859_8.c<br/>new file mode 100644<br/>index 0000000000..bd0754c2b1<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_8.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_8.c</a></div><div class='hunk'>@@ -0,0 +1,107 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_8.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_IS_ISO_8859_8_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_8_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_8_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x0000, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,</div><div class='add'>+  0x00a0, 0x10a0, 0x00a0, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,</div><div class='add'>+  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x01a0,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2, 0x30a2,</div><div class='add'>+  0x30a2, 0x30a2, 0x30a2, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_8_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_8, ISO_8859_8) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-8",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  onigenc_ascii_mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-8", "ISO-8859-8")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1255</div><div class='add'>+ * MIBenum: 2255</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1255.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1255</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1255", "ISO-8859-8")</div><div class='add'>+ENC_ALIAS("CP1255", "Windows-1255")</div><div class='head'>diff --git a/enc/iso_8859_9.c b/enc/iso_8859_9.c<br/>new file mode 100644<br/>index 0000000000..4d46e742e2<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/iso_8859_9.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/iso_8859_9.c</a></div><div class='hunk'>@@ -0,0 +1,243 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  iso8859_9.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2007  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_ISO_8859_9_TO_LOWER_CASE(c) EncISO_8859_9_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_ISO_8859_9_CTYPE(code,ctype) \</div><div class='add'>+  ((EncISO_8859_9_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncISO_8859_9_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',</div><div class='add'>+  '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',</div><div class='add'>+  '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\335', '\376', '\337',</div><div class='add'>+  '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',</div><div class='add'>+  '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',</div><div class='add'>+  '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',</div><div class='add'>+  '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncISO_8859_9_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,</div><div class='add'>+  0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x01a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,</div><div class='add'>+  0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower,</div><div class='add'>+	      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    *lower++ = 's';</div><div class='add'>+    *lower   = 's';</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  *lower = ENC_ISO_8859_9_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (*p == 0xdf &amp;&amp; (flag &amp; INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncISO_8859_9_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  if ((v | BIT_CTYPE_LOWER) != 0) {</div><div class='add'>+    /* 0xdf etc..  are lower case letter, but can't convert. */</div><div class='add'>+    if (*p &gt;= 0xaa &amp;&amp; *p &lt;= 0xba)</div><div class='add'>+      return FALSE;</div><div class='add'>+    else</div><div class='add'>+      return TRUE;</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_ISO_8859_9_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+  { 0xc0, 0xe0 },</div><div class='add'>+  { 0xc1, 0xe1 },</div><div class='add'>+  { 0xc2, 0xe2 },</div><div class='add'>+  { 0xc3, 0xe3 },</div><div class='add'>+  { 0xc4, 0xe4 },</div><div class='add'>+  { 0xc5, 0xe5 },</div><div class='add'>+  { 0xc6, 0xe6 },</div><div class='add'>+  { 0xc7, 0xe7 },</div><div class='add'>+  { 0xc8, 0xe8 },</div><div class='add'>+  { 0xc9, 0xe9 },</div><div class='add'>+  { 0xca, 0xea },</div><div class='add'>+  { 0xcb, 0xeb },</div><div class='add'>+  { 0xcc, 0xec },</div><div class='add'>+  { 0xcd, 0xed },</div><div class='add'>+  { 0xce, 0xee },</div><div class='add'>+  { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+  { 0xd0, 0xf0 },</div><div class='add'>+  { 0xd1, 0xf1 },</div><div class='add'>+  { 0xd2, 0xf2 },</div><div class='add'>+  { 0xd3, 0xf3 },</div><div class='add'>+  { 0xd4, 0xf4 },</div><div class='add'>+  { 0xd5, 0xf5 },</div><div class='add'>+  { 0xd6, 0xf6 },</div><div class='add'>+  { 0xd8, 0xf8 },</div><div class='add'>+  { 0xd9, 0xf9 },</div><div class='add'>+  { 0xda, 0xfa },</div><div class='add'>+  { 0xdb, 0xfb },</div><div class='add'>+  { 0xdc, 0xfc },</div><div class='add'>+  { 0xdd, 0xfd },</div><div class='add'>+  { 0xde, 0xfe }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			       OnigApplyAllCaseFoldFunc f, void* arg,</div><div class='add'>+			       OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+				      const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+				      OnigCaseFoldCodeItem items[],</div><div class='add'>+				      OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 1,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(iso_8859_9, ISO_8859_9) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "ISO-8859-9",  /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  apply_all_case_fold,</div><div class='add'>+  get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("ISO8859-9", "ISO-8859-9")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: windows-1254</div><div class='add'>+ * MIBenum: 2254</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/sbcs/1254.mspx</div><div class='add'>+ * Link: http://en.wikipedia.org/wiki/Windows-1254</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-1254", "ISO-8859-9")</div><div class='add'>+ENC_ALIAS("CP1254", "Windows-1254")</div><div class='head'>diff --git a/enc/koi8_r.c b/enc/koi8_r.c<br/>new file mode 100644<br/>index 0000000000..f5b7d22349<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/koi8_r.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/koi8_r.c</a></div><div class='hunk'>@@ -0,0 +1,219 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  koi8_r.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2008  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_KOI8_R_TO_LOWER_CASE(c) EncKOI8_R_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_KOI8_R_CTYPE(code,ctype) \</div><div class='add'>+  ((EncKOI8_R_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncKOI8_R_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',</div><div class='add'>+  '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',</div><div class='add'>+  '\260', '\261', '\262', '\243', '\264', '\265', '\266', '\267',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',</div><div class='add'>+  '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',</div><div class='add'>+  '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',</div><div class='add'>+  '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',</div><div class='add'>+  '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',</div><div class='add'>+  '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',</div><div class='add'>+  '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',</div><div class='add'>+  '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',</div><div class='add'>+  '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncKOI8_R_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x0284, 0x00a0, 0x00a0, 0x10a0, 0x01a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x30e2, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_r_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED,</div><div class='add'>+		     const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+		     UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  *lower = ENC_KOI8_R_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+koi8_r_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp,</div><div class='add'>+			const UChar* end, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncKOI8_R_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_r_is_code_ctype(OnigCodePoint code, unsigned int ctype,</div><div class='add'>+		     OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_KOI8_R_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+  { 0xa3, 0xb3 },</div><div class='add'>+</div><div class='add'>+  { 0xc0, 0xe0 },</div><div class='add'>+  { 0xc1, 0xe1 },</div><div class='add'>+  { 0xc2, 0xe2 },</div><div class='add'>+  { 0xc3, 0xe3 },</div><div class='add'>+  { 0xc4, 0xe4 },</div><div class='add'>+  { 0xc5, 0xe5 },</div><div class='add'>+  { 0xc6, 0xe6 },</div><div class='add'>+  { 0xc7, 0xe7 },</div><div class='add'>+  { 0xc8, 0xe8 },</div><div class='add'>+  { 0xc9, 0xe9 },</div><div class='add'>+  { 0xca, 0xea },</div><div class='add'>+  { 0xcb, 0xeb },</div><div class='add'>+  { 0xcc, 0xec },</div><div class='add'>+  { 0xcd, 0xed },</div><div class='add'>+  { 0xce, 0xee },</div><div class='add'>+  { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+  { 0xd0, 0xf0 },</div><div class='add'>+  { 0xd1, 0xf1 },</div><div class='add'>+  { 0xd2, 0xf2 },</div><div class='add'>+  { 0xd3, 0xf3 },</div><div class='add'>+  { 0xd4, 0xf4 },</div><div class='add'>+  { 0xd5, 0xf5 },</div><div class='add'>+  { 0xd6, 0xf6 },</div><div class='add'>+  { 0xd7, 0xf7 },</div><div class='add'>+  { 0xd8, 0xf8 },</div><div class='add'>+  { 0xd9, 0xf9 },</div><div class='add'>+  { 0xda, 0xfa },</div><div class='add'>+  { 0xdb, 0xfb },</div><div class='add'>+  { 0xdc, 0xfc },</div><div class='add'>+  { 0xdd, 0xfd },</div><div class='add'>+  { 0xde, 0xfe },</div><div class='add'>+  { 0xdf, 0xff }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_r_apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			   OnigApplyAllCaseFoldFunc f,</div><div class='add'>+			   void* arg, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_r_get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+		  const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+		  OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(koi8_r, KOI8_R) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "KOI8-R",       /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  koi8_r_mbc_case_fold,</div><div class='add'>+  koi8_r_apply_all_case_fold,</div><div class='add'>+  koi8_r_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  koi8_r_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='add'>+ENC_ALIAS("CP878", "KOI8-R")</div><div class='add'>+</div><div class='head'>diff --git a/enc/koi8_u.c b/enc/koi8_u.c<br/>new file mode 100644<br/>index 0000000000..dfbaa9ac36<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/koi8_u.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/koi8_u.c</a></div><div class='hunk'>@@ -0,0 +1,221 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  koi8_u.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2008  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'>+#include "regenc.h"</div><div class='add'>+</div><div class='add'>+#define ENC_KOI8_U_TO_LOWER_CASE(c) EncKOI8_U_ToLowerCaseTable[c]</div><div class='add'>+#define ENC_IS_KOI8_U_CTYPE(code,ctype) \</div><div class='add'>+  ((EncKOI8_U_CtypeTable[code] &amp; CTYPE_TO_BIT(ctype)) != 0)</div><div class='add'>+</div><div class='add'>+static const UChar EncKOI8_U_ToLowerCaseTable[256] = {</div><div class='add'>+  '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',</div><div class='add'>+  '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',</div><div class='add'>+  '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',</div><div class='add'>+  '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',</div><div class='add'>+  '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',</div><div class='add'>+  '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',</div><div class='add'>+  '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',</div><div class='add'>+  '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',</div><div class='add'>+  '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',</div><div class='add'>+  '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',</div><div class='add'>+  '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',</div><div class='add'>+  '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',</div><div class='add'>+  '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',</div><div class='add'>+  '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',</div><div class='add'>+  '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',</div><div class='add'>+  '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',</div><div class='add'>+  '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',</div><div class='add'>+  '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',</div><div class='add'>+  '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',</div><div class='add'>+  '\260', '\261', '\262', '\243', '\244', '\265', '\246', '\247',</div><div class='add'>+  '\270', '\271', '\272', '\273', '\274', '\255', '\276', '\277',</div><div class='add'>+  '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',</div><div class='add'>+  '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',</div><div class='add'>+  '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',</div><div class='add'>+  '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',</div><div class='add'>+  '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',</div><div class='add'>+  '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',</div><div class='add'>+  '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',</div><div class='add'>+  '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337'</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const unsigned short EncKOI8_U_CtypeTable[256] = {</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,</div><div class='add'>+  0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,</div><div class='add'>+  0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,</div><div class='add'>+  0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,</div><div class='add'>+  0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,</div><div class='add'>+  0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,</div><div class='add'>+  0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x0284, 0x00a0, 0x00a0, 0x10a0, 0x01a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x30e2, 0x30e2, 0x00a0, 0x30e2, 0x30e2,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x30e2, 0x00a0, 0x00a0,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x34a2, 0x00a0, 0x34a2, 0x34a2,</div><div class='add'>+  0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x34a2, 0x00a0, 0x00a0,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,</div><div class='add'>+  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_u_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED,</div><div class='add'>+		     const UChar** pp, const UChar* end ARG_UNUSED,</div><div class='add'>+		     UChar* lower, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  *lower = ENC_KOI8_U_TO_LOWER_CASE(*p);</div><div class='add'>+  (*pp)++;</div><div class='add'>+  return 1;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+koi8_u_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp,</div><div class='add'>+			const UChar* end, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int v;</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  (*pp)++;</div><div class='add'>+  v = (EncKOI8_U_CtypeTable[*p] &amp; (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));</div><div class='add'>+  return (v != 0 ? TRUE : FALSE);</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_u_is_code_ctype(OnigCodePoint code, unsigned int ctype,</div><div class='add'>+		     OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256)</div><div class='add'>+    return ENC_IS_KOI8_U_CTYPE(code, ctype);</div><div class='add'>+  else</div><div class='add'>+    return FALSE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static const OnigPairCaseFoldCodes CaseFoldMap[] = {</div><div class='add'>+  { 0xa3, 0xb3 },</div><div class='add'>+  { 0xa4, 0xb4 },</div><div class='add'>+  { 0xa6, 0xb6 },</div><div class='add'>+  { 0xa7, 0xb7 },</div><div class='add'>+  { 0xad, 0xbd },</div><div class='add'>+</div><div class='add'>+  { 0xc0, 0xe0 },</div><div class='add'>+  { 0xc1, 0xe1 },</div><div class='add'>+  { 0xc2, 0xe2 },</div><div class='add'>+  { 0xc3, 0xe3 },</div><div class='add'>+  { 0xc4, 0xe4 },</div><div class='add'>+  { 0xc5, 0xe5 },</div><div class='add'>+  { 0xc6, 0xe6 },</div><div class='add'>+  { 0xc7, 0xe7 },</div><div class='add'>+  { 0xc8, 0xe8 },</div><div class='add'>+  { 0xc9, 0xe9 },</div><div class='add'>+  { 0xca, 0xea },</div><div class='add'>+  { 0xcb, 0xeb },</div><div class='add'>+  { 0xcc, 0xec },</div><div class='add'>+  { 0xcd, 0xed },</div><div class='add'>+  { 0xce, 0xee },</div><div class='add'>+  { 0xcf, 0xef },</div><div class='add'>+</div><div class='add'>+  { 0xd0, 0xf0 },</div><div class='add'>+  { 0xd1, 0xf1 },</div><div class='add'>+  { 0xd2, 0xf2 },</div><div class='add'>+  { 0xd3, 0xf3 },</div><div class='add'>+  { 0xd4, 0xf4 },</div><div class='add'>+  { 0xd5, 0xf5 },</div><div class='add'>+  { 0xd6, 0xf6 },</div><div class='add'>+  { 0xd7, 0xf7 },</div><div class='add'>+  { 0xd8, 0xf8 },</div><div class='add'>+  { 0xd9, 0xf9 },</div><div class='add'>+  { 0xda, 0xfa },</div><div class='add'>+  { 0xdb, 0xfb },</div><div class='add'>+  { 0xdc, 0xfc },</div><div class='add'>+  { 0xdd, 0xfd },</div><div class='add'>+  { 0xde, 0xfe },</div><div class='add'>+  { 0xdf, 0xff }</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_u_apply_all_case_fold(OnigCaseFoldType flag,</div><div class='add'>+			   OnigApplyAllCaseFoldFunc f,</div><div class='add'>+			   void* arg, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_apply_all_case_fold_with_map(</div><div class='add'>+             sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+             flag, f, arg);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+koi8_u_get_case_fold_codes_by_str(OnigCaseFoldType flag,</div><div class='add'>+		  const OnigUChar* p, const OnigUChar* end,</div><div class='add'>+		  OnigCaseFoldCodeItem items[], OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  return onigenc_get_case_fold_codes_by_str_with_map(</div><div class='add'>+	     sizeof(CaseFoldMap)/sizeof(OnigPairCaseFoldCodes), CaseFoldMap, 0,</div><div class='add'>+	     flag, p, end, items);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(koi8_u, KOI8_U) = {</div><div class='add'>+  onigenc_single_byte_mbc_enc_len,</div><div class='add'>+  "KOI8-U",       /* name */</div><div class='add'>+  1,             /* max enc length */</div><div class='add'>+  1,             /* min enc length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  onigenc_single_byte_mbc_to_code,</div><div class='add'>+  onigenc_single_byte_code_to_mbclen,</div><div class='add'>+  onigenc_single_byte_code_to_mbc,</div><div class='add'>+  koi8_u_mbc_case_fold,</div><div class='add'>+  koi8_u_apply_all_case_fold,</div><div class='add'>+  koi8_u_get_case_fold_codes_by_str,</div><div class='add'>+  onigenc_minimum_property_name_to_ctype,</div><div class='add'>+  koi8_u_is_code_ctype,</div><div class='add'>+  onigenc_not_support_get_ctype_code_range,</div><div class='add'>+  onigenc_single_byte_left_adjust_char_head,</div><div class='add'>+  onigenc_always_true_is_allowed_reverse_match</div><div class='add'>+};</div><div class='head'>diff --git a/enc/make_encmake.rb b/enc/make_encmake.rb<br/>new file mode 100755<br/>index 0000000000..ed3680313f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/make_encmake.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/make_encmake.rb</a></div><div class='hunk'>@@ -0,0 +1,50 @@</div><div class='add'>+#! ./miniruby</div><div class='add'>+</div><div class='add'>+dir = File.expand_path("../..", __FILE__)</div><div class='add'>+$:.unshift(dir)</div><div class='add'>+$:.unshift(".")</div><div class='add'>+if $".grep(/mkmf/).empty?</div><div class='add'>+  $" &lt;&lt; "mkmf.rb"</div><div class='add'>+  load File.expand_path("lib/mkmf.rb", dir)</div><div class='add'>+end</div><div class='add'>+require 'erb'</div><div class='add'>+</div><div class='add'>+CONFIG["MAKEDIRS"] ||= '$(MINIRUBY) -run -e mkdir -- -p'</div><div class='add'>+</div><div class='add'>+BUILTIN_ENCS = []</div><div class='add'>+BUILTIN_TRANSES = []</div><div class='add'>+ENC_PATTERNS = []</div><div class='add'>+NOENC_PATTERNS = []</div><div class='add'>+</div><div class='add'>+until ARGV.empty?</div><div class='add'>+  case ARGV[0]</div><div class='add'>+  when /\A--builtin-encs=/</div><div class='add'>+    BUILTIN_ENCS.concat $'.split.map {|e| File.basename(e, '.*') &lt;&lt; '.c'}</div><div class='add'>+    ARGV.shift</div><div class='add'>+  when /\A--builtin-transes=/</div><div class='add'>+    BUILTIN_TRANSES.concat $'.split.map {|e| File.basename(e, '.*') }</div><div class='add'>+    ARGV.shift</div><div class='add'>+  when /\A--encs=/</div><div class='add'>+    ENC_PATTERNS.concat $'.split</div><div class='add'>+    ARGV.shift</div><div class='add'>+  when /\A--no-encs=/</div><div class='add'>+    NOENC_PATTERNS.concat $'.split</div><div class='add'>+    ARGV.shift</div><div class='add'>+  else</div><div class='add'>+    break</div><div class='add'>+  end</div><div class='add'>+end</div><div class='add'>+</div><div class='add'>+if File.exist?(depend = File.join($srcdir, "depend"))</div><div class='add'>+  erb = ERB.new(File.read(depend), nil, '%')</div><div class='add'>+  erb.filename = depend</div><div class='add'>+  tmp = erb.result(binding)</div><div class='add'>+  dep = "\n#### depend ####\n\n" &lt;&lt; depend_rules(tmp).join</div><div class='add'>+else</div><div class='add'>+  dep = ""</div><div class='add'>+end</div><div class='add'>+mkin = File.read(File.join($srcdir, "Makefile.in"))</div><div class='add'>+mkin.gsub!(/@(#{CONFIG.keys.join('|')})@/) {CONFIG[$1]}</div><div class='add'>+open(ARGV[0], 'wb') {|f|</div><div class='add'>+  f.puts mkin, dep</div><div class='add'>+}</div><div class='head'>diff --git a/enc/prelude.rb b/enc/prelude.rb<br/>new file mode 100644<br/>index 0000000000..8ce59f957a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/prelude.rb?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/prelude.rb</a></div><div class='hunk'>@@ -0,0 +1,6 @@</div><div class='add'>+%w'enc/encdb.so enc/trans/transdb.so'.each do |init|</div><div class='add'>+  begin</div><div class='add'>+    require(init)</div><div class='add'>+  rescue LoadError</div><div class='add'>+  end</div><div class='add'>+end</div><div class='head'>diff --git a/enc/shift_jis.c b/enc/shift_jis.c<br/>new file mode 100644<br/>index 0000000000..9dcacb584d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/shift_jis.c?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/shift_jis.c</a></div><div class='hunk'>@@ -0,0 +1,421 @@</div><div class='add'>+/**********************************************************************</div><div class='add'>+  sjis.c -  Oniguruma (regular expression library)</div><div class='add'>+**********************************************************************/</div><div class='add'>+/*-</div><div class='add'>+ * Copyright (c) 2002-2008  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'>+#include "regint.h"</div><div class='add'>+</div><div class='add'>+static const int EncLen_SJIS[] = {</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,</div><div class='add'>+  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+static const char SJIS_CAN_BE_TRAIL_TABLE[256] = {</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0</div><div class='add'>+};</div><div class='add'>+</div><div class='add'>+#define SJIS_ISMB_FIRST(byte)  (EncLen_SJIS[byte] &gt; 1)</div><div class='add'>+#define SJIS_ISMB_TRAIL(byte)  SJIS_CAN_BE_TRAIL_TABLE[(byte)]</div><div class='add'>+</div><div class='add'>+typedef enum { FAILURE = -2, ACCEPT = -1, S0 = 0, S1 } state_t;</div><div class='add'>+#define A ACCEPT</div><div class='add'>+#define F FAILURE</div><div class='add'>+static const signed char trans[][0x100] = {</div><div class='add'>+  { /* S0   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 1 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 2 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 3 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 8 */ F, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* 9 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* a */ F, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,</div><div class='add'>+    /* f */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, F, F, F</div><div class='add'>+  },</div><div class='add'>+  { /* S1   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */</div><div class='add'>+    /* 0 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 1 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 2 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 3 */ F, F, F, F, F, F, F, F, F, F, F, F, F, F, F, F,</div><div class='add'>+    /* 4 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 5 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 6 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 7 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, F,</div><div class='add'>+    /* 8 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* 9 */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* a */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* b */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* c */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* d */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* e */ A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A,</div><div class='add'>+    /* f */ A, A, A, A, A, A, A, A, A, A, A, A, A, F, F, F</div><div class='add'>+  }</div><div class='add'>+};</div><div class='add'>+#undef A</div><div class='add'>+#undef F</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_enc_len(const UChar* p, const UChar* e, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  int firstbyte = *p++;</div><div class='add'>+  state_t s;</div><div class='add'>+  s = trans[0][firstbyte];</div><div class='add'>+  if (s &lt; 0) return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(1) :</div><div class='add'>+                                  ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+  if (p == e) return ONIGENC_CONSTRUCT_MBCLEN_NEEDMORE(EncLen_SJIS[firstbyte]-1);</div><div class='add'>+  s = trans[s][*p++];</div><div class='add'>+  return s == ACCEPT ? ONIGENC_CONSTRUCT_MBCLEN_CHARFOUND(2) :</div><div class='add'>+                       ONIGENC_CONSTRUCT_MBCLEN_INVALID();</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbclen(OnigCodePoint code, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 256) {</div><div class='add'>+    if (EncLen_SJIS[(int )code] == 1)</div><div class='add'>+      return 1;</div><div class='add'>+    else</div><div class='add'>+      return ONIGERR_INVALID_CODE_POINT_VALUE;</div><div class='add'>+  }</div><div class='add'>+  else if (code &lt;= 0xffff) {</div><div class='add'>+    return 2;</div><div class='add'>+  }</div><div class='add'>+  else</div><div class='add'>+    return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static OnigCodePoint</div><div class='add'>+mbc_to_code(const UChar* p, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  int c, i, len;</div><div class='add'>+  OnigCodePoint n;</div><div class='add'>+</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  c = *p++;</div><div class='add'>+  n = c;</div><div class='add'>+  if (len == 1) return n;</div><div class='add'>+</div><div class='add'>+  for (i = 1; i &lt; len; i++) {</div><div class='add'>+    if (p &gt;= end) break;</div><div class='add'>+    c = *p++;</div><div class='add'>+    n &lt;&lt;= 8;  n += c;</div><div class='add'>+  }</div><div class='add'>+  return n;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+code_to_mbc(OnigCodePoint code, UChar *buf, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  UChar *p = buf;</div><div class='add'>+</div><div class='add'>+  if ((code &amp; 0xff00) != 0) *p++ = (UChar )(((code &gt;&gt;  8) &amp; 0xff));</div><div class='add'>+  *p++ = (UChar )(code &amp; 0xff);</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+  if (enclen(enc, buf) != (p - buf))</div><div class='add'>+    return REGERR_INVALID_CODE_POINT_VALUE;</div><div class='add'>+#endif</div><div class='add'>+  return (int)(p - buf);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+mbc_case_fold(OnigCaseFoldType flag,</div><div class='add'>+	      const UChar** pp, const UChar* end, UChar* lower,</div><div class='add'>+	      OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar* p = *pp;</div><div class='add'>+</div><div class='add'>+  if (ONIGENC_IS_MBC_ASCII(p)) {</div><div class='add'>+    *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);</div><div class='add'>+    (*pp)++;</div><div class='add'>+    return 1;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    int i;</div><div class='add'>+    int len = enclen(enc, p, end);</div><div class='add'>+</div><div class='add'>+    for (i = 0; i &lt; len; i++) {</div><div class='add'>+      *lower++ = *p++;</div><div class='add'>+    }</div><div class='add'>+    (*pp) += len;</div><div class='add'>+    return len; /* return byte length of converted char to lower */</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_mbc_ambiguous(OnigCaseFoldType flag,</div><div class='add'>+		 const UChar** pp, const UChar* end)</div><div class='add'>+{</div><div class='add'>+  return onigenc_mbn_is_mbc_ambiguous(enc, flag, pp, end);</div><div class='add'>+</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+#if 0</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype)</div><div class='add'>+{</div><div class='add'>+  if (code &lt; 128)</div><div class='add'>+    return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);</div><div class='add'>+  else {</div><div class='add'>+    if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) {</div><div class='add'>+      return (code_to_mbclen(code) &gt; 1 ? TRUE : FALSE);</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return FALSE;</div><div class='add'>+}</div><div class='add'>+#endif</div><div class='add'>+</div><div class='add'>+static UChar*</div><div class='add'>+left_adjust_char_head(const UChar* start, const UChar* s, const UChar* end, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  const UChar *p;</div><div class='add'>+  int len;</div><div class='add'>+</div><div class='add'>+  if (s &lt;= start) return (UChar* )s;</div><div class='add'>+  p = s;</div><div class='add'>+</div><div class='add'>+  if (SJIS_ISMB_TRAIL(*p)) {</div><div class='add'>+    while (p &gt; start) {</div><div class='add'>+      if (! SJIS_ISMB_FIRST(*--p)) {</div><div class='add'>+	p++;</div><div class='add'>+	break;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  len = enclen(enc, p, end);</div><div class='add'>+  if (p + len &gt; s) return (UChar* )p;</div><div class='add'>+  p += len;</div><div class='add'>+  return (UChar* )(p + ((s - p) &amp; ~1));</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_allowed_reverse_match(const UChar* s, const UChar* end, OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  const UChar c = *s;</div><div class='add'>+  return (SJIS_ISMB_TRAIL(c) ? FALSE : TRUE);</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+</div><div class='add'>+static int PropertyInited = 0;</div><div class='add'>+static const OnigCodePoint** PropertyList;</div><div class='add'>+static int PropertyListNum;</div><div class='add'>+static int PropertyListSize;</div><div class='add'>+static hash_table_type* PropertyNameTable;</div><div class='add'>+</div><div class='add'>+static const OnigCodePoint CR_Hiragana[] = {</div><div class='add'>+  1,</div><div class='add'>+  0x829f, 0x82f1</div><div class='add'>+}; /* CR_Hiragana */</div><div class='add'>+</div><div class='add'>+static const OnigCodePoint CR_Katakana[] = {</div><div class='add'>+  4,</div><div class='add'>+  0x00a6, 0x00af,</div><div class='add'>+  0x00b1, 0x00dd,</div><div class='add'>+  0x8340, 0x837e,</div><div class='add'>+  0x8380, 0x8396,</div><div class='add'>+}; /* CR_Katakana */</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+init_property_list(void)</div><div class='add'>+{</div><div class='add'>+  int r;</div><div class='add'>+</div><div class='add'>+  PROPERTY_LIST_ADD_PROP("hiragana", CR_Hiragana);</div><div class='add'>+  PROPERTY_LIST_ADD_PROP("katakana", CR_Katakana);</div><div class='add'>+  PropertyInited = 1;</div><div class='add'>+</div><div class='add'>+ end:</div><div class='add'>+  return r;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+property_name_to_ctype(OnigEncoding enc, UChar* p, UChar* end)</div><div class='add'>+{</div><div class='add'>+  hash_data_type ctype;</div><div class='add'>+  UChar *s, *e;</div><div class='add'>+</div><div class='add'>+  PROPERTY_LIST_INIT_CHECK;</div><div class='add'>+</div><div class='add'>+  s = e = ALLOCA_N(UChar, end-p+1);</div><div class='add'>+  for (; p &lt; end; p++) {</div><div class='add'>+    *e++ = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  if (onig_st_lookup_strend(PropertyNameTable, s, e, &amp;ctype) == 0) {</div><div class='add'>+    return onigenc_minimum_property_name_to_ctype(enc, s, e);</div><div class='add'>+  }</div><div class='add'>+</div><div class='add'>+  return (int)ctype;</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+static int</div><div class='add'>+is_code_ctype(OnigCodePoint code, unsigned int ctype, OnigEncoding enc)</div><div class='add'>+{</div><div class='add'>+  if (ctype &lt;= ONIGENC_MAX_STD_CTYPE) {</div><div class='add'>+    if (code &lt; 128)</div><div class='add'>+      return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);</div><div class='add'>+    else {</div><div class='add'>+      if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) {</div><div class='add'>+	return TRUE;</div><div class='add'>+      }</div><div class='add'>+    }</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    PROPERTY_LIST_INIT_CHECK;</div><div class='add'>+</div><div class='add'>+    ctype -= (ONIGENC_MAX_STD_CTYPE + 1);</div><div class='add'>+    if (ctype &gt;= (unsigned int )PropertyListNum)</div><div class='add'>+      return ONIGERR_TYPE_BUG;</div><div class='add'>+</div><div class='add'>+    return onig_is_in_code_range((UChar* )PropertyList[ctype], code);</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'>+static int</div><div class='add'>+get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,</div><div class='add'>+		     const OnigCodePoint* ranges[], OnigEncoding enc ARG_UNUSED)</div><div class='add'>+{</div><div class='add'>+  if (ctype &lt;= ONIGENC_MAX_STD_CTYPE) {</div><div class='add'>+    return ONIG_NO_SUPPORT_CONFIG;</div><div class='add'>+  }</div><div class='add'>+  else {</div><div class='add'>+    *sb_out = 0x80;</div><div class='add'>+</div><div class='add'>+    PROPERTY_LIST_INIT_CHECK;</div><div class='add'>+</div><div class='add'>+    ctype -= (ONIGENC_MAX_STD_CTYPE + 1);</div><div class='add'>+    if (ctype &gt;= (OnigCtype )PropertyListNum)</div><div class='add'>+      return ONIGERR_TYPE_BUG;</div><div class='add'>+</div><div class='add'>+    *ranges = PropertyList[ctype];</div><div class='add'>+    return 0;</div><div class='add'>+  }</div><div class='add'>+}</div><div class='add'>+</div><div class='add'>+OnigEncodingDefine(shift_jis, Shift_JIS) = {</div><div class='add'>+  mbc_enc_len,</div><div class='add'>+  "Shift_JIS",   /* name */</div><div class='add'>+  2,             /* max byte length */</div><div class='add'>+  1,             /* min byte length */</div><div class='add'>+  onigenc_is_mbc_newline_0x0a,</div><div class='add'>+  mbc_to_code,</div><div class='add'>+  code_to_mbclen,</div><div class='add'>+  code_to_mbc,</div><div class='add'>+  mbc_case_fold,</div><div class='add'>+  onigenc_ascii_apply_all_case_fold,</div><div class='add'>+  onigenc_ascii_get_case_fold_codes_by_str,</div><div class='add'>+  property_name_to_ctype,</div><div class='add'>+  is_code_ctype,</div><div class='add'>+  get_ctype_code_range,</div><div class='add'>+  left_adjust_char_head,</div><div class='add'>+  is_allowed_reverse_match,</div><div class='add'>+  0</div><div class='add'>+};</div><div class='add'>+/*</div><div class='add'>+ * Name: Shift_JIS</div><div class='add'>+ * MIBenum: 17</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://ja.wikipedia.org/wiki/Shift_JIS</div><div class='add'>+ */</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: Windows-31J</div><div class='add'>+ * MIBenum: 2024</div><div class='add'>+ * Link: http://www.iana.org/assignments/character-sets</div><div class='add'>+ * Link: http://www.microsoft.com/globaldev/reference/dbcs/932.mspx</div><div class='add'>+ * Link: http://ja.wikipedia.org/wiki/Windows-31J</div><div class='add'>+ * Link: http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-932-2000.ucm</div><div class='add'>+ *</div><div class='add'>+ * Windows Standard Character Set and its mapping to Unicode by Microsoft.</div><div class='add'>+ * Since 1.9.3, SJIS is the alias of Windows-31J because its character</div><div class='add'>+ * set is usually this one even if its mapping may differ.</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("Windows-31J", "Shift_JIS")</div><div class='add'>+ENC_ALIAS("CP932", "Windows-31J")</div><div class='add'>+ENC_ALIAS("csWindows31J", "Windows-31J") /* IANA.  IE6 don't accept Windows-31J but csWindows31J. */</div><div class='add'>+ENC_ALIAS("SJIS", "Windows-31J")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: PCK</div><div class='add'>+ * Link: http://download.oracle.com/docs/cd/E19253-01/819-0606/x-2chn0/index.html</div><div class='add'>+ * Link: http://download.oracle.com/docs/cd/E19253-01/819-0606/appb-pckwarn-1/index.html</div><div class='add'>+ *</div><div class='add'>+ * Solaris's SJIS variant. Its set is Windows Standard Character Set; it</div><div class='add'>+ * consists JIS X 0201 Latin (US-ASCII), JIS X 0201 Katakana, JIS X 0208, NEC</div><div class='add'>+ * special characters, NEC-selected IBM extended characters, and IBM extended</div><div class='add'>+ * characters. Solaris's iconv seems to use SJIS-open.</div><div class='add'>+ */</div><div class='add'>+ENC_ALIAS("PCK", "Windows-31J")</div><div class='add'>+</div><div class='add'>+/*</div><div class='add'>+ * Name: MacJapanese</div><div class='add'>+ * Link: http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/JAPANESE.TXT</div><div class='add'>+ * Link: http://ja.wikipedia.org/wiki/MacJapanese</div><div class='add'>+ */</div><div class='add'>+ENC_REPLICATE("MacJapanese", "Shift_JIS")</div><div class='add'>+ENC_ALIAS("MacJapan", "MacJapanese")</div><div class='head'>diff --git a/enc/trans/CP/CP932UDA%UCS.src b/enc/trans/CP/CP932UDA%UCS.src<br/>new file mode 100644<br/>index 0000000000..c49048510e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/CP/CP932UDA%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/CP/CP932UDA%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,1912 @@</div><div class='add'>+# $NetBSD: CP932UDA%UCS.src,v 1.1 2006/11/04 03:46:19 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"CP932UDA/UCS"</div><div class='add'>+SRC_ZONE	0x7F-0x92 / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#    Name:     cp932 to Unicode table</div><div class='add'>+#    Unicode version: 2.0</div><div class='add'>+#    Table version: 2.01</div><div class='add'>+#    Table format:  Format A</div><div class='add'>+#    Date:          04/15/98</div><div class='add'>+#</div><div class='add'>+#    Contact:       cpxlate@microsoft.com</div><div class='add'>+#</div><div class='add'>+#    General notes: none</div><div class='add'>+#</div><div class='add'>+#    Format: Three tab-separated columns</div><div class='add'>+#        Column #1 is the cp932 code (in hex)</div><div class='add'>+#        Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#        Column #3 is the Unicode name (follows a comment sign, '#')</div><div class='add'>+#</div><div class='add'>+#    The entries are in cp932 order</div><div class='add'>+#</div><div class='add'>+0x7F21 = 0xE000</div><div class='add'>+0x7F22 = 0xE001</div><div class='add'>+0x7F23 = 0xE002</div><div class='add'>+0x7F24 = 0xE003</div><div class='add'>+0x7F25 = 0xE004</div><div class='add'>+0x7F26 = 0xE005</div><div class='add'>+0x7F27 = 0xE006</div><div class='add'>+0x7F28 = 0xE007</div><div class='add'>+0x7F29 = 0xE008</div><div class='add'>+0x7F2A = 0xE009</div><div class='add'>+0x7F2B = 0xE00A</div><div class='add'>+0x7F2C = 0xE00B</div><div class='add'>+0x7F2D = 0xE00C</div><div class='add'>+0x7F2E = 0xE00D</div><div class='add'>+0x7F2F = 0xE00E</div><div class='add'>+0x7F30 = 0xE00F</div><div class='add'>+0x7F31 = 0xE010</div><div class='add'>+0x7F32 = 0xE011</div><div class='add'>+0x7F33 = 0xE012</div><div class='add'>+0x7F34 = 0xE013</div><div class='add'>+0x7F35 = 0xE014</div><div class='add'>+0x7F36 = 0xE015</div><div class='add'>+0x7F37 = 0xE016</div><div class='add'>+0x7F38 = 0xE017</div><div class='add'>+0x7F39 = 0xE018</div><div class='add'>+0x7F3A = 0xE019</div><div class='add'>+0x7F3B = 0xE01A</div><div class='add'>+0x7F3C = 0xE01B</div><div class='add'>+0x7F3D = 0xE01C</div><div class='add'>+0x7F3E = 0xE01D</div><div class='add'>+0x7F3F = 0xE01E</div><div class='add'>+0x7F40 = 0xE01F</div><div class='add'>+0x7F41 = 0xE020</div><div class='add'>+0x7F42 = 0xE021</div><div class='add'>+0x7F43 = 0xE022</div><div class='add'>+0x7F44 = 0xE023</div><div class='add'>+0x7F45 = 0xE024</div><div class='add'>+0x7F46 = 0xE025</div><div class='add'>+0x7F47 = 0xE026</div><div class='add'>+0x7F48 = 0xE027</div><div class='add'>+0x7F49 = 0xE028</div><div class='add'>+0x7F4A = 0xE029</div><div class='add'>+0x7F4B = 0xE02A</div><div class='add'>+0x7F4C = 0xE02B</div><div class='add'>+0x7F4D = 0xE02C</div><div class='add'>+0x7F4E = 0xE02D</div><div class='add'>+0x7F4F = 0xE02E</div><div class='add'>+0x7F50 = 0xE02F</div><div class='add'>+0x7F51 = 0xE030</div><div class='add'>+0x7F52 = 0xE031</div><div class='add'>+0x7F53 = 0xE032</div><div class='add'>+0x7F54 = 0xE033</div><div class='add'>+0x7F55 = 0xE034</div><div class='add'>+0x7F56 = 0xE035</div><div class='add'>+0x7F57 = 0xE036</div><div class='add'>+0x7F58 = 0xE037</div><div class='add'>+0x7F59 = 0xE038</div><div class='add'>+0x7F5A = 0xE039</div><div class='add'>+0x7F5B = 0xE03A</div><div class='add'>+0x7F5C = 0xE03B</div><div class='add'>+0x7F5D = 0xE03C</div><div class='add'>+0x7F5E = 0xE03D</div><div class='add'>+0x7F5F = 0xE03E</div><div class='add'>+0x7F60 = 0xE03F</div><div class='add'>+0x7F61 = 0xE040</div><div class='add'>+0x7F62 = 0xE041</div><div class='add'>+0x7F63 = 0xE042</div><div class='add'>+0x7F64 = 0xE043</div><div class='add'>+0x7F65 = 0xE044</div><div class='add'>+0x7F66 = 0xE045</div><div class='add'>+0x7F67 = 0xE046</div><div class='add'>+0x7F68 = 0xE047</div><div class='add'>+0x7F69 = 0xE048</div><div class='add'>+0x7F6A = 0xE049</div><div class='add'>+0x7F6B = 0xE04A</div><div class='add'>+0x7F6C = 0xE04B</div><div class='add'>+0x7F6D = 0xE04C</div><div class='add'>+0x7F6E = 0xE04D</div><div class='add'>+0x7F6F = 0xE04E</div><div class='add'>+0x7F70 = 0xE04F</div><div class='add'>+0x7F71 = 0xE050</div><div class='add'>+0x7F72 = 0xE051</div><div class='add'>+0x7F73 = 0xE052</div><div class='add'>+0x7F74 = 0xE053</div><div class='add'>+0x7F75 = 0xE054</div><div class='add'>+0x7F76 = 0xE055</div><div class='add'>+0x7F77 = 0xE056</div><div class='add'>+0x7F78 = 0xE057</div><div class='add'>+0x7F79 = 0xE058</div><div class='add'>+0x7F7A = 0xE059</div><div class='add'>+0x7F7B = 0xE05A</div><div class='add'>+0x7F7C = 0xE05B</div><div class='add'>+0x7F7D = 0xE05C</div><div class='add'>+0x7F7E = 0xE05D</div><div class='add'>+0x8021 = 0xE05E</div><div class='add'>+0x8022 = 0xE05F</div><div class='add'>+0x8023 = 0xE060</div><div class='add'>+0x8024 = 0xE061</div><div class='add'>+0x8025 = 0xE062</div><div class='add'>+0x8026 = 0xE063</div><div class='add'>+0x8027 = 0xE064</div><div class='add'>+0x8028 = 0xE065</div><div class='add'>+0x8029 = 0xE066</div><div class='add'>+0x802A = 0xE067</div><div class='add'>+0x802B = 0xE068</div><div class='add'>+0x802C = 0xE069</div><div class='add'>+0x802D = 0xE06A</div><div class='add'>+0x802E = 0xE06B</div><div class='add'>+0x802F = 0xE06C</div><div class='add'>+0x8030 = 0xE06D</div><div class='add'>+0x8031 = 0xE06E</div><div class='add'>+0x8032 = 0xE06F</div><div class='add'>+0x8033 = 0xE070</div><div class='add'>+0x8034 = 0xE071</div><div class='add'>+0x8035 = 0xE072</div><div class='add'>+0x8036 = 0xE073</div><div class='add'>+0x8037 = 0xE074</div><div class='add'>+0x8038 = 0xE075</div><div class='add'>+0x8039 = 0xE076</div><div class='add'>+0x803A = 0xE077</div><div class='add'>+0x803B = 0xE078</div><div class='add'>+0x803C = 0xE079</div><div class='add'>+0x803D = 0xE07A</div><div class='add'>+0x803E = 0xE07B</div><div class='add'>+0x803F = 0xE07C</div><div class='add'>+0x8040 = 0xE07D</div><div class='add'>+0x8041 = 0xE07E</div><div class='add'>+0x8042 = 0xE07F</div><div class='add'>+0x8043 = 0xE080</div><div class='add'>+0x8044 = 0xE081</div><div class='add'>+0x8045 = 0xE082</div><div class='add'>+0x8046 = 0xE083</div><div class='add'>+0x8047 = 0xE084</div><div class='add'>+0x8048 = 0xE085</div><div class='add'>+0x8049 = 0xE086</div><div class='add'>+0x804A = 0xE087</div><div class='add'>+0x804B = 0xE088</div><div class='add'>+0x804C = 0xE089</div><div class='add'>+0x804D = 0xE08A</div><div class='add'>+0x804E = 0xE08B</div><div class='add'>+0x804F = 0xE08C</div><div class='add'>+0x8050 = 0xE08D</div><div class='add'>+0x8051 = 0xE08E</div><div class='add'>+0x8052 = 0xE08F</div><div class='add'>+0x8053 = 0xE090</div><div class='add'>+0x8054 = 0xE091</div><div class='add'>+0x8055 = 0xE092</div><div class='add'>+0x8056 = 0xE093</div><div class='add'>+0x8057 = 0xE094</div><div class='add'>+0x8058 = 0xE095</div><div class='add'>+0x8059 = 0xE096</div><div class='add'>+0x805A = 0xE097</div><div class='add'>+0x805B = 0xE098</div><div class='add'>+0x805C = 0xE099</div><div class='add'>+0x805D = 0xE09A</div><div class='add'>+0x805E = 0xE09B</div><div class='add'>+0x805F = 0xE09C</div><div class='add'>+0x8060 = 0xE09D</div><div class='add'>+0x8061 = 0xE09E</div><div class='add'>+0x8062 = 0xE09F</div><div class='add'>+0x8063 = 0xE0A0</div><div class='add'>+0x8064 = 0xE0A1</div><div class='add'>+0x8065 = 0xE0A2</div><div class='add'>+0x8066 = 0xE0A3</div><div class='add'>+0x8067 = 0xE0A4</div><div class='add'>+0x8068 = 0xE0A5</div><div class='add'>+0x8069 = 0xE0A6</div><div class='add'>+0x806A = 0xE0A7</div><div class='add'>+0x806B = 0xE0A8</div><div class='add'>+0x806C = 0xE0A9</div><div class='add'>+0x806D = 0xE0AA</div><div class='add'>+0x806E = 0xE0AB</div><div class='add'>+0x806F = 0xE0AC</div><div class='add'>+0x8070 = 0xE0AD</div><div class='add'>+0x8071 = 0xE0AE</div><div class='add'>+0x8072 = 0xE0AF</div><div class='add'>+0x8073 = 0xE0B0</div><div class='add'>+0x8074 = 0xE0B1</div><div class='add'>+0x8075 = 0xE0B2</div><div class='add'>+0x8076 = 0xE0B3</div><div class='add'>+0x8077 = 0xE0B4</div><div class='add'>+0x8078 = 0xE0B5</div><div class='add'>+0x8079 = 0xE0B6</div><div class='add'>+0x807A = 0xE0B7</div><div class='add'>+0x807B = 0xE0B8</div><div class='add'>+0x807C = 0xE0B9</div><div class='add'>+0x807D = 0xE0BA</div><div class='add'>+0x807E = 0xE0BB</div><div class='add'>+0x8121 = 0xE0BC</div><div class='add'>+0x8122 = 0xE0BD</div><div class='add'>+0x8123 = 0xE0BE</div><div class='add'>+0x8124 = 0xE0BF</div><div class='add'>+0x8125 = 0xE0C0</div><div class='add'>+0x8126 = 0xE0C1</div><div class='add'>+0x8127 = 0xE0C2</div><div class='add'>+0x8128 = 0xE0C3</div><div class='add'>+0x8129 = 0xE0C4</div><div class='add'>+0x812A = 0xE0C5</div><div class='add'>+0x812B = 0xE0C6</div><div class='add'>+0x812C = 0xE0C7</div><div class='add'>+0x812D = 0xE0C8</div><div class='add'>+0x812E = 0xE0C9</div><div class='add'>+0x812F = 0xE0CA</div><div class='add'>+0x8130 = 0xE0CB</div><div class='add'>+0x8131 = 0xE0CC</div><div class='add'>+0x8132 = 0xE0CD</div><div class='add'>+0x8133 = 0xE0CE</div><div class='add'>+0x8134 = 0xE0CF</div><div class='add'>+0x8135 = 0xE0D0</div><div class='add'>+0x8136 = 0xE0D1</div><div class='add'>+0x8137 = 0xE0D2</div><div class='add'>+0x8138 = 0xE0D3</div><div class='add'>+0x8139 = 0xE0D4</div><div class='add'>+0x813A = 0xE0D5</div><div class='add'>+0x813B = 0xE0D6</div><div class='add'>+0x813C = 0xE0D7</div><div class='add'>+0x813D = 0xE0D8</div><div class='add'>+0x813E = 0xE0D9</div><div class='add'>+0x813F = 0xE0DA</div><div class='add'>+0x8140 = 0xE0DB</div><div class='add'>+0x8141 = 0xE0DC</div><div class='add'>+0x8142 = 0xE0DD</div><div class='add'>+0x8143 = 0xE0DE</div><div class='add'>+0x8144 = 0xE0DF</div><div class='add'>+0x8145 = 0xE0E0</div><div class='add'>+0x8146 = 0xE0E1</div><div class='add'>+0x8147 = 0xE0E2</div><div class='add'>+0x8148 = 0xE0E3</div><div class='add'>+0x8149 = 0xE0E4</div><div class='add'>+0x814A = 0xE0E5</div><div class='add'>+0x814B = 0xE0E6</div><div class='add'>+0x814C = 0xE0E7</div><div class='add'>+0x814D = 0xE0E8</div><div class='add'>+0x814E = 0xE0E9</div><div class='add'>+0x814F = 0xE0EA</div><div class='add'>+0x8150 = 0xE0EB</div><div class='add'>+0x8151 = 0xE0EC</div><div class='add'>+0x8152 = 0xE0ED</div><div class='add'>+0x8153 = 0xE0EE</div><div class='add'>+0x8154 = 0xE0EF</div><div class='add'>+0x8155 = 0xE0F0</div><div class='add'>+0x8156 = 0xE0F1</div><div class='add'>+0x8157 = 0xE0F2</div><div class='add'>+0x8158 = 0xE0F3</div><div class='add'>+0x8159 = 0xE0F4</div><div class='add'>+0x815A = 0xE0F5</div><div class='add'>+0x815B = 0xE0F6</div><div class='add'>+0x815C = 0xE0F7</div><div class='add'>+0x815D = 0xE0F8</div><div class='add'>+0x815E = 0xE0F9</div><div class='add'>+0x815F = 0xE0FA</div><div class='add'>+0x8160 = 0xE0FB</div><div class='add'>+0x8161 = 0xE0FC</div><div class='add'>+0x8162 = 0xE0FD</div><div class='add'>+0x8163 = 0xE0FE</div><div class='add'>+0x8164 = 0xE0FF</div><div class='add'>+0x8165 = 0xE100</div><div class='add'>+0x8166 = 0xE101</div><div class='add'>+0x8167 = 0xE102</div><div class='add'>+0x8168 = 0xE103</div><div class='add'>+0x8169 = 0xE104</div><div class='add'>+0x816A = 0xE105</div><div class='add'>+0x816B = 0xE106</div><div class='add'>+0x816C = 0xE107</div><div class='add'>+0x816D = 0xE108</div><div class='add'>+0x816E = 0xE109</div><div class='add'>+0x816F = 0xE10A</div><div class='add'>+0x8170 = 0xE10B</div><div class='add'>+0x8171 = 0xE10C</div><div class='add'>+0x8172 = 0xE10D</div><div class='add'>+0x8173 = 0xE10E</div><div class='add'>+0x8174 = 0xE10F</div><div class='add'>+0x8175 = 0xE110</div><div class='add'>+0x8176 = 0xE111</div><div class='add'>+0x8177 = 0xE112</div><div class='add'>+0x8178 = 0xE113</div><div class='add'>+0x8179 = 0xE114</div><div class='add'>+0x817A = 0xE115</div><div class='add'>+0x817B = 0xE116</div><div class='add'>+0x817C = 0xE117</div><div class='add'>+0x817D = 0xE118</div><div class='add'>+0x817E = 0xE119</div><div class='add'>+0x8221 = 0xE11A</div><div class='add'>+0x8222 = 0xE11B</div><div class='add'>+0x8223 = 0xE11C</div><div class='add'>+0x8224 = 0xE11D</div><div class='add'>+0x8225 = 0xE11E</div><div class='add'>+0x8226 = 0xE11F</div><div class='add'>+0x8227 = 0xE120</div><div class='add'>+0x8228 = 0xE121</div><div class='add'>+0x8229 = 0xE122</div><div class='add'>+0x822A = 0xE123</div><div class='add'>+0x822B = 0xE124</div><div class='add'>+0x822C = 0xE125</div><div class='add'>+0x822D = 0xE126</div><div class='add'>+0x822E = 0xE127</div><div class='add'>+0x822F = 0xE128</div><div class='add'>+0x8230 = 0xE129</div><div class='add'>+0x8231 = 0xE12A</div><div class='add'>+0x8232 = 0xE12B</div><div class='add'>+0x8233 = 0xE12C</div><div class='add'>+0x8234 = 0xE12D</div><div class='add'>+0x8235 = 0xE12E</div><div class='add'>+0x8236 = 0xE12F</div><div class='add'>+0x8237 = 0xE130</div><div class='add'>+0x8238 = 0xE131</div><div class='add'>+0x8239 = 0xE132</div><div class='add'>+0x823A = 0xE133</div><div class='add'>+0x823B = 0xE134</div><div class='add'>+0x823C = 0xE135</div><div class='add'>+0x823D = 0xE136</div><div class='add'>+0x823E = 0xE137</div><div class='add'>+0x823F = 0xE138</div><div class='add'>+0x8240 = 0xE139</div><div class='add'>+0x8241 = 0xE13A</div><div class='add'>+0x8242 = 0xE13B</div><div class='add'>+0x8243 = 0xE13C</div><div class='add'>+0x8244 = 0xE13D</div><div class='add'>+0x8245 = 0xE13E</div><div class='add'>+0x8246 = 0xE13F</div><div class='add'>+0x8247 = 0xE140</div><div class='add'>+0x8248 = 0xE141</div><div class='add'>+0x8249 = 0xE142</div><div class='add'>+0x824A = 0xE143</div><div class='add'>+0x824B = 0xE144</div><div class='add'>+0x824C = 0xE145</div><div class='add'>+0x824D = 0xE146</div><div class='add'>+0x824E = 0xE147</div><div class='add'>+0x824F = 0xE148</div><div class='add'>+0x8250 = 0xE149</div><div class='add'>+0x8251 = 0xE14A</div><div class='add'>+0x8252 = 0xE14B</div><div class='add'>+0x8253 = 0xE14C</div><div class='add'>+0x8254 = 0xE14D</div><div class='add'>+0x8255 = 0xE14E</div><div class='add'>+0x8256 = 0xE14F</div><div class='add'>+0x8257 = 0xE150</div><div class='add'>+0x8258 = 0xE151</div><div class='add'>+0x8259 = 0xE152</div><div class='add'>+0x825A = 0xE153</div><div class='add'>+0x825B = 0xE154</div><div class='add'>+0x825C = 0xE155</div><div class='add'>+0x825D = 0xE156</div><div class='add'>+0x825E = 0xE157</div><div class='add'>+0x825F = 0xE158</div><div class='add'>+0x8260 = 0xE159</div><div class='add'>+0x8261 = 0xE15A</div><div class='add'>+0x8262 = 0xE15B</div><div class='add'>+0x8263 = 0xE15C</div><div class='add'>+0x8264 = 0xE15D</div><div class='add'>+0x8265 = 0xE15E</div><div class='add'>+0x8266 = 0xE15F</div><div class='add'>+0x8267 = 0xE160</div><div class='add'>+0x8268 = 0xE161</div><div class='add'>+0x8269 = 0xE162</div><div class='add'>+0x826A = 0xE163</div><div class='add'>+0x826B = 0xE164</div><div class='add'>+0x826C = 0xE165</div><div class='add'>+0x826D = 0xE166</div><div class='add'>+0x826E = 0xE167</div><div class='add'>+0x826F = 0xE168</div><div class='add'>+0x8270 = 0xE169</div><div class='add'>+0x8271 = 0xE16A</div><div class='add'>+0x8272 = 0xE16B</div><div class='add'>+0x8273 = 0xE16C</div><div class='add'>+0x8274 = 0xE16D</div><div class='add'>+0x8275 = 0xE16E</div><div class='add'>+0x8276 = 0xE16F</div><div class='add'>+0x8277 = 0xE170</div><div class='add'>+0x8278 = 0xE171</div><div class='add'>+0x8279 = 0xE172</div><div class='add'>+0x827A = 0xE173</div><div class='add'>+0x827B = 0xE174</div><div class='add'>+0x827C = 0xE175</div><div class='add'>+0x827D = 0xE176</div><div class='add'>+0x827E = 0xE177</div><div class='add'>+0x8321 = 0xE178</div><div class='add'>+0x8322 = 0xE179</div><div class='add'>+0x8323 = 0xE17A</div><div class='add'>+0x8324 = 0xE17B</div><div class='add'>+0x8325 = 0xE17C</div><div class='add'>+0x8326 = 0xE17D</div><div class='add'>+0x8327 = 0xE17E</div><div class='add'>+0x8328 = 0xE17F</div><div class='add'>+0x8329 = 0xE180</div><div class='add'>+0x832A = 0xE181</div><div class='add'>+0x832B = 0xE182</div><div class='add'>+0x832C = 0xE183</div><div class='add'>+0x832D = 0xE184</div><div class='add'>+0x832E = 0xE185</div><div class='add'>+0x832F = 0xE186</div><div class='add'>+0x8330 = 0xE187</div><div class='add'>+0x8331 = 0xE188</div><div class='add'>+0x8332 = 0xE189</div><div class='add'>+0x8333 = 0xE18A</div><div class='add'>+0x8334 = 0xE18B</div><div class='add'>+0x8335 = 0xE18C</div><div class='add'>+0x8336 = 0xE18D</div><div class='add'>+0x8337 = 0xE18E</div><div class='add'>+0x8338 = 0xE18F</div><div class='add'>+0x8339 = 0xE190</div><div class='add'>+0x833A = 0xE191</div><div class='add'>+0x833B = 0xE192</div><div class='add'>+0x833C = 0xE193</div><div class='add'>+0x833D = 0xE194</div><div class='add'>+0x833E = 0xE195</div><div class='add'>+0x833F = 0xE196</div><div class='add'>+0x8340 = 0xE197</div><div class='add'>+0x8341 = 0xE198</div><div class='add'>+0x8342 = 0xE199</div><div class='add'>+0x8343 = 0xE19A</div><div class='add'>+0x8344 = 0xE19B</div><div class='add'>+0x8345 = 0xE19C</div><div class='add'>+0x8346 = 0xE19D</div><div class='add'>+0x8347 = 0xE19E</div><div class='add'>+0x8348 = 0xE19F</div><div class='add'>+0x8349 = 0xE1A0</div><div class='add'>+0x834A = 0xE1A1</div><div class='add'>+0x834B = 0xE1A2</div><div class='add'>+0x834C = 0xE1A3</div><div class='add'>+0x834D = 0xE1A4</div><div class='add'>+0x834E = 0xE1A5</div><div class='add'>+0x834F = 0xE1A6</div><div class='add'>+0x8350 = 0xE1A7</div><div class='add'>+0x8351 = 0xE1A8</div><div class='add'>+0x8352 = 0xE1A9</div><div class='add'>+0x8353 = 0xE1AA</div><div class='add'>+0x8354 = 0xE1AB</div><div class='add'>+0x8355 = 0xE1AC</div><div class='add'>+0x8356 = 0xE1AD</div><div class='add'>+0x8357 = 0xE1AE</div><div class='add'>+0x8358 = 0xE1AF</div><div class='add'>+0x8359 = 0xE1B0</div><div class='add'>+0x835A = 0xE1B1</div><div class='add'>+0x835B = 0xE1B2</div><div class='add'>+0x835C = 0xE1B3</div><div class='add'>+0x835D = 0xE1B4</div><div class='add'>+0x835E = 0xE1B5</div><div class='add'>+0x835F = 0xE1B6</div><div class='add'>+0x8360 = 0xE1B7</div><div class='add'>+0x8361 = 0xE1B8</div><div class='add'>+0x8362 = 0xE1B9</div><div class='add'>+0x8363 = 0xE1BA</div><div class='add'>+0x8364 = 0xE1BB</div><div class='add'>+0x8365 = 0xE1BC</div><div class='add'>+0x8366 = 0xE1BD</div><div class='add'>+0x8367 = 0xE1BE</div><div class='add'>+0x8368 = 0xE1BF</div><div class='add'>+0x8369 = 0xE1C0</div><div class='add'>+0x836A = 0xE1C1</div><div class='add'>+0x836B = 0xE1C2</div><div class='add'>+0x836C = 0xE1C3</div><div class='add'>+0x836D = 0xE1C4</div><div class='add'>+0x836E = 0xE1C5</div><div class='add'>+0x836F = 0xE1C6</div><div class='add'>+0x8370 = 0xE1C7</div><div class='add'>+0x8371 = 0xE1C8</div><div class='add'>+0x8372 = 0xE1C9</div><div class='add'>+0x8373 = 0xE1CA</div><div class='add'>+0x8374 = 0xE1CB</div><div class='add'>+0x8375 = 0xE1CC</div><div class='add'>+0x8376 = 0xE1CD</div><div class='add'>+0x8377 = 0xE1CE</div><div class='add'>+0x8378 = 0xE1CF</div><div class='add'>+0x8379 = 0xE1D0</div><div class='add'>+0x837A = 0xE1D1</div><div class='add'>+0x837B = 0xE1D2</div><div class='add'>+0x837C = 0xE1D3</div><div class='add'>+0x837D = 0xE1D4</div><div class='add'>+0x837E = 0xE1D5</div><div class='add'>+0x8421 = 0xE1D6</div><div class='add'>+0x8422 = 0xE1D7</div><div class='add'>+0x8423 = 0xE1D8</div><div class='add'>+0x8424 = 0xE1D9</div><div class='add'>+0x8425 = 0xE1DA</div><div class='add'>+0x8426 = 0xE1DB</div><div class='add'>+0x8427 = 0xE1DC</div><div class='add'>+0x8428 = 0xE1DD</div><div class='add'>+0x8429 = 0xE1DE</div><div class='add'>+0x842A = 0xE1DF</div><div class='add'>+0x842B = 0xE1E0</div><div class='add'>+0x842C = 0xE1E1</div><div class='add'>+0x842D = 0xE1E2</div><div class='add'>+0x842E = 0xE1E3</div><div class='add'>+0x842F = 0xE1E4</div><div class='add'>+0x8430 = 0xE1E5</div><div class='add'>+0x8431 = 0xE1E6</div><div class='add'>+0x8432 = 0xE1E7</div><div class='add'>+0x8433 = 0xE1E8</div><div class='add'>+0x8434 = 0xE1E9</div><div class='add'>+0x8435 = 0xE1EA</div><div class='add'>+0x8436 = 0xE1EB</div><div class='add'>+0x8437 = 0xE1EC</div><div class='add'>+0x8438 = 0xE1ED</div><div class='add'>+0x8439 = 0xE1EE</div><div class='add'>+0x843A = 0xE1EF</div><div class='add'>+0x843B = 0xE1F0</div><div class='add'>+0x843C = 0xE1F1</div><div class='add'>+0x843D = 0xE1F2</div><div class='add'>+0x843E = 0xE1F3</div><div class='add'>+0x843F = 0xE1F4</div><div class='add'>+0x8440 = 0xE1F5</div><div class='add'>+0x8441 = 0xE1F6</div><div class='add'>+0x8442 = 0xE1F7</div><div class='add'>+0x8443 = 0xE1F8</div><div class='add'>+0x8444 = 0xE1F9</div><div class='add'>+0x8445 = 0xE1FA</div><div class='add'>+0x8446 = 0xE1FB</div><div class='add'>+0x8447 = 0xE1FC</div><div class='add'>+0x8448 = 0xE1FD</div><div class='add'>+0x8449 = 0xE1FE</div><div class='add'>+0x844A = 0xE1FF</div><div class='add'>+0x844B = 0xE200</div><div class='add'>+0x844C = 0xE201</div><div class='add'>+0x844D = 0xE202</div><div class='add'>+0x844E = 0xE203</div><div class='add'>+0x844F = 0xE204</div><div class='add'>+0x8450 = 0xE205</div><div class='add'>+0x8451 = 0xE206</div><div class='add'>+0x8452 = 0xE207</div><div class='add'>+0x8453 = 0xE208</div><div class='add'>+0x8454 = 0xE209</div><div class='add'>+0x8455 = 0xE20A</div><div class='add'>+0x8456 = 0xE20B</div><div class='add'>+0x8457 = 0xE20C</div><div class='add'>+0x8458 = 0xE20D</div><div class='add'>+0x8459 = 0xE20E</div><div class='add'>+0x845A = 0xE20F</div><div class='add'>+0x845B = 0xE210</div><div class='add'>+0x845C = 0xE211</div><div class='add'>+0x845D = 0xE212</div><div class='add'>+0x845E = 0xE213</div><div class='add'>+0x845F = 0xE214</div><div class='add'>+0x8460 = 0xE215</div><div class='add'>+0x8461 = 0xE216</div><div class='add'>+0x8462 = 0xE217</div><div class='add'>+0x8463 = 0xE218</div><div class='add'>+0x8464 = 0xE219</div><div class='add'>+0x8465 = 0xE21A</div><div class='add'>+0x8466 = 0xE21B</div><div class='add'>+0x8467 = 0xE21C</div><div class='add'>+0x8468 = 0xE21D</div><div class='add'>+0x8469 = 0xE21E</div><div class='add'>+0x846A = 0xE21F</div><div class='add'>+0x846B = 0xE220</div><div class='add'>+0x846C = 0xE221</div><div class='add'>+0x846D = 0xE222</div><div class='add'>+0x846E = 0xE223</div><div class='add'>+0x846F = 0xE224</div><div class='add'>+0x8470 = 0xE225</div><div class='add'>+0x8471 = 0xE226</div><div class='add'>+0x8472 = 0xE227</div><div class='add'>+0x8473 = 0xE228</div><div class='add'>+0x8474 = 0xE229</div><div class='add'>+0x8475 = 0xE22A</div><div class='add'>+0x8476 = 0xE22B</div><div class='add'>+0x8477 = 0xE22C</div><div class='add'>+0x8478 = 0xE22D</div><div class='add'>+0x8479 = 0xE22E</div><div class='add'>+0x847A = 0xE22F</div><div class='add'>+0x847B = 0xE230</div><div class='add'>+0x847C = 0xE231</div><div class='add'>+0x847D = 0xE232</div><div class='add'>+0x847E = 0xE233</div><div class='add'>+0x8521 = 0xE234</div><div class='add'>+0x8522 = 0xE235</div><div class='add'>+0x8523 = 0xE236</div><div class='add'>+0x8524 = 0xE237</div><div class='add'>+0x8525 = 0xE238</div><div class='add'>+0x8526 = 0xE239</div><div class='add'>+0x8527 = 0xE23A</div><div class='add'>+0x8528 = 0xE23B</div><div class='add'>+0x8529 = 0xE23C</div><div class='add'>+0x852A = 0xE23D</div><div class='add'>+0x852B = 0xE23E</div><div class='add'>+0x852C = 0xE23F</div><div class='add'>+0x852D = 0xE240</div><div class='add'>+0x852E = 0xE241</div><div class='add'>+0x852F = 0xE242</div><div class='add'>+0x8530 = 0xE243</div><div class='add'>+0x8531 = 0xE244</div><div class='add'>+0x8532 = 0xE245</div><div class='add'>+0x8533 = 0xE246</div><div class='add'>+0x8534 = 0xE247</div><div class='add'>+0x8535 = 0xE248</div><div class='add'>+0x8536 = 0xE249</div><div class='add'>+0x8537 = 0xE24A</div><div class='add'>+0x8538 = 0xE24B</div><div class='add'>+0x8539 = 0xE24C</div><div class='add'>+0x853A = 0xE24D</div><div class='add'>+0x853B = 0xE24E</div><div class='add'>+0x853C = 0xE24F</div><div class='add'>+0x853D = 0xE250</div><div class='add'>+0x853E = 0xE251</div><div class='add'>+0x853F = 0xE252</div><div class='add'>+0x8540 = 0xE253</div><div class='add'>+0x8541 = 0xE254</div><div class='add'>+0x8542 = 0xE255</div><div class='add'>+0x8543 = 0xE256</div><div class='add'>+0x8544 = 0xE257</div><div class='add'>+0x8545 = 0xE258</div><div class='add'>+0x8546 = 0xE259</div><div class='add'>+0x8547 = 0xE25A</div><div class='add'>+0x8548 = 0xE25B</div><div class='add'>+0x8549 = 0xE25C</div><div class='add'>+0x854A = 0xE25D</div><div class='add'>+0x854B = 0xE25E</div><div class='add'>+0x854C = 0xE25F</div><div class='add'>+0x854D = 0xE260</div><div class='add'>+0x854E = 0xE261</div><div class='add'>+0x854F = 0xE262</div><div class='add'>+0x8550 = 0xE263</div><div class='add'>+0x8551 = 0xE264</div><div class='add'>+0x8552 = 0xE265</div><div class='add'>+0x8553 = 0xE266</div><div class='add'>+0x8554 = 0xE267</div><div class='add'>+0x8555 = 0xE268</div><div class='add'>+0x8556 = 0xE269</div><div class='add'>+0x8557 = 0xE26A</div><div class='add'>+0x8558 = 0xE26B</div><div class='add'>+0x8559 = 0xE26C</div><div class='add'>+0x855A = 0xE26D</div><div class='add'>+0x855B = 0xE26E</div><div class='add'>+0x855C = 0xE26F</div><div class='add'>+0x855D = 0xE270</div><div class='add'>+0x855E = 0xE271</div><div class='add'>+0x855F = 0xE272</div><div class='add'>+0x8560 = 0xE273</div><div class='add'>+0x8561 = 0xE274</div><div class='add'>+0x8562 = 0xE275</div><div class='add'>+0x8563 = 0xE276</div><div class='add'>+0x8564 = 0xE277</div><div class='add'>+0x8565 = 0xE278</div><div class='add'>+0x8566 = 0xE279</div><div class='add'>+0x8567 = 0xE27A</div><div class='add'>+0x8568 = 0xE27B</div><div class='add'>+0x8569 = 0xE27C</div><div class='add'>+0x856A = 0xE27D</div><div class='add'>+0x856B = 0xE27E</div><div class='add'>+0x856C = 0xE27F</div><div class='add'>+0x856D = 0xE280</div><div class='add'>+0x856E = 0xE281</div><div class='add'>+0x856F = 0xE282</div><div class='add'>+0x8570 = 0xE283</div><div class='add'>+0x8571 = 0xE284</div><div class='add'>+0x8572 = 0xE285</div><div class='add'>+0x8573 = 0xE286</div><div class='add'>+0x8574 = 0xE287</div><div class='add'>+0x8575 = 0xE288</div><div class='add'>+0x8576 = 0xE289</div><div class='add'>+0x8577 = 0xE28A</div><div class='add'>+0x8578 = 0xE28B</div><div class='add'>+0x8579 = 0xE28C</div><div class='add'>+0x857A = 0xE28D</div><div class='add'>+0x857B = 0xE28E</div><div class='add'>+0x857C = 0xE28F</div><div class='add'>+0x857D = 0xE290</div><div class='add'>+0x857E = 0xE291</div><div class='add'>+0x8621 = 0xE292</div><div class='add'>+0x8622 = 0xE293</div><div class='add'>+0x8623 = 0xE294</div><div class='add'>+0x8624 = 0xE295</div><div class='add'>+0x8625 = 0xE296</div><div class='add'>+0x8626 = 0xE297</div><div class='add'>+0x8627 = 0xE298</div><div class='add'>+0x8628 = 0xE299</div><div class='add'>+0x8629 = 0xE29A</div><div class='add'>+0x862A = 0xE29B</div><div class='add'>+0x862B = 0xE29C</div><div class='add'>+0x862C = 0xE29D</div><div class='add'>+0x862D = 0xE29E</div><div class='add'>+0x862E = 0xE29F</div><div class='add'>+0x862F = 0xE2A0</div><div class='add'>+0x8630 = 0xE2A1</div><div class='add'>+0x8631 = 0xE2A2</div><div class='add'>+0x8632 = 0xE2A3</div><div class='add'>+0x8633 = 0xE2A4</div><div class='add'>+0x8634 = 0xE2A5</div><div class='add'>+0x8635 = 0xE2A6</div><div class='add'>+0x8636 = 0xE2A7</div><div class='add'>+0x8637 = 0xE2A8</div><div class='add'>+0x8638 = 0xE2A9</div><div class='add'>+0x8639 = 0xE2AA</div><div class='add'>+0x863A = 0xE2AB</div><div class='add'>+0x863B = 0xE2AC</div><div class='add'>+0x863C = 0xE2AD</div><div class='add'>+0x863D = 0xE2AE</div><div class='add'>+0x863E = 0xE2AF</div><div class='add'>+0x863F = 0xE2B0</div><div class='add'>+0x8640 = 0xE2B1</div><div class='add'>+0x8641 = 0xE2B2</div><div class='add'>+0x8642 = 0xE2B3</div><div class='add'>+0x8643 = 0xE2B4</div><div class='add'>+0x8644 = 0xE2B5</div><div class='add'>+0x8645 = 0xE2B6</div><div class='add'>+0x8646 = 0xE2B7</div><div class='add'>+0x8647 = 0xE2B8</div><div class='add'>+0x8648 = 0xE2B9</div><div class='add'>+0x8649 = 0xE2BA</div><div class='add'>+0x864A = 0xE2BB</div><div class='add'>+0x864B = 0xE2BC</div><div class='add'>+0x864C = 0xE2BD</div><div class='add'>+0x864D = 0xE2BE</div><div class='add'>+0x864E = 0xE2BF</div><div class='add'>+0x864F = 0xE2C0</div><div class='add'>+0x8650 = 0xE2C1</div><div class='add'>+0x8651 = 0xE2C2</div><div class='add'>+0x8652 = 0xE2C3</div><div class='add'>+0x8653 = 0xE2C4</div><div class='add'>+0x8654 = 0xE2C5</div><div class='add'>+0x8655 = 0xE2C6</div><div class='add'>+0x8656 = 0xE2C7</div><div class='add'>+0x8657 = 0xE2C8</div><div class='add'>+0x8658 = 0xE2C9</div><div class='add'>+0x8659 = 0xE2CA</div><div class='add'>+0x865A = 0xE2CB</div><div class='add'>+0x865B = 0xE2CC</div><div class='add'>+0x865C = 0xE2CD</div><div class='add'>+0x865D = 0xE2CE</div><div class='add'>+0x865E = 0xE2CF</div><div class='add'>+0x865F = 0xE2D0</div><div class='add'>+0x8660 = 0xE2D1</div><div class='add'>+0x8661 = 0xE2D2</div><div class='add'>+0x8662 = 0xE2D3</div><div class='add'>+0x8663 = 0xE2D4</div><div class='add'>+0x8664 = 0xE2D5</div><div class='add'>+0x8665 = 0xE2D6</div><div class='add'>+0x8666 = 0xE2D7</div><div class='add'>+0x8667 = 0xE2D8</div><div class='add'>+0x8668 = 0xE2D9</div><div class='add'>+0x8669 = 0xE2DA</div><div class='add'>+0x866A = 0xE2DB</div><div class='add'>+0x866B = 0xE2DC</div><div class='add'>+0x866C = 0xE2DD</div><div class='add'>+0x866D = 0xE2DE</div><div class='add'>+0x866E = 0xE2DF</div><div class='add'>+0x866F = 0xE2E0</div><div class='add'>+0x8670 = 0xE2E1</div><div class='add'>+0x8671 = 0xE2E2</div><div class='add'>+0x8672 = 0xE2E3</div><div class='add'>+0x8673 = 0xE2E4</div><div class='add'>+0x8674 = 0xE2E5</div><div class='add'>+0x8675 = 0xE2E6</div><div class='add'>+0x8676 = 0xE2E7</div><div class='add'>+0x8677 = 0xE2E8</div><div class='add'>+0x8678 = 0xE2E9</div><div class='add'>+0x8679 = 0xE2EA</div><div class='add'>+0x867A = 0xE2EB</div><div class='add'>+0x867B = 0xE2EC</div><div class='add'>+0x867C = 0xE2ED</div><div class='add'>+0x867D = 0xE2EE</div><div class='add'>+0x867E = 0xE2EF</div><div class='add'>+0x8721 = 0xE2F0</div><div class='add'>+0x8722 = 0xE2F1</div><div class='add'>+0x8723 = 0xE2F2</div><div class='add'>+0x8724 = 0xE2F3</div><div class='add'>+0x8725 = 0xE2F4</div><div class='add'>+0x8726 = 0xE2F5</div><div class='add'>+0x8727 = 0xE2F6</div><div class='add'>+0x8728 = 0xE2F7</div><div class='add'>+0x8729 = 0xE2F8</div><div class='add'>+0x872A = 0xE2F9</div><div class='add'>+0x872B = 0xE2FA</div><div class='add'>+0x872C = 0xE2FB</div><div class='add'>+0x872D = 0xE2FC</div><div class='add'>+0x872E = 0xE2FD</div><div class='add'>+0x872F = 0xE2FE</div><div class='add'>+0x8730 = 0xE2FF</div><div class='add'>+0x8731 = 0xE300</div><div class='add'>+0x8732 = 0xE301</div><div class='add'>+0x8733 = 0xE302</div><div class='add'>+0x8734 = 0xE303</div><div class='add'>+0x8735 = 0xE304</div><div class='add'>+0x8736 = 0xE305</div><div class='add'>+0x8737 = 0xE306</div><div class='add'>+0x8738 = 0xE307</div><div class='add'>+0x8739 = 0xE308</div><div class='add'>+0x873A = 0xE309</div><div class='add'>+0x873B = 0xE30A</div><div class='add'>+0x873C = 0xE30B</div><div class='add'>+0x873D = 0xE30C</div><div class='add'>+0x873E = 0xE30D</div><div class='add'>+0x873F = 0xE30E</div><div class='add'>+0x8740 = 0xE30F</div><div class='add'>+0x8741 = 0xE310</div><div class='add'>+0x8742 = 0xE311</div><div class='add'>+0x8743 = 0xE312</div><div class='add'>+0x8744 = 0xE313</div><div class='add'>+0x8745 = 0xE314</div><div class='add'>+0x8746 = 0xE315</div><div class='add'>+0x8747 = 0xE316</div><div class='add'>+0x8748 = 0xE317</div><div class='add'>+0x8749 = 0xE318</div><div class='add'>+0x874A = 0xE319</div><div class='add'>+0x874B = 0xE31A</div><div class='add'>+0x874C = 0xE31B</div><div class='add'>+0x874D = 0xE31C</div><div class='add'>+0x874E = 0xE31D</div><div class='add'>+0x874F = 0xE31E</div><div class='add'>+0x8750 = 0xE31F</div><div class='add'>+0x8751 = 0xE320</div><div class='add'>+0x8752 = 0xE321</div><div class='add'>+0x8753 = 0xE322</div><div class='add'>+0x8754 = 0xE323</div><div class='add'>+0x8755 = 0xE324</div><div class='add'>+0x8756 = 0xE325</div><div class='add'>+0x8757 = 0xE326</div><div class='add'>+0x8758 = 0xE327</div><div class='add'>+0x8759 = 0xE328</div><div class='add'>+0x875A = 0xE329</div><div class='add'>+0x875B = 0xE32A</div><div class='add'>+0x875C = 0xE32B</div><div class='add'>+0x875D = 0xE32C</div><div class='add'>+0x875E = 0xE32D</div><div class='add'>+0x875F = 0xE32E</div><div class='add'>+0x8760 = 0xE32F</div><div class='add'>+0x8761 = 0xE330</div><div class='add'>+0x8762 = 0xE331</div><div class='add'>+0x8763 = 0xE332</div><div class='add'>+0x8764 = 0xE333</div><div class='add'>+0x8765 = 0xE334</div><div class='add'>+0x8766 = 0xE335</div><div class='add'>+0x8767 = 0xE336</div><div class='add'>+0x8768 = 0xE337</div><div class='add'>+0x8769 = 0xE338</div><div class='add'>+0x876A = 0xE339</div><div class='add'>+0x876B = 0xE33A</div><div class='add'>+0x876C = 0xE33B</div><div class='add'>+0x876D = 0xE33C</div><div class='add'>+0x876E = 0xE33D</div><div class='add'>+0x876F = 0xE33E</div><div class='add'>+0x8770 = 0xE33F</div><div class='add'>+0x8771 = 0xE340</div><div class='add'>+0x8772 = 0xE341</div><div class='add'>+0x8773 = 0xE342</div><div class='add'>+0x8774 = 0xE343</div><div class='add'>+0x8775 = 0xE344</div><div class='add'>+0x8776 = 0xE345</div><div class='add'>+0x8777 = 0xE346</div><div class='add'>+0x8778 = 0xE347</div><div class='add'>+0x8779 = 0xE348</div><div class='add'>+0x877A = 0xE349</div><div class='add'>+0x877B = 0xE34A</div><div class='add'>+0x877C = 0xE34B</div><div class='add'>+0x877D = 0xE34C</div><div class='add'>+0x877E = 0xE34D</div><div class='add'>+0x8821 = 0xE34E</div><div class='add'>+0x8822 = 0xE34F</div><div class='add'>+0x8823 = 0xE350</div><div class='add'>+0x8824 = 0xE351</div><div class='add'>+0x8825 = 0xE352</div><div class='add'>+0x8826 = 0xE353</div><div class='add'>+0x8827 = 0xE354</div><div class='add'>+0x8828 = 0xE355</div><div class='add'>+0x8829 = 0xE356</div><div class='add'>+0x882A = 0xE357</div><div class='add'>+0x882B = 0xE358</div><div class='add'>+0x882C = 0xE359</div><div class='add'>+0x882D = 0xE35A</div><div class='add'>+0x882E = 0xE35B</div><div class='add'>+0x882F = 0xE35C</div><div class='add'>+0x8830 = 0xE35D</div><div class='add'>+0x8831 = 0xE35E</div><div class='add'>+0x8832 = 0xE35F</div><div class='add'>+0x8833 = 0xE360</div><div class='add'>+0x8834 = 0xE361</div><div class='add'>+0x8835 = 0xE362</div><div class='add'>+0x8836 = 0xE363</div><div class='add'>+0x8837 = 0xE364</div><div class='add'>+0x8838 = 0xE365</div><div class='add'>+0x8839 = 0xE366</div><div class='add'>+0x883A = 0xE367</div><div class='add'>+0x883B = 0xE368</div><div class='add'>+0x883C = 0xE369</div><div class='add'>+0x883D = 0xE36A</div><div class='add'>+0x883E = 0xE36B</div><div class='add'>+0x883F = 0xE36C</div><div class='add'>+0x8840 = 0xE36D</div><div class='add'>+0x8841 = 0xE36E</div><div class='add'>+0x8842 = 0xE36F</div><div class='add'>+0x8843 = 0xE370</div><div class='add'>+0x8844 = 0xE371</div><div class='add'>+0x8845 = 0xE372</div><div class='add'>+0x8846 = 0xE373</div><div class='add'>+0x8847 = 0xE374</div><div class='add'>+0x8848 = 0xE375</div><div class='add'>+0x8849 = 0xE376</div><div class='add'>+0x884A = 0xE377</div><div class='add'>+0x884B = 0xE378</div><div class='add'>+0x884C = 0xE379</div><div class='add'>+0x884D = 0xE37A</div><div class='add'>+0x884E = 0xE37B</div><div class='add'>+0x884F = 0xE37C</div><div class='add'>+0x8850 = 0xE37D</div><div class='add'>+0x8851 = 0xE37E</div><div class='add'>+0x8852 = 0xE37F</div><div class='add'>+0x8853 = 0xE380</div><div class='add'>+0x8854 = 0xE381</div><div class='add'>+0x8855 = 0xE382</div><div class='add'>+0x8856 = 0xE383</div><div class='add'>+0x8857 = 0xE384</div><div class='add'>+0x8858 = 0xE385</div><div class='add'>+0x8859 = 0xE386</div><div class='add'>+0x885A = 0xE387</div><div class='add'>+0x885B = 0xE388</div><div class='add'>+0x885C = 0xE389</div><div class='add'>+0x885D = 0xE38A</div><div class='add'>+0x885E = 0xE38B</div><div class='add'>+0x885F = 0xE38C</div><div class='add'>+0x8860 = 0xE38D</div><div class='add'>+0x8861 = 0xE38E</div><div class='add'>+0x8862 = 0xE38F</div><div class='add'>+0x8863 = 0xE390</div><div class='add'>+0x8864 = 0xE391</div><div class='add'>+0x8865 = 0xE392</div><div class='add'>+0x8866 = 0xE393</div><div class='add'>+0x8867 = 0xE394</div><div class='add'>+0x8868 = 0xE395</div><div class='add'>+0x8869 = 0xE396</div><div class='add'>+0x886A = 0xE397</div><div class='add'>+0x886B = 0xE398</div><div class='add'>+0x886C = 0xE399</div><div class='add'>+0x886D = 0xE39A</div><div class='add'>+0x886E = 0xE39B</div><div class='add'>+0x886F = 0xE39C</div><div class='add'>+0x8870 = 0xE39D</div><div class='add'>+0x8871 = 0xE39E</div><div class='add'>+0x8872 = 0xE39F</div><div class='add'>+0x8873 = 0xE3A0</div><div class='add'>+0x8874 = 0xE3A1</div><div class='add'>+0x8875 = 0xE3A2</div><div class='add'>+0x8876 = 0xE3A3</div><div class='add'>+0x8877 = 0xE3A4</div><div class='add'>+0x8878 = 0xE3A5</div><div class='add'>+0x8879 = 0xE3A6</div><div class='add'>+0x887A = 0xE3A7</div><div class='add'>+0x887B = 0xE3A8</div><div class='add'>+0x887C = 0xE3A9</div><div class='add'>+0x887D = 0xE3AA</div><div class='add'>+0x887E = 0xE3AB</div><div class='add'>+0x8921 = 0xE3AC</div><div class='add'>+0x8922 = 0xE3AD</div><div class='add'>+0x8923 = 0xE3AE</div><div class='add'>+0x8924 = 0xE3AF</div><div class='add'>+0x8925 = 0xE3B0</div><div class='add'>+0x8926 = 0xE3B1</div><div class='add'>+0x8927 = 0xE3B2</div><div class='add'>+0x8928 = 0xE3B3</div><div class='add'>+0x8929 = 0xE3B4</div><div class='add'>+0x892A = 0xE3B5</div><div class='add'>+0x892B = 0xE3B6</div><div class='add'>+0x892C = 0xE3B7</div><div class='add'>+0x892D = 0xE3B8</div><div class='add'>+0x892E = 0xE3B9</div><div class='add'>+0x892F = 0xE3BA</div><div class='add'>+0x8930 = 0xE3BB</div><div class='add'>+0x8931 = 0xE3BC</div><div class='add'>+0x8932 = 0xE3BD</div><div class='add'>+0x8933 = 0xE3BE</div><div class='add'>+0x8934 = 0xE3BF</div><div class='add'>+0x8935 = 0xE3C0</div><div class='add'>+0x8936 = 0xE3C1</div><div class='add'>+0x8937 = 0xE3C2</div><div class='add'>+0x8938 = 0xE3C3</div><div class='add'>+0x8939 = 0xE3C4</div><div class='add'>+0x893A = 0xE3C5</div><div class='add'>+0x893B = 0xE3C6</div><div class='add'>+0x893C = 0xE3C7</div><div class='add'>+0x893D = 0xE3C8</div><div class='add'>+0x893E = 0xE3C9</div><div class='add'>+0x893F = 0xE3CA</div><div class='add'>+0x8940 = 0xE3CB</div><div class='add'>+0x8941 = 0xE3CC</div><div class='add'>+0x8942 = 0xE3CD</div><div class='add'>+0x8943 = 0xE3CE</div><div class='add'>+0x8944 = 0xE3CF</div><div class='add'>+0x8945 = 0xE3D0</div><div class='add'>+0x8946 = 0xE3D1</div><div class='add'>+0x8947 = 0xE3D2</div><div class='add'>+0x8948 = 0xE3D3</div><div class='add'>+0x8949 = 0xE3D4</div><div class='add'>+0x894A = 0xE3D5</div><div class='add'>+0x894B = 0xE3D6</div><div class='add'>+0x894C = 0xE3D7</div><div class='add'>+0x894D = 0xE3D8</div><div class='add'>+0x894E = 0xE3D9</div><div class='add'>+0x894F = 0xE3DA</div><div class='add'>+0x8950 = 0xE3DB</div><div class='add'>+0x8951 = 0xE3DC</div><div class='add'>+0x8952 = 0xE3DD</div><div class='add'>+0x8953 = 0xE3DE</div><div class='add'>+0x8954 = 0xE3DF</div><div class='add'>+0x8955 = 0xE3E0</div><div class='add'>+0x8956 = 0xE3E1</div><div class='add'>+0x8957 = 0xE3E2</div><div class='add'>+0x8958 = 0xE3E3</div><div class='add'>+0x8959 = 0xE3E4</div><div class='add'>+0x895A = 0xE3E5</div><div class='add'>+0x895B = 0xE3E6</div><div class='add'>+0x895C = 0xE3E7</div><div class='add'>+0x895D = 0xE3E8</div><div class='add'>+0x895E = 0xE3E9</div><div class='add'>+0x895F = 0xE3EA</div><div class='add'>+0x8960 = 0xE3EB</div><div class='add'>+0x8961 = 0xE3EC</div><div class='add'>+0x8962 = 0xE3ED</div><div class='add'>+0x8963 = 0xE3EE</div><div class='add'>+0x8964 = 0xE3EF</div><div class='add'>+0x8965 = 0xE3F0</div><div class='add'>+0x8966 = 0xE3F1</div><div class='add'>+0x8967 = 0xE3F2</div><div class='add'>+0x8968 = 0xE3F3</div><div class='add'>+0x8969 = 0xE3F4</div><div class='add'>+0x896A = 0xE3F5</div><div class='add'>+0x896B = 0xE3F6</div><div class='add'>+0x896C = 0xE3F7</div><div class='add'>+0x896D = 0xE3F8</div><div class='add'>+0x896E = 0xE3F9</div><div class='add'>+0x896F = 0xE3FA</div><div class='add'>+0x8970 = 0xE3FB</div><div class='add'>+0x8971 = 0xE3FC</div><div class='add'>+0x8972 = 0xE3FD</div><div class='add'>+0x8973 = 0xE3FE</div><div class='add'>+0x8974 = 0xE3FF</div><div class='add'>+0x8975 = 0xE400</div><div class='add'>+0x8976 = 0xE401</div><div class='add'>+0x8977 = 0xE402</div><div class='add'>+0x8978 = 0xE403</div><div class='add'>+0x8979 = 0xE404</div><div class='add'>+0x897A = 0xE405</div><div class='add'>+0x897B = 0xE406</div><div class='add'>+0x897C = 0xE407</div><div class='add'>+0x897D = 0xE408</div><div class='add'>+0x897E = 0xE409</div><div class='add'>+0x8A21 = 0xE40A</div><div class='add'>+0x8A22 = 0xE40B</div><div class='add'>+0x8A23 = 0xE40C</div><div class='add'>+0x8A24 = 0xE40D</div><div class='add'>+0x8A25 = 0xE40E</div><div class='add'>+0x8A26 = 0xE40F</div><div class='add'>+0x8A27 = 0xE410</div><div class='add'>+0x8A28 = 0xE411</div><div class='add'>+0x8A29 = 0xE412</div><div class='add'>+0x8A2A = 0xE413</div><div class='add'>+0x8A2B = 0xE414</div><div class='add'>+0x8A2C = 0xE415</div><div class='add'>+0x8A2D = 0xE416</div><div class='add'>+0x8A2E = 0xE417</div><div class='add'>+0x8A2F = 0xE418</div><div class='add'>+0x8A30 = 0xE419</div><div class='add'>+0x8A31 = 0xE41A</div><div class='add'>+0x8A32 = 0xE41B</div><div class='add'>+0x8A33 = 0xE41C</div><div class='add'>+0x8A34 = 0xE41D</div><div class='add'>+0x8A35 = 0xE41E</div><div class='add'>+0x8A36 = 0xE41F</div><div class='add'>+0x8A37 = 0xE420</div><div class='add'>+0x8A38 = 0xE421</div><div class='add'>+0x8A39 = 0xE422</div><div class='add'>+0x8A3A = 0xE423</div><div class='add'>+0x8A3B = 0xE424</div><div class='add'>+0x8A3C = 0xE425</div><div class='add'>+0x8A3D = 0xE426</div><div class='add'>+0x8A3E = 0xE427</div><div class='add'>+0x8A3F = 0xE428</div><div class='add'>+0x8A40 = 0xE429</div><div class='add'>+0x8A41 = 0xE42A</div><div class='add'>+0x8A42 = 0xE42B</div><div class='add'>+0x8A43 = 0xE42C</div><div class='add'>+0x8A44 = 0xE42D</div><div class='add'>+0x8A45 = 0xE42E</div><div class='add'>+0x8A46 = 0xE42F</div><div class='add'>+0x8A47 = 0xE430</div><div class='add'>+0x8A48 = 0xE431</div><div class='add'>+0x8A49 = 0xE432</div><div class='add'>+0x8A4A = 0xE433</div><div class='add'>+0x8A4B = 0xE434</div><div class='add'>+0x8A4C = 0xE435</div><div class='add'>+0x8A4D = 0xE436</div><div class='add'>+0x8A4E = 0xE437</div><div class='add'>+0x8A4F = 0xE438</div><div class='add'>+0x8A50 = 0xE439</div><div class='add'>+0x8A51 = 0xE43A</div><div class='add'>+0x8A52 = 0xE43B</div><div class='add'>+0x8A53 = 0xE43C</div><div class='add'>+0x8A54 = 0xE43D</div><div class='add'>+0x8A55 = 0xE43E</div><div class='add'>+0x8A56 = 0xE43F</div><div class='add'>+0x8A57 = 0xE440</div><div class='add'>+0x8A58 = 0xE441</div><div class='add'>+0x8A59 = 0xE442</div><div class='add'>+0x8A5A = 0xE443</div><div class='add'>+0x8A5B = 0xE444</div><div class='add'>+0x8A5C = 0xE445</div><div class='add'>+0x8A5D = 0xE446</div><div class='add'>+0x8A5E = 0xE447</div><div class='add'>+0x8A5F = 0xE448</div><div class='add'>+0x8A60 = 0xE449</div><div class='add'>+0x8A61 = 0xE44A</div><div class='add'>+0x8A62 = 0xE44B</div><div class='add'>+0x8A63 = 0xE44C</div><div class='add'>+0x8A64 = 0xE44D</div><div class='add'>+0x8A65 = 0xE44E</div><div class='add'>+0x8A66 = 0xE44F</div><div class='add'>+0x8A67 = 0xE450</div><div class='add'>+0x8A68 = 0xE451</div><div class='add'>+0x8A69 = 0xE452</div><div class='add'>+0x8A6A = 0xE453</div><div class='add'>+0x8A6B = 0xE454</div><div class='add'>+0x8A6C = 0xE455</div><div class='add'>+0x8A6D = 0xE456</div><div class='add'>+0x8A6E = 0xE457</div><div class='add'>+0x8A6F = 0xE458</div><div class='add'>+0x8A70 = 0xE459</div><div class='add'>+0x8A71 = 0xE45A</div><div class='add'>+0x8A72 = 0xE45B</div><div class='add'>+0x8A73 = 0xE45C</div><div class='add'>+0x8A74 = 0xE45D</div><div class='add'>+0x8A75 = 0xE45E</div><div class='add'>+0x8A76 = 0xE45F</div><div class='add'>+0x8A77 = 0xE460</div><div class='add'>+0x8A78 = 0xE461</div><div class='add'>+0x8A79 = 0xE462</div><div class='add'>+0x8A7A = 0xE463</div><div class='add'>+0x8A7B = 0xE464</div><div class='add'>+0x8A7C = 0xE465</div><div class='add'>+0x8A7D = 0xE466</div><div class='add'>+0x8A7E = 0xE467</div><div class='add'>+0x8B21 = 0xE468</div><div class='add'>+0x8B22 = 0xE469</div><div class='add'>+0x8B23 = 0xE46A</div><div class='add'>+0x8B24 = 0xE46B</div><div class='add'>+0x8B25 = 0xE46C</div><div class='add'>+0x8B26 = 0xE46D</div><div class='add'>+0x8B27 = 0xE46E</div><div class='add'>+0x8B28 = 0xE46F</div><div class='add'>+0x8B29 = 0xE470</div><div class='add'>+0x8B2A = 0xE471</div><div class='add'>+0x8B2B = 0xE472</div><div class='add'>+0x8B2C = 0xE473</div><div class='add'>+0x8B2D = 0xE474</div><div class='add'>+0x8B2E = 0xE475</div><div class='add'>+0x8B2F = 0xE476</div><div class='add'>+0x8B30 = 0xE477</div><div class='add'>+0x8B31 = 0xE478</div><div class='add'>+0x8B32 = 0xE479</div><div class='add'>+0x8B33 = 0xE47A</div><div class='add'>+0x8B34 = 0xE47B</div><div class='add'>+0x8B35 = 0xE47C</div><div class='add'>+0x8B36 = 0xE47D</div><div class='add'>+0x8B37 = 0xE47E</div><div class='add'>+0x8B38 = 0xE47F</div><div class='add'>+0x8B39 = 0xE480</div><div class='add'>+0x8B3A = 0xE481</div><div class='add'>+0x8B3B = 0xE482</div><div class='add'>+0x8B3C = 0xE483</div><div class='add'>+0x8B3D = 0xE484</div><div class='add'>+0x8B3E = 0xE485</div><div class='add'>+0x8B3F = 0xE486</div><div class='add'>+0x8B40 = 0xE487</div><div class='add'>+0x8B41 = 0xE488</div><div class='add'>+0x8B42 = 0xE489</div><div class='add'>+0x8B43 = 0xE48A</div><div class='add'>+0x8B44 = 0xE48B</div><div class='add'>+0x8B45 = 0xE48C</div><div class='add'>+0x8B46 = 0xE48D</div><div class='add'>+0x8B47 = 0xE48E</div><div class='add'>+0x8B48 = 0xE48F</div><div class='add'>+0x8B49 = 0xE490</div><div class='add'>+0x8B4A = 0xE491</div><div class='add'>+0x8B4B = 0xE492</div><div class='add'>+0x8B4C = 0xE493</div><div class='add'>+0x8B4D = 0xE494</div><div class='add'>+0x8B4E = 0xE495</div><div class='add'>+0x8B4F = 0xE496</div><div class='add'>+0x8B50 = 0xE497</div><div class='add'>+0x8B51 = 0xE498</div><div class='add'>+0x8B52 = 0xE499</div><div class='add'>+0x8B53 = 0xE49A</div><div class='add'>+0x8B54 = 0xE49B</div><div class='add'>+0x8B55 = 0xE49C</div><div class='add'>+0x8B56 = 0xE49D</div><div class='add'>+0x8B57 = 0xE49E</div><div class='add'>+0x8B58 = 0xE49F</div><div class='add'>+0x8B59 = 0xE4A0</div><div class='add'>+0x8B5A = 0xE4A1</div><div class='add'>+0x8B5B = 0xE4A2</div><div class='add'>+0x8B5C = 0xE4A3</div><div class='add'>+0x8B5D = 0xE4A4</div><div class='add'>+0x8B5E = 0xE4A5</div><div class='add'>+0x8B5F = 0xE4A6</div><div class='add'>+0x8B60 = 0xE4A7</div><div class='add'>+0x8B61 = 0xE4A8</div><div class='add'>+0x8B62 = 0xE4A9</div><div class='add'>+0x8B63 = 0xE4AA</div><div class='add'>+0x8B64 = 0xE4AB</div><div class='add'>+0x8B65 = 0xE4AC</div><div class='add'>+0x8B66 = 0xE4AD</div><div class='add'>+0x8B67 = 0xE4AE</div><div class='add'>+0x8B68 = 0xE4AF</div><div class='add'>+0x8B69 = 0xE4B0</div><div class='add'>+0x8B6A = 0xE4B1</div><div class='add'>+0x8B6B = 0xE4B2</div><div class='add'>+0x8B6C = 0xE4B3</div><div class='add'>+0x8B6D = 0xE4B4</div><div class='add'>+0x8B6E = 0xE4B5</div><div class='add'>+0x8B6F = 0xE4B6</div><div class='add'>+0x8B70 = 0xE4B7</div><div class='add'>+0x8B71 = 0xE4B8</div><div class='add'>+0x8B72 = 0xE4B9</div><div class='add'>+0x8B73 = 0xE4BA</div><div class='add'>+0x8B74 = 0xE4BB</div><div class='add'>+0x8B75 = 0xE4BC</div><div class='add'>+0x8B76 = 0xE4BD</div><div class='add'>+0x8B77 = 0xE4BE</div><div class='add'>+0x8B78 = 0xE4BF</div><div class='add'>+0x8B79 = 0xE4C0</div><div class='add'>+0x8B7A = 0xE4C1</div><div class='add'>+0x8B7B = 0xE4C2</div><div class='add'>+0x8B7C = 0xE4C3</div><div class='add'>+0x8B7D = 0xE4C4</div><div class='add'>+0x8B7E = 0xE4C5</div><div class='add'>+0x8C21 = 0xE4C6</div><div class='add'>+0x8C22 = 0xE4C7</div><div class='add'>+0x8C23 = 0xE4C8</div><div class='add'>+0x8C24 = 0xE4C9</div><div class='add'>+0x8C25 = 0xE4CA</div><div class='add'>+0x8C26 = 0xE4CB</div><div class='add'>+0x8C27 = 0xE4CC</div><div class='add'>+0x8C28 = 0xE4CD</div><div class='add'>+0x8C29 = 0xE4CE</div><div class='add'>+0x8C2A = 0xE4CF</div><div class='add'>+0x8C2B = 0xE4D0</div><div class='add'>+0x8C2C = 0xE4D1</div><div class='add'>+0x8C2D = 0xE4D2</div><div class='add'>+0x8C2E = 0xE4D3</div><div class='add'>+0x8C2F = 0xE4D4</div><div class='add'>+0x8C30 = 0xE4D5</div><div class='add'>+0x8C31 = 0xE4D6</div><div class='add'>+0x8C32 = 0xE4D7</div><div class='add'>+0x8C33 = 0xE4D8</div><div class='add'>+0x8C34 = 0xE4D9</div><div class='add'>+0x8C35 = 0xE4DA</div><div class='add'>+0x8C36 = 0xE4DB</div><div class='add'>+0x8C37 = 0xE4DC</div><div class='add'>+0x8C38 = 0xE4DD</div><div class='add'>+0x8C39 = 0xE4DE</div><div class='add'>+0x8C3A = 0xE4DF</div><div class='add'>+0x8C3B = 0xE4E0</div><div class='add'>+0x8C3C = 0xE4E1</div><div class='add'>+0x8C3D = 0xE4E2</div><div class='add'>+0x8C3E = 0xE4E3</div><div class='add'>+0x8C3F = 0xE4E4</div><div class='add'>+0x8C40 = 0xE4E5</div><div class='add'>+0x8C41 = 0xE4E6</div><div class='add'>+0x8C42 = 0xE4E7</div><div class='add'>+0x8C43 = 0xE4E8</div><div class='add'>+0x8C44 = 0xE4E9</div><div class='add'>+0x8C45 = 0xE4EA</div><div class='add'>+0x8C46 = 0xE4EB</div><div class='add'>+0x8C47 = 0xE4EC</div><div class='add'>+0x8C48 = 0xE4ED</div><div class='add'>+0x8C49 = 0xE4EE</div><div class='add'>+0x8C4A = 0xE4EF</div><div class='add'>+0x8C4B = 0xE4F0</div><div class='add'>+0x8C4C = 0xE4F1</div><div class='add'>+0x8C4D = 0xE4F2</div><div class='add'>+0x8C4E = 0xE4F3</div><div class='add'>+0x8C4F = 0xE4F4</div><div class='add'>+0x8C50 = 0xE4F5</div><div class='add'>+0x8C51 = 0xE4F6</div><div class='add'>+0x8C52 = 0xE4F7</div><div class='add'>+0x8C53 = 0xE4F8</div><div class='add'>+0x8C54 = 0xE4F9</div><div class='add'>+0x8C55 = 0xE4FA</div><div class='add'>+0x8C56 = 0xE4FB</div><div class='add'>+0x8C57 = 0xE4FC</div><div class='add'>+0x8C58 = 0xE4FD</div><div class='add'>+0x8C59 = 0xE4FE</div><div class='add'>+0x8C5A = 0xE4FF</div><div class='add'>+0x8C5B = 0xE500</div><div class='add'>+0x8C5C = 0xE501</div><div class='add'>+0x8C5D = 0xE502</div><div class='add'>+0x8C5E = 0xE503</div><div class='add'>+0x8C5F = 0xE504</div><div class='add'>+0x8C60 = 0xE505</div><div class='add'>+0x8C61 = 0xE506</div><div class='add'>+0x8C62 = 0xE507</div><div class='add'>+0x8C63 = 0xE508</div><div class='add'>+0x8C64 = 0xE509</div><div class='add'>+0x8C65 = 0xE50A</div><div class='add'>+0x8C66 = 0xE50B</div><div class='add'>+0x8C67 = 0xE50C</div><div class='add'>+0x8C68 = 0xE50D</div><div class='add'>+0x8C69 = 0xE50E</div><div class='add'>+0x8C6A = 0xE50F</div><div class='add'>+0x8C6B = 0xE510</div><div class='add'>+0x8C6C = 0xE511</div><div class='add'>+0x8C6D = 0xE512</div><div class='add'>+0x8C6E = 0xE513</div><div class='add'>+0x8C6F = 0xE514</div><div class='add'>+0x8C70 = 0xE515</div><div class='add'>+0x8C71 = 0xE516</div><div class='add'>+0x8C72 = 0xE517</div><div class='add'>+0x8C73 = 0xE518</div><div class='add'>+0x8C74 = 0xE519</div><div class='add'>+0x8C75 = 0xE51A</div><div class='add'>+0x8C76 = 0xE51B</div><div class='add'>+0x8C77 = 0xE51C</div><div class='add'>+0x8C78 = 0xE51D</div><div class='add'>+0x8C79 = 0xE51E</div><div class='add'>+0x8C7A = 0xE51F</div><div class='add'>+0x8C7B = 0xE520</div><div class='add'>+0x8C7C = 0xE521</div><div class='add'>+0x8C7D = 0xE522</div><div class='add'>+0x8C7E = 0xE523</div><div class='add'>+0x8D21 = 0xE524</div><div class='add'>+0x8D22 = 0xE525</div><div class='add'>+0x8D23 = 0xE526</div><div class='add'>+0x8D24 = 0xE527</div><div class='add'>+0x8D25 = 0xE528</div><div class='add'>+0x8D26 = 0xE529</div><div class='add'>+0x8D27 = 0xE52A</div><div class='add'>+0x8D28 = 0xE52B</div><div class='add'>+0x8D29 = 0xE52C</div><div class='add'>+0x8D2A = 0xE52D</div><div class='add'>+0x8D2B = 0xE52E</div><div class='add'>+0x8D2C = 0xE52F</div><div class='add'>+0x8D2D = 0xE530</div><div class='add'>+0x8D2E = 0xE531</div><div class='add'>+0x8D2F = 0xE532</div><div class='add'>+0x8D30 = 0xE533</div><div class='add'>+0x8D31 = 0xE534</div><div class='add'>+0x8D32 = 0xE535</div><div class='add'>+0x8D33 = 0xE536</div><div class='add'>+0x8D34 = 0xE537</div><div class='add'>+0x8D35 = 0xE538</div><div class='add'>+0x8D36 = 0xE539</div><div class='add'>+0x8D37 = 0xE53A</div><div class='add'>+0x8D38 = 0xE53B</div><div class='add'>+0x8D39 = 0xE53C</div><div class='add'>+0x8D3A = 0xE53D</div><div class='add'>+0x8D3B = 0xE53E</div><div class='add'>+0x8D3C = 0xE53F</div><div class='add'>+0x8D3D = 0xE540</div><div class='add'>+0x8D3E = 0xE541</div><div class='add'>+0x8D3F = 0xE542</div><div class='add'>+0x8D40 = 0xE543</div><div class='add'>+0x8D41 = 0xE544</div><div class='add'>+0x8D42 = 0xE545</div><div class='add'>+0x8D43 = 0xE546</div><div class='add'>+0x8D44 = 0xE547</div><div class='add'>+0x8D45 = 0xE548</div><div class='add'>+0x8D46 = 0xE549</div><div class='add'>+0x8D47 = 0xE54A</div><div class='add'>+0x8D48 = 0xE54B</div><div class='add'>+0x8D49 = 0xE54C</div><div class='add'>+0x8D4A = 0xE54D</div><div class='add'>+0x8D4B = 0xE54E</div><div class='add'>+0x8D4C = 0xE54F</div><div class='add'>+0x8D4D = 0xE550</div><div class='add'>+0x8D4E = 0xE551</div><div class='add'>+0x8D4F = 0xE552</div><div class='add'>+0x8D50 = 0xE553</div><div class='add'>+0x8D51 = 0xE554</div><div class='add'>+0x8D52 = 0xE555</div><div class='add'>+0x8D53 = 0xE556</div><div class='add'>+0x8D54 = 0xE557</div><div class='add'>+0x8D55 = 0xE558</div><div class='add'>+0x8D56 = 0xE559</div><div class='add'>+0x8D57 = 0xE55A</div><div class='add'>+0x8D58 = 0xE55B</div><div class='add'>+0x8D59 = 0xE55C</div><div class='add'>+0x8D5A = 0xE55D</div><div class='add'>+0x8D5B = 0xE55E</div><div class='add'>+0x8D5C = 0xE55F</div><div class='add'>+0x8D5D = 0xE560</div><div class='add'>+0x8D5E = 0xE561</div><div class='add'>+0x8D5F = 0xE562</div><div class='add'>+0x8D60 = 0xE563</div><div class='add'>+0x8D61 = 0xE564</div><div class='add'>+0x8D62 = 0xE565</div><div class='add'>+0x8D63 = 0xE566</div><div class='add'>+0x8D64 = 0xE567</div><div class='add'>+0x8D65 = 0xE568</div><div class='add'>+0x8D66 = 0xE569</div><div class='add'>+0x8D67 = 0xE56A</div><div class='add'>+0x8D68 = 0xE56B</div><div class='add'>+0x8D69 = 0xE56C</div><div class='add'>+0x8D6A = 0xE56D</div><div class='add'>+0x8D6B = 0xE56E</div><div class='add'>+0x8D6C = 0xE56F</div><div class='add'>+0x8D6D = 0xE570</div><div class='add'>+0x8D6E = 0xE571</div><div class='add'>+0x8D6F = 0xE572</div><div class='add'>+0x8D70 = 0xE573</div><div class='add'>+0x8D71 = 0xE574</div><div class='add'>+0x8D72 = 0xE575</div><div class='add'>+0x8D73 = 0xE576</div><div class='add'>+0x8D74 = 0xE577</div><div class='add'>+0x8D75 = 0xE578</div><div class='add'>+0x8D76 = 0xE579</div><div class='add'>+0x8D77 = 0xE57A</div><div class='add'>+0x8D78 = 0xE57B</div><div class='add'>+0x8D79 = 0xE57C</div><div class='add'>+0x8D7A = 0xE57D</div><div class='add'>+0x8D7B = 0xE57E</div><div class='add'>+0x8D7C = 0xE57F</div><div class='add'>+0x8D7D = 0xE580</div><div class='add'>+0x8D7E = 0xE581</div><div class='add'>+0x8E21 = 0xE582</div><div class='add'>+0x8E22 = 0xE583</div><div class='add'>+0x8E23 = 0xE584</div><div class='add'>+0x8E24 = 0xE585</div><div class='add'>+0x8E25 = 0xE586</div><div class='add'>+0x8E26 = 0xE587</div><div class='add'>+0x8E27 = 0xE588</div><div class='add'>+0x8E28 = 0xE589</div><div class='add'>+0x8E29 = 0xE58A</div><div class='add'>+0x8E2A = 0xE58B</div><div class='add'>+0x8E2B = 0xE58C</div><div class='add'>+0x8E2C = 0xE58D</div><div class='add'>+0x8E2D = 0xE58E</div><div class='add'>+0x8E2E = 0xE58F</div><div class='add'>+0x8E2F = 0xE590</div><div class='add'>+0x8E30 = 0xE591</div><div class='add'>+0x8E31 = 0xE592</div><div class='add'>+0x8E32 = 0xE593</div><div class='add'>+0x8E33 = 0xE594</div><div class='add'>+0x8E34 = 0xE595</div><div class='add'>+0x8E35 = 0xE596</div><div class='add'>+0x8E36 = 0xE597</div><div class='add'>+0x8E37 = 0xE598</div><div class='add'>+0x8E38 = 0xE599</div><div class='add'>+0x8E39 = 0xE59A</div><div class='add'>+0x8E3A = 0xE59B</div><div class='add'>+0x8E3B = 0xE59C</div><div class='add'>+0x8E3C = 0xE59D</div><div class='add'>+0x8E3D = 0xE59E</div><div class='add'>+0x8E3E = 0xE59F</div><div class='add'>+0x8E3F = 0xE5A0</div><div class='add'>+0x8E40 = 0xE5A1</div><div class='add'>+0x8E41 = 0xE5A2</div><div class='add'>+0x8E42 = 0xE5A3</div><div class='add'>+0x8E43 = 0xE5A4</div><div class='add'>+0x8E44 = 0xE5A5</div><div class='add'>+0x8E45 = 0xE5A6</div><div class='add'>+0x8E46 = 0xE5A7</div><div class='add'>+0x8E47 = 0xE5A8</div><div class='add'>+0x8E48 = 0xE5A9</div><div class='add'>+0x8E49 = 0xE5AA</div><div class='add'>+0x8E4A = 0xE5AB</div><div class='add'>+0x8E4B = 0xE5AC</div><div class='add'>+0x8E4C = 0xE5AD</div><div class='add'>+0x8E4D = 0xE5AE</div><div class='add'>+0x8E4E = 0xE5AF</div><div class='add'>+0x8E4F = 0xE5B0</div><div class='add'>+0x8E50 = 0xE5B1</div><div class='add'>+0x8E51 = 0xE5B2</div><div class='add'>+0x8E52 = 0xE5B3</div><div class='add'>+0x8E53 = 0xE5B4</div><div class='add'>+0x8E54 = 0xE5B5</div><div class='add'>+0x8E55 = 0xE5B6</div><div class='add'>+0x8E56 = 0xE5B7</div><div class='add'>+0x8E57 = 0xE5B8</div><div class='add'>+0x8E58 = 0xE5B9</div><div class='add'>+0x8E59 = 0xE5BA</div><div class='add'>+0x8E5A = 0xE5BB</div><div class='add'>+0x8E5B = 0xE5BC</div><div class='add'>+0x8E5C = 0xE5BD</div><div class='add'>+0x8E5D = 0xE5BE</div><div class='add'>+0x8E5E = 0xE5BF</div><div class='add'>+0x8E5F = 0xE5C0</div><div class='add'>+0x8E60 = 0xE5C1</div><div class='add'>+0x8E61 = 0xE5C2</div><div class='add'>+0x8E62 = 0xE5C3</div><div class='add'>+0x8E63 = 0xE5C4</div><div class='add'>+0x8E64 = 0xE5C5</div><div class='add'>+0x8E65 = 0xE5C6</div><div class='add'>+0x8E66 = 0xE5C7</div><div class='add'>+0x8E67 = 0xE5C8</div><div class='add'>+0x8E68 = 0xE5C9</div><div class='add'>+0x8E69 = 0xE5CA</div><div class='add'>+0x8E6A = 0xE5CB</div><div class='add'>+0x8E6B = 0xE5CC</div><div class='add'>+0x8E6C = 0xE5CD</div><div class='add'>+0x8E6D = 0xE5CE</div><div class='add'>+0x8E6E = 0xE5CF</div><div class='add'>+0x8E6F = 0xE5D0</div><div class='add'>+0x8E70 = 0xE5D1</div><div class='add'>+0x8E71 = 0xE5D2</div><div class='add'>+0x8E72 = 0xE5D3</div><div class='add'>+0x8E73 = 0xE5D4</div><div class='add'>+0x8E74 = 0xE5D5</div><div class='add'>+0x8E75 = 0xE5D6</div><div class='add'>+0x8E76 = 0xE5D7</div><div class='add'>+0x8E77 = 0xE5D8</div><div class='add'>+0x8E78 = 0xE5D9</div><div class='add'>+0x8E79 = 0xE5DA</div><div class='add'>+0x8E7A = 0xE5DB</div><div class='add'>+0x8E7B = 0xE5DC</div><div class='add'>+0x8E7C = 0xE5DD</div><div class='add'>+0x8E7D = 0xE5DE</div><div class='add'>+0x8E7E = 0xE5DF</div><div class='add'>+0x8F21 = 0xE5E0</div><div class='add'>+0x8F22 = 0xE5E1</div><div class='add'>+0x8F23 = 0xE5E2</div><div class='add'>+0x8F24 = 0xE5E3</div><div class='add'>+0x8F25 = 0xE5E4</div><div class='add'>+0x8F26 = 0xE5E5</div><div class='add'>+0x8F27 = 0xE5E6</div><div class='add'>+0x8F28 = 0xE5E7</div><div class='add'>+0x8F29 = 0xE5E8</div><div class='add'>+0x8F2A = 0xE5E9</div><div class='add'>+0x8F2B = 0xE5EA</div><div class='add'>+0x8F2C = 0xE5EB</div><div class='add'>+0x8F2D = 0xE5EC</div><div class='add'>+0x8F2E = 0xE5ED</div><div class='add'>+0x8F2F = 0xE5EE</div><div class='add'>+0x8F30 = 0xE5EF</div><div class='add'>+0x8F31 = 0xE5F0</div><div class='add'>+0x8F32 = 0xE5F1</div><div class='add'>+0x8F33 = 0xE5F2</div><div class='add'>+0x8F34 = 0xE5F3</div><div class='add'>+0x8F35 = 0xE5F4</div><div class='add'>+0x8F36 = 0xE5F5</div><div class='add'>+0x8F37 = 0xE5F6</div><div class='add'>+0x8F38 = 0xE5F7</div><div class='add'>+0x8F39 = 0xE5F8</div><div class='add'>+0x8F3A = 0xE5F9</div><div class='add'>+0x8F3B = 0xE5FA</div><div class='add'>+0x8F3C = 0xE5FB</div><div class='add'>+0x8F3D = 0xE5FC</div><div class='add'>+0x8F3E = 0xE5FD</div><div class='add'>+0x8F3F = 0xE5FE</div><div class='add'>+0x8F40 = 0xE5FF</div><div class='add'>+0x8F41 = 0xE600</div><div class='add'>+0x8F42 = 0xE601</div><div class='add'>+0x8F43 = 0xE602</div><div class='add'>+0x8F44 = 0xE603</div><div class='add'>+0x8F45 = 0xE604</div><div class='add'>+0x8F46 = 0xE605</div><div class='add'>+0x8F47 = 0xE606</div><div class='add'>+0x8F48 = 0xE607</div><div class='add'>+0x8F49 = 0xE608</div><div class='add'>+0x8F4A = 0xE609</div><div class='add'>+0x8F4B = 0xE60A</div><div class='add'>+0x8F4C = 0xE60B</div><div class='add'>+0x8F4D = 0xE60C</div><div class='add'>+0x8F4E = 0xE60D</div><div class='add'>+0x8F4F = 0xE60E</div><div class='add'>+0x8F50 = 0xE60F</div><div class='add'>+0x8F51 = 0xE610</div><div class='add'>+0x8F52 = 0xE611</div><div class='add'>+0x8F53 = 0xE612</div><div class='add'>+0x8F54 = 0xE613</div><div class='add'>+0x8F55 = 0xE614</div><div class='add'>+0x8F56 = 0xE615</div><div class='add'>+0x8F57 = 0xE616</div><div class='add'>+0x8F58 = 0xE617</div><div class='add'>+0x8F59 = 0xE618</div><div class='add'>+0x8F5A = 0xE619</div><div class='add'>+0x8F5B = 0xE61A</div><div class='add'>+0x8F5C = 0xE61B</div><div class='add'>+0x8F5D = 0xE61C</div><div class='add'>+0x8F5E = 0xE61D</div><div class='add'>+0x8F5F = 0xE61E</div><div class='add'>+0x8F60 = 0xE61F</div><div class='add'>+0x8F61 = 0xE620</div><div class='add'>+0x8F62 = 0xE621</div><div class='add'>+0x8F63 = 0xE622</div><div class='add'>+0x8F64 = 0xE623</div><div class='add'>+0x8F65 = 0xE624</div><div class='add'>+0x8F66 = 0xE625</div><div class='add'>+0x8F67 = 0xE626</div><div class='add'>+0x8F68 = 0xE627</div><div class='add'>+0x8F69 = 0xE628</div><div class='add'>+0x8F6A = 0xE629</div><div class='add'>+0x8F6B = 0xE62A</div><div class='add'>+0x8F6C = 0xE62B</div><div class='add'>+0x8F6D = 0xE62C</div><div class='add'>+0x8F6E = 0xE62D</div><div class='add'>+0x8F6F = 0xE62E</div><div class='add'>+0x8F70 = 0xE62F</div><div class='add'>+0x8F71 = 0xE630</div><div class='add'>+0x8F72 = 0xE631</div><div class='add'>+0x8F73 = 0xE632</div><div class='add'>+0x8F74 = 0xE633</div><div class='add'>+0x8F75 = 0xE634</div><div class='add'>+0x8F76 = 0xE635</div><div class='add'>+0x8F77 = 0xE636</div><div class='add'>+0x8F78 = 0xE637</div><div class='add'>+0x8F79 = 0xE638</div><div class='add'>+0x8F7A = 0xE639</div><div class='add'>+0x8F7B = 0xE63A</div><div class='add'>+0x8F7C = 0xE63B</div><div class='add'>+0x8F7D = 0xE63C</div><div class='add'>+0x8F7E = 0xE63D</div><div class='add'>+0x9021 = 0xE63E</div><div class='add'>+0x9022 = 0xE63F</div><div class='add'>+0x9023 = 0xE640</div><div class='add'>+0x9024 = 0xE641</div><div class='add'>+0x9025 = 0xE642</div><div class='add'>+0x9026 = 0xE643</div><div class='add'>+0x9027 = 0xE644</div><div class='add'>+0x9028 = 0xE645</div><div class='add'>+0x9029 = 0xE646</div><div class='add'>+0x902A = 0xE647</div><div class='add'>+0x902B = 0xE648</div><div class='add'>+0x902C = 0xE649</div><div class='add'>+0x902D = 0xE64A</div><div class='add'>+0x902E = 0xE64B</div><div class='add'>+0x902F = 0xE64C</div><div class='add'>+0x9030 = 0xE64D</div><div class='add'>+0x9031 = 0xE64E</div><div class='add'>+0x9032 = 0xE64F</div><div class='add'>+0x9033 = 0xE650</div><div class='add'>+0x9034 = 0xE651</div><div class='add'>+0x9035 = 0xE652</div><div class='add'>+0x9036 = 0xE653</div><div class='add'>+0x9037 = 0xE654</div><div class='add'>+0x9038 = 0xE655</div><div class='add'>+0x9039 = 0xE656</div><div class='add'>+0x903A = 0xE657</div><div class='add'>+0x903B = 0xE658</div><div class='add'>+0x903C = 0xE659</div><div class='add'>+0x903D = 0xE65A</div><div class='add'>+0x903E = 0xE65B</div><div class='add'>+0x903F = 0xE65C</div><div class='add'>+0x9040 = 0xE65D</div><div class='add'>+0x9041 = 0xE65E</div><div class='add'>+0x9042 = 0xE65F</div><div class='add'>+0x9043 = 0xE660</div><div class='add'>+0x9044 = 0xE661</div><div class='add'>+0x9045 = 0xE662</div><div class='add'>+0x9046 = 0xE663</div><div class='add'>+0x9047 = 0xE664</div><div class='add'>+0x9048 = 0xE665</div><div class='add'>+0x9049 = 0xE666</div><div class='add'>+0x904A = 0xE667</div><div class='add'>+0x904B = 0xE668</div><div class='add'>+0x904C = 0xE669</div><div class='add'>+0x904D = 0xE66A</div><div class='add'>+0x904E = 0xE66B</div><div class='add'>+0x904F = 0xE66C</div><div class='add'>+0x9050 = 0xE66D</div><div class='add'>+0x9051 = 0xE66E</div><div class='add'>+0x9052 = 0xE66F</div><div class='add'>+0x9053 = 0xE670</div><div class='add'>+0x9054 = 0xE671</div><div class='add'>+0x9055 = 0xE672</div><div class='add'>+0x9056 = 0xE673</div><div class='add'>+0x9057 = 0xE674</div><div class='add'>+0x9058 = 0xE675</div><div class='add'>+0x9059 = 0xE676</div><div class='add'>+0x905A = 0xE677</div><div class='add'>+0x905B = 0xE678</div><div class='add'>+0x905C = 0xE679</div><div class='add'>+0x905D = 0xE67A</div><div class='add'>+0x905E = 0xE67B</div><div class='add'>+0x905F = 0xE67C</div><div class='add'>+0x9060 = 0xE67D</div><div class='add'>+0x9061 = 0xE67E</div><div class='add'>+0x9062 = 0xE67F</div><div class='add'>+0x9063 = 0xE680</div><div class='add'>+0x9064 = 0xE681</div><div class='add'>+0x9065 = 0xE682</div><div class='add'>+0x9066 = 0xE683</div><div class='add'>+0x9067 = 0xE684</div><div class='add'>+0x9068 = 0xE685</div><div class='add'>+0x9069 = 0xE686</div><div class='add'>+0x906A = 0xE687</div><div class='add'>+0x906B = 0xE688</div><div class='add'>+0x906C = 0xE689</div><div class='add'>+0x906D = 0xE68A</div><div class='add'>+0x906E = 0xE68B</div><div class='add'>+0x906F = 0xE68C</div><div class='add'>+0x9070 = 0xE68D</div><div class='add'>+0x9071 = 0xE68E</div><div class='add'>+0x9072 = 0xE68F</div><div class='add'>+0x9073 = 0xE690</div><div class='add'>+0x9074 = 0xE691</div><div class='add'>+0x9075 = 0xE692</div><div class='add'>+0x9076 = 0xE693</div><div class='add'>+0x9077 = 0xE694</div><div class='add'>+0x9078 = 0xE695</div><div class='add'>+0x9079 = 0xE696</div><div class='add'>+0x907A = 0xE697</div><div class='add'>+0x907B = 0xE698</div><div class='add'>+0x907C = 0xE699</div><div class='add'>+0x907D = 0xE69A</div><div class='add'>+0x907E = 0xE69B</div><div class='add'>+0x9121 = 0xE69C</div><div class='add'>+0x9122 = 0xE69D</div><div class='add'>+0x9123 = 0xE69E</div><div class='add'>+0x9124 = 0xE69F</div><div class='add'>+0x9125 = 0xE6A0</div><div class='add'>+0x9126 = 0xE6A1</div><div class='add'>+0x9127 = 0xE6A2</div><div class='add'>+0x9128 = 0xE6A3</div><div class='add'>+0x9129 = 0xE6A4</div><div class='add'>+0x912A = 0xE6A5</div><div class='add'>+0x912B = 0xE6A6</div><div class='add'>+0x912C = 0xE6A7</div><div class='add'>+0x912D = 0xE6A8</div><div class='add'>+0x912E = 0xE6A9</div><div class='add'>+0x912F = 0xE6AA</div><div class='add'>+0x9130 = 0xE6AB</div><div class='add'>+0x9131 = 0xE6AC</div><div class='add'>+0x9132 = 0xE6AD</div><div class='add'>+0x9133 = 0xE6AE</div><div class='add'>+0x9134 = 0xE6AF</div><div class='add'>+0x9135 = 0xE6B0</div><div class='add'>+0x9136 = 0xE6B1</div><div class='add'>+0x9137 = 0xE6B2</div><div class='add'>+0x9138 = 0xE6B3</div><div class='add'>+0x9139 = 0xE6B4</div><div class='add'>+0x913A = 0xE6B5</div><div class='add'>+0x913B = 0xE6B6</div><div class='add'>+0x913C = 0xE6B7</div><div class='add'>+0x913D = 0xE6B8</div><div class='add'>+0x913E = 0xE6B9</div><div class='add'>+0x913F = 0xE6BA</div><div class='add'>+0x9140 = 0xE6BB</div><div class='add'>+0x9141 = 0xE6BC</div><div class='add'>+0x9142 = 0xE6BD</div><div class='add'>+0x9143 = 0xE6BE</div><div class='add'>+0x9144 = 0xE6BF</div><div class='add'>+0x9145 = 0xE6C0</div><div class='add'>+0x9146 = 0xE6C1</div><div class='add'>+0x9147 = 0xE6C2</div><div class='add'>+0x9148 = 0xE6C3</div><div class='add'>+0x9149 = 0xE6C4</div><div class='add'>+0x914A = 0xE6C5</div><div class='add'>+0x914B = 0xE6C6</div><div class='add'>+0x914C = 0xE6C7</div><div class='add'>+0x914D = 0xE6C8</div><div class='add'>+0x914E = 0xE6C9</div><div class='add'>+0x914F = 0xE6CA</div><div class='add'>+0x9150 = 0xE6CB</div><div class='add'>+0x9151 = 0xE6CC</div><div class='add'>+0x9152 = 0xE6CD</div><div class='add'>+0x9153 = 0xE6CE</div><div class='add'>+0x9154 = 0xE6CF</div><div class='add'>+0x9155 = 0xE6D0</div><div class='add'>+0x9156 = 0xE6D1</div><div class='add'>+0x9157 = 0xE6D2</div><div class='add'>+0x9158 = 0xE6D3</div><div class='add'>+0x9159 = 0xE6D4</div><div class='add'>+0x915A = 0xE6D5</div><div class='add'>+0x915B = 0xE6D6</div><div class='add'>+0x915C = 0xE6D7</div><div class='add'>+0x915D = 0xE6D8</div><div class='add'>+0x915E = 0xE6D9</div><div class='add'>+0x915F = 0xE6DA</div><div class='add'>+0x9160 = 0xE6DB</div><div class='add'>+0x9161 = 0xE6DC</div><div class='add'>+0x9162 = 0xE6DD</div><div class='add'>+0x9163 = 0xE6DE</div><div class='add'>+0x9164 = 0xE6DF</div><div class='add'>+0x9165 = 0xE6E0</div><div class='add'>+0x9166 = 0xE6E1</div><div class='add'>+0x9167 = 0xE6E2</div><div class='add'>+0x9168 = 0xE6E3</div><div class='add'>+0x9169 = 0xE6E4</div><div class='add'>+0x916A = 0xE6E5</div><div class='add'>+0x916B = 0xE6E6</div><div class='add'>+0x916C = 0xE6E7</div><div class='add'>+0x916D = 0xE6E8</div><div class='add'>+0x916E = 0xE6E9</div><div class='add'>+0x916F = 0xE6EA</div><div class='add'>+0x9170 = 0xE6EB</div><div class='add'>+0x9171 = 0xE6EC</div><div class='add'>+0x9172 = 0xE6ED</div><div class='add'>+0x9173 = 0xE6EE</div><div class='add'>+0x9174 = 0xE6EF</div><div class='add'>+0x9175 = 0xE6F0</div><div class='add'>+0x9176 = 0xE6F1</div><div class='add'>+0x9177 = 0xE6F2</div><div class='add'>+0x9178 = 0xE6F3</div><div class='add'>+0x9179 = 0xE6F4</div><div class='add'>+0x917A = 0xE6F5</div><div class='add'>+0x917B = 0xE6F6</div><div class='add'>+0x917C = 0xE6F7</div><div class='add'>+0x917D = 0xE6F8</div><div class='add'>+0x917E = 0xE6F9</div><div class='add'>+0x9221 = 0xE6FA</div><div class='add'>+0x9222 = 0xE6FB</div><div class='add'>+0x9223 = 0xE6FC</div><div class='add'>+0x9224 = 0xE6FD</div><div class='add'>+0x9225 = 0xE6FE</div><div class='add'>+0x9226 = 0xE6FF</div><div class='add'>+0x9227 = 0xE700</div><div class='add'>+0x9228 = 0xE701</div><div class='add'>+0x9229 = 0xE702</div><div class='add'>+0x922A = 0xE703</div><div class='add'>+0x922B = 0xE704</div><div class='add'>+0x922C = 0xE705</div><div class='add'>+0x922D = 0xE706</div><div class='add'>+0x922E = 0xE707</div><div class='add'>+0x922F = 0xE708</div><div class='add'>+0x9230 = 0xE709</div><div class='add'>+0x9231 = 0xE70A</div><div class='add'>+0x9232 = 0xE70B</div><div class='add'>+0x9233 = 0xE70C</div><div class='add'>+0x9234 = 0xE70D</div><div class='add'>+0x9235 = 0xE70E</div><div class='add'>+0x9236 = 0xE70F</div><div class='add'>+0x9237 = 0xE710</div><div class='add'>+0x9238 = 0xE711</div><div class='add'>+0x9239 = 0xE712</div><div class='add'>+0x923A = 0xE713</div><div class='add'>+0x923B = 0xE714</div><div class='add'>+0x923C = 0xE715</div><div class='add'>+0x923D = 0xE716</div><div class='add'>+0x923E = 0xE717</div><div class='add'>+0x923F = 0xE718</div><div class='add'>+0x9240 = 0xE719</div><div class='add'>+0x9241 = 0xE71A</div><div class='add'>+0x9242 = 0xE71B</div><div class='add'>+0x9243 = 0xE71C</div><div class='add'>+0x9244 = 0xE71D</div><div class='add'>+0x9245 = 0xE71E</div><div class='add'>+0x9246 = 0xE71F</div><div class='add'>+0x9247 = 0xE720</div><div class='add'>+0x9248 = 0xE721</div><div class='add'>+0x9249 = 0xE722</div><div class='add'>+0x924A = 0xE723</div><div class='add'>+0x924B = 0xE724</div><div class='add'>+0x924C = 0xE725</div><div class='add'>+0x924D = 0xE726</div><div class='add'>+0x924E = 0xE727</div><div class='add'>+0x924F = 0xE728</div><div class='add'>+0x9250 = 0xE729</div><div class='add'>+0x9251 = 0xE72A</div><div class='add'>+0x9252 = 0xE72B</div><div class='add'>+0x9253 = 0xE72C</div><div class='add'>+0x9254 = 0xE72D</div><div class='add'>+0x9255 = 0xE72E</div><div class='add'>+0x9256 = 0xE72F</div><div class='add'>+0x9257 = 0xE730</div><div class='add'>+0x9258 = 0xE731</div><div class='add'>+0x9259 = 0xE732</div><div class='add'>+0x925A = 0xE733</div><div class='add'>+0x925B = 0xE734</div><div class='add'>+0x925C = 0xE735</div><div class='add'>+0x925D = 0xE736</div><div class='add'>+0x925E = 0xE737</div><div class='add'>+0x925F = 0xE738</div><div class='add'>+0x9260 = 0xE739</div><div class='add'>+0x9261 = 0xE73A</div><div class='add'>+0x9262 = 0xE73B</div><div class='add'>+0x9263 = 0xE73C</div><div class='add'>+0x9264 = 0xE73D</div><div class='add'>+0x9265 = 0xE73E</div><div class='add'>+0x9266 = 0xE73F</div><div class='add'>+0x9267 = 0xE740</div><div class='add'>+0x9268 = 0xE741</div><div class='add'>+0x9269 = 0xE742</div><div class='add'>+0x926A = 0xE743</div><div class='add'>+0x926B = 0xE744</div><div class='add'>+0x926C = 0xE745</div><div class='add'>+0x926D = 0xE746</div><div class='add'>+0x926E = 0xE747</div><div class='add'>+0x926F = 0xE748</div><div class='add'>+0x9270 = 0xE749</div><div class='add'>+0x9271 = 0xE74A</div><div class='add'>+0x9272 = 0xE74B</div><div class='add'>+0x9273 = 0xE74C</div><div class='add'>+0x9274 = 0xE74D</div><div class='add'>+0x9275 = 0xE74E</div><div class='add'>+0x9276 = 0xE74F</div><div class='add'>+0x9277 = 0xE750</div><div class='add'>+0x9278 = 0xE751</div><div class='add'>+0x9279 = 0xE752</div><div class='add'>+0x927A = 0xE753</div><div class='add'>+0x927B = 0xE754</div><div class='add'>+0x927C = 0xE755</div><div class='add'>+0x927D = 0xE756</div><div class='add'>+0x927E = 0xE757</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/CP/CP932VDC@IBM%UCS.src b/enc/trans/CP/CP932VDC@IBM%UCS.src<br/>new file mode 100644<br/>index 0000000000..3b9b360dd4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/CP/CP932VDC@IBM%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/CP/CP932VDC@IBM%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,420 @@</div><div class='add'>+# $NetBSD: CP932VDC@IBM%UCS.src,v 1.1 2006/11/04 03:46:19 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"CP932VDC:IBM/UCS"</div><div class='add'>+SRC_ZONE	0x93-0x97 / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#    Name:     cp932 to Unicode table</div><div class='add'>+#    Unicode version: 2.0</div><div class='add'>+#    Table version: 2.01</div><div class='add'>+#    Table format:  Format A</div><div class='add'>+#    Date:          04/15/98</div><div class='add'>+#</div><div class='add'>+#    Contact:       cpxlate@microsoft.com</div><div class='add'>+#</div><div class='add'>+#    General notes: none</div><div class='add'>+#</div><div class='add'>+#    Format: Three tab-separated columns</div><div class='add'>+#        Column #1 is the cp932 code (in hex)</div><div class='add'>+#        Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#        Column #3 is the Unicode name (follows a comment sign, '#')</div><div class='add'>+#</div><div class='add'>+#    The entries are in cp932 order</div><div class='add'>+#</div><div class='add'>+0x9321 = 0x2170</div><div class='add'>+0x9322 = 0x2171</div><div class='add'>+0x9323 = 0x2172</div><div class='add'>+0x9324 = 0x2173</div><div class='add'>+0x9325 = 0x2174</div><div class='add'>+0x9326 = 0x2175</div><div class='add'>+0x9327 = 0x2176</div><div class='add'>+0x9328 = 0x2177</div><div class='add'>+0x9329 = 0x2178</div><div class='add'>+0x932A = 0x2179</div><div class='add'>+0x932B = 0x2160</div><div class='add'>+0x932C = 0x2161</div><div class='add'>+0x932D = 0x2162</div><div class='add'>+0x932E = 0x2163</div><div class='add'>+0x932F = 0x2164</div><div class='add'>+0x9330 = 0x2165</div><div class='add'>+0x9331 = 0x2166</div><div class='add'>+0x9332 = 0x2167</div><div class='add'>+0x9333 = 0x2168</div><div class='add'>+0x9334 = 0x2169</div><div class='add'>+0x9335 = 0xFFE2</div><div class='add'>+0x9336 = 0xFFE4</div><div class='add'>+0x9337 = 0xFF07</div><div class='add'>+0x9338 = 0xFF02</div><div class='add'>+0x9339 = 0x3231</div><div class='add'>+0x933A = 0x2116</div><div class='add'>+0x933B = 0x2121</div><div class='add'>+0x933C = 0x2235</div><div class='add'>+0x933D = 0x7E8A</div><div class='add'>+0x933E = 0x891C</div><div class='add'>+0x933F = 0x9348</div><div class='add'>+0x9340 = 0x9288</div><div class='add'>+0x9341 = 0x84DC</div><div class='add'>+0x9342 = 0x4FC9</div><div class='add'>+0x9343 = 0x70BB</div><div class='add'>+0x9344 = 0x6631</div><div class='add'>+0x9345 = 0x68C8</div><div class='add'>+0x9346 = 0x92F9</div><div class='add'>+0x9347 = 0x66FB</div><div class='add'>+0x9348 = 0x5F45</div><div class='add'>+0x9349 = 0x4E28</div><div class='add'>+0x934A = 0x4EE1</div><div class='add'>+0x934B = 0x4EFC</div><div class='add'>+0x934C = 0x4F00</div><div class='add'>+0x934D = 0x4F03</div><div class='add'>+0x934E = 0x4F39</div><div class='add'>+0x934F = 0x4F56</div><div class='add'>+0x9350 = 0x4F92</div><div class='add'>+0x9351 = 0x4F8A</div><div class='add'>+0x9352 = 0x4F9A</div><div class='add'>+0x9353 = 0x4F94</div><div class='add'>+0x9354 = 0x4FCD</div><div class='add'>+0x9355 = 0x5040</div><div class='add'>+0x9356 = 0x5022</div><div class='add'>+0x9357 = 0x4FFF</div><div class='add'>+0x9358 = 0x501E</div><div class='add'>+0x9359 = 0x5046</div><div class='add'>+0x935A = 0x5070</div><div class='add'>+0x935B = 0x5042</div><div class='add'>+0x935C = 0x5094</div><div class='add'>+0x935D = 0x50F4</div><div class='add'>+0x935E = 0x50D8</div><div class='add'>+0x935F = 0x514A</div><div class='add'>+0x9360 = 0x5164</div><div class='add'>+0x9361 = 0x519D</div><div class='add'>+0x9362 = 0x51BE</div><div class='add'>+0x9363 = 0x51EC</div><div class='add'>+0x9364 = 0x5215</div><div class='add'>+0x9365 = 0x529C</div><div class='add'>+0x9366 = 0x52A6</div><div class='add'>+0x9367 = 0x52C0</div><div class='add'>+0x9368 = 0x52DB</div><div class='add'>+0x9369 = 0x5300</div><div class='add'>+0x936A = 0x5307</div><div class='add'>+0x936B = 0x5324</div><div class='add'>+0x936C = 0x5372</div><div class='add'>+0x936D = 0x5393</div><div class='add'>+0x936E = 0x53B2</div><div class='add'>+0x936F = 0x53DD</div><div class='add'>+0x9370 = 0xFA0E</div><div class='add'>+0x9371 = 0x549C</div><div class='add'>+0x9372 = 0x548A</div><div class='add'>+0x9373 = 0x54A9</div><div class='add'>+0x9374 = 0x54FF</div><div class='add'>+0x9375 = 0x5586</div><div class='add'>+0x9376 = 0x5759</div><div class='add'>+0x9377 = 0x5765</div><div class='add'>+0x9378 = 0x57AC</div><div class='add'>+0x9379 = 0x57C8</div><div class='add'>+0x937A = 0x57C7</div><div class='add'>+0x937B = 0xFA0F</div><div class='add'>+0x937C = 0xFA10</div><div class='add'>+0x937D = 0x589E</div><div class='add'>+0x937E = 0x58B2</div><div class='add'>+0x9421 = 0x590B</div><div class='add'>+0x9422 = 0x5953</div><div class='add'>+0x9423 = 0x595B</div><div class='add'>+0x9424 = 0x595D</div><div class='add'>+0x9425 = 0x5963</div><div class='add'>+0x9426 = 0x59A4</div><div class='add'>+0x9427 = 0x59BA</div><div class='add'>+0x9428 = 0x5B56</div><div class='add'>+0x9429 = 0x5BC0</div><div class='add'>+0x942A = 0x752F</div><div class='add'>+0x942B = 0x5BD8</div><div class='add'>+0x942C = 0x5BEC</div><div class='add'>+0x942D = 0x5C1E</div><div class='add'>+0x942E = 0x5CA6</div><div class='add'>+0x942F = 0x5CBA</div><div class='add'>+0x9430 = 0x5CF5</div><div class='add'>+0x9431 = 0x5D27</div><div class='add'>+0x9432 = 0x5D53</div><div class='add'>+0x9433 = 0xFA11</div><div class='add'>+0x9434 = 0x5D42</div><div class='add'>+0x9435 = 0x5D6D</div><div class='add'>+0x9436 = 0x5DB8</div><div class='add'>+0x9437 = 0x5DB9</div><div class='add'>+0x9438 = 0x5DD0</div><div class='add'>+0x9439 = 0x5F21</div><div class='add'>+0x943A = 0x5F34</div><div class='add'>+0x943B = 0x5F67</div><div class='add'>+0x943C = 0x5FB7</div><div class='add'>+0x943D = 0x5FDE</div><div class='add'>+0x943E = 0x605D</div><div class='add'>+0x943F = 0x6085</div><div class='add'>+0x9440 = 0x608A</div><div class='add'>+0x9441 = 0x60DE</div><div class='add'>+0x9442 = 0x60D5</div><div class='add'>+0x9443 = 0x6120</div><div class='add'>+0x9444 = 0x60F2</div><div class='add'>+0x9445 = 0x6111</div><div class='add'>+0x9446 = 0x6137</div><div class='add'>+0x9447 = 0x6130</div><div class='add'>+0x9448 = 0x6198</div><div class='add'>+0x9449 = 0x6213</div><div class='add'>+0x944A = 0x62A6</div><div class='add'>+0x944B = 0x63F5</div><div class='add'>+0x944C = 0x6460</div><div class='add'>+0x944D = 0x649D</div><div class='add'>+0x944E = 0x64CE</div><div class='add'>+0x944F = 0x654E</div><div class='add'>+0x9450 = 0x6600</div><div class='add'>+0x9451 = 0x6615</div><div class='add'>+0x9452 = 0x663B</div><div class='add'>+0x9453 = 0x6609</div><div class='add'>+0x9454 = 0x662E</div><div class='add'>+0x9455 = 0x661E</div><div class='add'>+0x9456 = 0x6624</div><div class='add'>+0x9457 = 0x6665</div><div class='add'>+0x9458 = 0x6657</div><div class='add'>+0x9459 = 0x6659</div><div class='add'>+0x945A = 0xFA12</div><div class='add'>+0x945B = 0x6673</div><div class='add'>+0x945C = 0x6699</div><div class='add'>+0x945D = 0x66A0</div><div class='add'>+0x945E = 0x66B2</div><div class='add'>+0x945F = 0x66BF</div><div class='add'>+0x9460 = 0x66FA</div><div class='add'>+0x9461 = 0x670E</div><div class='add'>+0x9462 = 0xF929</div><div class='add'>+0x9463 = 0x6766</div><div class='add'>+0x9464 = 0x67BB</div><div class='add'>+0x9465 = 0x6852</div><div class='add'>+0x9466 = 0x67C0</div><div class='add'>+0x9467 = 0x6801</div><div class='add'>+0x9468 = 0x6844</div><div class='add'>+0x9469 = 0x68CF</div><div class='add'>+0x946A = 0xFA13</div><div class='add'>+0x946B = 0x6968</div><div class='add'>+0x946C = 0xFA14</div><div class='add'>+0x946D = 0x6998</div><div class='add'>+0x946E = 0x69E2</div><div class='add'>+0x946F = 0x6A30</div><div class='add'>+0x9470 = 0x6A6B</div><div class='add'>+0x9471 = 0x6A46</div><div class='add'>+0x9472 = 0x6A73</div><div class='add'>+0x9473 = 0x6A7E</div><div class='add'>+0x9474 = 0x6AE2</div><div class='add'>+0x9475 = 0x6AE4</div><div class='add'>+0x9476 = 0x6BD6</div><div class='add'>+0x9477 = 0x6C3F</div><div class='add'>+0x9478 = 0x6C5C</div><div class='add'>+0x9479 = 0x6C86</div><div class='add'>+0x947A = 0x6C6F</div><div class='add'>+0x947B = 0x6CDA</div><div class='add'>+0x947C = 0x6D04</div><div class='add'>+0x947D = 0x6D87</div><div class='add'>+0x947E = 0x6D6F</div><div class='add'>+0x9521 = 0x6D96</div><div class='add'>+0x9522 = 0x6DAC</div><div class='add'>+0x9523 = 0x6DCF</div><div class='add'>+0x9524 = 0x6DF8</div><div class='add'>+0x9525 = 0x6DF2</div><div class='add'>+0x9526 = 0x6DFC</div><div class='add'>+0x9527 = 0x6E39</div><div class='add'>+0x9528 = 0x6E5C</div><div class='add'>+0x9529 = 0x6E27</div><div class='add'>+0x952A = 0x6E3C</div><div class='add'>+0x952B = 0x6EBF</div><div class='add'>+0x952C = 0x6F88</div><div class='add'>+0x952D = 0x6FB5</div><div class='add'>+0x952E = 0x6FF5</div><div class='add'>+0x952F = 0x7005</div><div class='add'>+0x9530 = 0x7007</div><div class='add'>+0x9531 = 0x7028</div><div class='add'>+0x9532 = 0x7085</div><div class='add'>+0x9533 = 0x70AB</div><div class='add'>+0x9534 = 0x710F</div><div class='add'>+0x9535 = 0x7104</div><div class='add'>+0x9536 = 0x715C</div><div class='add'>+0x9537 = 0x7146</div><div class='add'>+0x9538 = 0x7147</div><div class='add'>+0x9539 = 0xFA15</div><div class='add'>+0x953A = 0x71C1</div><div class='add'>+0x953B = 0x71FE</div><div class='add'>+0x953C = 0x72B1</div><div class='add'>+0x953D = 0x72BE</div><div class='add'>+0x953E = 0x7324</div><div class='add'>+0x953F = 0xFA16</div><div class='add'>+0x9540 = 0x7377</div><div class='add'>+0x9541 = 0x73BD</div><div class='add'>+0x9542 = 0x73C9</div><div class='add'>+0x9543 = 0x73D6</div><div class='add'>+0x9544 = 0x73E3</div><div class='add'>+0x9545 = 0x73D2</div><div class='add'>+0x9546 = 0x7407</div><div class='add'>+0x9547 = 0x73F5</div><div class='add'>+0x9548 = 0x7426</div><div class='add'>+0x9549 = 0x742A</div><div class='add'>+0x954A = 0x7429</div><div class='add'>+0x954B = 0x742E</div><div class='add'>+0x954C = 0x7462</div><div class='add'>+0x954D = 0x7489</div><div class='add'>+0x954E = 0x749F</div><div class='add'>+0x954F = 0x7501</div><div class='add'>+0x9550 = 0x756F</div><div class='add'>+0x9551 = 0x7682</div><div class='add'>+0x9552 = 0x769C</div><div class='add'>+0x9553 = 0x769E</div><div class='add'>+0x9554 = 0x769B</div><div class='add'>+0x9555 = 0x76A6</div><div class='add'>+0x9556 = 0xFA17</div><div class='add'>+0x9557 = 0x7746</div><div class='add'>+0x9558 = 0x52AF</div><div class='add'>+0x9559 = 0x7821</div><div class='add'>+0x955A = 0x784E</div><div class='add'>+0x955B = 0x7864</div><div class='add'>+0x955C = 0x787A</div><div class='add'>+0x955D = 0x7930</div><div class='add'>+0x955E = 0xFA18</div><div class='add'>+0x955F = 0xFA19</div><div class='add'>+0x9560 = 0xFA1A</div><div class='add'>+0x9561 = 0x7994</div><div class='add'>+0x9562 = 0xFA1B</div><div class='add'>+0x9563 = 0x799B</div><div class='add'>+0x9564 = 0x7AD1</div><div class='add'>+0x9565 = 0x7AE7</div><div class='add'>+0x9566 = 0xFA1C</div><div class='add'>+0x9567 = 0x7AEB</div><div class='add'>+0x9568 = 0x7B9E</div><div class='add'>+0x9569 = 0xFA1D</div><div class='add'>+0x956A = 0x7D48</div><div class='add'>+0x956B = 0x7D5C</div><div class='add'>+0x956C = 0x7DB7</div><div class='add'>+0x956D = 0x7DA0</div><div class='add'>+0x956E = 0x7DD6</div><div class='add'>+0x956F = 0x7E52</div><div class='add'>+0x9570 = 0x7F47</div><div class='add'>+0x9571 = 0x7FA1</div><div class='add'>+0x9572 = 0xFA1E</div><div class='add'>+0x9573 = 0x8301</div><div class='add'>+0x9574 = 0x8362</div><div class='add'>+0x9575 = 0x837F</div><div class='add'>+0x9576 = 0x83C7</div><div class='add'>+0x9577 = 0x83F6</div><div class='add'>+0x9578 = 0x8448</div><div class='add'>+0x9579 = 0x84B4</div><div class='add'>+0x957A = 0x8553</div><div class='add'>+0x957B = 0x8559</div><div class='add'>+0x957C = 0x856B</div><div class='add'>+0x957D = 0xFA1F</div><div class='add'>+0x957E = 0x85B0</div><div class='add'>+0x9621 = 0xFA20</div><div class='add'>+0x9622 = 0xFA21</div><div class='add'>+0x9623 = 0x8807</div><div class='add'>+0x9624 = 0x88F5</div><div class='add'>+0x9625 = 0x8A12</div><div class='add'>+0x9626 = 0x8A37</div><div class='add'>+0x9627 = 0x8A79</div><div class='add'>+0x9628 = 0x8AA7</div><div class='add'>+0x9629 = 0x8ABE</div><div class='add'>+0x962A = 0x8ADF</div><div class='add'>+0x962B = 0xFA22</div><div class='add'>+0x962C = 0x8AF6</div><div class='add'>+0x962D = 0x8B53</div><div class='add'>+0x962E = 0x8B7F</div><div class='add'>+0x962F = 0x8CF0</div><div class='add'>+0x9630 = 0x8CF4</div><div class='add'>+0x9631 = 0x8D12</div><div class='add'>+0x9632 = 0x8D76</div><div class='add'>+0x9633 = 0xFA23</div><div class='add'>+0x9634 = 0x8ECF</div><div class='add'>+0x9635 = 0xFA24</div><div class='add'>+0x9636 = 0xFA25</div><div class='add'>+0x9637 = 0x9067</div><div class='add'>+0x9638 = 0x90DE</div><div class='add'>+0x9639 = 0xFA26</div><div class='add'>+0x963A = 0x9115</div><div class='add'>+0x963B = 0x9127</div><div class='add'>+0x963C = 0x91DA</div><div class='add'>+0x963D = 0x91D7</div><div class='add'>+0x963E = 0x91DE</div><div class='add'>+0x963F = 0x91ED</div><div class='add'>+0x9640 = 0x91EE</div><div class='add'>+0x9641 = 0x91E4</div><div class='add'>+0x9642 = 0x91E5</div><div class='add'>+0x9643 = 0x9206</div><div class='add'>+0x9644 = 0x9210</div><div class='add'>+0x9645 = 0x920A</div><div class='add'>+0x9646 = 0x923A</div><div class='add'>+0x9647 = 0x9240</div><div class='add'>+0x9648 = 0x923C</div><div class='add'>+0x9649 = 0x924E</div><div class='add'>+0x964A = 0x9259</div><div class='add'>+0x964B = 0x9251</div><div class='add'>+0x964C = 0x9239</div><div class='add'>+0x964D = 0x9267</div><div class='add'>+0x964E = 0x92A7</div><div class='add'>+0x964F = 0x9277</div><div class='add'>+0x9650 = 0x9278</div><div class='add'>+0x9651 = 0x92E7</div><div class='add'>+0x9652 = 0x92D7</div><div class='add'>+0x9653 = 0x92D9</div><div class='add'>+0x9654 = 0x92D0</div><div class='add'>+0x9655 = 0xFA27</div><div class='add'>+0x9656 = 0x92D5</div><div class='add'>+0x9657 = 0x92E0</div><div class='add'>+0x9658 = 0x92D3</div><div class='add'>+0x9659 = 0x9325</div><div class='add'>+0x965A = 0x9321</div><div class='add'>+0x965B = 0x92FB</div><div class='add'>+0x965C = 0xFA28</div><div class='add'>+0x965D = 0x931E</div><div class='add'>+0x965E = 0x92FF</div><div class='add'>+0x965F = 0x931D</div><div class='add'>+0x9660 = 0x9302</div><div class='add'>+0x9661 = 0x9370</div><div class='add'>+0x9662 = 0x9357</div><div class='add'>+0x9663 = 0x93A4</div><div class='add'>+0x9664 = 0x93C6</div><div class='add'>+0x9665 = 0x93DE</div><div class='add'>+0x9666 = 0x93F8</div><div class='add'>+0x9667 = 0x9431</div><div class='add'>+0x9668 = 0x9445</div><div class='add'>+0x9669 = 0x9448</div><div class='add'>+0x966A = 0x9592</div><div class='add'>+0x966B = 0xF9DC</div><div class='add'>+0x966C = 0xFA29</div><div class='add'>+0x966D = 0x969D</div><div class='add'>+0x966E = 0x96AF</div><div class='add'>+0x966F = 0x9733</div><div class='add'>+0x9670 = 0x973B</div><div class='add'>+0x9671 = 0x9743</div><div class='add'>+0x9672 = 0x974D</div><div class='add'>+0x9673 = 0x974F</div><div class='add'>+0x9674 = 0x9751</div><div class='add'>+0x9675 = 0x9755</div><div class='add'>+0x9676 = 0x9857</div><div class='add'>+0x9677 = 0x9865</div><div class='add'>+0x9678 = 0xFA2A</div><div class='add'>+0x9679 = 0xFA2B</div><div class='add'>+0x967A = 0x9927</div><div class='add'>+0x967B = 0xFA2C</div><div class='add'>+0x967C = 0x999E</div><div class='add'>+0x967D = 0x9A4E</div><div class='add'>+0x967E = 0x9AD9</div><div class='add'>+0x9721 = 0x9ADC</div><div class='add'>+0x9722 = 0x9B75</div><div class='add'>+0x9723 = 0x9B72</div><div class='add'>+0x9724 = 0x9B8F</div><div class='add'>+0x9725 = 0x9BB1</div><div class='add'>+0x9726 = 0x9BBB</div><div class='add'>+0x9727 = 0x9C00</div><div class='add'>+0x9728 = 0x9D70</div><div class='add'>+0x9729 = 0x9D6B</div><div class='add'>+0x972A = 0xFA2D</div><div class='add'>+0x972B = 0x9E19</div><div class='add'>+0x972C = 0x9ED1</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/CP/CP932VDC@NEC_IBM%UCS.src b/enc/trans/CP/CP932VDC@NEC_IBM%UCS.src<br/>new file mode 100644<br/>index 0000000000..7696d909e0<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/CP/CP932VDC@NEC_IBM%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/CP/CP932VDC@NEC_IBM%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,406 @@</div><div class='add'>+# $NetBSD: CP932VDC@NEC_IBM%UCS.src,v 1.1 2006/11/04 03:46:19 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"CP932VDC:NEC_IBM/UCS"</div><div class='add'>+SRC_ZONE	0x79-0x7C / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#    Name:     cp932 to Unicode table</div><div class='add'>+#    Unicode version: 2.0</div><div class='add'>+#    Table version: 2.01</div><div class='add'>+#    Table format:  Format A</div><div class='add'>+#    Date:          04/15/98</div><div class='add'>+#</div><div class='add'>+#    Contact:       cpxlate@microsoft.com</div><div class='add'>+#</div><div class='add'>+#    General notes: none</div><div class='add'>+#</div><div class='add'>+#    Format: Three tab-separated columns</div><div class='add'>+#        Column #1 is the cp932 code (in hex)</div><div class='add'>+#        Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#        Column #3 is the Unicode name (follows a comment sign, '#')</div><div class='add'>+#</div><div class='add'>+#    The entries are in cp932 order</div><div class='add'>+#</div><div class='add'>+0x7921 = 0x7E8A</div><div class='add'>+0x7922 = 0x891C</div><div class='add'>+0x7923 = 0x9348</div><div class='add'>+0x7924 = 0x9288</div><div class='add'>+0x7925 = 0x84DC</div><div class='add'>+0x7926 = 0x4FC9</div><div class='add'>+0x7927 = 0x70BB</div><div class='add'>+0x7928 = 0x6631</div><div class='add'>+0x7929 = 0x68C8</div><div class='add'>+0x792A = 0x92F9</div><div class='add'>+0x792B = 0x66FB</div><div class='add'>+0x792C = 0x5F45</div><div class='add'>+0x792D = 0x4E28</div><div class='add'>+0x792E = 0x4EE1</div><div class='add'>+0x792F = 0x4EFC</div><div class='add'>+0x7930 = 0x4F00</div><div class='add'>+0x7931 = 0x4F03</div><div class='add'>+0x7932 = 0x4F39</div><div class='add'>+0x7933 = 0x4F56</div><div class='add'>+0x7934 = 0x4F92</div><div class='add'>+0x7935 = 0x4F8A</div><div class='add'>+0x7936 = 0x4F9A</div><div class='add'>+0x7937 = 0x4F94</div><div class='add'>+0x7938 = 0x4FCD</div><div class='add'>+0x7939 = 0x5040</div><div class='add'>+0x793A = 0x5022</div><div class='add'>+0x793B = 0x4FFF</div><div class='add'>+0x793C = 0x501E</div><div class='add'>+0x793D = 0x5046</div><div class='add'>+0x793E = 0x5070</div><div class='add'>+0x793F = 0x5042</div><div class='add'>+0x7940 = 0x5094</div><div class='add'>+0x7941 = 0x50F4</div><div class='add'>+0x7942 = 0x50D8</div><div class='add'>+0x7943 = 0x514A</div><div class='add'>+0x7944 = 0x5164</div><div class='add'>+0x7945 = 0x519D</div><div class='add'>+0x7946 = 0x51BE</div><div class='add'>+0x7947 = 0x51EC</div><div class='add'>+0x7948 = 0x5215</div><div class='add'>+0x7949 = 0x529C</div><div class='add'>+0x794A = 0x52A6</div><div class='add'>+0x794B = 0x52C0</div><div class='add'>+0x794C = 0x52DB</div><div class='add'>+0x794D = 0x5300</div><div class='add'>+0x794E = 0x5307</div><div class='add'>+0x794F = 0x5324</div><div class='add'>+0x7950 = 0x5372</div><div class='add'>+0x7951 = 0x5393</div><div class='add'>+0x7952 = 0x53B2</div><div class='add'>+0x7953 = 0x53DD</div><div class='add'>+0x7954 = 0xFA0E</div><div class='add'>+0x7955 = 0x549C</div><div class='add'>+0x7956 = 0x548A</div><div class='add'>+0x7957 = 0x54A9</div><div class='add'>+0x7958 = 0x54FF</div><div class='add'>+0x7959 = 0x5586</div><div class='add'>+0x795A = 0x5759</div><div class='add'>+0x795B = 0x5765</div><div class='add'>+0x795C = 0x57AC</div><div class='add'>+0x795D = 0x57C8</div><div class='add'>+0x795E = 0x57C7</div><div class='add'>+0x795F = 0xFA0F</div><div class='add'>+0x7960 = 0xFA10</div><div class='add'>+0x7961 = 0x589E</div><div class='add'>+0x7962 = 0x58B2</div><div class='add'>+0x7963 = 0x590B</div><div class='add'>+0x7964 = 0x5953</div><div class='add'>+0x7965 = 0x595B</div><div class='add'>+0x7966 = 0x595D</div><div class='add'>+0x7967 = 0x5963</div><div class='add'>+0x7968 = 0x59A4</div><div class='add'>+0x7969 = 0x59BA</div><div class='add'>+0x796A = 0x5B56</div><div class='add'>+0x796B = 0x5BC0</div><div class='add'>+0x796C = 0x752F</div><div class='add'>+0x796D = 0x5BD8</div><div class='add'>+0x796E = 0x5BEC</div><div class='add'>+0x796F = 0x5C1E</div><div class='add'>+0x7970 = 0x5CA6</div><div class='add'>+0x7971 = 0x5CBA</div><div class='add'>+0x7972 = 0x5CF5</div><div class='add'>+0x7973 = 0x5D27</div><div class='add'>+0x7974 = 0x5D53</div><div class='add'>+0x7975 = 0xFA11</div><div class='add'>+0x7976 = 0x5D42</div><div class='add'>+0x7977 = 0x5D6D</div><div class='add'>+0x7978 = 0x5DB8</div><div class='add'>+0x7979 = 0x5DB9</div><div class='add'>+0x797A = 0x5DD0</div><div class='add'>+0x797B = 0x5F21</div><div class='add'>+0x797C = 0x5F34</div><div class='add'>+0x797D = 0x5F67</div><div class='add'>+0x797E = 0x5FB7</div><div class='add'>+0x7A21 = 0x5FDE</div><div class='add'>+0x7A22 = 0x605D</div><div class='add'>+0x7A23 = 0x6085</div><div class='add'>+0x7A24 = 0x608A</div><div class='add'>+0x7A25 = 0x60DE</div><div class='add'>+0x7A26 = 0x60D5</div><div class='add'>+0x7A27 = 0x6120</div><div class='add'>+0x7A28 = 0x60F2</div><div class='add'>+0x7A29 = 0x6111</div><div class='add'>+0x7A2A = 0x6137</div><div class='add'>+0x7A2B = 0x6130</div><div class='add'>+0x7A2C = 0x6198</div><div class='add'>+0x7A2D = 0x6213</div><div class='add'>+0x7A2E = 0x62A6</div><div class='add'>+0x7A2F = 0x63F5</div><div class='add'>+0x7A30 = 0x6460</div><div class='add'>+0x7A31 = 0x649D</div><div class='add'>+0x7A32 = 0x64CE</div><div class='add'>+0x7A33 = 0x654E</div><div class='add'>+0x7A34 = 0x6600</div><div class='add'>+0x7A35 = 0x6615</div><div class='add'>+0x7A36 = 0x663B</div><div class='add'>+0x7A37 = 0x6609</div><div class='add'>+0x7A38 = 0x662E</div><div class='add'>+0x7A39 = 0x661E</div><div class='add'>+0x7A3A = 0x6624</div><div class='add'>+0x7A3B = 0x6665</div><div class='add'>+0x7A3C = 0x6657</div><div class='add'>+0x7A3D = 0x6659</div><div class='add'>+0x7A3E = 0xFA12</div><div class='add'>+0x7A3F = 0x6673</div><div class='add'>+0x7A40 = 0x6699</div><div class='add'>+0x7A41 = 0x66A0</div><div class='add'>+0x7A42 = 0x66B2</div><div class='add'>+0x7A43 = 0x66BF</div><div class='add'>+0x7A44 = 0x66FA</div><div class='add'>+0x7A45 = 0x670E</div><div class='add'>+0x7A46 = 0xF929</div><div class='add'>+0x7A47 = 0x6766</div><div class='add'>+0x7A48 = 0x67BB</div><div class='add'>+0x7A49 = 0x6852</div><div class='add'>+0x7A4A = 0x67C0</div><div class='add'>+0x7A4B = 0x6801</div><div class='add'>+0x7A4C = 0x6844</div><div class='add'>+0x7A4D = 0x68CF</div><div class='add'>+0x7A4E = 0xFA13</div><div class='add'>+0x7A4F = 0x6968</div><div class='add'>+0x7A50 = 0xFA14</div><div class='add'>+0x7A51 = 0x6998</div><div class='add'>+0x7A52 = 0x69E2</div><div class='add'>+0x7A53 = 0x6A30</div><div class='add'>+0x7A54 = 0x6A6B</div><div class='add'>+0x7A55 = 0x6A46</div><div class='add'>+0x7A56 = 0x6A73</div><div class='add'>+0x7A57 = 0x6A7E</div><div class='add'>+0x7A58 = 0x6AE2</div><div class='add'>+0x7A59 = 0x6AE4</div><div class='add'>+0x7A5A = 0x6BD6</div><div class='add'>+0x7A5B = 0x6C3F</div><div class='add'>+0x7A5C = 0x6C5C</div><div class='add'>+0x7A5D = 0x6C86</div><div class='add'>+0x7A5E = 0x6C6F</div><div class='add'>+0x7A5F = 0x6CDA</div><div class='add'>+0x7A60 = 0x6D04</div><div class='add'>+0x7A61 = 0x6D87</div><div class='add'>+0x7A62 = 0x6D6F</div><div class='add'>+0x7A63 = 0x6D96</div><div class='add'>+0x7A64 = 0x6DAC</div><div class='add'>+0x7A65 = 0x6DCF</div><div class='add'>+0x7A66 = 0x6DF8</div><div class='add'>+0x7A67 = 0x6DF2</div><div class='add'>+0x7A68 = 0x6DFC</div><div class='add'>+0x7A69 = 0x6E39</div><div class='add'>+0x7A6A = 0x6E5C</div><div class='add'>+0x7A6B = 0x6E27</div><div class='add'>+0x7A6C = 0x6E3C</div><div class='add'>+0x7A6D = 0x6EBF</div><div class='add'>+0x7A6E = 0x6F88</div><div class='add'>+0x7A6F = 0x6FB5</div><div class='add'>+0x7A70 = 0x6FF5</div><div class='add'>+0x7A71 = 0x7005</div><div class='add'>+0x7A72 = 0x7007</div><div class='add'>+0x7A73 = 0x7028</div><div class='add'>+0x7A74 = 0x7085</div><div class='add'>+0x7A75 = 0x70AB</div><div class='add'>+0x7A76 = 0x710F</div><div class='add'>+0x7A77 = 0x7104</div><div class='add'>+0x7A78 = 0x715C</div><div class='add'>+0x7A79 = 0x7146</div><div class='add'>+0x7A7A = 0x7147</div><div class='add'>+0x7A7B = 0xFA15</div><div class='add'>+0x7A7C = 0x71C1</div><div class='add'>+0x7A7D = 0x71FE</div><div class='add'>+0x7A7E = 0x72B1</div><div class='add'>+0x7B21 = 0x72BE</div><div class='add'>+0x7B22 = 0x7324</div><div class='add'>+0x7B23 = 0xFA16</div><div class='add'>+0x7B24 = 0x7377</div><div class='add'>+0x7B25 = 0x73BD</div><div class='add'>+0x7B26 = 0x73C9</div><div class='add'>+0x7B27 = 0x73D6</div><div class='add'>+0x7B28 = 0x73E3</div><div class='add'>+0x7B29 = 0x73D2</div><div class='add'>+0x7B2A = 0x7407</div><div class='add'>+0x7B2B = 0x73F5</div><div class='add'>+0x7B2C = 0x7426</div><div class='add'>+0x7B2D = 0x742A</div><div class='add'>+0x7B2E = 0x7429</div><div class='add'>+0x7B2F = 0x742E</div><div class='add'>+0x7B30 = 0x7462</div><div class='add'>+0x7B31 = 0x7489</div><div class='add'>+0x7B32 = 0x749F</div><div class='add'>+0x7B33 = 0x7501</div><div class='add'>+0x7B34 = 0x756F</div><div class='add'>+0x7B35 = 0x7682</div><div class='add'>+0x7B36 = 0x769C</div><div class='add'>+0x7B37 = 0x769E</div><div class='add'>+0x7B38 = 0x769B</div><div class='add'>+0x7B39 = 0x76A6</div><div class='add'>+0x7B3A = 0xFA17</div><div class='add'>+0x7B3B = 0x7746</div><div class='add'>+0x7B3C = 0x52AF</div><div class='add'>+0x7B3D = 0x7821</div><div class='add'>+0x7B3E = 0x784E</div><div class='add'>+0x7B3F = 0x7864</div><div class='add'>+0x7B40 = 0x787A</div><div class='add'>+0x7B41 = 0x7930</div><div class='add'>+0x7B42 = 0xFA18</div><div class='add'>+0x7B43 = 0xFA19</div><div class='add'>+0x7B44 = 0xFA1A</div><div class='add'>+0x7B45 = 0x7994</div><div class='add'>+0x7B46 = 0xFA1B</div><div class='add'>+0x7B47 = 0x799B</div><div class='add'>+0x7B48 = 0x7AD1</div><div class='add'>+0x7B49 = 0x7AE7</div><div class='add'>+0x7B4A = 0xFA1C</div><div class='add'>+0x7B4B = 0x7AEB</div><div class='add'>+0x7B4C = 0x7B9E</div><div class='add'>+0x7B4D = 0xFA1D</div><div class='add'>+0x7B4E = 0x7D48</div><div class='add'>+0x7B4F = 0x7D5C</div><div class='add'>+0x7B50 = 0x7DB7</div><div class='add'>+0x7B51 = 0x7DA0</div><div class='add'>+0x7B52 = 0x7DD6</div><div class='add'>+0x7B53 = 0x7E52</div><div class='add'>+0x7B54 = 0x7F47</div><div class='add'>+0x7B55 = 0x7FA1</div><div class='add'>+0x7B56 = 0xFA1E</div><div class='add'>+0x7B57 = 0x8301</div><div class='add'>+0x7B58 = 0x8362</div><div class='add'>+0x7B59 = 0x837F</div><div class='add'>+0x7B5A = 0x83C7</div><div class='add'>+0x7B5B = 0x83F6</div><div class='add'>+0x7B5C = 0x8448</div><div class='add'>+0x7B5D = 0x84B4</div><div class='add'>+0x7B5E = 0x8553</div><div class='add'>+0x7B5F = 0x8559</div><div class='add'>+0x7B60 = 0x856B</div><div class='add'>+0x7B61 = 0xFA1F</div><div class='add'>+0x7B62 = 0x85B0</div><div class='add'>+0x7B63 = 0xFA20</div><div class='add'>+0x7B64 = 0xFA21</div><div class='add'>+0x7B65 = 0x8807</div><div class='add'>+0x7B66 = 0x88F5</div><div class='add'>+0x7B67 = 0x8A12</div><div class='add'>+0x7B68 = 0x8A37</div><div class='add'>+0x7B69 = 0x8A79</div><div class='add'>+0x7B6A = 0x8AA7</div><div class='add'>+0x7B6B = 0x8ABE</div><div class='add'>+0x7B6C = 0x8ADF</div><div class='add'>+0x7B6D = 0xFA22</div><div class='add'>+0x7B6E = 0x8AF6</div><div class='add'>+0x7B6F = 0x8B53</div><div class='add'>+0x7B70 = 0x8B7F</div><div class='add'>+0x7B71 = 0x8CF0</div><div class='add'>+0x7B72 = 0x8CF4</div><div class='add'>+0x7B73 = 0x8D12</div><div class='add'>+0x7B74 = 0x8D76</div><div class='add'>+0x7B75 = 0xFA23</div><div class='add'>+0x7B76 = 0x8ECF</div><div class='add'>+0x7B77 = 0xFA24</div><div class='add'>+0x7B78 = 0xFA25</div><div class='add'>+0x7B79 = 0x9067</div><div class='add'>+0x7B7A = 0x90DE</div><div class='add'>+0x7B7B = 0xFA26</div><div class='add'>+0x7B7C = 0x9115</div><div class='add'>+0x7B7D = 0x9127</div><div class='add'>+0x7B7E = 0x91DA</div><div class='add'>+0x7C21 = 0x91D7</div><div class='add'>+0x7C22 = 0x91DE</div><div class='add'>+0x7C23 = 0x91ED</div><div class='add'>+0x7C24 = 0x91EE</div><div class='add'>+0x7C25 = 0x91E4</div><div class='add'>+0x7C26 = 0x91E5</div><div class='add'>+0x7C27 = 0x9206</div><div class='add'>+0x7C28 = 0x9210</div><div class='add'>+0x7C29 = 0x920A</div><div class='add'>+0x7C2A = 0x923A</div><div class='add'>+0x7C2B = 0x9240</div><div class='add'>+0x7C2C = 0x923C</div><div class='add'>+0x7C2D = 0x924E</div><div class='add'>+0x7C2E = 0x9259</div><div class='add'>+0x7C2F = 0x9251</div><div class='add'>+0x7C30 = 0x9239</div><div class='add'>+0x7C31 = 0x9267</div><div class='add'>+0x7C32 = 0x92A7</div><div class='add'>+0x7C33 = 0x9277</div><div class='add'>+0x7C34 = 0x9278</div><div class='add'>+0x7C35 = 0x92E7</div><div class='add'>+0x7C36 = 0x92D7</div><div class='add'>+0x7C37 = 0x92D9</div><div class='add'>+0x7C38 = 0x92D0</div><div class='add'>+0x7C39 = 0xFA27</div><div class='add'>+0x7C3A = 0x92D5</div><div class='add'>+0x7C3B = 0x92E0</div><div class='add'>+0x7C3C = 0x92D3</div><div class='add'>+0x7C3D = 0x9325</div><div class='add'>+0x7C3E = 0x9321</div><div class='add'>+0x7C3F = 0x92FB</div><div class='add'>+0x7C40 = 0xFA28</div><div class='add'>+0x7C41 = 0x931E</div><div class='add'>+0x7C42 = 0x92FF</div><div class='add'>+0x7C43 = 0x931D</div><div class='add'>+0x7C44 = 0x9302</div><div class='add'>+0x7C45 = 0x9370</div><div class='add'>+0x7C46 = 0x9357</div><div class='add'>+0x7C47 = 0x93A4</div><div class='add'>+0x7C48 = 0x93C6</div><div class='add'>+0x7C49 = 0x93DE</div><div class='add'>+0x7C4A = 0x93F8</div><div class='add'>+0x7C4B = 0x9431</div><div class='add'>+0x7C4C = 0x9445</div><div class='add'>+0x7C4D = 0x9448</div><div class='add'>+0x7C4E = 0x9592</div><div class='add'>+0x7C4F = 0xF9DC</div><div class='add'>+0x7C50 = 0xFA29</div><div class='add'>+0x7C51 = 0x969D</div><div class='add'>+0x7C52 = 0x96AF</div><div class='add'>+0x7C53 = 0x9733</div><div class='add'>+0x7C54 = 0x973B</div><div class='add'>+0x7C55 = 0x9743</div><div class='add'>+0x7C56 = 0x974D</div><div class='add'>+0x7C57 = 0x974F</div><div class='add'>+0x7C58 = 0x9751</div><div class='add'>+0x7C59 = 0x9755</div><div class='add'>+0x7C5A = 0x9857</div><div class='add'>+0x7C5B = 0x9865</div><div class='add'>+0x7C5C = 0xFA2A</div><div class='add'>+0x7C5D = 0xFA2B</div><div class='add'>+0x7C5E = 0x9927</div><div class='add'>+0x7C5F = 0xFA2C</div><div class='add'>+0x7C60 = 0x999E</div><div class='add'>+0x7C61 = 0x9A4E</div><div class='add'>+0x7C62 = 0x9AD9</div><div class='add'>+0x7C63 = 0x9ADC</div><div class='add'>+0x7C64 = 0x9B75</div><div class='add'>+0x7C65 = 0x9B72</div><div class='add'>+0x7C66 = 0x9B8F</div><div class='add'>+0x7C67 = 0x9BB1</div><div class='add'>+0x7C68 = 0x9BBB</div><div class='add'>+0x7C69 = 0x9C00</div><div class='add'>+0x7C6A = 0x9D70</div><div class='add'>+0x7C6B = 0x9D6B</div><div class='add'>+0x7C6C = 0xFA2D</div><div class='add'>+0x7C6D = 0x9E19</div><div class='add'>+0x7C6E = 0x9ED1</div><div class='add'>+0x7C71 = 0x2170</div><div class='add'>+0x7C72 = 0x2171</div><div class='add'>+0x7C73 = 0x2172</div><div class='add'>+0x7C74 = 0x2173</div><div class='add'>+0x7C75 = 0x2174</div><div class='add'>+0x7C76 = 0x2175</div><div class='add'>+0x7C77 = 0x2176</div><div class='add'>+0x7C78 = 0x2177</div><div class='add'>+0x7C79 = 0x2178</div><div class='add'>+0x7C7A = 0x2179</div><div class='add'>+0x7C7B = 0xFFE2</div><div class='add'>+0x7C7C = 0xFFE4</div><div class='add'>+0x7C7D = 0xFF07</div><div class='add'>+0x7C7E = 0xFF02</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/CP/UCS%CP932UDA.src b/enc/trans/CP/UCS%CP932UDA.src<br/>new file mode 100644<br/>index 0000000000..f34e9ed829<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/CP/UCS%25CP932UDA.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/CP/UCS%CP932UDA.src</a></div><div class='hunk'>@@ -0,0 +1,1912 @@</div><div class='add'>+# $NetBSD: UCS%CP932UDA.src,v 1.1 2006/11/04 03:46:19 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"UCS/CP932UDA"</div><div class='add'>+SRC_ZONE	0xE000-0xE757</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFF</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#    Name:     cp932 to Unicode table</div><div class='add'>+#    Unicode version: 2.0</div><div class='add'>+#    Table version: 2.01</div><div class='add'>+#    Table format:  Format A</div><div class='add'>+#    Date:          04/15/98</div><div class='add'>+#</div><div class='add'>+#    Contact:       cpxlate@microsoft.com</div><div class='add'>+#</div><div class='add'>+#    General notes: none</div><div class='add'>+#</div><div class='add'>+#    Format: Three tab-separated columns</div><div class='add'>+#        Column #1 is the cp932 code (in hex)</div><div class='add'>+#        Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#        Column #3 is the Unicode name (follows a comment sign, '#')</div><div class='add'>+#</div><div class='add'>+#    The entries are in cp932 order</div><div class='add'>+#</div><div class='add'>+0xE000 = 0x7F21</div><div class='add'>+0xE001 = 0x7F22</div><div class='add'>+0xE002 = 0x7F23</div><div class='add'>+0xE003 = 0x7F24</div><div class='add'>+0xE004 = 0x7F25</div><div class='add'>+0xE005 = 0x7F26</div><div class='add'>+0xE006 = 0x7F27</div><div class='add'>+0xE007 = 0x7F28</div><div class='add'>+0xE008 = 0x7F29</div><div class='add'>+0xE009 = 0x7F2A</div><div class='add'>+0xE00A = 0x7F2B</div><div class='add'>+0xE00B = 0x7F2C</div><div class='add'>+0xE00C = 0x7F2D</div><div class='add'>+0xE00D = 0x7F2E</div><div class='add'>+0xE00E = 0x7F2F</div><div class='add'>+0xE00F = 0x7F30</div><div class='add'>+0xE010 = 0x7F31</div><div class='add'>+0xE011 = 0x7F32</div><div class='add'>+0xE012 = 0x7F33</div><div class='add'>+0xE013 = 0x7F34</div><div class='add'>+0xE014 = 0x7F35</div><div class='add'>+0xE015 = 0x7F36</div><div class='add'>+0xE016 = 0x7F37</div><div class='add'>+0xE017 = 0x7F38</div><div class='add'>+0xE018 = 0x7F39</div><div class='add'>+0xE019 = 0x7F3A</div><div class='add'>+0xE01A = 0x7F3B</div><div class='add'>+0xE01B = 0x7F3C</div><div class='add'>+0xE01C = 0x7F3D</div><div class='add'>+0xE01D = 0x7F3E</div><div class='add'>+0xE01E = 0x7F3F</div><div class='add'>+0xE01F = 0x7F40</div><div class='add'>+0xE020 = 0x7F41</div><div class='add'>+0xE021 = 0x7F42</div><div class='add'>+0xE022 = 0x7F43</div><div class='add'>+0xE023 = 0x7F44</div><div class='add'>+0xE024 = 0x7F45</div><div class='add'>+0xE025 = 0x7F46</div><div class='add'>+0xE026 = 0x7F47</div><div class='add'>+0xE027 = 0x7F48</div><div class='add'>+0xE028 = 0x7F49</div><div class='add'>+0xE029 = 0x7F4A</div><div class='add'>+0xE02A = 0x7F4B</div><div class='add'>+0xE02B = 0x7F4C</div><div class='add'>+0xE02C = 0x7F4D</div><div class='add'>+0xE02D = 0x7F4E</div><div class='add'>+0xE02E = 0x7F4F</div><div class='add'>+0xE02F = 0x7F50</div><div class='add'>+0xE030 = 0x7F51</div><div class='add'>+0xE031 = 0x7F52</div><div class='add'>+0xE032 = 0x7F53</div><div class='add'>+0xE033 = 0x7F54</div><div class='add'>+0xE034 = 0x7F55</div><div class='add'>+0xE035 = 0x7F56</div><div class='add'>+0xE036 = 0x7F57</div><div class='add'>+0xE037 = 0x7F58</div><div class='add'>+0xE038 = 0x7F59</div><div class='add'>+0xE039 = 0x7F5A</div><div class='add'>+0xE03A = 0x7F5B</div><div class='add'>+0xE03B = 0x7F5C</div><div class='add'>+0xE03C = 0x7F5D</div><div class='add'>+0xE03D = 0x7F5E</div><div class='add'>+0xE03E = 0x7F5F</div><div class='add'>+0xE03F = 0x7F60</div><div class='add'>+0xE040 = 0x7F61</div><div class='add'>+0xE041 = 0x7F62</div><div class='add'>+0xE042 = 0x7F63</div><div class='add'>+0xE043 = 0x7F64</div><div class='add'>+0xE044 = 0x7F65</div><div class='add'>+0xE045 = 0x7F66</div><div class='add'>+0xE046 = 0x7F67</div><div class='add'>+0xE047 = 0x7F68</div><div class='add'>+0xE048 = 0x7F69</div><div class='add'>+0xE049 = 0x7F6A</div><div class='add'>+0xE04A = 0x7F6B</div><div class='add'>+0xE04B = 0x7F6C</div><div class='add'>+0xE04C = 0x7F6D</div><div class='add'>+0xE04D = 0x7F6E</div><div class='add'>+0xE04E = 0x7F6F</div><div class='add'>+0xE04F = 0x7F70</div><div class='add'>+0xE050 = 0x7F71</div><div class='add'>+0xE051 = 0x7F72</div><div class='add'>+0xE052 = 0x7F73</div><div class='add'>+0xE053 = 0x7F74</div><div class='add'>+0xE054 = 0x7F75</div><div class='add'>+0xE055 = 0x7F76</div><div class='add'>+0xE056 = 0x7F77</div><div class='add'>+0xE057 = 0x7F78</div><div class='add'>+0xE058 = 0x7F79</div><div class='add'>+0xE059 = 0x7F7A</div><div class='add'>+0xE05A = 0x7F7B</div><div class='add'>+0xE05B = 0x7F7C</div><div class='add'>+0xE05C = 0x7F7D</div><div class='add'>+0xE05D = 0x7F7E</div><div class='add'>+0xE05E = 0x8021</div><div class='add'>+0xE05F = 0x8022</div><div class='add'>+0xE060 = 0x8023</div><div class='add'>+0xE061 = 0x8024</div><div class='add'>+0xE062 = 0x8025</div><div class='add'>+0xE063 = 0x8026</div><div class='add'>+0xE064 = 0x8027</div><div class='add'>+0xE065 = 0x8028</div><div class='add'>+0xE066 = 0x8029</div><div class='add'>+0xE067 = 0x802A</div><div class='add'>+0xE068 = 0x802B</div><div class='add'>+0xE069 = 0x802C</div><div class='add'>+0xE06A = 0x802D</div><div class='add'>+0xE06B = 0x802E</div><div class='add'>+0xE06C = 0x802F</div><div class='add'>+0xE06D = 0x8030</div><div class='add'>+0xE06E = 0x8031</div><div class='add'>+0xE06F = 0x8032</div><div class='add'>+0xE070 = 0x8033</div><div class='add'>+0xE071 = 0x8034</div><div class='add'>+0xE072 = 0x8035</div><div class='add'>+0xE073 = 0x8036</div><div class='add'>+0xE074 = 0x8037</div><div class='add'>+0xE075 = 0x8038</div><div class='add'>+0xE076 = 0x8039</div><div class='add'>+0xE077 = 0x803A</div><div class='add'>+0xE078 = 0x803B</div><div class='add'>+0xE079 = 0x803C</div><div class='add'>+0xE07A = 0x803D</div><div class='add'>+0xE07B = 0x803E</div><div class='add'>+0xE07C = 0x803F</div><div class='add'>+0xE07D = 0x8040</div><div class='add'>+0xE07E = 0x8041</div><div class='add'>+0xE07F = 0x8042</div><div class='add'>+0xE080 = 0x8043</div><div class='add'>+0xE081 = 0x8044</div><div class='add'>+0xE082 = 0x8045</div><div class='add'>+0xE083 = 0x8046</div><div class='add'>+0xE084 = 0x8047</div><div class='add'>+0xE085 = 0x8048</div><div class='add'>+0xE086 = 0x8049</div><div class='add'>+0xE087 = 0x804A</div><div class='add'>+0xE088 = 0x804B</div><div class='add'>+0xE089 = 0x804C</div><div class='add'>+0xE08A = 0x804D</div><div class='add'>+0xE08B = 0x804E</div><div class='add'>+0xE08C = 0x804F</div><div class='add'>+0xE08D = 0x8050</div><div class='add'>+0xE08E = 0x8051</div><div class='add'>+0xE08F = 0x8052</div><div class='add'>+0xE090 = 0x8053</div><div class='add'>+0xE091 = 0x8054</div><div class='add'>+0xE092 = 0x8055</div><div class='add'>+0xE093 = 0x8056</div><div class='add'>+0xE094 = 0x8057</div><div class='add'>+0xE095 = 0x8058</div><div class='add'>+0xE096 = 0x8059</div><div class='add'>+0xE097 = 0x805A</div><div class='add'>+0xE098 = 0x805B</div><div class='add'>+0xE099 = 0x805C</div><div class='add'>+0xE09A = 0x805D</div><div class='add'>+0xE09B = 0x805E</div><div class='add'>+0xE09C = 0x805F</div><div class='add'>+0xE09D = 0x8060</div><div class='add'>+0xE09E = 0x8061</div><div class='add'>+0xE09F = 0x8062</div><div class='add'>+0xE0A0 = 0x8063</div><div class='add'>+0xE0A1 = 0x8064</div><div class='add'>+0xE0A2 = 0x8065</div><div class='add'>+0xE0A3 = 0x8066</div><div class='add'>+0xE0A4 = 0x8067</div><div class='add'>+0xE0A5 = 0x8068</div><div class='add'>+0xE0A6 = 0x8069</div><div class='add'>+0xE0A7 = 0x806A</div><div class='add'>+0xE0A8 = 0x806B</div><div class='add'>+0xE0A9 = 0x806C</div><div class='add'>+0xE0AA = 0x806D</div><div class='add'>+0xE0AB = 0x806E</div><div class='add'>+0xE0AC = 0x806F</div><div class='add'>+0xE0AD = 0x8070</div><div class='add'>+0xE0AE = 0x8071</div><div class='add'>+0xE0AF = 0x8072</div><div class='add'>+0xE0B0 = 0x8073</div><div class='add'>+0xE0B1 = 0x8074</div><div class='add'>+0xE0B2 = 0x8075</div><div class='add'>+0xE0B3 = 0x8076</div><div class='add'>+0xE0B4 = 0x8077</div><div class='add'>+0xE0B5 = 0x8078</div><div class='add'>+0xE0B6 = 0x8079</div><div class='add'>+0xE0B7 = 0x807A</div><div class='add'>+0xE0B8 = 0x807B</div><div class='add'>+0xE0B9 = 0x807C</div><div class='add'>+0xE0BA = 0x807D</div><div class='add'>+0xE0BB = 0x807E</div><div class='add'>+0xE0BC = 0x8121</div><div class='add'>+0xE0BD = 0x8122</div><div class='add'>+0xE0BE = 0x8123</div><div class='add'>+0xE0BF = 0x8124</div><div class='add'>+0xE0C0 = 0x8125</div><div class='add'>+0xE0C1 = 0x8126</div><div class='add'>+0xE0C2 = 0x8127</div><div class='add'>+0xE0C3 = 0x8128</div><div class='add'>+0xE0C4 = 0x8129</div><div class='add'>+0xE0C5 = 0x812A</div><div class='add'>+0xE0C6 = 0x812B</div><div class='add'>+0xE0C7 = 0x812C</div><div class='add'>+0xE0C8 = 0x812D</div><div class='add'>+0xE0C9 = 0x812E</div><div class='add'>+0xE0CA = 0x812F</div><div class='add'>+0xE0CB = 0x8130</div><div class='add'>+0xE0CC = 0x8131</div><div class='add'>+0xE0CD = 0x8132</div><div class='add'>+0xE0CE = 0x8133</div><div class='add'>+0xE0CF = 0x8134</div><div class='add'>+0xE0D0 = 0x8135</div><div class='add'>+0xE0D1 = 0x8136</div><div class='add'>+0xE0D2 = 0x8137</div><div class='add'>+0xE0D3 = 0x8138</div><div class='add'>+0xE0D4 = 0x8139</div><div class='add'>+0xE0D5 = 0x813A</div><div class='add'>+0xE0D6 = 0x813B</div><div class='add'>+0xE0D7 = 0x813C</div><div class='add'>+0xE0D8 = 0x813D</div><div class='add'>+0xE0D9 = 0x813E</div><div class='add'>+0xE0DA = 0x813F</div><div class='add'>+0xE0DB = 0x8140</div><div class='add'>+0xE0DC = 0x8141</div><div class='add'>+0xE0DD = 0x8142</div><div class='add'>+0xE0DE = 0x8143</div><div class='add'>+0xE0DF = 0x8144</div><div class='add'>+0xE0E0 = 0x8145</div><div class='add'>+0xE0E1 = 0x8146</div><div class='add'>+0xE0E2 = 0x8147</div><div class='add'>+0xE0E3 = 0x8148</div><div class='add'>+0xE0E4 = 0x8149</div><div class='add'>+0xE0E5 = 0x814A</div><div class='add'>+0xE0E6 = 0x814B</div><div class='add'>+0xE0E7 = 0x814C</div><div class='add'>+0xE0E8 = 0x814D</div><div class='add'>+0xE0E9 = 0x814E</div><div class='add'>+0xE0EA = 0x814F</div><div class='add'>+0xE0EB = 0x8150</div><div class='add'>+0xE0EC = 0x8151</div><div class='add'>+0xE0ED = 0x8152</div><div class='add'>+0xE0EE = 0x8153</div><div class='add'>+0xE0EF = 0x8154</div><div class='add'>+0xE0F0 = 0x8155</div><div class='add'>+0xE0F1 = 0x8156</div><div class='add'>+0xE0F2 = 0x8157</div><div class='add'>+0xE0F3 = 0x8158</div><div class='add'>+0xE0F4 = 0x8159</div><div class='add'>+0xE0F5 = 0x815A</div><div class='add'>+0xE0F6 = 0x815B</div><div class='add'>+0xE0F7 = 0x815C</div><div class='add'>+0xE0F8 = 0x815D</div><div class='add'>+0xE0F9 = 0x815E</div><div class='add'>+0xE0FA = 0x815F</div><div class='add'>+0xE0FB = 0x8160</div><div class='add'>+0xE0FC = 0x8161</div><div class='add'>+0xE0FD = 0x8162</div><div class='add'>+0xE0FE = 0x8163</div><div class='add'>+0xE0FF = 0x8164</div><div class='add'>+0xE100 = 0x8165</div><div class='add'>+0xE101 = 0x8166</div><div class='add'>+0xE102 = 0x8167</div><div class='add'>+0xE103 = 0x8168</div><div class='add'>+0xE104 = 0x8169</div><div class='add'>+0xE105 = 0x816A</div><div class='add'>+0xE106 = 0x816B</div><div class='add'>+0xE107 = 0x816C</div><div class='add'>+0xE108 = 0x816D</div><div class='add'>+0xE109 = 0x816E</div><div class='add'>+0xE10A = 0x816F</div><div class='add'>+0xE10B = 0x8170</div><div class='add'>+0xE10C = 0x8171</div><div class='add'>+0xE10D = 0x8172</div><div class='add'>+0xE10E = 0x8173</div><div class='add'>+0xE10F = 0x8174</div><div class='add'>+0xE110 = 0x8175</div><div class='add'>+0xE111 = 0x8176</div><div class='add'>+0xE112 = 0x8177</div><div class='add'>+0xE113 = 0x8178</div><div class='add'>+0xE114 = 0x8179</div><div class='add'>+0xE115 = 0x817A</div><div class='add'>+0xE116 = 0x817B</div><div class='add'>+0xE117 = 0x817C</div><div class='add'>+0xE118 = 0x817D</div><div class='add'>+0xE119 = 0x817E</div><div class='add'>+0xE11A = 0x8221</div><div class='add'>+0xE11B = 0x8222</div><div class='add'>+0xE11C = 0x8223</div><div class='add'>+0xE11D = 0x8224</div><div class='add'>+0xE11E = 0x8225</div><div class='add'>+0xE11F = 0x8226</div><div class='add'>+0xE120 = 0x8227</div><div class='add'>+0xE121 = 0x8228</div><div class='add'>+0xE122 = 0x8229</div><div class='add'>+0xE123 = 0x822A</div><div class='add'>+0xE124 = 0x822B</div><div class='add'>+0xE125 = 0x822C</div><div class='add'>+0xE126 = 0x822D</div><div class='add'>+0xE127 = 0x822E</div><div class='add'>+0xE128 = 0x822F</div><div class='add'>+0xE129 = 0x8230</div><div class='add'>+0xE12A = 0x8231</div><div class='add'>+0xE12B = 0x8232</div><div class='add'>+0xE12C = 0x8233</div><div class='add'>+0xE12D = 0x8234</div><div class='add'>+0xE12E = 0x8235</div><div class='add'>+0xE12F = 0x8236</div><div class='add'>+0xE130 = 0x8237</div><div class='add'>+0xE131 = 0x8238</div><div class='add'>+0xE132 = 0x8239</div><div class='add'>+0xE133 = 0x823A</div><div class='add'>+0xE134 = 0x823B</div><div class='add'>+0xE135 = 0x823C</div><div class='add'>+0xE136 = 0x823D</div><div class='add'>+0xE137 = 0x823E</div><div class='add'>+0xE138 = 0x823F</div><div class='add'>+0xE139 = 0x8240</div><div class='add'>+0xE13A = 0x8241</div><div class='add'>+0xE13B = 0x8242</div><div class='add'>+0xE13C = 0x8243</div><div class='add'>+0xE13D = 0x8244</div><div class='add'>+0xE13E = 0x8245</div><div class='add'>+0xE13F = 0x8246</div><div class='add'>+0xE140 = 0x8247</div><div class='add'>+0xE141 = 0x8248</div><div class='add'>+0xE142 = 0x8249</div><div class='add'>+0xE143 = 0x824A</div><div class='add'>+0xE144 = 0x824B</div><div class='add'>+0xE145 = 0x824C</div><div class='add'>+0xE146 = 0x824D</div><div class='add'>+0xE147 = 0x824E</div><div class='add'>+0xE148 = 0x824F</div><div class='add'>+0xE149 = 0x8250</div><div class='add'>+0xE14A = 0x8251</div><div class='add'>+0xE14B = 0x8252</div><div class='add'>+0xE14C = 0x8253</div><div class='add'>+0xE14D = 0x8254</div><div class='add'>+0xE14E = 0x8255</div><div class='add'>+0xE14F = 0x8256</div><div class='add'>+0xE150 = 0x8257</div><div class='add'>+0xE151 = 0x8258</div><div class='add'>+0xE152 = 0x8259</div><div class='add'>+0xE153 = 0x825A</div><div class='add'>+0xE154 = 0x825B</div><div class='add'>+0xE155 = 0x825C</div><div class='add'>+0xE156 = 0x825D</div><div class='add'>+0xE157 = 0x825E</div><div class='add'>+0xE158 = 0x825F</div><div class='add'>+0xE159 = 0x8260</div><div class='add'>+0xE15A = 0x8261</div><div class='add'>+0xE15B = 0x8262</div><div class='add'>+0xE15C = 0x8263</div><div class='add'>+0xE15D = 0x8264</div><div class='add'>+0xE15E = 0x8265</div><div class='add'>+0xE15F = 0x8266</div><div class='add'>+0xE160 = 0x8267</div><div class='add'>+0xE161 = 0x8268</div><div class='add'>+0xE162 = 0x8269</div><div class='add'>+0xE163 = 0x826A</div><div class='add'>+0xE164 = 0x826B</div><div class='add'>+0xE165 = 0x826C</div><div class='add'>+0xE166 = 0x826D</div><div class='add'>+0xE167 = 0x826E</div><div class='add'>+0xE168 = 0x826F</div><div class='add'>+0xE169 = 0x8270</div><div class='add'>+0xE16A = 0x8271</div><div class='add'>+0xE16B = 0x8272</div><div class='add'>+0xE16C = 0x8273</div><div class='add'>+0xE16D = 0x8274</div><div class='add'>+0xE16E = 0x8275</div><div class='add'>+0xE16F = 0x8276</div><div class='add'>+0xE170 = 0x8277</div><div class='add'>+0xE171 = 0x8278</div><div class='add'>+0xE172 = 0x8279</div><div class='add'>+0xE173 = 0x827A</div><div class='add'>+0xE174 = 0x827B</div><div class='add'>+0xE175 = 0x827C</div><div class='add'>+0xE176 = 0x827D</div><div class='add'>+0xE177 = 0x827E</div><div class='add'>+0xE178 = 0x8321</div><div class='add'>+0xE179 = 0x8322</div><div class='add'>+0xE17A = 0x8323</div><div class='add'>+0xE17B = 0x8324</div><div class='add'>+0xE17C = 0x8325</div><div class='add'>+0xE17D = 0x8326</div><div class='add'>+0xE17E = 0x8327</div><div class='add'>+0xE17F = 0x8328</div><div class='add'>+0xE180 = 0x8329</div><div class='add'>+0xE181 = 0x832A</div><div class='add'>+0xE182 = 0x832B</div><div class='add'>+0xE183 = 0x832C</div><div class='add'>+0xE184 = 0x832D</div><div class='add'>+0xE185 = 0x832E</div><div class='add'>+0xE186 = 0x832F</div><div class='add'>+0xE187 = 0x8330</div><div class='add'>+0xE188 = 0x8331</div><div class='add'>+0xE189 = 0x8332</div><div class='add'>+0xE18A = 0x8333</div><div class='add'>+0xE18B = 0x8334</div><div class='add'>+0xE18C = 0x8335</div><div class='add'>+0xE18D = 0x8336</div><div class='add'>+0xE18E = 0x8337</div><div class='add'>+0xE18F = 0x8338</div><div class='add'>+0xE190 = 0x8339</div><div class='add'>+0xE191 = 0x833A</div><div class='add'>+0xE192 = 0x833B</div><div class='add'>+0xE193 = 0x833C</div><div class='add'>+0xE194 = 0x833D</div><div class='add'>+0xE195 = 0x833E</div><div class='add'>+0xE196 = 0x833F</div><div class='add'>+0xE197 = 0x8340</div><div class='add'>+0xE198 = 0x8341</div><div class='add'>+0xE199 = 0x8342</div><div class='add'>+0xE19A = 0x8343</div><div class='add'>+0xE19B = 0x8344</div><div class='add'>+0xE19C = 0x8345</div><div class='add'>+0xE19D = 0x8346</div><div class='add'>+0xE19E = 0x8347</div><div class='add'>+0xE19F = 0x8348</div><div class='add'>+0xE1A0 = 0x8349</div><div class='add'>+0xE1A1 = 0x834A</div><div class='add'>+0xE1A2 = 0x834B</div><div class='add'>+0xE1A3 = 0x834C</div><div class='add'>+0xE1A4 = 0x834D</div><div class='add'>+0xE1A5 = 0x834E</div><div class='add'>+0xE1A6 = 0x834F</div><div class='add'>+0xE1A7 = 0x8350</div><div class='add'>+0xE1A8 = 0x8351</div><div class='add'>+0xE1A9 = 0x8352</div><div class='add'>+0xE1AA = 0x8353</div><div class='add'>+0xE1AB = 0x8354</div><div class='add'>+0xE1AC = 0x8355</div><div class='add'>+0xE1AD = 0x8356</div><div class='add'>+0xE1AE = 0x8357</div><div class='add'>+0xE1AF = 0x8358</div><div class='add'>+0xE1B0 = 0x8359</div><div class='add'>+0xE1B1 = 0x835A</div><div class='add'>+0xE1B2 = 0x835B</div><div class='add'>+0xE1B3 = 0x835C</div><div class='add'>+0xE1B4 = 0x835D</div><div class='add'>+0xE1B5 = 0x835E</div><div class='add'>+0xE1B6 = 0x835F</div><div class='add'>+0xE1B7 = 0x8360</div><div class='add'>+0xE1B8 = 0x8361</div><div class='add'>+0xE1B9 = 0x8362</div><div class='add'>+0xE1BA = 0x8363</div><div class='add'>+0xE1BB = 0x8364</div><div class='add'>+0xE1BC = 0x8365</div><div class='add'>+0xE1BD = 0x8366</div><div class='add'>+0xE1BE = 0x8367</div><div class='add'>+0xE1BF = 0x8368</div><div class='add'>+0xE1C0 = 0x8369</div><div class='add'>+0xE1C1 = 0x836A</div><div class='add'>+0xE1C2 = 0x836B</div><div class='add'>+0xE1C3 = 0x836C</div><div class='add'>+0xE1C4 = 0x836D</div><div class='add'>+0xE1C5 = 0x836E</div><div class='add'>+0xE1C6 = 0x836F</div><div class='add'>+0xE1C7 = 0x8370</div><div class='add'>+0xE1C8 = 0x8371</div><div class='add'>+0xE1C9 = 0x8372</div><div class='add'>+0xE1CA = 0x8373</div><div class='add'>+0xE1CB = 0x8374</div><div class='add'>+0xE1CC = 0x8375</div><div class='add'>+0xE1CD = 0x8376</div><div class='add'>+0xE1CE = 0x8377</div><div class='add'>+0xE1CF = 0x8378</div><div class='add'>+0xE1D0 = 0x8379</div><div class='add'>+0xE1D1 = 0x837A</div><div class='add'>+0xE1D2 = 0x837B</div><div class='add'>+0xE1D3 = 0x837C</div><div class='add'>+0xE1D4 = 0x837D</div><div class='add'>+0xE1D5 = 0x837E</div><div class='add'>+0xE1D6 = 0x8421</div><div class='add'>+0xE1D7 = 0x8422</div><div class='add'>+0xE1D8 = 0x8423</div><div class='add'>+0xE1D9 = 0x8424</div><div class='add'>+0xE1DA = 0x8425</div><div class='add'>+0xE1DB = 0x8426</div><div class='add'>+0xE1DC = 0x8427</div><div class='add'>+0xE1DD = 0x8428</div><div class='add'>+0xE1DE = 0x8429</div><div class='add'>+0xE1DF = 0x842A</div><div class='add'>+0xE1E0 = 0x842B</div><div class='add'>+0xE1E1 = 0x842C</div><div class='add'>+0xE1E2 = 0x842D</div><div class='add'>+0xE1E3 = 0x842E</div><div class='add'>+0xE1E4 = 0x842F</div><div class='add'>+0xE1E5 = 0x8430</div><div class='add'>+0xE1E6 = 0x8431</div><div class='add'>+0xE1E7 = 0x8432</div><div class='add'>+0xE1E8 = 0x8433</div><div class='add'>+0xE1E9 = 0x8434</div><div class='add'>+0xE1EA = 0x8435</div><div class='add'>+0xE1EB = 0x8436</div><div class='add'>+0xE1EC = 0x8437</div><div class='add'>+0xE1ED = 0x8438</div><div class='add'>+0xE1EE = 0x8439</div><div class='add'>+0xE1EF = 0x843A</div><div class='add'>+0xE1F0 = 0x843B</div><div class='add'>+0xE1F1 = 0x843C</div><div class='add'>+0xE1F2 = 0x843D</div><div class='add'>+0xE1F3 = 0x843E</div><div class='add'>+0xE1F4 = 0x843F</div><div class='add'>+0xE1F5 = 0x8440</div><div class='add'>+0xE1F6 = 0x8441</div><div class='add'>+0xE1F7 = 0x8442</div><div class='add'>+0xE1F8 = 0x8443</div><div class='add'>+0xE1F9 = 0x8444</div><div class='add'>+0xE1FA = 0x8445</div><div class='add'>+0xE1FB = 0x8446</div><div class='add'>+0xE1FC = 0x8447</div><div class='add'>+0xE1FD = 0x8448</div><div class='add'>+0xE1FE = 0x8449</div><div class='add'>+0xE1FF = 0x844A</div><div class='add'>+0xE200 = 0x844B</div><div class='add'>+0xE201 = 0x844C</div><div class='add'>+0xE202 = 0x844D</div><div class='add'>+0xE203 = 0x844E</div><div class='add'>+0xE204 = 0x844F</div><div class='add'>+0xE205 = 0x8450</div><div class='add'>+0xE206 = 0x8451</div><div class='add'>+0xE207 = 0x8452</div><div class='add'>+0xE208 = 0x8453</div><div class='add'>+0xE209 = 0x8454</div><div class='add'>+0xE20A = 0x8455</div><div class='add'>+0xE20B = 0x8456</div><div class='add'>+0xE20C = 0x8457</div><div class='add'>+0xE20D = 0x8458</div><div class='add'>+0xE20E = 0x8459</div><div class='add'>+0xE20F = 0x845A</div><div class='add'>+0xE210 = 0x845B</div><div class='add'>+0xE211 = 0x845C</div><div class='add'>+0xE212 = 0x845D</div><div class='add'>+0xE213 = 0x845E</div><div class='add'>+0xE214 = 0x845F</div><div class='add'>+0xE215 = 0x8460</div><div class='add'>+0xE216 = 0x8461</div><div class='add'>+0xE217 = 0x8462</div><div class='add'>+0xE218 = 0x8463</div><div class='add'>+0xE219 = 0x8464</div><div class='add'>+0xE21A = 0x8465</div><div class='add'>+0xE21B = 0x8466</div><div class='add'>+0xE21C = 0x8467</div><div class='add'>+0xE21D = 0x8468</div><div class='add'>+0xE21E = 0x8469</div><div class='add'>+0xE21F = 0x846A</div><div class='add'>+0xE220 = 0x846B</div><div class='add'>+0xE221 = 0x846C</div><div class='add'>+0xE222 = 0x846D</div><div class='add'>+0xE223 = 0x846E</div><div class='add'>+0xE224 = 0x846F</div><div class='add'>+0xE225 = 0x8470</div><div class='add'>+0xE226 = 0x8471</div><div class='add'>+0xE227 = 0x8472</div><div class='add'>+0xE228 = 0x8473</div><div class='add'>+0xE229 = 0x8474</div><div class='add'>+0xE22A = 0x8475</div><div class='add'>+0xE22B = 0x8476</div><div class='add'>+0xE22C = 0x8477</div><div class='add'>+0xE22D = 0x8478</div><div class='add'>+0xE22E = 0x8479</div><div class='add'>+0xE22F = 0x847A</div><div class='add'>+0xE230 = 0x847B</div><div class='add'>+0xE231 = 0x847C</div><div class='add'>+0xE232 = 0x847D</div><div class='add'>+0xE233 = 0x847E</div><div class='add'>+0xE234 = 0x8521</div><div class='add'>+0xE235 = 0x8522</div><div class='add'>+0xE236 = 0x8523</div><div class='add'>+0xE237 = 0x8524</div><div class='add'>+0xE238 = 0x8525</div><div class='add'>+0xE239 = 0x8526</div><div class='add'>+0xE23A = 0x8527</div><div class='add'>+0xE23B = 0x8528</div><div class='add'>+0xE23C = 0x8529</div><div class='add'>+0xE23D = 0x852A</div><div class='add'>+0xE23E = 0x852B</div><div class='add'>+0xE23F = 0x852C</div><div class='add'>+0xE240 = 0x852D</div><div class='add'>+0xE241 = 0x852E</div><div class='add'>+0xE242 = 0x852F</div><div class='add'>+0xE243 = 0x8530</div><div class='add'>+0xE244 = 0x8531</div><div class='add'>+0xE245 = 0x8532</div><div class='add'>+0xE246 = 0x8533</div><div class='add'>+0xE247 = 0x8534</div><div class='add'>+0xE248 = 0x8535</div><div class='add'>+0xE249 = 0x8536</div><div class='add'>+0xE24A = 0x8537</div><div class='add'>+0xE24B = 0x8538</div><div class='add'>+0xE24C = 0x8539</div><div class='add'>+0xE24D = 0x853A</div><div class='add'>+0xE24E = 0x853B</div><div class='add'>+0xE24F = 0x853C</div><div class='add'>+0xE250 = 0x853D</div><div class='add'>+0xE251 = 0x853E</div><div class='add'>+0xE252 = 0x853F</div><div class='add'>+0xE253 = 0x8540</div><div class='add'>+0xE254 = 0x8541</div><div class='add'>+0xE255 = 0x8542</div><div class='add'>+0xE256 = 0x8543</div><div class='add'>+0xE257 = 0x8544</div><div class='add'>+0xE258 = 0x8545</div><div class='add'>+0xE259 = 0x8546</div><div class='add'>+0xE25A = 0x8547</div><div class='add'>+0xE25B = 0x8548</div><div class='add'>+0xE25C = 0x8549</div><div class='add'>+0xE25D = 0x854A</div><div class='add'>+0xE25E = 0x854B</div><div class='add'>+0xE25F = 0x854C</div><div class='add'>+0xE260 = 0x854D</div><div class='add'>+0xE261 = 0x854E</div><div class='add'>+0xE262 = 0x854F</div><div class='add'>+0xE263 = 0x8550</div><div class='add'>+0xE264 = 0x8551</div><div class='add'>+0xE265 = 0x8552</div><div class='add'>+0xE266 = 0x8553</div><div class='add'>+0xE267 = 0x8554</div><div class='add'>+0xE268 = 0x8555</div><div class='add'>+0xE269 = 0x8556</div><div class='add'>+0xE26A = 0x8557</div><div class='add'>+0xE26B = 0x8558</div><div class='add'>+0xE26C = 0x8559</div><div class='add'>+0xE26D = 0x855A</div><div class='add'>+0xE26E = 0x855B</div><div class='add'>+0xE26F = 0x855C</div><div class='add'>+0xE270 = 0x855D</div><div class='add'>+0xE271 = 0x855E</div><div class='add'>+0xE272 = 0x855F</div><div class='add'>+0xE273 = 0x8560</div><div class='add'>+0xE274 = 0x8561</div><div class='add'>+0xE275 = 0x8562</div><div class='add'>+0xE276 = 0x8563</div><div class='add'>+0xE277 = 0x8564</div><div class='add'>+0xE278 = 0x8565</div><div class='add'>+0xE279 = 0x8566</div><div class='add'>+0xE27A = 0x8567</div><div class='add'>+0xE27B = 0x8568</div><div class='add'>+0xE27C = 0x8569</div><div class='add'>+0xE27D = 0x856A</div><div class='add'>+0xE27E = 0x856B</div><div class='add'>+0xE27F = 0x856C</div><div class='add'>+0xE280 = 0x856D</div><div class='add'>+0xE281 = 0x856E</div><div class='add'>+0xE282 = 0x856F</div><div class='add'>+0xE283 = 0x8570</div><div class='add'>+0xE284 = 0x8571</div><div class='add'>+0xE285 = 0x8572</div><div class='add'>+0xE286 = 0x8573</div><div class='add'>+0xE287 = 0x8574</div><div class='add'>+0xE288 = 0x8575</div><div class='add'>+0xE289 = 0x8576</div><div class='add'>+0xE28A = 0x8577</div><div class='add'>+0xE28B = 0x8578</div><div class='add'>+0xE28C = 0x8579</div><div class='add'>+0xE28D = 0x857A</div><div class='add'>+0xE28E = 0x857B</div><div class='add'>+0xE28F = 0x857C</div><div class='add'>+0xE290 = 0x857D</div><div class='add'>+0xE291 = 0x857E</div><div class='add'>+0xE292 = 0x8621</div><div class='add'>+0xE293 = 0x8622</div><div class='add'>+0xE294 = 0x8623</div><div class='add'>+0xE295 = 0x8624</div><div class='add'>+0xE296 = 0x8625</div><div class='add'>+0xE297 = 0x8626</div><div class='add'>+0xE298 = 0x8627</div><div class='add'>+0xE299 = 0x8628</div><div class='add'>+0xE29A = 0x8629</div><div class='add'>+0xE29B = 0x862A</div><div class='add'>+0xE29C = 0x862B</div><div class='add'>+0xE29D = 0x862C</div><div class='add'>+0xE29E = 0x862D</div><div class='add'>+0xE29F = 0x862E</div><div class='add'>+0xE2A0 = 0x862F</div><div class='add'>+0xE2A1 = 0x8630</div><div class='add'>+0xE2A2 = 0x8631</div><div class='add'>+0xE2A3 = 0x8632</div><div class='add'>+0xE2A4 = 0x8633</div><div class='add'>+0xE2A5 = 0x8634</div><div class='add'>+0xE2A6 = 0x8635</div><div class='add'>+0xE2A7 = 0x8636</div><div class='add'>+0xE2A8 = 0x8637</div><div class='add'>+0xE2A9 = 0x8638</div><div class='add'>+0xE2AA = 0x8639</div><div class='add'>+0xE2AB = 0x863A</div><div class='add'>+0xE2AC = 0x863B</div><div class='add'>+0xE2AD = 0x863C</div><div class='add'>+0xE2AE = 0x863D</div><div class='add'>+0xE2AF = 0x863E</div><div class='add'>+0xE2B0 = 0x863F</div><div class='add'>+0xE2B1 = 0x8640</div><div class='add'>+0xE2B2 = 0x8641</div><div class='add'>+0xE2B3 = 0x8642</div><div class='add'>+0xE2B4 = 0x8643</div><div class='add'>+0xE2B5 = 0x8644</div><div class='add'>+0xE2B6 = 0x8645</div><div class='add'>+0xE2B7 = 0x8646</div><div class='add'>+0xE2B8 = 0x8647</div><div class='add'>+0xE2B9 = 0x8648</div><div class='add'>+0xE2BA = 0x8649</div><div class='add'>+0xE2BB = 0x864A</div><div class='add'>+0xE2BC = 0x864B</div><div class='add'>+0xE2BD = 0x864C</div><div class='add'>+0xE2BE = 0x864D</div><div class='add'>+0xE2BF = 0x864E</div><div class='add'>+0xE2C0 = 0x864F</div><div class='add'>+0xE2C1 = 0x8650</div><div class='add'>+0xE2C2 = 0x8651</div><div class='add'>+0xE2C3 = 0x8652</div><div class='add'>+0xE2C4 = 0x8653</div><div class='add'>+0xE2C5 = 0x8654</div><div class='add'>+0xE2C6 = 0x8655</div><div class='add'>+0xE2C7 = 0x8656</div><div class='add'>+0xE2C8 = 0x8657</div><div class='add'>+0xE2C9 = 0x8658</div><div class='add'>+0xE2CA = 0x8659</div><div class='add'>+0xE2CB = 0x865A</div><div class='add'>+0xE2CC = 0x865B</div><div class='add'>+0xE2CD = 0x865C</div><div class='add'>+0xE2CE = 0x865D</div><div class='add'>+0xE2CF = 0x865E</div><div class='add'>+0xE2D0 = 0x865F</div><div class='add'>+0xE2D1 = 0x8660</div><div class='add'>+0xE2D2 = 0x8661</div><div class='add'>+0xE2D3 = 0x8662</div><div class='add'>+0xE2D4 = 0x8663</div><div class='add'>+0xE2D5 = 0x8664</div><div class='add'>+0xE2D6 = 0x8665</div><div class='add'>+0xE2D7 = 0x8666</div><div class='add'>+0xE2D8 = 0x8667</div><div class='add'>+0xE2D9 = 0x8668</div><div class='add'>+0xE2DA = 0x8669</div><div class='add'>+0xE2DB = 0x866A</div><div class='add'>+0xE2DC = 0x866B</div><div class='add'>+0xE2DD = 0x866C</div><div class='add'>+0xE2DE = 0x866D</div><div class='add'>+0xE2DF = 0x866E</div><div class='add'>+0xE2E0 = 0x866F</div><div class='add'>+0xE2E1 = 0x8670</div><div class='add'>+0xE2E2 = 0x8671</div><div class='add'>+0xE2E3 = 0x8672</div><div class='add'>+0xE2E4 = 0x8673</div><div class='add'>+0xE2E5 = 0x8674</div><div class='add'>+0xE2E6 = 0x8675</div><div class='add'>+0xE2E7 = 0x8676</div><div class='add'>+0xE2E8 = 0x8677</div><div class='add'>+0xE2E9 = 0x8678</div><div class='add'>+0xE2EA = 0x8679</div><div class='add'>+0xE2EB = 0x867A</div><div class='add'>+0xE2EC = 0x867B</div><div class='add'>+0xE2ED = 0x867C</div><div class='add'>+0xE2EE = 0x867D</div><div class='add'>+0xE2EF = 0x867E</div><div class='add'>+0xE2F0 = 0x8721</div><div class='add'>+0xE2F1 = 0x8722</div><div class='add'>+0xE2F2 = 0x8723</div><div class='add'>+0xE2F3 = 0x8724</div><div class='add'>+0xE2F4 = 0x8725</div><div class='add'>+0xE2F5 = 0x8726</div><div class='add'>+0xE2F6 = 0x8727</div><div class='add'>+0xE2F7 = 0x8728</div><div class='add'>+0xE2F8 = 0x8729</div><div class='add'>+0xE2F9 = 0x872A</div><div class='add'>+0xE2FA = 0x872B</div><div class='add'>+0xE2FB = 0x872C</div><div class='add'>+0xE2FC = 0x872D</div><div class='add'>+0xE2FD = 0x872E</div><div class='add'>+0xE2FE = 0x872F</div><div class='add'>+0xE2FF = 0x8730</div><div class='add'>+0xE300 = 0x8731</div><div class='add'>+0xE301 = 0x8732</div><div class='add'>+0xE302 = 0x8733</div><div class='add'>+0xE303 = 0x8734</div><div class='add'>+0xE304 = 0x8735</div><div class='add'>+0xE305 = 0x8736</div><div class='add'>+0xE306 = 0x8737</div><div class='add'>+0xE307 = 0x8738</div><div class='add'>+0xE308 = 0x8739</div><div class='add'>+0xE309 = 0x873A</div><div class='add'>+0xE30A = 0x873B</div><div class='add'>+0xE30B = 0x873C</div><div class='add'>+0xE30C = 0x873D</div><div class='add'>+0xE30D = 0x873E</div><div class='add'>+0xE30E = 0x873F</div><div class='add'>+0xE30F = 0x8740</div><div class='add'>+0xE310 = 0x8741</div><div class='add'>+0xE311 = 0x8742</div><div class='add'>+0xE312 = 0x8743</div><div class='add'>+0xE313 = 0x8744</div><div class='add'>+0xE314 = 0x8745</div><div class='add'>+0xE315 = 0x8746</div><div class='add'>+0xE316 = 0x8747</div><div class='add'>+0xE317 = 0x8748</div><div class='add'>+0xE318 = 0x8749</div><div class='add'>+0xE319 = 0x874A</div><div class='add'>+0xE31A = 0x874B</div><div class='add'>+0xE31B = 0x874C</div><div class='add'>+0xE31C = 0x874D</div><div class='add'>+0xE31D = 0x874E</div><div class='add'>+0xE31E = 0x874F</div><div class='add'>+0xE31F = 0x8750</div><div class='add'>+0xE320 = 0x8751</div><div class='add'>+0xE321 = 0x8752</div><div class='add'>+0xE322 = 0x8753</div><div class='add'>+0xE323 = 0x8754</div><div class='add'>+0xE324 = 0x8755</div><div class='add'>+0xE325 = 0x8756</div><div class='add'>+0xE326 = 0x8757</div><div class='add'>+0xE327 = 0x8758</div><div class='add'>+0xE328 = 0x8759</div><div class='add'>+0xE329 = 0x875A</div><div class='add'>+0xE32A = 0x875B</div><div class='add'>+0xE32B = 0x875C</div><div class='add'>+0xE32C = 0x875D</div><div class='add'>+0xE32D = 0x875E</div><div class='add'>+0xE32E = 0x875F</div><div class='add'>+0xE32F = 0x8760</div><div class='add'>+0xE330 = 0x8761</div><div class='add'>+0xE331 = 0x8762</div><div class='add'>+0xE332 = 0x8763</div><div class='add'>+0xE333 = 0x8764</div><div class='add'>+0xE334 = 0x8765</div><div class='add'>+0xE335 = 0x8766</div><div class='add'>+0xE336 = 0x8767</div><div class='add'>+0xE337 = 0x8768</div><div class='add'>+0xE338 = 0x8769</div><div class='add'>+0xE339 = 0x876A</div><div class='add'>+0xE33A = 0x876B</div><div class='add'>+0xE33B = 0x876C</div><div class='add'>+0xE33C = 0x876D</div><div class='add'>+0xE33D = 0x876E</div><div class='add'>+0xE33E = 0x876F</div><div class='add'>+0xE33F = 0x8770</div><div class='add'>+0xE340 = 0x8771</div><div class='add'>+0xE341 = 0x8772</div><div class='add'>+0xE342 = 0x8773</div><div class='add'>+0xE343 = 0x8774</div><div class='add'>+0xE344 = 0x8775</div><div class='add'>+0xE345 = 0x8776</div><div class='add'>+0xE346 = 0x8777</div><div class='add'>+0xE347 = 0x8778</div><div class='add'>+0xE348 = 0x8779</div><div class='add'>+0xE349 = 0x877A</div><div class='add'>+0xE34A = 0x877B</div><div class='add'>+0xE34B = 0x877C</div><div class='add'>+0xE34C = 0x877D</div><div class='add'>+0xE34D = 0x877E</div><div class='add'>+0xE34E = 0x8821</div><div class='add'>+0xE34F = 0x8822</div><div class='add'>+0xE350 = 0x8823</div><div class='add'>+0xE351 = 0x8824</div><div class='add'>+0xE352 = 0x8825</div><div class='add'>+0xE353 = 0x8826</div><div class='add'>+0xE354 = 0x8827</div><div class='add'>+0xE355 = 0x8828</div><div class='add'>+0xE356 = 0x8829</div><div class='add'>+0xE357 = 0x882A</div><div class='add'>+0xE358 = 0x882B</div><div class='add'>+0xE359 = 0x882C</div><div class='add'>+0xE35A = 0x882D</div><div class='add'>+0xE35B = 0x882E</div><div class='add'>+0xE35C = 0x882F</div><div class='add'>+0xE35D = 0x8830</div><div class='add'>+0xE35E = 0x8831</div><div class='add'>+0xE35F = 0x8832</div><div class='add'>+0xE360 = 0x8833</div><div class='add'>+0xE361 = 0x8834</div><div class='add'>+0xE362 = 0x8835</div><div class='add'>+0xE363 = 0x8836</div><div class='add'>+0xE364 = 0x8837</div><div class='add'>+0xE365 = 0x8838</div><div class='add'>+0xE366 = 0x8839</div><div class='add'>+0xE367 = 0x883A</div><div class='add'>+0xE368 = 0x883B</div><div class='add'>+0xE369 = 0x883C</div><div class='add'>+0xE36A = 0x883D</div><div class='add'>+0xE36B = 0x883E</div><div class='add'>+0xE36C = 0x883F</div><div class='add'>+0xE36D = 0x8840</div><div class='add'>+0xE36E = 0x8841</div><div class='add'>+0xE36F = 0x8842</div><div class='add'>+0xE370 = 0x8843</div><div class='add'>+0xE371 = 0x8844</div><div class='add'>+0xE372 = 0x8845</div><div class='add'>+0xE373 = 0x8846</div><div class='add'>+0xE374 = 0x8847</div><div class='add'>+0xE375 = 0x8848</div><div class='add'>+0xE376 = 0x8849</div><div class='add'>+0xE377 = 0x884A</div><div class='add'>+0xE378 = 0x884B</div><div class='add'>+0xE379 = 0x884C</div><div class='add'>+0xE37A = 0x884D</div><div class='add'>+0xE37B = 0x884E</div><div class='add'>+0xE37C = 0x884F</div><div class='add'>+0xE37D = 0x8850</div><div class='add'>+0xE37E = 0x8851</div><div class='add'>+0xE37F = 0x8852</div><div class='add'>+0xE380 = 0x8853</div><div class='add'>+0xE381 = 0x8854</div><div class='add'>+0xE382 = 0x8855</div><div class='add'>+0xE383 = 0x8856</div><div class='add'>+0xE384 = 0x8857</div><div class='add'>+0xE385 = 0x8858</div><div class='add'>+0xE386 = 0x8859</div><div class='add'>+0xE387 = 0x885A</div><div class='add'>+0xE388 = 0x885B</div><div class='add'>+0xE389 = 0x885C</div><div class='add'>+0xE38A = 0x885D</div><div class='add'>+0xE38B = 0x885E</div><div class='add'>+0xE38C = 0x885F</div><div class='add'>+0xE38D = 0x8860</div><div class='add'>+0xE38E = 0x8861</div><div class='add'>+0xE38F = 0x8862</div><div class='add'>+0xE390 = 0x8863</div><div class='add'>+0xE391 = 0x8864</div><div class='add'>+0xE392 = 0x8865</div><div class='add'>+0xE393 = 0x8866</div><div class='add'>+0xE394 = 0x8867</div><div class='add'>+0xE395 = 0x8868</div><div class='add'>+0xE396 = 0x8869</div><div class='add'>+0xE397 = 0x886A</div><div class='add'>+0xE398 = 0x886B</div><div class='add'>+0xE399 = 0x886C</div><div class='add'>+0xE39A = 0x886D</div><div class='add'>+0xE39B = 0x886E</div><div class='add'>+0xE39C = 0x886F</div><div class='add'>+0xE39D = 0x8870</div><div class='add'>+0xE39E = 0x8871</div><div class='add'>+0xE39F = 0x8872</div><div class='add'>+0xE3A0 = 0x8873</div><div class='add'>+0xE3A1 = 0x8874</div><div class='add'>+0xE3A2 = 0x8875</div><div class='add'>+0xE3A3 = 0x8876</div><div class='add'>+0xE3A4 = 0x8877</div><div class='add'>+0xE3A5 = 0x8878</div><div class='add'>+0xE3A6 = 0x8879</div><div class='add'>+0xE3A7 = 0x887A</div><div class='add'>+0xE3A8 = 0x887B</div><div class='add'>+0xE3A9 = 0x887C</div><div class='add'>+0xE3AA = 0x887D</div><div class='add'>+0xE3AB = 0x887E</div><div class='add'>+0xE3AC = 0x8921</div><div class='add'>+0xE3AD = 0x8922</div><div class='add'>+0xE3AE = 0x8923</div><div class='add'>+0xE3AF = 0x8924</div><div class='add'>+0xE3B0 = 0x8925</div><div class='add'>+0xE3B1 = 0x8926</div><div class='add'>+0xE3B2 = 0x8927</div><div class='add'>+0xE3B3 = 0x8928</div><div class='add'>+0xE3B4 = 0x8929</div><div class='add'>+0xE3B5 = 0x892A</div><div class='add'>+0xE3B6 = 0x892B</div><div class='add'>+0xE3B7 = 0x892C</div><div class='add'>+0xE3B8 = 0x892D</div><div class='add'>+0xE3B9 = 0x892E</div><div class='add'>+0xE3BA = 0x892F</div><div class='add'>+0xE3BB = 0x8930</div><div class='add'>+0xE3BC = 0x8931</div><div class='add'>+0xE3BD = 0x8932</div><div class='add'>+0xE3BE = 0x8933</div><div class='add'>+0xE3BF = 0x8934</div><div class='add'>+0xE3C0 = 0x8935</div><div class='add'>+0xE3C1 = 0x8936</div><div class='add'>+0xE3C2 = 0x8937</div><div class='add'>+0xE3C3 = 0x8938</div><div class='add'>+0xE3C4 = 0x8939</div><div class='add'>+0xE3C5 = 0x893A</div><div class='add'>+0xE3C6 = 0x893B</div><div class='add'>+0xE3C7 = 0x893C</div><div class='add'>+0xE3C8 = 0x893D</div><div class='add'>+0xE3C9 = 0x893E</div><div class='add'>+0xE3CA = 0x893F</div><div class='add'>+0xE3CB = 0x8940</div><div class='add'>+0xE3CC = 0x8941</div><div class='add'>+0xE3CD = 0x8942</div><div class='add'>+0xE3CE = 0x8943</div><div class='add'>+0xE3CF = 0x8944</div><div class='add'>+0xE3D0 = 0x8945</div><div class='add'>+0xE3D1 = 0x8946</div><div class='add'>+0xE3D2 = 0x8947</div><div class='add'>+0xE3D3 = 0x8948</div><div class='add'>+0xE3D4 = 0x8949</div><div class='add'>+0xE3D5 = 0x894A</div><div class='add'>+0xE3D6 = 0x894B</div><div class='add'>+0xE3D7 = 0x894C</div><div class='add'>+0xE3D8 = 0x894D</div><div class='add'>+0xE3D9 = 0x894E</div><div class='add'>+0xE3DA = 0x894F</div><div class='add'>+0xE3DB = 0x8950</div><div class='add'>+0xE3DC = 0x8951</div><div class='add'>+0xE3DD = 0x8952</div><div class='add'>+0xE3DE = 0x8953</div><div class='add'>+0xE3DF = 0x8954</div><div class='add'>+0xE3E0 = 0x8955</div><div class='add'>+0xE3E1 = 0x8956</div><div class='add'>+0xE3E2 = 0x8957</div><div class='add'>+0xE3E3 = 0x8958</div><div class='add'>+0xE3E4 = 0x8959</div><div class='add'>+0xE3E5 = 0x895A</div><div class='add'>+0xE3E6 = 0x895B</div><div class='add'>+0xE3E7 = 0x895C</div><div class='add'>+0xE3E8 = 0x895D</div><div class='add'>+0xE3E9 = 0x895E</div><div class='add'>+0xE3EA = 0x895F</div><div class='add'>+0xE3EB = 0x8960</div><div class='add'>+0xE3EC = 0x8961</div><div class='add'>+0xE3ED = 0x8962</div><div class='add'>+0xE3EE = 0x8963</div><div class='add'>+0xE3EF = 0x8964</div><div class='add'>+0xE3F0 = 0x8965</div><div class='add'>+0xE3F1 = 0x8966</div><div class='add'>+0xE3F2 = 0x8967</div><div class='add'>+0xE3F3 = 0x8968</div><div class='add'>+0xE3F4 = 0x8969</div><div class='add'>+0xE3F5 = 0x896A</div><div class='add'>+0xE3F6 = 0x896B</div><div class='add'>+0xE3F7 = 0x896C</div><div class='add'>+0xE3F8 = 0x896D</div><div class='add'>+0xE3F9 = 0x896E</div><div class='add'>+0xE3FA = 0x896F</div><div class='add'>+0xE3FB = 0x8970</div><div class='add'>+0xE3FC = 0x8971</div><div class='add'>+0xE3FD = 0x8972</div><div class='add'>+0xE3FE = 0x8973</div><div class='add'>+0xE3FF = 0x8974</div><div class='add'>+0xE400 = 0x8975</div><div class='add'>+0xE401 = 0x8976</div><div class='add'>+0xE402 = 0x8977</div><div class='add'>+0xE403 = 0x8978</div><div class='add'>+0xE404 = 0x8979</div><div class='add'>+0xE405 = 0x897A</div><div class='add'>+0xE406 = 0x897B</div><div class='add'>+0xE407 = 0x897C</div><div class='add'>+0xE408 = 0x897D</div><div class='add'>+0xE409 = 0x897E</div><div class='add'>+0xE40A = 0x8A21</div><div class='add'>+0xE40B = 0x8A22</div><div class='add'>+0xE40C = 0x8A23</div><div class='add'>+0xE40D = 0x8A24</div><div class='add'>+0xE40E = 0x8A25</div><div class='add'>+0xE40F = 0x8A26</div><div class='add'>+0xE410 = 0x8A27</div><div class='add'>+0xE411 = 0x8A28</div><div class='add'>+0xE412 = 0x8A29</div><div class='add'>+0xE413 = 0x8A2A</div><div class='add'>+0xE414 = 0x8A2B</div><div class='add'>+0xE415 = 0x8A2C</div><div class='add'>+0xE416 = 0x8A2D</div><div class='add'>+0xE417 = 0x8A2E</div><div class='add'>+0xE418 = 0x8A2F</div><div class='add'>+0xE419 = 0x8A30</div><div class='add'>+0xE41A = 0x8A31</div><div class='add'>+0xE41B = 0x8A32</div><div class='add'>+0xE41C = 0x8A33</div><div class='add'>+0xE41D = 0x8A34</div><div class='add'>+0xE41E = 0x8A35</div><div class='add'>+0xE41F = 0x8A36</div><div class='add'>+0xE420 = 0x8A37</div><div class='add'>+0xE421 = 0x8A38</div><div class='add'>+0xE422 = 0x8A39</div><div class='add'>+0xE423 = 0x8A3A</div><div class='add'>+0xE424 = 0x8A3B</div><div class='add'>+0xE425 = 0x8A3C</div><div class='add'>+0xE426 = 0x8A3D</div><div class='add'>+0xE427 = 0x8A3E</div><div class='add'>+0xE428 = 0x8A3F</div><div class='add'>+0xE429 = 0x8A40</div><div class='add'>+0xE42A = 0x8A41</div><div class='add'>+0xE42B = 0x8A42</div><div class='add'>+0xE42C = 0x8A43</div><div class='add'>+0xE42D = 0x8A44</div><div class='add'>+0xE42E = 0x8A45</div><div class='add'>+0xE42F = 0x8A46</div><div class='add'>+0xE430 = 0x8A47</div><div class='add'>+0xE431 = 0x8A48</div><div class='add'>+0xE432 = 0x8A49</div><div class='add'>+0xE433 = 0x8A4A</div><div class='add'>+0xE434 = 0x8A4B</div><div class='add'>+0xE435 = 0x8A4C</div><div class='add'>+0xE436 = 0x8A4D</div><div class='add'>+0xE437 = 0x8A4E</div><div class='add'>+0xE438 = 0x8A4F</div><div class='add'>+0xE439 = 0x8A50</div><div class='add'>+0xE43A = 0x8A51</div><div class='add'>+0xE43B = 0x8A52</div><div class='add'>+0xE43C = 0x8A53</div><div class='add'>+0xE43D = 0x8A54</div><div class='add'>+0xE43E = 0x8A55</div><div class='add'>+0xE43F = 0x8A56</div><div class='add'>+0xE440 = 0x8A57</div><div class='add'>+0xE441 = 0x8A58</div><div class='add'>+0xE442 = 0x8A59</div><div class='add'>+0xE443 = 0x8A5A</div><div class='add'>+0xE444 = 0x8A5B</div><div class='add'>+0xE445 = 0x8A5C</div><div class='add'>+0xE446 = 0x8A5D</div><div class='add'>+0xE447 = 0x8A5E</div><div class='add'>+0xE448 = 0x8A5F</div><div class='add'>+0xE449 = 0x8A60</div><div class='add'>+0xE44A = 0x8A61</div><div class='add'>+0xE44B = 0x8A62</div><div class='add'>+0xE44C = 0x8A63</div><div class='add'>+0xE44D = 0x8A64</div><div class='add'>+0xE44E = 0x8A65</div><div class='add'>+0xE44F = 0x8A66</div><div class='add'>+0xE450 = 0x8A67</div><div class='add'>+0xE451 = 0x8A68</div><div class='add'>+0xE452 = 0x8A69</div><div class='add'>+0xE453 = 0x8A6A</div><div class='add'>+0xE454 = 0x8A6B</div><div class='add'>+0xE455 = 0x8A6C</div><div class='add'>+0xE456 = 0x8A6D</div><div class='add'>+0xE457 = 0x8A6E</div><div class='add'>+0xE458 = 0x8A6F</div><div class='add'>+0xE459 = 0x8A70</div><div class='add'>+0xE45A = 0x8A71</div><div class='add'>+0xE45B = 0x8A72</div><div class='add'>+0xE45C = 0x8A73</div><div class='add'>+0xE45D = 0x8A74</div><div class='add'>+0xE45E = 0x8A75</div><div class='add'>+0xE45F = 0x8A76</div><div class='add'>+0xE460 = 0x8A77</div><div class='add'>+0xE461 = 0x8A78</div><div class='add'>+0xE462 = 0x8A79</div><div class='add'>+0xE463 = 0x8A7A</div><div class='add'>+0xE464 = 0x8A7B</div><div class='add'>+0xE465 = 0x8A7C</div><div class='add'>+0xE466 = 0x8A7D</div><div class='add'>+0xE467 = 0x8A7E</div><div class='add'>+0xE468 = 0x8B21</div><div class='add'>+0xE469 = 0x8B22</div><div class='add'>+0xE46A = 0x8B23</div><div class='add'>+0xE46B = 0x8B24</div><div class='add'>+0xE46C = 0x8B25</div><div class='add'>+0xE46D = 0x8B26</div><div class='add'>+0xE46E = 0x8B27</div><div class='add'>+0xE46F = 0x8B28</div><div class='add'>+0xE470 = 0x8B29</div><div class='add'>+0xE471 = 0x8B2A</div><div class='add'>+0xE472 = 0x8B2B</div><div class='add'>+0xE473 = 0x8B2C</div><div class='add'>+0xE474 = 0x8B2D</div><div class='add'>+0xE475 = 0x8B2E</div><div class='add'>+0xE476 = 0x8B2F</div><div class='add'>+0xE477 = 0x8B30</div><div class='add'>+0xE478 = 0x8B31</div><div class='add'>+0xE479 = 0x8B32</div><div class='add'>+0xE47A = 0x8B33</div><div class='add'>+0xE47B = 0x8B34</div><div class='add'>+0xE47C = 0x8B35</div><div class='add'>+0xE47D = 0x8B36</div><div class='add'>+0xE47E = 0x8B37</div><div class='add'>+0xE47F = 0x8B38</div><div class='add'>+0xE480 = 0x8B39</div><div class='add'>+0xE481 = 0x8B3A</div><div class='add'>+0xE482 = 0x8B3B</div><div class='add'>+0xE483 = 0x8B3C</div><div class='add'>+0xE484 = 0x8B3D</div><div class='add'>+0xE485 = 0x8B3E</div><div class='add'>+0xE486 = 0x8B3F</div><div class='add'>+0xE487 = 0x8B40</div><div class='add'>+0xE488 = 0x8B41</div><div class='add'>+0xE489 = 0x8B42</div><div class='add'>+0xE48A = 0x8B43</div><div class='add'>+0xE48B = 0x8B44</div><div class='add'>+0xE48C = 0x8B45</div><div class='add'>+0xE48D = 0x8B46</div><div class='add'>+0xE48E = 0x8B47</div><div class='add'>+0xE48F = 0x8B48</div><div class='add'>+0xE490 = 0x8B49</div><div class='add'>+0xE491 = 0x8B4A</div><div class='add'>+0xE492 = 0x8B4B</div><div class='add'>+0xE493 = 0x8B4C</div><div class='add'>+0xE494 = 0x8B4D</div><div class='add'>+0xE495 = 0x8B4E</div><div class='add'>+0xE496 = 0x8B4F</div><div class='add'>+0xE497 = 0x8B50</div><div class='add'>+0xE498 = 0x8B51</div><div class='add'>+0xE499 = 0x8B52</div><div class='add'>+0xE49A = 0x8B53</div><div class='add'>+0xE49B = 0x8B54</div><div class='add'>+0xE49C = 0x8B55</div><div class='add'>+0xE49D = 0x8B56</div><div class='add'>+0xE49E = 0x8B57</div><div class='add'>+0xE49F = 0x8B58</div><div class='add'>+0xE4A0 = 0x8B59</div><div class='add'>+0xE4A1 = 0x8B5A</div><div class='add'>+0xE4A2 = 0x8B5B</div><div class='add'>+0xE4A3 = 0x8B5C</div><div class='add'>+0xE4A4 = 0x8B5D</div><div class='add'>+0xE4A5 = 0x8B5E</div><div class='add'>+0xE4A6 = 0x8B5F</div><div class='add'>+0xE4A7 = 0x8B60</div><div class='add'>+0xE4A8 = 0x8B61</div><div class='add'>+0xE4A9 = 0x8B62</div><div class='add'>+0xE4AA = 0x8B63</div><div class='add'>+0xE4AB = 0x8B64</div><div class='add'>+0xE4AC = 0x8B65</div><div class='add'>+0xE4AD = 0x8B66</div><div class='add'>+0xE4AE = 0x8B67</div><div class='add'>+0xE4AF = 0x8B68</div><div class='add'>+0xE4B0 = 0x8B69</div><div class='add'>+0xE4B1 = 0x8B6A</div><div class='add'>+0xE4B2 = 0x8B6B</div><div class='add'>+0xE4B3 = 0x8B6C</div><div class='add'>+0xE4B4 = 0x8B6D</div><div class='add'>+0xE4B5 = 0x8B6E</div><div class='add'>+0xE4B6 = 0x8B6F</div><div class='add'>+0xE4B7 = 0x8B70</div><div class='add'>+0xE4B8 = 0x8B71</div><div class='add'>+0xE4B9 = 0x8B72</div><div class='add'>+0xE4BA = 0x8B73</div><div class='add'>+0xE4BB = 0x8B74</div><div class='add'>+0xE4BC = 0x8B75</div><div class='add'>+0xE4BD = 0x8B76</div><div class='add'>+0xE4BE = 0x8B77</div><div class='add'>+0xE4BF = 0x8B78</div><div class='add'>+0xE4C0 = 0x8B79</div><div class='add'>+0xE4C1 = 0x8B7A</div><div class='add'>+0xE4C2 = 0x8B7B</div><div class='add'>+0xE4C3 = 0x8B7C</div><div class='add'>+0xE4C4 = 0x8B7D</div><div class='add'>+0xE4C5 = 0x8B7E</div><div class='add'>+0xE4C6 = 0x8C21</div><div class='add'>+0xE4C7 = 0x8C22</div><div class='add'>+0xE4C8 = 0x8C23</div><div class='add'>+0xE4C9 = 0x8C24</div><div class='add'>+0xE4CA = 0x8C25</div><div class='add'>+0xE4CB = 0x8C26</div><div class='add'>+0xE4CC = 0x8C27</div><div class='add'>+0xE4CD = 0x8C28</div><div class='add'>+0xE4CE = 0x8C29</div><div class='add'>+0xE4CF = 0x8C2A</div><div class='add'>+0xE4D0 = 0x8C2B</div><div class='add'>+0xE4D1 = 0x8C2C</div><div class='add'>+0xE4D2 = 0x8C2D</div><div class='add'>+0xE4D3 = 0x8C2E</div><div class='add'>+0xE4D4 = 0x8C2F</div><div class='add'>+0xE4D5 = 0x8C30</div><div class='add'>+0xE4D6 = 0x8C31</div><div class='add'>+0xE4D7 = 0x8C32</div><div class='add'>+0xE4D8 = 0x8C33</div><div class='add'>+0xE4D9 = 0x8C34</div><div class='add'>+0xE4DA = 0x8C35</div><div class='add'>+0xE4DB = 0x8C36</div><div class='add'>+0xE4DC = 0x8C37</div><div class='add'>+0xE4DD = 0x8C38</div><div class='add'>+0xE4DE = 0x8C39</div><div class='add'>+0xE4DF = 0x8C3A</div><div class='add'>+0xE4E0 = 0x8C3B</div><div class='add'>+0xE4E1 = 0x8C3C</div><div class='add'>+0xE4E2 = 0x8C3D</div><div class='add'>+0xE4E3 = 0x8C3E</div><div class='add'>+0xE4E4 = 0x8C3F</div><div class='add'>+0xE4E5 = 0x8C40</div><div class='add'>+0xE4E6 = 0x8C41</div><div class='add'>+0xE4E7 = 0x8C42</div><div class='add'>+0xE4E8 = 0x8C43</div><div class='add'>+0xE4E9 = 0x8C44</div><div class='add'>+0xE4EA = 0x8C45</div><div class='add'>+0xE4EB = 0x8C46</div><div class='add'>+0xE4EC = 0x8C47</div><div class='add'>+0xE4ED = 0x8C48</div><div class='add'>+0xE4EE = 0x8C49</div><div class='add'>+0xE4EF = 0x8C4A</div><div class='add'>+0xE4F0 = 0x8C4B</div><div class='add'>+0xE4F1 = 0x8C4C</div><div class='add'>+0xE4F2 = 0x8C4D</div><div class='add'>+0xE4F3 = 0x8C4E</div><div class='add'>+0xE4F4 = 0x8C4F</div><div class='add'>+0xE4F5 = 0x8C50</div><div class='add'>+0xE4F6 = 0x8C51</div><div class='add'>+0xE4F7 = 0x8C52</div><div class='add'>+0xE4F8 = 0x8C53</div><div class='add'>+0xE4F9 = 0x8C54</div><div class='add'>+0xE4FA = 0x8C55</div><div class='add'>+0xE4FB = 0x8C56</div><div class='add'>+0xE4FC = 0x8C57</div><div class='add'>+0xE4FD = 0x8C58</div><div class='add'>+0xE4FE = 0x8C59</div><div class='add'>+0xE4FF = 0x8C5A</div><div class='add'>+0xE500 = 0x8C5B</div><div class='add'>+0xE501 = 0x8C5C</div><div class='add'>+0xE502 = 0x8C5D</div><div class='add'>+0xE503 = 0x8C5E</div><div class='add'>+0xE504 = 0x8C5F</div><div class='add'>+0xE505 = 0x8C60</div><div class='add'>+0xE506 = 0x8C61</div><div class='add'>+0xE507 = 0x8C62</div><div class='add'>+0xE508 = 0x8C63</div><div class='add'>+0xE509 = 0x8C64</div><div class='add'>+0xE50A = 0x8C65</div><div class='add'>+0xE50B = 0x8C66</div><div class='add'>+0xE50C = 0x8C67</div><div class='add'>+0xE50D = 0x8C68</div><div class='add'>+0xE50E = 0x8C69</div><div class='add'>+0xE50F = 0x8C6A</div><div class='add'>+0xE510 = 0x8C6B</div><div class='add'>+0xE511 = 0x8C6C</div><div class='add'>+0xE512 = 0x8C6D</div><div class='add'>+0xE513 = 0x8C6E</div><div class='add'>+0xE514 = 0x8C6F</div><div class='add'>+0xE515 = 0x8C70</div><div class='add'>+0xE516 = 0x8C71</div><div class='add'>+0xE517 = 0x8C72</div><div class='add'>+0xE518 = 0x8C73</div><div class='add'>+0xE519 = 0x8C74</div><div class='add'>+0xE51A = 0x8C75</div><div class='add'>+0xE51B = 0x8C76</div><div class='add'>+0xE51C = 0x8C77</div><div class='add'>+0xE51D = 0x8C78</div><div class='add'>+0xE51E = 0x8C79</div><div class='add'>+0xE51F = 0x8C7A</div><div class='add'>+0xE520 = 0x8C7B</div><div class='add'>+0xE521 = 0x8C7C</div><div class='add'>+0xE522 = 0x8C7D</div><div class='add'>+0xE523 = 0x8C7E</div><div class='add'>+0xE524 = 0x8D21</div><div class='add'>+0xE525 = 0x8D22</div><div class='add'>+0xE526 = 0x8D23</div><div class='add'>+0xE527 = 0x8D24</div><div class='add'>+0xE528 = 0x8D25</div><div class='add'>+0xE529 = 0x8D26</div><div class='add'>+0xE52A = 0x8D27</div><div class='add'>+0xE52B = 0x8D28</div><div class='add'>+0xE52C = 0x8D29</div><div class='add'>+0xE52D = 0x8D2A</div><div class='add'>+0xE52E = 0x8D2B</div><div class='add'>+0xE52F = 0x8D2C</div><div class='add'>+0xE530 = 0x8D2D</div><div class='add'>+0xE531 = 0x8D2E</div><div class='add'>+0xE532 = 0x8D2F</div><div class='add'>+0xE533 = 0x8D30</div><div class='add'>+0xE534 = 0x8D31</div><div class='add'>+0xE535 = 0x8D32</div><div class='add'>+0xE536 = 0x8D33</div><div class='add'>+0xE537 = 0x8D34</div><div class='add'>+0xE538 = 0x8D35</div><div class='add'>+0xE539 = 0x8D36</div><div class='add'>+0xE53A = 0x8D37</div><div class='add'>+0xE53B = 0x8D38</div><div class='add'>+0xE53C = 0x8D39</div><div class='add'>+0xE53D = 0x8D3A</div><div class='add'>+0xE53E = 0x8D3B</div><div class='add'>+0xE53F = 0x8D3C</div><div class='add'>+0xE540 = 0x8D3D</div><div class='add'>+0xE541 = 0x8D3E</div><div class='add'>+0xE542 = 0x8D3F</div><div class='add'>+0xE543 = 0x8D40</div><div class='add'>+0xE544 = 0x8D41</div><div class='add'>+0xE545 = 0x8D42</div><div class='add'>+0xE546 = 0x8D43</div><div class='add'>+0xE547 = 0x8D44</div><div class='add'>+0xE548 = 0x8D45</div><div class='add'>+0xE549 = 0x8D46</div><div class='add'>+0xE54A = 0x8D47</div><div class='add'>+0xE54B = 0x8D48</div><div class='add'>+0xE54C = 0x8D49</div><div class='add'>+0xE54D = 0x8D4A</div><div class='add'>+0xE54E = 0x8D4B</div><div class='add'>+0xE54F = 0x8D4C</div><div class='add'>+0xE550 = 0x8D4D</div><div class='add'>+0xE551 = 0x8D4E</div><div class='add'>+0xE552 = 0x8D4F</div><div class='add'>+0xE553 = 0x8D50</div><div class='add'>+0xE554 = 0x8D51</div><div class='add'>+0xE555 = 0x8D52</div><div class='add'>+0xE556 = 0x8D53</div><div class='add'>+0xE557 = 0x8D54</div><div class='add'>+0xE558 = 0x8D55</div><div class='add'>+0xE559 = 0x8D56</div><div class='add'>+0xE55A = 0x8D57</div><div class='add'>+0xE55B = 0x8D58</div><div class='add'>+0xE55C = 0x8D59</div><div class='add'>+0xE55D = 0x8D5A</div><div class='add'>+0xE55E = 0x8D5B</div><div class='add'>+0xE55F = 0x8D5C</div><div class='add'>+0xE560 = 0x8D5D</div><div class='add'>+0xE561 = 0x8D5E</div><div class='add'>+0xE562 = 0x8D5F</div><div class='add'>+0xE563 = 0x8D60</div><div class='add'>+0xE564 = 0x8D61</div><div class='add'>+0xE565 = 0x8D62</div><div class='add'>+0xE566 = 0x8D63</div><div class='add'>+0xE567 = 0x8D64</div><div class='add'>+0xE568 = 0x8D65</div><div class='add'>+0xE569 = 0x8D66</div><div class='add'>+0xE56A = 0x8D67</div><div class='add'>+0xE56B = 0x8D68</div><div class='add'>+0xE56C = 0x8D69</div><div class='add'>+0xE56D = 0x8D6A</div><div class='add'>+0xE56E = 0x8D6B</div><div class='add'>+0xE56F = 0x8D6C</div><div class='add'>+0xE570 = 0x8D6D</div><div class='add'>+0xE571 = 0x8D6E</div><div class='add'>+0xE572 = 0x8D6F</div><div class='add'>+0xE573 = 0x8D70</div><div class='add'>+0xE574 = 0x8D71</div><div class='add'>+0xE575 = 0x8D72</div><div class='add'>+0xE576 = 0x8D73</div><div class='add'>+0xE577 = 0x8D74</div><div class='add'>+0xE578 = 0x8D75</div><div class='add'>+0xE579 = 0x8D76</div><div class='add'>+0xE57A = 0x8D77</div><div class='add'>+0xE57B = 0x8D78</div><div class='add'>+0xE57C = 0x8D79</div><div class='add'>+0xE57D = 0x8D7A</div><div class='add'>+0xE57E = 0x8D7B</div><div class='add'>+0xE57F = 0x8D7C</div><div class='add'>+0xE580 = 0x8D7D</div><div class='add'>+0xE581 = 0x8D7E</div><div class='add'>+0xE582 = 0x8E21</div><div class='add'>+0xE583 = 0x8E22</div><div class='add'>+0xE584 = 0x8E23</div><div class='add'>+0xE585 = 0x8E24</div><div class='add'>+0xE586 = 0x8E25</div><div class='add'>+0xE587 = 0x8E26</div><div class='add'>+0xE588 = 0x8E27</div><div class='add'>+0xE589 = 0x8E28</div><div class='add'>+0xE58A = 0x8E29</div><div class='add'>+0xE58B = 0x8E2A</div><div class='add'>+0xE58C = 0x8E2B</div><div class='add'>+0xE58D = 0x8E2C</div><div class='add'>+0xE58E = 0x8E2D</div><div class='add'>+0xE58F = 0x8E2E</div><div class='add'>+0xE590 = 0x8E2F</div><div class='add'>+0xE591 = 0x8E30</div><div class='add'>+0xE592 = 0x8E31</div><div class='add'>+0xE593 = 0x8E32</div><div class='add'>+0xE594 = 0x8E33</div><div class='add'>+0xE595 = 0x8E34</div><div class='add'>+0xE596 = 0x8E35</div><div class='add'>+0xE597 = 0x8E36</div><div class='add'>+0xE598 = 0x8E37</div><div class='add'>+0xE599 = 0x8E38</div><div class='add'>+0xE59A = 0x8E39</div><div class='add'>+0xE59B = 0x8E3A</div><div class='add'>+0xE59C = 0x8E3B</div><div class='add'>+0xE59D = 0x8E3C</div><div class='add'>+0xE59E = 0x8E3D</div><div class='add'>+0xE59F = 0x8E3E</div><div class='add'>+0xE5A0 = 0x8E3F</div><div class='add'>+0xE5A1 = 0x8E40</div><div class='add'>+0xE5A2 = 0x8E41</div><div class='add'>+0xE5A3 = 0x8E42</div><div class='add'>+0xE5A4 = 0x8E43</div><div class='add'>+0xE5A5 = 0x8E44</div><div class='add'>+0xE5A6 = 0x8E45</div><div class='add'>+0xE5A7 = 0x8E46</div><div class='add'>+0xE5A8 = 0x8E47</div><div class='add'>+0xE5A9 = 0x8E48</div><div class='add'>+0xE5AA = 0x8E49</div><div class='add'>+0xE5AB = 0x8E4A</div><div class='add'>+0xE5AC = 0x8E4B</div><div class='add'>+0xE5AD = 0x8E4C</div><div class='add'>+0xE5AE = 0x8E4D</div><div class='add'>+0xE5AF = 0x8E4E</div><div class='add'>+0xE5B0 = 0x8E4F</div><div class='add'>+0xE5B1 = 0x8E50</div><div class='add'>+0xE5B2 = 0x8E51</div><div class='add'>+0xE5B3 = 0x8E52</div><div class='add'>+0xE5B4 = 0x8E53</div><div class='add'>+0xE5B5 = 0x8E54</div><div class='add'>+0xE5B6 = 0x8E55</div><div class='add'>+0xE5B7 = 0x8E56</div><div class='add'>+0xE5B8 = 0x8E57</div><div class='add'>+0xE5B9 = 0x8E58</div><div class='add'>+0xE5BA = 0x8E59</div><div class='add'>+0xE5BB = 0x8E5A</div><div class='add'>+0xE5BC = 0x8E5B</div><div class='add'>+0xE5BD = 0x8E5C</div><div class='add'>+0xE5BE = 0x8E5D</div><div class='add'>+0xE5BF = 0x8E5E</div><div class='add'>+0xE5C0 = 0x8E5F</div><div class='add'>+0xE5C1 = 0x8E60</div><div class='add'>+0xE5C2 = 0x8E61</div><div class='add'>+0xE5C3 = 0x8E62</div><div class='add'>+0xE5C4 = 0x8E63</div><div class='add'>+0xE5C5 = 0x8E64</div><div class='add'>+0xE5C6 = 0x8E65</div><div class='add'>+0xE5C7 = 0x8E66</div><div class='add'>+0xE5C8 = 0x8E67</div><div class='add'>+0xE5C9 = 0x8E68</div><div class='add'>+0xE5CA = 0x8E69</div><div class='add'>+0xE5CB = 0x8E6A</div><div class='add'>+0xE5CC = 0x8E6B</div><div class='add'>+0xE5CD = 0x8E6C</div><div class='add'>+0xE5CE = 0x8E6D</div><div class='add'>+0xE5CF = 0x8E6E</div><div class='add'>+0xE5D0 = 0x8E6F</div><div class='add'>+0xE5D1 = 0x8E70</div><div class='add'>+0xE5D2 = 0x8E71</div><div class='add'>+0xE5D3 = 0x8E72</div><div class='add'>+0xE5D4 = 0x8E73</div><div class='add'>+0xE5D5 = 0x8E74</div><div class='add'>+0xE5D6 = 0x8E75</div><div class='add'>+0xE5D7 = 0x8E76</div><div class='add'>+0xE5D8 = 0x8E77</div><div class='add'>+0xE5D9 = 0x8E78</div><div class='add'>+0xE5DA = 0x8E79</div><div class='add'>+0xE5DB = 0x8E7A</div><div class='add'>+0xE5DC = 0x8E7B</div><div class='add'>+0xE5DD = 0x8E7C</div><div class='add'>+0xE5DE = 0x8E7D</div><div class='add'>+0xE5DF = 0x8E7E</div><div class='add'>+0xE5E0 = 0x8F21</div><div class='add'>+0xE5E1 = 0x8F22</div><div class='add'>+0xE5E2 = 0x8F23</div><div class='add'>+0xE5E3 = 0x8F24</div><div class='add'>+0xE5E4 = 0x8F25</div><div class='add'>+0xE5E5 = 0x8F26</div><div class='add'>+0xE5E6 = 0x8F27</div><div class='add'>+0xE5E7 = 0x8F28</div><div class='add'>+0xE5E8 = 0x8F29</div><div class='add'>+0xE5E9 = 0x8F2A</div><div class='add'>+0xE5EA = 0x8F2B</div><div class='add'>+0xE5EB = 0x8F2C</div><div class='add'>+0xE5EC = 0x8F2D</div><div class='add'>+0xE5ED = 0x8F2E</div><div class='add'>+0xE5EE = 0x8F2F</div><div class='add'>+0xE5EF = 0x8F30</div><div class='add'>+0xE5F0 = 0x8F31</div><div class='add'>+0xE5F1 = 0x8F32</div><div class='add'>+0xE5F2 = 0x8F33</div><div class='add'>+0xE5F3 = 0x8F34</div><div class='add'>+0xE5F4 = 0x8F35</div><div class='add'>+0xE5F5 = 0x8F36</div><div class='add'>+0xE5F6 = 0x8F37</div><div class='add'>+0xE5F7 = 0x8F38</div><div class='add'>+0xE5F8 = 0x8F39</div><div class='add'>+0xE5F9 = 0x8F3A</div><div class='add'>+0xE5FA = 0x8F3B</div><div class='add'>+0xE5FB = 0x8F3C</div><div class='add'>+0xE5FC = 0x8F3D</div><div class='add'>+0xE5FD = 0x8F3E</div><div class='add'>+0xE5FE = 0x8F3F</div><div class='add'>+0xE5FF = 0x8F40</div><div class='add'>+0xE600 = 0x8F41</div><div class='add'>+0xE601 = 0x8F42</div><div class='add'>+0xE602 = 0x8F43</div><div class='add'>+0xE603 = 0x8F44</div><div class='add'>+0xE604 = 0x8F45</div><div class='add'>+0xE605 = 0x8F46</div><div class='add'>+0xE606 = 0x8F47</div><div class='add'>+0xE607 = 0x8F48</div><div class='add'>+0xE608 = 0x8F49</div><div class='add'>+0xE609 = 0x8F4A</div><div class='add'>+0xE60A = 0x8F4B</div><div class='add'>+0xE60B = 0x8F4C</div><div class='add'>+0xE60C = 0x8F4D</div><div class='add'>+0xE60D = 0x8F4E</div><div class='add'>+0xE60E = 0x8F4F</div><div class='add'>+0xE60F = 0x8F50</div><div class='add'>+0xE610 = 0x8F51</div><div class='add'>+0xE611 = 0x8F52</div><div class='add'>+0xE612 = 0x8F53</div><div class='add'>+0xE613 = 0x8F54</div><div class='add'>+0xE614 = 0x8F55</div><div class='add'>+0xE615 = 0x8F56</div><div class='add'>+0xE616 = 0x8F57</div><div class='add'>+0xE617 = 0x8F58</div><div class='add'>+0xE618 = 0x8F59</div><div class='add'>+0xE619 = 0x8F5A</div><div class='add'>+0xE61A = 0x8F5B</div><div class='add'>+0xE61B = 0x8F5C</div><div class='add'>+0xE61C = 0x8F5D</div><div class='add'>+0xE61D = 0x8F5E</div><div class='add'>+0xE61E = 0x8F5F</div><div class='add'>+0xE61F = 0x8F60</div><div class='add'>+0xE620 = 0x8F61</div><div class='add'>+0xE621 = 0x8F62</div><div class='add'>+0xE622 = 0x8F63</div><div class='add'>+0xE623 = 0x8F64</div><div class='add'>+0xE624 = 0x8F65</div><div class='add'>+0xE625 = 0x8F66</div><div class='add'>+0xE626 = 0x8F67</div><div class='add'>+0xE627 = 0x8F68</div><div class='add'>+0xE628 = 0x8F69</div><div class='add'>+0xE629 = 0x8F6A</div><div class='add'>+0xE62A = 0x8F6B</div><div class='add'>+0xE62B = 0x8F6C</div><div class='add'>+0xE62C = 0x8F6D</div><div class='add'>+0xE62D = 0x8F6E</div><div class='add'>+0xE62E = 0x8F6F</div><div class='add'>+0xE62F = 0x8F70</div><div class='add'>+0xE630 = 0x8F71</div><div class='add'>+0xE631 = 0x8F72</div><div class='add'>+0xE632 = 0x8F73</div><div class='add'>+0xE633 = 0x8F74</div><div class='add'>+0xE634 = 0x8F75</div><div class='add'>+0xE635 = 0x8F76</div><div class='add'>+0xE636 = 0x8F77</div><div class='add'>+0xE637 = 0x8F78</div><div class='add'>+0xE638 = 0x8F79</div><div class='add'>+0xE639 = 0x8F7A</div><div class='add'>+0xE63A = 0x8F7B</div><div class='add'>+0xE63B = 0x8F7C</div><div class='add'>+0xE63C = 0x8F7D</div><div class='add'>+0xE63D = 0x8F7E</div><div class='add'>+0xE63E = 0x9021</div><div class='add'>+0xE63F = 0x9022</div><div class='add'>+0xE640 = 0x9023</div><div class='add'>+0xE641 = 0x9024</div><div class='add'>+0xE642 = 0x9025</div><div class='add'>+0xE643 = 0x9026</div><div class='add'>+0xE644 = 0x9027</div><div class='add'>+0xE645 = 0x9028</div><div class='add'>+0xE646 = 0x9029</div><div class='add'>+0xE647 = 0x902A</div><div class='add'>+0xE648 = 0x902B</div><div class='add'>+0xE649 = 0x902C</div><div class='add'>+0xE64A = 0x902D</div><div class='add'>+0xE64B = 0x902E</div><div class='add'>+0xE64C = 0x902F</div><div class='add'>+0xE64D = 0x9030</div><div class='add'>+0xE64E = 0x9031</div><div class='add'>+0xE64F = 0x9032</div><div class='add'>+0xE650 = 0x9033</div><div class='add'>+0xE651 = 0x9034</div><div class='add'>+0xE652 = 0x9035</div><div class='add'>+0xE653 = 0x9036</div><div class='add'>+0xE654 = 0x9037</div><div class='add'>+0xE655 = 0x9038</div><div class='add'>+0xE656 = 0x9039</div><div class='add'>+0xE657 = 0x903A</div><div class='add'>+0xE658 = 0x903B</div><div class='add'>+0xE659 = 0x903C</div><div class='add'>+0xE65A = 0x903D</div><div class='add'>+0xE65B = 0x903E</div><div class='add'>+0xE65C = 0x903F</div><div class='add'>+0xE65D = 0x9040</div><div class='add'>+0xE65E = 0x9041</div><div class='add'>+0xE65F = 0x9042</div><div class='add'>+0xE660 = 0x9043</div><div class='add'>+0xE661 = 0x9044</div><div class='add'>+0xE662 = 0x9045</div><div class='add'>+0xE663 = 0x9046</div><div class='add'>+0xE664 = 0x9047</div><div class='add'>+0xE665 = 0x9048</div><div class='add'>+0xE666 = 0x9049</div><div class='add'>+0xE667 = 0x904A</div><div class='add'>+0xE668 = 0x904B</div><div class='add'>+0xE669 = 0x904C</div><div class='add'>+0xE66A = 0x904D</div><div class='add'>+0xE66B = 0x904E</div><div class='add'>+0xE66C = 0x904F</div><div class='add'>+0xE66D = 0x9050</div><div class='add'>+0xE66E = 0x9051</div><div class='add'>+0xE66F = 0x9052</div><div class='add'>+0xE670 = 0x9053</div><div class='add'>+0xE671 = 0x9054</div><div class='add'>+0xE672 = 0x9055</div><div class='add'>+0xE673 = 0x9056</div><div class='add'>+0xE674 = 0x9057</div><div class='add'>+0xE675 = 0x9058</div><div class='add'>+0xE676 = 0x9059</div><div class='add'>+0xE677 = 0x905A</div><div class='add'>+0xE678 = 0x905B</div><div class='add'>+0xE679 = 0x905C</div><div class='add'>+0xE67A = 0x905D</div><div class='add'>+0xE67B = 0x905E</div><div class='add'>+0xE67C = 0x905F</div><div class='add'>+0xE67D = 0x9060</div><div class='add'>+0xE67E = 0x9061</div><div class='add'>+0xE67F = 0x9062</div><div class='add'>+0xE680 = 0x9063</div><div class='add'>+0xE681 = 0x9064</div><div class='add'>+0xE682 = 0x9065</div><div class='add'>+0xE683 = 0x9066</div><div class='add'>+0xE684 = 0x9067</div><div class='add'>+0xE685 = 0x9068</div><div class='add'>+0xE686 = 0x9069</div><div class='add'>+0xE687 = 0x906A</div><div class='add'>+0xE688 = 0x906B</div><div class='add'>+0xE689 = 0x906C</div><div class='add'>+0xE68A = 0x906D</div><div class='add'>+0xE68B = 0x906E</div><div class='add'>+0xE68C = 0x906F</div><div class='add'>+0xE68D = 0x9070</div><div class='add'>+0xE68E = 0x9071</div><div class='add'>+0xE68F = 0x9072</div><div class='add'>+0xE690 = 0x9073</div><div class='add'>+0xE691 = 0x9074</div><div class='add'>+0xE692 = 0x9075</div><div class='add'>+0xE693 = 0x9076</div><div class='add'>+0xE694 = 0x9077</div><div class='add'>+0xE695 = 0x9078</div><div class='add'>+0xE696 = 0x9079</div><div class='add'>+0xE697 = 0x907A</div><div class='add'>+0xE698 = 0x907B</div><div class='add'>+0xE699 = 0x907C</div><div class='add'>+0xE69A = 0x907D</div><div class='add'>+0xE69B = 0x907E</div><div class='add'>+0xE69C = 0x9121</div><div class='add'>+0xE69D = 0x9122</div><div class='add'>+0xE69E = 0x9123</div><div class='add'>+0xE69F = 0x9124</div><div class='add'>+0xE6A0 = 0x9125</div><div class='add'>+0xE6A1 = 0x9126</div><div class='add'>+0xE6A2 = 0x9127</div><div class='add'>+0xE6A3 = 0x9128</div><div class='add'>+0xE6A4 = 0x9129</div><div class='add'>+0xE6A5 = 0x912A</div><div class='add'>+0xE6A6 = 0x912B</div><div class='add'>+0xE6A7 = 0x912C</div><div class='add'>+0xE6A8 = 0x912D</div><div class='add'>+0xE6A9 = 0x912E</div><div class='add'>+0xE6AA = 0x912F</div><div class='add'>+0xE6AB = 0x9130</div><div class='add'>+0xE6AC = 0x9131</div><div class='add'>+0xE6AD = 0x9132</div><div class='add'>+0xE6AE = 0x9133</div><div class='add'>+0xE6AF = 0x9134</div><div class='add'>+0xE6B0 = 0x9135</div><div class='add'>+0xE6B1 = 0x9136</div><div class='add'>+0xE6B2 = 0x9137</div><div class='add'>+0xE6B3 = 0x9138</div><div class='add'>+0xE6B4 = 0x9139</div><div class='add'>+0xE6B5 = 0x913A</div><div class='add'>+0xE6B6 = 0x913B</div><div class='add'>+0xE6B7 = 0x913C</div><div class='add'>+0xE6B8 = 0x913D</div><div class='add'>+0xE6B9 = 0x913E</div><div class='add'>+0xE6BA = 0x913F</div><div class='add'>+0xE6BB = 0x9140</div><div class='add'>+0xE6BC = 0x9141</div><div class='add'>+0xE6BD = 0x9142</div><div class='add'>+0xE6BE = 0x9143</div><div class='add'>+0xE6BF = 0x9144</div><div class='add'>+0xE6C0 = 0x9145</div><div class='add'>+0xE6C1 = 0x9146</div><div class='add'>+0xE6C2 = 0x9147</div><div class='add'>+0xE6C3 = 0x9148</div><div class='add'>+0xE6C4 = 0x9149</div><div class='add'>+0xE6C5 = 0x914A</div><div class='add'>+0xE6C6 = 0x914B</div><div class='add'>+0xE6C7 = 0x914C</div><div class='add'>+0xE6C8 = 0x914D</div><div class='add'>+0xE6C9 = 0x914E</div><div class='add'>+0xE6CA = 0x914F</div><div class='add'>+0xE6CB = 0x9150</div><div class='add'>+0xE6CC = 0x9151</div><div class='add'>+0xE6CD = 0x9152</div><div class='add'>+0xE6CE = 0x9153</div><div class='add'>+0xE6CF = 0x9154</div><div class='add'>+0xE6D0 = 0x9155</div><div class='add'>+0xE6D1 = 0x9156</div><div class='add'>+0xE6D2 = 0x9157</div><div class='add'>+0xE6D3 = 0x9158</div><div class='add'>+0xE6D4 = 0x9159</div><div class='add'>+0xE6D5 = 0x915A</div><div class='add'>+0xE6D6 = 0x915B</div><div class='add'>+0xE6D7 = 0x915C</div><div class='add'>+0xE6D8 = 0x915D</div><div class='add'>+0xE6D9 = 0x915E</div><div class='add'>+0xE6DA = 0x915F</div><div class='add'>+0xE6DB = 0x9160</div><div class='add'>+0xE6DC = 0x9161</div><div class='add'>+0xE6DD = 0x9162</div><div class='add'>+0xE6DE = 0x9163</div><div class='add'>+0xE6DF = 0x9164</div><div class='add'>+0xE6E0 = 0x9165</div><div class='add'>+0xE6E1 = 0x9166</div><div class='add'>+0xE6E2 = 0x9167</div><div class='add'>+0xE6E3 = 0x9168</div><div class='add'>+0xE6E4 = 0x9169</div><div class='add'>+0xE6E5 = 0x916A</div><div class='add'>+0xE6E6 = 0x916B</div><div class='add'>+0xE6E7 = 0x916C</div><div class='add'>+0xE6E8 = 0x916D</div><div class='add'>+0xE6E9 = 0x916E</div><div class='add'>+0xE6EA = 0x916F</div><div class='add'>+0xE6EB = 0x9170</div><div class='add'>+0xE6EC = 0x9171</div><div class='add'>+0xE6ED = 0x9172</div><div class='add'>+0xE6EE = 0x9173</div><div class='add'>+0xE6EF = 0x9174</div><div class='add'>+0xE6F0 = 0x9175</div><div class='add'>+0xE6F1 = 0x9176</div><div class='add'>+0xE6F2 = 0x9177</div><div class='add'>+0xE6F3 = 0x9178</div><div class='add'>+0xE6F4 = 0x9179</div><div class='add'>+0xE6F5 = 0x917A</div><div class='add'>+0xE6F6 = 0x917B</div><div class='add'>+0xE6F7 = 0x917C</div><div class='add'>+0xE6F8 = 0x917D</div><div class='add'>+0xE6F9 = 0x917E</div><div class='add'>+0xE6FA = 0x9221</div><div class='add'>+0xE6FB = 0x9222</div><div class='add'>+0xE6FC = 0x9223</div><div class='add'>+0xE6FD = 0x9224</div><div class='add'>+0xE6FE = 0x9225</div><div class='add'>+0xE6FF = 0x9226</div><div class='add'>+0xE700 = 0x9227</div><div class='add'>+0xE701 = 0x9228</div><div class='add'>+0xE702 = 0x9229</div><div class='add'>+0xE703 = 0x922A</div><div class='add'>+0xE704 = 0x922B</div><div class='add'>+0xE705 = 0x922C</div><div class='add'>+0xE706 = 0x922D</div><div class='add'>+0xE707 = 0x922E</div><div class='add'>+0xE708 = 0x922F</div><div class='add'>+0xE709 = 0x9230</div><div class='add'>+0xE70A = 0x9231</div><div class='add'>+0xE70B = 0x9232</div><div class='add'>+0xE70C = 0x9233</div><div class='add'>+0xE70D = 0x9234</div><div class='add'>+0xE70E = 0x9235</div><div class='add'>+0xE70F = 0x9236</div><div class='add'>+0xE710 = 0x9237</div><div class='add'>+0xE711 = 0x9238</div><div class='add'>+0xE712 = 0x9239</div><div class='add'>+0xE713 = 0x923A</div><div class='add'>+0xE714 = 0x923B</div><div class='add'>+0xE715 = 0x923C</div><div class='add'>+0xE716 = 0x923D</div><div class='add'>+0xE717 = 0x923E</div><div class='add'>+0xE718 = 0x923F</div><div class='add'>+0xE719 = 0x9240</div><div class='add'>+0xE71A = 0x9241</div><div class='add'>+0xE71B = 0x9242</div><div class='add'>+0xE71C = 0x9243</div><div class='add'>+0xE71D = 0x9244</div><div class='add'>+0xE71E = 0x9245</div><div class='add'>+0xE71F = 0x9246</div><div class='add'>+0xE720 = 0x9247</div><div class='add'>+0xE721 = 0x9248</div><div class='add'>+0xE722 = 0x9249</div><div class='add'>+0xE723 = 0x924A</div><div class='add'>+0xE724 = 0x924B</div><div class='add'>+0xE725 = 0x924C</div><div class='add'>+0xE726 = 0x924D</div><div class='add'>+0xE727 = 0x924E</div><div class='add'>+0xE728 = 0x924F</div><div class='add'>+0xE729 = 0x9250</div><div class='add'>+0xE72A = 0x9251</div><div class='add'>+0xE72B = 0x9252</div><div class='add'>+0xE72C = 0x9253</div><div class='add'>+0xE72D = 0x9254</div><div class='add'>+0xE72E = 0x9255</div><div class='add'>+0xE72F = 0x9256</div><div class='add'>+0xE730 = 0x9257</div><div class='add'>+0xE731 = 0x9258</div><div class='add'>+0xE732 = 0x9259</div><div class='add'>+0xE733 = 0x925A</div><div class='add'>+0xE734 = 0x925B</div><div class='add'>+0xE735 = 0x925C</div><div class='add'>+0xE736 = 0x925D</div><div class='add'>+0xE737 = 0x925E</div><div class='add'>+0xE738 = 0x925F</div><div class='add'>+0xE739 = 0x9260</div><div class='add'>+0xE73A = 0x9261</div><div class='add'>+0xE73B = 0x9262</div><div class='add'>+0xE73C = 0x9263</div><div class='add'>+0xE73D = 0x9264</div><div class='add'>+0xE73E = 0x9265</div><div class='add'>+0xE73F = 0x9266</div><div class='add'>+0xE740 = 0x9267</div><div class='add'>+0xE741 = 0x9268</div><div class='add'>+0xE742 = 0x9269</div><div class='add'>+0xE743 = 0x926A</div><div class='add'>+0xE744 = 0x926B</div><div class='add'>+0xE745 = 0x926C</div><div class='add'>+0xE746 = 0x926D</div><div class='add'>+0xE747 = 0x926E</div><div class='add'>+0xE748 = 0x926F</div><div class='add'>+0xE749 = 0x9270</div><div class='add'>+0xE74A = 0x9271</div><div class='add'>+0xE74B = 0x9272</div><div class='add'>+0xE74C = 0x9273</div><div class='add'>+0xE74D = 0x9274</div><div class='add'>+0xE74E = 0x9275</div><div class='add'>+0xE74F = 0x9276</div><div class='add'>+0xE750 = 0x9277</div><div class='add'>+0xE751 = 0x9278</div><div class='add'>+0xE752 = 0x9279</div><div class='add'>+0xE753 = 0x927A</div><div class='add'>+0xE754 = 0x927B</div><div class='add'>+0xE755 = 0x927C</div><div class='add'>+0xE756 = 0x927D</div><div class='add'>+0xE757 = 0x927E</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/CP/UCS%CP932VDC@IBM.src b/enc/trans/CP/UCS%CP932VDC@IBM.src<br/>new file mode 100644<br/>index 0000000000..78e9b316b4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/CP/UCS%25CP932VDC@IBM.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/CP/UCS%CP932VDC@IBM.src</a></div><div class='hunk'>@@ -0,0 +1,420 @@</div><div class='add'>+# $NetBSD: UCS%CP932VDC@IBM.src,v 1.1 2006/11/04 03:46:19 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"UCS/CP932VDC:IBM"</div><div class='add'>+SRC_ZONE	0x2116-0xFFE4</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFF</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#    Name:     cp932 to Unicode table</div><div class='add'>+#    Unicode version: 2.0</div><div class='add'>+#    Table version: 2.01</div><div class='add'>+#    Table format:  Format A</div><div class='add'>+#    Date:          04/15/98</div><div class='add'>+#</div><div class='add'>+#    Contact:       cpxlate@microsoft.com</div><div class='add'>+#</div><div class='add'>+#    General notes: none</div><div class='add'>+#</div><div class='add'>+#    Format: Three tab-separated columns</div><div class='add'>+#        Column #1 is the cp932 code (in hex)</div><div class='add'>+#        Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#        Column #3 is the Unicode name (follows a comment sign, '#')</div><div class='add'>+#</div><div class='add'>+#    The entries are in cp932 order</div><div class='add'>+#</div><div class='add'>+0x2116 = 0x933A</div><div class='add'>+0x2121 = 0x933B</div><div class='add'>+0x2160 = 0x932B</div><div class='add'>+0x2161 = 0x932C</div><div class='add'>+0x2162 = 0x932D</div><div class='add'>+0x2163 = 0x932E</div><div class='add'>+0x2164 = 0x932F</div><div class='add'>+0x2165 = 0x9330</div><div class='add'>+0x2166 = 0x9331</div><div class='add'>+0x2167 = 0x9332</div><div class='add'>+0x2168 = 0x9333</div><div class='add'>+0x2169 = 0x9334</div><div class='add'>+0x2170 = 0x9321</div><div class='add'>+0x2171 = 0x9322</div><div class='add'>+0x2172 = 0x9323</div><div class='add'>+0x2173 = 0x9324</div><div class='add'>+0x2174 = 0x9325</div><div class='add'>+0x2175 = 0x9326</div><div class='add'>+0x2176 = 0x9327</div><div class='add'>+0x2177 = 0x9328</div><div class='add'>+0x2178 = 0x9329</div><div class='add'>+0x2179 = 0x932A</div><div class='add'>+0x2235 = 0x933C</div><div class='add'>+0x3231 = 0x9339</div><div class='add'>+0x4E28 = 0x9349</div><div class='add'>+0x4EE1 = 0x934A</div><div class='add'>+0x4EFC = 0x934B</div><div class='add'>+0x4F00 = 0x934C</div><div class='add'>+0x4F03 = 0x934D</div><div class='add'>+0x4F39 = 0x934E</div><div class='add'>+0x4F56 = 0x934F</div><div class='add'>+0x4F8A = 0x9351</div><div class='add'>+0x4F92 = 0x9350</div><div class='add'>+0x4F94 = 0x9353</div><div class='add'>+0x4F9A = 0x9352</div><div class='add'>+0x4FC9 = 0x9342</div><div class='add'>+0x4FCD = 0x9354</div><div class='add'>+0x4FFF = 0x9357</div><div class='add'>+0x501E = 0x9358</div><div class='add'>+0x5022 = 0x9356</div><div class='add'>+0x5040 = 0x9355</div><div class='add'>+0x5042 = 0x935B</div><div class='add'>+0x5046 = 0x9359</div><div class='add'>+0x5070 = 0x935A</div><div class='add'>+0x5094 = 0x935C</div><div class='add'>+0x50D8 = 0x935E</div><div class='add'>+0x50F4 = 0x935D</div><div class='add'>+0x514A = 0x935F</div><div class='add'>+0x5164 = 0x9360</div><div class='add'>+0x519D = 0x9361</div><div class='add'>+0x51BE = 0x9362</div><div class='add'>+0x51EC = 0x9363</div><div class='add'>+0x5215 = 0x9364</div><div class='add'>+0x529C = 0x9365</div><div class='add'>+0x52A6 = 0x9366</div><div class='add'>+0x52AF = 0x9558</div><div class='add'>+0x52C0 = 0x9367</div><div class='add'>+0x52DB = 0x9368</div><div class='add'>+0x5300 = 0x9369</div><div class='add'>+0x5307 = 0x936A</div><div class='add'>+0x5324 = 0x936B</div><div class='add'>+0x5372 = 0x936C</div><div class='add'>+0x5393 = 0x936D</div><div class='add'>+0x53B2 = 0x936E</div><div class='add'>+0x53DD = 0x936F</div><div class='add'>+0x548A = 0x9372</div><div class='add'>+0x549C = 0x9371</div><div class='add'>+0x54A9 = 0x9373</div><div class='add'>+0x54FF = 0x9374</div><div class='add'>+0x5586 = 0x9375</div><div class='add'>+0x5759 = 0x9376</div><div class='add'>+0x5765 = 0x9377</div><div class='add'>+0x57AC = 0x9378</div><div class='add'>+0x57C7 = 0x937A</div><div class='add'>+0x57C8 = 0x9379</div><div class='add'>+0x589E = 0x937D</div><div class='add'>+0x58B2 = 0x937E</div><div class='add'>+0x590B = 0x9421</div><div class='add'>+0x5953 = 0x9422</div><div class='add'>+0x595B = 0x9423</div><div class='add'>+0x595D = 0x9424</div><div class='add'>+0x5963 = 0x9425</div><div class='add'>+0x59A4 = 0x9426</div><div class='add'>+0x59BA = 0x9427</div><div class='add'>+0x5B56 = 0x9428</div><div class='add'>+0x5BC0 = 0x9429</div><div class='add'>+0x5BD8 = 0x942B</div><div class='add'>+0x5BEC = 0x942C</div><div class='add'>+0x5C1E = 0x942D</div><div class='add'>+0x5CA6 = 0x942E</div><div class='add'>+0x5CBA = 0x942F</div><div class='add'>+0x5CF5 = 0x9430</div><div class='add'>+0x5D27 = 0x9431</div><div class='add'>+0x5D42 = 0x9434</div><div class='add'>+0x5D53 = 0x9432</div><div class='add'>+0x5D6D = 0x9435</div><div class='add'>+0x5DB8 = 0x9436</div><div class='add'>+0x5DB9 = 0x9437</div><div class='add'>+0x5DD0 = 0x9438</div><div class='add'>+0x5F21 = 0x9439</div><div class='add'>+0x5F34 = 0x943A</div><div class='add'>+0x5F45 = 0x9348</div><div class='add'>+0x5F67 = 0x943B</div><div class='add'>+0x5FB7 = 0x943C</div><div class='add'>+0x5FDE = 0x943D</div><div class='add'>+0x605D = 0x943E</div><div class='add'>+0x6085 = 0x943F</div><div class='add'>+0x608A = 0x9440</div><div class='add'>+0x60D5 = 0x9442</div><div class='add'>+0x60DE = 0x9441</div><div class='add'>+0x60F2 = 0x9444</div><div class='add'>+0x6111 = 0x9445</div><div class='add'>+0x6120 = 0x9443</div><div class='add'>+0x6130 = 0x9447</div><div class='add'>+0x6137 = 0x9446</div><div class='add'>+0x6198 = 0x9448</div><div class='add'>+0x6213 = 0x9449</div><div class='add'>+0x62A6 = 0x944A</div><div class='add'>+0x63F5 = 0x944B</div><div class='add'>+0x6460 = 0x944C</div><div class='add'>+0x649D = 0x944D</div><div class='add'>+0x64CE = 0x944E</div><div class='add'>+0x654E = 0x944F</div><div class='add'>+0x6600 = 0x9450</div><div class='add'>+0x6609 = 0x9453</div><div class='add'>+0x6615 = 0x9451</div><div class='add'>+0x661E = 0x9455</div><div class='add'>+0x6624 = 0x9456</div><div class='add'>+0x662E = 0x9454</div><div class='add'>+0x6631 = 0x9344</div><div class='add'>+0x663B = 0x9452</div><div class='add'>+0x6657 = 0x9458</div><div class='add'>+0x6659 = 0x9459</div><div class='add'>+0x6665 = 0x9457</div><div class='add'>+0x6673 = 0x945B</div><div class='add'>+0x6699 = 0x945C</div><div class='add'>+0x66A0 = 0x945D</div><div class='add'>+0x66B2 = 0x945E</div><div class='add'>+0x66BF = 0x945F</div><div class='add'>+0x66FA = 0x9460</div><div class='add'>+0x66FB = 0x9347</div><div class='add'>+0x670E = 0x9461</div><div class='add'>+0x6766 = 0x9463</div><div class='add'>+0x67BB = 0x9464</div><div class='add'>+0x67C0 = 0x9466</div><div class='add'>+0x6801 = 0x9467</div><div class='add'>+0x6844 = 0x9468</div><div class='add'>+0x6852 = 0x9465</div><div class='add'>+0x68C8 = 0x9345</div><div class='add'>+0x68CF = 0x9469</div><div class='add'>+0x6968 = 0x946B</div><div class='add'>+0x6998 = 0x946D</div><div class='add'>+0x69E2 = 0x946E</div><div class='add'>+0x6A30 = 0x946F</div><div class='add'>+0x6A46 = 0x9471</div><div class='add'>+0x6A6B = 0x9470</div><div class='add'>+0x6A73 = 0x9472</div><div class='add'>+0x6A7E = 0x9473</div><div class='add'>+0x6AE2 = 0x9474</div><div class='add'>+0x6AE4 = 0x9475</div><div class='add'>+0x6BD6 = 0x9476</div><div class='add'>+0x6C3F = 0x9477</div><div class='add'>+0x6C5C = 0x9478</div><div class='add'>+0x6C6F = 0x947A</div><div class='add'>+0x6C86 = 0x9479</div><div class='add'>+0x6CDA = 0x947B</div><div class='add'>+0x6D04 = 0x947C</div><div class='add'>+0x6D6F = 0x947E</div><div class='add'>+0x6D87 = 0x947D</div><div class='add'>+0x6D96 = 0x9521</div><div class='add'>+0x6DAC = 0x9522</div><div class='add'>+0x6DCF = 0x9523</div><div class='add'>+0x6DF2 = 0x9525</div><div class='add'>+0x6DF8 = 0x9524</div><div class='add'>+0x6DFC = 0x9526</div><div class='add'>+0x6E27 = 0x9529</div><div class='add'>+0x6E39 = 0x9527</div><div class='add'>+0x6E3C = 0x952A</div><div class='add'>+0x6E5C = 0x9528</div><div class='add'>+0x6EBF = 0x952B</div><div class='add'>+0x6F88 = 0x952C</div><div class='add'>+0x6FB5 = 0x952D</div><div class='add'>+0x6FF5 = 0x952E</div><div class='add'>+0x7005 = 0x952F</div><div class='add'>+0x7007 = 0x9530</div><div class='add'>+0x7028 = 0x9531</div><div class='add'>+0x7085 = 0x9532</div><div class='add'>+0x70AB = 0x9533</div><div class='add'>+0x70BB = 0x9343</div><div class='add'>+0x7104 = 0x9535</div><div class='add'>+0x710F = 0x9534</div><div class='add'>+0x7146 = 0x9537</div><div class='add'>+0x7147 = 0x9538</div><div class='add'>+0x715C = 0x9536</div><div class='add'>+0x71C1 = 0x953A</div><div class='add'>+0x71FE = 0x953B</div><div class='add'>+0x72B1 = 0x953C</div><div class='add'>+0x72BE = 0x953D</div><div class='add'>+0x7324 = 0x953E</div><div class='add'>+0x7377 = 0x9540</div><div class='add'>+0x73BD = 0x9541</div><div class='add'>+0x73C9 = 0x9542</div><div class='add'>+0x73D2 = 0x9545</div><div class='add'>+0x73D6 = 0x9543</div><div class='add'>+0x73E3 = 0x9544</div><div class='add'>+0x73F5 = 0x9547</div><div class='add'>+0x7407 = 0x9546</div><div class='add'>+0x7426 = 0x9548</div><div class='add'>+0x7429 = 0x954A</div><div class='add'>+0x742A = 0x9549</div><div class='add'>+0x742E = 0x954B</div><div class='add'>+0x7462 = 0x954C</div><div class='add'>+0x7489 = 0x954D</div><div class='add'>+0x749F = 0x954E</div><div class='add'>+0x7501 = 0x954F</div><div class='add'>+0x752F = 0x942A</div><div class='add'>+0x756F = 0x9550</div><div class='add'>+0x7682 = 0x9551</div><div class='add'>+0x769B = 0x9554</div><div class='add'>+0x769C = 0x9552</div><div class='add'>+0x769E = 0x9553</div><div class='add'>+0x76A6 = 0x9555</div><div class='add'>+0x7746 = 0x9557</div><div class='add'>+0x7821 = 0x9559</div><div class='add'>+0x784E = 0x955A</div><div class='add'>+0x7864 = 0x955B</div><div class='add'>+0x787A = 0x955C</div><div class='add'>+0x7930 = 0x955D</div><div class='add'>+0x7994 = 0x9561</div><div class='add'>+0x799B = 0x9563</div><div class='add'>+0x7AD1 = 0x9564</div><div class='add'>+0x7AE7 = 0x9565</div><div class='add'>+0x7AEB = 0x9567</div><div class='add'>+0x7B9E = 0x9568</div><div class='add'>+0x7D48 = 0x956A</div><div class='add'>+0x7D5C = 0x956B</div><div class='add'>+0x7DA0 = 0x956D</div><div class='add'>+0x7DB7 = 0x956C</div><div class='add'>+0x7DD6 = 0x956E</div><div class='add'>+0x7E52 = 0x956F</div><div class='add'>+0x7E8A = 0x933D</div><div class='add'>+0x7F47 = 0x9570</div><div class='add'>+0x7FA1 = 0x9571</div><div class='add'>+0x8301 = 0x9573</div><div class='add'>+0x8362 = 0x9574</div><div class='add'>+0x837F = 0x9575</div><div class='add'>+0x83C7 = 0x9576</div><div class='add'>+0x83F6 = 0x9577</div><div class='add'>+0x8448 = 0x9578</div><div class='add'>+0x84B4 = 0x9579</div><div class='add'>+0x84DC = 0x9341</div><div class='add'>+0x8553 = 0x957A</div><div class='add'>+0x8559 = 0x957B</div><div class='add'>+0x856B = 0x957C</div><div class='add'>+0x85B0 = 0x957E</div><div class='add'>+0x8807 = 0x9623</div><div class='add'>+0x88F5 = 0x9624</div><div class='add'>+0x891C = 0x933E</div><div class='add'>+0x8A12 = 0x9625</div><div class='add'>+0x8A37 = 0x9626</div><div class='add'>+0x8A79 = 0x9627</div><div class='add'>+0x8AA7 = 0x9628</div><div class='add'>+0x8ABE = 0x9629</div><div class='add'>+0x8ADF = 0x962A</div><div class='add'>+0x8AF6 = 0x962C</div><div class='add'>+0x8B53 = 0x962D</div><div class='add'>+0x8B7F = 0x962E</div><div class='add'>+0x8CF0 = 0x962F</div><div class='add'>+0x8CF4 = 0x9630</div><div class='add'>+0x8D12 = 0x9631</div><div class='add'>+0x8D76 = 0x9632</div><div class='add'>+0x8ECF = 0x9634</div><div class='add'>+0x9067 = 0x9637</div><div class='add'>+0x90DE = 0x9638</div><div class='add'>+0x9115 = 0x963A</div><div class='add'>+0x9127 = 0x963B</div><div class='add'>+0x91D7 = 0x963D</div><div class='add'>+0x91DA = 0x963C</div><div class='add'>+0x91DE = 0x963E</div><div class='add'>+0x91E4 = 0x9641</div><div class='add'>+0x91E5 = 0x9642</div><div class='add'>+0x91ED = 0x963F</div><div class='add'>+0x91EE = 0x9640</div><div class='add'>+0x9206 = 0x9643</div><div class='add'>+0x920A = 0x9645</div><div class='add'>+0x9210 = 0x9644</div><div class='add'>+0x9239 = 0x964C</div><div class='add'>+0x923A = 0x9646</div><div class='add'>+0x923C = 0x9648</div><div class='add'>+0x9240 = 0x9647</div><div class='add'>+0x924E = 0x9649</div><div class='add'>+0x9251 = 0x964B</div><div class='add'>+0x9259 = 0x964A</div><div class='add'>+0x9267 = 0x964D</div><div class='add'>+0x9277 = 0x964F</div><div class='add'>+0x9278 = 0x9650</div><div class='add'>+0x9288 = 0x9340</div><div class='add'>+0x92A7 = 0x964E</div><div class='add'>+0x92D0 = 0x9654</div><div class='add'>+0x92D3 = 0x9658</div><div class='add'>+0x92D5 = 0x9656</div><div class='add'>+0x92D7 = 0x9652</div><div class='add'>+0x92D9 = 0x9653</div><div class='add'>+0x92E0 = 0x9657</div><div class='add'>+0x92E7 = 0x9651</div><div class='add'>+0x92F9 = 0x9346</div><div class='add'>+0x92FB = 0x965B</div><div class='add'>+0x92FF = 0x965E</div><div class='add'>+0x9302 = 0x9660</div><div class='add'>+0x931D = 0x965F</div><div class='add'>+0x931E = 0x965D</div><div class='add'>+0x9321 = 0x965A</div><div class='add'>+0x9325 = 0x9659</div><div class='add'>+0x9348 = 0x933F</div><div class='add'>+0x9357 = 0x9662</div><div class='add'>+0x9370 = 0x9661</div><div class='add'>+0x93A4 = 0x9663</div><div class='add'>+0x93C6 = 0x9664</div><div class='add'>+0x93DE = 0x9665</div><div class='add'>+0x93F8 = 0x9666</div><div class='add'>+0x9431 = 0x9667</div><div class='add'>+0x9445 = 0x9668</div><div class='add'>+0x9448 = 0x9669</div><div class='add'>+0x9592 = 0x966A</div><div class='add'>+0x969D = 0x966D</div><div class='add'>+0x96AF = 0x966E</div><div class='add'>+0x9733 = 0x966F</div><div class='add'>+0x973B = 0x9670</div><div class='add'>+0x9743 = 0x9671</div><div class='add'>+0x974D = 0x9672</div><div class='add'>+0x974F = 0x9673</div><div class='add'>+0x9751 = 0x9674</div><div class='add'>+0x9755 = 0x9675</div><div class='add'>+0x9857 = 0x9676</div><div class='add'>+0x9865 = 0x9677</div><div class='add'>+0x9927 = 0x967A</div><div class='add'>+0x999E = 0x967C</div><div class='add'>+0x9A4E = 0x967D</div><div class='add'>+0x9AD9 = 0x967E</div><div class='add'>+0x9ADC = 0x9721</div><div class='add'>+0x9B72 = 0x9723</div><div class='add'>+0x9B75 = 0x9722</div><div class='add'>+0x9B8F = 0x9724</div><div class='add'>+0x9BB1 = 0x9725</div><div class='add'>+0x9BBB = 0x9726</div><div class='add'>+0x9C00 = 0x9727</div><div class='add'>+0x9D6B = 0x9729</div><div class='add'>+0x9D70 = 0x9728</div><div class='add'>+0x9E19 = 0x972B</div><div class='add'>+0x9ED1 = 0x972C</div><div class='add'>+0xF929 = 0x9462</div><div class='add'>+0xF9DC = 0x966B</div><div class='add'>+0xFA0E = 0x9370</div><div class='add'>+0xFA0F = 0x937B</div><div class='add'>+0xFA10 = 0x937C</div><div class='add'>+0xFA11 = 0x9433</div><div class='add'>+0xFA12 = 0x945A</div><div class='add'>+0xFA13 = 0x946A</div><div class='add'>+0xFA14 = 0x946C</div><div class='add'>+0xFA15 = 0x9539</div><div class='add'>+0xFA16 = 0x953F</div><div class='add'>+0xFA17 = 0x9556</div><div class='add'>+0xFA18 = 0x955E</div><div class='add'>+0xFA19 = 0x955F</div><div class='add'>+0xFA1A = 0x9560</div><div class='add'>+0xFA1B = 0x9562</div><div class='add'>+0xFA1C = 0x9566</div><div class='add'>+0xFA1D = 0x9569</div><div class='add'>+0xFA1E = 0x9572</div><div class='add'>+0xFA1F = 0x957D</div><div class='add'>+0xFA20 = 0x9621</div><div class='add'>+0xFA21 = 0x9622</div><div class='add'>+0xFA22 = 0x962B</div><div class='add'>+0xFA23 = 0x9633</div><div class='add'>+0xFA24 = 0x9635</div><div class='add'>+0xFA25 = 0x9636</div><div class='add'>+0xFA26 = 0x9639</div><div class='add'>+0xFA27 = 0x9655</div><div class='add'>+0xFA28 = 0x965C</div><div class='add'>+0xFA29 = 0x966C</div><div class='add'>+0xFA2A = 0x9678</div><div class='add'>+0xFA2B = 0x9679</div><div class='add'>+0xFA2C = 0x967B</div><div class='add'>+0xFA2D = 0x972A</div><div class='add'>+0xFF02 = 0x9338</div><div class='add'>+0xFF07 = 0x9337</div><div class='add'>+0xFFE2 = 0x9335</div><div class='add'>+0xFFE4 = 0x9336</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/CP/UCS%CP932VDC@NEC_IBM.src b/enc/trans/CP/UCS%CP932VDC@NEC_IBM.src<br/>new file mode 100644<br/>index 0000000000..f94167aaa4<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/CP/UCS%25CP932VDC@NEC_IBM.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/CP/UCS%CP932VDC@NEC_IBM.src</a></div><div class='hunk'>@@ -0,0 +1,406 @@</div><div class='add'>+# $NetBSD: UCS%CP932VDC@NEC_IBM.src,v 1.1 2006/11/04 03:46:19 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"UCS/CP932VDC:NEC_IBM"</div><div class='add'>+SRC_ZONE	0x2170-0xFFE4</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFF</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#    Name:     cp932 to Unicode table</div><div class='add'>+#    Unicode version: 2.0</div><div class='add'>+#    Table version: 2.01</div><div class='add'>+#    Table format:  Format A</div><div class='add'>+#    Date:          04/15/98</div><div class='add'>+#</div><div class='add'>+#    Contact:       cpxlate@microsoft.com</div><div class='add'>+#</div><div class='add'>+#    General notes: none</div><div class='add'>+#</div><div class='add'>+#    Format: Three tab-separated columns</div><div class='add'>+#        Column #1 is the cp932 code (in hex)</div><div class='add'>+#        Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#        Column #3 is the Unicode name (follows a comment sign, '#')</div><div class='add'>+#</div><div class='add'>+#    The entries are in cp932 order</div><div class='add'>+#</div><div class='add'>+0x2170 = 0x7C71</div><div class='add'>+0x2171 = 0x7C72</div><div class='add'>+0x2172 = 0x7C73</div><div class='add'>+0x2173 = 0x7C74</div><div class='add'>+0x2174 = 0x7C75</div><div class='add'>+0x2175 = 0x7C76</div><div class='add'>+0x2176 = 0x7C77</div><div class='add'>+0x2177 = 0x7C78</div><div class='add'>+0x2178 = 0x7C79</div><div class='add'>+0x2179 = 0x7C7A</div><div class='add'>+0x4E28 = 0x792D</div><div class='add'>+0x4EE1 = 0x792E</div><div class='add'>+0x4EFC = 0x792F</div><div class='add'>+0x4F00 = 0x7930</div><div class='add'>+0x4F03 = 0x7931</div><div class='add'>+0x4F39 = 0x7932</div><div class='add'>+0x4F56 = 0x7933</div><div class='add'>+0x4F8A = 0x7935</div><div class='add'>+0x4F92 = 0x7934</div><div class='add'>+0x4F94 = 0x7937</div><div class='add'>+0x4F9A = 0x7936</div><div class='add'>+0x4FC9 = 0x7926</div><div class='add'>+0x4FCD = 0x7938</div><div class='add'>+0x4FFF = 0x793B</div><div class='add'>+0x501E = 0x793C</div><div class='add'>+0x5022 = 0x793A</div><div class='add'>+0x5040 = 0x7939</div><div class='add'>+0x5042 = 0x793F</div><div class='add'>+0x5046 = 0x793D</div><div class='add'>+0x5070 = 0x793E</div><div class='add'>+0x5094 = 0x7940</div><div class='add'>+0x50D8 = 0x7942</div><div class='add'>+0x50F4 = 0x7941</div><div class='add'>+0x514A = 0x7943</div><div class='add'>+0x5164 = 0x7944</div><div class='add'>+0x519D = 0x7945</div><div class='add'>+0x51BE = 0x7946</div><div class='add'>+0x51EC = 0x7947</div><div class='add'>+0x5215 = 0x7948</div><div class='add'>+0x529C = 0x7949</div><div class='add'>+0x52A6 = 0x794A</div><div class='add'>+0x52AF = 0x7B3C</div><div class='add'>+0x52C0 = 0x794B</div><div class='add'>+0x52DB = 0x794C</div><div class='add'>+0x5300 = 0x794D</div><div class='add'>+0x5307 = 0x794E</div><div class='add'>+0x5324 = 0x794F</div><div class='add'>+0x5372 = 0x7950</div><div class='add'>+0x5393 = 0x7951</div><div class='add'>+0x53B2 = 0x7952</div><div class='add'>+0x53DD = 0x7953</div><div class='add'>+0x548A = 0x7956</div><div class='add'>+0x549C = 0x7955</div><div class='add'>+0x54A9 = 0x7957</div><div class='add'>+0x54FF = 0x7958</div><div class='add'>+0x5586 = 0x7959</div><div class='add'>+0x5759 = 0x795A</div><div class='add'>+0x5765 = 0x795B</div><div class='add'>+0x57AC = 0x795C</div><div class='add'>+0x57C7 = 0x795E</div><div class='add'>+0x57C8 = 0x795D</div><div class='add'>+0x589E = 0x7961</div><div class='add'>+0x58B2 = 0x7962</div><div class='add'>+0x590B = 0x7963</div><div class='add'>+0x5953 = 0x7964</div><div class='add'>+0x595B = 0x7965</div><div class='add'>+0x595D = 0x7966</div><div class='add'>+0x5963 = 0x7967</div><div class='add'>+0x59A4 = 0x7968</div><div class='add'>+0x59BA = 0x7969</div><div class='add'>+0x5B56 = 0x796A</div><div class='add'>+0x5BC0 = 0x796B</div><div class='add'>+0x5BD8 = 0x796D</div><div class='add'>+0x5BEC = 0x796E</div><div class='add'>+0x5C1E = 0x796F</div><div class='add'>+0x5CA6 = 0x7970</div><div class='add'>+0x5CBA = 0x7971</div><div class='add'>+0x5CF5 = 0x7972</div><div class='add'>+0x5D27 = 0x7973</div><div class='add'>+0x5D42 = 0x7976</div><div class='add'>+0x5D53 = 0x7974</div><div class='add'>+0x5D6D = 0x7977</div><div class='add'>+0x5DB8 = 0x7978</div><div class='add'>+0x5DB9 = 0x7979</div><div class='add'>+0x5DD0 = 0x797A</div><div class='add'>+0x5F21 = 0x797B</div><div class='add'>+0x5F34 = 0x797C</div><div class='add'>+0x5F45 = 0x792C</div><div class='add'>+0x5F67 = 0x797D</div><div class='add'>+0x5FB7 = 0x797E</div><div class='add'>+0x5FDE = 0x7A21</div><div class='add'>+0x605D = 0x7A22</div><div class='add'>+0x6085 = 0x7A23</div><div class='add'>+0x608A = 0x7A24</div><div class='add'>+0x60D5 = 0x7A26</div><div class='add'>+0x60DE = 0x7A25</div><div class='add'>+0x60F2 = 0x7A28</div><div class='add'>+0x6111 = 0x7A29</div><div class='add'>+0x6120 = 0x7A27</div><div class='add'>+0x6130 = 0x7A2B</div><div class='add'>+0x6137 = 0x7A2A</div><div class='add'>+0x6198 = 0x7A2C</div><div class='add'>+0x6213 = 0x7A2D</div><div class='add'>+0x62A6 = 0x7A2E</div><div class='add'>+0x63F5 = 0x7A2F</div><div class='add'>+0x6460 = 0x7A30</div><div class='add'>+0x649D = 0x7A31</div><div class='add'>+0x64CE = 0x7A32</div><div class='add'>+0x654E = 0x7A33</div><div class='add'>+0x6600 = 0x7A34</div><div class='add'>+0x6609 = 0x7A37</div><div class='add'>+0x6615 = 0x7A35</div><div class='add'>+0x661E = 0x7A39</div><div class='add'>+0x6624 = 0x7A3A</div><div class='add'>+0x662E = 0x7A38</div><div class='add'>+0x6631 = 0x7928</div><div class='add'>+0x663B = 0x7A36</div><div class='add'>+0x6657 = 0x7A3C</div><div class='add'>+0x6659 = 0x7A3D</div><div class='add'>+0x6665 = 0x7A3B</div><div class='add'>+0x6673 = 0x7A3F</div><div class='add'>+0x6699 = 0x7A40</div><div class='add'>+0x66A0 = 0x7A41</div><div class='add'>+0x66B2 = 0x7A42</div><div class='add'>+0x66BF = 0x7A43</div><div class='add'>+0x66FA = 0x7A44</div><div class='add'>+0x66FB = 0x792B</div><div class='add'>+0x670E = 0x7A45</div><div class='add'>+0x6766 = 0x7A47</div><div class='add'>+0x67BB = 0x7A48</div><div class='add'>+0x67C0 = 0x7A4A</div><div class='add'>+0x6801 = 0x7A4B</div><div class='add'>+0x6844 = 0x7A4C</div><div class='add'>+0x6852 = 0x7A49</div><div class='add'>+0x68C8 = 0x7929</div><div class='add'>+0x68CF = 0x7A4D</div><div class='add'>+0x6968 = 0x7A4F</div><div class='add'>+0x6998 = 0x7A51</div><div class='add'>+0x69E2 = 0x7A52</div><div class='add'>+0x6A30 = 0x7A53</div><div class='add'>+0x6A46 = 0x7A55</div><div class='add'>+0x6A6B = 0x7A54</div><div class='add'>+0x6A73 = 0x7A56</div><div class='add'>+0x6A7E = 0x7A57</div><div class='add'>+0x6AE2 = 0x7A58</div><div class='add'>+0x6AE4 = 0x7A59</div><div class='add'>+0x6BD6 = 0x7A5A</div><div class='add'>+0x6C3F = 0x7A5B</div><div class='add'>+0x6C5C = 0x7A5C</div><div class='add'>+0x6C6F = 0x7A5E</div><div class='add'>+0x6C86 = 0x7A5D</div><div class='add'>+0x6CDA = 0x7A5F</div><div class='add'>+0x6D04 = 0x7A60</div><div class='add'>+0x6D6F = 0x7A62</div><div class='add'>+0x6D87 = 0x7A61</div><div class='add'>+0x6D96 = 0x7A63</div><div class='add'>+0x6DAC = 0x7A64</div><div class='add'>+0x6DCF = 0x7A65</div><div class='add'>+0x6DF2 = 0x7A67</div><div class='add'>+0x6DF8 = 0x7A66</div><div class='add'>+0x6DFC = 0x7A68</div><div class='add'>+0x6E27 = 0x7A6B</div><div class='add'>+0x6E39 = 0x7A69</div><div class='add'>+0x6E3C = 0x7A6C</div><div class='add'>+0x6E5C = 0x7A6A</div><div class='add'>+0x6EBF = 0x7A6D</div><div class='add'>+0x6F88 = 0x7A6E</div><div class='add'>+0x6FB5 = 0x7A6F</div><div class='add'>+0x6FF5 = 0x7A70</div><div class='add'>+0x7005 = 0x7A71</div><div class='add'>+0x7007 = 0x7A72</div><div class='add'>+0x7028 = 0x7A73</div><div class='add'>+0x7085 = 0x7A74</div><div class='add'>+0x70AB = 0x7A75</div><div class='add'>+0x70BB = 0x7927</div><div class='add'>+0x7104 = 0x7A77</div><div class='add'>+0x710F = 0x7A76</div><div class='add'>+0x7146 = 0x7A79</div><div class='add'>+0x7147 = 0x7A7A</div><div class='add'>+0x715C = 0x7A78</div><div class='add'>+0x71C1 = 0x7A7C</div><div class='add'>+0x71FE = 0x7A7D</div><div class='add'>+0x72B1 = 0x7A7E</div><div class='add'>+0x72BE = 0x7B21</div><div class='add'>+0x7324 = 0x7B22</div><div class='add'>+0x7377 = 0x7B24</div><div class='add'>+0x73BD = 0x7B25</div><div class='add'>+0x73C9 = 0x7B26</div><div class='add'>+0x73D2 = 0x7B29</div><div class='add'>+0x73D6 = 0x7B27</div><div class='add'>+0x73E3 = 0x7B28</div><div class='add'>+0x73F5 = 0x7B2B</div><div class='add'>+0x7407 = 0x7B2A</div><div class='add'>+0x7426 = 0x7B2C</div><div class='add'>+0x7429 = 0x7B2E</div><div class='add'>+0x742A = 0x7B2D</div><div class='add'>+0x742E = 0x7B2F</div><div class='add'>+0x7462 = 0x7B30</div><div class='add'>+0x7489 = 0x7B31</div><div class='add'>+0x749F = 0x7B32</div><div class='add'>+0x7501 = 0x7B33</div><div class='add'>+0x752F = 0x796C</div><div class='add'>+0x756F = 0x7B34</div><div class='add'>+0x7682 = 0x7B35</div><div class='add'>+0x769B = 0x7B38</div><div class='add'>+0x769C = 0x7B36</div><div class='add'>+0x769E = 0x7B37</div><div class='add'>+0x76A6 = 0x7B39</div><div class='add'>+0x7746 = 0x7B3B</div><div class='add'>+0x7821 = 0x7B3D</div><div class='add'>+0x784E = 0x7B3E</div><div class='add'>+0x7864 = 0x7B3F</div><div class='add'>+0x787A = 0x7B40</div><div class='add'>+0x7930 = 0x7B41</div><div class='add'>+0x7994 = 0x7B45</div><div class='add'>+0x799B = 0x7B47</div><div class='add'>+0x7AD1 = 0x7B48</div><div class='add'>+0x7AE7 = 0x7B49</div><div class='add'>+0x7AEB = 0x7B4B</div><div class='add'>+0x7B9E = 0x7B4C</div><div class='add'>+0x7D48 = 0x7B4E</div><div class='add'>+0x7D5C = 0x7B4F</div><div class='add'>+0x7DA0 = 0x7B51</div><div class='add'>+0x7DB7 = 0x7B50</div><div class='add'>+0x7DD6 = 0x7B52</div><div class='add'>+0x7E52 = 0x7B53</div><div class='add'>+0x7E8A = 0x7921</div><div class='add'>+0x7F47 = 0x7B54</div><div class='add'>+0x7FA1 = 0x7B55</div><div class='add'>+0x8301 = 0x7B57</div><div class='add'>+0x8362 = 0x7B58</div><div class='add'>+0x837F = 0x7B59</div><div class='add'>+0x83C7 = 0x7B5A</div><div class='add'>+0x83F6 = 0x7B5B</div><div class='add'>+0x8448 = 0x7B5C</div><div class='add'>+0x84B4 = 0x7B5D</div><div class='add'>+0x84DC = 0x7925</div><div class='add'>+0x8553 = 0x7B5E</div><div class='add'>+0x8559 = 0x7B5F</div><div class='add'>+0x856B = 0x7B60</div><div class='add'>+0x85B0 = 0x7B62</div><div class='add'>+0x8807 = 0x7B65</div><div class='add'>+0x88F5 = 0x7B66</div><div class='add'>+0x891C = 0x7922</div><div class='add'>+0x8A12 = 0x7B67</div><div class='add'>+0x8A37 = 0x7B68</div><div class='add'>+0x8A79 = 0x7B69</div><div class='add'>+0x8AA7 = 0x7B6A</div><div class='add'>+0x8ABE = 0x7B6B</div><div class='add'>+0x8ADF = 0x7B6C</div><div class='add'>+0x8AF6 = 0x7B6E</div><div class='add'>+0x8B53 = 0x7B6F</div><div class='add'>+0x8B7F = 0x7B70</div><div class='add'>+0x8CF0 = 0x7B71</div><div class='add'>+0x8CF4 = 0x7B72</div><div class='add'>+0x8D12 = 0x7B73</div><div class='add'>+0x8D76 = 0x7B74</div><div class='add'>+0x8ECF = 0x7B76</div><div class='add'>+0x9067 = 0x7B79</div><div class='add'>+0x90DE = 0x7B7A</div><div class='add'>+0x9115 = 0x7B7C</div><div class='add'>+0x9127 = 0x7B7D</div><div class='add'>+0x91D7 = 0x7C21</div><div class='add'>+0x91DA = 0x7B7E</div><div class='add'>+0x91DE = 0x7C22</div><div class='add'>+0x91E4 = 0x7C25</div><div class='add'>+0x91E5 = 0x7C26</div><div class='add'>+0x91ED = 0x7C23</div><div class='add'>+0x91EE = 0x7C24</div><div class='add'>+0x9206 = 0x7C27</div><div class='add'>+0x920A = 0x7C29</div><div class='add'>+0x9210 = 0x7C28</div><div class='add'>+0x9239 = 0x7C30</div><div class='add'>+0x923A = 0x7C2A</div><div class='add'>+0x923C = 0x7C2C</div><div class='add'>+0x9240 = 0x7C2B</div><div class='add'>+0x924E = 0x7C2D</div><div class='add'>+0x9251 = 0x7C2F</div><div class='add'>+0x9259 = 0x7C2E</div><div class='add'>+0x9267 = 0x7C31</div><div class='add'>+0x9277 = 0x7C33</div><div class='add'>+0x9278 = 0x7C34</div><div class='add'>+0x9288 = 0x7924</div><div class='add'>+0x92A7 = 0x7C32</div><div class='add'>+0x92D0 = 0x7C38</div><div class='add'>+0x92D3 = 0x7C3C</div><div class='add'>+0x92D5 = 0x7C3A</div><div class='add'>+0x92D7 = 0x7C36</div><div class='add'>+0x92D9 = 0x7C37</div><div class='add'>+0x92E0 = 0x7C3B</div><div class='add'>+0x92E7 = 0x7C35</div><div class='add'>+0x92F9 = 0x792A</div><div class='add'>+0x92FB = 0x7C3F</div><div class='add'>+0x92FF = 0x7C42</div><div class='add'>+0x9302 = 0x7C44</div><div class='add'>+0x931D = 0x7C43</div><div class='add'>+0x931E = 0x7C41</div><div class='add'>+0x9321 = 0x7C3E</div><div class='add'>+0x9325 = 0x7C3D</div><div class='add'>+0x9348 = 0x7923</div><div class='add'>+0x9357 = 0x7C46</div><div class='add'>+0x9370 = 0x7C45</div><div class='add'>+0x93A4 = 0x7C47</div><div class='add'>+0x93C6 = 0x7C48</div><div class='add'>+0x93DE = 0x7C49</div><div class='add'>+0x93F8 = 0x7C4A</div><div class='add'>+0x9431 = 0x7C4B</div><div class='add'>+0x9445 = 0x7C4C</div><div class='add'>+0x9448 = 0x7C4D</div><div class='add'>+0x9592 = 0x7C4E</div><div class='add'>+0x969D = 0x7C51</div><div class='add'>+0x96AF = 0x7C52</div><div class='add'>+0x9733 = 0x7C53</div><div class='add'>+0x973B = 0x7C54</div><div class='add'>+0x9743 = 0x7C55</div><div class='add'>+0x974D = 0x7C56</div><div class='add'>+0x974F = 0x7C57</div><div class='add'>+0x9751 = 0x7C58</div><div class='add'>+0x9755 = 0x7C59</div><div class='add'>+0x9857 = 0x7C5A</div><div class='add'>+0x9865 = 0x7C5B</div><div class='add'>+0x9927 = 0x7C5E</div><div class='add'>+0x999E = 0x7C60</div><div class='add'>+0x9A4E = 0x7C61</div><div class='add'>+0x9AD9 = 0x7C62</div><div class='add'>+0x9ADC = 0x7C63</div><div class='add'>+0x9B72 = 0x7C65</div><div class='add'>+0x9B75 = 0x7C64</div><div class='add'>+0x9B8F = 0x7C66</div><div class='add'>+0x9BB1 = 0x7C67</div><div class='add'>+0x9BBB = 0x7C68</div><div class='add'>+0x9C00 = 0x7C69</div><div class='add'>+0x9D6B = 0x7C6B</div><div class='add'>+0x9D70 = 0x7C6A</div><div class='add'>+0x9E19 = 0x7C6D</div><div class='add'>+0x9ED1 = 0x7C6E</div><div class='add'>+0xF929 = 0x7A46</div><div class='add'>+0xF9DC = 0x7C4F</div><div class='add'>+0xFA0E = 0x7954</div><div class='add'>+0xFA0F = 0x795F</div><div class='add'>+0xFA10 = 0x7960</div><div class='add'>+0xFA11 = 0x7975</div><div class='add'>+0xFA12 = 0x7A3E</div><div class='add'>+0xFA13 = 0x7A4E</div><div class='add'>+0xFA14 = 0x7A50</div><div class='add'>+0xFA15 = 0x7A7B</div><div class='add'>+0xFA16 = 0x7B23</div><div class='add'>+0xFA17 = 0x7B3A</div><div class='add'>+0xFA18 = 0x7B42</div><div class='add'>+0xFA19 = 0x7B43</div><div class='add'>+0xFA1A = 0x7B44</div><div class='add'>+0xFA1B = 0x7B46</div><div class='add'>+0xFA1C = 0x7B4A</div><div class='add'>+0xFA1D = 0x7B4D</div><div class='add'>+0xFA1E = 0x7B56</div><div class='add'>+0xFA1F = 0x7B61</div><div class='add'>+0xFA20 = 0x7B63</div><div class='add'>+0xFA21 = 0x7B64</div><div class='add'>+0xFA22 = 0x7B6D</div><div class='add'>+0xFA23 = 0x7B75</div><div class='add'>+0xFA24 = 0x7B77</div><div class='add'>+0xFA25 = 0x7B78</div><div class='add'>+0xFA26 = 0x7B7B</div><div class='add'>+0xFA27 = 0x7C39</div><div class='add'>+0xFA28 = 0x7C40</div><div class='add'>+0xFA29 = 0x7C50</div><div class='add'>+0xFA2A = 0x7C5C</div><div class='add'>+0xFA2B = 0x7C5D</div><div class='add'>+0xFA2C = 0x7C5F</div><div class='add'>+0xFA2D = 0x7C6C</div><div class='add'>+0xFF02 = 0x7C7E</div><div class='add'>+0xFF07 = 0x7C7D</div><div class='add'>+0xFFE2 = 0x7C7B</div><div class='add'>+0xFFE4 = 0x7C7C</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%UCS.src b/enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%UCS.src<br/>new file mode 100644<br/>index 0000000000..69520f75de<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/EMOJI_ISO-2022-JP-KDDI%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		EMOJI_ISO-2022-JP-KDDI/UCS</div><div class='add'>+SRC_ZONE	0x21-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0x7521 = 0xE468</div><div class='add'>+0x7522 = 0xE469</div><div class='add'>+0x7523 = 0xE46A</div><div class='add'>+0x7524 = 0xE46B</div><div class='add'>+0x7525 = 0xE46C</div><div class='add'>+0x7526 = 0xE46D</div><div class='add'>+0x7527 = 0xE46E</div><div class='add'>+0x7528 = 0xE46F</div><div class='add'>+0x7529 = 0xE470</div><div class='add'>+0x752A = 0xE471</div><div class='add'>+0x752B = 0xE472</div><div class='add'>+0x752C = 0xE473</div><div class='add'>+0x752D = 0xE474</div><div class='add'>+0x752E = 0xE475</div><div class='add'>+0x752F = 0xE476</div><div class='add'>+0x7530 = 0xE477</div><div class='add'>+0x7531 = 0xE478</div><div class='add'>+0x7532 = 0xE479</div><div class='add'>+0x7533 = 0xE47A</div><div class='add'>+0x7534 = 0xE47B</div><div class='add'>+0x7535 = 0xE47C</div><div class='add'>+0x7536 = 0xE47D</div><div class='add'>+0x7537 = 0xE47E</div><div class='add'>+0x7538 = 0xE47F</div><div class='add'>+0x7539 = 0xE480</div><div class='add'>+0x753A = 0xE481</div><div class='add'>+0x753B = 0xE482</div><div class='add'>+0x753C = 0xE483</div><div class='add'>+0x753D = 0xE484</div><div class='add'>+0x753E = 0xE485</div><div class='add'>+0x753F = 0xE486</div><div class='add'>+0x7540 = 0xE487</div><div class='add'>+0x7541 = 0xE488</div><div class='add'>+0x7542 = 0xE489</div><div class='add'>+0x7543 = 0xE48A</div><div class='add'>+0x7544 = 0xE48B</div><div class='add'>+0x7545 = 0xE48C</div><div class='add'>+0x7546 = 0xE48D</div><div class='add'>+0x7547 = 0xE48E</div><div class='add'>+0x7548 = 0xE48F</div><div class='add'>+0x7549 = 0xE490</div><div class='add'>+0x754A = 0xE491</div><div class='add'>+0x754B = 0xE492</div><div class='add'>+0x754C = 0xE493</div><div class='add'>+0x754D = 0xE494</div><div class='add'>+0x754E = 0xE495</div><div class='add'>+0x754F = 0xE496</div><div class='add'>+0x7550 = 0xE497</div><div class='add'>+0x7551 = 0xE498</div><div class='add'>+0x7552 = 0xE499</div><div class='add'>+0x7553 = 0xE49A</div><div class='add'>+0x7554 = 0xE49B</div><div class='add'>+0x7555 = 0xE49C</div><div class='add'>+0x7556 = 0xE49D</div><div class='add'>+0x7557 = 0xE49E</div><div class='add'>+0x7558 = 0xE49F</div><div class='add'>+0x7559 = 0xE4A0</div><div class='add'>+0x755A = 0xE4A1</div><div class='add'>+0x755B = 0xE4A2</div><div class='add'>+0x755C = 0xE4A3</div><div class='add'>+0x755D = 0xE4A4</div><div class='add'>+0x755E = 0xE4A5</div><div class='add'>+0x755F = 0xE4A6</div><div class='add'>+0x7560 = 0xE4A7</div><div class='add'>+0x7561 = 0xE4A8</div><div class='add'>+0x7562 = 0xE4A9</div><div class='add'>+0x7563 = 0xE4AA</div><div class='add'>+0x7564 = 0xE4AB</div><div class='add'>+0x7565 = 0xE4AC</div><div class='add'>+0x7566 = 0xE4AD</div><div class='add'>+0x7567 = 0xE4AE</div><div class='add'>+0x7568 = 0xE4AF</div><div class='add'>+0x7569 = 0xE4B0</div><div class='add'>+0x756A = 0xE4B1</div><div class='add'>+0x756B = 0xE4B2</div><div class='add'>+0x756C = 0xE4B3</div><div class='add'>+0x756D = 0xE4B4</div><div class='add'>+0x756E = 0xE4B5</div><div class='add'>+0x756F = 0xE4B6</div><div class='add'>+0x7570 = 0xE4B7</div><div class='add'>+0x7571 = 0xE4B8</div><div class='add'>+0x7572 = 0xE4B9</div><div class='add'>+0x7573 = 0xE4BA</div><div class='add'>+0x7574 = 0xE4BB</div><div class='add'>+0x7575 = 0xE4BC</div><div class='add'>+0x7576 = 0xE4BD</div><div class='add'>+0x7577 = 0xE4BE</div><div class='add'>+0x7578 = 0xE4BF</div><div class='add'>+0x7579 = 0xE4C0</div><div class='add'>+0x757A = 0xE4C1</div><div class='add'>+0x757B = 0xE4C2</div><div class='add'>+0x757C = 0xE4C3</div><div class='add'>+0x757D = 0xE4C4</div><div class='add'>+0x757E = 0xE4C5</div><div class='add'>+0x7621 = 0xE4C6</div><div class='add'>+0x7622 = 0xE4C7</div><div class='add'>+0x7623 = 0xE4C8</div><div class='add'>+0x7624 = 0xE4C9</div><div class='add'>+0x7625 = 0xE4CA</div><div class='add'>+0x7626 = 0xE4CB</div><div class='add'>+0x7627 = 0xE4CC</div><div class='add'>+0x7628 = 0xE4CD</div><div class='add'>+0x7629 = 0xE4CE</div><div class='add'>+0x762A = 0xE4CF</div><div class='add'>+0x762B = 0xE4D0</div><div class='add'>+0x762C = 0xE4D1</div><div class='add'>+0x762D = 0xE4D2</div><div class='add'>+0x762E = 0xE4D3</div><div class='add'>+0x762F = 0xE4D4</div><div class='add'>+0x7630 = 0xE4D5</div><div class='add'>+0x7631 = 0xE4D6</div><div class='add'>+0x7632 = 0xE4D7</div><div class='add'>+0x7633 = 0xE4D8</div><div class='add'>+0x7634 = 0xE4D9</div><div class='add'>+0x7635 = 0xE4DA</div><div class='add'>+0x7636 = 0xE4DB</div><div class='add'>+0x7637 = 0xE4DC</div><div class='add'>+0x7638 = 0xE4DD</div><div class='add'>+0x7639 = 0xE4DE</div><div class='add'>+0x763A = 0xE4DF</div><div class='add'>+0x763B = 0xE4E0</div><div class='add'>+0x763C = 0xE4E1</div><div class='add'>+0x763D = 0xE4E2</div><div class='add'>+0x763E = 0xE4E3</div><div class='add'>+0x763F = 0xE4E4</div><div class='add'>+0x7640 = 0xE4E5</div><div class='add'>+0x7641 = 0xE4E6</div><div class='add'>+0x7642 = 0xE4E7</div><div class='add'>+0x7643 = 0xE4E8</div><div class='add'>+0x7644 = 0xE4E9</div><div class='add'>+0x7645 = 0xE4EA</div><div class='add'>+0x7646 = 0xE4EB</div><div class='add'>+0x7647 = 0xE4EC</div><div class='add'>+0x7648 = 0xE4ED</div><div class='add'>+0x7649 = 0xE4EE</div><div class='add'>+0x764A = 0xE4EF</div><div class='add'>+0x764B = 0xE4F0</div><div class='add'>+0x764C = 0xE4F1</div><div class='add'>+0x764D = 0xE4F2</div><div class='add'>+0x764E = 0xE4F3</div><div class='add'>+0x764F = 0xE4F4</div><div class='add'>+0x7650 = 0xE4F5</div><div class='add'>+0x7651 = 0xE4F6</div><div class='add'>+0x7652 = 0xE4F7</div><div class='add'>+0x7653 = 0xE4F8</div><div class='add'>+0x7654 = 0xE4F9</div><div class='add'>+0x7655 = 0xE4FA</div><div class='add'>+0x7656 = 0xE4FB</div><div class='add'>+0x7657 = 0xE4FC</div><div class='add'>+0x7658 = 0xE4FD</div><div class='add'>+0x7659 = 0xE4FE</div><div class='add'>+0x765A = 0xE4FF</div><div class='add'>+0x765B = 0xE500</div><div class='add'>+0x765C = 0xE501</div><div class='add'>+0x765D = 0xE502</div><div class='add'>+0x765E = 0xE503</div><div class='add'>+0x765F = 0xE504</div><div class='add'>+0x7660 = 0xE505</div><div class='add'>+0x7661 = 0xE506</div><div class='add'>+0x7662 = 0xE507</div><div class='add'>+0x7663 = 0xE508</div><div class='add'>+0x7664 = 0xE509</div><div class='add'>+0x7665 = 0xE50A</div><div class='add'>+0x7666 = 0xE50B</div><div class='add'>+0x7667 = 0xE50C</div><div class='add'>+0x7668 = 0xE50D</div><div class='add'>+0x7669 = 0xE50E</div><div class='add'>+0x766A = 0xE50F</div><div class='add'>+0x766B = 0xE510</div><div class='add'>+0x766C = 0xE511</div><div class='add'>+0x766D = 0xE512</div><div class='add'>+0x766E = 0xE513</div><div class='add'>+0x766F = 0xE514</div><div class='add'>+0x7670 = 0xE515</div><div class='add'>+0x7671 = 0xE516</div><div class='add'>+0x7672 = 0xE517</div><div class='add'>+0x7673 = 0xE518</div><div class='add'>+0x7674 = 0xE519</div><div class='add'>+0x7675 = 0xE51A</div><div class='add'>+0x7676 = 0xE51B</div><div class='add'>+0x7677 = 0xE51C</div><div class='add'>+0x7678 = 0xE51D</div><div class='add'>+0x7679 = 0xE51E</div><div class='add'>+0x767A = 0xE51F</div><div class='add'>+0x767B = 0xE520</div><div class='add'>+0x767C = 0xE521</div><div class='add'>+0x767D = 0xE522</div><div class='add'>+0x767E = 0xE523</div><div class='add'>+0x7721 = 0xE524</div><div class='add'>+0x7722 = 0xE525</div><div class='add'>+0x7723 = 0xE526</div><div class='add'>+0x7724 = 0xE527</div><div class='add'>+0x7725 = 0xE528</div><div class='add'>+0x7726 = 0xE529</div><div class='add'>+0x7727 = 0xE52A</div><div class='add'>+0x7728 = 0xE52B</div><div class='add'>+0x7729 = 0xE52C</div><div class='add'>+0x772A = 0xE52D</div><div class='add'>+0x772B = 0xE52E</div><div class='add'>+0x772C = 0xE52F</div><div class='add'>+0x772D = 0xE530</div><div class='add'>+0x772E = 0xE531</div><div class='add'>+0x772F = 0xE532</div><div class='add'>+0x7730 = 0xE533</div><div class='add'>+0x7731 = 0xE534</div><div class='add'>+0x7732 = 0xE535</div><div class='add'>+0x7733 = 0xE536</div><div class='add'>+0x7734 = 0xE537</div><div class='add'>+0x7735 = 0xE538</div><div class='add'>+0x7736 = 0xE539</div><div class='add'>+0x7737 = 0xE53A</div><div class='add'>+0x7738 = 0xE53B</div><div class='add'>+0x7739 = 0xE53C</div><div class='add'>+0x773A = 0xE53D</div><div class='add'>+0x773B = 0xE53E</div><div class='add'>+0x773C = 0xE53F</div><div class='add'>+0x773D = 0xE540</div><div class='add'>+0x773E = 0xE541</div><div class='add'>+0x773F = 0xE542</div><div class='add'>+0x7740 = 0xE543</div><div class='add'>+0x7741 = 0xE544</div><div class='add'>+0x7742 = 0xE545</div><div class='add'>+0x7743 = 0xE546</div><div class='add'>+0x7744 = 0xE547</div><div class='add'>+0x7745 = 0xE548</div><div class='add'>+0x7746 = 0xE549</div><div class='add'>+0x7747 = 0xE54A</div><div class='add'>+0x7748 = 0xE54B</div><div class='add'>+0x7749 = 0xE54C</div><div class='add'>+0x774A = 0xE54D</div><div class='add'>+0x774B = 0xE54E</div><div class='add'>+0x774C = 0xE54F</div><div class='add'>+0x774D = 0xE550</div><div class='add'>+0x774E = 0xE551</div><div class='add'>+0x774F = 0xE552</div><div class='add'>+0x7750 = 0xE553</div><div class='add'>+0x7751 = 0xE554</div><div class='add'>+0x7752 = 0xE555</div><div class='add'>+0x7753 = 0xE556</div><div class='add'>+0x7754 = 0xE557</div><div class='add'>+0x7755 = 0xE558</div><div class='add'>+0x7756 = 0xE559</div><div class='add'>+0x7757 = 0xE55A</div><div class='add'>+0x7758 = 0xE55B</div><div class='add'>+0x7759 = 0xE55C</div><div class='add'>+0x775A = 0xE55D</div><div class='add'>+0x775B = 0xE55E</div><div class='add'>+0x775C = 0xE55F</div><div class='add'>+0x775D = 0xE560</div><div class='add'>+0x775E = 0xE561</div><div class='add'>+0x775F = 0xE562</div><div class='add'>+0x7760 = 0xE563</div><div class='add'>+0x7761 = 0xE564</div><div class='add'>+0x7762 = 0xE565</div><div class='add'>+0x7763 = 0xE566</div><div class='add'>+0x7764 = 0xE567</div><div class='add'>+0x7765 = 0xE568</div><div class='add'>+0x7766 = 0xE569</div><div class='add'>+0x7767 = 0xE56A</div><div class='add'>+0x7768 = 0xE56B</div><div class='add'>+0x7769 = 0xE56C</div><div class='add'>+0x776A = 0xE56D</div><div class='add'>+0x776B = 0xE56E</div><div class='add'>+0x776C = 0xE56F</div><div class='add'>+0x776D = 0xE570</div><div class='add'>+0x776E = 0xE571</div><div class='add'>+0x776F = 0xE572</div><div class='add'>+0x7770 = 0xE573</div><div class='add'>+0x7771 = 0xE574</div><div class='add'>+0x7772 = 0xE575</div><div class='add'>+0x7773 = 0xE576</div><div class='add'>+0x7774 = 0xE577</div><div class='add'>+0x7775 = 0xE578</div><div class='add'>+0x7776 = 0xE579</div><div class='add'>+0x7777 = 0xE57A</div><div class='add'>+0x7778 = 0xE57B</div><div class='add'>+0x7779 = 0xE57C</div><div class='add'>+0x777A = 0xE57D</div><div class='add'>+0x777B = 0xE57E</div><div class='add'>+0x777C = 0xE57F</div><div class='add'>+0x777D = 0xE580</div><div class='add'>+0x777E = 0xE581</div><div class='add'>+0x7821 = 0xE582</div><div class='add'>+0x7822 = 0xE583</div><div class='add'>+0x7823 = 0xE584</div><div class='add'>+0x7824 = 0xE585</div><div class='add'>+0x7825 = 0xE586</div><div class='add'>+0x7826 = 0xE587</div><div class='add'>+0x7827 = 0xE588</div><div class='add'>+0x7828 = 0xE589</div><div class='add'>+0x7829 = 0xE58A</div><div class='add'>+0x782A = 0xE58B</div><div class='add'>+0x782B = 0xE58C</div><div class='add'>+0x782C = 0xE58D</div><div class='add'>+0x782D = 0xE58E</div><div class='add'>+0x782E = 0xE58F</div><div class='add'>+0x782F = 0xE590</div><div class='add'>+0x7830 = 0xE591</div><div class='add'>+0x7831 = 0xE592</div><div class='add'>+0x7832 = 0xE593</div><div class='add'>+0x7833 = 0xE594</div><div class='add'>+0x7834 = 0xE595</div><div class='add'>+0x7835 = 0xE596</div><div class='add'>+0x7836 = 0xE597</div><div class='add'>+0x7837 = 0xE598</div><div class='add'>+0x7838 = 0xE599</div><div class='add'>+0x7839 = 0xE59A</div><div class='add'>+0x783A = 0xE59B</div><div class='add'>+0x783B = 0xE59C</div><div class='add'>+0x783C = 0xE59D</div><div class='add'>+0x783D = 0xE59E</div><div class='add'>+0x783E = 0xE59F</div><div class='add'>+0x783F = 0xE5A0</div><div class='add'>+0x7840 = 0xE5A1</div><div class='add'>+0x7841 = 0xE5A2</div><div class='add'>+0x7842 = 0xE5A3</div><div class='add'>+0x7843 = 0xE5A4</div><div class='add'>+0x7844 = 0xE5A5</div><div class='add'>+0x7845 = 0xE5A6</div><div class='add'>+0x7846 = 0xE5A7</div><div class='add'>+0x7847 = 0xE5A8</div><div class='add'>+0x7848 = 0xE5A9</div><div class='add'>+0x7849 = 0xE5AA</div><div class='add'>+0x784A = 0xE5AB</div><div class='add'>+0x784B = 0xE5AC</div><div class='add'>+0x784C = 0xE5AD</div><div class='add'>+0x784D = 0xE5AE</div><div class='add'>+0x784E = 0xE5AF</div><div class='add'>+0x784F = 0xE5B0</div><div class='add'>+0x7850 = 0xE5B1</div><div class='add'>+0x7851 = 0xE5B2</div><div class='add'>+0x7852 = 0xE5B3</div><div class='add'>+0x7853 = 0xE5B4</div><div class='add'>+0x7854 = 0xEAFB</div><div class='add'>+0x7855 = 0xEAFC</div><div class='add'>+0x7856 = 0xEAFD</div><div class='add'>+0x7857 = 0xEAFE</div><div class='add'>+0x7858 = 0xEAFF</div><div class='add'>+0x7859 = 0xEB00</div><div class='add'>+0x785A = 0xEB01</div><div class='add'>+0x785B = 0xEB02</div><div class='add'>+0x785C = 0xEB03</div><div class='add'>+0x785D = 0xEB04</div><div class='add'>+0x785E = 0xEB05</div><div class='add'>+0x785F = 0xEB06</div><div class='add'>+0x7860 = 0xEB07</div><div class='add'>+0x7861 = 0xEB08</div><div class='add'>+0x7862 = 0xEB09</div><div class='add'>+0x7863 = 0xEB0A</div><div class='add'>+0x7864 = 0xEB0B</div><div class='add'>+0x7865 = 0xEB0C</div><div class='add'>+0x7866 = 0xEB0D</div><div class='add'>+0x7867 = 0xE5B5</div><div class='add'>+0x7868 = 0xE5B6</div><div class='add'>+0x7869 = 0xE5B7</div><div class='add'>+0x786A = 0xE5B8</div><div class='add'>+0x786B = 0xE5B9</div><div class='add'>+0x786C = 0xE5BA</div><div class='add'>+0x786D = 0xE5BB</div><div class='add'>+0x786E = 0xE5BC</div><div class='add'>+0x786F = 0xE5BD</div><div class='add'>+0x7870 = 0xE5BE</div><div class='add'>+0x7871 = 0xE5BF</div><div class='add'>+0x7872 = 0xE5C0</div><div class='add'>+0x7873 = 0xE5C1</div><div class='add'>+0x7874 = 0xE5C2</div><div class='add'>+0x7875 = 0xE5C3</div><div class='add'>+0x7876 = 0xE5C4</div><div class='add'>+0x7877 = 0xE5C5</div><div class='add'>+0x7878 = 0xE5C6</div><div class='add'>+0x7879 = 0xE5C7</div><div class='add'>+0x787A = 0xE5C8</div><div class='add'>+0x787B = 0xE5C9</div><div class='add'>+0x787C = 0xE5CA</div><div class='add'>+0x787D = 0xE5CB</div><div class='add'>+0x787E = 0xE5CC</div><div class='add'>+0x7921 = 0xE5CD</div><div class='add'>+0x7922 = 0xE5CE</div><div class='add'>+0x7923 = 0xE5CF</div><div class='add'>+0x7924 = 0xE5D0</div><div class='add'>+0x7925 = 0xE5D1</div><div class='add'>+0x7926 = 0xE5D2</div><div class='add'>+0x7927 = 0xE5D3</div><div class='add'>+0x7928 = 0xE5D4</div><div class='add'>+0x7929 = 0xE5D5</div><div class='add'>+0x792A = 0xE5D6</div><div class='add'>+0x792B = 0xE5D7</div><div class='add'>+0x792C = 0xE5D8</div><div class='add'>+0x792D = 0xE5D9</div><div class='add'>+0x792E = 0xE5DA</div><div class='add'>+0x792F = 0xE5DB</div><div class='add'>+0x7930 = 0xE5DC</div><div class='add'>+0x7931 = 0xE5DD</div><div class='add'>+0x7932 = 0xE5DE</div><div class='add'>+0x7933 = 0xE5DF</div><div class='add'>+0x7934 = 0xEA80</div><div class='add'>+0x7935 = 0xEA81</div><div class='add'>+0x7936 = 0xEA82</div><div class='add'>+0x7937 = 0xEA83</div><div class='add'>+0x7938 = 0xEA84</div><div class='add'>+0x7939 = 0xEA85</div><div class='add'>+0x793A = 0xEA86</div><div class='add'>+0x793B = 0xEA87</div><div class='add'>+0x793C = 0xEA88</div><div class='add'>+0x793D = 0xEA89</div><div class='add'>+0x793E = 0xEA8A</div><div class='add'>+0x793F = 0xEA8B</div><div class='add'>+0x7940 = 0xEA8C</div><div class='add'>+0x7941 = 0xEA8D</div><div class='add'>+0x7942 = 0xEA8E</div><div class='add'>+0x7943 = 0xEA8F</div><div class='add'>+0x7944 = 0xEA90</div><div class='add'>+0x7945 = 0xEA91</div><div class='add'>+0x7946 = 0xEA92</div><div class='add'>+0x7947 = 0xEA93</div><div class='add'>+0x7948 = 0xEA94</div><div class='add'>+0x7949 = 0xEA95</div><div class='add'>+0x794A = 0xEA96</div><div class='add'>+0x794B = 0xEA97</div><div class='add'>+0x794C = 0xEA98</div><div class='add'>+0x794D = 0xEA99</div><div class='add'>+0x794E = 0xEA9A</div><div class='add'>+0x794F = 0xEA9B</div><div class='add'>+0x7950 = 0xEA9C</div><div class='add'>+0x7951 = 0xEA9D</div><div class='add'>+0x7952 = 0xEA9E</div><div class='add'>+0x7953 = 0xEA9F</div><div class='add'>+0x7954 = 0xEAA0</div><div class='add'>+0x7955 = 0xEAA1</div><div class='add'>+0x7956 = 0xEAA2</div><div class='add'>+0x7957 = 0xEAA3</div><div class='add'>+0x7958 = 0xEAA4</div><div class='add'>+0x7959 = 0xEAA5</div><div class='add'>+0x795A = 0xEAA6</div><div class='add'>+0x795B = 0xEAA7</div><div class='add'>+0x795C = 0xEAA8</div><div class='add'>+0x795D = 0xEAA9</div><div class='add'>+0x795E = 0xEAAA</div><div class='add'>+0x795F = 0xEAAB</div><div class='add'>+0x7960 = 0xEAAC</div><div class='add'>+0x7961 = 0xEAAD</div><div class='add'>+0x7962 = 0xEAAE</div><div class='add'>+0x7963 = 0xEAAF</div><div class='add'>+0x7964 = 0xEAB0</div><div class='add'>+0x7965 = 0xEAB1</div><div class='add'>+0x7966 = 0xEAB2</div><div class='add'>+0x7967 = 0xEAB3</div><div class='add'>+0x7968 = 0xEAB4</div><div class='add'>+0x7969 = 0xEAB5</div><div class='add'>+0x796A = 0xEAB6</div><div class='add'>+0x796B = 0xEAB7</div><div class='add'>+0x796C = 0xEAB8</div><div class='add'>+0x796D = 0xEAB9</div><div class='add'>+0x796E = 0xEABA</div><div class='add'>+0x796F = 0xEABB</div><div class='add'>+0x7970 = 0xEABC</div><div class='add'>+0x7971 = 0xEABD</div><div class='add'>+0x7972 = 0xEABE</div><div class='add'>+0x7973 = 0xEABF</div><div class='add'>+0x7974 = 0xEAC0</div><div class='add'>+0x7975 = 0xEAC1</div><div class='add'>+0x7976 = 0xEAC2</div><div class='add'>+0x7977 = 0xEAC3</div><div class='add'>+0x7978 = 0xEAC4</div><div class='add'>+0x7979 = 0xEAC5</div><div class='add'>+0x797A = 0xEAC6</div><div class='add'>+0x797B = 0xEAC7</div><div class='add'>+0x797C = 0xEAC8</div><div class='add'>+0x797D = 0xEAC9</div><div class='add'>+0x797E = 0xEACA</div><div class='add'>+0x7A21 = 0xEACB</div><div class='add'>+0x7A22 = 0xEACC</div><div class='add'>+0x7A23 = 0xEACD</div><div class='add'>+0x7A24 = 0xEACE</div><div class='add'>+0x7A25 = 0xEACF</div><div class='add'>+0x7A26 = 0xEAD0</div><div class='add'>+0x7A27 = 0xEAD1</div><div class='add'>+0x7A28 = 0xEAD2</div><div class='add'>+0x7A29 = 0xEAD3</div><div class='add'>+0x7A2A = 0xEAD4</div><div class='add'>+0x7A2B = 0xEAD5</div><div class='add'>+0x7A2C = 0xEAD6</div><div class='add'>+0x7A2D = 0xEAD7</div><div class='add'>+0x7A2E = 0xEAD8</div><div class='add'>+0x7A2F = 0xEAD9</div><div class='add'>+0x7A30 = 0xEADA</div><div class='add'>+0x7A31 = 0xEADB</div><div class='add'>+0x7A32 = 0xEADC</div><div class='add'>+0x7A33 = 0xEADD</div><div class='add'>+0x7A34 = 0xEADE</div><div class='add'>+0x7A35 = 0xEADF</div><div class='add'>+0x7A36 = 0xEAE0</div><div class='add'>+0x7A37 = 0xEAE1</div><div class='add'>+0x7A38 = 0xEAE2</div><div class='add'>+0x7A39 = 0xEAE3</div><div class='add'>+0x7A3A = 0xEAE4</div><div class='add'>+0x7A3B = 0xEAE5</div><div class='add'>+0x7A3C = 0xEAE6</div><div class='add'>+0x7A3D = 0xEAE7</div><div class='add'>+0x7A3E = 0xEAE8</div><div class='add'>+0x7A3F = 0xEAE9</div><div class='add'>+0x7A40 = 0xEAEA</div><div class='add'>+0x7A41 = 0xEAEB</div><div class='add'>+0x7A42 = 0xEAEC</div><div class='add'>+0x7A43 = 0xEAED</div><div class='add'>+0x7A44 = 0xEAEE</div><div class='add'>+0x7A45 = 0xEAEF</div><div class='add'>+0x7A46 = 0xEAF0</div><div class='add'>+0x7A47 = 0xEAF1</div><div class='add'>+0x7A48 = 0xEAF2</div><div class='add'>+0x7A49 = 0xEAF3</div><div class='add'>+0x7A4A = 0xEAF4</div><div class='add'>+0x7A4B = 0xEAF5</div><div class='add'>+0x7A4C = 0xEAF6</div><div class='add'>+0x7A4D = 0xEAF7</div><div class='add'>+0x7A4E = 0xEAF8</div><div class='add'>+0x7A4F = 0xEAF9</div><div class='add'>+0x7A50 = 0xEAFA</div><div class='add'>+0x7A51 = 0xEB0E</div><div class='add'>+0x7A52 = 0xEB0F</div><div class='add'>+0x7A53 = 0xEB10</div><div class='add'>+0x7A54 = 0xEB11</div><div class='add'>+0x7A55 = 0xEB12</div><div class='add'>+0x7A56 = 0xEB13</div><div class='add'>+0x7A57 = 0xEB14</div><div class='add'>+0x7A58 = 0xEB15</div><div class='add'>+0x7A59 = 0xEB16</div><div class='add'>+0x7A5A = 0xEB17</div><div class='add'>+0x7A5B = 0xEB18</div><div class='add'>+0x7A5C = 0xEB19</div><div class='add'>+0x7A5D = 0xEB1A</div><div class='add'>+0x7A5E = 0xEB1B</div><div class='add'>+0x7A5F = 0xEB1C</div><div class='add'>+0x7A60 = 0xEB1D</div><div class='add'>+0x7A61 = 0xEB1E</div><div class='add'>+0x7A62 = 0xEB1F</div><div class='add'>+0x7A63 = 0xEB20</div><div class='add'>+0x7A64 = 0xEB21</div><div class='add'>+0x7A65 = 0xEB22</div><div class='add'>+0x7A66 = 0xEB23</div><div class='add'>+0x7A67 = 0xEB24</div><div class='add'>+0x7A68 = 0xEB25</div><div class='add'>+0x7A69 = 0xEB26</div><div class='add'>+0x7A6A = 0xEB27</div><div class='add'>+0x7A6B = 0xEB28</div><div class='add'>+0x7A6C = 0xEB29</div><div class='add'>+0x7A6D = 0xEB2A</div><div class='add'>+0x7A6E = 0xEB2B</div><div class='add'>+0x7A6F = 0xEB2C</div><div class='add'>+0x7A70 = 0xEB2D</div><div class='add'>+0x7A71 = 0xEB2E</div><div class='add'>+0x7A72 = 0xEB2F</div><div class='add'>+0x7A73 = 0xEB30</div><div class='add'>+0x7A74 = 0xEB31</div><div class='add'>+0x7A75 = 0xEB32</div><div class='add'>+0x7A76 = 0xEB33</div><div class='add'>+0x7A77 = 0xEB34</div><div class='add'>+0x7A78 = 0xEB35</div><div class='add'>+0x7A79 = 0xEB36</div><div class='add'>+0x7A7A = 0xEB37</div><div class='add'>+0x7A7B = 0xEB38</div><div class='add'>+0x7A7C = 0xEB39</div><div class='add'>+0x7A7D = 0xEB3A</div><div class='add'>+0x7A7E = 0xEB3B</div><div class='add'>+0x7B21 = 0xEB3C</div><div class='add'>+0x7B22 = 0xEB3D</div><div class='add'>+0x7B23 = 0xEB3E</div><div class='add'>+0x7B24 = 0xEB3F</div><div class='add'>+0x7B25 = 0xEB40</div><div class='add'>+0x7B26 = 0xEB41</div><div class='add'>+0x7B27 = 0xEB42</div><div class='add'>+0x7B28 = 0xEB43</div><div class='add'>+0x7B29 = 0xEB44</div><div class='add'>+0x7B2A = 0xEB45</div><div class='add'>+0x7B2B = 0xEB46</div><div class='add'>+0x7B2C = 0xEB47</div><div class='add'>+0x7B2D = 0xEB48</div><div class='add'>+0x7B2E = 0xEB49</div><div class='add'>+0x7B2F = 0xEB4A</div><div class='add'>+0x7B30 = 0xEB4B</div><div class='add'>+0x7B31 = 0xEB4C</div><div class='add'>+0x7B32 = 0xEB4D</div><div class='add'>+0x7B33 = 0xEB4E</div><div class='add'>+0x7B34 = 0xEB4F</div><div class='add'>+0x7B35 = 0xEB50</div><div class='add'>+0x7B36 = 0xEB51</div><div class='add'>+0x7B37 = 0xEB52</div><div class='add'>+0x7B38 = 0xEB53</div><div class='add'>+0x7B39 = 0xEB54</div><div class='add'>+0x7B3A = 0xEB55</div><div class='add'>+0x7B3B = 0xEB56</div><div class='add'>+0x7B3C = 0xEB57</div><div class='add'>+0x7B3D = 0xEB58</div><div class='add'>+0x7B3E = 0xEB59</div><div class='add'>+0x7B3F = 0xEB5A</div><div class='add'>+0x7B40 = 0xEB5B</div><div class='add'>+0x7B41 = 0xEB5C</div><div class='add'>+0x7B42 = 0xEB5D</div><div class='add'>+0x7B43 = 0xEB5E</div><div class='add'>+0x7B44 = 0xEB5F</div><div class='add'>+0x7B45 = 0xEB60</div><div class='add'>+0x7B46 = 0xEB61</div><div class='add'>+0x7B47 = 0xEB62</div><div class='add'>+0x7B48 = 0xEB63</div><div class='add'>+0x7B49 = 0xEB64</div><div class='add'>+0x7B4A = 0xEB65</div><div class='add'>+0x7B4B = 0xEB66</div><div class='add'>+0x7B4C = 0xEB67</div><div class='add'>+0x7B4D = 0xEB68</div><div class='add'>+0x7B4E = 0xEB69</div><div class='add'>+0x7B4F = 0xEB6A</div><div class='add'>+0x7B50 = 0xEB6B</div><div class='add'>+0x7B51 = 0xEB6C</div><div class='add'>+0x7B52 = 0xEB6D</div><div class='add'>+0x7B53 = 0xEB6E</div><div class='add'>+0x7B54 = 0xEB6F</div><div class='add'>+0x7B55 = 0xEB70</div><div class='add'>+0x7B56 = 0xEB71</div><div class='add'>+0x7B57 = 0xEB72</div><div class='add'>+0x7B58 = 0xEB73</div><div class='add'>+0x7B59 = 0xEB74</div><div class='add'>+0x7B5A = 0xEB75</div><div class='add'>+0x7B5B = 0xEB76</div><div class='add'>+0x7B5C = 0xEB77</div><div class='add'>+0x7B5D = 0xEB78</div><div class='add'>+0x7B5E = 0xEB79</div><div class='add'>+0x7B5F = 0xEB7A</div><div class='add'>+0x7B60 = 0xEB7B</div><div class='add'>+0x7B61 = 0xEB7C</div><div class='add'>+0x7B62 = 0xEB7D</div><div class='add'>+0x7B63 = 0xEB7E</div><div class='add'>+0x7B64 = 0xEB7F</div><div class='add'>+0x7B65 = 0xEB80</div><div class='add'>+0x7B66 = 0xEB81</div><div class='add'>+0x7B67 = 0xEB82</div><div class='add'>+0x7B68 = 0xEB83</div><div class='add'>+0x7B69 = 0xEB84</div><div class='add'>+0x7B6A = 0xEB85</div><div class='add'>+0x7B6B = 0xEB86</div><div class='add'>+0x7B6C = 0xEB87</div><div class='add'>+0x7B6D = 0xEB88</div><div class='add'>+0x7B6E = 0xEB89</div><div class='add'>+0x7B6F = 0xEB8A</div><div class='add'>+0x7B70 = 0xEB8B</div><div class='add'>+0x7B71 = 0xEB8C</div><div class='add'>+0x7B72 = 0xEB8D</div><div class='add'>+0x7B73 = 0xEB8E</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%UCS.src b/enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%UCS.src<br/>new file mode 100644<br/>index 0000000000..942624a3fa<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-DOCOMO%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,293 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		EMOJI_SHIFT_JIS-DOCOMO/UCS</div><div class='add'>+SRC_ZONE	0xF8-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0x9021 = 0xE63E</div><div class='add'>+0x9022 = 0xE63F</div><div class='add'>+0x9023 = 0xE640</div><div class='add'>+0x9024 = 0xE641</div><div class='add'>+0x9025 = 0xE642</div><div class='add'>+0x9026 = 0xE643</div><div class='add'>+0x9027 = 0xE644</div><div class='add'>+0x9028 = 0xE645</div><div class='add'>+0x9029 = 0xE646</div><div class='add'>+0x902A = 0xE647</div><div class='add'>+0x902B = 0xE648</div><div class='add'>+0x902C = 0xE649</div><div class='add'>+0x902D = 0xE64A</div><div class='add'>+0x902E = 0xE64B</div><div class='add'>+0x902F = 0xE64C</div><div class='add'>+0x9030 = 0xE64D</div><div class='add'>+0x9031 = 0xE64E</div><div class='add'>+0x9032 = 0xE64F</div><div class='add'>+0x9033 = 0xE650</div><div class='add'>+0x9034 = 0xE651</div><div class='add'>+0x9035 = 0xE652</div><div class='add'>+0x9036 = 0xE653</div><div class='add'>+0x9037 = 0xE654</div><div class='add'>+0x9038 = 0xE655</div><div class='add'>+0x9039 = 0xE656</div><div class='add'>+0x903A = 0xE657</div><div class='add'>+0x903B = 0xE658</div><div class='add'>+0x903C = 0xE659</div><div class='add'>+0x903D = 0xE65A</div><div class='add'>+0x903E = 0xE65B</div><div class='add'>+0x903F = 0xE65C</div><div class='add'>+0x9040 = 0xE65D</div><div class='add'>+0x9041 = 0xE65E</div><div class='add'>+0x9042 = 0xE65F</div><div class='add'>+0x9043 = 0xE660</div><div class='add'>+0x9044 = 0xE661</div><div class='add'>+0x9045 = 0xE662</div><div class='add'>+0x9046 = 0xE663</div><div class='add'>+0x9047 = 0xE664</div><div class='add'>+0x9048 = 0xE665</div><div class='add'>+0x9049 = 0xE666</div><div class='add'>+0x904A = 0xE667</div><div class='add'>+0x904B = 0xE668</div><div class='add'>+0x904C = 0xE669</div><div class='add'>+0x904D = 0xE66A</div><div class='add'>+0x904E = 0xE66B</div><div class='add'>+0x904F = 0xE66C</div><div class='add'>+0x9050 = 0xE66D</div><div class='add'>+0x9051 = 0xE66E</div><div class='add'>+0x9052 = 0xE66F</div><div class='add'>+0x9053 = 0xE670</div><div class='add'>+0x9054 = 0xE671</div><div class='add'>+0x9055 = 0xE672</div><div class='add'>+0x9056 = 0xE673</div><div class='add'>+0x9057 = 0xE674</div><div class='add'>+0x9058 = 0xE675</div><div class='add'>+0x9059 = 0xE676</div><div class='add'>+0x905A = 0xE677</div><div class='add'>+0x905B = 0xE678</div><div class='add'>+0x905C = 0xE679</div><div class='add'>+0x905D = 0xE67A</div><div class='add'>+0x905E = 0xE67B</div><div class='add'>+0x905F = 0xE67C</div><div class='add'>+0x9060 = 0xE67D</div><div class='add'>+0x9061 = 0xE67E</div><div class='add'>+0x9062 = 0xE67F</div><div class='add'>+0x9063 = 0xE680</div><div class='add'>+0x9064 = 0xE681</div><div class='add'>+0x9065 = 0xE682</div><div class='add'>+0x9066 = 0xE683</div><div class='add'>+0x9067 = 0xE684</div><div class='add'>+0x9068 = 0xE685</div><div class='add'>+0x9069 = 0xE686</div><div class='add'>+0x906A = 0xE687</div><div class='add'>+0x906B = 0xE688</div><div class='add'>+0x906C = 0xE689</div><div class='add'>+0x906D = 0xE68A</div><div class='add'>+0x906E = 0xE68B</div><div class='add'>+0x906F = 0xE68C</div><div class='add'>+0x9070 = 0xE68D</div><div class='add'>+0x9071 = 0xE68E</div><div class='add'>+0x9072 = 0xE68F</div><div class='add'>+0x9073 = 0xE690</div><div class='add'>+0x9074 = 0xE691</div><div class='add'>+0x9075 = 0xE692</div><div class='add'>+0x9076 = 0xE693</div><div class='add'>+0x9077 = 0xE694</div><div class='add'>+0x9078 = 0xE695</div><div class='add'>+0x9079 = 0xE696</div><div class='add'>+0x907A = 0xE697</div><div class='add'>+0x907B = 0xE698</div><div class='add'>+0x907C = 0xE699</div><div class='add'>+0x907D = 0xE69A</div><div class='add'>+0x907E = 0xE69B</div><div class='add'>+0x9121 = 0xE69C</div><div class='add'>+0x9122 = 0xE69D</div><div class='add'>+0x9123 = 0xE69E</div><div class='add'>+0x9124 = 0xE69F</div><div class='add'>+0x9125 = 0xE6A0</div><div class='add'>+0x9126 = 0xE6A1</div><div class='add'>+0x9127 = 0xE6A2</div><div class='add'>+0x9128 = 0xE6A3</div><div class='add'>+0x9129 = 0xE6A4</div><div class='add'>+0x912A = 0xE6A5</div><div class='add'>+0x912B = 0xE6A6</div><div class='add'>+0x912C = 0xE6A7</div><div class='add'>+0x912D = 0xE6A8</div><div class='add'>+0x912E = 0xE6A9</div><div class='add'>+0x912F = 0xE6AA</div><div class='add'>+0x9130 = 0xE6AB</div><div class='add'>+0x9131 = 0xE6AC</div><div class='add'>+0x9132 = 0xE6AD</div><div class='add'>+0x9133 = 0xE6AE</div><div class='add'>+0x9134 = 0xE6AF</div><div class='add'>+0x9135 = 0xE6B0</div><div class='add'>+0x9136 = 0xE6B1</div><div class='add'>+0x9137 = 0xE6B2</div><div class='add'>+0x9138 = 0xE6B3</div><div class='add'>+0x9139 = 0xE6B4</div><div class='add'>+0x913A = 0xE6B5</div><div class='add'>+0x913B = 0xE6B6</div><div class='add'>+0x913C = 0xE6B7</div><div class='add'>+0x913D = 0xE6B8</div><div class='add'>+0x913E = 0xE6B9</div><div class='add'>+0x913F = 0xE6BA</div><div class='add'>+0x9140 = 0xE6BB</div><div class='add'>+0x9141 = 0xE6BC</div><div class='add'>+0x9142 = 0xE6BD</div><div class='add'>+0x9143 = 0xE6BE</div><div class='add'>+0x9144 = 0xE6BF</div><div class='add'>+0x9145 = 0xE6C0</div><div class='add'>+0x9146 = 0xE6C1</div><div class='add'>+0x9147 = 0xE6C2</div><div class='add'>+0x9148 = 0xE6C3</div><div class='add'>+0x9149 = 0xE6C4</div><div class='add'>+0x914A = 0xE6C5</div><div class='add'>+0x914B = 0xE6C6</div><div class='add'>+0x914C = 0xE6C7</div><div class='add'>+0x914D = 0xE6C8</div><div class='add'>+0x914E = 0xE6C9</div><div class='add'>+0x914F = 0xE6CA</div><div class='add'>+0x9150 = 0xE6CB</div><div class='add'>+0x9151 = 0xE6CC</div><div class='add'>+0x9152 = 0xE6CD</div><div class='add'>+0x9153 = 0xE6CE</div><div class='add'>+0x9154 = 0xE6CF</div><div class='add'>+0x9155 = 0xE6D0</div><div class='add'>+0x9156 = 0xE6D1</div><div class='add'>+0x9157 = 0xE6D2</div><div class='add'>+0x9158 = 0xE6D3</div><div class='add'>+0x9159 = 0xE6D4</div><div class='add'>+0x915A = 0xE6D5</div><div class='add'>+0x915B = 0xE6D6</div><div class='add'>+0x915C = 0xE6D7</div><div class='add'>+0x915D = 0xE6D8</div><div class='add'>+0x915E = 0xE6D9</div><div class='add'>+0x915F = 0xE6DA</div><div class='add'>+0x9160 = 0xE6DB</div><div class='add'>+0x9161 = 0xE6DC</div><div class='add'>+0x9162 = 0xE6DD</div><div class='add'>+0x9163 = 0xE6DE</div><div class='add'>+0x9164 = 0xE6DF</div><div class='add'>+0x9165 = 0xE6E0</div><div class='add'>+0x9166 = 0xE6E1</div><div class='add'>+0x9167 = 0xE6E2</div><div class='add'>+0x9168 = 0xE6E3</div><div class='add'>+0x9169 = 0xE6E4</div><div class='add'>+0x916A = 0xE6E5</div><div class='add'>+0x916B = 0xE6E6</div><div class='add'>+0x916C = 0xE6E7</div><div class='add'>+0x916D = 0xE6E8</div><div class='add'>+0x916E = 0xE6E9</div><div class='add'>+0x916F = 0xE6EA</div><div class='add'>+0x9170 = 0xE6EB</div><div class='add'>+0x9171 = 0xE6EC</div><div class='add'>+0x9172 = 0xE6ED</div><div class='add'>+0x9173 = 0xE6EE</div><div class='add'>+0x9174 = 0xE6EF</div><div class='add'>+0x9175 = 0xE6F0</div><div class='add'>+0x9176 = 0xE6F1</div><div class='add'>+0x9177 = 0xE6F2</div><div class='add'>+0x9178 = 0xE6F3</div><div class='add'>+0x9179 = 0xE6F4</div><div class='add'>+0x917A = 0xE6F5</div><div class='add'>+0x917B = 0xE6F6</div><div class='add'>+0x917C = 0xE6F7</div><div class='add'>+0x917D = 0xE6F8</div><div class='add'>+0x917E = 0xE6F9</div><div class='add'>+0x9221 = 0xE6FA</div><div class='add'>+0x9222 = 0xE6FB</div><div class='add'>+0x9223 = 0xE6FC</div><div class='add'>+0x9224 = 0xE6FD</div><div class='add'>+0x9225 = 0xE6FE</div><div class='add'>+0x9226 = 0xE6FF</div><div class='add'>+0x9227 = 0xE700</div><div class='add'>+0x9228 = 0xE701</div><div class='add'>+0x9229 = 0xE702</div><div class='add'>+0x922A = 0xE703</div><div class='add'>+0x922B = 0xE704</div><div class='add'>+0x922C = 0xE705</div><div class='add'>+0x922D = 0xE706</div><div class='add'>+0x922E = 0xE707</div><div class='add'>+0x922F = 0xE708</div><div class='add'>+0x9230 = 0xE709</div><div class='add'>+0x9231 = 0xE70A</div><div class='add'>+0x9232 = 0xE70B</div><div class='add'>+0x9233 = 0xE70C</div><div class='add'>+0x9234 = 0xE70D</div><div class='add'>+0x9235 = 0xE70E</div><div class='add'>+0x9236 = 0xE70F</div><div class='add'>+0x9237 = 0xE710</div><div class='add'>+0x9238 = 0xE711</div><div class='add'>+0x9239 = 0xE712</div><div class='add'>+0x923A = 0xE713</div><div class='add'>+0x923B = 0xE714</div><div class='add'>+0x923C = 0xE715</div><div class='add'>+0x923D = 0xE716</div><div class='add'>+0x923E = 0xE717</div><div class='add'>+0x923F = 0xE718</div><div class='add'>+0x9240 = 0xE719</div><div class='add'>+0x9241 = 0xE71A</div><div class='add'>+0x9242 = 0xE71B</div><div class='add'>+0x9243 = 0xE71C</div><div class='add'>+0x9244 = 0xE71D</div><div class='add'>+0x9245 = 0xE71E</div><div class='add'>+0x9246 = 0xE71F</div><div class='add'>+0x9247 = 0xE720</div><div class='add'>+0x9248 = 0xE721</div><div class='add'>+0x9249 = 0xE722</div><div class='add'>+0x924A = 0xE723</div><div class='add'>+0x924B = 0xE724</div><div class='add'>+0x924C = 0xE725</div><div class='add'>+0x924D = 0xE726</div><div class='add'>+0x924E = 0xE727</div><div class='add'>+0x924F = 0xE728</div><div class='add'>+0x9250 = 0xE729</div><div class='add'>+0x9251 = 0xE72A</div><div class='add'>+0x9252 = 0xE72B</div><div class='add'>+0x9253 = 0xE72C</div><div class='add'>+0x9254 = 0xE72D</div><div class='add'>+0x9255 = 0xE72E</div><div class='add'>+0x9256 = 0xE72F</div><div class='add'>+0x9257 = 0xE730</div><div class='add'>+0x9258 = 0xE731</div><div class='add'>+0x9259 = 0xE732</div><div class='add'>+0x925A = 0xE733</div><div class='add'>+0x925B = 0xE734</div><div class='add'>+0x925C = 0xE735</div><div class='add'>+0x925D = 0xE736</div><div class='add'>+0x925E = 0xE737</div><div class='add'>+0x925F = 0xE738</div><div class='add'>+0x9260 = 0xE739</div><div class='add'>+0x9261 = 0xE73A</div><div class='add'>+0x9262 = 0xE73B</div><div class='add'>+0x9263 = 0xE73C</div><div class='add'>+0x9264 = 0xE73D</div><div class='add'>+0x9265 = 0xE73E</div><div class='add'>+0x9266 = 0xE73F</div><div class='add'>+0x9267 = 0xE740</div><div class='add'>+0x9268 = 0xE741</div><div class='add'>+0x9269 = 0xE742</div><div class='add'>+0x926A = 0xE743</div><div class='add'>+0x926B = 0xE744</div><div class='add'>+0x926C = 0xE745</div><div class='add'>+0x926D = 0xE746</div><div class='add'>+0x926E = 0xE747</div><div class='add'>+0x926F = 0xE748</div><div class='add'>+0x9270 = 0xE749</div><div class='add'>+0x9271 = 0xE74A</div><div class='add'>+0x9272 = 0xE74B</div><div class='add'>+0x9273 = 0xE74C</div><div class='add'>+0x9274 = 0xE74D</div><div class='add'>+0x9275 = 0xE74E</div><div class='add'>+0x9276 = 0xE74F</div><div class='add'>+0x9277 = 0xE750</div><div class='add'>+0x9278 = 0xE751</div><div class='add'>+0x9279 = 0xE752</div><div class='add'>+0x927A = 0xE753</div><div class='add'>+0x927B = 0xE754</div><div class='add'>+0x927C = 0xE755</div><div class='add'>+0x927D = 0xE756</div><div class='add'>+0x927E = 0xE757</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%UCS.src b/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%UCS.src<br/>new file mode 100644<br/>index 0000000000..b975ddb894<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		EMOJI_SHIFT_JIS-KDDI/UCS</div><div class='add'>+SRC_ZONE	0xF3-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0x8521 = 0xE5CD</div><div class='add'>+0x8522 = 0xE5CE</div><div class='add'>+0x8523 = 0xE5CF</div><div class='add'>+0x8524 = 0xE5D0</div><div class='add'>+0x8525 = 0xE5D1</div><div class='add'>+0x8526 = 0xE5D2</div><div class='add'>+0x8527 = 0xE5D3</div><div class='add'>+0x8528 = 0xE5D4</div><div class='add'>+0x8529 = 0xE5D5</div><div class='add'>+0x852A = 0xE5D6</div><div class='add'>+0x852B = 0xE5D7</div><div class='add'>+0x852C = 0xE5D8</div><div class='add'>+0x852D = 0xE5D9</div><div class='add'>+0x852E = 0xE5DA</div><div class='add'>+0x852F = 0xE5DB</div><div class='add'>+0x8530 = 0xE5DC</div><div class='add'>+0x8531 = 0xE5DD</div><div class='add'>+0x8532 = 0xE5DE</div><div class='add'>+0x8533 = 0xE5DF</div><div class='add'>+0x8534 = 0xEA80</div><div class='add'>+0x8535 = 0xEA81</div><div class='add'>+0x8536 = 0xEA82</div><div class='add'>+0x8537 = 0xEA83</div><div class='add'>+0x8538 = 0xEA84</div><div class='add'>+0x8539 = 0xEA85</div><div class='add'>+0x853A = 0xEA86</div><div class='add'>+0x853B = 0xEA87</div><div class='add'>+0x853C = 0xEA88</div><div class='add'>+0x853D = 0xEA89</div><div class='add'>+0x853E = 0xEA8A</div><div class='add'>+0x853F = 0xEA8B</div><div class='add'>+0x8540 = 0xEA8C</div><div class='add'>+0x8541 = 0xEA8D</div><div class='add'>+0x8542 = 0xEA8E</div><div class='add'>+0x8543 = 0xEA8F</div><div class='add'>+0x8544 = 0xEA90</div><div class='add'>+0x8545 = 0xEA91</div><div class='add'>+0x8546 = 0xEA92</div><div class='add'>+0x8547 = 0xEA93</div><div class='add'>+0x8548 = 0xEA94</div><div class='add'>+0x8549 = 0xEA95</div><div class='add'>+0x854A = 0xEA96</div><div class='add'>+0x854B = 0xEA97</div><div class='add'>+0x854C = 0xEA98</div><div class='add'>+0x854D = 0xEA99</div><div class='add'>+0x854E = 0xEA9A</div><div class='add'>+0x854F = 0xEA9B</div><div class='add'>+0x8550 = 0xEA9C</div><div class='add'>+0x8551 = 0xEA9D</div><div class='add'>+0x8552 = 0xEA9E</div><div class='add'>+0x8553 = 0xEA9F</div><div class='add'>+0x8554 = 0xEAA0</div><div class='add'>+0x8555 = 0xEAA1</div><div class='add'>+0x8556 = 0xEAA2</div><div class='add'>+0x8557 = 0xEAA3</div><div class='add'>+0x8558 = 0xEAA4</div><div class='add'>+0x8559 = 0xEAA5</div><div class='add'>+0x855A = 0xEAA6</div><div class='add'>+0x855B = 0xEAA7</div><div class='add'>+0x855C = 0xEAA8</div><div class='add'>+0x855D = 0xEAA9</div><div class='add'>+0x855E = 0xEAAA</div><div class='add'>+0x855F = 0xEAAB</div><div class='add'>+0x8560 = 0xEAAC</div><div class='add'>+0x8561 = 0xEAAD</div><div class='add'>+0x8562 = 0xEAAE</div><div class='add'>+0x8563 = 0xEAAF</div><div class='add'>+0x8564 = 0xEAB0</div><div class='add'>+0x8565 = 0xEAB1</div><div class='add'>+0x8566 = 0xEAB2</div><div class='add'>+0x8567 = 0xEAB3</div><div class='add'>+0x8568 = 0xEAB4</div><div class='add'>+0x8569 = 0xEAB5</div><div class='add'>+0x856A = 0xEAB6</div><div class='add'>+0x856B = 0xEAB7</div><div class='add'>+0x856C = 0xEAB8</div><div class='add'>+0x856D = 0xEAB9</div><div class='add'>+0x856E = 0xEABA</div><div class='add'>+0x856F = 0xEABB</div><div class='add'>+0x8570 = 0xEABC</div><div class='add'>+0x8571 = 0xEABD</div><div class='add'>+0x8572 = 0xEABE</div><div class='add'>+0x8573 = 0xEABF</div><div class='add'>+0x8574 = 0xEAC0</div><div class='add'>+0x8575 = 0xEAC1</div><div class='add'>+0x8576 = 0xEAC2</div><div class='add'>+0x8577 = 0xEAC3</div><div class='add'>+0x8578 = 0xEAC4</div><div class='add'>+0x8579 = 0xEAC5</div><div class='add'>+0x857A = 0xEAC6</div><div class='add'>+0x857B = 0xEAC7</div><div class='add'>+0x857C = 0xEAC8</div><div class='add'>+0x857D = 0xEAC9</div><div class='add'>+0x857E = 0xEACA</div><div class='add'>+0x8621 = 0xEACB</div><div class='add'>+0x8622 = 0xEACC</div><div class='add'>+0x8623 = 0xEACD</div><div class='add'>+0x8624 = 0xEACE</div><div class='add'>+0x8625 = 0xEACF</div><div class='add'>+0x8626 = 0xEAD0</div><div class='add'>+0x8627 = 0xEAD1</div><div class='add'>+0x8628 = 0xEAD2</div><div class='add'>+0x8629 = 0xEAD3</div><div class='add'>+0x862A = 0xEAD4</div><div class='add'>+0x862B = 0xEAD5</div><div class='add'>+0x862C = 0xEAD6</div><div class='add'>+0x862D = 0xEAD7</div><div class='add'>+0x862E = 0xEAD8</div><div class='add'>+0x862F = 0xEAD9</div><div class='add'>+0x8630 = 0xEADA</div><div class='add'>+0x8631 = 0xEADB</div><div class='add'>+0x8632 = 0xEADC</div><div class='add'>+0x8633 = 0xEADD</div><div class='add'>+0x8634 = 0xEADE</div><div class='add'>+0x8635 = 0xEADF</div><div class='add'>+0x8636 = 0xEAE0</div><div class='add'>+0x8637 = 0xEAE1</div><div class='add'>+0x8638 = 0xEAE2</div><div class='add'>+0x8639 = 0xEAE3</div><div class='add'>+0x863A = 0xEAE4</div><div class='add'>+0x863B = 0xEAE5</div><div class='add'>+0x863C = 0xEAE6</div><div class='add'>+0x863D = 0xEAE7</div><div class='add'>+0x863E = 0xEAE8</div><div class='add'>+0x863F = 0xEAE9</div><div class='add'>+0x8640 = 0xEAEA</div><div class='add'>+0x8641 = 0xEAEB</div><div class='add'>+0x8642 = 0xEAEC</div><div class='add'>+0x8643 = 0xEAED</div><div class='add'>+0x8644 = 0xEAEE</div><div class='add'>+0x8645 = 0xEAEF</div><div class='add'>+0x8646 = 0xEAF0</div><div class='add'>+0x8647 = 0xEAF1</div><div class='add'>+0x8648 = 0xEAF2</div><div class='add'>+0x8649 = 0xEAF3</div><div class='add'>+0x864A = 0xEAF4</div><div class='add'>+0x864B = 0xEAF5</div><div class='add'>+0x864C = 0xEAF6</div><div class='add'>+0x864D = 0xEAF7</div><div class='add'>+0x864E = 0xEAF8</div><div class='add'>+0x864F = 0xEAF9</div><div class='add'>+0x8650 = 0xEAFA</div><div class='add'>+0x8651 = 0xEB0E</div><div class='add'>+0x8652 = 0xEB0F</div><div class='add'>+0x8653 = 0xEB10</div><div class='add'>+0x8654 = 0xEB11</div><div class='add'>+0x8655 = 0xEB12</div><div class='add'>+0x8656 = 0xEB13</div><div class='add'>+0x8657 = 0xEB14</div><div class='add'>+0x8658 = 0xEB15</div><div class='add'>+0x8659 = 0xEB16</div><div class='add'>+0x865A = 0xEB17</div><div class='add'>+0x865B = 0xEB18</div><div class='add'>+0x865C = 0xEB19</div><div class='add'>+0x865D = 0xEB1A</div><div class='add'>+0x865E = 0xEB1B</div><div class='add'>+0x865F = 0xEB1C</div><div class='add'>+0x8660 = 0xEB1D</div><div class='add'>+0x8661 = 0xEB1E</div><div class='add'>+0x8662 = 0xEB1F</div><div class='add'>+0x8663 = 0xEB20</div><div class='add'>+0x8664 = 0xEB21</div><div class='add'>+0x8665 = 0xEB22</div><div class='add'>+0x8666 = 0xEB23</div><div class='add'>+0x8667 = 0xEB24</div><div class='add'>+0x8668 = 0xEB25</div><div class='add'>+0x8669 = 0xEB26</div><div class='add'>+0x866A = 0xEB27</div><div class='add'>+0x866B = 0xEB28</div><div class='add'>+0x866C = 0xEB29</div><div class='add'>+0x866D = 0xEB2A</div><div class='add'>+0x866E = 0xEB2B</div><div class='add'>+0x866F = 0xEB2C</div><div class='add'>+0x8670 = 0xEB2D</div><div class='add'>+0x8671 = 0xEB2E</div><div class='add'>+0x8672 = 0xEB2F</div><div class='add'>+0x8673 = 0xEB30</div><div class='add'>+0x8674 = 0xEB31</div><div class='add'>+0x8675 = 0xEB32</div><div class='add'>+0x8676 = 0xEB33</div><div class='add'>+0x8677 = 0xEB34</div><div class='add'>+0x8678 = 0xEB35</div><div class='add'>+0x8679 = 0xEB36</div><div class='add'>+0x867A = 0xEB37</div><div class='add'>+0x867B = 0xEB38</div><div class='add'>+0x867C = 0xEB39</div><div class='add'>+0x867D = 0xEB3A</div><div class='add'>+0x867E = 0xEB3B</div><div class='add'>+0x8721 = 0xEB3C</div><div class='add'>+0x8722 = 0xEB3D</div><div class='add'>+0x8723 = 0xEB3E</div><div class='add'>+0x8724 = 0xEB3F</div><div class='add'>+0x8725 = 0xEB40</div><div class='add'>+0x8726 = 0xEB41</div><div class='add'>+0x8727 = 0xEB42</div><div class='add'>+0x8728 = 0xEB43</div><div class='add'>+0x8729 = 0xEB44</div><div class='add'>+0x872A = 0xEB45</div><div class='add'>+0x872B = 0xEB46</div><div class='add'>+0x872C = 0xEB47</div><div class='add'>+0x872D = 0xEB48</div><div class='add'>+0x872E = 0xEB49</div><div class='add'>+0x872F = 0xEB4A</div><div class='add'>+0x8730 = 0xEB4B</div><div class='add'>+0x8731 = 0xEB4C</div><div class='add'>+0x8732 = 0xEB4D</div><div class='add'>+0x8733 = 0xEB4E</div><div class='add'>+0x8734 = 0xEB4F</div><div class='add'>+0x8735 = 0xEB50</div><div class='add'>+0x8736 = 0xEB51</div><div class='add'>+0x8737 = 0xEB52</div><div class='add'>+0x8738 = 0xEB53</div><div class='add'>+0x8739 = 0xEB54</div><div class='add'>+0x873A = 0xEB55</div><div class='add'>+0x873B = 0xEB56</div><div class='add'>+0x873C = 0xEB57</div><div class='add'>+0x873D = 0xEB58</div><div class='add'>+0x873E = 0xEB59</div><div class='add'>+0x873F = 0xEB5A</div><div class='add'>+0x8740 = 0xEB5B</div><div class='add'>+0x8741 = 0xEB5C</div><div class='add'>+0x8742 = 0xEB5D</div><div class='add'>+0x8743 = 0xEB5E</div><div class='add'>+0x8744 = 0xEB5F</div><div class='add'>+0x8745 = 0xEB60</div><div class='add'>+0x8746 = 0xEB61</div><div class='add'>+0x8747 = 0xEB62</div><div class='add'>+0x8748 = 0xEB63</div><div class='add'>+0x8749 = 0xEB64</div><div class='add'>+0x874A = 0xEB65</div><div class='add'>+0x874B = 0xEB66</div><div class='add'>+0x874C = 0xEB67</div><div class='add'>+0x874D = 0xEB68</div><div class='add'>+0x874E = 0xEB69</div><div class='add'>+0x874F = 0xEB6A</div><div class='add'>+0x8750 = 0xEB6B</div><div class='add'>+0x8751 = 0xEB6C</div><div class='add'>+0x8752 = 0xEB6D</div><div class='add'>+0x8753 = 0xEB6E</div><div class='add'>+0x8754 = 0xEB6F</div><div class='add'>+0x8755 = 0xEB70</div><div class='add'>+0x8756 = 0xEB71</div><div class='add'>+0x8757 = 0xEB72</div><div class='add'>+0x8758 = 0xEB73</div><div class='add'>+0x8759 = 0xEB74</div><div class='add'>+0x875A = 0xEB75</div><div class='add'>+0x875B = 0xEB76</div><div class='add'>+0x875C = 0xEB77</div><div class='add'>+0x875D = 0xEB78</div><div class='add'>+0x875E = 0xEB79</div><div class='add'>+0x875F = 0xEB7A</div><div class='add'>+0x8760 = 0xEB7B</div><div class='add'>+0x8761 = 0xEB7C</div><div class='add'>+0x8762 = 0xEB7D</div><div class='add'>+0x8763 = 0xEB7E</div><div class='add'>+0x8764 = 0xEB7F</div><div class='add'>+0x8765 = 0xEB80</div><div class='add'>+0x8766 = 0xEB81</div><div class='add'>+0x8767 = 0xEB82</div><div class='add'>+0x8768 = 0xEB83</div><div class='add'>+0x8769 = 0xEB84</div><div class='add'>+0x876A = 0xEB85</div><div class='add'>+0x876B = 0xEB86</div><div class='add'>+0x876C = 0xEB87</div><div class='add'>+0x876D = 0xEB88</div><div class='add'>+0x876E = 0xEB89</div><div class='add'>+0x876F = 0xEB8A</div><div class='add'>+0x8770 = 0xEB8B</div><div class='add'>+0x8771 = 0xEB8C</div><div class='add'>+0x8772 = 0xEB8D</div><div class='add'>+0x8773 = 0xEB8E</div><div class='add'>+0x8B21 = 0xE468</div><div class='add'>+0x8B22 = 0xE469</div><div class='add'>+0x8B23 = 0xE46A</div><div class='add'>+0x8B24 = 0xE46B</div><div class='add'>+0x8B25 = 0xE46C</div><div class='add'>+0x8B26 = 0xE46D</div><div class='add'>+0x8B27 = 0xE46E</div><div class='add'>+0x8B28 = 0xE46F</div><div class='add'>+0x8B29 = 0xE470</div><div class='add'>+0x8B2A = 0xE471</div><div class='add'>+0x8B2B = 0xE472</div><div class='add'>+0x8B2C = 0xE473</div><div class='add'>+0x8B2D = 0xE474</div><div class='add'>+0x8B2E = 0xE475</div><div class='add'>+0x8B2F = 0xE476</div><div class='add'>+0x8B30 = 0xE477</div><div class='add'>+0x8B31 = 0xE478</div><div class='add'>+0x8B32 = 0xE479</div><div class='add'>+0x8B33 = 0xE47A</div><div class='add'>+0x8B34 = 0xE47B</div><div class='add'>+0x8B35 = 0xE47C</div><div class='add'>+0x8B36 = 0xE47D</div><div class='add'>+0x8B37 = 0xE47E</div><div class='add'>+0x8B38 = 0xE47F</div><div class='add'>+0x8B39 = 0xE480</div><div class='add'>+0x8B3A = 0xE481</div><div class='add'>+0x8B3B = 0xE482</div><div class='add'>+0x8B3C = 0xE483</div><div class='add'>+0x8B3D = 0xE484</div><div class='add'>+0x8B3E = 0xE485</div><div class='add'>+0x8B3F = 0xE486</div><div class='add'>+0x8B40 = 0xE487</div><div class='add'>+0x8B41 = 0xE488</div><div class='add'>+0x8B42 = 0xE489</div><div class='add'>+0x8B43 = 0xE48A</div><div class='add'>+0x8B44 = 0xE48B</div><div class='add'>+0x8B45 = 0xE48C</div><div class='add'>+0x8B46 = 0xE48D</div><div class='add'>+0x8B47 = 0xE48E</div><div class='add'>+0x8B48 = 0xE48F</div><div class='add'>+0x8B49 = 0xE490</div><div class='add'>+0x8B4A = 0xE491</div><div class='add'>+0x8B4B = 0xE492</div><div class='add'>+0x8B4C = 0xE493</div><div class='add'>+0x8B4D = 0xE494</div><div class='add'>+0x8B4E = 0xE495</div><div class='add'>+0x8B4F = 0xE496</div><div class='add'>+0x8B50 = 0xE497</div><div class='add'>+0x8B51 = 0xE498</div><div class='add'>+0x8B52 = 0xE499</div><div class='add'>+0x8B53 = 0xE49A</div><div class='add'>+0x8B54 = 0xE49B</div><div class='add'>+0x8B55 = 0xE49C</div><div class='add'>+0x8B56 = 0xE49D</div><div class='add'>+0x8B57 = 0xE49E</div><div class='add'>+0x8B58 = 0xE49F</div><div class='add'>+0x8B59 = 0xE4A0</div><div class='add'>+0x8B5A = 0xE4A1</div><div class='add'>+0x8B5B = 0xE4A2</div><div class='add'>+0x8B5C = 0xE4A3</div><div class='add'>+0x8B5D = 0xE4A4</div><div class='add'>+0x8B5E = 0xE4A5</div><div class='add'>+0x8B5F = 0xE4A6</div><div class='add'>+0x8B60 = 0xE4A7</div><div class='add'>+0x8B61 = 0xE4A8</div><div class='add'>+0x8B62 = 0xE4A9</div><div class='add'>+0x8B63 = 0xE4AA</div><div class='add'>+0x8B64 = 0xE4AB</div><div class='add'>+0x8B65 = 0xE4AC</div><div class='add'>+0x8B66 = 0xE4AD</div><div class='add'>+0x8B67 = 0xE4AE</div><div class='add'>+0x8B68 = 0xE4AF</div><div class='add'>+0x8B69 = 0xE4B0</div><div class='add'>+0x8B6A = 0xE4B1</div><div class='add'>+0x8B6B = 0xE4B2</div><div class='add'>+0x8B6C = 0xE4B3</div><div class='add'>+0x8B6D = 0xE4B4</div><div class='add'>+0x8B6E = 0xE4B5</div><div class='add'>+0x8B6F = 0xE4B6</div><div class='add'>+0x8B70 = 0xE4B7</div><div class='add'>+0x8B71 = 0xE4B8</div><div class='add'>+0x8B72 = 0xE4B9</div><div class='add'>+0x8B73 = 0xE4BA</div><div class='add'>+0x8B74 = 0xE4BB</div><div class='add'>+0x8B75 = 0xE4BC</div><div class='add'>+0x8B76 = 0xE4BD</div><div class='add'>+0x8B77 = 0xE4BE</div><div class='add'>+0x8B78 = 0xE4BF</div><div class='add'>+0x8B79 = 0xE4C0</div><div class='add'>+0x8B7A = 0xE4C1</div><div class='add'>+0x8B7B = 0xE4C2</div><div class='add'>+0x8B7C = 0xE4C3</div><div class='add'>+0x8B7D = 0xE4C4</div><div class='add'>+0x8B7E = 0xE4C5</div><div class='add'>+0x8C21 = 0xE4C6</div><div class='add'>+0x8C22 = 0xE4C7</div><div class='add'>+0x8C23 = 0xE4C8</div><div class='add'>+0x8C24 = 0xE4C9</div><div class='add'>+0x8C25 = 0xE4CA</div><div class='add'>+0x8C26 = 0xE4CB</div><div class='add'>+0x8C27 = 0xE4CC</div><div class='add'>+0x8C28 = 0xE4CD</div><div class='add'>+0x8C29 = 0xE4CE</div><div class='add'>+0x8C2A = 0xE4CF</div><div class='add'>+0x8C2B = 0xE4D0</div><div class='add'>+0x8C2C = 0xE4D1</div><div class='add'>+0x8C2D = 0xE4D2</div><div class='add'>+0x8C2E = 0xE4D3</div><div class='add'>+0x8C2F = 0xE4D4</div><div class='add'>+0x8C30 = 0xE4D5</div><div class='add'>+0x8C31 = 0xE4D6</div><div class='add'>+0x8C32 = 0xE4D7</div><div class='add'>+0x8C33 = 0xE4D8</div><div class='add'>+0x8C34 = 0xE4D9</div><div class='add'>+0x8C35 = 0xE4DA</div><div class='add'>+0x8C36 = 0xE4DB</div><div class='add'>+0x8C37 = 0xE4DC</div><div class='add'>+0x8C38 = 0xE4DD</div><div class='add'>+0x8C39 = 0xE4DE</div><div class='add'>+0x8C3A = 0xE4DF</div><div class='add'>+0x8C3B = 0xE4E0</div><div class='add'>+0x8C3C = 0xE4E1</div><div class='add'>+0x8C3D = 0xE4E2</div><div class='add'>+0x8C3E = 0xE4E3</div><div class='add'>+0x8C3F = 0xE4E4</div><div class='add'>+0x8C40 = 0xE4E5</div><div class='add'>+0x8C41 = 0xE4E6</div><div class='add'>+0x8C42 = 0xE4E7</div><div class='add'>+0x8C43 = 0xE4E8</div><div class='add'>+0x8C44 = 0xE4E9</div><div class='add'>+0x8C45 = 0xE4EA</div><div class='add'>+0x8C46 = 0xE4EB</div><div class='add'>+0x8C47 = 0xE4EC</div><div class='add'>+0x8C48 = 0xE4ED</div><div class='add'>+0x8C49 = 0xE4EE</div><div class='add'>+0x8C4A = 0xE4EF</div><div class='add'>+0x8C4B = 0xE4F0</div><div class='add'>+0x8C4C = 0xE4F1</div><div class='add'>+0x8C4D = 0xE4F2</div><div class='add'>+0x8C4E = 0xE4F3</div><div class='add'>+0x8C4F = 0xE4F4</div><div class='add'>+0x8C50 = 0xE4F5</div><div class='add'>+0x8C51 = 0xE4F6</div><div class='add'>+0x8C52 = 0xE4F7</div><div class='add'>+0x8C53 = 0xE4F8</div><div class='add'>+0x8C54 = 0xE4F9</div><div class='add'>+0x8C55 = 0xE4FA</div><div class='add'>+0x8C56 = 0xE4FB</div><div class='add'>+0x8C57 = 0xE4FC</div><div class='add'>+0x8C58 = 0xE4FD</div><div class='add'>+0x8C59 = 0xE4FE</div><div class='add'>+0x8C5A = 0xE4FF</div><div class='add'>+0x8C5B = 0xE500</div><div class='add'>+0x8C5C = 0xE501</div><div class='add'>+0x8C5D = 0xE502</div><div class='add'>+0x8C5E = 0xE503</div><div class='add'>+0x8C5F = 0xE504</div><div class='add'>+0x8C60 = 0xE505</div><div class='add'>+0x8C61 = 0xE506</div><div class='add'>+0x8C62 = 0xE507</div><div class='add'>+0x8C63 = 0xE508</div><div class='add'>+0x8C64 = 0xE509</div><div class='add'>+0x8C65 = 0xE50A</div><div class='add'>+0x8C66 = 0xE50B</div><div class='add'>+0x8C67 = 0xE50C</div><div class='add'>+0x8C68 = 0xE50D</div><div class='add'>+0x8C69 = 0xE50E</div><div class='add'>+0x8C6A = 0xE50F</div><div class='add'>+0x8C6B = 0xE510</div><div class='add'>+0x8C6C = 0xE511</div><div class='add'>+0x8C6D = 0xE512</div><div class='add'>+0x8C6E = 0xE513</div><div class='add'>+0x8C6F = 0xE514</div><div class='add'>+0x8C70 = 0xE515</div><div class='add'>+0x8C71 = 0xE516</div><div class='add'>+0x8C72 = 0xE517</div><div class='add'>+0x8C73 = 0xE518</div><div class='add'>+0x8C74 = 0xE519</div><div class='add'>+0x8C75 = 0xE51A</div><div class='add'>+0x8C76 = 0xE51B</div><div class='add'>+0x8C77 = 0xE51C</div><div class='add'>+0x8C78 = 0xE51D</div><div class='add'>+0x8C79 = 0xE51E</div><div class='add'>+0x8C7A = 0xE51F</div><div class='add'>+0x8C7B = 0xE520</div><div class='add'>+0x8C7C = 0xE521</div><div class='add'>+0x8C7D = 0xE522</div><div class='add'>+0x8C7E = 0xE523</div><div class='add'>+0x8D21 = 0xE524</div><div class='add'>+0x8D22 = 0xE525</div><div class='add'>+0x8D23 = 0xE526</div><div class='add'>+0x8D24 = 0xE527</div><div class='add'>+0x8D25 = 0xE528</div><div class='add'>+0x8D26 = 0xE529</div><div class='add'>+0x8D27 = 0xE52A</div><div class='add'>+0x8D28 = 0xE52B</div><div class='add'>+0x8D29 = 0xE52C</div><div class='add'>+0x8D2A = 0xE52D</div><div class='add'>+0x8D2B = 0xE52E</div><div class='add'>+0x8D2C = 0xE52F</div><div class='add'>+0x8D2D = 0xE530</div><div class='add'>+0x8D2E = 0xE531</div><div class='add'>+0x8D2F = 0xE532</div><div class='add'>+0x8D30 = 0xE533</div><div class='add'>+0x8D31 = 0xE534</div><div class='add'>+0x8D32 = 0xE535</div><div class='add'>+0x8D33 = 0xE536</div><div class='add'>+0x8D34 = 0xE537</div><div class='add'>+0x8D35 = 0xE538</div><div class='add'>+0x8D36 = 0xE539</div><div class='add'>+0x8D37 = 0xE53A</div><div class='add'>+0x8D38 = 0xE53B</div><div class='add'>+0x8D39 = 0xE53C</div><div class='add'>+0x8D3A = 0xE53D</div><div class='add'>+0x8D3B = 0xE53E</div><div class='add'>+0x8D3C = 0xE53F</div><div class='add'>+0x8D3D = 0xE540</div><div class='add'>+0x8D3E = 0xE541</div><div class='add'>+0x8D3F = 0xE542</div><div class='add'>+0x8D40 = 0xE543</div><div class='add'>+0x8D41 = 0xE544</div><div class='add'>+0x8D42 = 0xE545</div><div class='add'>+0x8D43 = 0xE546</div><div class='add'>+0x8D44 = 0xE547</div><div class='add'>+0x8D45 = 0xE548</div><div class='add'>+0x8D46 = 0xE549</div><div class='add'>+0x8D47 = 0xE54A</div><div class='add'>+0x8D48 = 0xE54B</div><div class='add'>+0x8D49 = 0xE54C</div><div class='add'>+0x8D4A = 0xE54D</div><div class='add'>+0x8D4B = 0xE54E</div><div class='add'>+0x8D4C = 0xE54F</div><div class='add'>+0x8D4D = 0xE550</div><div class='add'>+0x8D4E = 0xE551</div><div class='add'>+0x8D4F = 0xE552</div><div class='add'>+0x8D50 = 0xE553</div><div class='add'>+0x8D51 = 0xE554</div><div class='add'>+0x8D52 = 0xE555</div><div class='add'>+0x8D53 = 0xE556</div><div class='add'>+0x8D54 = 0xE557</div><div class='add'>+0x8D55 = 0xE558</div><div class='add'>+0x8D56 = 0xE559</div><div class='add'>+0x8D57 = 0xE55A</div><div class='add'>+0x8D58 = 0xE55B</div><div class='add'>+0x8D59 = 0xE55C</div><div class='add'>+0x8D5A = 0xE55D</div><div class='add'>+0x8D5B = 0xE55E</div><div class='add'>+0x8D5C = 0xE55F</div><div class='add'>+0x8D5D = 0xE560</div><div class='add'>+0x8D5E = 0xE561</div><div class='add'>+0x8D5F = 0xE562</div><div class='add'>+0x8D60 = 0xE563</div><div class='add'>+0x8D61 = 0xE564</div><div class='add'>+0x8D62 = 0xE565</div><div class='add'>+0x8D63 = 0xE566</div><div class='add'>+0x8D64 = 0xE567</div><div class='add'>+0x8D65 = 0xE568</div><div class='add'>+0x8D66 = 0xE569</div><div class='add'>+0x8D67 = 0xE56A</div><div class='add'>+0x8D68 = 0xE56B</div><div class='add'>+0x8D69 = 0xE56C</div><div class='add'>+0x8D6A = 0xE56D</div><div class='add'>+0x8D6B = 0xE56E</div><div class='add'>+0x8D6C = 0xE56F</div><div class='add'>+0x8D6D = 0xE570</div><div class='add'>+0x8D6E = 0xE571</div><div class='add'>+0x8D6F = 0xE572</div><div class='add'>+0x8D70 = 0xE573</div><div class='add'>+0x8D71 = 0xE574</div><div class='add'>+0x8D72 = 0xE575</div><div class='add'>+0x8D73 = 0xE576</div><div class='add'>+0x8D74 = 0xE577</div><div class='add'>+0x8D75 = 0xE578</div><div class='add'>+0x8D76 = 0xE579</div><div class='add'>+0x8D77 = 0xE57A</div><div class='add'>+0x8D78 = 0xE57B</div><div class='add'>+0x8D79 = 0xE57C</div><div class='add'>+0x8D7A = 0xE57D</div><div class='add'>+0x8D7B = 0xE57E</div><div class='add'>+0x8D7C = 0xE57F</div><div class='add'>+0x8D7D = 0xE580</div><div class='add'>+0x8D7E = 0xE581</div><div class='add'>+0x8E21 = 0xE582</div><div class='add'>+0x8E22 = 0xE583</div><div class='add'>+0x8E23 = 0xE584</div><div class='add'>+0x8E24 = 0xE585</div><div class='add'>+0x8E25 = 0xE586</div><div class='add'>+0x8E26 = 0xE587</div><div class='add'>+0x8E27 = 0xE588</div><div class='add'>+0x8E28 = 0xE589</div><div class='add'>+0x8E29 = 0xE58A</div><div class='add'>+0x8E2A = 0xE58B</div><div class='add'>+0x8E2B = 0xE58C</div><div class='add'>+0x8E2C = 0xE58D</div><div class='add'>+0x8E2D = 0xE58E</div><div class='add'>+0x8E2E = 0xE58F</div><div class='add'>+0x8E2F = 0xE590</div><div class='add'>+0x8E30 = 0xE591</div><div class='add'>+0x8E31 = 0xE592</div><div class='add'>+0x8E32 = 0xE593</div><div class='add'>+0x8E33 = 0xE594</div><div class='add'>+0x8E34 = 0xE595</div><div class='add'>+0x8E35 = 0xE596</div><div class='add'>+0x8E36 = 0xE597</div><div class='add'>+0x8E37 = 0xE598</div><div class='add'>+0x8E38 = 0xE599</div><div class='add'>+0x8E39 = 0xE59A</div><div class='add'>+0x8E3A = 0xE59B</div><div class='add'>+0x8E3B = 0xE59C</div><div class='add'>+0x8E3C = 0xE59D</div><div class='add'>+0x8E3D = 0xE59E</div><div class='add'>+0x8E3E = 0xE59F</div><div class='add'>+0x8E3F = 0xE5A0</div><div class='add'>+0x8E40 = 0xE5A1</div><div class='add'>+0x8E41 = 0xE5A2</div><div class='add'>+0x8E42 = 0xE5A3</div><div class='add'>+0x8E43 = 0xE5A4</div><div class='add'>+0x8E44 = 0xE5A5</div><div class='add'>+0x8E45 = 0xE5A6</div><div class='add'>+0x8E46 = 0xE5A7</div><div class='add'>+0x8E47 = 0xE5A8</div><div class='add'>+0x8E48 = 0xE5A9</div><div class='add'>+0x8E49 = 0xE5AA</div><div class='add'>+0x8E4A = 0xE5AB</div><div class='add'>+0x8E4B = 0xE5AC</div><div class='add'>+0x8E4C = 0xE5AD</div><div class='add'>+0x8E4D = 0xE5AE</div><div class='add'>+0x8E4E = 0xE5AF</div><div class='add'>+0x8E4F = 0xE5B0</div><div class='add'>+0x8E50 = 0xE5B1</div><div class='add'>+0x8E51 = 0xE5B2</div><div class='add'>+0x8E52 = 0xE5B3</div><div class='add'>+0x8E53 = 0xE5B4</div><div class='add'>+0x8E54 = 0xEAFB</div><div class='add'>+0x8E55 = 0xEAFC</div><div class='add'>+0x8E56 = 0xEAFD</div><div class='add'>+0x8E57 = 0xEAFE</div><div class='add'>+0x8E58 = 0xEAFF</div><div class='add'>+0x8E59 = 0xEB00</div><div class='add'>+0x8E5A = 0xEB01</div><div class='add'>+0x8E5B = 0xEB02</div><div class='add'>+0x8E5C = 0xEB03</div><div class='add'>+0x8E5D = 0xEB04</div><div class='add'>+0x8E5E = 0xEB05</div><div class='add'>+0x8E5F = 0xEB06</div><div class='add'>+0x8E60 = 0xEB07</div><div class='add'>+0x8E61 = 0xEB08</div><div class='add'>+0x8E62 = 0xEB09</div><div class='add'>+0x8E63 = 0xEB0A</div><div class='add'>+0x8E64 = 0xEB0B</div><div class='add'>+0x8E65 = 0xEB0C</div><div class='add'>+0x8E66 = 0xEB0D</div><div class='add'>+0x8E67 = 0xE5B5</div><div class='add'>+0x8E68 = 0xE5B6</div><div class='add'>+0x8E69 = 0xE5B7</div><div class='add'>+0x8E6A = 0xE5B8</div><div class='add'>+0x8E6B = 0xE5B9</div><div class='add'>+0x8E6C = 0xE5BA</div><div class='add'>+0x8E6D = 0xE5BB</div><div class='add'>+0x8E6E = 0xE5BC</div><div class='add'>+0x8E6F = 0xE5BD</div><div class='add'>+0x8E70 = 0xE5BE</div><div class='add'>+0x8E71 = 0xE5BF</div><div class='add'>+0x8E72 = 0xE5C0</div><div class='add'>+0x8E73 = 0xE5C1</div><div class='add'>+0x8E74 = 0xE5C2</div><div class='add'>+0x8E75 = 0xE5C3</div><div class='add'>+0x8E76 = 0xE5C4</div><div class='add'>+0x8E77 = 0xE5C5</div><div class='add'>+0x8E78 = 0xE5C6</div><div class='add'>+0x8E79 = 0xE5C7</div><div class='add'>+0x8E7A = 0xE5C8</div><div class='add'>+0x8E7B = 0xE5C9</div><div class='add'>+0x8E7C = 0xE5CA</div><div class='add'>+0x8E7D = 0xE5CB</div><div class='add'>+0x8E7E = 0xE5CC</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%UCS.src b/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%UCS.src<br/>new file mode 100644<br/>index 0000000000..85e5650b58<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-KDDI-UNDOC%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		EMOJI_SHIFT_JIS-KDDI-UNDOC/UCS</div><div class='add'>+SRC_ZONE	0xF3-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0x8521 = 0xEC40</div><div class='add'>+0x8522 = 0xEC41</div><div class='add'>+0x8523 = 0xEC42</div><div class='add'>+0x8524 = 0xEC43</div><div class='add'>+0x8525 = 0xEC44</div><div class='add'>+0x8526 = 0xEC45</div><div class='add'>+0x8527 = 0xEC46</div><div class='add'>+0x8528 = 0xEC47</div><div class='add'>+0x8529 = 0xEC48</div><div class='add'>+0x852A = 0xEC49</div><div class='add'>+0x852B = 0xEC4A</div><div class='add'>+0x852C = 0xEC4B</div><div class='add'>+0x852D = 0xEC4C</div><div class='add'>+0x852E = 0xEC4D</div><div class='add'>+0x852F = 0xEC4E</div><div class='add'>+0x8530 = 0xEC4F</div><div class='add'>+0x8531 = 0xEC50</div><div class='add'>+0x8532 = 0xEC51</div><div class='add'>+0x8533 = 0xEC52</div><div class='add'>+0x8534 = 0xEC53</div><div class='add'>+0x8535 = 0xEC54</div><div class='add'>+0x8536 = 0xEC55</div><div class='add'>+0x8537 = 0xEC56</div><div class='add'>+0x8538 = 0xEC57</div><div class='add'>+0x8539 = 0xEC58</div><div class='add'>+0x853A = 0xEC59</div><div class='add'>+0x853B = 0xEC5A</div><div class='add'>+0x853C = 0xEC5B</div><div class='add'>+0x853D = 0xEC5C</div><div class='add'>+0x853E = 0xEC5D</div><div class='add'>+0x853F = 0xEC5E</div><div class='add'>+0x8540 = 0xEC5F</div><div class='add'>+0x8541 = 0xEC60</div><div class='add'>+0x8542 = 0xEC61</div><div class='add'>+0x8543 = 0xEC62</div><div class='add'>+0x8544 = 0xEC63</div><div class='add'>+0x8545 = 0xEC64</div><div class='add'>+0x8546 = 0xEC65</div><div class='add'>+0x8547 = 0xEC66</div><div class='add'>+0x8548 = 0xEC67</div><div class='add'>+0x8549 = 0xEC68</div><div class='add'>+0x854A = 0xEC69</div><div class='add'>+0x854B = 0xEC6A</div><div class='add'>+0x854C = 0xEC6B</div><div class='add'>+0x854D = 0xEC6C</div><div class='add'>+0x854E = 0xEC6D</div><div class='add'>+0x854F = 0xEC6E</div><div class='add'>+0x8550 = 0xEC6F</div><div class='add'>+0x8551 = 0xEC70</div><div class='add'>+0x8552 = 0xEC71</div><div class='add'>+0x8553 = 0xEC72</div><div class='add'>+0x8554 = 0xEC73</div><div class='add'>+0x8555 = 0xEC74</div><div class='add'>+0x8556 = 0xEC75</div><div class='add'>+0x8557 = 0xEC76</div><div class='add'>+0x8558 = 0xEC77</div><div class='add'>+0x8559 = 0xEC78</div><div class='add'>+0x855A = 0xEC79</div><div class='add'>+0x855B = 0xEC7A</div><div class='add'>+0x855C = 0xEC7B</div><div class='add'>+0x855D = 0xEC7C</div><div class='add'>+0x855E = 0xEC7D</div><div class='add'>+0x855F = 0xEC7E</div><div class='add'>+0x8560 = 0xEC80</div><div class='add'>+0x8561 = 0xEC81</div><div class='add'>+0x8562 = 0xEC82</div><div class='add'>+0x8563 = 0xEC83</div><div class='add'>+0x8564 = 0xEC84</div><div class='add'>+0x8565 = 0xEC85</div><div class='add'>+0x8566 = 0xEC86</div><div class='add'>+0x8567 = 0xEC87</div><div class='add'>+0x8568 = 0xEC88</div><div class='add'>+0x8569 = 0xEC89</div><div class='add'>+0x856A = 0xEC8A</div><div class='add'>+0x856B = 0xEC8B</div><div class='add'>+0x856C = 0xEC8C</div><div class='add'>+0x856D = 0xEC8D</div><div class='add'>+0x856E = 0xEC8E</div><div class='add'>+0x856F = 0xEC8F</div><div class='add'>+0x8570 = 0xEC90</div><div class='add'>+0x8571 = 0xEC91</div><div class='add'>+0x8572 = 0xEC92</div><div class='add'>+0x8573 = 0xEC93</div><div class='add'>+0x8574 = 0xEC94</div><div class='add'>+0x8575 = 0xEC95</div><div class='add'>+0x8576 = 0xEC96</div><div class='add'>+0x8577 = 0xEC97</div><div class='add'>+0x8578 = 0xEC98</div><div class='add'>+0x8579 = 0xEC99</div><div class='add'>+0x857A = 0xEC9A</div><div class='add'>+0x857B = 0xEC9B</div><div class='add'>+0x857C = 0xEC9C</div><div class='add'>+0x857D = 0xEC9D</div><div class='add'>+0x857E = 0xEC9E</div><div class='add'>+0x8621 = 0xEC9F</div><div class='add'>+0x8622 = 0xECA0</div><div class='add'>+0x8623 = 0xECA1</div><div class='add'>+0x8624 = 0xECA2</div><div class='add'>+0x8625 = 0xECA3</div><div class='add'>+0x8626 = 0xECA4</div><div class='add'>+0x8627 = 0xECA5</div><div class='add'>+0x8628 = 0xECA6</div><div class='add'>+0x8629 = 0xECA7</div><div class='add'>+0x862A = 0xECA8</div><div class='add'>+0x862B = 0xECA9</div><div class='add'>+0x862C = 0xECAA</div><div class='add'>+0x862D = 0xECAB</div><div class='add'>+0x862E = 0xECAC</div><div class='add'>+0x862F = 0xECAD</div><div class='add'>+0x8630 = 0xECAE</div><div class='add'>+0x8631 = 0xECAF</div><div class='add'>+0x8632 = 0xECB0</div><div class='add'>+0x8633 = 0xECB1</div><div class='add'>+0x8634 = 0xECB2</div><div class='add'>+0x8635 = 0xECB3</div><div class='add'>+0x8636 = 0xECB4</div><div class='add'>+0x8637 = 0xECB5</div><div class='add'>+0x8638 = 0xECB6</div><div class='add'>+0x8639 = 0xECB7</div><div class='add'>+0x863A = 0xECB8</div><div class='add'>+0x863B = 0xECB9</div><div class='add'>+0x863C = 0xECBA</div><div class='add'>+0x863D = 0xECBB</div><div class='add'>+0x863E = 0xECBC</div><div class='add'>+0x863F = 0xECBD</div><div class='add'>+0x8640 = 0xECBE</div><div class='add'>+0x8641 = 0xECBF</div><div class='add'>+0x8642 = 0xECC0</div><div class='add'>+0x8643 = 0xECC1</div><div class='add'>+0x8644 = 0xECC2</div><div class='add'>+0x8645 = 0xECC3</div><div class='add'>+0x8646 = 0xECC4</div><div class='add'>+0x8647 = 0xECC5</div><div class='add'>+0x8648 = 0xECC6</div><div class='add'>+0x8649 = 0xECC7</div><div class='add'>+0x864A = 0xECC8</div><div class='add'>+0x864B = 0xECC9</div><div class='add'>+0x864C = 0xECCA</div><div class='add'>+0x864D = 0xECCB</div><div class='add'>+0x864E = 0xECCC</div><div class='add'>+0x864F = 0xECCD</div><div class='add'>+0x8650 = 0xECCE</div><div class='add'>+0x8651 = 0xECCF</div><div class='add'>+0x8652 = 0xECD0</div><div class='add'>+0x8653 = 0xECD1</div><div class='add'>+0x8654 = 0xECD2</div><div class='add'>+0x8655 = 0xECD3</div><div class='add'>+0x8656 = 0xECD4</div><div class='add'>+0x8657 = 0xECD5</div><div class='add'>+0x8658 = 0xECD6</div><div class='add'>+0x8659 = 0xECD7</div><div class='add'>+0x865A = 0xECD8</div><div class='add'>+0x865B = 0xECD9</div><div class='add'>+0x865C = 0xECDA</div><div class='add'>+0x865D = 0xECDB</div><div class='add'>+0x865E = 0xECDC</div><div class='add'>+0x865F = 0xECDD</div><div class='add'>+0x8660 = 0xECDE</div><div class='add'>+0x8661 = 0xECDF</div><div class='add'>+0x8662 = 0xECE0</div><div class='add'>+0x8663 = 0xECE1</div><div class='add'>+0x8664 = 0xECE2</div><div class='add'>+0x8665 = 0xECE3</div><div class='add'>+0x8666 = 0xECE4</div><div class='add'>+0x8667 = 0xECE5</div><div class='add'>+0x8668 = 0xECE6</div><div class='add'>+0x8669 = 0xECE7</div><div class='add'>+0x866A = 0xECE8</div><div class='add'>+0x866B = 0xECE9</div><div class='add'>+0x866C = 0xECEA</div><div class='add'>+0x866D = 0xECEB</div><div class='add'>+0x866E = 0xECEC</div><div class='add'>+0x866F = 0xECED</div><div class='add'>+0x8670 = 0xECEE</div><div class='add'>+0x8671 = 0xECEF</div><div class='add'>+0x8672 = 0xECF0</div><div class='add'>+0x8673 = 0xECF1</div><div class='add'>+0x8674 = 0xECF2</div><div class='add'>+0x8675 = 0xECF3</div><div class='add'>+0x8676 = 0xECF4</div><div class='add'>+0x8677 = 0xECF5</div><div class='add'>+0x8678 = 0xECF6</div><div class='add'>+0x8679 = 0xECF7</div><div class='add'>+0x867A = 0xECF8</div><div class='add'>+0x867B = 0xECF9</div><div class='add'>+0x867C = 0xECFA</div><div class='add'>+0x867D = 0xECFB</div><div class='add'>+0x867E = 0xECFC</div><div class='add'>+0x8721 = 0xED40</div><div class='add'>+0x8722 = 0xED41</div><div class='add'>+0x8723 = 0xED42</div><div class='add'>+0x8724 = 0xED43</div><div class='add'>+0x8725 = 0xED44</div><div class='add'>+0x8726 = 0xED45</div><div class='add'>+0x8727 = 0xED46</div><div class='add'>+0x8728 = 0xED47</div><div class='add'>+0x8729 = 0xED48</div><div class='add'>+0x872A = 0xED49</div><div class='add'>+0x872B = 0xED4A</div><div class='add'>+0x872C = 0xED4B</div><div class='add'>+0x872D = 0xED4C</div><div class='add'>+0x872E = 0xED4D</div><div class='add'>+0x872F = 0xED4E</div><div class='add'>+0x8730 = 0xED4F</div><div class='add'>+0x8731 = 0xED50</div><div class='add'>+0x8732 = 0xED51</div><div class='add'>+0x8733 = 0xED52</div><div class='add'>+0x8734 = 0xED53</div><div class='add'>+0x8735 = 0xED54</div><div class='add'>+0x8736 = 0xED55</div><div class='add'>+0x8737 = 0xED56</div><div class='add'>+0x8738 = 0xED57</div><div class='add'>+0x8739 = 0xED58</div><div class='add'>+0x873A = 0xED59</div><div class='add'>+0x873B = 0xED5A</div><div class='add'>+0x873C = 0xED5B</div><div class='add'>+0x873D = 0xED5C</div><div class='add'>+0x873E = 0xED5D</div><div class='add'>+0x873F = 0xED5E</div><div class='add'>+0x8740 = 0xED5F</div><div class='add'>+0x8741 = 0xED60</div><div class='add'>+0x8742 = 0xED61</div><div class='add'>+0x8743 = 0xED62</div><div class='add'>+0x8744 = 0xED63</div><div class='add'>+0x8745 = 0xED64</div><div class='add'>+0x8746 = 0xED65</div><div class='add'>+0x8747 = 0xED66</div><div class='add'>+0x8748 = 0xED67</div><div class='add'>+0x8749 = 0xED68</div><div class='add'>+0x874A = 0xED69</div><div class='add'>+0x874B = 0xED6A</div><div class='add'>+0x874C = 0xED6B</div><div class='add'>+0x874D = 0xED6C</div><div class='add'>+0x874E = 0xED6D</div><div class='add'>+0x874F = 0xED6E</div><div class='add'>+0x8750 = 0xED6F</div><div class='add'>+0x8751 = 0xED70</div><div class='add'>+0x8752 = 0xED71</div><div class='add'>+0x8753 = 0xED72</div><div class='add'>+0x8754 = 0xED73</div><div class='add'>+0x8755 = 0xED74</div><div class='add'>+0x8756 = 0xED75</div><div class='add'>+0x8757 = 0xED76</div><div class='add'>+0x8758 = 0xED77</div><div class='add'>+0x8759 = 0xED78</div><div class='add'>+0x875A = 0xED79</div><div class='add'>+0x875B = 0xED7A</div><div class='add'>+0x875C = 0xED7B</div><div class='add'>+0x875D = 0xED7C</div><div class='add'>+0x875E = 0xED7D</div><div class='add'>+0x875F = 0xED7E</div><div class='add'>+0x8760 = 0xED80</div><div class='add'>+0x8761 = 0xED81</div><div class='add'>+0x8762 = 0xED82</div><div class='add'>+0x8763 = 0xED83</div><div class='add'>+0x8764 = 0xED84</div><div class='add'>+0x8765 = 0xED85</div><div class='add'>+0x8766 = 0xED86</div><div class='add'>+0x8767 = 0xED87</div><div class='add'>+0x8768 = 0xED88</div><div class='add'>+0x8769 = 0xED89</div><div class='add'>+0x876A = 0xED8A</div><div class='add'>+0x876B = 0xED8B</div><div class='add'>+0x876C = 0xED8C</div><div class='add'>+0x876D = 0xED8D</div><div class='add'>+0x876E = 0xED8E</div><div class='add'>+0x876F = 0xED8F</div><div class='add'>+0x8770 = 0xED90</div><div class='add'>+0x8771 = 0xED91</div><div class='add'>+0x8772 = 0xED92</div><div class='add'>+0x8773 = 0xED93</div><div class='add'>+0x8B21 = 0xEF40</div><div class='add'>+0x8B22 = 0xEF41</div><div class='add'>+0x8B23 = 0xEF42</div><div class='add'>+0x8B24 = 0xEF43</div><div class='add'>+0x8B25 = 0xEF44</div><div class='add'>+0x8B26 = 0xEF45</div><div class='add'>+0x8B27 = 0xEF46</div><div class='add'>+0x8B28 = 0xEF47</div><div class='add'>+0x8B29 = 0xEF48</div><div class='add'>+0x8B2A = 0xEF49</div><div class='add'>+0x8B2B = 0xEF4A</div><div class='add'>+0x8B2C = 0xEF4B</div><div class='add'>+0x8B2D = 0xEF4C</div><div class='add'>+0x8B2E = 0xEF4D</div><div class='add'>+0x8B2F = 0xEF4E</div><div class='add'>+0x8B30 = 0xEF4F</div><div class='add'>+0x8B31 = 0xEF50</div><div class='add'>+0x8B32 = 0xEF51</div><div class='add'>+0x8B33 = 0xEF52</div><div class='add'>+0x8B34 = 0xEF53</div><div class='add'>+0x8B35 = 0xEF54</div><div class='add'>+0x8B36 = 0xEF55</div><div class='add'>+0x8B37 = 0xEF56</div><div class='add'>+0x8B38 = 0xEF57</div><div class='add'>+0x8B39 = 0xEF58</div><div class='add'>+0x8B3A = 0xEF59</div><div class='add'>+0x8B3B = 0xEF5A</div><div class='add'>+0x8B3C = 0xEF5B</div><div class='add'>+0x8B3D = 0xEF5C</div><div class='add'>+0x8B3E = 0xEF5D</div><div class='add'>+0x8B3F = 0xEF5E</div><div class='add'>+0x8B40 = 0xEF5F</div><div class='add'>+0x8B41 = 0xEF60</div><div class='add'>+0x8B42 = 0xEF61</div><div class='add'>+0x8B43 = 0xEF62</div><div class='add'>+0x8B44 = 0xEF63</div><div class='add'>+0x8B45 = 0xEF64</div><div class='add'>+0x8B46 = 0xEF65</div><div class='add'>+0x8B47 = 0xEF66</div><div class='add'>+0x8B48 = 0xEF67</div><div class='add'>+0x8B49 = 0xEF68</div><div class='add'>+0x8B4A = 0xEF69</div><div class='add'>+0x8B4B = 0xEF6A</div><div class='add'>+0x8B4C = 0xEF6B</div><div class='add'>+0x8B4D = 0xEF6C</div><div class='add'>+0x8B4E = 0xEF6D</div><div class='add'>+0x8B4F = 0xEF6E</div><div class='add'>+0x8B50 = 0xEF6F</div><div class='add'>+0x8B51 = 0xEF70</div><div class='add'>+0x8B52 = 0xEF71</div><div class='add'>+0x8B53 = 0xEF72</div><div class='add'>+0x8B54 = 0xEF73</div><div class='add'>+0x8B55 = 0xEF74</div><div class='add'>+0x8B56 = 0xEF75</div><div class='add'>+0x8B57 = 0xEF76</div><div class='add'>+0x8B58 = 0xEF77</div><div class='add'>+0x8B59 = 0xEF78</div><div class='add'>+0x8B5A = 0xEF79</div><div class='add'>+0x8B5B = 0xEF7A</div><div class='add'>+0x8B5C = 0xEF7B</div><div class='add'>+0x8B5D = 0xEF7C</div><div class='add'>+0x8B5E = 0xEF7D</div><div class='add'>+0x8B5F = 0xEF7E</div><div class='add'>+0x8B60 = 0xEF80</div><div class='add'>+0x8B61 = 0xEF81</div><div class='add'>+0x8B62 = 0xEF82</div><div class='add'>+0x8B63 = 0xEF83</div><div class='add'>+0x8B64 = 0xEF84</div><div class='add'>+0x8B65 = 0xEF85</div><div class='add'>+0x8B66 = 0xEF86</div><div class='add'>+0x8B67 = 0xEF87</div><div class='add'>+0x8B68 = 0xEF88</div><div class='add'>+0x8B69 = 0xEF89</div><div class='add'>+0x8B6A = 0xEF8A</div><div class='add'>+0x8B6B = 0xEF8B</div><div class='add'>+0x8B6C = 0xEF8C</div><div class='add'>+0x8B6D = 0xEF8D</div><div class='add'>+0x8B6E = 0xEF8E</div><div class='add'>+0x8B6F = 0xEF8F</div><div class='add'>+0x8B70 = 0xEF90</div><div class='add'>+0x8B71 = 0xEF91</div><div class='add'>+0x8B72 = 0xEF92</div><div class='add'>+0x8B73 = 0xEF93</div><div class='add'>+0x8B74 = 0xEF94</div><div class='add'>+0x8B75 = 0xEF95</div><div class='add'>+0x8B76 = 0xEF96</div><div class='add'>+0x8B77 = 0xEF97</div><div class='add'>+0x8B78 = 0xEF98</div><div class='add'>+0x8B79 = 0xEF99</div><div class='add'>+0x8B7A = 0xEF9A</div><div class='add'>+0x8B7B = 0xEF9B</div><div class='add'>+0x8B7C = 0xEF9C</div><div class='add'>+0x8B7D = 0xEF9D</div><div class='add'>+0x8B7E = 0xEF9E</div><div class='add'>+0x8C21 = 0xEF9F</div><div class='add'>+0x8C22 = 0xEFA0</div><div class='add'>+0x8C23 = 0xEFA1</div><div class='add'>+0x8C24 = 0xEFA2</div><div class='add'>+0x8C25 = 0xEFA3</div><div class='add'>+0x8C26 = 0xEFA4</div><div class='add'>+0x8C27 = 0xEFA5</div><div class='add'>+0x8C28 = 0xEFA6</div><div class='add'>+0x8C29 = 0xEFA7</div><div class='add'>+0x8C2A = 0xEFA8</div><div class='add'>+0x8C2B = 0xEFA9</div><div class='add'>+0x8C2C = 0xEFAA</div><div class='add'>+0x8C2D = 0xEFAB</div><div class='add'>+0x8C2E = 0xEFAC</div><div class='add'>+0x8C2F = 0xEFAD</div><div class='add'>+0x8C30 = 0xEFAE</div><div class='add'>+0x8C31 = 0xEFAF</div><div class='add'>+0x8C32 = 0xEFB0</div><div class='add'>+0x8C33 = 0xEFB1</div><div class='add'>+0x8C34 = 0xEFB2</div><div class='add'>+0x8C35 = 0xEFB3</div><div class='add'>+0x8C36 = 0xEFB4</div><div class='add'>+0x8C37 = 0xEFB5</div><div class='add'>+0x8C38 = 0xEFB6</div><div class='add'>+0x8C39 = 0xEFB7</div><div class='add'>+0x8C3A = 0xEFB8</div><div class='add'>+0x8C3B = 0xEFB9</div><div class='add'>+0x8C3C = 0xEFBA</div><div class='add'>+0x8C3D = 0xEFBB</div><div class='add'>+0x8C3E = 0xEFBC</div><div class='add'>+0x8C3F = 0xEFBD</div><div class='add'>+0x8C40 = 0xEFBE</div><div class='add'>+0x8C41 = 0xEFBF</div><div class='add'>+0x8C42 = 0xEFC0</div><div class='add'>+0x8C43 = 0xEFC1</div><div class='add'>+0x8C44 = 0xEFC2</div><div class='add'>+0x8C45 = 0xEFC3</div><div class='add'>+0x8C46 = 0xEFC4</div><div class='add'>+0x8C47 = 0xEFC5</div><div class='add'>+0x8C48 = 0xEFC6</div><div class='add'>+0x8C49 = 0xEFC7</div><div class='add'>+0x8C4A = 0xEFC8</div><div class='add'>+0x8C4B = 0xEFC9</div><div class='add'>+0x8C4C = 0xEFCA</div><div class='add'>+0x8C4D = 0xEFCB</div><div class='add'>+0x8C4E = 0xEFCC</div><div class='add'>+0x8C4F = 0xEFCD</div><div class='add'>+0x8C50 = 0xEFCE</div><div class='add'>+0x8C51 = 0xEFCF</div><div class='add'>+0x8C52 = 0xEFD0</div><div class='add'>+0x8C53 = 0xEFD1</div><div class='add'>+0x8C54 = 0xEFD2</div><div class='add'>+0x8C55 = 0xEFD3</div><div class='add'>+0x8C56 = 0xEFD4</div><div class='add'>+0x8C57 = 0xEFD5</div><div class='add'>+0x8C58 = 0xEFD6</div><div class='add'>+0x8C59 = 0xEFD7</div><div class='add'>+0x8C5A = 0xEFD8</div><div class='add'>+0x8C5B = 0xEFD9</div><div class='add'>+0x8C5C = 0xEFDA</div><div class='add'>+0x8C5D = 0xEFDB</div><div class='add'>+0x8C5E = 0xEFDC</div><div class='add'>+0x8C5F = 0xEFDD</div><div class='add'>+0x8C60 = 0xEFDE</div><div class='add'>+0x8C61 = 0xEFDF</div><div class='add'>+0x8C62 = 0xEFE0</div><div class='add'>+0x8C63 = 0xEFE1</div><div class='add'>+0x8C64 = 0xEFE2</div><div class='add'>+0x8C65 = 0xEFE3</div><div class='add'>+0x8C66 = 0xEFE4</div><div class='add'>+0x8C67 = 0xEFE5</div><div class='add'>+0x8C68 = 0xEFE6</div><div class='add'>+0x8C69 = 0xEFE7</div><div class='add'>+0x8C6A = 0xEFE8</div><div class='add'>+0x8C6B = 0xEFE9</div><div class='add'>+0x8C6C = 0xEFEA</div><div class='add'>+0x8C6D = 0xEFEB</div><div class='add'>+0x8C6E = 0xEFEC</div><div class='add'>+0x8C6F = 0xEFED</div><div class='add'>+0x8C70 = 0xEFEE</div><div class='add'>+0x8C71 = 0xEFEF</div><div class='add'>+0x8C72 = 0xEFF0</div><div class='add'>+0x8C73 = 0xEFF1</div><div class='add'>+0x8C74 = 0xEFF2</div><div class='add'>+0x8C75 = 0xEFF3</div><div class='add'>+0x8C76 = 0xEFF4</div><div class='add'>+0x8C77 = 0xEFF5</div><div class='add'>+0x8C78 = 0xEFF6</div><div class='add'>+0x8C79 = 0xEFF7</div><div class='add'>+0x8C7A = 0xEFF8</div><div class='add'>+0x8C7B = 0xEFF9</div><div class='add'>+0x8C7C = 0xEFFA</div><div class='add'>+0x8C7D = 0xEFFB</div><div class='add'>+0x8C7E = 0xEFFC</div><div class='add'>+0x8D21 = 0xF040</div><div class='add'>+0x8D22 = 0xF041</div><div class='add'>+0x8D23 = 0xF042</div><div class='add'>+0x8D24 = 0xF043</div><div class='add'>+0x8D25 = 0xF044</div><div class='add'>+0x8D26 = 0xF045</div><div class='add'>+0x8D27 = 0xF046</div><div class='add'>+0x8D28 = 0xF047</div><div class='add'>+0x8D29 = 0xF048</div><div class='add'>+0x8D2A = 0xF049</div><div class='add'>+0x8D2B = 0xF04A</div><div class='add'>+0x8D2C = 0xF04B</div><div class='add'>+0x8D2D = 0xF04C</div><div class='add'>+0x8D2E = 0xF04D</div><div class='add'>+0x8D2F = 0xF04E</div><div class='add'>+0x8D30 = 0xF04F</div><div class='add'>+0x8D31 = 0xF050</div><div class='add'>+0x8D32 = 0xF051</div><div class='add'>+0x8D33 = 0xF052</div><div class='add'>+0x8D34 = 0xF053</div><div class='add'>+0x8D35 = 0xF054</div><div class='add'>+0x8D36 = 0xF055</div><div class='add'>+0x8D37 = 0xF056</div><div class='add'>+0x8D38 = 0xF057</div><div class='add'>+0x8D39 = 0xF058</div><div class='add'>+0x8D3A = 0xF059</div><div class='add'>+0x8D3B = 0xF05A</div><div class='add'>+0x8D3C = 0xF05B</div><div class='add'>+0x8D3D = 0xF05C</div><div class='add'>+0x8D3E = 0xF05D</div><div class='add'>+0x8D3F = 0xF05E</div><div class='add'>+0x8D40 = 0xF05F</div><div class='add'>+0x8D41 = 0xF060</div><div class='add'>+0x8D42 = 0xF061</div><div class='add'>+0x8D43 = 0xF062</div><div class='add'>+0x8D44 = 0xF063</div><div class='add'>+0x8D45 = 0xF064</div><div class='add'>+0x8D46 = 0xF065</div><div class='add'>+0x8D47 = 0xF066</div><div class='add'>+0x8D48 = 0xF067</div><div class='add'>+0x8D49 = 0xF068</div><div class='add'>+0x8D4A = 0xF069</div><div class='add'>+0x8D4B = 0xF06A</div><div class='add'>+0x8D4C = 0xF06B</div><div class='add'>+0x8D4D = 0xF06C</div><div class='add'>+0x8D4E = 0xF06D</div><div class='add'>+0x8D4F = 0xF06E</div><div class='add'>+0x8D50 = 0xF06F</div><div class='add'>+0x8D51 = 0xF070</div><div class='add'>+0x8D52 = 0xF071</div><div class='add'>+0x8D53 = 0xF072</div><div class='add'>+0x8D54 = 0xF073</div><div class='add'>+0x8D55 = 0xF074</div><div class='add'>+0x8D56 = 0xF075</div><div class='add'>+0x8D57 = 0xF076</div><div class='add'>+0x8D58 = 0xF077</div><div class='add'>+0x8D59 = 0xF078</div><div class='add'>+0x8D5A = 0xF079</div><div class='add'>+0x8D5B = 0xF07A</div><div class='add'>+0x8D5C = 0xF07B</div><div class='add'>+0x8D5D = 0xF07C</div><div class='add'>+0x8D5E = 0xF07D</div><div class='add'>+0x8D5F = 0xF07E</div><div class='add'>+0x8D60 = 0xF080</div><div class='add'>+0x8D61 = 0xF081</div><div class='add'>+0x8D62 = 0xF082</div><div class='add'>+0x8D63 = 0xF083</div><div class='add'>+0x8D64 = 0xF084</div><div class='add'>+0x8D65 = 0xF085</div><div class='add'>+0x8D66 = 0xF086</div><div class='add'>+0x8D67 = 0xF087</div><div class='add'>+0x8D68 = 0xF088</div><div class='add'>+0x8D69 = 0xF089</div><div class='add'>+0x8D6A = 0xF08A</div><div class='add'>+0x8D6B = 0xF08B</div><div class='add'>+0x8D6C = 0xF08C</div><div class='add'>+0x8D6D = 0xF08D</div><div class='add'>+0x8D6E = 0xF08E</div><div class='add'>+0x8D6F = 0xF08F</div><div class='add'>+0x8D70 = 0xF090</div><div class='add'>+0x8D71 = 0xF091</div><div class='add'>+0x8D72 = 0xF092</div><div class='add'>+0x8D73 = 0xF093</div><div class='add'>+0x8D74 = 0xF094</div><div class='add'>+0x8D75 = 0xF095</div><div class='add'>+0x8D76 = 0xF096</div><div class='add'>+0x8D77 = 0xF097</div><div class='add'>+0x8D78 = 0xF098</div><div class='add'>+0x8D79 = 0xF099</div><div class='add'>+0x8D7A = 0xF09A</div><div class='add'>+0x8D7B = 0xF09B</div><div class='add'>+0x8D7C = 0xF09C</div><div class='add'>+0x8D7D = 0xF09D</div><div class='add'>+0x8D7E = 0xF09E</div><div class='add'>+0x8E21 = 0xF09F</div><div class='add'>+0x8E22 = 0xF0A0</div><div class='add'>+0x8E23 = 0xF0A1</div><div class='add'>+0x8E24 = 0xF0A2</div><div class='add'>+0x8E25 = 0xF0A3</div><div class='add'>+0x8E26 = 0xF0A4</div><div class='add'>+0x8E27 = 0xF0A5</div><div class='add'>+0x8E28 = 0xF0A6</div><div class='add'>+0x8E29 = 0xF0A7</div><div class='add'>+0x8E2A = 0xF0A8</div><div class='add'>+0x8E2B = 0xF0A9</div><div class='add'>+0x8E2C = 0xF0AA</div><div class='add'>+0x8E2D = 0xF0AB</div><div class='add'>+0x8E2E = 0xF0AC</div><div class='add'>+0x8E2F = 0xF0AD</div><div class='add'>+0x8E30 = 0xF0AE</div><div class='add'>+0x8E31 = 0xF0AF</div><div class='add'>+0x8E32 = 0xF0B0</div><div class='add'>+0x8E33 = 0xF0B1</div><div class='add'>+0x8E34 = 0xF0B2</div><div class='add'>+0x8E35 = 0xF0B3</div><div class='add'>+0x8E36 = 0xF0B4</div><div class='add'>+0x8E37 = 0xF0B5</div><div class='add'>+0x8E38 = 0xF0B6</div><div class='add'>+0x8E39 = 0xF0B7</div><div class='add'>+0x8E3A = 0xF0B8</div><div class='add'>+0x8E3B = 0xF0B9</div><div class='add'>+0x8E3C = 0xF0BA</div><div class='add'>+0x8E3D = 0xF0BB</div><div class='add'>+0x8E3E = 0xF0BC</div><div class='add'>+0x8E3F = 0xF0BD</div><div class='add'>+0x8E40 = 0xF0BE</div><div class='add'>+0x8E41 = 0xF0BF</div><div class='add'>+0x8E42 = 0xF0C0</div><div class='add'>+0x8E43 = 0xF0C1</div><div class='add'>+0x8E44 = 0xF0C2</div><div class='add'>+0x8E45 = 0xF0C3</div><div class='add'>+0x8E46 = 0xF0C4</div><div class='add'>+0x8E47 = 0xF0C5</div><div class='add'>+0x8E48 = 0xF0C6</div><div class='add'>+0x8E49 = 0xF0C7</div><div class='add'>+0x8E4A = 0xF0C8</div><div class='add'>+0x8E4B = 0xF0C9</div><div class='add'>+0x8E4C = 0xF0CA</div><div class='add'>+0x8E4D = 0xF0CB</div><div class='add'>+0x8E4E = 0xF0CC</div><div class='add'>+0x8E4F = 0xF0CD</div><div class='add'>+0x8E50 = 0xF0CE</div><div class='add'>+0x8E51 = 0xF0CF</div><div class='add'>+0x8E52 = 0xF0D0</div><div class='add'>+0x8E53 = 0xF0D1</div><div class='add'>+0x8E54 = 0xF0D2</div><div class='add'>+0x8E55 = 0xF0D3</div><div class='add'>+0x8E56 = 0xF0D4</div><div class='add'>+0x8E57 = 0xF0D5</div><div class='add'>+0x8E58 = 0xF0D6</div><div class='add'>+0x8E59 = 0xF0D7</div><div class='add'>+0x8E5A = 0xF0D8</div><div class='add'>+0x8E5B = 0xF0D9</div><div class='add'>+0x8E5C = 0xF0DA</div><div class='add'>+0x8E5D = 0xF0DB</div><div class='add'>+0x8E5E = 0xF0DC</div><div class='add'>+0x8E5F = 0xF0DD</div><div class='add'>+0x8E60 = 0xF0DE</div><div class='add'>+0x8E61 = 0xF0DF</div><div class='add'>+0x8E62 = 0xF0E0</div><div class='add'>+0x8E63 = 0xF0E1</div><div class='add'>+0x8E64 = 0xF0E2</div><div class='add'>+0x8E65 = 0xF0E3</div><div class='add'>+0x8E66 = 0xF0E4</div><div class='add'>+0x8E67 = 0xF0E5</div><div class='add'>+0x8E68 = 0xF0E6</div><div class='add'>+0x8E69 = 0xF0E7</div><div class='add'>+0x8E6A = 0xF0E8</div><div class='add'>+0x8E6B = 0xF0E9</div><div class='add'>+0x8E6C = 0xF0EA</div><div class='add'>+0x8E6D = 0xF0EB</div><div class='add'>+0x8E6E = 0xF0EC</div><div class='add'>+0x8E6F = 0xF0ED</div><div class='add'>+0x8E70 = 0xF0EE</div><div class='add'>+0x8E71 = 0xF0EF</div><div class='add'>+0x8E72 = 0xF0F0</div><div class='add'>+0x8E73 = 0xF0F1</div><div class='add'>+0x8E74 = 0xF0F2</div><div class='add'>+0x8E75 = 0xF0F3</div><div class='add'>+0x8E76 = 0xF0F4</div><div class='add'>+0x8E77 = 0xF0F5</div><div class='add'>+0x8E78 = 0xF0F6</div><div class='add'>+0x8E79 = 0xF0F7</div><div class='add'>+0x8E7A = 0xF0F8</div><div class='add'>+0x8E7B = 0xF0F9</div><div class='add'>+0x8E7C = 0xF0FA</div><div class='add'>+0x8E7D = 0xF0FB</div><div class='add'>+0x8E7E = 0xF0FC</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%UCS.src b/enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%UCS.src<br/>new file mode 100644<br/>index 0000000000..015107413f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/EMOJI_SHIFT_JIS-SOFTBANK%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,496 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		EMOJI_SHIFT_JIS-SOFTBANK/UCS</div><div class='add'>+SRC_ZONE	0xF3-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0x8D22 = 0xE101</div><div class='add'>+0x8D23 = 0xE102</div><div class='add'>+0x8D24 = 0xE103</div><div class='add'>+0x8D25 = 0xE104</div><div class='add'>+0x8D26 = 0xE105</div><div class='add'>+0x8D27 = 0xE106</div><div class='add'>+0x8D28 = 0xE107</div><div class='add'>+0x8D29 = 0xE108</div><div class='add'>+0x8D2A = 0xE109</div><div class='add'>+0x8D2B = 0xE10A</div><div class='add'>+0x8D2C = 0xE10B</div><div class='add'>+0x8D2D = 0xE10C</div><div class='add'>+0x8D2E = 0xE10D</div><div class='add'>+0x8D2F = 0xE10E</div><div class='add'>+0x8D30 = 0xE10F</div><div class='add'>+0x8D31 = 0xE110</div><div class='add'>+0x8D32 = 0xE111</div><div class='add'>+0x8D33 = 0xE112</div><div class='add'>+0x8D34 = 0xE113</div><div class='add'>+0x8D35 = 0xE114</div><div class='add'>+0x8D36 = 0xE115</div><div class='add'>+0x8D37 = 0xE116</div><div class='add'>+0x8D38 = 0xE117</div><div class='add'>+0x8D39 = 0xE118</div><div class='add'>+0x8D3A = 0xE119</div><div class='add'>+0x8D3B = 0xE11A</div><div class='add'>+0x8D3C = 0xE11B</div><div class='add'>+0x8D3D = 0xE11C</div><div class='add'>+0x8D3E = 0xE11D</div><div class='add'>+0x8D3F = 0xE11E</div><div class='add'>+0x8D40 = 0xE11F</div><div class='add'>+0x8D41 = 0xE120</div><div class='add'>+0x8D42 = 0xE121</div><div class='add'>+0x8D43 = 0xE122</div><div class='add'>+0x8D44 = 0xE123</div><div class='add'>+0x8D45 = 0xE124</div><div class='add'>+0x8D46 = 0xE125</div><div class='add'>+0x8D47 = 0xE126</div><div class='add'>+0x8D48 = 0xE127</div><div class='add'>+0x8D49 = 0xE128</div><div class='add'>+0x8D4A = 0xE129</div><div class='add'>+0x8D4B = 0xE12A</div><div class='add'>+0x8D4C = 0xE12B</div><div class='add'>+0x8D4D = 0xE12C</div><div class='add'>+0x8D4E = 0xE12D</div><div class='add'>+0x8D4F = 0xE12E</div><div class='add'>+0x8D50 = 0xE12F</div><div class='add'>+0x8D51 = 0xE130</div><div class='add'>+0x8D52 = 0xE131</div><div class='add'>+0x8D53 = 0xE132</div><div class='add'>+0x8D54 = 0xE133</div><div class='add'>+0x8D55 = 0xE134</div><div class='add'>+0x8D56 = 0xE135</div><div class='add'>+0x8D57 = 0xE136</div><div class='add'>+0x8D58 = 0xE137</div><div class='add'>+0x8D59 = 0xE138</div><div class='add'>+0x8D5A = 0xE139</div><div class='add'>+0x8D5B = 0xE13A</div><div class='add'>+0x8D5C = 0xE13B</div><div class='add'>+0x8D5D = 0xE13C</div><div class='add'>+0x8D5E = 0xE13D</div><div class='add'>+0x8D5F = 0xE13E</div><div class='add'>+0x8D60 = 0xE13F</div><div class='add'>+0x8D61 = 0xE140</div><div class='add'>+0x8D62 = 0xE141</div><div class='add'>+0x8D63 = 0xE142</div><div class='add'>+0x8D64 = 0xE143</div><div class='add'>+0x8D65 = 0xE144</div><div class='add'>+0x8D66 = 0xE145</div><div class='add'>+0x8D67 = 0xE146</div><div class='add'>+0x8D68 = 0xE147</div><div class='add'>+0x8D69 = 0xE148</div><div class='add'>+0x8D6A = 0xE149</div><div class='add'>+0x8D6B = 0xE14A</div><div class='add'>+0x8D6C = 0xE14B</div><div class='add'>+0x8D6D = 0xE14C</div><div class='add'>+0x8D6E = 0xE14D</div><div class='add'>+0x8D6F = 0xE14E</div><div class='add'>+0x8D70 = 0xE14F</div><div class='add'>+0x8D71 = 0xE150</div><div class='add'>+0x8D72 = 0xE151</div><div class='add'>+0x8D73 = 0xE152</div><div class='add'>+0x8D74 = 0xE153</div><div class='add'>+0x8D75 = 0xE154</div><div class='add'>+0x8D76 = 0xE155</div><div class='add'>+0x8D77 = 0xE156</div><div class='add'>+0x8D78 = 0xE157</div><div class='add'>+0x8D79 = 0xE158</div><div class='add'>+0x8D7A = 0xE159</div><div class='add'>+0x8D7B = 0xE15A</div><div class='add'>+0x8E23 = 0xE201</div><div class='add'>+0x8E24 = 0xE202</div><div class='add'>+0x8E25 = 0xE203</div><div class='add'>+0x8E26 = 0xE204</div><div class='add'>+0x8E27 = 0xE205</div><div class='add'>+0x8E28 = 0xE206</div><div class='add'>+0x8E29 = 0xE207</div><div class='add'>+0x8E2A = 0xE208</div><div class='add'>+0x8E2B = 0xE209</div><div class='add'>+0x8E2C = 0xE20A</div><div class='add'>+0x8E2D = 0xE20B</div><div class='add'>+0x8E2E = 0xE20C</div><div class='add'>+0x8E2F = 0xE20D</div><div class='add'>+0x8E30 = 0xE20E</div><div class='add'>+0x8E31 = 0xE20F</div><div class='add'>+0x8E32 = 0xE210</div><div class='add'>+0x8E33 = 0xE211</div><div class='add'>+0x8E34 = 0xE212</div><div class='add'>+0x8E35 = 0xE213</div><div class='add'>+0x8E36 = 0xE214</div><div class='add'>+0x8E37 = 0xE215</div><div class='add'>+0x8E38 = 0xE216</div><div class='add'>+0x8E39 = 0xE217</div><div class='add'>+0x8E3A = 0xE218</div><div class='add'>+0x8E3B = 0xE219</div><div class='add'>+0x8E3C = 0xE21A</div><div class='add'>+0x8E3D = 0xE21B</div><div class='add'>+0x8E3E = 0xE21C</div><div class='add'>+0x8E3F = 0xE21D</div><div class='add'>+0x8E40 = 0xE21E</div><div class='add'>+0x8E41 = 0xE21F</div><div class='add'>+0x8E42 = 0xE220</div><div class='add'>+0x8E43 = 0xE221</div><div class='add'>+0x8E44 = 0xE222</div><div class='add'>+0x8E45 = 0xE223</div><div class='add'>+0x8E46 = 0xE224</div><div class='add'>+0x8E47 = 0xE225</div><div class='add'>+0x8E48 = 0xE226</div><div class='add'>+0x8E49 = 0xE227</div><div class='add'>+0x8E4A = 0xE228</div><div class='add'>+0x8E4B = 0xE229</div><div class='add'>+0x8E4C = 0xE22A</div><div class='add'>+0x8E4D = 0xE22B</div><div class='add'>+0x8E4E = 0xE22C</div><div class='add'>+0x8E4F = 0xE22D</div><div class='add'>+0x8E50 = 0xE22E</div><div class='add'>+0x8E51 = 0xE22F</div><div class='add'>+0x8E52 = 0xE230</div><div class='add'>+0x8E53 = 0xE231</div><div class='add'>+0x8E54 = 0xE232</div><div class='add'>+0x8E55 = 0xE233</div><div class='add'>+0x8E56 = 0xE234</div><div class='add'>+0x8E57 = 0xE235</div><div class='add'>+0x8E58 = 0xE236</div><div class='add'>+0x8E59 = 0xE237</div><div class='add'>+0x8E5A = 0xE238</div><div class='add'>+0x8E5B = 0xE239</div><div class='add'>+0x8E5C = 0xE23A</div><div class='add'>+0x8E5D = 0xE23B</div><div class='add'>+0x8E5E = 0xE23C</div><div class='add'>+0x8E5F = 0xE23D</div><div class='add'>+0x8E60 = 0xE23E</div><div class='add'>+0x8E61 = 0xE23F</div><div class='add'>+0x8E62 = 0xE240</div><div class='add'>+0x8E63 = 0xE241</div><div class='add'>+0x8E64 = 0xE242</div><div class='add'>+0x8E65 = 0xE243</div><div class='add'>+0x8E66 = 0xE244</div><div class='add'>+0x8E67 = 0xE245</div><div class='add'>+0x8E68 = 0xE246</div><div class='add'>+0x8E69 = 0xE247</div><div class='add'>+0x8E6A = 0xE248</div><div class='add'>+0x8E6B = 0xE249</div><div class='add'>+0x8E6C = 0xE24A</div><div class='add'>+0x8E6D = 0xE24B</div><div class='add'>+0x8E6E = 0xE24C</div><div class='add'>+0x8E6F = 0xE24D</div><div class='add'>+0x8E70 = 0xE24E</div><div class='add'>+0x8E71 = 0xE24F</div><div class='add'>+0x8E72 = 0xE250</div><div class='add'>+0x8E73 = 0xE251</div><div class='add'>+0x8E74 = 0xE252</div><div class='add'>+0x8E75 = 0xE253</div><div class='add'>+0x8E76 = 0xE254</div><div class='add'>+0x8E77 = 0xE255</div><div class='add'>+0x8E78 = 0xE256</div><div class='add'>+0x8E79 = 0xE257</div><div class='add'>+0x8E7A = 0xE258</div><div class='add'>+0x8E7B = 0xE259</div><div class='add'>+0x8E7C = 0xE25A</div><div class='add'>+0x9122 = 0xE001</div><div class='add'>+0x9123 = 0xE002</div><div class='add'>+0x9124 = 0xE003</div><div class='add'>+0x9125 = 0xE004</div><div class='add'>+0x9126 = 0xE005</div><div class='add'>+0x9127 = 0xE006</div><div class='add'>+0x9128 = 0xE007</div><div class='add'>+0x9129 = 0xE008</div><div class='add'>+0x912A = 0xE009</div><div class='add'>+0x912B = 0xE00A</div><div class='add'>+0x912C = 0xE00B</div><div class='add'>+0x912D = 0xE00C</div><div class='add'>+0x912E = 0xE00D</div><div class='add'>+0x912F = 0xE00E</div><div class='add'>+0x9130 = 0xE00F</div><div class='add'>+0x9131 = 0xE010</div><div class='add'>+0x9132 = 0xE011</div><div class='add'>+0x9133 = 0xE012</div><div class='add'>+0x9134 = 0xE013</div><div class='add'>+0x9135 = 0xE014</div><div class='add'>+0x9136 = 0xE015</div><div class='add'>+0x9137 = 0xE016</div><div class='add'>+0x9138 = 0xE017</div><div class='add'>+0x9139 = 0xE018</div><div class='add'>+0x913A = 0xE019</div><div class='add'>+0x913B = 0xE01A</div><div class='add'>+0x913C = 0xE01B</div><div class='add'>+0x913D = 0xE01C</div><div class='add'>+0x913E = 0xE01D</div><div class='add'>+0x913F = 0xE01E</div><div class='add'>+0x9140 = 0xE01F</div><div class='add'>+0x9141 = 0xE020</div><div class='add'>+0x9142 = 0xE021</div><div class='add'>+0x9143 = 0xE022</div><div class='add'>+0x9144 = 0xE023</div><div class='add'>+0x9145 = 0xE024</div><div class='add'>+0x9146 = 0xE025</div><div class='add'>+0x9147 = 0xE026</div><div class='add'>+0x9148 = 0xE027</div><div class='add'>+0x9149 = 0xE028</div><div class='add'>+0x914A = 0xE029</div><div class='add'>+0x914B = 0xE02A</div><div class='add'>+0x914C = 0xE02B</div><div class='add'>+0x914D = 0xE02C</div><div class='add'>+0x914E = 0xE02D</div><div class='add'>+0x914F = 0xE02E</div><div class='add'>+0x9150 = 0xE02F</div><div class='add'>+0x9151 = 0xE030</div><div class='add'>+0x9152 = 0xE031</div><div class='add'>+0x9153 = 0xE032</div><div class='add'>+0x9154 = 0xE033</div><div class='add'>+0x9155 = 0xE034</div><div class='add'>+0x9156 = 0xE035</div><div class='add'>+0x9157 = 0xE036</div><div class='add'>+0x9158 = 0xE037</div><div class='add'>+0x9159 = 0xE038</div><div class='add'>+0x915A = 0xE039</div><div class='add'>+0x915B = 0xE03A</div><div class='add'>+0x915C = 0xE03B</div><div class='add'>+0x915D = 0xE03C</div><div class='add'>+0x915E = 0xE03D</div><div class='add'>+0x915F = 0xE03E</div><div class='add'>+0x9160 = 0xE03F</div><div class='add'>+0x9161 = 0xE040</div><div class='add'>+0x9162 = 0xE041</div><div class='add'>+0x9163 = 0xE042</div><div class='add'>+0x9164 = 0xE043</div><div class='add'>+0x9165 = 0xE044</div><div class='add'>+0x9166 = 0xE045</div><div class='add'>+0x9167 = 0xE046</div><div class='add'>+0x9168 = 0xE047</div><div class='add'>+0x9169 = 0xE048</div><div class='add'>+0x916A = 0xE049</div><div class='add'>+0x916B = 0xE04A</div><div class='add'>+0x916C = 0xE04B</div><div class='add'>+0x916D = 0xE04C</div><div class='add'>+0x916E = 0xE04D</div><div class='add'>+0x916F = 0xE04E</div><div class='add'>+0x9170 = 0xE04F</div><div class='add'>+0x9171 = 0xE050</div><div class='add'>+0x9172 = 0xE051</div><div class='add'>+0x9173 = 0xE052</div><div class='add'>+0x9174 = 0xE053</div><div class='add'>+0x9175 = 0xE054</div><div class='add'>+0x9176 = 0xE055</div><div class='add'>+0x9177 = 0xE056</div><div class='add'>+0x9178 = 0xE057</div><div class='add'>+0x9179 = 0xE058</div><div class='add'>+0x917A = 0xE059</div><div class='add'>+0x917B = 0xE05A</div><div class='add'>+0x9223 = 0xE301</div><div class='add'>+0x9224 = 0xE302</div><div class='add'>+0x9225 = 0xE303</div><div class='add'>+0x9226 = 0xE304</div><div class='add'>+0x9227 = 0xE305</div><div class='add'>+0x9228 = 0xE306</div><div class='add'>+0x9229 = 0xE307</div><div class='add'>+0x922A = 0xE308</div><div class='add'>+0x922B = 0xE309</div><div class='add'>+0x922C = 0xE30A</div><div class='add'>+0x922D = 0xE30B</div><div class='add'>+0x922E = 0xE30C</div><div class='add'>+0x922F = 0xE30D</div><div class='add'>+0x9230 = 0xE30E</div><div class='add'>+0x9231 = 0xE30F</div><div class='add'>+0x9232 = 0xE310</div><div class='add'>+0x9233 = 0xE311</div><div class='add'>+0x9234 = 0xE312</div><div class='add'>+0x9235 = 0xE313</div><div class='add'>+0x9236 = 0xE314</div><div class='add'>+0x9237 = 0xE315</div><div class='add'>+0x9238 = 0xE316</div><div class='add'>+0x9239 = 0xE317</div><div class='add'>+0x923A = 0xE318</div><div class='add'>+0x923B = 0xE319</div><div class='add'>+0x923C = 0xE31A</div><div class='add'>+0x923D = 0xE31B</div><div class='add'>+0x923E = 0xE31C</div><div class='add'>+0x923F = 0xE31D</div><div class='add'>+0x9240 = 0xE31E</div><div class='add'>+0x9241 = 0xE31F</div><div class='add'>+0x9242 = 0xE320</div><div class='add'>+0x9243 = 0xE321</div><div class='add'>+0x9244 = 0xE322</div><div class='add'>+0x9245 = 0xE323</div><div class='add'>+0x9246 = 0xE324</div><div class='add'>+0x9247 = 0xE325</div><div class='add'>+0x9248 = 0xE326</div><div class='add'>+0x9249 = 0xE327</div><div class='add'>+0x924A = 0xE328</div><div class='add'>+0x924B = 0xE329</div><div class='add'>+0x924C = 0xE32A</div><div class='add'>+0x924D = 0xE32B</div><div class='add'>+0x924E = 0xE32C</div><div class='add'>+0x924F = 0xE32D</div><div class='add'>+0x9250 = 0xE32E</div><div class='add'>+0x9251 = 0xE32F</div><div class='add'>+0x9252 = 0xE330</div><div class='add'>+0x9253 = 0xE331</div><div class='add'>+0x9254 = 0xE332</div><div class='add'>+0x9255 = 0xE333</div><div class='add'>+0x9256 = 0xE334</div><div class='add'>+0x9257 = 0xE335</div><div class='add'>+0x9258 = 0xE336</div><div class='add'>+0x9259 = 0xE337</div><div class='add'>+0x925A = 0xE338</div><div class='add'>+0x925B = 0xE339</div><div class='add'>+0x925C = 0xE33A</div><div class='add'>+0x925D = 0xE33B</div><div class='add'>+0x925E = 0xE33C</div><div class='add'>+0x925F = 0xE33D</div><div class='add'>+0x9260 = 0xE33E</div><div class='add'>+0x9261 = 0xE33F</div><div class='add'>+0x9262 = 0xE340</div><div class='add'>+0x9263 = 0xE341</div><div class='add'>+0x9264 = 0xE342</div><div class='add'>+0x9265 = 0xE343</div><div class='add'>+0x9266 = 0xE344</div><div class='add'>+0x9267 = 0xE345</div><div class='add'>+0x9268 = 0xE346</div><div class='add'>+0x9269 = 0xE347</div><div class='add'>+0x926A = 0xE348</div><div class='add'>+0x926B = 0xE349</div><div class='add'>+0x926C = 0xE34A</div><div class='add'>+0x926D = 0xE34B</div><div class='add'>+0x926E = 0xE34C</div><div class='add'>+0x926F = 0xE34D</div><div class='add'>+0x9522 = 0xE401</div><div class='add'>+0x9523 = 0xE402</div><div class='add'>+0x9524 = 0xE403</div><div class='add'>+0x9525 = 0xE404</div><div class='add'>+0x9526 = 0xE405</div><div class='add'>+0x9527 = 0xE406</div><div class='add'>+0x9528 = 0xE407</div><div class='add'>+0x9529 = 0xE408</div><div class='add'>+0x952A = 0xE409</div><div class='add'>+0x952B = 0xE40A</div><div class='add'>+0x952C = 0xE40B</div><div class='add'>+0x952D = 0xE40C</div><div class='add'>+0x952E = 0xE40D</div><div class='add'>+0x952F = 0xE40E</div><div class='add'>+0x9530 = 0xE40F</div><div class='add'>+0x9531 = 0xE410</div><div class='add'>+0x9532 = 0xE411</div><div class='add'>+0x9533 = 0xE412</div><div class='add'>+0x9534 = 0xE413</div><div class='add'>+0x9535 = 0xE414</div><div class='add'>+0x9536 = 0xE415</div><div class='add'>+0x9537 = 0xE416</div><div class='add'>+0x9538 = 0xE417</div><div class='add'>+0x9539 = 0xE418</div><div class='add'>+0x953A = 0xE419</div><div class='add'>+0x953B = 0xE41A</div><div class='add'>+0x953C = 0xE41B</div><div class='add'>+0x953D = 0xE41C</div><div class='add'>+0x953E = 0xE41D</div><div class='add'>+0x953F = 0xE41E</div><div class='add'>+0x9540 = 0xE41F</div><div class='add'>+0x9541 = 0xE420</div><div class='add'>+0x9542 = 0xE421</div><div class='add'>+0x9543 = 0xE422</div><div class='add'>+0x9544 = 0xE423</div><div class='add'>+0x9545 = 0xE424</div><div class='add'>+0x9546 = 0xE425</div><div class='add'>+0x9547 = 0xE426</div><div class='add'>+0x9548 = 0xE427</div><div class='add'>+0x9549 = 0xE428</div><div class='add'>+0x954A = 0xE429</div><div class='add'>+0x954B = 0xE42A</div><div class='add'>+0x954C = 0xE42B</div><div class='add'>+0x954D = 0xE42C</div><div class='add'>+0x954E = 0xE42D</div><div class='add'>+0x954F = 0xE42E</div><div class='add'>+0x9550 = 0xE42F</div><div class='add'>+0x9551 = 0xE430</div><div class='add'>+0x9552 = 0xE431</div><div class='add'>+0x9553 = 0xE432</div><div class='add'>+0x9554 = 0xE433</div><div class='add'>+0x9555 = 0xE434</div><div class='add'>+0x9556 = 0xE435</div><div class='add'>+0x9557 = 0xE436</div><div class='add'>+0x9558 = 0xE437</div><div class='add'>+0x9559 = 0xE438</div><div class='add'>+0x955A = 0xE439</div><div class='add'>+0x955B = 0xE43A</div><div class='add'>+0x955C = 0xE43B</div><div class='add'>+0x955D = 0xE43C</div><div class='add'>+0x955E = 0xE43D</div><div class='add'>+0x955F = 0xE43E</div><div class='add'>+0x9560 = 0xE43F</div><div class='add'>+0x9561 = 0xE440</div><div class='add'>+0x9562 = 0xE441</div><div class='add'>+0x9563 = 0xE442</div><div class='add'>+0x9564 = 0xE443</div><div class='add'>+0x9565 = 0xE444</div><div class='add'>+0x9566 = 0xE445</div><div class='add'>+0x9567 = 0xE446</div><div class='add'>+0x9568 = 0xE447</div><div class='add'>+0x9569 = 0xE448</div><div class='add'>+0x956A = 0xE449</div><div class='add'>+0x956B = 0xE44A</div><div class='add'>+0x956C = 0xE44B</div><div class='add'>+0x956D = 0xE44C</div><div class='add'>+0x9623 = 0xE501</div><div class='add'>+0x9624 = 0xE502</div><div class='add'>+0x9625 = 0xE503</div><div class='add'>+0x9626 = 0xE504</div><div class='add'>+0x9627 = 0xE505</div><div class='add'>+0x9628 = 0xE506</div><div class='add'>+0x9629 = 0xE507</div><div class='add'>+0x962A = 0xE508</div><div class='add'>+0x962B = 0xE509</div><div class='add'>+0x962C = 0xE50A</div><div class='add'>+0x962D = 0xE50B</div><div class='add'>+0x962E = 0xE50C</div><div class='add'>+0x962F = 0xE50D</div><div class='add'>+0x9630 = 0xE50E</div><div class='add'>+0x9631 = 0xE50F</div><div class='add'>+0x9632 = 0xE510</div><div class='add'>+0x9633 = 0xE511</div><div class='add'>+0x9634 = 0xE512</div><div class='add'>+0x9635 = 0xE513</div><div class='add'>+0x9636 = 0xE514</div><div class='add'>+0x9637 = 0xE515</div><div class='add'>+0x9638 = 0xE516</div><div class='add'>+0x9639 = 0xE517</div><div class='add'>+0x963A = 0xE518</div><div class='add'>+0x963B = 0xE519</div><div class='add'>+0x963C = 0xE51A</div><div class='add'>+0x963D = 0xE51B</div><div class='add'>+0x963E = 0xE51C</div><div class='add'>+0x963F = 0xE51D</div><div class='add'>+0x9640 = 0xE51E</div><div class='add'>+0x9641 = 0xE51F</div><div class='add'>+0x9642 = 0xE520</div><div class='add'>+0x9643 = 0xE521</div><div class='add'>+0x9644 = 0xE522</div><div class='add'>+0x9645 = 0xE523</div><div class='add'>+0x9646 = 0xE524</div><div class='add'>+0x9647 = 0xE525</div><div class='add'>+0x9648 = 0xE526</div><div class='add'>+0x9649 = 0xE527</div><div class='add'>+0x964A = 0xE528</div><div class='add'>+0x964B = 0xE529</div><div class='add'>+0x964C = 0xE52A</div><div class='add'>+0x964D = 0xE52B</div><div class='add'>+0x964E = 0xE52C</div><div class='add'>+0x964F = 0xE52D</div><div class='add'>+0x9650 = 0xE52E</div><div class='add'>+0x9651 = 0xE52F</div><div class='add'>+0x9652 = 0xE530</div><div class='add'>+0x9653 = 0xE531</div><div class='add'>+0x9654 = 0xE532</div><div class='add'>+0x9655 = 0xE533</div><div class='add'>+0x9656 = 0xE534</div><div class='add'>+0x9657 = 0xE535</div><div class='add'>+0x9658 = 0xE536</div><div class='add'>+0x9659 = 0xE537</div><div class='add'>+0x965A = 0xE538</div><div class='add'>+0x965B = 0xE539</div><div class='add'>+0x965C = 0xE53A</div><div class='add'>+0x965D = 0xE53B</div><div class='add'>+0x965E = 0xE53C</div><div class='add'>+0x965F = 0xE53D</div><div class='add'>+0x9660 = 0xE53E</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI-UNDOC.src b/enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI-UNDOC.src<br/>new file mode 100644<br/>index 0000000000..562583344c<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/UCS%25EMOJI_ISO-2022-JP-KDDI-UNDOC.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI-UNDOC.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		UCS/EMOJI_ISO-2022-JP-KDDI-UNDOC</div><div class='add'>+SRC_ZONE	0x21-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0xEC40 = 0x7921</div><div class='add'>+0xEC41 = 0x7922</div><div class='add'>+0xEC42 = 0x7923</div><div class='add'>+0xEC43 = 0x7924</div><div class='add'>+0xEC44 = 0x7925</div><div class='add'>+0xEC45 = 0x7926</div><div class='add'>+0xEC46 = 0x7927</div><div class='add'>+0xEC47 = 0x7928</div><div class='add'>+0xEC48 = 0x7929</div><div class='add'>+0xEC49 = 0x792A</div><div class='add'>+0xEC4A = 0x792B</div><div class='add'>+0xEC4B = 0x792C</div><div class='add'>+0xEC4C = 0x792D</div><div class='add'>+0xEC4D = 0x792E</div><div class='add'>+0xEC4E = 0x792F</div><div class='add'>+0xEC4F = 0x7930</div><div class='add'>+0xEC50 = 0x7931</div><div class='add'>+0xEC51 = 0x7932</div><div class='add'>+0xEC52 = 0x7933</div><div class='add'>+0xEC53 = 0x7934</div><div class='add'>+0xEC54 = 0x7935</div><div class='add'>+0xEC55 = 0x7936</div><div class='add'>+0xEC56 = 0x7937</div><div class='add'>+0xEC57 = 0x7938</div><div class='add'>+0xEC58 = 0x7939</div><div class='add'>+0xEC59 = 0x793A</div><div class='add'>+0xEC5A = 0x793B</div><div class='add'>+0xEC5B = 0x793C</div><div class='add'>+0xEC5C = 0x793D</div><div class='add'>+0xEC5D = 0x793E</div><div class='add'>+0xEC5E = 0x793F</div><div class='add'>+0xEC5F = 0x7940</div><div class='add'>+0xEC60 = 0x7941</div><div class='add'>+0xEC61 = 0x7942</div><div class='add'>+0xEC62 = 0x7943</div><div class='add'>+0xEC63 = 0x7944</div><div class='add'>+0xEC64 = 0x7945</div><div class='add'>+0xEC65 = 0x7946</div><div class='add'>+0xEC66 = 0x7947</div><div class='add'>+0xEC67 = 0x7948</div><div class='add'>+0xEC68 = 0x7949</div><div class='add'>+0xEC69 = 0x794A</div><div class='add'>+0xEC6A = 0x794B</div><div class='add'>+0xEC6B = 0x794C</div><div class='add'>+0xEC6C = 0x794D</div><div class='add'>+0xEC6D = 0x794E</div><div class='add'>+0xEC6E = 0x794F</div><div class='add'>+0xEC6F = 0x7950</div><div class='add'>+0xEC70 = 0x7951</div><div class='add'>+0xEC71 = 0x7952</div><div class='add'>+0xEC72 = 0x7953</div><div class='add'>+0xEC73 = 0x7954</div><div class='add'>+0xEC74 = 0x7955</div><div class='add'>+0xEC75 = 0x7956</div><div class='add'>+0xEC76 = 0x7957</div><div class='add'>+0xEC77 = 0x7958</div><div class='add'>+0xEC78 = 0x7959</div><div class='add'>+0xEC79 = 0x795A</div><div class='add'>+0xEC7A = 0x795B</div><div class='add'>+0xEC7B = 0x795C</div><div class='add'>+0xEC7C = 0x795D</div><div class='add'>+0xEC7D = 0x795E</div><div class='add'>+0xEC7E = 0x795F</div><div class='add'>+0xEC80 = 0x7960</div><div class='add'>+0xEC81 = 0x7961</div><div class='add'>+0xEC82 = 0x7962</div><div class='add'>+0xEC83 = 0x7963</div><div class='add'>+0xEC84 = 0x7964</div><div class='add'>+0xEC85 = 0x7965</div><div class='add'>+0xEC86 = 0x7966</div><div class='add'>+0xEC87 = 0x7967</div><div class='add'>+0xEC88 = 0x7968</div><div class='add'>+0xEC89 = 0x7969</div><div class='add'>+0xEC8A = 0x796A</div><div class='add'>+0xEC8B = 0x796B</div><div class='add'>+0xEC8C = 0x796C</div><div class='add'>+0xEC8D = 0x796D</div><div class='add'>+0xEC8E = 0x796E</div><div class='add'>+0xEC8F = 0x796F</div><div class='add'>+0xEC90 = 0x7970</div><div class='add'>+0xEC91 = 0x7971</div><div class='add'>+0xEC92 = 0x7972</div><div class='add'>+0xEC93 = 0x7973</div><div class='add'>+0xEC94 = 0x7974</div><div class='add'>+0xEC95 = 0x7975</div><div class='add'>+0xEC96 = 0x7976</div><div class='add'>+0xEC97 = 0x7977</div><div class='add'>+0xEC98 = 0x7978</div><div class='add'>+0xEC99 = 0x7979</div><div class='add'>+0xEC9A = 0x797A</div><div class='add'>+0xEC9B = 0x797B</div><div class='add'>+0xEC9C = 0x797C</div><div class='add'>+0xEC9D = 0x797D</div><div class='add'>+0xEC9E = 0x797E</div><div class='add'>+0xEC9F = 0x7A21</div><div class='add'>+0xECA0 = 0x7A22</div><div class='add'>+0xECA1 = 0x7A23</div><div class='add'>+0xECA2 = 0x7A24</div><div class='add'>+0xECA3 = 0x7A25</div><div class='add'>+0xECA4 = 0x7A26</div><div class='add'>+0xECA5 = 0x7A27</div><div class='add'>+0xECA6 = 0x7A28</div><div class='add'>+0xECA7 = 0x7A29</div><div class='add'>+0xECA8 = 0x7A2A</div><div class='add'>+0xECA9 = 0x7A2B</div><div class='add'>+0xECAA = 0x7A2C</div><div class='add'>+0xECAB = 0x7A2D</div><div class='add'>+0xECAC = 0x7A2E</div><div class='add'>+0xECAD = 0x7A2F</div><div class='add'>+0xECAE = 0x7A30</div><div class='add'>+0xECAF = 0x7A31</div><div class='add'>+0xECB0 = 0x7A32</div><div class='add'>+0xECB1 = 0x7A33</div><div class='add'>+0xECB2 = 0x7A34</div><div class='add'>+0xECB3 = 0x7A35</div><div class='add'>+0xECB4 = 0x7A36</div><div class='add'>+0xECB5 = 0x7A37</div><div class='add'>+0xECB6 = 0x7A38</div><div class='add'>+0xECB7 = 0x7A39</div><div class='add'>+0xECB8 = 0x7A3A</div><div class='add'>+0xECB9 = 0x7A3B</div><div class='add'>+0xECBA = 0x7A3C</div><div class='add'>+0xECBB = 0x7A3D</div><div class='add'>+0xECBC = 0x7A3E</div><div class='add'>+0xECBD = 0x7A3F</div><div class='add'>+0xECBE = 0x7A40</div><div class='add'>+0xECBF = 0x7A41</div><div class='add'>+0xECC0 = 0x7A42</div><div class='add'>+0xECC1 = 0x7A43</div><div class='add'>+0xECC2 = 0x7A44</div><div class='add'>+0xECC3 = 0x7A45</div><div class='add'>+0xECC4 = 0x7A46</div><div class='add'>+0xECC5 = 0x7A47</div><div class='add'>+0xECC6 = 0x7A48</div><div class='add'>+0xECC7 = 0x7A49</div><div class='add'>+0xECC8 = 0x7A4A</div><div class='add'>+0xECC9 = 0x7A4B</div><div class='add'>+0xECCA = 0x7A4C</div><div class='add'>+0xECCB = 0x7A4D</div><div class='add'>+0xECCC = 0x7A4E</div><div class='add'>+0xECCD = 0x7A4F</div><div class='add'>+0xECCE = 0x7A50</div><div class='add'>+0xECCF = 0x7A51</div><div class='add'>+0xECD0 = 0x7A52</div><div class='add'>+0xECD1 = 0x7A53</div><div class='add'>+0xECD2 = 0x7A54</div><div class='add'>+0xECD3 = 0x7A55</div><div class='add'>+0xECD4 = 0x7A56</div><div class='add'>+0xECD5 = 0x7A57</div><div class='add'>+0xECD6 = 0x7A58</div><div class='add'>+0xECD7 = 0x7A59</div><div class='add'>+0xECD8 = 0x7A5A</div><div class='add'>+0xECD9 = 0x7A5B</div><div class='add'>+0xECDA = 0x7A5C</div><div class='add'>+0xECDB = 0x7A5D</div><div class='add'>+0xECDC = 0x7A5E</div><div class='add'>+0xECDD = 0x7A5F</div><div class='add'>+0xECDE = 0x7A60</div><div class='add'>+0xECDF = 0x7A61</div><div class='add'>+0xECE0 = 0x7A62</div><div class='add'>+0xECE1 = 0x7A63</div><div class='add'>+0xECE2 = 0x7A64</div><div class='add'>+0xECE3 = 0x7A65</div><div class='add'>+0xECE4 = 0x7A66</div><div class='add'>+0xECE5 = 0x7A67</div><div class='add'>+0xECE6 = 0x7A68</div><div class='add'>+0xECE7 = 0x7A69</div><div class='add'>+0xECE8 = 0x7A6A</div><div class='add'>+0xECE9 = 0x7A6B</div><div class='add'>+0xECEA = 0x7A6C</div><div class='add'>+0xECEB = 0x7A6D</div><div class='add'>+0xECEC = 0x7A6E</div><div class='add'>+0xECED = 0x7A6F</div><div class='add'>+0xECEE = 0x7A70</div><div class='add'>+0xECEF = 0x7A71</div><div class='add'>+0xECF0 = 0x7A72</div><div class='add'>+0xECF1 = 0x7A73</div><div class='add'>+0xECF2 = 0x7A74</div><div class='add'>+0xECF3 = 0x7A75</div><div class='add'>+0xECF4 = 0x7A76</div><div class='add'>+0xECF5 = 0x7A77</div><div class='add'>+0xECF6 = 0x7A78</div><div class='add'>+0xECF7 = 0x7A79</div><div class='add'>+0xECF8 = 0x7A7A</div><div class='add'>+0xECF9 = 0x7A7B</div><div class='add'>+0xECFA = 0x7A7C</div><div class='add'>+0xECFB = 0x7A7D</div><div class='add'>+0xECFC = 0x7A7E</div><div class='add'>+0xED40 = 0x7B21</div><div class='add'>+0xED41 = 0x7B22</div><div class='add'>+0xED42 = 0x7B23</div><div class='add'>+0xED43 = 0x7B24</div><div class='add'>+0xED44 = 0x7B25</div><div class='add'>+0xED45 = 0x7B26</div><div class='add'>+0xED46 = 0x7B27</div><div class='add'>+0xED47 = 0x7B28</div><div class='add'>+0xED48 = 0x7B29</div><div class='add'>+0xED49 = 0x7B2A</div><div class='add'>+0xED4A = 0x7B2B</div><div class='add'>+0xED4B = 0x7B2C</div><div class='add'>+0xED4C = 0x7B2D</div><div class='add'>+0xED4D = 0x7B2E</div><div class='add'>+0xED4E = 0x7B2F</div><div class='add'>+0xED4F = 0x7B30</div><div class='add'>+0xED50 = 0x7B31</div><div class='add'>+0xED51 = 0x7B32</div><div class='add'>+0xED52 = 0x7B33</div><div class='add'>+0xED53 = 0x7B34</div><div class='add'>+0xED54 = 0x7B35</div><div class='add'>+0xED55 = 0x7B36</div><div class='add'>+0xED56 = 0x7B37</div><div class='add'>+0xED57 = 0x7B38</div><div class='add'>+0xED58 = 0x7B39</div><div class='add'>+0xED59 = 0x7B3A</div><div class='add'>+0xED5A = 0x7B3B</div><div class='add'>+0xED5B = 0x7B3C</div><div class='add'>+0xED5C = 0x7B3D</div><div class='add'>+0xED5D = 0x7B3E</div><div class='add'>+0xED5E = 0x7B3F</div><div class='add'>+0xED5F = 0x7B40</div><div class='add'>+0xED60 = 0x7B41</div><div class='add'>+0xED61 = 0x7B42</div><div class='add'>+0xED62 = 0x7B43</div><div class='add'>+0xED63 = 0x7B44</div><div class='add'>+0xED64 = 0x7B45</div><div class='add'>+0xED65 = 0x7B46</div><div class='add'>+0xED66 = 0x7B47</div><div class='add'>+0xED67 = 0x7B48</div><div class='add'>+0xED68 = 0x7B49</div><div class='add'>+0xED69 = 0x7B4A</div><div class='add'>+0xED6A = 0x7B4B</div><div class='add'>+0xED6B = 0x7B4C</div><div class='add'>+0xED6C = 0x7B4D</div><div class='add'>+0xED6D = 0x7B4E</div><div class='add'>+0xED6E = 0x7B4F</div><div class='add'>+0xED6F = 0x7B50</div><div class='add'>+0xED70 = 0x7B51</div><div class='add'>+0xED71 = 0x7B52</div><div class='add'>+0xED72 = 0x7B53</div><div class='add'>+0xED73 = 0x7B54</div><div class='add'>+0xED74 = 0x7B55</div><div class='add'>+0xED75 = 0x7B56</div><div class='add'>+0xED76 = 0x7B57</div><div class='add'>+0xED77 = 0x7B58</div><div class='add'>+0xED78 = 0x7B59</div><div class='add'>+0xED79 = 0x7B5A</div><div class='add'>+0xED7A = 0x7B5B</div><div class='add'>+0xED7B = 0x7B5C</div><div class='add'>+0xED7C = 0x7B5D</div><div class='add'>+0xED7D = 0x7B5E</div><div class='add'>+0xED7E = 0x7B5F</div><div class='add'>+0xED80 = 0x7B60</div><div class='add'>+0xED81 = 0x7B61</div><div class='add'>+0xED82 = 0x7B62</div><div class='add'>+0xED83 = 0x7B63</div><div class='add'>+0xED84 = 0x7B64</div><div class='add'>+0xED85 = 0x7B65</div><div class='add'>+0xED86 = 0x7B66</div><div class='add'>+0xED87 = 0x7B67</div><div class='add'>+0xED88 = 0x7B68</div><div class='add'>+0xED89 = 0x7B69</div><div class='add'>+0xED8A = 0x7B6A</div><div class='add'>+0xED8B = 0x7B6B</div><div class='add'>+0xED8C = 0x7B6C</div><div class='add'>+0xED8D = 0x7B6D</div><div class='add'>+0xED8E = 0x7B6E</div><div class='add'>+0xED8F = 0x7B6F</div><div class='add'>+0xED90 = 0x7B70</div><div class='add'>+0xED91 = 0x7B71</div><div class='add'>+0xED92 = 0x7B72</div><div class='add'>+0xED93 = 0x7B73</div><div class='add'>+0xEF40 = 0x7521</div><div class='add'>+0xEF41 = 0x7522</div><div class='add'>+0xEF42 = 0x7523</div><div class='add'>+0xEF43 = 0x7524</div><div class='add'>+0xEF44 = 0x7525</div><div class='add'>+0xEF45 = 0x7526</div><div class='add'>+0xEF46 = 0x7527</div><div class='add'>+0xEF47 = 0x7528</div><div class='add'>+0xEF48 = 0x7529</div><div class='add'>+0xEF49 = 0x752A</div><div class='add'>+0xEF4A = 0x752B</div><div class='add'>+0xEF4B = 0x752C</div><div class='add'>+0xEF4C = 0x752D</div><div class='add'>+0xEF4D = 0x752E</div><div class='add'>+0xEF4E = 0x752F</div><div class='add'>+0xEF4F = 0x7530</div><div class='add'>+0xEF50 = 0x7531</div><div class='add'>+0xEF51 = 0x7532</div><div class='add'>+0xEF52 = 0x7533</div><div class='add'>+0xEF53 = 0x7534</div><div class='add'>+0xEF54 = 0x7535</div><div class='add'>+0xEF55 = 0x7536</div><div class='add'>+0xEF56 = 0x7537</div><div class='add'>+0xEF57 = 0x7538</div><div class='add'>+0xEF58 = 0x7539</div><div class='add'>+0xEF59 = 0x753A</div><div class='add'>+0xEF5A = 0x753B</div><div class='add'>+0xEF5B = 0x753C</div><div class='add'>+0xEF5C = 0x753D</div><div class='add'>+0xEF5D = 0x753E</div><div class='add'>+0xEF5E = 0x753F</div><div class='add'>+0xEF5F = 0x7540</div><div class='add'>+0xEF60 = 0x7541</div><div class='add'>+0xEF61 = 0x7542</div><div class='add'>+0xEF62 = 0x7543</div><div class='add'>+0xEF63 = 0x7544</div><div class='add'>+0xEF64 = 0x7545</div><div class='add'>+0xEF65 = 0x7546</div><div class='add'>+0xEF66 = 0x7547</div><div class='add'>+0xEF67 = 0x7548</div><div class='add'>+0xEF68 = 0x7549</div><div class='add'>+0xEF69 = 0x754A</div><div class='add'>+0xEF6A = 0x754B</div><div class='add'>+0xEF6B = 0x754C</div><div class='add'>+0xEF6C = 0x754D</div><div class='add'>+0xEF6D = 0x754E</div><div class='add'>+0xEF6E = 0x754F</div><div class='add'>+0xEF6F = 0x7550</div><div class='add'>+0xEF70 = 0x7551</div><div class='add'>+0xEF71 = 0x7552</div><div class='add'>+0xEF72 = 0x7553</div><div class='add'>+0xEF73 = 0x7554</div><div class='add'>+0xEF74 = 0x7555</div><div class='add'>+0xEF75 = 0x7556</div><div class='add'>+0xEF76 = 0x7557</div><div class='add'>+0xEF77 = 0x7558</div><div class='add'>+0xEF78 = 0x7559</div><div class='add'>+0xEF79 = 0x755A</div><div class='add'>+0xEF7A = 0x755B</div><div class='add'>+0xEF7B = 0x755C</div><div class='add'>+0xEF7C = 0x755D</div><div class='add'>+0xEF7D = 0x755E</div><div class='add'>+0xEF7E = 0x755F</div><div class='add'>+0xEF80 = 0x7560</div><div class='add'>+0xEF81 = 0x7561</div><div class='add'>+0xEF82 = 0x7562</div><div class='add'>+0xEF83 = 0x7563</div><div class='add'>+0xEF84 = 0x7564</div><div class='add'>+0xEF85 = 0x7565</div><div class='add'>+0xEF86 = 0x7566</div><div class='add'>+0xEF87 = 0x7567</div><div class='add'>+0xEF88 = 0x7568</div><div class='add'>+0xEF89 = 0x7569</div><div class='add'>+0xEF8A = 0x756A</div><div class='add'>+0xEF8B = 0x756B</div><div class='add'>+0xEF8C = 0x756C</div><div class='add'>+0xEF8D = 0x756D</div><div class='add'>+0xEF8E = 0x756E</div><div class='add'>+0xEF8F = 0x756F</div><div class='add'>+0xEF90 = 0x7570</div><div class='add'>+0xEF91 = 0x7571</div><div class='add'>+0xEF92 = 0x7572</div><div class='add'>+0xEF93 = 0x7573</div><div class='add'>+0xEF94 = 0x7574</div><div class='add'>+0xEF95 = 0x7575</div><div class='add'>+0xEF96 = 0x7576</div><div class='add'>+0xEF97 = 0x7577</div><div class='add'>+0xEF98 = 0x7578</div><div class='add'>+0xEF99 = 0x7579</div><div class='add'>+0xEF9A = 0x757A</div><div class='add'>+0xEF9B = 0x757B</div><div class='add'>+0xEF9C = 0x757C</div><div class='add'>+0xEF9D = 0x757D</div><div class='add'>+0xEF9E = 0x757E</div><div class='add'>+0xEF9F = 0x7621</div><div class='add'>+0xEFA0 = 0x7622</div><div class='add'>+0xEFA1 = 0x7623</div><div class='add'>+0xEFA2 = 0x7624</div><div class='add'>+0xEFA3 = 0x7625</div><div class='add'>+0xEFA4 = 0x7626</div><div class='add'>+0xEFA5 = 0x7627</div><div class='add'>+0xEFA6 = 0x7628</div><div class='add'>+0xEFA7 = 0x7629</div><div class='add'>+0xEFA8 = 0x762A</div><div class='add'>+0xEFA9 = 0x762B</div><div class='add'>+0xEFAA = 0x762C</div><div class='add'>+0xEFAB = 0x762D</div><div class='add'>+0xEFAC = 0x762E</div><div class='add'>+0xEFAD = 0x762F</div><div class='add'>+0xEFAE = 0x7630</div><div class='add'>+0xEFAF = 0x7631</div><div class='add'>+0xEFB0 = 0x7632</div><div class='add'>+0xEFB1 = 0x7633</div><div class='add'>+0xEFB2 = 0x7634</div><div class='add'>+0xEFB3 = 0x7635</div><div class='add'>+0xEFB4 = 0x7636</div><div class='add'>+0xEFB5 = 0x7637</div><div class='add'>+0xEFB6 = 0x7638</div><div class='add'>+0xEFB7 = 0x7639</div><div class='add'>+0xEFB8 = 0x763A</div><div class='add'>+0xEFB9 = 0x763B</div><div class='add'>+0xEFBA = 0x763C</div><div class='add'>+0xEFBB = 0x763D</div><div class='add'>+0xEFBC = 0x763E</div><div class='add'>+0xEFBD = 0x763F</div><div class='add'>+0xEFBE = 0x7640</div><div class='add'>+0xEFBF = 0x7641</div><div class='add'>+0xEFC0 = 0x7642</div><div class='add'>+0xEFC1 = 0x7643</div><div class='add'>+0xEFC2 = 0x7644</div><div class='add'>+0xEFC3 = 0x7645</div><div class='add'>+0xEFC4 = 0x7646</div><div class='add'>+0xEFC5 = 0x7647</div><div class='add'>+0xEFC6 = 0x7648</div><div class='add'>+0xEFC7 = 0x7649</div><div class='add'>+0xEFC8 = 0x764A</div><div class='add'>+0xEFC9 = 0x764B</div><div class='add'>+0xEFCA = 0x764C</div><div class='add'>+0xEFCB = 0x764D</div><div class='add'>+0xEFCC = 0x764E</div><div class='add'>+0xEFCD = 0x764F</div><div class='add'>+0xEFCE = 0x7650</div><div class='add'>+0xEFCF = 0x7651</div><div class='add'>+0xEFD0 = 0x7652</div><div class='add'>+0xEFD1 = 0x7653</div><div class='add'>+0xEFD2 = 0x7654</div><div class='add'>+0xEFD3 = 0x7655</div><div class='add'>+0xEFD4 = 0x7656</div><div class='add'>+0xEFD5 = 0x7657</div><div class='add'>+0xEFD6 = 0x7658</div><div class='add'>+0xEFD7 = 0x7659</div><div class='add'>+0xEFD8 = 0x765A</div><div class='add'>+0xEFD9 = 0x765B</div><div class='add'>+0xEFDA = 0x765C</div><div class='add'>+0xEFDB = 0x765D</div><div class='add'>+0xEFDC = 0x765E</div><div class='add'>+0xEFDD = 0x765F</div><div class='add'>+0xEFDE = 0x7660</div><div class='add'>+0xEFDF = 0x7661</div><div class='add'>+0xEFE0 = 0x7662</div><div class='add'>+0xEFE1 = 0x7663</div><div class='add'>+0xEFE2 = 0x7664</div><div class='add'>+0xEFE3 = 0x7665</div><div class='add'>+0xEFE4 = 0x7666</div><div class='add'>+0xEFE5 = 0x7667</div><div class='add'>+0xEFE6 = 0x7668</div><div class='add'>+0xEFE7 = 0x7669</div><div class='add'>+0xEFE8 = 0x766A</div><div class='add'>+0xEFE9 = 0x766B</div><div class='add'>+0xEFEA = 0x766C</div><div class='add'>+0xEFEB = 0x766D</div><div class='add'>+0xEFEC = 0x766E</div><div class='add'>+0xEFED = 0x766F</div><div class='add'>+0xEFEE = 0x7670</div><div class='add'>+0xEFEF = 0x7671</div><div class='add'>+0xEFF0 = 0x7672</div><div class='add'>+0xEFF1 = 0x7673</div><div class='add'>+0xEFF2 = 0x7674</div><div class='add'>+0xEFF3 = 0x7675</div><div class='add'>+0xEFF4 = 0x7676</div><div class='add'>+0xEFF5 = 0x7677</div><div class='add'>+0xEFF6 = 0x7678</div><div class='add'>+0xEFF7 = 0x7679</div><div class='add'>+0xEFF8 = 0x767A</div><div class='add'>+0xEFF9 = 0x767B</div><div class='add'>+0xEFFA = 0x767C</div><div class='add'>+0xEFFB = 0x767D</div><div class='add'>+0xEFFC = 0x767E</div><div class='add'>+0xF040 = 0x7721</div><div class='add'>+0xF041 = 0x7722</div><div class='add'>+0xF042 = 0x7723</div><div class='add'>+0xF043 = 0x7724</div><div class='add'>+0xF044 = 0x7725</div><div class='add'>+0xF045 = 0x7726</div><div class='add'>+0xF046 = 0x7727</div><div class='add'>+0xF047 = 0x7728</div><div class='add'>+0xF048 = 0x7729</div><div class='add'>+0xF049 = 0x772A</div><div class='add'>+0xF04A = 0x772B</div><div class='add'>+0xF04B = 0x772C</div><div class='add'>+0xF04C = 0x772D</div><div class='add'>+0xF04D = 0x772E</div><div class='add'>+0xF04E = 0x772F</div><div class='add'>+0xF04F = 0x7730</div><div class='add'>+0xF050 = 0x7731</div><div class='add'>+0xF051 = 0x7732</div><div class='add'>+0xF052 = 0x7733</div><div class='add'>+0xF053 = 0x7734</div><div class='add'>+0xF054 = 0x7735</div><div class='add'>+0xF055 = 0x7736</div><div class='add'>+0xF056 = 0x7737</div><div class='add'>+0xF057 = 0x7738</div><div class='add'>+0xF058 = 0x7739</div><div class='add'>+0xF059 = 0x773A</div><div class='add'>+0xF05A = 0x773B</div><div class='add'>+0xF05B = 0x773C</div><div class='add'>+0xF05C = 0x773D</div><div class='add'>+0xF05D = 0x773E</div><div class='add'>+0xF05E = 0x773F</div><div class='add'>+0xF05F = 0x7740</div><div class='add'>+0xF060 = 0x7741</div><div class='add'>+0xF061 = 0x7742</div><div class='add'>+0xF062 = 0x7743</div><div class='add'>+0xF063 = 0x7744</div><div class='add'>+0xF064 = 0x7745</div><div class='add'>+0xF065 = 0x7746</div><div class='add'>+0xF066 = 0x7747</div><div class='add'>+0xF067 = 0x7748</div><div class='add'>+0xF068 = 0x7749</div><div class='add'>+0xF069 = 0x774A</div><div class='add'>+0xF06A = 0x774B</div><div class='add'>+0xF06B = 0x774C</div><div class='add'>+0xF06C = 0x774D</div><div class='add'>+0xF06D = 0x774E</div><div class='add'>+0xF06E = 0x774F</div><div class='add'>+0xF06F = 0x7750</div><div class='add'>+0xF070 = 0x7751</div><div class='add'>+0xF071 = 0x7752</div><div class='add'>+0xF072 = 0x7753</div><div class='add'>+0xF073 = 0x7754</div><div class='add'>+0xF074 = 0x7755</div><div class='add'>+0xF075 = 0x7756</div><div class='add'>+0xF076 = 0x7757</div><div class='add'>+0xF077 = 0x7758</div><div class='add'>+0xF078 = 0x7759</div><div class='add'>+0xF079 = 0x775A</div><div class='add'>+0xF07A = 0x775B</div><div class='add'>+0xF07B = 0x775C</div><div class='add'>+0xF07C = 0x775D</div><div class='add'>+0xF07D = 0x775E</div><div class='add'>+0xF07E = 0x775F</div><div class='add'>+0xF080 = 0x7760</div><div class='add'>+0xF081 = 0x7761</div><div class='add'>+0xF082 = 0x7762</div><div class='add'>+0xF083 = 0x7763</div><div class='add'>+0xF084 = 0x7764</div><div class='add'>+0xF085 = 0x7765</div><div class='add'>+0xF086 = 0x7766</div><div class='add'>+0xF087 = 0x7767</div><div class='add'>+0xF088 = 0x7768</div><div class='add'>+0xF089 = 0x7769</div><div class='add'>+0xF08A = 0x776A</div><div class='add'>+0xF08B = 0x776B</div><div class='add'>+0xF08C = 0x776C</div><div class='add'>+0xF08D = 0x776D</div><div class='add'>+0xF08E = 0x776E</div><div class='add'>+0xF08F = 0x776F</div><div class='add'>+0xF090 = 0x7770</div><div class='add'>+0xF091 = 0x7771</div><div class='add'>+0xF092 = 0x7772</div><div class='add'>+0xF093 = 0x7773</div><div class='add'>+0xF094 = 0x7774</div><div class='add'>+0xF095 = 0x7775</div><div class='add'>+0xF096 = 0x7776</div><div class='add'>+0xF097 = 0x7777</div><div class='add'>+0xF098 = 0x7778</div><div class='add'>+0xF099 = 0x7779</div><div class='add'>+0xF09A = 0x777A</div><div class='add'>+0xF09B = 0x777B</div><div class='add'>+0xF09C = 0x777C</div><div class='add'>+0xF09D = 0x777D</div><div class='add'>+0xF09E = 0x777E</div><div class='add'>+0xF09F = 0x7821</div><div class='add'>+0xF0A0 = 0x7822</div><div class='add'>+0xF0A1 = 0x7823</div><div class='add'>+0xF0A2 = 0x7824</div><div class='add'>+0xF0A3 = 0x7825</div><div class='add'>+0xF0A4 = 0x7826</div><div class='add'>+0xF0A5 = 0x7827</div><div class='add'>+0xF0A6 = 0x7828</div><div class='add'>+0xF0A7 = 0x7829</div><div class='add'>+0xF0A8 = 0x782A</div><div class='add'>+0xF0A9 = 0x782B</div><div class='add'>+0xF0AA = 0x782C</div><div class='add'>+0xF0AB = 0x782D</div><div class='add'>+0xF0AC = 0x782E</div><div class='add'>+0xF0AD = 0x782F</div><div class='add'>+0xF0AE = 0x7830</div><div class='add'>+0xF0AF = 0x7831</div><div class='add'>+0xF0B0 = 0x7832</div><div class='add'>+0xF0B1 = 0x7833</div><div class='add'>+0xF0B2 = 0x7834</div><div class='add'>+0xF0B3 = 0x7835</div><div class='add'>+0xF0B4 = 0x7836</div><div class='add'>+0xF0B5 = 0x7837</div><div class='add'>+0xF0B6 = 0x7838</div><div class='add'>+0xF0B7 = 0x7839</div><div class='add'>+0xF0B8 = 0x783A</div><div class='add'>+0xF0B9 = 0x783B</div><div class='add'>+0xF0BA = 0x783C</div><div class='add'>+0xF0BB = 0x783D</div><div class='add'>+0xF0BC = 0x783E</div><div class='add'>+0xF0BD = 0x783F</div><div class='add'>+0xF0BE = 0x7840</div><div class='add'>+0xF0BF = 0x7841</div><div class='add'>+0xF0C0 = 0x7842</div><div class='add'>+0xF0C1 = 0x7843</div><div class='add'>+0xF0C2 = 0x7844</div><div class='add'>+0xF0C3 = 0x7845</div><div class='add'>+0xF0C4 = 0x7846</div><div class='add'>+0xF0C5 = 0x7847</div><div class='add'>+0xF0C6 = 0x7848</div><div class='add'>+0xF0C7 = 0x7849</div><div class='add'>+0xF0C8 = 0x784A</div><div class='add'>+0xF0C9 = 0x784B</div><div class='add'>+0xF0CA = 0x784C</div><div class='add'>+0xF0CB = 0x784D</div><div class='add'>+0xF0CC = 0x784E</div><div class='add'>+0xF0CD = 0x784F</div><div class='add'>+0xF0CE = 0x7850</div><div class='add'>+0xF0CF = 0x7851</div><div class='add'>+0xF0D0 = 0x7852</div><div class='add'>+0xF0D1 = 0x7853</div><div class='add'>+0xF0D2 = 0x7854</div><div class='add'>+0xF0D3 = 0x7855</div><div class='add'>+0xF0D4 = 0x7856</div><div class='add'>+0xF0D5 = 0x7857</div><div class='add'>+0xF0D6 = 0x7858</div><div class='add'>+0xF0D7 = 0x7859</div><div class='add'>+0xF0D8 = 0x785A</div><div class='add'>+0xF0D9 = 0x785B</div><div class='add'>+0xF0DA = 0x785C</div><div class='add'>+0xF0DB = 0x785D</div><div class='add'>+0xF0DC = 0x785E</div><div class='add'>+0xF0DD = 0x785F</div><div class='add'>+0xF0DE = 0x7860</div><div class='add'>+0xF0DF = 0x7861</div><div class='add'>+0xF0E0 = 0x7862</div><div class='add'>+0xF0E1 = 0x7863</div><div class='add'>+0xF0E2 = 0x7864</div><div class='add'>+0xF0E3 = 0x7865</div><div class='add'>+0xF0E4 = 0x7866</div><div class='add'>+0xF0E5 = 0x7867</div><div class='add'>+0xF0E6 = 0x7868</div><div class='add'>+0xF0E7 = 0x7869</div><div class='add'>+0xF0E8 = 0x786A</div><div class='add'>+0xF0E9 = 0x786B</div><div class='add'>+0xF0EA = 0x786C</div><div class='add'>+0xF0EB = 0x786D</div><div class='add'>+0xF0EC = 0x786E</div><div class='add'>+0xF0ED = 0x786F</div><div class='add'>+0xF0EE = 0x7870</div><div class='add'>+0xF0EF = 0x7871</div><div class='add'>+0xF0F0 = 0x7872</div><div class='add'>+0xF0F1 = 0x7873</div><div class='add'>+0xF0F2 = 0x7874</div><div class='add'>+0xF0F3 = 0x7875</div><div class='add'>+0xF0F4 = 0x7876</div><div class='add'>+0xF0F5 = 0x7877</div><div class='add'>+0xF0F6 = 0x7878</div><div class='add'>+0xF0F7 = 0x7879</div><div class='add'>+0xF0F8 = 0x787A</div><div class='add'>+0xF0F9 = 0x787B</div><div class='add'>+0xF0FA = 0x787C</div><div class='add'>+0xF0FB = 0x787D</div><div class='add'>+0xF0FC = 0x787E</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI.src b/enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI.src<br/>new file mode 100644<br/>index 0000000000..0ee6180a7b<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/UCS%25EMOJI_ISO-2022-JP-KDDI.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/UCS%EMOJI_ISO-2022-JP-KDDI.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		UCS/EMOJI_ISO-2022-JP-KDDI</div><div class='add'>+SRC_ZONE	0x21-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0xE468 = 0x7521</div><div class='add'>+0xE469 = 0x7522</div><div class='add'>+0xE46A = 0x7523</div><div class='add'>+0xE46B = 0x7524</div><div class='add'>+0xE46C = 0x7525</div><div class='add'>+0xE46D = 0x7526</div><div class='add'>+0xE46E = 0x7527</div><div class='add'>+0xE46F = 0x7528</div><div class='add'>+0xE470 = 0x7529</div><div class='add'>+0xE471 = 0x752A</div><div class='add'>+0xE472 = 0x752B</div><div class='add'>+0xE473 = 0x752C</div><div class='add'>+0xE474 = 0x752D</div><div class='add'>+0xE475 = 0x752E</div><div class='add'>+0xE476 = 0x752F</div><div class='add'>+0xE477 = 0x7530</div><div class='add'>+0xE478 = 0x7531</div><div class='add'>+0xE479 = 0x7532</div><div class='add'>+0xE47A = 0x7533</div><div class='add'>+0xE47B = 0x7534</div><div class='add'>+0xE47C = 0x7535</div><div class='add'>+0xE47D = 0x7536</div><div class='add'>+0xE47E = 0x7537</div><div class='add'>+0xE47F = 0x7538</div><div class='add'>+0xE480 = 0x7539</div><div class='add'>+0xE481 = 0x753A</div><div class='add'>+0xE482 = 0x753B</div><div class='add'>+0xE483 = 0x753C</div><div class='add'>+0xE484 = 0x753D</div><div class='add'>+0xE485 = 0x753E</div><div class='add'>+0xE486 = 0x753F</div><div class='add'>+0xE487 = 0x7540</div><div class='add'>+0xE488 = 0x7541</div><div class='add'>+0xE489 = 0x7542</div><div class='add'>+0xE48A = 0x7543</div><div class='add'>+0xE48B = 0x7544</div><div class='add'>+0xE48C = 0x7545</div><div class='add'>+0xE48D = 0x7546</div><div class='add'>+0xE48E = 0x7547</div><div class='add'>+0xE48F = 0x7548</div><div class='add'>+0xE490 = 0x7549</div><div class='add'>+0xE491 = 0x754A</div><div class='add'>+0xE492 = 0x754B</div><div class='add'>+0xE493 = 0x754C</div><div class='add'>+0xE494 = 0x754D</div><div class='add'>+0xE495 = 0x754E</div><div class='add'>+0xE496 = 0x754F</div><div class='add'>+0xE497 = 0x7550</div><div class='add'>+0xE498 = 0x7551</div><div class='add'>+0xE499 = 0x7552</div><div class='add'>+0xE49A = 0x7553</div><div class='add'>+0xE49B = 0x7554</div><div class='add'>+0xE49C = 0x7555</div><div class='add'>+0xE49D = 0x7556</div><div class='add'>+0xE49E = 0x7557</div><div class='add'>+0xE49F = 0x7558</div><div class='add'>+0xE4A0 = 0x7559</div><div class='add'>+0xE4A1 = 0x755A</div><div class='add'>+0xE4A2 = 0x755B</div><div class='add'>+0xE4A3 = 0x755C</div><div class='add'>+0xE4A4 = 0x755D</div><div class='add'>+0xE4A5 = 0x755E</div><div class='add'>+0xE4A6 = 0x755F</div><div class='add'>+0xE4A7 = 0x7560</div><div class='add'>+0xE4A8 = 0x7561</div><div class='add'>+0xE4A9 = 0x7562</div><div class='add'>+0xE4AA = 0x7563</div><div class='add'>+0xE4AB = 0x7564</div><div class='add'>+0xE4AC = 0x7565</div><div class='add'>+0xE4AD = 0x7566</div><div class='add'>+0xE4AE = 0x7567</div><div class='add'>+0xE4AF = 0x7568</div><div class='add'>+0xE4B0 = 0x7569</div><div class='add'>+0xE4B1 = 0x756A</div><div class='add'>+0xE4B2 = 0x756B</div><div class='add'>+0xE4B3 = 0x756C</div><div class='add'>+0xE4B4 = 0x756D</div><div class='add'>+0xE4B5 = 0x756E</div><div class='add'>+0xE4B6 = 0x756F</div><div class='add'>+0xE4B7 = 0x7570</div><div class='add'>+0xE4B8 = 0x7571</div><div class='add'>+0xE4B9 = 0x7572</div><div class='add'>+0xE4BA = 0x7573</div><div class='add'>+0xE4BB = 0x7574</div><div class='add'>+0xE4BC = 0x7575</div><div class='add'>+0xE4BD = 0x7576</div><div class='add'>+0xE4BE = 0x7577</div><div class='add'>+0xE4BF = 0x7578</div><div class='add'>+0xE4C0 = 0x7579</div><div class='add'>+0xE4C1 = 0x757A</div><div class='add'>+0xE4C2 = 0x757B</div><div class='add'>+0xE4C3 = 0x757C</div><div class='add'>+0xE4C4 = 0x757D</div><div class='add'>+0xE4C5 = 0x757E</div><div class='add'>+0xE4C6 = 0x7621</div><div class='add'>+0xE4C7 = 0x7622</div><div class='add'>+0xE4C8 = 0x7623</div><div class='add'>+0xE4C9 = 0x7624</div><div class='add'>+0xE4CA = 0x7625</div><div class='add'>+0xE4CB = 0x7626</div><div class='add'>+0xE4CC = 0x7627</div><div class='add'>+0xE4CD = 0x7628</div><div class='add'>+0xE4CE = 0x7629</div><div class='add'>+0xE4CF = 0x762A</div><div class='add'>+0xE4D0 = 0x762B</div><div class='add'>+0xE4D1 = 0x762C</div><div class='add'>+0xE4D2 = 0x762D</div><div class='add'>+0xE4D3 = 0x762E</div><div class='add'>+0xE4D4 = 0x762F</div><div class='add'>+0xE4D5 = 0x7630</div><div class='add'>+0xE4D6 = 0x7631</div><div class='add'>+0xE4D7 = 0x7632</div><div class='add'>+0xE4D8 = 0x7633</div><div class='add'>+0xE4D9 = 0x7634</div><div class='add'>+0xE4DA = 0x7635</div><div class='add'>+0xE4DB = 0x7636</div><div class='add'>+0xE4DC = 0x7637</div><div class='add'>+0xE4DD = 0x7638</div><div class='add'>+0xE4DE = 0x7639</div><div class='add'>+0xE4DF = 0x763A</div><div class='add'>+0xE4E0 = 0x763B</div><div class='add'>+0xE4E1 = 0x763C</div><div class='add'>+0xE4E2 = 0x763D</div><div class='add'>+0xE4E3 = 0x763E</div><div class='add'>+0xE4E4 = 0x763F</div><div class='add'>+0xE4E5 = 0x7640</div><div class='add'>+0xE4E6 = 0x7641</div><div class='add'>+0xE4E7 = 0x7642</div><div class='add'>+0xE4E8 = 0x7643</div><div class='add'>+0xE4E9 = 0x7644</div><div class='add'>+0xE4EA = 0x7645</div><div class='add'>+0xE4EB = 0x7646</div><div class='add'>+0xE4EC = 0x7647</div><div class='add'>+0xE4ED = 0x7648</div><div class='add'>+0xE4EE = 0x7649</div><div class='add'>+0xE4EF = 0x764A</div><div class='add'>+0xE4F0 = 0x764B</div><div class='add'>+0xE4F1 = 0x764C</div><div class='add'>+0xE4F2 = 0x764D</div><div class='add'>+0xE4F3 = 0x764E</div><div class='add'>+0xE4F4 = 0x764F</div><div class='add'>+0xE4F5 = 0x7650</div><div class='add'>+0xE4F6 = 0x7651</div><div class='add'>+0xE4F7 = 0x7652</div><div class='add'>+0xE4F8 = 0x7653</div><div class='add'>+0xE4F9 = 0x7654</div><div class='add'>+0xE4FA = 0x7655</div><div class='add'>+0xE4FB = 0x7656</div><div class='add'>+0xE4FC = 0x7657</div><div class='add'>+0xE4FD = 0x7658</div><div class='add'>+0xE4FE = 0x7659</div><div class='add'>+0xE4FF = 0x765A</div><div class='add'>+0xE500 = 0x765B</div><div class='add'>+0xE501 = 0x765C</div><div class='add'>+0xE502 = 0x765D</div><div class='add'>+0xE503 = 0x765E</div><div class='add'>+0xE504 = 0x765F</div><div class='add'>+0xE505 = 0x7660</div><div class='add'>+0xE506 = 0x7661</div><div class='add'>+0xE507 = 0x7662</div><div class='add'>+0xE508 = 0x7663</div><div class='add'>+0xE509 = 0x7664</div><div class='add'>+0xE50A = 0x7665</div><div class='add'>+0xE50B = 0x7666</div><div class='add'>+0xE50C = 0x7667</div><div class='add'>+0xE50D = 0x7668</div><div class='add'>+0xE50E = 0x7669</div><div class='add'>+0xE50F = 0x766A</div><div class='add'>+0xE510 = 0x766B</div><div class='add'>+0xE511 = 0x766C</div><div class='add'>+0xE512 = 0x766D</div><div class='add'>+0xE513 = 0x766E</div><div class='add'>+0xE514 = 0x766F</div><div class='add'>+0xE515 = 0x7670</div><div class='add'>+0xE516 = 0x7671</div><div class='add'>+0xE517 = 0x7672</div><div class='add'>+0xE518 = 0x7673</div><div class='add'>+0xE519 = 0x7674</div><div class='add'>+0xE51A = 0x7675</div><div class='add'>+0xE51B = 0x7676</div><div class='add'>+0xE51C = 0x7677</div><div class='add'>+0xE51D = 0x7678</div><div class='add'>+0xE51E = 0x7679</div><div class='add'>+0xE51F = 0x767A</div><div class='add'>+0xE520 = 0x767B</div><div class='add'>+0xE521 = 0x767C</div><div class='add'>+0xE522 = 0x767D</div><div class='add'>+0xE523 = 0x767E</div><div class='add'>+0xE524 = 0x7721</div><div class='add'>+0xE525 = 0x7722</div><div class='add'>+0xE526 = 0x7723</div><div class='add'>+0xE527 = 0x7724</div><div class='add'>+0xE528 = 0x7725</div><div class='add'>+0xE529 = 0x7726</div><div class='add'>+0xE52A = 0x7727</div><div class='add'>+0xE52B = 0x7728</div><div class='add'>+0xE52C = 0x7729</div><div class='add'>+0xE52D = 0x772A</div><div class='add'>+0xE52E = 0x772B</div><div class='add'>+0xE52F = 0x772C</div><div class='add'>+0xE530 = 0x772D</div><div class='add'>+0xE531 = 0x772E</div><div class='add'>+0xE532 = 0x772F</div><div class='add'>+0xE533 = 0x7730</div><div class='add'>+0xE534 = 0x7731</div><div class='add'>+0xE535 = 0x7732</div><div class='add'>+0xE536 = 0x7733</div><div class='add'>+0xE537 = 0x7734</div><div class='add'>+0xE538 = 0x7735</div><div class='add'>+0xE539 = 0x7736</div><div class='add'>+0xE53A = 0x7737</div><div class='add'>+0xE53B = 0x7738</div><div class='add'>+0xE53C = 0x7739</div><div class='add'>+0xE53D = 0x773A</div><div class='add'>+0xE53E = 0x773B</div><div class='add'>+0xE53F = 0x773C</div><div class='add'>+0xE540 = 0x773D</div><div class='add'>+0xE541 = 0x773E</div><div class='add'>+0xE542 = 0x773F</div><div class='add'>+0xE543 = 0x7740</div><div class='add'>+0xE544 = 0x7741</div><div class='add'>+0xE545 = 0x7742</div><div class='add'>+0xE546 = 0x7743</div><div class='add'>+0xE547 = 0x7744</div><div class='add'>+0xE548 = 0x7745</div><div class='add'>+0xE549 = 0x7746</div><div class='add'>+0xE54A = 0x7747</div><div class='add'>+0xE54B = 0x7748</div><div class='add'>+0xE54C = 0x7749</div><div class='add'>+0xE54D = 0x774A</div><div class='add'>+0xE54E = 0x774B</div><div class='add'>+0xE54F = 0x774C</div><div class='add'>+0xE550 = 0x774D</div><div class='add'>+0xE551 = 0x774E</div><div class='add'>+0xE552 = 0x774F</div><div class='add'>+0xE553 = 0x7750</div><div class='add'>+0xE554 = 0x7751</div><div class='add'>+0xE555 = 0x7752</div><div class='add'>+0xE556 = 0x7753</div><div class='add'>+0xE557 = 0x7754</div><div class='add'>+0xE558 = 0x7755</div><div class='add'>+0xE559 = 0x7756</div><div class='add'>+0xE55A = 0x7757</div><div class='add'>+0xE55B = 0x7758</div><div class='add'>+0xE55C = 0x7759</div><div class='add'>+0xE55D = 0x775A</div><div class='add'>+0xE55E = 0x775B</div><div class='add'>+0xE55F = 0x775C</div><div class='add'>+0xE560 = 0x775D</div><div class='add'>+0xE561 = 0x775E</div><div class='add'>+0xE562 = 0x775F</div><div class='add'>+0xE563 = 0x7760</div><div class='add'>+0xE564 = 0x7761</div><div class='add'>+0xE565 = 0x7762</div><div class='add'>+0xE566 = 0x7763</div><div class='add'>+0xE567 = 0x7764</div><div class='add'>+0xE568 = 0x7765</div><div class='add'>+0xE569 = 0x7766</div><div class='add'>+0xE56A = 0x7767</div><div class='add'>+0xE56B = 0x7768</div><div class='add'>+0xE56C = 0x7769</div><div class='add'>+0xE56D = 0x776A</div><div class='add'>+0xE56E = 0x776B</div><div class='add'>+0xE56F = 0x776C</div><div class='add'>+0xE570 = 0x776D</div><div class='add'>+0xE571 = 0x776E</div><div class='add'>+0xE572 = 0x776F</div><div class='add'>+0xE573 = 0x7770</div><div class='add'>+0xE574 = 0x7771</div><div class='add'>+0xE575 = 0x7772</div><div class='add'>+0xE576 = 0x7773</div><div class='add'>+0xE577 = 0x7774</div><div class='add'>+0xE578 = 0x7775</div><div class='add'>+0xE579 = 0x7776</div><div class='add'>+0xE57A = 0x7777</div><div class='add'>+0xE57B = 0x7778</div><div class='add'>+0xE57C = 0x7779</div><div class='add'>+0xE57D = 0x777A</div><div class='add'>+0xE57E = 0x777B</div><div class='add'>+0xE57F = 0x777C</div><div class='add'>+0xE580 = 0x777D</div><div class='add'>+0xE581 = 0x777E</div><div class='add'>+0xE582 = 0x7821</div><div class='add'>+0xE583 = 0x7822</div><div class='add'>+0xE584 = 0x7823</div><div class='add'>+0xE585 = 0x7824</div><div class='add'>+0xE586 = 0x7825</div><div class='add'>+0xE587 = 0x7826</div><div class='add'>+0xE588 = 0x7827</div><div class='add'>+0xE589 = 0x7828</div><div class='add'>+0xE58A = 0x7829</div><div class='add'>+0xE58B = 0x782A</div><div class='add'>+0xE58C = 0x782B</div><div class='add'>+0xE58D = 0x782C</div><div class='add'>+0xE58E = 0x782D</div><div class='add'>+0xE58F = 0x782E</div><div class='add'>+0xE590 = 0x782F</div><div class='add'>+0xE591 = 0x7830</div><div class='add'>+0xE592 = 0x7831</div><div class='add'>+0xE593 = 0x7832</div><div class='add'>+0xE594 = 0x7833</div><div class='add'>+0xE595 = 0x7834</div><div class='add'>+0xE596 = 0x7835</div><div class='add'>+0xE597 = 0x7836</div><div class='add'>+0xE598 = 0x7837</div><div class='add'>+0xE599 = 0x7838</div><div class='add'>+0xE59A = 0x7839</div><div class='add'>+0xE59B = 0x783A</div><div class='add'>+0xE59C = 0x783B</div><div class='add'>+0xE59D = 0x783C</div><div class='add'>+0xE59E = 0x783D</div><div class='add'>+0xE59F = 0x783E</div><div class='add'>+0xE5A0 = 0x783F</div><div class='add'>+0xE5A1 = 0x7840</div><div class='add'>+0xE5A2 = 0x7841</div><div class='add'>+0xE5A3 = 0x7842</div><div class='add'>+0xE5A4 = 0x7843</div><div class='add'>+0xE5A5 = 0x7844</div><div class='add'>+0xE5A6 = 0x7845</div><div class='add'>+0xE5A7 = 0x7846</div><div class='add'>+0xE5A8 = 0x7847</div><div class='add'>+0xE5A9 = 0x7848</div><div class='add'>+0xE5AA = 0x7849</div><div class='add'>+0xE5AB = 0x784A</div><div class='add'>+0xE5AC = 0x784B</div><div class='add'>+0xE5AD = 0x784C</div><div class='add'>+0xE5AE = 0x784D</div><div class='add'>+0xE5AF = 0x784E</div><div class='add'>+0xE5B0 = 0x784F</div><div class='add'>+0xE5B1 = 0x7850</div><div class='add'>+0xE5B2 = 0x7851</div><div class='add'>+0xE5B3 = 0x7852</div><div class='add'>+0xE5B4 = 0x7853</div><div class='add'>+0xE5B5 = 0x7867</div><div class='add'>+0xE5B6 = 0x7868</div><div class='add'>+0xE5B7 = 0x7869</div><div class='add'>+0xE5B8 = 0x786A</div><div class='add'>+0xE5B9 = 0x786B</div><div class='add'>+0xE5BA = 0x786C</div><div class='add'>+0xE5BB = 0x786D</div><div class='add'>+0xE5BC = 0x786E</div><div class='add'>+0xE5BD = 0x786F</div><div class='add'>+0xE5BE = 0x7870</div><div class='add'>+0xE5BF = 0x7871</div><div class='add'>+0xE5C0 = 0x7872</div><div class='add'>+0xE5C1 = 0x7873</div><div class='add'>+0xE5C2 = 0x7874</div><div class='add'>+0xE5C3 = 0x7875</div><div class='add'>+0xE5C4 = 0x7876</div><div class='add'>+0xE5C5 = 0x7877</div><div class='add'>+0xE5C6 = 0x7878</div><div class='add'>+0xE5C7 = 0x7879</div><div class='add'>+0xE5C8 = 0x787A</div><div class='add'>+0xE5C9 = 0x787B</div><div class='add'>+0xE5CA = 0x787C</div><div class='add'>+0xE5CB = 0x787D</div><div class='add'>+0xE5CC = 0x787E</div><div class='add'>+0xE5CD = 0x7921</div><div class='add'>+0xE5CE = 0x7922</div><div class='add'>+0xE5CF = 0x7923</div><div class='add'>+0xE5D0 = 0x7924</div><div class='add'>+0xE5D1 = 0x7925</div><div class='add'>+0xE5D2 = 0x7926</div><div class='add'>+0xE5D3 = 0x7927</div><div class='add'>+0xE5D4 = 0x7928</div><div class='add'>+0xE5D5 = 0x7929</div><div class='add'>+0xE5D6 = 0x792A</div><div class='add'>+0xE5D7 = 0x792B</div><div class='add'>+0xE5D8 = 0x792C</div><div class='add'>+0xE5D9 = 0x792D</div><div class='add'>+0xE5DA = 0x792E</div><div class='add'>+0xE5DB = 0x792F</div><div class='add'>+0xE5DC = 0x7930</div><div class='add'>+0xE5DD = 0x7931</div><div class='add'>+0xE5DE = 0x7932</div><div class='add'>+0xE5DF = 0x7933</div><div class='add'>+0xEA80 = 0x7934</div><div class='add'>+0xEA81 = 0x7935</div><div class='add'>+0xEA82 = 0x7936</div><div class='add'>+0xEA83 = 0x7937</div><div class='add'>+0xEA84 = 0x7938</div><div class='add'>+0xEA85 = 0x7939</div><div class='add'>+0xEA86 = 0x793A</div><div class='add'>+0xEA87 = 0x793B</div><div class='add'>+0xEA88 = 0x793C</div><div class='add'>+0xEA89 = 0x793D</div><div class='add'>+0xEA8A = 0x793E</div><div class='add'>+0xEA8B = 0x793F</div><div class='add'>+0xEA8C = 0x7940</div><div class='add'>+0xEA8D = 0x7941</div><div class='add'>+0xEA8E = 0x7942</div><div class='add'>+0xEA8F = 0x7943</div><div class='add'>+0xEA90 = 0x7944</div><div class='add'>+0xEA91 = 0x7945</div><div class='add'>+0xEA92 = 0x7946</div><div class='add'>+0xEA93 = 0x7947</div><div class='add'>+0xEA94 = 0x7948</div><div class='add'>+0xEA95 = 0x7949</div><div class='add'>+0xEA96 = 0x794A</div><div class='add'>+0xEA97 = 0x794B</div><div class='add'>+0xEA98 = 0x794C</div><div class='add'>+0xEA99 = 0x794D</div><div class='add'>+0xEA9A = 0x794E</div><div class='add'>+0xEA9B = 0x794F</div><div class='add'>+0xEA9C = 0x7950</div><div class='add'>+0xEA9D = 0x7951</div><div class='add'>+0xEA9E = 0x7952</div><div class='add'>+0xEA9F = 0x7953</div><div class='add'>+0xEAA0 = 0x7954</div><div class='add'>+0xEAA1 = 0x7955</div><div class='add'>+0xEAA2 = 0x7956</div><div class='add'>+0xEAA3 = 0x7957</div><div class='add'>+0xEAA4 = 0x7958</div><div class='add'>+0xEAA5 = 0x7959</div><div class='add'>+0xEAA6 = 0x795A</div><div class='add'>+0xEAA7 = 0x795B</div><div class='add'>+0xEAA8 = 0x795C</div><div class='add'>+0xEAA9 = 0x795D</div><div class='add'>+0xEAAA = 0x795E</div><div class='add'>+0xEAAB = 0x795F</div><div class='add'>+0xEAAC = 0x7960</div><div class='add'>+0xEAAD = 0x7961</div><div class='add'>+0xEAAE = 0x7962</div><div class='add'>+0xEAAF = 0x7963</div><div class='add'>+0xEAB0 = 0x7964</div><div class='add'>+0xEAB1 = 0x7965</div><div class='add'>+0xEAB2 = 0x7966</div><div class='add'>+0xEAB3 = 0x7967</div><div class='add'>+0xEAB4 = 0x7968</div><div class='add'>+0xEAB5 = 0x7969</div><div class='add'>+0xEAB6 = 0x796A</div><div class='add'>+0xEAB7 = 0x796B</div><div class='add'>+0xEAB8 = 0x796C</div><div class='add'>+0xEAB9 = 0x796D</div><div class='add'>+0xEABA = 0x796E</div><div class='add'>+0xEABB = 0x796F</div><div class='add'>+0xEABC = 0x7970</div><div class='add'>+0xEABD = 0x7971</div><div class='add'>+0xEABE = 0x7972</div><div class='add'>+0xEABF = 0x7973</div><div class='add'>+0xEAC0 = 0x7974</div><div class='add'>+0xEAC1 = 0x7975</div><div class='add'>+0xEAC2 = 0x7976</div><div class='add'>+0xEAC3 = 0x7977</div><div class='add'>+0xEAC4 = 0x7978</div><div class='add'>+0xEAC5 = 0x7979</div><div class='add'>+0xEAC6 = 0x797A</div><div class='add'>+0xEAC7 = 0x797B</div><div class='add'>+0xEAC8 = 0x797C</div><div class='add'>+0xEAC9 = 0x797D</div><div class='add'>+0xEACA = 0x797E</div><div class='add'>+0xEACB = 0x7A21</div><div class='add'>+0xEACC = 0x7A22</div><div class='add'>+0xEACD = 0x7A23</div><div class='add'>+0xEACE = 0x7A24</div><div class='add'>+0xEACF = 0x7A25</div><div class='add'>+0xEAD0 = 0x7A26</div><div class='add'>+0xEAD1 = 0x7A27</div><div class='add'>+0xEAD2 = 0x7A28</div><div class='add'>+0xEAD3 = 0x7A29</div><div class='add'>+0xEAD4 = 0x7A2A</div><div class='add'>+0xEAD5 = 0x7A2B</div><div class='add'>+0xEAD6 = 0x7A2C</div><div class='add'>+0xEAD7 = 0x7A2D</div><div class='add'>+0xEAD8 = 0x7A2E</div><div class='add'>+0xEAD9 = 0x7A2F</div><div class='add'>+0xEADA = 0x7A30</div><div class='add'>+0xEADB = 0x7A31</div><div class='add'>+0xEADC = 0x7A32</div><div class='add'>+0xEADD = 0x7A33</div><div class='add'>+0xEADE = 0x7A34</div><div class='add'>+0xEADF = 0x7A35</div><div class='add'>+0xEAE0 = 0x7A36</div><div class='add'>+0xEAE1 = 0x7A37</div><div class='add'>+0xEAE2 = 0x7A38</div><div class='add'>+0xEAE3 = 0x7A39</div><div class='add'>+0xEAE4 = 0x7A3A</div><div class='add'>+0xEAE5 = 0x7A3B</div><div class='add'>+0xEAE6 = 0x7A3C</div><div class='add'>+0xEAE7 = 0x7A3D</div><div class='add'>+0xEAE8 = 0x7A3E</div><div class='add'>+0xEAE9 = 0x7A3F</div><div class='add'>+0xEAEA = 0x7A40</div><div class='add'>+0xEAEB = 0x7A41</div><div class='add'>+0xEAEC = 0x7A42</div><div class='add'>+0xEAED = 0x7A43</div><div class='add'>+0xEAEE = 0x7A44</div><div class='add'>+0xEAEF = 0x7A45</div><div class='add'>+0xEAF0 = 0x7A46</div><div class='add'>+0xEAF1 = 0x7A47</div><div class='add'>+0xEAF2 = 0x7A48</div><div class='add'>+0xEAF3 = 0x7A49</div><div class='add'>+0xEAF4 = 0x7A4A</div><div class='add'>+0xEAF5 = 0x7A4B</div><div class='add'>+0xEAF6 = 0x7A4C</div><div class='add'>+0xEAF7 = 0x7A4D</div><div class='add'>+0xEAF8 = 0x7A4E</div><div class='add'>+0xEAF9 = 0x7A4F</div><div class='add'>+0xEAFA = 0x7A50</div><div class='add'>+0xEAFB = 0x7854</div><div class='add'>+0xEAFC = 0x7855</div><div class='add'>+0xEAFD = 0x7856</div><div class='add'>+0xEAFE = 0x7857</div><div class='add'>+0xEAFF = 0x7858</div><div class='add'>+0xEB00 = 0x7859</div><div class='add'>+0xEB01 = 0x785A</div><div class='add'>+0xEB02 = 0x785B</div><div class='add'>+0xEB03 = 0x785C</div><div class='add'>+0xEB04 = 0x785D</div><div class='add'>+0xEB05 = 0x785E</div><div class='add'>+0xEB06 = 0x785F</div><div class='add'>+0xEB07 = 0x7860</div><div class='add'>+0xEB08 = 0x7861</div><div class='add'>+0xEB09 = 0x7862</div><div class='add'>+0xEB0A = 0x7863</div><div class='add'>+0xEB0B = 0x7864</div><div class='add'>+0xEB0C = 0x7865</div><div class='add'>+0xEB0D = 0x7866</div><div class='add'>+0xEB0E = 0x7A51</div><div class='add'>+0xEB0F = 0x7A52</div><div class='add'>+0xEB10 = 0x7A53</div><div class='add'>+0xEB11 = 0x7A54</div><div class='add'>+0xEB12 = 0x7A55</div><div class='add'>+0xEB13 = 0x7A56</div><div class='add'>+0xEB14 = 0x7A57</div><div class='add'>+0xEB15 = 0x7A58</div><div class='add'>+0xEB16 = 0x7A59</div><div class='add'>+0xEB17 = 0x7A5A</div><div class='add'>+0xEB18 = 0x7A5B</div><div class='add'>+0xEB19 = 0x7A5C</div><div class='add'>+0xEB1A = 0x7A5D</div><div class='add'>+0xEB1B = 0x7A5E</div><div class='add'>+0xEB1C = 0x7A5F</div><div class='add'>+0xEB1D = 0x7A60</div><div class='add'>+0xEB1E = 0x7A61</div><div class='add'>+0xEB1F = 0x7A62</div><div class='add'>+0xEB20 = 0x7A63</div><div class='add'>+0xEB21 = 0x7A64</div><div class='add'>+0xEB22 = 0x7A65</div><div class='add'>+0xEB23 = 0x7A66</div><div class='add'>+0xEB24 = 0x7A67</div><div class='add'>+0xEB25 = 0x7A68</div><div class='add'>+0xEB26 = 0x7A69</div><div class='add'>+0xEB27 = 0x7A6A</div><div class='add'>+0xEB28 = 0x7A6B</div><div class='add'>+0xEB29 = 0x7A6C</div><div class='add'>+0xEB2A = 0x7A6D</div><div class='add'>+0xEB2B = 0x7A6E</div><div class='add'>+0xEB2C = 0x7A6F</div><div class='add'>+0xEB2D = 0x7A70</div><div class='add'>+0xEB2E = 0x7A71</div><div class='add'>+0xEB2F = 0x7A72</div><div class='add'>+0xEB30 = 0x7A73</div><div class='add'>+0xEB31 = 0x7A74</div><div class='add'>+0xEB32 = 0x7A75</div><div class='add'>+0xEB33 = 0x7A76</div><div class='add'>+0xEB34 = 0x7A77</div><div class='add'>+0xEB35 = 0x7A78</div><div class='add'>+0xEB36 = 0x7A79</div><div class='add'>+0xEB37 = 0x7A7A</div><div class='add'>+0xEB38 = 0x7A7B</div><div class='add'>+0xEB39 = 0x7A7C</div><div class='add'>+0xEB3A = 0x7A7D</div><div class='add'>+0xEB3B = 0x7A7E</div><div class='add'>+0xEB3C = 0x7B21</div><div class='add'>+0xEB3D = 0x7B22</div><div class='add'>+0xEB3E = 0x7B23</div><div class='add'>+0xEB3F = 0x7B24</div><div class='add'>+0xEB40 = 0x7B25</div><div class='add'>+0xEB41 = 0x7B26</div><div class='add'>+0xEB42 = 0x7B27</div><div class='add'>+0xEB43 = 0x7B28</div><div class='add'>+0xEB44 = 0x7B29</div><div class='add'>+0xEB45 = 0x7B2A</div><div class='add'>+0xEB46 = 0x7B2B</div><div class='add'>+0xEB47 = 0x7B2C</div><div class='add'>+0xEB48 = 0x7B2D</div><div class='add'>+0xEB49 = 0x7B2E</div><div class='add'>+0xEB4A = 0x7B2F</div><div class='add'>+0xEB4B = 0x7B30</div><div class='add'>+0xEB4C = 0x7B31</div><div class='add'>+0xEB4D = 0x7B32</div><div class='add'>+0xEB4E = 0x7B33</div><div class='add'>+0xEB4F = 0x7B34</div><div class='add'>+0xEB50 = 0x7B35</div><div class='add'>+0xEB51 = 0x7B36</div><div class='add'>+0xEB52 = 0x7B37</div><div class='add'>+0xEB53 = 0x7B38</div><div class='add'>+0xEB54 = 0x7B39</div><div class='add'>+0xEB55 = 0x7B3A</div><div class='add'>+0xEB56 = 0x7B3B</div><div class='add'>+0xEB57 = 0x7B3C</div><div class='add'>+0xEB58 = 0x7B3D</div><div class='add'>+0xEB59 = 0x7B3E</div><div class='add'>+0xEB5A = 0x7B3F</div><div class='add'>+0xEB5B = 0x7B40</div><div class='add'>+0xEB5C = 0x7B41</div><div class='add'>+0xEB5D = 0x7B42</div><div class='add'>+0xEB5E = 0x7B43</div><div class='add'>+0xEB5F = 0x7B44</div><div class='add'>+0xEB60 = 0x7B45</div><div class='add'>+0xEB61 = 0x7B46</div><div class='add'>+0xEB62 = 0x7B47</div><div class='add'>+0xEB63 = 0x7B48</div><div class='add'>+0xEB64 = 0x7B49</div><div class='add'>+0xEB65 = 0x7B4A</div><div class='add'>+0xEB66 = 0x7B4B</div><div class='add'>+0xEB67 = 0x7B4C</div><div class='add'>+0xEB68 = 0x7B4D</div><div class='add'>+0xEB69 = 0x7B4E</div><div class='add'>+0xEB6A = 0x7B4F</div><div class='add'>+0xEB6B = 0x7B50</div><div class='add'>+0xEB6C = 0x7B51</div><div class='add'>+0xEB6D = 0x7B52</div><div class='add'>+0xEB6E = 0x7B53</div><div class='add'>+0xEB6F = 0x7B54</div><div class='add'>+0xEB70 = 0x7B55</div><div class='add'>+0xEB71 = 0x7B56</div><div class='add'>+0xEB72 = 0x7B57</div><div class='add'>+0xEB73 = 0x7B58</div><div class='add'>+0xEB74 = 0x7B59</div><div class='add'>+0xEB75 = 0x7B5A</div><div class='add'>+0xEB76 = 0x7B5B</div><div class='add'>+0xEB77 = 0x7B5C</div><div class='add'>+0xEB78 = 0x7B5D</div><div class='add'>+0xEB79 = 0x7B5E</div><div class='add'>+0xEB7A = 0x7B5F</div><div class='add'>+0xEB7B = 0x7B60</div><div class='add'>+0xEB7C = 0x7B61</div><div class='add'>+0xEB7D = 0x7B62</div><div class='add'>+0xEB7E = 0x7B63</div><div class='add'>+0xEB7F = 0x7B64</div><div class='add'>+0xEB80 = 0x7B65</div><div class='add'>+0xEB81 = 0x7B66</div><div class='add'>+0xEB82 = 0x7B67</div><div class='add'>+0xEB83 = 0x7B68</div><div class='add'>+0xEB84 = 0x7B69</div><div class='add'>+0xEB85 = 0x7B6A</div><div class='add'>+0xEB86 = 0x7B6B</div><div class='add'>+0xEB87 = 0x7B6C</div><div class='add'>+0xEB88 = 0x7B6D</div><div class='add'>+0xEB89 = 0x7B6E</div><div class='add'>+0xEB8A = 0x7B6F</div><div class='add'>+0xEB8B = 0x7B70</div><div class='add'>+0xEB8C = 0x7B71</div><div class='add'>+0xEB8D = 0x7B72</div><div class='add'>+0xEB8E = 0x7B73</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-DOCOMO.src b/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-DOCOMO.src<br/>new file mode 100644<br/>index 0000000000..9983962c5f<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-DOCOMO.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-DOCOMO.src</a></div><div class='hunk'>@@ -0,0 +1,293 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		UCS/EMOJI_SHIFT_JIS-DOCOMO</div><div class='add'>+SRC_ZONE	0xF8-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0xE63E = 0x9021</div><div class='add'>+0xE63F = 0x9022</div><div class='add'>+0xE640 = 0x9023</div><div class='add'>+0xE641 = 0x9024</div><div class='add'>+0xE642 = 0x9025</div><div class='add'>+0xE643 = 0x9026</div><div class='add'>+0xE644 = 0x9027</div><div class='add'>+0xE645 = 0x9028</div><div class='add'>+0xE646 = 0x9029</div><div class='add'>+0xE647 = 0x902A</div><div class='add'>+0xE648 = 0x902B</div><div class='add'>+0xE649 = 0x902C</div><div class='add'>+0xE64A = 0x902D</div><div class='add'>+0xE64B = 0x902E</div><div class='add'>+0xE64C = 0x902F</div><div class='add'>+0xE64D = 0x9030</div><div class='add'>+0xE64E = 0x9031</div><div class='add'>+0xE64F = 0x9032</div><div class='add'>+0xE650 = 0x9033</div><div class='add'>+0xE651 = 0x9034</div><div class='add'>+0xE652 = 0x9035</div><div class='add'>+0xE653 = 0x9036</div><div class='add'>+0xE654 = 0x9037</div><div class='add'>+0xE655 = 0x9038</div><div class='add'>+0xE656 = 0x9039</div><div class='add'>+0xE657 = 0x903A</div><div class='add'>+0xE658 = 0x903B</div><div class='add'>+0xE659 = 0x903C</div><div class='add'>+0xE65A = 0x903D</div><div class='add'>+0xE65B = 0x903E</div><div class='add'>+0xE65C = 0x903F</div><div class='add'>+0xE65D = 0x9040</div><div class='add'>+0xE65E = 0x9041</div><div class='add'>+0xE65F = 0x9042</div><div class='add'>+0xE660 = 0x9043</div><div class='add'>+0xE661 = 0x9044</div><div class='add'>+0xE662 = 0x9045</div><div class='add'>+0xE663 = 0x9046</div><div class='add'>+0xE664 = 0x9047</div><div class='add'>+0xE665 = 0x9048</div><div class='add'>+0xE666 = 0x9049</div><div class='add'>+0xE667 = 0x904A</div><div class='add'>+0xE668 = 0x904B</div><div class='add'>+0xE669 = 0x904C</div><div class='add'>+0xE66A = 0x904D</div><div class='add'>+0xE66B = 0x904E</div><div class='add'>+0xE66C = 0x904F</div><div class='add'>+0xE66D = 0x9050</div><div class='add'>+0xE66E = 0x9051</div><div class='add'>+0xE66F = 0x9052</div><div class='add'>+0xE670 = 0x9053</div><div class='add'>+0xE671 = 0x9054</div><div class='add'>+0xE672 = 0x9055</div><div class='add'>+0xE673 = 0x9056</div><div class='add'>+0xE674 = 0x9057</div><div class='add'>+0xE675 = 0x9058</div><div class='add'>+0xE676 = 0x9059</div><div class='add'>+0xE677 = 0x905A</div><div class='add'>+0xE678 = 0x905B</div><div class='add'>+0xE679 = 0x905C</div><div class='add'>+0xE67A = 0x905D</div><div class='add'>+0xE67B = 0x905E</div><div class='add'>+0xE67C = 0x905F</div><div class='add'>+0xE67D = 0x9060</div><div class='add'>+0xE67E = 0x9061</div><div class='add'>+0xE67F = 0x9062</div><div class='add'>+0xE680 = 0x9063</div><div class='add'>+0xE681 = 0x9064</div><div class='add'>+0xE682 = 0x9065</div><div class='add'>+0xE683 = 0x9066</div><div class='add'>+0xE684 = 0x9067</div><div class='add'>+0xE685 = 0x9068</div><div class='add'>+0xE686 = 0x9069</div><div class='add'>+0xE687 = 0x906A</div><div class='add'>+0xE688 = 0x906B</div><div class='add'>+0xE689 = 0x906C</div><div class='add'>+0xE68A = 0x906D</div><div class='add'>+0xE68B = 0x906E</div><div class='add'>+0xE68C = 0x906F</div><div class='add'>+0xE68D = 0x9070</div><div class='add'>+0xE68E = 0x9071</div><div class='add'>+0xE68F = 0x9072</div><div class='add'>+0xE690 = 0x9073</div><div class='add'>+0xE691 = 0x9074</div><div class='add'>+0xE692 = 0x9075</div><div class='add'>+0xE693 = 0x9076</div><div class='add'>+0xE694 = 0x9077</div><div class='add'>+0xE695 = 0x9078</div><div class='add'>+0xE696 = 0x9079</div><div class='add'>+0xE697 = 0x907A</div><div class='add'>+0xE698 = 0x907B</div><div class='add'>+0xE699 = 0x907C</div><div class='add'>+0xE69A = 0x907D</div><div class='add'>+0xE69B = 0x907E</div><div class='add'>+0xE69C = 0x9121</div><div class='add'>+0xE69D = 0x9122</div><div class='add'>+0xE69E = 0x9123</div><div class='add'>+0xE69F = 0x9124</div><div class='add'>+0xE6A0 = 0x9125</div><div class='add'>+0xE6A1 = 0x9126</div><div class='add'>+0xE6A2 = 0x9127</div><div class='add'>+0xE6A3 = 0x9128</div><div class='add'>+0xE6A4 = 0x9129</div><div class='add'>+0xE6A5 = 0x912A</div><div class='add'>+0xE6A6 = 0x912B</div><div class='add'>+0xE6A7 = 0x912C</div><div class='add'>+0xE6A8 = 0x912D</div><div class='add'>+0xE6A9 = 0x912E</div><div class='add'>+0xE6AA = 0x912F</div><div class='add'>+0xE6AB = 0x9130</div><div class='add'>+0xE6AC = 0x9131</div><div class='add'>+0xE6AD = 0x9132</div><div class='add'>+0xE6AE = 0x9133</div><div class='add'>+0xE6AF = 0x9134</div><div class='add'>+0xE6B0 = 0x9135</div><div class='add'>+0xE6B1 = 0x9136</div><div class='add'>+0xE6B2 = 0x9137</div><div class='add'>+0xE6B3 = 0x9138</div><div class='add'>+0xE6B4 = 0x9139</div><div class='add'>+0xE6B5 = 0x913A</div><div class='add'>+0xE6B6 = 0x913B</div><div class='add'>+0xE6B7 = 0x913C</div><div class='add'>+0xE6B8 = 0x913D</div><div class='add'>+0xE6B9 = 0x913E</div><div class='add'>+0xE6BA = 0x913F</div><div class='add'>+0xE6BB = 0x9140</div><div class='add'>+0xE6BC = 0x9141</div><div class='add'>+0xE6BD = 0x9142</div><div class='add'>+0xE6BE = 0x9143</div><div class='add'>+0xE6BF = 0x9144</div><div class='add'>+0xE6C0 = 0x9145</div><div class='add'>+0xE6C1 = 0x9146</div><div class='add'>+0xE6C2 = 0x9147</div><div class='add'>+0xE6C3 = 0x9148</div><div class='add'>+0xE6C4 = 0x9149</div><div class='add'>+0xE6C5 = 0x914A</div><div class='add'>+0xE6C6 = 0x914B</div><div class='add'>+0xE6C7 = 0x914C</div><div class='add'>+0xE6C8 = 0x914D</div><div class='add'>+0xE6C9 = 0x914E</div><div class='add'>+0xE6CA = 0x914F</div><div class='add'>+0xE6CB = 0x9150</div><div class='add'>+0xE6CC = 0x9151</div><div class='add'>+0xE6CD = 0x9152</div><div class='add'>+0xE6CE = 0x9153</div><div class='add'>+0xE6CF = 0x9154</div><div class='add'>+0xE6D0 = 0x9155</div><div class='add'>+0xE6D1 = 0x9156</div><div class='add'>+0xE6D2 = 0x9157</div><div class='add'>+0xE6D3 = 0x9158</div><div class='add'>+0xE6D4 = 0x9159</div><div class='add'>+0xE6D5 = 0x915A</div><div class='add'>+0xE6D6 = 0x915B</div><div class='add'>+0xE6D7 = 0x915C</div><div class='add'>+0xE6D8 = 0x915D</div><div class='add'>+0xE6D9 = 0x915E</div><div class='add'>+0xE6DA = 0x915F</div><div class='add'>+0xE6DB = 0x9160</div><div class='add'>+0xE6DC = 0x9161</div><div class='add'>+0xE6DD = 0x9162</div><div class='add'>+0xE6DE = 0x9163</div><div class='add'>+0xE6DF = 0x9164</div><div class='add'>+0xE6E0 = 0x9165</div><div class='add'>+0xE6E1 = 0x9166</div><div class='add'>+0xE6E2 = 0x9167</div><div class='add'>+0xE6E3 = 0x9168</div><div class='add'>+0xE6E4 = 0x9169</div><div class='add'>+0xE6E5 = 0x916A</div><div class='add'>+0xE6E6 = 0x916B</div><div class='add'>+0xE6E7 = 0x916C</div><div class='add'>+0xE6E8 = 0x916D</div><div class='add'>+0xE6E9 = 0x916E</div><div class='add'>+0xE6EA = 0x916F</div><div class='add'>+0xE6EB = 0x9170</div><div class='add'>+0xE6EC = 0x9171</div><div class='add'>+0xE6ED = 0x9172</div><div class='add'>+0xE6EE = 0x9173</div><div class='add'>+0xE6EF = 0x9174</div><div class='add'>+0xE6F0 = 0x9175</div><div class='add'>+0xE6F1 = 0x9176</div><div class='add'>+0xE6F2 = 0x9177</div><div class='add'>+0xE6F3 = 0x9178</div><div class='add'>+0xE6F4 = 0x9179</div><div class='add'>+0xE6F5 = 0x917A</div><div class='add'>+0xE6F6 = 0x917B</div><div class='add'>+0xE6F7 = 0x917C</div><div class='add'>+0xE6F8 = 0x917D</div><div class='add'>+0xE6F9 = 0x917E</div><div class='add'>+0xE6FA = 0x9221</div><div class='add'>+0xE6FB = 0x9222</div><div class='add'>+0xE6FC = 0x9223</div><div class='add'>+0xE6FD = 0x9224</div><div class='add'>+0xE6FE = 0x9225</div><div class='add'>+0xE6FF = 0x9226</div><div class='add'>+0xE700 = 0x9227</div><div class='add'>+0xE701 = 0x9228</div><div class='add'>+0xE702 = 0x9229</div><div class='add'>+0xE703 = 0x922A</div><div class='add'>+0xE704 = 0x922B</div><div class='add'>+0xE705 = 0x922C</div><div class='add'>+0xE706 = 0x922D</div><div class='add'>+0xE707 = 0x922E</div><div class='add'>+0xE708 = 0x922F</div><div class='add'>+0xE709 = 0x9230</div><div class='add'>+0xE70A = 0x9231</div><div class='add'>+0xE70B = 0x9232</div><div class='add'>+0xE70C = 0x9233</div><div class='add'>+0xE70D = 0x9234</div><div class='add'>+0xE70E = 0x9235</div><div class='add'>+0xE70F = 0x9236</div><div class='add'>+0xE710 = 0x9237</div><div class='add'>+0xE711 = 0x9238</div><div class='add'>+0xE712 = 0x9239</div><div class='add'>+0xE713 = 0x923A</div><div class='add'>+0xE714 = 0x923B</div><div class='add'>+0xE715 = 0x923C</div><div class='add'>+0xE716 = 0x923D</div><div class='add'>+0xE717 = 0x923E</div><div class='add'>+0xE718 = 0x923F</div><div class='add'>+0xE719 = 0x9240</div><div class='add'>+0xE71A = 0x9241</div><div class='add'>+0xE71B = 0x9242</div><div class='add'>+0xE71C = 0x9243</div><div class='add'>+0xE71D = 0x9244</div><div class='add'>+0xE71E = 0x9245</div><div class='add'>+0xE71F = 0x9246</div><div class='add'>+0xE720 = 0x9247</div><div class='add'>+0xE721 = 0x9248</div><div class='add'>+0xE722 = 0x9249</div><div class='add'>+0xE723 = 0x924A</div><div class='add'>+0xE724 = 0x924B</div><div class='add'>+0xE725 = 0x924C</div><div class='add'>+0xE726 = 0x924D</div><div class='add'>+0xE727 = 0x924E</div><div class='add'>+0xE728 = 0x924F</div><div class='add'>+0xE729 = 0x9250</div><div class='add'>+0xE72A = 0x9251</div><div class='add'>+0xE72B = 0x9252</div><div class='add'>+0xE72C = 0x9253</div><div class='add'>+0xE72D = 0x9254</div><div class='add'>+0xE72E = 0x9255</div><div class='add'>+0xE72F = 0x9256</div><div class='add'>+0xE730 = 0x9257</div><div class='add'>+0xE731 = 0x9258</div><div class='add'>+0xE732 = 0x9259</div><div class='add'>+0xE733 = 0x925A</div><div class='add'>+0xE734 = 0x925B</div><div class='add'>+0xE735 = 0x925C</div><div class='add'>+0xE736 = 0x925D</div><div class='add'>+0xE737 = 0x925E</div><div class='add'>+0xE738 = 0x925F</div><div class='add'>+0xE739 = 0x9260</div><div class='add'>+0xE73A = 0x9261</div><div class='add'>+0xE73B = 0x9262</div><div class='add'>+0xE73C = 0x9263</div><div class='add'>+0xE73D = 0x9264</div><div class='add'>+0xE73E = 0x9265</div><div class='add'>+0xE73F = 0x9266</div><div class='add'>+0xE740 = 0x9267</div><div class='add'>+0xE741 = 0x9268</div><div class='add'>+0xE742 = 0x9269</div><div class='add'>+0xE743 = 0x926A</div><div class='add'>+0xE744 = 0x926B</div><div class='add'>+0xE745 = 0x926C</div><div class='add'>+0xE746 = 0x926D</div><div class='add'>+0xE747 = 0x926E</div><div class='add'>+0xE748 = 0x926F</div><div class='add'>+0xE749 = 0x9270</div><div class='add'>+0xE74A = 0x9271</div><div class='add'>+0xE74B = 0x9272</div><div class='add'>+0xE74C = 0x9273</div><div class='add'>+0xE74D = 0x9274</div><div class='add'>+0xE74E = 0x9275</div><div class='add'>+0xE74F = 0x9276</div><div class='add'>+0xE750 = 0x9277</div><div class='add'>+0xE751 = 0x9278</div><div class='add'>+0xE752 = 0x9279</div><div class='add'>+0xE753 = 0x927A</div><div class='add'>+0xE754 = 0x927B</div><div class='add'>+0xE755 = 0x927C</div><div class='add'>+0xE756 = 0x927D</div><div class='add'>+0xE757 = 0x927E</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI-UNDOC.src b/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI-UNDOC.src<br/>new file mode 100644<br/>index 0000000000..3de41a5912<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-KDDI-UNDOC.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI-UNDOC.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		UCS/EMOJI_SHIFT_JIS-KDDI-UNDOC</div><div class='add'>+SRC_ZONE	0xF3-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0xEC40 = 0x8521</div><div class='add'>+0xEC41 = 0x8522</div><div class='add'>+0xEC42 = 0x8523</div><div class='add'>+0xEC43 = 0x8524</div><div class='add'>+0xEC44 = 0x8525</div><div class='add'>+0xEC45 = 0x8526</div><div class='add'>+0xEC46 = 0x8527</div><div class='add'>+0xEC47 = 0x8528</div><div class='add'>+0xEC48 = 0x8529</div><div class='add'>+0xEC49 = 0x852A</div><div class='add'>+0xEC4A = 0x852B</div><div class='add'>+0xEC4B = 0x852C</div><div class='add'>+0xEC4C = 0x852D</div><div class='add'>+0xEC4D = 0x852E</div><div class='add'>+0xEC4E = 0x852F</div><div class='add'>+0xEC4F = 0x8530</div><div class='add'>+0xEC50 = 0x8531</div><div class='add'>+0xEC51 = 0x8532</div><div class='add'>+0xEC52 = 0x8533</div><div class='add'>+0xEC53 = 0x8534</div><div class='add'>+0xEC54 = 0x8535</div><div class='add'>+0xEC55 = 0x8536</div><div class='add'>+0xEC56 = 0x8537</div><div class='add'>+0xEC57 = 0x8538</div><div class='add'>+0xEC58 = 0x8539</div><div class='add'>+0xEC59 = 0x853A</div><div class='add'>+0xEC5A = 0x853B</div><div class='add'>+0xEC5B = 0x853C</div><div class='add'>+0xEC5C = 0x853D</div><div class='add'>+0xEC5D = 0x853E</div><div class='add'>+0xEC5E = 0x853F</div><div class='add'>+0xEC5F = 0x8540</div><div class='add'>+0xEC60 = 0x8541</div><div class='add'>+0xEC61 = 0x8542</div><div class='add'>+0xEC62 = 0x8543</div><div class='add'>+0xEC63 = 0x8544</div><div class='add'>+0xEC64 = 0x8545</div><div class='add'>+0xEC65 = 0x8546</div><div class='add'>+0xEC66 = 0x8547</div><div class='add'>+0xEC67 = 0x8548</div><div class='add'>+0xEC68 = 0x8549</div><div class='add'>+0xEC69 = 0x854A</div><div class='add'>+0xEC6A = 0x854B</div><div class='add'>+0xEC6B = 0x854C</div><div class='add'>+0xEC6C = 0x854D</div><div class='add'>+0xEC6D = 0x854E</div><div class='add'>+0xEC6E = 0x854F</div><div class='add'>+0xEC6F = 0x8550</div><div class='add'>+0xEC70 = 0x8551</div><div class='add'>+0xEC71 = 0x8552</div><div class='add'>+0xEC72 = 0x8553</div><div class='add'>+0xEC73 = 0x8554</div><div class='add'>+0xEC74 = 0x8555</div><div class='add'>+0xEC75 = 0x8556</div><div class='add'>+0xEC76 = 0x8557</div><div class='add'>+0xEC77 = 0x8558</div><div class='add'>+0xEC78 = 0x8559</div><div class='add'>+0xEC79 = 0x855A</div><div class='add'>+0xEC7A = 0x855B</div><div class='add'>+0xEC7B = 0x855C</div><div class='add'>+0xEC7C = 0x855D</div><div class='add'>+0xEC7D = 0x855E</div><div class='add'>+0xEC7E = 0x855F</div><div class='add'>+0xEC80 = 0x8560</div><div class='add'>+0xEC81 = 0x8561</div><div class='add'>+0xEC82 = 0x8562</div><div class='add'>+0xEC83 = 0x8563</div><div class='add'>+0xEC84 = 0x8564</div><div class='add'>+0xEC85 = 0x8565</div><div class='add'>+0xEC86 = 0x8566</div><div class='add'>+0xEC87 = 0x8567</div><div class='add'>+0xEC88 = 0x8568</div><div class='add'>+0xEC89 = 0x8569</div><div class='add'>+0xEC8A = 0x856A</div><div class='add'>+0xEC8B = 0x856B</div><div class='add'>+0xEC8C = 0x856C</div><div class='add'>+0xEC8D = 0x856D</div><div class='add'>+0xEC8E = 0x856E</div><div class='add'>+0xEC8F = 0x856F</div><div class='add'>+0xEC90 = 0x8570</div><div class='add'>+0xEC91 = 0x8571</div><div class='add'>+0xEC92 = 0x8572</div><div class='add'>+0xEC93 = 0x8573</div><div class='add'>+0xEC94 = 0x8574</div><div class='add'>+0xEC95 = 0x8575</div><div class='add'>+0xEC96 = 0x8576</div><div class='add'>+0xEC97 = 0x8577</div><div class='add'>+0xEC98 = 0x8578</div><div class='add'>+0xEC99 = 0x8579</div><div class='add'>+0xEC9A = 0x857A</div><div class='add'>+0xEC9B = 0x857B</div><div class='add'>+0xEC9C = 0x857C</div><div class='add'>+0xEC9D = 0x857D</div><div class='add'>+0xEC9E = 0x857E</div><div class='add'>+0xEC9F = 0x8621</div><div class='add'>+0xECA0 = 0x8622</div><div class='add'>+0xECA1 = 0x8623</div><div class='add'>+0xECA2 = 0x8624</div><div class='add'>+0xECA3 = 0x8625</div><div class='add'>+0xECA4 = 0x8626</div><div class='add'>+0xECA5 = 0x8627</div><div class='add'>+0xECA6 = 0x8628</div><div class='add'>+0xECA7 = 0x8629</div><div class='add'>+0xECA8 = 0x862A</div><div class='add'>+0xECA9 = 0x862B</div><div class='add'>+0xECAA = 0x862C</div><div class='add'>+0xECAB = 0x862D</div><div class='add'>+0xECAC = 0x862E</div><div class='add'>+0xECAD = 0x862F</div><div class='add'>+0xECAE = 0x8630</div><div class='add'>+0xECAF = 0x8631</div><div class='add'>+0xECB0 = 0x8632</div><div class='add'>+0xECB1 = 0x8633</div><div class='add'>+0xECB2 = 0x8634</div><div class='add'>+0xECB3 = 0x8635</div><div class='add'>+0xECB4 = 0x8636</div><div class='add'>+0xECB5 = 0x8637</div><div class='add'>+0xECB6 = 0x8638</div><div class='add'>+0xECB7 = 0x8639</div><div class='add'>+0xECB8 = 0x863A</div><div class='add'>+0xECB9 = 0x863B</div><div class='add'>+0xECBA = 0x863C</div><div class='add'>+0xECBB = 0x863D</div><div class='add'>+0xECBC = 0x863E</div><div class='add'>+0xECBD = 0x863F</div><div class='add'>+0xECBE = 0x8640</div><div class='add'>+0xECBF = 0x8641</div><div class='add'>+0xECC0 = 0x8642</div><div class='add'>+0xECC1 = 0x8643</div><div class='add'>+0xECC2 = 0x8644</div><div class='add'>+0xECC3 = 0x8645</div><div class='add'>+0xECC4 = 0x8646</div><div class='add'>+0xECC5 = 0x8647</div><div class='add'>+0xECC6 = 0x8648</div><div class='add'>+0xECC7 = 0x8649</div><div class='add'>+0xECC8 = 0x864A</div><div class='add'>+0xECC9 = 0x864B</div><div class='add'>+0xECCA = 0x864C</div><div class='add'>+0xECCB = 0x864D</div><div class='add'>+0xECCC = 0x864E</div><div class='add'>+0xECCD = 0x864F</div><div class='add'>+0xECCE = 0x8650</div><div class='add'>+0xECCF = 0x8651</div><div class='add'>+0xECD0 = 0x8652</div><div class='add'>+0xECD1 = 0x8653</div><div class='add'>+0xECD2 = 0x8654</div><div class='add'>+0xECD3 = 0x8655</div><div class='add'>+0xECD4 = 0x8656</div><div class='add'>+0xECD5 = 0x8657</div><div class='add'>+0xECD6 = 0x8658</div><div class='add'>+0xECD7 = 0x8659</div><div class='add'>+0xECD8 = 0x865A</div><div class='add'>+0xECD9 = 0x865B</div><div class='add'>+0xECDA = 0x865C</div><div class='add'>+0xECDB = 0x865D</div><div class='add'>+0xECDC = 0x865E</div><div class='add'>+0xECDD = 0x865F</div><div class='add'>+0xECDE = 0x8660</div><div class='add'>+0xECDF = 0x8661</div><div class='add'>+0xECE0 = 0x8662</div><div class='add'>+0xECE1 = 0x8663</div><div class='add'>+0xECE2 = 0x8664</div><div class='add'>+0xECE3 = 0x8665</div><div class='add'>+0xECE4 = 0x8666</div><div class='add'>+0xECE5 = 0x8667</div><div class='add'>+0xECE6 = 0x8668</div><div class='add'>+0xECE7 = 0x8669</div><div class='add'>+0xECE8 = 0x866A</div><div class='add'>+0xECE9 = 0x866B</div><div class='add'>+0xECEA = 0x866C</div><div class='add'>+0xECEB = 0x866D</div><div class='add'>+0xECEC = 0x866E</div><div class='add'>+0xECED = 0x866F</div><div class='add'>+0xECEE = 0x8670</div><div class='add'>+0xECEF = 0x8671</div><div class='add'>+0xECF0 = 0x8672</div><div class='add'>+0xECF1 = 0x8673</div><div class='add'>+0xECF2 = 0x8674</div><div class='add'>+0xECF3 = 0x8675</div><div class='add'>+0xECF4 = 0x8676</div><div class='add'>+0xECF5 = 0x8677</div><div class='add'>+0xECF6 = 0x8678</div><div class='add'>+0xECF7 = 0x8679</div><div class='add'>+0xECF8 = 0x867A</div><div class='add'>+0xECF9 = 0x867B</div><div class='add'>+0xECFA = 0x867C</div><div class='add'>+0xECFB = 0x867D</div><div class='add'>+0xECFC = 0x867E</div><div class='add'>+0xED40 = 0x8721</div><div class='add'>+0xED41 = 0x8722</div><div class='add'>+0xED42 = 0x8723</div><div class='add'>+0xED43 = 0x8724</div><div class='add'>+0xED44 = 0x8725</div><div class='add'>+0xED45 = 0x8726</div><div class='add'>+0xED46 = 0x8727</div><div class='add'>+0xED47 = 0x8728</div><div class='add'>+0xED48 = 0x8729</div><div class='add'>+0xED49 = 0x872A</div><div class='add'>+0xED4A = 0x872B</div><div class='add'>+0xED4B = 0x872C</div><div class='add'>+0xED4C = 0x872D</div><div class='add'>+0xED4D = 0x872E</div><div class='add'>+0xED4E = 0x872F</div><div class='add'>+0xED4F = 0x8730</div><div class='add'>+0xED50 = 0x8731</div><div class='add'>+0xED51 = 0x8732</div><div class='add'>+0xED52 = 0x8733</div><div class='add'>+0xED53 = 0x8734</div><div class='add'>+0xED54 = 0x8735</div><div class='add'>+0xED55 = 0x8736</div><div class='add'>+0xED56 = 0x8737</div><div class='add'>+0xED57 = 0x8738</div><div class='add'>+0xED58 = 0x8739</div><div class='add'>+0xED59 = 0x873A</div><div class='add'>+0xED5A = 0x873B</div><div class='add'>+0xED5B = 0x873C</div><div class='add'>+0xED5C = 0x873D</div><div class='add'>+0xED5D = 0x873E</div><div class='add'>+0xED5E = 0x873F</div><div class='add'>+0xED5F = 0x8740</div><div class='add'>+0xED60 = 0x8741</div><div class='add'>+0xED61 = 0x8742</div><div class='add'>+0xED62 = 0x8743</div><div class='add'>+0xED63 = 0x8744</div><div class='add'>+0xED64 = 0x8745</div><div class='add'>+0xED65 = 0x8746</div><div class='add'>+0xED66 = 0x8747</div><div class='add'>+0xED67 = 0x8748</div><div class='add'>+0xED68 = 0x8749</div><div class='add'>+0xED69 = 0x874A</div><div class='add'>+0xED6A = 0x874B</div><div class='add'>+0xED6B = 0x874C</div><div class='add'>+0xED6C = 0x874D</div><div class='add'>+0xED6D = 0x874E</div><div class='add'>+0xED6E = 0x874F</div><div class='add'>+0xED6F = 0x8750</div><div class='add'>+0xED70 = 0x8751</div><div class='add'>+0xED71 = 0x8752</div><div class='add'>+0xED72 = 0x8753</div><div class='add'>+0xED73 = 0x8754</div><div class='add'>+0xED74 = 0x8755</div><div class='add'>+0xED75 = 0x8756</div><div class='add'>+0xED76 = 0x8757</div><div class='add'>+0xED77 = 0x8758</div><div class='add'>+0xED78 = 0x8759</div><div class='add'>+0xED79 = 0x875A</div><div class='add'>+0xED7A = 0x875B</div><div class='add'>+0xED7B = 0x875C</div><div class='add'>+0xED7C = 0x875D</div><div class='add'>+0xED7D = 0x875E</div><div class='add'>+0xED7E = 0x875F</div><div class='add'>+0xED80 = 0x8760</div><div class='add'>+0xED81 = 0x8761</div><div class='add'>+0xED82 = 0x8762</div><div class='add'>+0xED83 = 0x8763</div><div class='add'>+0xED84 = 0x8764</div><div class='add'>+0xED85 = 0x8765</div><div class='add'>+0xED86 = 0x8766</div><div class='add'>+0xED87 = 0x8767</div><div class='add'>+0xED88 = 0x8768</div><div class='add'>+0xED89 = 0x8769</div><div class='add'>+0xED8A = 0x876A</div><div class='add'>+0xED8B = 0x876B</div><div class='add'>+0xED8C = 0x876C</div><div class='add'>+0xED8D = 0x876D</div><div class='add'>+0xED8E = 0x876E</div><div class='add'>+0xED8F = 0x876F</div><div class='add'>+0xED90 = 0x8770</div><div class='add'>+0xED91 = 0x8771</div><div class='add'>+0xED92 = 0x8772</div><div class='add'>+0xED93 = 0x8773</div><div class='add'>+0xEF40 = 0x8B21</div><div class='add'>+0xEF41 = 0x8B22</div><div class='add'>+0xEF42 = 0x8B23</div><div class='add'>+0xEF43 = 0x8B24</div><div class='add'>+0xEF44 = 0x8B25</div><div class='add'>+0xEF45 = 0x8B26</div><div class='add'>+0xEF46 = 0x8B27</div><div class='add'>+0xEF47 = 0x8B28</div><div class='add'>+0xEF48 = 0x8B29</div><div class='add'>+0xEF49 = 0x8B2A</div><div class='add'>+0xEF4A = 0x8B2B</div><div class='add'>+0xEF4B = 0x8B2C</div><div class='add'>+0xEF4C = 0x8B2D</div><div class='add'>+0xEF4D = 0x8B2E</div><div class='add'>+0xEF4E = 0x8B2F</div><div class='add'>+0xEF4F = 0x8B30</div><div class='add'>+0xEF50 = 0x8B31</div><div class='add'>+0xEF51 = 0x8B32</div><div class='add'>+0xEF52 = 0x8B33</div><div class='add'>+0xEF53 = 0x8B34</div><div class='add'>+0xEF54 = 0x8B35</div><div class='add'>+0xEF55 = 0x8B36</div><div class='add'>+0xEF56 = 0x8B37</div><div class='add'>+0xEF57 = 0x8B38</div><div class='add'>+0xEF58 = 0x8B39</div><div class='add'>+0xEF59 = 0x8B3A</div><div class='add'>+0xEF5A = 0x8B3B</div><div class='add'>+0xEF5B = 0x8B3C</div><div class='add'>+0xEF5C = 0x8B3D</div><div class='add'>+0xEF5D = 0x8B3E</div><div class='add'>+0xEF5E = 0x8B3F</div><div class='add'>+0xEF5F = 0x8B40</div><div class='add'>+0xEF60 = 0x8B41</div><div class='add'>+0xEF61 = 0x8B42</div><div class='add'>+0xEF62 = 0x8B43</div><div class='add'>+0xEF63 = 0x8B44</div><div class='add'>+0xEF64 = 0x8B45</div><div class='add'>+0xEF65 = 0x8B46</div><div class='add'>+0xEF66 = 0x8B47</div><div class='add'>+0xEF67 = 0x8B48</div><div class='add'>+0xEF68 = 0x8B49</div><div class='add'>+0xEF69 = 0x8B4A</div><div class='add'>+0xEF6A = 0x8B4B</div><div class='add'>+0xEF6B = 0x8B4C</div><div class='add'>+0xEF6C = 0x8B4D</div><div class='add'>+0xEF6D = 0x8B4E</div><div class='add'>+0xEF6E = 0x8B4F</div><div class='add'>+0xEF6F = 0x8B50</div><div class='add'>+0xEF70 = 0x8B51</div><div class='add'>+0xEF71 = 0x8B52</div><div class='add'>+0xEF72 = 0x8B53</div><div class='add'>+0xEF73 = 0x8B54</div><div class='add'>+0xEF74 = 0x8B55</div><div class='add'>+0xEF75 = 0x8B56</div><div class='add'>+0xEF76 = 0x8B57</div><div class='add'>+0xEF77 = 0x8B58</div><div class='add'>+0xEF78 = 0x8B59</div><div class='add'>+0xEF79 = 0x8B5A</div><div class='add'>+0xEF7A = 0x8B5B</div><div class='add'>+0xEF7B = 0x8B5C</div><div class='add'>+0xEF7C = 0x8B5D</div><div class='add'>+0xEF7D = 0x8B5E</div><div class='add'>+0xEF7E = 0x8B5F</div><div class='add'>+0xEF80 = 0x8B60</div><div class='add'>+0xEF81 = 0x8B61</div><div class='add'>+0xEF82 = 0x8B62</div><div class='add'>+0xEF83 = 0x8B63</div><div class='add'>+0xEF84 = 0x8B64</div><div class='add'>+0xEF85 = 0x8B65</div><div class='add'>+0xEF86 = 0x8B66</div><div class='add'>+0xEF87 = 0x8B67</div><div class='add'>+0xEF88 = 0x8B68</div><div class='add'>+0xEF89 = 0x8B69</div><div class='add'>+0xEF8A = 0x8B6A</div><div class='add'>+0xEF8B = 0x8B6B</div><div class='add'>+0xEF8C = 0x8B6C</div><div class='add'>+0xEF8D = 0x8B6D</div><div class='add'>+0xEF8E = 0x8B6E</div><div class='add'>+0xEF8F = 0x8B6F</div><div class='add'>+0xEF90 = 0x8B70</div><div class='add'>+0xEF91 = 0x8B71</div><div class='add'>+0xEF92 = 0x8B72</div><div class='add'>+0xEF93 = 0x8B73</div><div class='add'>+0xEF94 = 0x8B74</div><div class='add'>+0xEF95 = 0x8B75</div><div class='add'>+0xEF96 = 0x8B76</div><div class='add'>+0xEF97 = 0x8B77</div><div class='add'>+0xEF98 = 0x8B78</div><div class='add'>+0xEF99 = 0x8B79</div><div class='add'>+0xEF9A = 0x8B7A</div><div class='add'>+0xEF9B = 0x8B7B</div><div class='add'>+0xEF9C = 0x8B7C</div><div class='add'>+0xEF9D = 0x8B7D</div><div class='add'>+0xEF9E = 0x8B7E</div><div class='add'>+0xEF9F = 0x8C21</div><div class='add'>+0xEFA0 = 0x8C22</div><div class='add'>+0xEFA1 = 0x8C23</div><div class='add'>+0xEFA2 = 0x8C24</div><div class='add'>+0xEFA3 = 0x8C25</div><div class='add'>+0xEFA4 = 0x8C26</div><div class='add'>+0xEFA5 = 0x8C27</div><div class='add'>+0xEFA6 = 0x8C28</div><div class='add'>+0xEFA7 = 0x8C29</div><div class='add'>+0xEFA8 = 0x8C2A</div><div class='add'>+0xEFA9 = 0x8C2B</div><div class='add'>+0xEFAA = 0x8C2C</div><div class='add'>+0xEFAB = 0x8C2D</div><div class='add'>+0xEFAC = 0x8C2E</div><div class='add'>+0xEFAD = 0x8C2F</div><div class='add'>+0xEFAE = 0x8C30</div><div class='add'>+0xEFAF = 0x8C31</div><div class='add'>+0xEFB0 = 0x8C32</div><div class='add'>+0xEFB1 = 0x8C33</div><div class='add'>+0xEFB2 = 0x8C34</div><div class='add'>+0xEFB3 = 0x8C35</div><div class='add'>+0xEFB4 = 0x8C36</div><div class='add'>+0xEFB5 = 0x8C37</div><div class='add'>+0xEFB6 = 0x8C38</div><div class='add'>+0xEFB7 = 0x8C39</div><div class='add'>+0xEFB8 = 0x8C3A</div><div class='add'>+0xEFB9 = 0x8C3B</div><div class='add'>+0xEFBA = 0x8C3C</div><div class='add'>+0xEFBB = 0x8C3D</div><div class='add'>+0xEFBC = 0x8C3E</div><div class='add'>+0xEFBD = 0x8C3F</div><div class='add'>+0xEFBE = 0x8C40</div><div class='add'>+0xEFBF = 0x8C41</div><div class='add'>+0xEFC0 = 0x8C42</div><div class='add'>+0xEFC1 = 0x8C43</div><div class='add'>+0xEFC2 = 0x8C44</div><div class='add'>+0xEFC3 = 0x8C45</div><div class='add'>+0xEFC4 = 0x8C46</div><div class='add'>+0xEFC5 = 0x8C47</div><div class='add'>+0xEFC6 = 0x8C48</div><div class='add'>+0xEFC7 = 0x8C49</div><div class='add'>+0xEFC8 = 0x8C4A</div><div class='add'>+0xEFC9 = 0x8C4B</div><div class='add'>+0xEFCA = 0x8C4C</div><div class='add'>+0xEFCB = 0x8C4D</div><div class='add'>+0xEFCC = 0x8C4E</div><div class='add'>+0xEFCD = 0x8C4F</div><div class='add'>+0xEFCE = 0x8C50</div><div class='add'>+0xEFCF = 0x8C51</div><div class='add'>+0xEFD0 = 0x8C52</div><div class='add'>+0xEFD1 = 0x8C53</div><div class='add'>+0xEFD2 = 0x8C54</div><div class='add'>+0xEFD3 = 0x8C55</div><div class='add'>+0xEFD4 = 0x8C56</div><div class='add'>+0xEFD5 = 0x8C57</div><div class='add'>+0xEFD6 = 0x8C58</div><div class='add'>+0xEFD7 = 0x8C59</div><div class='add'>+0xEFD8 = 0x8C5A</div><div class='add'>+0xEFD9 = 0x8C5B</div><div class='add'>+0xEFDA = 0x8C5C</div><div class='add'>+0xEFDB = 0x8C5D</div><div class='add'>+0xEFDC = 0x8C5E</div><div class='add'>+0xEFDD = 0x8C5F</div><div class='add'>+0xEFDE = 0x8C60</div><div class='add'>+0xEFDF = 0x8C61</div><div class='add'>+0xEFE0 = 0x8C62</div><div class='add'>+0xEFE1 = 0x8C63</div><div class='add'>+0xEFE2 = 0x8C64</div><div class='add'>+0xEFE3 = 0x8C65</div><div class='add'>+0xEFE4 = 0x8C66</div><div class='add'>+0xEFE5 = 0x8C67</div><div class='add'>+0xEFE6 = 0x8C68</div><div class='add'>+0xEFE7 = 0x8C69</div><div class='add'>+0xEFE8 = 0x8C6A</div><div class='add'>+0xEFE9 = 0x8C6B</div><div class='add'>+0xEFEA = 0x8C6C</div><div class='add'>+0xEFEB = 0x8C6D</div><div class='add'>+0xEFEC = 0x8C6E</div><div class='add'>+0xEFED = 0x8C6F</div><div class='add'>+0xEFEE = 0x8C70</div><div class='add'>+0xEFEF = 0x8C71</div><div class='add'>+0xEFF0 = 0x8C72</div><div class='add'>+0xEFF1 = 0x8C73</div><div class='add'>+0xEFF2 = 0x8C74</div><div class='add'>+0xEFF3 = 0x8C75</div><div class='add'>+0xEFF4 = 0x8C76</div><div class='add'>+0xEFF5 = 0x8C77</div><div class='add'>+0xEFF6 = 0x8C78</div><div class='add'>+0xEFF7 = 0x8C79</div><div class='add'>+0xEFF8 = 0x8C7A</div><div class='add'>+0xEFF9 = 0x8C7B</div><div class='add'>+0xEFFA = 0x8C7C</div><div class='add'>+0xEFFB = 0x8C7D</div><div class='add'>+0xEFFC = 0x8C7E</div><div class='add'>+0xF040 = 0x8D21</div><div class='add'>+0xF041 = 0x8D22</div><div class='add'>+0xF042 = 0x8D23</div><div class='add'>+0xF043 = 0x8D24</div><div class='add'>+0xF044 = 0x8D25</div><div class='add'>+0xF045 = 0x8D26</div><div class='add'>+0xF046 = 0x8D27</div><div class='add'>+0xF047 = 0x8D28</div><div class='add'>+0xF048 = 0x8D29</div><div class='add'>+0xF049 = 0x8D2A</div><div class='add'>+0xF04A = 0x8D2B</div><div class='add'>+0xF04B = 0x8D2C</div><div class='add'>+0xF04C = 0x8D2D</div><div class='add'>+0xF04D = 0x8D2E</div><div class='add'>+0xF04E = 0x8D2F</div><div class='add'>+0xF04F = 0x8D30</div><div class='add'>+0xF050 = 0x8D31</div><div class='add'>+0xF051 = 0x8D32</div><div class='add'>+0xF052 = 0x8D33</div><div class='add'>+0xF053 = 0x8D34</div><div class='add'>+0xF054 = 0x8D35</div><div class='add'>+0xF055 = 0x8D36</div><div class='add'>+0xF056 = 0x8D37</div><div class='add'>+0xF057 = 0x8D38</div><div class='add'>+0xF058 = 0x8D39</div><div class='add'>+0xF059 = 0x8D3A</div><div class='add'>+0xF05A = 0x8D3B</div><div class='add'>+0xF05B = 0x8D3C</div><div class='add'>+0xF05C = 0x8D3D</div><div class='add'>+0xF05D = 0x8D3E</div><div class='add'>+0xF05E = 0x8D3F</div><div class='add'>+0xF05F = 0x8D40</div><div class='add'>+0xF060 = 0x8D41</div><div class='add'>+0xF061 = 0x8D42</div><div class='add'>+0xF062 = 0x8D43</div><div class='add'>+0xF063 = 0x8D44</div><div class='add'>+0xF064 = 0x8D45</div><div class='add'>+0xF065 = 0x8D46</div><div class='add'>+0xF066 = 0x8D47</div><div class='add'>+0xF067 = 0x8D48</div><div class='add'>+0xF068 = 0x8D49</div><div class='add'>+0xF069 = 0x8D4A</div><div class='add'>+0xF06A = 0x8D4B</div><div class='add'>+0xF06B = 0x8D4C</div><div class='add'>+0xF06C = 0x8D4D</div><div class='add'>+0xF06D = 0x8D4E</div><div class='add'>+0xF06E = 0x8D4F</div><div class='add'>+0xF06F = 0x8D50</div><div class='add'>+0xF070 = 0x8D51</div><div class='add'>+0xF071 = 0x8D52</div><div class='add'>+0xF072 = 0x8D53</div><div class='add'>+0xF073 = 0x8D54</div><div class='add'>+0xF074 = 0x8D55</div><div class='add'>+0xF075 = 0x8D56</div><div class='add'>+0xF076 = 0x8D57</div><div class='add'>+0xF077 = 0x8D58</div><div class='add'>+0xF078 = 0x8D59</div><div class='add'>+0xF079 = 0x8D5A</div><div class='add'>+0xF07A = 0x8D5B</div><div class='add'>+0xF07B = 0x8D5C</div><div class='add'>+0xF07C = 0x8D5D</div><div class='add'>+0xF07D = 0x8D5E</div><div class='add'>+0xF07E = 0x8D5F</div><div class='add'>+0xF080 = 0x8D60</div><div class='add'>+0xF081 = 0x8D61</div><div class='add'>+0xF082 = 0x8D62</div><div class='add'>+0xF083 = 0x8D63</div><div class='add'>+0xF084 = 0x8D64</div><div class='add'>+0xF085 = 0x8D65</div><div class='add'>+0xF086 = 0x8D66</div><div class='add'>+0xF087 = 0x8D67</div><div class='add'>+0xF088 = 0x8D68</div><div class='add'>+0xF089 = 0x8D69</div><div class='add'>+0xF08A = 0x8D6A</div><div class='add'>+0xF08B = 0x8D6B</div><div class='add'>+0xF08C = 0x8D6C</div><div class='add'>+0xF08D = 0x8D6D</div><div class='add'>+0xF08E = 0x8D6E</div><div class='add'>+0xF08F = 0x8D6F</div><div class='add'>+0xF090 = 0x8D70</div><div class='add'>+0xF091 = 0x8D71</div><div class='add'>+0xF092 = 0x8D72</div><div class='add'>+0xF093 = 0x8D73</div><div class='add'>+0xF094 = 0x8D74</div><div class='add'>+0xF095 = 0x8D75</div><div class='add'>+0xF096 = 0x8D76</div><div class='add'>+0xF097 = 0x8D77</div><div class='add'>+0xF098 = 0x8D78</div><div class='add'>+0xF099 = 0x8D79</div><div class='add'>+0xF09A = 0x8D7A</div><div class='add'>+0xF09B = 0x8D7B</div><div class='add'>+0xF09C = 0x8D7C</div><div class='add'>+0xF09D = 0x8D7D</div><div class='add'>+0xF09E = 0x8D7E</div><div class='add'>+0xF09F = 0x8E21</div><div class='add'>+0xF0A0 = 0x8E22</div><div class='add'>+0xF0A1 = 0x8E23</div><div class='add'>+0xF0A2 = 0x8E24</div><div class='add'>+0xF0A3 = 0x8E25</div><div class='add'>+0xF0A4 = 0x8E26</div><div class='add'>+0xF0A5 = 0x8E27</div><div class='add'>+0xF0A6 = 0x8E28</div><div class='add'>+0xF0A7 = 0x8E29</div><div class='add'>+0xF0A8 = 0x8E2A</div><div class='add'>+0xF0A9 = 0x8E2B</div><div class='add'>+0xF0AA = 0x8E2C</div><div class='add'>+0xF0AB = 0x8E2D</div><div class='add'>+0xF0AC = 0x8E2E</div><div class='add'>+0xF0AD = 0x8E2F</div><div class='add'>+0xF0AE = 0x8E30</div><div class='add'>+0xF0AF = 0x8E31</div><div class='add'>+0xF0B0 = 0x8E32</div><div class='add'>+0xF0B1 = 0x8E33</div><div class='add'>+0xF0B2 = 0x8E34</div><div class='add'>+0xF0B3 = 0x8E35</div><div class='add'>+0xF0B4 = 0x8E36</div><div class='add'>+0xF0B5 = 0x8E37</div><div class='add'>+0xF0B6 = 0x8E38</div><div class='add'>+0xF0B7 = 0x8E39</div><div class='add'>+0xF0B8 = 0x8E3A</div><div class='add'>+0xF0B9 = 0x8E3B</div><div class='add'>+0xF0BA = 0x8E3C</div><div class='add'>+0xF0BB = 0x8E3D</div><div class='add'>+0xF0BC = 0x8E3E</div><div class='add'>+0xF0BD = 0x8E3F</div><div class='add'>+0xF0BE = 0x8E40</div><div class='add'>+0xF0BF = 0x8E41</div><div class='add'>+0xF0C0 = 0x8E42</div><div class='add'>+0xF0C1 = 0x8E43</div><div class='add'>+0xF0C2 = 0x8E44</div><div class='add'>+0xF0C3 = 0x8E45</div><div class='add'>+0xF0C4 = 0x8E46</div><div class='add'>+0xF0C5 = 0x8E47</div><div class='add'>+0xF0C6 = 0x8E48</div><div class='add'>+0xF0C7 = 0x8E49</div><div class='add'>+0xF0C8 = 0x8E4A</div><div class='add'>+0xF0C9 = 0x8E4B</div><div class='add'>+0xF0CA = 0x8E4C</div><div class='add'>+0xF0CB = 0x8E4D</div><div class='add'>+0xF0CC = 0x8E4E</div><div class='add'>+0xF0CD = 0x8E4F</div><div class='add'>+0xF0CE = 0x8E50</div><div class='add'>+0xF0CF = 0x8E51</div><div class='add'>+0xF0D0 = 0x8E52</div><div class='add'>+0xF0D1 = 0x8E53</div><div class='add'>+0xF0D2 = 0x8E54</div><div class='add'>+0xF0D3 = 0x8E55</div><div class='add'>+0xF0D4 = 0x8E56</div><div class='add'>+0xF0D5 = 0x8E57</div><div class='add'>+0xF0D6 = 0x8E58</div><div class='add'>+0xF0D7 = 0x8E59</div><div class='add'>+0xF0D8 = 0x8E5A</div><div class='add'>+0xF0D9 = 0x8E5B</div><div class='add'>+0xF0DA = 0x8E5C</div><div class='add'>+0xF0DB = 0x8E5D</div><div class='add'>+0xF0DC = 0x8E5E</div><div class='add'>+0xF0DD = 0x8E5F</div><div class='add'>+0xF0DE = 0x8E60</div><div class='add'>+0xF0DF = 0x8E61</div><div class='add'>+0xF0E0 = 0x8E62</div><div class='add'>+0xF0E1 = 0x8E63</div><div class='add'>+0xF0E2 = 0x8E64</div><div class='add'>+0xF0E3 = 0x8E65</div><div class='add'>+0xF0E4 = 0x8E66</div><div class='add'>+0xF0E5 = 0x8E67</div><div class='add'>+0xF0E6 = 0x8E68</div><div class='add'>+0xF0E7 = 0x8E69</div><div class='add'>+0xF0E8 = 0x8E6A</div><div class='add'>+0xF0E9 = 0x8E6B</div><div class='add'>+0xF0EA = 0x8E6C</div><div class='add'>+0xF0EB = 0x8E6D</div><div class='add'>+0xF0EC = 0x8E6E</div><div class='add'>+0xF0ED = 0x8E6F</div><div class='add'>+0xF0EE = 0x8E70</div><div class='add'>+0xF0EF = 0x8E71</div><div class='add'>+0xF0F0 = 0x8E72</div><div class='add'>+0xF0F1 = 0x8E73</div><div class='add'>+0xF0F2 = 0x8E74</div><div class='add'>+0xF0F3 = 0x8E75</div><div class='add'>+0xF0F4 = 0x8E76</div><div class='add'>+0xF0F5 = 0x8E77</div><div class='add'>+0xF0F6 = 0x8E78</div><div class='add'>+0xF0F7 = 0x8E79</div><div class='add'>+0xF0F8 = 0x8E7A</div><div class='add'>+0xF0F9 = 0x8E7B</div><div class='add'>+0xF0FA = 0x8E7C</div><div class='add'>+0xF0FB = 0x8E7D</div><div class='add'>+0xF0FC = 0x8E7E</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI.src b/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI.src<br/>new file mode 100644<br/>index 0000000000..5dd1e0f17e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-KDDI.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-KDDI.src</a></div><div class='hunk'>@@ -0,0 +1,658 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		UCS/EMOJI_SHIFT_JIS-KDDI</div><div class='add'>+SRC_ZONE	0xF3-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0xE468 = 0x8B21</div><div class='add'>+0xE469 = 0x8B22</div><div class='add'>+0xE46A = 0x8B23</div><div class='add'>+0xE46B = 0x8B24</div><div class='add'>+0xE46C = 0x8B25</div><div class='add'>+0xE46D = 0x8B26</div><div class='add'>+0xE46E = 0x8B27</div><div class='add'>+0xE46F = 0x8B28</div><div class='add'>+0xE470 = 0x8B29</div><div class='add'>+0xE471 = 0x8B2A</div><div class='add'>+0xE472 = 0x8B2B</div><div class='add'>+0xE473 = 0x8B2C</div><div class='add'>+0xE474 = 0x8B2D</div><div class='add'>+0xE475 = 0x8B2E</div><div class='add'>+0xE476 = 0x8B2F</div><div class='add'>+0xE477 = 0x8B30</div><div class='add'>+0xE478 = 0x8B31</div><div class='add'>+0xE479 = 0x8B32</div><div class='add'>+0xE47A = 0x8B33</div><div class='add'>+0xE47B = 0x8B34</div><div class='add'>+0xE47C = 0x8B35</div><div class='add'>+0xE47D = 0x8B36</div><div class='add'>+0xE47E = 0x8B37</div><div class='add'>+0xE47F = 0x8B38</div><div class='add'>+0xE480 = 0x8B39</div><div class='add'>+0xE481 = 0x8B3A</div><div class='add'>+0xE482 = 0x8B3B</div><div class='add'>+0xE483 = 0x8B3C</div><div class='add'>+0xE484 = 0x8B3D</div><div class='add'>+0xE485 = 0x8B3E</div><div class='add'>+0xE486 = 0x8B3F</div><div class='add'>+0xE487 = 0x8B40</div><div class='add'>+0xE488 = 0x8B41</div><div class='add'>+0xE489 = 0x8B42</div><div class='add'>+0xE48A = 0x8B43</div><div class='add'>+0xE48B = 0x8B44</div><div class='add'>+0xE48C = 0x8B45</div><div class='add'>+0xE48D = 0x8B46</div><div class='add'>+0xE48E = 0x8B47</div><div class='add'>+0xE48F = 0x8B48</div><div class='add'>+0xE490 = 0x8B49</div><div class='add'>+0xE491 = 0x8B4A</div><div class='add'>+0xE492 = 0x8B4B</div><div class='add'>+0xE493 = 0x8B4C</div><div class='add'>+0xE494 = 0x8B4D</div><div class='add'>+0xE495 = 0x8B4E</div><div class='add'>+0xE496 = 0x8B4F</div><div class='add'>+0xE497 = 0x8B50</div><div class='add'>+0xE498 = 0x8B51</div><div class='add'>+0xE499 = 0x8B52</div><div class='add'>+0xE49A = 0x8B53</div><div class='add'>+0xE49B = 0x8B54</div><div class='add'>+0xE49C = 0x8B55</div><div class='add'>+0xE49D = 0x8B56</div><div class='add'>+0xE49E = 0x8B57</div><div class='add'>+0xE49F = 0x8B58</div><div class='add'>+0xE4A0 = 0x8B59</div><div class='add'>+0xE4A1 = 0x8B5A</div><div class='add'>+0xE4A2 = 0x8B5B</div><div class='add'>+0xE4A3 = 0x8B5C</div><div class='add'>+0xE4A4 = 0x8B5D</div><div class='add'>+0xE4A5 = 0x8B5E</div><div class='add'>+0xE4A6 = 0x8B5F</div><div class='add'>+0xE4A7 = 0x8B60</div><div class='add'>+0xE4A8 = 0x8B61</div><div class='add'>+0xE4A9 = 0x8B62</div><div class='add'>+0xE4AA = 0x8B63</div><div class='add'>+0xE4AB = 0x8B64</div><div class='add'>+0xE4AC = 0x8B65</div><div class='add'>+0xE4AD = 0x8B66</div><div class='add'>+0xE4AE = 0x8B67</div><div class='add'>+0xE4AF = 0x8B68</div><div class='add'>+0xE4B0 = 0x8B69</div><div class='add'>+0xE4B1 = 0x8B6A</div><div class='add'>+0xE4B2 = 0x8B6B</div><div class='add'>+0xE4B3 = 0x8B6C</div><div class='add'>+0xE4B4 = 0x8B6D</div><div class='add'>+0xE4B5 = 0x8B6E</div><div class='add'>+0xE4B6 = 0x8B6F</div><div class='add'>+0xE4B7 = 0x8B70</div><div class='add'>+0xE4B8 = 0x8B71</div><div class='add'>+0xE4B9 = 0x8B72</div><div class='add'>+0xE4BA = 0x8B73</div><div class='add'>+0xE4BB = 0x8B74</div><div class='add'>+0xE4BC = 0x8B75</div><div class='add'>+0xE4BD = 0x8B76</div><div class='add'>+0xE4BE = 0x8B77</div><div class='add'>+0xE4BF = 0x8B78</div><div class='add'>+0xE4C0 = 0x8B79</div><div class='add'>+0xE4C1 = 0x8B7A</div><div class='add'>+0xE4C2 = 0x8B7B</div><div class='add'>+0xE4C3 = 0x8B7C</div><div class='add'>+0xE4C4 = 0x8B7D</div><div class='add'>+0xE4C5 = 0x8B7E</div><div class='add'>+0xE4C6 = 0x8C21</div><div class='add'>+0xE4C7 = 0x8C22</div><div class='add'>+0xE4C8 = 0x8C23</div><div class='add'>+0xE4C9 = 0x8C24</div><div class='add'>+0xE4CA = 0x8C25</div><div class='add'>+0xE4CB = 0x8C26</div><div class='add'>+0xE4CC = 0x8C27</div><div class='add'>+0xE4CD = 0x8C28</div><div class='add'>+0xE4CE = 0x8C29</div><div class='add'>+0xE4CF = 0x8C2A</div><div class='add'>+0xE4D0 = 0x8C2B</div><div class='add'>+0xE4D1 = 0x8C2C</div><div class='add'>+0xE4D2 = 0x8C2D</div><div class='add'>+0xE4D3 = 0x8C2E</div><div class='add'>+0xE4D4 = 0x8C2F</div><div class='add'>+0xE4D5 = 0x8C30</div><div class='add'>+0xE4D6 = 0x8C31</div><div class='add'>+0xE4D7 = 0x8C32</div><div class='add'>+0xE4D8 = 0x8C33</div><div class='add'>+0xE4D9 = 0x8C34</div><div class='add'>+0xE4DA = 0x8C35</div><div class='add'>+0xE4DB = 0x8C36</div><div class='add'>+0xE4DC = 0x8C37</div><div class='add'>+0xE4DD = 0x8C38</div><div class='add'>+0xE4DE = 0x8C39</div><div class='add'>+0xE4DF = 0x8C3A</div><div class='add'>+0xE4E0 = 0x8C3B</div><div class='add'>+0xE4E1 = 0x8C3C</div><div class='add'>+0xE4E2 = 0x8C3D</div><div class='add'>+0xE4E3 = 0x8C3E</div><div class='add'>+0xE4E4 = 0x8C3F</div><div class='add'>+0xE4E5 = 0x8C40</div><div class='add'>+0xE4E6 = 0x8C41</div><div class='add'>+0xE4E7 = 0x8C42</div><div class='add'>+0xE4E8 = 0x8C43</div><div class='add'>+0xE4E9 = 0x8C44</div><div class='add'>+0xE4EA = 0x8C45</div><div class='add'>+0xE4EB = 0x8C46</div><div class='add'>+0xE4EC = 0x8C47</div><div class='add'>+0xE4ED = 0x8C48</div><div class='add'>+0xE4EE = 0x8C49</div><div class='add'>+0xE4EF = 0x8C4A</div><div class='add'>+0xE4F0 = 0x8C4B</div><div class='add'>+0xE4F1 = 0x8C4C</div><div class='add'>+0xE4F2 = 0x8C4D</div><div class='add'>+0xE4F3 = 0x8C4E</div><div class='add'>+0xE4F4 = 0x8C4F</div><div class='add'>+0xE4F5 = 0x8C50</div><div class='add'>+0xE4F6 = 0x8C51</div><div class='add'>+0xE4F7 = 0x8C52</div><div class='add'>+0xE4F8 = 0x8C53</div><div class='add'>+0xE4F9 = 0x8C54</div><div class='add'>+0xE4FA = 0x8C55</div><div class='add'>+0xE4FB = 0x8C56</div><div class='add'>+0xE4FC = 0x8C57</div><div class='add'>+0xE4FD = 0x8C58</div><div class='add'>+0xE4FE = 0x8C59</div><div class='add'>+0xE4FF = 0x8C5A</div><div class='add'>+0xE500 = 0x8C5B</div><div class='add'>+0xE501 = 0x8C5C</div><div class='add'>+0xE502 = 0x8C5D</div><div class='add'>+0xE503 = 0x8C5E</div><div class='add'>+0xE504 = 0x8C5F</div><div class='add'>+0xE505 = 0x8C60</div><div class='add'>+0xE506 = 0x8C61</div><div class='add'>+0xE507 = 0x8C62</div><div class='add'>+0xE508 = 0x8C63</div><div class='add'>+0xE509 = 0x8C64</div><div class='add'>+0xE50A = 0x8C65</div><div class='add'>+0xE50B = 0x8C66</div><div class='add'>+0xE50C = 0x8C67</div><div class='add'>+0xE50D = 0x8C68</div><div class='add'>+0xE50E = 0x8C69</div><div class='add'>+0xE50F = 0x8C6A</div><div class='add'>+0xE510 = 0x8C6B</div><div class='add'>+0xE511 = 0x8C6C</div><div class='add'>+0xE512 = 0x8C6D</div><div class='add'>+0xE513 = 0x8C6E</div><div class='add'>+0xE514 = 0x8C6F</div><div class='add'>+0xE515 = 0x8C70</div><div class='add'>+0xE516 = 0x8C71</div><div class='add'>+0xE517 = 0x8C72</div><div class='add'>+0xE518 = 0x8C73</div><div class='add'>+0xE519 = 0x8C74</div><div class='add'>+0xE51A = 0x8C75</div><div class='add'>+0xE51B = 0x8C76</div><div class='add'>+0xE51C = 0x8C77</div><div class='add'>+0xE51D = 0x8C78</div><div class='add'>+0xE51E = 0x8C79</div><div class='add'>+0xE51F = 0x8C7A</div><div class='add'>+0xE520 = 0x8C7B</div><div class='add'>+0xE521 = 0x8C7C</div><div class='add'>+0xE522 = 0x8C7D</div><div class='add'>+0xE523 = 0x8C7E</div><div class='add'>+0xE524 = 0x8D21</div><div class='add'>+0xE525 = 0x8D22</div><div class='add'>+0xE526 = 0x8D23</div><div class='add'>+0xE527 = 0x8D24</div><div class='add'>+0xE528 = 0x8D25</div><div class='add'>+0xE529 = 0x8D26</div><div class='add'>+0xE52A = 0x8D27</div><div class='add'>+0xE52B = 0x8D28</div><div class='add'>+0xE52C = 0x8D29</div><div class='add'>+0xE52D = 0x8D2A</div><div class='add'>+0xE52E = 0x8D2B</div><div class='add'>+0xE52F = 0x8D2C</div><div class='add'>+0xE530 = 0x8D2D</div><div class='add'>+0xE531 = 0x8D2E</div><div class='add'>+0xE532 = 0x8D2F</div><div class='add'>+0xE533 = 0x8D30</div><div class='add'>+0xE534 = 0x8D31</div><div class='add'>+0xE535 = 0x8D32</div><div class='add'>+0xE536 = 0x8D33</div><div class='add'>+0xE537 = 0x8D34</div><div class='add'>+0xE538 = 0x8D35</div><div class='add'>+0xE539 = 0x8D36</div><div class='add'>+0xE53A = 0x8D37</div><div class='add'>+0xE53B = 0x8D38</div><div class='add'>+0xE53C = 0x8D39</div><div class='add'>+0xE53D = 0x8D3A</div><div class='add'>+0xE53E = 0x8D3B</div><div class='add'>+0xE53F = 0x8D3C</div><div class='add'>+0xE540 = 0x8D3D</div><div class='add'>+0xE541 = 0x8D3E</div><div class='add'>+0xE542 = 0x8D3F</div><div class='add'>+0xE543 = 0x8D40</div><div class='add'>+0xE544 = 0x8D41</div><div class='add'>+0xE545 = 0x8D42</div><div class='add'>+0xE546 = 0x8D43</div><div class='add'>+0xE547 = 0x8D44</div><div class='add'>+0xE548 = 0x8D45</div><div class='add'>+0xE549 = 0x8D46</div><div class='add'>+0xE54A = 0x8D47</div><div class='add'>+0xE54B = 0x8D48</div><div class='add'>+0xE54C = 0x8D49</div><div class='add'>+0xE54D = 0x8D4A</div><div class='add'>+0xE54E = 0x8D4B</div><div class='add'>+0xE54F = 0x8D4C</div><div class='add'>+0xE550 = 0x8D4D</div><div class='add'>+0xE551 = 0x8D4E</div><div class='add'>+0xE552 = 0x8D4F</div><div class='add'>+0xE553 = 0x8D50</div><div class='add'>+0xE554 = 0x8D51</div><div class='add'>+0xE555 = 0x8D52</div><div class='add'>+0xE556 = 0x8D53</div><div class='add'>+0xE557 = 0x8D54</div><div class='add'>+0xE558 = 0x8D55</div><div class='add'>+0xE559 = 0x8D56</div><div class='add'>+0xE55A = 0x8D57</div><div class='add'>+0xE55B = 0x8D58</div><div class='add'>+0xE55C = 0x8D59</div><div class='add'>+0xE55D = 0x8D5A</div><div class='add'>+0xE55E = 0x8D5B</div><div class='add'>+0xE55F = 0x8D5C</div><div class='add'>+0xE560 = 0x8D5D</div><div class='add'>+0xE561 = 0x8D5E</div><div class='add'>+0xE562 = 0x8D5F</div><div class='add'>+0xE563 = 0x8D60</div><div class='add'>+0xE564 = 0x8D61</div><div class='add'>+0xE565 = 0x8D62</div><div class='add'>+0xE566 = 0x8D63</div><div class='add'>+0xE567 = 0x8D64</div><div class='add'>+0xE568 = 0x8D65</div><div class='add'>+0xE569 = 0x8D66</div><div class='add'>+0xE56A = 0x8D67</div><div class='add'>+0xE56B = 0x8D68</div><div class='add'>+0xE56C = 0x8D69</div><div class='add'>+0xE56D = 0x8D6A</div><div class='add'>+0xE56E = 0x8D6B</div><div class='add'>+0xE56F = 0x8D6C</div><div class='add'>+0xE570 = 0x8D6D</div><div class='add'>+0xE571 = 0x8D6E</div><div class='add'>+0xE572 = 0x8D6F</div><div class='add'>+0xE573 = 0x8D70</div><div class='add'>+0xE574 = 0x8D71</div><div class='add'>+0xE575 = 0x8D72</div><div class='add'>+0xE576 = 0x8D73</div><div class='add'>+0xE577 = 0x8D74</div><div class='add'>+0xE578 = 0x8D75</div><div class='add'>+0xE579 = 0x8D76</div><div class='add'>+0xE57A = 0x8D77</div><div class='add'>+0xE57B = 0x8D78</div><div class='add'>+0xE57C = 0x8D79</div><div class='add'>+0xE57D = 0x8D7A</div><div class='add'>+0xE57E = 0x8D7B</div><div class='add'>+0xE57F = 0x8D7C</div><div class='add'>+0xE580 = 0x8D7D</div><div class='add'>+0xE581 = 0x8D7E</div><div class='add'>+0xE582 = 0x8E21</div><div class='add'>+0xE583 = 0x8E22</div><div class='add'>+0xE584 = 0x8E23</div><div class='add'>+0xE585 = 0x8E24</div><div class='add'>+0xE586 = 0x8E25</div><div class='add'>+0xE587 = 0x8E26</div><div class='add'>+0xE588 = 0x8E27</div><div class='add'>+0xE589 = 0x8E28</div><div class='add'>+0xE58A = 0x8E29</div><div class='add'>+0xE58B = 0x8E2A</div><div class='add'>+0xE58C = 0x8E2B</div><div class='add'>+0xE58D = 0x8E2C</div><div class='add'>+0xE58E = 0x8E2D</div><div class='add'>+0xE58F = 0x8E2E</div><div class='add'>+0xE590 = 0x8E2F</div><div class='add'>+0xE591 = 0x8E30</div><div class='add'>+0xE592 = 0x8E31</div><div class='add'>+0xE593 = 0x8E32</div><div class='add'>+0xE594 = 0x8E33</div><div class='add'>+0xE595 = 0x8E34</div><div class='add'>+0xE596 = 0x8E35</div><div class='add'>+0xE597 = 0x8E36</div><div class='add'>+0xE598 = 0x8E37</div><div class='add'>+0xE599 = 0x8E38</div><div class='add'>+0xE59A = 0x8E39</div><div class='add'>+0xE59B = 0x8E3A</div><div class='add'>+0xE59C = 0x8E3B</div><div class='add'>+0xE59D = 0x8E3C</div><div class='add'>+0xE59E = 0x8E3D</div><div class='add'>+0xE59F = 0x8E3E</div><div class='add'>+0xE5A0 = 0x8E3F</div><div class='add'>+0xE5A1 = 0x8E40</div><div class='add'>+0xE5A2 = 0x8E41</div><div class='add'>+0xE5A3 = 0x8E42</div><div class='add'>+0xE5A4 = 0x8E43</div><div class='add'>+0xE5A5 = 0x8E44</div><div class='add'>+0xE5A6 = 0x8E45</div><div class='add'>+0xE5A7 = 0x8E46</div><div class='add'>+0xE5A8 = 0x8E47</div><div class='add'>+0xE5A9 = 0x8E48</div><div class='add'>+0xE5AA = 0x8E49</div><div class='add'>+0xE5AB = 0x8E4A</div><div class='add'>+0xE5AC = 0x8E4B</div><div class='add'>+0xE5AD = 0x8E4C</div><div class='add'>+0xE5AE = 0x8E4D</div><div class='add'>+0xE5AF = 0x8E4E</div><div class='add'>+0xE5B0 = 0x8E4F</div><div class='add'>+0xE5B1 = 0x8E50</div><div class='add'>+0xE5B2 = 0x8E51</div><div class='add'>+0xE5B3 = 0x8E52</div><div class='add'>+0xE5B4 = 0x8E53</div><div class='add'>+0xE5B5 = 0x8E67</div><div class='add'>+0xE5B6 = 0x8E68</div><div class='add'>+0xE5B7 = 0x8E69</div><div class='add'>+0xE5B8 = 0x8E6A</div><div class='add'>+0xE5B9 = 0x8E6B</div><div class='add'>+0xE5BA = 0x8E6C</div><div class='add'>+0xE5BB = 0x8E6D</div><div class='add'>+0xE5BC = 0x8E6E</div><div class='add'>+0xE5BD = 0x8E6F</div><div class='add'>+0xE5BE = 0x8E70</div><div class='add'>+0xE5BF = 0x8E71</div><div class='add'>+0xE5C0 = 0x8E72</div><div class='add'>+0xE5C1 = 0x8E73</div><div class='add'>+0xE5C2 = 0x8E74</div><div class='add'>+0xE5C3 = 0x8E75</div><div class='add'>+0xE5C4 = 0x8E76</div><div class='add'>+0xE5C5 = 0x8E77</div><div class='add'>+0xE5C6 = 0x8E78</div><div class='add'>+0xE5C7 = 0x8E79</div><div class='add'>+0xE5C8 = 0x8E7A</div><div class='add'>+0xE5C9 = 0x8E7B</div><div class='add'>+0xE5CA = 0x8E7C</div><div class='add'>+0xE5CB = 0x8E7D</div><div class='add'>+0xE5CC = 0x8E7E</div><div class='add'>+0xE5CD = 0x8521</div><div class='add'>+0xE5CE = 0x8522</div><div class='add'>+0xE5CF = 0x8523</div><div class='add'>+0xE5D0 = 0x8524</div><div class='add'>+0xE5D1 = 0x8525</div><div class='add'>+0xE5D2 = 0x8526</div><div class='add'>+0xE5D3 = 0x8527</div><div class='add'>+0xE5D4 = 0x8528</div><div class='add'>+0xE5D5 = 0x8529</div><div class='add'>+0xE5D6 = 0x852A</div><div class='add'>+0xE5D7 = 0x852B</div><div class='add'>+0xE5D8 = 0x852C</div><div class='add'>+0xE5D9 = 0x852D</div><div class='add'>+0xE5DA = 0x852E</div><div class='add'>+0xE5DB = 0x852F</div><div class='add'>+0xE5DC = 0x8530</div><div class='add'>+0xE5DD = 0x8531</div><div class='add'>+0xE5DE = 0x8532</div><div class='add'>+0xE5DF = 0x8533</div><div class='add'>+0xEA80 = 0x8534</div><div class='add'>+0xEA81 = 0x8535</div><div class='add'>+0xEA82 = 0x8536</div><div class='add'>+0xEA83 = 0x8537</div><div class='add'>+0xEA84 = 0x8538</div><div class='add'>+0xEA85 = 0x8539</div><div class='add'>+0xEA86 = 0x853A</div><div class='add'>+0xEA87 = 0x853B</div><div class='add'>+0xEA88 = 0x853C</div><div class='add'>+0xEA89 = 0x853D</div><div class='add'>+0xEA8A = 0x853E</div><div class='add'>+0xEA8B = 0x853F</div><div class='add'>+0xEA8C = 0x8540</div><div class='add'>+0xEA8D = 0x8541</div><div class='add'>+0xEA8E = 0x8542</div><div class='add'>+0xEA8F = 0x8543</div><div class='add'>+0xEA90 = 0x8544</div><div class='add'>+0xEA91 = 0x8545</div><div class='add'>+0xEA92 = 0x8546</div><div class='add'>+0xEA93 = 0x8547</div><div class='add'>+0xEA94 = 0x8548</div><div class='add'>+0xEA95 = 0x8549</div><div class='add'>+0xEA96 = 0x854A</div><div class='add'>+0xEA97 = 0x854B</div><div class='add'>+0xEA98 = 0x854C</div><div class='add'>+0xEA99 = 0x854D</div><div class='add'>+0xEA9A = 0x854E</div><div class='add'>+0xEA9B = 0x854F</div><div class='add'>+0xEA9C = 0x8550</div><div class='add'>+0xEA9D = 0x8551</div><div class='add'>+0xEA9E = 0x8552</div><div class='add'>+0xEA9F = 0x8553</div><div class='add'>+0xEAA0 = 0x8554</div><div class='add'>+0xEAA1 = 0x8555</div><div class='add'>+0xEAA2 = 0x8556</div><div class='add'>+0xEAA3 = 0x8557</div><div class='add'>+0xEAA4 = 0x8558</div><div class='add'>+0xEAA5 = 0x8559</div><div class='add'>+0xEAA6 = 0x855A</div><div class='add'>+0xEAA7 = 0x855B</div><div class='add'>+0xEAA8 = 0x855C</div><div class='add'>+0xEAA9 = 0x855D</div><div class='add'>+0xEAAA = 0x855E</div><div class='add'>+0xEAAB = 0x855F</div><div class='add'>+0xEAAC = 0x8560</div><div class='add'>+0xEAAD = 0x8561</div><div class='add'>+0xEAAE = 0x8562</div><div class='add'>+0xEAAF = 0x8563</div><div class='add'>+0xEAB0 = 0x8564</div><div class='add'>+0xEAB1 = 0x8565</div><div class='add'>+0xEAB2 = 0x8566</div><div class='add'>+0xEAB3 = 0x8567</div><div class='add'>+0xEAB4 = 0x8568</div><div class='add'>+0xEAB5 = 0x8569</div><div class='add'>+0xEAB6 = 0x856A</div><div class='add'>+0xEAB7 = 0x856B</div><div class='add'>+0xEAB8 = 0x856C</div><div class='add'>+0xEAB9 = 0x856D</div><div class='add'>+0xEABA = 0x856E</div><div class='add'>+0xEABB = 0x856F</div><div class='add'>+0xEABC = 0x8570</div><div class='add'>+0xEABD = 0x8571</div><div class='add'>+0xEABE = 0x8572</div><div class='add'>+0xEABF = 0x8573</div><div class='add'>+0xEAC0 = 0x8574</div><div class='add'>+0xEAC1 = 0x8575</div><div class='add'>+0xEAC2 = 0x8576</div><div class='add'>+0xEAC3 = 0x8577</div><div class='add'>+0xEAC4 = 0x8578</div><div class='add'>+0xEAC5 = 0x8579</div><div class='add'>+0xEAC6 = 0x857A</div><div class='add'>+0xEAC7 = 0x857B</div><div class='add'>+0xEAC8 = 0x857C</div><div class='add'>+0xEAC9 = 0x857D</div><div class='add'>+0xEACA = 0x857E</div><div class='add'>+0xEACB = 0x8621</div><div class='add'>+0xEACC = 0x8622</div><div class='add'>+0xEACD = 0x8623</div><div class='add'>+0xEACE = 0x8624</div><div class='add'>+0xEACF = 0x8625</div><div class='add'>+0xEAD0 = 0x8626</div><div class='add'>+0xEAD1 = 0x8627</div><div class='add'>+0xEAD2 = 0x8628</div><div class='add'>+0xEAD3 = 0x8629</div><div class='add'>+0xEAD4 = 0x862A</div><div class='add'>+0xEAD5 = 0x862B</div><div class='add'>+0xEAD6 = 0x862C</div><div class='add'>+0xEAD7 = 0x862D</div><div class='add'>+0xEAD8 = 0x862E</div><div class='add'>+0xEAD9 = 0x862F</div><div class='add'>+0xEADA = 0x8630</div><div class='add'>+0xEADB = 0x8631</div><div class='add'>+0xEADC = 0x8632</div><div class='add'>+0xEADD = 0x8633</div><div class='add'>+0xEADE = 0x8634</div><div class='add'>+0xEADF = 0x8635</div><div class='add'>+0xEAE0 = 0x8636</div><div class='add'>+0xEAE1 = 0x8637</div><div class='add'>+0xEAE2 = 0x8638</div><div class='add'>+0xEAE3 = 0x8639</div><div class='add'>+0xEAE4 = 0x863A</div><div class='add'>+0xEAE5 = 0x863B</div><div class='add'>+0xEAE6 = 0x863C</div><div class='add'>+0xEAE7 = 0x863D</div><div class='add'>+0xEAE8 = 0x863E</div><div class='add'>+0xEAE9 = 0x863F</div><div class='add'>+0xEAEA = 0x8640</div><div class='add'>+0xEAEB = 0x8641</div><div class='add'>+0xEAEC = 0x8642</div><div class='add'>+0xEAED = 0x8643</div><div class='add'>+0xEAEE = 0x8644</div><div class='add'>+0xEAEF = 0x8645</div><div class='add'>+0xEAF0 = 0x8646</div><div class='add'>+0xEAF1 = 0x8647</div><div class='add'>+0xEAF2 = 0x8648</div><div class='add'>+0xEAF3 = 0x8649</div><div class='add'>+0xEAF4 = 0x864A</div><div class='add'>+0xEAF5 = 0x864B</div><div class='add'>+0xEAF6 = 0x864C</div><div class='add'>+0xEAF7 = 0x864D</div><div class='add'>+0xEAF8 = 0x864E</div><div class='add'>+0xEAF9 = 0x864F</div><div class='add'>+0xEAFA = 0x8650</div><div class='add'>+0xEAFB = 0x8E54</div><div class='add'>+0xEAFC = 0x8E55</div><div class='add'>+0xEAFD = 0x8E56</div><div class='add'>+0xEAFE = 0x8E57</div><div class='add'>+0xEAFF = 0x8E58</div><div class='add'>+0xEB00 = 0x8E59</div><div class='add'>+0xEB01 = 0x8E5A</div><div class='add'>+0xEB02 = 0x8E5B</div><div class='add'>+0xEB03 = 0x8E5C</div><div class='add'>+0xEB04 = 0x8E5D</div><div class='add'>+0xEB05 = 0x8E5E</div><div class='add'>+0xEB06 = 0x8E5F</div><div class='add'>+0xEB07 = 0x8E60</div><div class='add'>+0xEB08 = 0x8E61</div><div class='add'>+0xEB09 = 0x8E62</div><div class='add'>+0xEB0A = 0x8E63</div><div class='add'>+0xEB0B = 0x8E64</div><div class='add'>+0xEB0C = 0x8E65</div><div class='add'>+0xEB0D = 0x8E66</div><div class='add'>+0xEB0E = 0x8651</div><div class='add'>+0xEB0F = 0x8652</div><div class='add'>+0xEB10 = 0x8653</div><div class='add'>+0xEB11 = 0x8654</div><div class='add'>+0xEB12 = 0x8655</div><div class='add'>+0xEB13 = 0x8656</div><div class='add'>+0xEB14 = 0x8657</div><div class='add'>+0xEB15 = 0x8658</div><div class='add'>+0xEB16 = 0x8659</div><div class='add'>+0xEB17 = 0x865A</div><div class='add'>+0xEB18 = 0x865B</div><div class='add'>+0xEB19 = 0x865C</div><div class='add'>+0xEB1A = 0x865D</div><div class='add'>+0xEB1B = 0x865E</div><div class='add'>+0xEB1C = 0x865F</div><div class='add'>+0xEB1D = 0x8660</div><div class='add'>+0xEB1E = 0x8661</div><div class='add'>+0xEB1F = 0x8662</div><div class='add'>+0xEB20 = 0x8663</div><div class='add'>+0xEB21 = 0x8664</div><div class='add'>+0xEB22 = 0x8665</div><div class='add'>+0xEB23 = 0x8666</div><div class='add'>+0xEB24 = 0x8667</div><div class='add'>+0xEB25 = 0x8668</div><div class='add'>+0xEB26 = 0x8669</div><div class='add'>+0xEB27 = 0x866A</div><div class='add'>+0xEB28 = 0x866B</div><div class='add'>+0xEB29 = 0x866C</div><div class='add'>+0xEB2A = 0x866D</div><div class='add'>+0xEB2B = 0x866E</div><div class='add'>+0xEB2C = 0x866F</div><div class='add'>+0xEB2D = 0x8670</div><div class='add'>+0xEB2E = 0x8671</div><div class='add'>+0xEB2F = 0x8672</div><div class='add'>+0xEB30 = 0x8673</div><div class='add'>+0xEB31 = 0x8674</div><div class='add'>+0xEB32 = 0x8675</div><div class='add'>+0xEB33 = 0x8676</div><div class='add'>+0xEB34 = 0x8677</div><div class='add'>+0xEB35 = 0x8678</div><div class='add'>+0xEB36 = 0x8679</div><div class='add'>+0xEB37 = 0x867A</div><div class='add'>+0xEB38 = 0x867B</div><div class='add'>+0xEB39 = 0x867C</div><div class='add'>+0xEB3A = 0x867D</div><div class='add'>+0xEB3B = 0x867E</div><div class='add'>+0xEB3C = 0x8721</div><div class='add'>+0xEB3D = 0x8722</div><div class='add'>+0xEB3E = 0x8723</div><div class='add'>+0xEB3F = 0x8724</div><div class='add'>+0xEB40 = 0x8725</div><div class='add'>+0xEB41 = 0x8726</div><div class='add'>+0xEB42 = 0x8727</div><div class='add'>+0xEB43 = 0x8728</div><div class='add'>+0xEB44 = 0x8729</div><div class='add'>+0xEB45 = 0x872A</div><div class='add'>+0xEB46 = 0x872B</div><div class='add'>+0xEB47 = 0x872C</div><div class='add'>+0xEB48 = 0x872D</div><div class='add'>+0xEB49 = 0x872E</div><div class='add'>+0xEB4A = 0x872F</div><div class='add'>+0xEB4B = 0x8730</div><div class='add'>+0xEB4C = 0x8731</div><div class='add'>+0xEB4D = 0x8732</div><div class='add'>+0xEB4E = 0x8733</div><div class='add'>+0xEB4F = 0x8734</div><div class='add'>+0xEB50 = 0x8735</div><div class='add'>+0xEB51 = 0x8736</div><div class='add'>+0xEB52 = 0x8737</div><div class='add'>+0xEB53 = 0x8738</div><div class='add'>+0xEB54 = 0x8739</div><div class='add'>+0xEB55 = 0x873A</div><div class='add'>+0xEB56 = 0x873B</div><div class='add'>+0xEB57 = 0x873C</div><div class='add'>+0xEB58 = 0x873D</div><div class='add'>+0xEB59 = 0x873E</div><div class='add'>+0xEB5A = 0x873F</div><div class='add'>+0xEB5B = 0x8740</div><div class='add'>+0xEB5C = 0x8741</div><div class='add'>+0xEB5D = 0x8742</div><div class='add'>+0xEB5E = 0x8743</div><div class='add'>+0xEB5F = 0x8744</div><div class='add'>+0xEB60 = 0x8745</div><div class='add'>+0xEB61 = 0x8746</div><div class='add'>+0xEB62 = 0x8747</div><div class='add'>+0xEB63 = 0x8748</div><div class='add'>+0xEB64 = 0x8749</div><div class='add'>+0xEB65 = 0x874A</div><div class='add'>+0xEB66 = 0x874B</div><div class='add'>+0xEB67 = 0x874C</div><div class='add'>+0xEB68 = 0x874D</div><div class='add'>+0xEB69 = 0x874E</div><div class='add'>+0xEB6A = 0x874F</div><div class='add'>+0xEB6B = 0x8750</div><div class='add'>+0xEB6C = 0x8751</div><div class='add'>+0xEB6D = 0x8752</div><div class='add'>+0xEB6E = 0x8753</div><div class='add'>+0xEB6F = 0x8754</div><div class='add'>+0xEB70 = 0x8755</div><div class='add'>+0xEB71 = 0x8756</div><div class='add'>+0xEB72 = 0x8757</div><div class='add'>+0xEB73 = 0x8758</div><div class='add'>+0xEB74 = 0x8759</div><div class='add'>+0xEB75 = 0x875A</div><div class='add'>+0xEB76 = 0x875B</div><div class='add'>+0xEB77 = 0x875C</div><div class='add'>+0xEB78 = 0x875D</div><div class='add'>+0xEB79 = 0x875E</div><div class='add'>+0xEB7A = 0x875F</div><div class='add'>+0xEB7B = 0x8760</div><div class='add'>+0xEB7C = 0x8761</div><div class='add'>+0xEB7D = 0x8762</div><div class='add'>+0xEB7E = 0x8763</div><div class='add'>+0xEB7F = 0x8764</div><div class='add'>+0xEB80 = 0x8765</div><div class='add'>+0xEB81 = 0x8766</div><div class='add'>+0xEB82 = 0x8767</div><div class='add'>+0xEB83 = 0x8768</div><div class='add'>+0xEB84 = 0x8769</div><div class='add'>+0xEB85 = 0x876A</div><div class='add'>+0xEB86 = 0x876B</div><div class='add'>+0xEB87 = 0x876C</div><div class='add'>+0xEB88 = 0x876D</div><div class='add'>+0xEB89 = 0x876E</div><div class='add'>+0xEB8A = 0x876F</div><div class='add'>+0xEB8B = 0x8770</div><div class='add'>+0xEB8C = 0x8771</div><div class='add'>+0xEB8D = 0x8772</div><div class='add'>+0xEB8E = 0x8773</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-SOFTBANK.src b/enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-SOFTBANK.src<br/>new file mode 100644<br/>index 0000000000..b00620294a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/EMOJI/UCS%25EMOJI_SHIFT_JIS-SOFTBANK.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/EMOJI/UCS%EMOJI_SHIFT_JIS-SOFTBANK.src</a></div><div class='hunk'>@@ -0,0 +1,496 @@</div><div class='add'>+# DO NOT EDIT THIS FILE DIRECTLY</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		UCS/EMOJI_SHIFT_JIS-SOFTBANK</div><div class='add'>+SRC_ZONE	0xF3-0xFC / 0x40-0xFC / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+0xE001 = 0x9122</div><div class='add'>+0xE002 = 0x9123</div><div class='add'>+0xE003 = 0x9124</div><div class='add'>+0xE004 = 0x9125</div><div class='add'>+0xE005 = 0x9126</div><div class='add'>+0xE006 = 0x9127</div><div class='add'>+0xE007 = 0x9128</div><div class='add'>+0xE008 = 0x9129</div><div class='add'>+0xE009 = 0x912A</div><div class='add'>+0xE00A = 0x912B</div><div class='add'>+0xE00B = 0x912C</div><div class='add'>+0xE00C = 0x912D</div><div class='add'>+0xE00D = 0x912E</div><div class='add'>+0xE00E = 0x912F</div><div class='add'>+0xE00F = 0x9130</div><div class='add'>+0xE010 = 0x9131</div><div class='add'>+0xE011 = 0x9132</div><div class='add'>+0xE012 = 0x9133</div><div class='add'>+0xE013 = 0x9134</div><div class='add'>+0xE014 = 0x9135</div><div class='add'>+0xE015 = 0x9136</div><div class='add'>+0xE016 = 0x9137</div><div class='add'>+0xE017 = 0x9138</div><div class='add'>+0xE018 = 0x9139</div><div class='add'>+0xE019 = 0x913A</div><div class='add'>+0xE01A = 0x913B</div><div class='add'>+0xE01B = 0x913C</div><div class='add'>+0xE01C = 0x913D</div><div class='add'>+0xE01D = 0x913E</div><div class='add'>+0xE01E = 0x913F</div><div class='add'>+0xE01F = 0x9140</div><div class='add'>+0xE020 = 0x9141</div><div class='add'>+0xE021 = 0x9142</div><div class='add'>+0xE022 = 0x9143</div><div class='add'>+0xE023 = 0x9144</div><div class='add'>+0xE024 = 0x9145</div><div class='add'>+0xE025 = 0x9146</div><div class='add'>+0xE026 = 0x9147</div><div class='add'>+0xE027 = 0x9148</div><div class='add'>+0xE028 = 0x9149</div><div class='add'>+0xE029 = 0x914A</div><div class='add'>+0xE02A = 0x914B</div><div class='add'>+0xE02B = 0x914C</div><div class='add'>+0xE02C = 0x914D</div><div class='add'>+0xE02D = 0x914E</div><div class='add'>+0xE02E = 0x914F</div><div class='add'>+0xE02F = 0x9150</div><div class='add'>+0xE030 = 0x9151</div><div class='add'>+0xE031 = 0x9152</div><div class='add'>+0xE032 = 0x9153</div><div class='add'>+0xE033 = 0x9154</div><div class='add'>+0xE034 = 0x9155</div><div class='add'>+0xE035 = 0x9156</div><div class='add'>+0xE036 = 0x9157</div><div class='add'>+0xE037 = 0x9158</div><div class='add'>+0xE038 = 0x9159</div><div class='add'>+0xE039 = 0x915A</div><div class='add'>+0xE03A = 0x915B</div><div class='add'>+0xE03B = 0x915C</div><div class='add'>+0xE03C = 0x915D</div><div class='add'>+0xE03D = 0x915E</div><div class='add'>+0xE03E = 0x915F</div><div class='add'>+0xE03F = 0x9160</div><div class='add'>+0xE040 = 0x9161</div><div class='add'>+0xE041 = 0x9162</div><div class='add'>+0xE042 = 0x9163</div><div class='add'>+0xE043 = 0x9164</div><div class='add'>+0xE044 = 0x9165</div><div class='add'>+0xE045 = 0x9166</div><div class='add'>+0xE046 = 0x9167</div><div class='add'>+0xE047 = 0x9168</div><div class='add'>+0xE048 = 0x9169</div><div class='add'>+0xE049 = 0x916A</div><div class='add'>+0xE04A = 0x916B</div><div class='add'>+0xE04B = 0x916C</div><div class='add'>+0xE04C = 0x916D</div><div class='add'>+0xE04D = 0x916E</div><div class='add'>+0xE04E = 0x916F</div><div class='add'>+0xE04F = 0x9170</div><div class='add'>+0xE050 = 0x9171</div><div class='add'>+0xE051 = 0x9172</div><div class='add'>+0xE052 = 0x9173</div><div class='add'>+0xE053 = 0x9174</div><div class='add'>+0xE054 = 0x9175</div><div class='add'>+0xE055 = 0x9176</div><div class='add'>+0xE056 = 0x9177</div><div class='add'>+0xE057 = 0x9178</div><div class='add'>+0xE058 = 0x9179</div><div class='add'>+0xE059 = 0x917A</div><div class='add'>+0xE05A = 0x917B</div><div class='add'>+0xE101 = 0x8D22</div><div class='add'>+0xE102 = 0x8D23</div><div class='add'>+0xE103 = 0x8D24</div><div class='add'>+0xE104 = 0x8D25</div><div class='add'>+0xE105 = 0x8D26</div><div class='add'>+0xE106 = 0x8D27</div><div class='add'>+0xE107 = 0x8D28</div><div class='add'>+0xE108 = 0x8D29</div><div class='add'>+0xE109 = 0x8D2A</div><div class='add'>+0xE10A = 0x8D2B</div><div class='add'>+0xE10B = 0x8D2C</div><div class='add'>+0xE10C = 0x8D2D</div><div class='add'>+0xE10D = 0x8D2E</div><div class='add'>+0xE10E = 0x8D2F</div><div class='add'>+0xE10F = 0x8D30</div><div class='add'>+0xE110 = 0x8D31</div><div class='add'>+0xE111 = 0x8D32</div><div class='add'>+0xE112 = 0x8D33</div><div class='add'>+0xE113 = 0x8D34</div><div class='add'>+0xE114 = 0x8D35</div><div class='add'>+0xE115 = 0x8D36</div><div class='add'>+0xE116 = 0x8D37</div><div class='add'>+0xE117 = 0x8D38</div><div class='add'>+0xE118 = 0x8D39</div><div class='add'>+0xE119 = 0x8D3A</div><div class='add'>+0xE11A = 0x8D3B</div><div class='add'>+0xE11B = 0x8D3C</div><div class='add'>+0xE11C = 0x8D3D</div><div class='add'>+0xE11D = 0x8D3E</div><div class='add'>+0xE11E = 0x8D3F</div><div class='add'>+0xE11F = 0x8D40</div><div class='add'>+0xE120 = 0x8D41</div><div class='add'>+0xE121 = 0x8D42</div><div class='add'>+0xE122 = 0x8D43</div><div class='add'>+0xE123 = 0x8D44</div><div class='add'>+0xE124 = 0x8D45</div><div class='add'>+0xE125 = 0x8D46</div><div class='add'>+0xE126 = 0x8D47</div><div class='add'>+0xE127 = 0x8D48</div><div class='add'>+0xE128 = 0x8D49</div><div class='add'>+0xE129 = 0x8D4A</div><div class='add'>+0xE12A = 0x8D4B</div><div class='add'>+0xE12B = 0x8D4C</div><div class='add'>+0xE12C = 0x8D4D</div><div class='add'>+0xE12D = 0x8D4E</div><div class='add'>+0xE12E = 0x8D4F</div><div class='add'>+0xE12F = 0x8D50</div><div class='add'>+0xE130 = 0x8D51</div><div class='add'>+0xE131 = 0x8D52</div><div class='add'>+0xE132 = 0x8D53</div><div class='add'>+0xE133 = 0x8D54</div><div class='add'>+0xE134 = 0x8D55</div><div class='add'>+0xE135 = 0x8D56</div><div class='add'>+0xE136 = 0x8D57</div><div class='add'>+0xE137 = 0x8D58</div><div class='add'>+0xE138 = 0x8D59</div><div class='add'>+0xE139 = 0x8D5A</div><div class='add'>+0xE13A = 0x8D5B</div><div class='add'>+0xE13B = 0x8D5C</div><div class='add'>+0xE13C = 0x8D5D</div><div class='add'>+0xE13D = 0x8D5E</div><div class='add'>+0xE13E = 0x8D5F</div><div class='add'>+0xE13F = 0x8D60</div><div class='add'>+0xE140 = 0x8D61</div><div class='add'>+0xE141 = 0x8D62</div><div class='add'>+0xE142 = 0x8D63</div><div class='add'>+0xE143 = 0x8D64</div><div class='add'>+0xE144 = 0x8D65</div><div class='add'>+0xE145 = 0x8D66</div><div class='add'>+0xE146 = 0x8D67</div><div class='add'>+0xE147 = 0x8D68</div><div class='add'>+0xE148 = 0x8D69</div><div class='add'>+0xE149 = 0x8D6A</div><div class='add'>+0xE14A = 0x8D6B</div><div class='add'>+0xE14B = 0x8D6C</div><div class='add'>+0xE14C = 0x8D6D</div><div class='add'>+0xE14D = 0x8D6E</div><div class='add'>+0xE14E = 0x8D6F</div><div class='add'>+0xE14F = 0x8D70</div><div class='add'>+0xE150 = 0x8D71</div><div class='add'>+0xE151 = 0x8D72</div><div class='add'>+0xE152 = 0x8D73</div><div class='add'>+0xE153 = 0x8D74</div><div class='add'>+0xE154 = 0x8D75</div><div class='add'>+0xE155 = 0x8D76</div><div class='add'>+0xE156 = 0x8D77</div><div class='add'>+0xE157 = 0x8D78</div><div class='add'>+0xE158 = 0x8D79</div><div class='add'>+0xE159 = 0x8D7A</div><div class='add'>+0xE15A = 0x8D7B</div><div class='add'>+0xE201 = 0x8E23</div><div class='add'>+0xE202 = 0x8E24</div><div class='add'>+0xE203 = 0x8E25</div><div class='add'>+0xE204 = 0x8E26</div><div class='add'>+0xE205 = 0x8E27</div><div class='add'>+0xE206 = 0x8E28</div><div class='add'>+0xE207 = 0x8E29</div><div class='add'>+0xE208 = 0x8E2A</div><div class='add'>+0xE209 = 0x8E2B</div><div class='add'>+0xE20A = 0x8E2C</div><div class='add'>+0xE20B = 0x8E2D</div><div class='add'>+0xE20C = 0x8E2E</div><div class='add'>+0xE20D = 0x8E2F</div><div class='add'>+0xE20E = 0x8E30</div><div class='add'>+0xE20F = 0x8E31</div><div class='add'>+0xE210 = 0x8E32</div><div class='add'>+0xE211 = 0x8E33</div><div class='add'>+0xE212 = 0x8E34</div><div class='add'>+0xE213 = 0x8E35</div><div class='add'>+0xE214 = 0x8E36</div><div class='add'>+0xE215 = 0x8E37</div><div class='add'>+0xE216 = 0x8E38</div><div class='add'>+0xE217 = 0x8E39</div><div class='add'>+0xE218 = 0x8E3A</div><div class='add'>+0xE219 = 0x8E3B</div><div class='add'>+0xE21A = 0x8E3C</div><div class='add'>+0xE21B = 0x8E3D</div><div class='add'>+0xE21C = 0x8E3E</div><div class='add'>+0xE21D = 0x8E3F</div><div class='add'>+0xE21E = 0x8E40</div><div class='add'>+0xE21F = 0x8E41</div><div class='add'>+0xE220 = 0x8E42</div><div class='add'>+0xE221 = 0x8E43</div><div class='add'>+0xE222 = 0x8E44</div><div class='add'>+0xE223 = 0x8E45</div><div class='add'>+0xE224 = 0x8E46</div><div class='add'>+0xE225 = 0x8E47</div><div class='add'>+0xE226 = 0x8E48</div><div class='add'>+0xE227 = 0x8E49</div><div class='add'>+0xE228 = 0x8E4A</div><div class='add'>+0xE229 = 0x8E4B</div><div class='add'>+0xE22A = 0x8E4C</div><div class='add'>+0xE22B = 0x8E4D</div><div class='add'>+0xE22C = 0x8E4E</div><div class='add'>+0xE22D = 0x8E4F</div><div class='add'>+0xE22E = 0x8E50</div><div class='add'>+0xE22F = 0x8E51</div><div class='add'>+0xE230 = 0x8E52</div><div class='add'>+0xE231 = 0x8E53</div><div class='add'>+0xE232 = 0x8E54</div><div class='add'>+0xE233 = 0x8E55</div><div class='add'>+0xE234 = 0x8E56</div><div class='add'>+0xE235 = 0x8E57</div><div class='add'>+0xE236 = 0x8E58</div><div class='add'>+0xE237 = 0x8E59</div><div class='add'>+0xE238 = 0x8E5A</div><div class='add'>+0xE239 = 0x8E5B</div><div class='add'>+0xE23A = 0x8E5C</div><div class='add'>+0xE23B = 0x8E5D</div><div class='add'>+0xE23C = 0x8E5E</div><div class='add'>+0xE23D = 0x8E5F</div><div class='add'>+0xE23E = 0x8E60</div><div class='add'>+0xE23F = 0x8E61</div><div class='add'>+0xE240 = 0x8E62</div><div class='add'>+0xE241 = 0x8E63</div><div class='add'>+0xE242 = 0x8E64</div><div class='add'>+0xE243 = 0x8E65</div><div class='add'>+0xE244 = 0x8E66</div><div class='add'>+0xE245 = 0x8E67</div><div class='add'>+0xE246 = 0x8E68</div><div class='add'>+0xE247 = 0x8E69</div><div class='add'>+0xE248 = 0x8E6A</div><div class='add'>+0xE249 = 0x8E6B</div><div class='add'>+0xE24A = 0x8E6C</div><div class='add'>+0xE24B = 0x8E6D</div><div class='add'>+0xE24C = 0x8E6E</div><div class='add'>+0xE24D = 0x8E6F</div><div class='add'>+0xE24E = 0x8E70</div><div class='add'>+0xE24F = 0x8E71</div><div class='add'>+0xE250 = 0x8E72</div><div class='add'>+0xE251 = 0x8E73</div><div class='add'>+0xE252 = 0x8E74</div><div class='add'>+0xE253 = 0x8E75</div><div class='add'>+0xE254 = 0x8E76</div><div class='add'>+0xE255 = 0x8E77</div><div class='add'>+0xE256 = 0x8E78</div><div class='add'>+0xE257 = 0x8E79</div><div class='add'>+0xE258 = 0x8E7A</div><div class='add'>+0xE259 = 0x8E7B</div><div class='add'>+0xE25A = 0x8E7C</div><div class='add'>+0xE301 = 0x9223</div><div class='add'>+0xE302 = 0x9224</div><div class='add'>+0xE303 = 0x9225</div><div class='add'>+0xE304 = 0x9226</div><div class='add'>+0xE305 = 0x9227</div><div class='add'>+0xE306 = 0x9228</div><div class='add'>+0xE307 = 0x9229</div><div class='add'>+0xE308 = 0x922A</div><div class='add'>+0xE309 = 0x922B</div><div class='add'>+0xE30A = 0x922C</div><div class='add'>+0xE30B = 0x922D</div><div class='add'>+0xE30C = 0x922E</div><div class='add'>+0xE30D = 0x922F</div><div class='add'>+0xE30E = 0x9230</div><div class='add'>+0xE30F = 0x9231</div><div class='add'>+0xE310 = 0x9232</div><div class='add'>+0xE311 = 0x9233</div><div class='add'>+0xE312 = 0x9234</div><div class='add'>+0xE313 = 0x9235</div><div class='add'>+0xE314 = 0x9236</div><div class='add'>+0xE315 = 0x9237</div><div class='add'>+0xE316 = 0x9238</div><div class='add'>+0xE317 = 0x9239</div><div class='add'>+0xE318 = 0x923A</div><div class='add'>+0xE319 = 0x923B</div><div class='add'>+0xE31A = 0x923C</div><div class='add'>+0xE31B = 0x923D</div><div class='add'>+0xE31C = 0x923E</div><div class='add'>+0xE31D = 0x923F</div><div class='add'>+0xE31E = 0x9240</div><div class='add'>+0xE31F = 0x9241</div><div class='add'>+0xE320 = 0x9242</div><div class='add'>+0xE321 = 0x9243</div><div class='add'>+0xE322 = 0x9244</div><div class='add'>+0xE323 = 0x9245</div><div class='add'>+0xE324 = 0x9246</div><div class='add'>+0xE325 = 0x9247</div><div class='add'>+0xE326 = 0x9248</div><div class='add'>+0xE327 = 0x9249</div><div class='add'>+0xE328 = 0x924A</div><div class='add'>+0xE329 = 0x924B</div><div class='add'>+0xE32A = 0x924C</div><div class='add'>+0xE32B = 0x924D</div><div class='add'>+0xE32C = 0x924E</div><div class='add'>+0xE32D = 0x924F</div><div class='add'>+0xE32E = 0x9250</div><div class='add'>+0xE32F = 0x9251</div><div class='add'>+0xE330 = 0x9252</div><div class='add'>+0xE331 = 0x9253</div><div class='add'>+0xE332 = 0x9254</div><div class='add'>+0xE333 = 0x9255</div><div class='add'>+0xE334 = 0x9256</div><div class='add'>+0xE335 = 0x9257</div><div class='add'>+0xE336 = 0x9258</div><div class='add'>+0xE337 = 0x9259</div><div class='add'>+0xE338 = 0x925A</div><div class='add'>+0xE339 = 0x925B</div><div class='add'>+0xE33A = 0x925C</div><div class='add'>+0xE33B = 0x925D</div><div class='add'>+0xE33C = 0x925E</div><div class='add'>+0xE33D = 0x925F</div><div class='add'>+0xE33E = 0x9260</div><div class='add'>+0xE33F = 0x9261</div><div class='add'>+0xE340 = 0x9262</div><div class='add'>+0xE341 = 0x9263</div><div class='add'>+0xE342 = 0x9264</div><div class='add'>+0xE343 = 0x9265</div><div class='add'>+0xE344 = 0x9266</div><div class='add'>+0xE345 = 0x9267</div><div class='add'>+0xE346 = 0x9268</div><div class='add'>+0xE347 = 0x9269</div><div class='add'>+0xE348 = 0x926A</div><div class='add'>+0xE349 = 0x926B</div><div class='add'>+0xE34A = 0x926C</div><div class='add'>+0xE34B = 0x926D</div><div class='add'>+0xE34C = 0x926E</div><div class='add'>+0xE34D = 0x926F</div><div class='add'>+0xE401 = 0x9522</div><div class='add'>+0xE402 = 0x9523</div><div class='add'>+0xE403 = 0x9524</div><div class='add'>+0xE404 = 0x9525</div><div class='add'>+0xE405 = 0x9526</div><div class='add'>+0xE406 = 0x9527</div><div class='add'>+0xE407 = 0x9528</div><div class='add'>+0xE408 = 0x9529</div><div class='add'>+0xE409 = 0x952A</div><div class='add'>+0xE40A = 0x952B</div><div class='add'>+0xE40B = 0x952C</div><div class='add'>+0xE40C = 0x952D</div><div class='add'>+0xE40D = 0x952E</div><div class='add'>+0xE40E = 0x952F</div><div class='add'>+0xE40F = 0x9530</div><div class='add'>+0xE410 = 0x9531</div><div class='add'>+0xE411 = 0x9532</div><div class='add'>+0xE412 = 0x9533</div><div class='add'>+0xE413 = 0x9534</div><div class='add'>+0xE414 = 0x9535</div><div class='add'>+0xE415 = 0x9536</div><div class='add'>+0xE416 = 0x9537</div><div class='add'>+0xE417 = 0x9538</div><div class='add'>+0xE418 = 0x9539</div><div class='add'>+0xE419 = 0x953A</div><div class='add'>+0xE41A = 0x953B</div><div class='add'>+0xE41B = 0x953C</div><div class='add'>+0xE41C = 0x953D</div><div class='add'>+0xE41D = 0x953E</div><div class='add'>+0xE41E = 0x953F</div><div class='add'>+0xE41F = 0x9540</div><div class='add'>+0xE420 = 0x9541</div><div class='add'>+0xE421 = 0x9542</div><div class='add'>+0xE422 = 0x9543</div><div class='add'>+0xE423 = 0x9544</div><div class='add'>+0xE424 = 0x9545</div><div class='add'>+0xE425 = 0x9546</div><div class='add'>+0xE426 = 0x9547</div><div class='add'>+0xE427 = 0x9548</div><div class='add'>+0xE428 = 0x9549</div><div class='add'>+0xE429 = 0x954A</div><div class='add'>+0xE42A = 0x954B</div><div class='add'>+0xE42B = 0x954C</div><div class='add'>+0xE42C = 0x954D</div><div class='add'>+0xE42D = 0x954E</div><div class='add'>+0xE42E = 0x954F</div><div class='add'>+0xE42F = 0x9550</div><div class='add'>+0xE430 = 0x9551</div><div class='add'>+0xE431 = 0x9552</div><div class='add'>+0xE432 = 0x9553</div><div class='add'>+0xE433 = 0x9554</div><div class='add'>+0xE434 = 0x9555</div><div class='add'>+0xE435 = 0x9556</div><div class='add'>+0xE436 = 0x9557</div><div class='add'>+0xE437 = 0x9558</div><div class='add'>+0xE438 = 0x9559</div><div class='add'>+0xE439 = 0x955A</div><div class='add'>+0xE43A = 0x955B</div><div class='add'>+0xE43B = 0x955C</div><div class='add'>+0xE43C = 0x955D</div><div class='add'>+0xE43D = 0x955E</div><div class='add'>+0xE43E = 0x955F</div><div class='add'>+0xE43F = 0x9560</div><div class='add'>+0xE440 = 0x9561</div><div class='add'>+0xE441 = 0x9562</div><div class='add'>+0xE442 = 0x9563</div><div class='add'>+0xE443 = 0x9564</div><div class='add'>+0xE444 = 0x9565</div><div class='add'>+0xE445 = 0x9566</div><div class='add'>+0xE446 = 0x9567</div><div class='add'>+0xE447 = 0x9568</div><div class='add'>+0xE448 = 0x9569</div><div class='add'>+0xE449 = 0x956A</div><div class='add'>+0xE44A = 0x956B</div><div class='add'>+0xE44B = 0x956C</div><div class='add'>+0xE44C = 0x956D</div><div class='add'>+0xE501 = 0x9623</div><div class='add'>+0xE502 = 0x9624</div><div class='add'>+0xE503 = 0x9625</div><div class='add'>+0xE504 = 0x9626</div><div class='add'>+0xE505 = 0x9627</div><div class='add'>+0xE506 = 0x9628</div><div class='add'>+0xE507 = 0x9629</div><div class='add'>+0xE508 = 0x962A</div><div class='add'>+0xE509 = 0x962B</div><div class='add'>+0xE50A = 0x962C</div><div class='add'>+0xE50B = 0x962D</div><div class='add'>+0xE50C = 0x962E</div><div class='add'>+0xE50D = 0x962F</div><div class='add'>+0xE50E = 0x9630</div><div class='add'>+0xE50F = 0x9631</div><div class='add'>+0xE510 = 0x9632</div><div class='add'>+0xE511 = 0x9633</div><div class='add'>+0xE512 = 0x9634</div><div class='add'>+0xE513 = 0x9635</div><div class='add'>+0xE514 = 0x9636</div><div class='add'>+0xE515 = 0x9637</div><div class='add'>+0xE516 = 0x9638</div><div class='add'>+0xE517 = 0x9639</div><div class='add'>+0xE518 = 0x963A</div><div class='add'>+0xE519 = 0x963B</div><div class='add'>+0xE51A = 0x963C</div><div class='add'>+0xE51B = 0x963D</div><div class='add'>+0xE51C = 0x963E</div><div class='add'>+0xE51D = 0x963F</div><div class='add'>+0xE51E = 0x9640</div><div class='add'>+0xE51F = 0x9641</div><div class='add'>+0xE520 = 0x9642</div><div class='add'>+0xE521 = 0x9643</div><div class='add'>+0xE522 = 0x9644</div><div class='add'>+0xE523 = 0x9645</div><div class='add'>+0xE524 = 0x9646</div><div class='add'>+0xE525 = 0x9647</div><div class='add'>+0xE526 = 0x9648</div><div class='add'>+0xE527 = 0x9649</div><div class='add'>+0xE528 = 0x964A</div><div class='add'>+0xE529 = 0x964B</div><div class='add'>+0xE52A = 0x964C</div><div class='add'>+0xE52B = 0x964D</div><div class='add'>+0xE52C = 0x964E</div><div class='add'>+0xE52D = 0x964F</div><div class='add'>+0xE52E = 0x9650</div><div class='add'>+0xE52F = 0x9651</div><div class='add'>+0xE530 = 0x9652</div><div class='add'>+0xE531 = 0x9653</div><div class='add'>+0xE532 = 0x9654</div><div class='add'>+0xE533 = 0x9655</div><div class='add'>+0xE534 = 0x9656</div><div class='add'>+0xE535 = 0x9657</div><div class='add'>+0xE536 = 0x9658</div><div class='add'>+0xE537 = 0x9659</div><div class='add'>+0xE538 = 0x965A</div><div class='add'>+0xE539 = 0x965B</div><div class='add'>+0xE53A = 0x965C</div><div class='add'>+0xE53B = 0x965D</div><div class='add'>+0xE53C = 0x965E</div><div class='add'>+0xE53D = 0x965F</div><div class='add'>+0xE53E = 0x9660</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/GB/GB12345%UCS.src b/enc/trans/GB/GB12345%UCS.src<br/>new file mode 100644<br/>index 0000000000..0b4115bed9<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/GB/GB12345%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/GB/GB12345%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,7618 @@</div><div class='add'>+# $NetBSD: GB12345%UCS.src,v 1.1 2006/11/23 03:25:24 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"GB12345/UCS"</div><div class='add'>+SRC_ZONE	0x21-0x79 / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             GB12345-80 to Unicode table (complete, hex format)</div><div class='add'>+#	Unicode version:  1.1</div><div class='add'>+#	Table version:    0.0d1</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             6 December 1993</div><div class='add'>+#	Author:           Glenn Adams &lt;glenn@metis.com&gt;</div><div class='add'>+#                     John H. Jenkins &lt;John_Jenkins@taligent.com&gt;</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on magnetic media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</div><div class='add'>+#</div><div class='add'>+#	Recipient is granted the right to make copies in any form for</div><div class='add'>+#	internal distribution and to freely use the information supplied</div><div class='add'>+#	in the creation of products supporting Unicode.  Unicode, Inc.</div><div class='add'>+#	specifically excludes the right to re-distribute this file directly</div><div class='add'>+#	to third parties or other organizations whether for profit or not.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#	This table contains the data Metis and Taligent currently have on how</div><div class='add'>+#       GB12345-90 characters map into Unicode.</div><div class='add'>+#</div><div class='add'>+#	Format:  Three tab-separated columns</div><div class='add'>+#		 Column #1 is the GB12345 code (in hex as 0xXXXX)</div><div class='add'>+#		 Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		 Column #3 the Unicode name (follows a comment sign, '#')</div><div class='add'>+#					The official names for Unicode characters U+4E00</div><div class='add'>+#					to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",</div><div class='add'>+#					where XXXX is the code point.  Including all these</div><div class='add'>+#					names in this file increases its size substantially</div><div class='add'>+#					and needlessly.  The token "&lt;CJK&gt;" is used for the</div><div class='add'>+#					name of these characters.  If necessary, it can be</div><div class='add'>+#					expanded algorithmically by a parser or editor.</div><div class='add'>+#</div><div class='add'>+#	The entries are in GB12345 order</div><div class='add'>+#</div><div class='add'>+#	The following algorithms can be used to change the hex form</div><div class='add'>+#		of GB12345 to other standard forms:</div><div class='add'>+#</div><div class='add'>+#		To change hex to EUC form, add 0x8080</div><div class='add'>+#		To change hex to kuten form, first subtract 0x2020.  Then</div><div class='add'>+#			the high and low bytes correspond to the ku and ten of</div><div class='add'>+#			the kuten form.  For example, 0x2121 -&gt; 0x0101 -&gt; 0101;</div><div class='add'>+#			0x777E -&gt; 0x575E -&gt; 8794</div><div class='add'>+#</div><div class='add'>+#	Any comments or problems, contact &lt;John_Jenkins@taligent.com&gt;</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+0x2121 = 0x3000</div><div class='add'>+0x2122 = 0x3001</div><div class='add'>+0x2123 = 0x3002</div><div class='add'>+0x2124 = 0x00B7</div><div class='add'>+0x2125 = 0x02C9</div><div class='add'>+0x2126 = 0x02C7</div><div class='add'>+0x2127 = 0x00A8</div><div class='add'>+0x2128 = 0x3003</div><div class='add'>+0x2129 = 0x3005</div><div class='add'>+0x212A = 0x2014</div><div class='add'>+0x212B = 0xFF5E</div><div class='add'>+0x212C = 0x2016</div><div class='add'>+0x212D = 0x2026</div><div class='add'>+0x212E = 0x2018</div><div class='add'>+0x212F = 0x2019</div><div class='add'>+0x2130 = 0x201C</div><div class='add'>+0x2131 = 0x201D</div><div class='add'>+0x2132 = 0x3014</div><div class='add'>+0x2133 = 0x3015</div><div class='add'>+0x2134 = 0x3008</div><div class='add'>+0x2135 = 0x3009</div><div class='add'>+0x2136 = 0x300A</div><div class='add'>+0x2137 = 0x300B</div><div class='add'>+0x2138 = 0x300C</div><div class='add'>+0x2139 = 0x300D</div><div class='add'>+0x213A = 0x300E</div><div class='add'>+0x213B = 0x300F</div><div class='add'>+0x213C = 0x3016</div><div class='add'>+0x213D = 0x3017</div><div class='add'>+0x213E = 0x3010</div><div class='add'>+0x213F = 0x3011</div><div class='add'>+0x2140 = 0x00B1</div><div class='add'>+0x2141 = 0x00D7</div><div class='add'>+0x2142 = 0x00F7</div><div class='add'>+0x2143 = 0x2236</div><div class='add'>+0x2144 = 0x2227</div><div class='add'>+0x2145 = 0x2228</div><div class='add'>+0x2146 = 0x2211</div><div class='add'>+0x2147 = 0x220F</div><div class='add'>+0x2148 = 0x222A</div><div class='add'>+0x2149 = 0x2229</div><div class='add'>+0x214A = 0x2208</div><div class='add'>+0x214B = 0x2237</div><div class='add'>+0x214C = 0x221A</div><div class='add'>+0x214D = 0x22A5</div><div class='add'>+0x214E = 0x2225</div><div class='add'>+0x214F = 0x2220</div><div class='add'>+0x2150 = 0x2312</div><div class='add'>+0x2151 = 0x2299</div><div class='add'>+0x2152 = 0x222B</div><div class='add'>+0x2153 = 0x222E</div><div class='add'>+0x2154 = 0x2261</div><div class='add'>+0x2155 = 0x224C</div><div class='add'>+0x2156 = 0x2248</div><div class='add'>+0x2157 = 0x223D</div><div class='add'>+0x2158 = 0x221D</div><div class='add'>+0x2159 = 0x2260</div><div class='add'>+0x215A = 0x226E</div><div class='add'>+0x215B = 0x226F</div><div class='add'>+0x215C = 0x2264</div><div class='add'>+0x215D = 0x2265</div><div class='add'>+0x215E = 0x221E</div><div class='add'>+0x215F = 0x2235</div><div class='add'>+0x2160 = 0x2234</div><div class='add'>+0x2161 = 0x2642</div><div class='add'>+0x2162 = 0x2640</div><div class='add'>+0x2163 = 0x00B0</div><div class='add'>+0x2164 = 0x2032</div><div class='add'>+0x2165 = 0x2033</div><div class='add'>+0x2166 = 0x2103</div><div class='add'>+0x2167 = 0xFF04</div><div class='add'>+0x2168 = 0x00A4</div><div class='add'>+0x2169 = 0xFFE0</div><div class='add'>+0x216A = 0xFFE1</div><div class='add'>+0x216B = 0x2030</div><div class='add'>+0x216C = 0x00A7</div><div class='add'>+0x216D = 0x2116</div><div class='add'>+0x216E = 0x2606</div><div class='add'>+0x216F = 0x2605</div><div class='add'>+0x2170 = 0x25CB</div><div class='add'>+0x2171 = 0x25CF</div><div class='add'>+0x2172 = 0x25CE</div><div class='add'>+0x2173 = 0x25C7</div><div class='add'>+0x2174 = 0x25C6</div><div class='add'>+0x2175 = 0x25A1</div><div class='add'>+0x2176 = 0x25A0</div><div class='add'>+0x2177 = 0x25B3</div><div class='add'>+0x2178 = 0x25B2</div><div class='add'>+0x2179 = 0x203B</div><div class='add'>+0x217A = 0x2192</div><div class='add'>+0x217B = 0x2190</div><div class='add'>+0x217C = 0x2191</div><div class='add'>+0x217D = 0x2193</div><div class='add'>+0x217E = 0x3013</div><div class='add'>+0x2231 = 0x2488</div><div class='add'>+0x2232 = 0x2489</div><div class='add'>+0x2233 = 0x248A</div><div class='add'>+0x2234 = 0x248B</div><div class='add'>+0x2235 = 0x248C</div><div class='add'>+0x2236 = 0x248D</div><div class='add'>+0x2237 = 0x248E</div><div class='add'>+0x2238 = 0x248F</div><div class='add'>+0x2239 = 0x2490</div><div class='add'>+0x223A = 0x2491</div><div class='add'>+0x223B = 0x2492</div><div class='add'>+0x223C = 0x2493</div><div class='add'>+0x223D = 0x2494</div><div class='add'>+0x223E = 0x2495</div><div class='add'>+0x223F = 0x2496</div><div class='add'>+0x2240 = 0x2497</div><div class='add'>+0x2241 = 0x2498</div><div class='add'>+0x2242 = 0x2499</div><div class='add'>+0x2243 = 0x249A</div><div class='add'>+0x2244 = 0x249B</div><div class='add'>+0x2245 = 0x2474</div><div class='add'>+0x2246 = 0x2475</div><div class='add'>+0x2247 = 0x2476</div><div class='add'>+0x2248 = 0x2477</div><div class='add'>+0x2249 = 0x2478</div><div class='add'>+0x224A = 0x2479</div><div class='add'>+0x224B = 0x247A</div><div class='add'>+0x224C = 0x247B</div><div class='add'>+0x224D = 0x247C</div><div class='add'>+0x224E = 0x247D</div><div class='add'>+0x224F = 0x247E</div><div class='add'>+0x2250 = 0x247F</div><div class='add'>+0x2251 = 0x2480</div><div class='add'>+0x2252 = 0x2481</div><div class='add'>+0x2253 = 0x2482</div><div class='add'>+0x2254 = 0x2483</div><div class='add'>+0x2255 = 0x2484</div><div class='add'>+0x2256 = 0x2485</div><div class='add'>+0x2257 = 0x2486</div><div class='add'>+0x2258 = 0x2487</div><div class='add'>+0x2259 = 0x2460</div><div class='add'>+0x225A = 0x2461</div><div class='add'>+0x225B = 0x2462</div><div class='add'>+0x225C = 0x2463</div><div class='add'>+0x225D = 0x2464</div><div class='add'>+0x225E = 0x2465</div><div class='add'>+0x225F = 0x2466</div><div class='add'>+0x2260 = 0x2467</div><div class='add'>+0x2261 = 0x2468</div><div class='add'>+0x2262 = 0x2469</div><div class='add'>+0x2265 = 0x3220</div><div class='add'>+0x2266 = 0x3221</div><div class='add'>+0x2267 = 0x3222</div><div class='add'>+0x2268 = 0x3223</div><div class='add'>+0x2269 = 0x3224</div><div class='add'>+0x226A = 0x3225</div><div class='add'>+0x226B = 0x3226</div><div class='add'>+0x226C = 0x3227</div><div class='add'>+0x226D = 0x3228</div><div class='add'>+0x226E = 0x3229</div><div class='add'>+0x2271 = 0x2160</div><div class='add'>+0x2272 = 0x2161</div><div class='add'>+0x2273 = 0x2162</div><div class='add'>+0x2274 = 0x2163</div><div class='add'>+0x2275 = 0x2164</div><div class='add'>+0x2276 = 0x2165</div><div class='add'>+0x2277 = 0x2166</div><div class='add'>+0x2278 = 0x2167</div><div class='add'>+0x2279 = 0x2168</div><div class='add'>+0x227A = 0x2169</div><div class='add'>+0x227B = 0x216A</div><div class='add'>+0x227C = 0x216B</div><div class='add'>+0x2321 = 0xFF01</div><div class='add'>+0x2322 = 0xFF02</div><div class='add'>+0x2323 = 0xFF03</div><div class='add'>+0x2324 = 0xFFE5</div><div class='add'>+0x2325 = 0xFF05</div><div class='add'>+0x2326 = 0xFF06</div><div class='add'>+0x2327 = 0xFF07</div><div class='add'>+0x2328 = 0xFF08</div><div class='add'>+0x2329 = 0xFF09</div><div class='add'>+0x232A = 0xFF0A</div><div class='add'>+0x232B = 0xFF0B</div><div class='add'>+0x232C = 0xFF0C</div><div class='add'>+0x232D = 0xFF0D</div><div class='add'>+0x232E = 0xFF0E</div><div class='add'>+0x232F = 0xFF0F</div><div class='add'>+0x2330 = 0xFF10</div><div class='add'>+0x2331 = 0xFF11</div><div class='add'>+0x2332 = 0xFF12</div><div class='add'>+0x2333 = 0xFF13</div><div class='add'>+0x2334 = 0xFF14</div><div class='add'>+0x2335 = 0xFF15</div><div class='add'>+0x2336 = 0xFF16</div><div class='add'>+0x2337 = 0xFF17</div><div class='add'>+0x2338 = 0xFF18</div><div class='add'>+0x2339 = 0xFF19</div><div class='add'>+0x233A = 0xFF1A</div><div class='add'>+0x233B = 0xFF1B</div><div class='add'>+0x233C = 0xFF1C</div><div class='add'>+0x233D = 0xFF1D</div><div class='add'>+0x233E = 0xFF1E</div><div class='add'>+0x233F = 0xFF1F</div><div class='add'>+0x2340 = 0xFF20</div><div class='add'>+0x2341 = 0xFF21</div><div class='add'>+0x2342 = 0xFF22</div><div class='add'>+0x2343 = 0xFF23</div><div class='add'>+0x2344 = 0xFF24</div><div class='add'>+0x2345 = 0xFF25</div><div class='add'>+0x2346 = 0xFF26</div><div class='add'>+0x2347 = 0xFF27</div><div class='add'>+0x2348 = 0xFF28</div><div class='add'>+0x2349 = 0xFF29</div><div class='add'>+0x234A = 0xFF2A</div><div class='add'>+0x234B = 0xFF2B</div><div class='add'>+0x234C = 0xFF2C</div><div class='add'>+0x234D = 0xFF2D</div><div class='add'>+0x234E = 0xFF2E</div><div class='add'>+0x234F = 0xFF2F</div><div class='add'>+0x2350 = 0xFF30</div><div class='add'>+0x2351 = 0xFF31</div><div class='add'>+0x2352 = 0xFF32</div><div class='add'>+0x2353 = 0xFF33</div><div class='add'>+0x2354 = 0xFF34</div><div class='add'>+0x2355 = 0xFF35</div><div class='add'>+0x2356 = 0xFF36</div><div class='add'>+0x2357 = 0xFF37</div><div class='add'>+0x2358 = 0xFF38</div><div class='add'>+0x2359 = 0xFF39</div><div class='add'>+0x235A = 0xFF3A</div><div class='add'>+0x235B = 0xFF3B</div><div class='add'>+0x235C = 0xFF3C</div><div class='add'>+0x235D = 0xFF3D</div><div class='add'>+0x235E = 0xFF3E</div><div class='add'>+0x235F = 0xFF3F</div><div class='add'>+0x2360 = 0xFF40</div><div class='add'>+0x2361 = 0xFF41</div><div class='add'>+0x2362 = 0xFF42</div><div class='add'>+0x2363 = 0xFF43</div><div class='add'>+0x2364 = 0xFF44</div><div class='add'>+0x2365 = 0xFF45</div><div class='add'>+0x2366 = 0xFF46</div><div class='add'>+0x2367 = 0xFF47</div><div class='add'>+0x2368 = 0xFF48</div><div class='add'>+0x2369 = 0xFF49</div><div class='add'>+0x236A = 0xFF4A</div><div class='add'>+0x236B = 0xFF4B</div><div class='add'>+0x236C = 0xFF4C</div><div class='add'>+0x236D = 0xFF4D</div><div class='add'>+0x236E = 0xFF4E</div><div class='add'>+0x236F = 0xFF4F</div><div class='add'>+0x2370 = 0xFF50</div><div class='add'>+0x2371 = 0xFF51</div><div class='add'>+0x2372 = 0xFF52</div><div class='add'>+0x2373 = 0xFF53</div><div class='add'>+0x2374 = 0xFF54</div><div class='add'>+0x2375 = 0xFF55</div><div class='add'>+0x2376 = 0xFF56</div><div class='add'>+0x2377 = 0xFF57</div><div class='add'>+0x2378 = 0xFF58</div><div class='add'>+0x2379 = 0xFF59</div><div class='add'>+0x237A = 0xFF5A</div><div class='add'>+0x237B = 0xFF5B</div><div class='add'>+0x237C = 0xFF5C</div><div class='add'>+0x237D = 0xFF5D</div><div class='add'>+0x237E = 0xFFE3</div><div class='add'>+0x2421 = 0x3041</div><div class='add'>+0x2422 = 0x3042</div><div class='add'>+0x2423 = 0x3043</div><div class='add'>+0x2424 = 0x3044</div><div class='add'>+0x2425 = 0x3045</div><div class='add'>+0x2426 = 0x3046</div><div class='add'>+0x2427 = 0x3047</div><div class='add'>+0x2428 = 0x3048</div><div class='add'>+0x2429 = 0x3049</div><div class='add'>+0x242A = 0x304A</div><div class='add'>+0x242B = 0x304B</div><div class='add'>+0x242C = 0x304C</div><div class='add'>+0x242D = 0x304D</div><div class='add'>+0x242E = 0x304E</div><div class='add'>+0x242F = 0x304F</div><div class='add'>+0x2430 = 0x3050</div><div class='add'>+0x2431 = 0x3051</div><div class='add'>+0x2432 = 0x3052</div><div class='add'>+0x2433 = 0x3053</div><div class='add'>+0x2434 = 0x3054</div><div class='add'>+0x2435 = 0x3055</div><div class='add'>+0x2436 = 0x3056</div><div class='add'>+0x2437 = 0x3057</div><div class='add'>+0x2438 = 0x3058</div><div class='add'>+0x2439 = 0x3059</div><div class='add'>+0x243A = 0x305A</div><div class='add'>+0x243B = 0x305B</div><div class='add'>+0x243C = 0x305C</div><div class='add'>+0x243D = 0x305D</div><div class='add'>+0x243E = 0x305E</div><div class='add'>+0x243F = 0x305F</div><div class='add'>+0x2440 = 0x3060</div><div class='add'>+0x2441 = 0x3061</div><div class='add'>+0x2442 = 0x3062</div><div class='add'>+0x2443 = 0x3063</div><div class='add'>+0x2444 = 0x3064</div><div class='add'>+0x2445 = 0x3065</div><div class='add'>+0x2446 = 0x3066</div><div class='add'>+0x2447 = 0x3067</div><div class='add'>+0x2448 = 0x3068</div><div class='add'>+0x2449 = 0x3069</div><div class='add'>+0x244A = 0x306A</div><div class='add'>+0x244B = 0x306B</div><div class='add'>+0x244C = 0x306C</div><div class='add'>+0x244D = 0x306D</div><div class='add'>+0x244E = 0x306E</div><div class='add'>+0x244F = 0x306F</div><div class='add'>+0x2450 = 0x3070</div><div class='add'>+0x2451 = 0x3071</div><div class='add'>+0x2452 = 0x3072</div><div class='add'>+0x2453 = 0x3073</div><div class='add'>+0x2454 = 0x3074</div><div class='add'>+0x2455 = 0x3075</div><div class='add'>+0x2456 = 0x3076</div><div class='add'>+0x2457 = 0x3077</div><div class='add'>+0x2458 = 0x3078</div><div class='add'>+0x2459 = 0x3079</div><div class='add'>+0x245A = 0x307A</div><div class='add'>+0x245B = 0x307B</div><div class='add'>+0x245C = 0x307C</div><div class='add'>+0x245D = 0x307D</div><div class='add'>+0x245E = 0x307E</div><div class='add'>+0x245F = 0x307F</div><div class='add'>+0x2460 = 0x3080</div><div class='add'>+0x2461 = 0x3081</div><div class='add'>+0x2462 = 0x3082</div><div class='add'>+0x2463 = 0x3083</div><div class='add'>+0x2464 = 0x3084</div><div class='add'>+0x2465 = 0x3085</div><div class='add'>+0x2466 = 0x3086</div><div class='add'>+0x2467 = 0x3087</div><div class='add'>+0x2468 = 0x3088</div><div class='add'>+0x2469 = 0x3089</div><div class='add'>+0x246A = 0x308A</div><div class='add'>+0x246B = 0x308B</div><div class='add'>+0x246C = 0x308C</div><div class='add'>+0x246D = 0x308D</div><div class='add'>+0x246E = 0x308E</div><div class='add'>+0x246F = 0x308F</div><div class='add'>+0x2470 = 0x3090</div><div class='add'>+0x2471 = 0x3091</div><div class='add'>+0x2472 = 0x3092</div><div class='add'>+0x2473 = 0x3093</div><div class='add'>+0x2521 = 0x30A1</div><div class='add'>+0x2522 = 0x30A2</div><div class='add'>+0x2523 = 0x30A3</div><div class='add'>+0x2524 = 0x30A4</div><div class='add'>+0x2525 = 0x30A5</div><div class='add'>+0x2526 = 0x30A6</div><div class='add'>+0x2527 = 0x30A7</div><div class='add'>+0x2528 = 0x30A8</div><div class='add'>+0x2529 = 0x30A9</div><div class='add'>+0x252A = 0x30AA</div><div class='add'>+0x252B = 0x30AB</div><div class='add'>+0x252C = 0x30AC</div><div class='add'>+0x252D = 0x30AD</div><div class='add'>+0x252E = 0x30AE</div><div class='add'>+0x252F = 0x30AF</div><div class='add'>+0x2530 = 0x30B0</div><div class='add'>+0x2531 = 0x30B1</div><div class='add'>+0x2532 = 0x30B2</div><div class='add'>+0x2533 = 0x30B3</div><div class='add'>+0x2534 = 0x30B4</div><div class='add'>+0x2535 = 0x30B5</div><div class='add'>+0x2536 = 0x30B6</div><div class='add'>+0x2537 = 0x30B7</div><div class='add'>+0x2538 = 0x30B8</div><div class='add'>+0x2539 = 0x30B9</div><div class='add'>+0x253A = 0x30BA</div><div class='add'>+0x253B = 0x30BB</div><div class='add'>+0x253C = 0x30BC</div><div class='add'>+0x253D = 0x30BD</div><div class='add'>+0x253E = 0x30BE</div><div class='add'>+0x253F = 0x30BF</div><div class='add'>+0x2540 = 0x30C0</div><div class='add'>+0x2541 = 0x30C1</div><div class='add'>+0x2542 = 0x30C2</div><div class='add'>+0x2543 = 0x30C3</div><div class='add'>+0x2544 = 0x30C4</div><div class='add'>+0x2545 = 0x30C5</div><div class='add'>+0x2546 = 0x30C6</div><div class='add'>+0x2547 = 0x30C7</div><div class='add'>+0x2548 = 0x30C8</div><div class='add'>+0x2549 = 0x30C9</div><div class='add'>+0x254A = 0x30CA</div><div class='add'>+0x254B = 0x30CB</div><div class='add'>+0x254C = 0x30CC</div><div class='add'>+0x254D = 0x30CD</div><div class='add'>+0x254E = 0x30CE</div><div class='add'>+0x254F = 0x30CF</div><div class='add'>+0x2550 = 0x30D0</div><div class='add'>+0x2551 = 0x30D1</div><div class='add'>+0x2552 = 0x30D2</div><div class='add'>+0x2553 = 0x30D3</div><div class='add'>+0x2554 = 0x30D4</div><div class='add'>+0x2555 = 0x30D5</div><div class='add'>+0x2556 = 0x30D6</div><div class='add'>+0x2557 = 0x30D7</div><div class='add'>+0x2558 = 0x30D8</div><div class='add'>+0x2559 = 0x30D9</div><div class='add'>+0x255A = 0x30DA</div><div class='add'>+0x255B = 0x30DB</div><div class='add'>+0x255C = 0x30DC</div><div class='add'>+0x255D = 0x30DD</div><div class='add'>+0x255E = 0x30DE</div><div class='add'>+0x255F = 0x30DF</div><div class='add'>+0x2560 = 0x30E0</div><div class='add'>+0x2561 = 0x30E1</div><div class='add'>+0x2562 = 0x30E2</div><div class='add'>+0x2563 = 0x30E3</div><div class='add'>+0x2564 = 0x30E4</div><div class='add'>+0x2565 = 0x30E5</div><div class='add'>+0x2566 = 0x30E6</div><div class='add'>+0x2567 = 0x30E7</div><div class='add'>+0x2568 = 0x30E8</div><div class='add'>+0x2569 = 0x30E9</div><div class='add'>+0x256A = 0x30EA</div><div class='add'>+0x256B = 0x30EB</div><div class='add'>+0x256C = 0x30EC</div><div class='add'>+0x256D = 0x30ED</div><div class='add'>+0x256E = 0x30EE</div><div class='add'>+0x256F = 0x30EF</div><div class='add'>+0x2570 = 0x30F0</div><div class='add'>+0x2571 = 0x30F1</div><div class='add'>+0x2572 = 0x30F2</div><div class='add'>+0x2573 = 0x30F3</div><div class='add'>+0x2574 = 0x30F4</div><div class='add'>+0x2575 = 0x30F5</div><div class='add'>+0x2576 = 0x30F6</div><div class='add'>+0x2621 = 0x0391</div><div class='add'>+0x2622 = 0x0392</div><div class='add'>+0x2623 = 0x0393</div><div class='add'>+0x2624 = 0x0394</div><div class='add'>+0x2625 = 0x0395</div><div class='add'>+0x2626 = 0x0396</div><div class='add'>+0x2627 = 0x0397</div><div class='add'>+0x2628 = 0x0398</div><div class='add'>+0x2629 = 0x0399</div><div class='add'>+0x262A = 0x039A</div><div class='add'>+0x262B = 0x039B</div><div class='add'>+0x262C = 0x039C</div><div class='add'>+0x262D = 0x039D</div><div class='add'>+0x262E = 0x039E</div><div class='add'>+0x262F = 0x039F</div><div class='add'>+0x2630 = 0x03A0</div><div class='add'>+0x2631 = 0x03A1</div><div class='add'>+0x2632 = 0x03A3</div><div class='add'>+0x2633 = 0x03A4</div><div class='add'>+0x2634 = 0x03A5</div><div class='add'>+0x2635 = 0x03A6</div><div class='add'>+0x2636 = 0x03A7</div><div class='add'>+0x2637 = 0x03A8</div><div class='add'>+0x2638 = 0x03A9</div><div class='add'>+0x2641 = 0x03B1</div><div class='add'>+0x2642 = 0x03B2</div><div class='add'>+0x2643 = 0x03B3</div><div class='add'>+0x2644 = 0x03B4</div><div class='add'>+0x2645 = 0x03B5</div><div class='add'>+0x2646 = 0x03B6</div><div class='add'>+0x2647 = 0x03B7</div><div class='add'>+0x2648 = 0x03B8</div><div class='add'>+0x2649 = 0x03B9</div><div class='add'>+0x264A = 0x03BA</div><div class='add'>+0x264B = 0x03BB</div><div class='add'>+0x264C = 0x03BC</div><div class='add'>+0x264D = 0x03BD</div><div class='add'>+0x264E = 0x03BE</div><div class='add'>+0x264F = 0x03BF</div><div class='add'>+0x2650 = 0x03C0</div><div class='add'>+0x2651 = 0x03C1</div><div class='add'>+0x2652 = 0x03C3</div><div class='add'>+0x2653 = 0x03C4</div><div class='add'>+0x2654 = 0x03C5</div><div class='add'>+0x2655 = 0x03C6</div><div class='add'>+0x2656 = 0x03C7</div><div class='add'>+0x2657 = 0x03C8</div><div class='add'>+0x2658 = 0x03C9</div><div class='add'>+0x2721 = 0x0410</div><div class='add'>+0x2722 = 0x0411</div><div class='add'>+0x2723 = 0x0412</div><div class='add'>+0x2724 = 0x0413</div><div class='add'>+0x2725 = 0x0414</div><div class='add'>+0x2726 = 0x0415</div><div class='add'>+0x2727 = 0x0401</div><div class='add'>+0x2728 = 0x0416</div><div class='add'>+0x2729 = 0x0417</div><div class='add'>+0x272A = 0x0418</div><div class='add'>+0x272B = 0x0419</div><div class='add'>+0x272C = 0x041A</div><div class='add'>+0x272D = 0x041B</div><div class='add'>+0x272E = 0x041C</div><div class='add'>+0x272F = 0x041D</div><div class='add'>+0x2730 = 0x041E</div><div class='add'>+0x2731 = 0x041F</div><div class='add'>+0x2732 = 0x0420</div><div class='add'>+0x2733 = 0x0421</div><div class='add'>+0x2734 = 0x0422</div><div class='add'>+0x2735 = 0x0423</div><div class='add'>+0x2736 = 0x0424</div><div class='add'>+0x2737 = 0x0425</div><div class='add'>+0x2738 = 0x0426</div><div class='add'>+0x2739 = 0x0427</div><div class='add'>+0x273A = 0x0428</div><div class='add'>+0x273B = 0x0429</div><div class='add'>+0x273C = 0x042A</div><div class='add'>+0x273D = 0x042B</div><div class='add'>+0x273E = 0x042C</div><div class='add'>+0x273F = 0x042D</div><div class='add'>+0x2740 = 0x042E</div><div class='add'>+0x2741 = 0x042F</div><div class='add'>+0x2751 = 0x0430</div><div class='add'>+0x2752 = 0x0431</div><div class='add'>+0x2753 = 0x0432</div><div class='add'>+0x2754 = 0x0433</div><div class='add'>+0x2755 = 0x0434</div><div class='add'>+0x2756 = 0x0435</div><div class='add'>+0x2757 = 0x0451</div><div class='add'>+0x2758 = 0x0436</div><div class='add'>+0x2759 = 0x0437</div><div class='add'>+0x275A = 0x0438</div><div class='add'>+0x275B = 0x0439</div><div class='add'>+0x275C = 0x043A</div><div class='add'>+0x275D = 0x043B</div><div class='add'>+0x275E = 0x043C</div><div class='add'>+0x275F = 0x043D</div><div class='add'>+0x2760 = 0x043E</div><div class='add'>+0x2761 = 0x043F</div><div class='add'>+0x2762 = 0x0440</div><div class='add'>+0x2763 = 0x0441</div><div class='add'>+0x2764 = 0x0442</div><div class='add'>+0x2765 = 0x0443</div><div class='add'>+0x2766 = 0x0444</div><div class='add'>+0x2767 = 0x0445</div><div class='add'>+0x2768 = 0x0446</div><div class='add'>+0x2769 = 0x0447</div><div class='add'>+0x276A = 0x0448</div><div class='add'>+0x276B = 0x0449</div><div class='add'>+0x276C = 0x044A</div><div class='add'>+0x276D = 0x044B</div><div class='add'>+0x276E = 0x044C</div><div class='add'>+0x276F = 0x044D</div><div class='add'>+0x2770 = 0x044E</div><div class='add'>+0x2771 = 0x044F</div><div class='add'>+0x2821 = 0x0101</div><div class='add'>+0x2822 = 0x00E1</div><div class='add'>+0x2823 = 0x01CE</div><div class='add'>+0x2824 = 0x00E0</div><div class='add'>+0x2825 = 0x0113</div><div class='add'>+0x2826 = 0x00E9</div><div class='add'>+0x2827 = 0x011B</div><div class='add'>+0x2828 = 0x00E8</div><div class='add'>+0x2829 = 0x012B</div><div class='add'>+0x282A = 0x00ED</div><div class='add'>+0x282B = 0x01D0</div><div class='add'>+0x282C = 0x00EC</div><div class='add'>+0x282D = 0x014D</div><div class='add'>+0x282E = 0x00F3</div><div class='add'>+0x282F = 0x01D2</div><div class='add'>+0x2830 = 0x00F2</div><div class='add'>+0x2831 = 0x016B</div><div class='add'>+0x2832 = 0x00FA</div><div class='add'>+0x2833 = 0x01D4</div><div class='add'>+0x2834 = 0x00F9</div><div class='add'>+0x2835 = 0x01D6</div><div class='add'>+0x2836 = 0x01D8</div><div class='add'>+0x2837 = 0x01DA</div><div class='add'>+0x2838 = 0x01DC</div><div class='add'>+0x2839 = 0x00FC</div><div class='add'>+0x283A = 0x00EA</div><div class='add'>+0x2845 = 0x3105</div><div class='add'>+0x2846 = 0x3106</div><div class='add'>+0x2847 = 0x3107</div><div class='add'>+0x2848 = 0x3108</div><div class='add'>+0x2849 = 0x3109</div><div class='add'>+0x284A = 0x310A</div><div class='add'>+0x284B = 0x310B</div><div class='add'>+0x284C = 0x310C</div><div class='add'>+0x284D = 0x310D</div><div class='add'>+0x284E = 0x310E</div><div class='add'>+0x284F = 0x310F</div><div class='add'>+0x2850 = 0x3110</div><div class='add'>+0x2851 = 0x3111</div><div class='add'>+0x2852 = 0x3112</div><div class='add'>+0x2853 = 0x3113</div><div class='add'>+0x2854 = 0x3114</div><div class='add'>+0x2855 = 0x3115</div><div class='add'>+0x2856 = 0x3116</div><div class='add'>+0x2857 = 0x3117</div><div class='add'>+0x2858 = 0x3118</div><div class='add'>+0x2859 = 0x3119</div><div class='add'>+0x285A = 0x311A</div><div class='add'>+0x285B = 0x311B</div><div class='add'>+0x285C = 0x311C</div><div class='add'>+0x285D = 0x311D</div><div class='add'>+0x285E = 0x311E</div><div class='add'>+0x285F = 0x311F</div><div class='add'>+0x2860 = 0x3120</div><div class='add'>+0x2861 = 0x3121</div><div class='add'>+0x2862 = 0x3122</div><div class='add'>+0x2863 = 0x3123</div><div class='add'>+0x2864 = 0x3124</div><div class='add'>+0x2865 = 0x3125</div><div class='add'>+0x2866 = 0x3126</div><div class='add'>+0x2867 = 0x3127</div><div class='add'>+0x2868 = 0x3128</div><div class='add'>+0x2869 = 0x3129</div><div class='add'>+0x2924 = 0x2500</div><div class='add'>+0x2925 = 0x2501</div><div class='add'>+0x2926 = 0x2502</div><div class='add'>+0x2927 = 0x2503</div><div class='add'>+0x2928 = 0x2504</div><div class='add'>+0x2929 = 0x2505</div><div class='add'>+0x292A = 0x2506</div><div class='add'>+0x292B = 0x2507</div><div class='add'>+0x292C = 0x2508</div><div class='add'>+0x292D = 0x2509</div><div class='add'>+0x292E = 0x250A</div><div class='add'>+0x292F = 0x250B</div><div class='add'>+0x2930 = 0x250C</div><div class='add'>+0x2931 = 0x250D</div><div class='add'>+0x2932 = 0x250E</div><div class='add'>+0x2933 = 0x250F</div><div class='add'>+0x2934 = 0x2510</div><div class='add'>+0x2935 = 0x2511</div><div class='add'>+0x2936 = 0x2512</div><div class='add'>+0x2937 = 0x2513</div><div class='add'>+0x2938 = 0x2514</div><div class='add'>+0x2939 = 0x2515</div><div class='add'>+0x293A = 0x2516</div><div class='add'>+0x293B = 0x2517</div><div class='add'>+0x293C = 0x2518</div><div class='add'>+0x293D = 0x2519</div><div class='add'>+0x293E = 0x251A</div><div class='add'>+0x293F = 0x251B</div><div class='add'>+0x2940 = 0x251C</div><div class='add'>+0x2941 = 0x251D</div><div class='add'>+0x2942 = 0x251E</div><div class='add'>+0x2943 = 0x251F</div><div class='add'>+0x2944 = 0x2520</div><div class='add'>+0x2945 = 0x2521</div><div class='add'>+0x2946 = 0x2522</div><div class='add'>+0x2947 = 0x2523</div><div class='add'>+0x2948 = 0x2524</div><div class='add'>+0x2949 = 0x2525</div><div class='add'>+0x294A = 0x2526</div><div class='add'>+0x294B = 0x2527</div><div class='add'>+0x294C = 0x2528</div><div class='add'>+0x294D = 0x2529</div><div class='add'>+0x294E = 0x252A</div><div class='add'>+0x294F = 0x252B</div><div class='add'>+0x2950 = 0x252C</div><div class='add'>+0x2951 = 0x252D</div><div class='add'>+0x2952 = 0x252E</div><div class='add'>+0x2953 = 0x252F</div><div class='add'>+0x2954 = 0x2530</div><div class='add'>+0x2955 = 0x2531</div><div class='add'>+0x2956 = 0x2532</div><div class='add'>+0x2957 = 0x2533</div><div class='add'>+0x2958 = 0x2534</div><div class='add'>+0x2959 = 0x2535</div><div class='add'>+0x295A = 0x2536</div><div class='add'>+0x295B = 0x2537</div><div class='add'>+0x295C = 0x2538</div><div class='add'>+0x295D = 0x2539</div><div class='add'>+0x295E = 0x253A</div><div class='add'>+0x295F = 0x253B</div><div class='add'>+0x2960 = 0x253C</div><div class='add'>+0x2961 = 0x253D</div><div class='add'>+0x2962 = 0x253E</div><div class='add'>+0x2963 = 0x253F</div><div class='add'>+0x2964 = 0x2540</div><div class='add'>+0x2965 = 0x2541</div><div class='add'>+0x2966 = 0x2542</div><div class='add'>+0x2967 = 0x2543</div><div class='add'>+0x2968 = 0x2544</div><div class='add'>+0x2969 = 0x2545</div><div class='add'>+0x296A = 0x2546</div><div class='add'>+0x296B = 0x2547</div><div class='add'>+0x296C = 0x2548</div><div class='add'>+0x296D = 0x2549</div><div class='add'>+0x296E = 0x254A</div><div class='add'>+0x296F = 0x254B</div><div class='add'>+0x3021 = 0x554A</div><div class='add'>+0x3022 = 0x963F</div><div class='add'>+0x3023 = 0x57C3</div><div class='add'>+0x3024 = 0x6328</div><div class='add'>+0x3025 = 0x54CE</div><div class='add'>+0x3026 = 0x5509</div><div class='add'>+0x3027 = 0x54C0</div><div class='add'>+0x3028 = 0x769A</div><div class='add'>+0x3029 = 0x764C</div><div class='add'>+0x302A = 0x85F9</div><div class='add'>+0x302B = 0x77EE</div><div class='add'>+0x302C = 0x827E</div><div class='add'>+0x302D = 0x7919</div><div class='add'>+0x302E = 0x611B</div><div class='add'>+0x302F = 0x9698</div><div class='add'>+0x3030 = 0x978D</div><div class='add'>+0x3031 = 0x6C28</div><div class='add'>+0x3032 = 0x5B89</div><div class='add'>+0x3033 = 0x4FFA</div><div class='add'>+0x3034 = 0x6309</div><div class='add'>+0x3035 = 0x6697</div><div class='add'>+0x3036 = 0x5CB8</div><div class='add'>+0x3037 = 0x80FA</div><div class='add'>+0x3038 = 0x6848</div><div class='add'>+0x3039 = 0x9AAF</div><div class='add'>+0x303A = 0x6602</div><div class='add'>+0x303B = 0x76CE</div><div class='add'>+0x303C = 0x51F9</div><div class='add'>+0x303D = 0x6556</div><div class='add'>+0x303E = 0x71AC</div><div class='add'>+0x303F = 0x7FF1</div><div class='add'>+0x3040 = 0x8956</div><div class='add'>+0x3041 = 0x50B2</div><div class='add'>+0x3042 = 0x5965</div><div class='add'>+0x3043 = 0x61CA</div><div class='add'>+0x3044 = 0x6FB3</div><div class='add'>+0x3045 = 0x82AD</div><div class='add'>+0x3046 = 0x634C</div><div class='add'>+0x3047 = 0x6252</div><div class='add'>+0x3048 = 0x53ED</div><div class='add'>+0x3049 = 0x5427</div><div class='add'>+0x304A = 0x7B06</div><div class='add'>+0x304B = 0x516B</div><div class='add'>+0x304C = 0x75A4</div><div class='add'>+0x304D = 0x5DF4</div><div class='add'>+0x304E = 0x62D4</div><div class='add'>+0x304F = 0x8DCB</div><div class='add'>+0x3050 = 0x9776</div><div class='add'>+0x3051 = 0x628A</div><div class='add'>+0x3052 = 0x8019</div><div class='add'>+0x3053 = 0x58E9</div><div class='add'>+0x3054 = 0x9738</div><div class='add'>+0x3055 = 0x7F77</div><div class='add'>+0x3056 = 0x7238</div><div class='add'>+0x3057 = 0x767D</div><div class='add'>+0x3058 = 0x67CF</div><div class='add'>+0x3059 = 0x767E</div><div class='add'>+0x305A = 0x64FA</div><div class='add'>+0x305B = 0x4F70</div><div class='add'>+0x305C = 0x6557</div><div class='add'>+0x305D = 0x62DC</div><div class='add'>+0x305E = 0x7A17</div><div class='add'>+0x305F = 0x6591</div><div class='add'>+0x3060 = 0x73ED</div><div class='add'>+0x3061 = 0x642C</div><div class='add'>+0x3062 = 0x6273</div><div class='add'>+0x3063 = 0x822C</div><div class='add'>+0x3064 = 0x9812</div><div class='add'>+0x3065 = 0x677F</div><div class='add'>+0x3066 = 0x7248</div><div class='add'>+0x3067 = 0x626E</div><div class='add'>+0x3068 = 0x62CC</div><div class='add'>+0x3069 = 0x4F34</div><div class='add'>+0x306A = 0x74E3</div><div class='add'>+0x306B = 0x534A</div><div class='add'>+0x306C = 0x8FA6</div><div class='add'>+0x306D = 0x7D46</div><div class='add'>+0x306E = 0x90A6</div><div class='add'>+0x306F = 0x5E6B</div><div class='add'>+0x3070 = 0x6886</div><div class='add'>+0x3071 = 0x699C</div><div class='add'>+0x3072 = 0x8180</div><div class='add'>+0x3073 = 0x7D81</div><div class='add'>+0x3074 = 0x68D2</div><div class='add'>+0x3075 = 0x78C5</div><div class='add'>+0x3076 = 0x868C</div><div class='add'>+0x3077 = 0x938A</div><div class='add'>+0x3078 = 0x508D</div><div class='add'>+0x3079 = 0x8B17</div><div class='add'>+0x307A = 0x82DE</div><div class='add'>+0x307B = 0x80DE</div><div class='add'>+0x307C = 0x5305</div><div class='add'>+0x307D = 0x8912</div><div class='add'>+0x307E = 0x5265</div><div class='add'>+0x3121 = 0x8584</div><div class='add'>+0x3122 = 0x96F9</div><div class='add'>+0x3123 = 0x4FDD</div><div class='add'>+0x3124 = 0x5821</div><div class='add'>+0x3125 = 0x98FD</div><div class='add'>+0x3126 = 0x5BF6</div><div class='add'>+0x3127 = 0x62B1</div><div class='add'>+0x3128 = 0x5831</div><div class='add'>+0x3129 = 0x66B4</div><div class='add'>+0x312A = 0x8C79</div><div class='add'>+0x312B = 0x9B91</div><div class='add'>+0x312C = 0x7206</div><div class='add'>+0x312D = 0x676F</div><div class='add'>+0x312E = 0x7891</div><div class='add'>+0x312F = 0x60B2</div><div class='add'>+0x3130 = 0x5351</div><div class='add'>+0x3131 = 0x5317</div><div class='add'>+0x3132 = 0x8F29</div><div class='add'>+0x3133 = 0x80CC</div><div class='add'>+0x3134 = 0x8C9D</div><div class='add'>+0x3135 = 0x92C7</div><div class='add'>+0x3136 = 0x500D</div><div class='add'>+0x3137 = 0x72FD</div><div class='add'>+0x3138 = 0x5099</div><div class='add'>+0x3139 = 0x618A</div><div class='add'>+0x313A = 0x7119</div><div class='add'>+0x313B = 0x88AB</div><div class='add'>+0x313C = 0x5954</div><div class='add'>+0x313D = 0x82EF</div><div class='add'>+0x313E = 0x672C</div><div class='add'>+0x313F = 0x7B28</div><div class='add'>+0x3140 = 0x5D29</div><div class='add'>+0x3141 = 0x7DB3</div><div class='add'>+0x3142 = 0x752D</div><div class='add'>+0x3143 = 0x6CF5</div><div class='add'>+0x3144 = 0x8E66</div><div class='add'>+0x3145 = 0x8FF8</div><div class='add'>+0x3146 = 0x903C</div><div class='add'>+0x3147 = 0x9F3B</div><div class='add'>+0x3148 = 0x6BD4</div><div class='add'>+0x3149 = 0x9119</div><div class='add'>+0x314A = 0x7B46</div><div class='add'>+0x314B = 0x5F7C</div><div class='add'>+0x314C = 0x78A7</div><div class='add'>+0x314D = 0x84D6</div><div class='add'>+0x314E = 0x853D</div><div class='add'>+0x314F = 0x7562</div><div class='add'>+0x3150 = 0x6583</div><div class='add'>+0x3151 = 0x6BD6</div><div class='add'>+0x3152 = 0x5E63</div><div class='add'>+0x3153 = 0x5E87</div><div class='add'>+0x3154 = 0x75F9</div><div class='add'>+0x3155 = 0x9589</div><div class='add'>+0x3156 = 0x655D</div><div class='add'>+0x3157 = 0x5F0A</div><div class='add'>+0x3158 = 0x5FC5</div><div class='add'>+0x3159 = 0x8F9F</div><div class='add'>+0x315A = 0x58C1</div><div class='add'>+0x315B = 0x81C2</div><div class='add'>+0x315C = 0x907F</div><div class='add'>+0x315D = 0x965B</div><div class='add'>+0x315E = 0x97AD</div><div class='add'>+0x315F = 0x908A</div><div class='add'>+0x3160 = 0x7DE8</div><div class='add'>+0x3161 = 0x8CB6</div><div class='add'>+0x3162 = 0x6241</div><div class='add'>+0x3163 = 0x4FBF</div><div class='add'>+0x3164 = 0x8B8A</div><div class='add'>+0x3165 = 0x535E</div><div class='add'>+0x3166 = 0x8FA8</div><div class='add'>+0x3167 = 0x8FAF</div><div class='add'>+0x3168 = 0x8FAE</div><div class='add'>+0x3169 = 0x904D</div><div class='add'>+0x316A = 0x6A19</div><div class='add'>+0x316B = 0x5F6A</div><div class='add'>+0x316C = 0x8198</div><div class='add'>+0x316D = 0x8868</div><div class='add'>+0x316E = 0x9C49</div><div class='add'>+0x316F = 0x618B</div><div class='add'>+0x3170 = 0x522B</div><div class='add'>+0x3171 = 0x765F</div><div class='add'>+0x3172 = 0x5F6C</div><div class='add'>+0x3173 = 0x658C</div><div class='add'>+0x3174 = 0x7015</div><div class='add'>+0x3175 = 0x6FF1</div><div class='add'>+0x3176 = 0x8CD3</div><div class='add'>+0x3177 = 0x64EF</div><div class='add'>+0x3178 = 0x5175</div><div class='add'>+0x3179 = 0x51B0</div><div class='add'>+0x317A = 0x67C4</div><div class='add'>+0x317B = 0x4E19</div><div class='add'>+0x317C = 0x79C9</div><div class='add'>+0x317D = 0x9905</div><div class='add'>+0x317E = 0x70B3</div><div class='add'>+0x3221 = 0x75C5</div><div class='add'>+0x3222 = 0x5E76</div><div class='add'>+0x3223 = 0x73BB</div><div class='add'>+0x3224 = 0x83E0</div><div class='add'>+0x3225 = 0x64AD</div><div class='add'>+0x3226 = 0x64A5</div><div class='add'>+0x3227 = 0x9262</div><div class='add'>+0x3228 = 0x6CE2</div><div class='add'>+0x3229 = 0x535A</div><div class='add'>+0x322A = 0x52C3</div><div class='add'>+0x322B = 0x640F</div><div class='add'>+0x322C = 0x9251</div><div class='add'>+0x322D = 0x7B94</div><div class='add'>+0x322E = 0x4F2F</div><div class='add'>+0x322F = 0x5E1B</div><div class='add'>+0x3230 = 0x8236</div><div class='add'>+0x3231 = 0x8116</div><div class='add'>+0x3232 = 0x818A</div><div class='add'>+0x3233 = 0x6E24</div><div class='add'>+0x3234 = 0x6CCA</div><div class='add'>+0x3235 = 0x99C1</div><div class='add'>+0x3236 = 0x6355</div><div class='add'>+0x3237 = 0x535C</div><div class='add'>+0x3238 = 0x54FA</div><div class='add'>+0x3239 = 0x88DC</div><div class='add'>+0x323A = 0x57E0</div><div class='add'>+0x323B = 0x4E0D</div><div class='add'>+0x323C = 0x5E03</div><div class='add'>+0x323D = 0x6B65</div><div class='add'>+0x323E = 0x7C3F</div><div class='add'>+0x323F = 0x90E8</div><div class='add'>+0x3240 = 0x6016</div><div class='add'>+0x3241 = 0x64E6</div><div class='add'>+0x3242 = 0x731C</div><div class='add'>+0x3243 = 0x88C1</div><div class='add'>+0x3244 = 0x6750</div><div class='add'>+0x3245 = 0x624D</div><div class='add'>+0x3246 = 0x8CA1</div><div class='add'>+0x3247 = 0x776C</div><div class='add'>+0x3248 = 0x8E29</div><div class='add'>+0x3249 = 0x91C7</div><div class='add'>+0x324A = 0x5F69</div><div class='add'>+0x324B = 0x83DC</div><div class='add'>+0x324C = 0x8521</div><div class='add'>+0x324D = 0x9910</div><div class='add'>+0x324E = 0x53C3</div><div class='add'>+0x324F = 0x8836</div><div class='add'>+0x3250 = 0x6B98</div><div class='add'>+0x3251 = 0x615A</div><div class='add'>+0x3252 = 0x6158</div><div class='add'>+0x3253 = 0x71E6</div><div class='add'>+0x3254 = 0x84BC</div><div class='add'>+0x3255 = 0x8259</div><div class='add'>+0x3256 = 0x5009</div><div class='add'>+0x3257 = 0x6EC4</div><div class='add'>+0x3258 = 0x85CF</div><div class='add'>+0x3259 = 0x64CD</div><div class='add'>+0x325A = 0x7CD9</div><div class='add'>+0x325B = 0x69FD</div><div class='add'>+0x325C = 0x66F9</div><div class='add'>+0x325D = 0x8349</div><div class='add'>+0x325E = 0x53A0</div><div class='add'>+0x325F = 0x7B56</div><div class='add'>+0x3260 = 0x5074</div><div class='add'>+0x3261 = 0x518C</div><div class='add'>+0x3262 = 0x6E2C</div><div class='add'>+0x3263 = 0x5C64</div><div class='add'>+0x3264 = 0x8E6D</div><div class='add'>+0x3265 = 0x63D2</div><div class='add'>+0x3266 = 0x53C9</div><div class='add'>+0x3267 = 0x832C</div><div class='add'>+0x3268 = 0x8336</div><div class='add'>+0x3269 = 0x67E5</div><div class='add'>+0x326A = 0x78B4</div><div class='add'>+0x326B = 0x643D</div><div class='add'>+0x326C = 0x5BDF</div><div class='add'>+0x326D = 0x5C94</div><div class='add'>+0x326E = 0x5DEE</div><div class='add'>+0x326F = 0x8A6B</div><div class='add'>+0x3270 = 0x62C6</div><div class='add'>+0x3271 = 0x67F4</div><div class='add'>+0x3272 = 0x8C7A</div><div class='add'>+0x3273 = 0x6519</div><div class='add'>+0x3274 = 0x647B</div><div class='add'>+0x3275 = 0x87EC</div><div class='add'>+0x3276 = 0x995E</div><div class='add'>+0x3277 = 0x8B92</div><div class='add'>+0x3278 = 0x7E8F</div><div class='add'>+0x3279 = 0x93DF</div><div class='add'>+0x327A = 0x7523</div><div class='add'>+0x327B = 0x95E1</div><div class='add'>+0x327C = 0x986B</div><div class='add'>+0x327D = 0x660C</div><div class='add'>+0x327E = 0x7316</div><div class='add'>+0x3321 = 0x5834</div><div class='add'>+0x3322 = 0x5617</div><div class='add'>+0x3323 = 0x5E38</div><div class='add'>+0x3324 = 0x9577</div><div class='add'>+0x3325 = 0x511F</div><div class='add'>+0x3326 = 0x8178</div><div class='add'>+0x3327 = 0x5EE0</div><div class='add'>+0x3328 = 0x655E</div><div class='add'>+0x3329 = 0x66A2</div><div class='add'>+0x332A = 0x5531</div><div class='add'>+0x332B = 0x5021</div><div class='add'>+0x332C = 0x8D85</div><div class='add'>+0x332D = 0x6284</div><div class='add'>+0x332E = 0x9214</div><div class='add'>+0x332F = 0x671D</div><div class='add'>+0x3330 = 0x5632</div><div class='add'>+0x3331 = 0x6F6E</div><div class='add'>+0x3332 = 0x5DE2</div><div class='add'>+0x3333 = 0x5435</div><div class='add'>+0x3334 = 0x7092</div><div class='add'>+0x3335 = 0x8ECA</div><div class='add'>+0x3336 = 0x626F</div><div class='add'>+0x3337 = 0x64A4</div><div class='add'>+0x3338 = 0x63A3</div><div class='add'>+0x3339 = 0x5FB9</div><div class='add'>+0x333A = 0x6F88</div><div class='add'>+0x333B = 0x90F4</div><div class='add'>+0x333C = 0x81E3</div><div class='add'>+0x333D = 0x8FB0</div><div class='add'>+0x333E = 0x5875</div><div class='add'>+0x333F = 0x6668</div><div class='add'>+0x3340 = 0x5FF1</div><div class='add'>+0x3341 = 0x6C89</div><div class='add'>+0x3342 = 0x9673</div><div class='add'>+0x3343 = 0x8D81</div><div class='add'>+0x3344 = 0x896F</div><div class='add'>+0x3345 = 0x6491</div><div class='add'>+0x3346 = 0x7A31</div><div class='add'>+0x3347 = 0x57CE</div><div class='add'>+0x3348 = 0x6A59</div><div class='add'>+0x3349 = 0x6210</div><div class='add'>+0x334A = 0x5448</div><div class='add'>+0x334B = 0x4E58</div><div class='add'>+0x334C = 0x7A0B</div><div class='add'>+0x334D = 0x61F2</div><div class='add'>+0x334E = 0x6F84</div><div class='add'>+0x334F = 0x8AA0</div><div class='add'>+0x3350 = 0x627F</div><div class='add'>+0x3351 = 0x901E</div><div class='add'>+0x3352 = 0x9A01</div><div class='add'>+0x3353 = 0x79E4</div><div class='add'>+0x3354 = 0x5403</div><div class='add'>+0x3355 = 0x75F4</div><div class='add'>+0x3356 = 0x6301</div><div class='add'>+0x3357 = 0x5319</div><div class='add'>+0x3358 = 0x6C60</div><div class='add'>+0x3359 = 0x9072</div><div class='add'>+0x335A = 0x5F1B</div><div class='add'>+0x335B = 0x99B3</div><div class='add'>+0x335C = 0x803B</div><div class='add'>+0x335D = 0x9F52</div><div class='add'>+0x335E = 0x4F88</div><div class='add'>+0x335F = 0x5C3A</div><div class='add'>+0x3360 = 0x8D64</div><div class='add'>+0x3361 = 0x7FC5</div><div class='add'>+0x3362 = 0x65A5</div><div class='add'>+0x3363 = 0x71BE</div><div class='add'>+0x3364 = 0x5145</div><div class='add'>+0x3365 = 0x885D</div><div class='add'>+0x3366 = 0x87F2</div><div class='add'>+0x3367 = 0x5D07</div><div class='add'>+0x3368 = 0x5BF5</div><div class='add'>+0x3369 = 0x62BD</div><div class='add'>+0x336A = 0x916C</div><div class='add'>+0x336B = 0x7587</div><div class='add'>+0x336C = 0x8E8A</div><div class='add'>+0x336D = 0x7A20</div><div class='add'>+0x336E = 0x6101</div><div class='add'>+0x336F = 0x7C4C</div><div class='add'>+0x3370 = 0x4EC7</div><div class='add'>+0x3371 = 0x7DA2</div><div class='add'>+0x3372 = 0x7785</div><div class='add'>+0x3373 = 0x919C</div><div class='add'>+0x3374 = 0x81ED</div><div class='add'>+0x3375 = 0x521D</div><div class='add'>+0x3376 = 0x51FA</div><div class='add'>+0x3377 = 0x6A71</div><div class='add'>+0x3378 = 0x53A8</div><div class='add'>+0x3379 = 0x8E87</div><div class='add'>+0x337A = 0x92E4</div><div class='add'>+0x337B = 0x96DB</div><div class='add'>+0x337C = 0x6EC1</div><div class='add'>+0x337D = 0x9664</div><div class='add'>+0x337E = 0x695A</div><div class='add'>+0x3421 = 0x790E</div><div class='add'>+0x3422 = 0x5132</div><div class='add'>+0x3423 = 0x77D7</div><div class='add'>+0x3424 = 0x6410</div><div class='add'>+0x3425 = 0x89F8</div><div class='add'>+0x3426 = 0x8655</div><div class='add'>+0x3427 = 0x63E3</div><div class='add'>+0x3428 = 0x5DDD</div><div class='add'>+0x3429 = 0x7A7F</div><div class='add'>+0x342A = 0x693D</div><div class='add'>+0x342B = 0x50B3</div><div class='add'>+0x342C = 0x8239</div><div class='add'>+0x342D = 0x5598</div><div class='add'>+0x342E = 0x4E32</div><div class='add'>+0x342F = 0x7621</div><div class='add'>+0x3430 = 0x7A97</div><div class='add'>+0x3431 = 0x5E62</div><div class='add'>+0x3432 = 0x5E8A</div><div class='add'>+0x3433 = 0x95D6</div><div class='add'>+0x3434 = 0x5275</div><div class='add'>+0x3435 = 0x5439</div><div class='add'>+0x3436 = 0x708A</div><div class='add'>+0x3437 = 0x6376</div><div class='add'>+0x3438 = 0x9318</div><div class='add'>+0x3439 = 0x5782</div><div class='add'>+0x343A = 0x6625</div><div class='add'>+0x343B = 0x693F</div><div class='add'>+0x343C = 0x9187</div><div class='add'>+0x343D = 0x5507</div><div class='add'>+0x343E = 0x6DF3</div><div class='add'>+0x343F = 0x7D14</div><div class='add'>+0x3440 = 0x8822</div><div class='add'>+0x3441 = 0x6233</div><div class='add'>+0x3442 = 0x7DBD</div><div class='add'>+0x3443 = 0x75B5</div><div class='add'>+0x3444 = 0x8328</div><div class='add'>+0x3445 = 0x78C1</div><div class='add'>+0x3446 = 0x96CC</div><div class='add'>+0x3447 = 0x8FAD</div><div class='add'>+0x3448 = 0x6148</div><div class='add'>+0x3449 = 0x74F7</div><div class='add'>+0x344A = 0x8A5E</div><div class='add'>+0x344B = 0x6B64</div><div class='add'>+0x344C = 0x523A</div><div class='add'>+0x344D = 0x8CDC</div><div class='add'>+0x344E = 0x6B21</div><div class='add'>+0x344F = 0x8070</div><div class='add'>+0x3450 = 0x8471</div><div class='add'>+0x3451 = 0x56F1</div><div class='add'>+0x3452 = 0x5306</div><div class='add'>+0x3453 = 0x5F9E</div><div class='add'>+0x3454 = 0x53E2</div><div class='add'>+0x3455 = 0x51D1</div><div class='add'>+0x3456 = 0x7C97</div><div class='add'>+0x3457 = 0x918B</div><div class='add'>+0x3458 = 0x7C07</div><div class='add'>+0x3459 = 0x4FC3</div><div class='add'>+0x345A = 0x8EA5</div><div class='add'>+0x345B = 0x7BE1</div><div class='add'>+0x345C = 0x7AC4</div><div class='add'>+0x345D = 0x6467</div><div class='add'>+0x345E = 0x5D14</div><div class='add'>+0x345F = 0x50AC</div><div class='add'>+0x3460 = 0x8106</div><div class='add'>+0x3461 = 0x7601</div><div class='add'>+0x3462 = 0x7CB9</div><div class='add'>+0x3463 = 0x6DEC</div><div class='add'>+0x3464 = 0x7FE0</div><div class='add'>+0x3465 = 0x6751</div><div class='add'>+0x3466 = 0x5B58</div><div class='add'>+0x3467 = 0x5BF8</div><div class='add'>+0x3468 = 0x78CB</div><div class='add'>+0x3469 = 0x64AE</div><div class='add'>+0x346A = 0x6413</div><div class='add'>+0x346B = 0x63AA</div><div class='add'>+0x346C = 0x632B</div><div class='add'>+0x346D = 0x932F</div><div class='add'>+0x346E = 0x642D</div><div class='add'>+0x346F = 0x9054</div><div class='add'>+0x3470 = 0x7B54</div><div class='add'>+0x3471 = 0x7629</div><div class='add'>+0x3472 = 0x6253</div><div class='add'>+0x3473 = 0x5927</div><div class='add'>+0x3474 = 0x5446</div><div class='add'>+0x3475 = 0x6B79</div><div class='add'>+0x3476 = 0x50A3</div><div class='add'>+0x3477 = 0x6234</div><div class='add'>+0x3478 = 0x5E36</div><div class='add'>+0x3479 = 0x6B86</div><div class='add'>+0x347A = 0x4EE3</div><div class='add'>+0x347B = 0x8CB8</div><div class='add'>+0x347C = 0x888B</div><div class='add'>+0x347D = 0x5F85</div><div class='add'>+0x347E = 0x902E</div><div class='add'>+0x3521 = 0x6020</div><div class='add'>+0x3522 = 0x803D</div><div class='add'>+0x3523 = 0x64D4</div><div class='add'>+0x3524 = 0x4E39</div><div class='add'>+0x3525 = 0x55AE</div><div class='add'>+0x3526 = 0x9132</div><div class='add'>+0x3527 = 0x64A3</div><div class='add'>+0x3528 = 0x81BD</div><div class='add'>+0x3529 = 0x65E6</div><div class='add'>+0x352A = 0x6C2E</div><div class='add'>+0x352B = 0x4F46</div><div class='add'>+0x352C = 0x619A</div><div class='add'>+0x352D = 0x6DE1</div><div class='add'>+0x352E = 0x8A95</div><div class='add'>+0x352F = 0x5F48</div><div class='add'>+0x3530 = 0x86CB</div><div class='add'>+0x3531 = 0x7576</div><div class='add'>+0x3532 = 0x64CB</div><div class='add'>+0x3533 = 0x9EE8</div><div class='add'>+0x3534 = 0x8569</div><div class='add'>+0x3535 = 0x6A94</div><div class='add'>+0x3536 = 0x5200</div><div class='add'>+0x3537 = 0x6417</div><div class='add'>+0x3538 = 0x8E48</div><div class='add'>+0x3539 = 0x5012</div><div class='add'>+0x353A = 0x5CF6</div><div class='add'>+0x353B = 0x79B1</div><div class='add'>+0x353C = 0x5C0E</div><div class='add'>+0x353D = 0x5230</div><div class='add'>+0x353E = 0x7A3B</div><div class='add'>+0x353F = 0x60BC</div><div class='add'>+0x3540 = 0x9053</div><div class='add'>+0x3541 = 0x76D7</div><div class='add'>+0x3542 = 0x5FB7</div><div class='add'>+0x3543 = 0x5F97</div><div class='add'>+0x3544 = 0x7684</div><div class='add'>+0x3545 = 0x8E6C</div><div class='add'>+0x3546 = 0x71C8</div><div class='add'>+0x3547 = 0x767B</div><div class='add'>+0x3548 = 0x7B49</div><div class='add'>+0x3549 = 0x77AA</div><div class='add'>+0x354A = 0x51F3</div><div class='add'>+0x354B = 0x9127</div><div class='add'>+0x354C = 0x5824</div><div class='add'>+0x354D = 0x4F4E</div><div class='add'>+0x354E = 0x6EF4</div><div class='add'>+0x354F = 0x8FEA</div><div class='add'>+0x3550 = 0x6575</div><div class='add'>+0x3551 = 0x7B1B</div><div class='add'>+0x3552 = 0x72C4</div><div class='add'>+0x3553 = 0x6ECC</div><div class='add'>+0x3554 = 0x7FDF</div><div class='add'>+0x3555 = 0x5AE1</div><div class='add'>+0x3556 = 0x62B5</div><div class='add'>+0x3557 = 0x5E95</div><div class='add'>+0x3558 = 0x5730</div><div class='add'>+0x3559 = 0x8482</div><div class='add'>+0x355A = 0x7B2C</div><div class='add'>+0x355B = 0x5E1D</div><div class='add'>+0x355C = 0x5F1F</div><div class='add'>+0x355D = 0x905E</div><div class='add'>+0x355E = 0x7DE0</div><div class='add'>+0x355F = 0x985B</div><div class='add'>+0x3560 = 0x6382</div><div class='add'>+0x3561 = 0x6EC7</div><div class='add'>+0x3562 = 0x7898</div><div class='add'>+0x3563 = 0x9EDE</div><div class='add'>+0x3564 = 0x5178</div><div class='add'>+0x3565 = 0x975B</div><div class='add'>+0x3566 = 0x588A</div><div class='add'>+0x3567 = 0x96FB</div><div class='add'>+0x3568 = 0x4F43</div><div class='add'>+0x3569 = 0x7538</div><div class='add'>+0x356A = 0x5E97</div><div class='add'>+0x356B = 0x60E6</div><div class='add'>+0x356C = 0x5960</div><div class='add'>+0x356D = 0x6FB1</div><div class='add'>+0x356E = 0x6BBF</div><div class='add'>+0x356F = 0x7889</div><div class='add'>+0x3570 = 0x53FC</div><div class='add'>+0x3571 = 0x96D5</div><div class='add'>+0x3572 = 0x51CB</div><div class='add'>+0x3573 = 0x5201</div><div class='add'>+0x3574 = 0x6389</div><div class='add'>+0x3575 = 0x540A</div><div class='add'>+0x3576 = 0x91E3</div><div class='add'>+0x3577 = 0x8ABF</div><div class='add'>+0x3578 = 0x8DCC</div><div class='add'>+0x3579 = 0x7239</div><div class='add'>+0x357A = 0x789F</div><div class='add'>+0x357B = 0x8776</div><div class='add'>+0x357C = 0x8FED</div><div class='add'>+0x357D = 0x8ADC</div><div class='add'>+0x357E = 0x758A</div><div class='add'>+0x3621 = 0x4E01</div><div class='add'>+0x3622 = 0x76EF</div><div class='add'>+0x3623 = 0x53EE</div><div class='add'>+0x3624 = 0x91D8</div><div class='add'>+0x3625 = 0x9802</div><div class='add'>+0x3626 = 0x9F0E</div><div class='add'>+0x3627 = 0x9320</div><div class='add'>+0x3628 = 0x5B9A</div><div class='add'>+0x3629 = 0x8A02</div><div class='add'>+0x362A = 0x4E22</div><div class='add'>+0x362B = 0x6771</div><div class='add'>+0x362C = 0x51AC</div><div class='add'>+0x362D = 0x8463</div><div class='add'>+0x362E = 0x61C2</div><div class='add'>+0x362F = 0x52D5</div><div class='add'>+0x3630 = 0x68DF</div><div class='add'>+0x3631 = 0x4F97</div><div class='add'>+0x3632 = 0x606B</div><div class='add'>+0x3633 = 0x51CD</div><div class='add'>+0x3634 = 0x6D1E</div><div class='add'>+0x3635 = 0x515C</div><div class='add'>+0x3636 = 0x6296</div><div class='add'>+0x3637 = 0x9B25</div><div class='add'>+0x3638 = 0x9661</div><div class='add'>+0x3639 = 0x8C46</div><div class='add'>+0x363A = 0x9017</div><div class='add'>+0x363B = 0x75D8</div><div class='add'>+0x363C = 0x90FD</div><div class='add'>+0x363D = 0x7763</div><div class='add'>+0x363E = 0x6BD2</div><div class='add'>+0x363F = 0x72A2</div><div class='add'>+0x3640 = 0x7368</div><div class='add'>+0x3641 = 0x8B80</div><div class='add'>+0x3642 = 0x5835</div><div class='add'>+0x3643 = 0x7779</div><div class='add'>+0x3644 = 0x8CED</div><div class='add'>+0x3645 = 0x675C</div><div class='add'>+0x3646 = 0x934D</div><div class='add'>+0x3647 = 0x809A</div><div class='add'>+0x3648 = 0x5EA6</div><div class='add'>+0x3649 = 0x6E21</div><div class='add'>+0x364A = 0x5992</div><div class='add'>+0x364B = 0x7AEF</div><div class='add'>+0x364C = 0x77ED</div><div class='add'>+0x364D = 0x935B</div><div class='add'>+0x364E = 0x6BB5</div><div class='add'>+0x364F = 0x65B7</div><div class='add'>+0x3650 = 0x7DDE</div><div class='add'>+0x3651 = 0x5806</div><div class='add'>+0x3652 = 0x5151</div><div class='add'>+0x3653 = 0x968A</div><div class='add'>+0x3654 = 0x5C0D</div><div class='add'>+0x3655 = 0x58A9</div><div class='add'>+0x3656 = 0x5678</div><div class='add'>+0x3657 = 0x8E72</div><div class='add'>+0x3658 = 0x6566</div><div class='add'>+0x3659 = 0x9813</div><div class='add'>+0x365A = 0x56E4</div><div class='add'>+0x365B = 0x920D</div><div class='add'>+0x365C = 0x76FE</div><div class='add'>+0x365D = 0x9041</div><div class='add'>+0x365E = 0x6387</div><div class='add'>+0x365F = 0x54C6</div><div class='add'>+0x3660 = 0x591A</div><div class='add'>+0x3661 = 0x596A</div><div class='add'>+0x3662 = 0x579B</div><div class='add'>+0x3663 = 0x8EB2</div><div class='add'>+0x3664 = 0x6735</div><div class='add'>+0x3665 = 0x8DFA</div><div class='add'>+0x3666 = 0x8235</div><div class='add'>+0x3667 = 0x5241</div><div class='add'>+0x3668 = 0x60F0</div><div class='add'>+0x3669 = 0x58AE</div><div class='add'>+0x366A = 0x86FE</div><div class='add'>+0x366B = 0x5CE8</div><div class='add'>+0x366C = 0x9D5D</div><div class='add'>+0x366D = 0x4FC4</div><div class='add'>+0x366E = 0x984D</div><div class='add'>+0x366F = 0x8A1B</div><div class='add'>+0x3670 = 0x5A25</div><div class='add'>+0x3671 = 0x60E1</div><div class='add'>+0x3672 = 0x5384</div><div class='add'>+0x3673 = 0x627C</div><div class='add'>+0x3674 = 0x904F</div><div class='add'>+0x3675 = 0x9102</div><div class='add'>+0x3676 = 0x9913</div><div class='add'>+0x3677 = 0x6069</div><div class='add'>+0x3678 = 0x800C</div><div class='add'>+0x3679 = 0x5152</div><div class='add'>+0x367A = 0x8033</div><div class='add'>+0x367B = 0x723E</div><div class='add'>+0x367C = 0x990C</div><div class='add'>+0x367D = 0x6D31</div><div class='add'>+0x367E = 0x4E8C</div><div class='add'>+0x3721 = 0x8CB3</div><div class='add'>+0x3722 = 0x767C</div><div class='add'>+0x3723 = 0x7F70</div><div class='add'>+0x3724 = 0x7B4F</div><div class='add'>+0x3725 = 0x4F10</div><div class='add'>+0x3726 = 0x4E4F</div><div class='add'>+0x3727 = 0x95A5</div><div class='add'>+0x3728 = 0x6CD5</div><div class='add'>+0x3729 = 0x73D0</div><div class='add'>+0x372A = 0x85E9</div><div class='add'>+0x372B = 0x5E06</div><div class='add'>+0x372C = 0x756A</div><div class='add'>+0x372D = 0x7FFB</div><div class='add'>+0x372E = 0x6A0A</div><div class='add'>+0x372F = 0x792C</div><div class='add'>+0x3730 = 0x91E9</div><div class='add'>+0x3731 = 0x7E41</div><div class='add'>+0x3732 = 0x51E1</div><div class='add'>+0x3733 = 0x7169</div><div class='add'>+0x3734 = 0x53CD</div><div class='add'>+0x3735 = 0x8FD4</div><div class='add'>+0x3736 = 0x7BC4</div><div class='add'>+0x3737 = 0x8CA9</div><div class='add'>+0x3738 = 0x72AF</div><div class='add'>+0x3739 = 0x98EF</div><div class='add'>+0x373A = 0x6CDB</div><div class='add'>+0x373B = 0x574A</div><div class='add'>+0x373C = 0x82B3</div><div class='add'>+0x373D = 0x65B9</div><div class='add'>+0x373E = 0x80AA</div><div class='add'>+0x373F = 0x623F</div><div class='add'>+0x3740 = 0x9632</div><div class='add'>+0x3741 = 0x59A8</div><div class='add'>+0x3742 = 0x4EFF</div><div class='add'>+0x3743 = 0x8A2A</div><div class='add'>+0x3744 = 0x7D21</div><div class='add'>+0x3745 = 0x653E</div><div class='add'>+0x3746 = 0x83F2</div><div class='add'>+0x3747 = 0x975E</div><div class='add'>+0x3748 = 0x5561</div><div class='add'>+0x3749 = 0x98DB</div><div class='add'>+0x374A = 0x80A5</div><div class='add'>+0x374B = 0x532A</div><div class='add'>+0x374C = 0x8AB9</div><div class='add'>+0x374D = 0x5420</div><div class='add'>+0x374E = 0x80BA</div><div class='add'>+0x374F = 0x5EE2</div><div class='add'>+0x3750 = 0x6CB8</div><div class='add'>+0x3751 = 0x8CBB</div><div class='add'>+0x3752 = 0x82AC</div><div class='add'>+0x3753 = 0x915A</div><div class='add'>+0x3754 = 0x5429</div><div class='add'>+0x3755 = 0x6C1B</div><div class='add'>+0x3756 = 0x5206</div><div class='add'>+0x3757 = 0x7D1B</div><div class='add'>+0x3758 = 0x58B3</div><div class='add'>+0x3759 = 0x711A</div><div class='add'>+0x375A = 0x6C7E</div><div class='add'>+0x375B = 0x7C89</div><div class='add'>+0x375C = 0x596E</div><div class='add'>+0x375D = 0x4EFD</div><div class='add'>+0x375E = 0x5FFF</div><div class='add'>+0x375F = 0x61A4</div><div class='add'>+0x3760 = 0x7CDE</div><div class='add'>+0x3761 = 0x8C50</div><div class='add'>+0x3762 = 0x5C01</div><div class='add'>+0x3763 = 0x6953</div><div class='add'>+0x3764 = 0x8702</div><div class='add'>+0x3765 = 0x5CF0</div><div class='add'>+0x3766 = 0x92D2</div><div class='add'>+0x3767 = 0x98A8</div><div class='add'>+0x3768 = 0x760B</div><div class='add'>+0x3769 = 0x70FD</div><div class='add'>+0x376A = 0x9022</div><div class='add'>+0x376B = 0x99AE</div><div class='add'>+0x376C = 0x7E2B</div><div class='add'>+0x376D = 0x8AF7</div><div class='add'>+0x376E = 0x5949</div><div class='add'>+0x376F = 0x9CF3</div><div class='add'>+0x3770 = 0x4F5B</div><div class='add'>+0x3771 = 0x5426</div><div class='add'>+0x3772 = 0x592B</div><div class='add'>+0x3773 = 0x6577</div><div class='add'>+0x3774 = 0x819A</div><div class='add'>+0x3775 = 0x5B75</div><div class='add'>+0x3776 = 0x6276</div><div class='add'>+0x3777 = 0x62C2</div><div class='add'>+0x3778 = 0x8F3B</div><div class='add'>+0x3779 = 0x5E45</div><div class='add'>+0x377A = 0x6C1F</div><div class='add'>+0x377B = 0x7B26</div><div class='add'>+0x377C = 0x4F0F</div><div class='add'>+0x377D = 0x4FD8</div><div class='add'>+0x377E = 0x670D</div><div class='add'>+0x3821 = 0x6D6E</div><div class='add'>+0x3822 = 0x6DAA</div><div class='add'>+0x3823 = 0x798F</div><div class='add'>+0x3824 = 0x88B1</div><div class='add'>+0x3825 = 0x5F17</div><div class='add'>+0x3826 = 0x752B</div><div class='add'>+0x3827 = 0x64AB</div><div class='add'>+0x3828 = 0x8F14</div><div class='add'>+0x3829 = 0x4FEF</div><div class='add'>+0x382A = 0x91DC</div><div class='add'>+0x382B = 0x65A7</div><div class='add'>+0x382C = 0x812F</div><div class='add'>+0x382D = 0x8151</div><div class='add'>+0x382E = 0x5E9C</div><div class='add'>+0x382F = 0x8150</div><div class='add'>+0x3830 = 0x8D74</div><div class='add'>+0x3831 = 0x526F</div><div class='add'>+0x3832 = 0x8986</div><div class='add'>+0x3833 = 0x8CE6</div><div class='add'>+0x3834 = 0x5FA9</div><div class='add'>+0x3835 = 0x5085</div><div class='add'>+0x3836 = 0x4ED8</div><div class='add'>+0x3837 = 0x961C</div><div class='add'>+0x3838 = 0x7236</div><div class='add'>+0x3839 = 0x8179</div><div class='add'>+0x383A = 0x8CA0</div><div class='add'>+0x383B = 0x5BCC</div><div class='add'>+0x383C = 0x8A03</div><div class='add'>+0x383D = 0x9644</div><div class='add'>+0x383E = 0x5A66</div><div class='add'>+0x383F = 0x7E1B</div><div class='add'>+0x3840 = 0x5490</div><div class='add'>+0x3841 = 0x5676</div><div class='add'>+0x3842 = 0x560E</div><div class='add'>+0x3843 = 0x8A72</div><div class='add'>+0x3844 = 0x6539</div><div class='add'>+0x3845 = 0x6982</div><div class='add'>+0x3846 = 0x9223</div><div class='add'>+0x3847 = 0x84CB</div><div class='add'>+0x3848 = 0x6E89</div><div class='add'>+0x3849 = 0x5E79</div><div class='add'>+0x384A = 0x7518</div><div class='add'>+0x384B = 0x6746</div><div class='add'>+0x384C = 0x67D1</div><div class='add'>+0x384D = 0x7AFF</div><div class='add'>+0x384E = 0x809D</div><div class='add'>+0x384F = 0x8D95</div><div class='add'>+0x3850 = 0x611F</div><div class='add'>+0x3851 = 0x79C6</div><div class='add'>+0x3852 = 0x6562</div><div class='add'>+0x3853 = 0x8D1B</div><div class='add'>+0x3854 = 0x5CA1</div><div class='add'>+0x3855 = 0x525B</div><div class='add'>+0x3856 = 0x92FC</div><div class='add'>+0x3857 = 0x7F38</div><div class='add'>+0x3858 = 0x809B</div><div class='add'>+0x3859 = 0x7DB1</div><div class='add'>+0x385A = 0x5D17</div><div class='add'>+0x385B = 0x6E2F</div><div class='add'>+0x385C = 0x6760</div><div class='add'>+0x385D = 0x7BD9</div><div class='add'>+0x385E = 0x768B</div><div class='add'>+0x385F = 0x9AD8</div><div class='add'>+0x3860 = 0x818F</div><div class='add'>+0x3861 = 0x7F94</div><div class='add'>+0x3862 = 0x7CD5</div><div class='add'>+0x3863 = 0x641E</div><div class='add'>+0x3864 = 0x93AC</div><div class='add'>+0x3865 = 0x7A3F</div><div class='add'>+0x3866 = 0x544A</div><div class='add'>+0x3867 = 0x54E5</div><div class='add'>+0x3868 = 0x6B4C</div><div class='add'>+0x3869 = 0x64F1</div><div class='add'>+0x386A = 0x6208</div><div class='add'>+0x386B = 0x9D3F</div><div class='add'>+0x386C = 0x80F3</div><div class='add'>+0x386D = 0x7599</div><div class='add'>+0x386E = 0x5272</div><div class='add'>+0x386F = 0x9769</div><div class='add'>+0x3870 = 0x845B</div><div class='add'>+0x3871 = 0x683C</div><div class='add'>+0x3872 = 0x86E4</div><div class='add'>+0x3873 = 0x95A3</div><div class='add'>+0x3874 = 0x9694</div><div class='add'>+0x3875 = 0x927B</div><div class='add'>+0x3876 = 0x500B</div><div class='add'>+0x3877 = 0x5404</div><div class='add'>+0x3878 = 0x7D66</div><div class='add'>+0x3879 = 0x6839</div><div class='add'>+0x387A = 0x8DDF</div><div class='add'>+0x387B = 0x8015</div><div class='add'>+0x387C = 0x66F4</div><div class='add'>+0x387D = 0x5E9A</div><div class='add'>+0x387E = 0x7FB9</div><div class='add'>+0x3921 = 0x57C2</div><div class='add'>+0x3922 = 0x803F</div><div class='add'>+0x3923 = 0x6897</div><div class='add'>+0x3924 = 0x5DE5</div><div class='add'>+0x3925 = 0x653B</div><div class='add'>+0x3926 = 0x529F</div><div class='add'>+0x3927 = 0x606D</div><div class='add'>+0x3928 = 0x9F94</div><div class='add'>+0x3929 = 0x4F9B</div><div class='add'>+0x392A = 0x8EAC</div><div class='add'>+0x392B = 0x516C</div><div class='add'>+0x392C = 0x5BAB</div><div class='add'>+0x392D = 0x5F13</div><div class='add'>+0x392E = 0x978F</div><div class='add'>+0x392F = 0x6C5E</div><div class='add'>+0x3930 = 0x62F1</div><div class='add'>+0x3931 = 0x8CA2</div><div class='add'>+0x3932 = 0x5171</div><div class='add'>+0x3933 = 0x920E</div><div class='add'>+0x3934 = 0x52FE</div><div class='add'>+0x3935 = 0x6E9D</div><div class='add'>+0x3936 = 0x82DF</div><div class='add'>+0x3937 = 0x72D7</div><div class='add'>+0x3938 = 0x57A2</div><div class='add'>+0x3939 = 0x69CB</div><div class='add'>+0x393A = 0x8CFC</div><div class='add'>+0x393B = 0x591F</div><div class='add'>+0x393C = 0x8F9C</div><div class='add'>+0x393D = 0x83C7</div><div class='add'>+0x393E = 0x5495</div><div class='add'>+0x393F = 0x7B8D</div><div class='add'>+0x3940 = 0x4F30</div><div class='add'>+0x3941 = 0x6CBD</div><div class='add'>+0x3942 = 0x5B64</div><div class='add'>+0x3943 = 0x59D1</div><div class='add'>+0x3944 = 0x9F13</div><div class='add'>+0x3945 = 0x53E4</div><div class='add'>+0x3946 = 0x8831</div><div class='add'>+0x3947 = 0x9AA8</div><div class='add'>+0x3948 = 0x8C37</div><div class='add'>+0x3949 = 0x80A1</div><div class='add'>+0x394A = 0x6545</div><div class='add'>+0x394B = 0x9867</div><div class='add'>+0x394C = 0x56FA</div><div class='add'>+0x394D = 0x96C7</div><div class='add'>+0x394E = 0x522E</div><div class='add'>+0x394F = 0x74DC</div><div class='add'>+0x3950 = 0x526E</div><div class='add'>+0x3951 = 0x5BE1</div><div class='add'>+0x3952 = 0x6302</div><div class='add'>+0x3953 = 0x8902</div><div class='add'>+0x3954 = 0x4E56</div><div class='add'>+0x3955 = 0x62D0</div><div class='add'>+0x3956 = 0x602A</div><div class='add'>+0x3957 = 0x68FA</div><div class='add'>+0x3958 = 0x95DC</div><div class='add'>+0x3959 = 0x5B98</div><div class='add'>+0x395A = 0x51A0</div><div class='add'>+0x395B = 0x89C0</div><div class='add'>+0x395C = 0x7BA1</div><div class='add'>+0x395D = 0x9928</div><div class='add'>+0x395E = 0x7F50</div><div class='add'>+0x395F = 0x6163</div><div class='add'>+0x3960 = 0x704C</div><div class='add'>+0x3961 = 0x8CAB</div><div class='add'>+0x3962 = 0x5149</div><div class='add'>+0x3963 = 0x5EE3</div><div class='add'>+0x3964 = 0x901B</div><div class='add'>+0x3965 = 0x7470</div><div class='add'>+0x3966 = 0x898F</div><div class='add'>+0x3967 = 0x572D</div><div class='add'>+0x3968 = 0x7845</div><div class='add'>+0x3969 = 0x6B78</div><div class='add'>+0x396A = 0x9F9C</div><div class='add'>+0x396B = 0x95A8</div><div class='add'>+0x396C = 0x8ECC</div><div class='add'>+0x396D = 0x9B3C</div><div class='add'>+0x396E = 0x8A6D</div><div class='add'>+0x396F = 0x7678</div><div class='add'>+0x3970 = 0x6842</div><div class='add'>+0x3971 = 0x6AC3</div><div class='add'>+0x3972 = 0x8DEA</div><div class='add'>+0x3973 = 0x8CB4</div><div class='add'>+0x3974 = 0x528A</div><div class='add'>+0x3975 = 0x8F25</div><div class='add'>+0x3976 = 0x6EDA</div><div class='add'>+0x3977 = 0x68CD</div><div class='add'>+0x3978 = 0x934B</div><div class='add'>+0x3979 = 0x90ED</div><div class='add'>+0x397A = 0x570B</div><div class='add'>+0x397B = 0x679C</div><div class='add'>+0x397C = 0x88F9</div><div class='add'>+0x397D = 0x904E</div><div class='add'>+0x397E = 0x54C8</div><div class='add'>+0x3A21 = 0x9AB8</div><div class='add'>+0x3A22 = 0x5B69</div><div class='add'>+0x3A23 = 0x6D77</div><div class='add'>+0x3A24 = 0x6C26</div><div class='add'>+0x3A25 = 0x4EA5</div><div class='add'>+0x3A26 = 0x5BB3</div><div class='add'>+0x3A27 = 0x99ED</div><div class='add'>+0x3A28 = 0x9163</div><div class='add'>+0x3A29 = 0x61A8</div><div class='add'>+0x3A2A = 0x90AF</div><div class='add'>+0x3A2B = 0x97D3</div><div class='add'>+0x3A2C = 0x542B</div><div class='add'>+0x3A2D = 0x6DB5</div><div class='add'>+0x3A2E = 0x5BD2</div><div class='add'>+0x3A2F = 0x51FD</div><div class='add'>+0x3A30 = 0x558A</div><div class='add'>+0x3A31 = 0x7F55</div><div class='add'>+0x3A32 = 0x7FF0</div><div class='add'>+0x3A33 = 0x64BC</div><div class='add'>+0x3A34 = 0x634D</div><div class='add'>+0x3A35 = 0x65F1</div><div class='add'>+0x3A36 = 0x61BE</div><div class='add'>+0x3A37 = 0x608D</div><div class='add'>+0x3A38 = 0x710A</div><div class='add'>+0x3A39 = 0x6C57</div><div class='add'>+0x3A3A = 0x6F22</div><div class='add'>+0x3A3B = 0x592F</div><div class='add'>+0x3A3C = 0x676D</div><div class='add'>+0x3A3D = 0x822A</div><div class='add'>+0x3A3E = 0x58D5</div><div class='add'>+0x3A3F = 0x568E</div><div class='add'>+0x3A40 = 0x8C6A</div><div class='add'>+0x3A41 = 0x6BEB</div><div class='add'>+0x3A42 = 0x90DD</div><div class='add'>+0x3A43 = 0x597D</div><div class='add'>+0x3A44 = 0x8017</div><div class='add'>+0x3A45 = 0x865F</div><div class='add'>+0x3A46 = 0x6D69</div><div class='add'>+0x3A47 = 0x5475</div><div class='add'>+0x3A48 = 0x559D</div><div class='add'>+0x3A49 = 0x8377</div><div class='add'>+0x3A4A = 0x83CF</div><div class='add'>+0x3A4B = 0x6838</div><div class='add'>+0x3A4C = 0x79BE</div><div class='add'>+0x3A4D = 0x548C</div><div class='add'>+0x3A4E = 0x4F55</div><div class='add'>+0x3A4F = 0x5408</div><div class='add'>+0x3A50 = 0x76D2</div><div class='add'>+0x3A51 = 0x8C89</div><div class='add'>+0x3A52 = 0x95A1</div><div class='add'>+0x3A53 = 0x6CB3</div><div class='add'>+0x3A54 = 0x6DB8</div><div class='add'>+0x3A55 = 0x8D6B</div><div class='add'>+0x3A56 = 0x8910</div><div class='add'>+0x3A57 = 0x9DB4</div><div class='add'>+0x3A58 = 0x8CC0</div><div class='add'>+0x3A59 = 0x563F</div><div class='add'>+0x3A5A = 0x9ED1</div><div class='add'>+0x3A5B = 0x75D5</div><div class='add'>+0x3A5C = 0x5F88</div><div class='add'>+0x3A5D = 0x72E0</div><div class='add'>+0x3A5E = 0x6068</div><div class='add'>+0x3A5F = 0x54FC</div><div class='add'>+0x3A60 = 0x4EA8</div><div class='add'>+0x3A61 = 0x6A2A</div><div class='add'>+0x3A62 = 0x8861</div><div class='add'>+0x3A63 = 0x6052</div><div class='add'>+0x3A64 = 0x8F5F</div><div class='add'>+0x3A65 = 0x54C4</div><div class='add'>+0x3A66 = 0x70D8</div><div class='add'>+0x3A67 = 0x8679</div><div class='add'>+0x3A68 = 0x9D3B</div><div class='add'>+0x3A69 = 0x6D2A</div><div class='add'>+0x3A6A = 0x5B8F</div><div class='add'>+0x3A6B = 0x5F18</div><div class='add'>+0x3A6C = 0x7D05</div><div class='add'>+0x3A6D = 0x5589</div><div class='add'>+0x3A6E = 0x4FAF</div><div class='add'>+0x3A6F = 0x7334</div><div class='add'>+0x3A70 = 0x543C</div><div class='add'>+0x3A71 = 0x539A</div><div class='add'>+0x3A72 = 0x5019</div><div class='add'>+0x3A73 = 0x5F8C</div><div class='add'>+0x3A74 = 0x547C</div><div class='add'>+0x3A75 = 0x4E4E</div><div class='add'>+0x3A76 = 0x5FFD</div><div class='add'>+0x3A77 = 0x745A</div><div class='add'>+0x3A78 = 0x58FA</div><div class='add'>+0x3A79 = 0x846B</div><div class='add'>+0x3A7A = 0x80E1</div><div class='add'>+0x3A7B = 0x8774</div><div class='add'>+0x3A7C = 0x72D0</div><div class='add'>+0x3A7D = 0x7CCA</div><div class='add'>+0x3A7E = 0x6E56</div><div class='add'>+0x3B21 = 0x5F27</div><div class='add'>+0x3B22 = 0x864E</div><div class='add'>+0x3B23 = 0x552C</div><div class='add'>+0x3B24 = 0x8B77</div><div class='add'>+0x3B25 = 0x4E92</div><div class='add'>+0x3B26 = 0x6EEC</div><div class='add'>+0x3B27 = 0x6237</div><div class='add'>+0x3B28 = 0x82B1</div><div class='add'>+0x3B29 = 0x5629</div><div class='add'>+0x3B2A = 0x83EF</div><div class='add'>+0x3B2B = 0x733E</div><div class='add'>+0x3B2C = 0x6ED1</div><div class='add'>+0x3B2D = 0x756B</div><div class='add'>+0x3B2E = 0x5283</div><div class='add'>+0x3B2F = 0x5316</div><div class='add'>+0x3B30 = 0x8A71</div><div class='add'>+0x3B31 = 0x69D0</div><div class='add'>+0x3B32 = 0x5F8A</div><div class='add'>+0x3B33 = 0x61F7</div><div class='add'>+0x3B34 = 0x6DEE</div><div class='add'>+0x3B35 = 0x58DE</div><div class='add'>+0x3B36 = 0x6B61</div><div class='add'>+0x3B37 = 0x74B0</div><div class='add'>+0x3B38 = 0x6853</div><div class='add'>+0x3B39 = 0x9084</div><div class='add'>+0x3B3A = 0x7DE9</div><div class='add'>+0x3B3B = 0x63DB</div><div class='add'>+0x3B3C = 0x60A3</div><div class='add'>+0x3B3D = 0x559A</div><div class='add'>+0x3B3E = 0x7613</div><div class='add'>+0x3B3F = 0x8C62</div><div class='add'>+0x3B40 = 0x7165</div><div class='add'>+0x3B41 = 0x6E19</div><div class='add'>+0x3B42 = 0x5BA6</div><div class='add'>+0x3B43 = 0x5E7B</div><div class='add'>+0x3B44 = 0x8352</div><div class='add'>+0x3B45 = 0x614C</div><div class='add'>+0x3B46 = 0x9EC4</div><div class='add'>+0x3B47 = 0x78FA</div><div class='add'>+0x3B48 = 0x8757</div><div class='add'>+0x3B49 = 0x7C27</div><div class='add'>+0x3B4A = 0x7687</div><div class='add'>+0x3B4B = 0x51F0</div><div class='add'>+0x3B4C = 0x60F6</div><div class='add'>+0x3B4D = 0x714C</div><div class='add'>+0x3B4E = 0x6643</div><div class='add'>+0x3B4F = 0x5E4C</div><div class='add'>+0x3B50 = 0x604D</div><div class='add'>+0x3B51 = 0x8B0A</div><div class='add'>+0x3B52 = 0x7070</div><div class='add'>+0x3B53 = 0x63EE</div><div class='add'>+0x3B54 = 0x8F1D</div><div class='add'>+0x3B55 = 0x5FBD</div><div class='add'>+0x3B56 = 0x6062</div><div class='add'>+0x3B57 = 0x86D4</div><div class='add'>+0x3B58 = 0x56DE</div><div class='add'>+0x3B59 = 0x6BC1</div><div class='add'>+0x3B5A = 0x6094</div><div class='add'>+0x3B5B = 0x6167</div><div class='add'>+0x3B5C = 0x5349</div><div class='add'>+0x3B5D = 0x60E0</div><div class='add'>+0x3B5E = 0x6666</div><div class='add'>+0x3B5F = 0x8CC4</div><div class='add'>+0x3B60 = 0x7A62</div><div class='add'>+0x3B61 = 0x6703</div><div class='add'>+0x3B62 = 0x71F4</div><div class='add'>+0x3B63 = 0x532F</div><div class='add'>+0x3B64 = 0x8AF1</div><div class='add'>+0x3B65 = 0x8AA8</div><div class='add'>+0x3B66 = 0x7E6A</div><div class='add'>+0x3B67 = 0x8477</div><div class='add'>+0x3B68 = 0x660F</div><div class='add'>+0x3B69 = 0x5A5A</div><div class='add'>+0x3B6A = 0x9B42</div><div class='add'>+0x3B6B = 0x6E3E</div><div class='add'>+0x3B6C = 0x6DF7</div><div class='add'>+0x3B6D = 0x8C41</div><div class='add'>+0x3B6E = 0x6D3B</div><div class='add'>+0x3B6F = 0x4F19</div><div class='add'>+0x3B70 = 0x706B</div><div class='add'>+0x3B71 = 0x7372</div><div class='add'>+0x3B72 = 0x6216</div><div class='add'>+0x3B73 = 0x60D1</div><div class='add'>+0x3B74 = 0x970D</div><div class='add'>+0x3B75 = 0x8CA8</div><div class='add'>+0x3B76 = 0x798D</div><div class='add'>+0x3B77 = 0x64CA</div><div class='add'>+0x3B78 = 0x573E</div><div class='add'>+0x3B79 = 0x57FA</div><div class='add'>+0x3B7A = 0x6A5F</div><div class='add'>+0x3B7B = 0x7578</div><div class='add'>+0x3B7C = 0x7A3D</div><div class='add'>+0x3B7D = 0x7A4D</div><div class='add'>+0x3B7E = 0x7B95</div><div class='add'>+0x3C21 = 0x808C</div><div class='add'>+0x3C22 = 0x9951</div><div class='add'>+0x3C23 = 0x8FF9</div><div class='add'>+0x3C24 = 0x6FC0</div><div class='add'>+0x3C25 = 0x8B4F</div><div class='add'>+0x3C26 = 0x9DC4</div><div class='add'>+0x3C27 = 0x59EC</div><div class='add'>+0x3C28 = 0x7E3E</div><div class='add'>+0x3C29 = 0x7DDD</div><div class='add'>+0x3C2A = 0x5409</div><div class='add'>+0x3C2B = 0x6975</div><div class='add'>+0x3C2C = 0x68D8</div><div class='add'>+0x3C2D = 0x8F2F</div><div class='add'>+0x3C2E = 0x7C4D</div><div class='add'>+0x3C2F = 0x96C6</div><div class='add'>+0x3C30 = 0x53CA</div><div class='add'>+0x3C31 = 0x6025</div><div class='add'>+0x3C32 = 0x75BE</div><div class='add'>+0x3C33 = 0x6C72</div><div class='add'>+0x3C34 = 0x5373</div><div class='add'>+0x3C35 = 0x5AC9</div><div class='add'>+0x3C36 = 0x7D1A</div><div class='add'>+0x3C37 = 0x64E0</div><div class='add'>+0x3C38 = 0x5E7E</div><div class='add'>+0x3C39 = 0x810A</div><div class='add'>+0x3C3A = 0x5DF1</div><div class='add'>+0x3C3B = 0x858A</div><div class='add'>+0x3C3C = 0x6280</div><div class='add'>+0x3C3D = 0x5180</div><div class='add'>+0x3C3E = 0x5B63</div><div class='add'>+0x3C3F = 0x4F0E</div><div class='add'>+0x3C40 = 0x796D</div><div class='add'>+0x3C41 = 0x5291</div><div class='add'>+0x3C42 = 0x60B8</div><div class='add'>+0x3C43 = 0x6FDF</div><div class='add'>+0x3C44 = 0x5BC4</div><div class='add'>+0x3C45 = 0x5BC2</div><div class='add'>+0x3C46 = 0x8A08</div><div class='add'>+0x3C47 = 0x8A18</div><div class='add'>+0x3C48 = 0x65E2</div><div class='add'>+0x3C49 = 0x5FCC</div><div class='add'>+0x3C4A = 0x969B</div><div class='add'>+0x3C4B = 0x5993</div><div class='add'>+0x3C4C = 0x7E7C</div><div class='add'>+0x3C4D = 0x7D00</div><div class='add'>+0x3C4E = 0x5609</div><div class='add'>+0x3C4F = 0x67B7</div><div class='add'>+0x3C50 = 0x593E</div><div class='add'>+0x3C51 = 0x4F73</div><div class='add'>+0x3C52 = 0x5BB6</div><div class='add'>+0x3C53 = 0x52A0</div><div class='add'>+0x3C54 = 0x83A2</div><div class='add'>+0x3C55 = 0x9830</div><div class='add'>+0x3C56 = 0x8CC8</div><div class='add'>+0x3C57 = 0x7532</div><div class='add'>+0x3C58 = 0x9240</div><div class='add'>+0x3C59 = 0x5047</div><div class='add'>+0x3C5A = 0x7A3C</div><div class='add'>+0x3C5B = 0x50F9</div><div class='add'>+0x3C5C = 0x67B6</div><div class='add'>+0x3C5D = 0x99D5</div><div class='add'>+0x3C5E = 0x5AC1</div><div class='add'>+0x3C5F = 0x6BB2</div><div class='add'>+0x3C60 = 0x76E3</div><div class='add'>+0x3C61 = 0x5805</div><div class='add'>+0x3C62 = 0x5C16</div><div class='add'>+0x3C63 = 0x7B8B</div><div class='add'>+0x3C64 = 0x9593</div><div class='add'>+0x3C65 = 0x714E</div><div class='add'>+0x3C66 = 0x517C</div><div class='add'>+0x3C67 = 0x80A9</div><div class='add'>+0x3C68 = 0x8271</div><div class='add'>+0x3C69 = 0x5978</div><div class='add'>+0x3C6A = 0x7DD8</div><div class='add'>+0x3C6B = 0x7E6D</div><div class='add'>+0x3C6C = 0x6AA2</div><div class='add'>+0x3C6D = 0x67EC</div><div class='add'>+0x3C6E = 0x78B1</div><div class='add'>+0x3C6F = 0x9E7C</div><div class='add'>+0x3C70 = 0x63C0</div><div class='add'>+0x3C71 = 0x64BF</div><div class='add'>+0x3C72 = 0x7C21</div><div class='add'>+0x3C73 = 0x5109</div><div class='add'>+0x3C74 = 0x526A</div><div class='add'>+0x3C75 = 0x51CF</div><div class='add'>+0x3C76 = 0x85A6</div><div class='add'>+0x3C77 = 0x6ABB</div><div class='add'>+0x3C78 = 0x9452</div><div class='add'>+0x3C79 = 0x8E10</div><div class='add'>+0x3C7A = 0x8CE4</div><div class='add'>+0x3C7B = 0x898B</div><div class='add'>+0x3C7C = 0x9375</div><div class='add'>+0x3C7D = 0x7BAD</div><div class='add'>+0x3C7E = 0x4EF6</div><div class='add'>+0x3D21 = 0x5065</div><div class='add'>+0x3D22 = 0x8266</div><div class='add'>+0x3D23 = 0x528D</div><div class='add'>+0x3D24 = 0x991E</div><div class='add'>+0x3D25 = 0x6F38</div><div class='add'>+0x3D26 = 0x6FFA</div><div class='add'>+0x3D27 = 0x6F97</div><div class='add'>+0x3D28 = 0x5EFA</div><div class='add'>+0x3D29 = 0x50F5</div><div class='add'>+0x3D2A = 0x59DC</div><div class='add'>+0x3D2B = 0x5C07</div><div class='add'>+0x3D2C = 0x6F3F</div><div class='add'>+0x3D2D = 0x6C5F</div><div class='add'>+0x3D2E = 0x7586</div><div class='add'>+0x3D2F = 0x8523</div><div class='add'>+0x3D30 = 0x69F3</div><div class='add'>+0x3D31 = 0x596C</div><div class='add'>+0x3D32 = 0x8B1B</div><div class='add'>+0x3D33 = 0x5320</div><div class='add'>+0x3D34 = 0x91AC</div><div class='add'>+0x3D35 = 0x964D</div><div class='add'>+0x3D36 = 0x8549</div><div class='add'>+0x3D37 = 0x6912</div><div class='add'>+0x3D38 = 0x7901</div><div class='add'>+0x3D39 = 0x7126</div><div class='add'>+0x3D3A = 0x81A0</div><div class='add'>+0x3D3B = 0x4EA4</div><div class='add'>+0x3D3C = 0x90CA</div><div class='add'>+0x3D3D = 0x6F86</div><div class='add'>+0x3D3E = 0x9A55</div><div class='add'>+0x3D3F = 0x5B0C</div><div class='add'>+0x3D40 = 0x56BC</div><div class='add'>+0x3D41 = 0x652A</div><div class='add'>+0x3D42 = 0x9278</div><div class='add'>+0x3D43 = 0x77EF</div><div class='add'>+0x3D44 = 0x50E5</div><div class='add'>+0x3D45 = 0x811A</div><div class='add'>+0x3D46 = 0x72E1</div><div class='add'>+0x3D47 = 0x89D2</div><div class='add'>+0x3D48 = 0x9903</div><div class='add'>+0x3D49 = 0x7E73</div><div class='add'>+0x3D4A = 0x7D5E</div><div class='add'>+0x3D4B = 0x527F</div><div class='add'>+0x3D4C = 0x6559</div><div class='add'>+0x3D4D = 0x9175</div><div class='add'>+0x3D4E = 0x8F4E</div><div class='add'>+0x3D4F = 0x8F03</div><div class='add'>+0x3D50 = 0x53EB</div><div class='add'>+0x3D51 = 0x7A96</div><div class='add'>+0x3D52 = 0x63ED</div><div class='add'>+0x3D53 = 0x63A5</div><div class='add'>+0x3D54 = 0x7686</div><div class='add'>+0x3D55 = 0x79F8</div><div class='add'>+0x3D56 = 0x8857</div><div class='add'>+0x3D57 = 0x968E</div><div class='add'>+0x3D58 = 0x622A</div><div class='add'>+0x3D59 = 0x52AB</div><div class='add'>+0x3D5A = 0x7BC0</div><div class='add'>+0x3D5B = 0x6854</div><div class='add'>+0x3D5C = 0x6770</div><div class='add'>+0x3D5D = 0x6377</div><div class='add'>+0x3D5E = 0x776B</div><div class='add'>+0x3D5F = 0x7AED</div><div class='add'>+0x3D60 = 0x6F54</div><div class='add'>+0x3D61 = 0x7D50</div><div class='add'>+0x3D62 = 0x89E3</div><div class='add'>+0x3D63 = 0x59D0</div><div class='add'>+0x3D64 = 0x6212</div><div class='add'>+0x3D65 = 0x85C9</div><div class='add'>+0x3D66 = 0x82A5</div><div class='add'>+0x3D67 = 0x754C</div><div class='add'>+0x3D68 = 0x501F</div><div class='add'>+0x3D69 = 0x4ECB</div><div class='add'>+0x3D6A = 0x75A5</div><div class='add'>+0x3D6B = 0x8AA1</div><div class='add'>+0x3D6C = 0x5C4A</div><div class='add'>+0x3D6D = 0x5DFE</div><div class='add'>+0x3D6E = 0x7B4B</div><div class='add'>+0x3D6F = 0x65A4</div><div class='add'>+0x3D70 = 0x91D1</div><div class='add'>+0x3D71 = 0x4ECA</div><div class='add'>+0x3D72 = 0x6D25</div><div class='add'>+0x3D73 = 0x895F</div><div class='add'>+0x3D74 = 0x7DCA</div><div class='add'>+0x3D75 = 0x9326</div><div class='add'>+0x3D76 = 0x50C5</div><div class='add'>+0x3D77 = 0x8B39</div><div class='add'>+0x3D78 = 0x9032</div><div class='add'>+0x3D79 = 0x9773</div><div class='add'>+0x3D7A = 0x6649</div><div class='add'>+0x3D7B = 0x7981</div><div class='add'>+0x3D7C = 0x8FD1</div><div class='add'>+0x3D7D = 0x71FC</div><div class='add'>+0x3D7E = 0x6D78</div><div class='add'>+0x3E21 = 0x76E1</div><div class='add'>+0x3E22 = 0x52C1</div><div class='add'>+0x3E23 = 0x8346</div><div class='add'>+0x3E24 = 0x5162</div><div class='add'>+0x3E25 = 0x8396</div><div class='add'>+0x3E26 = 0x775B</div><div class='add'>+0x3E27 = 0x6676</div><div class='add'>+0x3E28 = 0x9BE8</div><div class='add'>+0x3E29 = 0x4EAC</div><div class='add'>+0x3E2A = 0x9A5A</div><div class='add'>+0x3E2B = 0x7CBE</div><div class='add'>+0x3E2C = 0x7CB3</div><div class='add'>+0x3E2D = 0x7D93</div><div class='add'>+0x3E2E = 0x4E95</div><div class='add'>+0x3E2F = 0x8B66</div><div class='add'>+0x3E30 = 0x666F</div><div class='add'>+0x3E31 = 0x9838</div><div class='add'>+0x3E32 = 0x975C</div><div class='add'>+0x3E33 = 0x5883</div><div class='add'>+0x3E34 = 0x656C</div><div class='add'>+0x3E35 = 0x93E1</div><div class='add'>+0x3E36 = 0x5F91</div><div class='add'>+0x3E37 = 0x75D9</div><div class='add'>+0x3E38 = 0x9756</div><div class='add'>+0x3E39 = 0x7ADF</div><div class='add'>+0x3E3A = 0x7AF6</div><div class='add'>+0x3E3B = 0x51C8</div><div class='add'>+0x3E3C = 0x70AF</div><div class='add'>+0x3E3D = 0x7A98</div><div class='add'>+0x3E3E = 0x63EA</div><div class='add'>+0x3E3F = 0x7A76</div><div class='add'>+0x3E40 = 0x7CFE</div><div class='add'>+0x3E41 = 0x7396</div><div class='add'>+0x3E42 = 0x97ED</div><div class='add'>+0x3E43 = 0x4E45</div><div class='add'>+0x3E44 = 0x7078</div><div class='add'>+0x3E45 = 0x4E5D</div><div class='add'>+0x3E46 = 0x9152</div><div class='add'>+0x3E47 = 0x53A9</div><div class='add'>+0x3E48 = 0x6551</div><div class='add'>+0x3E49 = 0x820A</div><div class='add'>+0x3E4A = 0x81FC</div><div class='add'>+0x3E4B = 0x8205</div><div class='add'>+0x3E4C = 0x548E</div><div class='add'>+0x3E4D = 0x5C31</div><div class='add'>+0x3E4E = 0x759A</div><div class='add'>+0x3E4F = 0x97A0</div><div class='add'>+0x3E50 = 0x62D8</div><div class='add'>+0x3E51 = 0x72D9</div><div class='add'>+0x3E52 = 0x75BD</div><div class='add'>+0x3E53 = 0x5C45</div><div class='add'>+0x3E54 = 0x99D2</div><div class='add'>+0x3E55 = 0x83CA</div><div class='add'>+0x3E56 = 0x5C40</div><div class='add'>+0x3E57 = 0x5480</div><div class='add'>+0x3E58 = 0x77E9</div><div class='add'>+0x3E59 = 0x8209</div><div class='add'>+0x3E5A = 0x6CAE</div><div class='add'>+0x3E5B = 0x805A</div><div class='add'>+0x3E5C = 0x62D2</div><div class='add'>+0x3E5D = 0x64DA</div><div class='add'>+0x3E5E = 0x5DE8</div><div class='add'>+0x3E5F = 0x5177</div><div class='add'>+0x3E60 = 0x8DDD</div><div class='add'>+0x3E61 = 0x8E1E</div><div class='add'>+0x3E62 = 0x92F8</div><div class='add'>+0x3E63 = 0x4FF1</div><div class='add'>+0x3E64 = 0x53E5</div><div class='add'>+0x3E65 = 0x61FC</div><div class='add'>+0x3E66 = 0x70AC</div><div class='add'>+0x3E67 = 0x5287</div><div class='add'>+0x3E68 = 0x6350</div><div class='add'>+0x3E69 = 0x9D51</div><div class='add'>+0x3E6A = 0x5A1F</div><div class='add'>+0x3E6B = 0x5026</div><div class='add'>+0x3E6C = 0x7737</div><div class='add'>+0x3E6D = 0x5377</div><div class='add'>+0x3E6E = 0x7D79</div><div class='add'>+0x3E6F = 0x6485</div><div class='add'>+0x3E70 = 0x652B</div><div class='add'>+0x3E71 = 0x6289</div><div class='add'>+0x3E72 = 0x6398</div><div class='add'>+0x3E73 = 0x5014</div><div class='add'>+0x3E74 = 0x7235</div><div class='add'>+0x3E75 = 0x89BA</div><div class='add'>+0x3E76 = 0x51B3</div><div class='add'>+0x3E77 = 0x8A23</div><div class='add'>+0x3E78 = 0x7D76</div><div class='add'>+0x3E79 = 0x5747</div><div class='add'>+0x3E7A = 0x83CC</div><div class='add'>+0x3E7B = 0x921E</div><div class='add'>+0x3E7C = 0x8ECD</div><div class='add'>+0x3E7D = 0x541B</div><div class='add'>+0x3E7E = 0x5CFB</div><div class='add'>+0x3F21 = 0x4FCA</div><div class='add'>+0x3F22 = 0x7AE3</div><div class='add'>+0x3F23 = 0x6D5A</div><div class='add'>+0x3F24 = 0x90E1</div><div class='add'>+0x3F25 = 0x99FF</div><div class='add'>+0x3F26 = 0x5580</div><div class='add'>+0x3F27 = 0x5496</div><div class='add'>+0x3F28 = 0x5361</div><div class='add'>+0x3F29 = 0x54AF</div><div class='add'>+0x3F2A = 0x958B</div><div class='add'>+0x3F2B = 0x63E9</div><div class='add'>+0x3F2C = 0x6977</div><div class='add'>+0x3F2D = 0x51F1</div><div class='add'>+0x3F2E = 0x6168</div><div class='add'>+0x3F2F = 0x520A</div><div class='add'>+0x3F30 = 0x582A</div><div class='add'>+0x3F31 = 0x52D8</div><div class='add'>+0x3F32 = 0x574E</div><div class='add'>+0x3F33 = 0x780D</div><div class='add'>+0x3F34 = 0x770B</div><div class='add'>+0x3F35 = 0x5EB7</div><div class='add'>+0x3F36 = 0x6177</div><div class='add'>+0x3F37 = 0x7CE0</div><div class='add'>+0x3F38 = 0x625B</div><div class='add'>+0x3F39 = 0x6297</div><div class='add'>+0x3F3A = 0x4EA2</div><div class='add'>+0x3F3B = 0x7095</div><div class='add'>+0x3F3C = 0x8003</div><div class='add'>+0x3F3D = 0x62F7</div><div class='add'>+0x3F3E = 0x70E4</div><div class='add'>+0x3F3F = 0x9760</div><div class='add'>+0x3F40 = 0x5777</div><div class='add'>+0x3F41 = 0x82DB</div><div class='add'>+0x3F42 = 0x67EF</div><div class='add'>+0x3F43 = 0x68F5</div><div class='add'>+0x3F44 = 0x78D5</div><div class='add'>+0x3F45 = 0x9846</div><div class='add'>+0x3F46 = 0x79D1</div><div class='add'>+0x3F47 = 0x6BBB</div><div class='add'>+0x3F48 = 0x54B3</div><div class='add'>+0x3F49 = 0x53EF</div><div class='add'>+0x3F4A = 0x6E34</div><div class='add'>+0x3F4B = 0x514B</div><div class='add'>+0x3F4C = 0x523B</div><div class='add'>+0x3F4D = 0x5BA2</div><div class='add'>+0x3F4E = 0x8AB2</div><div class='add'>+0x3F4F = 0x80AF</div><div class='add'>+0x3F50 = 0x5543</div><div class='add'>+0x3F51 = 0x58BE</div><div class='add'>+0x3F52 = 0x61C7</div><div class='add'>+0x3F53 = 0x5751</div><div class='add'>+0x3F54 = 0x542D</div><div class='add'>+0x3F55 = 0x7A7A</div><div class='add'>+0x3F56 = 0x6050</div><div class='add'>+0x3F57 = 0x5B54</div><div class='add'>+0x3F58 = 0x63A7</div><div class='add'>+0x3F59 = 0x6473</div><div class='add'>+0x3F5A = 0x53E3</div><div class='add'>+0x3F5B = 0x6263</div><div class='add'>+0x3F5C = 0x5BC7</div><div class='add'>+0x3F5D = 0x67AF</div><div class='add'>+0x3F5E = 0x54ED</div><div class='add'>+0x3F5F = 0x7A9F</div><div class='add'>+0x3F60 = 0x82E6</div><div class='add'>+0x3F61 = 0x9177</div><div class='add'>+0x3F62 = 0x5EAB</div><div class='add'>+0x3F63 = 0x8932</div><div class='add'>+0x3F64 = 0x8A87</div><div class='add'>+0x3F65 = 0x57AE</div><div class='add'>+0x3F66 = 0x630E</div><div class='add'>+0x3F67 = 0x8DE8</div><div class='add'>+0x3F68 = 0x80EF</div><div class='add'>+0x3F69 = 0x584A</div><div class='add'>+0x3F6A = 0x7B77</div><div class='add'>+0x3F6B = 0x5108</div><div class='add'>+0x3F6C = 0x5FEB</div><div class='add'>+0x3F6D = 0x5BEC</div><div class='add'>+0x3F6E = 0x6B3E</div><div class='add'>+0x3F6F = 0x5321</div><div class='add'>+0x3F70 = 0x7B50</div><div class='add'>+0x3F71 = 0x72C2</div><div class='add'>+0x3F72 = 0x6846</div><div class='add'>+0x3F73 = 0x7926</div><div class='add'>+0x3F74 = 0x7736</div><div class='add'>+0x3F75 = 0x66E0</div><div class='add'>+0x3F76 = 0x51B5</div><div class='add'>+0x3F77 = 0x8667</div><div class='add'>+0x3F78 = 0x76D4</div><div class='add'>+0x3F79 = 0x5DCB</div><div class='add'>+0x3F7A = 0x7ABA</div><div class='add'>+0x3F7B = 0x8475</div><div class='add'>+0x3F7C = 0x594E</div><div class='add'>+0x3F7D = 0x9B41</div><div class='add'>+0x3F7E = 0x5080</div><div class='add'>+0x4021 = 0x994B</div><div class='add'>+0x4022 = 0x6127</div><div class='add'>+0x4023 = 0x6F70</div><div class='add'>+0x4024 = 0x5764</div><div class='add'>+0x4025 = 0x6606</div><div class='add'>+0x4026 = 0x6346</div><div class='add'>+0x4027 = 0x56F0</div><div class='add'>+0x4028 = 0x62EC</div><div class='add'>+0x4029 = 0x64F4</div><div class='add'>+0x402A = 0x5ED3</div><div class='add'>+0x402B = 0x95CA</div><div class='add'>+0x402C = 0x5783</div><div class='add'>+0x402D = 0x62C9</div><div class='add'>+0x402E = 0x5587</div><div class='add'>+0x402F = 0x881F</div><div class='add'>+0x4030 = 0x81D8</div><div class='add'>+0x4031 = 0x8FA3</div><div class='add'>+0x4032 = 0x5566</div><div class='add'>+0x4033 = 0x840A</div><div class='add'>+0x4034 = 0x4F86</div><div class='add'>+0x4035 = 0x8CF4</div><div class='add'>+0x4036 = 0x85CD</div><div class='add'>+0x4037 = 0x5A6A</div><div class='add'>+0x4038 = 0x6B04</div><div class='add'>+0x4039 = 0x6514</div><div class='add'>+0x403A = 0x7C43</div><div class='add'>+0x403B = 0x95CC</div><div class='add'>+0x403C = 0x862D</div><div class='add'>+0x403D = 0x703E</div><div class='add'>+0x403E = 0x8B95</div><div class='add'>+0x403F = 0x652C</div><div class='add'>+0x4040 = 0x89BD</div><div class='add'>+0x4041 = 0x61F6</div><div class='add'>+0x4042 = 0x7E9C</div><div class='add'>+0x4043 = 0x721B</div><div class='add'>+0x4044 = 0x6FEB</div><div class='add'>+0x4045 = 0x7405</div><div class='add'>+0x4046 = 0x6994</div><div class='add'>+0x4047 = 0x72FC</div><div class='add'>+0x4048 = 0x5ECA</div><div class='add'>+0x4049 = 0x90CE</div><div class='add'>+0x404A = 0x6717</div><div class='add'>+0x404B = 0x6D6A</div><div class='add'>+0x404C = 0x6488</div><div class='add'>+0x404D = 0x52DE</div><div class='add'>+0x404E = 0x7262</div><div class='add'>+0x404F = 0x8001</div><div class='add'>+0x4050 = 0x4F6C</div><div class='add'>+0x4051 = 0x59E5</div><div class='add'>+0x4052 = 0x916A</div><div class='add'>+0x4053 = 0x70D9</div><div class='add'>+0x4054 = 0x6F87</div><div class='add'>+0x4055 = 0x52D2</div><div class='add'>+0x4056 = 0x6A02</div><div class='add'>+0x4057 = 0x96F7</div><div class='add'>+0x4058 = 0x9433</div><div class='add'>+0x4059 = 0x857E</div><div class='add'>+0x405A = 0x78CA</div><div class='add'>+0x405B = 0x7D2F</div><div class='add'>+0x405C = 0x5121</div><div class='add'>+0x405D = 0x58D8</div><div class='add'>+0x405E = 0x64C2</div><div class='add'>+0x405F = 0x808B</div><div class='add'>+0x4060 = 0x985E</div><div class='add'>+0x4061 = 0x6CEA</div><div class='add'>+0x4062 = 0x68F1</div><div class='add'>+0x4063 = 0x695E</div><div class='add'>+0x4064 = 0x51B7</div><div class='add'>+0x4065 = 0x5398</div><div class='add'>+0x4066 = 0x68A8</div><div class='add'>+0x4067 = 0x7281</div><div class='add'>+0x4068 = 0x9ECE</div><div class='add'>+0x4069 = 0x7C6C</div><div class='add'>+0x406A = 0x72F8</div><div class='add'>+0x406B = 0x96E2</div><div class='add'>+0x406C = 0x7055</div><div class='add'>+0x406D = 0x7406</div><div class='add'>+0x406E = 0x674E</div><div class='add'>+0x406F = 0x88CF</div><div class='add'>+0x4070 = 0x9BC9</div><div class='add'>+0x4071 = 0x79AE</div><div class='add'>+0x4072 = 0x8389</div><div class='add'>+0x4073 = 0x8354</div><div class='add'>+0x4074 = 0x540F</div><div class='add'>+0x4075 = 0x6817</div><div class='add'>+0x4076 = 0x9E97</div><div class='add'>+0x4077 = 0x53B2</div><div class='add'>+0x4078 = 0x52F5</div><div class='add'>+0x4079 = 0x792B</div><div class='add'>+0x407A = 0x6B77</div><div class='add'>+0x407B = 0x5229</div><div class='add'>+0x407C = 0x5088</div><div class='add'>+0x407D = 0x4F8B</div><div class='add'>+0x407E = 0x4FD0</div><div class='add'>+0x4121 = 0x75E2</div><div class='add'>+0x4122 = 0x7ACB</div><div class='add'>+0x4123 = 0x7C92</div><div class='add'>+0x4124 = 0x701D</div><div class='add'>+0x4125 = 0x96B8</div><div class='add'>+0x4126 = 0x529B</div><div class='add'>+0x4127 = 0x7483</div><div class='add'>+0x4128 = 0x54E9</div><div class='add'>+0x4129 = 0x5006</div><div class='add'>+0x412A = 0x806F</div><div class='add'>+0x412B = 0x84EE</div><div class='add'>+0x412C = 0x9023</div><div class='add'>+0x412D = 0x942E</div><div class='add'>+0x412E = 0x5EC9</div><div class='add'>+0x412F = 0x6190</div><div class='add'>+0x4130 = 0x6F23</div><div class='add'>+0x4131 = 0x7C3E</div><div class='add'>+0x4132 = 0x6582</div><div class='add'>+0x4133 = 0x81C9</div><div class='add'>+0x4134 = 0x93C8</div><div class='add'>+0x4135 = 0x6200</div><div class='add'>+0x4136 = 0x7149</div><div class='add'>+0x4137 = 0x7DF4</div><div class='add'>+0x4138 = 0x7CE7</div><div class='add'>+0x4139 = 0x51C9</div><div class='add'>+0x413A = 0x6881</div><div class='add'>+0x413B = 0x7CB1</div><div class='add'>+0x413C = 0x826F</div><div class='add'>+0x413D = 0x5169</div><div class='add'>+0x413E = 0x8F1B</div><div class='add'>+0x413F = 0x91CF</div><div class='add'>+0x4140 = 0x667E</div><div class='add'>+0x4141 = 0x4EAE</div><div class='add'>+0x4142 = 0x8AD2</div><div class='add'>+0x4143 = 0x64A9</div><div class='add'>+0x4144 = 0x804A</div><div class='add'>+0x4145 = 0x50DA</div><div class='add'>+0x4146 = 0x7642</div><div class='add'>+0x4147 = 0x71CE</div><div class='add'>+0x4148 = 0x5BE5</div><div class='add'>+0x4149 = 0x907C</div><div class='add'>+0x414A = 0x6F66</div><div class='add'>+0x414B = 0x4E86</div><div class='add'>+0x414C = 0x6482</div><div class='add'>+0x414D = 0x9410</div><div class='add'>+0x414E = 0x5ED6</div><div class='add'>+0x414F = 0x6599</div><div class='add'>+0x4150 = 0x5217</div><div class='add'>+0x4151 = 0x88C2</div><div class='add'>+0x4152 = 0x70C8</div><div class='add'>+0x4153 = 0x52A3</div><div class='add'>+0x4154 = 0x7375</div><div class='add'>+0x4155 = 0x7433</div><div class='add'>+0x4156 = 0x6797</div><div class='add'>+0x4157 = 0x78F7</div><div class='add'>+0x4158 = 0x9716</div><div class='add'>+0x4159 = 0x81E8</div><div class='add'>+0x415A = 0x9130</div><div class='add'>+0x415B = 0x9C57</div><div class='add'>+0x415C = 0x6DCB</div><div class='add'>+0x415D = 0x51DB</div><div class='add'>+0x415E = 0x8CC3</div><div class='add'>+0x415F = 0x541D</div><div class='add'>+0x4160 = 0x62CE</div><div class='add'>+0x4161 = 0x73B2</div><div class='add'>+0x4162 = 0x83F1</div><div class='add'>+0x4163 = 0x96F6</div><div class='add'>+0x4164 = 0x9F61</div><div class='add'>+0x4165 = 0x9234</div><div class='add'>+0x4166 = 0x4F36</div><div class='add'>+0x4167 = 0x7F9A</div><div class='add'>+0x4168 = 0x51CC</div><div class='add'>+0x4169 = 0x9748</div><div class='add'>+0x416A = 0x9675</div><div class='add'>+0x416B = 0x5DBA</div><div class='add'>+0x416C = 0x9818</div><div class='add'>+0x416D = 0x53E6</div><div class='add'>+0x416E = 0x4EE4</div><div class='add'>+0x416F = 0x6E9C</div><div class='add'>+0x4170 = 0x7409</div><div class='add'>+0x4171 = 0x69B4</div><div class='add'>+0x4172 = 0x786B</div><div class='add'>+0x4173 = 0x993E</div><div class='add'>+0x4174 = 0x7559</div><div class='add'>+0x4175 = 0x5289</div><div class='add'>+0x4176 = 0x7624</div><div class='add'>+0x4177 = 0x6D41</div><div class='add'>+0x4178 = 0x67F3</div><div class='add'>+0x4179 = 0x516D</div><div class='add'>+0x417A = 0x9F8D</div><div class='add'>+0x417B = 0x807E</div><div class='add'>+0x417C = 0x56A8</div><div class='add'>+0x417D = 0x7C60</div><div class='add'>+0x417E = 0x7ABF</div><div class='add'>+0x4221 = 0x9686</div><div class='add'>+0x4222 = 0x58DF</div><div class='add'>+0x4223 = 0x650F</div><div class='add'>+0x4224 = 0x96B4</div><div class='add'>+0x4225 = 0x6A13</div><div class='add'>+0x4226 = 0x5A41</div><div class='add'>+0x4227 = 0x645F</div><div class='add'>+0x4228 = 0x7C0D</div><div class='add'>+0x4229 = 0x6F0F</div><div class='add'>+0x422A = 0x964B</div><div class='add'>+0x422B = 0x8606</div><div class='add'>+0x422C = 0x76E7</div><div class='add'>+0x422D = 0x9871</div><div class='add'>+0x422E = 0x5EEC</div><div class='add'>+0x422F = 0x7210</div><div class='add'>+0x4230 = 0x64C4</div><div class='add'>+0x4231 = 0x6EF7</div><div class='add'>+0x4232 = 0x865C</div><div class='add'>+0x4233 = 0x9B6F</div><div class='add'>+0x4234 = 0x9E93</div><div class='add'>+0x4235 = 0x788C</div><div class='add'>+0x4236 = 0x9732</div><div class='add'>+0x4237 = 0x8DEF</div><div class='add'>+0x4238 = 0x8CC2</div><div class='add'>+0x4239 = 0x9E7F</div><div class='add'>+0x423A = 0x6F5E</div><div class='add'>+0x423B = 0x7984</div><div class='add'>+0x423C = 0x9332</div><div class='add'>+0x423D = 0x9678</div><div class='add'>+0x423E = 0x622E</div><div class='add'>+0x423F = 0x9A62</div><div class='add'>+0x4240 = 0x5415</div><div class='add'>+0x4241 = 0x92C1</div><div class='add'>+0x4242 = 0x4FA3</div><div class='add'>+0x4243 = 0x65C5</div><div class='add'>+0x4244 = 0x5C65</div><div class='add'>+0x4245 = 0x5C62</div><div class='add'>+0x4246 = 0x7E37</div><div class='add'>+0x4247 = 0x616E</div><div class='add'>+0x4248 = 0x6C2F</div><div class='add'>+0x4249 = 0x5F8B</div><div class='add'>+0x424A = 0x7387</div><div class='add'>+0x424B = 0x6FFE</div><div class='add'>+0x424C = 0x7DD1</div><div class='add'>+0x424D = 0x5DD2</div><div class='add'>+0x424E = 0x6523</div><div class='add'>+0x424F = 0x5B7F</div><div class='add'>+0x4250 = 0x7064</div><div class='add'>+0x4251 = 0x5375</div><div class='add'>+0x4252 = 0x4E82</div><div class='add'>+0x4253 = 0x63A0</div><div class='add'>+0x4254 = 0x7565</div><div class='add'>+0x4255 = 0x6384</div><div class='add'>+0x4256 = 0x8F2A</div><div class='add'>+0x4257 = 0x502B</div><div class='add'>+0x4258 = 0x4F96</div><div class='add'>+0x4259 = 0x6DEA</div><div class='add'>+0x425A = 0x7DB8</div><div class='add'>+0x425B = 0x8AD6</div><div class='add'>+0x425C = 0x863F</div><div class='add'>+0x425D = 0x87BA</div><div class='add'>+0x425E = 0x7F85</div><div class='add'>+0x425F = 0x908F</div><div class='add'>+0x4260 = 0x947C</div><div class='add'>+0x4261 = 0x7C6E</div><div class='add'>+0x4262 = 0x9A3E</div><div class='add'>+0x4263 = 0x88F8</div><div class='add'>+0x4264 = 0x843D</div><div class='add'>+0x4265 = 0x6D1B</div><div class='add'>+0x4266 = 0x99F1</div><div class='add'>+0x4267 = 0x7D61</div><div class='add'>+0x4268 = 0x5ABD</div><div class='add'>+0x4269 = 0x9EBB</div><div class='add'>+0x426A = 0x746A</div><div class='add'>+0x426B = 0x78BC</div><div class='add'>+0x426C = 0x879E</div><div class='add'>+0x426D = 0x99AC</div><div class='add'>+0x426E = 0x99E1</div><div class='add'>+0x426F = 0x561B</div><div class='add'>+0x4270 = 0x55CE</div><div class='add'>+0x4271 = 0x57CB</div><div class='add'>+0x4272 = 0x8CB7</div><div class='add'>+0x4273 = 0x9EA5</div><div class='add'>+0x4274 = 0x8CE3</div><div class='add'>+0x4275 = 0x9081</div><div class='add'>+0x4276 = 0x8109</div><div class='add'>+0x4277 = 0x779E</div><div class='add'>+0x4278 = 0x9945</div><div class='add'>+0x4279 = 0x883B</div><div class='add'>+0x427A = 0x6EFF</div><div class='add'>+0x427B = 0x8513</div><div class='add'>+0x427C = 0x66FC</div><div class='add'>+0x427D = 0x6162</div><div class='add'>+0x427E = 0x6F2B</div><div class='add'>+0x4321 = 0x8B3E</div><div class='add'>+0x4322 = 0x8292</div><div class='add'>+0x4323 = 0x832B</div><div class='add'>+0x4324 = 0x76F2</div><div class='add'>+0x4325 = 0x6C13</div><div class='add'>+0x4326 = 0x5FD9</div><div class='add'>+0x4327 = 0x83BD</div><div class='add'>+0x4328 = 0x732B</div><div class='add'>+0x4329 = 0x8305</div><div class='add'>+0x432A = 0x9328</div><div class='add'>+0x432B = 0x6BDB</div><div class='add'>+0x432C = 0x77DB</div><div class='add'>+0x432D = 0x925A</div><div class='add'>+0x432E = 0x536F</div><div class='add'>+0x432F = 0x8302</div><div class='add'>+0x4330 = 0x5192</div><div class='add'>+0x4331 = 0x5E3D</div><div class='add'>+0x4332 = 0x8C8C</div><div class='add'>+0x4333 = 0x8CBF</div><div class='add'>+0x4334 = 0x9EBD</div><div class='add'>+0x4335 = 0x73AB</div><div class='add'>+0x4336 = 0x679A</div><div class='add'>+0x4337 = 0x6885</div><div class='add'>+0x4338 = 0x9176</div><div class='add'>+0x4339 = 0x9709</div><div class='add'>+0x433A = 0x7164</div><div class='add'>+0x433B = 0x6CA1</div><div class='add'>+0x433C = 0x7709</div><div class='add'>+0x433D = 0x5A92</div><div class='add'>+0x433E = 0x9382</div><div class='add'>+0x433F = 0x6BCF</div><div class='add'>+0x4340 = 0x7F8E</div><div class='add'>+0x4341 = 0x6627</div><div class='add'>+0x4342 = 0x5BD0</div><div class='add'>+0x4343 = 0x59B9</div><div class='add'>+0x4344 = 0x5A9A</div><div class='add'>+0x4345 = 0x9580</div><div class='add'>+0x4346 = 0x60B6</div><div class='add'>+0x4347 = 0x5011</div><div class='add'>+0x4348 = 0x840C</div><div class='add'>+0x4349 = 0x8499</div><div class='add'>+0x434A = 0x6AAC</div><div class='add'>+0x434B = 0x76DF</div><div class='add'>+0x434C = 0x9333</div><div class='add'>+0x434D = 0x731B</div><div class='add'>+0x434E = 0x5922</div><div class='add'>+0x434F = 0x5B5F</div><div class='add'>+0x4350 = 0x772F</div><div class='add'>+0x4351 = 0x919A</div><div class='add'>+0x4352 = 0x9761</div><div class='add'>+0x4353 = 0x7CDC</div><div class='add'>+0x4354 = 0x8FF7</div><div class='add'>+0x4355 = 0x8B0E</div><div class='add'>+0x4356 = 0x5F4C</div><div class='add'>+0x4357 = 0x7C73</div><div class='add'>+0x4358 = 0x79D8</div><div class='add'>+0x4359 = 0x8993</div><div class='add'>+0x435A = 0x6CCC</div><div class='add'>+0x435B = 0x871C</div><div class='add'>+0x435C = 0x5BC6</div><div class='add'>+0x435D = 0x5E42</div><div class='add'>+0x435E = 0x68C9</div><div class='add'>+0x435F = 0x7720</div><div class='add'>+0x4360 = 0x7DBF</div><div class='add'>+0x4361 = 0x5195</div><div class='add'>+0x4362 = 0x514D</div><div class='add'>+0x4363 = 0x52C9</div><div class='add'>+0x4364 = 0x5A29</div><div class='add'>+0x4365 = 0x7DEC</div><div class='add'>+0x4366 = 0x9762</div><div class='add'>+0x4367 = 0x82D7</div><div class='add'>+0x4368 = 0x63CF</div><div class='add'>+0x4369 = 0x7784</div><div class='add'>+0x436A = 0x85D0</div><div class='add'>+0x436B = 0x79D2</div><div class='add'>+0x436C = 0x6E3A</div><div class='add'>+0x436D = 0x5EDF</div><div class='add'>+0x436E = 0x5999</div><div class='add'>+0x436F = 0x8511</div><div class='add'>+0x4370 = 0x6EC5</div><div class='add'>+0x4371 = 0x6C11</div><div class='add'>+0x4372 = 0x62BF</div><div class='add'>+0x4373 = 0x76BF</div><div class='add'>+0x4374 = 0x654F</div><div class='add'>+0x4375 = 0x61AB</div><div class='add'>+0x4376 = 0x95A9</div><div class='add'>+0x4377 = 0x660E</div><div class='add'>+0x4378 = 0x879F</div><div class='add'>+0x4379 = 0x9CF4</div><div class='add'>+0x437A = 0x9298</div><div class='add'>+0x437B = 0x540D</div><div class='add'>+0x437C = 0x547D</div><div class='add'>+0x437D = 0x8B2C</div><div class='add'>+0x437E = 0x6478</div><div class='add'>+0x4421 = 0x6479</div><div class='add'>+0x4422 = 0x8611</div><div class='add'>+0x4423 = 0x6A21</div><div class='add'>+0x4424 = 0x819C</div><div class='add'>+0x4425 = 0x78E8</div><div class='add'>+0x4426 = 0x6469</div><div class='add'>+0x4427 = 0x9B54</div><div class='add'>+0x4428 = 0x62B9</div><div class='add'>+0x4429 = 0x672B</div><div class='add'>+0x442A = 0x83AB</div><div class='add'>+0x442B = 0x58A8</div><div class='add'>+0x442C = 0x9ED8</div><div class='add'>+0x442D = 0x6CAB</div><div class='add'>+0x442E = 0x6F20</div><div class='add'>+0x442F = 0x5BDE</div><div class='add'>+0x4430 = 0x964C</div><div class='add'>+0x4431 = 0x8B00</div><div class='add'>+0x4432 = 0x725F</div><div class='add'>+0x4433 = 0x67D0</div><div class='add'>+0x4434 = 0x62C7</div><div class='add'>+0x4435 = 0x7261</div><div class='add'>+0x4436 = 0x755D</div><div class='add'>+0x4437 = 0x59C6</div><div class='add'>+0x4438 = 0x6BCD</div><div class='add'>+0x4439 = 0x5893</div><div class='add'>+0x443A = 0x66AE</div><div class='add'>+0x443B = 0x5E55</div><div class='add'>+0x443C = 0x52DF</div><div class='add'>+0x443D = 0x6155</div><div class='add'>+0x443E = 0x6728</div><div class='add'>+0x443F = 0x76EE</div><div class='add'>+0x4440 = 0x7766</div><div class='add'>+0x4441 = 0x7267</div><div class='add'>+0x4442 = 0x7A46</div><div class='add'>+0x4443 = 0x62FF</div><div class='add'>+0x4444 = 0x54EA</div><div class='add'>+0x4445 = 0x5450</div><div class='add'>+0x4446 = 0x9209</div><div class='add'>+0x4447 = 0x90A3</div><div class='add'>+0x4448 = 0x5A1C</div><div class='add'>+0x4449 = 0x7D0D</div><div class='add'>+0x444A = 0x6C16</div><div class='add'>+0x444B = 0x4E43</div><div class='add'>+0x444C = 0x5976</div><div class='add'>+0x444D = 0x8010</div><div class='add'>+0x444E = 0x5948</div><div class='add'>+0x444F = 0x5357</div><div class='add'>+0x4450 = 0x7537</div><div class='add'>+0x4451 = 0x96E3</div><div class='add'>+0x4452 = 0x56CA</div><div class='add'>+0x4453 = 0x6493</div><div class='add'>+0x4454 = 0x8166</div><div class='add'>+0x4455 = 0x60F1</div><div class='add'>+0x4456 = 0x9B27</div><div class='add'>+0x4457 = 0x6DD6</div><div class='add'>+0x4458 = 0x5462</div><div class='add'>+0x4459 = 0x9912</div><div class='add'>+0x445A = 0x5185</div><div class='add'>+0x445B = 0x5AE9</div><div class='add'>+0x445C = 0x80FD</div><div class='add'>+0x445D = 0x59AE</div><div class='add'>+0x445E = 0x9713</div><div class='add'>+0x445F = 0x502A</div><div class='add'>+0x4460 = 0x6CE5</div><div class='add'>+0x4461 = 0x5C3C</div><div class='add'>+0x4462 = 0x64EC</div><div class='add'>+0x4463 = 0x4F60</div><div class='add'>+0x4464 = 0x533F</div><div class='add'>+0x4465 = 0x81A9</div><div class='add'>+0x4466 = 0x9006</div><div class='add'>+0x4467 = 0x6EBA</div><div class='add'>+0x4468 = 0x852B</div><div class='add'>+0x4469 = 0x62C8</div><div class='add'>+0x446A = 0x5E74</div><div class='add'>+0x446B = 0x78BE</div><div class='add'>+0x446C = 0x6506</div><div class='add'>+0x446D = 0x637B</div><div class='add'>+0x446E = 0x5FF5</div><div class='add'>+0x446F = 0x5A18</div><div class='add'>+0x4470 = 0x91C0</div><div class='add'>+0x4471 = 0x9CE5</div><div class='add'>+0x4472 = 0x5C3F</div><div class='add'>+0x4473 = 0x634F</div><div class='add'>+0x4474 = 0x8076</div><div class='add'>+0x4475 = 0x5B7D</div><div class='add'>+0x4476 = 0x5699</div><div class='add'>+0x4477 = 0x9477</div><div class='add'>+0x4478 = 0x93B3</div><div class='add'>+0x4479 = 0x6D85</div><div class='add'>+0x447A = 0x60A8</div><div class='add'>+0x447B = 0x6AB8</div><div class='add'>+0x447C = 0x7370</div><div class='add'>+0x447D = 0x51DD</div><div class='add'>+0x447E = 0x5BE7</div><div class='add'>+0x4521 = 0x64F0</div><div class='add'>+0x4522 = 0x6FD8</div><div class='add'>+0x4523 = 0x725B</div><div class='add'>+0x4524 = 0x626D</div><div class='add'>+0x4525 = 0x9215</div><div class='add'>+0x4526 = 0x7D10</div><div class='add'>+0x4527 = 0x81BF</div><div class='add'>+0x4528 = 0x6FC3</div><div class='add'>+0x4529 = 0x8FB2</div><div class='add'>+0x452A = 0x5F04</div><div class='add'>+0x452B = 0x5974</div><div class='add'>+0x452C = 0x52AA</div><div class='add'>+0x452D = 0x6012</div><div class='add'>+0x452E = 0x5973</div><div class='add'>+0x452F = 0x6696</div><div class='add'>+0x4530 = 0x8650</div><div class='add'>+0x4531 = 0x7627</div><div class='add'>+0x4532 = 0x632A</div><div class='add'>+0x4533 = 0x61E6</div><div class='add'>+0x4534 = 0x7CEF</div><div class='add'>+0x4535 = 0x8AFE</div><div class='add'>+0x4536 = 0x54E6</div><div class='add'>+0x4537 = 0x6B50</div><div class='add'>+0x4538 = 0x9DD7</div><div class='add'>+0x4539 = 0x6BC6</div><div class='add'>+0x453A = 0x85D5</div><div class='add'>+0x453B = 0x5614</div><div class='add'>+0x453C = 0x5076</div><div class='add'>+0x453D = 0x6F1A</div><div class='add'>+0x453E = 0x556A</div><div class='add'>+0x453F = 0x8DB4</div><div class='add'>+0x4540 = 0x722C</div><div class='add'>+0x4541 = 0x5E15</div><div class='add'>+0x4542 = 0x6015</div><div class='add'>+0x4543 = 0x7436</div><div class='add'>+0x4544 = 0x62CD</div><div class='add'>+0x4545 = 0x6392</div><div class='add'>+0x4546 = 0x724C</div><div class='add'>+0x4547 = 0x5F98</div><div class='add'>+0x4548 = 0x6E43</div><div class='add'>+0x4549 = 0x6D3E</div><div class='add'>+0x454A = 0x6500</div><div class='add'>+0x454B = 0x6F58</div><div class='add'>+0x454C = 0x76E4</div><div class='add'>+0x454D = 0x78D0</div><div class='add'>+0x454E = 0x76FC</div><div class='add'>+0x454F = 0x7554</div><div class='add'>+0x4550 = 0x5224</div><div class='add'>+0x4551 = 0x53DB</div><div class='add'>+0x4552 = 0x4E53</div><div class='add'>+0x4553 = 0x9F90</div><div class='add'>+0x4554 = 0x65C1</div><div class='add'>+0x4555 = 0x802A</div><div class='add'>+0x4556 = 0x80D6</div><div class='add'>+0x4557 = 0x629B</div><div class='add'>+0x4558 = 0x5486</div><div class='add'>+0x4559 = 0x5228</div><div class='add'>+0x455A = 0x70AE</div><div class='add'>+0x455B = 0x888D</div><div class='add'>+0x455C = 0x8DD1</div><div class='add'>+0x455D = 0x6CE1</div><div class='add'>+0x455E = 0x5478</div><div class='add'>+0x455F = 0x80DA</div><div class='add'>+0x4560 = 0x57F9</div><div class='add'>+0x4561 = 0x88F4</div><div class='add'>+0x4562 = 0x8CE0</div><div class='add'>+0x4563 = 0x966A</div><div class='add'>+0x4564 = 0x914D</div><div class='add'>+0x4565 = 0x4F69</div><div class='add'>+0x4566 = 0x6C9B</div><div class='add'>+0x4567 = 0x5674</div><div class='add'>+0x4568 = 0x76C6</div><div class='add'>+0x4569 = 0x7830</div><div class='add'>+0x456A = 0x62A8</div><div class='add'>+0x456B = 0x70F9</div><div class='add'>+0x456C = 0x6F8E</div><div class='add'>+0x456D = 0x5F6D</div><div class='add'>+0x456E = 0x84EC</div><div class='add'>+0x456F = 0x68DA</div><div class='add'>+0x4570 = 0x787C</div><div class='add'>+0x4571 = 0x7BF7</div><div class='add'>+0x4572 = 0x81A8</div><div class='add'>+0x4573 = 0x670B</div><div class='add'>+0x4574 = 0x9D6C</div><div class='add'>+0x4575 = 0x6367</div><div class='add'>+0x4576 = 0x78B0</div><div class='add'>+0x4577 = 0x576F</div><div class='add'>+0x4578 = 0x7812</div><div class='add'>+0x4579 = 0x9739</div><div class='add'>+0x457A = 0x6279</div><div class='add'>+0x457B = 0x62AB</div><div class='add'>+0x457C = 0x5288</div><div class='add'>+0x457D = 0x7435</div><div class='add'>+0x457E = 0x6BD7</div><div class='add'>+0x4621 = 0x5564</div><div class='add'>+0x4622 = 0x813E</div><div class='add'>+0x4623 = 0x75B2</div><div class='add'>+0x4624 = 0x76AE</div><div class='add'>+0x4625 = 0x5339</div><div class='add'>+0x4626 = 0x75DE</div><div class='add'>+0x4627 = 0x50FB</div><div class='add'>+0x4628 = 0x5C41</div><div class='add'>+0x4629 = 0x8B6C</div><div class='add'>+0x462A = 0x7BC7</div><div class='add'>+0x462B = 0x504F</div><div class='add'>+0x462C = 0x7247</div><div class='add'>+0x462D = 0x9A19</div><div class='add'>+0x462E = 0x98C4</div><div class='add'>+0x462F = 0x6F02</div><div class='add'>+0x4630 = 0x74E2</div><div class='add'>+0x4631 = 0x7968</div><div class='add'>+0x4632 = 0x6487</div><div class='add'>+0x4633 = 0x77A5</div><div class='add'>+0x4634 = 0x62FC</div><div class='add'>+0x4635 = 0x983B</div><div class='add'>+0x4636 = 0x8CA7</div><div class='add'>+0x4637 = 0x54C1</div><div class='add'>+0x4638 = 0x8058</div><div class='add'>+0x4639 = 0x4E52</div><div class='add'>+0x463A = 0x576A</div><div class='add'>+0x463B = 0x860B</div><div class='add'>+0x463C = 0x840D</div><div class='add'>+0x463D = 0x5E73</div><div class='add'>+0x463E = 0x6191</div><div class='add'>+0x463F = 0x74F6</div><div class='add'>+0x4640 = 0x8A55</div><div class='add'>+0x4641 = 0x5C4F</div><div class='add'>+0x4642 = 0x5761</div><div class='add'>+0x4643 = 0x6F51</div><div class='add'>+0x4644 = 0x9817</div><div class='add'>+0x4645 = 0x5A46</div><div class='add'>+0x4646 = 0x7834</div><div class='add'>+0x4647 = 0x9B44</div><div class='add'>+0x4648 = 0x8FEB</div><div class='add'>+0x4649 = 0x7C95</div><div class='add'>+0x464A = 0x5256</div><div class='add'>+0x464B = 0x64B2</div><div class='add'>+0x464C = 0x92EA</div><div class='add'>+0x464D = 0x50D5</div><div class='add'>+0x464E = 0x8386</div><div class='add'>+0x464F = 0x8461</div><div class='add'>+0x4650 = 0x83E9</div><div class='add'>+0x4651 = 0x84B2</div><div class='add'>+0x4652 = 0x57D4</div><div class='add'>+0x4653 = 0x6A38</div><div class='add'>+0x4654 = 0x5703</div><div class='add'>+0x4655 = 0x666E</div><div class='add'>+0x4656 = 0x6D66</div><div class='add'>+0x4657 = 0x8B5C</div><div class='add'>+0x4658 = 0x66DD</div><div class='add'>+0x4659 = 0x7011</div><div class='add'>+0x465A = 0x671F</div><div class='add'>+0x465B = 0x6B3A</div><div class='add'>+0x465C = 0x68F2</div><div class='add'>+0x465D = 0x621A</div><div class='add'>+0x465E = 0x59BB</div><div class='add'>+0x465F = 0x4E03</div><div class='add'>+0x4660 = 0x51C4</div><div class='add'>+0x4661 = 0x6F06</div><div class='add'>+0x4662 = 0x67D2</div><div class='add'>+0x4663 = 0x6C8F</div><div class='add'>+0x4664 = 0x5176</div><div class='add'>+0x4665 = 0x68CB</div><div class='add'>+0x4666 = 0x5947</div><div class='add'>+0x4667 = 0x6B67</div><div class='add'>+0x4668 = 0x7566</div><div class='add'>+0x4669 = 0x5D0E</div><div class='add'>+0x466A = 0x81CD</div><div class='add'>+0x466B = 0x9F4A</div><div class='add'>+0x466C = 0x65D7</div><div class='add'>+0x466D = 0x7948</div><div class='add'>+0x466E = 0x7941</div><div class='add'>+0x466F = 0x9A0E</div><div class='add'>+0x4670 = 0x8D77</div><div class='add'>+0x4671 = 0x8C48</div><div class='add'>+0x4672 = 0x4E5E</div><div class='add'>+0x4673 = 0x4F01</div><div class='add'>+0x4674 = 0x5553</div><div class='add'>+0x4675 = 0x5951</div><div class='add'>+0x4676 = 0x780C</div><div class='add'>+0x4677 = 0x5668</div><div class='add'>+0x4678 = 0x6C23</div><div class='add'>+0x4679 = 0x8FC4</div><div class='add'>+0x467A = 0x68C4</div><div class='add'>+0x467B = 0x6C7D</div><div class='add'>+0x467C = 0x6CE3</div><div class='add'>+0x467D = 0x8A16</div><div class='add'>+0x467E = 0x6390</div><div class='add'>+0x4721 = 0x6070</div><div class='add'>+0x4722 = 0x6D3D</div><div class='add'>+0x4723 = 0x727D</div><div class='add'>+0x4724 = 0x6266</div><div class='add'>+0x4725 = 0x91FA</div><div class='add'>+0x4726 = 0x925B</div><div class='add'>+0x4727 = 0x5343</div><div class='add'>+0x4728 = 0x9077</div><div class='add'>+0x4729 = 0x7C3D</div><div class='add'>+0x472A = 0x4EDF</div><div class='add'>+0x472B = 0x8B19</div><div class='add'>+0x472C = 0x4E7E</div><div class='add'>+0x472D = 0x9ED4</div><div class='add'>+0x472E = 0x9322</div><div class='add'>+0x472F = 0x9257</div><div class='add'>+0x4730 = 0x524D</div><div class='add'>+0x4731 = 0x6F5B</div><div class='add'>+0x4732 = 0x9063</div><div class='add'>+0x4733 = 0x6DFA</div><div class='add'>+0x4734 = 0x8B74</div><div class='add'>+0x4735 = 0x5879</div><div class='add'>+0x4736 = 0x5D4C</div><div class='add'>+0x4737 = 0x6B20</div><div class='add'>+0x4738 = 0x6B49</div><div class='add'>+0x4739 = 0x69CD</div><div class='add'>+0x473A = 0x55C6</div><div class='add'>+0x473B = 0x8154</div><div class='add'>+0x473C = 0x7F8C</div><div class='add'>+0x473D = 0x58BB</div><div class='add'>+0x473E = 0x8594</div><div class='add'>+0x473F = 0x5F3A</div><div class='add'>+0x4740 = 0x6436</div><div class='add'>+0x4741 = 0x6A47</div><div class='add'>+0x4742 = 0x936C</div><div class='add'>+0x4743 = 0x6572</div><div class='add'>+0x4744 = 0x6084</div><div class='add'>+0x4745 = 0x6A4B</div><div class='add'>+0x4746 = 0x77A7</div><div class='add'>+0x4747 = 0x55AC</div><div class='add'>+0x4748 = 0x50D1</div><div class='add'>+0x4749 = 0x5DE7</div><div class='add'>+0x474A = 0x9798</div><div class='add'>+0x474B = 0x64AC</div><div class='add'>+0x474C = 0x7FF9</div><div class='add'>+0x474D = 0x5CED</div><div class='add'>+0x474E = 0x4FCF</div><div class='add'>+0x474F = 0x7AC5</div><div class='add'>+0x4750 = 0x5207</div><div class='add'>+0x4751 = 0x8304</div><div class='add'>+0x4752 = 0x4E14</div><div class='add'>+0x4753 = 0x602F</div><div class='add'>+0x4754 = 0x7ACA</div><div class='add'>+0x4755 = 0x6B3D</div><div class='add'>+0x4756 = 0x4FB5</div><div class='add'>+0x4757 = 0x89AA</div><div class='add'>+0x4758 = 0x79E6</div><div class='add'>+0x4759 = 0x7434</div><div class='add'>+0x475A = 0x52E4</div><div class='add'>+0x475B = 0x82B9</div><div class='add'>+0x475C = 0x64D2</div><div class='add'>+0x475D = 0x79BD</div><div class='add'>+0x475E = 0x5BE2</div><div class='add'>+0x475F = 0x6C81</div><div class='add'>+0x4760 = 0x9752</div><div class='add'>+0x4761 = 0x8F15</div><div class='add'>+0x4762 = 0x6C2B</div><div class='add'>+0x4763 = 0x50BE</div><div class='add'>+0x4764 = 0x537F</div><div class='add'>+0x4765 = 0x6E05</div><div class='add'>+0x4766 = 0x64CE</div><div class='add'>+0x4767 = 0x6674</div><div class='add'>+0x4768 = 0x6C30</div><div class='add'>+0x4769 = 0x60C5</div><div class='add'>+0x476A = 0x9803</div><div class='add'>+0x476B = 0x8ACB</div><div class='add'>+0x476C = 0x6176</div><div class='add'>+0x476D = 0x74CA</div><div class='add'>+0x476E = 0x7AAE</div><div class='add'>+0x476F = 0x79CB</div><div class='add'>+0x4770 = 0x4E18</div><div class='add'>+0x4771 = 0x90B1</div><div class='add'>+0x4772 = 0x7403</div><div class='add'>+0x4773 = 0x6C42</div><div class='add'>+0x4774 = 0x56DA</div><div class='add'>+0x4775 = 0x914B</div><div class='add'>+0x4776 = 0x6CC5</div><div class='add'>+0x4777 = 0x8DA8</div><div class='add'>+0x4778 = 0x5340</div><div class='add'>+0x4779 = 0x86C6</div><div class='add'>+0x477A = 0x66F2</div><div class='add'>+0x477B = 0x8EC0</div><div class='add'>+0x477C = 0x5C48</div><div class='add'>+0x477D = 0x9A45</div><div class='add'>+0x477E = 0x6E20</div><div class='add'>+0x4821 = 0x53D6</div><div class='add'>+0x4822 = 0x5A36</div><div class='add'>+0x4823 = 0x9F72</div><div class='add'>+0x4824 = 0x8DA3</div><div class='add'>+0x4825 = 0x53BB</div><div class='add'>+0x4826 = 0x5708</div><div class='add'>+0x4827 = 0x9874</div><div class='add'>+0x4828 = 0x6B0A</div><div class='add'>+0x4829 = 0x919B</div><div class='add'>+0x482A = 0x6CC9</div><div class='add'>+0x482B = 0x5168</div><div class='add'>+0x482C = 0x75CA</div><div class='add'>+0x482D = 0x62F3</div><div class='add'>+0x482E = 0x72AC</div><div class='add'>+0x482F = 0x5238</div><div class='add'>+0x4830 = 0x52F8</div><div class='add'>+0x4831 = 0x7F3A</div><div class='add'>+0x4832 = 0x7094</div><div class='add'>+0x4833 = 0x7638</div><div class='add'>+0x4834 = 0x5374</div><div class='add'>+0x4835 = 0x9D72</div><div class='add'>+0x4836 = 0x69B7</div><div class='add'>+0x4837 = 0x78BA</div><div class='add'>+0x4838 = 0x96C0</div><div class='add'>+0x4839 = 0x88D9</div><div class='add'>+0x483A = 0x7FA4</div><div class='add'>+0x483B = 0x7136</div><div class='add'>+0x483C = 0x71C3</div><div class='add'>+0x483D = 0x5189</div><div class='add'>+0x483E = 0x67D3</div><div class='add'>+0x483F = 0x74E4</div><div class='add'>+0x4840 = 0x58E4</div><div class='add'>+0x4841 = 0x6518</div><div class='add'>+0x4842 = 0x56B7</div><div class='add'>+0x4843 = 0x8B93</div><div class='add'>+0x4844 = 0x9952</div><div class='add'>+0x4845 = 0x64FE</div><div class='add'>+0x4846 = 0x7E5E</div><div class='add'>+0x4847 = 0x60F9</div><div class='add'>+0x4848 = 0x71B1</div><div class='add'>+0x4849 = 0x58EC</div><div class='add'>+0x484A = 0x4EC1</div><div class='add'>+0x484B = 0x4EBA</div><div class='add'>+0x484C = 0x5FCD</div><div class='add'>+0x484D = 0x97CC</div><div class='add'>+0x484E = 0x4EFB</div><div class='add'>+0x484F = 0x8A8D</div><div class='add'>+0x4850 = 0x5203</div><div class='add'>+0x4851 = 0x598A</div><div class='add'>+0x4852 = 0x7D09</div><div class='add'>+0x4853 = 0x6254</div><div class='add'>+0x4854 = 0x4ECD</div><div class='add'>+0x4855 = 0x65E5</div><div class='add'>+0x4856 = 0x620E</div><div class='add'>+0x4857 = 0x8338</div><div class='add'>+0x4858 = 0x84C9</div><div class='add'>+0x4859 = 0x69AE</div><div class='add'>+0x485A = 0x878D</div><div class='add'>+0x485B = 0x7194</div><div class='add'>+0x485C = 0x6EB6</div><div class='add'>+0x485D = 0x5BB9</div><div class='add'>+0x485E = 0x7D68</div><div class='add'>+0x485F = 0x5197</div><div class='add'>+0x4860 = 0x63C9</div><div class='add'>+0x4861 = 0x67D4</div><div class='add'>+0x4862 = 0x8089</div><div class='add'>+0x4863 = 0x8339</div><div class='add'>+0x4864 = 0x8815</div><div class='add'>+0x4865 = 0x5112</div><div class='add'>+0x4866 = 0x5B7A</div><div class='add'>+0x4867 = 0x5982</div><div class='add'>+0x4868 = 0x8FB1</div><div class='add'>+0x4869 = 0x4E73</div><div class='add'>+0x486A = 0x6C5D</div><div class='add'>+0x486B = 0x5165</div><div class='add'>+0x486C = 0x8925</div><div class='add'>+0x486D = 0x8EDF</div><div class='add'>+0x486E = 0x962E</div><div class='add'>+0x486F = 0x854A</div><div class='add'>+0x4870 = 0x745E</div><div class='add'>+0x4871 = 0x92ED</div><div class='add'>+0x4872 = 0x958F</div><div class='add'>+0x4873 = 0x6F64</div><div class='add'>+0x4874 = 0x82E5</div><div class='add'>+0x4875 = 0x5F31</div><div class='add'>+0x4876 = 0x6492</div><div class='add'>+0x4877 = 0x7051</div><div class='add'>+0x4878 = 0x85A9</div><div class='add'>+0x4879 = 0x816E</div><div class='add'>+0x487A = 0x9C13</div><div class='add'>+0x487B = 0x585E</div><div class='add'>+0x487C = 0x8CFD</div><div class='add'>+0x487D = 0x4E09</div><div class='add'>+0x487E = 0x53C1</div><div class='add'>+0x4921 = 0x5098</div><div class='add'>+0x4922 = 0x6563</div><div class='add'>+0x4923 = 0x6851</div><div class='add'>+0x4924 = 0x55D3</div><div class='add'>+0x4925 = 0x55AA</div><div class='add'>+0x4926 = 0x6414</div><div class='add'>+0x4927 = 0x9A37</div><div class='add'>+0x4928 = 0x6383</div><div class='add'>+0x4929 = 0x5AC2</div><div class='add'>+0x492A = 0x745F</div><div class='add'>+0x492B = 0x8272</div><div class='add'>+0x492C = 0x6F80</div><div class='add'>+0x492D = 0x68EE</div><div class='add'>+0x492E = 0x50E7</div><div class='add'>+0x492F = 0x838E</div><div class='add'>+0x4930 = 0x7802</div><div class='add'>+0x4931 = 0x6BBA</div><div class='add'>+0x4932 = 0x5239</div><div class='add'>+0x4933 = 0x6C99</div><div class='add'>+0x4934 = 0x7D17</div><div class='add'>+0x4935 = 0x50BB</div><div class='add'>+0x4936 = 0x5565</div><div class='add'>+0x4937 = 0x715E</div><div class='add'>+0x4938 = 0x7BE9</div><div class='add'>+0x4939 = 0x66EC</div><div class='add'>+0x493A = 0x73CA</div><div class='add'>+0x493B = 0x82EB</div><div class='add'>+0x493C = 0x6749</div><div class='add'>+0x493D = 0x5C71</div><div class='add'>+0x493E = 0x5220</div><div class='add'>+0x493F = 0x717D</div><div class='add'>+0x4940 = 0x886B</div><div class='add'>+0x4941 = 0x9583</div><div class='add'>+0x4942 = 0x965D</div><div class='add'>+0x4943 = 0x64C5</div><div class='add'>+0x4944 = 0x8D0D</div><div class='add'>+0x4945 = 0x81B3</div><div class='add'>+0x4946 = 0x5584</div><div class='add'>+0x4947 = 0x6C55</div><div class='add'>+0x4948 = 0x6247</div><div class='add'>+0x4949 = 0x7E55</div><div class='add'>+0x494A = 0x5892</div><div class='add'>+0x494B = 0x50B7</div><div class='add'>+0x494C = 0x5546</div><div class='add'>+0x494D = 0x8CDE</div><div class='add'>+0x494E = 0x664C</div><div class='add'>+0x494F = 0x4E0A</div><div class='add'>+0x4950 = 0x5C1A</div><div class='add'>+0x4951 = 0x88F3</div><div class='add'>+0x4952 = 0x68A2</div><div class='add'>+0x4953 = 0x634E</div><div class='add'>+0x4954 = 0x7A0D</div><div class='add'>+0x4955 = 0x71D2</div><div class='add'>+0x4956 = 0x828D</div><div class='add'>+0x4957 = 0x52FA</div><div class='add'>+0x4958 = 0x97F6</div><div class='add'>+0x4959 = 0x5C11</div><div class='add'>+0x495A = 0x54E8</div><div class='add'>+0x495B = 0x90B5</div><div class='add'>+0x495C = 0x7D39</div><div class='add'>+0x495D = 0x5962</div><div class='add'>+0x495E = 0x8CD2</div><div class='add'>+0x495F = 0x86C7</div><div class='add'>+0x4960 = 0x820C</div><div class='add'>+0x4961 = 0x6368</div><div class='add'>+0x4962 = 0x8D66</div><div class='add'>+0x4963 = 0x651D</div><div class='add'>+0x4964 = 0x5C04</div><div class='add'>+0x4965 = 0x61FE</div><div class='add'>+0x4966 = 0x6D89</div><div class='add'>+0x4967 = 0x793E</div><div class='add'>+0x4968 = 0x8A2D</div><div class='add'>+0x4969 = 0x7837</div><div class='add'>+0x496A = 0x7533</div><div class='add'>+0x496B = 0x547B</div><div class='add'>+0x496C = 0x4F38</div><div class='add'>+0x496D = 0x8EAB</div><div class='add'>+0x496E = 0x6DF1</div><div class='add'>+0x496F = 0x5A20</div><div class='add'>+0x4970 = 0x7D33</div><div class='add'>+0x4971 = 0x795E</div><div class='add'>+0x4972 = 0x6C88</div><div class='add'>+0x4973 = 0x5BE9</div><div class='add'>+0x4974 = 0x5B38</div><div class='add'>+0x4975 = 0x751A</div><div class='add'>+0x4976 = 0x814E</div><div class='add'>+0x4977 = 0x614E</div><div class='add'>+0x4978 = 0x6EF2</div><div class='add'>+0x4979 = 0x8072</div><div class='add'>+0x497A = 0x751F</div><div class='add'>+0x497B = 0x7525</div><div class='add'>+0x497C = 0x7272</div><div class='add'>+0x497D = 0x5347</div><div class='add'>+0x497E = 0x7E69</div><div class='add'>+0x4A21 = 0x7701</div><div class='add'>+0x4A22 = 0x76DB</div><div class='add'>+0x4A23 = 0x5269</div><div class='add'>+0x4A24 = 0x52DD</div><div class='add'>+0x4A25 = 0x8056</div><div class='add'>+0x4A26 = 0x5E2B</div><div class='add'>+0x4A27 = 0x5931</div><div class='add'>+0x4A28 = 0x7345</div><div class='add'>+0x4A29 = 0x65BD</div><div class='add'>+0x4A2A = 0x6FD5</div><div class='add'>+0x4A2B = 0x8A69</div><div class='add'>+0x4A2C = 0x5C38</div><div class='add'>+0x4A2D = 0x8671</div><div class='add'>+0x4A2E = 0x5341</div><div class='add'>+0x4A2F = 0x77F3</div><div class='add'>+0x4A30 = 0x62FE</div><div class='add'>+0x4A31 = 0x6642</div><div class='add'>+0x4A32 = 0x4EC0</div><div class='add'>+0x4A33 = 0x98DF</div><div class='add'>+0x4A34 = 0x8755</div><div class='add'>+0x4A35 = 0x5BE6</div><div class='add'>+0x4A36 = 0x8B58</div><div class='add'>+0x4A37 = 0x53F2</div><div class='add'>+0x4A38 = 0x77E2</div><div class='add'>+0x4A39 = 0x4F7F</div><div class='add'>+0x4A3A = 0x5C4E</div><div class='add'>+0x4A3B = 0x99DB</div><div class='add'>+0x4A3C = 0x59CB</div><div class='add'>+0x4A3D = 0x5F0F</div><div class='add'>+0x4A3E = 0x793A</div><div class='add'>+0x4A3F = 0x58EB</div><div class='add'>+0x4A40 = 0x4E16</div><div class='add'>+0x4A41 = 0x67FF</div><div class='add'>+0x4A42 = 0x4E8B</div><div class='add'>+0x4A43 = 0x62ED</div><div class='add'>+0x4A44 = 0x8A93</div><div class='add'>+0x4A45 = 0x901D</div><div class='add'>+0x4A46 = 0x52E2</div><div class='add'>+0x4A47 = 0x662F</div><div class='add'>+0x4A48 = 0x55DC</div><div class='add'>+0x4A49 = 0x566C</div><div class='add'>+0x4A4A = 0x9069</div><div class='add'>+0x4A4B = 0x4ED5</div><div class='add'>+0x4A4C = 0x4F8D</div><div class='add'>+0x4A4D = 0x91CB</div><div class='add'>+0x4A4E = 0x98FE</div><div class='add'>+0x4A4F = 0x6C0F</div><div class='add'>+0x4A50 = 0x5E02</div><div class='add'>+0x4A51 = 0x6043</div><div class='add'>+0x4A52 = 0x5BA4</div><div class='add'>+0x4A53 = 0x8996</div><div class='add'>+0x4A54 = 0x8A66</div><div class='add'>+0x4A55 = 0x6536</div><div class='add'>+0x4A56 = 0x624B</div><div class='add'>+0x4A57 = 0x9996</div><div class='add'>+0x4A58 = 0x5B88</div><div class='add'>+0x4A59 = 0x58FD</div><div class='add'>+0x4A5A = 0x6388</div><div class='add'>+0x4A5B = 0x552E</div><div class='add'>+0x4A5C = 0x53D7</div><div class='add'>+0x4A5D = 0x7626</div><div class='add'>+0x4A5E = 0x7378</div><div class='add'>+0x4A5F = 0x852C</div><div class='add'>+0x4A60 = 0x6A1E</div><div class='add'>+0x4A61 = 0x68B3</div><div class='add'>+0x4A62 = 0x6B8A</div><div class='add'>+0x4A63 = 0x6292</div><div class='add'>+0x4A64 = 0x8F38</div><div class='add'>+0x4A65 = 0x53D4</div><div class='add'>+0x4A66 = 0x8212</div><div class='add'>+0x4A67 = 0x6DD1</div><div class='add'>+0x4A68 = 0x758F</div><div class='add'>+0x4A69 = 0x66F8</div><div class='add'>+0x4A6A = 0x8D16</div><div class='add'>+0x4A6B = 0x5B70</div><div class='add'>+0x4A6C = 0x719F</div><div class='add'>+0x4A6D = 0x85AF</div><div class='add'>+0x4A6E = 0x6691</div><div class='add'>+0x4A6F = 0x66D9</div><div class='add'>+0x4A70 = 0x7F72</div><div class='add'>+0x4A71 = 0x8700</div><div class='add'>+0x4A72 = 0x9ECD</div><div class='add'>+0x4A73 = 0x9F20</div><div class='add'>+0x4A74 = 0x5C6C</div><div class='add'>+0x4A75 = 0x8853</div><div class='add'>+0x4A76 = 0x8FF0</div><div class='add'>+0x4A77 = 0x6A39</div><div class='add'>+0x4A78 = 0x675F</div><div class='add'>+0x4A79 = 0x620D</div><div class='add'>+0x4A7A = 0x7AEA</div><div class='add'>+0x4A7B = 0x5885</div><div class='add'>+0x4A7C = 0x5EB6</div><div class='add'>+0x4A7D = 0x6578</div><div class='add'>+0x4A7E = 0x6F31</div><div class='add'>+0x4B21 = 0x6055</div><div class='add'>+0x4B22 = 0x5237</div><div class='add'>+0x4B23 = 0x800D</div><div class='add'>+0x4B24 = 0x6454</div><div class='add'>+0x4B25 = 0x8870</div><div class='add'>+0x4B26 = 0x7529</div><div class='add'>+0x4B27 = 0x5E25</div><div class='add'>+0x4B28 = 0x6813</div><div class='add'>+0x4B29 = 0x62F4</div><div class='add'>+0x4B2A = 0x971C</div><div class='add'>+0x4B2B = 0x96D9</div><div class='add'>+0x4B2C = 0x723D</div><div class='add'>+0x4B2D = 0x8AB0</div><div class='add'>+0x4B2E = 0x6C34</div><div class='add'>+0x4B2F = 0x7761</div><div class='add'>+0x4B30 = 0x7A0E</div><div class='add'>+0x4B31 = 0x542E</div><div class='add'>+0x4B32 = 0x77AC</div><div class='add'>+0x4B33 = 0x9806</div><div class='add'>+0x4B34 = 0x821C</div><div class='add'>+0x4B35 = 0x8AAC</div><div class='add'>+0x4B36 = 0x78A9</div><div class='add'>+0x4B37 = 0x6714</div><div class='add'>+0x4B38 = 0x720D</div><div class='add'>+0x4B39 = 0x65AF</div><div class='add'>+0x4B3A = 0x6495</div><div class='add'>+0x4B3B = 0x5636</div><div class='add'>+0x4B3C = 0x601D</div><div class='add'>+0x4B3D = 0x79C1</div><div class='add'>+0x4B3E = 0x53F8</div><div class='add'>+0x4B3F = 0x7D72</div><div class='add'>+0x4B40 = 0x6B7B</div><div class='add'>+0x4B41 = 0x8086</div><div class='add'>+0x4B42 = 0x5BFA</div><div class='add'>+0x4B43 = 0x55E3</div><div class='add'>+0x4B44 = 0x56DB</div><div class='add'>+0x4B45 = 0x4F3A</div><div class='add'>+0x4B46 = 0x4F3C</div><div class='add'>+0x4B47 = 0x98FC</div><div class='add'>+0x4B48 = 0x5DF3</div><div class='add'>+0x4B49 = 0x9B06</div><div class='add'>+0x4B4A = 0x8073</div><div class='add'>+0x4B4B = 0x616B</div><div class='add'>+0x4B4C = 0x980C</div><div class='add'>+0x4B4D = 0x9001</div><div class='add'>+0x4B4E = 0x5B8B</div><div class='add'>+0x4B4F = 0x8A1F</div><div class='add'>+0x4B50 = 0x8AA6</div><div class='add'>+0x4B51 = 0x641C</div><div class='add'>+0x4B52 = 0x8258</div><div class='add'>+0x4B53 = 0x64FB</div><div class='add'>+0x4B54 = 0x55FD</div><div class='add'>+0x4B55 = 0x8607</div><div class='add'>+0x4B56 = 0x9165</div><div class='add'>+0x4B57 = 0x4FD7</div><div class='add'>+0x4B58 = 0x7D20</div><div class='add'>+0x4B59 = 0x901F</div><div class='add'>+0x4B5A = 0x7C9F</div><div class='add'>+0x4B5B = 0x50F3</div><div class='add'>+0x4B5C = 0x5851</div><div class='add'>+0x4B5D = 0x6EAF</div><div class='add'>+0x4B5E = 0x5BBF</div><div class='add'>+0x4B5F = 0x8A34</div><div class='add'>+0x4B60 = 0x8085</div><div class='add'>+0x4B61 = 0x9178</div><div class='add'>+0x4B62 = 0x849C</div><div class='add'>+0x4B63 = 0x7B97</div><div class='add'>+0x4B64 = 0x96D6</div><div class='add'>+0x4B65 = 0x968B</div><div class='add'>+0x4B66 = 0x96A8</div><div class='add'>+0x4B67 = 0x7D8F</div><div class='add'>+0x4B68 = 0x9AD3</div><div class='add'>+0x4B69 = 0x788E</div><div class='add'>+0x4B6A = 0x6B72</div><div class='add'>+0x4B6B = 0x7A57</div><div class='add'>+0x4B6C = 0x9042</div><div class='add'>+0x4B6D = 0x96A7</div><div class='add'>+0x4B6E = 0x795F</div><div class='add'>+0x4B6F = 0x5B6B</div><div class='add'>+0x4B70 = 0x640D</div><div class='add'>+0x4B71 = 0x7B0B</div><div class='add'>+0x4B72 = 0x84D1</div><div class='add'>+0x4B73 = 0x68AD</div><div class='add'>+0x4B74 = 0x5506</div><div class='add'>+0x4B75 = 0x7E2E</div><div class='add'>+0x4B76 = 0x7463</div><div class='add'>+0x4B77 = 0x7D22</div><div class='add'>+0x4B78 = 0x9396</div><div class='add'>+0x4B79 = 0x6240</div><div class='add'>+0x4B7A = 0x584C</div><div class='add'>+0x4B7B = 0x4ED6</div><div class='add'>+0x4B7C = 0x5B83</div><div class='add'>+0x4B7D = 0x5979</div><div class='add'>+0x4B7E = 0x5854</div><div class='add'>+0x4C21 = 0x737A</div><div class='add'>+0x4C22 = 0x64BB</div><div class='add'>+0x4C23 = 0x8E4B</div><div class='add'>+0x4C24 = 0x8E0F</div><div class='add'>+0x4C25 = 0x80CE</div><div class='add'>+0x4C26 = 0x82D4</div><div class='add'>+0x4C27 = 0x62AC</div><div class='add'>+0x4C28 = 0x81FA</div><div class='add'>+0x4C29 = 0x6CF0</div><div class='add'>+0x4C2A = 0x915E</div><div class='add'>+0x4C2B = 0x592A</div><div class='add'>+0x4C2C = 0x614B</div><div class='add'>+0x4C2D = 0x6C70</div><div class='add'>+0x4C2E = 0x574D</div><div class='add'>+0x4C2F = 0x6524</div><div class='add'>+0x4C30 = 0x8CAA</div><div class='add'>+0x4C31 = 0x7671</div><div class='add'>+0x4C32 = 0x7058</div><div class='add'>+0x4C33 = 0x58C7</div><div class='add'>+0x4C34 = 0x6A80</div><div class='add'>+0x4C35 = 0x75F0</div><div class='add'>+0x4C36 = 0x6F6D</div><div class='add'>+0x4C37 = 0x8B5A</div><div class='add'>+0x4C38 = 0x8AC7</div><div class='add'>+0x4C39 = 0x5766</div><div class='add'>+0x4C3A = 0x6BEF</div><div class='add'>+0x4C3B = 0x8892</div><div class='add'>+0x4C3C = 0x78B3</div><div class='add'>+0x4C3D = 0x63A2</div><div class='add'>+0x4C3E = 0x5606</div><div class='add'>+0x4C3F = 0x70AD</div><div class='add'>+0x4C40 = 0x6E6F</div><div class='add'>+0x4C41 = 0x5858</div><div class='add'>+0x4C42 = 0x642A</div><div class='add'>+0x4C43 = 0x5802</div><div class='add'>+0x4C44 = 0x68E0</div><div class='add'>+0x4C45 = 0x819B</div><div class='add'>+0x4C46 = 0x5510</div><div class='add'>+0x4C47 = 0x7CD6</div><div class='add'>+0x4C48 = 0x5018</div><div class='add'>+0x4C49 = 0x8EBA</div><div class='add'>+0x4C4A = 0x6DCC</div><div class='add'>+0x4C4B = 0x8D9F</div><div class='add'>+0x4C4C = 0x71D9</div><div class='add'>+0x4C4D = 0x638F</div><div class='add'>+0x4C4E = 0x6FE4</div><div class='add'>+0x4C4F = 0x6ED4</div><div class='add'>+0x4C50 = 0x7E27</div><div class='add'>+0x4C51 = 0x8404</div><div class='add'>+0x4C52 = 0x6843</div><div class='add'>+0x4C53 = 0x9003</div><div class='add'>+0x4C54 = 0x6DD8</div><div class='add'>+0x4C55 = 0x9676</div><div class='add'>+0x4C56 = 0x8A0E</div><div class='add'>+0x4C57 = 0x5957</div><div class='add'>+0x4C58 = 0x7279</div><div class='add'>+0x4C59 = 0x85E4</div><div class='add'>+0x4C5A = 0x9A30</div><div class='add'>+0x4C5B = 0x75BC</div><div class='add'>+0x4C5C = 0x8B04</div><div class='add'>+0x4C5D = 0x68AF</div><div class='add'>+0x4C5E = 0x5254</div><div class='add'>+0x4C5F = 0x8E22</div><div class='add'>+0x4C60 = 0x92BB</div><div class='add'>+0x4C61 = 0x63D0</div><div class='add'>+0x4C62 = 0x984C</div><div class='add'>+0x4C63 = 0x8E44</div><div class='add'>+0x4C64 = 0x557C</div><div class='add'>+0x4C65 = 0x9AD4</div><div class='add'>+0x4C66 = 0x66FF</div><div class='add'>+0x4C67 = 0x568F</div><div class='add'>+0x4C68 = 0x60D5</div><div class='add'>+0x4C69 = 0x6D95</div><div class='add'>+0x4C6A = 0x5243</div><div class='add'>+0x4C6B = 0x5C49</div><div class='add'>+0x4C6C = 0x5929</div><div class='add'>+0x4C6D = 0x6DFB</div><div class='add'>+0x4C6E = 0x586B</div><div class='add'>+0x4C6F = 0x7530</div><div class='add'>+0x4C70 = 0x751C</div><div class='add'>+0x4C71 = 0x606C</div><div class='add'>+0x4C72 = 0x8214</div><div class='add'>+0x4C73 = 0x8146</div><div class='add'>+0x4C74 = 0x6311</div><div class='add'>+0x4C75 = 0x689D</div><div class='add'>+0x4C76 = 0x8FE2</div><div class='add'>+0x4C77 = 0x773A</div><div class='add'>+0x4C78 = 0x8DF3</div><div class='add'>+0x4C79 = 0x8CBC</div><div class='add'>+0x4C7A = 0x9435</div><div class='add'>+0x4C7B = 0x5E16</div><div class='add'>+0x4C7C = 0x5EF3</div><div class='add'>+0x4C7D = 0x807D</div><div class='add'>+0x4C7E = 0x70F4</div><div class='add'>+0x4D21 = 0x6C40</div><div class='add'>+0x4D22 = 0x5EF7</div><div class='add'>+0x4D23 = 0x505C</div><div class='add'>+0x4D24 = 0x4EAD</div><div class='add'>+0x4D25 = 0x5EAD</div><div class='add'>+0x4D26 = 0x633A</div><div class='add'>+0x4D27 = 0x8247</div><div class='add'>+0x4D28 = 0x901A</div><div class='add'>+0x4D29 = 0x6850</div><div class='add'>+0x4D2A = 0x916E</div><div class='add'>+0x4D2B = 0x77B3</div><div class='add'>+0x4D2C = 0x540C</div><div class='add'>+0x4D2D = 0x9285</div><div class='add'>+0x4D2E = 0x5F64</div><div class='add'>+0x4D2F = 0x7AE5</div><div class='add'>+0x4D30 = 0x6876</div><div class='add'>+0x4D31 = 0x6345</div><div class='add'>+0x4D32 = 0x7B52</div><div class='add'>+0x4D33 = 0x7D71</div><div class='add'>+0x4D34 = 0x75DB</div><div class='add'>+0x4D35 = 0x5077</div><div class='add'>+0x4D36 = 0x6295</div><div class='add'>+0x4D37 = 0x982D</div><div class='add'>+0x4D38 = 0x900F</div><div class='add'>+0x4D39 = 0x51F8</div><div class='add'>+0x4D3A = 0x79C3</div><div class='add'>+0x4D3B = 0x7A81</div><div class='add'>+0x4D3C = 0x5716</div><div class='add'>+0x4D3D = 0x5F92</div><div class='add'>+0x4D3E = 0x9014</div><div class='add'>+0x4D3F = 0x5857</div><div class='add'>+0x4D40 = 0x5C60</div><div class='add'>+0x4D41 = 0x571F</div><div class='add'>+0x4D42 = 0x5410</div><div class='add'>+0x4D43 = 0x5154</div><div class='add'>+0x4D44 = 0x6E4D</div><div class='add'>+0x4D45 = 0x5718</div><div class='add'>+0x4D46 = 0x63A8</div><div class='add'>+0x4D47 = 0x983D</div><div class='add'>+0x4D48 = 0x817F</div><div class='add'>+0x4D49 = 0x8715</div><div class='add'>+0x4D4A = 0x892A</div><div class='add'>+0x4D4B = 0x9000</div><div class='add'>+0x4D4C = 0x541E</div><div class='add'>+0x4D4D = 0x5C6F</div><div class='add'>+0x4D4E = 0x81C0</div><div class='add'>+0x4D4F = 0x62D6</div><div class='add'>+0x4D50 = 0x6258</div><div class='add'>+0x4D51 = 0x8131</div><div class='add'>+0x4D52 = 0x9D15</div><div class='add'>+0x4D53 = 0x9640</div><div class='add'>+0x4D54 = 0x99B1</div><div class='add'>+0x4D55 = 0x99DD</div><div class='add'>+0x4D56 = 0x6A62</div><div class='add'>+0x4D57 = 0x59A5</div><div class='add'>+0x4D58 = 0x62D3</div><div class='add'>+0x4D59 = 0x553E</div><div class='add'>+0x4D5A = 0x6316</div><div class='add'>+0x4D5B = 0x54C7</div><div class='add'>+0x4D5C = 0x86D9</div><div class='add'>+0x4D5D = 0x7AAA</div><div class='add'>+0x4D5E = 0x5A03</div><div class='add'>+0x4D5F = 0x74E6</div><div class='add'>+0x4D60 = 0x896A</div><div class='add'>+0x4D61 = 0x6B6A</div><div class='add'>+0x4D62 = 0x5916</div><div class='add'>+0x4D63 = 0x8C4C</div><div class='add'>+0x4D64 = 0x5F4E</div><div class='add'>+0x4D65 = 0x7063</div><div class='add'>+0x4D66 = 0x73A9</div><div class='add'>+0x4D67 = 0x9811</div><div class='add'>+0x4D68 = 0x4E38</div><div class='add'>+0x4D69 = 0x70F7</div><div class='add'>+0x4D6A = 0x5B8C</div><div class='add'>+0x4D6B = 0x7897</div><div class='add'>+0x4D6C = 0x633D</div><div class='add'>+0x4D6D = 0x665A</div><div class='add'>+0x4D6E = 0x7696</div><div class='add'>+0x4D6F = 0x60CB</div><div class='add'>+0x4D70 = 0x5B9B</div><div class='add'>+0x4D71 = 0x5A49</div><div class='add'>+0x4D72 = 0x842C</div><div class='add'>+0x4D73 = 0x8155</div><div class='add'>+0x4D74 = 0x6C6A</div><div class='add'>+0x4D75 = 0x738B</div><div class='add'>+0x4D76 = 0x4EA1</div><div class='add'>+0x4D77 = 0x6789</div><div class='add'>+0x4D78 = 0x7DB2</div><div class='add'>+0x4D79 = 0x5F80</div><div class='add'>+0x4D7A = 0x65FA</div><div class='add'>+0x4D7B = 0x671B</div><div class='add'>+0x4D7C = 0x5FD8</div><div class='add'>+0x4D7D = 0x5984</div><div class='add'>+0x4D7E = 0x5A01</div><div class='add'>+0x4E21 = 0x5DCD</div><div class='add'>+0x4E22 = 0x5FAE</div><div class='add'>+0x4E23 = 0x5371</div><div class='add'>+0x4E24 = 0x97CB</div><div class='add'>+0x4E25 = 0x9055</div><div class='add'>+0x4E26 = 0x6845</div><div class='add'>+0x4E27 = 0x570D</div><div class='add'>+0x4E28 = 0x552F</div><div class='add'>+0x4E29 = 0x60DF</div><div class='add'>+0x4E2A = 0x7232</div><div class='add'>+0x4E2B = 0x6FF0</div><div class='add'>+0x4E2C = 0x7DAD</div><div class='add'>+0x4E2D = 0x8466</div><div class='add'>+0x4E2E = 0x840E</div><div class='add'>+0x4E2F = 0x59D4</div><div class='add'>+0x4E30 = 0x5049</div><div class='add'>+0x4E31 = 0x50DE</div><div class='add'>+0x4E32 = 0x5C3E</div><div class='add'>+0x4E33 = 0x7DEF</div><div class='add'>+0x4E34 = 0x672A</div><div class='add'>+0x4E35 = 0x851A</div><div class='add'>+0x4E36 = 0x5473</div><div class='add'>+0x4E37 = 0x754F</div><div class='add'>+0x4E38 = 0x80C3</div><div class='add'>+0x4E39 = 0x5582</div><div class='add'>+0x4E3A = 0x9B4F</div><div class='add'>+0x4E3B = 0x4F4D</div><div class='add'>+0x4E3C = 0x6E2D</div><div class='add'>+0x4E3D = 0x8B02</div><div class='add'>+0x4E3E = 0x5C09</div><div class='add'>+0x4E3F = 0x6170</div><div class='add'>+0x4E40 = 0x885B</div><div class='add'>+0x4E41 = 0x761F</div><div class='add'>+0x4E42 = 0x6E29</div><div class='add'>+0x4E43 = 0x868A</div><div class='add'>+0x4E44 = 0x6587</div><div class='add'>+0x4E45 = 0x805E</div><div class='add'>+0x4E46 = 0x7D0B</div><div class='add'>+0x4E47 = 0x543B</div><div class='add'>+0x4E48 = 0x7A69</div><div class='add'>+0x4E49 = 0x7D0A</div><div class='add'>+0x4E4A = 0x554F</div><div class='add'>+0x4E4B = 0x55E1</div><div class='add'>+0x4E4C = 0x7FC1</div><div class='add'>+0x4E4D = 0x74EE</div><div class='add'>+0x4E4E = 0x64BE</div><div class='add'>+0x4E4F = 0x8778</div><div class='add'>+0x4E50 = 0x6E26</div><div class='add'>+0x4E51 = 0x7AA9</div><div class='add'>+0x4E52 = 0x6211</div><div class='add'>+0x4E53 = 0x65A1</div><div class='add'>+0x4E54 = 0x5367</div><div class='add'>+0x4E55 = 0x63E1</div><div class='add'>+0x4E56 = 0x6C83</div><div class='add'>+0x4E57 = 0x5DEB</div><div class='add'>+0x4E58 = 0x55DA</div><div class='add'>+0x4E59 = 0x93A2</div><div class='add'>+0x4E5A = 0x70CF</div><div class='add'>+0x4E5B = 0x6C61</div><div class='add'>+0x4E5C = 0x8AA3</div><div class='add'>+0x4E5D = 0x5C4B</div><div class='add'>+0x4E5E = 0x7121</div><div class='add'>+0x4E5F = 0x856A</div><div class='add'>+0x4E60 = 0x68A7</div><div class='add'>+0x4E61 = 0x543E</div><div class='add'>+0x4E62 = 0x5434</div><div class='add'>+0x4E63 = 0x6BCB</div><div class='add'>+0x4E64 = 0x6B66</div><div class='add'>+0x4E65 = 0x4E94</div><div class='add'>+0x4E66 = 0x6342</div><div class='add'>+0x4E67 = 0x5348</div><div class='add'>+0x4E68 = 0x821E</div><div class='add'>+0x4E69 = 0x4F0D</div><div class='add'>+0x4E6A = 0x4FAE</div><div class='add'>+0x4E6B = 0x5862</div><div class='add'>+0x4E6C = 0x620A</div><div class='add'>+0x4E6D = 0x9727</div><div class='add'>+0x4E6E = 0x6664</div><div class='add'>+0x4E6F = 0x7269</div><div class='add'>+0x4E70 = 0x52FF</div><div class='add'>+0x4E71 = 0x52D9</div><div class='add'>+0x4E72 = 0x609F</div><div class='add'>+0x4E73 = 0x8AA4</div><div class='add'>+0x4E74 = 0x6614</div><div class='add'>+0x4E75 = 0x7199</div><div class='add'>+0x4E76 = 0x6790</div><div class='add'>+0x4E77 = 0x897F</div><div class='add'>+0x4E78 = 0x7852</div><div class='add'>+0x4E79 = 0x77FD</div><div class='add'>+0x4E7A = 0x6670</div><div class='add'>+0x4E7B = 0x563B</div><div class='add'>+0x4E7C = 0x5438</div><div class='add'>+0x4E7D = 0x932B</div><div class='add'>+0x4E7E = 0x72A7</div><div class='add'>+0x4F21 = 0x7A00</div><div class='add'>+0x4F22 = 0x606F</div><div class='add'>+0x4F23 = 0x5E0C</div><div class='add'>+0x4F24 = 0x6089</div><div class='add'>+0x4F25 = 0x819D</div><div class='add'>+0x4F26 = 0x5915</div><div class='add'>+0x4F27 = 0x60DC</div><div class='add'>+0x4F28 = 0x7184</div><div class='add'>+0x4F29 = 0x70EF</div><div class='add'>+0x4F2A = 0x6EAA</div><div class='add'>+0x4F2B = 0x6C50</div><div class='add'>+0x4F2C = 0x7280</div><div class='add'>+0x4F2D = 0x6A84</div><div class='add'>+0x4F2E = 0x8972</div><div class='add'>+0x4F2F = 0x5E2D</div><div class='add'>+0x4F30 = 0x7FD2</div><div class='add'>+0x4F31 = 0x5AB3</div><div class='add'>+0x4F32 = 0x559C</div><div class='add'>+0x4F33 = 0x9291</div><div class='add'>+0x4F34 = 0x6D17</div><div class='add'>+0x4F35 = 0x7CFB</div><div class='add'>+0x4F36 = 0x9699</div><div class='add'>+0x4F37 = 0x6232</div><div class='add'>+0x4F38 = 0x7D30</div><div class='add'>+0x4F39 = 0x778E</div><div class='add'>+0x4F3A = 0x8766</div><div class='add'>+0x4F3B = 0x5323</div><div class='add'>+0x4F3C = 0x971E</div><div class='add'>+0x4F3D = 0x8F44</div><div class='add'>+0x4F3E = 0x6687</div><div class='add'>+0x4F3F = 0x5CFD</div><div class='add'>+0x4F40 = 0x4FE0</div><div class='add'>+0x4F41 = 0x72F9</div><div class='add'>+0x4F42 = 0x4E0B</div><div class='add'>+0x4F43 = 0x53A6</div><div class='add'>+0x4F44 = 0x590F</div><div class='add'>+0x4F45 = 0x5687</div><div class='add'>+0x4F46 = 0x6380</div><div class='add'>+0x4F47 = 0x9341</div><div class='add'>+0x4F48 = 0x5148</div><div class='add'>+0x4F49 = 0x4ED9</div><div class='add'>+0x4F4A = 0x9BAE</div><div class='add'>+0x4F4B = 0x7E96</div><div class='add'>+0x4F4C = 0x54B8</div><div class='add'>+0x4F4D = 0x8CE2</div><div class='add'>+0x4F4E = 0x929C</div><div class='add'>+0x4F4F = 0x8237</div><div class='add'>+0x4F50 = 0x9591</div><div class='add'>+0x4F51 = 0x6D8E</div><div class='add'>+0x4F52 = 0x5F26</div><div class='add'>+0x4F53 = 0x5ACC</div><div class='add'>+0x4F54 = 0x986F</div><div class='add'>+0x4F55 = 0x96AA</div><div class='add'>+0x4F56 = 0x73FE</div><div class='add'>+0x4F57 = 0x737B</div><div class='add'>+0x4F58 = 0x7E23</div><div class='add'>+0x4F59 = 0x817A</div><div class='add'>+0x4F5A = 0x9921</div><div class='add'>+0x4F5B = 0x7FA1</div><div class='add'>+0x4F5C = 0x61B2</div><div class='add'>+0x4F5D = 0x9677</div><div class='add'>+0x4F5E = 0x9650</div><div class='add'>+0x4F5F = 0x7DAB</div><div class='add'>+0x4F60 = 0x76F8</div><div class='add'>+0x4F61 = 0x53A2</div><div class='add'>+0x4F62 = 0x9472</div><div class='add'>+0x4F63 = 0x9999</div><div class='add'>+0x4F64 = 0x7BB1</div><div class='add'>+0x4F65 = 0x8944</div><div class='add'>+0x4F66 = 0x6E58</div><div class='add'>+0x4F67 = 0x9109</div><div class='add'>+0x4F68 = 0x7FD4</div><div class='add'>+0x4F69 = 0x7965</div><div class='add'>+0x4F6A = 0x8A73</div><div class='add'>+0x4F6B = 0x60F3</div><div class='add'>+0x4F6C = 0x97FF</div><div class='add'>+0x4F6D = 0x4EAB</div><div class='add'>+0x4F6E = 0x9805</div><div class='add'>+0x4F6F = 0x5DF7</div><div class='add'>+0x4F70 = 0x6A61</div><div class='add'>+0x4F71 = 0x50CF</div><div class='add'>+0x4F72 = 0x5411</div><div class='add'>+0x4F73 = 0x8C61</div><div class='add'>+0x4F74 = 0x856D</div><div class='add'>+0x4F75 = 0x785D</div><div class='add'>+0x4F76 = 0x9704</div><div class='add'>+0x4F77 = 0x524A</div><div class='add'>+0x4F78 = 0x54EE</div><div class='add'>+0x4F79 = 0x56C2</div><div class='add'>+0x4F7A = 0x92B7</div><div class='add'>+0x4F7B = 0x6D88</div><div class='add'>+0x4F7C = 0x5BB5</div><div class='add'>+0x4F7D = 0x6DC6</div><div class='add'>+0x4F7E = 0x66C9</div><div class='add'>+0x5021 = 0x5C0F</div><div class='add'>+0x5022 = 0x5B5D</div><div class='add'>+0x5023 = 0x6821</div><div class='add'>+0x5024 = 0x8096</div><div class='add'>+0x5025 = 0x562F</div><div class='add'>+0x5026 = 0x7B11</div><div class='add'>+0x5027 = 0x6548</div><div class='add'>+0x5028 = 0x6954</div><div class='add'>+0x5029 = 0x4E9B</div><div class='add'>+0x502A = 0x6B47</div><div class='add'>+0x502B = 0x874E</div><div class='add'>+0x502C = 0x978B</div><div class='add'>+0x502D = 0x5354</div><div class='add'>+0x502E = 0x633E</div><div class='add'>+0x502F = 0x643A</div><div class='add'>+0x5030 = 0x90AA</div><div class='add'>+0x5031 = 0x659C</div><div class='add'>+0x5032 = 0x8105</div><div class='add'>+0x5033 = 0x8AE7</div><div class='add'>+0x5034 = 0x5BEB</div><div class='add'>+0x5035 = 0x68B0</div><div class='add'>+0x5036 = 0x5378</div><div class='add'>+0x5037 = 0x87F9</div><div class='add'>+0x5038 = 0x61C8</div><div class='add'>+0x5039 = 0x6CC4</div><div class='add'>+0x503A = 0x7009</div><div class='add'>+0x503B = 0x8B1D</div><div class='add'>+0x503C = 0x5C51</div><div class='add'>+0x503D = 0x85AA</div><div class='add'>+0x503E = 0x82AF</div><div class='add'>+0x503F = 0x92C5</div><div class='add'>+0x5040 = 0x6B23</div><div class='add'>+0x5041 = 0x8F9B</div><div class='add'>+0x5042 = 0x65B0</div><div class='add'>+0x5043 = 0x5FFB</div><div class='add'>+0x5044 = 0x5FC3</div><div class='add'>+0x5045 = 0x4FE1</div><div class='add'>+0x5046 = 0x91C1</div><div class='add'>+0x5047 = 0x661F</div><div class='add'>+0x5048 = 0x8165</div><div class='add'>+0x5049 = 0x7329</div><div class='add'>+0x504A = 0x60FA</div><div class='add'>+0x504B = 0x8208</div><div class='add'>+0x504C = 0x5211</div><div class='add'>+0x504D = 0x578B</div><div class='add'>+0x504E = 0x5F62</div><div class='add'>+0x504F = 0x90A2</div><div class='add'>+0x5050 = 0x884C</div><div class='add'>+0x5051 = 0x9192</div><div class='add'>+0x5052 = 0x5E78</div><div class='add'>+0x5053 = 0x674F</div><div class='add'>+0x5054 = 0x6027</div><div class='add'>+0x5055 = 0x59D3</div><div class='add'>+0x5056 = 0x5144</div><div class='add'>+0x5057 = 0x51F6</div><div class='add'>+0x5058 = 0x80F8</div><div class='add'>+0x5059 = 0x5308</div><div class='add'>+0x505A = 0x6C79</div><div class='add'>+0x505B = 0x96C4</div><div class='add'>+0x505C = 0x718A</div><div class='add'>+0x505D = 0x4F11</div><div class='add'>+0x505E = 0x4FEE</div><div class='add'>+0x505F = 0x7F9E</div><div class='add'>+0x5060 = 0x673D</div><div class='add'>+0x5061 = 0x55C5</div><div class='add'>+0x5062 = 0x92B9</div><div class='add'>+0x5063 = 0x79C0</div><div class='add'>+0x5064 = 0x8896</div><div class='add'>+0x5065 = 0x7D89</div><div class='add'>+0x5066 = 0x589F</div><div class='add'>+0x5067 = 0x620C</div><div class='add'>+0x5068 = 0x9700</div><div class='add'>+0x5069 = 0x865A</div><div class='add'>+0x506A = 0x5618</div><div class='add'>+0x506B = 0x9808</div><div class='add'>+0x506C = 0x5F90</div><div class='add'>+0x506D = 0x8A31</div><div class='add'>+0x506E = 0x84C4</div><div class='add'>+0x506F = 0x9157</div><div class='add'>+0x5070 = 0x53D9</div><div class='add'>+0x5071 = 0x65ED</div><div class='add'>+0x5072 = 0x5E8F</div><div class='add'>+0x5073 = 0x755C</div><div class='add'>+0x5074 = 0x6064</div><div class='add'>+0x5075 = 0x7D6E</div><div class='add'>+0x5076 = 0x5A7F</div><div class='add'>+0x5077 = 0x7DD2</div><div class='add'>+0x5078 = 0x7E8C</div><div class='add'>+0x5079 = 0x8ED2</div><div class='add'>+0x507A = 0x55A7</div><div class='add'>+0x507B = 0x5BA3</div><div class='add'>+0x507C = 0x61F8</div><div class='add'>+0x507D = 0x65CB</div><div class='add'>+0x507E = 0x7384</div><div class='add'>+0x5121 = 0x9078</div><div class='add'>+0x5122 = 0x766C</div><div class='add'>+0x5123 = 0x7729</div><div class='add'>+0x5124 = 0x7D62</div><div class='add'>+0x5125 = 0x9774</div><div class='add'>+0x5126 = 0x859B</div><div class='add'>+0x5127 = 0x5B78</div><div class='add'>+0x5128 = 0x7A74</div><div class='add'>+0x5129 = 0x96EA</div><div class='add'>+0x512A = 0x8840</div><div class='add'>+0x512B = 0x52DB</div><div class='add'>+0x512C = 0x718F</div><div class='add'>+0x512D = 0x5FAA</div><div class='add'>+0x512E = 0x65EC</div><div class='add'>+0x512F = 0x8A62</div><div class='add'>+0x5130 = 0x5C0B</div><div class='add'>+0x5131 = 0x99B4</div><div class='add'>+0x5132 = 0x5DE1</div><div class='add'>+0x5133 = 0x6B89</div><div class='add'>+0x5134 = 0x6C5B</div><div class='add'>+0x5135 = 0x8A13</div><div class='add'>+0x5136 = 0x8A0A</div><div class='add'>+0x5137 = 0x905C</div><div class='add'>+0x5138 = 0x8FC5</div><div class='add'>+0x5139 = 0x58D3</div><div class='add'>+0x513A = 0x62BC</div><div class='add'>+0x513B = 0x9D09</div><div class='add'>+0x513C = 0x9D28</div><div class='add'>+0x513D = 0x5440</div><div class='add'>+0x513E = 0x4E2B</div><div class='add'>+0x513F = 0x82BD</div><div class='add'>+0x5140 = 0x7259</div><div class='add'>+0x5141 = 0x869C</div><div class='add'>+0x5142 = 0x5D16</div><div class='add'>+0x5143 = 0x8859</div><div class='add'>+0x5144 = 0x6DAF</div><div class='add'>+0x5145 = 0x96C5</div><div class='add'>+0x5146 = 0x555E</div><div class='add'>+0x5147 = 0x4E9E</div><div class='add'>+0x5148 = 0x8A1D</div><div class='add'>+0x5149 = 0x7109</div><div class='add'>+0x514A = 0x54BD</div><div class='add'>+0x514B = 0x95B9</div><div class='add'>+0x514C = 0x70DF</div><div class='add'>+0x514D = 0x6DF9</div><div class='add'>+0x514E = 0x9E7D</div><div class='add'>+0x514F = 0x56B4</div><div class='add'>+0x5150 = 0x7814</div><div class='add'>+0x5151 = 0x8712</div><div class='add'>+0x5152 = 0x5CA9</div><div class='add'>+0x5153 = 0x5EF6</div><div class='add'>+0x5154 = 0x8A00</div><div class='add'>+0x5155 = 0x9854</div><div class='add'>+0x5156 = 0x95BB</div><div class='add'>+0x5157 = 0x708E</div><div class='add'>+0x5158 = 0x6CBF</div><div class='add'>+0x5159 = 0x5944</div><div class='add'>+0x515A = 0x63A9</div><div class='add'>+0x515B = 0x773C</div><div class='add'>+0x515C = 0x884D</div><div class='add'>+0x515D = 0x6F14</div><div class='add'>+0x515E = 0x8277</div><div class='add'>+0x515F = 0x5830</div><div class='add'>+0x5160 = 0x71D5</div><div class='add'>+0x5161 = 0x53AD</div><div class='add'>+0x5162 = 0x786F</div><div class='add'>+0x5163 = 0x96C1</div><div class='add'>+0x5164 = 0x5501</div><div class='add'>+0x5165 = 0x5F66</div><div class='add'>+0x5166 = 0x7130</div><div class='add'>+0x5167 = 0x5BB4</div><div class='add'>+0x5168 = 0x8AFA</div><div class='add'>+0x5169 = 0x9A57</div><div class='add'>+0x516A = 0x6B83</div><div class='add'>+0x516B = 0x592E</div><div class='add'>+0x516C = 0x9D26</div><div class='add'>+0x516D = 0x79E7</div><div class='add'>+0x516E = 0x694A</div><div class='add'>+0x516F = 0x63DA</div><div class='add'>+0x5170 = 0x4F6F</div><div class='add'>+0x5171 = 0x760D</div><div class='add'>+0x5172 = 0x7F8A</div><div class='add'>+0x5173 = 0x6D0B</div><div class='add'>+0x5174 = 0x967D</div><div class='add'>+0x5175 = 0x6C27</div><div class='add'>+0x5176 = 0x4EF0</div><div class='add'>+0x5177 = 0x7662</div><div class='add'>+0x5178 = 0x990A</div><div class='add'>+0x5179 = 0x6A23</div><div class='add'>+0x517A = 0x6F3E</div><div class='add'>+0x517B = 0x9080</div><div class='add'>+0x517C = 0x8170</div><div class='add'>+0x517D = 0x5996</div><div class='add'>+0x517E = 0x7476</div><div class='add'>+0x5221 = 0x6447</div><div class='add'>+0x5222 = 0x582F</div><div class='add'>+0x5223 = 0x9065</div><div class='add'>+0x5224 = 0x7A91</div><div class='add'>+0x5225 = 0x8B21</div><div class='add'>+0x5226 = 0x59DA</div><div class='add'>+0x5227 = 0x54AC</div><div class='add'>+0x5228 = 0x8200</div><div class='add'>+0x5229 = 0x85E5</div><div class='add'>+0x522A = 0x8981</div><div class='add'>+0x522B = 0x8000</div><div class='add'>+0x522C = 0x6930</div><div class='add'>+0x522D = 0x564E</div><div class='add'>+0x522E = 0x8036</div><div class='add'>+0x522F = 0x723A</div><div class='add'>+0x5230 = 0x91CE</div><div class='add'>+0x5231 = 0x51B6</div><div class='add'>+0x5232 = 0x4E5F</div><div class='add'>+0x5233 = 0x9801</div><div class='add'>+0x5234 = 0x6396</div><div class='add'>+0x5235 = 0x696D</div><div class='add'>+0x5236 = 0x8449</div><div class='add'>+0x5237 = 0x66F3</div><div class='add'>+0x5238 = 0x814B</div><div class='add'>+0x5239 = 0x591C</div><div class='add'>+0x523A = 0x6DB2</div><div class='add'>+0x523B = 0x4E00</div><div class='add'>+0x523C = 0x58F9</div><div class='add'>+0x523D = 0x91AB</div><div class='add'>+0x523E = 0x63D6</div><div class='add'>+0x523F = 0x92A5</div><div class='add'>+0x5240 = 0x4F9D</div><div class='add'>+0x5241 = 0x4F0A</div><div class='add'>+0x5242 = 0x8863</div><div class='add'>+0x5243 = 0x9824</div><div class='add'>+0x5244 = 0x5937</div><div class='add'>+0x5245 = 0x907A</div><div class='add'>+0x5246 = 0x79FB</div><div class='add'>+0x5247 = 0x5100</div><div class='add'>+0x5248 = 0x80F0</div><div class='add'>+0x5249 = 0x7591</div><div class='add'>+0x524A = 0x6C82</div><div class='add'>+0x524B = 0x5B9C</div><div class='add'>+0x524C = 0x59E8</div><div class='add'>+0x524D = 0x5F5D</div><div class='add'>+0x524E = 0x6905</div><div class='add'>+0x524F = 0x87FB</div><div class='add'>+0x5250 = 0x501A</div><div class='add'>+0x5251 = 0x5DF2</div><div class='add'>+0x5252 = 0x4E59</div><div class='add'>+0x5253 = 0x77E3</div><div class='add'>+0x5254 = 0x4EE5</div><div class='add'>+0x5255 = 0x85DD</div><div class='add'>+0x5256 = 0x6291</div><div class='add'>+0x5257 = 0x6613</div><div class='add'>+0x5258 = 0x9091</div><div class='add'>+0x5259 = 0x5C79</div><div class='add'>+0x525A = 0x5104</div><div class='add'>+0x525B = 0x5F79</div><div class='add'>+0x525C = 0x81C6</div><div class='add'>+0x525D = 0x9038</div><div class='add'>+0x525E = 0x8084</div><div class='add'>+0x525F = 0x75AB</div><div class='add'>+0x5260 = 0x4EA6</div><div class='add'>+0x5261 = 0x88D4</div><div class='add'>+0x5262 = 0x610F</div><div class='add'>+0x5263 = 0x6BC5</div><div class='add'>+0x5264 = 0x61B6</div><div class='add'>+0x5265 = 0x7FA9</div><div class='add'>+0x5266 = 0x76CA</div><div class='add'>+0x5267 = 0x6EA2</div><div class='add'>+0x5268 = 0x8A63</div><div class='add'>+0x5269 = 0x8B70</div><div class='add'>+0x526A = 0x8ABC</div><div class='add'>+0x526B = 0x8B6F</div><div class='add'>+0x526C = 0x5F02</div><div class='add'>+0x526D = 0x7FFC</div><div class='add'>+0x526E = 0x7FCC</div><div class='add'>+0x526F = 0x7E79</div><div class='add'>+0x5270 = 0x8335</div><div class='add'>+0x5271 = 0x852D</div><div class='add'>+0x5272 = 0x56E0</div><div class='add'>+0x5273 = 0x6BB7</div><div class='add'>+0x5274 = 0x97F3</div><div class='add'>+0x5275 = 0x9670</div><div class='add'>+0x5276 = 0x59FB</div><div class='add'>+0x5277 = 0x541F</div><div class='add'>+0x5278 = 0x9280</div><div class='add'>+0x5279 = 0x6DEB</div><div class='add'>+0x527A = 0x5BC5</div><div class='add'>+0x527B = 0x98F2</div><div class='add'>+0x527C = 0x5C39</div><div class='add'>+0x527D = 0x5F15</div><div class='add'>+0x527E = 0x96B1</div><div class='add'>+0x5321 = 0x5370</div><div class='add'>+0x5322 = 0x82F1</div><div class='add'>+0x5323 = 0x6AFB</div><div class='add'>+0x5324 = 0x5B30</div><div class='add'>+0x5325 = 0x9DF9</div><div class='add'>+0x5326 = 0x61C9</div><div class='add'>+0x5327 = 0x7E93</div><div class='add'>+0x5328 = 0x7469</div><div class='add'>+0x5329 = 0x87A2</div><div class='add'>+0x532A = 0x71DF</div><div class='add'>+0x532B = 0x7192</div><div class='add'>+0x532C = 0x8805</div><div class='add'>+0x532D = 0x8FCE</div><div class='add'>+0x532E = 0x8D0F</div><div class='add'>+0x532F = 0x76C8</div><div class='add'>+0x5330 = 0x5F71</div><div class='add'>+0x5331 = 0x7A4E</div><div class='add'>+0x5332 = 0x786C</div><div class='add'>+0x5333 = 0x6620</div><div class='add'>+0x5334 = 0x55B2</div><div class='add'>+0x5335 = 0x64C1</div><div class='add'>+0x5336 = 0x50AD</div><div class='add'>+0x5337 = 0x81C3</div><div class='add'>+0x5338 = 0x7670</div><div class='add'>+0x5339 = 0x5EB8</div><div class='add'>+0x533A = 0x96CD</div><div class='add'>+0x533B = 0x8E34</div><div class='add'>+0x533C = 0x86F9</div><div class='add'>+0x533D = 0x548F</div><div class='add'>+0x533E = 0x6CF3</div><div class='add'>+0x533F = 0x6D8C</div><div class='add'>+0x5340 = 0x6C38</div><div class='add'>+0x5341 = 0x607F</div><div class='add'>+0x5342 = 0x52C7</div><div class='add'>+0x5343 = 0x7528</div><div class='add'>+0x5344 = 0x5E7D</div><div class='add'>+0x5345 = 0x512A</div><div class='add'>+0x5346 = 0x60A0</div><div class='add'>+0x5347 = 0x6182</div><div class='add'>+0x5348 = 0x5C24</div><div class='add'>+0x5349 = 0x7531</div><div class='add'>+0x534A = 0x90F5</div><div class='add'>+0x534B = 0x923E</div><div class='add'>+0x534C = 0x7336</div><div class='add'>+0x534D = 0x6CB9</div><div class='add'>+0x534E = 0x6E38</div><div class='add'>+0x534F = 0x9149</div><div class='add'>+0x5350 = 0x6709</div><div class='add'>+0x5351 = 0x53CB</div><div class='add'>+0x5352 = 0x53F3</div><div class='add'>+0x5353 = 0x4F51</div><div class='add'>+0x5354 = 0x91C9</div><div class='add'>+0x5355 = 0x8A98</div><div class='add'>+0x5356 = 0x53C8</div><div class='add'>+0x5357 = 0x5E7C</div><div class='add'>+0x5358 = 0x8FC2</div><div class='add'>+0x5359 = 0x6DE4</div><div class='add'>+0x535A = 0x4E8E</div><div class='add'>+0x535B = 0x76C2</div><div class='add'>+0x535C = 0x6986</div><div class='add'>+0x535D = 0x865E</div><div class='add'>+0x535E = 0x611A</div><div class='add'>+0x535F = 0x8F3F</div><div class='add'>+0x5360 = 0x9918</div><div class='add'>+0x5361 = 0x4FDE</div><div class='add'>+0x5362 = 0x903E</div><div class='add'>+0x5363 = 0x9B5A</div><div class='add'>+0x5364 = 0x6109</div><div class='add'>+0x5365 = 0x6E1D</div><div class='add'>+0x5366 = 0x6F01</div><div class='add'>+0x5367 = 0x9685</div><div class='add'>+0x5368 = 0x4E88</div><div class='add'>+0x5369 = 0x5A31</div><div class='add'>+0x536A = 0x96E8</div><div class='add'>+0x536B = 0x8207</div><div class='add'>+0x536C = 0x5DBC</div><div class='add'>+0x536D = 0x79B9</div><div class='add'>+0x536E = 0x5B87</div><div class='add'>+0x536F = 0x8A9E</div><div class='add'>+0x5370 = 0x7FBD</div><div class='add'>+0x5371 = 0x7389</div><div class='add'>+0x5372 = 0x57DF</div><div class='add'>+0x5373 = 0x828B</div><div class='add'>+0x5374 = 0x9B31</div><div class='add'>+0x5375 = 0x5401</div><div class='add'>+0x5376 = 0x9047</div><div class='add'>+0x5377 = 0x55BB</div><div class='add'>+0x5378 = 0x5CEA</div><div class='add'>+0x5379 = 0x5FA1</div><div class='add'>+0x537A = 0x6108</div><div class='add'>+0x537B = 0x6B32</div><div class='add'>+0x537C = 0x7344</div><div class='add'>+0x537D = 0x80B2</div><div class='add'>+0x537E = 0x8B7D</div><div class='add'>+0x5421 = 0x6D74</div><div class='add'>+0x5422 = 0x5BD3</div><div class='add'>+0x5423 = 0x88D5</div><div class='add'>+0x5424 = 0x9810</div><div class='add'>+0x5425 = 0x8C6B</div><div class='add'>+0x5426 = 0x99AD</div><div class='add'>+0x5427 = 0x9D1B</div><div class='add'>+0x5428 = 0x6DF5</div><div class='add'>+0x5429 = 0x51A4</div><div class='add'>+0x542A = 0x5143</div><div class='add'>+0x542B = 0x57A3</div><div class='add'>+0x542C = 0x8881</div><div class='add'>+0x542D = 0x539F</div><div class='add'>+0x542E = 0x63F4</div><div class='add'>+0x542F = 0x8F45</div><div class='add'>+0x5430 = 0x5712</div><div class='add'>+0x5431 = 0x54E1</div><div class='add'>+0x5432 = 0x5713</div><div class='add'>+0x5433 = 0x733F</div><div class='add'>+0x5434 = 0x6E90</div><div class='add'>+0x5435 = 0x7DE3</div><div class='add'>+0x5436 = 0x9060</div><div class='add'>+0x5437 = 0x82D1</div><div class='add'>+0x5438 = 0x9858</div><div class='add'>+0x5439 = 0x6028</div><div class='add'>+0x543A = 0x9662</div><div class='add'>+0x543B = 0x66F0</div><div class='add'>+0x543C = 0x7D04</div><div class='add'>+0x543D = 0x8D8A</div><div class='add'>+0x543E = 0x8E8D</div><div class='add'>+0x543F = 0x9470</div><div class='add'>+0x5440 = 0x5CB3</div><div class='add'>+0x5441 = 0x7CA4</div><div class='add'>+0x5442 = 0x6708</div><div class='add'>+0x5443 = 0x60A6</div><div class='add'>+0x5444 = 0x95B2</div><div class='add'>+0x5445 = 0x8018</div><div class='add'>+0x5446 = 0x96F2</div><div class='add'>+0x5447 = 0x9116</div><div class='add'>+0x5448 = 0x5300</div><div class='add'>+0x5449 = 0x9695</div><div class='add'>+0x544A = 0x5141</div><div class='add'>+0x544B = 0x904B</div><div class='add'>+0x544C = 0x85F4</div><div class='add'>+0x544D = 0x9196</div><div class='add'>+0x544E = 0x6688</div><div class='add'>+0x544F = 0x97F5</div><div class='add'>+0x5450 = 0x5B55</div><div class='add'>+0x5451 = 0x531D</div><div class='add'>+0x5452 = 0x7838</div><div class='add'>+0x5453 = 0x96DC</div><div class='add'>+0x5454 = 0x683D</div><div class='add'>+0x5455 = 0x54C9</div><div class='add'>+0x5456 = 0x707E</div><div class='add'>+0x5457 = 0x5BB0</div><div class='add'>+0x5458 = 0x8F09</div><div class='add'>+0x5459 = 0x518D</div><div class='add'>+0x545A = 0x5728</div><div class='add'>+0x545B = 0x54B1</div><div class='add'>+0x545C = 0x6522</div><div class='add'>+0x545D = 0x66AB</div><div class='add'>+0x545E = 0x8D0A</div><div class='add'>+0x545F = 0x8D1C</div><div class='add'>+0x5460 = 0x81DF</div><div class='add'>+0x5461 = 0x846C</div><div class='add'>+0x5462 = 0x906D</div><div class='add'>+0x5463 = 0x7CDF</div><div class='add'>+0x5464 = 0x947F</div><div class='add'>+0x5465 = 0x85FB</div><div class='add'>+0x5466 = 0x68D7</div><div class='add'>+0x5467 = 0x65E9</div><div class='add'>+0x5468 = 0x6FA1</div><div class='add'>+0x5469 = 0x86A4</div><div class='add'>+0x546A = 0x8E81</div><div class='add'>+0x546B = 0x566A</div><div class='add'>+0x546C = 0x9020</div><div class='add'>+0x546D = 0x7682</div><div class='add'>+0x546E = 0x7AC8</div><div class='add'>+0x546F = 0x71E5</div><div class='add'>+0x5470 = 0x8CAC</div><div class='add'>+0x5471 = 0x64C7</div><div class='add'>+0x5472 = 0x5247</div><div class='add'>+0x5473 = 0x6FA4</div><div class='add'>+0x5474 = 0x8CCA</div><div class='add'>+0x5475 = 0x600E</div><div class='add'>+0x5476 = 0x589E</div><div class='add'>+0x5477 = 0x618E</div><div class='add'>+0x5478 = 0x66FE</div><div class='add'>+0x5479 = 0x8D08</div><div class='add'>+0x547A = 0x624E</div><div class='add'>+0x547B = 0x55B3</div><div class='add'>+0x547C = 0x6E23</div><div class='add'>+0x547D = 0x672D</div><div class='add'>+0x547E = 0x8ECB</div><div class='add'>+0x5521 = 0x9358</div><div class='add'>+0x5522 = 0x9598</div><div class='add'>+0x5523 = 0x7728</div><div class='add'>+0x5524 = 0x6805</div><div class='add'>+0x5525 = 0x69A8</div><div class='add'>+0x5526 = 0x548B</div><div class='add'>+0x5527 = 0x4E4D</div><div class='add'>+0x5528 = 0x70B8</div><div class='add'>+0x5529 = 0x8A50</div><div class='add'>+0x552A = 0x6458</div><div class='add'>+0x552B = 0x9F4B</div><div class='add'>+0x552C = 0x5B85</div><div class='add'>+0x552D = 0x7A84</div><div class='add'>+0x552E = 0x50B5</div><div class='add'>+0x552F = 0x5BE8</div><div class='add'>+0x5530 = 0x77BB</div><div class='add'>+0x5531 = 0x6C08</div><div class='add'>+0x5532 = 0x8A79</div><div class='add'>+0x5533 = 0x7C98</div><div class='add'>+0x5534 = 0x6CBE</div><div class='add'>+0x5535 = 0x76DE</div><div class='add'>+0x5536 = 0x65AC</div><div class='add'>+0x5537 = 0x8F3E</div><div class='add'>+0x5538 = 0x5D84</div><div class='add'>+0x5539 = 0x5C55</div><div class='add'>+0x553A = 0x8638</div><div class='add'>+0x553B = 0x68E7</div><div class='add'>+0x553C = 0x5360</div><div class='add'>+0x553D = 0x6230</div><div class='add'>+0x553E = 0x7AD9</div><div class='add'>+0x553F = 0x6E5B</div><div class='add'>+0x5540 = 0x7DBB</div><div class='add'>+0x5541 = 0x6A1F</div><div class='add'>+0x5542 = 0x7AE0</div><div class='add'>+0x5543 = 0x5F70</div><div class='add'>+0x5544 = 0x6F33</div><div class='add'>+0x5545 = 0x5F35</div><div class='add'>+0x5546 = 0x638C</div><div class='add'>+0x5547 = 0x6F32</div><div class='add'>+0x5548 = 0x6756</div><div class='add'>+0x5549 = 0x4E08</div><div class='add'>+0x554A = 0x5E33</div><div class='add'>+0x554B = 0x8CEC</div><div class='add'>+0x554C = 0x4ED7</div><div class='add'>+0x554D = 0x8139</div><div class='add'>+0x554E = 0x7634</div><div class='add'>+0x554F = 0x969C</div><div class='add'>+0x5550 = 0x62DB</div><div class='add'>+0x5551 = 0x662D</div><div class='add'>+0x5552 = 0x627E</div><div class='add'>+0x5553 = 0x6CBC</div><div class='add'>+0x5554 = 0x8D99</div><div class='add'>+0x5555 = 0x7167</div><div class='add'>+0x5556 = 0x7F69</div><div class='add'>+0x5557 = 0x5146</div><div class='add'>+0x5558 = 0x8087</div><div class='add'>+0x5559 = 0x53EC</div><div class='add'>+0x555A = 0x906E</div><div class='add'>+0x555B = 0x6298</div><div class='add'>+0x555C = 0x54F2</div><div class='add'>+0x555D = 0x87C4</div><div class='add'>+0x555E = 0x8F4D</div><div class='add'>+0x555F = 0x8005</div><div class='add'>+0x5560 = 0x937A</div><div class='add'>+0x5561 = 0x8517</div><div class='add'>+0x5562 = 0x9019</div><div class='add'>+0x5563 = 0x6D59</div><div class='add'>+0x5564 = 0x73CD</div><div class='add'>+0x5565 = 0x659F</div><div class='add'>+0x5566 = 0x771F</div><div class='add'>+0x5567 = 0x7504</div><div class='add'>+0x5568 = 0x7827</div><div class='add'>+0x5569 = 0x81FB</div><div class='add'>+0x556A = 0x8C9E</div><div class='add'>+0x556B = 0x91DD</div><div class='add'>+0x556C = 0x5075</div><div class='add'>+0x556D = 0x6795</div><div class='add'>+0x556E = 0x75B9</div><div class='add'>+0x556F = 0x8A3A</div><div class='add'>+0x5570 = 0x9707</div><div class='add'>+0x5571 = 0x632F</div><div class='add'>+0x5572 = 0x93AE</div><div class='add'>+0x5573 = 0x9663</div><div class='add'>+0x5574 = 0x84B8</div><div class='add'>+0x5575 = 0x6399</div><div class='add'>+0x5576 = 0x775C</div><div class='add'>+0x5577 = 0x5F81</div><div class='add'>+0x5578 = 0x7319</div><div class='add'>+0x5579 = 0x722D</div><div class='add'>+0x557A = 0x6014</div><div class='add'>+0x557B = 0x6574</div><div class='add'>+0x557C = 0x62EF</div><div class='add'>+0x557D = 0x6B63</div><div class='add'>+0x557E = 0x653F</div><div class='add'>+0x5621 = 0x5E40</div><div class='add'>+0x5622 = 0x7665</div><div class='add'>+0x5623 = 0x912D</div><div class='add'>+0x5624 = 0x8B49</div><div class='add'>+0x5625 = 0x829D</div><div class='add'>+0x5626 = 0x679D</div><div class='add'>+0x5627 = 0x652F</div><div class='add'>+0x5628 = 0x5431</div><div class='add'>+0x5629 = 0x8718</div><div class='add'>+0x562A = 0x77E5</div><div class='add'>+0x562B = 0x80A2</div><div class='add'>+0x562C = 0x8102</div><div class='add'>+0x562D = 0x6C41</div><div class='add'>+0x562E = 0x4E4B</div><div class='add'>+0x562F = 0x7E54</div><div class='add'>+0x5630 = 0x8077</div><div class='add'>+0x5631 = 0x76F4</div><div class='add'>+0x5632 = 0x690D</div><div class='add'>+0x5633 = 0x6B96</div><div class='add'>+0x5634 = 0x57F7</div><div class='add'>+0x5635 = 0x503C</div><div class='add'>+0x5636 = 0x4F84</div><div class='add'>+0x5637 = 0x5740</div><div class='add'>+0x5638 = 0x6307</div><div class='add'>+0x5639 = 0x6B62</div><div class='add'>+0x563A = 0x8DBE</div><div class='add'>+0x563B = 0x8879</div><div class='add'>+0x563C = 0x65E8</div><div class='add'>+0x563D = 0x7D19</div><div class='add'>+0x563E = 0x5FD7</div><div class='add'>+0x563F = 0x646F</div><div class='add'>+0x5640 = 0x64F2</div><div class='add'>+0x5641 = 0x81F3</div><div class='add'>+0x5642 = 0x81F4</div><div class='add'>+0x5643 = 0x7F6E</div><div class='add'>+0x5644 = 0x5E5F</div><div class='add'>+0x5645 = 0x5CD9</div><div class='add'>+0x5646 = 0x5236</div><div class='add'>+0x5647 = 0x667A</div><div class='add'>+0x5648 = 0x79E9</div><div class='add'>+0x5649 = 0x7A1A</div><div class='add'>+0x564A = 0x8CEA</div><div class='add'>+0x564B = 0x7099</div><div class='add'>+0x564C = 0x75D4</div><div class='add'>+0x564D = 0x6EEF</div><div class='add'>+0x564E = 0x6CBB</div><div class='add'>+0x564F = 0x7A92</div><div class='add'>+0x5650 = 0x4E2D</div><div class='add'>+0x5651 = 0x76C5</div><div class='add'>+0x5652 = 0x5FE0</div><div class='add'>+0x5653 = 0x9418</div><div class='add'>+0x5654 = 0x8877</div><div class='add'>+0x5655 = 0x7D42</div><div class='add'>+0x5656 = 0x7A2E</div><div class='add'>+0x5657 = 0x816B</div><div class='add'>+0x5658 = 0x91CD</div><div class='add'>+0x5659 = 0x4EF2</div><div class='add'>+0x565A = 0x8846</div><div class='add'>+0x565B = 0x821F</div><div class='add'>+0x565C = 0x5468</div><div class='add'>+0x565D = 0x5DDE</div><div class='add'>+0x565E = 0x6D32</div><div class='add'>+0x565F = 0x8B05</div><div class='add'>+0x5660 = 0x7CA5</div><div class='add'>+0x5661 = 0x8EF8</div><div class='add'>+0x5662 = 0x8098</div><div class='add'>+0x5663 = 0x5E1A</div><div class='add'>+0x5664 = 0x5492</div><div class='add'>+0x5665 = 0x76BA</div><div class='add'>+0x5666 = 0x5B99</div><div class='add'>+0x5667 = 0x665D</div><div class='add'>+0x5668 = 0x9A5F</div><div class='add'>+0x5669 = 0x73E0</div><div class='add'>+0x566A = 0x682A</div><div class='add'>+0x566B = 0x86DB</div><div class='add'>+0x566C = 0x6731</div><div class='add'>+0x566D = 0x732A</div><div class='add'>+0x566E = 0x8AF8</div><div class='add'>+0x566F = 0x8A85</div><div class='add'>+0x5670 = 0x9010</div><div class='add'>+0x5671 = 0x7AF9</div><div class='add'>+0x5672 = 0x71ED</div><div class='add'>+0x5673 = 0x716E</div><div class='add'>+0x5674 = 0x62C4</div><div class='add'>+0x5675 = 0x77DA</div><div class='add'>+0x5676 = 0x56D1</div><div class='add'>+0x5677 = 0x4E3B</div><div class='add'>+0x5678 = 0x8457</div><div class='add'>+0x5679 = 0x67F1</div><div class='add'>+0x567A = 0x52A9</div><div class='add'>+0x567B = 0x86C0</div><div class='add'>+0x567C = 0x8CAF</div><div class='add'>+0x567D = 0x9444</div><div class='add'>+0x567E = 0x7BC9</div><div class='add'>+0x5721 = 0x4F4F</div><div class='add'>+0x5722 = 0x6CE8</div><div class='add'>+0x5723 = 0x795D</div><div class='add'>+0x5724 = 0x99D0</div><div class='add'>+0x5725 = 0x6293</div><div class='add'>+0x5726 = 0x722A</div><div class='add'>+0x5727 = 0x62FD</div><div class='add'>+0x5728 = 0x5C08</div><div class='add'>+0x5729 = 0x78DA</div><div class='add'>+0x572A = 0x8F49</div><div class='add'>+0x572B = 0x64B0</div><div class='add'>+0x572C = 0x8CFA</div><div class='add'>+0x572D = 0x7BC6</div><div class='add'>+0x572E = 0x6A01</div><div class='add'>+0x572F = 0x838A</div><div class='add'>+0x5730 = 0x88DD</div><div class='add'>+0x5731 = 0x599D</div><div class='add'>+0x5732 = 0x649E</div><div class='add'>+0x5733 = 0x58EF</div><div class='add'>+0x5734 = 0x72C0</div><div class='add'>+0x5735 = 0x690E</div><div class='add'>+0x5736 = 0x9310</div><div class='add'>+0x5737 = 0x8FFD</div><div class='add'>+0x5738 = 0x8D05</div><div class='add'>+0x5739 = 0x589C</div><div class='add'>+0x573A = 0x7DB4</div><div class='add'>+0x573B = 0x8AC4</div><div class='add'>+0x573C = 0x6E96</div><div class='add'>+0x573D = 0x6349</div><div class='add'>+0x573E = 0x62D9</div><div class='add'>+0x573F = 0x5353</div><div class='add'>+0x5740 = 0x684C</div><div class='add'>+0x5741 = 0x7422</div><div class='add'>+0x5742 = 0x8301</div><div class='add'>+0x5743 = 0x914C</div><div class='add'>+0x5744 = 0x5544</div><div class='add'>+0x5745 = 0x7740</div><div class='add'>+0x5746 = 0x707C</div><div class='add'>+0x5747 = 0x6FC1</div><div class='add'>+0x5748 = 0x5179</div><div class='add'>+0x5749 = 0x54A8</div><div class='add'>+0x574A = 0x8CC7</div><div class='add'>+0x574B = 0x59FF</div><div class='add'>+0x574C = 0x6ECB</div><div class='add'>+0x574D = 0x6DC4</div><div class='add'>+0x574E = 0x5B5C</div><div class='add'>+0x574F = 0x7D2B</div><div class='add'>+0x5750 = 0x4ED4</div><div class='add'>+0x5751 = 0x7C7D</div><div class='add'>+0x5752 = 0x6ED3</div><div class='add'>+0x5753 = 0x5B50</div><div class='add'>+0x5754 = 0x81EA</div><div class='add'>+0x5755 = 0x6F2C</div><div class='add'>+0x5756 = 0x5B57</div><div class='add'>+0x5757 = 0x9B03</div><div class='add'>+0x5758 = 0x68D5</div><div class='add'>+0x5759 = 0x8E2A</div><div class='add'>+0x575A = 0x5B97</div><div class='add'>+0x575B = 0x7D9C</div><div class='add'>+0x575C = 0x7E3D</div><div class='add'>+0x575D = 0x7E31</div><div class='add'>+0x575E = 0x9112</div><div class='add'>+0x575F = 0x8D70</div><div class='add'>+0x5760 = 0x594F</div><div class='add'>+0x5761 = 0x63CD</div><div class='add'>+0x5762 = 0x79DF</div><div class='add'>+0x5763 = 0x8DB3</div><div class='add'>+0x5764 = 0x5352</div><div class='add'>+0x5765 = 0x65CF</div><div class='add'>+0x5766 = 0x7956</div><div class='add'>+0x5767 = 0x8A5B</div><div class='add'>+0x5768 = 0x963B</div><div class='add'>+0x5769 = 0x7D44</div><div class='add'>+0x576A = 0x947D</div><div class='add'>+0x576B = 0x7E82</div><div class='add'>+0x576C = 0x5634</div><div class='add'>+0x576D = 0x9189</div><div class='add'>+0x576E = 0x6700</div><div class='add'>+0x576F = 0x7F6A</div><div class='add'>+0x5770 = 0x5C0A</div><div class='add'>+0x5771 = 0x9075</div><div class='add'>+0x5772 = 0x6628</div><div class='add'>+0x5773 = 0x5DE6</div><div class='add'>+0x5774 = 0x4F50</div><div class='add'>+0x5775 = 0x67DE</div><div class='add'>+0x5776 = 0x505A</div><div class='add'>+0x5777 = 0x4F5C</div><div class='add'>+0x5778 = 0x5750</div><div class='add'>+0x5779 = 0x5EA7</div><div class='add'>+0x5821 = 0x4E8D</div><div class='add'>+0x5822 = 0x4E0C</div><div class='add'>+0x5823 = 0x5140</div><div class='add'>+0x5824 = 0x4E10</div><div class='add'>+0x5825 = 0x5EFF</div><div class='add'>+0x5826 = 0x5345</div><div class='add'>+0x5827 = 0x4E15</div><div class='add'>+0x5828 = 0x4E98</div><div class='add'>+0x5829 = 0x4E1E</div><div class='add'>+0x582A = 0x9B32</div><div class='add'>+0x582B = 0x5B6C</div><div class='add'>+0x582C = 0x5669</div><div class='add'>+0x582D = 0x4E28</div><div class='add'>+0x582E = 0x79BA</div><div class='add'>+0x582F = 0x4E3F</div><div class='add'>+0x5830 = 0x5315</div><div class='add'>+0x5831 = 0x4E47</div><div class='add'>+0x5832 = 0x592D</div><div class='add'>+0x5833 = 0x723B</div><div class='add'>+0x5834 = 0x536E</div><div class='add'>+0x5835 = 0x6C10</div><div class='add'>+0x5836 = 0x56DF</div><div class='add'>+0x5837 = 0x80E4</div><div class='add'>+0x5838 = 0x9997</div><div class='add'>+0x5839 = 0x6BD3</div><div class='add'>+0x583A = 0x777E</div><div class='add'>+0x583B = 0x9F17</div><div class='add'>+0x583C = 0x4E36</div><div class='add'>+0x583D = 0x4E9F</div><div class='add'>+0x583E = 0x9F10</div><div class='add'>+0x583F = 0x4E5C</div><div class='add'>+0x5840 = 0x4E69</div><div class='add'>+0x5841 = 0x4E93</div><div class='add'>+0x5842 = 0x8288</div><div class='add'>+0x5843 = 0x5B5B</div><div class='add'>+0x5844 = 0x55C7</div><div class='add'>+0x5845 = 0x560F</div><div class='add'>+0x5846 = 0x4EC4</div><div class='add'>+0x5847 = 0x5399</div><div class='add'>+0x5848 = 0x539D</div><div class='add'>+0x5849 = 0x53B4</div><div class='add'>+0x584A = 0x53A5</div><div class='add'>+0x584B = 0x53AE</div><div class='add'>+0x584C = 0x9768</div><div class='add'>+0x584D = 0x8D0B</div><div class='add'>+0x584E = 0x531A</div><div class='add'>+0x584F = 0x53F5</div><div class='add'>+0x5850 = 0x532D</div><div class='add'>+0x5851 = 0x5331</div><div class='add'>+0x5852 = 0x533E</div><div class='add'>+0x5853 = 0x8CFE</div><div class='add'>+0x5854 = 0x5366</div><div class='add'>+0x5855 = 0x5363</div><div class='add'>+0x5856 = 0x5202</div><div class='add'>+0x5857 = 0x5208</div><div class='add'>+0x5858 = 0x520E</div><div class='add'>+0x5859 = 0x5244</div><div class='add'>+0x585A = 0x5233</div><div class='add'>+0x585B = 0x528C</div><div class='add'>+0x585C = 0x5274</div><div class='add'>+0x585D = 0x524C</div><div class='add'>+0x585E = 0x525E</div><div class='add'>+0x585F = 0x5261</div><div class='add'>+0x5860 = 0x525C</div><div class='add'>+0x5861 = 0x84AF</div><div class='add'>+0x5862 = 0x527D</div><div class='add'>+0x5863 = 0x5282</div><div class='add'>+0x5864 = 0x5281</div><div class='add'>+0x5865 = 0x5290</div><div class='add'>+0x5866 = 0x5293</div><div class='add'>+0x5867 = 0x5182</div><div class='add'>+0x5868 = 0x7F54</div><div class='add'>+0x5869 = 0x4EBB</div><div class='add'>+0x586A = 0x4EC3</div><div class='add'>+0x586B = 0x4EC9</div><div class='add'>+0x586C = 0x4EC2</div><div class='add'>+0x586D = 0x4EE8</div><div class='add'>+0x586E = 0x4EE1</div><div class='add'>+0x586F = 0x4EEB</div><div class='add'>+0x5870 = 0x4EDE</div><div class='add'>+0x5871 = 0x50B4</div><div class='add'>+0x5872 = 0x4EF3</div><div class='add'>+0x5873 = 0x4F22</div><div class='add'>+0x5874 = 0x4F64</div><div class='add'>+0x5875 = 0x4EF5</div><div class='add'>+0x5876 = 0x5000</div><div class='add'>+0x5877 = 0x5096</div><div class='add'>+0x5878 = 0x4F09</div><div class='add'>+0x5879 = 0x4F47</div><div class='add'>+0x587A = 0x4F5E</div><div class='add'>+0x587B = 0x4F67</div><div class='add'>+0x587C = 0x6538</div><div class='add'>+0x587D = 0x4F5A</div><div class='add'>+0x587E = 0x4F5D</div><div class='add'>+0x5921 = 0x4F5F</div><div class='add'>+0x5922 = 0x4F57</div><div class='add'>+0x5923 = 0x4F32</div><div class='add'>+0x5924 = 0x4F3D</div><div class='add'>+0x5925 = 0x4F76</div><div class='add'>+0x5926 = 0x4F74</div><div class='add'>+0x5927 = 0x4F91</div><div class='add'>+0x5928 = 0x4F89</div><div class='add'>+0x5929 = 0x4F83</div><div class='add'>+0x592A = 0x4F8F</div><div class='add'>+0x592B = 0x4F7E</div><div class='add'>+0x592C = 0x4F7B</div><div class='add'>+0x592D = 0x5115</div><div class='add'>+0x592E = 0x4F7C</div><div class='add'>+0x592F = 0x5102</div><div class='add'>+0x5930 = 0x4F94</div><div class='add'>+0x5931 = 0x5114</div><div class='add'>+0x5932 = 0x513C</div><div class='add'>+0x5933 = 0x5137</div><div class='add'>+0x5934 = 0x4FC5</div><div class='add'>+0x5935 = 0x4FDA</div><div class='add'>+0x5936 = 0x4FE3</div><div class='add'>+0x5937 = 0x4FDC</div><div class='add'>+0x5938 = 0x4FD1</div><div class='add'>+0x5939 = 0x4FDF</div><div class='add'>+0x593A = 0x4FF8</div><div class='add'>+0x593B = 0x5029</div><div class='add'>+0x593C = 0x504C</div><div class='add'>+0x593D = 0x4FF3</div><div class='add'>+0x593E = 0x502C</div><div class='add'>+0x593F = 0x500F</div><div class='add'>+0x5940 = 0x502E</div><div class='add'>+0x5941 = 0x502D</div><div class='add'>+0x5942 = 0x4FFE</div><div class='add'>+0x5943 = 0x501C</div><div class='add'>+0x5944 = 0x500C</div><div class='add'>+0x5945 = 0x5025</div><div class='add'>+0x5946 = 0x5028</div><div class='add'>+0x5947 = 0x50E8</div><div class='add'>+0x5948 = 0x5043</div><div class='add'>+0x5949 = 0x5055</div><div class='add'>+0x594A = 0x5048</div><div class='add'>+0x594B = 0x504E</div><div class='add'>+0x594C = 0x506C</div><div class='add'>+0x594D = 0x50C2</div><div class='add'>+0x594E = 0x513B</div><div class='add'>+0x594F = 0x5110</div><div class='add'>+0x5950 = 0x513A</div><div class='add'>+0x5951 = 0x50BA</div><div class='add'>+0x5952 = 0x50D6</div><div class='add'>+0x5953 = 0x5106</div><div class='add'>+0x5954 = 0x50ED</div><div class='add'>+0x5955 = 0x50EC</div><div class='add'>+0x5956 = 0x50E6</div><div class='add'>+0x5957 = 0x50EE</div><div class='add'>+0x5958 = 0x5107</div><div class='add'>+0x5959 = 0x510B</div><div class='add'>+0x595A = 0x4EDD</div><div class='add'>+0x595B = 0x6C3D</div><div class='add'>+0x595C = 0x4F58</div><div class='add'>+0x595D = 0x50C9</div><div class='add'>+0x595E = 0x4FCE</div><div class='add'>+0x595F = 0x9FA0</div><div class='add'>+0x5960 = 0x6C46</div><div class='add'>+0x5961 = 0x7CF4</div><div class='add'>+0x5962 = 0x516E</div><div class='add'>+0x5963 = 0x5DFD</div><div class='add'>+0x5964 = 0x9ECC</div><div class='add'>+0x5965 = 0x9998</div><div class='add'>+0x5966 = 0x56C5</div><div class='add'>+0x5967 = 0x5914</div><div class='add'>+0x5968 = 0x52F9</div><div class='add'>+0x5969 = 0x530D</div><div class='add'>+0x596A = 0x8A07</div><div class='add'>+0x596B = 0x5310</div><div class='add'>+0x596C = 0x9CEC</div><div class='add'>+0x596D = 0x5919</div><div class='add'>+0x596E = 0x5155</div><div class='add'>+0x596F = 0x4EA0</div><div class='add'>+0x5970 = 0x5156</div><div class='add'>+0x5971 = 0x4EB3</div><div class='add'>+0x5972 = 0x886E</div><div class='add'>+0x5973 = 0x88A4</div><div class='add'>+0x5974 = 0x893B</div><div class='add'>+0x5975 = 0x81E0</div><div class='add'>+0x5976 = 0x88D2</div><div class='add'>+0x5977 = 0x7980</div><div class='add'>+0x5978 = 0x5B34</div><div class='add'>+0x5979 = 0x8803</div><div class='add'>+0x597A = 0x7FB8</div><div class='add'>+0x597B = 0x51AB</div><div class='add'>+0x597C = 0x51B1</div><div class='add'>+0x597D = 0x51BD</div><div class='add'>+0x597E = 0x51BC</div><div class='add'>+0x5A21 = 0x51C7</div><div class='add'>+0x5A22 = 0x5196</div><div class='add'>+0x5A23 = 0x51A2</div><div class='add'>+0x5A24 = 0x51A5</div><div class='add'>+0x5A25 = 0x8A01</div><div class='add'>+0x5A26 = 0x8A10</div><div class='add'>+0x5A27 = 0x8A0C</div><div class='add'>+0x5A28 = 0x8A15</div><div class='add'>+0x5A29 = 0x8B33</div><div class='add'>+0x5A2A = 0x8A4E</div><div class='add'>+0x5A2B = 0x8A25</div><div class='add'>+0x5A2C = 0x8A41</div><div class='add'>+0x5A2D = 0x8A36</div><div class='add'>+0x5A2E = 0x8A46</div><div class='add'>+0x5A2F = 0x8A54</div><div class='add'>+0x5A30 = 0x8A58</div><div class='add'>+0x5A31 = 0x8A52</div><div class='add'>+0x5A32 = 0x8A86</div><div class='add'>+0x5A33 = 0x8A84</div><div class='add'>+0x5A34 = 0x8A7F</div><div class='add'>+0x5A35 = 0x8A70</div><div class='add'>+0x5A36 = 0x8A7C</div><div class='add'>+0x5A37 = 0x8A75</div><div class='add'>+0x5A38 = 0x8A6C</div><div class='add'>+0x5A39 = 0x8A6E</div><div class='add'>+0x5A3A = 0x8ACD</div><div class='add'>+0x5A3B = 0x8AE2</div><div class='add'>+0x5A3C = 0x8A61</div><div class='add'>+0x5A3D = 0x8A9A</div><div class='add'>+0x5A3E = 0x8AA5</div><div class='add'>+0x5A3F = 0x8A91</div><div class='add'>+0x5A40 = 0x8A92</div><div class='add'>+0x5A41 = 0x8ACF</div><div class='add'>+0x5A42 = 0x8AD1</div><div class='add'>+0x5A43 = 0x8AC9</div><div class='add'>+0x5A44 = 0x8ADB</div><div class='add'>+0x5A45 = 0x8AD7</div><div class='add'>+0x5A46 = 0x8AC2</div><div class='add'>+0x5A47 = 0x8AB6</div><div class='add'>+0x5A48 = 0x8AF6</div><div class='add'>+0x5A49 = 0x8AEB</div><div class='add'>+0x5A4A = 0x8B14</div><div class='add'>+0x5A4B = 0x8B01</div><div class='add'>+0x5A4C = 0x8AE4</div><div class='add'>+0x5A4D = 0x8AED</div><div class='add'>+0x5A4E = 0x8AFC</div><div class='add'>+0x5A4F = 0x8AF3</div><div class='add'>+0x5A50 = 0x8AE6</div><div class='add'>+0x5A51 = 0x8AEE</div><div class='add'>+0x5A52 = 0x8ADE</div><div class='add'>+0x5A53 = 0x8B28</div><div class='add'>+0x5A54 = 0x8B9C</div><div class='add'>+0x5A55 = 0x8B16</div><div class='add'>+0x5A56 = 0x8B1A</div><div class='add'>+0x5A57 = 0x8B10</div><div class='add'>+0x5A58 = 0x8B2B</div><div class='add'>+0x5A59 = 0x8B2D</div><div class='add'>+0x5A5A = 0x8B56</div><div class='add'>+0x5A5B = 0x8B59</div><div class='add'>+0x5A5C = 0x8B4E</div><div class='add'>+0x5A5D = 0x8B9E</div><div class='add'>+0x5A5E = 0x8B6B</div><div class='add'>+0x5A5F = 0x8B96</div><div class='add'>+0x5A60 = 0x5369</div><div class='add'>+0x5A61 = 0x537A</div><div class='add'>+0x5A62 = 0x961D</div><div class='add'>+0x5A63 = 0x9622</div><div class='add'>+0x5A64 = 0x9621</div><div class='add'>+0x5A65 = 0x9631</div><div class='add'>+0x5A66 = 0x962A</div><div class='add'>+0x5A67 = 0x963D</div><div class='add'>+0x5A68 = 0x963C</div><div class='add'>+0x5A69 = 0x9642</div><div class='add'>+0x5A6A = 0x9658</div><div class='add'>+0x5A6B = 0x9654</div><div class='add'>+0x5A6C = 0x965F</div><div class='add'>+0x5A6D = 0x9689</div><div class='add'>+0x5A6E = 0x966C</div><div class='add'>+0x5A6F = 0x9672</div><div class='add'>+0x5A70 = 0x9674</div><div class='add'>+0x5A71 = 0x9688</div><div class='add'>+0x5A72 = 0x968D</div><div class='add'>+0x5A73 = 0x9697</div><div class='add'>+0x5A74 = 0x96B0</div><div class='add'>+0x5A75 = 0x9097</div><div class='add'>+0x5A76 = 0x909B</div><div class='add'>+0x5A77 = 0x913A</div><div class='add'>+0x5A78 = 0x9099</div><div class='add'>+0x5A79 = 0x9114</div><div class='add'>+0x5A7A = 0x90A1</div><div class='add'>+0x5A7B = 0x90B4</div><div class='add'>+0x5A7C = 0x90B3</div><div class='add'>+0x5A7D = 0x90B6</div><div class='add'>+0x5A7E = 0x9134</div><div class='add'>+0x5B21 = 0x90B8</div><div class='add'>+0x5B22 = 0x90B0</div><div class='add'>+0x5B23 = 0x90DF</div><div class='add'>+0x5B24 = 0x90C5</div><div class='add'>+0x5B25 = 0x90BE</div><div class='add'>+0x5B26 = 0x9136</div><div class='add'>+0x5B27 = 0x90C4</div><div class='add'>+0x5B28 = 0x90C7</div><div class='add'>+0x5B29 = 0x9106</div><div class='add'>+0x5B2A = 0x9148</div><div class='add'>+0x5B2B = 0x90E2</div><div class='add'>+0x5B2C = 0x90DC</div><div class='add'>+0x5B2D = 0x90D7</div><div class='add'>+0x5B2E = 0x90DB</div><div class='add'>+0x5B2F = 0x90EB</div><div class='add'>+0x5B30 = 0x90EF</div><div class='add'>+0x5B31 = 0x90FE</div><div class='add'>+0x5B32 = 0x9104</div><div class='add'>+0x5B33 = 0x9122</div><div class='add'>+0x5B34 = 0x911E</div><div class='add'>+0x5B35 = 0x9123</div><div class='add'>+0x5B36 = 0x9131</div><div class='add'>+0x5B37 = 0x912F</div><div class='add'>+0x5B38 = 0x9139</div><div class='add'>+0x5B39 = 0x9143</div><div class='add'>+0x5B3A = 0x9146</div><div class='add'>+0x5B3B = 0x82BB</div><div class='add'>+0x5B3C = 0x5950</div><div class='add'>+0x5B3D = 0x52F1</div><div class='add'>+0x5B3E = 0x52AC</div><div class='add'>+0x5B3F = 0x52AD</div><div class='add'>+0x5B40 = 0x52BE</div><div class='add'>+0x5B41 = 0x54FF</div><div class='add'>+0x5B42 = 0x52D0</div><div class='add'>+0x5B43 = 0x52D6</div><div class='add'>+0x5B44 = 0x52F0</div><div class='add'>+0x5B45 = 0x53DF</div><div class='add'>+0x5B46 = 0x71EE</div><div class='add'>+0x5B47 = 0x77CD</div><div class='add'>+0x5B48 = 0x5EF4</div><div class='add'>+0x5B49 = 0x51F5</div><div class='add'>+0x5B4A = 0x51FC</div><div class='add'>+0x5B4B = 0x9B2F</div><div class='add'>+0x5B4C = 0x53B6</div><div class='add'>+0x5B4D = 0x5F01</div><div class='add'>+0x5B4E = 0x755A</div><div class='add'>+0x5B4F = 0x5DF0</div><div class='add'>+0x5B50 = 0x574C</div><div class='add'>+0x5B51 = 0x580A</div><div class='add'>+0x5B52 = 0x57A1</div><div class='add'>+0x5B53 = 0x587E</div><div class='add'>+0x5B54 = 0x58BC</div><div class='add'>+0x5B55 = 0x58C5</div><div class='add'>+0x5B56 = 0x58D1</div><div class='add'>+0x5B57 = 0x5729</div><div class='add'>+0x5B58 = 0x572C</div><div class='add'>+0x5B59 = 0x572A</div><div class='add'>+0x5B5A = 0x5733</div><div class='add'>+0x5B5B = 0x58D9</div><div class='add'>+0x5B5C = 0x572E</div><div class='add'>+0x5B5D = 0x572F</div><div class='add'>+0x5B5E = 0x58E2</div><div class='add'>+0x5B5F = 0x573B</div><div class='add'>+0x5B60 = 0x5742</div><div class='add'>+0x5B61 = 0x5769</div><div class='add'>+0x5B62 = 0x58E0</div><div class='add'>+0x5B63 = 0x576B</div><div class='add'>+0x5B64 = 0x58DA</div><div class='add'>+0x5B65 = 0x577C</div><div class='add'>+0x5B66 = 0x577B</div><div class='add'>+0x5B67 = 0x5768</div><div class='add'>+0x5B68 = 0x576D</div><div class='add'>+0x5B69 = 0x5776</div><div class='add'>+0x5B6A = 0x5773</div><div class='add'>+0x5B6B = 0x57E1</div><div class='add'>+0x5B6C = 0x57A4</div><div class='add'>+0x5B6D = 0x578C</div><div class='add'>+0x5B6E = 0x584F</div><div class='add'>+0x5B6F = 0x57CF</div><div class='add'>+0x5B70 = 0x57A7</div><div class='add'>+0x5B71 = 0x5816</div><div class='add'>+0x5B72 = 0x5793</div><div class='add'>+0x5B73 = 0x57A0</div><div class='add'>+0x5B74 = 0x57D5</div><div class='add'>+0x5B75 = 0x5852</div><div class='add'>+0x5B76 = 0x581D</div><div class='add'>+0x5B77 = 0x5864</div><div class='add'>+0x5B78 = 0x57D2</div><div class='add'>+0x5B79 = 0x57B8</div><div class='add'>+0x5B7A = 0x57F4</div><div class='add'>+0x5B7B = 0x57EF</div><div class='add'>+0x5B7C = 0x57F8</div><div class='add'>+0x5B7D = 0x57E4</div><div class='add'>+0x5B7E = 0x57DD</div><div class='add'>+0x5C21 = 0x580B</div><div class='add'>+0x5C22 = 0x580D</div><div class='add'>+0x5C23 = 0x57FD</div><div class='add'>+0x5C24 = 0x57ED</div><div class='add'>+0x5C25 = 0x5800</div><div class='add'>+0x5C26 = 0x581E</div><div class='add'>+0x5C27 = 0x5819</div><div class='add'>+0x5C28 = 0x5844</div><div class='add'>+0x5C29 = 0x5820</div><div class='add'>+0x5C2A = 0x5865</div><div class='add'>+0x5C2B = 0x586C</div><div class='add'>+0x5C2C = 0x5881</div><div class='add'>+0x5C2D = 0x5889</div><div class='add'>+0x5C2E = 0x589A</div><div class='add'>+0x5C2F = 0x5880</div><div class='add'>+0x5C30 = 0x99A8</div><div class='add'>+0x5C31 = 0x9F19</div><div class='add'>+0x5C32 = 0x61FF</div><div class='add'>+0x5C33 = 0x8279</div><div class='add'>+0x5C34 = 0x827D</div><div class='add'>+0x5C35 = 0x827F</div><div class='add'>+0x5C36 = 0x828F</div><div class='add'>+0x5C37 = 0x828A</div><div class='add'>+0x5C38 = 0x82A8</div><div class='add'>+0x5C39 = 0x8284</div><div class='add'>+0x5C3A = 0x828E</div><div class='add'>+0x5C3B = 0x8291</div><div class='add'>+0x5C3C = 0x858C</div><div class='add'>+0x5C3D = 0x8299</div><div class='add'>+0x5C3E = 0x82AB</div><div class='add'>+0x5C3F = 0x8553</div><div class='add'>+0x5C40 = 0x82BE</div><div class='add'>+0x5C41 = 0x82B0</div><div class='add'>+0x5C42 = 0x85F6</div><div class='add'>+0x5C43 = 0x82CA</div><div class='add'>+0x5C44 = 0x82E3</div><div class='add'>+0x5C45 = 0x8298</div><div class='add'>+0x5C46 = 0x82B7</div><div class='add'>+0x5C47 = 0x82AE</div><div class='add'>+0x5C48 = 0x83A7</div><div class='add'>+0x5C49 = 0x8407</div><div class='add'>+0x5C4A = 0x84EF</div><div class='add'>+0x5C4B = 0x82A9</div><div class='add'>+0x5C4C = 0x82B4</div><div class='add'>+0x5C4D = 0x82A1</div><div class='add'>+0x5C4E = 0x82AA</div><div class='add'>+0x5C4F = 0x829F</div><div class='add'>+0x5C50 = 0x82C4</div><div class='add'>+0x5C51 = 0x82E7</div><div class='add'>+0x5C52 = 0x82A4</div><div class='add'>+0x5C53 = 0x82E1</div><div class='add'>+0x5C54 = 0x8309</div><div class='add'>+0x5C55 = 0x82F7</div><div class='add'>+0x5C56 = 0x82E4</div><div class='add'>+0x5C57 = 0x8622</div><div class='add'>+0x5C58 = 0x8307</div><div class='add'>+0x5C59 = 0x82DC</div><div class='add'>+0x5C5A = 0x82F4</div><div class='add'>+0x5C5B = 0x82D2</div><div class='add'>+0x5C5C = 0x82D8</div><div class='add'>+0x5C5D = 0x830C</div><div class='add'>+0x5C5E = 0x82FB</div><div class='add'>+0x5C5F = 0x82D3</div><div class='add'>+0x5C60 = 0x8526</div><div class='add'>+0x5C61 = 0x831A</div><div class='add'>+0x5C62 = 0x8306</div><div class='add'>+0x5C63 = 0x584B</div><div class='add'>+0x5C64 = 0x7162</div><div class='add'>+0x5C65 = 0x82E0</div><div class='add'>+0x5C66 = 0x82D5</div><div class='add'>+0x5C67 = 0x831C</div><div class='add'>+0x5C68 = 0x8351</div><div class='add'>+0x5C69 = 0x8558</div><div class='add'>+0x5C6A = 0x84FD</div><div class='add'>+0x5C6B = 0x8308</div><div class='add'>+0x5C6C = 0x8392</div><div class='add'>+0x5C6D = 0x833C</div><div class='add'>+0x5C6E = 0x8334</div><div class='add'>+0x5C6F = 0x8331</div><div class='add'>+0x5C70 = 0x839B</div><div class='add'>+0x5C71 = 0x854E</div><div class='add'>+0x5C72 = 0x832F</div><div class='add'>+0x5C73 = 0x834F</div><div class='add'>+0x5C74 = 0x8347</div><div class='add'>+0x5C75 = 0x8343</div><div class='add'>+0x5C76 = 0x8588</div><div class='add'>+0x5C77 = 0x8340</div><div class='add'>+0x5C78 = 0x8317</div><div class='add'>+0x5C79 = 0x85BA</div><div class='add'>+0x5C7A = 0x832D</div><div class='add'>+0x5C7B = 0x833A</div><div class='add'>+0x5C7C = 0x8333</div><div class='add'>+0x5C7D = 0x7296</div><div class='add'>+0x5C7E = 0x6ECE</div><div class='add'>+0x5D21 = 0x8541</div><div class='add'>+0x5D22 = 0x831B</div><div class='add'>+0x5D23 = 0x85CE</div><div class='add'>+0x5D24 = 0x8552</div><div class='add'>+0x5D25 = 0x84C0</div><div class='add'>+0x5D26 = 0x8452</div><div class='add'>+0x5D27 = 0x8464</div><div class='add'>+0x5D28 = 0x83B0</div><div class='add'>+0x5D29 = 0x8378</div><div class='add'>+0x5D2A = 0x8494</div><div class='add'>+0x5D2B = 0x8435</div><div class='add'>+0x5D2C = 0x83A0</div><div class='add'>+0x5D2D = 0x83AA</div><div class='add'>+0x5D2E = 0x8393</div><div class='add'>+0x5D2F = 0x839C</div><div class='add'>+0x5D30 = 0x8385</div><div class='add'>+0x5D31 = 0x837C</div><div class='add'>+0x5D32 = 0x859F</div><div class='add'>+0x5D33 = 0x83A9</div><div class='add'>+0x5D34 = 0x837D</div><div class='add'>+0x5D35 = 0x8555</div><div class='add'>+0x5D36 = 0x837B</div><div class='add'>+0x5D37 = 0x8398</div><div class='add'>+0x5D38 = 0x839E</div><div class='add'>+0x5D39 = 0x83A8</div><div class='add'>+0x5D3A = 0x9DAF</div><div class='add'>+0x5D3B = 0x8493</div><div class='add'>+0x5D3C = 0x83C1</div><div class='add'>+0x5D3D = 0x8401</div><div class='add'>+0x5D3E = 0x83E5</div><div class='add'>+0x5D3F = 0x83D8</div><div class='add'>+0x5D40 = 0x5807</div><div class='add'>+0x5D41 = 0x8418</div><div class='add'>+0x5D42 = 0x840B</div><div class='add'>+0x5D43 = 0x83DD</div><div class='add'>+0x5D44 = 0x83FD</div><div class='add'>+0x5D45 = 0x83D6</div><div class='add'>+0x5D46 = 0x841C</div><div class='add'>+0x5D47 = 0x8438</div><div class='add'>+0x5D48 = 0x8411</div><div class='add'>+0x5D49 = 0x8406</div><div class='add'>+0x5D4A = 0x83D4</div><div class='add'>+0x5D4B = 0x83DF</div><div class='add'>+0x5D4C = 0x840F</div><div class='add'>+0x5D4D = 0x8403</div><div class='add'>+0x5D4E = 0x83F8</div><div class='add'>+0x5D4F = 0x83F9</div><div class='add'>+0x5D50 = 0x83EA</div><div class='add'>+0x5D51 = 0x83C5</div><div class='add'>+0x5D52 = 0x83C0</div><div class='add'>+0x5D53 = 0x7E08</div><div class='add'>+0x5D54 = 0x83F0</div><div class='add'>+0x5D55 = 0x83E1</div><div class='add'>+0x5D56 = 0x845C</div><div class='add'>+0x5D57 = 0x8451</div><div class='add'>+0x5D58 = 0x845A</div><div class='add'>+0x5D59 = 0x8459</div><div class='add'>+0x5D5A = 0x8473</div><div class='add'>+0x5D5B = 0x8546</div><div class='add'>+0x5D5C = 0x8488</div><div class='add'>+0x5D5D = 0x847A</div><div class='add'>+0x5D5E = 0x8562</div><div class='add'>+0x5D5F = 0x8478</div><div class='add'>+0x5D60 = 0x843C</div><div class='add'>+0x5D61 = 0x8446</div><div class='add'>+0x5D62 = 0x8469</div><div class='add'>+0x5D63 = 0x8476</div><div class='add'>+0x5D64 = 0x851E</div><div class='add'>+0x5D65 = 0x848E</div><div class='add'>+0x5D66 = 0x8431</div><div class='add'>+0x5D67 = 0x846D</div><div class='add'>+0x5D68 = 0x84C1</div><div class='add'>+0x5D69 = 0x84CD</div><div class='add'>+0x5D6A = 0x84D0</div><div class='add'>+0x5D6B = 0x9A40</div><div class='add'>+0x5D6C = 0x84BD</div><div class='add'>+0x5D6D = 0x84D3</div><div class='add'>+0x5D6E = 0x84CA</div><div class='add'>+0x5D6F = 0x84BF</div><div class='add'>+0x5D70 = 0x84BA</div><div class='add'>+0x5D71 = 0x863A</div><div class='add'>+0x5D72 = 0x84A1</div><div class='add'>+0x5D73 = 0x84B9</div><div class='add'>+0x5D74 = 0x84B4</div><div class='add'>+0x5D75 = 0x8497</div><div class='add'>+0x5D76 = 0x93A3</div><div class='add'>+0x5D77 = 0x8577</div><div class='add'>+0x5D78 = 0x850C</div><div class='add'>+0x5D79 = 0x750D</div><div class='add'>+0x5D7A = 0x8538</div><div class='add'>+0x5D7B = 0x84F0</div><div class='add'>+0x5D7C = 0x861E</div><div class='add'>+0x5D7D = 0x851F</div><div class='add'>+0x5D7E = 0x85FA</div><div class='add'>+0x5E21 = 0x8556</div><div class='add'>+0x5E22 = 0x853B</div><div class='add'>+0x5E23 = 0x84FF</div><div class='add'>+0x5E24 = 0x84FC</div><div class='add'>+0x5E25 = 0x8559</div><div class='add'>+0x5E26 = 0x8548</div><div class='add'>+0x5E27 = 0x8568</div><div class='add'>+0x5E28 = 0x8564</div><div class='add'>+0x5E29 = 0x855E</div><div class='add'>+0x5E2A = 0x857A</div><div class='add'>+0x5E2B = 0x77A2</div><div class='add'>+0x5E2C = 0x8543</div><div class='add'>+0x5E2D = 0x8604</div><div class='add'>+0x5E2E = 0x857B</div><div class='add'>+0x5E2F = 0x85A4</div><div class='add'>+0x5E30 = 0x85A8</div><div class='add'>+0x5E31 = 0x8587</div><div class='add'>+0x5E32 = 0x858F</div><div class='add'>+0x5E33 = 0x8579</div><div class='add'>+0x5E34 = 0x85EA</div><div class='add'>+0x5E35 = 0x859C</div><div class='add'>+0x5E36 = 0x8585</div><div class='add'>+0x5E37 = 0x85B9</div><div class='add'>+0x5E38 = 0x85B7</div><div class='add'>+0x5E39 = 0x85B0</div><div class='add'>+0x5E3A = 0x861A</div><div class='add'>+0x5E3B = 0x85C1</div><div class='add'>+0x5E3C = 0x85DC</div><div class='add'>+0x5E3D = 0x85FF</div><div class='add'>+0x5E3E = 0x8627</div><div class='add'>+0x5E3F = 0x8605</div><div class='add'>+0x5E40 = 0x8629</div><div class='add'>+0x5E41 = 0x8616</div><div class='add'>+0x5E42 = 0x863C</div><div class='add'>+0x5E43 = 0x5EFE</div><div class='add'>+0x5E44 = 0x5F08</div><div class='add'>+0x5E45 = 0x593C</div><div class='add'>+0x5E46 = 0x5969</div><div class='add'>+0x5E47 = 0x8037</div><div class='add'>+0x5E48 = 0x5955</div><div class='add'>+0x5E49 = 0x595A</div><div class='add'>+0x5E4A = 0x5958</div><div class='add'>+0x5E4B = 0x530F</div><div class='add'>+0x5E4C = 0x5C22</div><div class='add'>+0x5E4D = 0x5C25</div><div class='add'>+0x5E4E = 0x5C2C</div><div class='add'>+0x5E4F = 0x5C37</div><div class='add'>+0x5E50 = 0x624C</div><div class='add'>+0x5E51 = 0x636B</div><div class='add'>+0x5E52 = 0x6476</div><div class='add'>+0x5E53 = 0x62BB</div><div class='add'>+0x5E54 = 0x62CA</div><div class='add'>+0x5E55 = 0x62DA</div><div class='add'>+0x5E56 = 0x62D7</div><div class='add'>+0x5E57 = 0x62EE</div><div class='add'>+0x5E58 = 0x649F</div><div class='add'>+0x5E59 = 0x62F6</div><div class='add'>+0x5E5A = 0x6339</div><div class='add'>+0x5E5B = 0x634B</div><div class='add'>+0x5E5C = 0x6343</div><div class='add'>+0x5E5D = 0x63AD</div><div class='add'>+0x5E5E = 0x63F6</div><div class='add'>+0x5E5F = 0x6371</div><div class='add'>+0x5E60 = 0x637A</div><div class='add'>+0x5E61 = 0x638E</div><div class='add'>+0x5E62 = 0x6451</div><div class='add'>+0x5E63 = 0x636D</div><div class='add'>+0x5E64 = 0x63AC</div><div class='add'>+0x5E65 = 0x638A</div><div class='add'>+0x5E66 = 0x6369</div><div class='add'>+0x5E67 = 0x63AE</div><div class='add'>+0x5E68 = 0x645C</div><div class='add'>+0x5E69 = 0x63F2</div><div class='add'>+0x5E6A = 0x63F8</div><div class='add'>+0x5E6B = 0x63E0</div><div class='add'>+0x5E6C = 0x64B3</div><div class='add'>+0x5E6D = 0x63C4</div><div class='add'>+0x5E6E = 0x63DE</div><div class='add'>+0x5E6F = 0x63CE</div><div class='add'>+0x5E70 = 0x6452</div><div class='add'>+0x5E71 = 0x63C6</div><div class='add'>+0x5E72 = 0x63BE</div><div class='add'>+0x5E73 = 0x6504</div><div class='add'>+0x5E74 = 0x6441</div><div class='add'>+0x5E75 = 0x640B</div><div class='add'>+0x5E76 = 0x641B</div><div class='add'>+0x5E77 = 0x6420</div><div class='add'>+0x5E78 = 0x640C</div><div class='add'>+0x5E79 = 0x6426</div><div class='add'>+0x5E7A = 0x6421</div><div class='add'>+0x5E7B = 0x645E</div><div class='add'>+0x5E7C = 0x6516</div><div class='add'>+0x5E7D = 0x646D</div><div class='add'>+0x5E7E = 0x6496</div><div class='add'>+0x5F21 = 0x647A</div><div class='add'>+0x5F22 = 0x64F7</div><div class='add'>+0x5F23 = 0x64FC</div><div class='add'>+0x5F24 = 0x6499</div><div class='add'>+0x5F25 = 0x651B</div><div class='add'>+0x5F26 = 0x64C0</div><div class='add'>+0x5F27 = 0x64D0</div><div class='add'>+0x5F28 = 0x64D7</div><div class='add'>+0x5F29 = 0x64E4</div><div class='add'>+0x5F2A = 0x64E2</div><div class='add'>+0x5F2B = 0x6509</div><div class='add'>+0x5F2C = 0x6525</div><div class='add'>+0x5F2D = 0x652E</div><div class='add'>+0x5F2E = 0x5F0B</div><div class='add'>+0x5F2F = 0x5FD2</div><div class='add'>+0x5F30 = 0x7519</div><div class='add'>+0x5F31 = 0x5F11</div><div class='add'>+0x5F32 = 0x535F</div><div class='add'>+0x5F33 = 0x53F1</div><div class='add'>+0x5F34 = 0x5630</div><div class='add'>+0x5F35 = 0x53E9</div><div class='add'>+0x5F36 = 0x53E8</div><div class='add'>+0x5F37 = 0x53FB</div><div class='add'>+0x5F38 = 0x5412</div><div class='add'>+0x5F39 = 0x5416</div><div class='add'>+0x5F3A = 0x5406</div><div class='add'>+0x5F3B = 0x544B</div><div class='add'>+0x5F3C = 0x5638</div><div class='add'>+0x5F3D = 0x56C8</div><div class='add'>+0x5F3E = 0x5454</div><div class='add'>+0x5F3F = 0x56A6</div><div class='add'>+0x5F40 = 0x5443</div><div class='add'>+0x5F41 = 0x5421</div><div class='add'>+0x5F42 = 0x5504</div><div class='add'>+0x5F43 = 0x54BC</div><div class='add'>+0x5F44 = 0x5423</div><div class='add'>+0x5F45 = 0x5432</div><div class='add'>+0x5F46 = 0x5482</div><div class='add'>+0x5F47 = 0x5494</div><div class='add'>+0x5F48 = 0x5477</div><div class='add'>+0x5F49 = 0x5471</div><div class='add'>+0x5F4A = 0x5464</div><div class='add'>+0x5F4B = 0x549A</div><div class='add'>+0x5F4C = 0x5680</div><div class='add'>+0x5F4D = 0x5484</div><div class='add'>+0x5F4E = 0x5476</div><div class='add'>+0x5F4F = 0x5466</div><div class='add'>+0x5F50 = 0x565D</div><div class='add'>+0x5F51 = 0x54D0</div><div class='add'>+0x5F52 = 0x54AD</div><div class='add'>+0x5F53 = 0x54C2</div><div class='add'>+0x5F54 = 0x54B4</div><div class='add'>+0x5F55 = 0x5660</div><div class='add'>+0x5F56 = 0x54A7</div><div class='add'>+0x5F57 = 0x54A6</div><div class='add'>+0x5F58 = 0x5635</div><div class='add'>+0x5F59 = 0x55F6</div><div class='add'>+0x5F5A = 0x5472</div><div class='add'>+0x5F5B = 0x54A3</div><div class='add'>+0x5F5C = 0x5666</div><div class='add'>+0x5F5D = 0x54BB</div><div class='add'>+0x5F5E = 0x54BF</div><div class='add'>+0x5F5F = 0x54CC</div><div class='add'>+0x5F60 = 0x5672</div><div class='add'>+0x5F61 = 0x54DA</div><div class='add'>+0x5F62 = 0x568C</div><div class='add'>+0x5F63 = 0x54A9</div><div class='add'>+0x5F64 = 0x54AA</div><div class='add'>+0x5F65 = 0x54A4</div><div class='add'>+0x5F66 = 0x5665</div><div class='add'>+0x5F67 = 0x54CF</div><div class='add'>+0x5F68 = 0x54DE</div><div class='add'>+0x5F69 = 0x561C</div><div class='add'>+0x5F6A = 0x54E7</div><div class='add'>+0x5F6B = 0x562E</div><div class='add'>+0x5F6C = 0x54FD</div><div class='add'>+0x5F6D = 0x5514</div><div class='add'>+0x5F6E = 0x54F3</div><div class='add'>+0x5F6F = 0x55E9</div><div class='add'>+0x5F70 = 0x5523</div><div class='add'>+0x5F71 = 0x550F</div><div class='add'>+0x5F72 = 0x5511</div><div class='add'>+0x5F73 = 0x5527</div><div class='add'>+0x5F74 = 0x552A</div><div class='add'>+0x5F75 = 0x5616</div><div class='add'>+0x5F76 = 0x558F</div><div class='add'>+0x5F77 = 0x55B5</div><div class='add'>+0x5F78 = 0x5549</div><div class='add'>+0x5F79 = 0x56C0</div><div class='add'>+0x5F7A = 0x5541</div><div class='add'>+0x5F7B = 0x5555</div><div class='add'>+0x5F7C = 0x553F</div><div class='add'>+0x5F7D = 0x5550</div><div class='add'>+0x5F7E = 0x553C</div><div class='add'>+0x6021 = 0x5537</div><div class='add'>+0x6022 = 0x5556</div><div class='add'>+0x6023 = 0x5575</div><div class='add'>+0x6024 = 0x5576</div><div class='add'>+0x6025 = 0x5577</div><div class='add'>+0x6026 = 0x5533</div><div class='add'>+0x6027 = 0x5530</div><div class='add'>+0x6028 = 0x555C</div><div class='add'>+0x6029 = 0x558B</div><div class='add'>+0x602A = 0x55D2</div><div class='add'>+0x602B = 0x5583</div><div class='add'>+0x602C = 0x55B1</div><div class='add'>+0x602D = 0x55B9</div><div class='add'>+0x602E = 0x5588</div><div class='add'>+0x602F = 0x5581</div><div class='add'>+0x6030 = 0x559F</div><div class='add'>+0x6031 = 0x557E</div><div class='add'>+0x6032 = 0x55D6</div><div class='add'>+0x6033 = 0x5591</div><div class='add'>+0x6034 = 0x557B</div><div class='add'>+0x6035 = 0x55DF</div><div class='add'>+0x6036 = 0x560D</div><div class='add'>+0x6037 = 0x56B3</div><div class='add'>+0x6038 = 0x5594</div><div class='add'>+0x6039 = 0x5599</div><div class='add'>+0x603A = 0x55EA</div><div class='add'>+0x603B = 0x55F7</div><div class='add'>+0x603C = 0x55C9</div><div class='add'>+0x603D = 0x561F</div><div class='add'>+0x603E = 0x55D1</div><div class='add'>+0x603F = 0x56C1</div><div class='add'>+0x6040 = 0x55EC</div><div class='add'>+0x6041 = 0x55D4</div><div class='add'>+0x6042 = 0x55E6</div><div class='add'>+0x6043 = 0x55DD</div><div class='add'>+0x6044 = 0x55C4</div><div class='add'>+0x6045 = 0x55EF</div><div class='add'>+0x6046 = 0x55E5</div><div class='add'>+0x6047 = 0x55F2</div><div class='add'>+0x6048 = 0x566F</div><div class='add'>+0x6049 = 0x55CC</div><div class='add'>+0x604A = 0x55CD</div><div class='add'>+0x604B = 0x55E8</div><div class='add'>+0x604C = 0x55F5</div><div class='add'>+0x604D = 0x55E4</div><div class='add'>+0x604E = 0x8F61</div><div class='add'>+0x604F = 0x561E</div><div class='add'>+0x6050 = 0x5608</div><div class='add'>+0x6051 = 0x560C</div><div class='add'>+0x6052 = 0x5601</div><div class='add'>+0x6053 = 0x56B6</div><div class='add'>+0x6054 = 0x5623</div><div class='add'>+0x6055 = 0x55FE</div><div class='add'>+0x6056 = 0x5600</div><div class='add'>+0x6057 = 0x5627</div><div class='add'>+0x6058 = 0x562D</div><div class='add'>+0x6059 = 0x5658</div><div class='add'>+0x605A = 0x5639</div><div class='add'>+0x605B = 0x5657</div><div class='add'>+0x605C = 0x562C</div><div class='add'>+0x605D = 0x564D</div><div class='add'>+0x605E = 0x5662</div><div class='add'>+0x605F = 0x5659</div><div class='add'>+0x6060 = 0x5695</div><div class='add'>+0x6061 = 0x564C</div><div class='add'>+0x6062 = 0x5654</div><div class='add'>+0x6063 = 0x5686</div><div class='add'>+0x6064 = 0x5664</div><div class='add'>+0x6065 = 0x5671</div><div class='add'>+0x6066 = 0x566B</div><div class='add'>+0x6067 = 0x567B</div><div class='add'>+0x6068 = 0x567C</div><div class='add'>+0x6069 = 0x5685</div><div class='add'>+0x606A = 0x5693</div><div class='add'>+0x606B = 0x56AF</div><div class='add'>+0x606C = 0x56D4</div><div class='add'>+0x606D = 0x56D7</div><div class='add'>+0x606E = 0x56DD</div><div class='add'>+0x606F = 0x56E1</div><div class='add'>+0x6070 = 0x5707</div><div class='add'>+0x6071 = 0x56EB</div><div class='add'>+0x6072 = 0x56F9</div><div class='add'>+0x6073 = 0x56FF</div><div class='add'>+0x6074 = 0x5704</div><div class='add'>+0x6075 = 0x570A</div><div class='add'>+0x6076 = 0x5709</div><div class='add'>+0x6077 = 0x571C</div><div class='add'>+0x6078 = 0x5E43</div><div class='add'>+0x6079 = 0x5E19</div><div class='add'>+0x607A = 0x5E14</div><div class='add'>+0x607B = 0x5E11</div><div class='add'>+0x607C = 0x5E6C</div><div class='add'>+0x607D = 0x5E58</div><div class='add'>+0x607E = 0x5E57</div><div class='add'>+0x6121 = 0x5E37</div><div class='add'>+0x6122 = 0x5E44</div><div class='add'>+0x6123 = 0x5E54</div><div class='add'>+0x6124 = 0x5E5B</div><div class='add'>+0x6125 = 0x5E5E</div><div class='add'>+0x6126 = 0x5E61</div><div class='add'>+0x6127 = 0x5C8C</div><div class='add'>+0x6128 = 0x5C7A</div><div class='add'>+0x6129 = 0x5C8D</div><div class='add'>+0x612A = 0x5C90</div><div class='add'>+0x612B = 0x5D87</div><div class='add'>+0x612C = 0x5C88</div><div class='add'>+0x612D = 0x5CF4</div><div class='add'>+0x612E = 0x5C99</div><div class='add'>+0x612F = 0x5C91</div><div class='add'>+0x6130 = 0x5D50</div><div class='add'>+0x6131 = 0x5C9C</div><div class='add'>+0x6132 = 0x5CB5</div><div class='add'>+0x6133 = 0x5CA2</div><div class='add'>+0x6134 = 0x5D2C</div><div class='add'>+0x6135 = 0x5CAC</div><div class='add'>+0x6136 = 0x5CAB</div><div class='add'>+0x6137 = 0x5CB1</div><div class='add'>+0x6138 = 0x5CA3</div><div class='add'>+0x6139 = 0x5CC1</div><div class='add'>+0x613A = 0x5CB7</div><div class='add'>+0x613B = 0x5DA7</div><div class='add'>+0x613C = 0x5CD2</div><div class='add'>+0x613D = 0x5DA0</div><div class='add'>+0x613E = 0x5CCB</div><div class='add'>+0x613F = 0x5D22</div><div class='add'>+0x6140 = 0x5D97</div><div class='add'>+0x6141 = 0x5D0D</div><div class='add'>+0x6142 = 0x5D27</div><div class='add'>+0x6143 = 0x5D26</div><div class='add'>+0x6144 = 0x5D2E</div><div class='add'>+0x6145 = 0x5D24</div><div class='add'>+0x6146 = 0x5D1E</div><div class='add'>+0x6147 = 0x5D06</div><div class='add'>+0x6148 = 0x5D1B</div><div class='add'>+0x6149 = 0x5DB8</div><div class='add'>+0x614A = 0x5D3E</div><div class='add'>+0x614B = 0x5D34</div><div class='add'>+0x614C = 0x5D3D</div><div class='add'>+0x614D = 0x5D6C</div><div class='add'>+0x614E = 0x5D5B</div><div class='add'>+0x614F = 0x5D6F</div><div class='add'>+0x6150 = 0x5D81</div><div class='add'>+0x6151 = 0x5D6B</div><div class='add'>+0x6152 = 0x5D4B</div><div class='add'>+0x6153 = 0x5D4A</div><div class='add'>+0x6154 = 0x5D69</div><div class='add'>+0x6155 = 0x5D74</div><div class='add'>+0x6156 = 0x5D82</div><div class='add'>+0x6157 = 0x5D99</div><div class='add'>+0x6158 = 0x5D9D</div><div class='add'>+0x6159 = 0x8C73</div><div class='add'>+0x615A = 0x5DB7</div><div class='add'>+0x615B = 0x5DD4</div><div class='add'>+0x615C = 0x5F73</div><div class='add'>+0x615D = 0x5F77</div><div class='add'>+0x615E = 0x5F82</div><div class='add'>+0x615F = 0x5F87</div><div class='add'>+0x6160 = 0x5F89</div><div class='add'>+0x6161 = 0x540E</div><div class='add'>+0x6162 = 0x5FA0</div><div class='add'>+0x6163 = 0x5F99</div><div class='add'>+0x6164 = 0x5F9C</div><div class='add'>+0x6165 = 0x5FA8</div><div class='add'>+0x6166 = 0x5FAD</div><div class='add'>+0x6167 = 0x5FB5</div><div class='add'>+0x6168 = 0x5FBC</div><div class='add'>+0x6169 = 0x8862</div><div class='add'>+0x616A = 0x5F61</div><div class='add'>+0x616B = 0x72AD</div><div class='add'>+0x616C = 0x72B0</div><div class='add'>+0x616D = 0x72B4</div><div class='add'>+0x616E = 0x7377</div><div class='add'>+0x616F = 0x7341</div><div class='add'>+0x6170 = 0x72C3</div><div class='add'>+0x6171 = 0x72C1</div><div class='add'>+0x6172 = 0x72CE</div><div class='add'>+0x6173 = 0x72CD</div><div class='add'>+0x6174 = 0x72D2</div><div class='add'>+0x6175 = 0x72E8</div><div class='add'>+0x6176 = 0x736A</div><div class='add'>+0x6177 = 0x72E9</div><div class='add'>+0x6178 = 0x733B</div><div class='add'>+0x6179 = 0x72F4</div><div class='add'>+0x617A = 0x72F7</div><div class='add'>+0x617B = 0x7301</div><div class='add'>+0x617C = 0x72F3</div><div class='add'>+0x617D = 0x736B</div><div class='add'>+0x617E = 0x72FA</div><div class='add'>+0x6221 = 0x72FB</div><div class='add'>+0x6222 = 0x7317</div><div class='add'>+0x6223 = 0x7313</div><div class='add'>+0x6224 = 0x7380</div><div class='add'>+0x6225 = 0x730A</div><div class='add'>+0x6226 = 0x731E</div><div class='add'>+0x6227 = 0x731D</div><div class='add'>+0x6228 = 0x737C</div><div class='add'>+0x6229 = 0x7322</div><div class='add'>+0x622A = 0x7339</div><div class='add'>+0x622B = 0x7325</div><div class='add'>+0x622C = 0x732C</div><div class='add'>+0x622D = 0x7338</div><div class='add'>+0x622E = 0x7331</div><div class='add'>+0x622F = 0x7350</div><div class='add'>+0x6230 = 0x734D</div><div class='add'>+0x6231 = 0x7357</div><div class='add'>+0x6232 = 0x7360</div><div class='add'>+0x6233 = 0x736C</div><div class='add'>+0x6234 = 0x736F</div><div class='add'>+0x6235 = 0x737E</div><div class='add'>+0x6236 = 0x821B</div><div class='add'>+0x6237 = 0x5925</div><div class='add'>+0x6238 = 0x98E7</div><div class='add'>+0x6239 = 0x5924</div><div class='add'>+0x623A = 0x5902</div><div class='add'>+0x623B = 0x98E0</div><div class='add'>+0x623C = 0x9933</div><div class='add'>+0x623D = 0x98E9</div><div class='add'>+0x623E = 0x993C</div><div class='add'>+0x623F = 0x98EA</div><div class='add'>+0x6240 = 0x98EB</div><div class='add'>+0x6241 = 0x98ED</div><div class='add'>+0x6242 = 0x98F4</div><div class='add'>+0x6243 = 0x9909</div><div class='add'>+0x6244 = 0x9911</div><div class='add'>+0x6245 = 0x4F59</div><div class='add'>+0x6246 = 0x991B</div><div class='add'>+0x6247 = 0x9937</div><div class='add'>+0x6248 = 0x993F</div><div class='add'>+0x6249 = 0x9943</div><div class='add'>+0x624A = 0x9948</div><div class='add'>+0x624B = 0x9949</div><div class='add'>+0x624C = 0x994A</div><div class='add'>+0x624D = 0x994C</div><div class='add'>+0x624E = 0x9962</div><div class='add'>+0x624F = 0x5E80</div><div class='add'>+0x6250 = 0x5EE1</div><div class='add'>+0x6251 = 0x5E8B</div><div class='add'>+0x6252 = 0x5E96</div><div class='add'>+0x6253 = 0x5EA5</div><div class='add'>+0x6254 = 0x5EA0</div><div class='add'>+0x6255 = 0x5EB9</div><div class='add'>+0x6256 = 0x5EB5</div><div class='add'>+0x6257 = 0x5EBE</div><div class='add'>+0x6258 = 0x5EB3</div><div class='add'>+0x6259 = 0x8CE1</div><div class='add'>+0x625A = 0x5ED2</div><div class='add'>+0x625B = 0x5ED1</div><div class='add'>+0x625C = 0x5EDB</div><div class='add'>+0x625D = 0x5EE8</div><div class='add'>+0x625E = 0x5EEA</div><div class='add'>+0x625F = 0x81BA</div><div class='add'>+0x6260 = 0x5FC4</div><div class='add'>+0x6261 = 0x5FC9</div><div class='add'>+0x6262 = 0x5FD6</div><div class='add'>+0x6263 = 0x61FA</div><div class='add'>+0x6264 = 0x61AE</div><div class='add'>+0x6265 = 0x5FEE</div><div class='add'>+0x6266 = 0x616A</div><div class='add'>+0x6267 = 0x5FE1</div><div class='add'>+0x6268 = 0x5FE4</div><div class='add'>+0x6269 = 0x613E</div><div class='add'>+0x626A = 0x60B5</div><div class='add'>+0x626B = 0x6134</div><div class='add'>+0x626C = 0x5FEA</div><div class='add'>+0x626D = 0x5FED</div><div class='add'>+0x626E = 0x5FF8</div><div class='add'>+0x626F = 0x6019</div><div class='add'>+0x6270 = 0x6035</div><div class='add'>+0x6271 = 0x6026</div><div class='add'>+0x6272 = 0x601B</div><div class='add'>+0x6273 = 0x600F</div><div class='add'>+0x6274 = 0x600D</div><div class='add'>+0x6275 = 0x6029</div><div class='add'>+0x6276 = 0x602B</div><div class='add'>+0x6277 = 0x600A</div><div class='add'>+0x6278 = 0x61CC</div><div class='add'>+0x6279 = 0x6021</div><div class='add'>+0x627A = 0x615F</div><div class='add'>+0x627B = 0x61E8</div><div class='add'>+0x627C = 0x60FB</div><div class='add'>+0x627D = 0x6137</div><div class='add'>+0x627E = 0x6042</div><div class='add'>+0x6321 = 0x606A</div><div class='add'>+0x6322 = 0x60F2</div><div class='add'>+0x6323 = 0x6096</div><div class='add'>+0x6324 = 0x609A</div><div class='add'>+0x6325 = 0x6173</div><div class='add'>+0x6326 = 0x609D</div><div class='add'>+0x6327 = 0x6083</div><div class='add'>+0x6328 = 0x6092</div><div class='add'>+0x6329 = 0x608C</div><div class='add'>+0x632A = 0x609B</div><div class='add'>+0x632B = 0x611C</div><div class='add'>+0x632C = 0x60BB</div><div class='add'>+0x632D = 0x60B1</div><div class='add'>+0x632E = 0x60DD</div><div class='add'>+0x632F = 0x60D8</div><div class='add'>+0x6330 = 0x60C6</div><div class='add'>+0x6331 = 0x60DA</div><div class='add'>+0x6332 = 0x60B4</div><div class='add'>+0x6333 = 0x6120</div><div class='add'>+0x6334 = 0x6192</div><div class='add'>+0x6335 = 0x6115</div><div class='add'>+0x6336 = 0x6123</div><div class='add'>+0x6337 = 0x60F4</div><div class='add'>+0x6338 = 0x6100</div><div class='add'>+0x6339 = 0x610E</div><div class='add'>+0x633A = 0x612B</div><div class='add'>+0x633B = 0x614A</div><div class='add'>+0x633C = 0x6175</div><div class='add'>+0x633D = 0x61AC</div><div class='add'>+0x633E = 0x6194</div><div class='add'>+0x633F = 0x61A7</div><div class='add'>+0x6340 = 0x61B7</div><div class='add'>+0x6341 = 0x61D4</div><div class='add'>+0x6342 = 0x61F5</div><div class='add'>+0x6343 = 0x5FDD</div><div class='add'>+0x6344 = 0x96B3</div><div class='add'>+0x6345 = 0x9582</div><div class='add'>+0x6346 = 0x9586</div><div class='add'>+0x6347 = 0x95C8</div><div class='add'>+0x6348 = 0x958E</div><div class='add'>+0x6349 = 0x9594</div><div class='add'>+0x634A = 0x958C</div><div class='add'>+0x634B = 0x95E5</div><div class='add'>+0x634C = 0x95AD</div><div class='add'>+0x634D = 0x95AB</div><div class='add'>+0x634E = 0x9B2E</div><div class='add'>+0x634F = 0x95AC</div><div class='add'>+0x6350 = 0x95BE</div><div class='add'>+0x6351 = 0x95B6</div><div class='add'>+0x6352 = 0x9B29</div><div class='add'>+0x6353 = 0x95BF</div><div class='add'>+0x6354 = 0x95BD</div><div class='add'>+0x6355 = 0x95BC</div><div class='add'>+0x6356 = 0x95C3</div><div class='add'>+0x6357 = 0x95CB</div><div class='add'>+0x6358 = 0x95D4</div><div class='add'>+0x6359 = 0x95D0</div><div class='add'>+0x635A = 0x95D5</div><div class='add'>+0x635B = 0x95DE</div><div class='add'>+0x635C = 0x4E2C</div><div class='add'>+0x635D = 0x723F</div><div class='add'>+0x635E = 0x6215</div><div class='add'>+0x635F = 0x6C35</div><div class='add'>+0x6360 = 0x6C54</div><div class='add'>+0x6361 = 0x6C5C</div><div class='add'>+0x6362 = 0x6C4A</div><div class='add'>+0x6363 = 0x7043</div><div class='add'>+0x6364 = 0x6C85</div><div class='add'>+0x6365 = 0x6C90</div><div class='add'>+0x6366 = 0x6C94</div><div class='add'>+0x6367 = 0x6C8C</div><div class='add'>+0x6368 = 0x6C68</div><div class='add'>+0x6369 = 0x6C69</div><div class='add'>+0x636A = 0x6C74</div><div class='add'>+0x636B = 0x6C76</div><div class='add'>+0x636C = 0x6C86</div><div class='add'>+0x636D = 0x6F59</div><div class='add'>+0x636E = 0x6CD0</div><div class='add'>+0x636F = 0x6CD4</div><div class='add'>+0x6370 = 0x6CAD</div><div class='add'>+0x6371 = 0x7027</div><div class='add'>+0x6372 = 0x7018</div><div class='add'>+0x6373 = 0x6CF1</div><div class='add'>+0x6374 = 0x6CD7</div><div class='add'>+0x6375 = 0x6CB2</div><div class='add'>+0x6376 = 0x6CE0</div><div class='add'>+0x6377 = 0x6CD6</div><div class='add'>+0x6378 = 0x6FFC</div><div class='add'>+0x6379 = 0x6CEB</div><div class='add'>+0x637A = 0x6CEE</div><div class='add'>+0x637B = 0x6CB1</div><div class='add'>+0x637C = 0x6CD3</div><div class='add'>+0x637D = 0x6CEF</div><div class='add'>+0x637E = 0x6D87</div><div class='add'>+0x6421 = 0x6D39</div><div class='add'>+0x6422 = 0x6D27</div><div class='add'>+0x6423 = 0x6D0C</div><div class='add'>+0x6424 = 0x6D79</div><div class='add'>+0x6425 = 0x6E5E</div><div class='add'>+0x6426 = 0x6D07</div><div class='add'>+0x6427 = 0x6D04</div><div class='add'>+0x6428 = 0x6D19</div><div class='add'>+0x6429 = 0x6D0E</div><div class='add'>+0x642A = 0x6D2B</div><div class='add'>+0x642B = 0x6FAE</div><div class='add'>+0x642C = 0x6D2E</div><div class='add'>+0x642D = 0x6D35</div><div class='add'>+0x642E = 0x6D1A</div><div class='add'>+0x642F = 0x700F</div><div class='add'>+0x6430 = 0x6EF8</div><div class='add'>+0x6431 = 0x6F6F</div><div class='add'>+0x6432 = 0x6D33</div><div class='add'>+0x6433 = 0x6D91</div><div class='add'>+0x6434 = 0x6D6F</div><div class='add'>+0x6435 = 0x6DF6</div><div class='add'>+0x6436 = 0x6F7F</div><div class='add'>+0x6437 = 0x6D5E</div><div class='add'>+0x6438 = 0x6D93</div><div class='add'>+0x6439 = 0x6D94</div><div class='add'>+0x643A = 0x6D5C</div><div class='add'>+0x643B = 0x6D60</div><div class='add'>+0x643C = 0x6D7C</div><div class='add'>+0x643D = 0x6D63</div><div class='add'>+0x643E = 0x6E1A</div><div class='add'>+0x643F = 0x6DC7</div><div class='add'>+0x6440 = 0x6DC5</div><div class='add'>+0x6441 = 0x6DDE</div><div class='add'>+0x6442 = 0x7006</div><div class='add'>+0x6443 = 0x6DBF</div><div class='add'>+0x6444 = 0x6DE0</div><div class='add'>+0x6445 = 0x6FA0</div><div class='add'>+0x6446 = 0x6DE6</div><div class='add'>+0x6447 = 0x6DDD</div><div class='add'>+0x6448 = 0x6DD9</div><div class='add'>+0x6449 = 0x700B</div><div class='add'>+0x644A = 0x6DAB</div><div class='add'>+0x644B = 0x6E0C</div><div class='add'>+0x644C = 0x6DAE</div><div class='add'>+0x644D = 0x6E2B</div><div class='add'>+0x644E = 0x6E6E</div><div class='add'>+0x644F = 0x6E4E</div><div class='add'>+0x6450 = 0x6E6B</div><div class='add'>+0x6451 = 0x6EB2</div><div class='add'>+0x6452 = 0x6E5F</div><div class='add'>+0x6453 = 0x6E86</div><div class='add'>+0x6454 = 0x6E53</div><div class='add'>+0x6455 = 0x6E54</div><div class='add'>+0x6456 = 0x6E32</div><div class='add'>+0x6457 = 0x6E25</div><div class='add'>+0x6458 = 0x6E44</div><div class='add'>+0x6459 = 0x7067</div><div class='add'>+0x645A = 0x6EB1</div><div class='add'>+0x645B = 0x6E98</div><div class='add'>+0x645C = 0x7044</div><div class='add'>+0x645D = 0x6F2D</div><div class='add'>+0x645E = 0x7005</div><div class='add'>+0x645F = 0x6EA5</div><div class='add'>+0x6460 = 0x6EA7</div><div class='add'>+0x6461 = 0x6EBD</div><div class='add'>+0x6462 = 0x6EBB</div><div class='add'>+0x6463 = 0x6EB7</div><div class='add'>+0x6464 = 0x6F77</div><div class='add'>+0x6465 = 0x6EB4</div><div class='add'>+0x6466 = 0x6ECF</div><div class='add'>+0x6467 = 0x6E8F</div><div class='add'>+0x6468 = 0x6EC2</div><div class='add'>+0x6469 = 0x6E9F</div><div class='add'>+0x646A = 0x6F62</div><div class='add'>+0x646B = 0x7020</div><div class='add'>+0x646C = 0x701F</div><div class='add'>+0x646D = 0x6F24</div><div class='add'>+0x646E = 0x6F15</div><div class='add'>+0x646F = 0x6EF9</div><div class='add'>+0x6470 = 0x6F2F</div><div class='add'>+0x6471 = 0x6F36</div><div class='add'>+0x6472 = 0x7032</div><div class='add'>+0x6473 = 0x6F74</div><div class='add'>+0x6474 = 0x6F2A</div><div class='add'>+0x6475 = 0x6F09</div><div class='add'>+0x6476 = 0x6F29</div><div class='add'>+0x6477 = 0x6F89</div><div class='add'>+0x6478 = 0x6F8D</div><div class='add'>+0x6479 = 0x6F8C</div><div class='add'>+0x647A = 0x6F78</div><div class='add'>+0x647B = 0x6F72</div><div class='add'>+0x647C = 0x6F7C</div><div class='add'>+0x647D = 0x6F7A</div><div class='add'>+0x647E = 0x7028</div><div class='add'>+0x6521 = 0x6FC9</div><div class='add'>+0x6522 = 0x6FA7</div><div class='add'>+0x6523 = 0x6FB9</div><div class='add'>+0x6524 = 0x6FB6</div><div class='add'>+0x6525 = 0x6FC2</div><div class='add'>+0x6526 = 0x6FE1</div><div class='add'>+0x6527 = 0x6FEE</div><div class='add'>+0x6528 = 0x6FDE</div><div class='add'>+0x6529 = 0x6FE0</div><div class='add'>+0x652A = 0x6FEF</div><div class='add'>+0x652B = 0x701A</div><div class='add'>+0x652C = 0x7023</div><div class='add'>+0x652D = 0x701B</div><div class='add'>+0x652E = 0x7039</div><div class='add'>+0x652F = 0x7035</div><div class='add'>+0x6530 = 0x705D</div><div class='add'>+0x6531 = 0x705E</div><div class='add'>+0x6532 = 0x5B80</div><div class='add'>+0x6533 = 0x5B84</div><div class='add'>+0x6534 = 0x5B95</div><div class='add'>+0x6535 = 0x5B93</div><div class='add'>+0x6536 = 0x5BA5</div><div class='add'>+0x6537 = 0x5BB8</div><div class='add'>+0x6538 = 0x752F</div><div class='add'>+0x6539 = 0x9A2B</div><div class='add'>+0x653A = 0x6434</div><div class='add'>+0x653B = 0x5BE4</div><div class='add'>+0x653C = 0x5BEE</div><div class='add'>+0x653D = 0x8930</div><div class='add'>+0x653E = 0x5BF0</div><div class='add'>+0x653F = 0x8E47</div><div class='add'>+0x6540 = 0x8B07</div><div class='add'>+0x6541 = 0x8FB6</div><div class='add'>+0x6542 = 0x8FD3</div><div class='add'>+0x6543 = 0x8FD5</div><div class='add'>+0x6544 = 0x8FE5</div><div class='add'>+0x6545 = 0x8FEE</div><div class='add'>+0x6546 = 0x8FE4</div><div class='add'>+0x6547 = 0x9087</div><div class='add'>+0x6548 = 0x8FE6</div><div class='add'>+0x6549 = 0x9015</div><div class='add'>+0x654A = 0x8FE8</div><div class='add'>+0x654B = 0x9005</div><div class='add'>+0x654C = 0x9004</div><div class='add'>+0x654D = 0x900B</div><div class='add'>+0x654E = 0x9090</div><div class='add'>+0x654F = 0x9011</div><div class='add'>+0x6550 = 0x900D</div><div class='add'>+0x6551 = 0x9016</div><div class='add'>+0x6552 = 0x9021</div><div class='add'>+0x6553 = 0x9035</div><div class='add'>+0x6554 = 0x9036</div><div class='add'>+0x6555 = 0x902D</div><div class='add'>+0x6556 = 0x902F</div><div class='add'>+0x6557 = 0x9044</div><div class='add'>+0x6558 = 0x9051</div><div class='add'>+0x6559 = 0x9052</div><div class='add'>+0x655A = 0x9050</div><div class='add'>+0x655B = 0x9068</div><div class='add'>+0x655C = 0x9058</div><div class='add'>+0x655D = 0x9062</div><div class='add'>+0x655E = 0x905B</div><div class='add'>+0x655F = 0x66B9</div><div class='add'>+0x6560 = 0x9074</div><div class='add'>+0x6561 = 0x907D</div><div class='add'>+0x6562 = 0x9082</div><div class='add'>+0x6563 = 0x9088</div><div class='add'>+0x6564 = 0x9083</div><div class='add'>+0x6565 = 0x908B</div><div class='add'>+0x6566 = 0x5F50</div><div class='add'>+0x6567 = 0x5F57</div><div class='add'>+0x6568 = 0x5F56</div><div class='add'>+0x6569 = 0x5F58</div><div class='add'>+0x656A = 0x5C3B</div><div class='add'>+0x656B = 0x54AB</div><div class='add'>+0x656C = 0x5C50</div><div class='add'>+0x656D = 0x5C59</div><div class='add'>+0x656E = 0x5B71</div><div class='add'>+0x656F = 0x5C63</div><div class='add'>+0x6570 = 0x5C68</div><div class='add'>+0x6571 = 0x7FBC</div><div class='add'>+0x6572 = 0x5F33</div><div class='add'>+0x6573 = 0x5F29</div><div class='add'>+0x6574 = 0x5F2D</div><div class='add'>+0x6575 = 0x8274</div><div class='add'>+0x6576 = 0x5F3C</div><div class='add'>+0x6577 = 0x9B3B</div><div class='add'>+0x6578 = 0x5C6E</div><div class='add'>+0x6579 = 0x5981</div><div class='add'>+0x657A = 0x5983</div><div class='add'>+0x657B = 0x598D</div><div class='add'>+0x657C = 0x5AF5</div><div class='add'>+0x657D = 0x5AD7</div><div class='add'>+0x657E = 0x59A3</div><div class='add'>+0x6621 = 0x5997</div><div class='add'>+0x6622 = 0x59CA</div><div class='add'>+0x6623 = 0x5B00</div><div class='add'>+0x6624 = 0x599E</div><div class='add'>+0x6625 = 0x59A4</div><div class='add'>+0x6626 = 0x59D2</div><div class='add'>+0x6627 = 0x59B2</div><div class='add'>+0x6628 = 0x59AF</div><div class='add'>+0x6629 = 0x59D7</div><div class='add'>+0x662A = 0x59BE</div><div class='add'>+0x662B = 0x5A6D</div><div class='add'>+0x662C = 0x5B08</div><div class='add'>+0x662D = 0x59DD</div><div class='add'>+0x662E = 0x5B4C</div><div class='add'>+0x662F = 0x59E3</div><div class='add'>+0x6630 = 0x59D8</div><div class='add'>+0x6631 = 0x59F9</div><div class='add'>+0x6632 = 0x5A0C</div><div class='add'>+0x6633 = 0x5A09</div><div class='add'>+0x6634 = 0x5AA7</div><div class='add'>+0x6635 = 0x5AFB</div><div class='add'>+0x6636 = 0x5A11</div><div class='add'>+0x6637 = 0x5A23</div><div class='add'>+0x6638 = 0x5A13</div><div class='add'>+0x6639 = 0x5A40</div><div class='add'>+0x663A = 0x5A67</div><div class='add'>+0x663B = 0x5A4A</div><div class='add'>+0x663C = 0x5A55</div><div class='add'>+0x663D = 0x5A3C</div><div class='add'>+0x663E = 0x5A62</div><div class='add'>+0x663F = 0x5B0B</div><div class='add'>+0x6640 = 0x80EC</div><div class='add'>+0x6641 = 0x5AAA</div><div class='add'>+0x6642 = 0x5A9B</div><div class='add'>+0x6643 = 0x5A77</div><div class='add'>+0x6644 = 0x5A7A</div><div class='add'>+0x6645 = 0x5ABE</div><div class='add'>+0x6646 = 0x5AEB</div><div class='add'>+0x6647 = 0x5AB2</div><div class='add'>+0x6648 = 0x5B21</div><div class='add'>+0x6649 = 0x5B2A</div><div class='add'>+0x664A = 0x5AB8</div><div class='add'>+0x664B = 0x5AE0</div><div class='add'>+0x664C = 0x5AE3</div><div class='add'>+0x664D = 0x5B19</div><div class='add'>+0x664E = 0x5AD6</div><div class='add'>+0x664F = 0x5AE6</div><div class='add'>+0x6650 = 0x5AD8</div><div class='add'>+0x6651 = 0x5ADC</div><div class='add'>+0x6652 = 0x5B09</div><div class='add'>+0x6653 = 0x5B17</div><div class='add'>+0x6654 = 0x5B16</div><div class='add'>+0x6655 = 0x5B32</div><div class='add'>+0x6656 = 0x5B37</div><div class='add'>+0x6657 = 0x5B40</div><div class='add'>+0x6658 = 0x5C15</div><div class='add'>+0x6659 = 0x5C1C</div><div class='add'>+0x665A = 0x5B5A</div><div class='add'>+0x665B = 0x5B65</div><div class='add'>+0x665C = 0x5B73</div><div class='add'>+0x665D = 0x5B51</div><div class='add'>+0x665E = 0x5B53</div><div class='add'>+0x665F = 0x5B62</div><div class='add'>+0x6660 = 0x99D4</div><div class='add'>+0x6661 = 0x99DF</div><div class='add'>+0x6662 = 0x99D9</div><div class='add'>+0x6663 = 0x9A36</div><div class='add'>+0x6664 = 0x9A5B</div><div class='add'>+0x6665 = 0x99D1</div><div class='add'>+0x6666 = 0x99D8</div><div class='add'>+0x6667 = 0x9A4D</div><div class='add'>+0x6668 = 0x9A4A</div><div class='add'>+0x6669 = 0x99E2</div><div class='add'>+0x666A = 0x9A6A</div><div class='add'>+0x666B = 0x9A0F</div><div class='add'>+0x666C = 0x9A0D</div><div class='add'>+0x666D = 0x9A05</div><div class='add'>+0x666E = 0x9A42</div><div class='add'>+0x666F = 0x9A2D</div><div class='add'>+0x6670 = 0x9A16</div><div class='add'>+0x6671 = 0x9A41</div><div class='add'>+0x6672 = 0x9A2E</div><div class='add'>+0x6673 = 0x9A38</div><div class='add'>+0x6674 = 0x9A43</div><div class='add'>+0x6675 = 0x9A44</div><div class='add'>+0x6676 = 0x9A4F</div><div class='add'>+0x6677 = 0x9A65</div><div class='add'>+0x6678 = 0x9A64</div><div class='add'>+0x6679 = 0x7CF9</div><div class='add'>+0x667A = 0x7D06</div><div class='add'>+0x667B = 0x7D02</div><div class='add'>+0x667C = 0x7D07</div><div class='add'>+0x667D = 0x7D08</div><div class='add'>+0x667E = 0x7E8A</div><div class='add'>+0x6721 = 0x7D1C</div><div class='add'>+0x6722 = 0x7D15</div><div class='add'>+0x6723 = 0x7D13</div><div class='add'>+0x6724 = 0x7D3A</div><div class='add'>+0x6725 = 0x7D32</div><div class='add'>+0x6726 = 0x7D31</div><div class='add'>+0x6727 = 0x7E10</div><div class='add'>+0x6728 = 0x7D3C</div><div class='add'>+0x6729 = 0x7D40</div><div class='add'>+0x672A = 0x7D3F</div><div class='add'>+0x672B = 0x7D5D</div><div class='add'>+0x672C = 0x7D4E</div><div class='add'>+0x672D = 0x7D73</div><div class='add'>+0x672E = 0x7D86</div><div class='add'>+0x672F = 0x7D83</div><div class='add'>+0x6730 = 0x7D88</div><div class='add'>+0x6731 = 0x7DBE</div><div class='add'>+0x6732 = 0x7DBA</div><div class='add'>+0x6733 = 0x7DCB</div><div class='add'>+0x6734 = 0x7DD4</div><div class='add'>+0x6735 = 0x7DC4</div><div class='add'>+0x6736 = 0x7D9E</div><div class='add'>+0x6737 = 0x7DAC</div><div class='add'>+0x6738 = 0x7DB9</div><div class='add'>+0x6739 = 0x7DA3</div><div class='add'>+0x673A = 0x7DB0</div><div class='add'>+0x673B = 0x7DC7</div><div class='add'>+0x673C = 0x7DD9</div><div class='add'>+0x673D = 0x7DD7</div><div class='add'>+0x673E = 0x7DF9</div><div class='add'>+0x673F = 0x7DF2</div><div class='add'>+0x6740 = 0x7E62</div><div class='add'>+0x6741 = 0x7DE6</div><div class='add'>+0x6742 = 0x7DF6</div><div class='add'>+0x6743 = 0x7DF1</div><div class='add'>+0x6744 = 0x7E0B</div><div class='add'>+0x6745 = 0x7DE1</div><div class='add'>+0x6746 = 0x7E09</div><div class='add'>+0x6747 = 0x7E1D</div><div class='add'>+0x6748 = 0x7E1F</div><div class='add'>+0x6749 = 0x7E1E</div><div class='add'>+0x674A = 0x7E2D</div><div class='add'>+0x674B = 0x7E0A</div><div class='add'>+0x674C = 0x7E11</div><div class='add'>+0x674D = 0x7E7D</div><div class='add'>+0x674E = 0x7E39</div><div class='add'>+0x674F = 0x7E35</div><div class='add'>+0x6750 = 0x7E32</div><div class='add'>+0x6751 = 0x7E46</div><div class='add'>+0x6752 = 0x7E45</div><div class='add'>+0x6753 = 0x7E88</div><div class='add'>+0x6754 = 0x7E5A</div><div class='add'>+0x6755 = 0x7E52</div><div class='add'>+0x6756 = 0x7E6E</div><div class='add'>+0x6757 = 0x7E7E</div><div class='add'>+0x6758 = 0x7E70</div><div class='add'>+0x6759 = 0x7E6F</div><div class='add'>+0x675A = 0x7E98</div><div class='add'>+0x675B = 0x5E7A</div><div class='add'>+0x675C = 0x757F</div><div class='add'>+0x675D = 0x5DDB</div><div class='add'>+0x675E = 0x753E</div><div class='add'>+0x675F = 0x9095</div><div class='add'>+0x6760 = 0x738E</div><div class='add'>+0x6761 = 0x74A3</div><div class='add'>+0x6762 = 0x744B</div><div class='add'>+0x6763 = 0x73A2</div><div class='add'>+0x6764 = 0x739F</div><div class='add'>+0x6765 = 0x73CF</div><div class='add'>+0x6766 = 0x73C2</div><div class='add'>+0x6767 = 0x74CF</div><div class='add'>+0x6768 = 0x73B7</div><div class='add'>+0x6769 = 0x73B3</div><div class='add'>+0x676A = 0x73C0</div><div class='add'>+0x676B = 0x73C9</div><div class='add'>+0x676C = 0x73C8</div><div class='add'>+0x676D = 0x73E5</div><div class='add'>+0x676E = 0x73D9</div><div class='add'>+0x676F = 0x980A</div><div class='add'>+0x6770 = 0x740A</div><div class='add'>+0x6771 = 0x73E9</div><div class='add'>+0x6772 = 0x73E7</div><div class='add'>+0x6773 = 0x73DE</div><div class='add'>+0x6774 = 0x74BD</div><div class='add'>+0x6775 = 0x743F</div><div class='add'>+0x6776 = 0x7489</div><div class='add'>+0x6777 = 0x742A</div><div class='add'>+0x6778 = 0x745B</div><div class='add'>+0x6779 = 0x7426</div><div class='add'>+0x677A = 0x7425</div><div class='add'>+0x677B = 0x7428</div><div class='add'>+0x677C = 0x7430</div><div class='add'>+0x677D = 0x742E</div><div class='add'>+0x677E = 0x742C</div><div class='add'>+0x6821 = 0x741B</div><div class='add'>+0x6822 = 0x741A</div><div class='add'>+0x6823 = 0x7441</div><div class='add'>+0x6824 = 0x745C</div><div class='add'>+0x6825 = 0x7457</div><div class='add'>+0x6826 = 0x7455</div><div class='add'>+0x6827 = 0x7459</div><div class='add'>+0x6828 = 0x74A6</div><div class='add'>+0x6829 = 0x746D</div><div class='add'>+0x682A = 0x747E</div><div class='add'>+0x682B = 0x749C</div><div class='add'>+0x682C = 0x74D4</div><div class='add'>+0x682D = 0x7480</div><div class='add'>+0x682E = 0x7481</div><div class='add'>+0x682F = 0x7487</div><div class='add'>+0x6830 = 0x748B</div><div class='add'>+0x6831 = 0x749E</div><div class='add'>+0x6832 = 0x74A8</div><div class='add'>+0x6833 = 0x74A9</div><div class='add'>+0x6834 = 0x7490</div><div class='add'>+0x6835 = 0x74A7</div><div class='add'>+0x6836 = 0x74DA</div><div class='add'>+0x6837 = 0x74BA</div><div class='add'>+0x6838 = 0x97D9</div><div class='add'>+0x6839 = 0x97DE</div><div class='add'>+0x683A = 0x97DC</div><div class='add'>+0x683B = 0x674C</div><div class='add'>+0x683C = 0x6753</div><div class='add'>+0x683D = 0x675E</div><div class='add'>+0x683E = 0x6748</div><div class='add'>+0x683F = 0x69AA</div><div class='add'>+0x6840 = 0x6AEA</div><div class='add'>+0x6841 = 0x6787</div><div class='add'>+0x6842 = 0x676A</div><div class='add'>+0x6843 = 0x6773</div><div class='add'>+0x6844 = 0x6798</div><div class='add'>+0x6845 = 0x6898</div><div class='add'>+0x6846 = 0x6775</div><div class='add'>+0x6847 = 0x68D6</div><div class='add'>+0x6848 = 0x6A05</div><div class='add'>+0x6849 = 0x689F</div><div class='add'>+0x684A = 0x678B</div><div class='add'>+0x684B = 0x6777</div><div class='add'>+0x684C = 0x677C</div><div class='add'>+0x684D = 0x67F0</div><div class='add'>+0x684E = 0x6ADB</div><div class='add'>+0x684F = 0x67D8</div><div class='add'>+0x6850 = 0x6AF3</div><div class='add'>+0x6851 = 0x67E9</div><div class='add'>+0x6852 = 0x67B0</div><div class='add'>+0x6853 = 0x6AE8</div><div class='add'>+0x6854 = 0x67D9</div><div class='add'>+0x6855 = 0x67B5</div><div class='add'>+0x6856 = 0x67DA</div><div class='add'>+0x6857 = 0x67B3</div><div class='add'>+0x6858 = 0x67DD</div><div class='add'>+0x6859 = 0x6800</div><div class='add'>+0x685A = 0x67C3</div><div class='add'>+0x685B = 0x67B8</div><div class='add'>+0x685C = 0x67E2</div><div class='add'>+0x685D = 0x6ADF</div><div class='add'>+0x685E = 0x67C1</div><div class='add'>+0x685F = 0x6A89</div><div class='add'>+0x6860 = 0x6832</div><div class='add'>+0x6861 = 0x6833</div><div class='add'>+0x6862 = 0x690F</div><div class='add'>+0x6863 = 0x6A48</div><div class='add'>+0x6864 = 0x684E</div><div class='add'>+0x6865 = 0x6968</div><div class='add'>+0x6866 = 0x6844</div><div class='add'>+0x6867 = 0x69BF</div><div class='add'>+0x6868 = 0x6883</div><div class='add'>+0x6869 = 0x681D</div><div class='add'>+0x686A = 0x6855</div><div class='add'>+0x686B = 0x6A3A</div><div class='add'>+0x686C = 0x6841</div><div class='add'>+0x686D = 0x6A9C</div><div class='add'>+0x686E = 0x6840</div><div class='add'>+0x686F = 0x6B12</div><div class='add'>+0x6870 = 0x684A</div><div class='add'>+0x6871 = 0x6849</div><div class='add'>+0x6872 = 0x6829</div><div class='add'>+0x6873 = 0x68B5</div><div class='add'>+0x6874 = 0x688F</div><div class='add'>+0x6875 = 0x6874</div><div class='add'>+0x6876 = 0x6877</div><div class='add'>+0x6877 = 0x6893</div><div class='add'>+0x6878 = 0x686B</div><div class='add'>+0x6879 = 0x6B1E</div><div class='add'>+0x687A = 0x696E</div><div class='add'>+0x687B = 0x68FC</div><div class='add'>+0x687C = 0x6ADD</div><div class='add'>+0x687D = 0x69E7</div><div class='add'>+0x687E = 0x68F9</div><div class='add'>+0x6921 = 0x6B0F</div><div class='add'>+0x6922 = 0x68F0</div><div class='add'>+0x6923 = 0x690B</div><div class='add'>+0x6924 = 0x6901</div><div class='add'>+0x6925 = 0x6957</div><div class='add'>+0x6926 = 0x68E3</div><div class='add'>+0x6927 = 0x6910</div><div class='add'>+0x6928 = 0x6971</div><div class='add'>+0x6929 = 0x6939</div><div class='add'>+0x692A = 0x6960</div><div class='add'>+0x692B = 0x6942</div><div class='add'>+0x692C = 0x695D</div><div class='add'>+0x692D = 0x6B16</div><div class='add'>+0x692E = 0x696B</div><div class='add'>+0x692F = 0x6980</div><div class='add'>+0x6930 = 0x6998</div><div class='add'>+0x6931 = 0x6978</div><div class='add'>+0x6932 = 0x6934</div><div class='add'>+0x6933 = 0x69CC</div><div class='add'>+0x6934 = 0x6AEC</div><div class='add'>+0x6935 = 0x6ADA</div><div class='add'>+0x6936 = 0x69CE</div><div class='add'>+0x6937 = 0x6AF8</div><div class='add'>+0x6938 = 0x6966</div><div class='add'>+0x6939 = 0x6963</div><div class='add'>+0x693A = 0x6979</div><div class='add'>+0x693B = 0x699B</div><div class='add'>+0x693C = 0x69A7</div><div class='add'>+0x693D = 0x69BB</div><div class='add'>+0x693E = 0x69AB</div><div class='add'>+0x693F = 0x69AD</div><div class='add'>+0x6940 = 0x69D4</div><div class='add'>+0x6941 = 0x69B1</div><div class='add'>+0x6942 = 0x69C1</div><div class='add'>+0x6943 = 0x69CA</div><div class='add'>+0x6944 = 0x6AB3</div><div class='add'>+0x6945 = 0x6995</div><div class='add'>+0x6946 = 0x6AE7</div><div class='add'>+0x6947 = 0x698D</div><div class='add'>+0x6948 = 0x69FF</div><div class='add'>+0x6949 = 0x6AA3</div><div class='add'>+0x694A = 0x69ED</div><div class='add'>+0x694B = 0x6A17</div><div class='add'>+0x694C = 0x6A18</div><div class='add'>+0x694D = 0x6A65</div><div class='add'>+0x694E = 0x69F2</div><div class='add'>+0x694F = 0x6A44</div><div class='add'>+0x6950 = 0x6A3E</div><div class='add'>+0x6951 = 0x6AA0</div><div class='add'>+0x6952 = 0x6A50</div><div class='add'>+0x6953 = 0x6A5B</div><div class='add'>+0x6954 = 0x6A35</div><div class='add'>+0x6955 = 0x6A8E</div><div class='add'>+0x6956 = 0x6AD3</div><div class='add'>+0x6957 = 0x6A3D</div><div class='add'>+0x6958 = 0x6A28</div><div class='add'>+0x6959 = 0x6A58</div><div class='add'>+0x695A = 0x6ADE</div><div class='add'>+0x695B = 0x6A91</div><div class='add'>+0x695C = 0x6A90</div><div class='add'>+0x695D = 0x6AA9</div><div class='add'>+0x695E = 0x6A97</div><div class='add'>+0x695F = 0x6AAB</div><div class='add'>+0x6960 = 0x7337</div><div class='add'>+0x6961 = 0x7352</div><div class='add'>+0x6962 = 0x6B81</div><div class='add'>+0x6963 = 0x6B82</div><div class='add'>+0x6964 = 0x6BA4</div><div class='add'>+0x6965 = 0x6B84</div><div class='add'>+0x6966 = 0x6B9E</div><div class='add'>+0x6967 = 0x6BAE</div><div class='add'>+0x6968 = 0x6B8D</div><div class='add'>+0x6969 = 0x6BAB</div><div class='add'>+0x696A = 0x6B9B</div><div class='add'>+0x696B = 0x6BAF</div><div class='add'>+0x696C = 0x6BAA</div><div class='add'>+0x696D = 0x8ED4</div><div class='add'>+0x696E = 0x8EDB</div><div class='add'>+0x696F = 0x8EF2</div><div class='add'>+0x6970 = 0x8EFB</div><div class='add'>+0x6971 = 0x8F64</div><div class='add'>+0x6972 = 0x8EF9</div><div class='add'>+0x6973 = 0x8EFC</div><div class='add'>+0x6974 = 0x8EEB</div><div class='add'>+0x6975 = 0x8EE4</div><div class='add'>+0x6976 = 0x8F62</div><div class='add'>+0x6977 = 0x8EFA</div><div class='add'>+0x6978 = 0x8EFE</div><div class='add'>+0x6979 = 0x8F0A</div><div class='add'>+0x697A = 0x8F07</div><div class='add'>+0x697B = 0x8F05</div><div class='add'>+0x697C = 0x8F12</div><div class='add'>+0x697D = 0x8F26</div><div class='add'>+0x697E = 0x8F1E</div><div class='add'>+0x6A21 = 0x8F1F</div><div class='add'>+0x6A22 = 0x8F1C</div><div class='add'>+0x6A23 = 0x8F33</div><div class='add'>+0x6A24 = 0x8F46</div><div class='add'>+0x6A25 = 0x8F54</div><div class='add'>+0x6A26 = 0x8ECE</div><div class='add'>+0x6A27 = 0x6214</div><div class='add'>+0x6A28 = 0x6227</div><div class='add'>+0x6A29 = 0x621B</div><div class='add'>+0x6A2A = 0x621F</div><div class='add'>+0x6A2B = 0x6222</div><div class='add'>+0x6A2C = 0x6221</div><div class='add'>+0x6A2D = 0x6225</div><div class='add'>+0x6A2E = 0x6224</div><div class='add'>+0x6A2F = 0x6229</div><div class='add'>+0x6A30 = 0x81E7</div><div class='add'>+0x6A31 = 0x750C</div><div class='add'>+0x6A32 = 0x74F4</div><div class='add'>+0x6A33 = 0x74FF</div><div class='add'>+0x6A34 = 0x750F</div><div class='add'>+0x6A35 = 0x7511</div><div class='add'>+0x6A36 = 0x7513</div><div class='add'>+0x6A37 = 0x6534</div><div class='add'>+0x6A38 = 0x65EE</div><div class='add'>+0x6A39 = 0x65EF</div><div class='add'>+0x6A3A = 0x65F0</div><div class='add'>+0x6A3B = 0x660A</div><div class='add'>+0x6A3C = 0x66C7</div><div class='add'>+0x6A3D = 0x6772</div><div class='add'>+0x6A3E = 0x6603</div><div class='add'>+0x6A3F = 0x6615</div><div class='add'>+0x6A40 = 0x6600</div><div class='add'>+0x6A41 = 0x7085</div><div class='add'>+0x6A42 = 0x66F7</div><div class='add'>+0x6A43 = 0x661D</div><div class='add'>+0x6A44 = 0x6634</div><div class='add'>+0x6A45 = 0x6631</div><div class='add'>+0x6A46 = 0x6636</div><div class='add'>+0x6A47 = 0x6635</div><div class='add'>+0x6A48 = 0x8006</div><div class='add'>+0x6A49 = 0x665F</div><div class='add'>+0x6A4A = 0x66C4</div><div class='add'>+0x6A4B = 0x6641</div><div class='add'>+0x6A4C = 0x664F</div><div class='add'>+0x6A4D = 0x6689</div><div class='add'>+0x6A4E = 0x6661</div><div class='add'>+0x6A4F = 0x6657</div><div class='add'>+0x6A50 = 0x6677</div><div class='add'>+0x6A51 = 0x6684</div><div class='add'>+0x6A52 = 0x668C</div><div class='add'>+0x6A53 = 0x66D6</div><div class='add'>+0x6A54 = 0x669D</div><div class='add'>+0x6A55 = 0x66BE</div><div class='add'>+0x6A56 = 0x66DB</div><div class='add'>+0x6A57 = 0x66DC</div><div class='add'>+0x6A58 = 0x66E6</div><div class='add'>+0x6A59 = 0x66E9</div><div class='add'>+0x6A5A = 0x8CC1</div><div class='add'>+0x6A5B = 0x8CB0</div><div class='add'>+0x6A5C = 0x8CBA</div><div class='add'>+0x6A5D = 0x8CBD</div><div class='add'>+0x6A5E = 0x8D04</div><div class='add'>+0x6A5F = 0x8CB2</div><div class='add'>+0x6A60 = 0x8CC5</div><div class='add'>+0x6A61 = 0x8D10</div><div class='add'>+0x6A62 = 0x8CD1</div><div class='add'>+0x6A63 = 0x8CDA</div><div class='add'>+0x6A64 = 0x8CD5</div><div class='add'>+0x6A65 = 0x8CEB</div><div class='add'>+0x6A66 = 0x8CE7</div><div class='add'>+0x6A67 = 0x8CFB</div><div class='add'>+0x6A68 = 0x8998</div><div class='add'>+0x6A69 = 0x89AC</div><div class='add'>+0x6A6A = 0x89A1</div><div class='add'>+0x6A6B = 0x89BF</div><div class='add'>+0x6A6C = 0x89A6</div><div class='add'>+0x6A6D = 0x89AF</div><div class='add'>+0x6A6E = 0x89B2</div><div class='add'>+0x6A6F = 0x89B7</div><div class='add'>+0x6A70 = 0x726E</div><div class='add'>+0x6A71 = 0x729F</div><div class='add'>+0x6A72 = 0x725D</div><div class='add'>+0x6A73 = 0x7266</div><div class='add'>+0x6A74 = 0x726F</div><div class='add'>+0x6A75 = 0x727E</div><div class='add'>+0x6A76 = 0x727F</div><div class='add'>+0x6A77 = 0x7284</div><div class='add'>+0x6A78 = 0x728B</div><div class='add'>+0x6A79 = 0x728D</div><div class='add'>+0x6A7A = 0x728F</div><div class='add'>+0x6A7B = 0x7292</div><div class='add'>+0x6A7C = 0x6308</div><div class='add'>+0x6A7D = 0x6332</div><div class='add'>+0x6A7E = 0x63B0</div><div class='add'>+0x6B21 = 0x643F</div><div class='add'>+0x6B22 = 0x64D8</div><div class='add'>+0x6B23 = 0x8004</div><div class='add'>+0x6B24 = 0x6BEA</div><div class='add'>+0x6B25 = 0x6BF3</div><div class='add'>+0x6B26 = 0x6BFD</div><div class='add'>+0x6B27 = 0x6BFF</div><div class='add'>+0x6B28 = 0x6BF9</div><div class='add'>+0x6B29 = 0x6C05</div><div class='add'>+0x6B2A = 0x6C0C</div><div class='add'>+0x6B2B = 0x6C06</div><div class='add'>+0x6B2C = 0x6C0D</div><div class='add'>+0x6B2D = 0x6C15</div><div class='add'>+0x6B2E = 0x6C18</div><div class='add'>+0x6B2F = 0x6C19</div><div class='add'>+0x6B30 = 0x6C1A</div><div class='add'>+0x6B31 = 0x6C21</div><div class='add'>+0x6B32 = 0x6C2C</div><div class='add'>+0x6B33 = 0x6C24</div><div class='add'>+0x6B34 = 0x6C2A</div><div class='add'>+0x6B35 = 0x6C32</div><div class='add'>+0x6B36 = 0x6535</div><div class='add'>+0x6B37 = 0x6555</div><div class='add'>+0x6B38 = 0x656B</div><div class='add'>+0x6B39 = 0x7258</div><div class='add'>+0x6B3A = 0x7252</div><div class='add'>+0x6B3B = 0x7256</div><div class='add'>+0x6B3C = 0x7230</div><div class='add'>+0x6B3D = 0x8662</div><div class='add'>+0x6B3E = 0x5216</div><div class='add'>+0x6B3F = 0x809F</div><div class='add'>+0x6B40 = 0x809C</div><div class='add'>+0x6B41 = 0x8093</div><div class='add'>+0x6B42 = 0x80BC</div><div class='add'>+0x6B43 = 0x670A</div><div class='add'>+0x6B44 = 0x80BD</div><div class='add'>+0x6B45 = 0x80B1</div><div class='add'>+0x6B46 = 0x80AB</div><div class='add'>+0x6B47 = 0x80AD</div><div class='add'>+0x6B48 = 0x80B4</div><div class='add'>+0x6B49 = 0x80B7</div><div class='add'>+0x6B4A = 0x6727</div><div class='add'>+0x6B4B = 0x8156</div><div class='add'>+0x6B4C = 0x80E9</div><div class='add'>+0x6B4D = 0x81DA</div><div class='add'>+0x6B4E = 0x80DB</div><div class='add'>+0x6B4F = 0x80C2</div><div class='add'>+0x6B50 = 0x80C4</div><div class='add'>+0x6B51 = 0x80D9</div><div class='add'>+0x6B52 = 0x80CD</div><div class='add'>+0x6B53 = 0x80D7</div><div class='add'>+0x6B54 = 0x6710</div><div class='add'>+0x6B55 = 0x80DD</div><div class='add'>+0x6B56 = 0x811B</div><div class='add'>+0x6B57 = 0x80F1</div><div class='add'>+0x6B58 = 0x80F4</div><div class='add'>+0x6B59 = 0x80ED</div><div class='add'>+0x6B5A = 0x81BE</div><div class='add'>+0x6B5B = 0x810E</div><div class='add'>+0x6B5C = 0x80F2</div><div class='add'>+0x6B5D = 0x80FC</div><div class='add'>+0x6B5E = 0x6715</div><div class='add'>+0x6B5F = 0x8112</div><div class='add'>+0x6B60 = 0x8C5A</div><div class='add'>+0x6B61 = 0x8161</div><div class='add'>+0x6B62 = 0x811E</div><div class='add'>+0x6B63 = 0x812C</div><div class='add'>+0x6B64 = 0x8118</div><div class='add'>+0x6B65 = 0x8132</div><div class='add'>+0x6B66 = 0x8148</div><div class='add'>+0x6B67 = 0x814C</div><div class='add'>+0x6B68 = 0x8153</div><div class='add'>+0x6B69 = 0x8174</div><div class='add'>+0x6B6A = 0x8159</div><div class='add'>+0x6B6B = 0x815A</div><div class='add'>+0x6B6C = 0x8171</div><div class='add'>+0x6B6D = 0x8160</div><div class='add'>+0x6B6E = 0x8169</div><div class='add'>+0x6B6F = 0x817C</div><div class='add'>+0x6B70 = 0x817D</div><div class='add'>+0x6B71 = 0x816D</div><div class='add'>+0x6B72 = 0x8167</div><div class='add'>+0x6B73 = 0x584D</div><div class='add'>+0x6B74 = 0x5AB5</div><div class='add'>+0x6B75 = 0x8188</div><div class='add'>+0x6B76 = 0x8182</div><div class='add'>+0x6B77 = 0x81CF</div><div class='add'>+0x6B78 = 0x6ED5</div><div class='add'>+0x6B79 = 0x81A3</div><div class='add'>+0x6B7A = 0x81AA</div><div class='add'>+0x6B7B = 0x81CC</div><div class='add'>+0x6B7C = 0x6726</div><div class='add'>+0x6B7D = 0x81CA</div><div class='add'>+0x6B7E = 0x81BB</div><div class='add'>+0x6C21 = 0x81C1</div><div class='add'>+0x6C22 = 0x81A6</div><div class='add'>+0x6C23 = 0x6B5F</div><div class='add'>+0x6C24 = 0x6B37</div><div class='add'>+0x6C25 = 0x6B39</div><div class='add'>+0x6C26 = 0x6B43</div><div class='add'>+0x6C27 = 0x6B46</div><div class='add'>+0x6C28 = 0x6B59</div><div class='add'>+0x6C29 = 0x98AE</div><div class='add'>+0x6C2A = 0x98AF</div><div class='add'>+0x6C2B = 0x98B6</div><div class='add'>+0x6C2C = 0x98BC</div><div class='add'>+0x6C2D = 0x98C6</div><div class='add'>+0x6C2E = 0x98C8</div><div class='add'>+0x6C2F = 0x6BB3</div><div class='add'>+0x6C30 = 0x5F40</div><div class='add'>+0x6C31 = 0x8F42</div><div class='add'>+0x6C32 = 0x89F3</div><div class='add'>+0x6C33 = 0x6590</div><div class='add'>+0x6C34 = 0x9F4F</div><div class='add'>+0x6C35 = 0x6595</div><div class='add'>+0x6C36 = 0x65BC</div><div class='add'>+0x6C37 = 0x65C6</div><div class='add'>+0x6C38 = 0x65C4</div><div class='add'>+0x6C39 = 0x65C3</div><div class='add'>+0x6C3A = 0x65CC</div><div class='add'>+0x6C3B = 0x65CE</div><div class='add'>+0x6C3C = 0x65D2</div><div class='add'>+0x6C3D = 0x65D6</div><div class='add'>+0x6C3E = 0x716C</div><div class='add'>+0x6C3F = 0x7152</div><div class='add'>+0x6C40 = 0x7096</div><div class='add'>+0x6C41 = 0x7197</div><div class='add'>+0x6C42 = 0x70BB</div><div class='add'>+0x6C43 = 0x70C0</div><div class='add'>+0x6C44 = 0x70B7</div><div class='add'>+0x6C45 = 0x70AB</div><div class='add'>+0x6C46 = 0x70B1</div><div class='add'>+0x6C47 = 0x71C1</div><div class='add'>+0x6C48 = 0x70CA</div><div class='add'>+0x6C49 = 0x7110</div><div class='add'>+0x6C4A = 0x7113</div><div class='add'>+0x6C4B = 0x71DC</div><div class='add'>+0x6C4C = 0x712F</div><div class='add'>+0x6C4D = 0x7131</div><div class='add'>+0x6C4E = 0x7173</div><div class='add'>+0x6C4F = 0x715C</div><div class='add'>+0x6C50 = 0x7168</div><div class='add'>+0x6C51 = 0x7145</div><div class='add'>+0x6C52 = 0x7172</div><div class='add'>+0x6C53 = 0x714A</div><div class='add'>+0x6C54 = 0x7178</div><div class='add'>+0x6C55 = 0x717A</div><div class='add'>+0x6C56 = 0x7198</div><div class='add'>+0x6C57 = 0x71B3</div><div class='add'>+0x6C58 = 0x71B5</div><div class='add'>+0x6C59 = 0x71A8</div><div class='add'>+0x6C5A = 0x71A0</div><div class='add'>+0x6C5B = 0x71E0</div><div class='add'>+0x6C5C = 0x71D4</div><div class='add'>+0x6C5D = 0x71E7</div><div class='add'>+0x6C5E = 0x71F9</div><div class='add'>+0x6C5F = 0x721D</div><div class='add'>+0x6C60 = 0x7228</div><div class='add'>+0x6C61 = 0x706C</div><div class='add'>+0x6C62 = 0x71FE</div><div class='add'>+0x6C63 = 0x7166</div><div class='add'>+0x6C64 = 0x71B9</div><div class='add'>+0x6C65 = 0x623E</div><div class='add'>+0x6C66 = 0x623D</div><div class='add'>+0x6C67 = 0x6243</div><div class='add'>+0x6C68 = 0x6248</div><div class='add'>+0x6C69 = 0x6249</div><div class='add'>+0x6C6A = 0x793B</div><div class='add'>+0x6C6B = 0x7940</div><div class='add'>+0x6C6C = 0x7946</div><div class='add'>+0x6C6D = 0x7949</div><div class='add'>+0x6C6E = 0x795B</div><div class='add'>+0x6C6F = 0x795C</div><div class='add'>+0x6C70 = 0x7953</div><div class='add'>+0x6C71 = 0x795A</div><div class='add'>+0x6C72 = 0x79B0</div><div class='add'>+0x6C73 = 0x7957</div><div class='add'>+0x6C74 = 0x7960</div><div class='add'>+0x6C75 = 0x798E</div><div class='add'>+0x6C76 = 0x7967</div><div class='add'>+0x6C77 = 0x797A</div><div class='add'>+0x6C78 = 0x79AA</div><div class='add'>+0x6C79 = 0x798A</div><div class='add'>+0x6C7A = 0x799A</div><div class='add'>+0x6C7B = 0x79A7</div><div class='add'>+0x6C7C = 0x79B3</div><div class='add'>+0x6C7D = 0x5FD1</div><div class='add'>+0x6C7E = 0x5FD0</div><div class='add'>+0x6D21 = 0x61DF</div><div class='add'>+0x6D22 = 0x605D</div><div class='add'>+0x6D23 = 0x605A</div><div class='add'>+0x6D24 = 0x6067</div><div class='add'>+0x6D25 = 0x6041</div><div class='add'>+0x6D26 = 0x6059</div><div class='add'>+0x6D27 = 0x6063</div><div class='add'>+0x6D28 = 0x6164</div><div class='add'>+0x6D29 = 0x6106</div><div class='add'>+0x6D2A = 0x610D</div><div class='add'>+0x6D2B = 0x615D</div><div class='add'>+0x6D2C = 0x61A9</div><div class='add'>+0x6D2D = 0x619D</div><div class='add'>+0x6D2E = 0x61CB</div><div class='add'>+0x6D2F = 0x61E3</div><div class='add'>+0x6D30 = 0x6207</div><div class='add'>+0x6D31 = 0x8080</div><div class='add'>+0x6D32 = 0x807F</div><div class='add'>+0x6D33 = 0x6C93</div><div class='add'>+0x6D34 = 0x6FA9</div><div class='add'>+0x6D35 = 0x6DFC</div><div class='add'>+0x6D36 = 0x78EF</div><div class='add'>+0x6D37 = 0x77F8</div><div class='add'>+0x6D38 = 0x78AD</div><div class='add'>+0x6D39 = 0x7809</div><div class='add'>+0x6D3A = 0x7868</div><div class='add'>+0x6D3B = 0x7818</div><div class='add'>+0x6D3C = 0x7811</div><div class='add'>+0x6D3D = 0x65AB</div><div class='add'>+0x6D3E = 0x782D</div><div class='add'>+0x6D3F = 0x78B8</div><div class='add'>+0x6D40 = 0x781D</div><div class='add'>+0x6D41 = 0x7839</div><div class='add'>+0x6D42 = 0x792A</div><div class='add'>+0x6D43 = 0x7931</div><div class='add'>+0x6D44 = 0x781F</div><div class='add'>+0x6D45 = 0x783C</div><div class='add'>+0x6D46 = 0x7825</div><div class='add'>+0x6D47 = 0x782C</div><div class='add'>+0x6D48 = 0x7823</div><div class='add'>+0x6D49 = 0x7829</div><div class='add'>+0x6D4A = 0x784E</div><div class='add'>+0x6D4B = 0x786D</div><div class='add'>+0x6D4C = 0x7864</div><div class='add'>+0x6D4D = 0x78FD</div><div class='add'>+0x6D4E = 0x7826</div><div class='add'>+0x6D4F = 0x7850</div><div class='add'>+0x6D50 = 0x7847</div><div class='add'>+0x6D51 = 0x784C</div><div class='add'>+0x6D52 = 0x786A</div><div class='add'>+0x6D53 = 0x78E7</div><div class='add'>+0x6D54 = 0x7893</div><div class='add'>+0x6D55 = 0x789A</div><div class='add'>+0x6D56 = 0x7887</div><div class='add'>+0x6D57 = 0x78E3</div><div class='add'>+0x6D58 = 0x78A1</div><div class='add'>+0x6D59 = 0x78A3</div><div class='add'>+0x6D5A = 0x78B2</div><div class='add'>+0x6D5B = 0x78B9</div><div class='add'>+0x6D5C = 0x78A5</div><div class='add'>+0x6D5D = 0x78D4</div><div class='add'>+0x6D5E = 0x78D9</div><div class='add'>+0x6D5F = 0x78C9</div><div class='add'>+0x6D60 = 0x78EC</div><div class='add'>+0x6D61 = 0x78F2</div><div class='add'>+0x6D62 = 0x7905</div><div class='add'>+0x6D63 = 0x78F4</div><div class='add'>+0x6D64 = 0x7913</div><div class='add'>+0x6D65 = 0x7924</div><div class='add'>+0x6D66 = 0x791E</div><div class='add'>+0x6D67 = 0x7934</div><div class='add'>+0x6D68 = 0x9F95</div><div class='add'>+0x6D69 = 0x9EF9</div><div class='add'>+0x6D6A = 0x9EFB</div><div class='add'>+0x6D6B = 0x9EFC</div><div class='add'>+0x6D6C = 0x76F1</div><div class='add'>+0x6D6D = 0x7704</div><div class='add'>+0x6D6E = 0x7798</div><div class='add'>+0x6D6F = 0x76F9</div><div class='add'>+0x6D70 = 0x7707</div><div class='add'>+0x6D71 = 0x7708</div><div class='add'>+0x6D72 = 0x771A</div><div class='add'>+0x6D73 = 0x7722</div><div class='add'>+0x6D74 = 0x7719</div><div class='add'>+0x6D75 = 0x772D</div><div class='add'>+0x6D76 = 0x7726</div><div class='add'>+0x6D77 = 0x7735</div><div class='add'>+0x6D78 = 0x7738</div><div class='add'>+0x6D79 = 0x775E</div><div class='add'>+0x6D7A = 0x77BC</div><div class='add'>+0x6D7B = 0x7747</div><div class='add'>+0x6D7C = 0x7743</div><div class='add'>+0x6D7D = 0x775A</div><div class='add'>+0x6D7E = 0x7768</div><div class='add'>+0x6E21 = 0x7762</div><div class='add'>+0x6E22 = 0x7765</div><div class='add'>+0x6E23 = 0x777F</div><div class='add'>+0x6E24 = 0x778D</div><div class='add'>+0x6E25 = 0x777D</div><div class='add'>+0x6E26 = 0x7780</div><div class='add'>+0x6E27 = 0x778C</div><div class='add'>+0x6E28 = 0x7791</div><div class='add'>+0x6E29 = 0x779F</div><div class='add'>+0x6E2A = 0x77A0</div><div class='add'>+0x6E2B = 0x77B0</div><div class='add'>+0x6E2C = 0x77B5</div><div class='add'>+0x6E2D = 0x77BD</div><div class='add'>+0x6E2E = 0x753A</div><div class='add'>+0x6E2F = 0x7540</div><div class='add'>+0x6E30 = 0x754E</div><div class='add'>+0x6E31 = 0x754B</div><div class='add'>+0x6E32 = 0x7548</div><div class='add'>+0x6E33 = 0x755B</div><div class='add'>+0x6E34 = 0x7572</div><div class='add'>+0x6E35 = 0x7579</div><div class='add'>+0x6E36 = 0x7583</div><div class='add'>+0x6E37 = 0x7F58</div><div class='add'>+0x6E38 = 0x7F61</div><div class='add'>+0x6E39 = 0x7F5F</div><div class='add'>+0x6E3A = 0x8A48</div><div class='add'>+0x6E3B = 0x7F68</div><div class='add'>+0x6E3C = 0x7F86</div><div class='add'>+0x6E3D = 0x7F71</div><div class='add'>+0x6E3E = 0x7F79</div><div class='add'>+0x6E3F = 0x7F88</div><div class='add'>+0x6E40 = 0x7F7E</div><div class='add'>+0x6E41 = 0x76CD</div><div class='add'>+0x6E42 = 0x76E5</div><div class='add'>+0x6E43 = 0x8832</div><div class='add'>+0x6E44 = 0x91D2</div><div class='add'>+0x6E45 = 0x91D3</div><div class='add'>+0x6E46 = 0x91D4</div><div class='add'>+0x6E47 = 0x91D9</div><div class='add'>+0x6E48 = 0x91D7</div><div class='add'>+0x6E49 = 0x91D5</div><div class='add'>+0x6E4A = 0x91F7</div><div class='add'>+0x6E4B = 0x91E7</div><div class='add'>+0x6E4C = 0x91E4</div><div class='add'>+0x6E4D = 0x9346</div><div class='add'>+0x6E4E = 0x91F5</div><div class='add'>+0x6E4F = 0x91F9</div><div class='add'>+0x6E50 = 0x9208</div><div class='add'>+0x6E51 = 0x9226</div><div class='add'>+0x6E52 = 0x9245</div><div class='add'>+0x6E53 = 0x9211</div><div class='add'>+0x6E54 = 0x9210</div><div class='add'>+0x6E55 = 0x9201</div><div class='add'>+0x6E56 = 0x9227</div><div class='add'>+0x6E57 = 0x9204</div><div class='add'>+0x6E58 = 0x9225</div><div class='add'>+0x6E59 = 0x9200</div><div class='add'>+0x6E5A = 0x923A</div><div class='add'>+0x6E5B = 0x9266</div><div class='add'>+0x6E5C = 0x9237</div><div class='add'>+0x6E5D = 0x9233</div><div class='add'>+0x6E5E = 0x9255</div><div class='add'>+0x6E5F = 0x923D</div><div class='add'>+0x6E60 = 0x9238</div><div class='add'>+0x6E61 = 0x925E</div><div class='add'>+0x6E62 = 0x926C</div><div class='add'>+0x6E63 = 0x926D</div><div class='add'>+0x6E64 = 0x923F</div><div class='add'>+0x6E65 = 0x9460</div><div class='add'>+0x6E66 = 0x9230</div><div class='add'>+0x6E67 = 0x9249</div><div class='add'>+0x6E68 = 0x9248</div><div class='add'>+0x6E69 = 0x924D</div><div class='add'>+0x6E6A = 0x922E</div><div class='add'>+0x6E6B = 0x9239</div><div class='add'>+0x6E6C = 0x9438</div><div class='add'>+0x6E6D = 0x92AC</div><div class='add'>+0x6E6E = 0x92A0</div><div class='add'>+0x6E6F = 0x927A</div><div class='add'>+0x6E70 = 0x92AA</div><div class='add'>+0x6E71 = 0x92EE</div><div class='add'>+0x6E72 = 0x92CF</div><div class='add'>+0x6E73 = 0x9403</div><div class='add'>+0x6E74 = 0x92E3</div><div class='add'>+0x6E75 = 0x943A</div><div class='add'>+0x6E76 = 0x92B1</div><div class='add'>+0x6E77 = 0x92A6</div><div class='add'>+0x6E78 = 0x93A7</div><div class='add'>+0x6E79 = 0x9296</div><div class='add'>+0x6E7A = 0x92CC</div><div class='add'>+0x6E7B = 0x92A9</div><div class='add'>+0x6E7C = 0x93F5</div><div class='add'>+0x6E7D = 0x9293</div><div class='add'>+0x6E7E = 0x927F</div><div class='add'>+0x6F21 = 0x93A9</div><div class='add'>+0x6F22 = 0x929A</div><div class='add'>+0x6F23 = 0x931A</div><div class='add'>+0x6F24 = 0x92AB</div><div class='add'>+0x6F25 = 0x9283</div><div class='add'>+0x6F26 = 0x940B</div><div class='add'>+0x6F27 = 0x92A8</div><div class='add'>+0x6F28 = 0x92A3</div><div class='add'>+0x6F29 = 0x9412</div><div class='add'>+0x6F2A = 0x9338</div><div class='add'>+0x6F2B = 0x92F1</div><div class='add'>+0x6F2C = 0x93D7</div><div class='add'>+0x6F2D = 0x92E5</div><div class='add'>+0x6F2E = 0x92F0</div><div class='add'>+0x6F2F = 0x92EF</div><div class='add'>+0x6F30 = 0x92E8</div><div class='add'>+0x6F31 = 0x92BC</div><div class='add'>+0x6F32 = 0x92DD</div><div class='add'>+0x6F33 = 0x92F6</div><div class='add'>+0x6F34 = 0x9426</div><div class='add'>+0x6F35 = 0x9427</div><div class='add'>+0x6F36 = 0x92C3</div><div class='add'>+0x6F37 = 0x92DF</div><div class='add'>+0x6F38 = 0x92E6</div><div class='add'>+0x6F39 = 0x9312</div><div class='add'>+0x6F3A = 0x9306</div><div class='add'>+0x6F3B = 0x9369</div><div class='add'>+0x6F3C = 0x931B</div><div class='add'>+0x6F3D = 0x9340</div><div class='add'>+0x6F3E = 0x9301</div><div class='add'>+0x6F3F = 0x9315</div><div class='add'>+0x6F40 = 0x932E</div><div class='add'>+0x6F41 = 0x9343</div><div class='add'>+0x6F42 = 0x9307</div><div class='add'>+0x6F43 = 0x9308</div><div class='add'>+0x6F44 = 0x931F</div><div class='add'>+0x6F45 = 0x9319</div><div class='add'>+0x6F46 = 0x9365</div><div class='add'>+0x6F47 = 0x9347</div><div class='add'>+0x6F48 = 0x9376</div><div class='add'>+0x6F49 = 0x9354</div><div class='add'>+0x6F4A = 0x9364</div><div class='add'>+0x6F4B = 0x93AA</div><div class='add'>+0x6F4C = 0x9370</div><div class='add'>+0x6F4D = 0x9384</div><div class='add'>+0x6F4E = 0x93E4</div><div class='add'>+0x6F4F = 0x93D8</div><div class='add'>+0x6F50 = 0x9428</div><div class='add'>+0x6F51 = 0x9387</div><div class='add'>+0x6F52 = 0x93CC</div><div class='add'>+0x6F53 = 0x9398</div><div class='add'>+0x6F54 = 0x93B8</div><div class='add'>+0x6F55 = 0x93BF</div><div class='add'>+0x6F56 = 0x93A6</div><div class='add'>+0x6F57 = 0x93B0</div><div class='add'>+0x6F58 = 0x93B5</div><div class='add'>+0x6F59 = 0x944C</div><div class='add'>+0x6F5A = 0x93E2</div><div class='add'>+0x6F5B = 0x93DC</div><div class='add'>+0x6F5C = 0x93DD</div><div class='add'>+0x6F5D = 0x93CD</div><div class='add'>+0x6F5E = 0x93DE</div><div class='add'>+0x6F5F = 0x93C3</div><div class='add'>+0x6F60 = 0x93C7</div><div class='add'>+0x6F61 = 0x93D1</div><div class='add'>+0x6F62 = 0x9414</div><div class='add'>+0x6F63 = 0x941D</div><div class='add'>+0x6F64 = 0x93F7</div><div class='add'>+0x6F65 = 0x9465</div><div class='add'>+0x6F66 = 0x9413</div><div class='add'>+0x6F67 = 0x946D</div><div class='add'>+0x6F68 = 0x9420</div><div class='add'>+0x6F69 = 0x9479</div><div class='add'>+0x6F6A = 0x93F9</div><div class='add'>+0x6F6B = 0x9419</div><div class='add'>+0x6F6C = 0x944A</div><div class='add'>+0x6F6D = 0x9432</div><div class='add'>+0x6F6E = 0x943F</div><div class='add'>+0x6F6F = 0x9454</div><div class='add'>+0x6F70 = 0x9463</div><div class='add'>+0x6F71 = 0x937E</div><div class='add'>+0x6F72 = 0x77E7</div><div class='add'>+0x6F73 = 0x77EC</div><div class='add'>+0x6F74 = 0x96C9</div><div class='add'>+0x6F75 = 0x79D5</div><div class='add'>+0x6F76 = 0x79ED</div><div class='add'>+0x6F77 = 0x79E3</div><div class='add'>+0x6F78 = 0x79EB</div><div class='add'>+0x6F79 = 0x7A06</div><div class='add'>+0x6F7A = 0x5D47</div><div class='add'>+0x6F7B = 0x7A03</div><div class='add'>+0x6F7C = 0x7A02</div><div class='add'>+0x6F7D = 0x7A1E</div><div class='add'>+0x6F7E = 0x7A14</div><div class='add'>+0x7021 = 0x7A39</div><div class='add'>+0x7022 = 0x7A37</div><div class='add'>+0x7023 = 0x7A61</div><div class='add'>+0x7024 = 0x9ECF</div><div class='add'>+0x7025 = 0x99A5</div><div class='add'>+0x7026 = 0x7A70</div><div class='add'>+0x7027 = 0x7688</div><div class='add'>+0x7028 = 0x768E</div><div class='add'>+0x7029 = 0x7693</div><div class='add'>+0x702A = 0x7699</div><div class='add'>+0x702B = 0x76A4</div><div class='add'>+0x702C = 0x74DE</div><div class='add'>+0x702D = 0x74E0</div><div class='add'>+0x702E = 0x752C</div><div class='add'>+0x702F = 0x9CE9</div><div class='add'>+0x7030 = 0x9CF6</div><div class='add'>+0x7031 = 0x9D07</div><div class='add'>+0x7032 = 0x9D06</div><div class='add'>+0x7033 = 0x9D23</div><div class='add'>+0x7034 = 0x9D87</div><div class='add'>+0x7035 = 0x9E15</div><div class='add'>+0x7036 = 0x9D1D</div><div class='add'>+0x7037 = 0x9D1F</div><div class='add'>+0x7038 = 0x9DE5</div><div class='add'>+0x7039 = 0x9D2F</div><div class='add'>+0x703A = 0x9DD9</div><div class='add'>+0x703B = 0x9D30</div><div class='add'>+0x703C = 0x9D42</div><div class='add'>+0x703D = 0x9E1E</div><div class='add'>+0x703E = 0x9D53</div><div class='add'>+0x703F = 0x9E1D</div><div class='add'>+0x7040 = 0x9D60</div><div class='add'>+0x7041 = 0x9D52</div><div class='add'>+0x7042 = 0x9DF3</div><div class='add'>+0x7043 = 0x9D5C</div><div class='add'>+0x7044 = 0x9D61</div><div class='add'>+0x7045 = 0x9D93</div><div class='add'>+0x7046 = 0x9D6A</div><div class='add'>+0x7047 = 0x9D6F</div><div class='add'>+0x7048 = 0x9D89</div><div class='add'>+0x7049 = 0x9D98</div><div class='add'>+0x704A = 0x9D9A</div><div class='add'>+0x704B = 0x9DC0</div><div class='add'>+0x704C = 0x9DA5</div><div class='add'>+0x704D = 0x9DA9</div><div class='add'>+0x704E = 0x9DC2</div><div class='add'>+0x704F = 0x9DBC</div><div class='add'>+0x7050 = 0x9E1A</div><div class='add'>+0x7051 = 0x9DD3</div><div class='add'>+0x7052 = 0x9DDA</div><div class='add'>+0x7053 = 0x9DEF</div><div class='add'>+0x7054 = 0x9DE6</div><div class='add'>+0x7055 = 0x9DF2</div><div class='add'>+0x7056 = 0x9DF8</div><div class='add'>+0x7057 = 0x9E0C</div><div class='add'>+0x7058 = 0x9DFA</div><div class='add'>+0x7059 = 0x9E1B</div><div class='add'>+0x705A = 0x7592</div><div class='add'>+0x705B = 0x7594</div><div class='add'>+0x705C = 0x7664</div><div class='add'>+0x705D = 0x7658</div><div class='add'>+0x705E = 0x759D</div><div class='add'>+0x705F = 0x7667</div><div class='add'>+0x7060 = 0x75A3</div><div class='add'>+0x7061 = 0x75B3</div><div class='add'>+0x7062 = 0x75B4</div><div class='add'>+0x7063 = 0x75B8</div><div class='add'>+0x7064 = 0x75C4</div><div class='add'>+0x7065 = 0x75B1</div><div class='add'>+0x7066 = 0x75B0</div><div class='add'>+0x7067 = 0x75C3</div><div class='add'>+0x7068 = 0x75C2</div><div class='add'>+0x7069 = 0x7602</div><div class='add'>+0x706A = 0x75CD</div><div class='add'>+0x706B = 0x75E3</div><div class='add'>+0x706C = 0x7646</div><div class='add'>+0x706D = 0x75E6</div><div class='add'>+0x706E = 0x75E4</div><div class='add'>+0x706F = 0x7647</div><div class='add'>+0x7070 = 0x75E7</div><div class='add'>+0x7071 = 0x7603</div><div class='add'>+0x7072 = 0x75F1</div><div class='add'>+0x7073 = 0x75FC</div><div class='add'>+0x7074 = 0x75FF</div><div class='add'>+0x7075 = 0x7610</div><div class='add'>+0x7076 = 0x7600</div><div class='add'>+0x7077 = 0x7649</div><div class='add'>+0x7078 = 0x760C</div><div class='add'>+0x7079 = 0x761E</div><div class='add'>+0x707A = 0x760A</div><div class='add'>+0x707B = 0x7625</div><div class='add'>+0x707C = 0x763B</div><div class='add'>+0x707D = 0x7615</div><div class='add'>+0x707E = 0x7619</div><div class='add'>+0x7121 = 0x761B</div><div class='add'>+0x7122 = 0x763C</div><div class='add'>+0x7123 = 0x7622</div><div class='add'>+0x7124 = 0x7620</div><div class='add'>+0x7125 = 0x7640</div><div class='add'>+0x7126 = 0x762D</div><div class='add'>+0x7127 = 0x7630</div><div class='add'>+0x7128 = 0x766D</div><div class='add'>+0x7129 = 0x7635</div><div class='add'>+0x712A = 0x7643</div><div class='add'>+0x712B = 0x766E</div><div class='add'>+0x712C = 0x7633</div><div class='add'>+0x712D = 0x764D</div><div class='add'>+0x712E = 0x7669</div><div class='add'>+0x712F = 0x7654</div><div class='add'>+0x7130 = 0x765C</div><div class='add'>+0x7131 = 0x7656</div><div class='add'>+0x7132 = 0x7672</div><div class='add'>+0x7133 = 0x766F</div><div class='add'>+0x7134 = 0x7FCA</div><div class='add'>+0x7135 = 0x7AE6</div><div class='add'>+0x7136 = 0x7A78</div><div class='add'>+0x7137 = 0x7A79</div><div class='add'>+0x7138 = 0x7A80</div><div class='add'>+0x7139 = 0x7A86</div><div class='add'>+0x713A = 0x7A88</div><div class='add'>+0x713B = 0x7A95</div><div class='add'>+0x713C = 0x7AC7</div><div class='add'>+0x713D = 0x7AA0</div><div class='add'>+0x713E = 0x7AAC</div><div class='add'>+0x713F = 0x7AA8</div><div class='add'>+0x7140 = 0x7AB6</div><div class='add'>+0x7141 = 0x7AB3</div><div class='add'>+0x7142 = 0x8864</div><div class='add'>+0x7143 = 0x8869</div><div class='add'>+0x7144 = 0x8872</div><div class='add'>+0x7145 = 0x887D</div><div class='add'>+0x7146 = 0x887F</div><div class='add'>+0x7147 = 0x8882</div><div class='add'>+0x7148 = 0x88A2</div><div class='add'>+0x7149 = 0x8960</div><div class='add'>+0x714A = 0x88B7</div><div class='add'>+0x714B = 0x88BC</div><div class='add'>+0x714C = 0x88C9</div><div class='add'>+0x714D = 0x8933</div><div class='add'>+0x714E = 0x88CE</div><div class='add'>+0x714F = 0x895D</div><div class='add'>+0x7150 = 0x8947</div><div class='add'>+0x7151 = 0x88F1</div><div class='add'>+0x7152 = 0x891A</div><div class='add'>+0x7153 = 0x88FC</div><div class='add'>+0x7154 = 0x88E8</div><div class='add'>+0x7155 = 0x88FE</div><div class='add'>+0x7156 = 0x88F0</div><div class='add'>+0x7157 = 0x8921</div><div class='add'>+0x7158 = 0x8919</div><div class='add'>+0x7159 = 0x8913</div><div class='add'>+0x715A = 0x8938</div><div class='add'>+0x715B = 0x890A</div><div class='add'>+0x715C = 0x8964</div><div class='add'>+0x715D = 0x892B</div><div class='add'>+0x715E = 0x8936</div><div class='add'>+0x715F = 0x8941</div><div class='add'>+0x7160 = 0x8966</div><div class='add'>+0x7161 = 0x897B</div><div class='add'>+0x7162 = 0x758B</div><div class='add'>+0x7163 = 0x80E5</div><div class='add'>+0x7164 = 0x76B8</div><div class='add'>+0x7165 = 0x76B4</div><div class='add'>+0x7166 = 0x77DC</div><div class='add'>+0x7167 = 0x8012</div><div class='add'>+0x7168 = 0x8014</div><div class='add'>+0x7169 = 0x8016</div><div class='add'>+0x716A = 0x801C</div><div class='add'>+0x716B = 0x8020</div><div class='add'>+0x716C = 0x802E</div><div class='add'>+0x716D = 0x8025</div><div class='add'>+0x716E = 0x8026</div><div class='add'>+0x716F = 0x802C</div><div class='add'>+0x7170 = 0x8029</div><div class='add'>+0x7171 = 0x8028</div><div class='add'>+0x7172 = 0x8031</div><div class='add'>+0x7173 = 0x800B</div><div class='add'>+0x7174 = 0x8035</div><div class='add'>+0x7175 = 0x8043</div><div class='add'>+0x7176 = 0x8046</div><div class='add'>+0x7177 = 0x8079</div><div class='add'>+0x7178 = 0x8052</div><div class='add'>+0x7179 = 0x8075</div><div class='add'>+0x717A = 0x8071</div><div class='add'>+0x717B = 0x8983</div><div class='add'>+0x717C = 0x9807</div><div class='add'>+0x717D = 0x980E</div><div class='add'>+0x717E = 0x980F</div><div class='add'>+0x7221 = 0x9821</div><div class='add'>+0x7222 = 0x981C</div><div class='add'>+0x7223 = 0x6F41</div><div class='add'>+0x7224 = 0x9826</div><div class='add'>+0x7225 = 0x9837</div><div class='add'>+0x7226 = 0x984E</div><div class='add'>+0x7227 = 0x9853</div><div class='add'>+0x7228 = 0x9873</div><div class='add'>+0x7229 = 0x9862</div><div class='add'>+0x722A = 0x9859</div><div class='add'>+0x722B = 0x9865</div><div class='add'>+0x722C = 0x986C</div><div class='add'>+0x722D = 0x9870</div><div class='add'>+0x722E = 0x864D</div><div class='add'>+0x722F = 0x8654</div><div class='add'>+0x7230 = 0x866C</div><div class='add'>+0x7231 = 0x87E3</div><div class='add'>+0x7232 = 0x8806</div><div class='add'>+0x7233 = 0x867A</div><div class='add'>+0x7234 = 0x867C</div><div class='add'>+0x7235 = 0x867B</div><div class='add'>+0x7236 = 0x86A8</div><div class='add'>+0x7237 = 0x868D</div><div class='add'>+0x7238 = 0x868B</div><div class='add'>+0x7239 = 0x8706</div><div class='add'>+0x723A = 0x869D</div><div class='add'>+0x723B = 0x86A7</div><div class='add'>+0x723C = 0x86A3</div><div class='add'>+0x723D = 0x86AA</div><div class='add'>+0x723E = 0x8693</div><div class='add'>+0x723F = 0x86A9</div><div class='add'>+0x7240 = 0x86B6</div><div class='add'>+0x7241 = 0x86C4</div><div class='add'>+0x7242 = 0x86B5</div><div class='add'>+0x7243 = 0x8823</div><div class='add'>+0x7244 = 0x86B0</div><div class='add'>+0x7245 = 0x86BA</div><div class='add'>+0x7246 = 0x86B1</div><div class='add'>+0x7247 = 0x86AF</div><div class='add'>+0x7248 = 0x86C9</div><div class='add'>+0x7249 = 0x87F6</div><div class='add'>+0x724A = 0x86B4</div><div class='add'>+0x724B = 0x86E9</div><div class='add'>+0x724C = 0x86FA</div><div class='add'>+0x724D = 0x87EF</div><div class='add'>+0x724E = 0x86ED</div><div class='add'>+0x724F = 0x8784</div><div class='add'>+0x7250 = 0x86D0</div><div class='add'>+0x7251 = 0x8713</div><div class='add'>+0x7252 = 0x86DE</div><div class='add'>+0x7253 = 0x8810</div><div class='add'>+0x7254 = 0x86DF</div><div class='add'>+0x7255 = 0x86D8</div><div class='add'>+0x7256 = 0x86D1</div><div class='add'>+0x7257 = 0x8703</div><div class='add'>+0x7258 = 0x8707</div><div class='add'>+0x7259 = 0x86F8</div><div class='add'>+0x725A = 0x8708</div><div class='add'>+0x725B = 0x870A</div><div class='add'>+0x725C = 0x870D</div><div class='add'>+0x725D = 0x8709</div><div class='add'>+0x725E = 0x8723</div><div class='add'>+0x725F = 0x873B</div><div class='add'>+0x7260 = 0x871E</div><div class='add'>+0x7261 = 0x8725</div><div class='add'>+0x7262 = 0x872E</div><div class='add'>+0x7263 = 0x871A</div><div class='add'>+0x7264 = 0x873E</div><div class='add'>+0x7265 = 0x87C8</div><div class='add'>+0x7266 = 0x8734</div><div class='add'>+0x7267 = 0x8731</div><div class='add'>+0x7268 = 0x8729</div><div class='add'>+0x7269 = 0x8737</div><div class='add'>+0x726A = 0x873F</div><div class='add'>+0x726B = 0x8782</div><div class='add'>+0x726C = 0x8722</div><div class='add'>+0x726D = 0x877D</div><div class='add'>+0x726E = 0x8811</div><div class='add'>+0x726F = 0x877B</div><div class='add'>+0x7270 = 0x8760</div><div class='add'>+0x7271 = 0x8770</div><div class='add'>+0x7272 = 0x874C</div><div class='add'>+0x7273 = 0x876E</div><div class='add'>+0x7274 = 0x878B</div><div class='add'>+0x7275 = 0x8753</div><div class='add'>+0x7276 = 0x8763</div><div class='add'>+0x7277 = 0x87BB</div><div class='add'>+0x7278 = 0x8764</div><div class='add'>+0x7279 = 0x8759</div><div class='add'>+0x727A = 0x8765</div><div class='add'>+0x727B = 0x8793</div><div class='add'>+0x727C = 0x87AF</div><div class='add'>+0x727D = 0x87CE</div><div class='add'>+0x727E = 0x87D2</div><div class='add'>+0x7321 = 0x87C6</div><div class='add'>+0x7322 = 0x8788</div><div class='add'>+0x7323 = 0x8785</div><div class='add'>+0x7324 = 0x87AD</div><div class='add'>+0x7325 = 0x8797</div><div class='add'>+0x7326 = 0x8783</div><div class='add'>+0x7327 = 0x87AB</div><div class='add'>+0x7328 = 0x87E5</div><div class='add'>+0x7329 = 0x87AC</div><div class='add'>+0x732A = 0x87B5</div><div class='add'>+0x732B = 0x87B3</div><div class='add'>+0x732C = 0x87CB</div><div class='add'>+0x732D = 0x87D3</div><div class='add'>+0x732E = 0x87BD</div><div class='add'>+0x732F = 0x87D1</div><div class='add'>+0x7330 = 0x87C0</div><div class='add'>+0x7331 = 0x87CA</div><div class='add'>+0x7332 = 0x87DB</div><div class='add'>+0x7333 = 0x87EA</div><div class='add'>+0x7334 = 0x87E0</div><div class='add'>+0x7335 = 0x87EE</div><div class='add'>+0x7336 = 0x8816</div><div class='add'>+0x7337 = 0x8813</div><div class='add'>+0x7338 = 0x87FE</div><div class='add'>+0x7339 = 0x880A</div><div class='add'>+0x733A = 0x881B</div><div class='add'>+0x733B = 0x8821</div><div class='add'>+0x733C = 0x8839</div><div class='add'>+0x733D = 0x883C</div><div class='add'>+0x733E = 0x7F36</div><div class='add'>+0x733F = 0x7F4C</div><div class='add'>+0x7340 = 0x7F44</div><div class='add'>+0x7341 = 0x7F45</div><div class='add'>+0x7342 = 0x8210</div><div class='add'>+0x7343 = 0x7AFA</div><div class='add'>+0x7344 = 0x7AFD</div><div class='add'>+0x7345 = 0x7B08</div><div class='add'>+0x7346 = 0x7BE4</div><div class='add'>+0x7347 = 0x7B04</div><div class='add'>+0x7348 = 0x7B67</div><div class='add'>+0x7349 = 0x7B0A</div><div class='add'>+0x734A = 0x7B2B</div><div class='add'>+0x734B = 0x7B0F</div><div class='add'>+0x734C = 0x7B47</div><div class='add'>+0x734D = 0x7B38</div><div class='add'>+0x734E = 0x7B2A</div><div class='add'>+0x734F = 0x7B19</div><div class='add'>+0x7350 = 0x7B2E</div><div class='add'>+0x7351 = 0x7B31</div><div class='add'>+0x7352 = 0x7B20</div><div class='add'>+0x7353 = 0x7B25</div><div class='add'>+0x7354 = 0x7B24</div><div class='add'>+0x7355 = 0x7B33</div><div class='add'>+0x7356 = 0x7C69</div><div class='add'>+0x7357 = 0x7B1E</div><div class='add'>+0x7358 = 0x7B58</div><div class='add'>+0x7359 = 0x7BF3</div><div class='add'>+0x735A = 0x7B45</div><div class='add'>+0x735B = 0x7B75</div><div class='add'>+0x735C = 0x7B4C</div><div class='add'>+0x735D = 0x7B8F</div><div class='add'>+0x735E = 0x7B60</div><div class='add'>+0x735F = 0x7B6E</div><div class='add'>+0x7360 = 0x7B7B</div><div class='add'>+0x7361 = 0x7B62</div><div class='add'>+0x7362 = 0x7B72</div><div class='add'>+0x7363 = 0x7B71</div><div class='add'>+0x7364 = 0x7B90</div><div class='add'>+0x7365 = 0x7C00</div><div class='add'>+0x7366 = 0x7BCB</div><div class='add'>+0x7367 = 0x7BB8</div><div class='add'>+0x7368 = 0x7BAC</div><div class='add'>+0x7369 = 0x7B9D</div><div class='add'>+0x736A = 0x7C5C</div><div class='add'>+0x736B = 0x7B85</div><div class='add'>+0x736C = 0x7C1E</div><div class='add'>+0x736D = 0x7B9C</div><div class='add'>+0x736E = 0x7BA2</div><div class='add'>+0x736F = 0x7C2B</div><div class='add'>+0x7370 = 0x7BB4</div><div class='add'>+0x7371 = 0x7C23</div><div class='add'>+0x7372 = 0x7BC1</div><div class='add'>+0x7373 = 0x7BCC</div><div class='add'>+0x7374 = 0x7BDD</div><div class='add'>+0x7375 = 0x7BDA</div><div class='add'>+0x7376 = 0x7BE5</div><div class='add'>+0x7377 = 0x7BE6</div><div class='add'>+0x7378 = 0x7BEA</div><div class='add'>+0x7379 = 0x7C0C</div><div class='add'>+0x737A = 0x7BFE</div><div class='add'>+0x737B = 0x7BFC</div><div class='add'>+0x737C = 0x7C0F</div><div class='add'>+0x737D = 0x7C6A</div><div class='add'>+0x737E = 0x7C0B</div><div class='add'>+0x7421 = 0x7C1F</div><div class='add'>+0x7422 = 0x7C2A</div><div class='add'>+0x7423 = 0x7C26</div><div class='add'>+0x7424 = 0x7C38</div><div class='add'>+0x7425 = 0x7C5F</div><div class='add'>+0x7426 = 0x7C40</div><div class='add'>+0x7427 = 0x81FE</div><div class='add'>+0x7428 = 0x8201</div><div class='add'>+0x7429 = 0x8202</div><div class='add'>+0x742A = 0x8204</div><div class='add'>+0x742B = 0x81EC</div><div class='add'>+0x742C = 0x8844</div><div class='add'>+0x742D = 0x8221</div><div class='add'>+0x742E = 0x8222</div><div class='add'>+0x742F = 0x8264</div><div class='add'>+0x7430 = 0x822D</div><div class='add'>+0x7431 = 0x822F</div><div class='add'>+0x7432 = 0x8228</div><div class='add'>+0x7433 = 0x822B</div><div class='add'>+0x7434 = 0x8238</div><div class='add'>+0x7435 = 0x826B</div><div class='add'>+0x7436 = 0x8233</div><div class='add'>+0x7437 = 0x8234</div><div class='add'>+0x7438 = 0x823E</div><div class='add'>+0x7439 = 0x8244</div><div class='add'>+0x743A = 0x8249</div><div class='add'>+0x743B = 0x824B</div><div class='add'>+0x743C = 0x824F</div><div class='add'>+0x743D = 0x825A</div><div class='add'>+0x743E = 0x825F</div><div class='add'>+0x743F = 0x8268</div><div class='add'>+0x7440 = 0x887E</div><div class='add'>+0x7441 = 0x88CA</div><div class='add'>+0x7442 = 0x8888</div><div class='add'>+0x7443 = 0x88D8</div><div class='add'>+0x7444 = 0x88DF</div><div class='add'>+0x7445 = 0x895E</div><div class='add'>+0x7446 = 0x7F9D</div><div class='add'>+0x7447 = 0x7FA5</div><div class='add'>+0x7448 = 0x7FA7</div><div class='add'>+0x7449 = 0x7FAF</div><div class='add'>+0x744A = 0x7FB0</div><div class='add'>+0x744B = 0x7FB2</div><div class='add'>+0x744C = 0x7C7C</div><div class='add'>+0x744D = 0x6549</div><div class='add'>+0x744E = 0x7C91</div><div class='add'>+0x744F = 0x7CF2</div><div class='add'>+0x7450 = 0x7CF6</div><div class='add'>+0x7451 = 0x7C9E</div><div class='add'>+0x7452 = 0x7CA2</div><div class='add'>+0x7453 = 0x7CB2</div><div class='add'>+0x7454 = 0x7CBC</div><div class='add'>+0x7455 = 0x7CBD</div><div class='add'>+0x7456 = 0x7CDD</div><div class='add'>+0x7457 = 0x7CC7</div><div class='add'>+0x7458 = 0x7CCC</div><div class='add'>+0x7459 = 0x7CCD</div><div class='add'>+0x745A = 0x7CC8</div><div class='add'>+0x745B = 0x7CC5</div><div class='add'>+0x745C = 0x7CD7</div><div class='add'>+0x745D = 0x7CE8</div><div class='add'>+0x745E = 0x826E</div><div class='add'>+0x745F = 0x66A8</div><div class='add'>+0x7460 = 0x7FBF</div><div class='add'>+0x7461 = 0x7FCE</div><div class='add'>+0x7462 = 0x7FD5</div><div class='add'>+0x7463 = 0x7FE5</div><div class='add'>+0x7464 = 0x7FE1</div><div class='add'>+0x7465 = 0x7FE6</div><div class='add'>+0x7466 = 0x7FE9</div><div class='add'>+0x7467 = 0x7FEE</div><div class='add'>+0x7468 = 0x7FF3</div><div class='add'>+0x7469 = 0x7CF8</div><div class='add'>+0x746A = 0x7E36</div><div class='add'>+0x746B = 0x7DA6</div><div class='add'>+0x746C = 0x7DAE</div><div class='add'>+0x746D = 0x7E47</div><div class='add'>+0x746E = 0x7E9B</div><div class='add'>+0x746F = 0x9EA9</div><div class='add'>+0x7470 = 0x9EB4</div><div class='add'>+0x7471 = 0x8D73</div><div class='add'>+0x7472 = 0x8D84</div><div class='add'>+0x7473 = 0x8D94</div><div class='add'>+0x7474 = 0x8D91</div><div class='add'>+0x7475 = 0x8DB2</div><div class='add'>+0x7476 = 0x8D67</div><div class='add'>+0x7477 = 0x8D6D</div><div class='add'>+0x7478 = 0x8C47</div><div class='add'>+0x7479 = 0x8C49</div><div class='add'>+0x747A = 0x914A</div><div class='add'>+0x747B = 0x9150</div><div class='add'>+0x747C = 0x914E</div><div class='add'>+0x747D = 0x914F</div><div class='add'>+0x747E = 0x9164</div><div class='add'>+0x7521 = 0x9162</div><div class='add'>+0x7522 = 0x9161</div><div class='add'>+0x7523 = 0x9170</div><div class='add'>+0x7524 = 0x9169</div><div class='add'>+0x7525 = 0x916F</div><div class='add'>+0x7526 = 0x91C5</div><div class='add'>+0x7527 = 0x91C3</div><div class='add'>+0x7528 = 0x9172</div><div class='add'>+0x7529 = 0x9174</div><div class='add'>+0x752A = 0x9179</div><div class='add'>+0x752B = 0x918C</div><div class='add'>+0x752C = 0x9185</div><div class='add'>+0x752D = 0x9190</div><div class='add'>+0x752E = 0x918D</div><div class='add'>+0x752F = 0x9191</div><div class='add'>+0x7530 = 0x91A2</div><div class='add'>+0x7531 = 0x91A3</div><div class='add'>+0x7532 = 0x91AA</div><div class='add'>+0x7533 = 0x91AD</div><div class='add'>+0x7534 = 0x91AE</div><div class='add'>+0x7535 = 0x91AF</div><div class='add'>+0x7536 = 0x91B5</div><div class='add'>+0x7537 = 0x91B4</div><div class='add'>+0x7538 = 0x91BA</div><div class='add'>+0x7539 = 0x8C55</div><div class='add'>+0x753A = 0x9E7A</div><div class='add'>+0x753B = 0x8E89</div><div class='add'>+0x753C = 0x8DEB</div><div class='add'>+0x753D = 0x8E05</div><div class='add'>+0x753E = 0x8E59</div><div class='add'>+0x753F = 0x8E69</div><div class='add'>+0x7540 = 0x8DB5</div><div class='add'>+0x7541 = 0x8DBF</div><div class='add'>+0x7542 = 0x8DBC</div><div class='add'>+0x7543 = 0x8DBA</div><div class='add'>+0x7544 = 0x8E4C</div><div class='add'>+0x7545 = 0x8DD6</div><div class='add'>+0x7546 = 0x8DD7</div><div class='add'>+0x7547 = 0x8DDA</div><div class='add'>+0x7548 = 0x8E92</div><div class='add'>+0x7549 = 0x8DCE</div><div class='add'>+0x754A = 0x8DCF</div><div class='add'>+0x754B = 0x8DDB</div><div class='add'>+0x754C = 0x8DC6</div><div class='add'>+0x754D = 0x8DEC</div><div class='add'>+0x754E = 0x8E7A</div><div class='add'>+0x754F = 0x8E55</div><div class='add'>+0x7550 = 0x8DE3</div><div class='add'>+0x7551 = 0x8E9A</div><div class='add'>+0x7552 = 0x8E8B</div><div class='add'>+0x7553 = 0x8DE4</div><div class='add'>+0x7554 = 0x8E09</div><div class='add'>+0x7555 = 0x8DFD</div><div class='add'>+0x7556 = 0x8E14</div><div class='add'>+0x7557 = 0x8E1D</div><div class='add'>+0x7558 = 0x8E1F</div><div class='add'>+0x7559 = 0x8E93</div><div class='add'>+0x755A = 0x8E2E</div><div class='add'>+0x755B = 0x8E23</div><div class='add'>+0x755C = 0x8E91</div><div class='add'>+0x755D = 0x8E3A</div><div class='add'>+0x755E = 0x8E40</div><div class='add'>+0x755F = 0x8E39</div><div class='add'>+0x7560 = 0x8E35</div><div class='add'>+0x7561 = 0x8E3D</div><div class='add'>+0x7562 = 0x8E31</div><div class='add'>+0x7563 = 0x8E49</div><div class='add'>+0x7564 = 0x8E41</div><div class='add'>+0x7565 = 0x8E42</div><div class='add'>+0x7566 = 0x8EA1</div><div class='add'>+0x7567 = 0x8E63</div><div class='add'>+0x7568 = 0x8E4A</div><div class='add'>+0x7569 = 0x8E70</div><div class='add'>+0x756A = 0x8E76</div><div class='add'>+0x756B = 0x8E7C</div><div class='add'>+0x756C = 0x8E6F</div><div class='add'>+0x756D = 0x8E74</div><div class='add'>+0x756E = 0x8E85</div><div class='add'>+0x756F = 0x8EAA</div><div class='add'>+0x7570 = 0x8E94</div><div class='add'>+0x7571 = 0x8E90</div><div class='add'>+0x7572 = 0x8EA6</div><div class='add'>+0x7573 = 0x8E9E</div><div class='add'>+0x7574 = 0x8C78</div><div class='add'>+0x7575 = 0x8C82</div><div class='add'>+0x7576 = 0x8C8A</div><div class='add'>+0x7577 = 0x8C85</div><div class='add'>+0x7578 = 0x8C98</div><div class='add'>+0x7579 = 0x8C94</div><div class='add'>+0x757A = 0x659B</div><div class='add'>+0x757B = 0x89D6</div><div class='add'>+0x757C = 0x89F4</div><div class='add'>+0x757D = 0x89DA</div><div class='add'>+0x757E = 0x89DC</div><div class='add'>+0x7621 = 0x89E5</div><div class='add'>+0x7622 = 0x89EB</div><div class='add'>+0x7623 = 0x89F6</div><div class='add'>+0x7624 = 0x8A3E</div><div class='add'>+0x7625 = 0x8B26</div><div class='add'>+0x7626 = 0x975A</div><div class='add'>+0x7627 = 0x96E9</div><div class='add'>+0x7628 = 0x9742</div><div class='add'>+0x7629 = 0x96EF</div><div class='add'>+0x762A = 0x9706</div><div class='add'>+0x762B = 0x973D</div><div class='add'>+0x762C = 0x9708</div><div class='add'>+0x762D = 0x970F</div><div class='add'>+0x762E = 0x970E</div><div class='add'>+0x762F = 0x972A</div><div class='add'>+0x7630 = 0x9744</div><div class='add'>+0x7631 = 0x9730</div><div class='add'>+0x7632 = 0x973E</div><div class='add'>+0x7633 = 0x9F54</div><div class='add'>+0x7634 = 0x9F5F</div><div class='add'>+0x7635 = 0x9F59</div><div class='add'>+0x7636 = 0x9F60</div><div class='add'>+0x7637 = 0x9F5C</div><div class='add'>+0x7638 = 0x9F66</div><div class='add'>+0x7639 = 0x9F6C</div><div class='add'>+0x763A = 0x9F6A</div><div class='add'>+0x763B = 0x9F77</div><div class='add'>+0x763C = 0x9EFD</div><div class='add'>+0x763D = 0x9EFF</div><div class='add'>+0x763E = 0x9F09</div><div class='add'>+0x763F = 0x96B9</div><div class='add'>+0x7640 = 0x96BC</div><div class='add'>+0x7641 = 0x96BD</div><div class='add'>+0x7642 = 0x96CE</div><div class='add'>+0x7643 = 0x96D2</div><div class='add'>+0x7644 = 0x77BF</div><div class='add'>+0x7645 = 0x8B8E</div><div class='add'>+0x7646 = 0x928E</div><div class='add'>+0x7647 = 0x947E</div><div class='add'>+0x7648 = 0x92C8</div><div class='add'>+0x7649 = 0x93E8</div><div class='add'>+0x764A = 0x936A</div><div class='add'>+0x764B = 0x93CA</div><div class='add'>+0x764C = 0x938F</div><div class='add'>+0x764D = 0x943E</div><div class='add'>+0x764E = 0x946B</div><div class='add'>+0x764F = 0x9B77</div><div class='add'>+0x7650 = 0x9B74</div><div class='add'>+0x7651 = 0x9B81</div><div class='add'>+0x7652 = 0x9B83</div><div class='add'>+0x7653 = 0x9B8E</div><div class='add'>+0x7654 = 0x9C78</div><div class='add'>+0x7655 = 0x7A4C</div><div class='add'>+0x7656 = 0x9B92</div><div class='add'>+0x7657 = 0x9C5F</div><div class='add'>+0x7658 = 0x9B90</div><div class='add'>+0x7659 = 0x9BAD</div><div class='add'>+0x765A = 0x9B9A</div><div class='add'>+0x765B = 0x9BAA</div><div class='add'>+0x765C = 0x9B9E</div><div class='add'>+0x765D = 0x9C6D</div><div class='add'>+0x765E = 0x9BAB</div><div class='add'>+0x765F = 0x9B9D</div><div class='add'>+0x7660 = 0x9C58</div><div class='add'>+0x7661 = 0x9BC1</div><div class='add'>+0x7662 = 0x9C7A</div><div class='add'>+0x7663 = 0x9C31</div><div class='add'>+0x7664 = 0x9C39</div><div class='add'>+0x7665 = 0x9C23</div><div class='add'>+0x7666 = 0x9C37</div><div class='add'>+0x7667 = 0x9BC0</div><div class='add'>+0x7668 = 0x9BCA</div><div class='add'>+0x7669 = 0x9BC7</div><div class='add'>+0x766A = 0x9BFD</div><div class='add'>+0x766B = 0x9BD6</div><div class='add'>+0x766C = 0x9BEA</div><div class='add'>+0x766D = 0x9BEB</div><div class='add'>+0x766E = 0x9BE1</div><div class='add'>+0x766F = 0x9BE4</div><div class='add'>+0x7670 = 0x9BE7</div><div class='add'>+0x7671 = 0x9BDD</div><div class='add'>+0x7672 = 0x9BE2</div><div class='add'>+0x7673 = 0x9BF0</div><div class='add'>+0x7674 = 0x9BDB</div><div class='add'>+0x7675 = 0x9BF4</div><div class='add'>+0x7676 = 0x9BD4</div><div class='add'>+0x7677 = 0x9C5D</div><div class='add'>+0x7678 = 0x9C08</div><div class='add'>+0x7679 = 0x9C10</div><div class='add'>+0x767A = 0x9C0D</div><div class='add'>+0x767B = 0x9C12</div><div class='add'>+0x767C = 0x9C09</div><div class='add'>+0x767D = 0x9BFF</div><div class='add'>+0x767E = 0x9C20</div><div class='add'>+0x7721 = 0x9C32</div><div class='add'>+0x7722 = 0x9C2D</div><div class='add'>+0x7723 = 0x9C28</div><div class='add'>+0x7724 = 0x9C25</div><div class='add'>+0x7725 = 0x9C29</div><div class='add'>+0x7726 = 0x9C33</div><div class='add'>+0x7727 = 0x9C3E</div><div class='add'>+0x7728 = 0x9C48</div><div class='add'>+0x7729 = 0x9C3B</div><div class='add'>+0x772A = 0x9C35</div><div class='add'>+0x772B = 0x9C45</div><div class='add'>+0x772C = 0x9C56</div><div class='add'>+0x772D = 0x9C54</div><div class='add'>+0x772E = 0x9C52</div><div class='add'>+0x772F = 0x9C67</div><div class='add'>+0x7730 = 0x977C</div><div class='add'>+0x7731 = 0x9785</div><div class='add'>+0x7732 = 0x97C3</div><div class='add'>+0x7733 = 0x97BD</div><div class='add'>+0x7734 = 0x9794</div><div class='add'>+0x7735 = 0x97C9</div><div class='add'>+0x7736 = 0x97AB</div><div class='add'>+0x7737 = 0x97A3</div><div class='add'>+0x7738 = 0x97B2</div><div class='add'>+0x7739 = 0x97B4</div><div class='add'>+0x773A = 0x9AB1</div><div class='add'>+0x773B = 0x9AB0</div><div class='add'>+0x773C = 0x9AB7</div><div class='add'>+0x773D = 0x9DBB</div><div class='add'>+0x773E = 0x9AB6</div><div class='add'>+0x773F = 0x9ABA</div><div class='add'>+0x7740 = 0x9ABC</div><div class='add'>+0x7741 = 0x9AC1</div><div class='add'>+0x7742 = 0x9AC0</div><div class='add'>+0x7743 = 0x9ACF</div><div class='add'>+0x7744 = 0x9AC2</div><div class='add'>+0x7745 = 0x9AD6</div><div class='add'>+0x7746 = 0x9AD5</div><div class='add'>+0x7747 = 0x9AD1</div><div class='add'>+0x7748 = 0x9B45</div><div class='add'>+0x7749 = 0x9B43</div><div class='add'>+0x774A = 0x9B58</div><div class='add'>+0x774B = 0x9B4E</div><div class='add'>+0x774C = 0x9B48</div><div class='add'>+0x774D = 0x9B4D</div><div class='add'>+0x774E = 0x9B51</div><div class='add'>+0x774F = 0x9957</div><div class='add'>+0x7750 = 0x995C</div><div class='add'>+0x7751 = 0x992E</div><div class='add'>+0x7752 = 0x9955</div><div class='add'>+0x7753 = 0x9954</div><div class='add'>+0x7754 = 0x9ADF</div><div class='add'>+0x7755 = 0x9AE1</div><div class='add'>+0x7756 = 0x9AE6</div><div class='add'>+0x7757 = 0x9AEF</div><div class='add'>+0x7758 = 0x9AEB</div><div class='add'>+0x7759 = 0x9AFB</div><div class='add'>+0x775A = 0x9AED</div><div class='add'>+0x775B = 0x9AF9</div><div class='add'>+0x775C = 0x9B08</div><div class='add'>+0x775D = 0x9B0F</div><div class='add'>+0x775E = 0x9B22</div><div class='add'>+0x775F = 0x9B1F</div><div class='add'>+0x7760 = 0x9B23</div><div class='add'>+0x7761 = 0x4E48</div><div class='add'>+0x7762 = 0x9EBE</div><div class='add'>+0x7763 = 0x7E3B</div><div class='add'>+0x7764 = 0x9E82</div><div class='add'>+0x7765 = 0x9E87</div><div class='add'>+0x7766 = 0x9E88</div><div class='add'>+0x7767 = 0x9E8B</div><div class='add'>+0x7768 = 0x9E92</div><div class='add'>+0x7769 = 0x93D6</div><div class='add'>+0x776A = 0x9E9D</div><div class='add'>+0x776B = 0x9E9F</div><div class='add'>+0x776C = 0x9EDB</div><div class='add'>+0x776D = 0x9EDC</div><div class='add'>+0x776E = 0x9EDD</div><div class='add'>+0x776F = 0x9EE0</div><div class='add'>+0x7770 = 0x9EDF</div><div class='add'>+0x7771 = 0x9EE2</div><div class='add'>+0x7772 = 0x9EF7</div><div class='add'>+0x7773 = 0x9EE7</div><div class='add'>+0x7774 = 0x9EE5</div><div class='add'>+0x7775 = 0x9EF2</div><div class='add'>+0x7776 = 0x9EEF</div><div class='add'>+0x7777 = 0x9F22</div><div class='add'>+0x7778 = 0x9F2C</div><div class='add'>+0x7779 = 0x9F2F</div><div class='add'>+0x777A = 0x9F39</div><div class='add'>+0x777B = 0x9F37</div><div class='add'>+0x777C = 0x9F3D</div><div class='add'>+0x777D = 0x9F3E</div><div class='add'>+0x777E = 0x9F44</div><div class='add'>+0x7821 = 0x896C</div><div class='add'>+0x7822 = 0x95C6</div><div class='add'>+0x7823 = 0x9336</div><div class='add'>+0x7824 = 0x5F46</div><div class='add'>+0x7825 = 0x8514</div><div class='add'>+0x7826 = 0x7E94</div><div class='add'>+0x7827 = 0x5382</div><div class='add'>+0x7828 = 0x51B2</div><div class='add'>+0x7829 = 0x4E11</div><div class='add'>+0x782A = 0x9F63</div><div class='add'>+0x782B = 0x5679</div><div class='add'>+0x782C = 0x515A</div><div class='add'>+0x782D = 0x6DC0</div><div class='add'>+0x782E = 0x9F15</div><div class='add'>+0x782F = 0x6597</div><div class='add'>+0x7830 = 0x5641</div><div class='add'>+0x7831 = 0x9AEE</div><div class='add'>+0x7832 = 0x8303</div><div class='add'>+0x7833 = 0x4E30</div><div class='add'>+0x7834 = 0x8907</div><div class='add'>+0x7835 = 0x5E72</div><div class='add'>+0x7836 = 0x7A40</div><div class='add'>+0x7837 = 0x98B3</div><div class='add'>+0x7838 = 0x5E7F</div><div class='add'>+0x7839 = 0x95A4</div><div class='add'>+0x783A = 0x9B0D</div><div class='add'>+0x783B = 0x5212</div><div class='add'>+0x783C = 0x8FF4</div><div class='add'>+0x783D = 0x5F59</div><div class='add'>+0x783E = 0x7A6B</div><div class='add'>+0x783F = 0x98E2</div><div class='add'>+0x7840 = 0x51E0</div><div class='add'>+0x7841 = 0x50A2</div><div class='add'>+0x7842 = 0x4EF7</div><div class='add'>+0x7843 = 0x8350</div><div class='add'>+0x7844 = 0x8591</div><div class='add'>+0x7845 = 0x5118</div><div class='add'>+0x7846 = 0x636E</div><div class='add'>+0x7847 = 0x6372</div><div class='add'>+0x7848 = 0x524B</div><div class='add'>+0x7849 = 0x5938</div><div class='add'>+0x784A = 0x774F</div><div class='add'>+0x784B = 0x8721</div><div class='add'>+0x784C = 0x814A</div><div class='add'>+0x784D = 0x7E8D</div><div class='add'>+0x784E = 0x91CC</div><div class='add'>+0x784F = 0x66C6</div><div class='add'>+0x7850 = 0x5E18</div><div class='add'>+0x7851 = 0x77AD</div><div class='add'>+0x7852 = 0x9E75</div><div class='add'>+0x7853 = 0x56C9</div><div class='add'>+0x7854 = 0x9EF4</div><div class='add'>+0x7855 = 0x6FDB</div><div class='add'>+0x7856 = 0x61DE</div><div class='add'>+0x7857 = 0x77C7</div><div class='add'>+0x7858 = 0x7030</div><div class='add'>+0x7859 = 0x9EB5</div><div class='add'>+0x785A = 0x884A</div><div class='add'>+0x785B = 0x95E2</div><div class='add'>+0x785C = 0x82F9</div><div class='add'>+0x785D = 0x51ED</div><div class='add'>+0x785E = 0x6251</div><div class='add'>+0x785F = 0x4EC6</div><div class='add'>+0x7860 = 0x6734</div><div class='add'>+0x7861 = 0x97C6</div><div class='add'>+0x7862 = 0x7C64</div><div class='add'>+0x7863 = 0x7E34</div><div class='add'>+0x7864 = 0x97A6</div><div class='add'>+0x7865 = 0x9EAF</div><div class='add'>+0x7866 = 0x786E</div><div class='add'>+0x7867 = 0x820D</div><div class='add'>+0x7868 = 0x672F</div><div class='add'>+0x7869 = 0x677E</div><div class='add'>+0x786A = 0x56CC</div><div class='add'>+0x786B = 0x53F0</div><div class='add'>+0x786C = 0x98B1</div><div class='add'>+0x786D = 0x6AAF</div><div class='add'>+0x786E = 0x7F4E</div><div class='add'>+0x786F = 0x6D82</div><div class='add'>+0x7870 = 0x7CF0</div><div class='add'>+0x7871 = 0x4E07</div><div class='add'>+0x7872 = 0x4FC2</div><div class='add'>+0x7873 = 0x7E6B</div><div class='add'>+0x7874 = 0x9E79</div><div class='add'>+0x7875 = 0x56AE</div><div class='add'>+0x7876 = 0x9B1A</div><div class='add'>+0x7877 = 0x846F</div><div class='add'>+0x7878 = 0x53F6</div><div class='add'>+0x7879 = 0x90C1</div><div class='add'>+0x787A = 0x79A6</div><div class='add'>+0x787B = 0x7C72</div><div class='add'>+0x787C = 0x613F</div><div class='add'>+0x787D = 0x4E91</div><div class='add'>+0x787E = 0x9AD2</div><div class='add'>+0x7921 = 0x75C7</div><div class='add'>+0x7922 = 0x96BB</div><div class='add'>+0x7923 = 0x53EA</div><div class='add'>+0x7924 = 0x7DFB</div><div class='add'>+0x7925 = 0x88FD</div><div class='add'>+0x7926 = 0x79CD</div><div class='add'>+0x7927 = 0x7843</div><div class='add'>+0x7928 = 0x7B51</div><div class='add'>+0x7929 = 0x51C6</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/GB/GB2312%UCS.src b/enc/trans/GB/GB2312%UCS.src<br/>new file mode 100644<br/>index 0000000000..d196bab535<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/GB/GB2312%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/GB/GB2312%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,7535 @@</div><div class='add'>+# $NetBSD: GB2312%UCS.src,v 1.4 2006/08/19 10:58:41 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"GB2312/UCS"</div><div class='add'>+SRC_ZONE	0x21-0x77 / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             GB2312-80 to Unicode table (complete, hex format)</div><div class='add'>+#	Unicode version:  3.0</div><div class='add'>+#	Table version:    1.0</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             1999 October 8</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on optical media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</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 for</div><div class='add'>+#	internal or external distribution as long as this notice remains</div><div class='add'>+#	attached.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# This table contains one set of mappings from GB2312-80 into Unicode.</div><div class='add'>+# Note that these data are *possible* mappings only and may not be the</div><div class='add'>+# same as those used by actual products, nor may they be the best suited</div><div class='add'>+# for all uses.  For more information on the mappings between various code</div><div class='add'>+# pages incorporating the repertoire of GB2312-80 and Unicode, consult the</div><div class='add'>+# VENDORS mapping data.  Normative information on the mapping between</div><div class='add'>+# GB2312-80 and Unicode may be found in the Unihan.txt file in the</div><div class='add'>+# latest Unicode Character Database.</div><div class='add'>+#</div><div class='add'>+# If you have carefully considered the fact that the mappings in</div><div class='add'>+# this table are only one possible set of mappings between GB2312-80 and</div><div class='add'>+# Unicode and have no normative status, but still feel that you</div><div class='add'>+# have located an error in the table that requires fixing, you may</div><div class='add'>+# report any such error to errata@unicode.org.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+#	Format:  Three tab-separated columns</div><div class='add'>+#		 Column #1 is the GB2312 code (in hex as 0xXXXX)</div><div class='add'>+#		 Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		 Column #3 the Unicode name (follows a comment sign, '#')</div><div class='add'>+#			The official names for Unicode characters U+4E00</div><div class='add'>+#			to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",</div><div class='add'>+#			where XXXX is the code point.  Including all these</div><div class='add'>+#			names in this file increases its size substantially</div><div class='add'>+#			and needlessly.  The token "&lt;CJK&gt;" is used for the</div><div class='add'>+#			name of these characters.  If necessary, it can be</div><div class='add'>+#			expanded algorithmically by a parser or editor.</div><div class='add'>+#</div><div class='add'>+#	The entries are in GB2312 order</div><div class='add'>+#</div><div class='add'>+#	The following algorithms can be used to change the hex form</div><div class='add'>+#		of GB2312 to other standard forms:</div><div class='add'>+#</div><div class='add'>+#		To change hex to EUC form, add 0x8080</div><div class='add'>+#		To change hex to kuten form, first subtract 0x2020.  Then</div><div class='add'>+#			the high and low bytes correspond to the ku and ten of</div><div class='add'>+#			the kuten form.  For example, 0x2121 -&gt; 0x0101 -&gt; 0101;</div><div class='add'>+#			0x777E -&gt; 0x575E -&gt; 8794</div><div class='add'>+#</div><div class='add'>+#	Version history</div><div class='add'>+#	1.0 version updates 0.0d2 version by correcting mapping for 0x212C</div><div class='add'>+#             from U+2225 to U+2016.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+</div><div class='add'>+# GBK1</div><div class='add'>+0x2121 = 0x3000</div><div class='add'>+0x2122 = 0x3001</div><div class='add'>+0x2123 = 0x3002</div><div class='add'>+0x2124 = 0x00B7</div><div class='add'>+0x2125 = 0x02C9</div><div class='add'>+0x2126 = 0x02C7</div><div class='add'>+0x2127 = 0x00A8</div><div class='add'>+0x2128 = 0x3003</div><div class='add'>+0x2129 = 0x3005</div><div class='add'>+0x212A = 0x2014</div><div class='add'>+0x212B = 0xFF5E</div><div class='add'>+0x212C = 0x2016</div><div class='add'>+0x212D = 0x2026</div><div class='add'>+0x212E = 0x2018</div><div class='add'>+0x212F = 0x2019</div><div class='add'>+0x2130 = 0x201C</div><div class='add'>+0x2131 = 0x201D</div><div class='add'>+0x2132 = 0x3014</div><div class='add'>+0x2133 = 0x3015</div><div class='add'>+0x2134 = 0x3008</div><div class='add'>+0x2135 = 0x3009</div><div class='add'>+0x2136 = 0x300A</div><div class='add'>+0x2137 = 0x300B</div><div class='add'>+0x2138 = 0x300C</div><div class='add'>+0x2139 = 0x300D</div><div class='add'>+0x213A = 0x300E</div><div class='add'>+0x213B = 0x300F</div><div class='add'>+0x213C = 0x3016</div><div class='add'>+0x213D = 0x3017</div><div class='add'>+0x213E = 0x3010</div><div class='add'>+0x213F = 0x3011</div><div class='add'>+0x2140 = 0x00B1</div><div class='add'>+0x2141 = 0x00D7</div><div class='add'>+0x2142 = 0x00F7</div><div class='add'>+0x2143 = 0x2236</div><div class='add'>+0x2144 = 0x2227</div><div class='add'>+0x2145 = 0x2228</div><div class='add'>+0x2146 = 0x2211</div><div class='add'>+0x2147 = 0x220F</div><div class='add'>+0x2148 = 0x222A</div><div class='add'>+0x2149 = 0x2229</div><div class='add'>+0x214A = 0x2208</div><div class='add'>+0x214B = 0x2237</div><div class='add'>+0x214C = 0x221A</div><div class='add'>+0x214D = 0x22A5</div><div class='add'>+0x214E = 0x2225</div><div class='add'>+0x214F = 0x2220</div><div class='add'>+0x2150 = 0x2312</div><div class='add'>+0x2151 = 0x2299</div><div class='add'>+0x2152 = 0x222B</div><div class='add'>+0x2153 = 0x222E</div><div class='add'>+0x2154 = 0x2261</div><div class='add'>+0x2155 = 0x224C</div><div class='add'>+0x2156 = 0x2248</div><div class='add'>+0x2157 = 0x223D</div><div class='add'>+0x2158 = 0x221D</div><div class='add'>+0x2159 = 0x2260</div><div class='add'>+0x215A = 0x226E</div><div class='add'>+0x215B = 0x226F</div><div class='add'>+0x215C = 0x2264</div><div class='add'>+0x215D = 0x2265</div><div class='add'>+0x215E = 0x221E</div><div class='add'>+0x215F = 0x2235</div><div class='add'>+0x2160 = 0x2234</div><div class='add'>+0x2161 = 0x2642</div><div class='add'>+0x2162 = 0x2640</div><div class='add'>+0x2163 = 0x00B0</div><div class='add'>+0x2164 = 0x2032</div><div class='add'>+0x2165 = 0x2033</div><div class='add'>+0x2166 = 0x2103</div><div class='add'>+0x2167 = 0xFF04</div><div class='add'>+0x2168 = 0x00A4</div><div class='add'>+0x2169 = 0xFFE0</div><div class='add'>+0x216A = 0xFFE1</div><div class='add'>+0x216B = 0x2030</div><div class='add'>+0x216C = 0x00A7</div><div class='add'>+0x216D = 0x2116</div><div class='add'>+0x216E = 0x2606</div><div class='add'>+0x216F = 0x2605</div><div class='add'>+0x2170 = 0x25CB</div><div class='add'>+0x2171 = 0x25CF</div><div class='add'>+0x2172 = 0x25CE</div><div class='add'>+0x2173 = 0x25C7</div><div class='add'>+0x2174 = 0x25C6</div><div class='add'>+0x2175 = 0x25A1</div><div class='add'>+0x2176 = 0x25A0</div><div class='add'>+0x2177 = 0x25B3</div><div class='add'>+0x2178 = 0x25B2</div><div class='add'>+0x2179 = 0x203B</div><div class='add'>+0x217A = 0x2192</div><div class='add'>+0x217B = 0x2190</div><div class='add'>+0x217C = 0x2191</div><div class='add'>+0x217D = 0x2193</div><div class='add'>+0x217E = 0x3013</div><div class='add'>+0x2231 = 0x2488</div><div class='add'>+0x2232 = 0x2489</div><div class='add'>+0x2233 = 0x248A</div><div class='add'>+0x2234 = 0x248B</div><div class='add'>+0x2235 = 0x248C</div><div class='add'>+0x2236 = 0x248D</div><div class='add'>+0x2237 = 0x248E</div><div class='add'>+0x2238 = 0x248F</div><div class='add'>+0x2239 = 0x2490</div><div class='add'>+0x223A = 0x2491</div><div class='add'>+0x223B = 0x2492</div><div class='add'>+0x223C = 0x2493</div><div class='add'>+0x223D = 0x2494</div><div class='add'>+0x223E = 0x2495</div><div class='add'>+0x223F = 0x2496</div><div class='add'>+0x2240 = 0x2497</div><div class='add'>+0x2241 = 0x2498</div><div class='add'>+0x2242 = 0x2499</div><div class='add'>+0x2243 = 0x249A</div><div class='add'>+0x2244 = 0x249B</div><div class='add'>+0x2245 = 0x2474</div><div class='add'>+0x2246 = 0x2475</div><div class='add'>+0x2247 = 0x2476</div><div class='add'>+0x2248 = 0x2477</div><div class='add'>+0x2249 = 0x2478</div><div class='add'>+0x224A = 0x2479</div><div class='add'>+0x224B = 0x247A</div><div class='add'>+0x224C = 0x247B</div><div class='add'>+0x224D = 0x247C</div><div class='add'>+0x224E = 0x247D</div><div class='add'>+0x224F = 0x247E</div><div class='add'>+0x2250 = 0x247F</div><div class='add'>+0x2251 = 0x2480</div><div class='add'>+0x2252 = 0x2481</div><div class='add'>+0x2253 = 0x2482</div><div class='add'>+0x2254 = 0x2483</div><div class='add'>+0x2255 = 0x2484</div><div class='add'>+0x2256 = 0x2485</div><div class='add'>+0x2257 = 0x2486</div><div class='add'>+0x2258 = 0x2487</div><div class='add'>+0x2259 = 0x2460</div><div class='add'>+0x225A = 0x2461</div><div class='add'>+0x225B = 0x2462</div><div class='add'>+0x225C = 0x2463</div><div class='add'>+0x225D = 0x2464</div><div class='add'>+0x225E = 0x2465</div><div class='add'>+0x225F = 0x2466</div><div class='add'>+0x2260 = 0x2467</div><div class='add'>+0x2261 = 0x2468</div><div class='add'>+0x2262 = 0x2469</div><div class='add'>+0x2265 = 0x3220</div><div class='add'>+0x2266 = 0x3221</div><div class='add'>+0x2267 = 0x3222</div><div class='add'>+0x2268 = 0x3223</div><div class='add'>+0x2269 = 0x3224</div><div class='add'>+0x226A = 0x3225</div><div class='add'>+0x226B = 0x3226</div><div class='add'>+0x226C = 0x3227</div><div class='add'>+0x226D = 0x3228</div><div class='add'>+0x226E = 0x3229</div><div class='add'>+0x2271 = 0x2160</div><div class='add'>+0x2272 = 0x2161</div><div class='add'>+0x2273 = 0x2162</div><div class='add'>+0x2274 = 0x2163</div><div class='add'>+0x2275 = 0x2164</div><div class='add'>+0x2276 = 0x2165</div><div class='add'>+0x2277 = 0x2166</div><div class='add'>+0x2278 = 0x2167</div><div class='add'>+0x2279 = 0x2168</div><div class='add'>+0x227A = 0x2169</div><div class='add'>+0x227B = 0x216A</div><div class='add'>+0x227C = 0x216B</div><div class='add'>+0x2321 = 0xFF01</div><div class='add'>+0x2322 = 0xFF02</div><div class='add'>+0x2323 = 0xFF03</div><div class='add'>+0x2324 = 0xFFE5</div><div class='add'>+0x2325 = 0xFF05</div><div class='add'>+0x2326 = 0xFF06</div><div class='add'>+0x2327 = 0xFF07</div><div class='add'>+0x2328 = 0xFF08</div><div class='add'>+0x2329 = 0xFF09</div><div class='add'>+0x232A = 0xFF0A</div><div class='add'>+0x232B = 0xFF0B</div><div class='add'>+0x232C = 0xFF0C</div><div class='add'>+0x232D = 0xFF0D</div><div class='add'>+0x232E = 0xFF0E</div><div class='add'>+0x232F = 0xFF0F</div><div class='add'>+0x2330 = 0xFF10</div><div class='add'>+0x2331 = 0xFF11</div><div class='add'>+0x2332 = 0xFF12</div><div class='add'>+0x2333 = 0xFF13</div><div class='add'>+0x2334 = 0xFF14</div><div class='add'>+0x2335 = 0xFF15</div><div class='add'>+0x2336 = 0xFF16</div><div class='add'>+0x2337 = 0xFF17</div><div class='add'>+0x2338 = 0xFF18</div><div class='add'>+0x2339 = 0xFF19</div><div class='add'>+0x233A = 0xFF1A</div><div class='add'>+0x233B = 0xFF1B</div><div class='add'>+0x233C = 0xFF1C</div><div class='add'>+0x233D = 0xFF1D</div><div class='add'>+0x233E = 0xFF1E</div><div class='add'>+0x233F = 0xFF1F</div><div class='add'>+0x2340 = 0xFF20</div><div class='add'>+0x2341 = 0xFF21</div><div class='add'>+0x2342 = 0xFF22</div><div class='add'>+0x2343 = 0xFF23</div><div class='add'>+0x2344 = 0xFF24</div><div class='add'>+0x2345 = 0xFF25</div><div class='add'>+0x2346 = 0xFF26</div><div class='add'>+0x2347 = 0xFF27</div><div class='add'>+0x2348 = 0xFF28</div><div class='add'>+0x2349 = 0xFF29</div><div class='add'>+0x234A = 0xFF2A</div><div class='add'>+0x234B = 0xFF2B</div><div class='add'>+0x234C = 0xFF2C</div><div class='add'>+0x234D = 0xFF2D</div><div class='add'>+0x234E = 0xFF2E</div><div class='add'>+0x234F = 0xFF2F</div><div class='add'>+0x2350 = 0xFF30</div><div class='add'>+0x2351 = 0xFF31</div><div class='add'>+0x2352 = 0xFF32</div><div class='add'>+0x2353 = 0xFF33</div><div class='add'>+0x2354 = 0xFF34</div><div class='add'>+0x2355 = 0xFF35</div><div class='add'>+0x2356 = 0xFF36</div><div class='add'>+0x2357 = 0xFF37</div><div class='add'>+0x2358 = 0xFF38</div><div class='add'>+0x2359 = 0xFF39</div><div class='add'>+0x235A = 0xFF3A</div><div class='add'>+0x235B = 0xFF3B</div><div class='add'>+0x235C = 0xFF3C</div><div class='add'>+0x235D = 0xFF3D</div><div class='add'>+0x235E = 0xFF3E</div><div class='add'>+0x235F = 0xFF3F</div><div class='add'>+0x2360 = 0xFF40</div><div class='add'>+0x2361 = 0xFF41</div><div class='add'>+0x2362 = 0xFF42</div><div class='add'>+0x2363 = 0xFF43</div><div class='add'>+0x2364 = 0xFF44</div><div class='add'>+0x2365 = 0xFF45</div><div class='add'>+0x2366 = 0xFF46</div><div class='add'>+0x2367 = 0xFF47</div><div class='add'>+0x2368 = 0xFF48</div><div class='add'>+0x2369 = 0xFF49</div><div class='add'>+0x236A = 0xFF4A</div><div class='add'>+0x236B = 0xFF4B</div><div class='add'>+0x236C = 0xFF4C</div><div class='add'>+0x236D = 0xFF4D</div><div class='add'>+0x236E = 0xFF4E</div><div class='add'>+0x236F = 0xFF4F</div><div class='add'>+0x2370 = 0xFF50</div><div class='add'>+0x2371 = 0xFF51</div><div class='add'>+0x2372 = 0xFF52</div><div class='add'>+0x2373 = 0xFF53</div><div class='add'>+0x2374 = 0xFF54</div><div class='add'>+0x2375 = 0xFF55</div><div class='add'>+0x2376 = 0xFF56</div><div class='add'>+0x2377 = 0xFF57</div><div class='add'>+0x2378 = 0xFF58</div><div class='add'>+0x2379 = 0xFF59</div><div class='add'>+0x237A = 0xFF5A</div><div class='add'>+0x237B = 0xFF5B</div><div class='add'>+0x237C = 0xFF5C</div><div class='add'>+0x237D = 0xFF5D</div><div class='add'>+0x237E = 0xFFE3</div><div class='add'>+0x2421 = 0x3041</div><div class='add'>+0x2422 = 0x3042</div><div class='add'>+0x2423 = 0x3043</div><div class='add'>+0x2424 = 0x3044</div><div class='add'>+0x2425 = 0x3045</div><div class='add'>+0x2426 = 0x3046</div><div class='add'>+0x2427 = 0x3047</div><div class='add'>+0x2428 = 0x3048</div><div class='add'>+0x2429 = 0x3049</div><div class='add'>+0x242A = 0x304A</div><div class='add'>+0x242B = 0x304B</div><div class='add'>+0x242C = 0x304C</div><div class='add'>+0x242D = 0x304D</div><div class='add'>+0x242E = 0x304E</div><div class='add'>+0x242F = 0x304F</div><div class='add'>+0x2430 = 0x3050</div><div class='add'>+0x2431 = 0x3051</div><div class='add'>+0x2432 = 0x3052</div><div class='add'>+0x2433 = 0x3053</div><div class='add'>+0x2434 = 0x3054</div><div class='add'>+0x2435 = 0x3055</div><div class='add'>+0x2436 = 0x3056</div><div class='add'>+0x2437 = 0x3057</div><div class='add'>+0x2438 = 0x3058</div><div class='add'>+0x2439 = 0x3059</div><div class='add'>+0x243A = 0x305A</div><div class='add'>+0x243B = 0x305B</div><div class='add'>+0x243C = 0x305C</div><div class='add'>+0x243D = 0x305D</div><div class='add'>+0x243E = 0x305E</div><div class='add'>+0x243F = 0x305F</div><div class='add'>+0x2440 = 0x3060</div><div class='add'>+0x2441 = 0x3061</div><div class='add'>+0x2442 = 0x3062</div><div class='add'>+0x2443 = 0x3063</div><div class='add'>+0x2444 = 0x3064</div><div class='add'>+0x2445 = 0x3065</div><div class='add'>+0x2446 = 0x3066</div><div class='add'>+0x2447 = 0x3067</div><div class='add'>+0x2448 = 0x3068</div><div class='add'>+0x2449 = 0x3069</div><div class='add'>+0x244A = 0x306A</div><div class='add'>+0x244B = 0x306B</div><div class='add'>+0x244C = 0x306C</div><div class='add'>+0x244D = 0x306D</div><div class='add'>+0x244E = 0x306E</div><div class='add'>+0x244F = 0x306F</div><div class='add'>+0x2450 = 0x3070</div><div class='add'>+0x2451 = 0x3071</div><div class='add'>+0x2452 = 0x3072</div><div class='add'>+0x2453 = 0x3073</div><div class='add'>+0x2454 = 0x3074</div><div class='add'>+0x2455 = 0x3075</div><div class='add'>+0x2456 = 0x3076</div><div class='add'>+0x2457 = 0x3077</div><div class='add'>+0x2458 = 0x3078</div><div class='add'>+0x2459 = 0x3079</div><div class='add'>+0x245A = 0x307A</div><div class='add'>+0x245B = 0x307B</div><div class='add'>+0x245C = 0x307C</div><div class='add'>+0x245D = 0x307D</div><div class='add'>+0x245E = 0x307E</div><div class='add'>+0x245F = 0x307F</div><div class='add'>+0x2460 = 0x3080</div><div class='add'>+0x2461 = 0x3081</div><div class='add'>+0x2462 = 0x3082</div><div class='add'>+0x2463 = 0x3083</div><div class='add'>+0x2464 = 0x3084</div><div class='add'>+0x2465 = 0x3085</div><div class='add'>+0x2466 = 0x3086</div><div class='add'>+0x2467 = 0x3087</div><div class='add'>+0x2468 = 0x3088</div><div class='add'>+0x2469 = 0x3089</div><div class='add'>+0x246A = 0x308A</div><div class='add'>+0x246B = 0x308B</div><div class='add'>+0x246C = 0x308C</div><div class='add'>+0x246D = 0x308D</div><div class='add'>+0x246E = 0x308E</div><div class='add'>+0x246F = 0x308F</div><div class='add'>+0x2470 = 0x3090</div><div class='add'>+0x2471 = 0x3091</div><div class='add'>+0x2472 = 0x3092</div><div class='add'>+0x2473 = 0x3093</div><div class='add'>+0x2521 = 0x30A1</div><div class='add'>+0x2522 = 0x30A2</div><div class='add'>+0x2523 = 0x30A3</div><div class='add'>+0x2524 = 0x30A4</div><div class='add'>+0x2525 = 0x30A5</div><div class='add'>+0x2526 = 0x30A6</div><div class='add'>+0x2527 = 0x30A7</div><div class='add'>+0x2528 = 0x30A8</div><div class='add'>+0x2529 = 0x30A9</div><div class='add'>+0x252A = 0x30AA</div><div class='add'>+0x252B = 0x30AB</div><div class='add'>+0x252C = 0x30AC</div><div class='add'>+0x252D = 0x30AD</div><div class='add'>+0x252E = 0x30AE</div><div class='add'>+0x252F = 0x30AF</div><div class='add'>+0x2530 = 0x30B0</div><div class='add'>+0x2531 = 0x30B1</div><div class='add'>+0x2532 = 0x30B2</div><div class='add'>+0x2533 = 0x30B3</div><div class='add'>+0x2534 = 0x30B4</div><div class='add'>+0x2535 = 0x30B5</div><div class='add'>+0x2536 = 0x30B6</div><div class='add'>+0x2537 = 0x30B7</div><div class='add'>+0x2538 = 0x30B8</div><div class='add'>+0x2539 = 0x30B9</div><div class='add'>+0x253A = 0x30BA</div><div class='add'>+0x253B = 0x30BB</div><div class='add'>+0x253C = 0x30BC</div><div class='add'>+0x253D = 0x30BD</div><div class='add'>+0x253E = 0x30BE</div><div class='add'>+0x253F = 0x30BF</div><div class='add'>+0x2540 = 0x30C0</div><div class='add'>+0x2541 = 0x30C1</div><div class='add'>+0x2542 = 0x30C2</div><div class='add'>+0x2543 = 0x30C3</div><div class='add'>+0x2544 = 0x30C4</div><div class='add'>+0x2545 = 0x30C5</div><div class='add'>+0x2546 = 0x30C6</div><div class='add'>+0x2547 = 0x30C7</div><div class='add'>+0x2548 = 0x30C8</div><div class='add'>+0x2549 = 0x30C9</div><div class='add'>+0x254A = 0x30CA</div><div class='add'>+0x254B = 0x30CB</div><div class='add'>+0x254C = 0x30CC</div><div class='add'>+0x254D = 0x30CD</div><div class='add'>+0x254E = 0x30CE</div><div class='add'>+0x254F = 0x30CF</div><div class='add'>+0x2550 = 0x30D0</div><div class='add'>+0x2551 = 0x30D1</div><div class='add'>+0x2552 = 0x30D2</div><div class='add'>+0x2553 = 0x30D3</div><div class='add'>+0x2554 = 0x30D4</div><div class='add'>+0x2555 = 0x30D5</div><div class='add'>+0x2556 = 0x30D6</div><div class='add'>+0x2557 = 0x30D7</div><div class='add'>+0x2558 = 0x30D8</div><div class='add'>+0x2559 = 0x30D9</div><div class='add'>+0x255A = 0x30DA</div><div class='add'>+0x255B = 0x30DB</div><div class='add'>+0x255C = 0x30DC</div><div class='add'>+0x255D = 0x30DD</div><div class='add'>+0x255E = 0x30DE</div><div class='add'>+0x255F = 0x30DF</div><div class='add'>+0x2560 = 0x30E0</div><div class='add'>+0x2561 = 0x30E1</div><div class='add'>+0x2562 = 0x30E2</div><div class='add'>+0x2563 = 0x30E3</div><div class='add'>+0x2564 = 0x30E4</div><div class='add'>+0x2565 = 0x30E5</div><div class='add'>+0x2566 = 0x30E6</div><div class='add'>+0x2567 = 0x30E7</div><div class='add'>+0x2568 = 0x30E8</div><div class='add'>+0x2569 = 0x30E9</div><div class='add'>+0x256A = 0x30EA</div><div class='add'>+0x256B = 0x30EB</div><div class='add'>+0x256C = 0x30EC</div><div class='add'>+0x256D = 0x30ED</div><div class='add'>+0x256E = 0x30EE</div><div class='add'>+0x256F = 0x30EF</div><div class='add'>+0x2570 = 0x30F0</div><div class='add'>+0x2571 = 0x30F1</div><div class='add'>+0x2572 = 0x30F2</div><div class='add'>+0x2573 = 0x30F3</div><div class='add'>+0x2574 = 0x30F4</div><div class='add'>+0x2575 = 0x30F5</div><div class='add'>+0x2576 = 0x30F6</div><div class='add'>+0x2621 = 0x0391</div><div class='add'>+0x2622 = 0x0392</div><div class='add'>+0x2623 = 0x0393</div><div class='add'>+0x2624 = 0x0394</div><div class='add'>+0x2625 = 0x0395</div><div class='add'>+0x2626 = 0x0396</div><div class='add'>+0x2627 = 0x0397</div><div class='add'>+0x2628 = 0x0398</div><div class='add'>+0x2629 = 0x0399</div><div class='add'>+0x262A = 0x039A</div><div class='add'>+0x262B = 0x039B</div><div class='add'>+0x262C = 0x039C</div><div class='add'>+0x262D = 0x039D</div><div class='add'>+0x262E = 0x039E</div><div class='add'>+0x262F = 0x039F</div><div class='add'>+0x2630 = 0x03A0</div><div class='add'>+0x2631 = 0x03A1</div><div class='add'>+0x2632 = 0x03A3</div><div class='add'>+0x2633 = 0x03A4</div><div class='add'>+0x2634 = 0x03A5</div><div class='add'>+0x2635 = 0x03A6</div><div class='add'>+0x2636 = 0x03A7</div><div class='add'>+0x2637 = 0x03A8</div><div class='add'>+0x2638 = 0x03A9</div><div class='add'>+0x2641 = 0x03B1</div><div class='add'>+0x2642 = 0x03B2</div><div class='add'>+0x2643 = 0x03B3</div><div class='add'>+0x2644 = 0x03B4</div><div class='add'>+0x2645 = 0x03B5</div><div class='add'>+0x2646 = 0x03B6</div><div class='add'>+0x2647 = 0x03B7</div><div class='add'>+0x2648 = 0x03B8</div><div class='add'>+0x2649 = 0x03B9</div><div class='add'>+0x264A = 0x03BA</div><div class='add'>+0x264B = 0x03BB</div><div class='add'>+0x264C = 0x03BC</div><div class='add'>+0x264D = 0x03BD</div><div class='add'>+0x264E = 0x03BE</div><div class='add'>+0x264F = 0x03BF</div><div class='add'>+0x2650 = 0x03C0</div><div class='add'>+0x2651 = 0x03C1</div><div class='add'>+0x2652 = 0x03C3</div><div class='add'>+0x2653 = 0x03C4</div><div class='add'>+0x2654 = 0x03C5</div><div class='add'>+0x2655 = 0x03C6</div><div class='add'>+0x2656 = 0x03C7</div><div class='add'>+0x2657 = 0x03C8</div><div class='add'>+0x2658 = 0x03C9</div><div class='add'>+0x2721 = 0x0410</div><div class='add'>+0x2722 = 0x0411</div><div class='add'>+0x2723 = 0x0412</div><div class='add'>+0x2724 = 0x0413</div><div class='add'>+0x2725 = 0x0414</div><div class='add'>+0x2726 = 0x0415</div><div class='add'>+0x2727 = 0x0401</div><div class='add'>+0x2728 = 0x0416</div><div class='add'>+0x2729 = 0x0417</div><div class='add'>+0x272A = 0x0418</div><div class='add'>+0x272B = 0x0419</div><div class='add'>+0x272C = 0x041A</div><div class='add'>+0x272D = 0x041B</div><div class='add'>+0x272E = 0x041C</div><div class='add'>+0x272F = 0x041D</div><div class='add'>+0x2730 = 0x041E</div><div class='add'>+0x2731 = 0x041F</div><div class='add'>+0x2732 = 0x0420</div><div class='add'>+0x2733 = 0x0421</div><div class='add'>+0x2734 = 0x0422</div><div class='add'>+0x2735 = 0x0423</div><div class='add'>+0x2736 = 0x0424</div><div class='add'>+0x2737 = 0x0425</div><div class='add'>+0x2738 = 0x0426</div><div class='add'>+0x2739 = 0x0427</div><div class='add'>+0x273A = 0x0428</div><div class='add'>+0x273B = 0x0429</div><div class='add'>+0x273C = 0x042A</div><div class='add'>+0x273D = 0x042B</div><div class='add'>+0x273E = 0x042C</div><div class='add'>+0x273F = 0x042D</div><div class='add'>+0x2740 = 0x042E</div><div class='add'>+0x2741 = 0x042F</div><div class='add'>+0x2751 = 0x0430</div><div class='add'>+0x2752 = 0x0431</div><div class='add'>+0x2753 = 0x0432</div><div class='add'>+0x2754 = 0x0433</div><div class='add'>+0x2755 = 0x0434</div><div class='add'>+0x2756 = 0x0435</div><div class='add'>+0x2757 = 0x0451</div><div class='add'>+0x2758 = 0x0436</div><div class='add'>+0x2759 = 0x0437</div><div class='add'>+0x275A = 0x0438</div><div class='add'>+0x275B = 0x0439</div><div class='add'>+0x275C = 0x043A</div><div class='add'>+0x275D = 0x043B</div><div class='add'>+0x275E = 0x043C</div><div class='add'>+0x275F = 0x043D</div><div class='add'>+0x2760 = 0x043E</div><div class='add'>+0x2761 = 0x043F</div><div class='add'>+0x2762 = 0x0440</div><div class='add'>+0x2763 = 0x0441</div><div class='add'>+0x2764 = 0x0442</div><div class='add'>+0x2765 = 0x0443</div><div class='add'>+0x2766 = 0x0444</div><div class='add'>+0x2767 = 0x0445</div><div class='add'>+0x2768 = 0x0446</div><div class='add'>+0x2769 = 0x0447</div><div class='add'>+0x276A = 0x0448</div><div class='add'>+0x276B = 0x0449</div><div class='add'>+0x276C = 0x044A</div><div class='add'>+0x276D = 0x044B</div><div class='add'>+0x276E = 0x044C</div><div class='add'>+0x276F = 0x044D</div><div class='add'>+0x2770 = 0x044E</div><div class='add'>+0x2771 = 0x044F</div><div class='add'>+0x2821 = 0x0101</div><div class='add'>+0x2822 = 0x00E1</div><div class='add'>+0x2823 = 0x01CE</div><div class='add'>+0x2824 = 0x00E0</div><div class='add'>+0x2825 = 0x0113</div><div class='add'>+0x2826 = 0x00E9</div><div class='add'>+0x2827 = 0x011B</div><div class='add'>+0x2828 = 0x00E8</div><div class='add'>+0x2829 = 0x012B</div><div class='add'>+0x282A = 0x00ED</div><div class='add'>+0x282B = 0x01D0</div><div class='add'>+0x282C = 0x00EC</div><div class='add'>+0x282D = 0x014D</div><div class='add'>+0x282E = 0x00F3</div><div class='add'>+0x282F = 0x01D2</div><div class='add'>+0x2830 = 0x00F2</div><div class='add'>+0x2831 = 0x016B</div><div class='add'>+0x2832 = 0x00FA</div><div class='add'>+0x2833 = 0x01D4</div><div class='add'>+0x2834 = 0x00F9</div><div class='add'>+0x2835 = 0x01D6</div><div class='add'>+0x2836 = 0x01D8</div><div class='add'>+0x2837 = 0x01DA</div><div class='add'>+0x2838 = 0x01DC</div><div class='add'>+0x2839 = 0x00FC</div><div class='add'>+0x283A = 0x00EA</div><div class='add'>+0x2845 = 0x3105</div><div class='add'>+0x2846 = 0x3106</div><div class='add'>+0x2847 = 0x3107</div><div class='add'>+0x2848 = 0x3108</div><div class='add'>+0x2849 = 0x3109</div><div class='add'>+0x284A = 0x310A</div><div class='add'>+0x284B = 0x310B</div><div class='add'>+0x284C = 0x310C</div><div class='add'>+0x284D = 0x310D</div><div class='add'>+0x284E = 0x310E</div><div class='add'>+0x284F = 0x310F</div><div class='add'>+0x2850 = 0x3110</div><div class='add'>+0x2851 = 0x3111</div><div class='add'>+0x2852 = 0x3112</div><div class='add'>+0x2853 = 0x3113</div><div class='add'>+0x2854 = 0x3114</div><div class='add'>+0x2855 = 0x3115</div><div class='add'>+0x2856 = 0x3116</div><div class='add'>+0x2857 = 0x3117</div><div class='add'>+0x2858 = 0x3118</div><div class='add'>+0x2859 = 0x3119</div><div class='add'>+0x285A = 0x311A</div><div class='add'>+0x285B = 0x311B</div><div class='add'>+0x285C = 0x311C</div><div class='add'>+0x285D = 0x311D</div><div class='add'>+0x285E = 0x311E</div><div class='add'>+0x285F = 0x311F</div><div class='add'>+0x2860 = 0x3120</div><div class='add'>+0x2861 = 0x3121</div><div class='add'>+0x2862 = 0x3122</div><div class='add'>+0x2863 = 0x3123</div><div class='add'>+0x2864 = 0x3124</div><div class='add'>+0x2865 = 0x3125</div><div class='add'>+0x2866 = 0x3126</div><div class='add'>+0x2867 = 0x3127</div><div class='add'>+0x2868 = 0x3128</div><div class='add'>+0x2869 = 0x3129</div><div class='add'>+0x2924 = 0x2500</div><div class='add'>+0x2925 = 0x2501</div><div class='add'>+0x2926 = 0x2502</div><div class='add'>+0x2927 = 0x2503</div><div class='add'>+0x2928 = 0x2504</div><div class='add'>+0x2929 = 0x2505</div><div class='add'>+0x292A = 0x2506</div><div class='add'>+0x292B = 0x2507</div><div class='add'>+0x292C = 0x2508</div><div class='add'>+0x292D = 0x2509</div><div class='add'>+0x292E = 0x250A</div><div class='add'>+0x292F = 0x250B</div><div class='add'>+0x2930 = 0x250C</div><div class='add'>+0x2931 = 0x250D</div><div class='add'>+0x2932 = 0x250E</div><div class='add'>+0x2933 = 0x250F</div><div class='add'>+0x2934 = 0x2510</div><div class='add'>+0x2935 = 0x2511</div><div class='add'>+0x2936 = 0x2512</div><div class='add'>+0x2937 = 0x2513</div><div class='add'>+0x2938 = 0x2514</div><div class='add'>+0x2939 = 0x2515</div><div class='add'>+0x293A = 0x2516</div><div class='add'>+0x293B = 0x2517</div><div class='add'>+0x293C = 0x2518</div><div class='add'>+0x293D = 0x2519</div><div class='add'>+0x293E = 0x251A</div><div class='add'>+0x293F = 0x251B</div><div class='add'>+0x2940 = 0x251C</div><div class='add'>+0x2941 = 0x251D</div><div class='add'>+0x2942 = 0x251E</div><div class='add'>+0x2943 = 0x251F</div><div class='add'>+0x2944 = 0x2520</div><div class='add'>+0x2945 = 0x2521</div><div class='add'>+0x2946 = 0x2522</div><div class='add'>+0x2947 = 0x2523</div><div class='add'>+0x2948 = 0x2524</div><div class='add'>+0x2949 = 0x2525</div><div class='add'>+0x294A = 0x2526</div><div class='add'>+0x294B = 0x2527</div><div class='add'>+0x294C = 0x2528</div><div class='add'>+0x294D = 0x2529</div><div class='add'>+0x294E = 0x252A</div><div class='add'>+0x294F = 0x252B</div><div class='add'>+0x2950 = 0x252C</div><div class='add'>+0x2951 = 0x252D</div><div class='add'>+0x2952 = 0x252E</div><div class='add'>+0x2953 = 0x252F</div><div class='add'>+0x2954 = 0x2530</div><div class='add'>+0x2955 = 0x2531</div><div class='add'>+0x2956 = 0x2532</div><div class='add'>+0x2957 = 0x2533</div><div class='add'>+0x2958 = 0x2534</div><div class='add'>+0x2959 = 0x2535</div><div class='add'>+0x295A = 0x2536</div><div class='add'>+0x295B = 0x2537</div><div class='add'>+0x295C = 0x2538</div><div class='add'>+0x295D = 0x2539</div><div class='add'>+0x295E = 0x253A</div><div class='add'>+0x295F = 0x253B</div><div class='add'>+0x2960 = 0x253C</div><div class='add'>+0x2961 = 0x253D</div><div class='add'>+0x2962 = 0x253E</div><div class='add'>+0x2963 = 0x253F</div><div class='add'>+0x2964 = 0x2540</div><div class='add'>+0x2965 = 0x2541</div><div class='add'>+0x2966 = 0x2542</div><div class='add'>+0x2967 = 0x2543</div><div class='add'>+0x2968 = 0x2544</div><div class='add'>+0x2969 = 0x2545</div><div class='add'>+0x296A = 0x2546</div><div class='add'>+0x296B = 0x2547</div><div class='add'>+0x296C = 0x2548</div><div class='add'>+0x296D = 0x2549</div><div class='add'>+0x296E = 0x254A</div><div class='add'>+0x296F = 0x254B</div><div class='add'>+</div><div class='add'>+# GBK2 / GB2312 plane1</div><div class='add'>+0x3021 = 0x554A</div><div class='add'>+0x3022 = 0x963F</div><div class='add'>+0x3023 = 0x57C3</div><div class='add'>+0x3024 = 0x6328</div><div class='add'>+0x3025 = 0x54CE</div><div class='add'>+0x3026 = 0x5509</div><div class='add'>+0x3027 = 0x54C0</div><div class='add'>+0x3028 = 0x7691</div><div class='add'>+0x3029 = 0x764C</div><div class='add'>+0x302A = 0x853C</div><div class='add'>+0x302B = 0x77EE</div><div class='add'>+0x302C = 0x827E</div><div class='add'>+0x302D = 0x788D</div><div class='add'>+0x302E = 0x7231</div><div class='add'>+0x302F = 0x9698</div><div class='add'>+0x3030 = 0x978D</div><div class='add'>+0x3031 = 0x6C28</div><div class='add'>+0x3032 = 0x5B89</div><div class='add'>+0x3033 = 0x4FFA</div><div class='add'>+0x3034 = 0x6309</div><div class='add'>+0x3035 = 0x6697</div><div class='add'>+0x3036 = 0x5CB8</div><div class='add'>+0x3037 = 0x80FA</div><div class='add'>+0x3038 = 0x6848</div><div class='add'>+0x3039 = 0x80AE</div><div class='add'>+0x303A = 0x6602</div><div class='add'>+0x303B = 0x76CE</div><div class='add'>+0x303C = 0x51F9</div><div class='add'>+0x303D = 0x6556</div><div class='add'>+0x303E = 0x71AC</div><div class='add'>+0x303F = 0x7FF1</div><div class='add'>+0x3040 = 0x8884</div><div class='add'>+0x3041 = 0x50B2</div><div class='add'>+0x3042 = 0x5965</div><div class='add'>+0x3043 = 0x61CA</div><div class='add'>+0x3044 = 0x6FB3</div><div class='add'>+0x3045 = 0x82AD</div><div class='add'>+0x3046 = 0x634C</div><div class='add'>+0x3047 = 0x6252</div><div class='add'>+0x3048 = 0x53ED</div><div class='add'>+0x3049 = 0x5427</div><div class='add'>+0x304A = 0x7B06</div><div class='add'>+0x304B = 0x516B</div><div class='add'>+0x304C = 0x75A4</div><div class='add'>+0x304D = 0x5DF4</div><div class='add'>+0x304E = 0x62D4</div><div class='add'>+0x304F = 0x8DCB</div><div class='add'>+0x3050 = 0x9776</div><div class='add'>+0x3051 = 0x628A</div><div class='add'>+0x3052 = 0x8019</div><div class='add'>+0x3053 = 0x575D</div><div class='add'>+0x3054 = 0x9738</div><div class='add'>+0x3055 = 0x7F62</div><div class='add'>+0x3056 = 0x7238</div><div class='add'>+0x3057 = 0x767D</div><div class='add'>+0x3058 = 0x67CF</div><div class='add'>+0x3059 = 0x767E</div><div class='add'>+0x305A = 0x6446</div><div class='add'>+0x305B = 0x4F70</div><div class='add'>+0x305C = 0x8D25</div><div class='add'>+0x305D = 0x62DC</div><div class='add'>+0x305E = 0x7A17</div><div class='add'>+0x305F = 0x6591</div><div class='add'>+0x3060 = 0x73ED</div><div class='add'>+0x3061 = 0x642C</div><div class='add'>+0x3062 = 0x6273</div><div class='add'>+0x3063 = 0x822C</div><div class='add'>+0x3064 = 0x9881</div><div class='add'>+0x3065 = 0x677F</div><div class='add'>+0x3066 = 0x7248</div><div class='add'>+0x3067 = 0x626E</div><div class='add'>+0x3068 = 0x62CC</div><div class='add'>+0x3069 = 0x4F34</div><div class='add'>+0x306A = 0x74E3</div><div class='add'>+0x306B = 0x534A</div><div class='add'>+0x306C = 0x529E</div><div class='add'>+0x306D = 0x7ECA</div><div class='add'>+0x306E = 0x90A6</div><div class='add'>+0x306F = 0x5E2E</div><div class='add'>+0x3070 = 0x6886</div><div class='add'>+0x3071 = 0x699C</div><div class='add'>+0x3072 = 0x8180</div><div class='add'>+0x3073 = 0x7ED1</div><div class='add'>+0x3074 = 0x68D2</div><div class='add'>+0x3075 = 0x78C5</div><div class='add'>+0x3076 = 0x868C</div><div class='add'>+0x3077 = 0x9551</div><div class='add'>+0x3078 = 0x508D</div><div class='add'>+0x3079 = 0x8C24</div><div class='add'>+0x307A = 0x82DE</div><div class='add'>+0x307B = 0x80DE</div><div class='add'>+0x307C = 0x5305</div><div class='add'>+0x307D = 0x8912</div><div class='add'>+0x307E = 0x5265</div><div class='add'>+0x3121 = 0x8584</div><div class='add'>+0x3122 = 0x96F9</div><div class='add'>+0x3123 = 0x4FDD</div><div class='add'>+0x3124 = 0x5821</div><div class='add'>+0x3125 = 0x9971</div><div class='add'>+0x3126 = 0x5B9D</div><div class='add'>+0x3127 = 0x62B1</div><div class='add'>+0x3128 = 0x62A5</div><div class='add'>+0x3129 = 0x66B4</div><div class='add'>+0x312A = 0x8C79</div><div class='add'>+0x312B = 0x9C8D</div><div class='add'>+0x312C = 0x7206</div><div class='add'>+0x312D = 0x676F</div><div class='add'>+0x312E = 0x7891</div><div class='add'>+0x312F = 0x60B2</div><div class='add'>+0x3130 = 0x5351</div><div class='add'>+0x3131 = 0x5317</div><div class='add'>+0x3132 = 0x8F88</div><div class='add'>+0x3133 = 0x80CC</div><div class='add'>+0x3134 = 0x8D1D</div><div class='add'>+0x3135 = 0x94A1</div><div class='add'>+0x3136 = 0x500D</div><div class='add'>+0x3137 = 0x72C8</div><div class='add'>+0x3138 = 0x5907</div><div class='add'>+0x3139 = 0x60EB</div><div class='add'>+0x313A = 0x7119</div><div class='add'>+0x313B = 0x88AB</div><div class='add'>+0x313C = 0x5954</div><div class='add'>+0x313D = 0x82EF</div><div class='add'>+0x313E = 0x672C</div><div class='add'>+0x313F = 0x7B28</div><div class='add'>+0x3140 = 0x5D29</div><div class='add'>+0x3141 = 0x7EF7</div><div class='add'>+0x3142 = 0x752D</div><div class='add'>+0x3143 = 0x6CF5</div><div class='add'>+0x3144 = 0x8E66</div><div class='add'>+0x3145 = 0x8FF8</div><div class='add'>+0x3146 = 0x903C</div><div class='add'>+0x3147 = 0x9F3B</div><div class='add'>+0x3148 = 0x6BD4</div><div class='add'>+0x3149 = 0x9119</div><div class='add'>+0x314A = 0x7B14</div><div class='add'>+0x314B = 0x5F7C</div><div class='add'>+0x314C = 0x78A7</div><div class='add'>+0x314D = 0x84D6</div><div class='add'>+0x314E = 0x853D</div><div class='add'>+0x314F = 0x6BD5</div><div class='add'>+0x3150 = 0x6BD9</div><div class='add'>+0x3151 = 0x6BD6</div><div class='add'>+0x3152 = 0x5E01</div><div class='add'>+0x3153 = 0x5E87</div><div class='add'>+0x3154 = 0x75F9</div><div class='add'>+0x3155 = 0x95ED</div><div class='add'>+0x3156 = 0x655D</div><div class='add'>+0x3157 = 0x5F0A</div><div class='add'>+0x3158 = 0x5FC5</div><div class='add'>+0x3159 = 0x8F9F</div><div class='add'>+0x315A = 0x58C1</div><div class='add'>+0x315B = 0x81C2</div><div class='add'>+0x315C = 0x907F</div><div class='add'>+0x315D = 0x965B</div><div class='add'>+0x315E = 0x97AD</div><div class='add'>+0x315F = 0x8FB9</div><div class='add'>+0x3160 = 0x7F16</div><div class='add'>+0x3161 = 0x8D2C</div><div class='add'>+0x3162 = 0x6241</div><div class='add'>+0x3163 = 0x4FBF</div><div class='add'>+0x3164 = 0x53D8</div><div class='add'>+0x3165 = 0x535E</div><div class='add'>+0x3166 = 0x8FA8</div><div class='add'>+0x3167 = 0x8FA9</div><div class='add'>+0x3168 = 0x8FAB</div><div class='add'>+0x3169 = 0x904D</div><div class='add'>+0x316A = 0x6807</div><div class='add'>+0x316B = 0x5F6A</div><div class='add'>+0x316C = 0x8198</div><div class='add'>+0x316D = 0x8868</div><div class='add'>+0x316E = 0x9CD6</div><div class='add'>+0x316F = 0x618B</div><div class='add'>+0x3170 = 0x522B</div><div class='add'>+0x3171 = 0x762A</div><div class='add'>+0x3172 = 0x5F6C</div><div class='add'>+0x3173 = 0x658C</div><div class='add'>+0x3174 = 0x6FD2</div><div class='add'>+0x3175 = 0x6EE8</div><div class='add'>+0x3176 = 0x5BBE</div><div class='add'>+0x3177 = 0x6448</div><div class='add'>+0x3178 = 0x5175</div><div class='add'>+0x3179 = 0x51B0</div><div class='add'>+0x317A = 0x67C4</div><div class='add'>+0x317B = 0x4E19</div><div class='add'>+0x317C = 0x79C9</div><div class='add'>+0x317D = 0x997C</div><div class='add'>+0x317E = 0x70B3</div><div class='add'>+0x3221 = 0x75C5</div><div class='add'>+0x3222 = 0x5E76</div><div class='add'>+0x3223 = 0x73BB</div><div class='add'>+0x3224 = 0x83E0</div><div class='add'>+0x3225 = 0x64AD</div><div class='add'>+0x3226 = 0x62E8</div><div class='add'>+0x3227 = 0x94B5</div><div class='add'>+0x3228 = 0x6CE2</div><div class='add'>+0x3229 = 0x535A</div><div class='add'>+0x322A = 0x52C3</div><div class='add'>+0x322B = 0x640F</div><div class='add'>+0x322C = 0x94C2</div><div class='add'>+0x322D = 0x7B94</div><div class='add'>+0x322E = 0x4F2F</div><div class='add'>+0x322F = 0x5E1B</div><div class='add'>+0x3230 = 0x8236</div><div class='add'>+0x3231 = 0x8116</div><div class='add'>+0x3232 = 0x818A</div><div class='add'>+0x3233 = 0x6E24</div><div class='add'>+0x3234 = 0x6CCA</div><div class='add'>+0x3235 = 0x9A73</div><div class='add'>+0x3236 = 0x6355</div><div class='add'>+0x3237 = 0x535C</div><div class='add'>+0x3238 = 0x54FA</div><div class='add'>+0x3239 = 0x8865</div><div class='add'>+0x323A = 0x57E0</div><div class='add'>+0x323B = 0x4E0D</div><div class='add'>+0x323C = 0x5E03</div><div class='add'>+0x323D = 0x6B65</div><div class='add'>+0x323E = 0x7C3F</div><div class='add'>+0x323F = 0x90E8</div><div class='add'>+0x3240 = 0x6016</div><div class='add'>+0x3241 = 0x64E6</div><div class='add'>+0x3242 = 0x731C</div><div class='add'>+0x3243 = 0x88C1</div><div class='add'>+0x3244 = 0x6750</div><div class='add'>+0x3245 = 0x624D</div><div class='add'>+0x3246 = 0x8D22</div><div class='add'>+0x3247 = 0x776C</div><div class='add'>+0x3248 = 0x8E29</div><div class='add'>+0x3249 = 0x91C7</div><div class='add'>+0x324A = 0x5F69</div><div class='add'>+0x324B = 0x83DC</div><div class='add'>+0x324C = 0x8521</div><div class='add'>+0x324D = 0x9910</div><div class='add'>+0x324E = 0x53C2</div><div class='add'>+0x324F = 0x8695</div><div class='add'>+0x3250 = 0x6B8B</div><div class='add'>+0x3251 = 0x60ED</div><div class='add'>+0x3252 = 0x60E8</div><div class='add'>+0x3253 = 0x707F</div><div class='add'>+0x3254 = 0x82CD</div><div class='add'>+0x3255 = 0x8231</div><div class='add'>+0x3256 = 0x4ED3</div><div class='add'>+0x3257 = 0x6CA7</div><div class='add'>+0x3258 = 0x85CF</div><div class='add'>+0x3259 = 0x64CD</div><div class='add'>+0x325A = 0x7CD9</div><div class='add'>+0x325B = 0x69FD</div><div class='add'>+0x325C = 0x66F9</div><div class='add'>+0x325D = 0x8349</div><div class='add'>+0x325E = 0x5395</div><div class='add'>+0x325F = 0x7B56</div><div class='add'>+0x3260 = 0x4FA7</div><div class='add'>+0x3261 = 0x518C</div><div class='add'>+0x3262 = 0x6D4B</div><div class='add'>+0x3263 = 0x5C42</div><div class='add'>+0x3264 = 0x8E6D</div><div class='add'>+0x3265 = 0x63D2</div><div class='add'>+0x3266 = 0x53C9</div><div class='add'>+0x3267 = 0x832C</div><div class='add'>+0x3268 = 0x8336</div><div class='add'>+0x3269 = 0x67E5</div><div class='add'>+0x326A = 0x78B4</div><div class='add'>+0x326B = 0x643D</div><div class='add'>+0x326C = 0x5BDF</div><div class='add'>+0x326D = 0x5C94</div><div class='add'>+0x326E = 0x5DEE</div><div class='add'>+0x326F = 0x8BE7</div><div class='add'>+0x3270 = 0x62C6</div><div class='add'>+0x3271 = 0x67F4</div><div class='add'>+0x3272 = 0x8C7A</div><div class='add'>+0x3273 = 0x6400</div><div class='add'>+0x3274 = 0x63BA</div><div class='add'>+0x3275 = 0x8749</div><div class='add'>+0x3276 = 0x998B</div><div class='add'>+0x3277 = 0x8C17</div><div class='add'>+0x3278 = 0x7F20</div><div class='add'>+0x3279 = 0x94F2</div><div class='add'>+0x327A = 0x4EA7</div><div class='add'>+0x327B = 0x9610</div><div class='add'>+0x327C = 0x98A4</div><div class='add'>+0x327D = 0x660C</div><div class='add'>+0x327E = 0x7316</div><div class='add'>+0x3321 = 0x573A</div><div class='add'>+0x3322 = 0x5C1D</div><div class='add'>+0x3323 = 0x5E38</div><div class='add'>+0x3324 = 0x957F</div><div class='add'>+0x3325 = 0x507F</div><div class='add'>+0x3326 = 0x80A0</div><div class='add'>+0x3327 = 0x5382</div><div class='add'>+0x3328 = 0x655E</div><div class='add'>+0x3329 = 0x7545</div><div class='add'>+0x332A = 0x5531</div><div class='add'>+0x332B = 0x5021</div><div class='add'>+0x332C = 0x8D85</div><div class='add'>+0x332D = 0x6284</div><div class='add'>+0x332E = 0x949E</div><div class='add'>+0x332F = 0x671D</div><div class='add'>+0x3330 = 0x5632</div><div class='add'>+0x3331 = 0x6F6E</div><div class='add'>+0x3332 = 0x5DE2</div><div class='add'>+0x3333 = 0x5435</div><div class='add'>+0x3334 = 0x7092</div><div class='add'>+0x3335 = 0x8F66</div><div class='add'>+0x3336 = 0x626F</div><div class='add'>+0x3337 = 0x64A4</div><div class='add'>+0x3338 = 0x63A3</div><div class='add'>+0x3339 = 0x5F7B</div><div class='add'>+0x333A = 0x6F88</div><div class='add'>+0x333B = 0x90F4</div><div class='add'>+0x333C = 0x81E3</div><div class='add'>+0x333D = 0x8FB0</div><div class='add'>+0x333E = 0x5C18</div><div class='add'>+0x333F = 0x6668</div><div class='add'>+0x3340 = 0x5FF1</div><div class='add'>+0x3341 = 0x6C89</div><div class='add'>+0x3342 = 0x9648</div><div class='add'>+0x3343 = 0x8D81</div><div class='add'>+0x3344 = 0x886C</div><div class='add'>+0x3345 = 0x6491</div><div class='add'>+0x3346 = 0x79F0</div><div class='add'>+0x3347 = 0x57CE</div><div class='add'>+0x3348 = 0x6A59</div><div class='add'>+0x3349 = 0x6210</div><div class='add'>+0x334A = 0x5448</div><div class='add'>+0x334B = 0x4E58</div><div class='add'>+0x334C = 0x7A0B</div><div class='add'>+0x334D = 0x60E9</div><div class='add'>+0x334E = 0x6F84</div><div class='add'>+0x334F = 0x8BDA</div><div class='add'>+0x3350 = 0x627F</div><div class='add'>+0x3351 = 0x901E</div><div class='add'>+0x3352 = 0x9A8B</div><div class='add'>+0x3353 = 0x79E4</div><div class='add'>+0x3354 = 0x5403</div><div class='add'>+0x3355 = 0x75F4</div><div class='add'>+0x3356 = 0x6301</div><div class='add'>+0x3357 = 0x5319</div><div class='add'>+0x3358 = 0x6C60</div><div class='add'>+0x3359 = 0x8FDF</div><div class='add'>+0x335A = 0x5F1B</div><div class='add'>+0x335B = 0x9A70</div><div class='add'>+0x335C = 0x803B</div><div class='add'>+0x335D = 0x9F7F</div><div class='add'>+0x335E = 0x4F88</div><div class='add'>+0x335F = 0x5C3A</div><div class='add'>+0x3360 = 0x8D64</div><div class='add'>+0x3361 = 0x7FC5</div><div class='add'>+0x3362 = 0x65A5</div><div class='add'>+0x3363 = 0x70BD</div><div class='add'>+0x3364 = 0x5145</div><div class='add'>+0x3365 = 0x51B2</div><div class='add'>+0x3366 = 0x866B</div><div class='add'>+0x3367 = 0x5D07</div><div class='add'>+0x3368 = 0x5BA0</div><div class='add'>+0x3369 = 0x62BD</div><div class='add'>+0x336A = 0x916C</div><div class='add'>+0x336B = 0x7574</div><div class='add'>+0x336C = 0x8E0C</div><div class='add'>+0x336D = 0x7A20</div><div class='add'>+0x336E = 0x6101</div><div class='add'>+0x336F = 0x7B79</div><div class='add'>+0x3370 = 0x4EC7</div><div class='add'>+0x3371 = 0x7EF8</div><div class='add'>+0x3372 = 0x7785</div><div class='add'>+0x3373 = 0x4E11</div><div class='add'>+0x3374 = 0x81ED</div><div class='add'>+0x3375 = 0x521D</div><div class='add'>+0x3376 = 0x51FA</div><div class='add'>+0x3377 = 0x6A71</div><div class='add'>+0x3378 = 0x53A8</div><div class='add'>+0x3379 = 0x8E87</div><div class='add'>+0x337A = 0x9504</div><div class='add'>+0x337B = 0x96CF</div><div class='add'>+0x337C = 0x6EC1</div><div class='add'>+0x337D = 0x9664</div><div class='add'>+0x337E = 0x695A</div><div class='add'>+0x3421 = 0x7840</div><div class='add'>+0x3422 = 0x50A8</div><div class='add'>+0x3423 = 0x77D7</div><div class='add'>+0x3424 = 0x6410</div><div class='add'>+0x3425 = 0x89E6</div><div class='add'>+0x3426 = 0x5904</div><div class='add'>+0x3427 = 0x63E3</div><div class='add'>+0x3428 = 0x5DDD</div><div class='add'>+0x3429 = 0x7A7F</div><div class='add'>+0x342A = 0x693D</div><div class='add'>+0x342B = 0x4F20</div><div class='add'>+0x342C = 0x8239</div><div class='add'>+0x342D = 0x5598</div><div class='add'>+0x342E = 0x4E32</div><div class='add'>+0x342F = 0x75AE</div><div class='add'>+0x3430 = 0x7A97</div><div class='add'>+0x3431 = 0x5E62</div><div class='add'>+0x3432 = 0x5E8A</div><div class='add'>+0x3433 = 0x95EF</div><div class='add'>+0x3434 = 0x521B</div><div class='add'>+0x3435 = 0x5439</div><div class='add'>+0x3436 = 0x708A</div><div class='add'>+0x3437 = 0x6376</div><div class='add'>+0x3438 = 0x9524</div><div class='add'>+0x3439 = 0x5782</div><div class='add'>+0x343A = 0x6625</div><div class='add'>+0x343B = 0x693F</div><div class='add'>+0x343C = 0x9187</div><div class='add'>+0x343D = 0x5507</div><div class='add'>+0x343E = 0x6DF3</div><div class='add'>+0x343F = 0x7EAF</div><div class='add'>+0x3440 = 0x8822</div><div class='add'>+0x3441 = 0x6233</div><div class='add'>+0x3442 = 0x7EF0</div><div class='add'>+0x3443 = 0x75B5</div><div class='add'>+0x3444 = 0x8328</div><div class='add'>+0x3445 = 0x78C1</div><div class='add'>+0x3446 = 0x96CC</div><div class='add'>+0x3447 = 0x8F9E</div><div class='add'>+0x3448 = 0x6148</div><div class='add'>+0x3449 = 0x74F7</div><div class='add'>+0x344A = 0x8BCD</div><div class='add'>+0x344B = 0x6B64</div><div class='add'>+0x344C = 0x523A</div><div class='add'>+0x344D = 0x8D50</div><div class='add'>+0x344E = 0x6B21</div><div class='add'>+0x344F = 0x806A</div><div class='add'>+0x3450 = 0x8471</div><div class='add'>+0x3451 = 0x56F1</div><div class='add'>+0x3452 = 0x5306</div><div class='add'>+0x3453 = 0x4ECE</div><div class='add'>+0x3454 = 0x4E1B</div><div class='add'>+0x3455 = 0x51D1</div><div class='add'>+0x3456 = 0x7C97</div><div class='add'>+0x3457 = 0x918B</div><div class='add'>+0x3458 = 0x7C07</div><div class='add'>+0x3459 = 0x4FC3</div><div class='add'>+0x345A = 0x8E7F</div><div class='add'>+0x345B = 0x7BE1</div><div class='add'>+0x345C = 0x7A9C</div><div class='add'>+0x345D = 0x6467</div><div class='add'>+0x345E = 0x5D14</div><div class='add'>+0x345F = 0x50AC</div><div class='add'>+0x3460 = 0x8106</div><div class='add'>+0x3461 = 0x7601</div><div class='add'>+0x3462 = 0x7CB9</div><div class='add'>+0x3463 = 0x6DEC</div><div class='add'>+0x3464 = 0x7FE0</div><div class='add'>+0x3465 = 0x6751</div><div class='add'>+0x3466 = 0x5B58</div><div class='add'>+0x3467 = 0x5BF8</div><div class='add'>+0x3468 = 0x78CB</div><div class='add'>+0x3469 = 0x64AE</div><div class='add'>+0x346A = 0x6413</div><div class='add'>+0x346B = 0x63AA</div><div class='add'>+0x346C = 0x632B</div><div class='add'>+0x346D = 0x9519</div><div class='add'>+0x346E = 0x642D</div><div class='add'>+0x346F = 0x8FBE</div><div class='add'>+0x3470 = 0x7B54</div><div class='add'>+0x3471 = 0x7629</div><div class='add'>+0x3472 = 0x6253</div><div class='add'>+0x3473 = 0x5927</div><div class='add'>+0x3474 = 0x5446</div><div class='add'>+0x3475 = 0x6B79</div><div class='add'>+0x3476 = 0x50A3</div><div class='add'>+0x3477 = 0x6234</div><div class='add'>+0x3478 = 0x5E26</div><div class='add'>+0x3479 = 0x6B86</div><div class='add'>+0x347A = 0x4EE3</div><div class='add'>+0x347B = 0x8D37</div><div class='add'>+0x347C = 0x888B</div><div class='add'>+0x347D = 0x5F85</div><div class='add'>+0x347E = 0x902E</div><div class='add'>+0x3521 = 0x6020</div><div class='add'>+0x3522 = 0x803D</div><div class='add'>+0x3523 = 0x62C5</div><div class='add'>+0x3524 = 0x4E39</div><div class='add'>+0x3525 = 0x5355</div><div class='add'>+0x3526 = 0x90F8</div><div class='add'>+0x3527 = 0x63B8</div><div class='add'>+0x3528 = 0x80C6</div><div class='add'>+0x3529 = 0x65E6</div><div class='add'>+0x352A = 0x6C2E</div><div class='add'>+0x352B = 0x4F46</div><div class='add'>+0x352C = 0x60EE</div><div class='add'>+0x352D = 0x6DE1</div><div class='add'>+0x352E = 0x8BDE</div><div class='add'>+0x352F = 0x5F39</div><div class='add'>+0x3530 = 0x86CB</div><div class='add'>+0x3531 = 0x5F53</div><div class='add'>+0x3532 = 0x6321</div><div class='add'>+0x3533 = 0x515A</div><div class='add'>+0x3534 = 0x8361</div><div class='add'>+0x3535 = 0x6863</div><div class='add'>+0x3536 = 0x5200</div><div class='add'>+0x3537 = 0x6363</div><div class='add'>+0x3538 = 0x8E48</div><div class='add'>+0x3539 = 0x5012</div><div class='add'>+0x353A = 0x5C9B</div><div class='add'>+0x353B = 0x7977</div><div class='add'>+0x353C = 0x5BFC</div><div class='add'>+0x353D = 0x5230</div><div class='add'>+0x353E = 0x7A3B</div><div class='add'>+0x353F = 0x60BC</div><div class='add'>+0x3540 = 0x9053</div><div class='add'>+0x3541 = 0x76D7</div><div class='add'>+0x3542 = 0x5FB7</div><div class='add'>+0x3543 = 0x5F97</div><div class='add'>+0x3544 = 0x7684</div><div class='add'>+0x3545 = 0x8E6C</div><div class='add'>+0x3546 = 0x706F</div><div class='add'>+0x3547 = 0x767B</div><div class='add'>+0x3548 = 0x7B49</div><div class='add'>+0x3549 = 0x77AA</div><div class='add'>+0x354A = 0x51F3</div><div class='add'>+0x354B = 0x9093</div><div class='add'>+0x354C = 0x5824</div><div class='add'>+0x354D = 0x4F4E</div><div class='add'>+0x354E = 0x6EF4</div><div class='add'>+0x354F = 0x8FEA</div><div class='add'>+0x3550 = 0x654C</div><div class='add'>+0x3551 = 0x7B1B</div><div class='add'>+0x3552 = 0x72C4</div><div class='add'>+0x3553 = 0x6DA4</div><div class='add'>+0x3554 = 0x7FDF</div><div class='add'>+0x3555 = 0x5AE1</div><div class='add'>+0x3556 = 0x62B5</div><div class='add'>+0x3557 = 0x5E95</div><div class='add'>+0x3558 = 0x5730</div><div class='add'>+0x3559 = 0x8482</div><div class='add'>+0x355A = 0x7B2C</div><div class='add'>+0x355B = 0x5E1D</div><div class='add'>+0x355C = 0x5F1F</div><div class='add'>+0x355D = 0x9012</div><div class='add'>+0x355E = 0x7F14</div><div class='add'>+0x355F = 0x98A0</div><div class='add'>+0x3560 = 0x6382</div><div class='add'>+0x3561 = 0x6EC7</div><div class='add'>+0x3562 = 0x7898</div><div class='add'>+0x3563 = 0x70B9</div><div class='add'>+0x3564 = 0x5178</div><div class='add'>+0x3565 = 0x975B</div><div class='add'>+0x3566 = 0x57AB</div><div class='add'>+0x3567 = 0x7535</div><div class='add'>+0x3568 = 0x4F43</div><div class='add'>+0x3569 = 0x7538</div><div class='add'>+0x356A = 0x5E97</div><div class='add'>+0x356B = 0x60E6</div><div class='add'>+0x356C = 0x5960</div><div class='add'>+0x356D = 0x6DC0</div><div class='add'>+0x356E = 0x6BBF</div><div class='add'>+0x356F = 0x7889</div><div class='add'>+0x3570 = 0x53FC</div><div class='add'>+0x3571 = 0x96D5</div><div class='add'>+0x3572 = 0x51CB</div><div class='add'>+0x3573 = 0x5201</div><div class='add'>+0x3574 = 0x6389</div><div class='add'>+0x3575 = 0x540A</div><div class='add'>+0x3576 = 0x9493</div><div class='add'>+0x3577 = 0x8C03</div><div class='add'>+0x3578 = 0x8DCC</div><div class='add'>+0x3579 = 0x7239</div><div class='add'>+0x357A = 0x789F</div><div class='add'>+0x357B = 0x8776</div><div class='add'>+0x357C = 0x8FED</div><div class='add'>+0x357D = 0x8C0D</div><div class='add'>+0x357E = 0x53E0</div><div class='add'>+0x3621 = 0x4E01</div><div class='add'>+0x3622 = 0x76EF</div><div class='add'>+0x3623 = 0x53EE</div><div class='add'>+0x3624 = 0x9489</div><div class='add'>+0x3625 = 0x9876</div><div class='add'>+0x3626 = 0x9F0E</div><div class='add'>+0x3627 = 0x952D</div><div class='add'>+0x3628 = 0x5B9A</div><div class='add'>+0x3629 = 0x8BA2</div><div class='add'>+0x362A = 0x4E22</div><div class='add'>+0x362B = 0x4E1C</div><div class='add'>+0x362C = 0x51AC</div><div class='add'>+0x362D = 0x8463</div><div class='add'>+0x362E = 0x61C2</div><div class='add'>+0x362F = 0x52A8</div><div class='add'>+0x3630 = 0x680B</div><div class='add'>+0x3631 = 0x4F97</div><div class='add'>+0x3632 = 0x606B</div><div class='add'>+0x3633 = 0x51BB</div><div class='add'>+0x3634 = 0x6D1E</div><div class='add'>+0x3635 = 0x515C</div><div class='add'>+0x3636 = 0x6296</div><div class='add'>+0x3637 = 0x6597</div><div class='add'>+0x3638 = 0x9661</div><div class='add'>+0x3639 = 0x8C46</div><div class='add'>+0x363A = 0x9017</div><div class='add'>+0x363B = 0x75D8</div><div class='add'>+0x363C = 0x90FD</div><div class='add'>+0x363D = 0x7763</div><div class='add'>+0x363E = 0x6BD2</div><div class='add'>+0x363F = 0x728A</div><div class='add'>+0x3640 = 0x72EC</div><div class='add'>+0x3641 = 0x8BFB</div><div class='add'>+0x3642 = 0x5835</div><div class='add'>+0x3643 = 0x7779</div><div class='add'>+0x3644 = 0x8D4C</div><div class='add'>+0x3645 = 0x675C</div><div class='add'>+0x3646 = 0x9540</div><div class='add'>+0x3647 = 0x809A</div><div class='add'>+0x3648 = 0x5EA6</div><div class='add'>+0x3649 = 0x6E21</div><div class='add'>+0x364A = 0x5992</div><div class='add'>+0x364B = 0x7AEF</div><div class='add'>+0x364C = 0x77ED</div><div class='add'>+0x364D = 0x953B</div><div class='add'>+0x364E = 0x6BB5</div><div class='add'>+0x364F = 0x65AD</div><div class='add'>+0x3650 = 0x7F0E</div><div class='add'>+0x3651 = 0x5806</div><div class='add'>+0x3652 = 0x5151</div><div class='add'>+0x3653 = 0x961F</div><div class='add'>+0x3654 = 0x5BF9</div><div class='add'>+0x3655 = 0x58A9</div><div class='add'>+0x3656 = 0x5428</div><div class='add'>+0x3657 = 0x8E72</div><div class='add'>+0x3658 = 0x6566</div><div class='add'>+0x3659 = 0x987F</div><div class='add'>+0x365A = 0x56E4</div><div class='add'>+0x365B = 0x949D</div><div class='add'>+0x365C = 0x76FE</div><div class='add'>+0x365D = 0x9041</div><div class='add'>+0x365E = 0x6387</div><div class='add'>+0x365F = 0x54C6</div><div class='add'>+0x3660 = 0x591A</div><div class='add'>+0x3661 = 0x593A</div><div class='add'>+0x3662 = 0x579B</div><div class='add'>+0x3663 = 0x8EB2</div><div class='add'>+0x3664 = 0x6735</div><div class='add'>+0x3665 = 0x8DFA</div><div class='add'>+0x3666 = 0x8235</div><div class='add'>+0x3667 = 0x5241</div><div class='add'>+0x3668 = 0x60F0</div><div class='add'>+0x3669 = 0x5815</div><div class='add'>+0x366A = 0x86FE</div><div class='add'>+0x366B = 0x5CE8</div><div class='add'>+0x366C = 0x9E45</div><div class='add'>+0x366D = 0x4FC4</div><div class='add'>+0x366E = 0x989D</div><div class='add'>+0x366F = 0x8BB9</div><div class='add'>+0x3670 = 0x5A25</div><div class='add'>+0x3671 = 0x6076</div><div class='add'>+0x3672 = 0x5384</div><div class='add'>+0x3673 = 0x627C</div><div class='add'>+0x3674 = 0x904F</div><div class='add'>+0x3675 = 0x9102</div><div class='add'>+0x3676 = 0x997F</div><div class='add'>+0x3677 = 0x6069</div><div class='add'>+0x3678 = 0x800C</div><div class='add'>+0x3679 = 0x513F</div><div class='add'>+0x367A = 0x8033</div><div class='add'>+0x367B = 0x5C14</div><div class='add'>+0x367C = 0x9975</div><div class='add'>+0x367D = 0x6D31</div><div class='add'>+0x367E = 0x4E8C</div><div class='add'>+0x3721 = 0x8D30</div><div class='add'>+0x3722 = 0x53D1</div><div class='add'>+0x3723 = 0x7F5A</div><div class='add'>+0x3724 = 0x7B4F</div><div class='add'>+0x3725 = 0x4F10</div><div class='add'>+0x3726 = 0x4E4F</div><div class='add'>+0x3727 = 0x9600</div><div class='add'>+0x3728 = 0x6CD5</div><div class='add'>+0x3729 = 0x73D0</div><div class='add'>+0x372A = 0x85E9</div><div class='add'>+0x372B = 0x5E06</div><div class='add'>+0x372C = 0x756A</div><div class='add'>+0x372D = 0x7FFB</div><div class='add'>+0x372E = 0x6A0A</div><div class='add'>+0x372F = 0x77FE</div><div class='add'>+0x3730 = 0x9492</div><div class='add'>+0x3731 = 0x7E41</div><div class='add'>+0x3732 = 0x51E1</div><div class='add'>+0x3733 = 0x70E6</div><div class='add'>+0x3734 = 0x53CD</div><div class='add'>+0x3735 = 0x8FD4</div><div class='add'>+0x3736 = 0x8303</div><div class='add'>+0x3737 = 0x8D29</div><div class='add'>+0x3738 = 0x72AF</div><div class='add'>+0x3739 = 0x996D</div><div class='add'>+0x373A = 0x6CDB</div><div class='add'>+0x373B = 0x574A</div><div class='add'>+0x373C = 0x82B3</div><div class='add'>+0x373D = 0x65B9</div><div class='add'>+0x373E = 0x80AA</div><div class='add'>+0x373F = 0x623F</div><div class='add'>+0x3740 = 0x9632</div><div class='add'>+0x3741 = 0x59A8</div><div class='add'>+0x3742 = 0x4EFF</div><div class='add'>+0x3743 = 0x8BBF</div><div class='add'>+0x3744 = 0x7EBA</div><div class='add'>+0x3745 = 0x653E</div><div class='add'>+0x3746 = 0x83F2</div><div class='add'>+0x3747 = 0x975E</div><div class='add'>+0x3748 = 0x5561</div><div class='add'>+0x3749 = 0x98DE</div><div class='add'>+0x374A = 0x80A5</div><div class='add'>+0x374B = 0x532A</div><div class='add'>+0x374C = 0x8BFD</div><div class='add'>+0x374D = 0x5420</div><div class='add'>+0x374E = 0x80BA</div><div class='add'>+0x374F = 0x5E9F</div><div class='add'>+0x3750 = 0x6CB8</div><div class='add'>+0x3751 = 0x8D39</div><div class='add'>+0x3752 = 0x82AC</div><div class='add'>+0x3753 = 0x915A</div><div class='add'>+0x3754 = 0x5429</div><div class='add'>+0x3755 = 0x6C1B</div><div class='add'>+0x3756 = 0x5206</div><div class='add'>+0x3757 = 0x7EB7</div><div class='add'>+0x3758 = 0x575F</div><div class='add'>+0x3759 = 0x711A</div><div class='add'>+0x375A = 0x6C7E</div><div class='add'>+0x375B = 0x7C89</div><div class='add'>+0x375C = 0x594B</div><div class='add'>+0x375D = 0x4EFD</div><div class='add'>+0x375E = 0x5FFF</div><div class='add'>+0x375F = 0x6124</div><div class='add'>+0x3760 = 0x7CAA</div><div class='add'>+0x3761 = 0x4E30</div><div class='add'>+0x3762 = 0x5C01</div><div class='add'>+0x3763 = 0x67AB</div><div class='add'>+0x3764 = 0x8702</div><div class='add'>+0x3765 = 0x5CF0</div><div class='add'>+0x3766 = 0x950B</div><div class='add'>+0x3767 = 0x98CE</div><div class='add'>+0x3768 = 0x75AF</div><div class='add'>+0x3769 = 0x70FD</div><div class='add'>+0x376A = 0x9022</div><div class='add'>+0x376B = 0x51AF</div><div class='add'>+0x376C = 0x7F1D</div><div class='add'>+0x376D = 0x8BBD</div><div class='add'>+0x376E = 0x5949</div><div class='add'>+0x376F = 0x51E4</div><div class='add'>+0x3770 = 0x4F5B</div><div class='add'>+0x3771 = 0x5426</div><div class='add'>+0x3772 = 0x592B</div><div class='add'>+0x3773 = 0x6577</div><div class='add'>+0x3774 = 0x80A4</div><div class='add'>+0x3775 = 0x5B75</div><div class='add'>+0x3776 = 0x6276</div><div class='add'>+0x3777 = 0x62C2</div><div class='add'>+0x3778 = 0x8F90</div><div class='add'>+0x3779 = 0x5E45</div><div class='add'>+0x377A = 0x6C1F</div><div class='add'>+0x377B = 0x7B26</div><div class='add'>+0x377C = 0x4F0F</div><div class='add'>+0x377D = 0x4FD8</div><div class='add'>+0x377E = 0x670D</div><div class='add'>+0x3821 = 0x6D6E</div><div class='add'>+0x3822 = 0x6DAA</div><div class='add'>+0x3823 = 0x798F</div><div class='add'>+0x3824 = 0x88B1</div><div class='add'>+0x3825 = 0x5F17</div><div class='add'>+0x3826 = 0x752B</div><div class='add'>+0x3827 = 0x629A</div><div class='add'>+0x3828 = 0x8F85</div><div class='add'>+0x3829 = 0x4FEF</div><div class='add'>+0x382A = 0x91DC</div><div class='add'>+0x382B = 0x65A7</div><div class='add'>+0x382C = 0x812F</div><div class='add'>+0x382D = 0x8151</div><div class='add'>+0x382E = 0x5E9C</div><div class='add'>+0x382F = 0x8150</div><div class='add'>+0x3830 = 0x8D74</div><div class='add'>+0x3831 = 0x526F</div><div class='add'>+0x3832 = 0x8986</div><div class='add'>+0x3833 = 0x8D4B</div><div class='add'>+0x3834 = 0x590D</div><div class='add'>+0x3835 = 0x5085</div><div class='add'>+0x3836 = 0x4ED8</div><div class='add'>+0x3837 = 0x961C</div><div class='add'>+0x3838 = 0x7236</div><div class='add'>+0x3839 = 0x8179</div><div class='add'>+0x383A = 0x8D1F</div><div class='add'>+0x383B = 0x5BCC</div><div class='add'>+0x383C = 0x8BA3</div><div class='add'>+0x383D = 0x9644</div><div class='add'>+0x383E = 0x5987</div><div class='add'>+0x383F = 0x7F1A</div><div class='add'>+0x3840 = 0x5490</div><div class='add'>+0x3841 = 0x5676</div><div class='add'>+0x3842 = 0x560E</div><div class='add'>+0x3843 = 0x8BE5</div><div class='add'>+0x3844 = 0x6539</div><div class='add'>+0x3845 = 0x6982</div><div class='add'>+0x3846 = 0x9499</div><div class='add'>+0x3847 = 0x76D6</div><div class='add'>+0x3848 = 0x6E89</div><div class='add'>+0x3849 = 0x5E72</div><div class='add'>+0x384A = 0x7518</div><div class='add'>+0x384B = 0x6746</div><div class='add'>+0x384C = 0x67D1</div><div class='add'>+0x384D = 0x7AFF</div><div class='add'>+0x384E = 0x809D</div><div class='add'>+0x384F = 0x8D76</div><div class='add'>+0x3850 = 0x611F</div><div class='add'>+0x3851 = 0x79C6</div><div class='add'>+0x3852 = 0x6562</div><div class='add'>+0x3853 = 0x8D63</div><div class='add'>+0x3854 = 0x5188</div><div class='add'>+0x3855 = 0x521A</div><div class='add'>+0x3856 = 0x94A2</div><div class='add'>+0x3857 = 0x7F38</div><div class='add'>+0x3858 = 0x809B</div><div class='add'>+0x3859 = 0x7EB2</div><div class='add'>+0x385A = 0x5C97</div><div class='add'>+0x385B = 0x6E2F</div><div class='add'>+0x385C = 0x6760</div><div class='add'>+0x385D = 0x7BD9</div><div class='add'>+0x385E = 0x768B</div><div class='add'>+0x385F = 0x9AD8</div><div class='add'>+0x3860 = 0x818F</div><div class='add'>+0x3861 = 0x7F94</div><div class='add'>+0x3862 = 0x7CD5</div><div class='add'>+0x3863 = 0x641E</div><div class='add'>+0x3864 = 0x9550</div><div class='add'>+0x3865 = 0x7A3F</div><div class='add'>+0x3866 = 0x544A</div><div class='add'>+0x3867 = 0x54E5</div><div class='add'>+0x3868 = 0x6B4C</div><div class='add'>+0x3869 = 0x6401</div><div class='add'>+0x386A = 0x6208</div><div class='add'>+0x386B = 0x9E3D</div><div class='add'>+0x386C = 0x80F3</div><div class='add'>+0x386D = 0x7599</div><div class='add'>+0x386E = 0x5272</div><div class='add'>+0x386F = 0x9769</div><div class='add'>+0x3870 = 0x845B</div><div class='add'>+0x3871 = 0x683C</div><div class='add'>+0x3872 = 0x86E4</div><div class='add'>+0x3873 = 0x9601</div><div class='add'>+0x3874 = 0x9694</div><div class='add'>+0x3875 = 0x94EC</div><div class='add'>+0x3876 = 0x4E2A</div><div class='add'>+0x3877 = 0x5404</div><div class='add'>+0x3878 = 0x7ED9</div><div class='add'>+0x3879 = 0x6839</div><div class='add'>+0x387A = 0x8DDF</div><div class='add'>+0x387B = 0x8015</div><div class='add'>+0x387C = 0x66F4</div><div class='add'>+0x387D = 0x5E9A</div><div class='add'>+0x387E = 0x7FB9</div><div class='add'>+0x3921 = 0x57C2</div><div class='add'>+0x3922 = 0x803F</div><div class='add'>+0x3923 = 0x6897</div><div class='add'>+0x3924 = 0x5DE5</div><div class='add'>+0x3925 = 0x653B</div><div class='add'>+0x3926 = 0x529F</div><div class='add'>+0x3927 = 0x606D</div><div class='add'>+0x3928 = 0x9F9A</div><div class='add'>+0x3929 = 0x4F9B</div><div class='add'>+0x392A = 0x8EAC</div><div class='add'>+0x392B = 0x516C</div><div class='add'>+0x392C = 0x5BAB</div><div class='add'>+0x392D = 0x5F13</div><div class='add'>+0x392E = 0x5DE9</div><div class='add'>+0x392F = 0x6C5E</div><div class='add'>+0x3930 = 0x62F1</div><div class='add'>+0x3931 = 0x8D21</div><div class='add'>+0x3932 = 0x5171</div><div class='add'>+0x3933 = 0x94A9</div><div class='add'>+0x3934 = 0x52FE</div><div class='add'>+0x3935 = 0x6C9F</div><div class='add'>+0x3936 = 0x82DF</div><div class='add'>+0x3937 = 0x72D7</div><div class='add'>+0x3938 = 0x57A2</div><div class='add'>+0x3939 = 0x6784</div><div class='add'>+0x393A = 0x8D2D</div><div class='add'>+0x393B = 0x591F</div><div class='add'>+0x393C = 0x8F9C</div><div class='add'>+0x393D = 0x83C7</div><div class='add'>+0x393E = 0x5495</div><div class='add'>+0x393F = 0x7B8D</div><div class='add'>+0x3940 = 0x4F30</div><div class='add'>+0x3941 = 0x6CBD</div><div class='add'>+0x3942 = 0x5B64</div><div class='add'>+0x3943 = 0x59D1</div><div class='add'>+0x3944 = 0x9F13</div><div class='add'>+0x3945 = 0x53E4</div><div class='add'>+0x3946 = 0x86CA</div><div class='add'>+0x3947 = 0x9AA8</div><div class='add'>+0x3948 = 0x8C37</div><div class='add'>+0x3949 = 0x80A1</div><div class='add'>+0x394A = 0x6545</div><div class='add'>+0x394B = 0x987E</div><div class='add'>+0x394C = 0x56FA</div><div class='add'>+0x394D = 0x96C7</div><div class='add'>+0x394E = 0x522E</div><div class='add'>+0x394F = 0x74DC</div><div class='add'>+0x3950 = 0x5250</div><div class='add'>+0x3951 = 0x5BE1</div><div class='add'>+0x3952 = 0x6302</div><div class='add'>+0x3953 = 0x8902</div><div class='add'>+0x3954 = 0x4E56</div><div class='add'>+0x3955 = 0x62D0</div><div class='add'>+0x3956 = 0x602A</div><div class='add'>+0x3957 = 0x68FA</div><div class='add'>+0x3958 = 0x5173</div><div class='add'>+0x3959 = 0x5B98</div><div class='add'>+0x395A = 0x51A0</div><div class='add'>+0x395B = 0x89C2</div><div class='add'>+0x395C = 0x7BA1</div><div class='add'>+0x395D = 0x9986</div><div class='add'>+0x395E = 0x7F50</div><div class='add'>+0x395F = 0x60EF</div><div class='add'>+0x3960 = 0x704C</div><div class='add'>+0x3961 = 0x8D2F</div><div class='add'>+0x3962 = 0x5149</div><div class='add'>+0x3963 = 0x5E7F</div><div class='add'>+0x3964 = 0x901B</div><div class='add'>+0x3965 = 0x7470</div><div class='add'>+0x3966 = 0x89C4</div><div class='add'>+0x3967 = 0x572D</div><div class='add'>+0x3968 = 0x7845</div><div class='add'>+0x3969 = 0x5F52</div><div class='add'>+0x396A = 0x9F9F</div><div class='add'>+0x396B = 0x95FA</div><div class='add'>+0x396C = 0x8F68</div><div class='add'>+0x396D = 0x9B3C</div><div class='add'>+0x396E = 0x8BE1</div><div class='add'>+0x396F = 0x7678</div><div class='add'>+0x3970 = 0x6842</div><div class='add'>+0x3971 = 0x67DC</div><div class='add'>+0x3972 = 0x8DEA</div><div class='add'>+0x3973 = 0x8D35</div><div class='add'>+0x3974 = 0x523D</div><div class='add'>+0x3975 = 0x8F8A</div><div class='add'>+0x3976 = 0x6EDA</div><div class='add'>+0x3977 = 0x68CD</div><div class='add'>+0x3978 = 0x9505</div><div class='add'>+0x3979 = 0x90ED</div><div class='add'>+0x397A = 0x56FD</div><div class='add'>+0x397B = 0x679C</div><div class='add'>+0x397C = 0x88F9</div><div class='add'>+0x397D = 0x8FC7</div><div class='add'>+0x397E = 0x54C8</div><div class='add'>+0x3A21 = 0x9AB8</div><div class='add'>+0x3A22 = 0x5B69</div><div class='add'>+0x3A23 = 0x6D77</div><div class='add'>+0x3A24 = 0x6C26</div><div class='add'>+0x3A25 = 0x4EA5</div><div class='add'>+0x3A26 = 0x5BB3</div><div class='add'>+0x3A27 = 0x9A87</div><div class='add'>+0x3A28 = 0x9163</div><div class='add'>+0x3A29 = 0x61A8</div><div class='add'>+0x3A2A = 0x90AF</div><div class='add'>+0x3A2B = 0x97E9</div><div class='add'>+0x3A2C = 0x542B</div><div class='add'>+0x3A2D = 0x6DB5</div><div class='add'>+0x3A2E = 0x5BD2</div><div class='add'>+0x3A2F = 0x51FD</div><div class='add'>+0x3A30 = 0x558A</div><div class='add'>+0x3A31 = 0x7F55</div><div class='add'>+0x3A32 = 0x7FF0</div><div class='add'>+0x3A33 = 0x64BC</div><div class='add'>+0x3A34 = 0x634D</div><div class='add'>+0x3A35 = 0x65F1</div><div class='add'>+0x3A36 = 0x61BE</div><div class='add'>+0x3A37 = 0x608D</div><div class='add'>+0x3A38 = 0x710A</div><div class='add'>+0x3A39 = 0x6C57</div><div class='add'>+0x3A3A = 0x6C49</div><div class='add'>+0x3A3B = 0x592F</div><div class='add'>+0x3A3C = 0x676D</div><div class='add'>+0x3A3D = 0x822A</div><div class='add'>+0x3A3E = 0x58D5</div><div class='add'>+0x3A3F = 0x568E</div><div class='add'>+0x3A40 = 0x8C6A</div><div class='add'>+0x3A41 = 0x6BEB</div><div class='add'>+0x3A42 = 0x90DD</div><div class='add'>+0x3A43 = 0x597D</div><div class='add'>+0x3A44 = 0x8017</div><div class='add'>+0x3A45 = 0x53F7</div><div class='add'>+0x3A46 = 0x6D69</div><div class='add'>+0x3A47 = 0x5475</div><div class='add'>+0x3A48 = 0x559D</div><div class='add'>+0x3A49 = 0x8377</div><div class='add'>+0x3A4A = 0x83CF</div><div class='add'>+0x3A4B = 0x6838</div><div class='add'>+0x3A4C = 0x79BE</div><div class='add'>+0x3A4D = 0x548C</div><div class='add'>+0x3A4E = 0x4F55</div><div class='add'>+0x3A4F = 0x5408</div><div class='add'>+0x3A50 = 0x76D2</div><div class='add'>+0x3A51 = 0x8C89</div><div class='add'>+0x3A52 = 0x9602</div><div class='add'>+0x3A53 = 0x6CB3</div><div class='add'>+0x3A54 = 0x6DB8</div><div class='add'>+0x3A55 = 0x8D6B</div><div class='add'>+0x3A56 = 0x8910</div><div class='add'>+0x3A57 = 0x9E64</div><div class='add'>+0x3A58 = 0x8D3A</div><div class='add'>+0x3A59 = 0x563F</div><div class='add'>+0x3A5A = 0x9ED1</div><div class='add'>+0x3A5B = 0x75D5</div><div class='add'>+0x3A5C = 0x5F88</div><div class='add'>+0x3A5D = 0x72E0</div><div class='add'>+0x3A5E = 0x6068</div><div class='add'>+0x3A5F = 0x54FC</div><div class='add'>+0x3A60 = 0x4EA8</div><div class='add'>+0x3A61 = 0x6A2A</div><div class='add'>+0x3A62 = 0x8861</div><div class='add'>+0x3A63 = 0x6052</div><div class='add'>+0x3A64 = 0x8F70</div><div class='add'>+0x3A65 = 0x54C4</div><div class='add'>+0x3A66 = 0x70D8</div><div class='add'>+0x3A67 = 0x8679</div><div class='add'>+0x3A68 = 0x9E3F</div><div class='add'>+0x3A69 = 0x6D2A</div><div class='add'>+0x3A6A = 0x5B8F</div><div class='add'>+0x3A6B = 0x5F18</div><div class='add'>+0x3A6C = 0x7EA2</div><div class='add'>+0x3A6D = 0x5589</div><div class='add'>+0x3A6E = 0x4FAF</div><div class='add'>+0x3A6F = 0x7334</div><div class='add'>+0x3A70 = 0x543C</div><div class='add'>+0x3A71 = 0x539A</div><div class='add'>+0x3A72 = 0x5019</div><div class='add'>+0x3A73 = 0x540E</div><div class='add'>+0x3A74 = 0x547C</div><div class='add'>+0x3A75 = 0x4E4E</div><div class='add'>+0x3A76 = 0x5FFD</div><div class='add'>+0x3A77 = 0x745A</div><div class='add'>+0x3A78 = 0x58F6</div><div class='add'>+0x3A79 = 0x846B</div><div class='add'>+0x3A7A = 0x80E1</div><div class='add'>+0x3A7B = 0x8774</div><div class='add'>+0x3A7C = 0x72D0</div><div class='add'>+0x3A7D = 0x7CCA</div><div class='add'>+0x3A7E = 0x6E56</div><div class='add'>+0x3B21 = 0x5F27</div><div class='add'>+0x3B22 = 0x864E</div><div class='add'>+0x3B23 = 0x552C</div><div class='add'>+0x3B24 = 0x62A4</div><div class='add'>+0x3B25 = 0x4E92</div><div class='add'>+0x3B26 = 0x6CAA</div><div class='add'>+0x3B27 = 0x6237</div><div class='add'>+0x3B28 = 0x82B1</div><div class='add'>+0x3B29 = 0x54D7</div><div class='add'>+0x3B2A = 0x534E</div><div class='add'>+0x3B2B = 0x733E</div><div class='add'>+0x3B2C = 0x6ED1</div><div class='add'>+0x3B2D = 0x753B</div><div class='add'>+0x3B2E = 0x5212</div><div class='add'>+0x3B2F = 0x5316</div><div class='add'>+0x3B30 = 0x8BDD</div><div class='add'>+0x3B31 = 0x69D0</div><div class='add'>+0x3B32 = 0x5F8A</div><div class='add'>+0x3B33 = 0x6000</div><div class='add'>+0x3B34 = 0x6DEE</div><div class='add'>+0x3B35 = 0x574F</div><div class='add'>+0x3B36 = 0x6B22</div><div class='add'>+0x3B37 = 0x73AF</div><div class='add'>+0x3B38 = 0x6853</div><div class='add'>+0x3B39 = 0x8FD8</div><div class='add'>+0x3B3A = 0x7F13</div><div class='add'>+0x3B3B = 0x6362</div><div class='add'>+0x3B3C = 0x60A3</div><div class='add'>+0x3B3D = 0x5524</div><div class='add'>+0x3B3E = 0x75EA</div><div class='add'>+0x3B3F = 0x8C62</div><div class='add'>+0x3B40 = 0x7115</div><div class='add'>+0x3B41 = 0x6DA3</div><div class='add'>+0x3B42 = 0x5BA6</div><div class='add'>+0x3B43 = 0x5E7B</div><div class='add'>+0x3B44 = 0x8352</div><div class='add'>+0x3B45 = 0x614C</div><div class='add'>+0x3B46 = 0x9EC4</div><div class='add'>+0x3B47 = 0x78FA</div><div class='add'>+0x3B48 = 0x8757</div><div class='add'>+0x3B49 = 0x7C27</div><div class='add'>+0x3B4A = 0x7687</div><div class='add'>+0x3B4B = 0x51F0</div><div class='add'>+0x3B4C = 0x60F6</div><div class='add'>+0x3B4D = 0x714C</div><div class='add'>+0x3B4E = 0x6643</div><div class='add'>+0x3B4F = 0x5E4C</div><div class='add'>+0x3B50 = 0x604D</div><div class='add'>+0x3B51 = 0x8C0E</div><div class='add'>+0x3B52 = 0x7070</div><div class='add'>+0x3B53 = 0x6325</div><div class='add'>+0x3B54 = 0x8F89</div><div class='add'>+0x3B55 = 0x5FBD</div><div class='add'>+0x3B56 = 0x6062</div><div class='add'>+0x3B57 = 0x86D4</div><div class='add'>+0x3B58 = 0x56DE</div><div class='add'>+0x3B59 = 0x6BC1</div><div class='add'>+0x3B5A = 0x6094</div><div class='add'>+0x3B5B = 0x6167</div><div class='add'>+0x3B5C = 0x5349</div><div class='add'>+0x3B5D = 0x60E0</div><div class='add'>+0x3B5E = 0x6666</div><div class='add'>+0x3B5F = 0x8D3F</div><div class='add'>+0x3B60 = 0x79FD</div><div class='add'>+0x3B61 = 0x4F1A</div><div class='add'>+0x3B62 = 0x70E9</div><div class='add'>+0x3B63 = 0x6C47</div><div class='add'>+0x3B64 = 0x8BB3</div><div class='add'>+0x3B65 = 0x8BF2</div><div class='add'>+0x3B66 = 0x7ED8</div><div class='add'>+0x3B67 = 0x8364</div><div class='add'>+0x3B68 = 0x660F</div><div class='add'>+0x3B69 = 0x5A5A</div><div class='add'>+0x3B6A = 0x9B42</div><div class='add'>+0x3B6B = 0x6D51</div><div class='add'>+0x3B6C = 0x6DF7</div><div class='add'>+0x3B6D = 0x8C41</div><div class='add'>+0x3B6E = 0x6D3B</div><div class='add'>+0x3B6F = 0x4F19</div><div class='add'>+0x3B70 = 0x706B</div><div class='add'>+0x3B71 = 0x83B7</div><div class='add'>+0x3B72 = 0x6216</div><div class='add'>+0x3B73 = 0x60D1</div><div class='add'>+0x3B74 = 0x970D</div><div class='add'>+0x3B75 = 0x8D27</div><div class='add'>+0x3B76 = 0x7978</div><div class='add'>+0x3B77 = 0x51FB</div><div class='add'>+0x3B78 = 0x573E</div><div class='add'>+0x3B79 = 0x57FA</div><div class='add'>+0x3B7A = 0x673A</div><div class='add'>+0x3B7B = 0x7578</div><div class='add'>+0x3B7C = 0x7A3D</div><div class='add'>+0x3B7D = 0x79EF</div><div class='add'>+0x3B7E = 0x7B95</div><div class='add'>+0x3C21 = 0x808C</div><div class='add'>+0x3C22 = 0x9965</div><div class='add'>+0x3C23 = 0x8FF9</div><div class='add'>+0x3C24 = 0x6FC0</div><div class='add'>+0x3C25 = 0x8BA5</div><div class='add'>+0x3C26 = 0x9E21</div><div class='add'>+0x3C27 = 0x59EC</div><div class='add'>+0x3C28 = 0x7EE9</div><div class='add'>+0x3C29 = 0x7F09</div><div class='add'>+0x3C2A = 0x5409</div><div class='add'>+0x3C2B = 0x6781</div><div class='add'>+0x3C2C = 0x68D8</div><div class='add'>+0x3C2D = 0x8F91</div><div class='add'>+0x3C2E = 0x7C4D</div><div class='add'>+0x3C2F = 0x96C6</div><div class='add'>+0x3C30 = 0x53CA</div><div class='add'>+0x3C31 = 0x6025</div><div class='add'>+0x3C32 = 0x75BE</div><div class='add'>+0x3C33 = 0x6C72</div><div class='add'>+0x3C34 = 0x5373</div><div class='add'>+0x3C35 = 0x5AC9</div><div class='add'>+0x3C36 = 0x7EA7</div><div class='add'>+0x3C37 = 0x6324</div><div class='add'>+0x3C38 = 0x51E0</div><div class='add'>+0x3C39 = 0x810A</div><div class='add'>+0x3C3A = 0x5DF1</div><div class='add'>+0x3C3B = 0x84DF</div><div class='add'>+0x3C3C = 0x6280</div><div class='add'>+0x3C3D = 0x5180</div><div class='add'>+0x3C3E = 0x5B63</div><div class='add'>+0x3C3F = 0x4F0E</div><div class='add'>+0x3C40 = 0x796D</div><div class='add'>+0x3C41 = 0x5242</div><div class='add'>+0x3C42 = 0x60B8</div><div class='add'>+0x3C43 = 0x6D4E</div><div class='add'>+0x3C44 = 0x5BC4</div><div class='add'>+0x3C45 = 0x5BC2</div><div class='add'>+0x3C46 = 0x8BA1</div><div class='add'>+0x3C47 = 0x8BB0</div><div class='add'>+0x3C48 = 0x65E2</div><div class='add'>+0x3C49 = 0x5FCC</div><div class='add'>+0x3C4A = 0x9645</div><div class='add'>+0x3C4B = 0x5993</div><div class='add'>+0x3C4C = 0x7EE7</div><div class='add'>+0x3C4D = 0x7EAA</div><div class='add'>+0x3C4E = 0x5609</div><div class='add'>+0x3C4F = 0x67B7</div><div class='add'>+0x3C50 = 0x5939</div><div class='add'>+0x3C51 = 0x4F73</div><div class='add'>+0x3C52 = 0x5BB6</div><div class='add'>+0x3C53 = 0x52A0</div><div class='add'>+0x3C54 = 0x835A</div><div class='add'>+0x3C55 = 0x988A</div><div class='add'>+0x3C56 = 0x8D3E</div><div class='add'>+0x3C57 = 0x7532</div><div class='add'>+0x3C58 = 0x94BE</div><div class='add'>+0x3C59 = 0x5047</div><div class='add'>+0x3C5A = 0x7A3C</div><div class='add'>+0x3C5B = 0x4EF7</div><div class='add'>+0x3C5C = 0x67B6</div><div class='add'>+0x3C5D = 0x9A7E</div><div class='add'>+0x3C5E = 0x5AC1</div><div class='add'>+0x3C5F = 0x6B7C</div><div class='add'>+0x3C60 = 0x76D1</div><div class='add'>+0x3C61 = 0x575A</div><div class='add'>+0x3C62 = 0x5C16</div><div class='add'>+0x3C63 = 0x7B3A</div><div class='add'>+0x3C64 = 0x95F4</div><div class='add'>+0x3C65 = 0x714E</div><div class='add'>+0x3C66 = 0x517C</div><div class='add'>+0x3C67 = 0x80A9</div><div class='add'>+0x3C68 = 0x8270</div><div class='add'>+0x3C69 = 0x5978</div><div class='add'>+0x3C6A = 0x7F04</div><div class='add'>+0x3C6B = 0x8327</div><div class='add'>+0x3C6C = 0x68C0</div><div class='add'>+0x3C6D = 0x67EC</div><div class='add'>+0x3C6E = 0x78B1</div><div class='add'>+0x3C6F = 0x7877</div><div class='add'>+0x3C70 = 0x62E3</div><div class='add'>+0x3C71 = 0x6361</div><div class='add'>+0x3C72 = 0x7B80</div><div class='add'>+0x3C73 = 0x4FED</div><div class='add'>+0x3C74 = 0x526A</div><div class='add'>+0x3C75 = 0x51CF</div><div class='add'>+0x3C76 = 0x8350</div><div class='add'>+0x3C77 = 0x69DB</div><div class='add'>+0x3C78 = 0x9274</div><div class='add'>+0x3C79 = 0x8DF5</div><div class='add'>+0x3C7A = 0x8D31</div><div class='add'>+0x3C7B = 0x89C1</div><div class='add'>+0x3C7C = 0x952E</div><div class='add'>+0x3C7D = 0x7BAD</div><div class='add'>+0x3C7E = 0x4EF6</div><div class='add'>+0x3D21 = 0x5065</div><div class='add'>+0x3D22 = 0x8230</div><div class='add'>+0x3D23 = 0x5251</div><div class='add'>+0x3D24 = 0x996F</div><div class='add'>+0x3D25 = 0x6E10</div><div class='add'>+0x3D26 = 0x6E85</div><div class='add'>+0x3D27 = 0x6DA7</div><div class='add'>+0x3D28 = 0x5EFA</div><div class='add'>+0x3D29 = 0x50F5</div><div class='add'>+0x3D2A = 0x59DC</div><div class='add'>+0x3D2B = 0x5C06</div><div class='add'>+0x3D2C = 0x6D46</div><div class='add'>+0x3D2D = 0x6C5F</div><div class='add'>+0x3D2E = 0x7586</div><div class='add'>+0x3D2F = 0x848B</div><div class='add'>+0x3D30 = 0x6868</div><div class='add'>+0x3D31 = 0x5956</div><div class='add'>+0x3D32 = 0x8BB2</div><div class='add'>+0x3D33 = 0x5320</div><div class='add'>+0x3D34 = 0x9171</div><div class='add'>+0x3D35 = 0x964D</div><div class='add'>+0x3D36 = 0x8549</div><div class='add'>+0x3D37 = 0x6912</div><div class='add'>+0x3D38 = 0x7901</div><div class='add'>+0x3D39 = 0x7126</div><div class='add'>+0x3D3A = 0x80F6</div><div class='add'>+0x3D3B = 0x4EA4</div><div class='add'>+0x3D3C = 0x90CA</div><div class='add'>+0x3D3D = 0x6D47</div><div class='add'>+0x3D3E = 0x9A84</div><div class='add'>+0x3D3F = 0x5A07</div><div class='add'>+0x3D40 = 0x56BC</div><div class='add'>+0x3D41 = 0x6405</div><div class='add'>+0x3D42 = 0x94F0</div><div class='add'>+0x3D43 = 0x77EB</div><div class='add'>+0x3D44 = 0x4FA5</div><div class='add'>+0x3D45 = 0x811A</div><div class='add'>+0x3D46 = 0x72E1</div><div class='add'>+0x3D47 = 0x89D2</div><div class='add'>+0x3D48 = 0x997A</div><div class='add'>+0x3D49 = 0x7F34</div><div class='add'>+0x3D4A = 0x7EDE</div><div class='add'>+0x3D4B = 0x527F</div><div class='add'>+0x3D4C = 0x6559</div><div class='add'>+0x3D4D = 0x9175</div><div class='add'>+0x3D4E = 0x8F7F</div><div class='add'>+0x3D4F = 0x8F83</div><div class='add'>+0x3D50 = 0x53EB</div><div class='add'>+0x3D51 = 0x7A96</div><div class='add'>+0x3D52 = 0x63ED</div><div class='add'>+0x3D53 = 0x63A5</div><div class='add'>+0x3D54 = 0x7686</div><div class='add'>+0x3D55 = 0x79F8</div><div class='add'>+0x3D56 = 0x8857</div><div class='add'>+0x3D57 = 0x9636</div><div class='add'>+0x3D58 = 0x622A</div><div class='add'>+0x3D59 = 0x52AB</div><div class='add'>+0x3D5A = 0x8282</div><div class='add'>+0x3D5B = 0x6854</div><div class='add'>+0x3D5C = 0x6770</div><div class='add'>+0x3D5D = 0x6377</div><div class='add'>+0x3D5E = 0x776B</div><div class='add'>+0x3D5F = 0x7AED</div><div class='add'>+0x3D60 = 0x6D01</div><div class='add'>+0x3D61 = 0x7ED3</div><div class='add'>+0x3D62 = 0x89E3</div><div class='add'>+0x3D63 = 0x59D0</div><div class='add'>+0x3D64 = 0x6212</div><div class='add'>+0x3D65 = 0x85C9</div><div class='add'>+0x3D66 = 0x82A5</div><div class='add'>+0x3D67 = 0x754C</div><div class='add'>+0x3D68 = 0x501F</div><div class='add'>+0x3D69 = 0x4ECB</div><div class='add'>+0x3D6A = 0x75A5</div><div class='add'>+0x3D6B = 0x8BEB</div><div class='add'>+0x3D6C = 0x5C4A</div><div class='add'>+0x3D6D = 0x5DFE</div><div class='add'>+0x3D6E = 0x7B4B</div><div class='add'>+0x3D6F = 0x65A4</div><div class='add'>+0x3D70 = 0x91D1</div><div class='add'>+0x3D71 = 0x4ECA</div><div class='add'>+0x3D72 = 0x6D25</div><div class='add'>+0x3D73 = 0x895F</div><div class='add'>+0x3D74 = 0x7D27</div><div class='add'>+0x3D75 = 0x9526</div><div class='add'>+0x3D76 = 0x4EC5</div><div class='add'>+0x3D77 = 0x8C28</div><div class='add'>+0x3D78 = 0x8FDB</div><div class='add'>+0x3D79 = 0x9773</div><div class='add'>+0x3D7A = 0x664B</div><div class='add'>+0x3D7B = 0x7981</div><div class='add'>+0x3D7C = 0x8FD1</div><div class='add'>+0x3D7D = 0x70EC</div><div class='add'>+0x3D7E = 0x6D78</div><div class='add'>+0x3E21 = 0x5C3D</div><div class='add'>+0x3E22 = 0x52B2</div><div class='add'>+0x3E23 = 0x8346</div><div class='add'>+0x3E24 = 0x5162</div><div class='add'>+0x3E25 = 0x830E</div><div class='add'>+0x3E26 = 0x775B</div><div class='add'>+0x3E27 = 0x6676</div><div class='add'>+0x3E28 = 0x9CB8</div><div class='add'>+0x3E29 = 0x4EAC</div><div class='add'>+0x3E2A = 0x60CA</div><div class='add'>+0x3E2B = 0x7CBE</div><div class='add'>+0x3E2C = 0x7CB3</div><div class='add'>+0x3E2D = 0x7ECF</div><div class='add'>+0x3E2E = 0x4E95</div><div class='add'>+0x3E2F = 0x8B66</div><div class='add'>+0x3E30 = 0x666F</div><div class='add'>+0x3E31 = 0x9888</div><div class='add'>+0x3E32 = 0x9759</div><div class='add'>+0x3E33 = 0x5883</div><div class='add'>+0x3E34 = 0x656C</div><div class='add'>+0x3E35 = 0x955C</div><div class='add'>+0x3E36 = 0x5F84</div><div class='add'>+0x3E37 = 0x75C9</div><div class='add'>+0x3E38 = 0x9756</div><div class='add'>+0x3E39 = 0x7ADF</div><div class='add'>+0x3E3A = 0x7ADE</div><div class='add'>+0x3E3B = 0x51C0</div><div class='add'>+0x3E3C = 0x70AF</div><div class='add'>+0x3E3D = 0x7A98</div><div class='add'>+0x3E3E = 0x63EA</div><div class='add'>+0x3E3F = 0x7A76</div><div class='add'>+0x3E40 = 0x7EA0</div><div class='add'>+0x3E41 = 0x7396</div><div class='add'>+0x3E42 = 0x97ED</div><div class='add'>+0x3E43 = 0x4E45</div><div class='add'>+0x3E44 = 0x7078</div><div class='add'>+0x3E45 = 0x4E5D</div><div class='add'>+0x3E46 = 0x9152</div><div class='add'>+0x3E47 = 0x53A9</div><div class='add'>+0x3E48 = 0x6551</div><div class='add'>+0x3E49 = 0x65E7</div><div class='add'>+0x3E4A = 0x81FC</div><div class='add'>+0x3E4B = 0x8205</div><div class='add'>+0x3E4C = 0x548E</div><div class='add'>+0x3E4D = 0x5C31</div><div class='add'>+0x3E4E = 0x759A</div><div class='add'>+0x3E4F = 0x97A0</div><div class='add'>+0x3E50 = 0x62D8</div><div class='add'>+0x3E51 = 0x72D9</div><div class='add'>+0x3E52 = 0x75BD</div><div class='add'>+0x3E53 = 0x5C45</div><div class='add'>+0x3E54 = 0x9A79</div><div class='add'>+0x3E55 = 0x83CA</div><div class='add'>+0x3E56 = 0x5C40</div><div class='add'>+0x3E57 = 0x5480</div><div class='add'>+0x3E58 = 0x77E9</div><div class='add'>+0x3E59 = 0x4E3E</div><div class='add'>+0x3E5A = 0x6CAE</div><div class='add'>+0x3E5B = 0x805A</div><div class='add'>+0x3E5C = 0x62D2</div><div class='add'>+0x3E5D = 0x636E</div><div class='add'>+0x3E5E = 0x5DE8</div><div class='add'>+0x3E5F = 0x5177</div><div class='add'>+0x3E60 = 0x8DDD</div><div class='add'>+0x3E61 = 0x8E1E</div><div class='add'>+0x3E62 = 0x952F</div><div class='add'>+0x3E63 = 0x4FF1</div><div class='add'>+0x3E64 = 0x53E5</div><div class='add'>+0x3E65 = 0x60E7</div><div class='add'>+0x3E66 = 0x70AC</div><div class='add'>+0x3E67 = 0x5267</div><div class='add'>+0x3E68 = 0x6350</div><div class='add'>+0x3E69 = 0x9E43</div><div class='add'>+0x3E6A = 0x5A1F</div><div class='add'>+0x3E6B = 0x5026</div><div class='add'>+0x3E6C = 0x7737</div><div class='add'>+0x3E6D = 0x5377</div><div class='add'>+0x3E6E = 0x7EE2</div><div class='add'>+0x3E6F = 0x6485</div><div class='add'>+0x3E70 = 0x652B</div><div class='add'>+0x3E71 = 0x6289</div><div class='add'>+0x3E72 = 0x6398</div><div class='add'>+0x3E73 = 0x5014</div><div class='add'>+0x3E74 = 0x7235</div><div class='add'>+0x3E75 = 0x89C9</div><div class='add'>+0x3E76 = 0x51B3</div><div class='add'>+0x3E77 = 0x8BC0</div><div class='add'>+0x3E78 = 0x7EDD</div><div class='add'>+0x3E79 = 0x5747</div><div class='add'>+0x3E7A = 0x83CC</div><div class='add'>+0x3E7B = 0x94A7</div><div class='add'>+0x3E7C = 0x519B</div><div class='add'>+0x3E7D = 0x541B</div><div class='add'>+0x3E7E = 0x5CFB</div><div class='add'>+0x3F21 = 0x4FCA</div><div class='add'>+0x3F22 = 0x7AE3</div><div class='add'>+0x3F23 = 0x6D5A</div><div class='add'>+0x3F24 = 0x90E1</div><div class='add'>+0x3F25 = 0x9A8F</div><div class='add'>+0x3F26 = 0x5580</div><div class='add'>+0x3F27 = 0x5496</div><div class='add'>+0x3F28 = 0x5361</div><div class='add'>+0x3F29 = 0x54AF</div><div class='add'>+0x3F2A = 0x5F00</div><div class='add'>+0x3F2B = 0x63E9</div><div class='add'>+0x3F2C = 0x6977</div><div class='add'>+0x3F2D = 0x51EF</div><div class='add'>+0x3F2E = 0x6168</div><div class='add'>+0x3F2F = 0x520A</div><div class='add'>+0x3F30 = 0x582A</div><div class='add'>+0x3F31 = 0x52D8</div><div class='add'>+0x3F32 = 0x574E</div><div class='add'>+0x3F33 = 0x780D</div><div class='add'>+0x3F34 = 0x770B</div><div class='add'>+0x3F35 = 0x5EB7</div><div class='add'>+0x3F36 = 0x6177</div><div class='add'>+0x3F37 = 0x7CE0</div><div class='add'>+0x3F38 = 0x625B</div><div class='add'>+0x3F39 = 0x6297</div><div class='add'>+0x3F3A = 0x4EA2</div><div class='add'>+0x3F3B = 0x7095</div><div class='add'>+0x3F3C = 0x8003</div><div class='add'>+0x3F3D = 0x62F7</div><div class='add'>+0x3F3E = 0x70E4</div><div class='add'>+0x3F3F = 0x9760</div><div class='add'>+0x3F40 = 0x5777</div><div class='add'>+0x3F41 = 0x82DB</div><div class='add'>+0x3F42 = 0x67EF</div><div class='add'>+0x3F43 = 0x68F5</div><div class='add'>+0x3F44 = 0x78D5</div><div class='add'>+0x3F45 = 0x9897</div><div class='add'>+0x3F46 = 0x79D1</div><div class='add'>+0x3F47 = 0x58F3</div><div class='add'>+0x3F48 = 0x54B3</div><div class='add'>+0x3F49 = 0x53EF</div><div class='add'>+0x3F4A = 0x6E34</div><div class='add'>+0x3F4B = 0x514B</div><div class='add'>+0x3F4C = 0x523B</div><div class='add'>+0x3F4D = 0x5BA2</div><div class='add'>+0x3F4E = 0x8BFE</div><div class='add'>+0x3F4F = 0x80AF</div><div class='add'>+0x3F50 = 0x5543</div><div class='add'>+0x3F51 = 0x57A6</div><div class='add'>+0x3F52 = 0x6073</div><div class='add'>+0x3F53 = 0x5751</div><div class='add'>+0x3F54 = 0x542D</div><div class='add'>+0x3F55 = 0x7A7A</div><div class='add'>+0x3F56 = 0x6050</div><div class='add'>+0x3F57 = 0x5B54</div><div class='add'>+0x3F58 = 0x63A7</div><div class='add'>+0x3F59 = 0x62A0</div><div class='add'>+0x3F5A = 0x53E3</div><div class='add'>+0x3F5B = 0x6263</div><div class='add'>+0x3F5C = 0x5BC7</div><div class='add'>+0x3F5D = 0x67AF</div><div class='add'>+0x3F5E = 0x54ED</div><div class='add'>+0x3F5F = 0x7A9F</div><div class='add'>+0x3F60 = 0x82E6</div><div class='add'>+0x3F61 = 0x9177</div><div class='add'>+0x3F62 = 0x5E93</div><div class='add'>+0x3F63 = 0x88E4</div><div class='add'>+0x3F64 = 0x5938</div><div class='add'>+0x3F65 = 0x57AE</div><div class='add'>+0x3F66 = 0x630E</div><div class='add'>+0x3F67 = 0x8DE8</div><div class='add'>+0x3F68 = 0x80EF</div><div class='add'>+0x3F69 = 0x5757</div><div class='add'>+0x3F6A = 0x7B77</div><div class='add'>+0x3F6B = 0x4FA9</div><div class='add'>+0x3F6C = 0x5FEB</div><div class='add'>+0x3F6D = 0x5BBD</div><div class='add'>+0x3F6E = 0x6B3E</div><div class='add'>+0x3F6F = 0x5321</div><div class='add'>+0x3F70 = 0x7B50</div><div class='add'>+0x3F71 = 0x72C2</div><div class='add'>+0x3F72 = 0x6846</div><div class='add'>+0x3F73 = 0x77FF</div><div class='add'>+0x3F74 = 0x7736</div><div class='add'>+0x3F75 = 0x65F7</div><div class='add'>+0x3F76 = 0x51B5</div><div class='add'>+0x3F77 = 0x4E8F</div><div class='add'>+0x3F78 = 0x76D4</div><div class='add'>+0x3F79 = 0x5CBF</div><div class='add'>+0x3F7A = 0x7AA5</div><div class='add'>+0x3F7B = 0x8475</div><div class='add'>+0x3F7C = 0x594E</div><div class='add'>+0x3F7D = 0x9B41</div><div class='add'>+0x3F7E = 0x5080</div><div class='add'>+0x4021 = 0x9988</div><div class='add'>+0x4022 = 0x6127</div><div class='add'>+0x4023 = 0x6E83</div><div class='add'>+0x4024 = 0x5764</div><div class='add'>+0x4025 = 0x6606</div><div class='add'>+0x4026 = 0x6346</div><div class='add'>+0x4027 = 0x56F0</div><div class='add'>+0x4028 = 0x62EC</div><div class='add'>+0x4029 = 0x6269</div><div class='add'>+0x402A = 0x5ED3</div><div class='add'>+0x402B = 0x9614</div><div class='add'>+0x402C = 0x5783</div><div class='add'>+0x402D = 0x62C9</div><div class='add'>+0x402E = 0x5587</div><div class='add'>+0x402F = 0x8721</div><div class='add'>+0x4030 = 0x814A</div><div class='add'>+0x4031 = 0x8FA3</div><div class='add'>+0x4032 = 0x5566</div><div class='add'>+0x4033 = 0x83B1</div><div class='add'>+0x4034 = 0x6765</div><div class='add'>+0x4035 = 0x8D56</div><div class='add'>+0x4036 = 0x84DD</div><div class='add'>+0x4037 = 0x5A6A</div><div class='add'>+0x4038 = 0x680F</div><div class='add'>+0x4039 = 0x62E6</div><div class='add'>+0x403A = 0x7BEE</div><div class='add'>+0x403B = 0x9611</div><div class='add'>+0x403C = 0x5170</div><div class='add'>+0x403D = 0x6F9C</div><div class='add'>+0x403E = 0x8C30</div><div class='add'>+0x403F = 0x63FD</div><div class='add'>+0x4040 = 0x89C8</div><div class='add'>+0x4041 = 0x61D2</div><div class='add'>+0x4042 = 0x7F06</div><div class='add'>+0x4043 = 0x70C2</div><div class='add'>+0x4044 = 0x6EE5</div><div class='add'>+0x4045 = 0x7405</div><div class='add'>+0x4046 = 0x6994</div><div class='add'>+0x4047 = 0x72FC</div><div class='add'>+0x4048 = 0x5ECA</div><div class='add'>+0x4049 = 0x90CE</div><div class='add'>+0x404A = 0x6717</div><div class='add'>+0x404B = 0x6D6A</div><div class='add'>+0x404C = 0x635E</div><div class='add'>+0x404D = 0x52B3</div><div class='add'>+0x404E = 0x7262</div><div class='add'>+0x404F = 0x8001</div><div class='add'>+0x4050 = 0x4F6C</div><div class='add'>+0x4051 = 0x59E5</div><div class='add'>+0x4052 = 0x916A</div><div class='add'>+0x4053 = 0x70D9</div><div class='add'>+0x4054 = 0x6D9D</div><div class='add'>+0x4055 = 0x52D2</div><div class='add'>+0x4056 = 0x4E50</div><div class='add'>+0x4057 = 0x96F7</div><div class='add'>+0x4058 = 0x956D</div><div class='add'>+0x4059 = 0x857E</div><div class='add'>+0x405A = 0x78CA</div><div class='add'>+0x405B = 0x7D2F</div><div class='add'>+0x405C = 0x5121</div><div class='add'>+0x405D = 0x5792</div><div class='add'>+0x405E = 0x64C2</div><div class='add'>+0x405F = 0x808B</div><div class='add'>+0x4060 = 0x7C7B</div><div class='add'>+0x4061 = 0x6CEA</div><div class='add'>+0x4062 = 0x68F1</div><div class='add'>+0x4063 = 0x695E</div><div class='add'>+0x4064 = 0x51B7</div><div class='add'>+0x4065 = 0x5398</div><div class='add'>+0x4066 = 0x68A8</div><div class='add'>+0x4067 = 0x7281</div><div class='add'>+0x4068 = 0x9ECE</div><div class='add'>+0x4069 = 0x7BF1</div><div class='add'>+0x406A = 0x72F8</div><div class='add'>+0x406B = 0x79BB</div><div class='add'>+0x406C = 0x6F13</div><div class='add'>+0x406D = 0x7406</div><div class='add'>+0x406E = 0x674E</div><div class='add'>+0x406F = 0x91CC</div><div class='add'>+0x4070 = 0x9CA4</div><div class='add'>+0x4071 = 0x793C</div><div class='add'>+0x4072 = 0x8389</div><div class='add'>+0x4073 = 0x8354</div><div class='add'>+0x4074 = 0x540F</div><div class='add'>+0x4075 = 0x6817</div><div class='add'>+0x4076 = 0x4E3D</div><div class='add'>+0x4077 = 0x5389</div><div class='add'>+0x4078 = 0x52B1</div><div class='add'>+0x4079 = 0x783E</div><div class='add'>+0x407A = 0x5386</div><div class='add'>+0x407B = 0x5229</div><div class='add'>+0x407C = 0x5088</div><div class='add'>+0x407D = 0x4F8B</div><div class='add'>+0x407E = 0x4FD0</div><div class='add'>+0x4121 = 0x75E2</div><div class='add'>+0x4122 = 0x7ACB</div><div class='add'>+0x4123 = 0x7C92</div><div class='add'>+0x4124 = 0x6CA5</div><div class='add'>+0x4125 = 0x96B6</div><div class='add'>+0x4126 = 0x529B</div><div class='add'>+0x4127 = 0x7483</div><div class='add'>+0x4128 = 0x54E9</div><div class='add'>+0x4129 = 0x4FE9</div><div class='add'>+0x412A = 0x8054</div><div class='add'>+0x412B = 0x83B2</div><div class='add'>+0x412C = 0x8FDE</div><div class='add'>+0x412D = 0x9570</div><div class='add'>+0x412E = 0x5EC9</div><div class='add'>+0x412F = 0x601C</div><div class='add'>+0x4130 = 0x6D9F</div><div class='add'>+0x4131 = 0x5E18</div><div class='add'>+0x4132 = 0x655B</div><div class='add'>+0x4133 = 0x8138</div><div class='add'>+0x4134 = 0x94FE</div><div class='add'>+0x4135 = 0x604B</div><div class='add'>+0x4136 = 0x70BC</div><div class='add'>+0x4137 = 0x7EC3</div><div class='add'>+0x4138 = 0x7CAE</div><div class='add'>+0x4139 = 0x51C9</div><div class='add'>+0x413A = 0x6881</div><div class='add'>+0x413B = 0x7CB1</div><div class='add'>+0x413C = 0x826F</div><div class='add'>+0x413D = 0x4E24</div><div class='add'>+0x413E = 0x8F86</div><div class='add'>+0x413F = 0x91CF</div><div class='add'>+0x4140 = 0x667E</div><div class='add'>+0x4141 = 0x4EAE</div><div class='add'>+0x4142 = 0x8C05</div><div class='add'>+0x4143 = 0x64A9</div><div class='add'>+0x4144 = 0x804A</div><div class='add'>+0x4145 = 0x50DA</div><div class='add'>+0x4146 = 0x7597</div><div class='add'>+0x4147 = 0x71CE</div><div class='add'>+0x4148 = 0x5BE5</div><div class='add'>+0x4149 = 0x8FBD</div><div class='add'>+0x414A = 0x6F66</div><div class='add'>+0x414B = 0x4E86</div><div class='add'>+0x414C = 0x6482</div><div class='add'>+0x414D = 0x9563</div><div class='add'>+0x414E = 0x5ED6</div><div class='add'>+0x414F = 0x6599</div><div class='add'>+0x4150 = 0x5217</div><div class='add'>+0x4151 = 0x88C2</div><div class='add'>+0x4152 = 0x70C8</div><div class='add'>+0x4153 = 0x52A3</div><div class='add'>+0x4154 = 0x730E</div><div class='add'>+0x4155 = 0x7433</div><div class='add'>+0x4156 = 0x6797</div><div class='add'>+0x4157 = 0x78F7</div><div class='add'>+0x4158 = 0x9716</div><div class='add'>+0x4159 = 0x4E34</div><div class='add'>+0x415A = 0x90BB</div><div class='add'>+0x415B = 0x9CDE</div><div class='add'>+0x415C = 0x6DCB</div><div class='add'>+0x415D = 0x51DB</div><div class='add'>+0x415E = 0x8D41</div><div class='add'>+0x415F = 0x541D</div><div class='add'>+0x4160 = 0x62CE</div><div class='add'>+0x4161 = 0x73B2</div><div class='add'>+0x4162 = 0x83F1</div><div class='add'>+0x4163 = 0x96F6</div><div class='add'>+0x4164 = 0x9F84</div><div class='add'>+0x4165 = 0x94C3</div><div class='add'>+0x4166 = 0x4F36</div><div class='add'>+0x4167 = 0x7F9A</div><div class='add'>+0x4168 = 0x51CC</div><div class='add'>+0x4169 = 0x7075</div><div class='add'>+0x416A = 0x9675</div><div class='add'>+0x416B = 0x5CAD</div><div class='add'>+0x416C = 0x9886</div><div class='add'>+0x416D = 0x53E6</div><div class='add'>+0x416E = 0x4EE4</div><div class='add'>+0x416F = 0x6E9C</div><div class='add'>+0x4170 = 0x7409</div><div class='add'>+0x4171 = 0x69B4</div><div class='add'>+0x4172 = 0x786B</div><div class='add'>+0x4173 = 0x998F</div><div class='add'>+0x4174 = 0x7559</div><div class='add'>+0x4175 = 0x5218</div><div class='add'>+0x4176 = 0x7624</div><div class='add'>+0x4177 = 0x6D41</div><div class='add'>+0x4178 = 0x67F3</div><div class='add'>+0x4179 = 0x516D</div><div class='add'>+0x417A = 0x9F99</div><div class='add'>+0x417B = 0x804B</div><div class='add'>+0x417C = 0x5499</div><div class='add'>+0x417D = 0x7B3C</div><div class='add'>+0x417E = 0x7ABF</div><div class='add'>+0x4221 = 0x9686</div><div class='add'>+0x4222 = 0x5784</div><div class='add'>+0x4223 = 0x62E2</div><div class='add'>+0x4224 = 0x9647</div><div class='add'>+0x4225 = 0x697C</div><div class='add'>+0x4226 = 0x5A04</div><div class='add'>+0x4227 = 0x6402</div><div class='add'>+0x4228 = 0x7BD3</div><div class='add'>+0x4229 = 0x6F0F</div><div class='add'>+0x422A = 0x964B</div><div class='add'>+0x422B = 0x82A6</div><div class='add'>+0x422C = 0x5362</div><div class='add'>+0x422D = 0x9885</div><div class='add'>+0x422E = 0x5E90</div><div class='add'>+0x422F = 0x7089</div><div class='add'>+0x4230 = 0x63B3</div><div class='add'>+0x4231 = 0x5364</div><div class='add'>+0x4232 = 0x864F</div><div class='add'>+0x4233 = 0x9C81</div><div class='add'>+0x4234 = 0x9E93</div><div class='add'>+0x4235 = 0x788C</div><div class='add'>+0x4236 = 0x9732</div><div class='add'>+0x4237 = 0x8DEF</div><div class='add'>+0x4238 = 0x8D42</div><div class='add'>+0x4239 = 0x9E7F</div><div class='add'>+0x423A = 0x6F5E</div><div class='add'>+0x423B = 0x7984</div><div class='add'>+0x423C = 0x5F55</div><div class='add'>+0x423D = 0x9646</div><div class='add'>+0x423E = 0x622E</div><div class='add'>+0x423F = 0x9A74</div><div class='add'>+0x4240 = 0x5415</div><div class='add'>+0x4241 = 0x94DD</div><div class='add'>+0x4242 = 0x4FA3</div><div class='add'>+0x4243 = 0x65C5</div><div class='add'>+0x4244 = 0x5C65</div><div class='add'>+0x4245 = 0x5C61</div><div class='add'>+0x4246 = 0x7F15</div><div class='add'>+0x4247 = 0x8651</div><div class='add'>+0x4248 = 0x6C2F</div><div class='add'>+0x4249 = 0x5F8B</div><div class='add'>+0x424A = 0x7387</div><div class='add'>+0x424B = 0x6EE4</div><div class='add'>+0x424C = 0x7EFF</div><div class='add'>+0x424D = 0x5CE6</div><div class='add'>+0x424E = 0x631B</div><div class='add'>+0x424F = 0x5B6A</div><div class='add'>+0x4250 = 0x6EE6</div><div class='add'>+0x4251 = 0x5375</div><div class='add'>+0x4252 = 0x4E71</div><div class='add'>+0x4253 = 0x63A0</div><div class='add'>+0x4254 = 0x7565</div><div class='add'>+0x4255 = 0x62A1</div><div class='add'>+0x4256 = 0x8F6E</div><div class='add'>+0x4257 = 0x4F26</div><div class='add'>+0x4258 = 0x4ED1</div><div class='add'>+0x4259 = 0x6CA6</div><div class='add'>+0x425A = 0x7EB6</div><div class='add'>+0x425B = 0x8BBA</div><div class='add'>+0x425C = 0x841D</div><div class='add'>+0x425D = 0x87BA</div><div class='add'>+0x425E = 0x7F57</div><div class='add'>+0x425F = 0x903B</div><div class='add'>+0x4260 = 0x9523</div><div class='add'>+0x4261 = 0x7BA9</div><div class='add'>+0x4262 = 0x9AA1</div><div class='add'>+0x4263 = 0x88F8</div><div class='add'>+0x4264 = 0x843D</div><div class='add'>+0x4265 = 0x6D1B</div><div class='add'>+0x4266 = 0x9A86</div><div class='add'>+0x4267 = 0x7EDC</div><div class='add'>+0x4268 = 0x5988</div><div class='add'>+0x4269 = 0x9EBB</div><div class='add'>+0x426A = 0x739B</div><div class='add'>+0x426B = 0x7801</div><div class='add'>+0x426C = 0x8682</div><div class='add'>+0x426D = 0x9A6C</div><div class='add'>+0x426E = 0x9A82</div><div class='add'>+0x426F = 0x561B</div><div class='add'>+0x4270 = 0x5417</div><div class='add'>+0x4271 = 0x57CB</div><div class='add'>+0x4272 = 0x4E70</div><div class='add'>+0x4273 = 0x9EA6</div><div class='add'>+0x4274 = 0x5356</div><div class='add'>+0x4275 = 0x8FC8</div><div class='add'>+0x4276 = 0x8109</div><div class='add'>+0x4277 = 0x7792</div><div class='add'>+0x4278 = 0x9992</div><div class='add'>+0x4279 = 0x86EE</div><div class='add'>+0x427A = 0x6EE1</div><div class='add'>+0x427B = 0x8513</div><div class='add'>+0x427C = 0x66FC</div><div class='add'>+0x427D = 0x6162</div><div class='add'>+0x427E = 0x6F2B</div><div class='add'>+0x4321 = 0x8C29</div><div class='add'>+0x4322 = 0x8292</div><div class='add'>+0x4323 = 0x832B</div><div class='add'>+0x4324 = 0x76F2</div><div class='add'>+0x4325 = 0x6C13</div><div class='add'>+0x4326 = 0x5FD9</div><div class='add'>+0x4327 = 0x83BD</div><div class='add'>+0x4328 = 0x732B</div><div class='add'>+0x4329 = 0x8305</div><div class='add'>+0x432A = 0x951A</div><div class='add'>+0x432B = 0x6BDB</div><div class='add'>+0x432C = 0x77DB</div><div class='add'>+0x432D = 0x94C6</div><div class='add'>+0x432E = 0x536F</div><div class='add'>+0x432F = 0x8302</div><div class='add'>+0x4330 = 0x5192</div><div class='add'>+0x4331 = 0x5E3D</div><div class='add'>+0x4332 = 0x8C8C</div><div class='add'>+0x4333 = 0x8D38</div><div class='add'>+0x4334 = 0x4E48</div><div class='add'>+0x4335 = 0x73AB</div><div class='add'>+0x4336 = 0x679A</div><div class='add'>+0x4337 = 0x6885</div><div class='add'>+0x4338 = 0x9176</div><div class='add'>+0x4339 = 0x9709</div><div class='add'>+0x433A = 0x7164</div><div class='add'>+0x433B = 0x6CA1</div><div class='add'>+0x433C = 0x7709</div><div class='add'>+0x433D = 0x5A92</div><div class='add'>+0x433E = 0x9541</div><div class='add'>+0x433F = 0x6BCF</div><div class='add'>+0x4340 = 0x7F8E</div><div class='add'>+0x4341 = 0x6627</div><div class='add'>+0x4342 = 0x5BD0</div><div class='add'>+0x4343 = 0x59B9</div><div class='add'>+0x4344 = 0x5A9A</div><div class='add'>+0x4345 = 0x95E8</div><div class='add'>+0x4346 = 0x95F7</div><div class='add'>+0x4347 = 0x4EEC</div><div class='add'>+0x4348 = 0x840C</div><div class='add'>+0x4349 = 0x8499</div><div class='add'>+0x434A = 0x6AAC</div><div class='add'>+0x434B = 0x76DF</div><div class='add'>+0x434C = 0x9530</div><div class='add'>+0x434D = 0x731B</div><div class='add'>+0x434E = 0x68A6</div><div class='add'>+0x434F = 0x5B5F</div><div class='add'>+0x4350 = 0x772F</div><div class='add'>+0x4351 = 0x919A</div><div class='add'>+0x4352 = 0x9761</div><div class='add'>+0x4353 = 0x7CDC</div><div class='add'>+0x4354 = 0x8FF7</div><div class='add'>+0x4355 = 0x8C1C</div><div class='add'>+0x4356 = 0x5F25</div><div class='add'>+0x4357 = 0x7C73</div><div class='add'>+0x4358 = 0x79D8</div><div class='add'>+0x4359 = 0x89C5</div><div class='add'>+0x435A = 0x6CCC</div><div class='add'>+0x435B = 0x871C</div><div class='add'>+0x435C = 0x5BC6</div><div class='add'>+0x435D = 0x5E42</div><div class='add'>+0x435E = 0x68C9</div><div class='add'>+0x435F = 0x7720</div><div class='add'>+0x4360 = 0x7EF5</div><div class='add'>+0x4361 = 0x5195</div><div class='add'>+0x4362 = 0x514D</div><div class='add'>+0x4363 = 0x52C9</div><div class='add'>+0x4364 = 0x5A29</div><div class='add'>+0x4365 = 0x7F05</div><div class='add'>+0x4366 = 0x9762</div><div class='add'>+0x4367 = 0x82D7</div><div class='add'>+0x4368 = 0x63CF</div><div class='add'>+0x4369 = 0x7784</div><div class='add'>+0x436A = 0x85D0</div><div class='add'>+0x436B = 0x79D2</div><div class='add'>+0x436C = 0x6E3A</div><div class='add'>+0x436D = 0x5E99</div><div class='add'>+0x436E = 0x5999</div><div class='add'>+0x436F = 0x8511</div><div class='add'>+0x4370 = 0x706D</div><div class='add'>+0x4371 = 0x6C11</div><div class='add'>+0x4372 = 0x62BF</div><div class='add'>+0x4373 = 0x76BF</div><div class='add'>+0x4374 = 0x654F</div><div class='add'>+0x4375 = 0x60AF</div><div class='add'>+0x4376 = 0x95FD</div><div class='add'>+0x4377 = 0x660E</div><div class='add'>+0x4378 = 0x879F</div><div class='add'>+0x4379 = 0x9E23</div><div class='add'>+0x437A = 0x94ED</div><div class='add'>+0x437B = 0x540D</div><div class='add'>+0x437C = 0x547D</div><div class='add'>+0x437D = 0x8C2C</div><div class='add'>+0x437E = 0x6478</div><div class='add'>+0x4421 = 0x6479</div><div class='add'>+0x4422 = 0x8611</div><div class='add'>+0x4423 = 0x6A21</div><div class='add'>+0x4424 = 0x819C</div><div class='add'>+0x4425 = 0x78E8</div><div class='add'>+0x4426 = 0x6469</div><div class='add'>+0x4427 = 0x9B54</div><div class='add'>+0x4428 = 0x62B9</div><div class='add'>+0x4429 = 0x672B</div><div class='add'>+0x442A = 0x83AB</div><div class='add'>+0x442B = 0x58A8</div><div class='add'>+0x442C = 0x9ED8</div><div class='add'>+0x442D = 0x6CAB</div><div class='add'>+0x442E = 0x6F20</div><div class='add'>+0x442F = 0x5BDE</div><div class='add'>+0x4430 = 0x964C</div><div class='add'>+0x4431 = 0x8C0B</div><div class='add'>+0x4432 = 0x725F</div><div class='add'>+0x4433 = 0x67D0</div><div class='add'>+0x4434 = 0x62C7</div><div class='add'>+0x4435 = 0x7261</div><div class='add'>+0x4436 = 0x4EA9</div><div class='add'>+0x4437 = 0x59C6</div><div class='add'>+0x4438 = 0x6BCD</div><div class='add'>+0x4439 = 0x5893</div><div class='add'>+0x443A = 0x66AE</div><div class='add'>+0x443B = 0x5E55</div><div class='add'>+0x443C = 0x52DF</div><div class='add'>+0x443D = 0x6155</div><div class='add'>+0x443E = 0x6728</div><div class='add'>+0x443F = 0x76EE</div><div class='add'>+0x4440 = 0x7766</div><div class='add'>+0x4441 = 0x7267</div><div class='add'>+0x4442 = 0x7A46</div><div class='add'>+0x4443 = 0x62FF</div><div class='add'>+0x4444 = 0x54EA</div><div class='add'>+0x4445 = 0x5450</div><div class='add'>+0x4446 = 0x94A0</div><div class='add'>+0x4447 = 0x90A3</div><div class='add'>+0x4448 = 0x5A1C</div><div class='add'>+0x4449 = 0x7EB3</div><div class='add'>+0x444A = 0x6C16</div><div class='add'>+0x444B = 0x4E43</div><div class='add'>+0x444C = 0x5976</div><div class='add'>+0x444D = 0x8010</div><div class='add'>+0x444E = 0x5948</div><div class='add'>+0x444F = 0x5357</div><div class='add'>+0x4450 = 0x7537</div><div class='add'>+0x4451 = 0x96BE</div><div class='add'>+0x4452 = 0x56CA</div><div class='add'>+0x4453 = 0x6320</div><div class='add'>+0x4454 = 0x8111</div><div class='add'>+0x4455 = 0x607C</div><div class='add'>+0x4456 = 0x95F9</div><div class='add'>+0x4457 = 0x6DD6</div><div class='add'>+0x4458 = 0x5462</div><div class='add'>+0x4459 = 0x9981</div><div class='add'>+0x445A = 0x5185</div><div class='add'>+0x445B = 0x5AE9</div><div class='add'>+0x445C = 0x80FD</div><div class='add'>+0x445D = 0x59AE</div><div class='add'>+0x445E = 0x9713</div><div class='add'>+0x445F = 0x502A</div><div class='add'>+0x4460 = 0x6CE5</div><div class='add'>+0x4461 = 0x5C3C</div><div class='add'>+0x4462 = 0x62DF</div><div class='add'>+0x4463 = 0x4F60</div><div class='add'>+0x4464 = 0x533F</div><div class='add'>+0x4465 = 0x817B</div><div class='add'>+0x4466 = 0x9006</div><div class='add'>+0x4467 = 0x6EBA</div><div class='add'>+0x4468 = 0x852B</div><div class='add'>+0x4469 = 0x62C8</div><div class='add'>+0x446A = 0x5E74</div><div class='add'>+0x446B = 0x78BE</div><div class='add'>+0x446C = 0x64B5</div><div class='add'>+0x446D = 0x637B</div><div class='add'>+0x446E = 0x5FF5</div><div class='add'>+0x446F = 0x5A18</div><div class='add'>+0x4470 = 0x917F</div><div class='add'>+0x4471 = 0x9E1F</div><div class='add'>+0x4472 = 0x5C3F</div><div class='add'>+0x4473 = 0x634F</div><div class='add'>+0x4474 = 0x8042</div><div class='add'>+0x4475 = 0x5B7D</div><div class='add'>+0x4476 = 0x556E</div><div class='add'>+0x4477 = 0x954A</div><div class='add'>+0x4478 = 0x954D</div><div class='add'>+0x4479 = 0x6D85</div><div class='add'>+0x447A = 0x60A8</div><div class='add'>+0x447B = 0x67E0</div><div class='add'>+0x447C = 0x72DE</div><div class='add'>+0x447D = 0x51DD</div><div class='add'>+0x447E = 0x5B81</div><div class='add'>+0x4521 = 0x62E7</div><div class='add'>+0x4522 = 0x6CDE</div><div class='add'>+0x4523 = 0x725B</div><div class='add'>+0x4524 = 0x626D</div><div class='add'>+0x4525 = 0x94AE</div><div class='add'>+0x4526 = 0x7EBD</div><div class='add'>+0x4527 = 0x8113</div><div class='add'>+0x4528 = 0x6D53</div><div class='add'>+0x4529 = 0x519C</div><div class='add'>+0x452A = 0x5F04</div><div class='add'>+0x452B = 0x5974</div><div class='add'>+0x452C = 0x52AA</div><div class='add'>+0x452D = 0x6012</div><div class='add'>+0x452E = 0x5973</div><div class='add'>+0x452F = 0x6696</div><div class='add'>+0x4530 = 0x8650</div><div class='add'>+0x4531 = 0x759F</div><div class='add'>+0x4532 = 0x632A</div><div class='add'>+0x4533 = 0x61E6</div><div class='add'>+0x4534 = 0x7CEF</div><div class='add'>+0x4535 = 0x8BFA</div><div class='add'>+0x4536 = 0x54E6</div><div class='add'>+0x4537 = 0x6B27</div><div class='add'>+0x4538 = 0x9E25</div><div class='add'>+0x4539 = 0x6BB4</div><div class='add'>+0x453A = 0x85D5</div><div class='add'>+0x453B = 0x5455</div><div class='add'>+0x453C = 0x5076</div><div class='add'>+0x453D = 0x6CA4</div><div class='add'>+0x453E = 0x556A</div><div class='add'>+0x453F = 0x8DB4</div><div class='add'>+0x4540 = 0x722C</div><div class='add'>+0x4541 = 0x5E15</div><div class='add'>+0x4542 = 0x6015</div><div class='add'>+0x4543 = 0x7436</div><div class='add'>+0x4544 = 0x62CD</div><div class='add'>+0x4545 = 0x6392</div><div class='add'>+0x4546 = 0x724C</div><div class='add'>+0x4547 = 0x5F98</div><div class='add'>+0x4548 = 0x6E43</div><div class='add'>+0x4549 = 0x6D3E</div><div class='add'>+0x454A = 0x6500</div><div class='add'>+0x454B = 0x6F58</div><div class='add'>+0x454C = 0x76D8</div><div class='add'>+0x454D = 0x78D0</div><div class='add'>+0x454E = 0x76FC</div><div class='add'>+0x454F = 0x7554</div><div class='add'>+0x4550 = 0x5224</div><div class='add'>+0x4551 = 0x53DB</div><div class='add'>+0x4552 = 0x4E53</div><div class='add'>+0x4553 = 0x5E9E</div><div class='add'>+0x4554 = 0x65C1</div><div class='add'>+0x4555 = 0x802A</div><div class='add'>+0x4556 = 0x80D6</div><div class='add'>+0x4557 = 0x629B</div><div class='add'>+0x4558 = 0x5486</div><div class='add'>+0x4559 = 0x5228</div><div class='add'>+0x455A = 0x70AE</div><div class='add'>+0x455B = 0x888D</div><div class='add'>+0x455C = 0x8DD1</div><div class='add'>+0x455D = 0x6CE1</div><div class='add'>+0x455E = 0x5478</div><div class='add'>+0x455F = 0x80DA</div><div class='add'>+0x4560 = 0x57F9</div><div class='add'>+0x4561 = 0x88F4</div><div class='add'>+0x4562 = 0x8D54</div><div class='add'>+0x4563 = 0x966A</div><div class='add'>+0x4564 = 0x914D</div><div class='add'>+0x4565 = 0x4F69</div><div class='add'>+0x4566 = 0x6C9B</div><div class='add'>+0x4567 = 0x55B7</div><div class='add'>+0x4568 = 0x76C6</div><div class='add'>+0x4569 = 0x7830</div><div class='add'>+0x456A = 0x62A8</div><div class='add'>+0x456B = 0x70F9</div><div class='add'>+0x456C = 0x6F8E</div><div class='add'>+0x456D = 0x5F6D</div><div class='add'>+0x456E = 0x84EC</div><div class='add'>+0x456F = 0x68DA</div><div class='add'>+0x4570 = 0x787C</div><div class='add'>+0x4571 = 0x7BF7</div><div class='add'>+0x4572 = 0x81A8</div><div class='add'>+0x4573 = 0x670B</div><div class='add'>+0x4574 = 0x9E4F</div><div class='add'>+0x4575 = 0x6367</div><div class='add'>+0x4576 = 0x78B0</div><div class='add'>+0x4577 = 0x576F</div><div class='add'>+0x4578 = 0x7812</div><div class='add'>+0x4579 = 0x9739</div><div class='add'>+0x457A = 0x6279</div><div class='add'>+0x457B = 0x62AB</div><div class='add'>+0x457C = 0x5288</div><div class='add'>+0x457D = 0x7435</div><div class='add'>+0x457E = 0x6BD7</div><div class='add'>+0x4621 = 0x5564</div><div class='add'>+0x4622 = 0x813E</div><div class='add'>+0x4623 = 0x75B2</div><div class='add'>+0x4624 = 0x76AE</div><div class='add'>+0x4625 = 0x5339</div><div class='add'>+0x4626 = 0x75DE</div><div class='add'>+0x4627 = 0x50FB</div><div class='add'>+0x4628 = 0x5C41</div><div class='add'>+0x4629 = 0x8B6C</div><div class='add'>+0x462A = 0x7BC7</div><div class='add'>+0x462B = 0x504F</div><div class='add'>+0x462C = 0x7247</div><div class='add'>+0x462D = 0x9A97</div><div class='add'>+0x462E = 0x98D8</div><div class='add'>+0x462F = 0x6F02</div><div class='add'>+0x4630 = 0x74E2</div><div class='add'>+0x4631 = 0x7968</div><div class='add'>+0x4632 = 0x6487</div><div class='add'>+0x4633 = 0x77A5</div><div class='add'>+0x4634 = 0x62FC</div><div class='add'>+0x4635 = 0x9891</div><div class='add'>+0x4636 = 0x8D2B</div><div class='add'>+0x4637 = 0x54C1</div><div class='add'>+0x4638 = 0x8058</div><div class='add'>+0x4639 = 0x4E52</div><div class='add'>+0x463A = 0x576A</div><div class='add'>+0x463B = 0x82F9</div><div class='add'>+0x463C = 0x840D</div><div class='add'>+0x463D = 0x5E73</div><div class='add'>+0x463E = 0x51ED</div><div class='add'>+0x463F = 0x74F6</div><div class='add'>+0x4640 = 0x8BC4</div><div class='add'>+0x4641 = 0x5C4F</div><div class='add'>+0x4642 = 0x5761</div><div class='add'>+0x4643 = 0x6CFC</div><div class='add'>+0x4644 = 0x9887</div><div class='add'>+0x4645 = 0x5A46</div><div class='add'>+0x4646 = 0x7834</div><div class='add'>+0x4647 = 0x9B44</div><div class='add'>+0x4648 = 0x8FEB</div><div class='add'>+0x4649 = 0x7C95</div><div class='add'>+0x464A = 0x5256</div><div class='add'>+0x464B = 0x6251</div><div class='add'>+0x464C = 0x94FA</div><div class='add'>+0x464D = 0x4EC6</div><div class='add'>+0x464E = 0x8386</div><div class='add'>+0x464F = 0x8461</div><div class='add'>+0x4650 = 0x83E9</div><div class='add'>+0x4651 = 0x84B2</div><div class='add'>+0x4652 = 0x57D4</div><div class='add'>+0x4653 = 0x6734</div><div class='add'>+0x4654 = 0x5703</div><div class='add'>+0x4655 = 0x666E</div><div class='add'>+0x4656 = 0x6D66</div><div class='add'>+0x4657 = 0x8C31</div><div class='add'>+0x4658 = 0x66DD</div><div class='add'>+0x4659 = 0x7011</div><div class='add'>+0x465A = 0x671F</div><div class='add'>+0x465B = 0x6B3A</div><div class='add'>+0x465C = 0x6816</div><div class='add'>+0x465D = 0x621A</div><div class='add'>+0x465E = 0x59BB</div><div class='add'>+0x465F = 0x4E03</div><div class='add'>+0x4660 = 0x51C4</div><div class='add'>+0x4661 = 0x6F06</div><div class='add'>+0x4662 = 0x67D2</div><div class='add'>+0x4663 = 0x6C8F</div><div class='add'>+0x4664 = 0x5176</div><div class='add'>+0x4665 = 0x68CB</div><div class='add'>+0x4666 = 0x5947</div><div class='add'>+0x4667 = 0x6B67</div><div class='add'>+0x4668 = 0x7566</div><div class='add'>+0x4669 = 0x5D0E</div><div class='add'>+0x466A = 0x8110</div><div class='add'>+0x466B = 0x9F50</div><div class='add'>+0x466C = 0x65D7</div><div class='add'>+0x466D = 0x7948</div><div class='add'>+0x466E = 0x7941</div><div class='add'>+0x466F = 0x9A91</div><div class='add'>+0x4670 = 0x8D77</div><div class='add'>+0x4671 = 0x5C82</div><div class='add'>+0x4672 = 0x4E5E</div><div class='add'>+0x4673 = 0x4F01</div><div class='add'>+0x4674 = 0x542F</div><div class='add'>+0x4675 = 0x5951</div><div class='add'>+0x4676 = 0x780C</div><div class='add'>+0x4677 = 0x5668</div><div class='add'>+0x4678 = 0x6C14</div><div class='add'>+0x4679 = 0x8FC4</div><div class='add'>+0x467A = 0x5F03</div><div class='add'>+0x467B = 0x6C7D</div><div class='add'>+0x467C = 0x6CE3</div><div class='add'>+0x467D = 0x8BAB</div><div class='add'>+0x467E = 0x6390</div><div class='add'>+0x4721 = 0x6070</div><div class='add'>+0x4722 = 0x6D3D</div><div class='add'>+0x4723 = 0x7275</div><div class='add'>+0x4724 = 0x6266</div><div class='add'>+0x4725 = 0x948E</div><div class='add'>+0x4726 = 0x94C5</div><div class='add'>+0x4727 = 0x5343</div><div class='add'>+0x4728 = 0x8FC1</div><div class='add'>+0x4729 = 0x7B7E</div><div class='add'>+0x472A = 0x4EDF</div><div class='add'>+0x472B = 0x8C26</div><div class='add'>+0x472C = 0x4E7E</div><div class='add'>+0x472D = 0x9ED4</div><div class='add'>+0x472E = 0x94B1</div><div class='add'>+0x472F = 0x94B3</div><div class='add'>+0x4730 = 0x524D</div><div class='add'>+0x4731 = 0x6F5C</div><div class='add'>+0x4732 = 0x9063</div><div class='add'>+0x4733 = 0x6D45</div><div class='add'>+0x4734 = 0x8C34</div><div class='add'>+0x4735 = 0x5811</div><div class='add'>+0x4736 = 0x5D4C</div><div class='add'>+0x4737 = 0x6B20</div><div class='add'>+0x4738 = 0x6B49</div><div class='add'>+0x4739 = 0x67AA</div><div class='add'>+0x473A = 0x545B</div><div class='add'>+0x473B = 0x8154</div><div class='add'>+0x473C = 0x7F8C</div><div class='add'>+0x473D = 0x5899</div><div class='add'>+0x473E = 0x8537</div><div class='add'>+0x473F = 0x5F3A</div><div class='add'>+0x4740 = 0x62A2</div><div class='add'>+0x4741 = 0x6A47</div><div class='add'>+0x4742 = 0x9539</div><div class='add'>+0x4743 = 0x6572</div><div class='add'>+0x4744 = 0x6084</div><div class='add'>+0x4745 = 0x6865</div><div class='add'>+0x4746 = 0x77A7</div><div class='add'>+0x4747 = 0x4E54</div><div class='add'>+0x4748 = 0x4FA8</div><div class='add'>+0x4749 = 0x5DE7</div><div class='add'>+0x474A = 0x9798</div><div class='add'>+0x474B = 0x64AC</div><div class='add'>+0x474C = 0x7FD8</div><div class='add'>+0x474D = 0x5CED</div><div class='add'>+0x474E = 0x4FCF</div><div class='add'>+0x474F = 0x7A8D</div><div class='add'>+0x4750 = 0x5207</div><div class='add'>+0x4751 = 0x8304</div><div class='add'>+0x4752 = 0x4E14</div><div class='add'>+0x4753 = 0x602F</div><div class='add'>+0x4754 = 0x7A83</div><div class='add'>+0x4755 = 0x94A6</div><div class='add'>+0x4756 = 0x4FB5</div><div class='add'>+0x4757 = 0x4EB2</div><div class='add'>+0x4758 = 0x79E6</div><div class='add'>+0x4759 = 0x7434</div><div class='add'>+0x475A = 0x52E4</div><div class='add'>+0x475B = 0x82B9</div><div class='add'>+0x475C = 0x64D2</div><div class='add'>+0x475D = 0x79BD</div><div class='add'>+0x475E = 0x5BDD</div><div class='add'>+0x475F = 0x6C81</div><div class='add'>+0x4760 = 0x9752</div><div class='add'>+0x4761 = 0x8F7B</div><div class='add'>+0x4762 = 0x6C22</div><div class='add'>+0x4763 = 0x503E</div><div class='add'>+0x4764 = 0x537F</div><div class='add'>+0x4765 = 0x6E05</div><div class='add'>+0x4766 = 0x64CE</div><div class='add'>+0x4767 = 0x6674</div><div class='add'>+0x4768 = 0x6C30</div><div class='add'>+0x4769 = 0x60C5</div><div class='add'>+0x476A = 0x9877</div><div class='add'>+0x476B = 0x8BF7</div><div class='add'>+0x476C = 0x5E86</div><div class='add'>+0x476D = 0x743C</div><div class='add'>+0x476E = 0x7A77</div><div class='add'>+0x476F = 0x79CB</div><div class='add'>+0x4770 = 0x4E18</div><div class='add'>+0x4771 = 0x90B1</div><div class='add'>+0x4772 = 0x7403</div><div class='add'>+0x4773 = 0x6C42</div><div class='add'>+0x4774 = 0x56DA</div><div class='add'>+0x4775 = 0x914B</div><div class='add'>+0x4776 = 0x6CC5</div><div class='add'>+0x4777 = 0x8D8B</div><div class='add'>+0x4778 = 0x533A</div><div class='add'>+0x4779 = 0x86C6</div><div class='add'>+0x477A = 0x66F2</div><div class='add'>+0x477B = 0x8EAF</div><div class='add'>+0x477C = 0x5C48</div><div class='add'>+0x477D = 0x9A71</div><div class='add'>+0x477E = 0x6E20</div><div class='add'>+0x4821 = 0x53D6</div><div class='add'>+0x4822 = 0x5A36</div><div class='add'>+0x4823 = 0x9F8B</div><div class='add'>+0x4824 = 0x8DA3</div><div class='add'>+0x4825 = 0x53BB</div><div class='add'>+0x4826 = 0x5708</div><div class='add'>+0x4827 = 0x98A7</div><div class='add'>+0x4828 = 0x6743</div><div class='add'>+0x4829 = 0x919B</div><div class='add'>+0x482A = 0x6CC9</div><div class='add'>+0x482B = 0x5168</div><div class='add'>+0x482C = 0x75CA</div><div class='add'>+0x482D = 0x62F3</div><div class='add'>+0x482E = 0x72AC</div><div class='add'>+0x482F = 0x5238</div><div class='add'>+0x4830 = 0x529D</div><div class='add'>+0x4831 = 0x7F3A</div><div class='add'>+0x4832 = 0x7094</div><div class='add'>+0x4833 = 0x7638</div><div class='add'>+0x4834 = 0x5374</div><div class='add'>+0x4835 = 0x9E4A</div><div class='add'>+0x4836 = 0x69B7</div><div class='add'>+0x4837 = 0x786E</div><div class='add'>+0x4838 = 0x96C0</div><div class='add'>+0x4839 = 0x88D9</div><div class='add'>+0x483A = 0x7FA4</div><div class='add'>+0x483B = 0x7136</div><div class='add'>+0x483C = 0x71C3</div><div class='add'>+0x483D = 0x5189</div><div class='add'>+0x483E = 0x67D3</div><div class='add'>+0x483F = 0x74E4</div><div class='add'>+0x4840 = 0x58E4</div><div class='add'>+0x4841 = 0x6518</div><div class='add'>+0x4842 = 0x56B7</div><div class='add'>+0x4843 = 0x8BA9</div><div class='add'>+0x4844 = 0x9976</div><div class='add'>+0x4845 = 0x6270</div><div class='add'>+0x4846 = 0x7ED5</div><div class='add'>+0x4847 = 0x60F9</div><div class='add'>+0x4848 = 0x70ED</div><div class='add'>+0x4849 = 0x58EC</div><div class='add'>+0x484A = 0x4EC1</div><div class='add'>+0x484B = 0x4EBA</div><div class='add'>+0x484C = 0x5FCD</div><div class='add'>+0x484D = 0x97E7</div><div class='add'>+0x484E = 0x4EFB</div><div class='add'>+0x484F = 0x8BA4</div><div class='add'>+0x4850 = 0x5203</div><div class='add'>+0x4851 = 0x598A</div><div class='add'>+0x4852 = 0x7EAB</div><div class='add'>+0x4853 = 0x6254</div><div class='add'>+0x4854 = 0x4ECD</div><div class='add'>+0x4855 = 0x65E5</div><div class='add'>+0x4856 = 0x620E</div><div class='add'>+0x4857 = 0x8338</div><div class='add'>+0x4858 = 0x84C9</div><div class='add'>+0x4859 = 0x8363</div><div class='add'>+0x485A = 0x878D</div><div class='add'>+0x485B = 0x7194</div><div class='add'>+0x485C = 0x6EB6</div><div class='add'>+0x485D = 0x5BB9</div><div class='add'>+0x485E = 0x7ED2</div><div class='add'>+0x485F = 0x5197</div><div class='add'>+0x4860 = 0x63C9</div><div class='add'>+0x4861 = 0x67D4</div><div class='add'>+0x4862 = 0x8089</div><div class='add'>+0x4863 = 0x8339</div><div class='add'>+0x4864 = 0x8815</div><div class='add'>+0x4865 = 0x5112</div><div class='add'>+0x4866 = 0x5B7A</div><div class='add'>+0x4867 = 0x5982</div><div class='add'>+0x4868 = 0x8FB1</div><div class='add'>+0x4869 = 0x4E73</div><div class='add'>+0x486A = 0x6C5D</div><div class='add'>+0x486B = 0x5165</div><div class='add'>+0x486C = 0x8925</div><div class='add'>+0x486D = 0x8F6F</div><div class='add'>+0x486E = 0x962E</div><div class='add'>+0x486F = 0x854A</div><div class='add'>+0x4870 = 0x745E</div><div class='add'>+0x4871 = 0x9510</div><div class='add'>+0x4872 = 0x95F0</div><div class='add'>+0x4873 = 0x6DA6</div><div class='add'>+0x4874 = 0x82E5</div><div class='add'>+0x4875 = 0x5F31</div><div class='add'>+0x4876 = 0x6492</div><div class='add'>+0x4877 = 0x6D12</div><div class='add'>+0x4878 = 0x8428</div><div class='add'>+0x4879 = 0x816E</div><div class='add'>+0x487A = 0x9CC3</div><div class='add'>+0x487B = 0x585E</div><div class='add'>+0x487C = 0x8D5B</div><div class='add'>+0x487D = 0x4E09</div><div class='add'>+0x487E = 0x53C1</div><div class='add'>+0x4921 = 0x4F1E</div><div class='add'>+0x4922 = 0x6563</div><div class='add'>+0x4923 = 0x6851</div><div class='add'>+0x4924 = 0x55D3</div><div class='add'>+0x4925 = 0x4E27</div><div class='add'>+0x4926 = 0x6414</div><div class='add'>+0x4927 = 0x9A9A</div><div class='add'>+0x4928 = 0x626B</div><div class='add'>+0x4929 = 0x5AC2</div><div class='add'>+0x492A = 0x745F</div><div class='add'>+0x492B = 0x8272</div><div class='add'>+0x492C = 0x6DA9</div><div class='add'>+0x492D = 0x68EE</div><div class='add'>+0x492E = 0x50E7</div><div class='add'>+0x492F = 0x838E</div><div class='add'>+0x4930 = 0x7802</div><div class='add'>+0x4931 = 0x6740</div><div class='add'>+0x4932 = 0x5239</div><div class='add'>+0x4933 = 0x6C99</div><div class='add'>+0x4934 = 0x7EB1</div><div class='add'>+0x4935 = 0x50BB</div><div class='add'>+0x4936 = 0x5565</div><div class='add'>+0x4937 = 0x715E</div><div class='add'>+0x4938 = 0x7B5B</div><div class='add'>+0x4939 = 0x6652</div><div class='add'>+0x493A = 0x73CA</div><div class='add'>+0x493B = 0x82EB</div><div class='add'>+0x493C = 0x6749</div><div class='add'>+0x493D = 0x5C71</div><div class='add'>+0x493E = 0x5220</div><div class='add'>+0x493F = 0x717D</div><div class='add'>+0x4940 = 0x886B</div><div class='add'>+0x4941 = 0x95EA</div><div class='add'>+0x4942 = 0x9655</div><div class='add'>+0x4943 = 0x64C5</div><div class='add'>+0x4944 = 0x8D61</div><div class='add'>+0x4945 = 0x81B3</div><div class='add'>+0x4946 = 0x5584</div><div class='add'>+0x4947 = 0x6C55</div><div class='add'>+0x4948 = 0x6247</div><div class='add'>+0x4949 = 0x7F2E</div><div class='add'>+0x494A = 0x5892</div><div class='add'>+0x494B = 0x4F24</div><div class='add'>+0x494C = 0x5546</div><div class='add'>+0x494D = 0x8D4F</div><div class='add'>+0x494E = 0x664C</div><div class='add'>+0x494F = 0x4E0A</div><div class='add'>+0x4950 = 0x5C1A</div><div class='add'>+0x4951 = 0x88F3</div><div class='add'>+0x4952 = 0x68A2</div><div class='add'>+0x4953 = 0x634E</div><div class='add'>+0x4954 = 0x7A0D</div><div class='add'>+0x4955 = 0x70E7</div><div class='add'>+0x4956 = 0x828D</div><div class='add'>+0x4957 = 0x52FA</div><div class='add'>+0x4958 = 0x97F6</div><div class='add'>+0x4959 = 0x5C11</div><div class='add'>+0x495A = 0x54E8</div><div class='add'>+0x495B = 0x90B5</div><div class='add'>+0x495C = 0x7ECD</div><div class='add'>+0x495D = 0x5962</div><div class='add'>+0x495E = 0x8D4A</div><div class='add'>+0x495F = 0x86C7</div><div class='add'>+0x4960 = 0x820C</div><div class='add'>+0x4961 = 0x820D</div><div class='add'>+0x4962 = 0x8D66</div><div class='add'>+0x4963 = 0x6444</div><div class='add'>+0x4964 = 0x5C04</div><div class='add'>+0x4965 = 0x6151</div><div class='add'>+0x4966 = 0x6D89</div><div class='add'>+0x4967 = 0x793E</div><div class='add'>+0x4968 = 0x8BBE</div><div class='add'>+0x4969 = 0x7837</div><div class='add'>+0x496A = 0x7533</div><div class='add'>+0x496B = 0x547B</div><div class='add'>+0x496C = 0x4F38</div><div class='add'>+0x496D = 0x8EAB</div><div class='add'>+0x496E = 0x6DF1</div><div class='add'>+0x496F = 0x5A20</div><div class='add'>+0x4970 = 0x7EC5</div><div class='add'>+0x4971 = 0x795E</div><div class='add'>+0x4972 = 0x6C88</div><div class='add'>+0x4973 = 0x5BA1</div><div class='add'>+0x4974 = 0x5A76</div><div class='add'>+0x4975 = 0x751A</div><div class='add'>+0x4976 = 0x80BE</div><div class='add'>+0x4977 = 0x614E</div><div class='add'>+0x4978 = 0x6E17</div><div class='add'>+0x4979 = 0x58F0</div><div class='add'>+0x497A = 0x751F</div><div class='add'>+0x497B = 0x7525</div><div class='add'>+0x497C = 0x7272</div><div class='add'>+0x497D = 0x5347</div><div class='add'>+0x497E = 0x7EF3</div><div class='add'>+0x4A21 = 0x7701</div><div class='add'>+0x4A22 = 0x76DB</div><div class='add'>+0x4A23 = 0x5269</div><div class='add'>+0x4A24 = 0x80DC</div><div class='add'>+0x4A25 = 0x5723</div><div class='add'>+0x4A26 = 0x5E08</div><div class='add'>+0x4A27 = 0x5931</div><div class='add'>+0x4A28 = 0x72EE</div><div class='add'>+0x4A29 = 0x65BD</div><div class='add'>+0x4A2A = 0x6E7F</div><div class='add'>+0x4A2B = 0x8BD7</div><div class='add'>+0x4A2C = 0x5C38</div><div class='add'>+0x4A2D = 0x8671</div><div class='add'>+0x4A2E = 0x5341</div><div class='add'>+0x4A2F = 0x77F3</div><div class='add'>+0x4A30 = 0x62FE</div><div class='add'>+0x4A31 = 0x65F6</div><div class='add'>+0x4A32 = 0x4EC0</div><div class='add'>+0x4A33 = 0x98DF</div><div class='add'>+0x4A34 = 0x8680</div><div class='add'>+0x4A35 = 0x5B9E</div><div class='add'>+0x4A36 = 0x8BC6</div><div class='add'>+0x4A37 = 0x53F2</div><div class='add'>+0x4A38 = 0x77E2</div><div class='add'>+0x4A39 = 0x4F7F</div><div class='add'>+0x4A3A = 0x5C4E</div><div class='add'>+0x4A3B = 0x9A76</div><div class='add'>+0x4A3C = 0x59CB</div><div class='add'>+0x4A3D = 0x5F0F</div><div class='add'>+0x4A3E = 0x793A</div><div class='add'>+0x4A3F = 0x58EB</div><div class='add'>+0x4A40 = 0x4E16</div><div class='add'>+0x4A41 = 0x67FF</div><div class='add'>+0x4A42 = 0x4E8B</div><div class='add'>+0x4A43 = 0x62ED</div><div class='add'>+0x4A44 = 0x8A93</div><div class='add'>+0x4A45 = 0x901D</div><div class='add'>+0x4A46 = 0x52BF</div><div class='add'>+0x4A47 = 0x662F</div><div class='add'>+0x4A48 = 0x55DC</div><div class='add'>+0x4A49 = 0x566C</div><div class='add'>+0x4A4A = 0x9002</div><div class='add'>+0x4A4B = 0x4ED5</div><div class='add'>+0x4A4C = 0x4F8D</div><div class='add'>+0x4A4D = 0x91CA</div><div class='add'>+0x4A4E = 0x9970</div><div class='add'>+0x4A4F = 0x6C0F</div><div class='add'>+0x4A50 = 0x5E02</div><div class='add'>+0x4A51 = 0x6043</div><div class='add'>+0x4A52 = 0x5BA4</div><div class='add'>+0x4A53 = 0x89C6</div><div class='add'>+0x4A54 = 0x8BD5</div><div class='add'>+0x4A55 = 0x6536</div><div class='add'>+0x4A56 = 0x624B</div><div class='add'>+0x4A57 = 0x9996</div><div class='add'>+0x4A58 = 0x5B88</div><div class='add'>+0x4A59 = 0x5BFF</div><div class='add'>+0x4A5A = 0x6388</div><div class='add'>+0x4A5B = 0x552E</div><div class='add'>+0x4A5C = 0x53D7</div><div class='add'>+0x4A5D = 0x7626</div><div class='add'>+0x4A5E = 0x517D</div><div class='add'>+0x4A5F = 0x852C</div><div class='add'>+0x4A60 = 0x67A2</div><div class='add'>+0x4A61 = 0x68B3</div><div class='add'>+0x4A62 = 0x6B8A</div><div class='add'>+0x4A63 = 0x6292</div><div class='add'>+0x4A64 = 0x8F93</div><div class='add'>+0x4A65 = 0x53D4</div><div class='add'>+0x4A66 = 0x8212</div><div class='add'>+0x4A67 = 0x6DD1</div><div class='add'>+0x4A68 = 0x758F</div><div class='add'>+0x4A69 = 0x4E66</div><div class='add'>+0x4A6A = 0x8D4E</div><div class='add'>+0x4A6B = 0x5B70</div><div class='add'>+0x4A6C = 0x719F</div><div class='add'>+0x4A6D = 0x85AF</div><div class='add'>+0x4A6E = 0x6691</div><div class='add'>+0x4A6F = 0x66D9</div><div class='add'>+0x4A70 = 0x7F72</div><div class='add'>+0x4A71 = 0x8700</div><div class='add'>+0x4A72 = 0x9ECD</div><div class='add'>+0x4A73 = 0x9F20</div><div class='add'>+0x4A74 = 0x5C5E</div><div class='add'>+0x4A75 = 0x672F</div><div class='add'>+0x4A76 = 0x8FF0</div><div class='add'>+0x4A77 = 0x6811</div><div class='add'>+0x4A78 = 0x675F</div><div class='add'>+0x4A79 = 0x620D</div><div class='add'>+0x4A7A = 0x7AD6</div><div class='add'>+0x4A7B = 0x5885</div><div class='add'>+0x4A7C = 0x5EB6</div><div class='add'>+0x4A7D = 0x6570</div><div class='add'>+0x4A7E = 0x6F31</div><div class='add'>+0x4B21 = 0x6055</div><div class='add'>+0x4B22 = 0x5237</div><div class='add'>+0x4B23 = 0x800D</div><div class='add'>+0x4B24 = 0x6454</div><div class='add'>+0x4B25 = 0x8870</div><div class='add'>+0x4B26 = 0x7529</div><div class='add'>+0x4B27 = 0x5E05</div><div class='add'>+0x4B28 = 0x6813</div><div class='add'>+0x4B29 = 0x62F4</div><div class='add'>+0x4B2A = 0x971C</div><div class='add'>+0x4B2B = 0x53CC</div><div class='add'>+0x4B2C = 0x723D</div><div class='add'>+0x4B2D = 0x8C01</div><div class='add'>+0x4B2E = 0x6C34</div><div class='add'>+0x4B2F = 0x7761</div><div class='add'>+0x4B30 = 0x7A0E</div><div class='add'>+0x4B31 = 0x542E</div><div class='add'>+0x4B32 = 0x77AC</div><div class='add'>+0x4B33 = 0x987A</div><div class='add'>+0x4B34 = 0x821C</div><div class='add'>+0x4B35 = 0x8BF4</div><div class='add'>+0x4B36 = 0x7855</div><div class='add'>+0x4B37 = 0x6714</div><div class='add'>+0x4B38 = 0x70C1</div><div class='add'>+0x4B39 = 0x65AF</div><div class='add'>+0x4B3A = 0x6495</div><div class='add'>+0x4B3B = 0x5636</div><div class='add'>+0x4B3C = 0x601D</div><div class='add'>+0x4B3D = 0x79C1</div><div class='add'>+0x4B3E = 0x53F8</div><div class='add'>+0x4B3F = 0x4E1D</div><div class='add'>+0x4B40 = 0x6B7B</div><div class='add'>+0x4B41 = 0x8086</div><div class='add'>+0x4B42 = 0x5BFA</div><div class='add'>+0x4B43 = 0x55E3</div><div class='add'>+0x4B44 = 0x56DB</div><div class='add'>+0x4B45 = 0x4F3A</div><div class='add'>+0x4B46 = 0x4F3C</div><div class='add'>+0x4B47 = 0x9972</div><div class='add'>+0x4B48 = 0x5DF3</div><div class='add'>+0x4B49 = 0x677E</div><div class='add'>+0x4B4A = 0x8038</div><div class='add'>+0x4B4B = 0x6002</div><div class='add'>+0x4B4C = 0x9882</div><div class='add'>+0x4B4D = 0x9001</div><div class='add'>+0x4B4E = 0x5B8B</div><div class='add'>+0x4B4F = 0x8BBC</div><div class='add'>+0x4B50 = 0x8BF5</div><div class='add'>+0x4B51 = 0x641C</div><div class='add'>+0x4B52 = 0x8258</div><div class='add'>+0x4B53 = 0x64DE</div><div class='add'>+0x4B54 = 0x55FD</div><div class='add'>+0x4B55 = 0x82CF</div><div class='add'>+0x4B56 = 0x9165</div><div class='add'>+0x4B57 = 0x4FD7</div><div class='add'>+0x4B58 = 0x7D20</div><div class='add'>+0x4B59 = 0x901F</div><div class='add'>+0x4B5A = 0x7C9F</div><div class='add'>+0x4B5B = 0x50F3</div><div class='add'>+0x4B5C = 0x5851</div><div class='add'>+0x4B5D = 0x6EAF</div><div class='add'>+0x4B5E = 0x5BBF</div><div class='add'>+0x4B5F = 0x8BC9</div><div class='add'>+0x4B60 = 0x8083</div><div class='add'>+0x4B61 = 0x9178</div><div class='add'>+0x4B62 = 0x849C</div><div class='add'>+0x4B63 = 0x7B97</div><div class='add'>+0x4B64 = 0x867D</div><div class='add'>+0x4B65 = 0x968B</div><div class='add'>+0x4B66 = 0x968F</div><div class='add'>+0x4B67 = 0x7EE5</div><div class='add'>+0x4B68 = 0x9AD3</div><div class='add'>+0x4B69 = 0x788E</div><div class='add'>+0x4B6A = 0x5C81</div><div class='add'>+0x4B6B = 0x7A57</div><div class='add'>+0x4B6C = 0x9042</div><div class='add'>+0x4B6D = 0x96A7</div><div class='add'>+0x4B6E = 0x795F</div><div class='add'>+0x4B6F = 0x5B59</div><div class='add'>+0x4B70 = 0x635F</div><div class='add'>+0x4B71 = 0x7B0B</div><div class='add'>+0x4B72 = 0x84D1</div><div class='add'>+0x4B73 = 0x68AD</div><div class='add'>+0x4B74 = 0x5506</div><div class='add'>+0x4B75 = 0x7F29</div><div class='add'>+0x4B76 = 0x7410</div><div class='add'>+0x4B77 = 0x7D22</div><div class='add'>+0x4B78 = 0x9501</div><div class='add'>+0x4B79 = 0x6240</div><div class='add'>+0x4B7A = 0x584C</div><div class='add'>+0x4B7B = 0x4ED6</div><div class='add'>+0x4B7C = 0x5B83</div><div class='add'>+0x4B7D = 0x5979</div><div class='add'>+0x4B7E = 0x5854</div><div class='add'>+0x4C21 = 0x736D</div><div class='add'>+0x4C22 = 0x631E</div><div class='add'>+0x4C23 = 0x8E4B</div><div class='add'>+0x4C24 = 0x8E0F</div><div class='add'>+0x4C25 = 0x80CE</div><div class='add'>+0x4C26 = 0x82D4</div><div class='add'>+0x4C27 = 0x62AC</div><div class='add'>+0x4C28 = 0x53F0</div><div class='add'>+0x4C29 = 0x6CF0</div><div class='add'>+0x4C2A = 0x915E</div><div class='add'>+0x4C2B = 0x592A</div><div class='add'>+0x4C2C = 0x6001</div><div class='add'>+0x4C2D = 0x6C70</div><div class='add'>+0x4C2E = 0x574D</div><div class='add'>+0x4C2F = 0x644A</div><div class='add'>+0x4C30 = 0x8D2A</div><div class='add'>+0x4C31 = 0x762B</div><div class='add'>+0x4C32 = 0x6EE9</div><div class='add'>+0x4C33 = 0x575B</div><div class='add'>+0x4C34 = 0x6A80</div><div class='add'>+0x4C35 = 0x75F0</div><div class='add'>+0x4C36 = 0x6F6D</div><div class='add'>+0x4C37 = 0x8C2D</div><div class='add'>+0x4C38 = 0x8C08</div><div class='add'>+0x4C39 = 0x5766</div><div class='add'>+0x4C3A = 0x6BEF</div><div class='add'>+0x4C3B = 0x8892</div><div class='add'>+0x4C3C = 0x78B3</div><div class='add'>+0x4C3D = 0x63A2</div><div class='add'>+0x4C3E = 0x53F9</div><div class='add'>+0x4C3F = 0x70AD</div><div class='add'>+0x4C40 = 0x6C64</div><div class='add'>+0x4C41 = 0x5858</div><div class='add'>+0x4C42 = 0x642A</div><div class='add'>+0x4C43 = 0x5802</div><div class='add'>+0x4C44 = 0x68E0</div><div class='add'>+0x4C45 = 0x819B</div><div class='add'>+0x4C46 = 0x5510</div><div class='add'>+0x4C47 = 0x7CD6</div><div class='add'>+0x4C48 = 0x5018</div><div class='add'>+0x4C49 = 0x8EBA</div><div class='add'>+0x4C4A = 0x6DCC</div><div class='add'>+0x4C4B = 0x8D9F</div><div class='add'>+0x4C4C = 0x70EB</div><div class='add'>+0x4C4D = 0x638F</div><div class='add'>+0x4C4E = 0x6D9B</div><div class='add'>+0x4C4F = 0x6ED4</div><div class='add'>+0x4C50 = 0x7EE6</div><div class='add'>+0x4C51 = 0x8404</div><div class='add'>+0x4C52 = 0x6843</div><div class='add'>+0x4C53 = 0x9003</div><div class='add'>+0x4C54 = 0x6DD8</div><div class='add'>+0x4C55 = 0x9676</div><div class='add'>+0x4C56 = 0x8BA8</div><div class='add'>+0x4C57 = 0x5957</div><div class='add'>+0x4C58 = 0x7279</div><div class='add'>+0x4C59 = 0x85E4</div><div class='add'>+0x4C5A = 0x817E</div><div class='add'>+0x4C5B = 0x75BC</div><div class='add'>+0x4C5C = 0x8A8A</div><div class='add'>+0x4C5D = 0x68AF</div><div class='add'>+0x4C5E = 0x5254</div><div class='add'>+0x4C5F = 0x8E22</div><div class='add'>+0x4C60 = 0x9511</div><div class='add'>+0x4C61 = 0x63D0</div><div class='add'>+0x4C62 = 0x9898</div><div class='add'>+0x4C63 = 0x8E44</div><div class='add'>+0x4C64 = 0x557C</div><div class='add'>+0x4C65 = 0x4F53</div><div class='add'>+0x4C66 = 0x66FF</div><div class='add'>+0x4C67 = 0x568F</div><div class='add'>+0x4C68 = 0x60D5</div><div class='add'>+0x4C69 = 0x6D95</div><div class='add'>+0x4C6A = 0x5243</div><div class='add'>+0x4C6B = 0x5C49</div><div class='add'>+0x4C6C = 0x5929</div><div class='add'>+0x4C6D = 0x6DFB</div><div class='add'>+0x4C6E = 0x586B</div><div class='add'>+0x4C6F = 0x7530</div><div class='add'>+0x4C70 = 0x751C</div><div class='add'>+0x4C71 = 0x606C</div><div class='add'>+0x4C72 = 0x8214</div><div class='add'>+0x4C73 = 0x8146</div><div class='add'>+0x4C74 = 0x6311</div><div class='add'>+0x4C75 = 0x6761</div><div class='add'>+0x4C76 = 0x8FE2</div><div class='add'>+0x4C77 = 0x773A</div><div class='add'>+0x4C78 = 0x8DF3</div><div class='add'>+0x4C79 = 0x8D34</div><div class='add'>+0x4C7A = 0x94C1</div><div class='add'>+0x4C7B = 0x5E16</div><div class='add'>+0x4C7C = 0x5385</div><div class='add'>+0x4C7D = 0x542C</div><div class='add'>+0x4C7E = 0x70C3</div><div class='add'>+0x4D21 = 0x6C40</div><div class='add'>+0x4D22 = 0x5EF7</div><div class='add'>+0x4D23 = 0x505C</div><div class='add'>+0x4D24 = 0x4EAD</div><div class='add'>+0x4D25 = 0x5EAD</div><div class='add'>+0x4D26 = 0x633A</div><div class='add'>+0x4D27 = 0x8247</div><div class='add'>+0x4D28 = 0x901A</div><div class='add'>+0x4D29 = 0x6850</div><div class='add'>+0x4D2A = 0x916E</div><div class='add'>+0x4D2B = 0x77B3</div><div class='add'>+0x4D2C = 0x540C</div><div class='add'>+0x4D2D = 0x94DC</div><div class='add'>+0x4D2E = 0x5F64</div><div class='add'>+0x4D2F = 0x7AE5</div><div class='add'>+0x4D30 = 0x6876</div><div class='add'>+0x4D31 = 0x6345</div><div class='add'>+0x4D32 = 0x7B52</div><div class='add'>+0x4D33 = 0x7EDF</div><div class='add'>+0x4D34 = 0x75DB</div><div class='add'>+0x4D35 = 0x5077</div><div class='add'>+0x4D36 = 0x6295</div><div class='add'>+0x4D37 = 0x5934</div><div class='add'>+0x4D38 = 0x900F</div><div class='add'>+0x4D39 = 0x51F8</div><div class='add'>+0x4D3A = 0x79C3</div><div class='add'>+0x4D3B = 0x7A81</div><div class='add'>+0x4D3C = 0x56FE</div><div class='add'>+0x4D3D = 0x5F92</div><div class='add'>+0x4D3E = 0x9014</div><div class='add'>+0x4D3F = 0x6D82</div><div class='add'>+0x4D40 = 0x5C60</div><div class='add'>+0x4D41 = 0x571F</div><div class='add'>+0x4D42 = 0x5410</div><div class='add'>+0x4D43 = 0x5154</div><div class='add'>+0x4D44 = 0x6E4D</div><div class='add'>+0x4D45 = 0x56E2</div><div class='add'>+0x4D46 = 0x63A8</div><div class='add'>+0x4D47 = 0x9893</div><div class='add'>+0x4D48 = 0x817F</div><div class='add'>+0x4D49 = 0x8715</div><div class='add'>+0x4D4A = 0x892A</div><div class='add'>+0x4D4B = 0x9000</div><div class='add'>+0x4D4C = 0x541E</div><div class='add'>+0x4D4D = 0x5C6F</div><div class='add'>+0x4D4E = 0x81C0</div><div class='add'>+0x4D4F = 0x62D6</div><div class='add'>+0x4D50 = 0x6258</div><div class='add'>+0x4D51 = 0x8131</div><div class='add'>+0x4D52 = 0x9E35</div><div class='add'>+0x4D53 = 0x9640</div><div class='add'>+0x4D54 = 0x9A6E</div><div class='add'>+0x4D55 = 0x9A7C</div><div class='add'>+0x4D56 = 0x692D</div><div class='add'>+0x4D57 = 0x59A5</div><div class='add'>+0x4D58 = 0x62D3</div><div class='add'>+0x4D59 = 0x553E</div><div class='add'>+0x4D5A = 0x6316</div><div class='add'>+0x4D5B = 0x54C7</div><div class='add'>+0x4D5C = 0x86D9</div><div class='add'>+0x4D5D = 0x6D3C</div><div class='add'>+0x4D5E = 0x5A03</div><div class='add'>+0x4D5F = 0x74E6</div><div class='add'>+0x4D60 = 0x889C</div><div class='add'>+0x4D61 = 0x6B6A</div><div class='add'>+0x4D62 = 0x5916</div><div class='add'>+0x4D63 = 0x8C4C</div><div class='add'>+0x4D64 = 0x5F2F</div><div class='add'>+0x4D65 = 0x6E7E</div><div class='add'>+0x4D66 = 0x73A9</div><div class='add'>+0x4D67 = 0x987D</div><div class='add'>+0x4D68 = 0x4E38</div><div class='add'>+0x4D69 = 0x70F7</div><div class='add'>+0x4D6A = 0x5B8C</div><div class='add'>+0x4D6B = 0x7897</div><div class='add'>+0x4D6C = 0x633D</div><div class='add'>+0x4D6D = 0x665A</div><div class='add'>+0x4D6E = 0x7696</div><div class='add'>+0x4D6F = 0x60CB</div><div class='add'>+0x4D70 = 0x5B9B</div><div class='add'>+0x4D71 = 0x5A49</div><div class='add'>+0x4D72 = 0x4E07</div><div class='add'>+0x4D73 = 0x8155</div><div class='add'>+0x4D74 = 0x6C6A</div><div class='add'>+0x4D75 = 0x738B</div><div class='add'>+0x4D76 = 0x4EA1</div><div class='add'>+0x4D77 = 0x6789</div><div class='add'>+0x4D78 = 0x7F51</div><div class='add'>+0x4D79 = 0x5F80</div><div class='add'>+0x4D7A = 0x65FA</div><div class='add'>+0x4D7B = 0x671B</div><div class='add'>+0x4D7C = 0x5FD8</div><div class='add'>+0x4D7D = 0x5984</div><div class='add'>+0x4D7E = 0x5A01</div><div class='add'>+0x4E21 = 0x5DCD</div><div class='add'>+0x4E22 = 0x5FAE</div><div class='add'>+0x4E23 = 0x5371</div><div class='add'>+0x4E24 = 0x97E6</div><div class='add'>+0x4E25 = 0x8FDD</div><div class='add'>+0x4E26 = 0x6845</div><div class='add'>+0x4E27 = 0x56F4</div><div class='add'>+0x4E28 = 0x552F</div><div class='add'>+0x4E29 = 0x60DF</div><div class='add'>+0x4E2A = 0x4E3A</div><div class='add'>+0x4E2B = 0x6F4D</div><div class='add'>+0x4E2C = 0x7EF4</div><div class='add'>+0x4E2D = 0x82C7</div><div class='add'>+0x4E2E = 0x840E</div><div class='add'>+0x4E2F = 0x59D4</div><div class='add'>+0x4E30 = 0x4F1F</div><div class='add'>+0x4E31 = 0x4F2A</div><div class='add'>+0x4E32 = 0x5C3E</div><div class='add'>+0x4E33 = 0x7EAC</div><div class='add'>+0x4E34 = 0x672A</div><div class='add'>+0x4E35 = 0x851A</div><div class='add'>+0x4E36 = 0x5473</div><div class='add'>+0x4E37 = 0x754F</div><div class='add'>+0x4E38 = 0x80C3</div><div class='add'>+0x4E39 = 0x5582</div><div class='add'>+0x4E3A = 0x9B4F</div><div class='add'>+0x4E3B = 0x4F4D</div><div class='add'>+0x4E3C = 0x6E2D</div><div class='add'>+0x4E3D = 0x8C13</div><div class='add'>+0x4E3E = 0x5C09</div><div class='add'>+0x4E3F = 0x6170</div><div class='add'>+0x4E40 = 0x536B</div><div class='add'>+0x4E41 = 0x761F</div><div class='add'>+0x4E42 = 0x6E29</div><div class='add'>+0x4E43 = 0x868A</div><div class='add'>+0x4E44 = 0x6587</div><div class='add'>+0x4E45 = 0x95FB</div><div class='add'>+0x4E46 = 0x7EB9</div><div class='add'>+0x4E47 = 0x543B</div><div class='add'>+0x4E48 = 0x7A33</div><div class='add'>+0x4E49 = 0x7D0A</div><div class='add'>+0x4E4A = 0x95EE</div><div class='add'>+0x4E4B = 0x55E1</div><div class='add'>+0x4E4C = 0x7FC1</div><div class='add'>+0x4E4D = 0x74EE</div><div class='add'>+0x4E4E = 0x631D</div><div class='add'>+0x4E4F = 0x8717</div><div class='add'>+0x4E50 = 0x6DA1</div><div class='add'>+0x4E51 = 0x7A9D</div><div class='add'>+0x4E52 = 0x6211</div><div class='add'>+0x4E53 = 0x65A1</div><div class='add'>+0x4E54 = 0x5367</div><div class='add'>+0x4E55 = 0x63E1</div><div class='add'>+0x4E56 = 0x6C83</div><div class='add'>+0x4E57 = 0x5DEB</div><div class='add'>+0x4E58 = 0x545C</div><div class='add'>+0x4E59 = 0x94A8</div><div class='add'>+0x4E5A = 0x4E4C</div><div class='add'>+0x4E5B = 0x6C61</div><div class='add'>+0x4E5C = 0x8BEC</div><div class='add'>+0x4E5D = 0x5C4B</div><div class='add'>+0x4E5E = 0x65E0</div><div class='add'>+0x4E5F = 0x829C</div><div class='add'>+0x4E60 = 0x68A7</div><div class='add'>+0x4E61 = 0x543E</div><div class='add'>+0x4E62 = 0x5434</div><div class='add'>+0x4E63 = 0x6BCB</div><div class='add'>+0x4E64 = 0x6B66</div><div class='add'>+0x4E65 = 0x4E94</div><div class='add'>+0x4E66 = 0x6342</div><div class='add'>+0x4E67 = 0x5348</div><div class='add'>+0x4E68 = 0x821E</div><div class='add'>+0x4E69 = 0x4F0D</div><div class='add'>+0x4E6A = 0x4FAE</div><div class='add'>+0x4E6B = 0x575E</div><div class='add'>+0x4E6C = 0x620A</div><div class='add'>+0x4E6D = 0x96FE</div><div class='add'>+0x4E6E = 0x6664</div><div class='add'>+0x4E6F = 0x7269</div><div class='add'>+0x4E70 = 0x52FF</div><div class='add'>+0x4E71 = 0x52A1</div><div class='add'>+0x4E72 = 0x609F</div><div class='add'>+0x4E73 = 0x8BEF</div><div class='add'>+0x4E74 = 0x6614</div><div class='add'>+0x4E75 = 0x7199</div><div class='add'>+0x4E76 = 0x6790</div><div class='add'>+0x4E77 = 0x897F</div><div class='add'>+0x4E78 = 0x7852</div><div class='add'>+0x4E79 = 0x77FD</div><div class='add'>+0x4E7A = 0x6670</div><div class='add'>+0x4E7B = 0x563B</div><div class='add'>+0x4E7C = 0x5438</div><div class='add'>+0x4E7D = 0x9521</div><div class='add'>+0x4E7E = 0x727A</div><div class='add'>+0x4F21 = 0x7A00</div><div class='add'>+0x4F22 = 0x606F</div><div class='add'>+0x4F23 = 0x5E0C</div><div class='add'>+0x4F24 = 0x6089</div><div class='add'>+0x4F25 = 0x819D</div><div class='add'>+0x4F26 = 0x5915</div><div class='add'>+0x4F27 = 0x60DC</div><div class='add'>+0x4F28 = 0x7184</div><div class='add'>+0x4F29 = 0x70EF</div><div class='add'>+0x4F2A = 0x6EAA</div><div class='add'>+0x4F2B = 0x6C50</div><div class='add'>+0x4F2C = 0x7280</div><div class='add'>+0x4F2D = 0x6A84</div><div class='add'>+0x4F2E = 0x88AD</div><div class='add'>+0x4F2F = 0x5E2D</div><div class='add'>+0x4F30 = 0x4E60</div><div class='add'>+0x4F31 = 0x5AB3</div><div class='add'>+0x4F32 = 0x559C</div><div class='add'>+0x4F33 = 0x94E3</div><div class='add'>+0x4F34 = 0x6D17</div><div class='add'>+0x4F35 = 0x7CFB</div><div class='add'>+0x4F36 = 0x9699</div><div class='add'>+0x4F37 = 0x620F</div><div class='add'>+0x4F38 = 0x7EC6</div><div class='add'>+0x4F39 = 0x778E</div><div class='add'>+0x4F3A = 0x867E</div><div class='add'>+0x4F3B = 0x5323</div><div class='add'>+0x4F3C = 0x971E</div><div class='add'>+0x4F3D = 0x8F96</div><div class='add'>+0x4F3E = 0x6687</div><div class='add'>+0x4F3F = 0x5CE1</div><div class='add'>+0x4F40 = 0x4FA0</div><div class='add'>+0x4F41 = 0x72ED</div><div class='add'>+0x4F42 = 0x4E0B</div><div class='add'>+0x4F43 = 0x53A6</div><div class='add'>+0x4F44 = 0x590F</div><div class='add'>+0x4F45 = 0x5413</div><div class='add'>+0x4F46 = 0x6380</div><div class='add'>+0x4F47 = 0x9528</div><div class='add'>+0x4F48 = 0x5148</div><div class='add'>+0x4F49 = 0x4ED9</div><div class='add'>+0x4F4A = 0x9C9C</div><div class='add'>+0x4F4B = 0x7EA4</div><div class='add'>+0x4F4C = 0x54B8</div><div class='add'>+0x4F4D = 0x8D24</div><div class='add'>+0x4F4E = 0x8854</div><div class='add'>+0x4F4F = 0x8237</div><div class='add'>+0x4F50 = 0x95F2</div><div class='add'>+0x4F51 = 0x6D8E</div><div class='add'>+0x4F52 = 0x5F26</div><div class='add'>+0x4F53 = 0x5ACC</div><div class='add'>+0x4F54 = 0x663E</div><div class='add'>+0x4F55 = 0x9669</div><div class='add'>+0x4F56 = 0x73B0</div><div class='add'>+0x4F57 = 0x732E</div><div class='add'>+0x4F58 = 0x53BF</div><div class='add'>+0x4F59 = 0x817A</div><div class='add'>+0x4F5A = 0x9985</div><div class='add'>+0x4F5B = 0x7FA1</div><div class='add'>+0x4F5C = 0x5BAA</div><div class='add'>+0x4F5D = 0x9677</div><div class='add'>+0x4F5E = 0x9650</div><div class='add'>+0x4F5F = 0x7EBF</div><div class='add'>+0x4F60 = 0x76F8</div><div class='add'>+0x4F61 = 0x53A2</div><div class='add'>+0x4F62 = 0x9576</div><div class='add'>+0x4F63 = 0x9999</div><div class='add'>+0x4F64 = 0x7BB1</div><div class='add'>+0x4F65 = 0x8944</div><div class='add'>+0x4F66 = 0x6E58</div><div class='add'>+0x4F67 = 0x4E61</div><div class='add'>+0x4F68 = 0x7FD4</div><div class='add'>+0x4F69 = 0x7965</div><div class='add'>+0x4F6A = 0x8BE6</div><div class='add'>+0x4F6B = 0x60F3</div><div class='add'>+0x4F6C = 0x54CD</div><div class='add'>+0x4F6D = 0x4EAB</div><div class='add'>+0x4F6E = 0x9879</div><div class='add'>+0x4F6F = 0x5DF7</div><div class='add'>+0x4F70 = 0x6A61</div><div class='add'>+0x4F71 = 0x50CF</div><div class='add'>+0x4F72 = 0x5411</div><div class='add'>+0x4F73 = 0x8C61</div><div class='add'>+0x4F74 = 0x8427</div><div class='add'>+0x4F75 = 0x785D</div><div class='add'>+0x4F76 = 0x9704</div><div class='add'>+0x4F77 = 0x524A</div><div class='add'>+0x4F78 = 0x54EE</div><div class='add'>+0x4F79 = 0x56A3</div><div class='add'>+0x4F7A = 0x9500</div><div class='add'>+0x4F7B = 0x6D88</div><div class='add'>+0x4F7C = 0x5BB5</div><div class='add'>+0x4F7D = 0x6DC6</div><div class='add'>+0x4F7E = 0x6653</div><div class='add'>+0x5021 = 0x5C0F</div><div class='add'>+0x5022 = 0x5B5D</div><div class='add'>+0x5023 = 0x6821</div><div class='add'>+0x5024 = 0x8096</div><div class='add'>+0x5025 = 0x5578</div><div class='add'>+0x5026 = 0x7B11</div><div class='add'>+0x5027 = 0x6548</div><div class='add'>+0x5028 = 0x6954</div><div class='add'>+0x5029 = 0x4E9B</div><div class='add'>+0x502A = 0x6B47</div><div class='add'>+0x502B = 0x874E</div><div class='add'>+0x502C = 0x978B</div><div class='add'>+0x502D = 0x534F</div><div class='add'>+0x502E = 0x631F</div><div class='add'>+0x502F = 0x643A</div><div class='add'>+0x5030 = 0x90AA</div><div class='add'>+0x5031 = 0x659C</div><div class='add'>+0x5032 = 0x80C1</div><div class='add'>+0x5033 = 0x8C10</div><div class='add'>+0x5034 = 0x5199</div><div class='add'>+0x5035 = 0x68B0</div><div class='add'>+0x5036 = 0x5378</div><div class='add'>+0x5037 = 0x87F9</div><div class='add'>+0x5038 = 0x61C8</div><div class='add'>+0x5039 = 0x6CC4</div><div class='add'>+0x503A = 0x6CFB</div><div class='add'>+0x503B = 0x8C22</div><div class='add'>+0x503C = 0x5C51</div><div class='add'>+0x503D = 0x85AA</div><div class='add'>+0x503E = 0x82AF</div><div class='add'>+0x503F = 0x950C</div><div class='add'>+0x5040 = 0x6B23</div><div class='add'>+0x5041 = 0x8F9B</div><div class='add'>+0x5042 = 0x65B0</div><div class='add'>+0x5043 = 0x5FFB</div><div class='add'>+0x5044 = 0x5FC3</div><div class='add'>+0x5045 = 0x4FE1</div><div class='add'>+0x5046 = 0x8845</div><div class='add'>+0x5047 = 0x661F</div><div class='add'>+0x5048 = 0x8165</div><div class='add'>+0x5049 = 0x7329</div><div class='add'>+0x504A = 0x60FA</div><div class='add'>+0x504B = 0x5174</div><div class='add'>+0x504C = 0x5211</div><div class='add'>+0x504D = 0x578B</div><div class='add'>+0x504E = 0x5F62</div><div class='add'>+0x504F = 0x90A2</div><div class='add'>+0x5050 = 0x884C</div><div class='add'>+0x5051 = 0x9192</div><div class='add'>+0x5052 = 0x5E78</div><div class='add'>+0x5053 = 0x674F</div><div class='add'>+0x5054 = 0x6027</div><div class='add'>+0x5055 = 0x59D3</div><div class='add'>+0x5056 = 0x5144</div><div class='add'>+0x5057 = 0x51F6</div><div class='add'>+0x5058 = 0x80F8</div><div class='add'>+0x5059 = 0x5308</div><div class='add'>+0x505A = 0x6C79</div><div class='add'>+0x505B = 0x96C4</div><div class='add'>+0x505C = 0x718A</div><div class='add'>+0x505D = 0x4F11</div><div class='add'>+0x505E = 0x4FEE</div><div class='add'>+0x505F = 0x7F9E</div><div class='add'>+0x5060 = 0x673D</div><div class='add'>+0x5061 = 0x55C5</div><div class='add'>+0x5062 = 0x9508</div><div class='add'>+0x5063 = 0x79C0</div><div class='add'>+0x5064 = 0x8896</div><div class='add'>+0x5065 = 0x7EE3</div><div class='add'>+0x5066 = 0x589F</div><div class='add'>+0x5067 = 0x620C</div><div class='add'>+0x5068 = 0x9700</div><div class='add'>+0x5069 = 0x865A</div><div class='add'>+0x506A = 0x5618</div><div class='add'>+0x506B = 0x987B</div><div class='add'>+0x506C = 0x5F90</div><div class='add'>+0x506D = 0x8BB8</div><div class='add'>+0x506E = 0x84C4</div><div class='add'>+0x506F = 0x9157</div><div class='add'>+0x5070 = 0x53D9</div><div class='add'>+0x5071 = 0x65ED</div><div class='add'>+0x5072 = 0x5E8F</div><div class='add'>+0x5073 = 0x755C</div><div class='add'>+0x5074 = 0x6064</div><div class='add'>+0x5075 = 0x7D6E</div><div class='add'>+0x5076 = 0x5A7F</div><div class='add'>+0x5077 = 0x7EEA</div><div class='add'>+0x5078 = 0x7EED</div><div class='add'>+0x5079 = 0x8F69</div><div class='add'>+0x507A = 0x55A7</div><div class='add'>+0x507B = 0x5BA3</div><div class='add'>+0x507C = 0x60AC</div><div class='add'>+0x507D = 0x65CB</div><div class='add'>+0x507E = 0x7384</div><div class='add'>+0x5121 = 0x9009</div><div class='add'>+0x5122 = 0x7663</div><div class='add'>+0x5123 = 0x7729</div><div class='add'>+0x5124 = 0x7EDA</div><div class='add'>+0x5125 = 0x9774</div><div class='add'>+0x5126 = 0x859B</div><div class='add'>+0x5127 = 0x5B66</div><div class='add'>+0x5128 = 0x7A74</div><div class='add'>+0x5129 = 0x96EA</div><div class='add'>+0x512A = 0x8840</div><div class='add'>+0x512B = 0x52CB</div><div class='add'>+0x512C = 0x718F</div><div class='add'>+0x512D = 0x5FAA</div><div class='add'>+0x512E = 0x65EC</div><div class='add'>+0x512F = 0x8BE2</div><div class='add'>+0x5130 = 0x5BFB</div><div class='add'>+0x5131 = 0x9A6F</div><div class='add'>+0x5132 = 0x5DE1</div><div class='add'>+0x5133 = 0x6B89</div><div class='add'>+0x5134 = 0x6C5B</div><div class='add'>+0x5135 = 0x8BAD</div><div class='add'>+0x5136 = 0x8BAF</div><div class='add'>+0x5137 = 0x900A</div><div class='add'>+0x5138 = 0x8FC5</div><div class='add'>+0x5139 = 0x538B</div><div class='add'>+0x513A = 0x62BC</div><div class='add'>+0x513B = 0x9E26</div><div class='add'>+0x513C = 0x9E2D</div><div class='add'>+0x513D = 0x5440</div><div class='add'>+0x513E = 0x4E2B</div><div class='add'>+0x513F = 0x82BD</div><div class='add'>+0x5140 = 0x7259</div><div class='add'>+0x5141 = 0x869C</div><div class='add'>+0x5142 = 0x5D16</div><div class='add'>+0x5143 = 0x8859</div><div class='add'>+0x5144 = 0x6DAF</div><div class='add'>+0x5145 = 0x96C5</div><div class='add'>+0x5146 = 0x54D1</div><div class='add'>+0x5147 = 0x4E9A</div><div class='add'>+0x5148 = 0x8BB6</div><div class='add'>+0x5149 = 0x7109</div><div class='add'>+0x514A = 0x54BD</div><div class='add'>+0x514B = 0x9609</div><div class='add'>+0x514C = 0x70DF</div><div class='add'>+0x514D = 0x6DF9</div><div class='add'>+0x514E = 0x76D0</div><div class='add'>+0x514F = 0x4E25</div><div class='add'>+0x5150 = 0x7814</div><div class='add'>+0x5151 = 0x8712</div><div class='add'>+0x5152 = 0x5CA9</div><div class='add'>+0x5153 = 0x5EF6</div><div class='add'>+0x5154 = 0x8A00</div><div class='add'>+0x5155 = 0x989C</div><div class='add'>+0x5156 = 0x960E</div><div class='add'>+0x5157 = 0x708E</div><div class='add'>+0x5158 = 0x6CBF</div><div class='add'>+0x5159 = 0x5944</div><div class='add'>+0x515A = 0x63A9</div><div class='add'>+0x515B = 0x773C</div><div class='add'>+0x515C = 0x884D</div><div class='add'>+0x515D = 0x6F14</div><div class='add'>+0x515E = 0x8273</div><div class='add'>+0x515F = 0x5830</div><div class='add'>+0x5160 = 0x71D5</div><div class='add'>+0x5161 = 0x538C</div><div class='add'>+0x5162 = 0x781A</div><div class='add'>+0x5163 = 0x96C1</div><div class='add'>+0x5164 = 0x5501</div><div class='add'>+0x5165 = 0x5F66</div><div class='add'>+0x5166 = 0x7130</div><div class='add'>+0x5167 = 0x5BB4</div><div class='add'>+0x5168 = 0x8C1A</div><div class='add'>+0x5169 = 0x9A8C</div><div class='add'>+0x516A = 0x6B83</div><div class='add'>+0x516B = 0x592E</div><div class='add'>+0x516C = 0x9E2F</div><div class='add'>+0x516D = 0x79E7</div><div class='add'>+0x516E = 0x6768</div><div class='add'>+0x516F = 0x626C</div><div class='add'>+0x5170 = 0x4F6F</div><div class='add'>+0x5171 = 0x75A1</div><div class='add'>+0x5172 = 0x7F8A</div><div class='add'>+0x5173 = 0x6D0B</div><div class='add'>+0x5174 = 0x9633</div><div class='add'>+0x5175 = 0x6C27</div><div class='add'>+0x5176 = 0x4EF0</div><div class='add'>+0x5177 = 0x75D2</div><div class='add'>+0x5178 = 0x517B</div><div class='add'>+0x5179 = 0x6837</div><div class='add'>+0x517A = 0x6F3E</div><div class='add'>+0x517B = 0x9080</div><div class='add'>+0x517C = 0x8170</div><div class='add'>+0x517D = 0x5996</div><div class='add'>+0x517E = 0x7476</div><div class='add'>+0x5221 = 0x6447</div><div class='add'>+0x5222 = 0x5C27</div><div class='add'>+0x5223 = 0x9065</div><div class='add'>+0x5224 = 0x7A91</div><div class='add'>+0x5225 = 0x8C23</div><div class='add'>+0x5226 = 0x59DA</div><div class='add'>+0x5227 = 0x54AC</div><div class='add'>+0x5228 = 0x8200</div><div class='add'>+0x5229 = 0x836F</div><div class='add'>+0x522A = 0x8981</div><div class='add'>+0x522B = 0x8000</div><div class='add'>+0x522C = 0x6930</div><div class='add'>+0x522D = 0x564E</div><div class='add'>+0x522E = 0x8036</div><div class='add'>+0x522F = 0x7237</div><div class='add'>+0x5230 = 0x91CE</div><div class='add'>+0x5231 = 0x51B6</div><div class='add'>+0x5232 = 0x4E5F</div><div class='add'>+0x5233 = 0x9875</div><div class='add'>+0x5234 = 0x6396</div><div class='add'>+0x5235 = 0x4E1A</div><div class='add'>+0x5236 = 0x53F6</div><div class='add'>+0x5237 = 0x66F3</div><div class='add'>+0x5238 = 0x814B</div><div class='add'>+0x5239 = 0x591C</div><div class='add'>+0x523A = 0x6DB2</div><div class='add'>+0x523B = 0x4E00</div><div class='add'>+0x523C = 0x58F9</div><div class='add'>+0x523D = 0x533B</div><div class='add'>+0x523E = 0x63D6</div><div class='add'>+0x523F = 0x94F1</div><div class='add'>+0x5240 = 0x4F9D</div><div class='add'>+0x5241 = 0x4F0A</div><div class='add'>+0x5242 = 0x8863</div><div class='add'>+0x5243 = 0x9890</div><div class='add'>+0x5244 = 0x5937</div><div class='add'>+0x5245 = 0x9057</div><div class='add'>+0x5246 = 0x79FB</div><div class='add'>+0x5247 = 0x4EEA</div><div class='add'>+0x5248 = 0x80F0</div><div class='add'>+0x5249 = 0x7591</div><div class='add'>+0x524A = 0x6C82</div><div class='add'>+0x524B = 0x5B9C</div><div class='add'>+0x524C = 0x59E8</div><div class='add'>+0x524D = 0x5F5D</div><div class='add'>+0x524E = 0x6905</div><div class='add'>+0x524F = 0x8681</div><div class='add'>+0x5250 = 0x501A</div><div class='add'>+0x5251 = 0x5DF2</div><div class='add'>+0x5252 = 0x4E59</div><div class='add'>+0x5253 = 0x77E3</div><div class='add'>+0x5254 = 0x4EE5</div><div class='add'>+0x5255 = 0x827A</div><div class='add'>+0x5256 = 0x6291</div><div class='add'>+0x5257 = 0x6613</div><div class='add'>+0x5258 = 0x9091</div><div class='add'>+0x5259 = 0x5C79</div><div class='add'>+0x525A = 0x4EBF</div><div class='add'>+0x525B = 0x5F79</div><div class='add'>+0x525C = 0x81C6</div><div class='add'>+0x525D = 0x9038</div><div class='add'>+0x525E = 0x8084</div><div class='add'>+0x525F = 0x75AB</div><div class='add'>+0x5260 = 0x4EA6</div><div class='add'>+0x5261 = 0x88D4</div><div class='add'>+0x5262 = 0x610F</div><div class='add'>+0x5263 = 0x6BC5</div><div class='add'>+0x5264 = 0x5FC6</div><div class='add'>+0x5265 = 0x4E49</div><div class='add'>+0x5266 = 0x76CA</div><div class='add'>+0x5267 = 0x6EA2</div><div class='add'>+0x5268 = 0x8BE3</div><div class='add'>+0x5269 = 0x8BAE</div><div class='add'>+0x526A = 0x8C0A</div><div class='add'>+0x526B = 0x8BD1</div><div class='add'>+0x526C = 0x5F02</div><div class='add'>+0x526D = 0x7FFC</div><div class='add'>+0x526E = 0x7FCC</div><div class='add'>+0x526F = 0x7ECE</div><div class='add'>+0x5270 = 0x8335</div><div class='add'>+0x5271 = 0x836B</div><div class='add'>+0x5272 = 0x56E0</div><div class='add'>+0x5273 = 0x6BB7</div><div class='add'>+0x5274 = 0x97F3</div><div class='add'>+0x5275 = 0x9634</div><div class='add'>+0x5276 = 0x59FB</div><div class='add'>+0x5277 = 0x541F</div><div class='add'>+0x5278 = 0x94F6</div><div class='add'>+0x5279 = 0x6DEB</div><div class='add'>+0x527A = 0x5BC5</div><div class='add'>+0x527B = 0x996E</div><div class='add'>+0x527C = 0x5C39</div><div class='add'>+0x527D = 0x5F15</div><div class='add'>+0x527E = 0x9690</div><div class='add'>+0x5321 = 0x5370</div><div class='add'>+0x5322 = 0x82F1</div><div class='add'>+0x5323 = 0x6A31</div><div class='add'>+0x5324 = 0x5A74</div><div class='add'>+0x5325 = 0x9E70</div><div class='add'>+0x5326 = 0x5E94</div><div class='add'>+0x5327 = 0x7F28</div><div class='add'>+0x5328 = 0x83B9</div><div class='add'>+0x5329 = 0x8424</div><div class='add'>+0x532A = 0x8425</div><div class='add'>+0x532B = 0x8367</div><div class='add'>+0x532C = 0x8747</div><div class='add'>+0x532D = 0x8FCE</div><div class='add'>+0x532E = 0x8D62</div><div class='add'>+0x532F = 0x76C8</div><div class='add'>+0x5330 = 0x5F71</div><div class='add'>+0x5331 = 0x9896</div><div class='add'>+0x5332 = 0x786C</div><div class='add'>+0x5333 = 0x6620</div><div class='add'>+0x5334 = 0x54DF</div><div class='add'>+0x5335 = 0x62E5</div><div class='add'>+0x5336 = 0x4F63</div><div class='add'>+0x5337 = 0x81C3</div><div class='add'>+0x5338 = 0x75C8</div><div class='add'>+0x5339 = 0x5EB8</div><div class='add'>+0x533A = 0x96CD</div><div class='add'>+0x533B = 0x8E0A</div><div class='add'>+0x533C = 0x86F9</div><div class='add'>+0x533D = 0x548F</div><div class='add'>+0x533E = 0x6CF3</div><div class='add'>+0x533F = 0x6D8C</div><div class='add'>+0x5340 = 0x6C38</div><div class='add'>+0x5341 = 0x607F</div><div class='add'>+0x5342 = 0x52C7</div><div class='add'>+0x5343 = 0x7528</div><div class='add'>+0x5344 = 0x5E7D</div><div class='add'>+0x5345 = 0x4F18</div><div class='add'>+0x5346 = 0x60A0</div><div class='add'>+0x5347 = 0x5FE7</div><div class='add'>+0x5348 = 0x5C24</div><div class='add'>+0x5349 = 0x7531</div><div class='add'>+0x534A = 0x90AE</div><div class='add'>+0x534B = 0x94C0</div><div class='add'>+0x534C = 0x72B9</div><div class='add'>+0x534D = 0x6CB9</div><div class='add'>+0x534E = 0x6E38</div><div class='add'>+0x534F = 0x9149</div><div class='add'>+0x5350 = 0x6709</div><div class='add'>+0x5351 = 0x53CB</div><div class='add'>+0x5352 = 0x53F3</div><div class='add'>+0x5353 = 0x4F51</div><div class='add'>+0x5354 = 0x91C9</div><div class='add'>+0x5355 = 0x8BF1</div><div class='add'>+0x5356 = 0x53C8</div><div class='add'>+0x5357 = 0x5E7C</div><div class='add'>+0x5358 = 0x8FC2</div><div class='add'>+0x5359 = 0x6DE4</div><div class='add'>+0x535A = 0x4E8E</div><div class='add'>+0x535B = 0x76C2</div><div class='add'>+0x535C = 0x6986</div><div class='add'>+0x535D = 0x865E</div><div class='add'>+0x535E = 0x611A</div><div class='add'>+0x535F = 0x8206</div><div class='add'>+0x5360 = 0x4F59</div><div class='add'>+0x5361 = 0x4FDE</div><div class='add'>+0x5362 = 0x903E</div><div class='add'>+0x5363 = 0x9C7C</div><div class='add'>+0x5364 = 0x6109</div><div class='add'>+0x5365 = 0x6E1D</div><div class='add'>+0x5366 = 0x6E14</div><div class='add'>+0x5367 = 0x9685</div><div class='add'>+0x5368 = 0x4E88</div><div class='add'>+0x5369 = 0x5A31</div><div class='add'>+0x536A = 0x96E8</div><div class='add'>+0x536B = 0x4E0E</div><div class='add'>+0x536C = 0x5C7F</div><div class='add'>+0x536D = 0x79B9</div><div class='add'>+0x536E = 0x5B87</div><div class='add'>+0x536F = 0x8BED</div><div class='add'>+0x5370 = 0x7FBD</div><div class='add'>+0x5371 = 0x7389</div><div class='add'>+0x5372 = 0x57DF</div><div class='add'>+0x5373 = 0x828B</div><div class='add'>+0x5374 = 0x90C1</div><div class='add'>+0x5375 = 0x5401</div><div class='add'>+0x5376 = 0x9047</div><div class='add'>+0x5377 = 0x55BB</div><div class='add'>+0x5378 = 0x5CEA</div><div class='add'>+0x5379 = 0x5FA1</div><div class='add'>+0x537A = 0x6108</div><div class='add'>+0x537B = 0x6B32</div><div class='add'>+0x537C = 0x72F1</div><div class='add'>+0x537D = 0x80B2</div><div class='add'>+0x537E = 0x8A89</div><div class='add'>+0x5421 = 0x6D74</div><div class='add'>+0x5422 = 0x5BD3</div><div class='add'>+0x5423 = 0x88D5</div><div class='add'>+0x5424 = 0x9884</div><div class='add'>+0x5425 = 0x8C6B</div><div class='add'>+0x5426 = 0x9A6D</div><div class='add'>+0x5427 = 0x9E33</div><div class='add'>+0x5428 = 0x6E0A</div><div class='add'>+0x5429 = 0x51A4</div><div class='add'>+0x542A = 0x5143</div><div class='add'>+0x542B = 0x57A3</div><div class='add'>+0x542C = 0x8881</div><div class='add'>+0x542D = 0x539F</div><div class='add'>+0x542E = 0x63F4</div><div class='add'>+0x542F = 0x8F95</div><div class='add'>+0x5430 = 0x56ED</div><div class='add'>+0x5431 = 0x5458</div><div class='add'>+0x5432 = 0x5706</div><div class='add'>+0x5433 = 0x733F</div><div class='add'>+0x5434 = 0x6E90</div><div class='add'>+0x5435 = 0x7F18</div><div class='add'>+0x5436 = 0x8FDC</div><div class='add'>+0x5437 = 0x82D1</div><div class='add'>+0x5438 = 0x613F</div><div class='add'>+0x5439 = 0x6028</div><div class='add'>+0x543A = 0x9662</div><div class='add'>+0x543B = 0x66F0</div><div class='add'>+0x543C = 0x7EA6</div><div class='add'>+0x543D = 0x8D8A</div><div class='add'>+0x543E = 0x8DC3</div><div class='add'>+0x543F = 0x94A5</div><div class='add'>+0x5440 = 0x5CB3</div><div class='add'>+0x5441 = 0x7CA4</div><div class='add'>+0x5442 = 0x6708</div><div class='add'>+0x5443 = 0x60A6</div><div class='add'>+0x5444 = 0x9605</div><div class='add'>+0x5445 = 0x8018</div><div class='add'>+0x5446 = 0x4E91</div><div class='add'>+0x5447 = 0x90E7</div><div class='add'>+0x5448 = 0x5300</div><div class='add'>+0x5449 = 0x9668</div><div class='add'>+0x544A = 0x5141</div><div class='add'>+0x544B = 0x8FD0</div><div class='add'>+0x544C = 0x8574</div><div class='add'>+0x544D = 0x915D</div><div class='add'>+0x544E = 0x6655</div><div class='add'>+0x544F = 0x97F5</div><div class='add'>+0x5450 = 0x5B55</div><div class='add'>+0x5451 = 0x531D</div><div class='add'>+0x5452 = 0x7838</div><div class='add'>+0x5453 = 0x6742</div><div class='add'>+0x5454 = 0x683D</div><div class='add'>+0x5455 = 0x54C9</div><div class='add'>+0x5456 = 0x707E</div><div class='add'>+0x5457 = 0x5BB0</div><div class='add'>+0x5458 = 0x8F7D</div><div class='add'>+0x5459 = 0x518D</div><div class='add'>+0x545A = 0x5728</div><div class='add'>+0x545B = 0x54B1</div><div class='add'>+0x545C = 0x6512</div><div class='add'>+0x545D = 0x6682</div><div class='add'>+0x545E = 0x8D5E</div><div class='add'>+0x545F = 0x8D43</div><div class='add'>+0x5460 = 0x810F</div><div class='add'>+0x5461 = 0x846C</div><div class='add'>+0x5462 = 0x906D</div><div class='add'>+0x5463 = 0x7CDF</div><div class='add'>+0x5464 = 0x51FF</div><div class='add'>+0x5465 = 0x85FB</div><div class='add'>+0x5466 = 0x67A3</div><div class='add'>+0x5467 = 0x65E9</div><div class='add'>+0x5468 = 0x6FA1</div><div class='add'>+0x5469 = 0x86A4</div><div class='add'>+0x546A = 0x8E81</div><div class='add'>+0x546B = 0x566A</div><div class='add'>+0x546C = 0x9020</div><div class='add'>+0x546D = 0x7682</div><div class='add'>+0x546E = 0x7076</div><div class='add'>+0x546F = 0x71E5</div><div class='add'>+0x5470 = 0x8D23</div><div class='add'>+0x5471 = 0x62E9</div><div class='add'>+0x5472 = 0x5219</div><div class='add'>+0x5473 = 0x6CFD</div><div class='add'>+0x5474 = 0x8D3C</div><div class='add'>+0x5475 = 0x600E</div><div class='add'>+0x5476 = 0x589E</div><div class='add'>+0x5477 = 0x618E</div><div class='add'>+0x5478 = 0x66FE</div><div class='add'>+0x5479 = 0x8D60</div><div class='add'>+0x547A = 0x624E</div><div class='add'>+0x547B = 0x55B3</div><div class='add'>+0x547C = 0x6E23</div><div class='add'>+0x547D = 0x672D</div><div class='add'>+0x547E = 0x8F67</div><div class='add'>+0x5521 = 0x94E1</div><div class='add'>+0x5522 = 0x95F8</div><div class='add'>+0x5523 = 0x7728</div><div class='add'>+0x5524 = 0x6805</div><div class='add'>+0x5525 = 0x69A8</div><div class='add'>+0x5526 = 0x548B</div><div class='add'>+0x5527 = 0x4E4D</div><div class='add'>+0x5528 = 0x70B8</div><div class='add'>+0x5529 = 0x8BC8</div><div class='add'>+0x552A = 0x6458</div><div class='add'>+0x552B = 0x658B</div><div class='add'>+0x552C = 0x5B85</div><div class='add'>+0x552D = 0x7A84</div><div class='add'>+0x552E = 0x503A</div><div class='add'>+0x552F = 0x5BE8</div><div class='add'>+0x5530 = 0x77BB</div><div class='add'>+0x5531 = 0x6BE1</div><div class='add'>+0x5532 = 0x8A79</div><div class='add'>+0x5533 = 0x7C98</div><div class='add'>+0x5534 = 0x6CBE</div><div class='add'>+0x5535 = 0x76CF</div><div class='add'>+0x5536 = 0x65A9</div><div class='add'>+0x5537 = 0x8F97</div><div class='add'>+0x5538 = 0x5D2D</div><div class='add'>+0x5539 = 0x5C55</div><div class='add'>+0x553A = 0x8638</div><div class='add'>+0x553B = 0x6808</div><div class='add'>+0x553C = 0x5360</div><div class='add'>+0x553D = 0x6218</div><div class='add'>+0x553E = 0x7AD9</div><div class='add'>+0x553F = 0x6E5B</div><div class='add'>+0x5540 = 0x7EFD</div><div class='add'>+0x5541 = 0x6A1F</div><div class='add'>+0x5542 = 0x7AE0</div><div class='add'>+0x5543 = 0x5F70</div><div class='add'>+0x5544 = 0x6F33</div><div class='add'>+0x5545 = 0x5F20</div><div class='add'>+0x5546 = 0x638C</div><div class='add'>+0x5547 = 0x6DA8</div><div class='add'>+0x5548 = 0x6756</div><div class='add'>+0x5549 = 0x4E08</div><div class='add'>+0x554A = 0x5E10</div><div class='add'>+0x554B = 0x8D26</div><div class='add'>+0x554C = 0x4ED7</div><div class='add'>+0x554D = 0x80C0</div><div class='add'>+0x554E = 0x7634</div><div class='add'>+0x554F = 0x969C</div><div class='add'>+0x5550 = 0x62DB</div><div class='add'>+0x5551 = 0x662D</div><div class='add'>+0x5552 = 0x627E</div><div class='add'>+0x5553 = 0x6CBC</div><div class='add'>+0x5554 = 0x8D75</div><div class='add'>+0x5555 = 0x7167</div><div class='add'>+0x5556 = 0x7F69</div><div class='add'>+0x5557 = 0x5146</div><div class='add'>+0x5558 = 0x8087</div><div class='add'>+0x5559 = 0x53EC</div><div class='add'>+0x555A = 0x906E</div><div class='add'>+0x555B = 0x6298</div><div class='add'>+0x555C = 0x54F2</div><div class='add'>+0x555D = 0x86F0</div><div class='add'>+0x555E = 0x8F99</div><div class='add'>+0x555F = 0x8005</div><div class='add'>+0x5560 = 0x9517</div><div class='add'>+0x5561 = 0x8517</div><div class='add'>+0x5562 = 0x8FD9</div><div class='add'>+0x5563 = 0x6D59</div><div class='add'>+0x5564 = 0x73CD</div><div class='add'>+0x5565 = 0x659F</div><div class='add'>+0x5566 = 0x771F</div><div class='add'>+0x5567 = 0x7504</div><div class='add'>+0x5568 = 0x7827</div><div class='add'>+0x5569 = 0x81FB</div><div class='add'>+0x556A = 0x8D1E</div><div class='add'>+0x556B = 0x9488</div><div class='add'>+0x556C = 0x4FA6</div><div class='add'>+0x556D = 0x6795</div><div class='add'>+0x556E = 0x75B9</div><div class='add'>+0x556F = 0x8BCA</div><div class='add'>+0x5570 = 0x9707</div><div class='add'>+0x5571 = 0x632F</div><div class='add'>+0x5572 = 0x9547</div><div class='add'>+0x5573 = 0x9635</div><div class='add'>+0x5574 = 0x84B8</div><div class='add'>+0x5575 = 0x6323</div><div class='add'>+0x5576 = 0x7741</div><div class='add'>+0x5577 = 0x5F81</div><div class='add'>+0x5578 = 0x72F0</div><div class='add'>+0x5579 = 0x4E89</div><div class='add'>+0x557A = 0x6014</div><div class='add'>+0x557B = 0x6574</div><div class='add'>+0x557C = 0x62EF</div><div class='add'>+0x557D = 0x6B63</div><div class='add'>+0x557E = 0x653F</div><div class='add'>+0x5621 = 0x5E27</div><div class='add'>+0x5622 = 0x75C7</div><div class='add'>+0x5623 = 0x90D1</div><div class='add'>+0x5624 = 0x8BC1</div><div class='add'>+0x5625 = 0x829D</div><div class='add'>+0x5626 = 0x679D</div><div class='add'>+0x5627 = 0x652F</div><div class='add'>+0x5628 = 0x5431</div><div class='add'>+0x5629 = 0x8718</div><div class='add'>+0x562A = 0x77E5</div><div class='add'>+0x562B = 0x80A2</div><div class='add'>+0x562C = 0x8102</div><div class='add'>+0x562D = 0x6C41</div><div class='add'>+0x562E = 0x4E4B</div><div class='add'>+0x562F = 0x7EC7</div><div class='add'>+0x5630 = 0x804C</div><div class='add'>+0x5631 = 0x76F4</div><div class='add'>+0x5632 = 0x690D</div><div class='add'>+0x5633 = 0x6B96</div><div class='add'>+0x5634 = 0x6267</div><div class='add'>+0x5635 = 0x503C</div><div class='add'>+0x5636 = 0x4F84</div><div class='add'>+0x5637 = 0x5740</div><div class='add'>+0x5638 = 0x6307</div><div class='add'>+0x5639 = 0x6B62</div><div class='add'>+0x563A = 0x8DBE</div><div class='add'>+0x563B = 0x53EA</div><div class='add'>+0x563C = 0x65E8</div><div class='add'>+0x563D = 0x7EB8</div><div class='add'>+0x563E = 0x5FD7</div><div class='add'>+0x563F = 0x631A</div><div class='add'>+0x5640 = 0x63B7</div><div class='add'>+0x5641 = 0x81F3</div><div class='add'>+0x5642 = 0x81F4</div><div class='add'>+0x5643 = 0x7F6E</div><div class='add'>+0x5644 = 0x5E1C</div><div class='add'>+0x5645 = 0x5CD9</div><div class='add'>+0x5646 = 0x5236</div><div class='add'>+0x5647 = 0x667A</div><div class='add'>+0x5648 = 0x79E9</div><div class='add'>+0x5649 = 0x7A1A</div><div class='add'>+0x564A = 0x8D28</div><div class='add'>+0x564B = 0x7099</div><div class='add'>+0x564C = 0x75D4</div><div class='add'>+0x564D = 0x6EDE</div><div class='add'>+0x564E = 0x6CBB</div><div class='add'>+0x564F = 0x7A92</div><div class='add'>+0x5650 = 0x4E2D</div><div class='add'>+0x5651 = 0x76C5</div><div class='add'>+0x5652 = 0x5FE0</div><div class='add'>+0x5653 = 0x949F</div><div class='add'>+0x5654 = 0x8877</div><div class='add'>+0x5655 = 0x7EC8</div><div class='add'>+0x5656 = 0x79CD</div><div class='add'>+0x5657 = 0x80BF</div><div class='add'>+0x5658 = 0x91CD</div><div class='add'>+0x5659 = 0x4EF2</div><div class='add'>+0x565A = 0x4F17</div><div class='add'>+0x565B = 0x821F</div><div class='add'>+0x565C = 0x5468</div><div class='add'>+0x565D = 0x5DDE</div><div class='add'>+0x565E = 0x6D32</div><div class='add'>+0x565F = 0x8BCC</div><div class='add'>+0x5660 = 0x7CA5</div><div class='add'>+0x5661 = 0x8F74</div><div class='add'>+0x5662 = 0x8098</div><div class='add'>+0x5663 = 0x5E1A</div><div class='add'>+0x5664 = 0x5492</div><div class='add'>+0x5665 = 0x76B1</div><div class='add'>+0x5666 = 0x5B99</div><div class='add'>+0x5667 = 0x663C</div><div class='add'>+0x5668 = 0x9AA4</div><div class='add'>+0x5669 = 0x73E0</div><div class='add'>+0x566A = 0x682A</div><div class='add'>+0x566B = 0x86DB</div><div class='add'>+0x566C = 0x6731</div><div class='add'>+0x566D = 0x732A</div><div class='add'>+0x566E = 0x8BF8</div><div class='add'>+0x566F = 0x8BDB</div><div class='add'>+0x5670 = 0x9010</div><div class='add'>+0x5671 = 0x7AF9</div><div class='add'>+0x5672 = 0x70DB</div><div class='add'>+0x5673 = 0x716E</div><div class='add'>+0x5674 = 0x62C4</div><div class='add'>+0x5675 = 0x77A9</div><div class='add'>+0x5676 = 0x5631</div><div class='add'>+0x5677 = 0x4E3B</div><div class='add'>+0x5678 = 0x8457</div><div class='add'>+0x5679 = 0x67F1</div><div class='add'>+0x567A = 0x52A9</div><div class='add'>+0x567B = 0x86C0</div><div class='add'>+0x567C = 0x8D2E</div><div class='add'>+0x567D = 0x94F8</div><div class='add'>+0x567E = 0x7B51</div><div class='add'>+0x5721 = 0x4F4F</div><div class='add'>+0x5722 = 0x6CE8</div><div class='add'>+0x5723 = 0x795D</div><div class='add'>+0x5724 = 0x9A7B</div><div class='add'>+0x5725 = 0x6293</div><div class='add'>+0x5726 = 0x722A</div><div class='add'>+0x5727 = 0x62FD</div><div class='add'>+0x5728 = 0x4E13</div><div class='add'>+0x5729 = 0x7816</div><div class='add'>+0x572A = 0x8F6C</div><div class='add'>+0x572B = 0x64B0</div><div class='add'>+0x572C = 0x8D5A</div><div class='add'>+0x572D = 0x7BC6</div><div class='add'>+0x572E = 0x6869</div><div class='add'>+0x572F = 0x5E84</div><div class='add'>+0x5730 = 0x88C5</div><div class='add'>+0x5731 = 0x5986</div><div class='add'>+0x5732 = 0x649E</div><div class='add'>+0x5733 = 0x58EE</div><div class='add'>+0x5734 = 0x72B6</div><div class='add'>+0x5735 = 0x690E</div><div class='add'>+0x5736 = 0x9525</div><div class='add'>+0x5737 = 0x8FFD</div><div class='add'>+0x5738 = 0x8D58</div><div class='add'>+0x5739 = 0x5760</div><div class='add'>+0x573A = 0x7F00</div><div class='add'>+0x573B = 0x8C06</div><div class='add'>+0x573C = 0x51C6</div><div class='add'>+0x573D = 0x6349</div><div class='add'>+0x573E = 0x62D9</div><div class='add'>+0x573F = 0x5353</div><div class='add'>+0x5740 = 0x684C</div><div class='add'>+0x5741 = 0x7422</div><div class='add'>+0x5742 = 0x8301</div><div class='add'>+0x5743 = 0x914C</div><div class='add'>+0x5744 = 0x5544</div><div class='add'>+0x5745 = 0x7740</div><div class='add'>+0x5746 = 0x707C</div><div class='add'>+0x5747 = 0x6D4A</div><div class='add'>+0x5748 = 0x5179</div><div class='add'>+0x5749 = 0x54A8</div><div class='add'>+0x574A = 0x8D44</div><div class='add'>+0x574B = 0x59FF</div><div class='add'>+0x574C = 0x6ECB</div><div class='add'>+0x574D = 0x6DC4</div><div class='add'>+0x574E = 0x5B5C</div><div class='add'>+0x574F = 0x7D2B</div><div class='add'>+0x5750 = 0x4ED4</div><div class='add'>+0x5751 = 0x7C7D</div><div class='add'>+0x5752 = 0x6ED3</div><div class='add'>+0x5753 = 0x5B50</div><div class='add'>+0x5754 = 0x81EA</div><div class='add'>+0x5755 = 0x6E0D</div><div class='add'>+0x5756 = 0x5B57</div><div class='add'>+0x5757 = 0x9B03</div><div class='add'>+0x5758 = 0x68D5</div><div class='add'>+0x5759 = 0x8E2A</div><div class='add'>+0x575A = 0x5B97</div><div class='add'>+0x575B = 0x7EFC</div><div class='add'>+0x575C = 0x603B</div><div class='add'>+0x575D = 0x7EB5</div><div class='add'>+0x575E = 0x90B9</div><div class='add'>+0x575F = 0x8D70</div><div class='add'>+0x5760 = 0x594F</div><div class='add'>+0x5761 = 0x63CD</div><div class='add'>+0x5762 = 0x79DF</div><div class='add'>+0x5763 = 0x8DB3</div><div class='add'>+0x5764 = 0x5352</div><div class='add'>+0x5765 = 0x65CF</div><div class='add'>+0x5766 = 0x7956</div><div class='add'>+0x5767 = 0x8BC5</div><div class='add'>+0x5768 = 0x963B</div><div class='add'>+0x5769 = 0x7EC4</div><div class='add'>+0x576A = 0x94BB</div><div class='add'>+0x576B = 0x7E82</div><div class='add'>+0x576C = 0x5634</div><div class='add'>+0x576D = 0x9189</div><div class='add'>+0x576E = 0x6700</div><div class='add'>+0x576F = 0x7F6A</div><div class='add'>+0x5770 = 0x5C0A</div><div class='add'>+0x5771 = 0x9075</div><div class='add'>+0x5772 = 0x6628</div><div class='add'>+0x5773 = 0x5DE6</div><div class='add'>+0x5774 = 0x4F50</div><div class='add'>+0x5775 = 0x67DE</div><div class='add'>+0x5776 = 0x505A</div><div class='add'>+0x5777 = 0x4F5C</div><div class='add'>+0x5778 = 0x5750</div><div class='add'>+0x5779 = 0x5EA7</div><div class='add'>+</div><div class='add'>+# GBK2 / GB2312 plane2</div><div class='add'>+0x5821 = 0x4E8D</div><div class='add'>+0x5822 = 0x4E0C</div><div class='add'>+0x5823 = 0x5140</div><div class='add'>+0x5824 = 0x4E10</div><div class='add'>+0x5825 = 0x5EFF</div><div class='add'>+0x5826 = 0x5345</div><div class='add'>+0x5827 = 0x4E15</div><div class='add'>+0x5828 = 0x4E98</div><div class='add'>+0x5829 = 0x4E1E</div><div class='add'>+0x582A = 0x9B32</div><div class='add'>+0x582B = 0x5B6C</div><div class='add'>+0x582C = 0x5669</div><div class='add'>+0x582D = 0x4E28</div><div class='add'>+0x582E = 0x79BA</div><div class='add'>+0x582F = 0x4E3F</div><div class='add'>+0x5830 = 0x5315</div><div class='add'>+0x5831 = 0x4E47</div><div class='add'>+0x5832 = 0x592D</div><div class='add'>+0x5833 = 0x723B</div><div class='add'>+0x5834 = 0x536E</div><div class='add'>+0x5835 = 0x6C10</div><div class='add'>+0x5836 = 0x56DF</div><div class='add'>+0x5837 = 0x80E4</div><div class='add'>+0x5838 = 0x9997</div><div class='add'>+0x5839 = 0x6BD3</div><div class='add'>+0x583A = 0x777E</div><div class='add'>+0x583B = 0x9F17</div><div class='add'>+0x583C = 0x4E36</div><div class='add'>+0x583D = 0x4E9F</div><div class='add'>+0x583E = 0x9F10</div><div class='add'>+0x583F = 0x4E5C</div><div class='add'>+0x5840 = 0x4E69</div><div class='add'>+0x5841 = 0x4E93</div><div class='add'>+0x5842 = 0x8288</div><div class='add'>+0x5843 = 0x5B5B</div><div class='add'>+0x5844 = 0x556C</div><div class='add'>+0x5845 = 0x560F</div><div class='add'>+0x5846 = 0x4EC4</div><div class='add'>+0x5847 = 0x538D</div><div class='add'>+0x5848 = 0x539D</div><div class='add'>+0x5849 = 0x53A3</div><div class='add'>+0x584A = 0x53A5</div><div class='add'>+0x584B = 0x53AE</div><div class='add'>+0x584C = 0x9765</div><div class='add'>+0x584D = 0x8D5D</div><div class='add'>+0x584E = 0x531A</div><div class='add'>+0x584F = 0x53F5</div><div class='add'>+0x5850 = 0x5326</div><div class='add'>+0x5851 = 0x532E</div><div class='add'>+0x5852 = 0x533E</div><div class='add'>+0x5853 = 0x8D5C</div><div class='add'>+0x5854 = 0x5366</div><div class='add'>+0x5855 = 0x5363</div><div class='add'>+0x5856 = 0x5202</div><div class='add'>+0x5857 = 0x5208</div><div class='add'>+0x5858 = 0x520E</div><div class='add'>+0x5859 = 0x522D</div><div class='add'>+0x585A = 0x5233</div><div class='add'>+0x585B = 0x523F</div><div class='add'>+0x585C = 0x5240</div><div class='add'>+0x585D = 0x524C</div><div class='add'>+0x585E = 0x525E</div><div class='add'>+0x585F = 0x5261</div><div class='add'>+0x5860 = 0x525C</div><div class='add'>+0x5861 = 0x84AF</div><div class='add'>+0x5862 = 0x527D</div><div class='add'>+0x5863 = 0x5282</div><div class='add'>+0x5864 = 0x5281</div><div class='add'>+0x5865 = 0x5290</div><div class='add'>+0x5866 = 0x5293</div><div class='add'>+0x5867 = 0x5182</div><div class='add'>+0x5868 = 0x7F54</div><div class='add'>+0x5869 = 0x4EBB</div><div class='add'>+0x586A = 0x4EC3</div><div class='add'>+0x586B = 0x4EC9</div><div class='add'>+0x586C = 0x4EC2</div><div class='add'>+0x586D = 0x4EE8</div><div class='add'>+0x586E = 0x4EE1</div><div class='add'>+0x586F = 0x4EEB</div><div class='add'>+0x5870 = 0x4EDE</div><div class='add'>+0x5871 = 0x4F1B</div><div class='add'>+0x5872 = 0x4EF3</div><div class='add'>+0x5873 = 0x4F22</div><div class='add'>+0x5874 = 0x4F64</div><div class='add'>+0x5875 = 0x4EF5</div><div class='add'>+0x5876 = 0x4F25</div><div class='add'>+0x5877 = 0x4F27</div><div class='add'>+0x5878 = 0x4F09</div><div class='add'>+0x5879 = 0x4F2B</div><div class='add'>+0x587A = 0x4F5E</div><div class='add'>+0x587B = 0x4F67</div><div class='add'>+0x587C = 0x6538</div><div class='add'>+0x587D = 0x4F5A</div><div class='add'>+0x587E = 0x4F5D</div><div class='add'>+0x5921 = 0x4F5F</div><div class='add'>+0x5922 = 0x4F57</div><div class='add'>+0x5923 = 0x4F32</div><div class='add'>+0x5924 = 0x4F3D</div><div class='add'>+0x5925 = 0x4F76</div><div class='add'>+0x5926 = 0x4F74</div><div class='add'>+0x5927 = 0x4F91</div><div class='add'>+0x5928 = 0x4F89</div><div class='add'>+0x5929 = 0x4F83</div><div class='add'>+0x592A = 0x4F8F</div><div class='add'>+0x592B = 0x4F7E</div><div class='add'>+0x592C = 0x4F7B</div><div class='add'>+0x592D = 0x4FAA</div><div class='add'>+0x592E = 0x4F7C</div><div class='add'>+0x592F = 0x4FAC</div><div class='add'>+0x5930 = 0x4F94</div><div class='add'>+0x5931 = 0x4FE6</div><div class='add'>+0x5932 = 0x4FE8</div><div class='add'>+0x5933 = 0x4FEA</div><div class='add'>+0x5934 = 0x4FC5</div><div class='add'>+0x5935 = 0x4FDA</div><div class='add'>+0x5936 = 0x4FE3</div><div class='add'>+0x5937 = 0x4FDC</div><div class='add'>+0x5938 = 0x4FD1</div><div class='add'>+0x5939 = 0x4FDF</div><div class='add'>+0x593A = 0x4FF8</div><div class='add'>+0x593B = 0x5029</div><div class='add'>+0x593C = 0x504C</div><div class='add'>+0x593D = 0x4FF3</div><div class='add'>+0x593E = 0x502C</div><div class='add'>+0x593F = 0x500F</div><div class='add'>+0x5940 = 0x502E</div><div class='add'>+0x5941 = 0x502D</div><div class='add'>+0x5942 = 0x4FFE</div><div class='add'>+0x5943 = 0x501C</div><div class='add'>+0x5944 = 0x500C</div><div class='add'>+0x5945 = 0x5025</div><div class='add'>+0x5946 = 0x5028</div><div class='add'>+0x5947 = 0x507E</div><div class='add'>+0x5948 = 0x5043</div><div class='add'>+0x5949 = 0x5055</div><div class='add'>+0x594A = 0x5048</div><div class='add'>+0x594B = 0x504E</div><div class='add'>+0x594C = 0x506C</div><div class='add'>+0x594D = 0x507B</div><div class='add'>+0x594E = 0x50A5</div><div class='add'>+0x594F = 0x50A7</div><div class='add'>+0x5950 = 0x50A9</div><div class='add'>+0x5951 = 0x50BA</div><div class='add'>+0x5952 = 0x50D6</div><div class='add'>+0x5953 = 0x5106</div><div class='add'>+0x5954 = 0x50ED</div><div class='add'>+0x5955 = 0x50EC</div><div class='add'>+0x5956 = 0x50E6</div><div class='add'>+0x5957 = 0x50EE</div><div class='add'>+0x5958 = 0x5107</div><div class='add'>+0x5959 = 0x510B</div><div class='add'>+0x595A = 0x4EDD</div><div class='add'>+0x595B = 0x6C3D</div><div class='add'>+0x595C = 0x4F58</div><div class='add'>+0x595D = 0x4F65</div><div class='add'>+0x595E = 0x4FCE</div><div class='add'>+0x595F = 0x9FA0</div><div class='add'>+0x5960 = 0x6C46</div><div class='add'>+0x5961 = 0x7C74</div><div class='add'>+0x5962 = 0x516E</div><div class='add'>+0x5963 = 0x5DFD</div><div class='add'>+0x5964 = 0x9EC9</div><div class='add'>+0x5965 = 0x9998</div><div class='add'>+0x5966 = 0x5181</div><div class='add'>+0x5967 = 0x5914</div><div class='add'>+0x5968 = 0x52F9</div><div class='add'>+0x5969 = 0x530D</div><div class='add'>+0x596A = 0x8A07</div><div class='add'>+0x596B = 0x5310</div><div class='add'>+0x596C = 0x51EB</div><div class='add'>+0x596D = 0x5919</div><div class='add'>+0x596E = 0x5155</div><div class='add'>+0x596F = 0x4EA0</div><div class='add'>+0x5970 = 0x5156</div><div class='add'>+0x5971 = 0x4EB3</div><div class='add'>+0x5972 = 0x886E</div><div class='add'>+0x5973 = 0x88A4</div><div class='add'>+0x5974 = 0x4EB5</div><div class='add'>+0x5975 = 0x8114</div><div class='add'>+0x5976 = 0x88D2</div><div class='add'>+0x5977 = 0x7980</div><div class='add'>+0x5978 = 0x5B34</div><div class='add'>+0x5979 = 0x8803</div><div class='add'>+0x597A = 0x7FB8</div><div class='add'>+0x597B = 0x51AB</div><div class='add'>+0x597C = 0x51B1</div><div class='add'>+0x597D = 0x51BD</div><div class='add'>+0x597E = 0x51BC</div><div class='add'>+0x5A21 = 0x51C7</div><div class='add'>+0x5A22 = 0x5196</div><div class='add'>+0x5A23 = 0x51A2</div><div class='add'>+0x5A24 = 0x51A5</div><div class='add'>+0x5A25 = 0x8BA0</div><div class='add'>+0x5A26 = 0x8BA6</div><div class='add'>+0x5A27 = 0x8BA7</div><div class='add'>+0x5A28 = 0x8BAA</div><div class='add'>+0x5A29 = 0x8BB4</div><div class='add'>+0x5A2A = 0x8BB5</div><div class='add'>+0x5A2B = 0x8BB7</div><div class='add'>+0x5A2C = 0x8BC2</div><div class='add'>+0x5A2D = 0x8BC3</div><div class='add'>+0x5A2E = 0x8BCB</div><div class='add'>+0x5A2F = 0x8BCF</div><div class='add'>+0x5A30 = 0x8BCE</div><div class='add'>+0x5A31 = 0x8BD2</div><div class='add'>+0x5A32 = 0x8BD3</div><div class='add'>+0x5A33 = 0x8BD4</div><div class='add'>+0x5A34 = 0x8BD6</div><div class='add'>+0x5A35 = 0x8BD8</div><div class='add'>+0x5A36 = 0x8BD9</div><div class='add'>+0x5A37 = 0x8BDC</div><div class='add'>+0x5A38 = 0x8BDF</div><div class='add'>+0x5A39 = 0x8BE0</div><div class='add'>+0x5A3A = 0x8BE4</div><div class='add'>+0x5A3B = 0x8BE8</div><div class='add'>+0x5A3C = 0x8BE9</div><div class='add'>+0x5A3D = 0x8BEE</div><div class='add'>+0x5A3E = 0x8BF0</div><div class='add'>+0x5A3F = 0x8BF3</div><div class='add'>+0x5A40 = 0x8BF6</div><div class='add'>+0x5A41 = 0x8BF9</div><div class='add'>+0x5A42 = 0x8BFC</div><div class='add'>+0x5A43 = 0x8BFF</div><div class='add'>+0x5A44 = 0x8C00</div><div class='add'>+0x5A45 = 0x8C02</div><div class='add'>+0x5A46 = 0x8C04</div><div class='add'>+0x5A47 = 0x8C07</div><div class='add'>+0x5A48 = 0x8C0C</div><div class='add'>+0x5A49 = 0x8C0F</div><div class='add'>+0x5A4A = 0x8C11</div><div class='add'>+0x5A4B = 0x8C12</div><div class='add'>+0x5A4C = 0x8C14</div><div class='add'>+0x5A4D = 0x8C15</div><div class='add'>+0x5A4E = 0x8C16</div><div class='add'>+0x5A4F = 0x8C19</div><div class='add'>+0x5A50 = 0x8C1B</div><div class='add'>+0x5A51 = 0x8C18</div><div class='add'>+0x5A52 = 0x8C1D</div><div class='add'>+0x5A53 = 0x8C1F</div><div class='add'>+0x5A54 = 0x8C20</div><div class='add'>+0x5A55 = 0x8C21</div><div class='add'>+0x5A56 = 0x8C25</div><div class='add'>+0x5A57 = 0x8C27</div><div class='add'>+0x5A58 = 0x8C2A</div><div class='add'>+0x5A59 = 0x8C2B</div><div class='add'>+0x5A5A = 0x8C2E</div><div class='add'>+0x5A5B = 0x8C2F</div><div class='add'>+0x5A5C = 0x8C32</div><div class='add'>+0x5A5D = 0x8C33</div><div class='add'>+0x5A5E = 0x8C35</div><div class='add'>+0x5A5F = 0x8C36</div><div class='add'>+0x5A60 = 0x5369</div><div class='add'>+0x5A61 = 0x537A</div><div class='add'>+0x5A62 = 0x961D</div><div class='add'>+0x5A63 = 0x9622</div><div class='add'>+0x5A64 = 0x9621</div><div class='add'>+0x5A65 = 0x9631</div><div class='add'>+0x5A66 = 0x962A</div><div class='add'>+0x5A67 = 0x963D</div><div class='add'>+0x5A68 = 0x963C</div><div class='add'>+0x5A69 = 0x9642</div><div class='add'>+0x5A6A = 0x9649</div><div class='add'>+0x5A6B = 0x9654</div><div class='add'>+0x5A6C = 0x965F</div><div class='add'>+0x5A6D = 0x9667</div><div class='add'>+0x5A6E = 0x966C</div><div class='add'>+0x5A6F = 0x9672</div><div class='add'>+0x5A70 = 0x9674</div><div class='add'>+0x5A71 = 0x9688</div><div class='add'>+0x5A72 = 0x968D</div><div class='add'>+0x5A73 = 0x9697</div><div class='add'>+0x5A74 = 0x96B0</div><div class='add'>+0x5A75 = 0x9097</div><div class='add'>+0x5A76 = 0x909B</div><div class='add'>+0x5A77 = 0x909D</div><div class='add'>+0x5A78 = 0x9099</div><div class='add'>+0x5A79 = 0x90AC</div><div class='add'>+0x5A7A = 0x90A1</div><div class='add'>+0x5A7B = 0x90B4</div><div class='add'>+0x5A7C = 0x90B3</div><div class='add'>+0x5A7D = 0x90B6</div><div class='add'>+0x5A7E = 0x90BA</div><div class='add'>+0x5B21 = 0x90B8</div><div class='add'>+0x5B22 = 0x90B0</div><div class='add'>+0x5B23 = 0x90CF</div><div class='add'>+0x5B24 = 0x90C5</div><div class='add'>+0x5B25 = 0x90BE</div><div class='add'>+0x5B26 = 0x90D0</div><div class='add'>+0x5B27 = 0x90C4</div><div class='add'>+0x5B28 = 0x90C7</div><div class='add'>+0x5B29 = 0x90D3</div><div class='add'>+0x5B2A = 0x90E6</div><div class='add'>+0x5B2B = 0x90E2</div><div class='add'>+0x5B2C = 0x90DC</div><div class='add'>+0x5B2D = 0x90D7</div><div class='add'>+0x5B2E = 0x90DB</div><div class='add'>+0x5B2F = 0x90EB</div><div class='add'>+0x5B30 = 0x90EF</div><div class='add'>+0x5B31 = 0x90FE</div><div class='add'>+0x5B32 = 0x9104</div><div class='add'>+0x5B33 = 0x9122</div><div class='add'>+0x5B34 = 0x911E</div><div class='add'>+0x5B35 = 0x9123</div><div class='add'>+0x5B36 = 0x9131</div><div class='add'>+0x5B37 = 0x912F</div><div class='add'>+0x5B38 = 0x9139</div><div class='add'>+0x5B39 = 0x9143</div><div class='add'>+0x5B3A = 0x9146</div><div class='add'>+0x5B3B = 0x520D</div><div class='add'>+0x5B3C = 0x5942</div><div class='add'>+0x5B3D = 0x52A2</div><div class='add'>+0x5B3E = 0x52AC</div><div class='add'>+0x5B3F = 0x52AD</div><div class='add'>+0x5B40 = 0x52BE</div><div class='add'>+0x5B41 = 0x54FF</div><div class='add'>+0x5B42 = 0x52D0</div><div class='add'>+0x5B43 = 0x52D6</div><div class='add'>+0x5B44 = 0x52F0</div><div class='add'>+0x5B45 = 0x53DF</div><div class='add'>+0x5B46 = 0x71EE</div><div class='add'>+0x5B47 = 0x77CD</div><div class='add'>+0x5B48 = 0x5EF4</div><div class='add'>+0x5B49 = 0x51F5</div><div class='add'>+0x5B4A = 0x51FC</div><div class='add'>+0x5B4B = 0x9B2F</div><div class='add'>+0x5B4C = 0x53B6</div><div class='add'>+0x5B4D = 0x5F01</div><div class='add'>+0x5B4E = 0x755A</div><div class='add'>+0x5B4F = 0x5DEF</div><div class='add'>+0x5B50 = 0x574C</div><div class='add'>+0x5B51 = 0x57A9</div><div class='add'>+0x5B52 = 0x57A1</div><div class='add'>+0x5B53 = 0x587E</div><div class='add'>+0x5B54 = 0x58BC</div><div class='add'>+0x5B55 = 0x58C5</div><div class='add'>+0x5B56 = 0x58D1</div><div class='add'>+0x5B57 = 0x5729</div><div class='add'>+0x5B58 = 0x572C</div><div class='add'>+0x5B59 = 0x572A</div><div class='add'>+0x5B5A = 0x5733</div><div class='add'>+0x5B5B = 0x5739</div><div class='add'>+0x5B5C = 0x572E</div><div class='add'>+0x5B5D = 0x572F</div><div class='add'>+0x5B5E = 0x575C</div><div class='add'>+0x5B5F = 0x573B</div><div class='add'>+0x5B60 = 0x5742</div><div class='add'>+0x5B61 = 0x5769</div><div class='add'>+0x5B62 = 0x5785</div><div class='add'>+0x5B63 = 0x576B</div><div class='add'>+0x5B64 = 0x5786</div><div class='add'>+0x5B65 = 0x577C</div><div class='add'>+0x5B66 = 0x577B</div><div class='add'>+0x5B67 = 0x5768</div><div class='add'>+0x5B68 = 0x576D</div><div class='add'>+0x5B69 = 0x5776</div><div class='add'>+0x5B6A = 0x5773</div><div class='add'>+0x5B6B = 0x57AD</div><div class='add'>+0x5B6C = 0x57A4</div><div class='add'>+0x5B6D = 0x578C</div><div class='add'>+0x5B6E = 0x57B2</div><div class='add'>+0x5B6F = 0x57CF</div><div class='add'>+0x5B70 = 0x57A7</div><div class='add'>+0x5B71 = 0x57B4</div><div class='add'>+0x5B72 = 0x5793</div><div class='add'>+0x5B73 = 0x57A0</div><div class='add'>+0x5B74 = 0x57D5</div><div class='add'>+0x5B75 = 0x57D8</div><div class='add'>+0x5B76 = 0x57DA</div><div class='add'>+0x5B77 = 0x57D9</div><div class='add'>+0x5B78 = 0x57D2</div><div class='add'>+0x5B79 = 0x57B8</div><div class='add'>+0x5B7A = 0x57F4</div><div class='add'>+0x5B7B = 0x57EF</div><div class='add'>+0x5B7C = 0x57F8</div><div class='add'>+0x5B7D = 0x57E4</div><div class='add'>+0x5B7E = 0x57DD</div><div class='add'>+0x5C21 = 0x580B</div><div class='add'>+0x5C22 = 0x580D</div><div class='add'>+0x5C23 = 0x57FD</div><div class='add'>+0x5C24 = 0x57ED</div><div class='add'>+0x5C25 = 0x5800</div><div class='add'>+0x5C26 = 0x581E</div><div class='add'>+0x5C27 = 0x5819</div><div class='add'>+0x5C28 = 0x5844</div><div class='add'>+0x5C29 = 0x5820</div><div class='add'>+0x5C2A = 0x5865</div><div class='add'>+0x5C2B = 0x586C</div><div class='add'>+0x5C2C = 0x5881</div><div class='add'>+0x5C2D = 0x5889</div><div class='add'>+0x5C2E = 0x589A</div><div class='add'>+0x5C2F = 0x5880</div><div class='add'>+0x5C30 = 0x99A8</div><div class='add'>+0x5C31 = 0x9F19</div><div class='add'>+0x5C32 = 0x61FF</div><div class='add'>+0x5C33 = 0x8279</div><div class='add'>+0x5C34 = 0x827D</div><div class='add'>+0x5C35 = 0x827F</div><div class='add'>+0x5C36 = 0x828F</div><div class='add'>+0x5C37 = 0x828A</div><div class='add'>+0x5C38 = 0x82A8</div><div class='add'>+0x5C39 = 0x8284</div><div class='add'>+0x5C3A = 0x828E</div><div class='add'>+0x5C3B = 0x8291</div><div class='add'>+0x5C3C = 0x8297</div><div class='add'>+0x5C3D = 0x8299</div><div class='add'>+0x5C3E = 0x82AB</div><div class='add'>+0x5C3F = 0x82B8</div><div class='add'>+0x5C40 = 0x82BE</div><div class='add'>+0x5C41 = 0x82B0</div><div class='add'>+0x5C42 = 0x82C8</div><div class='add'>+0x5C43 = 0x82CA</div><div class='add'>+0x5C44 = 0x82E3</div><div class='add'>+0x5C45 = 0x8298</div><div class='add'>+0x5C46 = 0x82B7</div><div class='add'>+0x5C47 = 0x82AE</div><div class='add'>+0x5C48 = 0x82CB</div><div class='add'>+0x5C49 = 0x82CC</div><div class='add'>+0x5C4A = 0x82C1</div><div class='add'>+0x5C4B = 0x82A9</div><div class='add'>+0x5C4C = 0x82B4</div><div class='add'>+0x5C4D = 0x82A1</div><div class='add'>+0x5C4E = 0x82AA</div><div class='add'>+0x5C4F = 0x829F</div><div class='add'>+0x5C50 = 0x82C4</div><div class='add'>+0x5C51 = 0x82CE</div><div class='add'>+0x5C52 = 0x82A4</div><div class='add'>+0x5C53 = 0x82E1</div><div class='add'>+0x5C54 = 0x8309</div><div class='add'>+0x5C55 = 0x82F7</div><div class='add'>+0x5C56 = 0x82E4</div><div class='add'>+0x5C57 = 0x830F</div><div class='add'>+0x5C58 = 0x8307</div><div class='add'>+0x5C59 = 0x82DC</div><div class='add'>+0x5C5A = 0x82F4</div><div class='add'>+0x5C5B = 0x82D2</div><div class='add'>+0x5C5C = 0x82D8</div><div class='add'>+0x5C5D = 0x830C</div><div class='add'>+0x5C5E = 0x82FB</div><div class='add'>+0x5C5F = 0x82D3</div><div class='add'>+0x5C60 = 0x8311</div><div class='add'>+0x5C61 = 0x831A</div><div class='add'>+0x5C62 = 0x8306</div><div class='add'>+0x5C63 = 0x8314</div><div class='add'>+0x5C64 = 0x8315</div><div class='add'>+0x5C65 = 0x82E0</div><div class='add'>+0x5C66 = 0x82D5</div><div class='add'>+0x5C67 = 0x831C</div><div class='add'>+0x5C68 = 0x8351</div><div class='add'>+0x5C69 = 0x835B</div><div class='add'>+0x5C6A = 0x835C</div><div class='add'>+0x5C6B = 0x8308</div><div class='add'>+0x5C6C = 0x8392</div><div class='add'>+0x5C6D = 0x833C</div><div class='add'>+0x5C6E = 0x8334</div><div class='add'>+0x5C6F = 0x8331</div><div class='add'>+0x5C70 = 0x839B</div><div class='add'>+0x5C71 = 0x835E</div><div class='add'>+0x5C72 = 0x832F</div><div class='add'>+0x5C73 = 0x834F</div><div class='add'>+0x5C74 = 0x8347</div><div class='add'>+0x5C75 = 0x8343</div><div class='add'>+0x5C76 = 0x835F</div><div class='add'>+0x5C77 = 0x8340</div><div class='add'>+0x5C78 = 0x8317</div><div class='add'>+0x5C79 = 0x8360</div><div class='add'>+0x5C7A = 0x832D</div><div class='add'>+0x5C7B = 0x833A</div><div class='add'>+0x5C7C = 0x8333</div><div class='add'>+0x5C7D = 0x8366</div><div class='add'>+0x5C7E = 0x8365</div><div class='add'>+0x5D21 = 0x8368</div><div class='add'>+0x5D22 = 0x831B</div><div class='add'>+0x5D23 = 0x8369</div><div class='add'>+0x5D24 = 0x836C</div><div class='add'>+0x5D25 = 0x836A</div><div class='add'>+0x5D26 = 0x836D</div><div class='add'>+0x5D27 = 0x836E</div><div class='add'>+0x5D28 = 0x83B0</div><div class='add'>+0x5D29 = 0x8378</div><div class='add'>+0x5D2A = 0x83B3</div><div class='add'>+0x5D2B = 0x83B4</div><div class='add'>+0x5D2C = 0x83A0</div><div class='add'>+0x5D2D = 0x83AA</div><div class='add'>+0x5D2E = 0x8393</div><div class='add'>+0x5D2F = 0x839C</div><div class='add'>+0x5D30 = 0x8385</div><div class='add'>+0x5D31 = 0x837C</div><div class='add'>+0x5D32 = 0x83B6</div><div class='add'>+0x5D33 = 0x83A9</div><div class='add'>+0x5D34 = 0x837D</div><div class='add'>+0x5D35 = 0x83B8</div><div class='add'>+0x5D36 = 0x837B</div><div class='add'>+0x5D37 = 0x8398</div><div class='add'>+0x5D38 = 0x839E</div><div class='add'>+0x5D39 = 0x83A8</div><div class='add'>+0x5D3A = 0x83BA</div><div class='add'>+0x5D3B = 0x83BC</div><div class='add'>+0x5D3C = 0x83C1</div><div class='add'>+0x5D3D = 0x8401</div><div class='add'>+0x5D3E = 0x83E5</div><div class='add'>+0x5D3F = 0x83D8</div><div class='add'>+0x5D40 = 0x5807</div><div class='add'>+0x5D41 = 0x8418</div><div class='add'>+0x5D42 = 0x840B</div><div class='add'>+0x5D43 = 0x83DD</div><div class='add'>+0x5D44 = 0x83FD</div><div class='add'>+0x5D45 = 0x83D6</div><div class='add'>+0x5D46 = 0x841C</div><div class='add'>+0x5D47 = 0x8438</div><div class='add'>+0x5D48 = 0x8411</div><div class='add'>+0x5D49 = 0x8406</div><div class='add'>+0x5D4A = 0x83D4</div><div class='add'>+0x5D4B = 0x83DF</div><div class='add'>+0x5D4C = 0x840F</div><div class='add'>+0x5D4D = 0x8403</div><div class='add'>+0x5D4E = 0x83F8</div><div class='add'>+0x5D4F = 0x83F9</div><div class='add'>+0x5D50 = 0x83EA</div><div class='add'>+0x5D51 = 0x83C5</div><div class='add'>+0x5D52 = 0x83C0</div><div class='add'>+0x5D53 = 0x8426</div><div class='add'>+0x5D54 = 0x83F0</div><div class='add'>+0x5D55 = 0x83E1</div><div class='add'>+0x5D56 = 0x845C</div><div class='add'>+0x5D57 = 0x8451</div><div class='add'>+0x5D58 = 0x845A</div><div class='add'>+0x5D59 = 0x8459</div><div class='add'>+0x5D5A = 0x8473</div><div class='add'>+0x5D5B = 0x8487</div><div class='add'>+0x5D5C = 0x8488</div><div class='add'>+0x5D5D = 0x847A</div><div class='add'>+0x5D5E = 0x8489</div><div class='add'>+0x5D5F = 0x8478</div><div class='add'>+0x5D60 = 0x843C</div><div class='add'>+0x5D61 = 0x8446</div><div class='add'>+0x5D62 = 0x8469</div><div class='add'>+0x5D63 = 0x8476</div><div class='add'>+0x5D64 = 0x848C</div><div class='add'>+0x5D65 = 0x848E</div><div class='add'>+0x5D66 = 0x8431</div><div class='add'>+0x5D67 = 0x846D</div><div class='add'>+0x5D68 = 0x84C1</div><div class='add'>+0x5D69 = 0x84CD</div><div class='add'>+0x5D6A = 0x84D0</div><div class='add'>+0x5D6B = 0x84E6</div><div class='add'>+0x5D6C = 0x84BD</div><div class='add'>+0x5D6D = 0x84D3</div><div class='add'>+0x5D6E = 0x84CA</div><div class='add'>+0x5D6F = 0x84BF</div><div class='add'>+0x5D70 = 0x84BA</div><div class='add'>+0x5D71 = 0x84E0</div><div class='add'>+0x5D72 = 0x84A1</div><div class='add'>+0x5D73 = 0x84B9</div><div class='add'>+0x5D74 = 0x84B4</div><div class='add'>+0x5D75 = 0x8497</div><div class='add'>+0x5D76 = 0x84E5</div><div class='add'>+0x5D77 = 0x84E3</div><div class='add'>+0x5D78 = 0x850C</div><div class='add'>+0x5D79 = 0x750D</div><div class='add'>+0x5D7A = 0x8538</div><div class='add'>+0x5D7B = 0x84F0</div><div class='add'>+0x5D7C = 0x8539</div><div class='add'>+0x5D7D = 0x851F</div><div class='add'>+0x5D7E = 0x853A</div><div class='add'>+0x5E21 = 0x8556</div><div class='add'>+0x5E22 = 0x853B</div><div class='add'>+0x5E23 = 0x84FF</div><div class='add'>+0x5E24 = 0x84FC</div><div class='add'>+0x5E25 = 0x8559</div><div class='add'>+0x5E26 = 0x8548</div><div class='add'>+0x5E27 = 0x8568</div><div class='add'>+0x5E28 = 0x8564</div><div class='add'>+0x5E29 = 0x855E</div><div class='add'>+0x5E2A = 0x857A</div><div class='add'>+0x5E2B = 0x77A2</div><div class='add'>+0x5E2C = 0x8543</div><div class='add'>+0x5E2D = 0x8572</div><div class='add'>+0x5E2E = 0x857B</div><div class='add'>+0x5E2F = 0x85A4</div><div class='add'>+0x5E30 = 0x85A8</div><div class='add'>+0x5E31 = 0x8587</div><div class='add'>+0x5E32 = 0x858F</div><div class='add'>+0x5E33 = 0x8579</div><div class='add'>+0x5E34 = 0x85AE</div><div class='add'>+0x5E35 = 0x859C</div><div class='add'>+0x5E36 = 0x8585</div><div class='add'>+0x5E37 = 0x85B9</div><div class='add'>+0x5E38 = 0x85B7</div><div class='add'>+0x5E39 = 0x85B0</div><div class='add'>+0x5E3A = 0x85D3</div><div class='add'>+0x5E3B = 0x85C1</div><div class='add'>+0x5E3C = 0x85DC</div><div class='add'>+0x5E3D = 0x85FF</div><div class='add'>+0x5E3E = 0x8627</div><div class='add'>+0x5E3F = 0x8605</div><div class='add'>+0x5E40 = 0x8629</div><div class='add'>+0x5E41 = 0x8616</div><div class='add'>+0x5E42 = 0x863C</div><div class='add'>+0x5E43 = 0x5EFE</div><div class='add'>+0x5E44 = 0x5F08</div><div class='add'>+0x5E45 = 0x593C</div><div class='add'>+0x5E46 = 0x5941</div><div class='add'>+0x5E47 = 0x8037</div><div class='add'>+0x5E48 = 0x5955</div><div class='add'>+0x5E49 = 0x595A</div><div class='add'>+0x5E4A = 0x5958</div><div class='add'>+0x5E4B = 0x530F</div><div class='add'>+0x5E4C = 0x5C22</div><div class='add'>+0x5E4D = 0x5C25</div><div class='add'>+0x5E4E = 0x5C2C</div><div class='add'>+0x5E4F = 0x5C34</div><div class='add'>+0x5E50 = 0x624C</div><div class='add'>+0x5E51 = 0x626A</div><div class='add'>+0x5E52 = 0x629F</div><div class='add'>+0x5E53 = 0x62BB</div><div class='add'>+0x5E54 = 0x62CA</div><div class='add'>+0x5E55 = 0x62DA</div><div class='add'>+0x5E56 = 0x62D7</div><div class='add'>+0x5E57 = 0x62EE</div><div class='add'>+0x5E58 = 0x6322</div><div class='add'>+0x5E59 = 0x62F6</div><div class='add'>+0x5E5A = 0x6339</div><div class='add'>+0x5E5B = 0x634B</div><div class='add'>+0x5E5C = 0x6343</div><div class='add'>+0x5E5D = 0x63AD</div><div class='add'>+0x5E5E = 0x63F6</div><div class='add'>+0x5E5F = 0x6371</div><div class='add'>+0x5E60 = 0x637A</div><div class='add'>+0x5E61 = 0x638E</div><div class='add'>+0x5E62 = 0x63B4</div><div class='add'>+0x5E63 = 0x636D</div><div class='add'>+0x5E64 = 0x63AC</div><div class='add'>+0x5E65 = 0x638A</div><div class='add'>+0x5E66 = 0x6369</div><div class='add'>+0x5E67 = 0x63AE</div><div class='add'>+0x5E68 = 0x63BC</div><div class='add'>+0x5E69 = 0x63F2</div><div class='add'>+0x5E6A = 0x63F8</div><div class='add'>+0x5E6B = 0x63E0</div><div class='add'>+0x5E6C = 0x63FF</div><div class='add'>+0x5E6D = 0x63C4</div><div class='add'>+0x5E6E = 0x63DE</div><div class='add'>+0x5E6F = 0x63CE</div><div class='add'>+0x5E70 = 0x6452</div><div class='add'>+0x5E71 = 0x63C6</div><div class='add'>+0x5E72 = 0x63BE</div><div class='add'>+0x5E73 = 0x6445</div><div class='add'>+0x5E74 = 0x6441</div><div class='add'>+0x5E75 = 0x640B</div><div class='add'>+0x5E76 = 0x641B</div><div class='add'>+0x5E77 = 0x6420</div><div class='add'>+0x5E78 = 0x640C</div><div class='add'>+0x5E79 = 0x6426</div><div class='add'>+0x5E7A = 0x6421</div><div class='add'>+0x5E7B = 0x645E</div><div class='add'>+0x5E7C = 0x6484</div><div class='add'>+0x5E7D = 0x646D</div><div class='add'>+0x5E7E = 0x6496</div><div class='add'>+0x5F21 = 0x647A</div><div class='add'>+0x5F22 = 0x64B7</div><div class='add'>+0x5F23 = 0x64B8</div><div class='add'>+0x5F24 = 0x6499</div><div class='add'>+0x5F25 = 0x64BA</div><div class='add'>+0x5F26 = 0x64C0</div><div class='add'>+0x5F27 = 0x64D0</div><div class='add'>+0x5F28 = 0x64D7</div><div class='add'>+0x5F29 = 0x64E4</div><div class='add'>+0x5F2A = 0x64E2</div><div class='add'>+0x5F2B = 0x6509</div><div class='add'>+0x5F2C = 0x6525</div><div class='add'>+0x5F2D = 0x652E</div><div class='add'>+0x5F2E = 0x5F0B</div><div class='add'>+0x5F2F = 0x5FD2</div><div class='add'>+0x5F30 = 0x7519</div><div class='add'>+0x5F31 = 0x5F11</div><div class='add'>+0x5F32 = 0x535F</div><div class='add'>+0x5F33 = 0x53F1</div><div class='add'>+0x5F34 = 0x53FD</div><div class='add'>+0x5F35 = 0x53E9</div><div class='add'>+0x5F36 = 0x53E8</div><div class='add'>+0x5F37 = 0x53FB</div><div class='add'>+0x5F38 = 0x5412</div><div class='add'>+0x5F39 = 0x5416</div><div class='add'>+0x5F3A = 0x5406</div><div class='add'>+0x5F3B = 0x544B</div><div class='add'>+0x5F3C = 0x5452</div><div class='add'>+0x5F3D = 0x5453</div><div class='add'>+0x5F3E = 0x5454</div><div class='add'>+0x5F3F = 0x5456</div><div class='add'>+0x5F40 = 0x5443</div><div class='add'>+0x5F41 = 0x5421</div><div class='add'>+0x5F42 = 0x5457</div><div class='add'>+0x5F43 = 0x5459</div><div class='add'>+0x5F44 = 0x5423</div><div class='add'>+0x5F45 = 0x5432</div><div class='add'>+0x5F46 = 0x5482</div><div class='add'>+0x5F47 = 0x5494</div><div class='add'>+0x5F48 = 0x5477</div><div class='add'>+0x5F49 = 0x5471</div><div class='add'>+0x5F4A = 0x5464</div><div class='add'>+0x5F4B = 0x549A</div><div class='add'>+0x5F4C = 0x549B</div><div class='add'>+0x5F4D = 0x5484</div><div class='add'>+0x5F4E = 0x5476</div><div class='add'>+0x5F4F = 0x5466</div><div class='add'>+0x5F50 = 0x549D</div><div class='add'>+0x5F51 = 0x54D0</div><div class='add'>+0x5F52 = 0x54AD</div><div class='add'>+0x5F53 = 0x54C2</div><div class='add'>+0x5F54 = 0x54B4</div><div class='add'>+0x5F55 = 0x54D2</div><div class='add'>+0x5F56 = 0x54A7</div><div class='add'>+0x5F57 = 0x54A6</div><div class='add'>+0x5F58 = 0x54D3</div><div class='add'>+0x5F59 = 0x54D4</div><div class='add'>+0x5F5A = 0x5472</div><div class='add'>+0x5F5B = 0x54A3</div><div class='add'>+0x5F5C = 0x54D5</div><div class='add'>+0x5F5D = 0x54BB</div><div class='add'>+0x5F5E = 0x54BF</div><div class='add'>+0x5F5F = 0x54CC</div><div class='add'>+0x5F60 = 0x54D9</div><div class='add'>+0x5F61 = 0x54DA</div><div class='add'>+0x5F62 = 0x54DC</div><div class='add'>+0x5F63 = 0x54A9</div><div class='add'>+0x5F64 = 0x54AA</div><div class='add'>+0x5F65 = 0x54A4</div><div class='add'>+0x5F66 = 0x54DD</div><div class='add'>+0x5F67 = 0x54CF</div><div class='add'>+0x5F68 = 0x54DE</div><div class='add'>+0x5F69 = 0x551B</div><div class='add'>+0x5F6A = 0x54E7</div><div class='add'>+0x5F6B = 0x5520</div><div class='add'>+0x5F6C = 0x54FD</div><div class='add'>+0x5F6D = 0x5514</div><div class='add'>+0x5F6E = 0x54F3</div><div class='add'>+0x5F6F = 0x5522</div><div class='add'>+0x5F70 = 0x5523</div><div class='add'>+0x5F71 = 0x550F</div><div class='add'>+0x5F72 = 0x5511</div><div class='add'>+0x5F73 = 0x5527</div><div class='add'>+0x5F74 = 0x552A</div><div class='add'>+0x5F75 = 0x5567</div><div class='add'>+0x5F76 = 0x558F</div><div class='add'>+0x5F77 = 0x55B5</div><div class='add'>+0x5F78 = 0x5549</div><div class='add'>+0x5F79 = 0x556D</div><div class='add'>+0x5F7A = 0x5541</div><div class='add'>+0x5F7B = 0x5555</div><div class='add'>+0x5F7C = 0x553F</div><div class='add'>+0x5F7D = 0x5550</div><div class='add'>+0x5F7E = 0x553C</div><div class='add'>+0x6021 = 0x5537</div><div class='add'>+0x6022 = 0x5556</div><div class='add'>+0x6023 = 0x5575</div><div class='add'>+0x6024 = 0x5576</div><div class='add'>+0x6025 = 0x5577</div><div class='add'>+0x6026 = 0x5533</div><div class='add'>+0x6027 = 0x5530</div><div class='add'>+0x6028 = 0x555C</div><div class='add'>+0x6029 = 0x558B</div><div class='add'>+0x602A = 0x55D2</div><div class='add'>+0x602B = 0x5583</div><div class='add'>+0x602C = 0x55B1</div><div class='add'>+0x602D = 0x55B9</div><div class='add'>+0x602E = 0x5588</div><div class='add'>+0x602F = 0x5581</div><div class='add'>+0x6030 = 0x559F</div><div class='add'>+0x6031 = 0x557E</div><div class='add'>+0x6032 = 0x55D6</div><div class='add'>+0x6033 = 0x5591</div><div class='add'>+0x6034 = 0x557B</div><div class='add'>+0x6035 = 0x55DF</div><div class='add'>+0x6036 = 0x55BD</div><div class='add'>+0x6037 = 0x55BE</div><div class='add'>+0x6038 = 0x5594</div><div class='add'>+0x6039 = 0x5599</div><div class='add'>+0x603A = 0x55EA</div><div class='add'>+0x603B = 0x55F7</div><div class='add'>+0x603C = 0x55C9</div><div class='add'>+0x603D = 0x561F</div><div class='add'>+0x603E = 0x55D1</div><div class='add'>+0x603F = 0x55EB</div><div class='add'>+0x6040 = 0x55EC</div><div class='add'>+0x6041 = 0x55D4</div><div class='add'>+0x6042 = 0x55E6</div><div class='add'>+0x6043 = 0x55DD</div><div class='add'>+0x6044 = 0x55C4</div><div class='add'>+0x6045 = 0x55EF</div><div class='add'>+0x6046 = 0x55E5</div><div class='add'>+0x6047 = 0x55F2</div><div class='add'>+0x6048 = 0x55F3</div><div class='add'>+0x6049 = 0x55CC</div><div class='add'>+0x604A = 0x55CD</div><div class='add'>+0x604B = 0x55E8</div><div class='add'>+0x604C = 0x55F5</div><div class='add'>+0x604D = 0x55E4</div><div class='add'>+0x604E = 0x8F94</div><div class='add'>+0x604F = 0x561E</div><div class='add'>+0x6050 = 0x5608</div><div class='add'>+0x6051 = 0x560C</div><div class='add'>+0x6052 = 0x5601</div><div class='add'>+0x6053 = 0x5624</div><div class='add'>+0x6054 = 0x5623</div><div class='add'>+0x6055 = 0x55FE</div><div class='add'>+0x6056 = 0x5600</div><div class='add'>+0x6057 = 0x5627</div><div class='add'>+0x6058 = 0x562D</div><div class='add'>+0x6059 = 0x5658</div><div class='add'>+0x605A = 0x5639</div><div class='add'>+0x605B = 0x5657</div><div class='add'>+0x605C = 0x562C</div><div class='add'>+0x605D = 0x564D</div><div class='add'>+0x605E = 0x5662</div><div class='add'>+0x605F = 0x5659</div><div class='add'>+0x6060 = 0x565C</div><div class='add'>+0x6061 = 0x564C</div><div class='add'>+0x6062 = 0x5654</div><div class='add'>+0x6063 = 0x5686</div><div class='add'>+0x6064 = 0x5664</div><div class='add'>+0x6065 = 0x5671</div><div class='add'>+0x6066 = 0x566B</div><div class='add'>+0x6067 = 0x567B</div><div class='add'>+0x6068 = 0x567C</div><div class='add'>+0x6069 = 0x5685</div><div class='add'>+0x606A = 0x5693</div><div class='add'>+0x606B = 0x56AF</div><div class='add'>+0x606C = 0x56D4</div><div class='add'>+0x606D = 0x56D7</div><div class='add'>+0x606E = 0x56DD</div><div class='add'>+0x606F = 0x56E1</div><div class='add'>+0x6070 = 0x56F5</div><div class='add'>+0x6071 = 0x56EB</div><div class='add'>+0x6072 = 0x56F9</div><div class='add'>+0x6073 = 0x56FF</div><div class='add'>+0x6074 = 0x5704</div><div class='add'>+0x6075 = 0x570A</div><div class='add'>+0x6076 = 0x5709</div><div class='add'>+0x6077 = 0x571C</div><div class='add'>+0x6078 = 0x5E0F</div><div class='add'>+0x6079 = 0x5E19</div><div class='add'>+0x607A = 0x5E14</div><div class='add'>+0x607B = 0x5E11</div><div class='add'>+0x607C = 0x5E31</div><div class='add'>+0x607D = 0x5E3B</div><div class='add'>+0x607E = 0x5E3C</div><div class='add'>+0x6121 = 0x5E37</div><div class='add'>+0x6122 = 0x5E44</div><div class='add'>+0x6123 = 0x5E54</div><div class='add'>+0x6124 = 0x5E5B</div><div class='add'>+0x6125 = 0x5E5E</div><div class='add'>+0x6126 = 0x5E61</div><div class='add'>+0x6127 = 0x5C8C</div><div class='add'>+0x6128 = 0x5C7A</div><div class='add'>+0x6129 = 0x5C8D</div><div class='add'>+0x612A = 0x5C90</div><div class='add'>+0x612B = 0x5C96</div><div class='add'>+0x612C = 0x5C88</div><div class='add'>+0x612D = 0x5C98</div><div class='add'>+0x612E = 0x5C99</div><div class='add'>+0x612F = 0x5C91</div><div class='add'>+0x6130 = 0x5C9A</div><div class='add'>+0x6131 = 0x5C9C</div><div class='add'>+0x6132 = 0x5CB5</div><div class='add'>+0x6133 = 0x5CA2</div><div class='add'>+0x6134 = 0x5CBD</div><div class='add'>+0x6135 = 0x5CAC</div><div class='add'>+0x6136 = 0x5CAB</div><div class='add'>+0x6137 = 0x5CB1</div><div class='add'>+0x6138 = 0x5CA3</div><div class='add'>+0x6139 = 0x5CC1</div><div class='add'>+0x613A = 0x5CB7</div><div class='add'>+0x613B = 0x5CC4</div><div class='add'>+0x613C = 0x5CD2</div><div class='add'>+0x613D = 0x5CE4</div><div class='add'>+0x613E = 0x5CCB</div><div class='add'>+0x613F = 0x5CE5</div><div class='add'>+0x6140 = 0x5D02</div><div class='add'>+0x6141 = 0x5D03</div><div class='add'>+0x6142 = 0x5D27</div><div class='add'>+0x6143 = 0x5D26</div><div class='add'>+0x6144 = 0x5D2E</div><div class='add'>+0x6145 = 0x5D24</div><div class='add'>+0x6146 = 0x5D1E</div><div class='add'>+0x6147 = 0x5D06</div><div class='add'>+0x6148 = 0x5D1B</div><div class='add'>+0x6149 = 0x5D58</div><div class='add'>+0x614A = 0x5D3E</div><div class='add'>+0x614B = 0x5D34</div><div class='add'>+0x614C = 0x5D3D</div><div class='add'>+0x614D = 0x5D6C</div><div class='add'>+0x614E = 0x5D5B</div><div class='add'>+0x614F = 0x5D6F</div><div class='add'>+0x6150 = 0x5D5D</div><div class='add'>+0x6151 = 0x5D6B</div><div class='add'>+0x6152 = 0x5D4B</div><div class='add'>+0x6153 = 0x5D4A</div><div class='add'>+0x6154 = 0x5D69</div><div class='add'>+0x6155 = 0x5D74</div><div class='add'>+0x6156 = 0x5D82</div><div class='add'>+0x6157 = 0x5D99</div><div class='add'>+0x6158 = 0x5D9D</div><div class='add'>+0x6159 = 0x8C73</div><div class='add'>+0x615A = 0x5DB7</div><div class='add'>+0x615B = 0x5DC5</div><div class='add'>+0x615C = 0x5F73</div><div class='add'>+0x615D = 0x5F77</div><div class='add'>+0x615E = 0x5F82</div><div class='add'>+0x615F = 0x5F87</div><div class='add'>+0x6160 = 0x5F89</div><div class='add'>+0x6161 = 0x5F8C</div><div class='add'>+0x6162 = 0x5F95</div><div class='add'>+0x6163 = 0x5F99</div><div class='add'>+0x6164 = 0x5F9C</div><div class='add'>+0x6165 = 0x5FA8</div><div class='add'>+0x6166 = 0x5FAD</div><div class='add'>+0x6167 = 0x5FB5</div><div class='add'>+0x6168 = 0x5FBC</div><div class='add'>+0x6169 = 0x8862</div><div class='add'>+0x616A = 0x5F61</div><div class='add'>+0x616B = 0x72AD</div><div class='add'>+0x616C = 0x72B0</div><div class='add'>+0x616D = 0x72B4</div><div class='add'>+0x616E = 0x72B7</div><div class='add'>+0x616F = 0x72B8</div><div class='add'>+0x6170 = 0x72C3</div><div class='add'>+0x6171 = 0x72C1</div><div class='add'>+0x6172 = 0x72CE</div><div class='add'>+0x6173 = 0x72CD</div><div class='add'>+0x6174 = 0x72D2</div><div class='add'>+0x6175 = 0x72E8</div><div class='add'>+0x6176 = 0x72EF</div><div class='add'>+0x6177 = 0x72E9</div><div class='add'>+0x6178 = 0x72F2</div><div class='add'>+0x6179 = 0x72F4</div><div class='add'>+0x617A = 0x72F7</div><div class='add'>+0x617B = 0x7301</div><div class='add'>+0x617C = 0x72F3</div><div class='add'>+0x617D = 0x7303</div><div class='add'>+0x617E = 0x72FA</div><div class='add'>+0x6221 = 0x72FB</div><div class='add'>+0x6222 = 0x7317</div><div class='add'>+0x6223 = 0x7313</div><div class='add'>+0x6224 = 0x7321</div><div class='add'>+0x6225 = 0x730A</div><div class='add'>+0x6226 = 0x731E</div><div class='add'>+0x6227 = 0x731D</div><div class='add'>+0x6228 = 0x7315</div><div class='add'>+0x6229 = 0x7322</div><div class='add'>+0x622A = 0x7339</div><div class='add'>+0x622B = 0x7325</div><div class='add'>+0x622C = 0x732C</div><div class='add'>+0x622D = 0x7338</div><div class='add'>+0x622E = 0x7331</div><div class='add'>+0x622F = 0x7350</div><div class='add'>+0x6230 = 0x734D</div><div class='add'>+0x6231 = 0x7357</div><div class='add'>+0x6232 = 0x7360</div><div class='add'>+0x6233 = 0x736C</div><div class='add'>+0x6234 = 0x736F</div><div class='add'>+0x6235 = 0x737E</div><div class='add'>+0x6236 = 0x821B</div><div class='add'>+0x6237 = 0x5925</div><div class='add'>+0x6238 = 0x98E7</div><div class='add'>+0x6239 = 0x5924</div><div class='add'>+0x623A = 0x5902</div><div class='add'>+0x623B = 0x9963</div><div class='add'>+0x623C = 0x9967</div><div class='add'>+0x623D = 0x9968</div><div class='add'>+0x623E = 0x9969</div><div class='add'>+0x623F = 0x996A</div><div class='add'>+0x6240 = 0x996B</div><div class='add'>+0x6241 = 0x996C</div><div class='add'>+0x6242 = 0x9974</div><div class='add'>+0x6243 = 0x9977</div><div class='add'>+0x6244 = 0x997D</div><div class='add'>+0x6245 = 0x9980</div><div class='add'>+0x6246 = 0x9984</div><div class='add'>+0x6247 = 0x9987</div><div class='add'>+0x6248 = 0x998A</div><div class='add'>+0x6249 = 0x998D</div><div class='add'>+0x624A = 0x9990</div><div class='add'>+0x624B = 0x9991</div><div class='add'>+0x624C = 0x9993</div><div class='add'>+0x624D = 0x9994</div><div class='add'>+0x624E = 0x9995</div><div class='add'>+0x624F = 0x5E80</div><div class='add'>+0x6250 = 0x5E91</div><div class='add'>+0x6251 = 0x5E8B</div><div class='add'>+0x6252 = 0x5E96</div><div class='add'>+0x6253 = 0x5EA5</div><div class='add'>+0x6254 = 0x5EA0</div><div class='add'>+0x6255 = 0x5EB9</div><div class='add'>+0x6256 = 0x5EB5</div><div class='add'>+0x6257 = 0x5EBE</div><div class='add'>+0x6258 = 0x5EB3</div><div class='add'>+0x6259 = 0x8D53</div><div class='add'>+0x625A = 0x5ED2</div><div class='add'>+0x625B = 0x5ED1</div><div class='add'>+0x625C = 0x5EDB</div><div class='add'>+0x625D = 0x5EE8</div><div class='add'>+0x625E = 0x5EEA</div><div class='add'>+0x625F = 0x81BA</div><div class='add'>+0x6260 = 0x5FC4</div><div class='add'>+0x6261 = 0x5FC9</div><div class='add'>+0x6262 = 0x5FD6</div><div class='add'>+0x6263 = 0x5FCF</div><div class='add'>+0x6264 = 0x6003</div><div class='add'>+0x6265 = 0x5FEE</div><div class='add'>+0x6266 = 0x6004</div><div class='add'>+0x6267 = 0x5FE1</div><div class='add'>+0x6268 = 0x5FE4</div><div class='add'>+0x6269 = 0x5FFE</div><div class='add'>+0x626A = 0x6005</div><div class='add'>+0x626B = 0x6006</div><div class='add'>+0x626C = 0x5FEA</div><div class='add'>+0x626D = 0x5FED</div><div class='add'>+0x626E = 0x5FF8</div><div class='add'>+0x626F = 0x6019</div><div class='add'>+0x6270 = 0x6035</div><div class='add'>+0x6271 = 0x6026</div><div class='add'>+0x6272 = 0x601B</div><div class='add'>+0x6273 = 0x600F</div><div class='add'>+0x6274 = 0x600D</div><div class='add'>+0x6275 = 0x6029</div><div class='add'>+0x6276 = 0x602B</div><div class='add'>+0x6277 = 0x600A</div><div class='add'>+0x6278 = 0x603F</div><div class='add'>+0x6279 = 0x6021</div><div class='add'>+0x627A = 0x6078</div><div class='add'>+0x627B = 0x6079</div><div class='add'>+0x627C = 0x607B</div><div class='add'>+0x627D = 0x607A</div><div class='add'>+0x627E = 0x6042</div><div class='add'>+0x6321 = 0x606A</div><div class='add'>+0x6322 = 0x607D</div><div class='add'>+0x6323 = 0x6096</div><div class='add'>+0x6324 = 0x609A</div><div class='add'>+0x6325 = 0x60AD</div><div class='add'>+0x6326 = 0x609D</div><div class='add'>+0x6327 = 0x6083</div><div class='add'>+0x6328 = 0x6092</div><div class='add'>+0x6329 = 0x608C</div><div class='add'>+0x632A = 0x609B</div><div class='add'>+0x632B = 0x60EC</div><div class='add'>+0x632C = 0x60BB</div><div class='add'>+0x632D = 0x60B1</div><div class='add'>+0x632E = 0x60DD</div><div class='add'>+0x632F = 0x60D8</div><div class='add'>+0x6330 = 0x60C6</div><div class='add'>+0x6331 = 0x60DA</div><div class='add'>+0x6332 = 0x60B4</div><div class='add'>+0x6333 = 0x6120</div><div class='add'>+0x6334 = 0x6126</div><div class='add'>+0x6335 = 0x6115</div><div class='add'>+0x6336 = 0x6123</div><div class='add'>+0x6337 = 0x60F4</div><div class='add'>+0x6338 = 0x6100</div><div class='add'>+0x6339 = 0x610E</div><div class='add'>+0x633A = 0x612B</div><div class='add'>+0x633B = 0x614A</div><div class='add'>+0x633C = 0x6175</div><div class='add'>+0x633D = 0x61AC</div><div class='add'>+0x633E = 0x6194</div><div class='add'>+0x633F = 0x61A7</div><div class='add'>+0x6340 = 0x61B7</div><div class='add'>+0x6341 = 0x61D4</div><div class='add'>+0x6342 = 0x61F5</div><div class='add'>+0x6343 = 0x5FDD</div><div class='add'>+0x6344 = 0x96B3</div><div class='add'>+0x6345 = 0x95E9</div><div class='add'>+0x6346 = 0x95EB</div><div class='add'>+0x6347 = 0x95F1</div><div class='add'>+0x6348 = 0x95F3</div><div class='add'>+0x6349 = 0x95F5</div><div class='add'>+0x634A = 0x95F6</div><div class='add'>+0x634B = 0x95FC</div><div class='add'>+0x634C = 0x95FE</div><div class='add'>+0x634D = 0x9603</div><div class='add'>+0x634E = 0x9604</div><div class='add'>+0x634F = 0x9606</div><div class='add'>+0x6350 = 0x9608</div><div class='add'>+0x6351 = 0x960A</div><div class='add'>+0x6352 = 0x960B</div><div class='add'>+0x6353 = 0x960C</div><div class='add'>+0x6354 = 0x960D</div><div class='add'>+0x6355 = 0x960F</div><div class='add'>+0x6356 = 0x9612</div><div class='add'>+0x6357 = 0x9615</div><div class='add'>+0x6358 = 0x9616</div><div class='add'>+0x6359 = 0x9617</div><div class='add'>+0x635A = 0x9619</div><div class='add'>+0x635B = 0x961A</div><div class='add'>+0x635C = 0x4E2C</div><div class='add'>+0x635D = 0x723F</div><div class='add'>+0x635E = 0x6215</div><div class='add'>+0x635F = 0x6C35</div><div class='add'>+0x6360 = 0x6C54</div><div class='add'>+0x6361 = 0x6C5C</div><div class='add'>+0x6362 = 0x6C4A</div><div class='add'>+0x6363 = 0x6CA3</div><div class='add'>+0x6364 = 0x6C85</div><div class='add'>+0x6365 = 0x6C90</div><div class='add'>+0x6366 = 0x6C94</div><div class='add'>+0x6367 = 0x6C8C</div><div class='add'>+0x6368 = 0x6C68</div><div class='add'>+0x6369 = 0x6C69</div><div class='add'>+0x636A = 0x6C74</div><div class='add'>+0x636B = 0x6C76</div><div class='add'>+0x636C = 0x6C86</div><div class='add'>+0x636D = 0x6CA9</div><div class='add'>+0x636E = 0x6CD0</div><div class='add'>+0x636F = 0x6CD4</div><div class='add'>+0x6370 = 0x6CAD</div><div class='add'>+0x6371 = 0x6CF7</div><div class='add'>+0x6372 = 0x6CF8</div><div class='add'>+0x6373 = 0x6CF1</div><div class='add'>+0x6374 = 0x6CD7</div><div class='add'>+0x6375 = 0x6CB2</div><div class='add'>+0x6376 = 0x6CE0</div><div class='add'>+0x6377 = 0x6CD6</div><div class='add'>+0x6378 = 0x6CFA</div><div class='add'>+0x6379 = 0x6CEB</div><div class='add'>+0x637A = 0x6CEE</div><div class='add'>+0x637B = 0x6CB1</div><div class='add'>+0x637C = 0x6CD3</div><div class='add'>+0x637D = 0x6CEF</div><div class='add'>+0x637E = 0x6CFE</div><div class='add'>+0x6421 = 0x6D39</div><div class='add'>+0x6422 = 0x6D27</div><div class='add'>+0x6423 = 0x6D0C</div><div class='add'>+0x6424 = 0x6D43</div><div class='add'>+0x6425 = 0x6D48</div><div class='add'>+0x6426 = 0x6D07</div><div class='add'>+0x6427 = 0x6D04</div><div class='add'>+0x6428 = 0x6D19</div><div class='add'>+0x6429 = 0x6D0E</div><div class='add'>+0x642A = 0x6D2B</div><div class='add'>+0x642B = 0x6D4D</div><div class='add'>+0x642C = 0x6D2E</div><div class='add'>+0x642D = 0x6D35</div><div class='add'>+0x642E = 0x6D1A</div><div class='add'>+0x642F = 0x6D4F</div><div class='add'>+0x6430 = 0x6D52</div><div class='add'>+0x6431 = 0x6D54</div><div class='add'>+0x6432 = 0x6D33</div><div class='add'>+0x6433 = 0x6D91</div><div class='add'>+0x6434 = 0x6D6F</div><div class='add'>+0x6435 = 0x6D9E</div><div class='add'>+0x6436 = 0x6DA0</div><div class='add'>+0x6437 = 0x6D5E</div><div class='add'>+0x6438 = 0x6D93</div><div class='add'>+0x6439 = 0x6D94</div><div class='add'>+0x643A = 0x6D5C</div><div class='add'>+0x643B = 0x6D60</div><div class='add'>+0x643C = 0x6D7C</div><div class='add'>+0x643D = 0x6D63</div><div class='add'>+0x643E = 0x6E1A</div><div class='add'>+0x643F = 0x6DC7</div><div class='add'>+0x6440 = 0x6DC5</div><div class='add'>+0x6441 = 0x6DDE</div><div class='add'>+0x6442 = 0x6E0E</div><div class='add'>+0x6443 = 0x6DBF</div><div class='add'>+0x6444 = 0x6DE0</div><div class='add'>+0x6445 = 0x6E11</div><div class='add'>+0x6446 = 0x6DE6</div><div class='add'>+0x6447 = 0x6DDD</div><div class='add'>+0x6448 = 0x6DD9</div><div class='add'>+0x6449 = 0x6E16</div><div class='add'>+0x644A = 0x6DAB</div><div class='add'>+0x644B = 0x6E0C</div><div class='add'>+0x644C = 0x6DAE</div><div class='add'>+0x644D = 0x6E2B</div><div class='add'>+0x644E = 0x6E6E</div><div class='add'>+0x644F = 0x6E4E</div><div class='add'>+0x6450 = 0x6E6B</div><div class='add'>+0x6451 = 0x6EB2</div><div class='add'>+0x6452 = 0x6E5F</div><div class='add'>+0x6453 = 0x6E86</div><div class='add'>+0x6454 = 0x6E53</div><div class='add'>+0x6455 = 0x6E54</div><div class='add'>+0x6456 = 0x6E32</div><div class='add'>+0x6457 = 0x6E25</div><div class='add'>+0x6458 = 0x6E44</div><div class='add'>+0x6459 = 0x6EDF</div><div class='add'>+0x645A = 0x6EB1</div><div class='add'>+0x645B = 0x6E98</div><div class='add'>+0x645C = 0x6EE0</div><div class='add'>+0x645D = 0x6F2D</div><div class='add'>+0x645E = 0x6EE2</div><div class='add'>+0x645F = 0x6EA5</div><div class='add'>+0x6460 = 0x6EA7</div><div class='add'>+0x6461 = 0x6EBD</div><div class='add'>+0x6462 = 0x6EBB</div><div class='add'>+0x6463 = 0x6EB7</div><div class='add'>+0x6464 = 0x6ED7</div><div class='add'>+0x6465 = 0x6EB4</div><div class='add'>+0x6466 = 0x6ECF</div><div class='add'>+0x6467 = 0x6E8F</div><div class='add'>+0x6468 = 0x6EC2</div><div class='add'>+0x6469 = 0x6E9F</div><div class='add'>+0x646A = 0x6F62</div><div class='add'>+0x646B = 0x6F46</div><div class='add'>+0x646C = 0x6F47</div><div class='add'>+0x646D = 0x6F24</div><div class='add'>+0x646E = 0x6F15</div><div class='add'>+0x646F = 0x6EF9</div><div class='add'>+0x6470 = 0x6F2F</div><div class='add'>+0x6471 = 0x6F36</div><div class='add'>+0x6472 = 0x6F4B</div><div class='add'>+0x6473 = 0x6F74</div><div class='add'>+0x6474 = 0x6F2A</div><div class='add'>+0x6475 = 0x6F09</div><div class='add'>+0x6476 = 0x6F29</div><div class='add'>+0x6477 = 0x6F89</div><div class='add'>+0x6478 = 0x6F8D</div><div class='add'>+0x6479 = 0x6F8C</div><div class='add'>+0x647A = 0x6F78</div><div class='add'>+0x647B = 0x6F72</div><div class='add'>+0x647C = 0x6F7C</div><div class='add'>+0x647D = 0x6F7A</div><div class='add'>+0x647E = 0x6FD1</div><div class='add'>+0x6521 = 0x6FC9</div><div class='add'>+0x6522 = 0x6FA7</div><div class='add'>+0x6523 = 0x6FB9</div><div class='add'>+0x6524 = 0x6FB6</div><div class='add'>+0x6525 = 0x6FC2</div><div class='add'>+0x6526 = 0x6FE1</div><div class='add'>+0x6527 = 0x6FEE</div><div class='add'>+0x6528 = 0x6FDE</div><div class='add'>+0x6529 = 0x6FE0</div><div class='add'>+0x652A = 0x6FEF</div><div class='add'>+0x652B = 0x701A</div><div class='add'>+0x652C = 0x7023</div><div class='add'>+0x652D = 0x701B</div><div class='add'>+0x652E = 0x7039</div><div class='add'>+0x652F = 0x7035</div><div class='add'>+0x6530 = 0x704F</div><div class='add'>+0x6531 = 0x705E</div><div class='add'>+0x6532 = 0x5B80</div><div class='add'>+0x6533 = 0x5B84</div><div class='add'>+0x6534 = 0x5B95</div><div class='add'>+0x6535 = 0x5B93</div><div class='add'>+0x6536 = 0x5BA5</div><div class='add'>+0x6537 = 0x5BB8</div><div class='add'>+0x6538 = 0x752F</div><div class='add'>+0x6539 = 0x9A9E</div><div class='add'>+0x653A = 0x6434</div><div class='add'>+0x653B = 0x5BE4</div><div class='add'>+0x653C = 0x5BEE</div><div class='add'>+0x653D = 0x8930</div><div class='add'>+0x653E = 0x5BF0</div><div class='add'>+0x653F = 0x8E47</div><div class='add'>+0x6540 = 0x8B07</div><div class='add'>+0x6541 = 0x8FB6</div><div class='add'>+0x6542 = 0x8FD3</div><div class='add'>+0x6543 = 0x8FD5</div><div class='add'>+0x6544 = 0x8FE5</div><div class='add'>+0x6545 = 0x8FEE</div><div class='add'>+0x6546 = 0x8FE4</div><div class='add'>+0x6547 = 0x8FE9</div><div class='add'>+0x6548 = 0x8FE6</div><div class='add'>+0x6549 = 0x8FF3</div><div class='add'>+0x654A = 0x8FE8</div><div class='add'>+0x654B = 0x9005</div><div class='add'>+0x654C = 0x9004</div><div class='add'>+0x654D = 0x900B</div><div class='add'>+0x654E = 0x9026</div><div class='add'>+0x654F = 0x9011</div><div class='add'>+0x6550 = 0x900D</div><div class='add'>+0x6551 = 0x9016</div><div class='add'>+0x6552 = 0x9021</div><div class='add'>+0x6553 = 0x9035</div><div class='add'>+0x6554 = 0x9036</div><div class='add'>+0x6555 = 0x902D</div><div class='add'>+0x6556 = 0x902F</div><div class='add'>+0x6557 = 0x9044</div><div class='add'>+0x6558 = 0x9051</div><div class='add'>+0x6559 = 0x9052</div><div class='add'>+0x655A = 0x9050</div><div class='add'>+0x655B = 0x9068</div><div class='add'>+0x655C = 0x9058</div><div class='add'>+0x655D = 0x9062</div><div class='add'>+0x655E = 0x905B</div><div class='add'>+0x655F = 0x66B9</div><div class='add'>+0x6560 = 0x9074</div><div class='add'>+0x6561 = 0x907D</div><div class='add'>+0x6562 = 0x9082</div><div class='add'>+0x6563 = 0x9088</div><div class='add'>+0x6564 = 0x9083</div><div class='add'>+0x6565 = 0x908B</div><div class='add'>+0x6566 = 0x5F50</div><div class='add'>+0x6567 = 0x5F57</div><div class='add'>+0x6568 = 0x5F56</div><div class='add'>+0x6569 = 0x5F58</div><div class='add'>+0x656A = 0x5C3B</div><div class='add'>+0x656B = 0x54AB</div><div class='add'>+0x656C = 0x5C50</div><div class='add'>+0x656D = 0x5C59</div><div class='add'>+0x656E = 0x5B71</div><div class='add'>+0x656F = 0x5C63</div><div class='add'>+0x6570 = 0x5C66</div><div class='add'>+0x6571 = 0x7FBC</div><div class='add'>+0x6572 = 0x5F2A</div><div class='add'>+0x6573 = 0x5F29</div><div class='add'>+0x6574 = 0x5F2D</div><div class='add'>+0x6575 = 0x8274</div><div class='add'>+0x6576 = 0x5F3C</div><div class='add'>+0x6577 = 0x9B3B</div><div class='add'>+0x6578 = 0x5C6E</div><div class='add'>+0x6579 = 0x5981</div><div class='add'>+0x657A = 0x5983</div><div class='add'>+0x657B = 0x598D</div><div class='add'>+0x657C = 0x59A9</div><div class='add'>+0x657D = 0x59AA</div><div class='add'>+0x657E = 0x59A3</div><div class='add'>+0x6621 = 0x5997</div><div class='add'>+0x6622 = 0x59CA</div><div class='add'>+0x6623 = 0x59AB</div><div class='add'>+0x6624 = 0x599E</div><div class='add'>+0x6625 = 0x59A4</div><div class='add'>+0x6626 = 0x59D2</div><div class='add'>+0x6627 = 0x59B2</div><div class='add'>+0x6628 = 0x59AF</div><div class='add'>+0x6629 = 0x59D7</div><div class='add'>+0x662A = 0x59BE</div><div class='add'>+0x662B = 0x5A05</div><div class='add'>+0x662C = 0x5A06</div><div class='add'>+0x662D = 0x59DD</div><div class='add'>+0x662E = 0x5A08</div><div class='add'>+0x662F = 0x59E3</div><div class='add'>+0x6630 = 0x59D8</div><div class='add'>+0x6631 = 0x59F9</div><div class='add'>+0x6632 = 0x5A0C</div><div class='add'>+0x6633 = 0x5A09</div><div class='add'>+0x6634 = 0x5A32</div><div class='add'>+0x6635 = 0x5A34</div><div class='add'>+0x6636 = 0x5A11</div><div class='add'>+0x6637 = 0x5A23</div><div class='add'>+0x6638 = 0x5A13</div><div class='add'>+0x6639 = 0x5A40</div><div class='add'>+0x663A = 0x5A67</div><div class='add'>+0x663B = 0x5A4A</div><div class='add'>+0x663C = 0x5A55</div><div class='add'>+0x663D = 0x5A3C</div><div class='add'>+0x663E = 0x5A62</div><div class='add'>+0x663F = 0x5A75</div><div class='add'>+0x6640 = 0x80EC</div><div class='add'>+0x6641 = 0x5AAA</div><div class='add'>+0x6642 = 0x5A9B</div><div class='add'>+0x6643 = 0x5A77</div><div class='add'>+0x6644 = 0x5A7A</div><div class='add'>+0x6645 = 0x5ABE</div><div class='add'>+0x6646 = 0x5AEB</div><div class='add'>+0x6647 = 0x5AB2</div><div class='add'>+0x6648 = 0x5AD2</div><div class='add'>+0x6649 = 0x5AD4</div><div class='add'>+0x664A = 0x5AB8</div><div class='add'>+0x664B = 0x5AE0</div><div class='add'>+0x664C = 0x5AE3</div><div class='add'>+0x664D = 0x5AF1</div><div class='add'>+0x664E = 0x5AD6</div><div class='add'>+0x664F = 0x5AE6</div><div class='add'>+0x6650 = 0x5AD8</div><div class='add'>+0x6651 = 0x5ADC</div><div class='add'>+0x6652 = 0x5B09</div><div class='add'>+0x6653 = 0x5B17</div><div class='add'>+0x6654 = 0x5B16</div><div class='add'>+0x6655 = 0x5B32</div><div class='add'>+0x6656 = 0x5B37</div><div class='add'>+0x6657 = 0x5B40</div><div class='add'>+0x6658 = 0x5C15</div><div class='add'>+0x6659 = 0x5C1C</div><div class='add'>+0x665A = 0x5B5A</div><div class='add'>+0x665B = 0x5B65</div><div class='add'>+0x665C = 0x5B73</div><div class='add'>+0x665D = 0x5B51</div><div class='add'>+0x665E = 0x5B53</div><div class='add'>+0x665F = 0x5B62</div><div class='add'>+0x6660 = 0x9A75</div><div class='add'>+0x6661 = 0x9A77</div><div class='add'>+0x6662 = 0x9A78</div><div class='add'>+0x6663 = 0x9A7A</div><div class='add'>+0x6664 = 0x9A7F</div><div class='add'>+0x6665 = 0x9A7D</div><div class='add'>+0x6666 = 0x9A80</div><div class='add'>+0x6667 = 0x9A81</div><div class='add'>+0x6668 = 0x9A85</div><div class='add'>+0x6669 = 0x9A88</div><div class='add'>+0x666A = 0x9A8A</div><div class='add'>+0x666B = 0x9A90</div><div class='add'>+0x666C = 0x9A92</div><div class='add'>+0x666D = 0x9A93</div><div class='add'>+0x666E = 0x9A96</div><div class='add'>+0x666F = 0x9A98</div><div class='add'>+0x6670 = 0x9A9B</div><div class='add'>+0x6671 = 0x9A9C</div><div class='add'>+0x6672 = 0x9A9D</div><div class='add'>+0x6673 = 0x9A9F</div><div class='add'>+0x6674 = 0x9AA0</div><div class='add'>+0x6675 = 0x9AA2</div><div class='add'>+0x6676 = 0x9AA3</div><div class='add'>+0x6677 = 0x9AA5</div><div class='add'>+0x6678 = 0x9AA7</div><div class='add'>+0x6679 = 0x7E9F</div><div class='add'>+0x667A = 0x7EA1</div><div class='add'>+0x667B = 0x7EA3</div><div class='add'>+0x667C = 0x7EA5</div><div class='add'>+0x667D = 0x7EA8</div><div class='add'>+0x667E = 0x7EA9</div><div class='add'>+0x6721 = 0x7EAD</div><div class='add'>+0x6722 = 0x7EB0</div><div class='add'>+0x6723 = 0x7EBE</div><div class='add'>+0x6724 = 0x7EC0</div><div class='add'>+0x6725 = 0x7EC1</div><div class='add'>+0x6726 = 0x7EC2</div><div class='add'>+0x6727 = 0x7EC9</div><div class='add'>+0x6728 = 0x7ECB</div><div class='add'>+0x6729 = 0x7ECC</div><div class='add'>+0x672A = 0x7ED0</div><div class='add'>+0x672B = 0x7ED4</div><div class='add'>+0x672C = 0x7ED7</div><div class='add'>+0x672D = 0x7EDB</div><div class='add'>+0x672E = 0x7EE0</div><div class='add'>+0x672F = 0x7EE1</div><div class='add'>+0x6730 = 0x7EE8</div><div class='add'>+0x6731 = 0x7EEB</div><div class='add'>+0x6732 = 0x7EEE</div><div class='add'>+0x6733 = 0x7EEF</div><div class='add'>+0x6734 = 0x7EF1</div><div class='add'>+0x6735 = 0x7EF2</div><div class='add'>+0x6736 = 0x7F0D</div><div class='add'>+0x6737 = 0x7EF6</div><div class='add'>+0x6738 = 0x7EFA</div><div class='add'>+0x6739 = 0x7EFB</div><div class='add'>+0x673A = 0x7EFE</div><div class='add'>+0x673B = 0x7F01</div><div class='add'>+0x673C = 0x7F02</div><div class='add'>+0x673D = 0x7F03</div><div class='add'>+0x673E = 0x7F07</div><div class='add'>+0x673F = 0x7F08</div><div class='add'>+0x6740 = 0x7F0B</div><div class='add'>+0x6741 = 0x7F0C</div><div class='add'>+0x6742 = 0x7F0F</div><div class='add'>+0x6743 = 0x7F11</div><div class='add'>+0x6744 = 0x7F12</div><div class='add'>+0x6745 = 0x7F17</div><div class='add'>+0x6746 = 0x7F19</div><div class='add'>+0x6747 = 0x7F1C</div><div class='add'>+0x6748 = 0x7F1B</div><div class='add'>+0x6749 = 0x7F1F</div><div class='add'>+0x674A = 0x7F21</div><div class='add'>+0x674B = 0x7F22</div><div class='add'>+0x674C = 0x7F23</div><div class='add'>+0x674D = 0x7F24</div><div class='add'>+0x674E = 0x7F25</div><div class='add'>+0x674F = 0x7F26</div><div class='add'>+0x6750 = 0x7F27</div><div class='add'>+0x6751 = 0x7F2A</div><div class='add'>+0x6752 = 0x7F2B</div><div class='add'>+0x6753 = 0x7F2C</div><div class='add'>+0x6754 = 0x7F2D</div><div class='add'>+0x6755 = 0x7F2F</div><div class='add'>+0x6756 = 0x7F30</div><div class='add'>+0x6757 = 0x7F31</div><div class='add'>+0x6758 = 0x7F32</div><div class='add'>+0x6759 = 0x7F33</div><div class='add'>+0x675A = 0x7F35</div><div class='add'>+0x675B = 0x5E7A</div><div class='add'>+0x675C = 0x757F</div><div class='add'>+0x675D = 0x5DDB</div><div class='add'>+0x675E = 0x753E</div><div class='add'>+0x675F = 0x9095</div><div class='add'>+0x6760 = 0x738E</div><div class='add'>+0x6761 = 0x7391</div><div class='add'>+0x6762 = 0x73AE</div><div class='add'>+0x6763 = 0x73A2</div><div class='add'>+0x6764 = 0x739F</div><div class='add'>+0x6765 = 0x73CF</div><div class='add'>+0x6766 = 0x73C2</div><div class='add'>+0x6767 = 0x73D1</div><div class='add'>+0x6768 = 0x73B7</div><div class='add'>+0x6769 = 0x73B3</div><div class='add'>+0x676A = 0x73C0</div><div class='add'>+0x676B = 0x73C9</div><div class='add'>+0x676C = 0x73C8</div><div class='add'>+0x676D = 0x73E5</div><div class='add'>+0x676E = 0x73D9</div><div class='add'>+0x676F = 0x987C</div><div class='add'>+0x6770 = 0x740A</div><div class='add'>+0x6771 = 0x73E9</div><div class='add'>+0x6772 = 0x73E7</div><div class='add'>+0x6773 = 0x73DE</div><div class='add'>+0x6774 = 0x73BA</div><div class='add'>+0x6775 = 0x73F2</div><div class='add'>+0x6776 = 0x740F</div><div class='add'>+0x6777 = 0x742A</div><div class='add'>+0x6778 = 0x745B</div><div class='add'>+0x6779 = 0x7426</div><div class='add'>+0x677A = 0x7425</div><div class='add'>+0x677B = 0x7428</div><div class='add'>+0x677C = 0x7430</div><div class='add'>+0x677D = 0x742E</div><div class='add'>+0x677E = 0x742C</div><div class='add'>+0x6821 = 0x741B</div><div class='add'>+0x6822 = 0x741A</div><div class='add'>+0x6823 = 0x7441</div><div class='add'>+0x6824 = 0x745C</div><div class='add'>+0x6825 = 0x7457</div><div class='add'>+0x6826 = 0x7455</div><div class='add'>+0x6827 = 0x7459</div><div class='add'>+0x6828 = 0x7477</div><div class='add'>+0x6829 = 0x746D</div><div class='add'>+0x682A = 0x747E</div><div class='add'>+0x682B = 0x749C</div><div class='add'>+0x682C = 0x748E</div><div class='add'>+0x682D = 0x7480</div><div class='add'>+0x682E = 0x7481</div><div class='add'>+0x682F = 0x7487</div><div class='add'>+0x6830 = 0x748B</div><div class='add'>+0x6831 = 0x749E</div><div class='add'>+0x6832 = 0x74A8</div><div class='add'>+0x6833 = 0x74A9</div><div class='add'>+0x6834 = 0x7490</div><div class='add'>+0x6835 = 0x74A7</div><div class='add'>+0x6836 = 0x74D2</div><div class='add'>+0x6837 = 0x74BA</div><div class='add'>+0x6838 = 0x97EA</div><div class='add'>+0x6839 = 0x97EB</div><div class='add'>+0x683A = 0x97EC</div><div class='add'>+0x683B = 0x674C</div><div class='add'>+0x683C = 0x6753</div><div class='add'>+0x683D = 0x675E</div><div class='add'>+0x683E = 0x6748</div><div class='add'>+0x683F = 0x6769</div><div class='add'>+0x6840 = 0x67A5</div><div class='add'>+0x6841 = 0x6787</div><div class='add'>+0x6842 = 0x676A</div><div class='add'>+0x6843 = 0x6773</div><div class='add'>+0x6844 = 0x6798</div><div class='add'>+0x6845 = 0x67A7</div><div class='add'>+0x6846 = 0x6775</div><div class='add'>+0x6847 = 0x67A8</div><div class='add'>+0x6848 = 0x679E</div><div class='add'>+0x6849 = 0x67AD</div><div class='add'>+0x684A = 0x678B</div><div class='add'>+0x684B = 0x6777</div><div class='add'>+0x684C = 0x677C</div><div class='add'>+0x684D = 0x67F0</div><div class='add'>+0x684E = 0x6809</div><div class='add'>+0x684F = 0x67D8</div><div class='add'>+0x6850 = 0x680A</div><div class='add'>+0x6851 = 0x67E9</div><div class='add'>+0x6852 = 0x67B0</div><div class='add'>+0x6853 = 0x680C</div><div class='add'>+0x6854 = 0x67D9</div><div class='add'>+0x6855 = 0x67B5</div><div class='add'>+0x6856 = 0x67DA</div><div class='add'>+0x6857 = 0x67B3</div><div class='add'>+0x6858 = 0x67DD</div><div class='add'>+0x6859 = 0x6800</div><div class='add'>+0x685A = 0x67C3</div><div class='add'>+0x685B = 0x67B8</div><div class='add'>+0x685C = 0x67E2</div><div class='add'>+0x685D = 0x680E</div><div class='add'>+0x685E = 0x67C1</div><div class='add'>+0x685F = 0x67FD</div><div class='add'>+0x6860 = 0x6832</div><div class='add'>+0x6861 = 0x6833</div><div class='add'>+0x6862 = 0x6860</div><div class='add'>+0x6863 = 0x6861</div><div class='add'>+0x6864 = 0x684E</div><div class='add'>+0x6865 = 0x6862</div><div class='add'>+0x6866 = 0x6844</div><div class='add'>+0x6867 = 0x6864</div><div class='add'>+0x6868 = 0x6883</div><div class='add'>+0x6869 = 0x681D</div><div class='add'>+0x686A = 0x6855</div><div class='add'>+0x686B = 0x6866</div><div class='add'>+0x686C = 0x6841</div><div class='add'>+0x686D = 0x6867</div><div class='add'>+0x686E = 0x6840</div><div class='add'>+0x686F = 0x683E</div><div class='add'>+0x6870 = 0x684A</div><div class='add'>+0x6871 = 0x6849</div><div class='add'>+0x6872 = 0x6829</div><div class='add'>+0x6873 = 0x68B5</div><div class='add'>+0x6874 = 0x688F</div><div class='add'>+0x6875 = 0x6874</div><div class='add'>+0x6876 = 0x6877</div><div class='add'>+0x6877 = 0x6893</div><div class='add'>+0x6878 = 0x686B</div><div class='add'>+0x6879 = 0x68C2</div><div class='add'>+0x687A = 0x696E</div><div class='add'>+0x687B = 0x68FC</div><div class='add'>+0x687C = 0x691F</div><div class='add'>+0x687D = 0x6920</div><div class='add'>+0x687E = 0x68F9</div><div class='add'>+0x6921 = 0x6924</div><div class='add'>+0x6922 = 0x68F0</div><div class='add'>+0x6923 = 0x690B</div><div class='add'>+0x6924 = 0x6901</div><div class='add'>+0x6925 = 0x6957</div><div class='add'>+0x6926 = 0x68E3</div><div class='add'>+0x6927 = 0x6910</div><div class='add'>+0x6928 = 0x6971</div><div class='add'>+0x6929 = 0x6939</div><div class='add'>+0x692A = 0x6960</div><div class='add'>+0x692B = 0x6942</div><div class='add'>+0x692C = 0x695D</div><div class='add'>+0x692D = 0x6984</div><div class='add'>+0x692E = 0x696B</div><div class='add'>+0x692F = 0x6980</div><div class='add'>+0x6930 = 0x6998</div><div class='add'>+0x6931 = 0x6978</div><div class='add'>+0x6932 = 0x6934</div><div class='add'>+0x6933 = 0x69CC</div><div class='add'>+0x6934 = 0x6987</div><div class='add'>+0x6935 = 0x6988</div><div class='add'>+0x6936 = 0x69CE</div><div class='add'>+0x6937 = 0x6989</div><div class='add'>+0x6938 = 0x6966</div><div class='add'>+0x6939 = 0x6963</div><div class='add'>+0x693A = 0x6979</div><div class='add'>+0x693B = 0x699B</div><div class='add'>+0x693C = 0x69A7</div><div class='add'>+0x693D = 0x69BB</div><div class='add'>+0x693E = 0x69AB</div><div class='add'>+0x693F = 0x69AD</div><div class='add'>+0x6940 = 0x69D4</div><div class='add'>+0x6941 = 0x69B1</div><div class='add'>+0x6942 = 0x69C1</div><div class='add'>+0x6943 = 0x69CA</div><div class='add'>+0x6944 = 0x69DF</div><div class='add'>+0x6945 = 0x6995</div><div class='add'>+0x6946 = 0x69E0</div><div class='add'>+0x6947 = 0x698D</div><div class='add'>+0x6948 = 0x69FF</div><div class='add'>+0x6949 = 0x6A2F</div><div class='add'>+0x694A = 0x69ED</div><div class='add'>+0x694B = 0x6A17</div><div class='add'>+0x694C = 0x6A18</div><div class='add'>+0x694D = 0x6A65</div><div class='add'>+0x694E = 0x69F2</div><div class='add'>+0x694F = 0x6A44</div><div class='add'>+0x6950 = 0x6A3E</div><div class='add'>+0x6951 = 0x6AA0</div><div class='add'>+0x6952 = 0x6A50</div><div class='add'>+0x6953 = 0x6A5B</div><div class='add'>+0x6954 = 0x6A35</div><div class='add'>+0x6955 = 0x6A8E</div><div class='add'>+0x6956 = 0x6A79</div><div class='add'>+0x6957 = 0x6A3D</div><div class='add'>+0x6958 = 0x6A28</div><div class='add'>+0x6959 = 0x6A58</div><div class='add'>+0x695A = 0x6A7C</div><div class='add'>+0x695B = 0x6A91</div><div class='add'>+0x695C = 0x6A90</div><div class='add'>+0x695D = 0x6AA9</div><div class='add'>+0x695E = 0x6A97</div><div class='add'>+0x695F = 0x6AAB</div><div class='add'>+0x6960 = 0x7337</div><div class='add'>+0x6961 = 0x7352</div><div class='add'>+0x6962 = 0x6B81</div><div class='add'>+0x6963 = 0x6B82</div><div class='add'>+0x6964 = 0x6B87</div><div class='add'>+0x6965 = 0x6B84</div><div class='add'>+0x6966 = 0x6B92</div><div class='add'>+0x6967 = 0x6B93</div><div class='add'>+0x6968 = 0x6B8D</div><div class='add'>+0x6969 = 0x6B9A</div><div class='add'>+0x696A = 0x6B9B</div><div class='add'>+0x696B = 0x6BA1</div><div class='add'>+0x696C = 0x6BAA</div><div class='add'>+0x696D = 0x8F6B</div><div class='add'>+0x696E = 0x8F6D</div><div class='add'>+0x696F = 0x8F71</div><div class='add'>+0x6970 = 0x8F72</div><div class='add'>+0x6971 = 0x8F73</div><div class='add'>+0x6972 = 0x8F75</div><div class='add'>+0x6973 = 0x8F76</div><div class='add'>+0x6974 = 0x8F78</div><div class='add'>+0x6975 = 0x8F77</div><div class='add'>+0x6976 = 0x8F79</div><div class='add'>+0x6977 = 0x8F7A</div><div class='add'>+0x6978 = 0x8F7C</div><div class='add'>+0x6979 = 0x8F7E</div><div class='add'>+0x697A = 0x8F81</div><div class='add'>+0x697B = 0x8F82</div><div class='add'>+0x697C = 0x8F84</div><div class='add'>+0x697D = 0x8F87</div><div class='add'>+0x697E = 0x8F8B</div><div class='add'>+0x6A21 = 0x8F8D</div><div class='add'>+0x6A22 = 0x8F8E</div><div class='add'>+0x6A23 = 0x8F8F</div><div class='add'>+0x6A24 = 0x8F98</div><div class='add'>+0x6A25 = 0x8F9A</div><div class='add'>+0x6A26 = 0x8ECE</div><div class='add'>+0x6A27 = 0x620B</div><div class='add'>+0x6A28 = 0x6217</div><div class='add'>+0x6A29 = 0x621B</div><div class='add'>+0x6A2A = 0x621F</div><div class='add'>+0x6A2B = 0x6222</div><div class='add'>+0x6A2C = 0x6221</div><div class='add'>+0x6A2D = 0x6225</div><div class='add'>+0x6A2E = 0x6224</div><div class='add'>+0x6A2F = 0x622C</div><div class='add'>+0x6A30 = 0x81E7</div><div class='add'>+0x6A31 = 0x74EF</div><div class='add'>+0x6A32 = 0x74F4</div><div class='add'>+0x6A33 = 0x74FF</div><div class='add'>+0x6A34 = 0x750F</div><div class='add'>+0x6A35 = 0x7511</div><div class='add'>+0x6A36 = 0x7513</div><div class='add'>+0x6A37 = 0x6534</div><div class='add'>+0x6A38 = 0x65EE</div><div class='add'>+0x6A39 = 0x65EF</div><div class='add'>+0x6A3A = 0x65F0</div><div class='add'>+0x6A3B = 0x660A</div><div class='add'>+0x6A3C = 0x6619</div><div class='add'>+0x6A3D = 0x6772</div><div class='add'>+0x6A3E = 0x6603</div><div class='add'>+0x6A3F = 0x6615</div><div class='add'>+0x6A40 = 0x6600</div><div class='add'>+0x6A41 = 0x7085</div><div class='add'>+0x6A42 = 0x66F7</div><div class='add'>+0x6A43 = 0x661D</div><div class='add'>+0x6A44 = 0x6634</div><div class='add'>+0x6A45 = 0x6631</div><div class='add'>+0x6A46 = 0x6636</div><div class='add'>+0x6A47 = 0x6635</div><div class='add'>+0x6A48 = 0x8006</div><div class='add'>+0x6A49 = 0x665F</div><div class='add'>+0x6A4A = 0x6654</div><div class='add'>+0x6A4B = 0x6641</div><div class='add'>+0x6A4C = 0x664F</div><div class='add'>+0x6A4D = 0x6656</div><div class='add'>+0x6A4E = 0x6661</div><div class='add'>+0x6A4F = 0x6657</div><div class='add'>+0x6A50 = 0x6677</div><div class='add'>+0x6A51 = 0x6684</div><div class='add'>+0x6A52 = 0x668C</div><div class='add'>+0x6A53 = 0x66A7</div><div class='add'>+0x6A54 = 0x669D</div><div class='add'>+0x6A55 = 0x66BE</div><div class='add'>+0x6A56 = 0x66DB</div><div class='add'>+0x6A57 = 0x66DC</div><div class='add'>+0x6A58 = 0x66E6</div><div class='add'>+0x6A59 = 0x66E9</div><div class='add'>+0x6A5A = 0x8D32</div><div class='add'>+0x6A5B = 0x8D33</div><div class='add'>+0x6A5C = 0x8D36</div><div class='add'>+0x6A5D = 0x8D3B</div><div class='add'>+0x6A5E = 0x8D3D</div><div class='add'>+0x6A5F = 0x8D40</div><div class='add'>+0x6A60 = 0x8D45</div><div class='add'>+0x6A61 = 0x8D46</div><div class='add'>+0x6A62 = 0x8D48</div><div class='add'>+0x6A63 = 0x8D49</div><div class='add'>+0x6A64 = 0x8D47</div><div class='add'>+0x6A65 = 0x8D4D</div><div class='add'>+0x6A66 = 0x8D55</div><div class='add'>+0x6A67 = 0x8D59</div><div class='add'>+0x6A68 = 0x89C7</div><div class='add'>+0x6A69 = 0x89CA</div><div class='add'>+0x6A6A = 0x89CB</div><div class='add'>+0x6A6B = 0x89CC</div><div class='add'>+0x6A6C = 0x89CE</div><div class='add'>+0x6A6D = 0x89CF</div><div class='add'>+0x6A6E = 0x89D0</div><div class='add'>+0x6A6F = 0x89D1</div><div class='add'>+0x6A70 = 0x726E</div><div class='add'>+0x6A71 = 0x729F</div><div class='add'>+0x6A72 = 0x725D</div><div class='add'>+0x6A73 = 0x7266</div><div class='add'>+0x6A74 = 0x726F</div><div class='add'>+0x6A75 = 0x727E</div><div class='add'>+0x6A76 = 0x727F</div><div class='add'>+0x6A77 = 0x7284</div><div class='add'>+0x6A78 = 0x728B</div><div class='add'>+0x6A79 = 0x728D</div><div class='add'>+0x6A7A = 0x728F</div><div class='add'>+0x6A7B = 0x7292</div><div class='add'>+0x6A7C = 0x6308</div><div class='add'>+0x6A7D = 0x6332</div><div class='add'>+0x6A7E = 0x63B0</div><div class='add'>+0x6B21 = 0x643F</div><div class='add'>+0x6B22 = 0x64D8</div><div class='add'>+0x6B23 = 0x8004</div><div class='add'>+0x6B24 = 0x6BEA</div><div class='add'>+0x6B25 = 0x6BF3</div><div class='add'>+0x6B26 = 0x6BFD</div><div class='add'>+0x6B27 = 0x6BF5</div><div class='add'>+0x6B28 = 0x6BF9</div><div class='add'>+0x6B29 = 0x6C05</div><div class='add'>+0x6B2A = 0x6C07</div><div class='add'>+0x6B2B = 0x6C06</div><div class='add'>+0x6B2C = 0x6C0D</div><div class='add'>+0x6B2D = 0x6C15</div><div class='add'>+0x6B2E = 0x6C18</div><div class='add'>+0x6B2F = 0x6C19</div><div class='add'>+0x6B30 = 0x6C1A</div><div class='add'>+0x6B31 = 0x6C21</div><div class='add'>+0x6B32 = 0x6C29</div><div class='add'>+0x6B33 = 0x6C24</div><div class='add'>+0x6B34 = 0x6C2A</div><div class='add'>+0x6B35 = 0x6C32</div><div class='add'>+0x6B36 = 0x6535</div><div class='add'>+0x6B37 = 0x6555</div><div class='add'>+0x6B38 = 0x656B</div><div class='add'>+0x6B39 = 0x724D</div><div class='add'>+0x6B3A = 0x7252</div><div class='add'>+0x6B3B = 0x7256</div><div class='add'>+0x6B3C = 0x7230</div><div class='add'>+0x6B3D = 0x8662</div><div class='add'>+0x6B3E = 0x5216</div><div class='add'>+0x6B3F = 0x809F</div><div class='add'>+0x6B40 = 0x809C</div><div class='add'>+0x6B41 = 0x8093</div><div class='add'>+0x6B42 = 0x80BC</div><div class='add'>+0x6B43 = 0x670A</div><div class='add'>+0x6B44 = 0x80BD</div><div class='add'>+0x6B45 = 0x80B1</div><div class='add'>+0x6B46 = 0x80AB</div><div class='add'>+0x6B47 = 0x80AD</div><div class='add'>+0x6B48 = 0x80B4</div><div class='add'>+0x6B49 = 0x80B7</div><div class='add'>+0x6B4A = 0x80E7</div><div class='add'>+0x6B4B = 0x80E8</div><div class='add'>+0x6B4C = 0x80E9</div><div class='add'>+0x6B4D = 0x80EA</div><div class='add'>+0x6B4E = 0x80DB</div><div class='add'>+0x6B4F = 0x80C2</div><div class='add'>+0x6B50 = 0x80C4</div><div class='add'>+0x6B51 = 0x80D9</div><div class='add'>+0x6B52 = 0x80CD</div><div class='add'>+0x6B53 = 0x80D7</div><div class='add'>+0x6B54 = 0x6710</div><div class='add'>+0x6B55 = 0x80DD</div><div class='add'>+0x6B56 = 0x80EB</div><div class='add'>+0x6B57 = 0x80F1</div><div class='add'>+0x6B58 = 0x80F4</div><div class='add'>+0x6B59 = 0x80ED</div><div class='add'>+0x6B5A = 0x810D</div><div class='add'>+0x6B5B = 0x810E</div><div class='add'>+0x6B5C = 0x80F2</div><div class='add'>+0x6B5D = 0x80FC</div><div class='add'>+0x6B5E = 0x6715</div><div class='add'>+0x6B5F = 0x8112</div><div class='add'>+0x6B60 = 0x8C5A</div><div class='add'>+0x6B61 = 0x8136</div><div class='add'>+0x6B62 = 0x811E</div><div class='add'>+0x6B63 = 0x812C</div><div class='add'>+0x6B64 = 0x8118</div><div class='add'>+0x6B65 = 0x8132</div><div class='add'>+0x6B66 = 0x8148</div><div class='add'>+0x6B67 = 0x814C</div><div class='add'>+0x6B68 = 0x8153</div><div class='add'>+0x6B69 = 0x8174</div><div class='add'>+0x6B6A = 0x8159</div><div class='add'>+0x6B6B = 0x815A</div><div class='add'>+0x6B6C = 0x8171</div><div class='add'>+0x6B6D = 0x8160</div><div class='add'>+0x6B6E = 0x8169</div><div class='add'>+0x6B6F = 0x817C</div><div class='add'>+0x6B70 = 0x817D</div><div class='add'>+0x6B71 = 0x816D</div><div class='add'>+0x6B72 = 0x8167</div><div class='add'>+0x6B73 = 0x584D</div><div class='add'>+0x6B74 = 0x5AB5</div><div class='add'>+0x6B75 = 0x8188</div><div class='add'>+0x6B76 = 0x8182</div><div class='add'>+0x6B77 = 0x8191</div><div class='add'>+0x6B78 = 0x6ED5</div><div class='add'>+0x6B79 = 0x81A3</div><div class='add'>+0x6B7A = 0x81AA</div><div class='add'>+0x6B7B = 0x81CC</div><div class='add'>+0x6B7C = 0x6726</div><div class='add'>+0x6B7D = 0x81CA</div><div class='add'>+0x6B7E = 0x81BB</div><div class='add'>+0x6C21 = 0x81C1</div><div class='add'>+0x6C22 = 0x81A6</div><div class='add'>+0x6C23 = 0x6B24</div><div class='add'>+0x6C24 = 0x6B37</div><div class='add'>+0x6C25 = 0x6B39</div><div class='add'>+0x6C26 = 0x6B43</div><div class='add'>+0x6C27 = 0x6B46</div><div class='add'>+0x6C28 = 0x6B59</div><div class='add'>+0x6C29 = 0x98D1</div><div class='add'>+0x6C2A = 0x98D2</div><div class='add'>+0x6C2B = 0x98D3</div><div class='add'>+0x6C2C = 0x98D5</div><div class='add'>+0x6C2D = 0x98D9</div><div class='add'>+0x6C2E = 0x98DA</div><div class='add'>+0x6C2F = 0x6BB3</div><div class='add'>+0x6C30 = 0x5F40</div><div class='add'>+0x6C31 = 0x6BC2</div><div class='add'>+0x6C32 = 0x89F3</div><div class='add'>+0x6C33 = 0x6590</div><div class='add'>+0x6C34 = 0x9F51</div><div class='add'>+0x6C35 = 0x6593</div><div class='add'>+0x6C36 = 0x65BC</div><div class='add'>+0x6C37 = 0x65C6</div><div class='add'>+0x6C38 = 0x65C4</div><div class='add'>+0x6C39 = 0x65C3</div><div class='add'>+0x6C3A = 0x65CC</div><div class='add'>+0x6C3B = 0x65CE</div><div class='add'>+0x6C3C = 0x65D2</div><div class='add'>+0x6C3D = 0x65D6</div><div class='add'>+0x6C3E = 0x7080</div><div class='add'>+0x6C3F = 0x709C</div><div class='add'>+0x6C40 = 0x7096</div><div class='add'>+0x6C41 = 0x709D</div><div class='add'>+0x6C42 = 0x70BB</div><div class='add'>+0x6C43 = 0x70C0</div><div class='add'>+0x6C44 = 0x70B7</div><div class='add'>+0x6C45 = 0x70AB</div><div class='add'>+0x6C46 = 0x70B1</div><div class='add'>+0x6C47 = 0x70E8</div><div class='add'>+0x6C48 = 0x70CA</div><div class='add'>+0x6C49 = 0x7110</div><div class='add'>+0x6C4A = 0x7113</div><div class='add'>+0x6C4B = 0x7116</div><div class='add'>+0x6C4C = 0x712F</div><div class='add'>+0x6C4D = 0x7131</div><div class='add'>+0x6C4E = 0x7173</div><div class='add'>+0x6C4F = 0x715C</div><div class='add'>+0x6C50 = 0x7168</div><div class='add'>+0x6C51 = 0x7145</div><div class='add'>+0x6C52 = 0x7172</div><div class='add'>+0x6C53 = 0x714A</div><div class='add'>+0x6C54 = 0x7178</div><div class='add'>+0x6C55 = 0x717A</div><div class='add'>+0x6C56 = 0x7198</div><div class='add'>+0x6C57 = 0x71B3</div><div class='add'>+0x6C58 = 0x71B5</div><div class='add'>+0x6C59 = 0x71A8</div><div class='add'>+0x6C5A = 0x71A0</div><div class='add'>+0x6C5B = 0x71E0</div><div class='add'>+0x6C5C = 0x71D4</div><div class='add'>+0x6C5D = 0x71E7</div><div class='add'>+0x6C5E = 0x71F9</div><div class='add'>+0x6C5F = 0x721D</div><div class='add'>+0x6C60 = 0x7228</div><div class='add'>+0x6C61 = 0x706C</div><div class='add'>+0x6C62 = 0x7118</div><div class='add'>+0x6C63 = 0x7166</div><div class='add'>+0x6C64 = 0x71B9</div><div class='add'>+0x6C65 = 0x623E</div><div class='add'>+0x6C66 = 0x623D</div><div class='add'>+0x6C67 = 0x6243</div><div class='add'>+0x6C68 = 0x6248</div><div class='add'>+0x6C69 = 0x6249</div><div class='add'>+0x6C6A = 0x793B</div><div class='add'>+0x6C6B = 0x7940</div><div class='add'>+0x6C6C = 0x7946</div><div class='add'>+0x6C6D = 0x7949</div><div class='add'>+0x6C6E = 0x795B</div><div class='add'>+0x6C6F = 0x795C</div><div class='add'>+0x6C70 = 0x7953</div><div class='add'>+0x6C71 = 0x795A</div><div class='add'>+0x6C72 = 0x7962</div><div class='add'>+0x6C73 = 0x7957</div><div class='add'>+0x6C74 = 0x7960</div><div class='add'>+0x6C75 = 0x796F</div><div class='add'>+0x6C76 = 0x7967</div><div class='add'>+0x6C77 = 0x797A</div><div class='add'>+0x6C78 = 0x7985</div><div class='add'>+0x6C79 = 0x798A</div><div class='add'>+0x6C7A = 0x799A</div><div class='add'>+0x6C7B = 0x79A7</div><div class='add'>+0x6C7C = 0x79B3</div><div class='add'>+0x6C7D = 0x5FD1</div><div class='add'>+0x6C7E = 0x5FD0</div><div class='add'>+0x6D21 = 0x603C</div><div class='add'>+0x6D22 = 0x605D</div><div class='add'>+0x6D23 = 0x605A</div><div class='add'>+0x6D24 = 0x6067</div><div class='add'>+0x6D25 = 0x6041</div><div class='add'>+0x6D26 = 0x6059</div><div class='add'>+0x6D27 = 0x6063</div><div class='add'>+0x6D28 = 0x60AB</div><div class='add'>+0x6D29 = 0x6106</div><div class='add'>+0x6D2A = 0x610D</div><div class='add'>+0x6D2B = 0x615D</div><div class='add'>+0x6D2C = 0x61A9</div><div class='add'>+0x6D2D = 0x619D</div><div class='add'>+0x6D2E = 0x61CB</div><div class='add'>+0x6D2F = 0x61D1</div><div class='add'>+0x6D30 = 0x6206</div><div class='add'>+0x6D31 = 0x8080</div><div class='add'>+0x6D32 = 0x807F</div><div class='add'>+0x6D33 = 0x6C93</div><div class='add'>+0x6D34 = 0x6CF6</div><div class='add'>+0x6D35 = 0x6DFC</div><div class='add'>+0x6D36 = 0x77F6</div><div class='add'>+0x6D37 = 0x77F8</div><div class='add'>+0x6D38 = 0x7800</div><div class='add'>+0x6D39 = 0x7809</div><div class='add'>+0x6D3A = 0x7817</div><div class='add'>+0x6D3B = 0x7818</div><div class='add'>+0x6D3C = 0x7811</div><div class='add'>+0x6D3D = 0x65AB</div><div class='add'>+0x6D3E = 0x782D</div><div class='add'>+0x6D3F = 0x781C</div><div class='add'>+0x6D40 = 0x781D</div><div class='add'>+0x6D41 = 0x7839</div><div class='add'>+0x6D42 = 0x783A</div><div class='add'>+0x6D43 = 0x783B</div><div class='add'>+0x6D44 = 0x781F</div><div class='add'>+0x6D45 = 0x783C</div><div class='add'>+0x6D46 = 0x7825</div><div class='add'>+0x6D47 = 0x782C</div><div class='add'>+0x6D48 = 0x7823</div><div class='add'>+0x6D49 = 0x7829</div><div class='add'>+0x6D4A = 0x784E</div><div class='add'>+0x6D4B = 0x786D</div><div class='add'>+0x6D4C = 0x7856</div><div class='add'>+0x6D4D = 0x7857</div><div class='add'>+0x6D4E = 0x7826</div><div class='add'>+0x6D4F = 0x7850</div><div class='add'>+0x6D50 = 0x7847</div><div class='add'>+0x6D51 = 0x784C</div><div class='add'>+0x6D52 = 0x786A</div><div class='add'>+0x6D53 = 0x789B</div><div class='add'>+0x6D54 = 0x7893</div><div class='add'>+0x6D55 = 0x789A</div><div class='add'>+0x6D56 = 0x7887</div><div class='add'>+0x6D57 = 0x789C</div><div class='add'>+0x6D58 = 0x78A1</div><div class='add'>+0x6D59 = 0x78A3</div><div class='add'>+0x6D5A = 0x78B2</div><div class='add'>+0x6D5B = 0x78B9</div><div class='add'>+0x6D5C = 0x78A5</div><div class='add'>+0x6D5D = 0x78D4</div><div class='add'>+0x6D5E = 0x78D9</div><div class='add'>+0x6D5F = 0x78C9</div><div class='add'>+0x6D60 = 0x78EC</div><div class='add'>+0x6D61 = 0x78F2</div><div class='add'>+0x6D62 = 0x7905</div><div class='add'>+0x6D63 = 0x78F4</div><div class='add'>+0x6D64 = 0x7913</div><div class='add'>+0x6D65 = 0x7924</div><div class='add'>+0x6D66 = 0x791E</div><div class='add'>+0x6D67 = 0x7934</div><div class='add'>+0x6D68 = 0x9F9B</div><div class='add'>+0x6D69 = 0x9EF9</div><div class='add'>+0x6D6A = 0x9EFB</div><div class='add'>+0x6D6B = 0x9EFC</div><div class='add'>+0x6D6C = 0x76F1</div><div class='add'>+0x6D6D = 0x7704</div><div class='add'>+0x6D6E = 0x770D</div><div class='add'>+0x6D6F = 0x76F9</div><div class='add'>+0x6D70 = 0x7707</div><div class='add'>+0x6D71 = 0x7708</div><div class='add'>+0x6D72 = 0x771A</div><div class='add'>+0x6D73 = 0x7722</div><div class='add'>+0x6D74 = 0x7719</div><div class='add'>+0x6D75 = 0x772D</div><div class='add'>+0x6D76 = 0x7726</div><div class='add'>+0x6D77 = 0x7735</div><div class='add'>+0x6D78 = 0x7738</div><div class='add'>+0x6D79 = 0x7750</div><div class='add'>+0x6D7A = 0x7751</div><div class='add'>+0x6D7B = 0x7747</div><div class='add'>+0x6D7C = 0x7743</div><div class='add'>+0x6D7D = 0x775A</div><div class='add'>+0x6D7E = 0x7768</div><div class='add'>+0x6E21 = 0x7762</div><div class='add'>+0x6E22 = 0x7765</div><div class='add'>+0x6E23 = 0x777F</div><div class='add'>+0x6E24 = 0x778D</div><div class='add'>+0x6E25 = 0x777D</div><div class='add'>+0x6E26 = 0x7780</div><div class='add'>+0x6E27 = 0x778C</div><div class='add'>+0x6E28 = 0x7791</div><div class='add'>+0x6E29 = 0x779F</div><div class='add'>+0x6E2A = 0x77A0</div><div class='add'>+0x6E2B = 0x77B0</div><div class='add'>+0x6E2C = 0x77B5</div><div class='add'>+0x6E2D = 0x77BD</div><div class='add'>+0x6E2E = 0x753A</div><div class='add'>+0x6E2F = 0x7540</div><div class='add'>+0x6E30 = 0x754E</div><div class='add'>+0x6E31 = 0x754B</div><div class='add'>+0x6E32 = 0x7548</div><div class='add'>+0x6E33 = 0x755B</div><div class='add'>+0x6E34 = 0x7572</div><div class='add'>+0x6E35 = 0x7579</div><div class='add'>+0x6E36 = 0x7583</div><div class='add'>+0x6E37 = 0x7F58</div><div class='add'>+0x6E38 = 0x7F61</div><div class='add'>+0x6E39 = 0x7F5F</div><div class='add'>+0x6E3A = 0x8A48</div><div class='add'>+0x6E3B = 0x7F68</div><div class='add'>+0x6E3C = 0x7F74</div><div class='add'>+0x6E3D = 0x7F71</div><div class='add'>+0x6E3E = 0x7F79</div><div class='add'>+0x6E3F = 0x7F81</div><div class='add'>+0x6E40 = 0x7F7E</div><div class='add'>+0x6E41 = 0x76CD</div><div class='add'>+0x6E42 = 0x76E5</div><div class='add'>+0x6E43 = 0x8832</div><div class='add'>+0x6E44 = 0x9485</div><div class='add'>+0x6E45 = 0x9486</div><div class='add'>+0x6E46 = 0x9487</div><div class='add'>+0x6E47 = 0x948B</div><div class='add'>+0x6E48 = 0x948A</div><div class='add'>+0x6E49 = 0x948C</div><div class='add'>+0x6E4A = 0x948D</div><div class='add'>+0x6E4B = 0x948F</div><div class='add'>+0x6E4C = 0x9490</div><div class='add'>+0x6E4D = 0x9494</div><div class='add'>+0x6E4E = 0x9497</div><div class='add'>+0x6E4F = 0x9495</div><div class='add'>+0x6E50 = 0x949A</div><div class='add'>+0x6E51 = 0x949B</div><div class='add'>+0x6E52 = 0x949C</div><div class='add'>+0x6E53 = 0x94A3</div><div class='add'>+0x6E54 = 0x94A4</div><div class='add'>+0x6E55 = 0x94AB</div><div class='add'>+0x6E56 = 0x94AA</div><div class='add'>+0x6E57 = 0x94AD</div><div class='add'>+0x6E58 = 0x94AC</div><div class='add'>+0x6E59 = 0x94AF</div><div class='add'>+0x6E5A = 0x94B0</div><div class='add'>+0x6E5B = 0x94B2</div><div class='add'>+0x6E5C = 0x94B4</div><div class='add'>+0x6E5D = 0x94B6</div><div class='add'>+0x6E5E = 0x94B7</div><div class='add'>+0x6E5F = 0x94B8</div><div class='add'>+0x6E60 = 0x94B9</div><div class='add'>+0x6E61 = 0x94BA</div><div class='add'>+0x6E62 = 0x94BC</div><div class='add'>+0x6E63 = 0x94BD</div><div class='add'>+0x6E64 = 0x94BF</div><div class='add'>+0x6E65 = 0x94C4</div><div class='add'>+0x6E66 = 0x94C8</div><div class='add'>+0x6E67 = 0x94C9</div><div class='add'>+0x6E68 = 0x94CA</div><div class='add'>+0x6E69 = 0x94CB</div><div class='add'>+0x6E6A = 0x94CC</div><div class='add'>+0x6E6B = 0x94CD</div><div class='add'>+0x6E6C = 0x94CE</div><div class='add'>+0x6E6D = 0x94D0</div><div class='add'>+0x6E6E = 0x94D1</div><div class='add'>+0x6E6F = 0x94D2</div><div class='add'>+0x6E70 = 0x94D5</div><div class='add'>+0x6E71 = 0x94D6</div><div class='add'>+0x6E72 = 0x94D7</div><div class='add'>+0x6E73 = 0x94D9</div><div class='add'>+0x6E74 = 0x94D8</div><div class='add'>+0x6E75 = 0x94DB</div><div class='add'>+0x6E76 = 0x94DE</div><div class='add'>+0x6E77 = 0x94DF</div><div class='add'>+0x6E78 = 0x94E0</div><div class='add'>+0x6E79 = 0x94E2</div><div class='add'>+0x6E7A = 0x94E4</div><div class='add'>+0x6E7B = 0x94E5</div><div class='add'>+0x6E7C = 0x94E7</div><div class='add'>+0x6E7D = 0x94E8</div><div class='add'>+0x6E7E = 0x94EA</div><div class='add'>+0x6F21 = 0x94E9</div><div class='add'>+0x6F22 = 0x94EB</div><div class='add'>+0x6F23 = 0x94EE</div><div class='add'>+0x6F24 = 0x94EF</div><div class='add'>+0x6F25 = 0x94F3</div><div class='add'>+0x6F26 = 0x94F4</div><div class='add'>+0x6F27 = 0x94F5</div><div class='add'>+0x6F28 = 0x94F7</div><div class='add'>+0x6F29 = 0x94F9</div><div class='add'>+0x6F2A = 0x94FC</div><div class='add'>+0x6F2B = 0x94FD</div><div class='add'>+0x6F2C = 0x94FF</div><div class='add'>+0x6F2D = 0x9503</div><div class='add'>+0x6F2E = 0x9502</div><div class='add'>+0x6F2F = 0x9506</div><div class='add'>+0x6F30 = 0x9507</div><div class='add'>+0x6F31 = 0x9509</div><div class='add'>+0x6F32 = 0x950A</div><div class='add'>+0x6F33 = 0x950D</div><div class='add'>+0x6F34 = 0x950E</div><div class='add'>+0x6F35 = 0x950F</div><div class='add'>+0x6F36 = 0x9512</div><div class='add'>+0x6F37 = 0x9513</div><div class='add'>+0x6F38 = 0x9514</div><div class='add'>+0x6F39 = 0x9515</div><div class='add'>+0x6F3A = 0x9516</div><div class='add'>+0x6F3B = 0x9518</div><div class='add'>+0x6F3C = 0x951B</div><div class='add'>+0x6F3D = 0x951D</div><div class='add'>+0x6F3E = 0x951E</div><div class='add'>+0x6F3F = 0x951F</div><div class='add'>+0x6F40 = 0x9522</div><div class='add'>+0x6F41 = 0x952A</div><div class='add'>+0x6F42 = 0x952B</div><div class='add'>+0x6F43 = 0x9529</div><div class='add'>+0x6F44 = 0x952C</div><div class='add'>+0x6F45 = 0x9531</div><div class='add'>+0x6F46 = 0x9532</div><div class='add'>+0x6F47 = 0x9534</div><div class='add'>+0x6F48 = 0x9536</div><div class='add'>+0x6F49 = 0x9537</div><div class='add'>+0x6F4A = 0x9538</div><div class='add'>+0x6F4B = 0x953C</div><div class='add'>+0x6F4C = 0x953E</div><div class='add'>+0x6F4D = 0x953F</div><div class='add'>+0x6F4E = 0x9542</div><div class='add'>+0x6F4F = 0x9535</div><div class='add'>+0x6F50 = 0x9544</div><div class='add'>+0x6F51 = 0x9545</div><div class='add'>+0x6F52 = 0x9546</div><div class='add'>+0x6F53 = 0x9549</div><div class='add'>+0x6F54 = 0x954C</div><div class='add'>+0x6F55 = 0x954E</div><div class='add'>+0x6F56 = 0x954F</div><div class='add'>+0x6F57 = 0x9552</div><div class='add'>+0x6F58 = 0x9553</div><div class='add'>+0x6F59 = 0x9554</div><div class='add'>+0x6F5A = 0x9556</div><div class='add'>+0x6F5B = 0x9557</div><div class='add'>+0x6F5C = 0x9558</div><div class='add'>+0x6F5D = 0x9559</div><div class='add'>+0x6F5E = 0x955B</div><div class='add'>+0x6F5F = 0x955E</div><div class='add'>+0x6F60 = 0x955F</div><div class='add'>+0x6F61 = 0x955D</div><div class='add'>+0x6F62 = 0x9561</div><div class='add'>+0x6F63 = 0x9562</div><div class='add'>+0x6F64 = 0x9564</div><div class='add'>+0x6F65 = 0x9565</div><div class='add'>+0x6F66 = 0x9566</div><div class='add'>+0x6F67 = 0x9567</div><div class='add'>+0x6F68 = 0x9568</div><div class='add'>+0x6F69 = 0x9569</div><div class='add'>+0x6F6A = 0x956A</div><div class='add'>+0x6F6B = 0x956B</div><div class='add'>+0x6F6C = 0x956C</div><div class='add'>+0x6F6D = 0x956F</div><div class='add'>+0x6F6E = 0x9571</div><div class='add'>+0x6F6F = 0x9572</div><div class='add'>+0x6F70 = 0x9573</div><div class='add'>+0x6F71 = 0x953A</div><div class='add'>+0x6F72 = 0x77E7</div><div class='add'>+0x6F73 = 0x77EC</div><div class='add'>+0x6F74 = 0x96C9</div><div class='add'>+0x6F75 = 0x79D5</div><div class='add'>+0x6F76 = 0x79ED</div><div class='add'>+0x6F77 = 0x79E3</div><div class='add'>+0x6F78 = 0x79EB</div><div class='add'>+0x6F79 = 0x7A06</div><div class='add'>+0x6F7A = 0x5D47</div><div class='add'>+0x6F7B = 0x7A03</div><div class='add'>+0x6F7C = 0x7A02</div><div class='add'>+0x6F7D = 0x7A1E</div><div class='add'>+0x6F7E = 0x7A14</div><div class='add'>+0x7021 = 0x7A39</div><div class='add'>+0x7022 = 0x7A37</div><div class='add'>+0x7023 = 0x7A51</div><div class='add'>+0x7024 = 0x9ECF</div><div class='add'>+0x7025 = 0x99A5</div><div class='add'>+0x7026 = 0x7A70</div><div class='add'>+0x7027 = 0x7688</div><div class='add'>+0x7028 = 0x768E</div><div class='add'>+0x7029 = 0x7693</div><div class='add'>+0x702A = 0x7699</div><div class='add'>+0x702B = 0x76A4</div><div class='add'>+0x702C = 0x74DE</div><div class='add'>+0x702D = 0x74E0</div><div class='add'>+0x702E = 0x752C</div><div class='add'>+0x702F = 0x9E20</div><div class='add'>+0x7030 = 0x9E22</div><div class='add'>+0x7031 = 0x9E28</div><div class='add'>+0x7032 = 0x9E29</div><div class='add'>+0x7033 = 0x9E2A</div><div class='add'>+0x7034 = 0x9E2B</div><div class='add'>+0x7035 = 0x9E2C</div><div class='add'>+0x7036 = 0x9E32</div><div class='add'>+0x7037 = 0x9E31</div><div class='add'>+0x7038 = 0x9E36</div><div class='add'>+0x7039 = 0x9E38</div><div class='add'>+0x703A = 0x9E37</div><div class='add'>+0x703B = 0x9E39</div><div class='add'>+0x703C = 0x9E3A</div><div class='add'>+0x703D = 0x9E3E</div><div class='add'>+0x703E = 0x9E41</div><div class='add'>+0x703F = 0x9E42</div><div class='add'>+0x7040 = 0x9E44</div><div class='add'>+0x7041 = 0x9E46</div><div class='add'>+0x7042 = 0x9E47</div><div class='add'>+0x7043 = 0x9E48</div><div class='add'>+0x7044 = 0x9E49</div><div class='add'>+0x7045 = 0x9E4B</div><div class='add'>+0x7046 = 0x9E4C</div><div class='add'>+0x7047 = 0x9E4E</div><div class='add'>+0x7048 = 0x9E51</div><div class='add'>+0x7049 = 0x9E55</div><div class='add'>+0x704A = 0x9E57</div><div class='add'>+0x704B = 0x9E5A</div><div class='add'>+0x704C = 0x9E5B</div><div class='add'>+0x704D = 0x9E5C</div><div class='add'>+0x704E = 0x9E5E</div><div class='add'>+0x704F = 0x9E63</div><div class='add'>+0x7050 = 0x9E66</div><div class='add'>+0x7051 = 0x9E67</div><div class='add'>+0x7052 = 0x9E68</div><div class='add'>+0x7053 = 0x9E69</div><div class='add'>+0x7054 = 0x9E6A</div><div class='add'>+0x7055 = 0x9E6B</div><div class='add'>+0x7056 = 0x9E6C</div><div class='add'>+0x7057 = 0x9E71</div><div class='add'>+0x7058 = 0x9E6D</div><div class='add'>+0x7059 = 0x9E73</div><div class='add'>+0x705A = 0x7592</div><div class='add'>+0x705B = 0x7594</div><div class='add'>+0x705C = 0x7596</div><div class='add'>+0x705D = 0x75A0</div><div class='add'>+0x705E = 0x759D</div><div class='add'>+0x705F = 0x75AC</div><div class='add'>+0x7060 = 0x75A3</div><div class='add'>+0x7061 = 0x75B3</div><div class='add'>+0x7062 = 0x75B4</div><div class='add'>+0x7063 = 0x75B8</div><div class='add'>+0x7064 = 0x75C4</div><div class='add'>+0x7065 = 0x75B1</div><div class='add'>+0x7066 = 0x75B0</div><div class='add'>+0x7067 = 0x75C3</div><div class='add'>+0x7068 = 0x75C2</div><div class='add'>+0x7069 = 0x75D6</div><div class='add'>+0x706A = 0x75CD</div><div class='add'>+0x706B = 0x75E3</div><div class='add'>+0x706C = 0x75E8</div><div class='add'>+0x706D = 0x75E6</div><div class='add'>+0x706E = 0x75E4</div><div class='add'>+0x706F = 0x75EB</div><div class='add'>+0x7070 = 0x75E7</div><div class='add'>+0x7071 = 0x7603</div><div class='add'>+0x7072 = 0x75F1</div><div class='add'>+0x7073 = 0x75FC</div><div class='add'>+0x7074 = 0x75FF</div><div class='add'>+0x7075 = 0x7610</div><div class='add'>+0x7076 = 0x7600</div><div class='add'>+0x7077 = 0x7605</div><div class='add'>+0x7078 = 0x760C</div><div class='add'>+0x7079 = 0x7617</div><div class='add'>+0x707A = 0x760A</div><div class='add'>+0x707B = 0x7625</div><div class='add'>+0x707C = 0x7618</div><div class='add'>+0x707D = 0x7615</div><div class='add'>+0x707E = 0x7619</div><div class='add'>+0x7121 = 0x761B</div><div class='add'>+0x7122 = 0x763C</div><div class='add'>+0x7123 = 0x7622</div><div class='add'>+0x7124 = 0x7620</div><div class='add'>+0x7125 = 0x7640</div><div class='add'>+0x7126 = 0x762D</div><div class='add'>+0x7127 = 0x7630</div><div class='add'>+0x7128 = 0x763F</div><div class='add'>+0x7129 = 0x7635</div><div class='add'>+0x712A = 0x7643</div><div class='add'>+0x712B = 0x763E</div><div class='add'>+0x712C = 0x7633</div><div class='add'>+0x712D = 0x764D</div><div class='add'>+0x712E = 0x765E</div><div class='add'>+0x712F = 0x7654</div><div class='add'>+0x7130 = 0x765C</div><div class='add'>+0x7131 = 0x7656</div><div class='add'>+0x7132 = 0x766B</div><div class='add'>+0x7133 = 0x766F</div><div class='add'>+0x7134 = 0x7FCA</div><div class='add'>+0x7135 = 0x7AE6</div><div class='add'>+0x7136 = 0x7A78</div><div class='add'>+0x7137 = 0x7A79</div><div class='add'>+0x7138 = 0x7A80</div><div class='add'>+0x7139 = 0x7A86</div><div class='add'>+0x713A = 0x7A88</div><div class='add'>+0x713B = 0x7A95</div><div class='add'>+0x713C = 0x7AA6</div><div class='add'>+0x713D = 0x7AA0</div><div class='add'>+0x713E = 0x7AAC</div><div class='add'>+0x713F = 0x7AA8</div><div class='add'>+0x7140 = 0x7AAD</div><div class='add'>+0x7141 = 0x7AB3</div><div class='add'>+0x7142 = 0x8864</div><div class='add'>+0x7143 = 0x8869</div><div class='add'>+0x7144 = 0x8872</div><div class='add'>+0x7145 = 0x887D</div><div class='add'>+0x7146 = 0x887F</div><div class='add'>+0x7147 = 0x8882</div><div class='add'>+0x7148 = 0x88A2</div><div class='add'>+0x7149 = 0x88C6</div><div class='add'>+0x714A = 0x88B7</div><div class='add'>+0x714B = 0x88BC</div><div class='add'>+0x714C = 0x88C9</div><div class='add'>+0x714D = 0x88E2</div><div class='add'>+0x714E = 0x88CE</div><div class='add'>+0x714F = 0x88E3</div><div class='add'>+0x7150 = 0x88E5</div><div class='add'>+0x7151 = 0x88F1</div><div class='add'>+0x7152 = 0x891A</div><div class='add'>+0x7153 = 0x88FC</div><div class='add'>+0x7154 = 0x88E8</div><div class='add'>+0x7155 = 0x88FE</div><div class='add'>+0x7156 = 0x88F0</div><div class='add'>+0x7157 = 0x8921</div><div class='add'>+0x7158 = 0x8919</div><div class='add'>+0x7159 = 0x8913</div><div class='add'>+0x715A = 0x891B</div><div class='add'>+0x715B = 0x890A</div><div class='add'>+0x715C = 0x8934</div><div class='add'>+0x715D = 0x892B</div><div class='add'>+0x715E = 0x8936</div><div class='add'>+0x715F = 0x8941</div><div class='add'>+0x7160 = 0x8966</div><div class='add'>+0x7161 = 0x897B</div><div class='add'>+0x7162 = 0x758B</div><div class='add'>+0x7163 = 0x80E5</div><div class='add'>+0x7164 = 0x76B2</div><div class='add'>+0x7165 = 0x76B4</div><div class='add'>+0x7166 = 0x77DC</div><div class='add'>+0x7167 = 0x8012</div><div class='add'>+0x7168 = 0x8014</div><div class='add'>+0x7169 = 0x8016</div><div class='add'>+0x716A = 0x801C</div><div class='add'>+0x716B = 0x8020</div><div class='add'>+0x716C = 0x8022</div><div class='add'>+0x716D = 0x8025</div><div class='add'>+0x716E = 0x8026</div><div class='add'>+0x716F = 0x8027</div><div class='add'>+0x7170 = 0x8029</div><div class='add'>+0x7171 = 0x8028</div><div class='add'>+0x7172 = 0x8031</div><div class='add'>+0x7173 = 0x800B</div><div class='add'>+0x7174 = 0x8035</div><div class='add'>+0x7175 = 0x8043</div><div class='add'>+0x7176 = 0x8046</div><div class='add'>+0x7177 = 0x804D</div><div class='add'>+0x7178 = 0x8052</div><div class='add'>+0x7179 = 0x8069</div><div class='add'>+0x717A = 0x8071</div><div class='add'>+0x717B = 0x8983</div><div class='add'>+0x717C = 0x9878</div><div class='add'>+0x717D = 0x9880</div><div class='add'>+0x717E = 0x9883</div><div class='add'>+0x7221 = 0x9889</div><div class='add'>+0x7222 = 0x988C</div><div class='add'>+0x7223 = 0x988D</div><div class='add'>+0x7224 = 0x988F</div><div class='add'>+0x7225 = 0x9894</div><div class='add'>+0x7226 = 0x989A</div><div class='add'>+0x7227 = 0x989B</div><div class='add'>+0x7228 = 0x989E</div><div class='add'>+0x7229 = 0x989F</div><div class='add'>+0x722A = 0x98A1</div><div class='add'>+0x722B = 0x98A2</div><div class='add'>+0x722C = 0x98A5</div><div class='add'>+0x722D = 0x98A6</div><div class='add'>+0x722E = 0x864D</div><div class='add'>+0x722F = 0x8654</div><div class='add'>+0x7230 = 0x866C</div><div class='add'>+0x7231 = 0x866E</div><div class='add'>+0x7232 = 0x867F</div><div class='add'>+0x7233 = 0x867A</div><div class='add'>+0x7234 = 0x867C</div><div class='add'>+0x7235 = 0x867B</div><div class='add'>+0x7236 = 0x86A8</div><div class='add'>+0x7237 = 0x868D</div><div class='add'>+0x7238 = 0x868B</div><div class='add'>+0x7239 = 0x86AC</div><div class='add'>+0x723A = 0x869D</div><div class='add'>+0x723B = 0x86A7</div><div class='add'>+0x723C = 0x86A3</div><div class='add'>+0x723D = 0x86AA</div><div class='add'>+0x723E = 0x8693</div><div class='add'>+0x723F = 0x86A9</div><div class='add'>+0x7240 = 0x86B6</div><div class='add'>+0x7241 = 0x86C4</div><div class='add'>+0x7242 = 0x86B5</div><div class='add'>+0x7243 = 0x86CE</div><div class='add'>+0x7244 = 0x86B0</div><div class='add'>+0x7245 = 0x86BA</div><div class='add'>+0x7246 = 0x86B1</div><div class='add'>+0x7247 = 0x86AF</div><div class='add'>+0x7248 = 0x86C9</div><div class='add'>+0x7249 = 0x86CF</div><div class='add'>+0x724A = 0x86B4</div><div class='add'>+0x724B = 0x86E9</div><div class='add'>+0x724C = 0x86F1</div><div class='add'>+0x724D = 0x86F2</div><div class='add'>+0x724E = 0x86ED</div><div class='add'>+0x724F = 0x86F3</div><div class='add'>+0x7250 = 0x86D0</div><div class='add'>+0x7251 = 0x8713</div><div class='add'>+0x7252 = 0x86DE</div><div class='add'>+0x7253 = 0x86F4</div><div class='add'>+0x7254 = 0x86DF</div><div class='add'>+0x7255 = 0x86D8</div><div class='add'>+0x7256 = 0x86D1</div><div class='add'>+0x7257 = 0x8703</div><div class='add'>+0x7258 = 0x8707</div><div class='add'>+0x7259 = 0x86F8</div><div class='add'>+0x725A = 0x8708</div><div class='add'>+0x725B = 0x870A</div><div class='add'>+0x725C = 0x870D</div><div class='add'>+0x725D = 0x8709</div><div class='add'>+0x725E = 0x8723</div><div class='add'>+0x725F = 0x873B</div><div class='add'>+0x7260 = 0x871E</div><div class='add'>+0x7261 = 0x8725</div><div class='add'>+0x7262 = 0x872E</div><div class='add'>+0x7263 = 0x871A</div><div class='add'>+0x7264 = 0x873E</div><div class='add'>+0x7265 = 0x8748</div><div class='add'>+0x7266 = 0x8734</div><div class='add'>+0x7267 = 0x8731</div><div class='add'>+0x7268 = 0x8729</div><div class='add'>+0x7269 = 0x8737</div><div class='add'>+0x726A = 0x873F</div><div class='add'>+0x726B = 0x8782</div><div class='add'>+0x726C = 0x8722</div><div class='add'>+0x726D = 0x877D</div><div class='add'>+0x726E = 0x877E</div><div class='add'>+0x726F = 0x877B</div><div class='add'>+0x7270 = 0x8760</div><div class='add'>+0x7271 = 0x8770</div><div class='add'>+0x7272 = 0x874C</div><div class='add'>+0x7273 = 0x876E</div><div class='add'>+0x7274 = 0x878B</div><div class='add'>+0x7275 = 0x8753</div><div class='add'>+0x7276 = 0x8763</div><div class='add'>+0x7277 = 0x877C</div><div class='add'>+0x7278 = 0x8764</div><div class='add'>+0x7279 = 0x8759</div><div class='add'>+0x727A = 0x8765</div><div class='add'>+0x727B = 0x8793</div><div class='add'>+0x727C = 0x87AF</div><div class='add'>+0x727D = 0x87A8</div><div class='add'>+0x727E = 0x87D2</div><div class='add'>+0x7321 = 0x87C6</div><div class='add'>+0x7322 = 0x8788</div><div class='add'>+0x7323 = 0x8785</div><div class='add'>+0x7324 = 0x87AD</div><div class='add'>+0x7325 = 0x8797</div><div class='add'>+0x7326 = 0x8783</div><div class='add'>+0x7327 = 0x87AB</div><div class='add'>+0x7328 = 0x87E5</div><div class='add'>+0x7329 = 0x87AC</div><div class='add'>+0x732A = 0x87B5</div><div class='add'>+0x732B = 0x87B3</div><div class='add'>+0x732C = 0x87CB</div><div class='add'>+0x732D = 0x87D3</div><div class='add'>+0x732E = 0x87BD</div><div class='add'>+0x732F = 0x87D1</div><div class='add'>+0x7330 = 0x87C0</div><div class='add'>+0x7331 = 0x87CA</div><div class='add'>+0x7332 = 0x87DB</div><div class='add'>+0x7333 = 0x87EA</div><div class='add'>+0x7334 = 0x87E0</div><div class='add'>+0x7335 = 0x87EE</div><div class='add'>+0x7336 = 0x8816</div><div class='add'>+0x7337 = 0x8813</div><div class='add'>+0x7338 = 0x87FE</div><div class='add'>+0x7339 = 0x880A</div><div class='add'>+0x733A = 0x881B</div><div class='add'>+0x733B = 0x8821</div><div class='add'>+0x733C = 0x8839</div><div class='add'>+0x733D = 0x883C</div><div class='add'>+0x733E = 0x7F36</div><div class='add'>+0x733F = 0x7F42</div><div class='add'>+0x7340 = 0x7F44</div><div class='add'>+0x7341 = 0x7F45</div><div class='add'>+0x7342 = 0x8210</div><div class='add'>+0x7343 = 0x7AFA</div><div class='add'>+0x7344 = 0x7AFD</div><div class='add'>+0x7345 = 0x7B08</div><div class='add'>+0x7346 = 0x7B03</div><div class='add'>+0x7347 = 0x7B04</div><div class='add'>+0x7348 = 0x7B15</div><div class='add'>+0x7349 = 0x7B0A</div><div class='add'>+0x734A = 0x7B2B</div><div class='add'>+0x734B = 0x7B0F</div><div class='add'>+0x734C = 0x7B47</div><div class='add'>+0x734D = 0x7B38</div><div class='add'>+0x734E = 0x7B2A</div><div class='add'>+0x734F = 0x7B19</div><div class='add'>+0x7350 = 0x7B2E</div><div class='add'>+0x7351 = 0x7B31</div><div class='add'>+0x7352 = 0x7B20</div><div class='add'>+0x7353 = 0x7B25</div><div class='add'>+0x7354 = 0x7B24</div><div class='add'>+0x7355 = 0x7B33</div><div class='add'>+0x7356 = 0x7B3E</div><div class='add'>+0x7357 = 0x7B1E</div><div class='add'>+0x7358 = 0x7B58</div><div class='add'>+0x7359 = 0x7B5A</div><div class='add'>+0x735A = 0x7B45</div><div class='add'>+0x735B = 0x7B75</div><div class='add'>+0x735C = 0x7B4C</div><div class='add'>+0x735D = 0x7B5D</div><div class='add'>+0x735E = 0x7B60</div><div class='add'>+0x735F = 0x7B6E</div><div class='add'>+0x7360 = 0x7B7B</div><div class='add'>+0x7361 = 0x7B62</div><div class='add'>+0x7362 = 0x7B72</div><div class='add'>+0x7363 = 0x7B71</div><div class='add'>+0x7364 = 0x7B90</div><div class='add'>+0x7365 = 0x7BA6</div><div class='add'>+0x7366 = 0x7BA7</div><div class='add'>+0x7367 = 0x7BB8</div><div class='add'>+0x7368 = 0x7BAC</div><div class='add'>+0x7369 = 0x7B9D</div><div class='add'>+0x736A = 0x7BA8</div><div class='add'>+0x736B = 0x7B85</div><div class='add'>+0x736C = 0x7BAA</div><div class='add'>+0x736D = 0x7B9C</div><div class='add'>+0x736E = 0x7BA2</div><div class='add'>+0x736F = 0x7BAB</div><div class='add'>+0x7370 = 0x7BB4</div><div class='add'>+0x7371 = 0x7BD1</div><div class='add'>+0x7372 = 0x7BC1</div><div class='add'>+0x7373 = 0x7BCC</div><div class='add'>+0x7374 = 0x7BDD</div><div class='add'>+0x7375 = 0x7BDA</div><div class='add'>+0x7376 = 0x7BE5</div><div class='add'>+0x7377 = 0x7BE6</div><div class='add'>+0x7378 = 0x7BEA</div><div class='add'>+0x7379 = 0x7C0C</div><div class='add'>+0x737A = 0x7BFE</div><div class='add'>+0x737B = 0x7BFC</div><div class='add'>+0x737C = 0x7C0F</div><div class='add'>+0x737D = 0x7C16</div><div class='add'>+0x737E = 0x7C0B</div><div class='add'>+0x7421 = 0x7C1F</div><div class='add'>+0x7422 = 0x7C2A</div><div class='add'>+0x7423 = 0x7C26</div><div class='add'>+0x7424 = 0x7C38</div><div class='add'>+0x7425 = 0x7C41</div><div class='add'>+0x7426 = 0x7C40</div><div class='add'>+0x7427 = 0x81FE</div><div class='add'>+0x7428 = 0x8201</div><div class='add'>+0x7429 = 0x8202</div><div class='add'>+0x742A = 0x8204</div><div class='add'>+0x742B = 0x81EC</div><div class='add'>+0x742C = 0x8844</div><div class='add'>+0x742D = 0x8221</div><div class='add'>+0x742E = 0x8222</div><div class='add'>+0x742F = 0x8223</div><div class='add'>+0x7430 = 0x822D</div><div class='add'>+0x7431 = 0x822F</div><div class='add'>+0x7432 = 0x8228</div><div class='add'>+0x7433 = 0x822B</div><div class='add'>+0x7434 = 0x8238</div><div class='add'>+0x7435 = 0x823B</div><div class='add'>+0x7436 = 0x8233</div><div class='add'>+0x7437 = 0x8234</div><div class='add'>+0x7438 = 0x823E</div><div class='add'>+0x7439 = 0x8244</div><div class='add'>+0x743A = 0x8249</div><div class='add'>+0x743B = 0x824B</div><div class='add'>+0x743C = 0x824F</div><div class='add'>+0x743D = 0x825A</div><div class='add'>+0x743E = 0x825F</div><div class='add'>+0x743F = 0x8268</div><div class='add'>+0x7440 = 0x887E</div><div class='add'>+0x7441 = 0x8885</div><div class='add'>+0x7442 = 0x8888</div><div class='add'>+0x7443 = 0x88D8</div><div class='add'>+0x7444 = 0x88DF</div><div class='add'>+0x7445 = 0x895E</div><div class='add'>+0x7446 = 0x7F9D</div><div class='add'>+0x7447 = 0x7F9F</div><div class='add'>+0x7448 = 0x7FA7</div><div class='add'>+0x7449 = 0x7FAF</div><div class='add'>+0x744A = 0x7FB0</div><div class='add'>+0x744B = 0x7FB2</div><div class='add'>+0x744C = 0x7C7C</div><div class='add'>+0x744D = 0x6549</div><div class='add'>+0x744E = 0x7C91</div><div class='add'>+0x744F = 0x7C9D</div><div class='add'>+0x7450 = 0x7C9C</div><div class='add'>+0x7451 = 0x7C9E</div><div class='add'>+0x7452 = 0x7CA2</div><div class='add'>+0x7453 = 0x7CB2</div><div class='add'>+0x7454 = 0x7CBC</div><div class='add'>+0x7455 = 0x7CBD</div><div class='add'>+0x7456 = 0x7CC1</div><div class='add'>+0x7457 = 0x7CC7</div><div class='add'>+0x7458 = 0x7CCC</div><div class='add'>+0x7459 = 0x7CCD</div><div class='add'>+0x745A = 0x7CC8</div><div class='add'>+0x745B = 0x7CC5</div><div class='add'>+0x745C = 0x7CD7</div><div class='add'>+0x745D = 0x7CE8</div><div class='add'>+0x745E = 0x826E</div><div class='add'>+0x745F = 0x66A8</div><div class='add'>+0x7460 = 0x7FBF</div><div class='add'>+0x7461 = 0x7FCE</div><div class='add'>+0x7462 = 0x7FD5</div><div class='add'>+0x7463 = 0x7FE5</div><div class='add'>+0x7464 = 0x7FE1</div><div class='add'>+0x7465 = 0x7FE6</div><div class='add'>+0x7466 = 0x7FE9</div><div class='add'>+0x7467 = 0x7FEE</div><div class='add'>+0x7468 = 0x7FF3</div><div class='add'>+0x7469 = 0x7CF8</div><div class='add'>+0x746A = 0x7D77</div><div class='add'>+0x746B = 0x7DA6</div><div class='add'>+0x746C = 0x7DAE</div><div class='add'>+0x746D = 0x7E47</div><div class='add'>+0x746E = 0x7E9B</div><div class='add'>+0x746F = 0x9EB8</div><div class='add'>+0x7470 = 0x9EB4</div><div class='add'>+0x7471 = 0x8D73</div><div class='add'>+0x7472 = 0x8D84</div><div class='add'>+0x7473 = 0x8D94</div><div class='add'>+0x7474 = 0x8D91</div><div class='add'>+0x7475 = 0x8DB1</div><div class='add'>+0x7476 = 0x8D67</div><div class='add'>+0x7477 = 0x8D6D</div><div class='add'>+0x7478 = 0x8C47</div><div class='add'>+0x7479 = 0x8C49</div><div class='add'>+0x747A = 0x914A</div><div class='add'>+0x747B = 0x9150</div><div class='add'>+0x747C = 0x914E</div><div class='add'>+0x747D = 0x914F</div><div class='add'>+0x747E = 0x9164</div><div class='add'>+0x7521 = 0x9162</div><div class='add'>+0x7522 = 0x9161</div><div class='add'>+0x7523 = 0x9170</div><div class='add'>+0x7524 = 0x9169</div><div class='add'>+0x7525 = 0x916F</div><div class='add'>+0x7526 = 0x917D</div><div class='add'>+0x7527 = 0x917E</div><div class='add'>+0x7528 = 0x9172</div><div class='add'>+0x7529 = 0x9174</div><div class='add'>+0x752A = 0x9179</div><div class='add'>+0x752B = 0x918C</div><div class='add'>+0x752C = 0x9185</div><div class='add'>+0x752D = 0x9190</div><div class='add'>+0x752E = 0x918D</div><div class='add'>+0x752F = 0x9191</div><div class='add'>+0x7530 = 0x91A2</div><div class='add'>+0x7531 = 0x91A3</div><div class='add'>+0x7532 = 0x91AA</div><div class='add'>+0x7533 = 0x91AD</div><div class='add'>+0x7534 = 0x91AE</div><div class='add'>+0x7535 = 0x91AF</div><div class='add'>+0x7536 = 0x91B5</div><div class='add'>+0x7537 = 0x91B4</div><div class='add'>+0x7538 = 0x91BA</div><div class='add'>+0x7539 = 0x8C55</div><div class='add'>+0x753A = 0x9E7E</div><div class='add'>+0x753B = 0x8DB8</div><div class='add'>+0x753C = 0x8DEB</div><div class='add'>+0x753D = 0x8E05</div><div class='add'>+0x753E = 0x8E59</div><div class='add'>+0x753F = 0x8E69</div><div class='add'>+0x7540 = 0x8DB5</div><div class='add'>+0x7541 = 0x8DBF</div><div class='add'>+0x7542 = 0x8DBC</div><div class='add'>+0x7543 = 0x8DBA</div><div class='add'>+0x7544 = 0x8DC4</div><div class='add'>+0x7545 = 0x8DD6</div><div class='add'>+0x7546 = 0x8DD7</div><div class='add'>+0x7547 = 0x8DDA</div><div class='add'>+0x7548 = 0x8DDE</div><div class='add'>+0x7549 = 0x8DCE</div><div class='add'>+0x754A = 0x8DCF</div><div class='add'>+0x754B = 0x8DDB</div><div class='add'>+0x754C = 0x8DC6</div><div class='add'>+0x754D = 0x8DEC</div><div class='add'>+0x754E = 0x8DF7</div><div class='add'>+0x754F = 0x8DF8</div><div class='add'>+0x7550 = 0x8DE3</div><div class='add'>+0x7551 = 0x8DF9</div><div class='add'>+0x7552 = 0x8DFB</div><div class='add'>+0x7553 = 0x8DE4</div><div class='add'>+0x7554 = 0x8E09</div><div class='add'>+0x7555 = 0x8DFD</div><div class='add'>+0x7556 = 0x8E14</div><div class='add'>+0x7557 = 0x8E1D</div><div class='add'>+0x7558 = 0x8E1F</div><div class='add'>+0x7559 = 0x8E2C</div><div class='add'>+0x755A = 0x8E2E</div><div class='add'>+0x755B = 0x8E23</div><div class='add'>+0x755C = 0x8E2F</div><div class='add'>+0x755D = 0x8E3A</div><div class='add'>+0x755E = 0x8E40</div><div class='add'>+0x755F = 0x8E39</div><div class='add'>+0x7560 = 0x8E35</div><div class='add'>+0x7561 = 0x8E3D</div><div class='add'>+0x7562 = 0x8E31</div><div class='add'>+0x7563 = 0x8E49</div><div class='add'>+0x7564 = 0x8E41</div><div class='add'>+0x7565 = 0x8E42</div><div class='add'>+0x7566 = 0x8E51</div><div class='add'>+0x7567 = 0x8E52</div><div class='add'>+0x7568 = 0x8E4A</div><div class='add'>+0x7569 = 0x8E70</div><div class='add'>+0x756A = 0x8E76</div><div class='add'>+0x756B = 0x8E7C</div><div class='add'>+0x756C = 0x8E6F</div><div class='add'>+0x756D = 0x8E74</div><div class='add'>+0x756E = 0x8E85</div><div class='add'>+0x756F = 0x8E8F</div><div class='add'>+0x7570 = 0x8E94</div><div class='add'>+0x7571 = 0x8E90</div><div class='add'>+0x7572 = 0x8E9C</div><div class='add'>+0x7573 = 0x8E9E</div><div class='add'>+0x7574 = 0x8C78</div><div class='add'>+0x7575 = 0x8C82</div><div class='add'>+0x7576 = 0x8C8A</div><div class='add'>+0x7577 = 0x8C85</div><div class='add'>+0x7578 = 0x8C98</div><div class='add'>+0x7579 = 0x8C94</div><div class='add'>+0x757A = 0x659B</div><div class='add'>+0x757B = 0x89D6</div><div class='add'>+0x757C = 0x89DE</div><div class='add'>+0x757D = 0x89DA</div><div class='add'>+0x757E = 0x89DC</div><div class='add'>+0x7621 = 0x89E5</div><div class='add'>+0x7622 = 0x89EB</div><div class='add'>+0x7623 = 0x89EF</div><div class='add'>+0x7624 = 0x8A3E</div><div class='add'>+0x7625 = 0x8B26</div><div class='add'>+0x7626 = 0x9753</div><div class='add'>+0x7627 = 0x96E9</div><div class='add'>+0x7628 = 0x96F3</div><div class='add'>+0x7629 = 0x96EF</div><div class='add'>+0x762A = 0x9706</div><div class='add'>+0x762B = 0x9701</div><div class='add'>+0x762C = 0x9708</div><div class='add'>+0x762D = 0x970F</div><div class='add'>+0x762E = 0x970E</div><div class='add'>+0x762F = 0x972A</div><div class='add'>+0x7630 = 0x972D</div><div class='add'>+0x7631 = 0x9730</div><div class='add'>+0x7632 = 0x973E</div><div class='add'>+0x7633 = 0x9F80</div><div class='add'>+0x7634 = 0x9F83</div><div class='add'>+0x7635 = 0x9F85</div><div class='add'>+0x7636 = 0x9F86</div><div class='add'>+0x7637 = 0x9F87</div><div class='add'>+0x7638 = 0x9F88</div><div class='add'>+0x7639 = 0x9F89</div><div class='add'>+0x763A = 0x9F8A</div><div class='add'>+0x763B = 0x9F8C</div><div class='add'>+0x763C = 0x9EFE</div><div class='add'>+0x763D = 0x9F0B</div><div class='add'>+0x763E = 0x9F0D</div><div class='add'>+0x763F = 0x96B9</div><div class='add'>+0x7640 = 0x96BC</div><div class='add'>+0x7641 = 0x96BD</div><div class='add'>+0x7642 = 0x96CE</div><div class='add'>+0x7643 = 0x96D2</div><div class='add'>+0x7644 = 0x77BF</div><div class='add'>+0x7645 = 0x96E0</div><div class='add'>+0x7646 = 0x928E</div><div class='add'>+0x7647 = 0x92AE</div><div class='add'>+0x7648 = 0x92C8</div><div class='add'>+0x7649 = 0x933E</div><div class='add'>+0x764A = 0x936A</div><div class='add'>+0x764B = 0x93CA</div><div class='add'>+0x764C = 0x938F</div><div class='add'>+0x764D = 0x943E</div><div class='add'>+0x764E = 0x946B</div><div class='add'>+0x764F = 0x9C7F</div><div class='add'>+0x7650 = 0x9C82</div><div class='add'>+0x7651 = 0x9C85</div><div class='add'>+0x7652 = 0x9C86</div><div class='add'>+0x7653 = 0x9C87</div><div class='add'>+0x7654 = 0x9C88</div><div class='add'>+0x7655 = 0x7A23</div><div class='add'>+0x7656 = 0x9C8B</div><div class='add'>+0x7657 = 0x9C8E</div><div class='add'>+0x7658 = 0x9C90</div><div class='add'>+0x7659 = 0x9C91</div><div class='add'>+0x765A = 0x9C92</div><div class='add'>+0x765B = 0x9C94</div><div class='add'>+0x765C = 0x9C95</div><div class='add'>+0x765D = 0x9C9A</div><div class='add'>+0x765E = 0x9C9B</div><div class='add'>+0x765F = 0x9C9E</div><div class='add'>+0x7660 = 0x9C9F</div><div class='add'>+0x7661 = 0x9CA0</div><div class='add'>+0x7662 = 0x9CA1</div><div class='add'>+0x7663 = 0x9CA2</div><div class='add'>+0x7664 = 0x9CA3</div><div class='add'>+0x7665 = 0x9CA5</div><div class='add'>+0x7666 = 0x9CA6</div><div class='add'>+0x7667 = 0x9CA7</div><div class='add'>+0x7668 = 0x9CA8</div><div class='add'>+0x7669 = 0x9CA9</div><div class='add'>+0x766A = 0x9CAB</div><div class='add'>+0x766B = 0x9CAD</div><div class='add'>+0x766C = 0x9CAE</div><div class='add'>+0x766D = 0x9CB0</div><div class='add'>+0x766E = 0x9CB1</div><div class='add'>+0x766F = 0x9CB2</div><div class='add'>+0x7670 = 0x9CB3</div><div class='add'>+0x7671 = 0x9CB4</div><div class='add'>+0x7672 = 0x9CB5</div><div class='add'>+0x7673 = 0x9CB6</div><div class='add'>+0x7674 = 0x9CB7</div><div class='add'>+0x7675 = 0x9CBA</div><div class='add'>+0x7676 = 0x9CBB</div><div class='add'>+0x7677 = 0x9CBC</div><div class='add'>+0x7678 = 0x9CBD</div><div class='add'>+0x7679 = 0x9CC4</div><div class='add'>+0x767A = 0x9CC5</div><div class='add'>+0x767B = 0x9CC6</div><div class='add'>+0x767C = 0x9CC7</div><div class='add'>+0x767D = 0x9CCA</div><div class='add'>+0x767E = 0x9CCB</div><div class='add'>+0x7721 = 0x9CCC</div><div class='add'>+0x7722 = 0x9CCD</div><div class='add'>+0x7723 = 0x9CCE</div><div class='add'>+0x7724 = 0x9CCF</div><div class='add'>+0x7725 = 0x9CD0</div><div class='add'>+0x7726 = 0x9CD3</div><div class='add'>+0x7727 = 0x9CD4</div><div class='add'>+0x7728 = 0x9CD5</div><div class='add'>+0x7729 = 0x9CD7</div><div class='add'>+0x772A = 0x9CD8</div><div class='add'>+0x772B = 0x9CD9</div><div class='add'>+0x772C = 0x9CDC</div><div class='add'>+0x772D = 0x9CDD</div><div class='add'>+0x772E = 0x9CDF</div><div class='add'>+0x772F = 0x9CE2</div><div class='add'>+0x7730 = 0x977C</div><div class='add'>+0x7731 = 0x9785</div><div class='add'>+0x7732 = 0x9791</div><div class='add'>+0x7733 = 0x9792</div><div class='add'>+0x7734 = 0x9794</div><div class='add'>+0x7735 = 0x97AF</div><div class='add'>+0x7736 = 0x97AB</div><div class='add'>+0x7737 = 0x97A3</div><div class='add'>+0x7738 = 0x97B2</div><div class='add'>+0x7739 = 0x97B4</div><div class='add'>+0x773A = 0x9AB1</div><div class='add'>+0x773B = 0x9AB0</div><div class='add'>+0x773C = 0x9AB7</div><div class='add'>+0x773D = 0x9E58</div><div class='add'>+0x773E = 0x9AB6</div><div class='add'>+0x773F = 0x9ABA</div><div class='add'>+0x7740 = 0x9ABC</div><div class='add'>+0x7741 = 0x9AC1</div><div class='add'>+0x7742 = 0x9AC0</div><div class='add'>+0x7743 = 0x9AC5</div><div class='add'>+0x7744 = 0x9AC2</div><div class='add'>+0x7745 = 0x9ACB</div><div class='add'>+0x7746 = 0x9ACC</div><div class='add'>+0x7747 = 0x9AD1</div><div class='add'>+0x7748 = 0x9B45</div><div class='add'>+0x7749 = 0x9B43</div><div class='add'>+0x774A = 0x9B47</div><div class='add'>+0x774B = 0x9B49</div><div class='add'>+0x774C = 0x9B48</div><div class='add'>+0x774D = 0x9B4D</div><div class='add'>+0x774E = 0x9B51</div><div class='add'>+0x774F = 0x98E8</div><div class='add'>+0x7750 = 0x990D</div><div class='add'>+0x7751 = 0x992E</div><div class='add'>+0x7752 = 0x9955</div><div class='add'>+0x7753 = 0x9954</div><div class='add'>+0x7754 = 0x9ADF</div><div class='add'>+0x7755 = 0x9AE1</div><div class='add'>+0x7756 = 0x9AE6</div><div class='add'>+0x7757 = 0x9AEF</div><div class='add'>+0x7758 = 0x9AEB</div><div class='add'>+0x7759 = 0x9AFB</div><div class='add'>+0x775A = 0x9AED</div><div class='add'>+0x775B = 0x9AF9</div><div class='add'>+0x775C = 0x9B08</div><div class='add'>+0x775D = 0x9B0F</div><div class='add'>+0x775E = 0x9B13</div><div class='add'>+0x775F = 0x9B1F</div><div class='add'>+0x7760 = 0x9B23</div><div class='add'>+0x7761 = 0x9EBD</div><div class='add'>+0x7762 = 0x9EBE</div><div class='add'>+0x7763 = 0x7E3B</div><div class='add'>+0x7764 = 0x9E82</div><div class='add'>+0x7765 = 0x9E87</div><div class='add'>+0x7766 = 0x9E88</div><div class='add'>+0x7767 = 0x9E8B</div><div class='add'>+0x7768 = 0x9E92</div><div class='add'>+0x7769 = 0x93D6</div><div class='add'>+0x776A = 0x9E9D</div><div class='add'>+0x776B = 0x9E9F</div><div class='add'>+0x776C = 0x9EDB</div><div class='add'>+0x776D = 0x9EDC</div><div class='add'>+0x776E = 0x9EDD</div><div class='add'>+0x776F = 0x9EE0</div><div class='add'>+0x7770 = 0x9EDF</div><div class='add'>+0x7771 = 0x9EE2</div><div class='add'>+0x7772 = 0x9EE9</div><div class='add'>+0x7773 = 0x9EE7</div><div class='add'>+0x7774 = 0x9EE5</div><div class='add'>+0x7775 = 0x9EEA</div><div class='add'>+0x7776 = 0x9EEF</div><div class='add'>+0x7777 = 0x9F22</div><div class='add'>+0x7778 = 0x9F2C</div><div class='add'>+0x7779 = 0x9F2F</div><div class='add'>+0x777A = 0x9F39</div><div class='add'>+0x777B = 0x9F37</div><div class='add'>+0x777C = 0x9F3D</div><div class='add'>+0x777D = 0x9F3E</div><div class='add'>+0x777E = 0x9F44</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/GB/UCS%GB12345.src b/enc/trans/GB/UCS%GB12345.src<br/>new file mode 100644<br/>index 0000000000..8ec8318438<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/GB/UCS%25GB12345.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/GB/UCS%GB12345.src</a></div><div class='hunk'>@@ -0,0 +1,7620 @@</div><div class='add'>+# $NetBSD: UCS%GB12345.src,v 1.1 2006/11/23 03:25:24 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"UCS/GB12345"</div><div class='add'>+SRC_ZONE	0x00A4 - 0xFFE5</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFF</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             GB12345-80 to Unicode table (complete, hex format)</div><div class='add'>+#	Unicode version:  1.1</div><div class='add'>+#	Table version:    0.0d1</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             6 December 1993</div><div class='add'>+#	Author:           Glenn Adams &lt;glenn@metis.com&gt;</div><div class='add'>+#                     John H. Jenkins &lt;John_Jenkins@taligent.com&gt;</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on magnetic media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</div><div class='add'>+#</div><div class='add'>+#	Recipient is granted the right to make copies in any form for</div><div class='add'>+#	internal distribution and to freely use the information supplied</div><div class='add'>+#	in the creation of products supporting Unicode.  Unicode, Inc.</div><div class='add'>+#	specifically excludes the right to re-distribute this file directly</div><div class='add'>+#	to third parties or other organizations whether for profit or not.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#	This table contains the data Metis and Taligent currently have on how</div><div class='add'>+#       GB12345-90 characters map into Unicode.</div><div class='add'>+#</div><div class='add'>+#	Format:  Three tab-separated columns</div><div class='add'>+#		 Column #1 is the GB12345 code (in hex as 0xXXXX)</div><div class='add'>+#		 Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		 Column #3 the Unicode name (follows a comment sign, '#')</div><div class='add'>+#					The official names for Unicode characters U+4E00</div><div class='add'>+#					to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",</div><div class='add'>+#					where XXXX is the code point.  Including all these</div><div class='add'>+#					names in this file increases its size substantially</div><div class='add'>+#					and needlessly.  The token "&lt;CJK&gt;" is used for the</div><div class='add'>+#					name of these characters.  If necessary, it can be</div><div class='add'>+#					expanded algorithmically by a parser or editor.</div><div class='add'>+#</div><div class='add'>+#	The entries are in GB12345 order</div><div class='add'>+#</div><div class='add'>+#	The following algorithms can be used to change the hex form</div><div class='add'>+#		of GB12345 to other standard forms:</div><div class='add'>+#</div><div class='add'>+#		To change hex to EUC form, add 0x8080</div><div class='add'>+#		To change hex to kuten form, first subtract 0x2020.  Then</div><div class='add'>+#			the high and low bytes correspond to the ku and ten of</div><div class='add'>+#			the kuten form.  For example, 0x2121 -&gt; 0x0101 -&gt; 0101;</div><div class='add'>+#			0x777E -&gt; 0x575E -&gt; 8794</div><div class='add'>+#</div><div class='add'>+#	Any comments or problems, contact &lt;John_Jenkins@taligent.com&gt;</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+0x00A4 = 0x2168</div><div class='add'>+0x00A7 = 0x216C</div><div class='add'>+0x00A8 = 0x2127</div><div class='add'>+0x00B0 = 0x2163</div><div class='add'>+0x00B1 = 0x2140</div><div class='add'>+0x00B7 = 0x2124</div><div class='add'>+0x00D7 = 0x2141</div><div class='add'>+0x00E0 = 0x2824</div><div class='add'>+0x00E1 = 0x2822</div><div class='add'>+0x00E8 = 0x2828</div><div class='add'>+0x00E9 = 0x2826</div><div class='add'>+0x00EA = 0x283A</div><div class='add'>+0x00EC = 0x282C</div><div class='add'>+0x00ED = 0x282A</div><div class='add'>+0x00F2 = 0x2830</div><div class='add'>+0x00F3 = 0x282E</div><div class='add'>+0x00F7 = 0x2142</div><div class='add'>+0x00F9 = 0x2834</div><div class='add'>+0x00FA = 0x2832</div><div class='add'>+0x00FC = 0x2839</div><div class='add'>+0x0101 = 0x2821</div><div class='add'>+0x0113 = 0x2825</div><div class='add'>+0x011B = 0x2827</div><div class='add'>+0x012B = 0x2829</div><div class='add'>+0x014D = 0x282D</div><div class='add'>+0x016B = 0x2831</div><div class='add'>+0x01CE = 0x2823</div><div class='add'>+0x01D0 = 0x282B</div><div class='add'>+0x01D2 = 0x282F</div><div class='add'>+0x01D4 = 0x2833</div><div class='add'>+0x01D6 = 0x2835</div><div class='add'>+0x01D8 = 0x2836</div><div class='add'>+0x01DA = 0x2837</div><div class='add'>+0x01DC = 0x2838</div><div class='add'>+0x02C7 = 0x2126</div><div class='add'>+0x02C9 = 0x2125</div><div class='add'>+0x0391 = 0x2621</div><div class='add'>+0x0392 = 0x2622</div><div class='add'>+0x0393 = 0x2623</div><div class='add'>+0x0394 = 0x2624</div><div class='add'>+0x0395 = 0x2625</div><div class='add'>+0x0396 = 0x2626</div><div class='add'>+0x0397 = 0x2627</div><div class='add'>+0x0398 = 0x2628</div><div class='add'>+0x0399 = 0x2629</div><div class='add'>+0x039A = 0x262A</div><div class='add'>+0x039B = 0x262B</div><div class='add'>+0x039C = 0x262C</div><div class='add'>+0x039D = 0x262D</div><div class='add'>+0x039E = 0x262E</div><div class='add'>+0x039F = 0x262F</div><div class='add'>+0x03A0 = 0x2630</div><div class='add'>+0x03A1 = 0x2631</div><div class='add'>+0x03A3 = 0x2632</div><div class='add'>+0x03A4 = 0x2633</div><div class='add'>+0x03A5 = 0x2634</div><div class='add'>+0x03A6 = 0x2635</div><div class='add'>+0x03A7 = 0x2636</div><div class='add'>+0x03A8 = 0x2637</div><div class='add'>+0x03A9 = 0x2638</div><div class='add'>+0x03B1 = 0x2641</div><div class='add'>+0x03B2 = 0x2642</div><div class='add'>+0x03B3 = 0x2643</div><div class='add'>+0x03B4 = 0x2644</div><div class='add'>+0x03B5 = 0x2645</div><div class='add'>+0x03B6 = 0x2646</div><div class='add'>+0x03B7 = 0x2647</div><div class='add'>+0x03B8 = 0x2648</div><div class='add'>+0x03B9 = 0x2649</div><div class='add'>+0x03BA = 0x264A</div><div class='add'>+0x03BB = 0x264B</div><div class='add'>+0x03BC = 0x264C</div><div class='add'>+0x03BD = 0x264D</div><div class='add'>+0x03BE = 0x264E</div><div class='add'>+0x03BF = 0x264F</div><div class='add'>+0x03C0 = 0x2650</div><div class='add'>+0x03C1 = 0x2651</div><div class='add'>+0x03C3 = 0x2652</div><div class='add'>+0x03C4 = 0x2653</div><div class='add'>+0x03C5 = 0x2654</div><div class='add'>+0x03C6 = 0x2655</div><div class='add'>+0x03C7 = 0x2656</div><div class='add'>+0x03C8 = 0x2657</div><div class='add'>+0x03C9 = 0x2658</div><div class='add'>+0x0401 = 0x2727</div><div class='add'>+0x0410 = 0x2721</div><div class='add'>+0x0411 = 0x2722</div><div class='add'>+0x0412 = 0x2723</div><div class='add'>+0x0413 = 0x2724</div><div class='add'>+0x0414 = 0x2725</div><div class='add'>+0x0415 = 0x2726</div><div class='add'>+0x0416 = 0x2728</div><div class='add'>+0x0417 = 0x2729</div><div class='add'>+0x0418 = 0x272A</div><div class='add'>+0x0419 = 0x272B</div><div class='add'>+0x041A = 0x272C</div><div class='add'>+0x041B = 0x272D</div><div class='add'>+0x041C = 0x272E</div><div class='add'>+0x041D = 0x272F</div><div class='add'>+0x041E = 0x2730</div><div class='add'>+0x041F = 0x2731</div><div class='add'>+0x0420 = 0x2732</div><div class='add'>+0x0421 = 0x2733</div><div class='add'>+0x0422 = 0x2734</div><div class='add'>+0x0423 = 0x2735</div><div class='add'>+0x0424 = 0x2736</div><div class='add'>+0x0425 = 0x2737</div><div class='add'>+0x0426 = 0x2738</div><div class='add'>+0x0427 = 0x2739</div><div class='add'>+0x0428 = 0x273A</div><div class='add'>+0x0429 = 0x273B</div><div class='add'>+0x042A = 0x273C</div><div class='add'>+0x042B = 0x273D</div><div class='add'>+0x042C = 0x273E</div><div class='add'>+0x042D = 0x273F</div><div class='add'>+0x042E = 0x2740</div><div class='add'>+0x042F = 0x2741</div><div class='add'>+0x0430 = 0x2751</div><div class='add'>+0x0431 = 0x2752</div><div class='add'>+0x0432 = 0x2753</div><div class='add'>+0x0433 = 0x2754</div><div class='add'>+0x0434 = 0x2755</div><div class='add'>+0x0435 = 0x2756</div><div class='add'>+0x0436 = 0x2758</div><div class='add'>+0x0437 = 0x2759</div><div class='add'>+0x0438 = 0x275A</div><div class='add'>+0x0439 = 0x275B</div><div class='add'>+0x043A = 0x275C</div><div class='add'>+0x043B = 0x275D</div><div class='add'>+0x043C = 0x275E</div><div class='add'>+0x043D = 0x275F</div><div class='add'>+0x043E = 0x2760</div><div class='add'>+0x043F = 0x2761</div><div class='add'>+0x0440 = 0x2762</div><div class='add'>+0x0441 = 0x2763</div><div class='add'>+0x0442 = 0x2764</div><div class='add'>+0x0443 = 0x2765</div><div class='add'>+0x0444 = 0x2766</div><div class='add'>+0x0445 = 0x2767</div><div class='add'>+0x0446 = 0x2768</div><div class='add'>+0x0447 = 0x2769</div><div class='add'>+0x0448 = 0x276A</div><div class='add'>+0x0449 = 0x276B</div><div class='add'>+0x044A = 0x276C</div><div class='add'>+0x044B = 0x276D</div><div class='add'>+0x044C = 0x276E</div><div class='add'>+0x044D = 0x276F</div><div class='add'>+0x044E = 0x2770</div><div class='add'>+0x044F = 0x2771</div><div class='add'>+0x0451 = 0x2757</div><div class='add'>+0x2014 = 0x212A</div><div class='add'>+0x2015 = 0x212A # fallback -&gt; 0x2014</div><div class='add'>+0x2016 = 0x212C</div><div class='add'>+0x2018 = 0x212E</div><div class='add'>+0x2019 = 0x212F</div><div class='add'>+0x201C = 0x2130</div><div class='add'>+0x201D = 0x2131</div><div class='add'>+0x2026 = 0x212D</div><div class='add'>+0x2030 = 0x216B</div><div class='add'>+0x2032 = 0x2164</div><div class='add'>+0x2033 = 0x2165</div><div class='add'>+0x203B = 0x2179</div><div class='add'>+0x2103 = 0x2166</div><div class='add'>+0x2116 = 0x216D</div><div class='add'>+0x2160 = 0x2271</div><div class='add'>+0x2161 = 0x2272</div><div class='add'>+0x2162 = 0x2273</div><div class='add'>+0x2163 = 0x2274</div><div class='add'>+0x2164 = 0x2275</div><div class='add'>+0x2165 = 0x2276</div><div class='add'>+0x2166 = 0x2277</div><div class='add'>+0x2167 = 0x2278</div><div class='add'>+0x2168 = 0x2279</div><div class='add'>+0x2169 = 0x227A</div><div class='add'>+0x216A = 0x227B</div><div class='add'>+0x216B = 0x227C</div><div class='add'>+0x2190 = 0x217B</div><div class='add'>+0x2191 = 0x217C</div><div class='add'>+0x2192 = 0x217A</div><div class='add'>+0x2193 = 0x217D</div><div class='add'>+0x2208 = 0x214A</div><div class='add'>+0x220F = 0x2147</div><div class='add'>+0x2211 = 0x2146</div><div class='add'>+0x221A = 0x214C</div><div class='add'>+0x221D = 0x2158</div><div class='add'>+0x221E = 0x215E</div><div class='add'>+0x2220 = 0x214F</div><div class='add'>+0x2225 = 0x214E</div><div class='add'>+0x2227 = 0x2144</div><div class='add'>+0x2228 = 0x2145</div><div class='add'>+0x2229 = 0x2149</div><div class='add'>+0x222A = 0x2148</div><div class='add'>+0x222B = 0x2152</div><div class='add'>+0x222E = 0x2153</div><div class='add'>+0x2234 = 0x2160</div><div class='add'>+0x2235 = 0x215F</div><div class='add'>+0x2236 = 0x2143</div><div class='add'>+0x2237 = 0x214B</div><div class='add'>+0x223D = 0x2157</div><div class='add'>+0x2248 = 0x2156</div><div class='add'>+0x224C = 0x2155</div><div class='add'>+0x2260 = 0x2159</div><div class='add'>+0x2261 = 0x2154</div><div class='add'>+0x2264 = 0x215C</div><div class='add'>+0x2265 = 0x215D</div><div class='add'>+0x226E = 0x215A</div><div class='add'>+0x226F = 0x215B</div><div class='add'>+0x2299 = 0x2151</div><div class='add'>+0x22A5 = 0x214D</div><div class='add'>+0x2312 = 0x2150</div><div class='add'>+0x2460 = 0x2259</div><div class='add'>+0x2461 = 0x225A</div><div class='add'>+0x2462 = 0x225B</div><div class='add'>+0x2463 = 0x225C</div><div class='add'>+0x2464 = 0x225D</div><div class='add'>+0x2465 = 0x225E</div><div class='add'>+0x2466 = 0x225F</div><div class='add'>+0x2467 = 0x2260</div><div class='add'>+0x2468 = 0x2261</div><div class='add'>+0x2469 = 0x2262</div><div class='add'>+0x2474 = 0x2245</div><div class='add'>+0x2475 = 0x2246</div><div class='add'>+0x2476 = 0x2247</div><div class='add'>+0x2477 = 0x2248</div><div class='add'>+0x2478 = 0x2249</div><div class='add'>+0x2479 = 0x224A</div><div class='add'>+0x247A = 0x224B</div><div class='add'>+0x247B = 0x224C</div><div class='add'>+0x247C = 0x224D</div><div class='add'>+0x247D = 0x224E</div><div class='add'>+0x247E = 0x224F</div><div class='add'>+0x247F = 0x2250</div><div class='add'>+0x2480 = 0x2251</div><div class='add'>+0x2481 = 0x2252</div><div class='add'>+0x2482 = 0x2253</div><div class='add'>+0x2483 = 0x2254</div><div class='add'>+0x2484 = 0x2255</div><div class='add'>+0x2485 = 0x2256</div><div class='add'>+0x2486 = 0x2257</div><div class='add'>+0x2487 = 0x2258</div><div class='add'>+0x2488 = 0x2231</div><div class='add'>+0x2489 = 0x2232</div><div class='add'>+0x248A = 0x2233</div><div class='add'>+0x248B = 0x2234</div><div class='add'>+0x248C = 0x2235</div><div class='add'>+0x248D = 0x2236</div><div class='add'>+0x248E = 0x2237</div><div class='add'>+0x248F = 0x2238</div><div class='add'>+0x2490 = 0x2239</div><div class='add'>+0x2491 = 0x223A</div><div class='add'>+0x2492 = 0x223B</div><div class='add'>+0x2493 = 0x223C</div><div class='add'>+0x2494 = 0x223D</div><div class='add'>+0x2495 = 0x223E</div><div class='add'>+0x2496 = 0x223F</div><div class='add'>+0x2497 = 0x2240</div><div class='add'>+0x2498 = 0x2241</div><div class='add'>+0x2499 = 0x2242</div><div class='add'>+0x249A = 0x2243</div><div class='add'>+0x249B = 0x2244</div><div class='add'>+0x2500 = 0x2924</div><div class='add'>+0x2501 = 0x2925</div><div class='add'>+0x2502 = 0x2926</div><div class='add'>+0x2503 = 0x2927</div><div class='add'>+0x2504 = 0x2928</div><div class='add'>+0x2505 = 0x2929</div><div class='add'>+0x2506 = 0x292A</div><div class='add'>+0x2507 = 0x292B</div><div class='add'>+0x2508 = 0x292C</div><div class='add'>+0x2509 = 0x292D</div><div class='add'>+0x250A = 0x292E</div><div class='add'>+0x250B = 0x292F</div><div class='add'>+0x250C = 0x2930</div><div class='add'>+0x250D = 0x2931</div><div class='add'>+0x250E = 0x2932</div><div class='add'>+0x250F = 0x2933</div><div class='add'>+0x2510 = 0x2934</div><div class='add'>+0x2511 = 0x2935</div><div class='add'>+0x2512 = 0x2936</div><div class='add'>+0x2513 = 0x2937</div><div class='add'>+0x2514 = 0x2938</div><div class='add'>+0x2515 = 0x2939</div><div class='add'>+0x2516 = 0x293A</div><div class='add'>+0x2517 = 0x293B</div><div class='add'>+0x2518 = 0x293C</div><div class='add'>+0x2519 = 0x293D</div><div class='add'>+0x251A = 0x293E</div><div class='add'>+0x251B = 0x293F</div><div class='add'>+0x251C = 0x2940</div><div class='add'>+0x251D = 0x2941</div><div class='add'>+0x251E = 0x2942</div><div class='add'>+0x251F = 0x2943</div><div class='add'>+0x2520 = 0x2944</div><div class='add'>+0x2521 = 0x2945</div><div class='add'>+0x2522 = 0x2946</div><div class='add'>+0x2523 = 0x2947</div><div class='add'>+0x2524 = 0x2948</div><div class='add'>+0x2525 = 0x2949</div><div class='add'>+0x2526 = 0x294A</div><div class='add'>+0x2527 = 0x294B</div><div class='add'>+0x2528 = 0x294C</div><div class='add'>+0x2529 = 0x294D</div><div class='add'>+0x252A = 0x294E</div><div class='add'>+0x252B = 0x294F</div><div class='add'>+0x252C = 0x2950</div><div class='add'>+0x252D = 0x2951</div><div class='add'>+0x252E = 0x2952</div><div class='add'>+0x252F = 0x2953</div><div class='add'>+0x2530 = 0x2954</div><div class='add'>+0x2531 = 0x2955</div><div class='add'>+0x2532 = 0x2956</div><div class='add'>+0x2533 = 0x2957</div><div class='add'>+0x2534 = 0x2958</div><div class='add'>+0x2535 = 0x2959</div><div class='add'>+0x2536 = 0x295A</div><div class='add'>+0x2537 = 0x295B</div><div class='add'>+0x2538 = 0x295C</div><div class='add'>+0x2539 = 0x295D</div><div class='add'>+0x253A = 0x295E</div><div class='add'>+0x253B = 0x295F</div><div class='add'>+0x253C = 0x2960</div><div class='add'>+0x253D = 0x2961</div><div class='add'>+0x253E = 0x2962</div><div class='add'>+0x253F = 0x2963</div><div class='add'>+0x2540 = 0x2964</div><div class='add'>+0x2541 = 0x2965</div><div class='add'>+0x2542 = 0x2966</div><div class='add'>+0x2543 = 0x2967</div><div class='add'>+0x2544 = 0x2968</div><div class='add'>+0x2545 = 0x2969</div><div class='add'>+0x2546 = 0x296A</div><div class='add'>+0x2547 = 0x296B</div><div class='add'>+0x2548 = 0x296C</div><div class='add'>+0x2549 = 0x296D</div><div class='add'>+0x254A = 0x296E</div><div class='add'>+0x254B = 0x296F</div><div class='add'>+0x25A0 = 0x2176</div><div class='add'>+0x25A1 = 0x2175</div><div class='add'>+0x25B2 = 0x2178</div><div class='add'>+0x25B3 = 0x2177</div><div class='add'>+0x25C6 = 0x2174</div><div class='add'>+0x25C7 = 0x2173</div><div class='add'>+0x25CB = 0x2170</div><div class='add'>+0x25CE = 0x2172</div><div class='add'>+0x25CF = 0x2171</div><div class='add'>+0x2605 = 0x216F</div><div class='add'>+0x2606 = 0x216E</div><div class='add'>+0x2640 = 0x2162</div><div class='add'>+0x2642 = 0x2161</div><div class='add'>+0x3000 = 0x2121</div><div class='add'>+0x3001 = 0x2122</div><div class='add'>+0x3002 = 0x2123</div><div class='add'>+0x3003 = 0x2128</div><div class='add'>+0x3005 = 0x2129</div><div class='add'>+0x3008 = 0x2134</div><div class='add'>+0x3009 = 0x2135</div><div class='add'>+0x300A = 0x2136</div><div class='add'>+0x300B = 0x2137</div><div class='add'>+0x300C = 0x2138</div><div class='add'>+0x300D = 0x2139</div><div class='add'>+0x300E = 0x213A</div><div class='add'>+0x300F = 0x213B</div><div class='add'>+0x3010 = 0x213E</div><div class='add'>+0x3011 = 0x213F</div><div class='add'>+0x3013 = 0x217E</div><div class='add'>+0x3014 = 0x2132</div><div class='add'>+0x3015 = 0x2133</div><div class='add'>+0x3016 = 0x213C</div><div class='add'>+0x3017 = 0x213D</div><div class='add'>+0x3041 = 0x2421</div><div class='add'>+0x3042 = 0x2422</div><div class='add'>+0x3043 = 0x2423</div><div class='add'>+0x3044 = 0x2424</div><div class='add'>+0x3045 = 0x2425</div><div class='add'>+0x3046 = 0x2426</div><div class='add'>+0x3047 = 0x2427</div><div class='add'>+0x3048 = 0x2428</div><div class='add'>+0x3049 = 0x2429</div><div class='add'>+0x304A = 0x242A</div><div class='add'>+0x304B = 0x242B</div><div class='add'>+0x304C = 0x242C</div><div class='add'>+0x304D = 0x242D</div><div class='add'>+0x304E = 0x242E</div><div class='add'>+0x304F = 0x242F</div><div class='add'>+0x3050 = 0x2430</div><div class='add'>+0x3051 = 0x2431</div><div class='add'>+0x3052 = 0x2432</div><div class='add'>+0x3053 = 0x2433</div><div class='add'>+0x3054 = 0x2434</div><div class='add'>+0x3055 = 0x2435</div><div class='add'>+0x3056 = 0x2436</div><div class='add'>+0x3057 = 0x2437</div><div class='add'>+0x3058 = 0x2438</div><div class='add'>+0x3059 = 0x2439</div><div class='add'>+0x305A = 0x243A</div><div class='add'>+0x305B = 0x243B</div><div class='add'>+0x305C = 0x243C</div><div class='add'>+0x305D = 0x243D</div><div class='add'>+0x305E = 0x243E</div><div class='add'>+0x305F = 0x243F</div><div class='add'>+0x3060 = 0x2440</div><div class='add'>+0x3061 = 0x2441</div><div class='add'>+0x3062 = 0x2442</div><div class='add'>+0x3063 = 0x2443</div><div class='add'>+0x3064 = 0x2444</div><div class='add'>+0x3065 = 0x2445</div><div class='add'>+0x3066 = 0x2446</div><div class='add'>+0x3067 = 0x2447</div><div class='add'>+0x3068 = 0x2448</div><div class='add'>+0x3069 = 0x2449</div><div class='add'>+0x306A = 0x244A</div><div class='add'>+0x306B = 0x244B</div><div class='add'>+0x306C = 0x244C</div><div class='add'>+0x306D = 0x244D</div><div class='add'>+0x306E = 0x244E</div><div class='add'>+0x306F = 0x244F</div><div class='add'>+0x3070 = 0x2450</div><div class='add'>+0x3071 = 0x2451</div><div class='add'>+0x3072 = 0x2452</div><div class='add'>+0x3073 = 0x2453</div><div class='add'>+0x3074 = 0x2454</div><div class='add'>+0x3075 = 0x2455</div><div class='add'>+0x3076 = 0x2456</div><div class='add'>+0x3077 = 0x2457</div><div class='add'>+0x3078 = 0x2458</div><div class='add'>+0x3079 = 0x2459</div><div class='add'>+0x307A = 0x245A</div><div class='add'>+0x307B = 0x245B</div><div class='add'>+0x307C = 0x245C</div><div class='add'>+0x307D = 0x245D</div><div class='add'>+0x307E = 0x245E</div><div class='add'>+0x307F = 0x245F</div><div class='add'>+0x3080 = 0x2460</div><div class='add'>+0x3081 = 0x2461</div><div class='add'>+0x3082 = 0x2462</div><div class='add'>+0x3083 = 0x2463</div><div class='add'>+0x3084 = 0x2464</div><div class='add'>+0x3085 = 0x2465</div><div class='add'>+0x3086 = 0x2466</div><div class='add'>+0x3087 = 0x2467</div><div class='add'>+0x3088 = 0x2468</div><div class='add'>+0x3089 = 0x2469</div><div class='add'>+0x308A = 0x246A</div><div class='add'>+0x308B = 0x246B</div><div class='add'>+0x308C = 0x246C</div><div class='add'>+0x308D = 0x246D</div><div class='add'>+0x308E = 0x246E</div><div class='add'>+0x308F = 0x246F</div><div class='add'>+0x3090 = 0x2470</div><div class='add'>+0x3091 = 0x2471</div><div class='add'>+0x3092 = 0x2472</div><div class='add'>+0x3093 = 0x2473</div><div class='add'>+0x30A1 = 0x2521</div><div class='add'>+0x30A2 = 0x2522</div><div class='add'>+0x30A3 = 0x2523</div><div class='add'>+0x30A4 = 0x2524</div><div class='add'>+0x30A5 = 0x2525</div><div class='add'>+0x30A6 = 0x2526</div><div class='add'>+0x30A7 = 0x2527</div><div class='add'>+0x30A8 = 0x2528</div><div class='add'>+0x30A9 = 0x2529</div><div class='add'>+0x30AA = 0x252A</div><div class='add'>+0x30AB = 0x252B</div><div class='add'>+0x30AC = 0x252C</div><div class='add'>+0x30AD = 0x252D</div><div class='add'>+0x30AE = 0x252E</div><div class='add'>+0x30AF = 0x252F</div><div class='add'>+0x30B0 = 0x2530</div><div class='add'>+0x30B1 = 0x2531</div><div class='add'>+0x30B2 = 0x2532</div><div class='add'>+0x30B3 = 0x2533</div><div class='add'>+0x30B4 = 0x2534</div><div class='add'>+0x30B5 = 0x2535</div><div class='add'>+0x30B6 = 0x2536</div><div class='add'>+0x30B7 = 0x2537</div><div class='add'>+0x30B8 = 0x2538</div><div class='add'>+0x30B9 = 0x2539</div><div class='add'>+0x30BA = 0x253A</div><div class='add'>+0x30BB = 0x253B</div><div class='add'>+0x30BC = 0x253C</div><div class='add'>+0x30BD = 0x253D</div><div class='add'>+0x30BE = 0x253E</div><div class='add'>+0x30BF = 0x253F</div><div class='add'>+0x30C0 = 0x2540</div><div class='add'>+0x30C1 = 0x2541</div><div class='add'>+0x30C2 = 0x2542</div><div class='add'>+0x30C3 = 0x2543</div><div class='add'>+0x30C4 = 0x2544</div><div class='add'>+0x30C5 = 0x2545</div><div class='add'>+0x30C6 = 0x2546</div><div class='add'>+0x30C7 = 0x2547</div><div class='add'>+0x30C8 = 0x2548</div><div class='add'>+0x30C9 = 0x2549</div><div class='add'>+0x30CA = 0x254A</div><div class='add'>+0x30CB = 0x254B</div><div class='add'>+0x30CC = 0x254C</div><div class='add'>+0x30CD = 0x254D</div><div class='add'>+0x30CE = 0x254E</div><div class='add'>+0x30CF = 0x254F</div><div class='add'>+0x30D0 = 0x2550</div><div class='add'>+0x30D1 = 0x2551</div><div class='add'>+0x30D2 = 0x2552</div><div class='add'>+0x30D3 = 0x2553</div><div class='add'>+0x30D4 = 0x2554</div><div class='add'>+0x30D5 = 0x2555</div><div class='add'>+0x30D6 = 0x2556</div><div class='add'>+0x30D7 = 0x2557</div><div class='add'>+0x30D8 = 0x2558</div><div class='add'>+0x30D9 = 0x2559</div><div class='add'>+0x30DA = 0x255A</div><div class='add'>+0x30DB = 0x255B</div><div class='add'>+0x30DC = 0x255C</div><div class='add'>+0x30DD = 0x255D</div><div class='add'>+0x30DE = 0x255E</div><div class='add'>+0x30DF = 0x255F</div><div class='add'>+0x30E0 = 0x2560</div><div class='add'>+0x30E1 = 0x2561</div><div class='add'>+0x30E2 = 0x2562</div><div class='add'>+0x30E3 = 0x2563</div><div class='add'>+0x30E4 = 0x2564</div><div class='add'>+0x30E5 = 0x2565</div><div class='add'>+0x30E6 = 0x2566</div><div class='add'>+0x30E7 = 0x2567</div><div class='add'>+0x30E8 = 0x2568</div><div class='add'>+0x30E9 = 0x2569</div><div class='add'>+0x30EA = 0x256A</div><div class='add'>+0x30EB = 0x256B</div><div class='add'>+0x30EC = 0x256C</div><div class='add'>+0x30ED = 0x256D</div><div class='add'>+0x30EE = 0x256E</div><div class='add'>+0x30EF = 0x256F</div><div class='add'>+0x30F0 = 0x2570</div><div class='add'>+0x30F1 = 0x2571</div><div class='add'>+0x30F2 = 0x2572</div><div class='add'>+0x30F3 = 0x2573</div><div class='add'>+0x30F4 = 0x2574</div><div class='add'>+0x30F5 = 0x2575</div><div class='add'>+0x30F6 = 0x2576</div><div class='add'>+0x30FB = 0x2124 # fallback -&gt; 0x00B7</div><div class='add'>+0x3105 = 0x2845</div><div class='add'>+0x3106 = 0x2846</div><div class='add'>+0x3107 = 0x2847</div><div class='add'>+0x3108 = 0x2848</div><div class='add'>+0x3109 = 0x2849</div><div class='add'>+0x310A = 0x284A</div><div class='add'>+0x310B = 0x284B</div><div class='add'>+0x310C = 0x284C</div><div class='add'>+0x310D = 0x284D</div><div class='add'>+0x310E = 0x284E</div><div class='add'>+0x310F = 0x284F</div><div class='add'>+0x3110 = 0x2850</div><div class='add'>+0x3111 = 0x2851</div><div class='add'>+0x3112 = 0x2852</div><div class='add'>+0x3113 = 0x2853</div><div class='add'>+0x3114 = 0x2854</div><div class='add'>+0x3115 = 0x2855</div><div class='add'>+0x3116 = 0x2856</div><div class='add'>+0x3117 = 0x2857</div><div class='add'>+0x3118 = 0x2858</div><div class='add'>+0x3119 = 0x2859</div><div class='add'>+0x311A = 0x285A</div><div class='add'>+0x311B = 0x285B</div><div class='add'>+0x311C = 0x285C</div><div class='add'>+0x311D = 0x285D</div><div class='add'>+0x311E = 0x285E</div><div class='add'>+0x311F = 0x285F</div><div class='add'>+0x3120 = 0x2860</div><div class='add'>+0x3121 = 0x2861</div><div class='add'>+0x3122 = 0x2862</div><div class='add'>+0x3123 = 0x2863</div><div class='add'>+0x3124 = 0x2864</div><div class='add'>+0x3125 = 0x2865</div><div class='add'>+0x3126 = 0x2866</div><div class='add'>+0x3127 = 0x2867</div><div class='add'>+0x3128 = 0x2868</div><div class='add'>+0x3129 = 0x2869</div><div class='add'>+0x3220 = 0x2265</div><div class='add'>+0x3221 = 0x2266</div><div class='add'>+0x3222 = 0x2267</div><div class='add'>+0x3223 = 0x2268</div><div class='add'>+0x3224 = 0x2269</div><div class='add'>+0x3225 = 0x226A</div><div class='add'>+0x3226 = 0x226B</div><div class='add'>+0x3227 = 0x226C</div><div class='add'>+0x3228 = 0x226D</div><div class='add'>+0x3229 = 0x226E</div><div class='add'>+0x4E00 = 0x523B</div><div class='add'>+0x4E01 = 0x3621</div><div class='add'>+0x4E03 = 0x465F</div><div class='add'>+0x4E07 = 0x7871</div><div class='add'>+0x4E08 = 0x5549</div><div class='add'>+0x4E09 = 0x487D</div><div class='add'>+0x4E0A = 0x494F</div><div class='add'>+0x4E0B = 0x4F42</div><div class='add'>+0x4E0C = 0x5822</div><div class='add'>+0x4E0D = 0x323B</div><div class='add'>+0x4E10 = 0x5824</div><div class='add'>+0x4E11 = 0x7829</div><div class='add'>+0x4E14 = 0x4752</div><div class='add'>+0x4E15 = 0x5827</div><div class='add'>+0x4E16 = 0x4A40</div><div class='add'>+0x4E18 = 0x4770</div><div class='add'>+0x4E19 = 0x317B</div><div class='add'>+0x4E1E = 0x5829</div><div class='add'>+0x4E22 = 0x362A</div><div class='add'>+0x4E28 = 0x582D</div><div class='add'>+0x4E2B = 0x513E</div><div class='add'>+0x4E2C = 0x635C</div><div class='add'>+0x4E2D = 0x5650</div><div class='add'>+0x4E30 = 0x7833</div><div class='add'>+0x4E32 = 0x342E</div><div class='add'>+0x4E36 = 0x583C</div><div class='add'>+0x4E38 = 0x4D68</div><div class='add'>+0x4E39 = 0x3524</div><div class='add'>+0x4E3B = 0x5677</div><div class='add'>+0x4E3F = 0x582F</div><div class='add'>+0x4E43 = 0x444B</div><div class='add'>+0x4E45 = 0x3E43</div><div class='add'>+0x4E47 = 0x5831</div><div class='add'>+0x4E48 = 0x7761</div><div class='add'>+0x4E4B = 0x562E</div><div class='add'>+0x4E4D = 0x5527</div><div class='add'>+0x4E4E = 0x3A75</div><div class='add'>+0x4E4F = 0x3726</div><div class='add'>+0x4E52 = 0x4639</div><div class='add'>+0x4E53 = 0x4552</div><div class='add'>+0x4E56 = 0x3954</div><div class='add'>+0x4E58 = 0x334B</div><div class='add'>+0x4E59 = 0x5252</div><div class='add'>+0x4E5C = 0x583F</div><div class='add'>+0x4E5D = 0x3E45</div><div class='add'>+0x4E5E = 0x4672</div><div class='add'>+0x4E5F = 0x5232</div><div class='add'>+0x4E69 = 0x5840</div><div class='add'>+0x4E73 = 0x4869</div><div class='add'>+0x4E7E = 0x472C</div><div class='add'>+0x4E82 = 0x4252</div><div class='add'>+0x4E86 = 0x414B</div><div class='add'>+0x4E88 = 0x5368</div><div class='add'>+0x4E8B = 0x4A42</div><div class='add'>+0x4E8C = 0x367E</div><div class='add'>+0x4E8D = 0x5821</div><div class='add'>+0x4E8E = 0x535A</div><div class='add'>+0x4E91 = 0x787D</div><div class='add'>+0x4E92 = 0x3B25</div><div class='add'>+0x4E93 = 0x5841</div><div class='add'>+0x4E94 = 0x4E65</div><div class='add'>+0x4E95 = 0x3E2E</div><div class='add'>+0x4E98 = 0x5828</div><div class='add'>+0x4E9B = 0x5029</div><div class='add'>+0x4E9E = 0x5147</div><div class='add'>+0x4E9F = 0x583D</div><div class='add'>+0x4EA0 = 0x596F</div><div class='add'>+0x4EA1 = 0x4D76</div><div class='add'>+0x4EA2 = 0x3F3A</div><div class='add'>+0x4EA4 = 0x3D3B</div><div class='add'>+0x4EA5 = 0x3A25</div><div class='add'>+0x4EA6 = 0x5260</div><div class='add'>+0x4EA8 = 0x3A60</div><div class='add'>+0x4EAB = 0x4F6D</div><div class='add'>+0x4EAC = 0x3E29</div><div class='add'>+0x4EAD = 0x4D24</div><div class='add'>+0x4EAE = 0x4141</div><div class='add'>+0x4EB3 = 0x5971</div><div class='add'>+0x4EBA = 0x484B</div><div class='add'>+0x4EBB = 0x5869</div><div class='add'>+0x4EC0 = 0x4A32</div><div class='add'>+0x4EC1 = 0x484A</div><div class='add'>+0x4EC2 = 0x586C</div><div class='add'>+0x4EC3 = 0x586A</div><div class='add'>+0x4EC4 = 0x5846</div><div class='add'>+0x4EC6 = 0x785F</div><div class='add'>+0x4EC7 = 0x3370</div><div class='add'>+0x4EC9 = 0x586B</div><div class='add'>+0x4ECA = 0x3D71</div><div class='add'>+0x4ECB = 0x3D69</div><div class='add'>+0x4ECD = 0x4854</div><div class='add'>+0x4ED4 = 0x5750</div><div class='add'>+0x4ED5 = 0x4A4B</div><div class='add'>+0x4ED6 = 0x4B7B</div><div class='add'>+0x4ED7 = 0x554C</div><div class='add'>+0x4ED8 = 0x3836</div><div class='add'>+0x4ED9 = 0x4F49</div><div class='add'>+0x4EDD = 0x595A</div><div class='add'>+0x4EDE = 0x5870</div><div class='add'>+0x4EDF = 0x472A</div><div class='add'>+0x4EE1 = 0x586E</div><div class='add'>+0x4EE3 = 0x347A</div><div class='add'>+0x4EE4 = 0x416E</div><div class='add'>+0x4EE5 = 0x5254</div><div class='add'>+0x4EE8 = 0x586D</div><div class='add'>+0x4EEB = 0x586F</div><div class='add'>+0x4EF0 = 0x5176</div><div class='add'>+0x4EF2 = 0x5659</div><div class='add'>+0x4EF3 = 0x5872</div><div class='add'>+0x4EF5 = 0x5875</div><div class='add'>+0x4EF6 = 0x3C7E</div><div class='add'>+0x4EF7 = 0x7842</div><div class='add'>+0x4EFB = 0x484E</div><div class='add'>+0x4EFD = 0x375D</div><div class='add'>+0x4EFF = 0x3742</div><div class='add'>+0x4F01 = 0x4673</div><div class='add'>+0x4F09 = 0x5878</div><div class='add'>+0x4F0A = 0x5241</div><div class='add'>+0x4F0D = 0x4E69</div><div class='add'>+0x4F0E = 0x3C3F</div><div class='add'>+0x4F0F = 0x377C</div><div class='add'>+0x4F10 = 0x3725</div><div class='add'>+0x4F11 = 0x505D</div><div class='add'>+0x4F19 = 0x3B6F</div><div class='add'>+0x4F22 = 0x5873</div><div class='add'>+0x4F2F = 0x322E</div><div class='add'>+0x4F30 = 0x3940</div><div class='add'>+0x4F32 = 0x5923</div><div class='add'>+0x4F34 = 0x3069</div><div class='add'>+0x4F36 = 0x4166</div><div class='add'>+0x4F38 = 0x496C</div><div class='add'>+0x4F3A = 0x4B45</div><div class='add'>+0x4F3C = 0x4B46</div><div class='add'>+0x4F3D = 0x5924</div><div class='add'>+0x4F43 = 0x3568</div><div class='add'>+0x4F46 = 0x352B</div><div class='add'>+0x4F47 = 0x5879</div><div class='add'>+0x4F4D = 0x4E3B</div><div class='add'>+0x4F4E = 0x354D</div><div class='add'>+0x4F4F = 0x5721</div><div class='add'>+0x4F50 = 0x5774</div><div class='add'>+0x4F51 = 0x5353</div><div class='add'>+0x4F55 = 0x3A4E</div><div class='add'>+0x4F57 = 0x5922</div><div class='add'>+0x4F58 = 0x595C</div><div class='add'>+0x4F59 = 0x6245</div><div class='add'>+0x4F5A = 0x587D</div><div class='add'>+0x4F5B = 0x3770</div><div class='add'>+0x4F5C = 0x5777</div><div class='add'>+0x4F5D = 0x587E</div><div class='add'>+0x4F5E = 0x587A</div><div class='add'>+0x4F5F = 0x5921</div><div class='add'>+0x4F60 = 0x4463</div><div class='add'>+0x4F64 = 0x5874</div><div class='add'>+0x4F67 = 0x587B</div><div class='add'>+0x4F69 = 0x4565</div><div class='add'>+0x4F6C = 0x4050</div><div class='add'>+0x4F6F = 0x5170</div><div class='add'>+0x4F70 = 0x305B</div><div class='add'>+0x4F73 = 0x3C51</div><div class='add'>+0x4F74 = 0x5926</div><div class='add'>+0x4F76 = 0x5925</div><div class='add'>+0x4F7B = 0x592C</div><div class='add'>+0x4F7C = 0x592E</div><div class='add'>+0x4F7E = 0x592B</div><div class='add'>+0x4F7F = 0x4A39</div><div class='add'>+0x4F83 = 0x5929</div><div class='add'>+0x4F84 = 0x5636</div><div class='add'>+0x4F86 = 0x4034</div><div class='add'>+0x4F88 = 0x335E</div><div class='add'>+0x4F89 = 0x5928</div><div class='add'>+0x4F8B = 0x407D</div><div class='add'>+0x4F8D = 0x4A4C</div><div class='add'>+0x4F8F = 0x592A</div><div class='add'>+0x4F91 = 0x5927</div><div class='add'>+0x4F94 = 0x5930</div><div class='add'>+0x4F96 = 0x4258</div><div class='add'>+0x4F97 = 0x3631</div><div class='add'>+0x4F9B = 0x3929</div><div class='add'>+0x4F9D = 0x5240</div><div class='add'>+0x4FA3 = 0x4242</div><div class='add'>+0x4FAE = 0x4E6A</div><div class='add'>+0x4FAF = 0x3A6E</div><div class='add'>+0x4FB5 = 0x4756</div><div class='add'>+0x4FBF = 0x3163</div><div class='add'>+0x4FC2 = 0x7872</div><div class='add'>+0x4FC3 = 0x3459</div><div class='add'>+0x4FC4 = 0x366D</div><div class='add'>+0x4FC5 = 0x5934</div><div class='add'>+0x4FCA = 0x3F21</div><div class='add'>+0x4FCE = 0x595E</div><div class='add'>+0x4FCF = 0x474E</div><div class='add'>+0x4FD0 = 0x407E</div><div class='add'>+0x4FD1 = 0x5938</div><div class='add'>+0x4FD7 = 0x4B57</div><div class='add'>+0x4FD8 = 0x377D</div><div class='add'>+0x4FDA = 0x5935</div><div class='add'>+0x4FDC = 0x5937</div><div class='add'>+0x4FDD = 0x3123</div><div class='add'>+0x4FDE = 0x5361</div><div class='add'>+0x4FDF = 0x5939</div><div class='add'>+0x4FE0 = 0x4F40</div><div class='add'>+0x4FE1 = 0x5045</div><div class='add'>+0x4FE3 = 0x5936</div><div class='add'>+0x4FEE = 0x505E</div><div class='add'>+0x4FEF = 0x3829</div><div class='add'>+0x4FF1 = 0x3E63</div><div class='add'>+0x4FF3 = 0x593D</div><div class='add'>+0x4FF8 = 0x593A</div><div class='add'>+0x4FFA = 0x3033</div><div class='add'>+0x4FFE = 0x5942</div><div class='add'>+0x5000 = 0x5876</div><div class='add'>+0x5006 = 0x4129</div><div class='add'>+0x5009 = 0x3256</div><div class='add'>+0x500B = 0x3876</div><div class='add'>+0x500C = 0x5944</div><div class='add'>+0x500D = 0x3136</div><div class='add'>+0x500F = 0x593F</div><div class='add'>+0x5011 = 0x4347</div><div class='add'>+0x5012 = 0x3539</div><div class='add'>+0x5014 = 0x3E73</div><div class='add'>+0x5018 = 0x4C48</div><div class='add'>+0x5019 = 0x3A72</div><div class='add'>+0x501A = 0x5250</div><div class='add'>+0x501C = 0x5943</div><div class='add'>+0x501F = 0x3D68</div><div class='add'>+0x5021 = 0x332B</div><div class='add'>+0x5025 = 0x5945</div><div class='add'>+0x5026 = 0x3E6B</div><div class='add'>+0x5028 = 0x5946</div><div class='add'>+0x5029 = 0x593B</div><div class='add'>+0x502A = 0x445F</div><div class='add'>+0x502B = 0x4257</div><div class='add'>+0x502C = 0x593E</div><div class='add'>+0x502D = 0x5941</div><div class='add'>+0x502E = 0x5940</div><div class='add'>+0x503C = 0x5635</div><div class='add'>+0x5043 = 0x5948</div><div class='add'>+0x5047 = 0x3C59</div><div class='add'>+0x5048 = 0x594A</div><div class='add'>+0x5049 = 0x4E30</div><div class='add'>+0x504C = 0x593C</div><div class='add'>+0x504E = 0x594B</div><div class='add'>+0x504F = 0x462B</div><div class='add'>+0x5055 = 0x5949</div><div class='add'>+0x505A = 0x5776</div><div class='add'>+0x505C = 0x4D23</div><div class='add'>+0x5065 = 0x3D21</div><div class='add'>+0x506C = 0x594C</div><div class='add'>+0x5074 = 0x3260</div><div class='add'>+0x5075 = 0x556C</div><div class='add'>+0x5076 = 0x453C</div><div class='add'>+0x5077 = 0x4D35</div><div class='add'>+0x5080 = 0x3F7E</div><div class='add'>+0x5085 = 0x3835</div><div class='add'>+0x5088 = 0x407C</div><div class='add'>+0x508D = 0x3078</div><div class='add'>+0x5096 = 0x5877</div><div class='add'>+0x5098 = 0x4921</div><div class='add'>+0x5099 = 0x3138</div><div class='add'>+0x50A2 = 0x7841</div><div class='add'>+0x50A3 = 0x3476</div><div class='add'>+0x50AC = 0x345F</div><div class='add'>+0x50AD = 0x5336</div><div class='add'>+0x50B2 = 0x3041</div><div class='add'>+0x50B3 = 0x342B</div><div class='add'>+0x50B4 = 0x5871</div><div class='add'>+0x50B5 = 0x552E</div><div class='add'>+0x50B7 = 0x494B</div><div class='add'>+0x50BA = 0x5951</div><div class='add'>+0x50BB = 0x4935</div><div class='add'>+0x50BE = 0x4763</div><div class='add'>+0x50C2 = 0x594D</div><div class='add'>+0x50C5 = 0x3D76</div><div class='add'>+0x50C9 = 0x595D</div><div class='add'>+0x50CF = 0x4F71</div><div class='add'>+0x50D1 = 0x4748</div><div class='add'>+0x50D5 = 0x464D</div><div class='add'>+0x50D6 = 0x5952</div><div class='add'>+0x50DA = 0x4145</div><div class='add'>+0x50DE = 0x4E31</div><div class='add'>+0x50E5 = 0x3D44</div><div class='add'>+0x50E6 = 0x5956</div><div class='add'>+0x50E7 = 0x492E</div><div class='add'>+0x50E8 = 0x5947</div><div class='add'>+0x50EC = 0x5955</div><div class='add'>+0x50ED = 0x5954</div><div class='add'>+0x50EE = 0x5957</div><div class='add'>+0x50F3 = 0x4B5B</div><div class='add'>+0x50F5 = 0x3D29</div><div class='add'>+0x50F9 = 0x3C5B</div><div class='add'>+0x50FB = 0x4627</div><div class='add'>+0x5100 = 0x5247</div><div class='add'>+0x5102 = 0x592F</div><div class='add'>+0x5104 = 0x525A</div><div class='add'>+0x5106 = 0x5953</div><div class='add'>+0x5107 = 0x5958</div><div class='add'>+0x5108 = 0x3F6B</div><div class='add'>+0x5109 = 0x3C73</div><div class='add'>+0x510B = 0x5959</div><div class='add'>+0x5110 = 0x594F</div><div class='add'>+0x5112 = 0x4865</div><div class='add'>+0x5114 = 0x5931</div><div class='add'>+0x5115 = 0x592D</div><div class='add'>+0x5118 = 0x7845</div><div class='add'>+0x511F = 0x3325</div><div class='add'>+0x5121 = 0x405C</div><div class='add'>+0x512A = 0x5345</div><div class='add'>+0x5132 = 0x3422</div><div class='add'>+0x5137 = 0x5933</div><div class='add'>+0x513A = 0x5950</div><div class='add'>+0x513B = 0x594E</div><div class='add'>+0x513C = 0x5932</div><div class='add'>+0x5140 = 0x5823</div><div class='add'>+0x5141 = 0x544A</div><div class='add'>+0x5143 = 0x542A</div><div class='add'>+0x5144 = 0x5056</div><div class='add'>+0x5145 = 0x3364</div><div class='add'>+0x5146 = 0x5557</div><div class='add'>+0x5148 = 0x4F48</div><div class='add'>+0x5149 = 0x3962</div><div class='add'>+0x514B = 0x3F4B</div><div class='add'>+0x514D = 0x4362</div><div class='add'>+0x5151 = 0x3652</div><div class='add'>+0x5152 = 0x3679</div><div class='add'>+0x5154 = 0x4D43</div><div class='add'>+0x5155 = 0x596E</div><div class='add'>+0x5156 = 0x5970</div><div class='add'>+0x515A = 0x782C</div><div class='add'>+0x515C = 0x3635</div><div class='add'>+0x5162 = 0x3E24</div><div class='add'>+0x5165 = 0x486B</div><div class='add'>+0x5168 = 0x482B</div><div class='add'>+0x5169 = 0x413D</div><div class='add'>+0x516B = 0x304B</div><div class='add'>+0x516C = 0x392B</div><div class='add'>+0x516D = 0x4179</div><div class='add'>+0x516E = 0x5962</div><div class='add'>+0x5171 = 0x3932</div><div class='add'>+0x5175 = 0x3178</div><div class='add'>+0x5176 = 0x4664</div><div class='add'>+0x5177 = 0x3E5F</div><div class='add'>+0x5178 = 0x3564</div><div class='add'>+0x5179 = 0x5748</div><div class='add'>+0x517C = 0x3C66</div><div class='add'>+0x5180 = 0x3C3D</div><div class='add'>+0x5182 = 0x5867</div><div class='add'>+0x5185 = 0x445A</div><div class='add'>+0x5189 = 0x483D</div><div class='add'>+0x518C = 0x3261</div><div class='add'>+0x518D = 0x5459</div><div class='add'>+0x5192 = 0x4330</div><div class='add'>+0x5195 = 0x4361</div><div class='add'>+0x5196 = 0x5A22</div><div class='add'>+0x5197 = 0x485F</div><div class='add'>+0x51A0 = 0x395A</div><div class='add'>+0x51A2 = 0x5A23</div><div class='add'>+0x51A4 = 0x5429</div><div class='add'>+0x51A5 = 0x5A24</div><div class='add'>+0x51AB = 0x597B</div><div class='add'>+0x51AC = 0x362C</div><div class='add'>+0x51B0 = 0x3179</div><div class='add'>+0x51B1 = 0x597C</div><div class='add'>+0x51B2 = 0x7828</div><div class='add'>+0x51B3 = 0x3E76</div><div class='add'>+0x51B5 = 0x3F76</div><div class='add'>+0x51B6 = 0x5231</div><div class='add'>+0x51B7 = 0x4064</div><div class='add'>+0x51BC = 0x597E</div><div class='add'>+0x51BD = 0x597D</div><div class='add'>+0x51C4 = 0x4660</div><div class='add'>+0x51C6 = 0x7929</div><div class='add'>+0x51C7 = 0x5A21</div><div class='add'>+0x51C8 = 0x3E3B</div><div class='add'>+0x51C9 = 0x4139</div><div class='add'>+0x51CB = 0x3572</div><div class='add'>+0x51CC = 0x4168</div><div class='add'>+0x51CD = 0x3633</div><div class='add'>+0x51CF = 0x3C75</div><div class='add'>+0x51D1 = 0x3455</div><div class='add'>+0x51DB = 0x415D</div><div class='add'>+0x51DD = 0x447D</div><div class='add'>+0x51E0 = 0x7840</div><div class='add'>+0x51E1 = 0x3732</div><div class='add'>+0x51ED = 0x785D</div><div class='add'>+0x51F0 = 0x3B4B</div><div class='add'>+0x51F1 = 0x3F2D</div><div class='add'>+0x51F3 = 0x354A</div><div class='add'>+0x51F5 = 0x5B49</div><div class='add'>+0x51F6 = 0x5057</div><div class='add'>+0x51F8 = 0x4D39</div><div class='add'>+0x51F9 = 0x303C</div><div class='add'>+0x51FA = 0x3376</div><div class='add'>+0x51FC = 0x5B4A</div><div class='add'>+0x51FD = 0x3A2F</div><div class='add'>+0x5200 = 0x3536</div><div class='add'>+0x5201 = 0x3573</div><div class='add'>+0x5202 = 0x5856</div><div class='add'>+0x5203 = 0x4850</div><div class='add'>+0x5206 = 0x3756</div><div class='add'>+0x5207 = 0x4750</div><div class='add'>+0x5208 = 0x5857</div><div class='add'>+0x520A = 0x3F2F</div><div class='add'>+0x520E = 0x5858</div><div class='add'>+0x5211 = 0x504C</div><div class='add'>+0x5212 = 0x783B</div><div class='add'>+0x5216 = 0x6B3E</div><div class='add'>+0x5217 = 0x4150</div><div class='add'>+0x521D = 0x3375</div><div class='add'>+0x5220 = 0x493E</div><div class='add'>+0x5224 = 0x4550</div><div class='add'>+0x5228 = 0x4559</div><div class='add'>+0x5229 = 0x407B</div><div class='add'>+0x522B = 0x3170</div><div class='add'>+0x522E = 0x394E</div><div class='add'>+0x5230 = 0x353D</div><div class='add'>+0x5233 = 0x585A</div><div class='add'>+0x5236 = 0x5646</div><div class='add'>+0x5237 = 0x4B22</div><div class='add'>+0x5238 = 0x482F</div><div class='add'>+0x5239 = 0x4932</div><div class='add'>+0x523A = 0x344C</div><div class='add'>+0x523B = 0x3F4C</div><div class='add'>+0x5241 = 0x3667</div><div class='add'>+0x5243 = 0x4C6A</div><div class='add'>+0x5244 = 0x5859</div><div class='add'>+0x5247 = 0x5472</div><div class='add'>+0x524A = 0x4F77</div><div class='add'>+0x524B = 0x7848</div><div class='add'>+0x524C = 0x585D</div><div class='add'>+0x524D = 0x4730</div><div class='add'>+0x5254 = 0x4C5E</div><div class='add'>+0x5256 = 0x464A</div><div class='add'>+0x525B = 0x3855</div><div class='add'>+0x525C = 0x5860</div><div class='add'>+0x525E = 0x585E</div><div class='add'>+0x5261 = 0x585F</div><div class='add'>+0x5265 = 0x307E</div><div class='add'>+0x5269 = 0x4A23</div><div class='add'>+0x526A = 0x3C74</div><div class='add'>+0x526E = 0x3950</div><div class='add'>+0x526F = 0x3831</div><div class='add'>+0x5272 = 0x386E</div><div class='add'>+0x5274 = 0x585C</div><div class='add'>+0x5275 = 0x3434</div><div class='add'>+0x527D = 0x5862</div><div class='add'>+0x527F = 0x3D4B</div><div class='add'>+0x5281 = 0x5864</div><div class='add'>+0x5282 = 0x5863</div><div class='add'>+0x5283 = 0x3B2E</div><div class='add'>+0x5287 = 0x3E67</div><div class='add'>+0x5288 = 0x457C</div><div class='add'>+0x5289 = 0x4175</div><div class='add'>+0x528A = 0x3974</div><div class='add'>+0x528C = 0x585B</div><div class='add'>+0x528D = 0x3D23</div><div class='add'>+0x5290 = 0x5865</div><div class='add'>+0x5291 = 0x3C41</div><div class='add'>+0x5293 = 0x5866</div><div class='add'>+0x529B = 0x4126</div><div class='add'>+0x529F = 0x3926</div><div class='add'>+0x52A0 = 0x3C53</div><div class='add'>+0x52A3 = 0x4153</div><div class='add'>+0x52A9 = 0x567A</div><div class='add'>+0x52AA = 0x452C</div><div class='add'>+0x52AB = 0x3D59</div><div class='add'>+0x52AC = 0x5B3E</div><div class='add'>+0x52AD = 0x5B3F</div><div class='add'>+0x52BE = 0x5B40</div><div class='add'>+0x52C1 = 0x3E22</div><div class='add'>+0x52C3 = 0x322A</div><div class='add'>+0x52C7 = 0x5342</div><div class='add'>+0x52C9 = 0x4363</div><div class='add'>+0x52D0 = 0x5B42</div><div class='add'>+0x52D2 = 0x4055</div><div class='add'>+0x52D5 = 0x362F</div><div class='add'>+0x52D6 = 0x5B43</div><div class='add'>+0x52D8 = 0x3F31</div><div class='add'>+0x52D9 = 0x4E71</div><div class='add'>+0x52DB = 0x512B</div><div class='add'>+0x52DD = 0x4A24</div><div class='add'>+0x52DE = 0x404D</div><div class='add'>+0x52DF = 0x443C</div><div class='add'>+0x52E2 = 0x4A46</div><div class='add'>+0x52E4 = 0x475A</div><div class='add'>+0x52F0 = 0x5B44</div><div class='add'>+0x52F1 = 0x5B3D</div><div class='add'>+0x52F5 = 0x4078</div><div class='add'>+0x52F8 = 0x4830</div><div class='add'>+0x52F9 = 0x5968</div><div class='add'>+0x52FA = 0x4957</div><div class='add'>+0x52FE = 0x3934</div><div class='add'>+0x52FF = 0x4E70</div><div class='add'>+0x5300 = 0x5448</div><div class='add'>+0x5305 = 0x307C</div><div class='add'>+0x5306 = 0x3452</div><div class='add'>+0x5308 = 0x5059</div><div class='add'>+0x530D = 0x5969</div><div class='add'>+0x530F = 0x5E4B</div><div class='add'>+0x5310 = 0x596B</div><div class='add'>+0x5315 = 0x5830</div><div class='add'>+0x5316 = 0x3B2F</div><div class='add'>+0x5317 = 0x3131</div><div class='add'>+0x5319 = 0x3357</div><div class='add'>+0x531A = 0x584E</div><div class='add'>+0x531D = 0x5451</div><div class='add'>+0x5320 = 0x3D33</div><div class='add'>+0x5321 = 0x3F6F</div><div class='add'>+0x5323 = 0x4F3B</div><div class='add'>+0x532A = 0x374B</div><div class='add'>+0x532D = 0x5850</div><div class='add'>+0x532F = 0x3B63</div><div class='add'>+0x5331 = 0x5851</div><div class='add'>+0x5339 = 0x4625</div><div class='add'>+0x533E = 0x5852</div><div class='add'>+0x533F = 0x4464</div><div class='add'>+0x5340 = 0x4778</div><div class='add'>+0x5341 = 0x4A2E</div><div class='add'>+0x5343 = 0x4727</div><div class='add'>+0x5345 = 0x5826</div><div class='add'>+0x5347 = 0x497D</div><div class='add'>+0x5348 = 0x4E67</div><div class='add'>+0x5349 = 0x3B5C</div><div class='add'>+0x534A = 0x306B</div><div class='add'>+0x5351 = 0x3130</div><div class='add'>+0x5352 = 0x5764</div><div class='add'>+0x5353 = 0x573F</div><div class='add'>+0x5354 = 0x502D</div><div class='add'>+0x5357 = 0x444F</div><div class='add'>+0x535A = 0x3229</div><div class='add'>+0x535C = 0x3237</div><div class='add'>+0x535E = 0x3165</div><div class='add'>+0x535F = 0x5F32</div><div class='add'>+0x5360 = 0x553C</div><div class='add'>+0x5361 = 0x3F28</div><div class='add'>+0x5363 = 0x5855</div><div class='add'>+0x5366 = 0x5854</div><div class='add'>+0x5367 = 0x4E54</div><div class='add'>+0x5369 = 0x5A60</div><div class='add'>+0x536E = 0x5834</div><div class='add'>+0x536F = 0x432E</div><div class='add'>+0x5370 = 0x5321</div><div class='add'>+0x5371 = 0x4E23</div><div class='add'>+0x5373 = 0x3C34</div><div class='add'>+0x5374 = 0x4834</div><div class='add'>+0x5375 = 0x4251</div><div class='add'>+0x5377 = 0x3E6D</div><div class='add'>+0x5378 = 0x5036</div><div class='add'>+0x537A = 0x5A61</div><div class='add'>+0x537F = 0x4764</div><div class='add'>+0x5382 = 0x7827</div><div class='add'>+0x5384 = 0x3672</div><div class='add'>+0x5398 = 0x4065</div><div class='add'>+0x5399 = 0x5847</div><div class='add'>+0x539A = 0x3A71</div><div class='add'>+0x539D = 0x5848</div><div class='add'>+0x539F = 0x542D</div><div class='add'>+0x53A0 = 0x325E</div><div class='add'>+0x53A2 = 0x4F61</div><div class='add'>+0x53A5 = 0x584A</div><div class='add'>+0x53A6 = 0x4F43</div><div class='add'>+0x53A8 = 0x3378</div><div class='add'>+0x53A9 = 0x3E47</div><div class='add'>+0x53AD = 0x5161</div><div class='add'>+0x53AE = 0x584B</div><div class='add'>+0x53B2 = 0x4077</div><div class='add'>+0x53B4 = 0x5849</div><div class='add'>+0x53B6 = 0x5B4C</div><div class='add'>+0x53BB = 0x4825</div><div class='add'>+0x53C1 = 0x487E</div><div class='add'>+0x53C3 = 0x324E</div><div class='add'>+0x53C8 = 0x5356</div><div class='add'>+0x53C9 = 0x3266</div><div class='add'>+0x53CA = 0x3C30</div><div class='add'>+0x53CB = 0x5351</div><div class='add'>+0x53CD = 0x3734</div><div class='add'>+0x53D4 = 0x4A65</div><div class='add'>+0x53D6 = 0x4821</div><div class='add'>+0x53D7 = 0x4A5C</div><div class='add'>+0x53D9 = 0x5070</div><div class='add'>+0x53DB = 0x4551</div><div class='add'>+0x53DF = 0x5B45</div><div class='add'>+0x53E2 = 0x3454</div><div class='add'>+0x53E3 = 0x3F5A</div><div class='add'>+0x53E4 = 0x3945</div><div class='add'>+0x53E5 = 0x3E64</div><div class='add'>+0x53E6 = 0x416D</div><div class='add'>+0x53E8 = 0x5F36</div><div class='add'>+0x53E9 = 0x5F35</div><div class='add'>+0x53EA = 0x7923</div><div class='add'>+0x53EB = 0x3D50</div><div class='add'>+0x53EC = 0x5559</div><div class='add'>+0x53ED = 0x3048</div><div class='add'>+0x53EE = 0x3623</div><div class='add'>+0x53EF = 0x3F49</div><div class='add'>+0x53F0 = 0x786B</div><div class='add'>+0x53F1 = 0x5F33</div><div class='add'>+0x53F2 = 0x4A37</div><div class='add'>+0x53F3 = 0x5352</div><div class='add'>+0x53F5 = 0x584F</div><div class='add'>+0x53F6 = 0x7878</div><div class='add'>+0x53F8 = 0x4B3E</div><div class='add'>+0x53FB = 0x5F37</div><div class='add'>+0x53FC = 0x3570</div><div class='add'>+0x5401 = 0x5375</div><div class='add'>+0x5403 = 0x3354</div><div class='add'>+0x5404 = 0x3877</div><div class='add'>+0x5406 = 0x5F3A</div><div class='add'>+0x5408 = 0x3A4F</div><div class='add'>+0x5409 = 0x3C2A</div><div class='add'>+0x540A = 0x3575</div><div class='add'>+0x540C = 0x4D2C</div><div class='add'>+0x540D = 0x437B</div><div class='add'>+0x540E = 0x6161</div><div class='add'>+0x540F = 0x4074</div><div class='add'>+0x5410 = 0x4D42</div><div class='add'>+0x5411 = 0x4F72</div><div class='add'>+0x5412 = 0x5F38</div><div class='add'>+0x5415 = 0x4240</div><div class='add'>+0x5416 = 0x5F39</div><div class='add'>+0x541B = 0x3E7D</div><div class='add'>+0x541D = 0x415F</div><div class='add'>+0x541E = 0x4D4C</div><div class='add'>+0x541F = 0x5277</div><div class='add'>+0x5420 = 0x374D</div><div class='add'>+0x5421 = 0x5F41</div><div class='add'>+0x5423 = 0x5F44</div><div class='add'>+0x5426 = 0x3771</div><div class='add'>+0x5427 = 0x3049</div><div class='add'>+0x5429 = 0x3754</div><div class='add'>+0x542B = 0x3A2C</div><div class='add'>+0x542D = 0x3F54</div><div class='add'>+0x542E = 0x4B31</div><div class='add'>+0x5431 = 0x5628</div><div class='add'>+0x5432 = 0x5F45</div><div class='add'>+0x5434 = 0x4E62</div><div class='add'>+0x5435 = 0x3333</div><div class='add'>+0x5438 = 0x4E7C</div><div class='add'>+0x5439 = 0x3435</div><div class='add'>+0x543B = 0x4E47</div><div class='add'>+0x543C = 0x3A70</div><div class='add'>+0x543E = 0x4E61</div><div class='add'>+0x5440 = 0x513D</div><div class='add'>+0x5443 = 0x5F40</div><div class='add'>+0x5446 = 0x3474</div><div class='add'>+0x5448 = 0x334A</div><div class='add'>+0x544A = 0x3866</div><div class='add'>+0x544B = 0x5F3B</div><div class='add'>+0x5450 = 0x4445</div><div class='add'>+0x5454 = 0x5F3E</div><div class='add'>+0x5462 = 0x4458</div><div class='add'>+0x5464 = 0x5F4A</div><div class='add'>+0x5466 = 0x5F4F</div><div class='add'>+0x5468 = 0x565C</div><div class='add'>+0x5471 = 0x5F49</div><div class='add'>+0x5472 = 0x5F5A</div><div class='add'>+0x5473 = 0x4E36</div><div class='add'>+0x5475 = 0x3A47</div><div class='add'>+0x5476 = 0x5F4E</div><div class='add'>+0x5477 = 0x5F48</div><div class='add'>+0x5478 = 0x455E</div><div class='add'>+0x547B = 0x496B</div><div class='add'>+0x547C = 0x3A74</div><div class='add'>+0x547D = 0x437C</div><div class='add'>+0x5480 = 0x3E57</div><div class='add'>+0x5482 = 0x5F46</div><div class='add'>+0x5484 = 0x5F4D</div><div class='add'>+0x5486 = 0x4558</div><div class='add'>+0x548B = 0x5526</div><div class='add'>+0x548C = 0x3A4D</div><div class='add'>+0x548E = 0x3E4C</div><div class='add'>+0x548F = 0x533D</div><div class='add'>+0x5490 = 0x3840</div><div class='add'>+0x5492 = 0x5664</div><div class='add'>+0x5494 = 0x5F47</div><div class='add'>+0x5495 = 0x393E</div><div class='add'>+0x5496 = 0x3F27</div><div class='add'>+0x549A = 0x5F4B</div><div class='add'>+0x54A3 = 0x5F5B</div><div class='add'>+0x54A4 = 0x5F65</div><div class='add'>+0x54A6 = 0x5F57</div><div class='add'>+0x54A7 = 0x5F56</div><div class='add'>+0x54A8 = 0x5749</div><div class='add'>+0x54A9 = 0x5F63</div><div class='add'>+0x54AA = 0x5F64</div><div class='add'>+0x54AB = 0x656B</div><div class='add'>+0x54AC = 0x5227</div><div class='add'>+0x54AD = 0x5F52</div><div class='add'>+0x54AF = 0x3F29</div><div class='add'>+0x54B1 = 0x545B</div><div class='add'>+0x54B3 = 0x3F48</div><div class='add'>+0x54B4 = 0x5F54</div><div class='add'>+0x54B8 = 0x4F4C</div><div class='add'>+0x54BB = 0x5F5D</div><div class='add'>+0x54BC = 0x5F43</div><div class='add'>+0x54BD = 0x514A</div><div class='add'>+0x54BF = 0x5F5E</div><div class='add'>+0x54C0 = 0x3027</div><div class='add'>+0x54C1 = 0x4637</div><div class='add'>+0x54C2 = 0x5F53</div><div class='add'>+0x54C4 = 0x3A65</div><div class='add'>+0x54C6 = 0x365F</div><div class='add'>+0x54C7 = 0x4D5B</div><div class='add'>+0x54C8 = 0x397E</div><div class='add'>+0x54C9 = 0x5455</div><div class='add'>+0x54CC = 0x5F5F</div><div class='add'>+0x54CE = 0x3025</div><div class='add'>+0x54CF = 0x5F67</div><div class='add'>+0x54D0 = 0x5F51</div><div class='add'>+0x54DA = 0x5F61</div><div class='add'>+0x54DE = 0x5F68</div><div class='add'>+0x54E1 = 0x5431</div><div class='add'>+0x54E5 = 0x3867</div><div class='add'>+0x54E6 = 0x4536</div><div class='add'>+0x54E7 = 0x5F6A</div><div class='add'>+0x54E8 = 0x495A</div><div class='add'>+0x54E9 = 0x4128</div><div class='add'>+0x54EA = 0x4444</div><div class='add'>+0x54ED = 0x3F5E</div><div class='add'>+0x54EE = 0x4F78</div><div class='add'>+0x54F2 = 0x555C</div><div class='add'>+0x54F3 = 0x5F6E</div><div class='add'>+0x54FA = 0x3238</div><div class='add'>+0x54FC = 0x3A5F</div><div class='add'>+0x54FD = 0x5F6C</div><div class='add'>+0x54FF = 0x5B41</div><div class='add'>+0x5501 = 0x5164</div><div class='add'>+0x5504 = 0x5F42</div><div class='add'>+0x5506 = 0x4B74</div><div class='add'>+0x5507 = 0x343D</div><div class='add'>+0x5509 = 0x3026</div><div class='add'>+0x550F = 0x5F71</div><div class='add'>+0x5510 = 0x4C46</div><div class='add'>+0x5511 = 0x5F72</div><div class='add'>+0x5514 = 0x5F6D</div><div class='add'>+0x5523 = 0x5F70</div><div class='add'>+0x5527 = 0x5F73</div><div class='add'>+0x552A = 0x5F74</div><div class='add'>+0x552C = 0x3B23</div><div class='add'>+0x552E = 0x4A5B</div><div class='add'>+0x552F = 0x4E28</div><div class='add'>+0x5530 = 0x6027</div><div class='add'>+0x5531 = 0x332A</div><div class='add'>+0x5533 = 0x6026</div><div class='add'>+0x5537 = 0x6021</div><div class='add'>+0x553C = 0x5F7E</div><div class='add'>+0x553E = 0x4D59</div><div class='add'>+0x553F = 0x5F7C</div><div class='add'>+0x5541 = 0x5F7A</div><div class='add'>+0x5543 = 0x3F50</div><div class='add'>+0x5544 = 0x5744</div><div class='add'>+0x5546 = 0x494C</div><div class='add'>+0x5549 = 0x5F78</div><div class='add'>+0x554A = 0x3021</div><div class='add'>+0x554F = 0x4E4A</div><div class='add'>+0x5550 = 0x5F7D</div><div class='add'>+0x5553 = 0x4674</div><div class='add'>+0x5555 = 0x5F7B</div><div class='add'>+0x5556 = 0x6022</div><div class='add'>+0x555C = 0x6028</div><div class='add'>+0x555E = 0x5146</div><div class='add'>+0x5561 = 0x3748</div><div class='add'>+0x5564 = 0x4621</div><div class='add'>+0x5565 = 0x4936</div><div class='add'>+0x5566 = 0x4032</div><div class='add'>+0x556A = 0x453E</div><div class='add'>+0x5575 = 0x6023</div><div class='add'>+0x5576 = 0x6024</div><div class='add'>+0x5577 = 0x6025</div><div class='add'>+0x557B = 0x6034</div><div class='add'>+0x557C = 0x4C64</div><div class='add'>+0x557E = 0x6031</div><div class='add'>+0x5580 = 0x3F26</div><div class='add'>+0x5581 = 0x602F</div><div class='add'>+0x5582 = 0x4E39</div><div class='add'>+0x5583 = 0x602B</div><div class='add'>+0x5584 = 0x4946</div><div class='add'>+0x5587 = 0x402E</div><div class='add'>+0x5588 = 0x602E</div><div class='add'>+0x5589 = 0x3A6D</div><div class='add'>+0x558A = 0x3A30</div><div class='add'>+0x558B = 0x6029</div><div class='add'>+0x558F = 0x5F76</div><div class='add'>+0x5591 = 0x6033</div><div class='add'>+0x5594 = 0x6038</div><div class='add'>+0x5598 = 0x342D</div><div class='add'>+0x5599 = 0x6039</div><div class='add'>+0x559A = 0x3B3D</div><div class='add'>+0x559C = 0x4F32</div><div class='add'>+0x559D = 0x3A48</div><div class='add'>+0x559F = 0x6030</div><div class='add'>+0x55A7 = 0x507A</div><div class='add'>+0x55AA = 0x4925</div><div class='add'>+0x55AC = 0x4747</div><div class='add'>+0x55AE = 0x3525</div><div class='add'>+0x55B1 = 0x602C</div><div class='add'>+0x55B2 = 0x5334</div><div class='add'>+0x55B3 = 0x547B</div><div class='add'>+0x55B5 = 0x5F77</div><div class='add'>+0x55B9 = 0x602D</div><div class='add'>+0x55BB = 0x5377</div><div class='add'>+0x55C4 = 0x6044</div><div class='add'>+0x55C5 = 0x5061</div><div class='add'>+0x55C6 = 0x473A</div><div class='add'>+0x55C7 = 0x5844</div><div class='add'>+0x55C9 = 0x603C</div><div class='add'>+0x55CC = 0x6049</div><div class='add'>+0x55CD = 0x604A</div><div class='add'>+0x55CE = 0x4270</div><div class='add'>+0x55D1 = 0x603E</div><div class='add'>+0x55D2 = 0x602A</div><div class='add'>+0x55D3 = 0x4924</div><div class='add'>+0x55D4 = 0x6041</div><div class='add'>+0x55D6 = 0x6032</div><div class='add'>+0x55DA = 0x4E58</div><div class='add'>+0x55DC = 0x4A48</div><div class='add'>+0x55DD = 0x6043</div><div class='add'>+0x55DF = 0x6035</div><div class='add'>+0x55E1 = 0x4E4B</div><div class='add'>+0x55E3 = 0x4B43</div><div class='add'>+0x55E4 = 0x604D</div><div class='add'>+0x55E5 = 0x6046</div><div class='add'>+0x55E6 = 0x6042</div><div class='add'>+0x55E8 = 0x604B</div><div class='add'>+0x55E9 = 0x5F6F</div><div class='add'>+0x55EA = 0x603A</div><div class='add'>+0x55EC = 0x6040</div><div class='add'>+0x55EF = 0x6045</div><div class='add'>+0x55F2 = 0x6047</div><div class='add'>+0x55F5 = 0x604C</div><div class='add'>+0x55F6 = 0x5F59</div><div class='add'>+0x55F7 = 0x603B</div><div class='add'>+0x55FD = 0x4B54</div><div class='add'>+0x55FE = 0x6055</div><div class='add'>+0x5600 = 0x6056</div><div class='add'>+0x5601 = 0x6052</div><div class='add'>+0x5606 = 0x4C3E</div><div class='add'>+0x5608 = 0x6050</div><div class='add'>+0x5609 = 0x3C4E</div><div class='add'>+0x560C = 0x6051</div><div class='add'>+0x560D = 0x6036</div><div class='add'>+0x560E = 0x3842</div><div class='add'>+0x560F = 0x5845</div><div class='add'>+0x5614 = 0x453B</div><div class='add'>+0x5616 = 0x5F75</div><div class='add'>+0x5617 = 0x3322</div><div class='add'>+0x5618 = 0x506A</div><div class='add'>+0x561B = 0x426F</div><div class='add'>+0x561C = 0x5F69</div><div class='add'>+0x561E = 0x604F</div><div class='add'>+0x561F = 0x603D</div><div class='add'>+0x5623 = 0x6054</div><div class='add'>+0x5627 = 0x6057</div><div class='add'>+0x5629 = 0x3B29</div><div class='add'>+0x562C = 0x605C</div><div class='add'>+0x562D = 0x6058</div><div class='add'>+0x562E = 0x5F6B</div><div class='add'>+0x562F = 0x5025</div><div class='add'>+0x5630 = 0x5F34</div><div class='add'>+0x5632 = 0x3330</div><div class='add'>+0x5634 = 0x576C</div><div class='add'>+0x5635 = 0x5F58</div><div class='add'>+0x5636 = 0x4B3B</div><div class='add'>+0x5638 = 0x5F3C</div><div class='add'>+0x5639 = 0x605A</div><div class='add'>+0x563B = 0x4E7B</div><div class='add'>+0x563F = 0x3A59</div><div class='add'>+0x5641 = 0x7830</div><div class='add'>+0x564C = 0x6061</div><div class='add'>+0x564D = 0x605D</div><div class='add'>+0x564E = 0x522D</div><div class='add'>+0x5654 = 0x6062</div><div class='add'>+0x5657 = 0x605B</div><div class='add'>+0x5658 = 0x6059</div><div class='add'>+0x5659 = 0x605F</div><div class='add'>+0x565D = 0x5F50</div><div class='add'>+0x5660 = 0x5F55</div><div class='add'>+0x5662 = 0x605E</div><div class='add'>+0x5664 = 0x6064</div><div class='add'>+0x5665 = 0x5F66</div><div class='add'>+0x5666 = 0x5F5C</div><div class='add'>+0x5668 = 0x4677</div><div class='add'>+0x5669 = 0x582C</div><div class='add'>+0x566A = 0x546B</div><div class='add'>+0x566B = 0x6066</div><div class='add'>+0x566C = 0x4A49</div><div class='add'>+0x566F = 0x6048</div><div class='add'>+0x5671 = 0x6065</div><div class='add'>+0x5672 = 0x5F60</div><div class='add'>+0x5674 = 0x4567</div><div class='add'>+0x5676 = 0x3841</div><div class='add'>+0x5678 = 0x3656</div><div class='add'>+0x5679 = 0x782B</div><div class='add'>+0x567B = 0x6067</div><div class='add'>+0x567C = 0x6068</div><div class='add'>+0x5680 = 0x5F4C</div><div class='add'>+0x5685 = 0x6069</div><div class='add'>+0x5686 = 0x6063</div><div class='add'>+0x5687 = 0x4F45</div><div class='add'>+0x568C = 0x5F62</div><div class='add'>+0x568E = 0x3A3F</div><div class='add'>+0x568F = 0x4C67</div><div class='add'>+0x5693 = 0x606A</div><div class='add'>+0x5695 = 0x6060</div><div class='add'>+0x5699 = 0x4476</div><div class='add'>+0x56A6 = 0x5F3F</div><div class='add'>+0x56A8 = 0x417C</div><div class='add'>+0x56AE = 0x7875</div><div class='add'>+0x56AF = 0x606B</div><div class='add'>+0x56B3 = 0x6037</div><div class='add'>+0x56B4 = 0x514F</div><div class='add'>+0x56B6 = 0x6053</div><div class='add'>+0x56B7 = 0x4842</div><div class='add'>+0x56BC = 0x3D40</div><div class='add'>+0x56C0 = 0x5F79</div><div class='add'>+0x56C1 = 0x603F</div><div class='add'>+0x56C2 = 0x4F79</div><div class='add'>+0x56C5 = 0x5966</div><div class='add'>+0x56C8 = 0x5F3D</div><div class='add'>+0x56C9 = 0x7853</div><div class='add'>+0x56CA = 0x4452</div><div class='add'>+0x56CC = 0x786A</div><div class='add'>+0x56D1 = 0x5676</div><div class='add'>+0x56D4 = 0x606C</div><div class='add'>+0x56D7 = 0x606D</div><div class='add'>+0x56DA = 0x4774</div><div class='add'>+0x56DB = 0x4B44</div><div class='add'>+0x56DD = 0x606E</div><div class='add'>+0x56DE = 0x3B58</div><div class='add'>+0x56DF = 0x5836</div><div class='add'>+0x56E0 = 0x5272</div><div class='add'>+0x56E1 = 0x606F</div><div class='add'>+0x56E4 = 0x365A</div><div class='add'>+0x56EB = 0x6071</div><div class='add'>+0x56F0 = 0x4027</div><div class='add'>+0x56F1 = 0x3451</div><div class='add'>+0x56F9 = 0x6072</div><div class='add'>+0x56FA = 0x394C</div><div class='add'>+0x56FF = 0x6073</div><div class='add'>+0x5703 = 0x4654</div><div class='add'>+0x5704 = 0x6074</div><div class='add'>+0x5707 = 0x6070</div><div class='add'>+0x5708 = 0x4826</div><div class='add'>+0x5709 = 0x6076</div><div class='add'>+0x570A = 0x6075</div><div class='add'>+0x570B = 0x397A</div><div class='add'>+0x570D = 0x4E27</div><div class='add'>+0x5712 = 0x5430</div><div class='add'>+0x5713 = 0x5432</div><div class='add'>+0x5716 = 0x4D3C</div><div class='add'>+0x5718 = 0x4D45</div><div class='add'>+0x571C = 0x6077</div><div class='add'>+0x571F = 0x4D41</div><div class='add'>+0x5728 = 0x545A</div><div class='add'>+0x5729 = 0x5B57</div><div class='add'>+0x572A = 0x5B59</div><div class='add'>+0x572C = 0x5B58</div><div class='add'>+0x572D = 0x3967</div><div class='add'>+0x572E = 0x5B5C</div><div class='add'>+0x572F = 0x5B5D</div><div class='add'>+0x5730 = 0x3558</div><div class='add'>+0x5733 = 0x5B5A</div><div class='add'>+0x573B = 0x5B5F</div><div class='add'>+0x573E = 0x3B78</div><div class='add'>+0x5740 = 0x5637</div><div class='add'>+0x5742 = 0x5B60</div><div class='add'>+0x5747 = 0x3E79</div><div class='add'>+0x574A = 0x373B</div><div class='add'>+0x574C = 0x5B50</div><div class='add'>+0x574D = 0x4C2E</div><div class='add'>+0x574E = 0x3F32</div><div class='add'>+0x5750 = 0x5778</div><div class='add'>+0x5751 = 0x3F53</div><div class='add'>+0x5761 = 0x4642</div><div class='add'>+0x5764 = 0x4024</div><div class='add'>+0x5766 = 0x4C39</div><div class='add'>+0x5768 = 0x5B67</div><div class='add'>+0x5769 = 0x5B61</div><div class='add'>+0x576A = 0x463A</div><div class='add'>+0x576B = 0x5B63</div><div class='add'>+0x576D = 0x5B68</div><div class='add'>+0x576F = 0x4577</div><div class='add'>+0x5773 = 0x5B6A</div><div class='add'>+0x5776 = 0x5B69</div><div class='add'>+0x5777 = 0x3F40</div><div class='add'>+0x577B = 0x5B66</div><div class='add'>+0x577C = 0x5B65</div><div class='add'>+0x5782 = 0x3439</div><div class='add'>+0x5783 = 0x402C</div><div class='add'>+0x578B = 0x504D</div><div class='add'>+0x578C = 0x5B6D</div><div class='add'>+0x5793 = 0x5B72</div><div class='add'>+0x579B = 0x3662</div><div class='add'>+0x57A0 = 0x5B73</div><div class='add'>+0x57A1 = 0x5B52</div><div class='add'>+0x57A2 = 0x3938</div><div class='add'>+0x57A3 = 0x542B</div><div class='add'>+0x57A4 = 0x5B6C</div><div class='add'>+0x57A7 = 0x5B70</div><div class='add'>+0x57AE = 0x3F65</div><div class='add'>+0x57B8 = 0x5B79</div><div class='add'>+0x57C2 = 0x3921</div><div class='add'>+0x57C3 = 0x3023</div><div class='add'>+0x57CB = 0x4271</div><div class='add'>+0x57CE = 0x3347</div><div class='add'>+0x57CF = 0x5B6F</div><div class='add'>+0x57D2 = 0x5B78</div><div class='add'>+0x57D4 = 0x4652</div><div class='add'>+0x57D5 = 0x5B74</div><div class='add'>+0x57DD = 0x5B7E</div><div class='add'>+0x57DF = 0x5372</div><div class='add'>+0x57E0 = 0x323A</div><div class='add'>+0x57E1 = 0x5B6B</div><div class='add'>+0x57E4 = 0x5B7D</div><div class='add'>+0x57ED = 0x5C24</div><div class='add'>+0x57EF = 0x5B7B</div><div class='add'>+0x57F4 = 0x5B7A</div><div class='add'>+0x57F7 = 0x5634</div><div class='add'>+0x57F8 = 0x5B7C</div><div class='add'>+0x57F9 = 0x4560</div><div class='add'>+0x57FA = 0x3B79</div><div class='add'>+0x57FD = 0x5C23</div><div class='add'>+0x5800 = 0x5C25</div><div class='add'>+0x5802 = 0x4C43</div><div class='add'>+0x5805 = 0x3C61</div><div class='add'>+0x5806 = 0x3651</div><div class='add'>+0x5807 = 0x5D40</div><div class='add'>+0x580A = 0x5B51</div><div class='add'>+0x580B = 0x5C21</div><div class='add'>+0x580D = 0x5C22</div><div class='add'>+0x5816 = 0x5B71</div><div class='add'>+0x5819 = 0x5C27</div><div class='add'>+0x581D = 0x5B76</div><div class='add'>+0x581E = 0x5C26</div><div class='add'>+0x5820 = 0x5C29</div><div class='add'>+0x5821 = 0x3124</div><div class='add'>+0x5824 = 0x354C</div><div class='add'>+0x582A = 0x3F30</div><div class='add'>+0x582F = 0x5222</div><div class='add'>+0x5830 = 0x515F</div><div class='add'>+0x5831 = 0x3128</div><div class='add'>+0x5834 = 0x3321</div><div class='add'>+0x5835 = 0x3642</div><div class='add'>+0x5844 = 0x5C28</div><div class='add'>+0x584A = 0x3F69</div><div class='add'>+0x584B = 0x5C63</div><div class='add'>+0x584C = 0x4B7A</div><div class='add'>+0x584D = 0x6B73</div><div class='add'>+0x584F = 0x5B6E</div><div class='add'>+0x5851 = 0x4B5C</div><div class='add'>+0x5852 = 0x5B75</div><div class='add'>+0x5854 = 0x4B7E</div><div class='add'>+0x5857 = 0x4D3F</div><div class='add'>+0x5858 = 0x4C41</div><div class='add'>+0x585E = 0x487B</div><div class='add'>+0x5862 = 0x4E6B</div><div class='add'>+0x5864 = 0x5B77</div><div class='add'>+0x5865 = 0x5C2A</div><div class='add'>+0x586B = 0x4C6E</div><div class='add'>+0x586C = 0x5C2B</div><div class='add'>+0x5875 = 0x333E</div><div class='add'>+0x5879 = 0x4735</div><div class='add'>+0x587E = 0x5B53</div><div class='add'>+0x5880 = 0x5C2F</div><div class='add'>+0x5881 = 0x5C2C</div><div class='add'>+0x5883 = 0x3E33</div><div class='add'>+0x5885 = 0x4A7B</div><div class='add'>+0x5889 = 0x5C2D</div><div class='add'>+0x588A = 0x3566</div><div class='add'>+0x5892 = 0x494A</div><div class='add'>+0x5893 = 0x4439</div><div class='add'>+0x589A = 0x5C2E</div><div class='add'>+0x589C = 0x5739</div><div class='add'>+0x589E = 0x5476</div><div class='add'>+0x589F = 0x5066</div><div class='add'>+0x58A8 = 0x442B</div><div class='add'>+0x58A9 = 0x3655</div><div class='add'>+0x58AE = 0x3669</div><div class='add'>+0x58B3 = 0x3758</div><div class='add'>+0x58BB = 0x473D</div><div class='add'>+0x58BC = 0x5B54</div><div class='add'>+0x58BE = 0x3F51</div><div class='add'>+0x58C1 = 0x315A</div><div class='add'>+0x58C5 = 0x5B55</div><div class='add'>+0x58C7 = 0x4C33</div><div class='add'>+0x58D1 = 0x5B56</div><div class='add'>+0x58D3 = 0x5139</div><div class='add'>+0x58D5 = 0x3A3E</div><div class='add'>+0x58D8 = 0x405D</div><div class='add'>+0x58D9 = 0x5B5B</div><div class='add'>+0x58DA = 0x5B64</div><div class='add'>+0x58DE = 0x3B35</div><div class='add'>+0x58DF = 0x4222</div><div class='add'>+0x58E0 = 0x5B62</div><div class='add'>+0x58E2 = 0x5B5E</div><div class='add'>+0x58E4 = 0x4840</div><div class='add'>+0x58E9 = 0x3053</div><div class='add'>+0x58EB = 0x4A3F</div><div class='add'>+0x58EC = 0x4849</div><div class='add'>+0x58EF = 0x5733</div><div class='add'>+0x58F9 = 0x523C</div><div class='add'>+0x58FA = 0x3A78</div><div class='add'>+0x58FD = 0x4A59</div><div class='add'>+0x5902 = 0x623A</div><div class='add'>+0x590F = 0x4F44</div><div class='add'>+0x5914 = 0x5967</div><div class='add'>+0x5915 = 0x4F26</div><div class='add'>+0x5916 = 0x4D62</div><div class='add'>+0x5919 = 0x596D</div><div class='add'>+0x591A = 0x3660</div><div class='add'>+0x591C = 0x5239</div><div class='add'>+0x591F = 0x393B</div><div class='add'>+0x5922 = 0x434E</div><div class='add'>+0x5924 = 0x6239</div><div class='add'>+0x5925 = 0x6237</div><div class='add'>+0x5927 = 0x3473</div><div class='add'>+0x5929 = 0x4C6C</div><div class='add'>+0x592A = 0x4C2B</div><div class='add'>+0x592B = 0x3772</div><div class='add'>+0x592D = 0x5832</div><div class='add'>+0x592E = 0x516B</div><div class='add'>+0x592F = 0x3A3B</div><div class='add'>+0x5931 = 0x4A27</div><div class='add'>+0x5937 = 0x5244</div><div class='add'>+0x5938 = 0x7849</div><div class='add'>+0x593C = 0x5E45</div><div class='add'>+0x593E = 0x3C50</div><div class='add'>+0x5944 = 0x5159</div><div class='add'>+0x5947 = 0x4666</div><div class='add'>+0x5948 = 0x444E</div><div class='add'>+0x5949 = 0x376E</div><div class='add'>+0x594E = 0x3F7C</div><div class='add'>+0x594F = 0x5760</div><div class='add'>+0x5950 = 0x5B3C</div><div class='add'>+0x5951 = 0x4675</div><div class='add'>+0x5954 = 0x313C</div><div class='add'>+0x5955 = 0x5E48</div><div class='add'>+0x5957 = 0x4C57</div><div class='add'>+0x5958 = 0x5E4A</div><div class='add'>+0x595A = 0x5E49</div><div class='add'>+0x5960 = 0x356C</div><div class='add'>+0x5962 = 0x495D</div><div class='add'>+0x5965 = 0x3042</div><div class='add'>+0x5969 = 0x5E46</div><div class='add'>+0x596A = 0x3661</div><div class='add'>+0x596C = 0x3D31</div><div class='add'>+0x596E = 0x375C</div><div class='add'>+0x5973 = 0x452E</div><div class='add'>+0x5974 = 0x452B</div><div class='add'>+0x5976 = 0x444C</div><div class='add'>+0x5978 = 0x3C69</div><div class='add'>+0x5979 = 0x4B7D</div><div class='add'>+0x597D = 0x3A43</div><div class='add'>+0x5981 = 0x6579</div><div class='add'>+0x5982 = 0x4867</div><div class='add'>+0x5983 = 0x657A</div><div class='add'>+0x5984 = 0x4D7D</div><div class='add'>+0x598A = 0x4851</div><div class='add'>+0x598D = 0x657B</div><div class='add'>+0x5992 = 0x364A</div><div class='add'>+0x5993 = 0x3C4B</div><div class='add'>+0x5996 = 0x517D</div><div class='add'>+0x5997 = 0x6621</div><div class='add'>+0x5999 = 0x436E</div><div class='add'>+0x599D = 0x5731</div><div class='add'>+0x599E = 0x6624</div><div class='add'>+0x59A3 = 0x657E</div><div class='add'>+0x59A4 = 0x6625</div><div class='add'>+0x59A5 = 0x4D57</div><div class='add'>+0x59A8 = 0x3741</div><div class='add'>+0x59AE = 0x445D</div><div class='add'>+0x59AF = 0x6628</div><div class='add'>+0x59B2 = 0x6627</div><div class='add'>+0x59B9 = 0x4343</div><div class='add'>+0x59BB = 0x465E</div><div class='add'>+0x59BE = 0x662A</div><div class='add'>+0x59C6 = 0x4437</div><div class='add'>+0x59CA = 0x6622</div><div class='add'>+0x59CB = 0x4A3C</div><div class='add'>+0x59D0 = 0x3D63</div><div class='add'>+0x59D1 = 0x3943</div><div class='add'>+0x59D2 = 0x6626</div><div class='add'>+0x59D3 = 0x5055</div><div class='add'>+0x59D4 = 0x4E2F</div><div class='add'>+0x59D7 = 0x6629</div><div class='add'>+0x59D8 = 0x6630</div><div class='add'>+0x59DA = 0x5226</div><div class='add'>+0x59DC = 0x3D2A</div><div class='add'>+0x59DD = 0x662D</div><div class='add'>+0x59E3 = 0x662F</div><div class='add'>+0x59E5 = 0x4051</div><div class='add'>+0x59E8 = 0x524C</div><div class='add'>+0x59EC = 0x3C27</div><div class='add'>+0x59F9 = 0x6631</div><div class='add'>+0x59FB = 0x5276</div><div class='add'>+0x59FF = 0x574B</div><div class='add'>+0x5A01 = 0x4D7E</div><div class='add'>+0x5A03 = 0x4D5E</div><div class='add'>+0x5A09 = 0x6633</div><div class='add'>+0x5A0C = 0x6632</div><div class='add'>+0x5A11 = 0x6636</div><div class='add'>+0x5A13 = 0x6638</div><div class='add'>+0x5A18 = 0x446F</div><div class='add'>+0x5A1C = 0x4448</div><div class='add'>+0x5A1F = 0x3E6A</div><div class='add'>+0x5A20 = 0x496F</div><div class='add'>+0x5A23 = 0x6637</div><div class='add'>+0x5A25 = 0x3670</div><div class='add'>+0x5A29 = 0x4364</div><div class='add'>+0x5A31 = 0x5369</div><div class='add'>+0x5A36 = 0x4822</div><div class='add'>+0x5A3C = 0x663D</div><div class='add'>+0x5A40 = 0x6639</div><div class='add'>+0x5A41 = 0x4226</div><div class='add'>+0x5A46 = 0x4645</div><div class='add'>+0x5A49 = 0x4D71</div><div class='add'>+0x5A4A = 0x663B</div><div class='add'>+0x5A55 = 0x663C</div><div class='add'>+0x5A5A = 0x3B69</div><div class='add'>+0x5A62 = 0x663E</div><div class='add'>+0x5A66 = 0x383E</div><div class='add'>+0x5A67 = 0x663A</div><div class='add'>+0x5A6A = 0x4037</div><div class='add'>+0x5A6D = 0x662B</div><div class='add'>+0x5A77 = 0x6643</div><div class='add'>+0x5A7A = 0x6644</div><div class='add'>+0x5A7F = 0x5076</div><div class='add'>+0x5A92 = 0x433D</div><div class='add'>+0x5A9A = 0x4344</div><div class='add'>+0x5A9B = 0x6642</div><div class='add'>+0x5AA7 = 0x6634</div><div class='add'>+0x5AAA = 0x6641</div><div class='add'>+0x5AB2 = 0x6647</div><div class='add'>+0x5AB3 = 0x4F31</div><div class='add'>+0x5AB5 = 0x6B74</div><div class='add'>+0x5AB8 = 0x664A</div><div class='add'>+0x5ABD = 0x4268</div><div class='add'>+0x5ABE = 0x6645</div><div class='add'>+0x5AC1 = 0x3C5E</div><div class='add'>+0x5AC2 = 0x4929</div><div class='add'>+0x5AC9 = 0x3C35</div><div class='add'>+0x5ACC = 0x4F53</div><div class='add'>+0x5AD6 = 0x664E</div><div class='add'>+0x5AD7 = 0x657D</div><div class='add'>+0x5AD8 = 0x6650</div><div class='add'>+0x5ADC = 0x6651</div><div class='add'>+0x5AE0 = 0x664B</div><div class='add'>+0x5AE1 = 0x3555</div><div class='add'>+0x5AE3 = 0x664C</div><div class='add'>+0x5AE6 = 0x664F</div><div class='add'>+0x5AE9 = 0x445B</div><div class='add'>+0x5AEB = 0x6646</div><div class='add'>+0x5AF5 = 0x657C</div><div class='add'>+0x5AFB = 0x6635</div><div class='add'>+0x5B00 = 0x6623</div><div class='add'>+0x5B08 = 0x662C</div><div class='add'>+0x5B09 = 0x6652</div><div class='add'>+0x5B0B = 0x663F</div><div class='add'>+0x5B0C = 0x3D3F</div><div class='add'>+0x5B16 = 0x6654</div><div class='add'>+0x5B17 = 0x6653</div><div class='add'>+0x5B19 = 0x664D</div><div class='add'>+0x5B21 = 0x6648</div><div class='add'>+0x5B2A = 0x6649</div><div class='add'>+0x5B30 = 0x5324</div><div class='add'>+0x5B32 = 0x6655</div><div class='add'>+0x5B34 = 0x5978</div><div class='add'>+0x5B37 = 0x6656</div><div class='add'>+0x5B38 = 0x4974</div><div class='add'>+0x5B40 = 0x6657</div><div class='add'>+0x5B4C = 0x662E</div><div class='add'>+0x5B50 = 0x5753</div><div class='add'>+0x5B51 = 0x665D</div><div class='add'>+0x5B53 = 0x665E</div><div class='add'>+0x5B54 = 0x3F57</div><div class='add'>+0x5B55 = 0x5450</div><div class='add'>+0x5B57 = 0x5756</div><div class='add'>+0x5B58 = 0x3466</div><div class='add'>+0x5B5A = 0x665A</div><div class='add'>+0x5B5B = 0x5843</div><div class='add'>+0x5B5C = 0x574E</div><div class='add'>+0x5B5D = 0x5022</div><div class='add'>+0x5B5F = 0x434F</div><div class='add'>+0x5B62 = 0x665F</div><div class='add'>+0x5B63 = 0x3C3E</div><div class='add'>+0x5B64 = 0x3942</div><div class='add'>+0x5B65 = 0x665B</div><div class='add'>+0x5B69 = 0x3A22</div><div class='add'>+0x5B6B = 0x4B6F</div><div class='add'>+0x5B6C = 0x582B</div><div class='add'>+0x5B70 = 0x4A6B</div><div class='add'>+0x5B71 = 0x656E</div><div class='add'>+0x5B73 = 0x665C</div><div class='add'>+0x5B75 = 0x3775</div><div class='add'>+0x5B78 = 0x5127</div><div class='add'>+0x5B7A = 0x4866</div><div class='add'>+0x5B7D = 0x4475</div><div class='add'>+0x5B7F = 0x424F</div><div class='add'>+0x5B80 = 0x6532</div><div class='add'>+0x5B83 = 0x4B7C</div><div class='add'>+0x5B84 = 0x6533</div><div class='add'>+0x5B85 = 0x552C</div><div class='add'>+0x5B87 = 0x536E</div><div class='add'>+0x5B88 = 0x4A58</div><div class='add'>+0x5B89 = 0x3032</div><div class='add'>+0x5B8B = 0x4B4E</div><div class='add'>+0x5B8C = 0x4D6A</div><div class='add'>+0x5B8F = 0x3A6A</div><div class='add'>+0x5B93 = 0x6535</div><div class='add'>+0x5B95 = 0x6534</div><div class='add'>+0x5B97 = 0x575A</div><div class='add'>+0x5B98 = 0x3959</div><div class='add'>+0x5B99 = 0x5666</div><div class='add'>+0x5B9A = 0x3628</div><div class='add'>+0x5B9B = 0x4D70</div><div class='add'>+0x5B9C = 0x524B</div><div class='add'>+0x5BA2 = 0x3F4D</div><div class='add'>+0x5BA3 = 0x507B</div><div class='add'>+0x5BA4 = 0x4A52</div><div class='add'>+0x5BA5 = 0x6536</div><div class='add'>+0x5BA6 = 0x3B42</div><div class='add'>+0x5BAB = 0x392C</div><div class='add'>+0x5BB0 = 0x5457</div><div class='add'>+0x5BB3 = 0x3A26</div><div class='add'>+0x5BB4 = 0x5167</div><div class='add'>+0x5BB5 = 0x4F7C</div><div class='add'>+0x5BB6 = 0x3C52</div><div class='add'>+0x5BB8 = 0x6537</div><div class='add'>+0x5BB9 = 0x485D</div><div class='add'>+0x5BBF = 0x4B5E</div><div class='add'>+0x5BC2 = 0x3C45</div><div class='add'>+0x5BC4 = 0x3C44</div><div class='add'>+0x5BC5 = 0x527A</div><div class='add'>+0x5BC6 = 0x435C</div><div class='add'>+0x5BC7 = 0x3F5C</div><div class='add'>+0x5BCC = 0x383B</div><div class='add'>+0x5BD0 = 0x4342</div><div class='add'>+0x5BD2 = 0x3A2E</div><div class='add'>+0x5BD3 = 0x5422</div><div class='add'>+0x5BDE = 0x442F</div><div class='add'>+0x5BDF = 0x326C</div><div class='add'>+0x5BE1 = 0x3951</div><div class='add'>+0x5BE2 = 0x475E</div><div class='add'>+0x5BE4 = 0x653B</div><div class='add'>+0x5BE5 = 0x4148</div><div class='add'>+0x5BE6 = 0x4A35</div><div class='add'>+0x5BE7 = 0x447E</div><div class='add'>+0x5BE8 = 0x552F</div><div class='add'>+0x5BE9 = 0x4973</div><div class='add'>+0x5BEB = 0x5034</div><div class='add'>+0x5BEC = 0x3F6D</div><div class='add'>+0x5BEE = 0x653C</div><div class='add'>+0x5BF0 = 0x653E</div><div class='add'>+0x5BF5 = 0x3368</div><div class='add'>+0x5BF6 = 0x3126</div><div class='add'>+0x5BF8 = 0x3467</div><div class='add'>+0x5BFA = 0x4B42</div><div class='add'>+0x5C01 = 0x3762</div><div class='add'>+0x5C04 = 0x4964</div><div class='add'>+0x5C07 = 0x3D2B</div><div class='add'>+0x5C08 = 0x5728</div><div class='add'>+0x5C09 = 0x4E3E</div><div class='add'>+0x5C0A = 0x5770</div><div class='add'>+0x5C0B = 0x5130</div><div class='add'>+0x5C0D = 0x3654</div><div class='add'>+0x5C0E = 0x353C</div><div class='add'>+0x5C0F = 0x5021</div><div class='add'>+0x5C11 = 0x4959</div><div class='add'>+0x5C15 = 0x6658</div><div class='add'>+0x5C16 = 0x3C62</div><div class='add'>+0x5C1A = 0x4950</div><div class='add'>+0x5C1C = 0x6659</div><div class='add'>+0x5C22 = 0x5E4C</div><div class='add'>+0x5C24 = 0x5348</div><div class='add'>+0x5C25 = 0x5E4D</div><div class='add'>+0x5C2C = 0x5E4E</div><div class='add'>+0x5C31 = 0x3E4D</div><div class='add'>+0x5C37 = 0x5E4F</div><div class='add'>+0x5C38 = 0x4A2C</div><div class='add'>+0x5C39 = 0x527C</div><div class='add'>+0x5C3A = 0x335F</div><div class='add'>+0x5C3B = 0x656A</div><div class='add'>+0x5C3C = 0x4461</div><div class='add'>+0x5C3E = 0x4E32</div><div class='add'>+0x5C3F = 0x4472</div><div class='add'>+0x5C40 = 0x3E56</div><div class='add'>+0x5C41 = 0x4628</div><div class='add'>+0x5C45 = 0x3E53</div><div class='add'>+0x5C48 = 0x477C</div><div class='add'>+0x5C49 = 0x4C6B</div><div class='add'>+0x5C4A = 0x3D6C</div><div class='add'>+0x5C4B = 0x4E5D</div><div class='add'>+0x5C4E = 0x4A3A</div><div class='add'>+0x5C4F = 0x4641</div><div class='add'>+0x5C50 = 0x656C</div><div class='add'>+0x5C51 = 0x503C</div><div class='add'>+0x5C55 = 0x5539</div><div class='add'>+0x5C59 = 0x656D</div><div class='add'>+0x5C60 = 0x4D40</div><div class='add'>+0x5C62 = 0x4245</div><div class='add'>+0x5C63 = 0x656F</div><div class='add'>+0x5C64 = 0x3263</div><div class='add'>+0x5C65 = 0x4244</div><div class='add'>+0x5C68 = 0x6570</div><div class='add'>+0x5C6C = 0x4A74</div><div class='add'>+0x5C6E = 0x6578</div><div class='add'>+0x5C6F = 0x4D4D</div><div class='add'>+0x5C71 = 0x493D</div><div class='add'>+0x5C79 = 0x5259</div><div class='add'>+0x5C7A = 0x6128</div><div class='add'>+0x5C88 = 0x612C</div><div class='add'>+0x5C8C = 0x6127</div><div class='add'>+0x5C8D = 0x6129</div><div class='add'>+0x5C90 = 0x612A</div><div class='add'>+0x5C91 = 0x612F</div><div class='add'>+0x5C94 = 0x326D</div><div class='add'>+0x5C99 = 0x612E</div><div class='add'>+0x5C9C = 0x6131</div><div class='add'>+0x5CA1 = 0x3854</div><div class='add'>+0x5CA2 = 0x6133</div><div class='add'>+0x5CA3 = 0x6138</div><div class='add'>+0x5CA9 = 0x5152</div><div class='add'>+0x5CAB = 0x6136</div><div class='add'>+0x5CAC = 0x6135</div><div class='add'>+0x5CB1 = 0x6137</div><div class='add'>+0x5CB3 = 0x5440</div><div class='add'>+0x5CB5 = 0x6132</div><div class='add'>+0x5CB7 = 0x613A</div><div class='add'>+0x5CB8 = 0x3036</div><div class='add'>+0x5CC1 = 0x6139</div><div class='add'>+0x5CCB = 0x613E</div><div class='add'>+0x5CD2 = 0x613C</div><div class='add'>+0x5CD9 = 0x5645</div><div class='add'>+0x5CE8 = 0x366B</div><div class='add'>+0x5CEA = 0x5378</div><div class='add'>+0x5CED = 0x474D</div><div class='add'>+0x5CF0 = 0x3765</div><div class='add'>+0x5CF4 = 0x612D</div><div class='add'>+0x5CF6 = 0x353A</div><div class='add'>+0x5CFB = 0x3E7E</div><div class='add'>+0x5CFD = 0x4F3F</div><div class='add'>+0x5D06 = 0x6147</div><div class='add'>+0x5D07 = 0x3367</div><div class='add'>+0x5D0D = 0x6141</div><div class='add'>+0x5D0E = 0x4669</div><div class='add'>+0x5D14 = 0x345E</div><div class='add'>+0x5D16 = 0x5142</div><div class='add'>+0x5D17 = 0x385A</div><div class='add'>+0x5D1B = 0x6148</div><div class='add'>+0x5D1E = 0x6146</div><div class='add'>+0x5D22 = 0x613F</div><div class='add'>+0x5D24 = 0x6145</div><div class='add'>+0x5D26 = 0x6143</div><div class='add'>+0x5D27 = 0x6142</div><div class='add'>+0x5D29 = 0x3140</div><div class='add'>+0x5D2C = 0x6134</div><div class='add'>+0x5D2E = 0x6144</div><div class='add'>+0x5D34 = 0x614B</div><div class='add'>+0x5D3D = 0x614C</div><div class='add'>+0x5D3E = 0x614A</div><div class='add'>+0x5D47 = 0x6F7A</div><div class='add'>+0x5D4A = 0x6153</div><div class='add'>+0x5D4B = 0x6152</div><div class='add'>+0x5D4C = 0x4736</div><div class='add'>+0x5D50 = 0x6130</div><div class='add'>+0x5D5B = 0x614E</div><div class='add'>+0x5D69 = 0x6154</div><div class='add'>+0x5D6B = 0x6151</div><div class='add'>+0x5D6C = 0x614D</div><div class='add'>+0x5D6F = 0x614F</div><div class='add'>+0x5D74 = 0x6155</div><div class='add'>+0x5D81 = 0x6150</div><div class='add'>+0x5D82 = 0x6156</div><div class='add'>+0x5D84 = 0x5538</div><div class='add'>+0x5D87 = 0x612B</div><div class='add'>+0x5D97 = 0x6140</div><div class='add'>+0x5D99 = 0x6157</div><div class='add'>+0x5D9D = 0x6158</div><div class='add'>+0x5DA0 = 0x613D</div><div class='add'>+0x5DA7 = 0x613B</div><div class='add'>+0x5DB7 = 0x615A</div><div class='add'>+0x5DB8 = 0x6149</div><div class='add'>+0x5DBA = 0x416B</div><div class='add'>+0x5DBC = 0x536C</div><div class='add'>+0x5DCB = 0x3F79</div><div class='add'>+0x5DCD = 0x4E21</div><div class='add'>+0x5DD2 = 0x424D</div><div class='add'>+0x5DD4 = 0x615B</div><div class='add'>+0x5DDB = 0x675D</div><div class='add'>+0x5DDD = 0x3428</div><div class='add'>+0x5DDE = 0x565D</div><div class='add'>+0x5DE1 = 0x5132</div><div class='add'>+0x5DE2 = 0x3332</div><div class='add'>+0x5DE5 = 0x3924</div><div class='add'>+0x5DE6 = 0x5773</div><div class='add'>+0x5DE7 = 0x4749</div><div class='add'>+0x5DE8 = 0x3E5E</div><div class='add'>+0x5DEB = 0x4E57</div><div class='add'>+0x5DEE = 0x326E</div><div class='add'>+0x5DF0 = 0x5B4F</div><div class='add'>+0x5DF1 = 0x3C3A</div><div class='add'>+0x5DF2 = 0x5251</div><div class='add'>+0x5DF3 = 0x4B48</div><div class='add'>+0x5DF4 = 0x304D</div><div class='add'>+0x5DF7 = 0x4F6F</div><div class='add'>+0x5DFD = 0x5963</div><div class='add'>+0x5DFE = 0x3D6D</div><div class='add'>+0x5E02 = 0x4A50</div><div class='add'>+0x5E03 = 0x323C</div><div class='add'>+0x5E06 = 0x372B</div><div class='add'>+0x5E0C = 0x4F23</div><div class='add'>+0x5E11 = 0x607B</div><div class='add'>+0x5E14 = 0x607A</div><div class='add'>+0x5E15 = 0x4541</div><div class='add'>+0x5E16 = 0x4C7B</div><div class='add'>+0x5E18 = 0x7850</div><div class='add'>+0x5E19 = 0x6079</div><div class='add'>+0x5E1A = 0x5663</div><div class='add'>+0x5E1B = 0x322F</div><div class='add'>+0x5E1D = 0x355B</div><div class='add'>+0x5E25 = 0x4B27</div><div class='add'>+0x5E2B = 0x4A26</div><div class='add'>+0x5E2D = 0x4F2F</div><div class='add'>+0x5E33 = 0x554A</div><div class='add'>+0x5E36 = 0x3478</div><div class='add'>+0x5E37 = 0x6121</div><div class='add'>+0x5E38 = 0x3323</div><div class='add'>+0x5E3D = 0x4331</div><div class='add'>+0x5E40 = 0x5621</div><div class='add'>+0x5E42 = 0x435D</div><div class='add'>+0x5E43 = 0x6078</div><div class='add'>+0x5E44 = 0x6122</div><div class='add'>+0x5E45 = 0x3779</div><div class='add'>+0x5E4C = 0x3B4F</div><div class='add'>+0x5E54 = 0x6123</div><div class='add'>+0x5E55 = 0x443B</div><div class='add'>+0x5E57 = 0x607E</div><div class='add'>+0x5E58 = 0x607D</div><div class='add'>+0x5E5B = 0x6124</div><div class='add'>+0x5E5E = 0x6125</div><div class='add'>+0x5E5F = 0x5644</div><div class='add'>+0x5E61 = 0x6126</div><div class='add'>+0x5E62 = 0x3431</div><div class='add'>+0x5E63 = 0x3152</div><div class='add'>+0x5E6B = 0x306F</div><div class='add'>+0x5E6C = 0x607C</div><div class='add'>+0x5E72 = 0x7835</div><div class='add'>+0x5E73 = 0x463D</div><div class='add'>+0x5E74 = 0x446A</div><div class='add'>+0x5E76 = 0x3222</div><div class='add'>+0x5E78 = 0x5052</div><div class='add'>+0x5E79 = 0x3849</div><div class='add'>+0x5E7A = 0x675B</div><div class='add'>+0x5E7B = 0x3B43</div><div class='add'>+0x5E7C = 0x5357</div><div class='add'>+0x5E7D = 0x5344</div><div class='add'>+0x5E7E = 0x3C38</div><div class='add'>+0x5E7F = 0x7838</div><div class='add'>+0x5E80 = 0x624F</div><div class='add'>+0x5E87 = 0x3153</div><div class='add'>+0x5E8A = 0x3432</div><div class='add'>+0x5E8B = 0x6251</div><div class='add'>+0x5E8F = 0x5072</div><div class='add'>+0x5E95 = 0x3557</div><div class='add'>+0x5E96 = 0x6252</div><div class='add'>+0x5E97 = 0x356A</div><div class='add'>+0x5E9A = 0x387D</div><div class='add'>+0x5E9C = 0x382E</div><div class='add'>+0x5EA0 = 0x6254</div><div class='add'>+0x5EA5 = 0x6253</div><div class='add'>+0x5EA6 = 0x3648</div><div class='add'>+0x5EA7 = 0x5779</div><div class='add'>+0x5EAB = 0x3F62</div><div class='add'>+0x5EAD = 0x4D25</div><div class='add'>+0x5EB3 = 0x6258</div><div class='add'>+0x5EB5 = 0x6256</div><div class='add'>+0x5EB6 = 0x4A7C</div><div class='add'>+0x5EB7 = 0x3F35</div><div class='add'>+0x5EB8 = 0x5339</div><div class='add'>+0x5EB9 = 0x6255</div><div class='add'>+0x5EBE = 0x6257</div><div class='add'>+0x5EC9 = 0x412E</div><div class='add'>+0x5ECA = 0x4048</div><div class='add'>+0x5ED1 = 0x625B</div><div class='add'>+0x5ED2 = 0x625A</div><div class='add'>+0x5ED3 = 0x402A</div><div class='add'>+0x5ED6 = 0x414E</div><div class='add'>+0x5EDB = 0x625C</div><div class='add'>+0x5EDF = 0x436D</div><div class='add'>+0x5EE0 = 0x3327</div><div class='add'>+0x5EE1 = 0x6250</div><div class='add'>+0x5EE2 = 0x374F</div><div class='add'>+0x5EE3 = 0x3963</div><div class='add'>+0x5EE8 = 0x625D</div><div class='add'>+0x5EEA = 0x625E</div><div class='add'>+0x5EEC = 0x422E</div><div class='add'>+0x5EF3 = 0x4C7C</div><div class='add'>+0x5EF4 = 0x5B48</div><div class='add'>+0x5EF6 = 0x5153</div><div class='add'>+0x5EF7 = 0x4D22</div><div class='add'>+0x5EFA = 0x3D28</div><div class='add'>+0x5EFE = 0x5E43</div><div class='add'>+0x5EFF = 0x5825</div><div class='add'>+0x5F01 = 0x5B4D</div><div class='add'>+0x5F02 = 0x526C</div><div class='add'>+0x5F04 = 0x452A</div><div class='add'>+0x5F08 = 0x5E44</div><div class='add'>+0x5F0A = 0x3157</div><div class='add'>+0x5F0B = 0x5F2E</div><div class='add'>+0x5F0F = 0x4A3D</div><div class='add'>+0x5F11 = 0x5F31</div><div class='add'>+0x5F13 = 0x392D</div><div class='add'>+0x5F15 = 0x527D</div><div class='add'>+0x5F17 = 0x3825</div><div class='add'>+0x5F18 = 0x3A6B</div><div class='add'>+0x5F1B = 0x335A</div><div class='add'>+0x5F1F = 0x355C</div><div class='add'>+0x5F26 = 0x4F52</div><div class='add'>+0x5F27 = 0x3B21</div><div class='add'>+0x5F29 = 0x6573</div><div class='add'>+0x5F2D = 0x6574</div><div class='add'>+0x5F31 = 0x4875</div><div class='add'>+0x5F33 = 0x6572</div><div class='add'>+0x5F35 = 0x5545</div><div class='add'>+0x5F3A = 0x473F</div><div class='add'>+0x5F3C = 0x6576</div><div class='add'>+0x5F40 = 0x6C30</div><div class='add'>+0x5F46 = 0x7824</div><div class='add'>+0x5F48 = 0x352F</div><div class='add'>+0x5F4C = 0x4356</div><div class='add'>+0x5F4E = 0x4D64</div><div class='add'>+0x5F50 = 0x6566</div><div class='add'>+0x5F56 = 0x6568</div><div class='add'>+0x5F57 = 0x6567</div><div class='add'>+0x5F58 = 0x6569</div><div class='add'>+0x5F59 = 0x783D</div><div class='add'>+0x5F5D = 0x524D</div><div class='add'>+0x5F61 = 0x616A</div><div class='add'>+0x5F62 = 0x504E</div><div class='add'>+0x5F64 = 0x4D2E</div><div class='add'>+0x5F66 = 0x5165</div><div class='add'>+0x5F69 = 0x324A</div><div class='add'>+0x5F6A = 0x316B</div><div class='add'>+0x5F6C = 0x3172</div><div class='add'>+0x5F6D = 0x456D</div><div class='add'>+0x5F70 = 0x5543</div><div class='add'>+0x5F71 = 0x5330</div><div class='add'>+0x5F73 = 0x615C</div><div class='add'>+0x5F77 = 0x615D</div><div class='add'>+0x5F79 = 0x525B</div><div class='add'>+0x5F7C = 0x314B</div><div class='add'>+0x5F80 = 0x4D79</div><div class='add'>+0x5F81 = 0x5577</div><div class='add'>+0x5F82 = 0x615E</div><div class='add'>+0x5F85 = 0x347D</div><div class='add'>+0x5F87 = 0x615F</div><div class='add'>+0x5F88 = 0x3A5C</div><div class='add'>+0x5F89 = 0x6160</div><div class='add'>+0x5F8A = 0x3B32</div><div class='add'>+0x5F8B = 0x4249</div><div class='add'>+0x5F8C = 0x3A73</div><div class='add'>+0x5F90 = 0x506C</div><div class='add'>+0x5F91 = 0x3E36</div><div class='add'>+0x5F92 = 0x4D3D</div><div class='add'>+0x5F97 = 0x3543</div><div class='add'>+0x5F98 = 0x4547</div><div class='add'>+0x5F99 = 0x6163</div><div class='add'>+0x5F9C = 0x6164</div><div class='add'>+0x5F9E = 0x3453</div><div class='add'>+0x5FA0 = 0x6162</div><div class='add'>+0x5FA1 = 0x5379</div><div class='add'>+0x5FA8 = 0x6165</div><div class='add'>+0x5FA9 = 0x3834</div><div class='add'>+0x5FAA = 0x512D</div><div class='add'>+0x5FAD = 0x6166</div><div class='add'>+0x5FAE = 0x4E22</div><div class='add'>+0x5FB5 = 0x6167</div><div class='add'>+0x5FB7 = 0x3542</div><div class='add'>+0x5FB9 = 0x3339</div><div class='add'>+0x5FBC = 0x6168</div><div class='add'>+0x5FBD = 0x3B55</div><div class='add'>+0x5FC3 = 0x5044</div><div class='add'>+0x5FC4 = 0x6260</div><div class='add'>+0x5FC5 = 0x3158</div><div class='add'>+0x5FC9 = 0x6261</div><div class='add'>+0x5FCC = 0x3C49</div><div class='add'>+0x5FCD = 0x484C</div><div class='add'>+0x5FD0 = 0x6C7E</div><div class='add'>+0x5FD1 = 0x6C7D</div><div class='add'>+0x5FD2 = 0x5F2F</div><div class='add'>+0x5FD6 = 0x6262</div><div class='add'>+0x5FD7 = 0x563E</div><div class='add'>+0x5FD8 = 0x4D7C</div><div class='add'>+0x5FD9 = 0x4326</div><div class='add'>+0x5FDD = 0x6343</div><div class='add'>+0x5FE0 = 0x5652</div><div class='add'>+0x5FE1 = 0x6267</div><div class='add'>+0x5FE4 = 0x6268</div><div class='add'>+0x5FEA = 0x626C</div><div class='add'>+0x5FEB = 0x3F6C</div><div class='add'>+0x5FED = 0x626D</div><div class='add'>+0x5FEE = 0x6265</div><div class='add'>+0x5FF1 = 0x3340</div><div class='add'>+0x5FF5 = 0x446E</div><div class='add'>+0x5FF8 = 0x626E</div><div class='add'>+0x5FFB = 0x5043</div><div class='add'>+0x5FFD = 0x3A76</div><div class='add'>+0x5FFF = 0x375E</div><div class='add'>+0x600A = 0x6277</div><div class='add'>+0x600D = 0x6274</div><div class='add'>+0x600E = 0x5475</div><div class='add'>+0x600F = 0x6273</div><div class='add'>+0x6012 = 0x452D</div><div class='add'>+0x6014 = 0x557A</div><div class='add'>+0x6015 = 0x4542</div><div class='add'>+0x6016 = 0x3240</div><div class='add'>+0x6019 = 0x626F</div><div class='add'>+0x601B = 0x6272</div><div class='add'>+0x601D = 0x4B3C</div><div class='add'>+0x6020 = 0x3521</div><div class='add'>+0x6021 = 0x6279</div><div class='add'>+0x6025 = 0x3C31</div><div class='add'>+0x6026 = 0x6271</div><div class='add'>+0x6027 = 0x5054</div><div class='add'>+0x6028 = 0x5439</div><div class='add'>+0x6029 = 0x6275</div><div class='add'>+0x602A = 0x3956</div><div class='add'>+0x602B = 0x6276</div><div class='add'>+0x602F = 0x4753</div><div class='add'>+0x6035 = 0x6270</div><div class='add'>+0x6041 = 0x6D25</div><div class='add'>+0x6042 = 0x627E</div><div class='add'>+0x6043 = 0x4A51</div><div class='add'>+0x604D = 0x3B50</div><div class='add'>+0x6050 = 0x3F56</div><div class='add'>+0x6052 = 0x3A63</div><div class='add'>+0x6055 = 0x4B21</div><div class='add'>+0x6059 = 0x6D26</div><div class='add'>+0x605A = 0x6D23</div><div class='add'>+0x605D = 0x6D22</div><div class='add'>+0x6062 = 0x3B56</div><div class='add'>+0x6063 = 0x6D27</div><div class='add'>+0x6064 = 0x5074</div><div class='add'>+0x6067 = 0x6D24</div><div class='add'>+0x6068 = 0x3A5E</div><div class='add'>+0x6069 = 0x3677</div><div class='add'>+0x606A = 0x6321</div><div class='add'>+0x606B = 0x3632</div><div class='add'>+0x606C = 0x4C71</div><div class='add'>+0x606D = 0x3927</div><div class='add'>+0x606F = 0x4F22</div><div class='add'>+0x6070 = 0x4721</div><div class='add'>+0x607F = 0x5341</div><div class='add'>+0x6083 = 0x6327</div><div class='add'>+0x6084 = 0x4744</div><div class='add'>+0x6089 = 0x4F24</div><div class='add'>+0x608C = 0x6329</div><div class='add'>+0x608D = 0x3A37</div><div class='add'>+0x6092 = 0x6328</div><div class='add'>+0x6094 = 0x3B5A</div><div class='add'>+0x6096 = 0x6323</div><div class='add'>+0x609A = 0x6324</div><div class='add'>+0x609B = 0x632A</div><div class='add'>+0x609D = 0x6326</div><div class='add'>+0x609F = 0x4E72</div><div class='add'>+0x60A0 = 0x5346</div><div class='add'>+0x60A3 = 0x3B3C</div><div class='add'>+0x60A6 = 0x5443</div><div class='add'>+0x60A8 = 0x447A</div><div class='add'>+0x60B1 = 0x632D</div><div class='add'>+0x60B2 = 0x312F</div><div class='add'>+0x60B4 = 0x6332</div><div class='add'>+0x60B5 = 0x626A</div><div class='add'>+0x60B6 = 0x4346</div><div class='add'>+0x60B8 = 0x3C42</div><div class='add'>+0x60BB = 0x632C</div><div class='add'>+0x60BC = 0x353F</div><div class='add'>+0x60C5 = 0x4769</div><div class='add'>+0x60C6 = 0x6330</div><div class='add'>+0x60CB = 0x4D6F</div><div class='add'>+0x60D1 = 0x3B73</div><div class='add'>+0x60D5 = 0x4C68</div><div class='add'>+0x60D8 = 0x632F</div><div class='add'>+0x60DA = 0x6331</div><div class='add'>+0x60DC = 0x4F27</div><div class='add'>+0x60DD = 0x632E</div><div class='add'>+0x60DF = 0x4E29</div><div class='add'>+0x60E0 = 0x3B5D</div><div class='add'>+0x60E1 = 0x3671</div><div class='add'>+0x60E6 = 0x356B</div><div class='add'>+0x60F0 = 0x3668</div><div class='add'>+0x60F1 = 0x4455</div><div class='add'>+0x60F2 = 0x6322</div><div class='add'>+0x60F3 = 0x4F6B</div><div class='add'>+0x60F4 = 0x6337</div><div class='add'>+0x60F6 = 0x3B4C</div><div class='add'>+0x60F9 = 0x4847</div><div class='add'>+0x60FA = 0x504A</div><div class='add'>+0x60FB = 0x627C</div><div class='add'>+0x6100 = 0x6338</div><div class='add'>+0x6101 = 0x336E</div><div class='add'>+0x6106 = 0x6D29</div><div class='add'>+0x6108 = 0x537A</div><div class='add'>+0x6109 = 0x5364</div><div class='add'>+0x610D = 0x6D2A</div><div class='add'>+0x610E = 0x6339</div><div class='add'>+0x610F = 0x5262</div><div class='add'>+0x6115 = 0x6335</div><div class='add'>+0x611A = 0x535E</div><div class='add'>+0x611B = 0x302E</div><div class='add'>+0x611C = 0x632B</div><div class='add'>+0x611F = 0x3850</div><div class='add'>+0x6120 = 0x6333</div><div class='add'>+0x6123 = 0x6336</div><div class='add'>+0x6127 = 0x4022</div><div class='add'>+0x612B = 0x633A</div><div class='add'>+0x6134 = 0x626B</div><div class='add'>+0x6137 = 0x627D</div><div class='add'>+0x613E = 0x6269</div><div class='add'>+0x613F = 0x787C</div><div class='add'>+0x6148 = 0x3448</div><div class='add'>+0x614A = 0x633B</div><div class='add'>+0x614B = 0x4C2C</div><div class='add'>+0x614C = 0x3B45</div><div class='add'>+0x614E = 0x4977</div><div class='add'>+0x6155 = 0x443D</div><div class='add'>+0x6158 = 0x3252</div><div class='add'>+0x615A = 0x3251</div><div class='add'>+0x615D = 0x6D2B</div><div class='add'>+0x615F = 0x627A</div><div class='add'>+0x6162 = 0x427D</div><div class='add'>+0x6163 = 0x395F</div><div class='add'>+0x6164 = 0x6D28</div><div class='add'>+0x6167 = 0x3B5B</div><div class='add'>+0x6168 = 0x3F2E</div><div class='add'>+0x616A = 0x6266</div><div class='add'>+0x616B = 0x4B4B</div><div class='add'>+0x616E = 0x4247</div><div class='add'>+0x6170 = 0x4E3F</div><div class='add'>+0x6173 = 0x6325</div><div class='add'>+0x6175 = 0x633C</div><div class='add'>+0x6176 = 0x476C</div><div class='add'>+0x6177 = 0x3F36</div><div class='add'>+0x6182 = 0x5347</div><div class='add'>+0x618A = 0x3139</div><div class='add'>+0x618B = 0x316F</div><div class='add'>+0x618E = 0x5477</div><div class='add'>+0x6190 = 0x412F</div><div class='add'>+0x6191 = 0x463E</div><div class='add'>+0x6192 = 0x6334</div><div class='add'>+0x6194 = 0x633E</div><div class='add'>+0x619A = 0x352C</div><div class='add'>+0x619D = 0x6D2D</div><div class='add'>+0x61A4 = 0x375F</div><div class='add'>+0x61A7 = 0x633F</div><div class='add'>+0x61A8 = 0x3A29</div><div class='add'>+0x61A9 = 0x6D2C</div><div class='add'>+0x61AB = 0x4375</div><div class='add'>+0x61AC = 0x633D</div><div class='add'>+0x61AE = 0x6264</div><div class='add'>+0x61B2 = 0x4F5C</div><div class='add'>+0x61B6 = 0x5264</div><div class='add'>+0x61B7 = 0x6340</div><div class='add'>+0x61BE = 0x3A36</div><div class='add'>+0x61C2 = 0x362E</div><div class='add'>+0x61C7 = 0x3F52</div><div class='add'>+0x61C8 = 0x5038</div><div class='add'>+0x61C9 = 0x5326</div><div class='add'>+0x61CA = 0x3043</div><div class='add'>+0x61CB = 0x6D2E</div><div class='add'>+0x61CC = 0x6278</div><div class='add'>+0x61D4 = 0x6341</div><div class='add'>+0x61DE = 0x7856</div><div class='add'>+0x61DF = 0x6D21</div><div class='add'>+0x61E3 = 0x6D2F</div><div class='add'>+0x61E6 = 0x4533</div><div class='add'>+0x61E8 = 0x627B</div><div class='add'>+0x61F2 = 0x334D</div><div class='add'>+0x61F5 = 0x6342</div><div class='add'>+0x61F6 = 0x4041</div><div class='add'>+0x61F7 = 0x3B33</div><div class='add'>+0x61F8 = 0x507C</div><div class='add'>+0x61FA = 0x6263</div><div class='add'>+0x61FC = 0x3E65</div><div class='add'>+0x61FE = 0x4965</div><div class='add'>+0x61FF = 0x5C32</div><div class='add'>+0x6200 = 0x4135</div><div class='add'>+0x6207 = 0x6D30</div><div class='add'>+0x6208 = 0x386A</div><div class='add'>+0x620A = 0x4E6C</div><div class='add'>+0x620C = 0x5067</div><div class='add'>+0x620D = 0x4A79</div><div class='add'>+0x620E = 0x4856</div><div class='add'>+0x6210 = 0x3349</div><div class='add'>+0x6211 = 0x4E52</div><div class='add'>+0x6212 = 0x3D64</div><div class='add'>+0x6214 = 0x6A27</div><div class='add'>+0x6215 = 0x635E</div><div class='add'>+0x6216 = 0x3B72</div><div class='add'>+0x621A = 0x465D</div><div class='add'>+0x621B = 0x6A29</div><div class='add'>+0x621F = 0x6A2A</div><div class='add'>+0x6221 = 0x6A2C</div><div class='add'>+0x6222 = 0x6A2B</div><div class='add'>+0x6224 = 0x6A2E</div><div class='add'>+0x6225 = 0x6A2D</div><div class='add'>+0x6227 = 0x6A28</div><div class='add'>+0x6229 = 0x6A2F</div><div class='add'>+0x622A = 0x3D58</div><div class='add'>+0x622E = 0x423E</div><div class='add'>+0x6230 = 0x553D</div><div class='add'>+0x6232 = 0x4F37</div><div class='add'>+0x6233 = 0x3441</div><div class='add'>+0x6234 = 0x3477</div><div class='add'>+0x6237 = 0x3B27</div><div class='add'>+0x623D = 0x6C66</div><div class='add'>+0x623E = 0x6C65</div><div class='add'>+0x623F = 0x373F</div><div class='add'>+0x6240 = 0x4B79</div><div class='add'>+0x6241 = 0x3162</div><div class='add'>+0x6243 = 0x6C67</div><div class='add'>+0x6247 = 0x4948</div><div class='add'>+0x6248 = 0x6C68</div><div class='add'>+0x6249 = 0x6C69</div><div class='add'>+0x624B = 0x4A56</div><div class='add'>+0x624C = 0x5E50</div><div class='add'>+0x624D = 0x3245</div><div class='add'>+0x624E = 0x547A</div><div class='add'>+0x6251 = 0x785E</div><div class='add'>+0x6252 = 0x3047</div><div class='add'>+0x6253 = 0x3472</div><div class='add'>+0x6254 = 0x4853</div><div class='add'>+0x6258 = 0x4D50</div><div class='add'>+0x625B = 0x3F38</div><div class='add'>+0x6263 = 0x3F5B</div><div class='add'>+0x6266 = 0x4724</div><div class='add'>+0x626D = 0x4524</div><div class='add'>+0x626E = 0x3067</div><div class='add'>+0x626F = 0x3336</div><div class='add'>+0x6273 = 0x3062</div><div class='add'>+0x6276 = 0x3776</div><div class='add'>+0x6279 = 0x457A</div><div class='add'>+0x627C = 0x3673</div><div class='add'>+0x627E = 0x5552</div><div class='add'>+0x627F = 0x3350</div><div class='add'>+0x6280 = 0x3C3C</div><div class='add'>+0x6284 = 0x332D</div><div class='add'>+0x6289 = 0x3E71</div><div class='add'>+0x628A = 0x3051</div><div class='add'>+0x6291 = 0x5256</div><div class='add'>+0x6292 = 0x4A63</div><div class='add'>+0x6293 = 0x5725</div><div class='add'>+0x6295 = 0x4D36</div><div class='add'>+0x6296 = 0x3636</div><div class='add'>+0x6297 = 0x3F39</div><div class='add'>+0x6298 = 0x555B</div><div class='add'>+0x629B = 0x4557</div><div class='add'>+0x62A8 = 0x456A</div><div class='add'>+0x62AB = 0x457B</div><div class='add'>+0x62AC = 0x4C27</div><div class='add'>+0x62B1 = 0x3127</div><div class='add'>+0x62B5 = 0x3556</div><div class='add'>+0x62B9 = 0x4428</div><div class='add'>+0x62BB = 0x5E53</div><div class='add'>+0x62BC = 0x513A</div><div class='add'>+0x62BD = 0x3369</div><div class='add'>+0x62BF = 0x4372</div><div class='add'>+0x62C2 = 0x3777</div><div class='add'>+0x62C4 = 0x5674</div><div class='add'>+0x62C6 = 0x3270</div><div class='add'>+0x62C7 = 0x4434</div><div class='add'>+0x62C8 = 0x4469</div><div class='add'>+0x62C9 = 0x402D</div><div class='add'>+0x62CA = 0x5E54</div><div class='add'>+0x62CC = 0x3068</div><div class='add'>+0x62CD = 0x4544</div><div class='add'>+0x62CE = 0x4160</div><div class='add'>+0x62D0 = 0x3955</div><div class='add'>+0x62D2 = 0x3E5C</div><div class='add'>+0x62D3 = 0x4D58</div><div class='add'>+0x62D4 = 0x304E</div><div class='add'>+0x62D6 = 0x4D4F</div><div class='add'>+0x62D7 = 0x5E56</div><div class='add'>+0x62D8 = 0x3E50</div><div class='add'>+0x62D9 = 0x573E</div><div class='add'>+0x62DA = 0x5E55</div><div class='add'>+0x62DB = 0x5550</div><div class='add'>+0x62DC = 0x305D</div><div class='add'>+0x62EC = 0x4028</div><div class='add'>+0x62ED = 0x4A43</div><div class='add'>+0x62EE = 0x5E57</div><div class='add'>+0x62EF = 0x557C</div><div class='add'>+0x62F1 = 0x3930</div><div class='add'>+0x62F3 = 0x482D</div><div class='add'>+0x62F4 = 0x4B29</div><div class='add'>+0x62F6 = 0x5E59</div><div class='add'>+0x62F7 = 0x3F3D</div><div class='add'>+0x62FC = 0x4634</div><div class='add'>+0x62FD = 0x5727</div><div class='add'>+0x62FE = 0x4A30</div><div class='add'>+0x62FF = 0x4443</div><div class='add'>+0x6301 = 0x3356</div><div class='add'>+0x6302 = 0x3952</div><div class='add'>+0x6307 = 0x5638</div><div class='add'>+0x6308 = 0x6A7C</div><div class='add'>+0x6309 = 0x3034</div><div class='add'>+0x630E = 0x3F66</div><div class='add'>+0x6311 = 0x4C74</div><div class='add'>+0x6316 = 0x4D5A</div><div class='add'>+0x6328 = 0x3024</div><div class='add'>+0x632A = 0x4532</div><div class='add'>+0x632B = 0x346C</div><div class='add'>+0x632F = 0x5571</div><div class='add'>+0x6332 = 0x6A7D</div><div class='add'>+0x6339 = 0x5E5A</div><div class='add'>+0x633A = 0x4D26</div><div class='add'>+0x633D = 0x4D6C</div><div class='add'>+0x633E = 0x502E</div><div class='add'>+0x6342 = 0x4E66</div><div class='add'>+0x6343 = 0x5E5C</div><div class='add'>+0x6345 = 0x4D31</div><div class='add'>+0x6346 = 0x4026</div><div class='add'>+0x6349 = 0x573D</div><div class='add'>+0x634B = 0x5E5B</div><div class='add'>+0x634C = 0x3046</div><div class='add'>+0x634D = 0x3A34</div><div class='add'>+0x634E = 0x4953</div><div class='add'>+0x634F = 0x4473</div><div class='add'>+0x6350 = 0x3E68</div><div class='add'>+0x6355 = 0x3236</div><div class='add'>+0x6367 = 0x4575</div><div class='add'>+0x6368 = 0x4961</div><div class='add'>+0x6369 = 0x5E66</div><div class='add'>+0x636B = 0x5E51</div><div class='add'>+0x636D = 0x5E63</div><div class='add'>+0x636E = 0x7846</div><div class='add'>+0x6371 = 0x5E5F</div><div class='add'>+0x6372 = 0x7847</div><div class='add'>+0x6376 = 0x3437</div><div class='add'>+0x6377 = 0x3D5D</div><div class='add'>+0x637A = 0x5E60</div><div class='add'>+0x637B = 0x446D</div><div class='add'>+0x6380 = 0x4F46</div><div class='add'>+0x6382 = 0x3560</div><div class='add'>+0x6383 = 0x4928</div><div class='add'>+0x6384 = 0x4255</div><div class='add'>+0x6387 = 0x365E</div><div class='add'>+0x6388 = 0x4A5A</div><div class='add'>+0x6389 = 0x3574</div><div class='add'>+0x638A = 0x5E65</div><div class='add'>+0x638C = 0x5546</div><div class='add'>+0x638E = 0x5E61</div><div class='add'>+0x638F = 0x4C4D</div><div class='add'>+0x6390 = 0x467E</div><div class='add'>+0x6392 = 0x4545</div><div class='add'>+0x6396 = 0x5234</div><div class='add'>+0x6398 = 0x3E72</div><div class='add'>+0x6399 = 0x5575</div><div class='add'>+0x63A0 = 0x4253</div><div class='add'>+0x63A2 = 0x4C3D</div><div class='add'>+0x63A3 = 0x3338</div><div class='add'>+0x63A5 = 0x3D53</div><div class='add'>+0x63A7 = 0x3F58</div><div class='add'>+0x63A8 = 0x4D46</div><div class='add'>+0x63A9 = 0x515A</div><div class='add'>+0x63AA = 0x346B</div><div class='add'>+0x63AC = 0x5E64</div><div class='add'>+0x63AD = 0x5E5D</div><div class='add'>+0x63AE = 0x5E67</div><div class='add'>+0x63B0 = 0x6A7E</div><div class='add'>+0x63BE = 0x5E72</div><div class='add'>+0x63C0 = 0x3C70</div><div class='add'>+0x63C4 = 0x5E6D</div><div class='add'>+0x63C6 = 0x5E71</div><div class='add'>+0x63C9 = 0x4860</div><div class='add'>+0x63CD = 0x5761</div><div class='add'>+0x63CE = 0x5E6F</div><div class='add'>+0x63CF = 0x4368</div><div class='add'>+0x63D0 = 0x4C61</div><div class='add'>+0x63D2 = 0x3265</div><div class='add'>+0x63D6 = 0x523E</div><div class='add'>+0x63DA = 0x516F</div><div class='add'>+0x63DB = 0x3B3B</div><div class='add'>+0x63DE = 0x5E6E</div><div class='add'>+0x63E0 = 0x5E6B</div><div class='add'>+0x63E1 = 0x4E55</div><div class='add'>+0x63E3 = 0x3427</div><div class='add'>+0x63E9 = 0x3F2B</div><div class='add'>+0x63EA = 0x3E3E</div><div class='add'>+0x63ED = 0x3D52</div><div class='add'>+0x63EE = 0x3B53</div><div class='add'>+0x63F2 = 0x5E69</div><div class='add'>+0x63F4 = 0x542E</div><div class='add'>+0x63F6 = 0x5E5E</div><div class='add'>+0x63F8 = 0x5E6A</div><div class='add'>+0x640B = 0x5E75</div><div class='add'>+0x640C = 0x5E78</div><div class='add'>+0x640D = 0x4B70</div><div class='add'>+0x640F = 0x322B</div><div class='add'>+0x6410 = 0x3424</div><div class='add'>+0x6413 = 0x346A</div><div class='add'>+0x6414 = 0x4926</div><div class='add'>+0x6417 = 0x3537</div><div class='add'>+0x641B = 0x5E76</div><div class='add'>+0x641C = 0x4B51</div><div class='add'>+0x641E = 0x3863</div><div class='add'>+0x6420 = 0x5E77</div><div class='add'>+0x6421 = 0x5E7A</div><div class='add'>+0x6426 = 0x5E79</div><div class='add'>+0x642A = 0x4C42</div><div class='add'>+0x642C = 0x3061</div><div class='add'>+0x642D = 0x346E</div><div class='add'>+0x6434 = 0x653A</div><div class='add'>+0x6436 = 0x4740</div><div class='add'>+0x643A = 0x502F</div><div class='add'>+0x643D = 0x326B</div><div class='add'>+0x643F = 0x6B21</div><div class='add'>+0x6441 = 0x5E74</div><div class='add'>+0x6447 = 0x5221</div><div class='add'>+0x6451 = 0x5E62</div><div class='add'>+0x6452 = 0x5E70</div><div class='add'>+0x6454 = 0x4B24</div><div class='add'>+0x6458 = 0x552A</div><div class='add'>+0x645C = 0x5E68</div><div class='add'>+0x645E = 0x5E7B</div><div class='add'>+0x645F = 0x4227</div><div class='add'>+0x6467 = 0x345D</div><div class='add'>+0x6469 = 0x4426</div><div class='add'>+0x646D = 0x5E7D</div><div class='add'>+0x646F = 0x563F</div><div class='add'>+0x6473 = 0x3F59</div><div class='add'>+0x6476 = 0x5E52</div><div class='add'>+0x6478 = 0x437E</div><div class='add'>+0x6479 = 0x4421</div><div class='add'>+0x647A = 0x5F21</div><div class='add'>+0x647B = 0x3274</div><div class='add'>+0x6482 = 0x414C</div><div class='add'>+0x6485 = 0x3E6F</div><div class='add'>+0x6487 = 0x4632</div><div class='add'>+0x6488 = 0x404C</div><div class='add'>+0x6491 = 0x3345</div><div class='add'>+0x6492 = 0x4876</div><div class='add'>+0x6493 = 0x4453</div><div class='add'>+0x6495 = 0x4B3A</div><div class='add'>+0x6496 = 0x5E7E</div><div class='add'>+0x6499 = 0x5F24</div><div class='add'>+0x649E = 0x5732</div><div class='add'>+0x649F = 0x5E58</div><div class='add'>+0x64A3 = 0x3527</div><div class='add'>+0x64A4 = 0x3337</div><div class='add'>+0x64A5 = 0x3226</div><div class='add'>+0x64A9 = 0x4143</div><div class='add'>+0x64AB = 0x3827</div><div class='add'>+0x64AC = 0x474B</div><div class='add'>+0x64AD = 0x3225</div><div class='add'>+0x64AE = 0x3469</div><div class='add'>+0x64B0 = 0x572B</div><div class='add'>+0x64B2 = 0x464B</div><div class='add'>+0x64B3 = 0x5E6C</div><div class='add'>+0x64BB = 0x4C22</div><div class='add'>+0x64BC = 0x3A33</div><div class='add'>+0x64BE = 0x4E4E</div><div class='add'>+0x64BF = 0x3C71</div><div class='add'>+0x64C0 = 0x5F26</div><div class='add'>+0x64C1 = 0x5335</div><div class='add'>+0x64C2 = 0x405E</div><div class='add'>+0x64C4 = 0x4230</div><div class='add'>+0x64C5 = 0x4943</div><div class='add'>+0x64C7 = 0x5471</div><div class='add'>+0x64CA = 0x3B77</div><div class='add'>+0x64CB = 0x3532</div><div class='add'>+0x64CD = 0x3259</div><div class='add'>+0x64CE = 0x4766</div><div class='add'>+0x64D0 = 0x5F27</div><div class='add'>+0x64D2 = 0x475C</div><div class='add'>+0x64D4 = 0x3523</div><div class='add'>+0x64D7 = 0x5F28</div><div class='add'>+0x64D8 = 0x6B22</div><div class='add'>+0x64DA = 0x3E5D</div><div class='add'>+0x64E0 = 0x3C37</div><div class='add'>+0x64E2 = 0x5F2A</div><div class='add'>+0x64E4 = 0x5F29</div><div class='add'>+0x64E6 = 0x3241</div><div class='add'>+0x64EC = 0x4462</div><div class='add'>+0x64EF = 0x3177</div><div class='add'>+0x64F0 = 0x4521</div><div class='add'>+0x64F1 = 0x3869</div><div class='add'>+0x64F2 = 0x5640</div><div class='add'>+0x64F4 = 0x4029</div><div class='add'>+0x64F7 = 0x5F22</div><div class='add'>+0x64FA = 0x305A</div><div class='add'>+0x64FB = 0x4B53</div><div class='add'>+0x64FC = 0x5F23</div><div class='add'>+0x64FE = 0x4845</div><div class='add'>+0x6500 = 0x454A</div><div class='add'>+0x6504 = 0x5E73</div><div class='add'>+0x6506 = 0x446C</div><div class='add'>+0x6509 = 0x5F2B</div><div class='add'>+0x650F = 0x4223</div><div class='add'>+0x6514 = 0x4039</div><div class='add'>+0x6516 = 0x5E7C</div><div class='add'>+0x6518 = 0x4841</div><div class='add'>+0x6519 = 0x3273</div><div class='add'>+0x651B = 0x5F25</div><div class='add'>+0x651D = 0x4963</div><div class='add'>+0x6522 = 0x545C</div><div class='add'>+0x6523 = 0x424E</div><div class='add'>+0x6524 = 0x4C2F</div><div class='add'>+0x6525 = 0x5F2C</div><div class='add'>+0x652A = 0x3D41</div><div class='add'>+0x652B = 0x3E70</div><div class='add'>+0x652C = 0x403F</div><div class='add'>+0x652E = 0x5F2D</div><div class='add'>+0x652F = 0x5627</div><div class='add'>+0x6534 = 0x6A37</div><div class='add'>+0x6535 = 0x6B36</div><div class='add'>+0x6536 = 0x4A55</div><div class='add'>+0x6538 = 0x587C</div><div class='add'>+0x6539 = 0x3844</div><div class='add'>+0x653B = 0x3925</div><div class='add'>+0x653E = 0x3745</div><div class='add'>+0x653F = 0x557E</div><div class='add'>+0x6545 = 0x394A</div><div class='add'>+0x6548 = 0x5027</div><div class='add'>+0x6549 = 0x744D</div><div class='add'>+0x654F = 0x4374</div><div class='add'>+0x6551 = 0x3E48</div><div class='add'>+0x6555 = 0x6B37</div><div class='add'>+0x6556 = 0x303D</div><div class='add'>+0x6557 = 0x305C</div><div class='add'>+0x6559 = 0x3D4C</div><div class='add'>+0x655D = 0x3156</div><div class='add'>+0x655E = 0x3328</div><div class='add'>+0x6562 = 0x3852</div><div class='add'>+0x6563 = 0x4922</div><div class='add'>+0x6566 = 0x3658</div><div class='add'>+0x656B = 0x6B38</div><div class='add'>+0x656C = 0x3E34</div><div class='add'>+0x6572 = 0x4743</div><div class='add'>+0x6574 = 0x557B</div><div class='add'>+0x6575 = 0x3550</div><div class='add'>+0x6577 = 0x3773</div><div class='add'>+0x6578 = 0x4A7D</div><div class='add'>+0x6582 = 0x4132</div><div class='add'>+0x6583 = 0x3150</div><div class='add'>+0x6587 = 0x4E44</div><div class='add'>+0x658C = 0x3173</div><div class='add'>+0x6590 = 0x6C33</div><div class='add'>+0x6591 = 0x305F</div><div class='add'>+0x6595 = 0x6C35</div><div class='add'>+0x6597 = 0x782F</div><div class='add'>+0x6599 = 0x414F</div><div class='add'>+0x659B = 0x757A</div><div class='add'>+0x659C = 0x5031</div><div class='add'>+0x659F = 0x5565</div><div class='add'>+0x65A1 = 0x4E53</div><div class='add'>+0x65A4 = 0x3D6F</div><div class='add'>+0x65A5 = 0x3362</div><div class='add'>+0x65A7 = 0x382B</div><div class='add'>+0x65AB = 0x6D3D</div><div class='add'>+0x65AC = 0x5536</div><div class='add'>+0x65AF = 0x4B39</div><div class='add'>+0x65B0 = 0x5042</div><div class='add'>+0x65B7 = 0x364F</div><div class='add'>+0x65B9 = 0x373D</div><div class='add'>+0x65BC = 0x6C36</div><div class='add'>+0x65BD = 0x4A29</div><div class='add'>+0x65C1 = 0x4554</div><div class='add'>+0x65C3 = 0x6C39</div><div class='add'>+0x65C4 = 0x6C38</div><div class='add'>+0x65C5 = 0x4243</div><div class='add'>+0x65C6 = 0x6C37</div><div class='add'>+0x65CB = 0x507D</div><div class='add'>+0x65CC = 0x6C3A</div><div class='add'>+0x65CE = 0x6C3B</div><div class='add'>+0x65CF = 0x5765</div><div class='add'>+0x65D2 = 0x6C3C</div><div class='add'>+0x65D6 = 0x6C3D</div><div class='add'>+0x65D7 = 0x466C</div><div class='add'>+0x65E2 = 0x3C48</div><div class='add'>+0x65E5 = 0x4855</div><div class='add'>+0x65E6 = 0x3529</div><div class='add'>+0x65E8 = 0x563C</div><div class='add'>+0x65E9 = 0x5467</div><div class='add'>+0x65EC = 0x512E</div><div class='add'>+0x65ED = 0x5071</div><div class='add'>+0x65EE = 0x6A38</div><div class='add'>+0x65EF = 0x6A39</div><div class='add'>+0x65F0 = 0x6A3A</div><div class='add'>+0x65F1 = 0x3A35</div><div class='add'>+0x65FA = 0x4D7A</div><div class='add'>+0x6600 = 0x6A40</div><div class='add'>+0x6602 = 0x303A</div><div class='add'>+0x6603 = 0x6A3E</div><div class='add'>+0x6606 = 0x4025</div><div class='add'>+0x660A = 0x6A3B</div><div class='add'>+0x660C = 0x327D</div><div class='add'>+0x660E = 0x4377</div><div class='add'>+0x660F = 0x3B68</div><div class='add'>+0x6613 = 0x5257</div><div class='add'>+0x6614 = 0x4E74</div><div class='add'>+0x6615 = 0x6A3F</div><div class='add'>+0x661D = 0x6A43</div><div class='add'>+0x661F = 0x5047</div><div class='add'>+0x6620 = 0x5333</div><div class='add'>+0x6625 = 0x343A</div><div class='add'>+0x6627 = 0x4341</div><div class='add'>+0x6628 = 0x5772</div><div class='add'>+0x662D = 0x5551</div><div class='add'>+0x662F = 0x4A47</div><div class='add'>+0x6631 = 0x6A45</div><div class='add'>+0x6634 = 0x6A44</div><div class='add'>+0x6635 = 0x6A47</div><div class='add'>+0x6636 = 0x6A46</div><div class='add'>+0x6641 = 0x6A4B</div><div class='add'>+0x6642 = 0x4A31</div><div class='add'>+0x6643 = 0x3B4E</div><div class='add'>+0x6649 = 0x3D7A</div><div class='add'>+0x664C = 0x494E</div><div class='add'>+0x664F = 0x6A4C</div><div class='add'>+0x6657 = 0x6A4F</div><div class='add'>+0x665A = 0x4D6D</div><div class='add'>+0x665D = 0x5667</div><div class='add'>+0x665F = 0x6A49</div><div class='add'>+0x6661 = 0x6A4E</div><div class='add'>+0x6664 = 0x4E6E</div><div class='add'>+0x6666 = 0x3B5E</div><div class='add'>+0x6668 = 0x333F</div><div class='add'>+0x666E = 0x4655</div><div class='add'>+0x666F = 0x3E30</div><div class='add'>+0x6670 = 0x4E7A</div><div class='add'>+0x6674 = 0x4767</div><div class='add'>+0x6676 = 0x3E27</div><div class='add'>+0x6677 = 0x6A50</div><div class='add'>+0x667A = 0x5647</div><div class='add'>+0x667E = 0x4140</div><div class='add'>+0x6684 = 0x6A51</div><div class='add'>+0x6687 = 0x4F3E</div><div class='add'>+0x6688 = 0x544E</div><div class='add'>+0x6689 = 0x6A4D</div><div class='add'>+0x668C = 0x6A52</div><div class='add'>+0x6691 = 0x4A6E</div><div class='add'>+0x6696 = 0x452F</div><div class='add'>+0x6697 = 0x3035</div><div class='add'>+0x669D = 0x6A54</div><div class='add'>+0x66A2 = 0x3329</div><div class='add'>+0x66A8 = 0x745F</div><div class='add'>+0x66AB = 0x545D</div><div class='add'>+0x66AE = 0x443A</div><div class='add'>+0x66B4 = 0x3129</div><div class='add'>+0x66B9 = 0x655F</div><div class='add'>+0x66BE = 0x6A55</div><div class='add'>+0x66C4 = 0x6A4A</div><div class='add'>+0x66C6 = 0x784F</div><div class='add'>+0x66C7 = 0x6A3C</div><div class='add'>+0x66C9 = 0x4F7E</div><div class='add'>+0x66D6 = 0x6A53</div><div class='add'>+0x66D9 = 0x4A6F</div><div class='add'>+0x66DB = 0x6A56</div><div class='add'>+0x66DC = 0x6A57</div><div class='add'>+0x66DD = 0x4658</div><div class='add'>+0x66E0 = 0x3F75</div><div class='add'>+0x66E6 = 0x6A58</div><div class='add'>+0x66E9 = 0x6A59</div><div class='add'>+0x66EC = 0x4939</div><div class='add'>+0x66F0 = 0x543B</div><div class='add'>+0x66F2 = 0x477A</div><div class='add'>+0x66F3 = 0x5237</div><div class='add'>+0x66F4 = 0x387C</div><div class='add'>+0x66F7 = 0x6A42</div><div class='add'>+0x66F8 = 0x4A69</div><div class='add'>+0x66F9 = 0x325C</div><div class='add'>+0x66FC = 0x427C</div><div class='add'>+0x66FE = 0x5478</div><div class='add'>+0x66FF = 0x4C66</div><div class='add'>+0x6700 = 0x576E</div><div class='add'>+0x6703 = 0x3B61</div><div class='add'>+0x6708 = 0x5442</div><div class='add'>+0x6709 = 0x5350</div><div class='add'>+0x670A = 0x6B43</div><div class='add'>+0x670B = 0x4573</div><div class='add'>+0x670D = 0x377E</div><div class='add'>+0x6710 = 0x6B54</div><div class='add'>+0x6714 = 0x4B37</div><div class='add'>+0x6715 = 0x6B5E</div><div class='add'>+0x6717 = 0x404A</div><div class='add'>+0x671B = 0x4D7B</div><div class='add'>+0x671D = 0x332F</div><div class='add'>+0x671F = 0x465A</div><div class='add'>+0x6726 = 0x6B7C</div><div class='add'>+0x6727 = 0x6B4A</div><div class='add'>+0x6728 = 0x443E</div><div class='add'>+0x672A = 0x4E34</div><div class='add'>+0x672B = 0x4429</div><div class='add'>+0x672C = 0x313E</div><div class='add'>+0x672D = 0x547D</div><div class='add'>+0x672F = 0x7868</div><div class='add'>+0x6731 = 0x566C</div><div class='add'>+0x6734 = 0x7860</div><div class='add'>+0x6735 = 0x3664</div><div class='add'>+0x673D = 0x5060</div><div class='add'>+0x6746 = 0x384B</div><div class='add'>+0x6748 = 0x683E</div><div class='add'>+0x6749 = 0x493C</div><div class='add'>+0x674C = 0x683B</div><div class='add'>+0x674E = 0x406E</div><div class='add'>+0x674F = 0x5053</div><div class='add'>+0x6750 = 0x3244</div><div class='add'>+0x6751 = 0x3465</div><div class='add'>+0x6753 = 0x683C</div><div class='add'>+0x6756 = 0x5548</div><div class='add'>+0x675C = 0x3645</div><div class='add'>+0x675E = 0x683D</div><div class='add'>+0x675F = 0x4A78</div><div class='add'>+0x6760 = 0x385C</div><div class='add'>+0x676A = 0x6842</div><div class='add'>+0x676D = 0x3A3C</div><div class='add'>+0x676F = 0x312D</div><div class='add'>+0x6770 = 0x3D5C</div><div class='add'>+0x6771 = 0x362B</div><div class='add'>+0x6772 = 0x6A3D</div><div class='add'>+0x6773 = 0x6843</div><div class='add'>+0x6775 = 0x6846</div><div class='add'>+0x6777 = 0x684B</div><div class='add'>+0x677C = 0x684C</div><div class='add'>+0x677E = 0x7869</div><div class='add'>+0x677F = 0x3065</div><div class='add'>+0x6787 = 0x6841</div><div class='add'>+0x6789 = 0x4D77</div><div class='add'>+0x678B = 0x684A</div><div class='add'>+0x6790 = 0x4E76</div><div class='add'>+0x6795 = 0x556D</div><div class='add'>+0x6797 = 0x4156</div><div class='add'>+0x6798 = 0x6844</div><div class='add'>+0x679A = 0x4336</div><div class='add'>+0x679C = 0x397B</div><div class='add'>+0x679D = 0x5626</div><div class='add'>+0x67AF = 0x3F5D</div><div class='add'>+0x67B0 = 0x6852</div><div class='add'>+0x67B3 = 0x6857</div><div class='add'>+0x67B5 = 0x6855</div><div class='add'>+0x67B6 = 0x3C5C</div><div class='add'>+0x67B7 = 0x3C4F</div><div class='add'>+0x67B8 = 0x685B</div><div class='add'>+0x67C1 = 0x685E</div><div class='add'>+0x67C3 = 0x685A</div><div class='add'>+0x67C4 = 0x317A</div><div class='add'>+0x67CF = 0x3058</div><div class='add'>+0x67D0 = 0x4433</div><div class='add'>+0x67D1 = 0x384C</div><div class='add'>+0x67D2 = 0x4662</div><div class='add'>+0x67D3 = 0x483E</div><div class='add'>+0x67D4 = 0x4861</div><div class='add'>+0x67D8 = 0x684F</div><div class='add'>+0x67D9 = 0x6854</div><div class='add'>+0x67DA = 0x6856</div><div class='add'>+0x67DD = 0x6858</div><div class='add'>+0x67DE = 0x5775</div><div class='add'>+0x67E2 = 0x685C</div><div class='add'>+0x67E5 = 0x3269</div><div class='add'>+0x67E9 = 0x6851</div><div class='add'>+0x67EC = 0x3C6D</div><div class='add'>+0x67EF = 0x3F42</div><div class='add'>+0x67F0 = 0x684D</div><div class='add'>+0x67F1 = 0x5679</div><div class='add'>+0x67F3 = 0x4178</div><div class='add'>+0x67F4 = 0x3271</div><div class='add'>+0x67FF = 0x4A41</div><div class='add'>+0x6800 = 0x6859</div><div class='add'>+0x6805 = 0x5524</div><div class='add'>+0x6813 = 0x4B28</div><div class='add'>+0x6817 = 0x4075</div><div class='add'>+0x681D = 0x6869</div><div class='add'>+0x6821 = 0x5023</div><div class='add'>+0x6829 = 0x6872</div><div class='add'>+0x682A = 0x566A</div><div class='add'>+0x6832 = 0x6860</div><div class='add'>+0x6833 = 0x6861</div><div class='add'>+0x6838 = 0x3A4B</div><div class='add'>+0x6839 = 0x3879</div><div class='add'>+0x683C = 0x3871</div><div class='add'>+0x683D = 0x5454</div><div class='add'>+0x6840 = 0x686E</div><div class='add'>+0x6841 = 0x686C</div><div class='add'>+0x6842 = 0x3970</div><div class='add'>+0x6843 = 0x4C52</div><div class='add'>+0x6844 = 0x6866</div><div class='add'>+0x6845 = 0x4E26</div><div class='add'>+0x6846 = 0x3F72</div><div class='add'>+0x6848 = 0x3038</div><div class='add'>+0x6849 = 0x6871</div><div class='add'>+0x684A = 0x6870</div><div class='add'>+0x684C = 0x5740</div><div class='add'>+0x684E = 0x6864</div><div class='add'>+0x6850 = 0x4D29</div><div class='add'>+0x6851 = 0x4923</div><div class='add'>+0x6853 = 0x3B38</div><div class='add'>+0x6854 = 0x3D5B</div><div class='add'>+0x6855 = 0x686A</div><div class='add'>+0x686B = 0x6878</div><div class='add'>+0x6874 = 0x6875</div><div class='add'>+0x6876 = 0x4D30</div><div class='add'>+0x6877 = 0x6876</div><div class='add'>+0x6881 = 0x413A</div><div class='add'>+0x6883 = 0x6868</div><div class='add'>+0x6885 = 0x4337</div><div class='add'>+0x6886 = 0x3070</div><div class='add'>+0x688F = 0x6874</div><div class='add'>+0x6893 = 0x6877</div><div class='add'>+0x6897 = 0x3923</div><div class='add'>+0x6898 = 0x6845</div><div class='add'>+0x689D = 0x4C75</div><div class='add'>+0x689F = 0x6849</div><div class='add'>+0x68A2 = 0x4952</div><div class='add'>+0x68A7 = 0x4E60</div><div class='add'>+0x68A8 = 0x4066</div><div class='add'>+0x68AD = 0x4B73</div><div class='add'>+0x68AF = 0x4C5D</div><div class='add'>+0x68B0 = 0x5035</div><div class='add'>+0x68B3 = 0x4A61</div><div class='add'>+0x68B5 = 0x6873</div><div class='add'>+0x68C4 = 0x467A</div><div class='add'>+0x68C9 = 0x435E</div><div class='add'>+0x68CB = 0x4665</div><div class='add'>+0x68CD = 0x3977</div><div class='add'>+0x68D2 = 0x3074</div><div class='add'>+0x68D5 = 0x5758</div><div class='add'>+0x68D6 = 0x6847</div><div class='add'>+0x68D7 = 0x5466</div><div class='add'>+0x68D8 = 0x3C2C</div><div class='add'>+0x68DA = 0x456F</div><div class='add'>+0x68DF = 0x3630</div><div class='add'>+0x68E0 = 0x4C44</div><div class='add'>+0x68E3 = 0x6926</div><div class='add'>+0x68E7 = 0x553B</div><div class='add'>+0x68EE = 0x492D</div><div class='add'>+0x68F0 = 0x6922</div><div class='add'>+0x68F1 = 0x4062</div><div class='add'>+0x68F2 = 0x465C</div><div class='add'>+0x68F5 = 0x3F43</div><div class='add'>+0x68F9 = 0x687E</div><div class='add'>+0x68FA = 0x3957</div><div class='add'>+0x68FC = 0x687B</div><div class='add'>+0x6901 = 0x6924</div><div class='add'>+0x6905 = 0x524E</div><div class='add'>+0x690B = 0x6923</div><div class='add'>+0x690D = 0x5632</div><div class='add'>+0x690E = 0x5735</div><div class='add'>+0x690F = 0x6862</div><div class='add'>+0x6910 = 0x6927</div><div class='add'>+0x6912 = 0x3D37</div><div class='add'>+0x6930 = 0x522C</div><div class='add'>+0x6934 = 0x6932</div><div class='add'>+0x6939 = 0x6929</div><div class='add'>+0x693D = 0x342A</div><div class='add'>+0x693F = 0x343B</div><div class='add'>+0x6942 = 0x692B</div><div class='add'>+0x694A = 0x516E</div><div class='add'>+0x6953 = 0x3763</div><div class='add'>+0x6954 = 0x5028</div><div class='add'>+0x6957 = 0x6925</div><div class='add'>+0x695A = 0x337E</div><div class='add'>+0x695D = 0x692C</div><div class='add'>+0x695E = 0x4063</div><div class='add'>+0x6960 = 0x692A</div><div class='add'>+0x6963 = 0x6939</div><div class='add'>+0x6966 = 0x6938</div><div class='add'>+0x6968 = 0x6865</div><div class='add'>+0x696B = 0x692E</div><div class='add'>+0x696D = 0x5235</div><div class='add'>+0x696E = 0x687A</div><div class='add'>+0x6971 = 0x6928</div><div class='add'>+0x6975 = 0x3C2B</div><div class='add'>+0x6977 = 0x3F2C</div><div class='add'>+0x6978 = 0x6931</div><div class='add'>+0x6979 = 0x693A</div><div class='add'>+0x6980 = 0x692F</div><div class='add'>+0x6982 = 0x3845</div><div class='add'>+0x6986 = 0x535C</div><div class='add'>+0x698D = 0x6947</div><div class='add'>+0x6994 = 0x4046</div><div class='add'>+0x6995 = 0x6945</div><div class='add'>+0x6998 = 0x6930</div><div class='add'>+0x699B = 0x693B</div><div class='add'>+0x699C = 0x3071</div><div class='add'>+0x69A7 = 0x693C</div><div class='add'>+0x69A8 = 0x5525</div><div class='add'>+0x69AA = 0x683F</div><div class='add'>+0x69AB = 0x693E</div><div class='add'>+0x69AD = 0x693F</div><div class='add'>+0x69AE = 0x4859</div><div class='add'>+0x69B1 = 0x6941</div><div class='add'>+0x69B4 = 0x4171</div><div class='add'>+0x69B7 = 0x4836</div><div class='add'>+0x69BB = 0x693D</div><div class='add'>+0x69BF = 0x6867</div><div class='add'>+0x69C1 = 0x6942</div><div class='add'>+0x69CA = 0x6943</div><div class='add'>+0x69CB = 0x3939</div><div class='add'>+0x69CC = 0x6933</div><div class='add'>+0x69CD = 0x4739</div><div class='add'>+0x69CE = 0x6936</div><div class='add'>+0x69D0 = 0x3B31</div><div class='add'>+0x69D4 = 0x6940</div><div class='add'>+0x69E7 = 0x687D</div><div class='add'>+0x69ED = 0x694A</div><div class='add'>+0x69F2 = 0x694E</div><div class='add'>+0x69F3 = 0x3D30</div><div class='add'>+0x69FD = 0x325B</div><div class='add'>+0x69FF = 0x6948</div><div class='add'>+0x6A01 = 0x572E</div><div class='add'>+0x6A02 = 0x4056</div><div class='add'>+0x6A05 = 0x6848</div><div class='add'>+0x6A0A = 0x372E</div><div class='add'>+0x6A13 = 0x4225</div><div class='add'>+0x6A17 = 0x694B</div><div class='add'>+0x6A18 = 0x694C</div><div class='add'>+0x6A19 = 0x316A</div><div class='add'>+0x6A1E = 0x4A60</div><div class='add'>+0x6A1F = 0x5541</div><div class='add'>+0x6A21 = 0x4423</div><div class='add'>+0x6A23 = 0x5179</div><div class='add'>+0x6A28 = 0x6958</div><div class='add'>+0x6A2A = 0x3A61</div><div class='add'>+0x6A35 = 0x6954</div><div class='add'>+0x6A38 = 0x4653</div><div class='add'>+0x6A39 = 0x4A77</div><div class='add'>+0x6A3A = 0x686B</div><div class='add'>+0x6A3D = 0x6957</div><div class='add'>+0x6A3E = 0x6950</div><div class='add'>+0x6A44 = 0x694F</div><div class='add'>+0x6A47 = 0x4741</div><div class='add'>+0x6A48 = 0x6863</div><div class='add'>+0x6A4B = 0x4745</div><div class='add'>+0x6A50 = 0x6952</div><div class='add'>+0x6A58 = 0x6959</div><div class='add'>+0x6A59 = 0x3348</div><div class='add'>+0x6A5B = 0x6953</div><div class='add'>+0x6A5F = 0x3B7A</div><div class='add'>+0x6A61 = 0x4F70</div><div class='add'>+0x6A62 = 0x4D56</div><div class='add'>+0x6A65 = 0x694D</div><div class='add'>+0x6A71 = 0x3377</div><div class='add'>+0x6A80 = 0x4C34</div><div class='add'>+0x6A84 = 0x4F2D</div><div class='add'>+0x6A89 = 0x685F</div><div class='add'>+0x6A8E = 0x6955</div><div class='add'>+0x6A90 = 0x695C</div><div class='add'>+0x6A91 = 0x695B</div><div class='add'>+0x6A94 = 0x3535</div><div class='add'>+0x6A97 = 0x695E</div><div class='add'>+0x6A9C = 0x686D</div><div class='add'>+0x6AA0 = 0x6951</div><div class='add'>+0x6AA2 = 0x3C6C</div><div class='add'>+0x6AA3 = 0x6949</div><div class='add'>+0x6AA9 = 0x695D</div><div class='add'>+0x6AAB = 0x695F</div><div class='add'>+0x6AAC = 0x434A</div><div class='add'>+0x6AAF = 0x786D</div><div class='add'>+0x6AB3 = 0x6944</div><div class='add'>+0x6AB8 = 0x447B</div><div class='add'>+0x6ABB = 0x3C77</div><div class='add'>+0x6AC3 = 0x3971</div><div class='add'>+0x6AD3 = 0x6956</div><div class='add'>+0x6ADA = 0x6935</div><div class='add'>+0x6ADB = 0x684E</div><div class='add'>+0x6ADD = 0x687C</div><div class='add'>+0x6ADE = 0x695A</div><div class='add'>+0x6ADF = 0x685D</div><div class='add'>+0x6AE7 = 0x6946</div><div class='add'>+0x6AE8 = 0x6853</div><div class='add'>+0x6AEA = 0x6840</div><div class='add'>+0x6AEC = 0x6934</div><div class='add'>+0x6AF3 = 0x6850</div><div class='add'>+0x6AF8 = 0x6937</div><div class='add'>+0x6AFB = 0x5323</div><div class='add'>+0x6B04 = 0x4038</div><div class='add'>+0x6B0A = 0x4828</div><div class='add'>+0x6B0F = 0x6921</div><div class='add'>+0x6B12 = 0x686F</div><div class='add'>+0x6B16 = 0x692D</div><div class='add'>+0x6B1E = 0x6879</div><div class='add'>+0x6B20 = 0x4737</div><div class='add'>+0x6B21 = 0x344E</div><div class='add'>+0x6B23 = 0x5040</div><div class='add'>+0x6B32 = 0x537B</div><div class='add'>+0x6B37 = 0x6C24</div><div class='add'>+0x6B39 = 0x6C25</div><div class='add'>+0x6B3A = 0x465B</div><div class='add'>+0x6B3D = 0x4755</div><div class='add'>+0x6B3E = 0x3F6E</div><div class='add'>+0x6B43 = 0x6C26</div><div class='add'>+0x6B46 = 0x6C27</div><div class='add'>+0x6B47 = 0x502A</div><div class='add'>+0x6B49 = 0x4738</div><div class='add'>+0x6B4C = 0x3868</div><div class='add'>+0x6B50 = 0x4537</div><div class='add'>+0x6B59 = 0x6C28</div><div class='add'>+0x6B5F = 0x6C23</div><div class='add'>+0x6B61 = 0x3B36</div><div class='add'>+0x6B62 = 0x5639</div><div class='add'>+0x6B63 = 0x557D</div><div class='add'>+0x6B64 = 0x344B</div><div class='add'>+0x6B65 = 0x323D</div><div class='add'>+0x6B66 = 0x4E64</div><div class='add'>+0x6B67 = 0x4667</div><div class='add'>+0x6B6A = 0x4D61</div><div class='add'>+0x6B72 = 0x4B6A</div><div class='add'>+0x6B77 = 0x407A</div><div class='add'>+0x6B78 = 0x3969</div><div class='add'>+0x6B79 = 0x3475</div><div class='add'>+0x6B7B = 0x4B40</div><div class='add'>+0x6B81 = 0x6962</div><div class='add'>+0x6B82 = 0x6963</div><div class='add'>+0x6B83 = 0x516A</div><div class='add'>+0x6B84 = 0x6965</div><div class='add'>+0x6B86 = 0x3479</div><div class='add'>+0x6B89 = 0x5133</div><div class='add'>+0x6B8A = 0x4A62</div><div class='add'>+0x6B8D = 0x6968</div><div class='add'>+0x6B96 = 0x5633</div><div class='add'>+0x6B98 = 0x3250</div><div class='add'>+0x6B9B = 0x696A</div><div class='add'>+0x6B9E = 0x6966</div><div class='add'>+0x6BA4 = 0x6964</div><div class='add'>+0x6BAA = 0x696C</div><div class='add'>+0x6BAB = 0x6969</div><div class='add'>+0x6BAE = 0x6967</div><div class='add'>+0x6BAF = 0x696B</div><div class='add'>+0x6BB2 = 0x3C5F</div><div class='add'>+0x6BB3 = 0x6C2F</div><div class='add'>+0x6BB5 = 0x364E</div><div class='add'>+0x6BB7 = 0x5273</div><div class='add'>+0x6BBA = 0x4931</div><div class='add'>+0x6BBB = 0x3F47</div><div class='add'>+0x6BBF = 0x356E</div><div class='add'>+0x6BC1 = 0x3B59</div><div class='add'>+0x6BC5 = 0x5263</div><div class='add'>+0x6BC6 = 0x4539</div><div class='add'>+0x6BCB = 0x4E63</div><div class='add'>+0x6BCD = 0x4438</div><div class='add'>+0x6BCF = 0x433F</div><div class='add'>+0x6BD2 = 0x363E</div><div class='add'>+0x6BD3 = 0x5839</div><div class='add'>+0x6BD4 = 0x3148</div><div class='add'>+0x6BD6 = 0x3151</div><div class='add'>+0x6BD7 = 0x457E</div><div class='add'>+0x6BDB = 0x432B</div><div class='add'>+0x6BEA = 0x6B24</div><div class='add'>+0x6BEB = 0x3A41</div><div class='add'>+0x6BEF = 0x4C3A</div><div class='add'>+0x6BF3 = 0x6B25</div><div class='add'>+0x6BF9 = 0x6B28</div><div class='add'>+0x6BFD = 0x6B26</div><div class='add'>+0x6BFF = 0x6B27</div><div class='add'>+0x6C05 = 0x6B29</div><div class='add'>+0x6C06 = 0x6B2B</div><div class='add'>+0x6C08 = 0x5531</div><div class='add'>+0x6C0C = 0x6B2A</div><div class='add'>+0x6C0D = 0x6B2C</div><div class='add'>+0x6C0F = 0x4A4F</div><div class='add'>+0x6C10 = 0x5835</div><div class='add'>+0x6C11 = 0x4371</div><div class='add'>+0x6C13 = 0x4325</div><div class='add'>+0x6C15 = 0x6B2D</div><div class='add'>+0x6C16 = 0x444A</div><div class='add'>+0x6C18 = 0x6B2E</div><div class='add'>+0x6C19 = 0x6B2F</div><div class='add'>+0x6C1A = 0x6B30</div><div class='add'>+0x6C1B = 0x3755</div><div class='add'>+0x6C1F = 0x377A</div><div class='add'>+0x6C21 = 0x6B31</div><div class='add'>+0x6C23 = 0x4678</div><div class='add'>+0x6C24 = 0x6B33</div><div class='add'>+0x6C26 = 0x3A24</div><div class='add'>+0x6C27 = 0x5175</div><div class='add'>+0x6C28 = 0x3031</div><div class='add'>+0x6C2A = 0x6B34</div><div class='add'>+0x6C2B = 0x4762</div><div class='add'>+0x6C2C = 0x6B32</div><div class='add'>+0x6C2E = 0x352A</div><div class='add'>+0x6C2F = 0x4248</div><div class='add'>+0x6C30 = 0x4768</div><div class='add'>+0x6C32 = 0x6B35</div><div class='add'>+0x6C34 = 0x4B2E</div><div class='add'>+0x6C35 = 0x635F</div><div class='add'>+0x6C38 = 0x5340</div><div class='add'>+0x6C3D = 0x595B</div><div class='add'>+0x6C40 = 0x4D21</div><div class='add'>+0x6C41 = 0x562D</div><div class='add'>+0x6C42 = 0x4773</div><div class='add'>+0x6C46 = 0x5960</div><div class='add'>+0x6C4A = 0x6362</div><div class='add'>+0x6C50 = 0x4F2B</div><div class='add'>+0x6C54 = 0x6360</div><div class='add'>+0x6C55 = 0x4947</div><div class='add'>+0x6C57 = 0x3A39</div><div class='add'>+0x6C5B = 0x5134</div><div class='add'>+0x6C5C = 0x6361</div><div class='add'>+0x6C5D = 0x486A</div><div class='add'>+0x6C5E = 0x392F</div><div class='add'>+0x6C5F = 0x3D2D</div><div class='add'>+0x6C60 = 0x3358</div><div class='add'>+0x6C61 = 0x4E5B</div><div class='add'>+0x6C68 = 0x6368</div><div class='add'>+0x6C69 = 0x6369</div><div class='add'>+0x6C6A = 0x4D74</div><div class='add'>+0x6C70 = 0x4C2D</div><div class='add'>+0x6C72 = 0x3C33</div><div class='add'>+0x6C74 = 0x636A</div><div class='add'>+0x6C76 = 0x636B</div><div class='add'>+0x6C79 = 0x505A</div><div class='add'>+0x6C7D = 0x467B</div><div class='add'>+0x6C7E = 0x375A</div><div class='add'>+0x6C81 = 0x475F</div><div class='add'>+0x6C82 = 0x524A</div><div class='add'>+0x6C83 = 0x4E56</div><div class='add'>+0x6C85 = 0x6364</div><div class='add'>+0x6C86 = 0x636C</div><div class='add'>+0x6C88 = 0x4972</div><div class='add'>+0x6C89 = 0x3341</div><div class='add'>+0x6C8C = 0x6367</div><div class='add'>+0x6C8F = 0x4663</div><div class='add'>+0x6C90 = 0x6365</div><div class='add'>+0x6C93 = 0x6D33</div><div class='add'>+0x6C94 = 0x6366</div><div class='add'>+0x6C99 = 0x4933</div><div class='add'>+0x6C9B = 0x4566</div><div class='add'>+0x6CA1 = 0x433B</div><div class='add'>+0x6CAB = 0x442D</div><div class='add'>+0x6CAD = 0x6370</div><div class='add'>+0x6CAE = 0x3E5A</div><div class='add'>+0x6CB1 = 0x637B</div><div class='add'>+0x6CB2 = 0x6375</div><div class='add'>+0x6CB3 = 0x3A53</div><div class='add'>+0x6CB8 = 0x3750</div><div class='add'>+0x6CB9 = 0x534D</div><div class='add'>+0x6CBB = 0x564E</div><div class='add'>+0x6CBC = 0x5553</div><div class='add'>+0x6CBD = 0x3941</div><div class='add'>+0x6CBE = 0x5534</div><div class='add'>+0x6CBF = 0x5158</div><div class='add'>+0x6CC4 = 0x5039</div><div class='add'>+0x6CC5 = 0x4776</div><div class='add'>+0x6CC9 = 0x482A</div><div class='add'>+0x6CCA = 0x3234</div><div class='add'>+0x6CCC = 0x435A</div><div class='add'>+0x6CD0 = 0x636E</div><div class='add'>+0x6CD3 = 0x637C</div><div class='add'>+0x6CD4 = 0x636F</div><div class='add'>+0x6CD5 = 0x3728</div><div class='add'>+0x6CD6 = 0x6377</div><div class='add'>+0x6CD7 = 0x6374</div><div class='add'>+0x6CDB = 0x373A</div><div class='add'>+0x6CE0 = 0x6376</div><div class='add'>+0x6CE1 = 0x455D</div><div class='add'>+0x6CE2 = 0x3228</div><div class='add'>+0x6CE3 = 0x467C</div><div class='add'>+0x6CE5 = 0x4460</div><div class='add'>+0x6CE8 = 0x5722</div><div class='add'>+0x6CEA = 0x4061</div><div class='add'>+0x6CEB = 0x6379</div><div class='add'>+0x6CEE = 0x637A</div><div class='add'>+0x6CEF = 0x637D</div><div class='add'>+0x6CF0 = 0x4C29</div><div class='add'>+0x6CF1 = 0x6373</div><div class='add'>+0x6CF3 = 0x533E</div><div class='add'>+0x6CF5 = 0x3143</div><div class='add'>+0x6D04 = 0x6427</div><div class='add'>+0x6D07 = 0x6426</div><div class='add'>+0x6D0B = 0x5173</div><div class='add'>+0x6D0C = 0x6423</div><div class='add'>+0x6D0E = 0x6429</div><div class='add'>+0x6D17 = 0x4F34</div><div class='add'>+0x6D19 = 0x6428</div><div class='add'>+0x6D1A = 0x642E</div><div class='add'>+0x6D1B = 0x4265</div><div class='add'>+0x6D1E = 0x3634</div><div class='add'>+0x6D25 = 0x3D72</div><div class='add'>+0x6D27 = 0x6422</div><div class='add'>+0x6D2A = 0x3A69</div><div class='add'>+0x6D2B = 0x642A</div><div class='add'>+0x6D2E = 0x642C</div><div class='add'>+0x6D31 = 0x367D</div><div class='add'>+0x6D32 = 0x565E</div><div class='add'>+0x6D33 = 0x6432</div><div class='add'>+0x6D35 = 0x642D</div><div class='add'>+0x6D39 = 0x6421</div><div class='add'>+0x6D3B = 0x3B6E</div><div class='add'>+0x6D3D = 0x4722</div><div class='add'>+0x6D3E = 0x4549</div><div class='add'>+0x6D41 = 0x4177</div><div class='add'>+0x6D59 = 0x5563</div><div class='add'>+0x6D5A = 0x3F23</div><div class='add'>+0x6D5C = 0x643A</div><div class='add'>+0x6D5E = 0x6437</div><div class='add'>+0x6D60 = 0x643B</div><div class='add'>+0x6D63 = 0x643D</div><div class='add'>+0x6D66 = 0x4656</div><div class='add'>+0x6D69 = 0x3A46</div><div class='add'>+0x6D6A = 0x404B</div><div class='add'>+0x6D6E = 0x3821</div><div class='add'>+0x6D6F = 0x6434</div><div class='add'>+0x6D74 = 0x5421</div><div class='add'>+0x6D77 = 0x3A23</div><div class='add'>+0x6D78 = 0x3D7E</div><div class='add'>+0x6D79 = 0x6424</div><div class='add'>+0x6D7C = 0x643C</div><div class='add'>+0x6D82 = 0x786F</div><div class='add'>+0x6D85 = 0x4479</div><div class='add'>+0x6D87 = 0x637E</div><div class='add'>+0x6D88 = 0x4F7B</div><div class='add'>+0x6D89 = 0x4966</div><div class='add'>+0x6D8C = 0x533F</div><div class='add'>+0x6D8E = 0x4F51</div><div class='add'>+0x6D91 = 0x6433</div><div class='add'>+0x6D93 = 0x6438</div><div class='add'>+0x6D94 = 0x6439</div><div class='add'>+0x6D95 = 0x4C69</div><div class='add'>+0x6DAA = 0x3822</div><div class='add'>+0x6DAB = 0x644A</div><div class='add'>+0x6DAE = 0x644C</div><div class='add'>+0x6DAF = 0x5144</div><div class='add'>+0x6DB2 = 0x523A</div><div class='add'>+0x6DB5 = 0x3A2D</div><div class='add'>+0x6DB8 = 0x3A54</div><div class='add'>+0x6DBF = 0x6443</div><div class='add'>+0x6DC0 = 0x782D</div><div class='add'>+0x6DC4 = 0x574D</div><div class='add'>+0x6DC5 = 0x6440</div><div class='add'>+0x6DC6 = 0x4F7D</div><div class='add'>+0x6DC7 = 0x643F</div><div class='add'>+0x6DCB = 0x415C</div><div class='add'>+0x6DCC = 0x4C4A</div><div class='add'>+0x6DD1 = 0x4A67</div><div class='add'>+0x6DD6 = 0x4457</div><div class='add'>+0x6DD8 = 0x4C54</div><div class='add'>+0x6DD9 = 0x6448</div><div class='add'>+0x6DDD = 0x6447</div><div class='add'>+0x6DDE = 0x6441</div><div class='add'>+0x6DE0 = 0x6444</div><div class='add'>+0x6DE1 = 0x352D</div><div class='add'>+0x6DE4 = 0x5359</div><div class='add'>+0x6DE6 = 0x6446</div><div class='add'>+0x6DEA = 0x4259</div><div class='add'>+0x6DEB = 0x5279</div><div class='add'>+0x6DEC = 0x3463</div><div class='add'>+0x6DEE = 0x3B34</div><div class='add'>+0x6DF1 = 0x496E</div><div class='add'>+0x6DF3 = 0x343E</div><div class='add'>+0x6DF5 = 0x5428</div><div class='add'>+0x6DF6 = 0x6435</div><div class='add'>+0x6DF7 = 0x3B6C</div><div class='add'>+0x6DF9 = 0x514D</div><div class='add'>+0x6DFA = 0x4733</div><div class='add'>+0x6DFB = 0x4C6D</div><div class='add'>+0x6DFC = 0x6D35</div><div class='add'>+0x6E05 = 0x4765</div><div class='add'>+0x6E0C = 0x644B</div><div class='add'>+0x6E19 = 0x3B41</div><div class='add'>+0x6E1A = 0x643E</div><div class='add'>+0x6E1D = 0x5365</div><div class='add'>+0x6E20 = 0x477E</div><div class='add'>+0x6E21 = 0x3649</div><div class='add'>+0x6E23 = 0x547C</div><div class='add'>+0x6E24 = 0x3233</div><div class='add'>+0x6E25 = 0x6457</div><div class='add'>+0x6E26 = 0x4E50</div><div class='add'>+0x6E29 = 0x4E42</div><div class='add'>+0x6E2B = 0x644D</div><div class='add'>+0x6E2C = 0x3262</div><div class='add'>+0x6E2D = 0x4E3C</div><div class='add'>+0x6E2F = 0x385B</div><div class='add'>+0x6E32 = 0x6456</div><div class='add'>+0x6E34 = 0x3F4A</div><div class='add'>+0x6E38 = 0x534E</div><div class='add'>+0x6E3A = 0x436C</div><div class='add'>+0x6E3E = 0x3B6B</div><div class='add'>+0x6E43 = 0x4548</div><div class='add'>+0x6E44 = 0x6458</div><div class='add'>+0x6E4D = 0x4D44</div><div class='add'>+0x6E4E = 0x644F</div><div class='add'>+0x6E53 = 0x6454</div><div class='add'>+0x6E54 = 0x6455</div><div class='add'>+0x6E56 = 0x3A7E</div><div class='add'>+0x6E58 = 0x4F66</div><div class='add'>+0x6E5B = 0x553F</div><div class='add'>+0x6E5E = 0x6425</div><div class='add'>+0x6E5F = 0x6452</div><div class='add'>+0x6E6B = 0x6450</div><div class='add'>+0x6E6E = 0x644E</div><div class='add'>+0x6E6F = 0x4C40</div><div class='add'>+0x6E86 = 0x6453</div><div class='add'>+0x6E89 = 0x3848</div><div class='add'>+0x6E8F = 0x6467</div><div class='add'>+0x6E90 = 0x5434</div><div class='add'>+0x6E96 = 0x573C</div><div class='add'>+0x6E98 = 0x645B</div><div class='add'>+0x6E9C = 0x416F</div><div class='add'>+0x6E9D = 0x3935</div><div class='add'>+0x6E9F = 0x6469</div><div class='add'>+0x6EA2 = 0x5267</div><div class='add'>+0x6EA5 = 0x645F</div><div class='add'>+0x6EA7 = 0x6460</div><div class='add'>+0x6EAA = 0x4F2A</div><div class='add'>+0x6EAF = 0x4B5D</div><div class='add'>+0x6EB1 = 0x645A</div><div class='add'>+0x6EB2 = 0x6451</div><div class='add'>+0x6EB4 = 0x6465</div><div class='add'>+0x6EB6 = 0x485C</div><div class='add'>+0x6EB7 = 0x6463</div><div class='add'>+0x6EBA = 0x4467</div><div class='add'>+0x6EBB = 0x6462</div><div class='add'>+0x6EBD = 0x6461</div><div class='add'>+0x6EC1 = 0x337C</div><div class='add'>+0x6EC2 = 0x6468</div><div class='add'>+0x6EC4 = 0x3257</div><div class='add'>+0x6EC5 = 0x4370</div><div class='add'>+0x6EC7 = 0x3561</div><div class='add'>+0x6ECB = 0x574C</div><div class='add'>+0x6ECC = 0x3553</div><div class='add'>+0x6ECE = 0x5C7E</div><div class='add'>+0x6ECF = 0x6466</div><div class='add'>+0x6ED1 = 0x3B2C</div><div class='add'>+0x6ED3 = 0x5752</div><div class='add'>+0x6ED4 = 0x4C4F</div><div class='add'>+0x6ED5 = 0x6B78</div><div class='add'>+0x6EDA = 0x3976</div><div class='add'>+0x6EEC = 0x3B26</div><div class='add'>+0x6EEF = 0x564D</div><div class='add'>+0x6EF2 = 0x4978</div><div class='add'>+0x6EF4 = 0x354E</div><div class='add'>+0x6EF7 = 0x4231</div><div class='add'>+0x6EF8 = 0x6430</div><div class='add'>+0x6EF9 = 0x646F</div><div class='add'>+0x6EFF = 0x427A</div><div class='add'>+0x6F01 = 0x5366</div><div class='add'>+0x6F02 = 0x462F</div><div class='add'>+0x6F06 = 0x4661</div><div class='add'>+0x6F09 = 0x6475</div><div class='add'>+0x6F0F = 0x4229</div><div class='add'>+0x6F14 = 0x515D</div><div class='add'>+0x6F15 = 0x646E</div><div class='add'>+0x6F1A = 0x453D</div><div class='add'>+0x6F20 = 0x442E</div><div class='add'>+0x6F22 = 0x3A3A</div><div class='add'>+0x6F23 = 0x4130</div><div class='add'>+0x6F24 = 0x646D</div><div class='add'>+0x6F29 = 0x6476</div><div class='add'>+0x6F2A = 0x6474</div><div class='add'>+0x6F2B = 0x427E</div><div class='add'>+0x6F2C = 0x5755</div><div class='add'>+0x6F2D = 0x645D</div><div class='add'>+0x6F2F = 0x6470</div><div class='add'>+0x6F31 = 0x4A7E</div><div class='add'>+0x6F32 = 0x5547</div><div class='add'>+0x6F33 = 0x5544</div><div class='add'>+0x6F36 = 0x6471</div><div class='add'>+0x6F38 = 0x3D25</div><div class='add'>+0x6F3E = 0x517A</div><div class='add'>+0x6F3F = 0x3D2C</div><div class='add'>+0x6F41 = 0x7223</div><div class='add'>+0x6F51 = 0x4643</div><div class='add'>+0x6F54 = 0x3D60</div><div class='add'>+0x6F58 = 0x454B</div><div class='add'>+0x6F59 = 0x636D</div><div class='add'>+0x6F5B = 0x4731</div><div class='add'>+0x6F5E = 0x423A</div><div class='add'>+0x6F62 = 0x646A</div><div class='add'>+0x6F64 = 0x4873</div><div class='add'>+0x6F66 = 0x414A</div><div class='add'>+0x6F6D = 0x4C36</div><div class='add'>+0x6F6E = 0x3331</div><div class='add'>+0x6F6F = 0x6431</div><div class='add'>+0x6F70 = 0x4023</div><div class='add'>+0x6F72 = 0x647B</div><div class='add'>+0x6F74 = 0x6473</div><div class='add'>+0x6F77 = 0x6464</div><div class='add'>+0x6F78 = 0x647A</div><div class='add'>+0x6F7A = 0x647D</div><div class='add'>+0x6F7C = 0x647C</div><div class='add'>+0x6F7F = 0x6436</div><div class='add'>+0x6F80 = 0x492C</div><div class='add'>+0x6F84 = 0x334E</div><div class='add'>+0x6F86 = 0x3D3D</div><div class='add'>+0x6F87 = 0x4054</div><div class='add'>+0x6F88 = 0x333A</div><div class='add'>+0x6F89 = 0x6477</div><div class='add'>+0x6F8C = 0x6479</div><div class='add'>+0x6F8D = 0x6478</div><div class='add'>+0x6F8E = 0x456C</div><div class='add'>+0x6F97 = 0x3D27</div><div class='add'>+0x6FA0 = 0x6445</div><div class='add'>+0x6FA1 = 0x5468</div><div class='add'>+0x6FA4 = 0x5473</div><div class='add'>+0x6FA7 = 0x6522</div><div class='add'>+0x6FA9 = 0x6D34</div><div class='add'>+0x6FAE = 0x642B</div><div class='add'>+0x6FB1 = 0x356D</div><div class='add'>+0x6FB3 = 0x3044</div><div class='add'>+0x6FB6 = 0x6524</div><div class='add'>+0x6FB9 = 0x6523</div><div class='add'>+0x6FC0 = 0x3C24</div><div class='add'>+0x6FC1 = 0x5747</div><div class='add'>+0x6FC2 = 0x6525</div><div class='add'>+0x6FC3 = 0x4528</div><div class='add'>+0x6FC9 = 0x6521</div><div class='add'>+0x6FD5 = 0x4A2A</div><div class='add'>+0x6FD8 = 0x4522</div><div class='add'>+0x6FDB = 0x7855</div><div class='add'>+0x6FDE = 0x6528</div><div class='add'>+0x6FDF = 0x3C43</div><div class='add'>+0x6FE0 = 0x6529</div><div class='add'>+0x6FE1 = 0x6526</div><div class='add'>+0x6FE4 = 0x4C4E</div><div class='add'>+0x6FEB = 0x4044</div><div class='add'>+0x6FEE = 0x6527</div><div class='add'>+0x6FEF = 0x652A</div><div class='add'>+0x6FF0 = 0x4E2B</div><div class='add'>+0x6FF1 = 0x3175</div><div class='add'>+0x6FFA = 0x3D26</div><div class='add'>+0x6FFC = 0x6378</div><div class='add'>+0x6FFE = 0x424B</div><div class='add'>+0x7005 = 0x645E</div><div class='add'>+0x7006 = 0x6442</div><div class='add'>+0x7009 = 0x503A</div><div class='add'>+0x700B = 0x6449</div><div class='add'>+0x700F = 0x642F</div><div class='add'>+0x7011 = 0x4659</div><div class='add'>+0x7015 = 0x3174</div><div class='add'>+0x7018 = 0x6372</div><div class='add'>+0x701A = 0x652B</div><div class='add'>+0x701B = 0x652D</div><div class='add'>+0x701D = 0x4124</div><div class='add'>+0x701F = 0x646C</div><div class='add'>+0x7020 = 0x646B</div><div class='add'>+0x7023 = 0x652C</div><div class='add'>+0x7027 = 0x6371</div><div class='add'>+0x7028 = 0x647E</div><div class='add'>+0x7030 = 0x7858</div><div class='add'>+0x7032 = 0x6472</div><div class='add'>+0x7035 = 0x652F</div><div class='add'>+0x7039 = 0x652E</div><div class='add'>+0x703E = 0x403D</div><div class='add'>+0x7043 = 0x6363</div><div class='add'>+0x7044 = 0x645C</div><div class='add'>+0x704C = 0x3960</div><div class='add'>+0x7051 = 0x4877</div><div class='add'>+0x7055 = 0x406C</div><div class='add'>+0x7058 = 0x4C32</div><div class='add'>+0x705D = 0x6530</div><div class='add'>+0x705E = 0x6531</div><div class='add'>+0x7063 = 0x4D65</div><div class='add'>+0x7064 = 0x4250</div><div class='add'>+0x7067 = 0x6459</div><div class='add'>+0x706B = 0x3B70</div><div class='add'>+0x706C = 0x6C61</div><div class='add'>+0x7070 = 0x3B52</div><div class='add'>+0x7078 = 0x3E44</div><div class='add'>+0x707C = 0x5746</div><div class='add'>+0x707E = 0x5456</div><div class='add'>+0x7085 = 0x6A41</div><div class='add'>+0x708A = 0x3436</div><div class='add'>+0x708E = 0x5157</div><div class='add'>+0x7092 = 0x3334</div><div class='add'>+0x7094 = 0x4832</div><div class='add'>+0x7095 = 0x3F3B</div><div class='add'>+0x7096 = 0x6C40</div><div class='add'>+0x7099 = 0x564B</div><div class='add'>+0x70AB = 0x6C45</div><div class='add'>+0x70AC = 0x3E66</div><div class='add'>+0x70AD = 0x4C3F</div><div class='add'>+0x70AE = 0x455A</div><div class='add'>+0x70AF = 0x3E3C</div><div class='add'>+0x70B1 = 0x6C46</div><div class='add'>+0x70B3 = 0x317E</div><div class='add'>+0x70B7 = 0x6C44</div><div class='add'>+0x70B8 = 0x5528</div><div class='add'>+0x70BB = 0x6C42</div><div class='add'>+0x70C0 = 0x6C43</div><div class='add'>+0x70C8 = 0x4152</div><div class='add'>+0x70CA = 0x6C48</div><div class='add'>+0x70CF = 0x4E5A</div><div class='add'>+0x70D8 = 0x3A66</div><div class='add'>+0x70D9 = 0x4053</div><div class='add'>+0x70DF = 0x514C</div><div class='add'>+0x70E4 = 0x3F3E</div><div class='add'>+0x70EF = 0x4F29</div><div class='add'>+0x70F4 = 0x4C7E</div><div class='add'>+0x70F7 = 0x4D69</div><div class='add'>+0x70F9 = 0x456B</div><div class='add'>+0x70FD = 0x3769</div><div class='add'>+0x7109 = 0x5149</div><div class='add'>+0x710A = 0x3A38</div><div class='add'>+0x7110 = 0x6C49</div><div class='add'>+0x7113 = 0x6C4A</div><div class='add'>+0x7119 = 0x313A</div><div class='add'>+0x711A = 0x3759</div><div class='add'>+0x7121 = 0x4E5E</div><div class='add'>+0x7126 = 0x3D39</div><div class='add'>+0x712F = 0x6C4C</div><div class='add'>+0x7130 = 0x5166</div><div class='add'>+0x7131 = 0x6C4D</div><div class='add'>+0x7136 = 0x483B</div><div class='add'>+0x7145 = 0x6C51</div><div class='add'>+0x7149 = 0x4136</div><div class='add'>+0x714A = 0x6C53</div><div class='add'>+0x714C = 0x3B4D</div><div class='add'>+0x714E = 0x3C65</div><div class='add'>+0x7152 = 0x6C3F</div><div class='add'>+0x715C = 0x6C4F</div><div class='add'>+0x715E = 0x4937</div><div class='add'>+0x7162 = 0x5C64</div><div class='add'>+0x7164 = 0x433A</div><div class='add'>+0x7165 = 0x3B40</div><div class='add'>+0x7166 = 0x6C63</div><div class='add'>+0x7167 = 0x5555</div><div class='add'>+0x7168 = 0x6C50</div><div class='add'>+0x7169 = 0x3733</div><div class='add'>+0x716C = 0x6C3E</div><div class='add'>+0x716E = 0x5673</div><div class='add'>+0x7172 = 0x6C52</div><div class='add'>+0x7173 = 0x6C4E</div><div class='add'>+0x7178 = 0x6C54</div><div class='add'>+0x717A = 0x6C55</div><div class='add'>+0x717D = 0x493F</div><div class='add'>+0x7184 = 0x4F28</div><div class='add'>+0x718A = 0x505C</div><div class='add'>+0x718F = 0x512C</div><div class='add'>+0x7192 = 0x532B</div><div class='add'>+0x7194 = 0x485B</div><div class='add'>+0x7197 = 0x6C41</div><div class='add'>+0x7198 = 0x6C56</div><div class='add'>+0x7199 = 0x4E75</div><div class='add'>+0x719F = 0x4A6C</div><div class='add'>+0x71A0 = 0x6C5A</div><div class='add'>+0x71A8 = 0x6C59</div><div class='add'>+0x71AC = 0x303E</div><div class='add'>+0x71B1 = 0x4848</div><div class='add'>+0x71B3 = 0x6C57</div><div class='add'>+0x71B5 = 0x6C58</div><div class='add'>+0x71B9 = 0x6C64</div><div class='add'>+0x71BE = 0x3363</div><div class='add'>+0x71C1 = 0x6C47</div><div class='add'>+0x71C3 = 0x483C</div><div class='add'>+0x71C8 = 0x3546</div><div class='add'>+0x71CE = 0x4147</div><div class='add'>+0x71D2 = 0x4955</div><div class='add'>+0x71D4 = 0x6C5C</div><div class='add'>+0x71D5 = 0x5160</div><div class='add'>+0x71D9 = 0x4C4C</div><div class='add'>+0x71DC = 0x6C4B</div><div class='add'>+0x71DF = 0x532A</div><div class='add'>+0x71E0 = 0x6C5B</div><div class='add'>+0x71E5 = 0x546F</div><div class='add'>+0x71E6 = 0x3253</div><div class='add'>+0x71E7 = 0x6C5D</div><div class='add'>+0x71ED = 0x5672</div><div class='add'>+0x71EE = 0x5B46</div><div class='add'>+0x71F4 = 0x3B62</div><div class='add'>+0x71F9 = 0x6C5E</div><div class='add'>+0x71FC = 0x3D7D</div><div class='add'>+0x71FE = 0x6C62</div><div class='add'>+0x7206 = 0x312C</div><div class='add'>+0x720D = 0x4B38</div><div class='add'>+0x7210 = 0x422F</div><div class='add'>+0x721B = 0x4043</div><div class='add'>+0x721D = 0x6C5F</div><div class='add'>+0x7228 = 0x6C60</div><div class='add'>+0x722A = 0x5726</div><div class='add'>+0x722C = 0x4540</div><div class='add'>+0x722D = 0x5579</div><div class='add'>+0x7230 = 0x6B3C</div><div class='add'>+0x7232 = 0x4E2A</div><div class='add'>+0x7235 = 0x3E74</div><div class='add'>+0x7236 = 0x3838</div><div class='add'>+0x7238 = 0x3056</div><div class='add'>+0x7239 = 0x3579</div><div class='add'>+0x723A = 0x522F</div><div class='add'>+0x723B = 0x5833</div><div class='add'>+0x723D = 0x4B2C</div><div class='add'>+0x723E = 0x367B</div><div class='add'>+0x723F = 0x635D</div><div class='add'>+0x7247 = 0x462C</div><div class='add'>+0x7248 = 0x3066</div><div class='add'>+0x724C = 0x4546</div><div class='add'>+0x7252 = 0x6B3A</div><div class='add'>+0x7256 = 0x6B3B</div><div class='add'>+0x7258 = 0x6B39</div><div class='add'>+0x7259 = 0x5140</div><div class='add'>+0x725B = 0x4523</div><div class='add'>+0x725D = 0x6A72</div><div class='add'>+0x725F = 0x4432</div><div class='add'>+0x7261 = 0x4435</div><div class='add'>+0x7262 = 0x404E</div><div class='add'>+0x7266 = 0x6A73</div><div class='add'>+0x7267 = 0x4441</div><div class='add'>+0x7269 = 0x4E6F</div><div class='add'>+0x726E = 0x6A70</div><div class='add'>+0x726F = 0x6A74</div><div class='add'>+0x7272 = 0x497C</div><div class='add'>+0x7279 = 0x4C58</div><div class='add'>+0x727D = 0x4723</div><div class='add'>+0x727E = 0x6A75</div><div class='add'>+0x727F = 0x6A76</div><div class='add'>+0x7280 = 0x4F2C</div><div class='add'>+0x7281 = 0x4067</div><div class='add'>+0x7284 = 0x6A77</div><div class='add'>+0x728B = 0x6A78</div><div class='add'>+0x728D = 0x6A79</div><div class='add'>+0x728F = 0x6A7A</div><div class='add'>+0x7292 = 0x6A7B</div><div class='add'>+0x7296 = 0x5C7D</div><div class='add'>+0x729F = 0x6A71</div><div class='add'>+0x72A2 = 0x363F</div><div class='add'>+0x72A7 = 0x4E7E</div><div class='add'>+0x72AC = 0x482E</div><div class='add'>+0x72AD = 0x616B</div><div class='add'>+0x72AF = 0x3738</div><div class='add'>+0x72B0 = 0x616C</div><div class='add'>+0x72B4 = 0x616D</div><div class='add'>+0x72C0 = 0x5734</div><div class='add'>+0x72C1 = 0x6171</div><div class='add'>+0x72C2 = 0x3F71</div><div class='add'>+0x72C3 = 0x6170</div><div class='add'>+0x72C4 = 0x3552</div><div class='add'>+0x72CD = 0x6173</div><div class='add'>+0x72CE = 0x6172</div><div class='add'>+0x72D0 = 0x3A7C</div><div class='add'>+0x72D2 = 0x6174</div><div class='add'>+0x72D7 = 0x3937</div><div class='add'>+0x72D9 = 0x3E51</div><div class='add'>+0x72E0 = 0x3A5D</div><div class='add'>+0x72E1 = 0x3D46</div><div class='add'>+0x72E8 = 0x6175</div><div class='add'>+0x72E9 = 0x6177</div><div class='add'>+0x72F3 = 0x617C</div><div class='add'>+0x72F4 = 0x6179</div><div class='add'>+0x72F7 = 0x617A</div><div class='add'>+0x72F8 = 0x406A</div><div class='add'>+0x72F9 = 0x4F41</div><div class='add'>+0x72FA = 0x617E</div><div class='add'>+0x72FB = 0x6221</div><div class='add'>+0x72FC = 0x4047</div><div class='add'>+0x72FD = 0x3137</div><div class='add'>+0x7301 = 0x617B</div><div class='add'>+0x730A = 0x6225</div><div class='add'>+0x7313 = 0x6223</div><div class='add'>+0x7316 = 0x327E</div><div class='add'>+0x7317 = 0x6222</div><div class='add'>+0x7319 = 0x5578</div><div class='add'>+0x731B = 0x434D</div><div class='add'>+0x731C = 0x3242</div><div class='add'>+0x731D = 0x6227</div><div class='add'>+0x731E = 0x6226</div><div class='add'>+0x7322 = 0x6229</div><div class='add'>+0x7325 = 0x622B</div><div class='add'>+0x7329 = 0x5049</div><div class='add'>+0x732A = 0x566D</div><div class='add'>+0x732B = 0x4328</div><div class='add'>+0x732C = 0x622C</div><div class='add'>+0x7331 = 0x622E</div><div class='add'>+0x7334 = 0x3A6F</div><div class='add'>+0x7336 = 0x534C</div><div class='add'>+0x7337 = 0x6960</div><div class='add'>+0x7338 = 0x622D</div><div class='add'>+0x7339 = 0x622A</div><div class='add'>+0x733B = 0x6178</div><div class='add'>+0x733E = 0x3B2B</div><div class='add'>+0x733F = 0x5433</div><div class='add'>+0x7341 = 0x616F</div><div class='add'>+0x7344 = 0x537C</div><div class='add'>+0x7345 = 0x4A28</div><div class='add'>+0x734D = 0x6230</div><div class='add'>+0x7350 = 0x622F</div><div class='add'>+0x7352 = 0x6961</div><div class='add'>+0x7357 = 0x6231</div><div class='add'>+0x7360 = 0x6232</div><div class='add'>+0x7368 = 0x3640</div><div class='add'>+0x736A = 0x6176</div><div class='add'>+0x736B = 0x617D</div><div class='add'>+0x736C = 0x6233</div><div class='add'>+0x736F = 0x6234</div><div class='add'>+0x7370 = 0x447C</div><div class='add'>+0x7372 = 0x3B71</div><div class='add'>+0x7375 = 0x4154</div><div class='add'>+0x7377 = 0x616E</div><div class='add'>+0x7378 = 0x4A5E</div><div class='add'>+0x737A = 0x4C21</div><div class='add'>+0x737B = 0x4F57</div><div class='add'>+0x737C = 0x6228</div><div class='add'>+0x737E = 0x6235</div><div class='add'>+0x7380 = 0x6224</div><div class='add'>+0x7384 = 0x507E</div><div class='add'>+0x7387 = 0x424A</div><div class='add'>+0x7389 = 0x5371</div><div class='add'>+0x738B = 0x4D75</div><div class='add'>+0x738E = 0x6760</div><div class='add'>+0x7396 = 0x3E41</div><div class='add'>+0x739F = 0x6764</div><div class='add'>+0x73A2 = 0x6763</div><div class='add'>+0x73A9 = 0x4D66</div><div class='add'>+0x73AB = 0x4335</div><div class='add'>+0x73B2 = 0x4161</div><div class='add'>+0x73B3 = 0x6769</div><div class='add'>+0x73B7 = 0x6768</div><div class='add'>+0x73BB = 0x3223</div><div class='add'>+0x73C0 = 0x676A</div><div class='add'>+0x73C2 = 0x6766</div><div class='add'>+0x73C8 = 0x676C</div><div class='add'>+0x73C9 = 0x676B</div><div class='add'>+0x73CA = 0x493A</div><div class='add'>+0x73CD = 0x5564</div><div class='add'>+0x73CF = 0x6765</div><div class='add'>+0x73D0 = 0x3729</div><div class='add'>+0x73D9 = 0x676E</div><div class='add'>+0x73DE = 0x6773</div><div class='add'>+0x73E0 = 0x5669</div><div class='add'>+0x73E5 = 0x676D</div><div class='add'>+0x73E7 = 0x6772</div><div class='add'>+0x73E9 = 0x6771</div><div class='add'>+0x73ED = 0x3060</div><div class='add'>+0x73FE = 0x4F56</div><div class='add'>+0x7403 = 0x4772</div><div class='add'>+0x7405 = 0x4045</div><div class='add'>+0x7406 = 0x406D</div><div class='add'>+0x7409 = 0x4170</div><div class='add'>+0x740A = 0x6770</div><div class='add'>+0x741A = 0x6822</div><div class='add'>+0x741B = 0x6821</div><div class='add'>+0x7422 = 0x5741</div><div class='add'>+0x7425 = 0x677A</div><div class='add'>+0x7426 = 0x6779</div><div class='add'>+0x7428 = 0x677B</div><div class='add'>+0x742A = 0x6777</div><div class='add'>+0x742C = 0x677E</div><div class='add'>+0x742E = 0x677D</div><div class='add'>+0x7430 = 0x677C</div><div class='add'>+0x7433 = 0x4155</div><div class='add'>+0x7434 = 0x4759</div><div class='add'>+0x7435 = 0x457D</div><div class='add'>+0x7436 = 0x4543</div><div class='add'>+0x743F = 0x6775</div><div class='add'>+0x7441 = 0x6823</div><div class='add'>+0x744B = 0x6762</div><div class='add'>+0x7455 = 0x6826</div><div class='add'>+0x7457 = 0x6825</div><div class='add'>+0x7459 = 0x6827</div><div class='add'>+0x745A = 0x3A77</div><div class='add'>+0x745B = 0x6778</div><div class='add'>+0x745C = 0x6824</div><div class='add'>+0x745E = 0x4870</div><div class='add'>+0x745F = 0x492A</div><div class='add'>+0x7463 = 0x4B76</div><div class='add'>+0x7469 = 0x5328</div><div class='add'>+0x746A = 0x426A</div><div class='add'>+0x746D = 0x6829</div><div class='add'>+0x7470 = 0x3965</div><div class='add'>+0x7476 = 0x517E</div><div class='add'>+0x747E = 0x682A</div><div class='add'>+0x7480 = 0x682D</div><div class='add'>+0x7481 = 0x682E</div><div class='add'>+0x7483 = 0x4127</div><div class='add'>+0x7487 = 0x682F</div><div class='add'>+0x7489 = 0x6776</div><div class='add'>+0x748B = 0x6830</div><div class='add'>+0x7490 = 0x6834</div><div class='add'>+0x749C = 0x682B</div><div class='add'>+0x749E = 0x6831</div><div class='add'>+0x74A3 = 0x6761</div><div class='add'>+0x74A6 = 0x6828</div><div class='add'>+0x74A7 = 0x6835</div><div class='add'>+0x74A8 = 0x6832</div><div class='add'>+0x74A9 = 0x6833</div><div class='add'>+0x74B0 = 0x3B37</div><div class='add'>+0x74BA = 0x6837</div><div class='add'>+0x74BD = 0x6774</div><div class='add'>+0x74CA = 0x476D</div><div class='add'>+0x74CF = 0x6767</div><div class='add'>+0x74D4 = 0x682C</div><div class='add'>+0x74DA = 0x6836</div><div class='add'>+0x74DC = 0x394F</div><div class='add'>+0x74DE = 0x702C</div><div class='add'>+0x74E0 = 0x702D</div><div class='add'>+0x74E2 = 0x4630</div><div class='add'>+0x74E3 = 0x306A</div><div class='add'>+0x74E4 = 0x483F</div><div class='add'>+0x74E6 = 0x4D5F</div><div class='add'>+0x74EE = 0x4E4D</div><div class='add'>+0x74F4 = 0x6A32</div><div class='add'>+0x74F6 = 0x463F</div><div class='add'>+0x74F7 = 0x3449</div><div class='add'>+0x74FF = 0x6A33</div><div class='add'>+0x7504 = 0x5567</div><div class='add'>+0x750C = 0x6A31</div><div class='add'>+0x750D = 0x5D79</div><div class='add'>+0x750F = 0x6A34</div><div class='add'>+0x7511 = 0x6A35</div><div class='add'>+0x7513 = 0x6A36</div><div class='add'>+0x7518 = 0x384A</div><div class='add'>+0x7519 = 0x5F30</div><div class='add'>+0x751A = 0x4975</div><div class='add'>+0x751C = 0x4C70</div><div class='add'>+0x751F = 0x497A</div><div class='add'>+0x7523 = 0x327A</div><div class='add'>+0x7525 = 0x497B</div><div class='add'>+0x7528 = 0x5343</div><div class='add'>+0x7529 = 0x4B26</div><div class='add'>+0x752B = 0x3826</div><div class='add'>+0x752C = 0x702E</div><div class='add'>+0x752D = 0x3142</div><div class='add'>+0x752F = 0x6538</div><div class='add'>+0x7530 = 0x4C6F</div><div class='add'>+0x7531 = 0x5349</div><div class='add'>+0x7532 = 0x3C57</div><div class='add'>+0x7533 = 0x496A</div><div class='add'>+0x7537 = 0x4450</div><div class='add'>+0x7538 = 0x3569</div><div class='add'>+0x753A = 0x6E2E</div><div class='add'>+0x753E = 0x675E</div><div class='add'>+0x7540 = 0x6E2F</div><div class='add'>+0x7548 = 0x6E32</div><div class='add'>+0x754B = 0x6E31</div><div class='add'>+0x754C = 0x3D67</div><div class='add'>+0x754E = 0x6E30</div><div class='add'>+0x754F = 0x4E37</div><div class='add'>+0x7554 = 0x454F</div><div class='add'>+0x7559 = 0x4174</div><div class='add'>+0x755A = 0x5B4E</div><div class='add'>+0x755B = 0x6E33</div><div class='add'>+0x755C = 0x5073</div><div class='add'>+0x755D = 0x4436</div><div class='add'>+0x7562 = 0x314F</div><div class='add'>+0x7565 = 0x4254</div><div class='add'>+0x7566 = 0x4668</div><div class='add'>+0x756A = 0x372C</div><div class='add'>+0x756B = 0x3B2D</div><div class='add'>+0x7572 = 0x6E34</div><div class='add'>+0x7576 = 0x3531</div><div class='add'>+0x7578 = 0x3B7B</div><div class='add'>+0x7579 = 0x6E35</div><div class='add'>+0x757F = 0x675C</div><div class='add'>+0x7583 = 0x6E36</div><div class='add'>+0x7586 = 0x3D2E</div><div class='add'>+0x7587 = 0x336B</div><div class='add'>+0x758A = 0x357E</div><div class='add'>+0x758B = 0x7162</div><div class='add'>+0x758F = 0x4A68</div><div class='add'>+0x7591 = 0x5249</div><div class='add'>+0x7592 = 0x705A</div><div class='add'>+0x7594 = 0x705B</div><div class='add'>+0x7599 = 0x386D</div><div class='add'>+0x759A = 0x3E4E</div><div class='add'>+0x759D = 0x705E</div><div class='add'>+0x75A3 = 0x7060</div><div class='add'>+0x75A4 = 0x304C</div><div class='add'>+0x75A5 = 0x3D6A</div><div class='add'>+0x75AB = 0x525F</div><div class='add'>+0x75B0 = 0x7066</div><div class='add'>+0x75B1 = 0x7065</div><div class='add'>+0x75B2 = 0x4623</div><div class='add'>+0x75B3 = 0x7061</div><div class='add'>+0x75B4 = 0x7062</div><div class='add'>+0x75B5 = 0x3443</div><div class='add'>+0x75B8 = 0x7063</div><div class='add'>+0x75B9 = 0x556E</div><div class='add'>+0x75BC = 0x4C5B</div><div class='add'>+0x75BD = 0x3E52</div><div class='add'>+0x75BE = 0x3C32</div><div class='add'>+0x75C2 = 0x7068</div><div class='add'>+0x75C3 = 0x7067</div><div class='add'>+0x75C4 = 0x7064</div><div class='add'>+0x75C5 = 0x3221</div><div class='add'>+0x75C7 = 0x7921</div><div class='add'>+0x75CA = 0x482C</div><div class='add'>+0x75CD = 0x706A</div><div class='add'>+0x75D4 = 0x564C</div><div class='add'>+0x75D5 = 0x3A5B</div><div class='add'>+0x75D8 = 0x363B</div><div class='add'>+0x75D9 = 0x3E37</div><div class='add'>+0x75DB = 0x4D34</div><div class='add'>+0x75DE = 0x4626</div><div class='add'>+0x75E2 = 0x4121</div><div class='add'>+0x75E3 = 0x706B</div><div class='add'>+0x75E4 = 0x706E</div><div class='add'>+0x75E6 = 0x706D</div><div class='add'>+0x75E7 = 0x7070</div><div class='add'>+0x75F0 = 0x4C35</div><div class='add'>+0x75F1 = 0x7072</div><div class='add'>+0x75F4 = 0x3355</div><div class='add'>+0x75F9 = 0x3154</div><div class='add'>+0x75FC = 0x7073</div><div class='add'>+0x75FF = 0x7074</div><div class='add'>+0x7600 = 0x7076</div><div class='add'>+0x7601 = 0x3461</div><div class='add'>+0x7602 = 0x7069</div><div class='add'>+0x7603 = 0x7071</div><div class='add'>+0x760A = 0x707A</div><div class='add'>+0x760B = 0x3768</div><div class='add'>+0x760C = 0x7078</div><div class='add'>+0x760D = 0x5171</div><div class='add'>+0x7610 = 0x7075</div><div class='add'>+0x7613 = 0x3B3E</div><div class='add'>+0x7615 = 0x707D</div><div class='add'>+0x7619 = 0x707E</div><div class='add'>+0x761B = 0x7121</div><div class='add'>+0x761E = 0x7079</div><div class='add'>+0x761F = 0x4E41</div><div class='add'>+0x7620 = 0x7124</div><div class='add'>+0x7621 = 0x342F</div><div class='add'>+0x7622 = 0x7123</div><div class='add'>+0x7624 = 0x4176</div><div class='add'>+0x7625 = 0x707B</div><div class='add'>+0x7626 = 0x4A5D</div><div class='add'>+0x7627 = 0x4531</div><div class='add'>+0x7629 = 0x3471</div><div class='add'>+0x762D = 0x7126</div><div class='add'>+0x7630 = 0x7127</div><div class='add'>+0x7633 = 0x712C</div><div class='add'>+0x7634 = 0x554E</div><div class='add'>+0x7635 = 0x7129</div><div class='add'>+0x7638 = 0x4833</div><div class='add'>+0x763B = 0x707C</div><div class='add'>+0x763C = 0x7122</div><div class='add'>+0x7640 = 0x7125</div><div class='add'>+0x7642 = 0x4146</div><div class='add'>+0x7643 = 0x712A</div><div class='add'>+0x7646 = 0x706C</div><div class='add'>+0x7647 = 0x706F</div><div class='add'>+0x7649 = 0x7077</div><div class='add'>+0x764C = 0x3029</div><div class='add'>+0x764D = 0x712D</div><div class='add'>+0x7654 = 0x712F</div><div class='add'>+0x7656 = 0x7131</div><div class='add'>+0x7658 = 0x705D</div><div class='add'>+0x765C = 0x7130</div><div class='add'>+0x765F = 0x3171</div><div class='add'>+0x7662 = 0x5177</div><div class='add'>+0x7664 = 0x705C</div><div class='add'>+0x7665 = 0x5622</div><div class='add'>+0x7667 = 0x705F</div><div class='add'>+0x7669 = 0x712E</div><div class='add'>+0x766C = 0x5122</div><div class='add'>+0x766D = 0x7128</div><div class='add'>+0x766E = 0x712B</div><div class='add'>+0x766F = 0x7133</div><div class='add'>+0x7670 = 0x5338</div><div class='add'>+0x7671 = 0x4C31</div><div class='add'>+0x7672 = 0x7132</div><div class='add'>+0x7678 = 0x396F</div><div class='add'>+0x767B = 0x3547</div><div class='add'>+0x767C = 0x3722</div><div class='add'>+0x767D = 0x3057</div><div class='add'>+0x767E = 0x3059</div><div class='add'>+0x7682 = 0x546D</div><div class='add'>+0x7684 = 0x3544</div><div class='add'>+0x7686 = 0x3D54</div><div class='add'>+0x7687 = 0x3B4A</div><div class='add'>+0x7688 = 0x7027</div><div class='add'>+0x768B = 0x385E</div><div class='add'>+0x768E = 0x7028</div><div class='add'>+0x7693 = 0x7029</div><div class='add'>+0x7696 = 0x4D6E</div><div class='add'>+0x7699 = 0x702A</div><div class='add'>+0x769A = 0x3028</div><div class='add'>+0x76A4 = 0x702B</div><div class='add'>+0x76AE = 0x4624</div><div class='add'>+0x76B4 = 0x7165</div><div class='add'>+0x76B8 = 0x7164</div><div class='add'>+0x76BA = 0x5665</div><div class='add'>+0x76BF = 0x4373</div><div class='add'>+0x76C2 = 0x535B</div><div class='add'>+0x76C5 = 0x5651</div><div class='add'>+0x76C6 = 0x4568</div><div class='add'>+0x76C8 = 0x532F</div><div class='add'>+0x76CA = 0x5266</div><div class='add'>+0x76CD = 0x6E41</div><div class='add'>+0x76CE = 0x303B</div><div class='add'>+0x76D2 = 0x3A50</div><div class='add'>+0x76D4 = 0x3F78</div><div class='add'>+0x76D7 = 0x3541</div><div class='add'>+0x76DB = 0x4A22</div><div class='add'>+0x76DE = 0x5535</div><div class='add'>+0x76DF = 0x434B</div><div class='add'>+0x76E1 = 0x3E21</div><div class='add'>+0x76E3 = 0x3C60</div><div class='add'>+0x76E4 = 0x454C</div><div class='add'>+0x76E5 = 0x6E42</div><div class='add'>+0x76E7 = 0x422C</div><div class='add'>+0x76EE = 0x443F</div><div class='add'>+0x76EF = 0x3622</div><div class='add'>+0x76F1 = 0x6D6C</div><div class='add'>+0x76F2 = 0x4324</div><div class='add'>+0x76F4 = 0x5631</div><div class='add'>+0x76F8 = 0x4F60</div><div class='add'>+0x76F9 = 0x6D6F</div><div class='add'>+0x76FC = 0x454E</div><div class='add'>+0x76FE = 0x365C</div><div class='add'>+0x7701 = 0x4A21</div><div class='add'>+0x7704 = 0x6D6D</div><div class='add'>+0x7707 = 0x6D70</div><div class='add'>+0x7708 = 0x6D71</div><div class='add'>+0x7709 = 0x433C</div><div class='add'>+0x770B = 0x3F34</div><div class='add'>+0x7719 = 0x6D74</div><div class='add'>+0x771A = 0x6D72</div><div class='add'>+0x771F = 0x5566</div><div class='add'>+0x7720 = 0x435F</div><div class='add'>+0x7722 = 0x6D73</div><div class='add'>+0x7726 = 0x6D76</div><div class='add'>+0x7728 = 0x5523</div><div class='add'>+0x7729 = 0x5123</div><div class='add'>+0x772D = 0x6D75</div><div class='add'>+0x772F = 0x4350</div><div class='add'>+0x7735 = 0x6D77</div><div class='add'>+0x7736 = 0x3F74</div><div class='add'>+0x7737 = 0x3E6C</div><div class='add'>+0x7738 = 0x6D78</div><div class='add'>+0x773A = 0x4C77</div><div class='add'>+0x773C = 0x515B</div><div class='add'>+0x7740 = 0x5745</div><div class='add'>+0x7743 = 0x6D7C</div><div class='add'>+0x7747 = 0x6D7B</div><div class='add'>+0x774F = 0x784A</div><div class='add'>+0x775A = 0x6D7D</div><div class='add'>+0x775B = 0x3E26</div><div class='add'>+0x775C = 0x5576</div><div class='add'>+0x775E = 0x6D79</div><div class='add'>+0x7761 = 0x4B2F</div><div class='add'>+0x7762 = 0x6E21</div><div class='add'>+0x7763 = 0x363D</div><div class='add'>+0x7765 = 0x6E22</div><div class='add'>+0x7766 = 0x4440</div><div class='add'>+0x7768 = 0x6D7E</div><div class='add'>+0x776B = 0x3D5E</div><div class='add'>+0x776C = 0x3247</div><div class='add'>+0x7779 = 0x3643</div><div class='add'>+0x777D = 0x6E25</div><div class='add'>+0x777E = 0x583A</div><div class='add'>+0x777F = 0x6E23</div><div class='add'>+0x7780 = 0x6E26</div><div class='add'>+0x7784 = 0x4369</div><div class='add'>+0x7785 = 0x3372</div><div class='add'>+0x778C = 0x6E27</div><div class='add'>+0x778D = 0x6E24</div><div class='add'>+0x778E = 0x4F39</div><div class='add'>+0x7791 = 0x6E28</div><div class='add'>+0x7798 = 0x6D6E</div><div class='add'>+0x779E = 0x4277</div><div class='add'>+0x779F = 0x6E29</div><div class='add'>+0x77A0 = 0x6E2A</div><div class='add'>+0x77A2 = 0x5E2B</div><div class='add'>+0x77A5 = 0x4633</div><div class='add'>+0x77A7 = 0x4746</div><div class='add'>+0x77AA = 0x3549</div><div class='add'>+0x77AC = 0x4B32</div><div class='add'>+0x77AD = 0x7851</div><div class='add'>+0x77B0 = 0x6E2B</div><div class='add'>+0x77B3 = 0x4D2B</div><div class='add'>+0x77B5 = 0x6E2C</div><div class='add'>+0x77BB = 0x5530</div><div class='add'>+0x77BC = 0x6D7A</div><div class='add'>+0x77BD = 0x6E2D</div><div class='add'>+0x77BF = 0x7644</div><div class='add'>+0x77C7 = 0x7857</div><div class='add'>+0x77CD = 0x5B47</div><div class='add'>+0x77D7 = 0x3423</div><div class='add'>+0x77DA = 0x5675</div><div class='add'>+0x77DB = 0x432C</div><div class='add'>+0x77DC = 0x7166</div><div class='add'>+0x77E2 = 0x4A38</div><div class='add'>+0x77E3 = 0x5253</div><div class='add'>+0x77E5 = 0x562A</div><div class='add'>+0x77E7 = 0x6F72</div><div class='add'>+0x77E9 = 0x3E58</div><div class='add'>+0x77EC = 0x6F73</div><div class='add'>+0x77ED = 0x364C</div><div class='add'>+0x77EE = 0x302B</div><div class='add'>+0x77EF = 0x3D43</div><div class='add'>+0x77F3 = 0x4A2F</div><div class='add'>+0x77F8 = 0x6D37</div><div class='add'>+0x77FD = 0x4E79</div><div class='add'>+0x7802 = 0x4930</div><div class='add'>+0x7809 = 0x6D39</div><div class='add'>+0x780C = 0x4676</div><div class='add'>+0x780D = 0x3F33</div><div class='add'>+0x7811 = 0x6D3C</div><div class='add'>+0x7812 = 0x4578</div><div class='add'>+0x7814 = 0x5150</div><div class='add'>+0x7818 = 0x6D3B</div><div class='add'>+0x781D = 0x6D40</div><div class='add'>+0x781F = 0x6D44</div><div class='add'>+0x7823 = 0x6D48</div><div class='add'>+0x7825 = 0x6D46</div><div class='add'>+0x7826 = 0x6D4E</div><div class='add'>+0x7827 = 0x5568</div><div class='add'>+0x7829 = 0x6D49</div><div class='add'>+0x782C = 0x6D47</div><div class='add'>+0x782D = 0x6D3E</div><div class='add'>+0x7830 = 0x4569</div><div class='add'>+0x7834 = 0x4646</div><div class='add'>+0x7837 = 0x4969</div><div class='add'>+0x7838 = 0x5452</div><div class='add'>+0x7839 = 0x6D41</div><div class='add'>+0x783C = 0x6D45</div><div class='add'>+0x7843 = 0x7927</div><div class='add'>+0x7845 = 0x3968</div><div class='add'>+0x7847 = 0x6D50</div><div class='add'>+0x784C = 0x6D51</div><div class='add'>+0x784E = 0x6D4A</div><div class='add'>+0x7850 = 0x6D4F</div><div class='add'>+0x7852 = 0x4E78</div><div class='add'>+0x785D = 0x4F75</div><div class='add'>+0x7864 = 0x6D4C</div><div class='add'>+0x7868 = 0x6D3A</div><div class='add'>+0x786A = 0x6D52</div><div class='add'>+0x786B = 0x4172</div><div class='add'>+0x786C = 0x5332</div><div class='add'>+0x786D = 0x6D4B</div><div class='add'>+0x786E = 0x7866</div><div class='add'>+0x786F = 0x5162</div><div class='add'>+0x787C = 0x4570</div><div class='add'>+0x7887 = 0x6D56</div><div class='add'>+0x7889 = 0x356F</div><div class='add'>+0x788C = 0x4235</div><div class='add'>+0x788E = 0x4B69</div><div class='add'>+0x7891 = 0x312E</div><div class='add'>+0x7893 = 0x6D54</div><div class='add'>+0x7897 = 0x4D6B</div><div class='add'>+0x7898 = 0x3562</div><div class='add'>+0x789A = 0x6D55</div><div class='add'>+0x789F = 0x357A</div><div class='add'>+0x78A1 = 0x6D58</div><div class='add'>+0x78A3 = 0x6D59</div><div class='add'>+0x78A5 = 0x6D5C</div><div class='add'>+0x78A7 = 0x314C</div><div class='add'>+0x78A9 = 0x4B36</div><div class='add'>+0x78AD = 0x6D38</div><div class='add'>+0x78B0 = 0x4576</div><div class='add'>+0x78B1 = 0x3C6E</div><div class='add'>+0x78B2 = 0x6D5A</div><div class='add'>+0x78B3 = 0x4C3C</div><div class='add'>+0x78B4 = 0x326A</div><div class='add'>+0x78B8 = 0x6D3F</div><div class='add'>+0x78B9 = 0x6D5B</div><div class='add'>+0x78BA = 0x4837</div><div class='add'>+0x78BC = 0x426B</div><div class='add'>+0x78BE = 0x446B</div><div class='add'>+0x78C1 = 0x3445</div><div class='add'>+0x78C5 = 0x3075</div><div class='add'>+0x78C9 = 0x6D5F</div><div class='add'>+0x78CA = 0x405A</div><div class='add'>+0x78CB = 0x3468</div><div class='add'>+0x78D0 = 0x454D</div><div class='add'>+0x78D4 = 0x6D5D</div><div class='add'>+0x78D5 = 0x3F44</div><div class='add'>+0x78D9 = 0x6D5E</div><div class='add'>+0x78DA = 0x5729</div><div class='add'>+0x78E3 = 0x6D57</div><div class='add'>+0x78E7 = 0x6D53</div><div class='add'>+0x78E8 = 0x4425</div><div class='add'>+0x78EC = 0x6D60</div><div class='add'>+0x78EF = 0x6D36</div><div class='add'>+0x78F2 = 0x6D61</div><div class='add'>+0x78F4 = 0x6D63</div><div class='add'>+0x78F7 = 0x4157</div><div class='add'>+0x78FA = 0x3B47</div><div class='add'>+0x78FD = 0x6D4D</div><div class='add'>+0x7901 = 0x3D38</div><div class='add'>+0x7905 = 0x6D62</div><div class='add'>+0x790E = 0x3421</div><div class='add'>+0x7913 = 0x6D64</div><div class='add'>+0x7919 = 0x302D</div><div class='add'>+0x791E = 0x6D66</div><div class='add'>+0x7924 = 0x6D65</div><div class='add'>+0x7926 = 0x3F73</div><div class='add'>+0x792A = 0x6D42</div><div class='add'>+0x792B = 0x4079</div><div class='add'>+0x792C = 0x372F</div><div class='add'>+0x7931 = 0x6D43</div><div class='add'>+0x7934 = 0x6D67</div><div class='add'>+0x793A = 0x4A3E</div><div class='add'>+0x793B = 0x6C6A</div><div class='add'>+0x793E = 0x4967</div><div class='add'>+0x7940 = 0x6C6B</div><div class='add'>+0x7941 = 0x466E</div><div class='add'>+0x7946 = 0x6C6C</div><div class='add'>+0x7948 = 0x466D</div><div class='add'>+0x7949 = 0x6C6D</div><div class='add'>+0x7953 = 0x6C70</div><div class='add'>+0x7956 = 0x5766</div><div class='add'>+0x7957 = 0x6C73</div><div class='add'>+0x795A = 0x6C71</div><div class='add'>+0x795B = 0x6C6E</div><div class='add'>+0x795C = 0x6C6F</div><div class='add'>+0x795D = 0x5723</div><div class='add'>+0x795E = 0x4971</div><div class='add'>+0x795F = 0x4B6E</div><div class='add'>+0x7960 = 0x6C74</div><div class='add'>+0x7965 = 0x4F69</div><div class='add'>+0x7967 = 0x6C76</div><div class='add'>+0x7968 = 0x4631</div><div class='add'>+0x796D = 0x3C40</div><div class='add'>+0x797A = 0x6C77</div><div class='add'>+0x7980 = 0x5977</div><div class='add'>+0x7981 = 0x3D7B</div><div class='add'>+0x7984 = 0x423B</div><div class='add'>+0x798A = 0x6C79</div><div class='add'>+0x798D = 0x3B76</div><div class='add'>+0x798E = 0x6C75</div><div class='add'>+0x798F = 0x3823</div><div class='add'>+0x799A = 0x6C7A</div><div class='add'>+0x79A6 = 0x787A</div><div class='add'>+0x79A7 = 0x6C7B</div><div class='add'>+0x79AA = 0x6C78</div><div class='add'>+0x79AE = 0x4071</div><div class='add'>+0x79B0 = 0x6C72</div><div class='add'>+0x79B1 = 0x353B</div><div class='add'>+0x79B3 = 0x6C7C</div><div class='add'>+0x79B9 = 0x536D</div><div class='add'>+0x79BA = 0x582E</div><div class='add'>+0x79BD = 0x475D</div><div class='add'>+0x79BE = 0x3A4C</div><div class='add'>+0x79C0 = 0x5063</div><div class='add'>+0x79C1 = 0x4B3D</div><div class='add'>+0x79C3 = 0x4D3A</div><div class='add'>+0x79C6 = 0x3851</div><div class='add'>+0x79C9 = 0x317C</div><div class='add'>+0x79CB = 0x476F</div><div class='add'>+0x79CD = 0x7926</div><div class='add'>+0x79D1 = 0x3F46</div><div class='add'>+0x79D2 = 0x436B</div><div class='add'>+0x79D5 = 0x6F75</div><div class='add'>+0x79D8 = 0x4358</div><div class='add'>+0x79DF = 0x5762</div><div class='add'>+0x79E3 = 0x6F77</div><div class='add'>+0x79E4 = 0x3353</div><div class='add'>+0x79E6 = 0x4758</div><div class='add'>+0x79E7 = 0x516D</div><div class='add'>+0x79E9 = 0x5648</div><div class='add'>+0x79EB = 0x6F78</div><div class='add'>+0x79ED = 0x6F76</div><div class='add'>+0x79F8 = 0x3D55</div><div class='add'>+0x79FB = 0x5246</div><div class='add'>+0x7A00 = 0x4F21</div><div class='add'>+0x7A02 = 0x6F7C</div><div class='add'>+0x7A03 = 0x6F7B</div><div class='add'>+0x7A06 = 0x6F79</div><div class='add'>+0x7A0B = 0x334C</div><div class='add'>+0x7A0D = 0x4954</div><div class='add'>+0x7A0E = 0x4B30</div><div class='add'>+0x7A14 = 0x6F7E</div><div class='add'>+0x7A17 = 0x305E</div><div class='add'>+0x7A1A = 0x5649</div><div class='add'>+0x7A1E = 0x6F7D</div><div class='add'>+0x7A20 = 0x336D</div><div class='add'>+0x7A2E = 0x5656</div><div class='add'>+0x7A31 = 0x3346</div><div class='add'>+0x7A37 = 0x7022</div><div class='add'>+0x7A39 = 0x7021</div><div class='add'>+0x7A3B = 0x353E</div><div class='add'>+0x7A3C = 0x3C5A</div><div class='add'>+0x7A3D = 0x3B7C</div><div class='add'>+0x7A3F = 0x3865</div><div class='add'>+0x7A40 = 0x7836</div><div class='add'>+0x7A46 = 0x4442</div><div class='add'>+0x7A4C = 0x7655</div><div class='add'>+0x7A4D = 0x3B7D</div><div class='add'>+0x7A4E = 0x5331</div><div class='add'>+0x7A57 = 0x4B6B</div><div class='add'>+0x7A61 = 0x7023</div><div class='add'>+0x7A62 = 0x3B60</div><div class='add'>+0x7A69 = 0x4E48</div><div class='add'>+0x7A6B = 0x783E</div><div class='add'>+0x7A70 = 0x7026</div><div class='add'>+0x7A74 = 0x5128</div><div class='add'>+0x7A76 = 0x3E3F</div><div class='add'>+0x7A78 = 0x7136</div><div class='add'>+0x7A79 = 0x7137</div><div class='add'>+0x7A7A = 0x3F55</div><div class='add'>+0x7A7F = 0x3429</div><div class='add'>+0x7A80 = 0x7138</div><div class='add'>+0x7A81 = 0x4D3B</div><div class='add'>+0x7A84 = 0x552D</div><div class='add'>+0x7A86 = 0x7139</div><div class='add'>+0x7A88 = 0x713A</div><div class='add'>+0x7A91 = 0x5224</div><div class='add'>+0x7A92 = 0x564F</div><div class='add'>+0x7A95 = 0x713B</div><div class='add'>+0x7A96 = 0x3D51</div><div class='add'>+0x7A97 = 0x3430</div><div class='add'>+0x7A98 = 0x3E3D</div><div class='add'>+0x7A9F = 0x3F5F</div><div class='add'>+0x7AA0 = 0x713D</div><div class='add'>+0x7AA8 = 0x713F</div><div class='add'>+0x7AA9 = 0x4E51</div><div class='add'>+0x7AAA = 0x4D5D</div><div class='add'>+0x7AAC = 0x713E</div><div class='add'>+0x7AAE = 0x476E</div><div class='add'>+0x7AB3 = 0x7141</div><div class='add'>+0x7AB6 = 0x7140</div><div class='add'>+0x7ABA = 0x3F7A</div><div class='add'>+0x7ABF = 0x417E</div><div class='add'>+0x7AC4 = 0x345C</div><div class='add'>+0x7AC5 = 0x474F</div><div class='add'>+0x7AC7 = 0x713C</div><div class='add'>+0x7AC8 = 0x546E</div><div class='add'>+0x7ACA = 0x4754</div><div class='add'>+0x7ACB = 0x4122</div><div class='add'>+0x7AD9 = 0x553E</div><div class='add'>+0x7ADF = 0x3E39</div><div class='add'>+0x7AE0 = 0x5542</div><div class='add'>+0x7AE3 = 0x3F22</div><div class='add'>+0x7AE5 = 0x4D2F</div><div class='add'>+0x7AE6 = 0x7135</div><div class='add'>+0x7AEA = 0x4A7A</div><div class='add'>+0x7AED = 0x3D5F</div><div class='add'>+0x7AEF = 0x364B</div><div class='add'>+0x7AF6 = 0x3E3A</div><div class='add'>+0x7AF9 = 0x5671</div><div class='add'>+0x7AFA = 0x7343</div><div class='add'>+0x7AFD = 0x7344</div><div class='add'>+0x7AFF = 0x384D</div><div class='add'>+0x7B04 = 0x7347</div><div class='add'>+0x7B06 = 0x304A</div><div class='add'>+0x7B08 = 0x7345</div><div class='add'>+0x7B0A = 0x7349</div><div class='add'>+0x7B0B = 0x4B71</div><div class='add'>+0x7B0F = 0x734B</div><div class='add'>+0x7B11 = 0x5026</div><div class='add'>+0x7B19 = 0x734F</div><div class='add'>+0x7B1B = 0x3551</div><div class='add'>+0x7B1E = 0x7357</div><div class='add'>+0x7B20 = 0x7352</div><div class='add'>+0x7B24 = 0x7354</div><div class='add'>+0x7B25 = 0x7353</div><div class='add'>+0x7B26 = 0x377B</div><div class='add'>+0x7B28 = 0x313F</div><div class='add'>+0x7B2A = 0x734E</div><div class='add'>+0x7B2B = 0x734A</div><div class='add'>+0x7B2C = 0x355A</div><div class='add'>+0x7B2E = 0x7350</div><div class='add'>+0x7B31 = 0x7351</div><div class='add'>+0x7B33 = 0x7355</div><div class='add'>+0x7B38 = 0x734D</div><div class='add'>+0x7B45 = 0x735A</div><div class='add'>+0x7B46 = 0x314A</div><div class='add'>+0x7B47 = 0x734C</div><div class='add'>+0x7B49 = 0x3548</div><div class='add'>+0x7B4B = 0x3D6E</div><div class='add'>+0x7B4C = 0x735C</div><div class='add'>+0x7B4F = 0x3724</div><div class='add'>+0x7B50 = 0x3F70</div><div class='add'>+0x7B51 = 0x7928</div><div class='add'>+0x7B52 = 0x4D32</div><div class='add'>+0x7B54 = 0x3470</div><div class='add'>+0x7B56 = 0x325F</div><div class='add'>+0x7B58 = 0x7358</div><div class='add'>+0x7B60 = 0x735E</div><div class='add'>+0x7B62 = 0x7361</div><div class='add'>+0x7B67 = 0x7348</div><div class='add'>+0x7B6E = 0x735F</div><div class='add'>+0x7B71 = 0x7363</div><div class='add'>+0x7B72 = 0x7362</div><div class='add'>+0x7B75 = 0x735B</div><div class='add'>+0x7B77 = 0x3F6A</div><div class='add'>+0x7B7B = 0x7360</div><div class='add'>+0x7B85 = 0x736B</div><div class='add'>+0x7B8B = 0x3C63</div><div class='add'>+0x7B8D = 0x393F</div><div class='add'>+0x7B8F = 0x735D</div><div class='add'>+0x7B90 = 0x7364</div><div class='add'>+0x7B94 = 0x322D</div><div class='add'>+0x7B95 = 0x3B7E</div><div class='add'>+0x7B97 = 0x4B63</div><div class='add'>+0x7B9C = 0x736D</div><div class='add'>+0x7B9D = 0x7369</div><div class='add'>+0x7BA1 = 0x395C</div><div class='add'>+0x7BA2 = 0x736E</div><div class='add'>+0x7BAC = 0x7368</div><div class='add'>+0x7BAD = 0x3C7D</div><div class='add'>+0x7BB1 = 0x4F64</div><div class='add'>+0x7BB4 = 0x7370</div><div class='add'>+0x7BB8 = 0x7367</div><div class='add'>+0x7BC0 = 0x3D5A</div><div class='add'>+0x7BC1 = 0x7372</div><div class='add'>+0x7BC4 = 0x3736</div><div class='add'>+0x7BC6 = 0x572D</div><div class='add'>+0x7BC7 = 0x462A</div><div class='add'>+0x7BC9 = 0x567E</div><div class='add'>+0x7BCB = 0x7366</div><div class='add'>+0x7BCC = 0x7373</div><div class='add'>+0x7BD9 = 0x385D</div><div class='add'>+0x7BDA = 0x7375</div><div class='add'>+0x7BDD = 0x7374</div><div class='add'>+0x7BE1 = 0x345B</div><div class='add'>+0x7BE4 = 0x7346</div><div class='add'>+0x7BE5 = 0x7376</div><div class='add'>+0x7BE6 = 0x7377</div><div class='add'>+0x7BE9 = 0x4938</div><div class='add'>+0x7BEA = 0x7378</div><div class='add'>+0x7BF3 = 0x7359</div><div class='add'>+0x7BF7 = 0x4571</div><div class='add'>+0x7BFC = 0x737B</div><div class='add'>+0x7BFE = 0x737A</div><div class='add'>+0x7C00 = 0x7365</div><div class='add'>+0x7C07 = 0x3458</div><div class='add'>+0x7C0B = 0x737E</div><div class='add'>+0x7C0C = 0x7379</div><div class='add'>+0x7C0D = 0x4228</div><div class='add'>+0x7C0F = 0x737C</div><div class='add'>+0x7C1E = 0x736C</div><div class='add'>+0x7C1F = 0x7421</div><div class='add'>+0x7C21 = 0x3C72</div><div class='add'>+0x7C23 = 0x7371</div><div class='add'>+0x7C26 = 0x7423</div><div class='add'>+0x7C27 = 0x3B49</div><div class='add'>+0x7C2A = 0x7422</div><div class='add'>+0x7C2B = 0x736F</div><div class='add'>+0x7C38 = 0x7424</div><div class='add'>+0x7C3D = 0x4729</div><div class='add'>+0x7C3E = 0x4131</div><div class='add'>+0x7C3F = 0x323E</div><div class='add'>+0x7C40 = 0x7426</div><div class='add'>+0x7C43 = 0x403A</div><div class='add'>+0x7C4C = 0x336F</div><div class='add'>+0x7C4D = 0x3C2E</div><div class='add'>+0x7C5C = 0x736A</div><div class='add'>+0x7C5F = 0x7425</div><div class='add'>+0x7C60 = 0x417D</div><div class='add'>+0x7C64 = 0x7862</div><div class='add'>+0x7C69 = 0x7356</div><div class='add'>+0x7C6A = 0x737D</div><div class='add'>+0x7C6C = 0x4069</div><div class='add'>+0x7C6E = 0x4261</div><div class='add'>+0x7C72 = 0x787B</div><div class='add'>+0x7C73 = 0x4357</div><div class='add'>+0x7C7C = 0x744C</div><div class='add'>+0x7C7D = 0x5751</div><div class='add'>+0x7C89 = 0x375B</div><div class='add'>+0x7C91 = 0x744E</div><div class='add'>+0x7C92 = 0x4123</div><div class='add'>+0x7C95 = 0x4649</div><div class='add'>+0x7C97 = 0x3456</div><div class='add'>+0x7C98 = 0x5533</div><div class='add'>+0x7C9E = 0x7451</div><div class='add'>+0x7C9F = 0x4B5A</div><div class='add'>+0x7CA2 = 0x7452</div><div class='add'>+0x7CA4 = 0x5441</div><div class='add'>+0x7CA5 = 0x5660</div><div class='add'>+0x7CB1 = 0x413B</div><div class='add'>+0x7CB2 = 0x7453</div><div class='add'>+0x7CB3 = 0x3E2C</div><div class='add'>+0x7CB9 = 0x3462</div><div class='add'>+0x7CBC = 0x7454</div><div class='add'>+0x7CBD = 0x7455</div><div class='add'>+0x7CBE = 0x3E2B</div><div class='add'>+0x7CC5 = 0x745B</div><div class='add'>+0x7CC7 = 0x7457</div><div class='add'>+0x7CC8 = 0x745A</div><div class='add'>+0x7CCA = 0x3A7D</div><div class='add'>+0x7CCC = 0x7458</div><div class='add'>+0x7CCD = 0x7459</div><div class='add'>+0x7CD5 = 0x3862</div><div class='add'>+0x7CD6 = 0x4C47</div><div class='add'>+0x7CD7 = 0x745C</div><div class='add'>+0x7CD9 = 0x325A</div><div class='add'>+0x7CDC = 0x4353</div><div class='add'>+0x7CDD = 0x7456</div><div class='add'>+0x7CDE = 0x3760</div><div class='add'>+0x7CDF = 0x5463</div><div class='add'>+0x7CE0 = 0x3F37</div><div class='add'>+0x7CE7 = 0x4138</div><div class='add'>+0x7CE8 = 0x745D</div><div class='add'>+0x7CEF = 0x4534</div><div class='add'>+0x7CF0 = 0x7870</div><div class='add'>+0x7CF2 = 0x744F</div><div class='add'>+0x7CF4 = 0x5961</div><div class='add'>+0x7CF6 = 0x7450</div><div class='add'>+0x7CF8 = 0x7469</div><div class='add'>+0x7CF9 = 0x6679</div><div class='add'>+0x7CFB = 0x4F35</div><div class='add'>+0x7CFE = 0x3E40</div><div class='add'>+0x7D00 = 0x3C4D</div><div class='add'>+0x7D02 = 0x667B</div><div class='add'>+0x7D04 = 0x543C</div><div class='add'>+0x7D05 = 0x3A6C</div><div class='add'>+0x7D06 = 0x667A</div><div class='add'>+0x7D07 = 0x667C</div><div class='add'>+0x7D08 = 0x667D</div><div class='add'>+0x7D09 = 0x4852</div><div class='add'>+0x7D0A = 0x4E49</div><div class='add'>+0x7D0B = 0x4E46</div><div class='add'>+0x7D0D = 0x4449</div><div class='add'>+0x7D10 = 0x4526</div><div class='add'>+0x7D13 = 0x6723</div><div class='add'>+0x7D14 = 0x343F</div><div class='add'>+0x7D15 = 0x6722</div><div class='add'>+0x7D17 = 0x4934</div><div class='add'>+0x7D19 = 0x563D</div><div class='add'>+0x7D1A = 0x3C36</div><div class='add'>+0x7D1B = 0x3757</div><div class='add'>+0x7D1C = 0x6721</div><div class='add'>+0x7D20 = 0x4B58</div><div class='add'>+0x7D21 = 0x3744</div><div class='add'>+0x7D22 = 0x4B77</div><div class='add'>+0x7D2B = 0x574F</div><div class='add'>+0x7D2F = 0x405B</div><div class='add'>+0x7D30 = 0x4F38</div><div class='add'>+0x7D31 = 0x6726</div><div class='add'>+0x7D32 = 0x6725</div><div class='add'>+0x7D33 = 0x4970</div><div class='add'>+0x7D39 = 0x495C</div><div class='add'>+0x7D3A = 0x6724</div><div class='add'>+0x7D3C = 0x6728</div><div class='add'>+0x7D3F = 0x672A</div><div class='add'>+0x7D40 = 0x6729</div><div class='add'>+0x7D42 = 0x5655</div><div class='add'>+0x7D44 = 0x5769</div><div class='add'>+0x7D46 = 0x306D</div><div class='add'>+0x7D4E = 0x672C</div><div class='add'>+0x7D50 = 0x3D61</div><div class='add'>+0x7D5D = 0x672B</div><div class='add'>+0x7D5E = 0x3D4A</div><div class='add'>+0x7D61 = 0x4267</div><div class='add'>+0x7D62 = 0x5124</div><div class='add'>+0x7D66 = 0x3878</div><div class='add'>+0x7D68 = 0x485E</div><div class='add'>+0x7D6E = 0x5075</div><div class='add'>+0x7D71 = 0x4D33</div><div class='add'>+0x7D72 = 0x4B3F</div><div class='add'>+0x7D73 = 0x672D</div><div class='add'>+0x7D76 = 0x3E78</div><div class='add'>+0x7D79 = 0x3E6E</div><div class='add'>+0x7D81 = 0x3073</div><div class='add'>+0x7D83 = 0x672F</div><div class='add'>+0x7D86 = 0x672E</div><div class='add'>+0x7D88 = 0x6730</div><div class='add'>+0x7D89 = 0x5065</div><div class='add'>+0x7D8F = 0x4B67</div><div class='add'>+0x7D93 = 0x3E2D</div><div class='add'>+0x7D9C = 0x575B</div><div class='add'>+0x7D9E = 0x6736</div><div class='add'>+0x7DA2 = 0x3371</div><div class='add'>+0x7DA3 = 0x6739</div><div class='add'>+0x7DA6 = 0x746B</div><div class='add'>+0x7DAB = 0x4F5F</div><div class='add'>+0x7DAC = 0x6737</div><div class='add'>+0x7DAD = 0x4E2C</div><div class='add'>+0x7DAE = 0x746C</div><div class='add'>+0x7DB0 = 0x673A</div><div class='add'>+0x7DB1 = 0x3859</div><div class='add'>+0x7DB2 = 0x4D78</div><div class='add'>+0x7DB3 = 0x3141</div><div class='add'>+0x7DB4 = 0x573A</div><div class='add'>+0x7DB8 = 0x425A</div><div class='add'>+0x7DB9 = 0x6738</div><div class='add'>+0x7DBA = 0x6732</div><div class='add'>+0x7DBB = 0x5540</div><div class='add'>+0x7DBD = 0x3442</div><div class='add'>+0x7DBE = 0x6731</div><div class='add'>+0x7DBF = 0x4360</div><div class='add'>+0x7DC4 = 0x6735</div><div class='add'>+0x7DC7 = 0x673B</div><div class='add'>+0x7DCA = 0x3D74</div><div class='add'>+0x7DCB = 0x6733</div><div class='add'>+0x7DD1 = 0x424C</div><div class='add'>+0x7DD2 = 0x5077</div><div class='add'>+0x7DD4 = 0x6734</div><div class='add'>+0x7DD7 = 0x673D</div><div class='add'>+0x7DD8 = 0x3C6A</div><div class='add'>+0x7DD9 = 0x673C</div><div class='add'>+0x7DDD = 0x3C29</div><div class='add'>+0x7DDE = 0x3650</div><div class='add'>+0x7DE0 = 0x355E</div><div class='add'>+0x7DE1 = 0x6745</div><div class='add'>+0x7DE3 = 0x5435</div><div class='add'>+0x7DE6 = 0x6741</div><div class='add'>+0x7DE8 = 0x3160</div><div class='add'>+0x7DE9 = 0x3B3A</div><div class='add'>+0x7DEC = 0x4365</div><div class='add'>+0x7DEF = 0x4E33</div><div class='add'>+0x7DF1 = 0x6743</div><div class='add'>+0x7DF2 = 0x673F</div><div class='add'>+0x7DF4 = 0x4137</div><div class='add'>+0x7DF6 = 0x6742</div><div class='add'>+0x7DF9 = 0x673E</div><div class='add'>+0x7DFB = 0x7924</div><div class='add'>+0x7E08 = 0x5D53</div><div class='add'>+0x7E09 = 0x6746</div><div class='add'>+0x7E0A = 0x674B</div><div class='add'>+0x7E0B = 0x6744</div><div class='add'>+0x7E10 = 0x6727</div><div class='add'>+0x7E11 = 0x674C</div><div class='add'>+0x7E1B = 0x383F</div><div class='add'>+0x7E1D = 0x6747</div><div class='add'>+0x7E1E = 0x6749</div><div class='add'>+0x7E1F = 0x6748</div><div class='add'>+0x7E23 = 0x4F58</div><div class='add'>+0x7E27 = 0x4C50</div><div class='add'>+0x7E2B = 0x376C</div><div class='add'>+0x7E2D = 0x674A</div><div class='add'>+0x7E2E = 0x4B75</div><div class='add'>+0x7E31 = 0x575D</div><div class='add'>+0x7E32 = 0x6750</div><div class='add'>+0x7E34 = 0x7863</div><div class='add'>+0x7E35 = 0x674F</div><div class='add'>+0x7E36 = 0x746A</div><div class='add'>+0x7E37 = 0x4246</div><div class='add'>+0x7E39 = 0x674E</div><div class='add'>+0x7E3B = 0x7763</div><div class='add'>+0x7E3D = 0x575C</div><div class='add'>+0x7E3E = 0x3C28</div><div class='add'>+0x7E41 = 0x3731</div><div class='add'>+0x7E45 = 0x6752</div><div class='add'>+0x7E46 = 0x6751</div><div class='add'>+0x7E47 = 0x746D</div><div class='add'>+0x7E52 = 0x6755</div><div class='add'>+0x7E54 = 0x562F</div><div class='add'>+0x7E55 = 0x4949</div><div class='add'>+0x7E5A = 0x6754</div><div class='add'>+0x7E5E = 0x4846</div><div class='add'>+0x7E62 = 0x6740</div><div class='add'>+0x7E69 = 0x497E</div><div class='add'>+0x7E6A = 0x3B66</div><div class='add'>+0x7E6B = 0x7873</div><div class='add'>+0x7E6D = 0x3C6B</div><div class='add'>+0x7E6E = 0x6756</div><div class='add'>+0x7E6F = 0x6759</div><div class='add'>+0x7E70 = 0x6758</div><div class='add'>+0x7E73 = 0x3D49</div><div class='add'>+0x7E79 = 0x526F</div><div class='add'>+0x7E7C = 0x3C4C</div><div class='add'>+0x7E7D = 0x674D</div><div class='add'>+0x7E7E = 0x6757</div><div class='add'>+0x7E82 = 0x576B</div><div class='add'>+0x7E88 = 0x6753</div><div class='add'>+0x7E8A = 0x667E</div><div class='add'>+0x7E8C = 0x5078</div><div class='add'>+0x7E8D = 0x784D</div><div class='add'>+0x7E8F = 0x3278</div><div class='add'>+0x7E93 = 0x5327</div><div class='add'>+0x7E94 = 0x7826</div><div class='add'>+0x7E96 = 0x4F4B</div><div class='add'>+0x7E98 = 0x675A</div><div class='add'>+0x7E9B = 0x746E</div><div class='add'>+0x7E9C = 0x4042</div><div class='add'>+0x7F36 = 0x733E</div><div class='add'>+0x7F38 = 0x3857</div><div class='add'>+0x7F3A = 0x4831</div><div class='add'>+0x7F44 = 0x7340</div><div class='add'>+0x7F45 = 0x7341</div><div class='add'>+0x7F4C = 0x733F</div><div class='add'>+0x7F4E = 0x786E</div><div class='add'>+0x7F50 = 0x395E</div><div class='add'>+0x7F54 = 0x5868</div><div class='add'>+0x7F55 = 0x3A31</div><div class='add'>+0x7F58 = 0x6E37</div><div class='add'>+0x7F5F = 0x6E39</div><div class='add'>+0x7F61 = 0x6E38</div><div class='add'>+0x7F68 = 0x6E3B</div><div class='add'>+0x7F69 = 0x5556</div><div class='add'>+0x7F6A = 0x576F</div><div class='add'>+0x7F6E = 0x5643</div><div class='add'>+0x7F70 = 0x3723</div><div class='add'>+0x7F71 = 0x6E3D</div><div class='add'>+0x7F72 = 0x4A70</div><div class='add'>+0x7F77 = 0x3055</div><div class='add'>+0x7F79 = 0x6E3E</div><div class='add'>+0x7F7E = 0x6E40</div><div class='add'>+0x7F85 = 0x425E</div><div class='add'>+0x7F86 = 0x6E3C</div><div class='add'>+0x7F88 = 0x6E3F</div><div class='add'>+0x7F8A = 0x5172</div><div class='add'>+0x7F8C = 0x473C</div><div class='add'>+0x7F8E = 0x4340</div><div class='add'>+0x7F94 = 0x3861</div><div class='add'>+0x7F9A = 0x4167</div><div class='add'>+0x7F9D = 0x7446</div><div class='add'>+0x7F9E = 0x505F</div><div class='add'>+0x7FA1 = 0x4F5B</div><div class='add'>+0x7FA4 = 0x483A</div><div class='add'>+0x7FA5 = 0x7447</div><div class='add'>+0x7FA7 = 0x7448</div><div class='add'>+0x7FA9 = 0x5265</div><div class='add'>+0x7FAF = 0x7449</div><div class='add'>+0x7FB0 = 0x744A</div><div class='add'>+0x7FB2 = 0x744B</div><div class='add'>+0x7FB8 = 0x597A</div><div class='add'>+0x7FB9 = 0x387E</div><div class='add'>+0x7FBC = 0x6571</div><div class='add'>+0x7FBD = 0x5370</div><div class='add'>+0x7FBF = 0x7460</div><div class='add'>+0x7FC1 = 0x4E4C</div><div class='add'>+0x7FC5 = 0x3361</div><div class='add'>+0x7FCA = 0x7134</div><div class='add'>+0x7FCC = 0x526E</div><div class='add'>+0x7FCE = 0x7461</div><div class='add'>+0x7FD2 = 0x4F30</div><div class='add'>+0x7FD4 = 0x4F68</div><div class='add'>+0x7FD5 = 0x7462</div><div class='add'>+0x7FDF = 0x3554</div><div class='add'>+0x7FE0 = 0x3464</div><div class='add'>+0x7FE1 = 0x7464</div><div class='add'>+0x7FE5 = 0x7463</div><div class='add'>+0x7FE6 = 0x7465</div><div class='add'>+0x7FE9 = 0x7466</div><div class='add'>+0x7FEE = 0x7467</div><div class='add'>+0x7FF0 = 0x3A32</div><div class='add'>+0x7FF1 = 0x303F</div><div class='add'>+0x7FF3 = 0x7468</div><div class='add'>+0x7FF9 = 0x474C</div><div class='add'>+0x7FFB = 0x372D</div><div class='add'>+0x7FFC = 0x526D</div><div class='add'>+0x8000 = 0x522B</div><div class='add'>+0x8001 = 0x404F</div><div class='add'>+0x8003 = 0x3F3C</div><div class='add'>+0x8004 = 0x6B23</div><div class='add'>+0x8005 = 0x555F</div><div class='add'>+0x8006 = 0x6A48</div><div class='add'>+0x800B = 0x7173</div><div class='add'>+0x800C = 0x3678</div><div class='add'>+0x800D = 0x4B23</div><div class='add'>+0x8010 = 0x444D</div><div class='add'>+0x8012 = 0x7167</div><div class='add'>+0x8014 = 0x7168</div><div class='add'>+0x8015 = 0x387B</div><div class='add'>+0x8016 = 0x7169</div><div class='add'>+0x8017 = 0x3A44</div><div class='add'>+0x8018 = 0x5445</div><div class='add'>+0x8019 = 0x3052</div><div class='add'>+0x801C = 0x716A</div><div class='add'>+0x8020 = 0x716B</div><div class='add'>+0x8025 = 0x716D</div><div class='add'>+0x8026 = 0x716E</div><div class='add'>+0x8028 = 0x7171</div><div class='add'>+0x8029 = 0x7170</div><div class='add'>+0x802A = 0x4555</div><div class='add'>+0x802C = 0x716F</div><div class='add'>+0x802E = 0x716C</div><div class='add'>+0x8031 = 0x7172</div><div class='add'>+0x8033 = 0x367A</div><div class='add'>+0x8035 = 0x7174</div><div class='add'>+0x8036 = 0x522E</div><div class='add'>+0x8037 = 0x5E47</div><div class='add'>+0x803B = 0x335C</div><div class='add'>+0x803D = 0x3522</div><div class='add'>+0x803F = 0x3922</div><div class='add'>+0x8043 = 0x7175</div><div class='add'>+0x8046 = 0x7176</div><div class='add'>+0x804A = 0x4144</div><div class='add'>+0x8052 = 0x7178</div><div class='add'>+0x8056 = 0x4A25</div><div class='add'>+0x8058 = 0x4638</div><div class='add'>+0x805A = 0x3E5B</div><div class='add'>+0x805E = 0x4E45</div><div class='add'>+0x806F = 0x412A</div><div class='add'>+0x8070 = 0x344F</div><div class='add'>+0x8071 = 0x717A</div><div class='add'>+0x8072 = 0x4979</div><div class='add'>+0x8073 = 0x4B4A</div><div class='add'>+0x8075 = 0x7179</div><div class='add'>+0x8076 = 0x4474</div><div class='add'>+0x8077 = 0x5630</div><div class='add'>+0x8079 = 0x7177</div><div class='add'>+0x807D = 0x4C7D</div><div class='add'>+0x807E = 0x417B</div><div class='add'>+0x807F = 0x6D32</div><div class='add'>+0x8080 = 0x6D31</div><div class='add'>+0x8084 = 0x525E</div><div class='add'>+0x8085 = 0x4B60</div><div class='add'>+0x8086 = 0x4B41</div><div class='add'>+0x8087 = 0x5558</div><div class='add'>+0x8089 = 0x4862</div><div class='add'>+0x808B = 0x405F</div><div class='add'>+0x808C = 0x3C21</div><div class='add'>+0x8093 = 0x6B41</div><div class='add'>+0x8096 = 0x5024</div><div class='add'>+0x8098 = 0x5662</div><div class='add'>+0x809A = 0x3647</div><div class='add'>+0x809B = 0x3858</div><div class='add'>+0x809C = 0x6B40</div><div class='add'>+0x809D = 0x384E</div><div class='add'>+0x809F = 0x6B3F</div><div class='add'>+0x80A1 = 0x3949</div><div class='add'>+0x80A2 = 0x562B</div><div class='add'>+0x80A5 = 0x374A</div><div class='add'>+0x80A9 = 0x3C67</div><div class='add'>+0x80AA = 0x373E</div><div class='add'>+0x80AB = 0x6B46</div><div class='add'>+0x80AD = 0x6B47</div><div class='add'>+0x80AF = 0x3F4F</div><div class='add'>+0x80B1 = 0x6B45</div><div class='add'>+0x80B2 = 0x537D</div><div class='add'>+0x80B4 = 0x6B48</div><div class='add'>+0x80B7 = 0x6B49</div><div class='add'>+0x80BA = 0x374E</div><div class='add'>+0x80BC = 0x6B42</div><div class='add'>+0x80BD = 0x6B44</div><div class='add'>+0x80C2 = 0x6B4F</div><div class='add'>+0x80C3 = 0x4E38</div><div class='add'>+0x80C4 = 0x6B50</div><div class='add'>+0x80CC = 0x3133</div><div class='add'>+0x80CD = 0x6B52</div><div class='add'>+0x80CE = 0x4C25</div><div class='add'>+0x80D6 = 0x4556</div><div class='add'>+0x80D7 = 0x6B53</div><div class='add'>+0x80D9 = 0x6B51</div><div class='add'>+0x80DA = 0x455F</div><div class='add'>+0x80DB = 0x6B4E</div><div class='add'>+0x80DD = 0x6B55</div><div class='add'>+0x80DE = 0x307B</div><div class='add'>+0x80E1 = 0x3A7A</div><div class='add'>+0x80E4 = 0x5837</div><div class='add'>+0x80E5 = 0x7163</div><div class='add'>+0x80E9 = 0x6B4C</div><div class='add'>+0x80EC = 0x6640</div><div class='add'>+0x80ED = 0x6B59</div><div class='add'>+0x80EF = 0x3F68</div><div class='add'>+0x80F0 = 0x5248</div><div class='add'>+0x80F1 = 0x6B57</div><div class='add'>+0x80F2 = 0x6B5C</div><div class='add'>+0x80F3 = 0x386C</div><div class='add'>+0x80F4 = 0x6B58</div><div class='add'>+0x80F8 = 0x5058</div><div class='add'>+0x80FA = 0x3037</div><div class='add'>+0x80FC = 0x6B5D</div><div class='add'>+0x80FD = 0x445C</div><div class='add'>+0x8102 = 0x562C</div><div class='add'>+0x8105 = 0x5032</div><div class='add'>+0x8106 = 0x3460</div><div class='add'>+0x8109 = 0x4276</div><div class='add'>+0x810A = 0x3C39</div><div class='add'>+0x810E = 0x6B5B</div><div class='add'>+0x8112 = 0x6B5F</div><div class='add'>+0x8116 = 0x3231</div><div class='add'>+0x8118 = 0x6B64</div><div class='add'>+0x811A = 0x3D45</div><div class='add'>+0x811B = 0x6B56</div><div class='add'>+0x811E = 0x6B62</div><div class='add'>+0x812C = 0x6B63</div><div class='add'>+0x812F = 0x382C</div><div class='add'>+0x8131 = 0x4D51</div><div class='add'>+0x8132 = 0x6B65</div><div class='add'>+0x8139 = 0x554D</div><div class='add'>+0x813E = 0x4622</div><div class='add'>+0x8146 = 0x4C73</div><div class='add'>+0x8148 = 0x6B66</div><div class='add'>+0x814A = 0x784C</div><div class='add'>+0x814B = 0x5238</div><div class='add'>+0x814C = 0x6B67</div><div class='add'>+0x814E = 0x4976</div><div class='add'>+0x8150 = 0x382F</div><div class='add'>+0x8151 = 0x382D</div><div class='add'>+0x8153 = 0x6B68</div><div class='add'>+0x8154 = 0x473B</div><div class='add'>+0x8155 = 0x4D73</div><div class='add'>+0x8156 = 0x6B4B</div><div class='add'>+0x8159 = 0x6B6A</div><div class='add'>+0x815A = 0x6B6B</div><div class='add'>+0x8160 = 0x6B6D</div><div class='add'>+0x8161 = 0x6B61</div><div class='add'>+0x8165 = 0x5048</div><div class='add'>+0x8166 = 0x4454</div><div class='add'>+0x8167 = 0x6B72</div><div class='add'>+0x8169 = 0x6B6E</div><div class='add'>+0x816B = 0x5657</div><div class='add'>+0x816D = 0x6B71</div><div class='add'>+0x816E = 0x4879</div><div class='add'>+0x8170 = 0x517C</div><div class='add'>+0x8171 = 0x6B6C</div><div class='add'>+0x8174 = 0x6B69</div><div class='add'>+0x8178 = 0x3326</div><div class='add'>+0x8179 = 0x3839</div><div class='add'>+0x817A = 0x4F59</div><div class='add'>+0x817C = 0x6B6F</div><div class='add'>+0x817D = 0x6B70</div><div class='add'>+0x817F = 0x4D48</div><div class='add'>+0x8180 = 0x3072</div><div class='add'>+0x8182 = 0x6B76</div><div class='add'>+0x8188 = 0x6B75</div><div class='add'>+0x818A = 0x3232</div><div class='add'>+0x818F = 0x3860</div><div class='add'>+0x8198 = 0x316C</div><div class='add'>+0x819A = 0x3774</div><div class='add'>+0x819B = 0x4C45</div><div class='add'>+0x819C = 0x4424</div><div class='add'>+0x819D = 0x4F25</div><div class='add'>+0x81A0 = 0x3D3A</div><div class='add'>+0x81A3 = 0x6B79</div><div class='add'>+0x81A6 = 0x6C22</div><div class='add'>+0x81A8 = 0x4572</div><div class='add'>+0x81A9 = 0x4465</div><div class='add'>+0x81AA = 0x6B7A</div><div class='add'>+0x81B3 = 0x4945</div><div class='add'>+0x81BA = 0x625F</div><div class='add'>+0x81BB = 0x6B7E</div><div class='add'>+0x81BD = 0x3528</div><div class='add'>+0x81BE = 0x6B5A</div><div class='add'>+0x81BF = 0x4527</div><div class='add'>+0x81C0 = 0x4D4E</div><div class='add'>+0x81C1 = 0x6C21</div><div class='add'>+0x81C2 = 0x315B</div><div class='add'>+0x81C3 = 0x5337</div><div class='add'>+0x81C6 = 0x525C</div><div class='add'>+0x81C9 = 0x4133</div><div class='add'>+0x81CA = 0x6B7D</div><div class='add'>+0x81CC = 0x6B7B</div><div class='add'>+0x81CD = 0x466A</div><div class='add'>+0x81CF = 0x6B77</div><div class='add'>+0x81D8 = 0x4030</div><div class='add'>+0x81DA = 0x6B4D</div><div class='add'>+0x81DF = 0x5460</div><div class='add'>+0x81E0 = 0x5975</div><div class='add'>+0x81E3 = 0x333C</div><div class='add'>+0x81E7 = 0x6A30</div><div class='add'>+0x81E8 = 0x4159</div><div class='add'>+0x81EA = 0x5754</div><div class='add'>+0x81EC = 0x742B</div><div class='add'>+0x81ED = 0x3374</div><div class='add'>+0x81F3 = 0x5641</div><div class='add'>+0x81F4 = 0x5642</div><div class='add'>+0x81FA = 0x4C28</div><div class='add'>+0x81FB = 0x5569</div><div class='add'>+0x81FC = 0x3E4A</div><div class='add'>+0x81FE = 0x7427</div><div class='add'>+0x8200 = 0x5228</div><div class='add'>+0x8201 = 0x7428</div><div class='add'>+0x8202 = 0x7429</div><div class='add'>+0x8204 = 0x742A</div><div class='add'>+0x8205 = 0x3E4B</div><div class='add'>+0x8207 = 0x536B</div><div class='add'>+0x8208 = 0x504B</div><div class='add'>+0x8209 = 0x3E59</div><div class='add'>+0x820A = 0x3E49</div><div class='add'>+0x820C = 0x4960</div><div class='add'>+0x820D = 0x7867</div><div class='add'>+0x8210 = 0x7342</div><div class='add'>+0x8212 = 0x4A66</div><div class='add'>+0x8214 = 0x4C72</div><div class='add'>+0x821B = 0x6236</div><div class='add'>+0x821C = 0x4B34</div><div class='add'>+0x821E = 0x4E68</div><div class='add'>+0x821F = 0x565B</div><div class='add'>+0x8221 = 0x742D</div><div class='add'>+0x8222 = 0x742E</div><div class='add'>+0x8228 = 0x7432</div><div class='add'>+0x822A = 0x3A3D</div><div class='add'>+0x822B = 0x7433</div><div class='add'>+0x822C = 0x3063</div><div class='add'>+0x822D = 0x7430</div><div class='add'>+0x822F = 0x7431</div><div class='add'>+0x8233 = 0x7436</div><div class='add'>+0x8234 = 0x7437</div><div class='add'>+0x8235 = 0x3666</div><div class='add'>+0x8236 = 0x3230</div><div class='add'>+0x8237 = 0x4F4F</div><div class='add'>+0x8238 = 0x7434</div><div class='add'>+0x8239 = 0x342C</div><div class='add'>+0x823E = 0x7438</div><div class='add'>+0x8244 = 0x7439</div><div class='add'>+0x8247 = 0x4D27</div><div class='add'>+0x8249 = 0x743A</div><div class='add'>+0x824B = 0x743B</div><div class='add'>+0x824F = 0x743C</div><div class='add'>+0x8258 = 0x4B52</div><div class='add'>+0x8259 = 0x3255</div><div class='add'>+0x825A = 0x743D</div><div class='add'>+0x825F = 0x743E</div><div class='add'>+0x8264 = 0x742F</div><div class='add'>+0x8266 = 0x3D22</div><div class='add'>+0x8268 = 0x743F</div><div class='add'>+0x826B = 0x7435</div><div class='add'>+0x826E = 0x745E</div><div class='add'>+0x826F = 0x413C</div><div class='add'>+0x8271 = 0x3C68</div><div class='add'>+0x8272 = 0x492B</div><div class='add'>+0x8274 = 0x6575</div><div class='add'>+0x8277 = 0x515E</div><div class='add'>+0x8279 = 0x5C33</div><div class='add'>+0x827D = 0x5C34</div><div class='add'>+0x827E = 0x302C</div><div class='add'>+0x827F = 0x5C35</div><div class='add'>+0x8284 = 0x5C39</div><div class='add'>+0x8288 = 0x5842</div><div class='add'>+0x828A = 0x5C37</div><div class='add'>+0x828B = 0x5373</div><div class='add'>+0x828D = 0x4956</div><div class='add'>+0x828E = 0x5C3A</div><div class='add'>+0x828F = 0x5C36</div><div class='add'>+0x8291 = 0x5C3B</div><div class='add'>+0x8292 = 0x4322</div><div class='add'>+0x8298 = 0x5C45</div><div class='add'>+0x8299 = 0x5C3D</div><div class='add'>+0x829D = 0x5625</div><div class='add'>+0x829F = 0x5C4F</div><div class='add'>+0x82A1 = 0x5C4D</div><div class='add'>+0x82A4 = 0x5C52</div><div class='add'>+0x82A5 = 0x3D66</div><div class='add'>+0x82A8 = 0x5C38</div><div class='add'>+0x82A9 = 0x5C4B</div><div class='add'>+0x82AA = 0x5C4E</div><div class='add'>+0x82AB = 0x5C3E</div><div class='add'>+0x82AC = 0x3752</div><div class='add'>+0x82AD = 0x3045</div><div class='add'>+0x82AE = 0x5C47</div><div class='add'>+0x82AF = 0x503E</div><div class='add'>+0x82B0 = 0x5C41</div><div class='add'>+0x82B1 = 0x3B28</div><div class='add'>+0x82B3 = 0x373C</div><div class='add'>+0x82B4 = 0x5C4C</div><div class='add'>+0x82B7 = 0x5C46</div><div class='add'>+0x82B9 = 0x475B</div><div class='add'>+0x82BB = 0x5B3B</div><div class='add'>+0x82BD = 0x513F</div><div class='add'>+0x82BE = 0x5C40</div><div class='add'>+0x82C4 = 0x5C50</div><div class='add'>+0x82CA = 0x5C43</div><div class='add'>+0x82D1 = 0x5437</div><div class='add'>+0x82D2 = 0x5C5B</div><div class='add'>+0x82D3 = 0x5C5F</div><div class='add'>+0x82D4 = 0x4C26</div><div class='add'>+0x82D5 = 0x5C66</div><div class='add'>+0x82D7 = 0x4367</div><div class='add'>+0x82D8 = 0x5C5C</div><div class='add'>+0x82DB = 0x3F41</div><div class='add'>+0x82DC = 0x5C59</div><div class='add'>+0x82DE = 0x307A</div><div class='add'>+0x82DF = 0x3936</div><div class='add'>+0x82E0 = 0x5C65</div><div class='add'>+0x82E1 = 0x5C53</div><div class='add'>+0x82E3 = 0x5C44</div><div class='add'>+0x82E4 = 0x5C56</div><div class='add'>+0x82E5 = 0x4874</div><div class='add'>+0x82E6 = 0x3F60</div><div class='add'>+0x82E7 = 0x5C51</div><div class='add'>+0x82EB = 0x493B</div><div class='add'>+0x82EF = 0x313D</div><div class='add'>+0x82F1 = 0x5322</div><div class='add'>+0x82F4 = 0x5C5A</div><div class='add'>+0x82F7 = 0x5C55</div><div class='add'>+0x82F9 = 0x785C</div><div class='add'>+0x82FB = 0x5C5E</div><div class='add'>+0x8301 = 0x5742</div><div class='add'>+0x8302 = 0x432F</div><div class='add'>+0x8303 = 0x7832</div><div class='add'>+0x8304 = 0x4751</div><div class='add'>+0x8305 = 0x4329</div><div class='add'>+0x8306 = 0x5C62</div><div class='add'>+0x8307 = 0x5C58</div><div class='add'>+0x8308 = 0x5C6B</div><div class='add'>+0x8309 = 0x5C54</div><div class='add'>+0x830C = 0x5C5D</div><div class='add'>+0x8317 = 0x5C78</div><div class='add'>+0x831A = 0x5C61</div><div class='add'>+0x831B = 0x5D22</div><div class='add'>+0x831C = 0x5C67</div><div class='add'>+0x8328 = 0x3444</div><div class='add'>+0x832B = 0x4323</div><div class='add'>+0x832C = 0x3267</div><div class='add'>+0x832D = 0x5C7A</div><div class='add'>+0x832F = 0x5C72</div><div class='add'>+0x8331 = 0x5C6F</div><div class='add'>+0x8333 = 0x5C7C</div><div class='add'>+0x8334 = 0x5C6E</div><div class='add'>+0x8335 = 0x5270</div><div class='add'>+0x8336 = 0x3268</div><div class='add'>+0x8338 = 0x4857</div><div class='add'>+0x8339 = 0x4863</div><div class='add'>+0x833A = 0x5C7B</div><div class='add'>+0x833C = 0x5C6D</div><div class='add'>+0x8340 = 0x5C77</div><div class='add'>+0x8343 = 0x5C75</div><div class='add'>+0x8346 = 0x3E23</div><div class='add'>+0x8347 = 0x5C74</div><div class='add'>+0x8349 = 0x325D</div><div class='add'>+0x834F = 0x5C73</div><div class='add'>+0x8350 = 0x7843</div><div class='add'>+0x8351 = 0x5C68</div><div class='add'>+0x8352 = 0x3B44</div><div class='add'>+0x8354 = 0x4073</div><div class='add'>+0x8377 = 0x3A49</div><div class='add'>+0x8378 = 0x5D29</div><div class='add'>+0x837B = 0x5D36</div><div class='add'>+0x837C = 0x5D31</div><div class='add'>+0x837D = 0x5D34</div><div class='add'>+0x8385 = 0x5D30</div><div class='add'>+0x8386 = 0x464E</div><div class='add'>+0x8389 = 0x4072</div><div class='add'>+0x838A = 0x572F</div><div class='add'>+0x838E = 0x492F</div><div class='add'>+0x8392 = 0x5C6C</div><div class='add'>+0x8393 = 0x5D2E</div><div class='add'>+0x8396 = 0x3E25</div><div class='add'>+0x8398 = 0x5D37</div><div class='add'>+0x839B = 0x5C70</div><div class='add'>+0x839C = 0x5D2F</div><div class='add'>+0x839E = 0x5D38</div><div class='add'>+0x83A0 = 0x5D2C</div><div class='add'>+0x83A2 = 0x3C54</div><div class='add'>+0x83A7 = 0x5C48</div><div class='add'>+0x83A8 = 0x5D39</div><div class='add'>+0x83A9 = 0x5D33</div><div class='add'>+0x83AA = 0x5D2D</div><div class='add'>+0x83AB = 0x442A</div><div class='add'>+0x83B0 = 0x5D28</div><div class='add'>+0x83BD = 0x4327</div><div class='add'>+0x83C0 = 0x5D52</div><div class='add'>+0x83C1 = 0x5D3C</div><div class='add'>+0x83C5 = 0x5D51</div><div class='add'>+0x83C7 = 0x393D</div><div class='add'>+0x83CA = 0x3E55</div><div class='add'>+0x83CC = 0x3E7A</div><div class='add'>+0x83CF = 0x3A4A</div><div class='add'>+0x83D4 = 0x5D4A</div><div class='add'>+0x83D6 = 0x5D45</div><div class='add'>+0x83D8 = 0x5D3F</div><div class='add'>+0x83DC = 0x324B</div><div class='add'>+0x83DD = 0x5D43</div><div class='add'>+0x83DF = 0x5D4B</div><div class='add'>+0x83E0 = 0x3224</div><div class='add'>+0x83E1 = 0x5D55</div><div class='add'>+0x83E5 = 0x5D3E</div><div class='add'>+0x83E9 = 0x4650</div><div class='add'>+0x83EA = 0x5D50</div><div class='add'>+0x83EF = 0x3B2A</div><div class='add'>+0x83F0 = 0x5D54</div><div class='add'>+0x83F1 = 0x4162</div><div class='add'>+0x83F2 = 0x3746</div><div class='add'>+0x83F8 = 0x5D4E</div><div class='add'>+0x83F9 = 0x5D4F</div><div class='add'>+0x83FD = 0x5D44</div><div class='add'>+0x8401 = 0x5D3D</div><div class='add'>+0x8403 = 0x5D4D</div><div class='add'>+0x8404 = 0x4C51</div><div class='add'>+0x8406 = 0x5D49</div><div class='add'>+0x8407 = 0x5C49</div><div class='add'>+0x840A = 0x4033</div><div class='add'>+0x840B = 0x5D42</div><div class='add'>+0x840C = 0x4348</div><div class='add'>+0x840D = 0x463C</div><div class='add'>+0x840E = 0x4E2E</div><div class='add'>+0x840F = 0x5D4C</div><div class='add'>+0x8411 = 0x5D48</div><div class='add'>+0x8418 = 0x5D41</div><div class='add'>+0x841C = 0x5D46</div><div class='add'>+0x842C = 0x4D72</div><div class='add'>+0x8431 = 0x5D66</div><div class='add'>+0x8435 = 0x5D2B</div><div class='add'>+0x8438 = 0x5D47</div><div class='add'>+0x843C = 0x5D60</div><div class='add'>+0x843D = 0x4264</div><div class='add'>+0x8446 = 0x5D61</div><div class='add'>+0x8449 = 0x5236</div><div class='add'>+0x8451 = 0x5D57</div><div class='add'>+0x8452 = 0x5D26</div><div class='add'>+0x8457 = 0x5678</div><div class='add'>+0x8459 = 0x5D59</div><div class='add'>+0x845A = 0x5D58</div><div class='add'>+0x845B = 0x3870</div><div class='add'>+0x845C = 0x5D56</div><div class='add'>+0x8461 = 0x464F</div><div class='add'>+0x8463 = 0x362D</div><div class='add'>+0x8464 = 0x5D27</div><div class='add'>+0x8466 = 0x4E2D</div><div class='add'>+0x8469 = 0x5D62</div><div class='add'>+0x846B = 0x3A79</div><div class='add'>+0x846C = 0x5461</div><div class='add'>+0x846D = 0x5D67</div><div class='add'>+0x846F = 0x7877</div><div class='add'>+0x8471 = 0x3450</div><div class='add'>+0x8473 = 0x5D5A</div><div class='add'>+0x8475 = 0x3F7B</div><div class='add'>+0x8476 = 0x5D63</div><div class='add'>+0x8477 = 0x3B67</div><div class='add'>+0x8478 = 0x5D5F</div><div class='add'>+0x847A = 0x5D5D</div><div class='add'>+0x8482 = 0x3559</div><div class='add'>+0x8488 = 0x5D5C</div><div class='add'>+0x848E = 0x5D65</div><div class='add'>+0x8493 = 0x5D3B</div><div class='add'>+0x8494 = 0x5D2A</div><div class='add'>+0x8497 = 0x5D75</div><div class='add'>+0x8499 = 0x4349</div><div class='add'>+0x849C = 0x4B62</div><div class='add'>+0x84A1 = 0x5D72</div><div class='add'>+0x84AF = 0x5861</div><div class='add'>+0x84B2 = 0x4651</div><div class='add'>+0x84B4 = 0x5D74</div><div class='add'>+0x84B8 = 0x5574</div><div class='add'>+0x84B9 = 0x5D73</div><div class='add'>+0x84BA = 0x5D70</div><div class='add'>+0x84BC = 0x3254</div><div class='add'>+0x84BD = 0x5D6C</div><div class='add'>+0x84BF = 0x5D6F</div><div class='add'>+0x84C0 = 0x5D25</div><div class='add'>+0x84C1 = 0x5D68</div><div class='add'>+0x84C4 = 0x506E</div><div class='add'>+0x84C9 = 0x4858</div><div class='add'>+0x84CA = 0x5D6E</div><div class='add'>+0x84CB = 0x3847</div><div class='add'>+0x84CD = 0x5D69</div><div class='add'>+0x84D0 = 0x5D6A</div><div class='add'>+0x84D1 = 0x4B72</div><div class='add'>+0x84D3 = 0x5D6D</div><div class='add'>+0x84D6 = 0x314D</div><div class='add'>+0x84EC = 0x456E</div><div class='add'>+0x84EE = 0x412B</div><div class='add'>+0x84EF = 0x5C4A</div><div class='add'>+0x84F0 = 0x5D7B</div><div class='add'>+0x84FC = 0x5E24</div><div class='add'>+0x84FD = 0x5C6A</div><div class='add'>+0x84FF = 0x5E23</div><div class='add'>+0x850C = 0x5D78</div><div class='add'>+0x8511 = 0x436F</div><div class='add'>+0x8513 = 0x427B</div><div class='add'>+0x8514 = 0x7825</div><div class='add'>+0x8517 = 0x5561</div><div class='add'>+0x851A = 0x4E35</div><div class='add'>+0x851E = 0x5D64</div><div class='add'>+0x851F = 0x5D7D</div><div class='add'>+0x8521 = 0x324C</div><div class='add'>+0x8523 = 0x3D2F</div><div class='add'>+0x8526 = 0x5C60</div><div class='add'>+0x852B = 0x4468</div><div class='add'>+0x852C = 0x4A5F</div><div class='add'>+0x852D = 0x5271</div><div class='add'>+0x8538 = 0x5D7A</div><div class='add'>+0x853B = 0x5E22</div><div class='add'>+0x853D = 0x314E</div><div class='add'>+0x8541 = 0x5D21</div><div class='add'>+0x8543 = 0x5E2C</div><div class='add'>+0x8546 = 0x5D5B</div><div class='add'>+0x8548 = 0x5E26</div><div class='add'>+0x8549 = 0x3D36</div><div class='add'>+0x854A = 0x486F</div><div class='add'>+0x854E = 0x5C71</div><div class='add'>+0x8552 = 0x5D24</div><div class='add'>+0x8553 = 0x5C3F</div><div class='add'>+0x8555 = 0x5D35</div><div class='add'>+0x8556 = 0x5E21</div><div class='add'>+0x8558 = 0x5C69</div><div class='add'>+0x8559 = 0x5E25</div><div class='add'>+0x855E = 0x5E29</div><div class='add'>+0x8562 = 0x5D5E</div><div class='add'>+0x8564 = 0x5E28</div><div class='add'>+0x8568 = 0x5E27</div><div class='add'>+0x8569 = 0x3534</div><div class='add'>+0x856A = 0x4E5F</div><div class='add'>+0x856D = 0x4F74</div><div class='add'>+0x8577 = 0x5D77</div><div class='add'>+0x8579 = 0x5E33</div><div class='add'>+0x857A = 0x5E2A</div><div class='add'>+0x857B = 0x5E2E</div><div class='add'>+0x857E = 0x4059</div><div class='add'>+0x8584 = 0x3121</div><div class='add'>+0x8585 = 0x5E36</div><div class='add'>+0x8587 = 0x5E31</div><div class='add'>+0x8588 = 0x5C76</div><div class='add'>+0x858A = 0x3C3B</div><div class='add'>+0x858C = 0x5C3C</div><div class='add'>+0x858F = 0x5E32</div><div class='add'>+0x8591 = 0x7844</div><div class='add'>+0x8594 = 0x473E</div><div class='add'>+0x859B = 0x5126</div><div class='add'>+0x859C = 0x5E35</div><div class='add'>+0x859F = 0x5D32</div><div class='add'>+0x85A4 = 0x5E2F</div><div class='add'>+0x85A6 = 0x3C76</div><div class='add'>+0x85A8 = 0x5E30</div><div class='add'>+0x85A9 = 0x4878</div><div class='add'>+0x85AA = 0x503D</div><div class='add'>+0x85AF = 0x4A6D</div><div class='add'>+0x85B0 = 0x5E39</div><div class='add'>+0x85B7 = 0x5E38</div><div class='add'>+0x85B9 = 0x5E37</div><div class='add'>+0x85BA = 0x5C79</div><div class='add'>+0x85C1 = 0x5E3B</div><div class='add'>+0x85C9 = 0x3D65</div><div class='add'>+0x85CD = 0x4036</div><div class='add'>+0x85CE = 0x5D23</div><div class='add'>+0x85CF = 0x3258</div><div class='add'>+0x85D0 = 0x436A</div><div class='add'>+0x85D5 = 0x453A</div><div class='add'>+0x85DC = 0x5E3C</div><div class='add'>+0x85DD = 0x5255</div><div class='add'>+0x85E4 = 0x4C59</div><div class='add'>+0x85E5 = 0x5229</div><div class='add'>+0x85E9 = 0x372A</div><div class='add'>+0x85EA = 0x5E34</div><div class='add'>+0x85F4 = 0x544C</div><div class='add'>+0x85F6 = 0x5C42</div><div class='add'>+0x85F9 = 0x302A</div><div class='add'>+0x85FA = 0x5D7E</div><div class='add'>+0x85FB = 0x5465</div><div class='add'>+0x85FF = 0x5E3D</div><div class='add'>+0x8604 = 0x5E2D</div><div class='add'>+0x8605 = 0x5E3F</div><div class='add'>+0x8606 = 0x422B</div><div class='add'>+0x8607 = 0x4B55</div><div class='add'>+0x860B = 0x463B</div><div class='add'>+0x8611 = 0x4422</div><div class='add'>+0x8616 = 0x5E41</div><div class='add'>+0x861A = 0x5E3A</div><div class='add'>+0x861E = 0x5D7C</div><div class='add'>+0x8622 = 0x5C57</div><div class='add'>+0x8627 = 0x5E3E</div><div class='add'>+0x8629 = 0x5E40</div><div class='add'>+0x862D = 0x403C</div><div class='add'>+0x8638 = 0x553A</div><div class='add'>+0x863A = 0x5D71</div><div class='add'>+0x863C = 0x5E42</div><div class='add'>+0x863F = 0x425C</div><div class='add'>+0x864D = 0x722E</div><div class='add'>+0x864E = 0x3B22</div><div class='add'>+0x8650 = 0x4530</div><div class='add'>+0x8654 = 0x722F</div><div class='add'>+0x8655 = 0x3426</div><div class='add'>+0x865A = 0x5069</div><div class='add'>+0x865C = 0x4232</div><div class='add'>+0x865E = 0x535D</div><div class='add'>+0x865F = 0x3A45</div><div class='add'>+0x8662 = 0x6B3D</div><div class='add'>+0x8667 = 0x3F77</div><div class='add'>+0x866C = 0x7230</div><div class='add'>+0x8671 = 0x4A2D</div><div class='add'>+0x8679 = 0x3A67</div><div class='add'>+0x867A = 0x7233</div><div class='add'>+0x867B = 0x7235</div><div class='add'>+0x867C = 0x7234</div><div class='add'>+0x868A = 0x4E43</div><div class='add'>+0x868B = 0x7238</div><div class='add'>+0x868C = 0x3076</div><div class='add'>+0x868D = 0x7237</div><div class='add'>+0x8693 = 0x723E</div><div class='add'>+0x869C = 0x5141</div><div class='add'>+0x869D = 0x723A</div><div class='add'>+0x86A3 = 0x723C</div><div class='add'>+0x86A4 = 0x5469</div><div class='add'>+0x86A7 = 0x723B</div><div class='add'>+0x86A8 = 0x7236</div><div class='add'>+0x86A9 = 0x723F</div><div class='add'>+0x86AA = 0x723D</div><div class='add'>+0x86AF = 0x7247</div><div class='add'>+0x86B0 = 0x7244</div><div class='add'>+0x86B1 = 0x7246</div><div class='add'>+0x86B4 = 0x724A</div><div class='add'>+0x86B5 = 0x7242</div><div class='add'>+0x86B6 = 0x7240</div><div class='add'>+0x86BA = 0x7245</div><div class='add'>+0x86C0 = 0x567B</div><div class='add'>+0x86C4 = 0x7241</div><div class='add'>+0x86C6 = 0x4779</div><div class='add'>+0x86C7 = 0x495F</div><div class='add'>+0x86C9 = 0x7248</div><div class='add'>+0x86CB = 0x3530</div><div class='add'>+0x86D0 = 0x7250</div><div class='add'>+0x86D1 = 0x7256</div><div class='add'>+0x86D4 = 0x3B57</div><div class='add'>+0x86D8 = 0x7255</div><div class='add'>+0x86D9 = 0x4D5C</div><div class='add'>+0x86DB = 0x566B</div><div class='add'>+0x86DE = 0x7252</div><div class='add'>+0x86DF = 0x7254</div><div class='add'>+0x86E4 = 0x3872</div><div class='add'>+0x86E9 = 0x724B</div><div class='add'>+0x86ED = 0x724E</div><div class='add'>+0x86F8 = 0x7259</div><div class='add'>+0x86F9 = 0x533C</div><div class='add'>+0x86FA = 0x724C</div><div class='add'>+0x86FE = 0x366A</div><div class='add'>+0x8700 = 0x4A71</div><div class='add'>+0x8702 = 0x3764</div><div class='add'>+0x8703 = 0x7257</div><div class='add'>+0x8706 = 0x7239</div><div class='add'>+0x8707 = 0x7258</div><div class='add'>+0x8708 = 0x725A</div><div class='add'>+0x8709 = 0x725D</div><div class='add'>+0x870A = 0x725B</div><div class='add'>+0x870D = 0x725C</div><div class='add'>+0x8712 = 0x5151</div><div class='add'>+0x8713 = 0x7251</div><div class='add'>+0x8715 = 0x4D49</div><div class='add'>+0x8718 = 0x5629</div><div class='add'>+0x871A = 0x7263</div><div class='add'>+0x871C = 0x435B</div><div class='add'>+0x871E = 0x7260</div><div class='add'>+0x8721 = 0x784B</div><div class='add'>+0x8722 = 0x726C</div><div class='add'>+0x8723 = 0x725E</div><div class='add'>+0x8725 = 0x7261</div><div class='add'>+0x8729 = 0x7268</div><div class='add'>+0x872E = 0x7262</div><div class='add'>+0x8731 = 0x7267</div><div class='add'>+0x8734 = 0x7266</div><div class='add'>+0x8737 = 0x7269</div><div class='add'>+0x873B = 0x725F</div><div class='add'>+0x873E = 0x7264</div><div class='add'>+0x873F = 0x726A</div><div class='add'>+0x874C = 0x7272</div><div class='add'>+0x874E = 0x502B</div><div class='add'>+0x8753 = 0x7275</div><div class='add'>+0x8755 = 0x4A34</div><div class='add'>+0x8757 = 0x3B48</div><div class='add'>+0x8759 = 0x7279</div><div class='add'>+0x8760 = 0x7270</div><div class='add'>+0x8763 = 0x7276</div><div class='add'>+0x8764 = 0x7278</div><div class='add'>+0x8765 = 0x727A</div><div class='add'>+0x8766 = 0x4F3A</div><div class='add'>+0x876E = 0x7273</div><div class='add'>+0x8770 = 0x7271</div><div class='add'>+0x8774 = 0x3A7B</div><div class='add'>+0x8776 = 0x357B</div><div class='add'>+0x8778 = 0x4E4F</div><div class='add'>+0x877B = 0x726F</div><div class='add'>+0x877D = 0x726D</div><div class='add'>+0x8782 = 0x726B</div><div class='add'>+0x8783 = 0x7326</div><div class='add'>+0x8784 = 0x724F</div><div class='add'>+0x8785 = 0x7323</div><div class='add'>+0x8788 = 0x7322</div><div class='add'>+0x878B = 0x7274</div><div class='add'>+0x878D = 0x485A</div><div class='add'>+0x8793 = 0x727B</div><div class='add'>+0x8797 = 0x7325</div><div class='add'>+0x879E = 0x426C</div><div class='add'>+0x879F = 0x4378</div><div class='add'>+0x87A2 = 0x5329</div><div class='add'>+0x87AB = 0x7327</div><div class='add'>+0x87AC = 0x7329</div><div class='add'>+0x87AD = 0x7324</div><div class='add'>+0x87AF = 0x727C</div><div class='add'>+0x87B3 = 0x732B</div><div class='add'>+0x87B5 = 0x732A</div><div class='add'>+0x87BA = 0x425D</div><div class='add'>+0x87BB = 0x7277</div><div class='add'>+0x87BD = 0x732E</div><div class='add'>+0x87C0 = 0x7330</div><div class='add'>+0x87C4 = 0x555D</div><div class='add'>+0x87C6 = 0x7321</div><div class='add'>+0x87C8 = 0x7265</div><div class='add'>+0x87CA = 0x7331</div><div class='add'>+0x87CB = 0x732C</div><div class='add'>+0x87CE = 0x727D</div><div class='add'>+0x87D1 = 0x732F</div><div class='add'>+0x87D2 = 0x727E</div><div class='add'>+0x87D3 = 0x732D</div><div class='add'>+0x87DB = 0x7332</div><div class='add'>+0x87E0 = 0x7334</div><div class='add'>+0x87E3 = 0x7231</div><div class='add'>+0x87E5 = 0x7328</div><div class='add'>+0x87EA = 0x7333</div><div class='add'>+0x87EC = 0x3275</div><div class='add'>+0x87EE = 0x7335</div><div class='add'>+0x87EF = 0x724D</div><div class='add'>+0x87F2 = 0x3366</div><div class='add'>+0x87F6 = 0x7249</div><div class='add'>+0x87F9 = 0x5037</div><div class='add'>+0x87FB = 0x524F</div><div class='add'>+0x87FE = 0x7338</div><div class='add'>+0x8803 = 0x5979</div><div class='add'>+0x8805 = 0x532C</div><div class='add'>+0x8806 = 0x7232</div><div class='add'>+0x880A = 0x7339</div><div class='add'>+0x8810 = 0x7253</div><div class='add'>+0x8811 = 0x726E</div><div class='add'>+0x8813 = 0x7337</div><div class='add'>+0x8815 = 0x4864</div><div class='add'>+0x8816 = 0x7336</div><div class='add'>+0x881B = 0x733A</div><div class='add'>+0x881F = 0x402F</div><div class='add'>+0x8821 = 0x733B</div><div class='add'>+0x8822 = 0x3440</div><div class='add'>+0x8823 = 0x7243</div><div class='add'>+0x8831 = 0x3946</div><div class='add'>+0x8832 = 0x6E43</div><div class='add'>+0x8836 = 0x324F</div><div class='add'>+0x8839 = 0x733C</div><div class='add'>+0x883B = 0x4279</div><div class='add'>+0x883C = 0x733D</div><div class='add'>+0x8840 = 0x512A</div><div class='add'>+0x8844 = 0x742C</div><div class='add'>+0x8846 = 0x565A</div><div class='add'>+0x884A = 0x785A</div><div class='add'>+0x884C = 0x5050</div><div class='add'>+0x884D = 0x515C</div><div class='add'>+0x8853 = 0x4A75</div><div class='add'>+0x8857 = 0x3D56</div><div class='add'>+0x8859 = 0x5143</div><div class='add'>+0x885B = 0x4E40</div><div class='add'>+0x885D = 0x3365</div><div class='add'>+0x8861 = 0x3A62</div><div class='add'>+0x8862 = 0x6169</div><div class='add'>+0x8863 = 0x5242</div><div class='add'>+0x8864 = 0x7142</div><div class='add'>+0x8868 = 0x316D</div><div class='add'>+0x8869 = 0x7143</div><div class='add'>+0x886B = 0x4940</div><div class='add'>+0x886E = 0x5972</div><div class='add'>+0x8870 = 0x4B25</div><div class='add'>+0x8872 = 0x7144</div><div class='add'>+0x8877 = 0x5654</div><div class='add'>+0x8879 = 0x563B</div><div class='add'>+0x887D = 0x7145</div><div class='add'>+0x887E = 0x7440</div><div class='add'>+0x887F = 0x7146</div><div class='add'>+0x8881 = 0x542C</div><div class='add'>+0x8882 = 0x7147</div><div class='add'>+0x8888 = 0x7442</div><div class='add'>+0x888B = 0x347C</div><div class='add'>+0x888D = 0x455B</div><div class='add'>+0x8892 = 0x4C3B</div><div class='add'>+0x8896 = 0x5064</div><div class='add'>+0x88A2 = 0x7148</div><div class='add'>+0x88A4 = 0x5973</div><div class='add'>+0x88AB = 0x313B</div><div class='add'>+0x88B1 = 0x3824</div><div class='add'>+0x88B7 = 0x714A</div><div class='add'>+0x88BC = 0x714B</div><div class='add'>+0x88C1 = 0x3243</div><div class='add'>+0x88C2 = 0x4151</div><div class='add'>+0x88C9 = 0x714C</div><div class='add'>+0x88CA = 0x7441</div><div class='add'>+0x88CE = 0x714E</div><div class='add'>+0x88CF = 0x406F</div><div class='add'>+0x88D2 = 0x5976</div><div class='add'>+0x88D4 = 0x5261</div><div class='add'>+0x88D5 = 0x5423</div><div class='add'>+0x88D8 = 0x7443</div><div class='add'>+0x88D9 = 0x4839</div><div class='add'>+0x88DC = 0x3239</div><div class='add'>+0x88DD = 0x5730</div><div class='add'>+0x88DF = 0x7444</div><div class='add'>+0x88E8 = 0x7154</div><div class='add'>+0x88F0 = 0x7156</div><div class='add'>+0x88F1 = 0x7151</div><div class='add'>+0x88F3 = 0x4951</div><div class='add'>+0x88F4 = 0x4561</div><div class='add'>+0x88F8 = 0x4263</div><div class='add'>+0x88F9 = 0x397C</div><div class='add'>+0x88FC = 0x7153</div><div class='add'>+0x88FD = 0x7925</div><div class='add'>+0x88FE = 0x7155</div><div class='add'>+0x8902 = 0x3953</div><div class='add'>+0x8907 = 0x7834</div><div class='add'>+0x890A = 0x715B</div><div class='add'>+0x8910 = 0x3A56</div><div class='add'>+0x8912 = 0x307D</div><div class='add'>+0x8913 = 0x7159</div><div class='add'>+0x8919 = 0x7158</div><div class='add'>+0x891A = 0x7152</div><div class='add'>+0x8921 = 0x7157</div><div class='add'>+0x8925 = 0x486C</div><div class='add'>+0x892A = 0x4D4A</div><div class='add'>+0x892B = 0x715D</div><div class='add'>+0x8930 = 0x653D</div><div class='add'>+0x8932 = 0x3F63</div><div class='add'>+0x8933 = 0x714D</div><div class='add'>+0x8936 = 0x715E</div><div class='add'>+0x8938 = 0x715A</div><div class='add'>+0x893B = 0x5974</div><div class='add'>+0x8941 = 0x715F</div><div class='add'>+0x8944 = 0x4F65</div><div class='add'>+0x8947 = 0x7150</div><div class='add'>+0x8956 = 0x3040</div><div class='add'>+0x895D = 0x714F</div><div class='add'>+0x895E = 0x7445</div><div class='add'>+0x895F = 0x3D73</div><div class='add'>+0x8960 = 0x7149</div><div class='add'>+0x8964 = 0x715C</div><div class='add'>+0x8966 = 0x7160</div><div class='add'>+0x896A = 0x4D60</div><div class='add'>+0x896C = 0x7821</div><div class='add'>+0x896F = 0x3344</div><div class='add'>+0x8972 = 0x4F2E</div><div class='add'>+0x897B = 0x7161</div><div class='add'>+0x897F = 0x4E77</div><div class='add'>+0x8981 = 0x522A</div><div class='add'>+0x8983 = 0x717B</div><div class='add'>+0x8986 = 0x3832</div><div class='add'>+0x898B = 0x3C7B</div><div class='add'>+0x898F = 0x3966</div><div class='add'>+0x8993 = 0x4359</div><div class='add'>+0x8996 = 0x4A53</div><div class='add'>+0x8998 = 0x6A68</div><div class='add'>+0x89A1 = 0x6A6A</div><div class='add'>+0x89A6 = 0x6A6C</div><div class='add'>+0x89AA = 0x4757</div><div class='add'>+0x89AC = 0x6A69</div><div class='add'>+0x89AF = 0x6A6D</div><div class='add'>+0x89B2 = 0x6A6E</div><div class='add'>+0x89B7 = 0x6A6F</div><div class='add'>+0x89BA = 0x3E75</div><div class='add'>+0x89BD = 0x4040</div><div class='add'>+0x89BF = 0x6A6B</div><div class='add'>+0x89C0 = 0x395B</div><div class='add'>+0x89D2 = 0x3D47</div><div class='add'>+0x89D6 = 0x757B</div><div class='add'>+0x89DA = 0x757D</div><div class='add'>+0x89DC = 0x757E</div><div class='add'>+0x89E3 = 0x3D62</div><div class='add'>+0x89E5 = 0x7621</div><div class='add'>+0x89EB = 0x7622</div><div class='add'>+0x89F3 = 0x6C32</div><div class='add'>+0x89F4 = 0x757C</div><div class='add'>+0x89F6 = 0x7623</div><div class='add'>+0x89F8 = 0x3425</div><div class='add'>+0x8A00 = 0x5154</div><div class='add'>+0x8A01 = 0x5A25</div><div class='add'>+0x8A02 = 0x3629</div><div class='add'>+0x8A03 = 0x383C</div><div class='add'>+0x8A07 = 0x596A</div><div class='add'>+0x8A08 = 0x3C46</div><div class='add'>+0x8A0A = 0x5136</div><div class='add'>+0x8A0C = 0x5A27</div><div class='add'>+0x8A0E = 0x4C56</div><div class='add'>+0x8A10 = 0x5A26</div><div class='add'>+0x8A13 = 0x5135</div><div class='add'>+0x8A15 = 0x5A28</div><div class='add'>+0x8A16 = 0x467D</div><div class='add'>+0x8A18 = 0x3C47</div><div class='add'>+0x8A1B = 0x366F</div><div class='add'>+0x8A1D = 0x5148</div><div class='add'>+0x8A1F = 0x4B4F</div><div class='add'>+0x8A23 = 0x3E77</div><div class='add'>+0x8A25 = 0x5A2B</div><div class='add'>+0x8A2A = 0x3743</div><div class='add'>+0x8A2D = 0x4968</div><div class='add'>+0x8A31 = 0x506D</div><div class='add'>+0x8A34 = 0x4B5F</div><div class='add'>+0x8A36 = 0x5A2D</div><div class='add'>+0x8A3A = 0x556F</div><div class='add'>+0x8A3E = 0x7624</div><div class='add'>+0x8A41 = 0x5A2C</div><div class='add'>+0x8A46 = 0x5A2E</div><div class='add'>+0x8A48 = 0x6E3A</div><div class='add'>+0x8A4E = 0x5A2A</div><div class='add'>+0x8A50 = 0x5529</div><div class='add'>+0x8A52 = 0x5A31</div><div class='add'>+0x8A54 = 0x5A2F</div><div class='add'>+0x8A55 = 0x4640</div><div class='add'>+0x8A58 = 0x5A30</div><div class='add'>+0x8A5B = 0x5767</div><div class='add'>+0x8A5E = 0x344A</div><div class='add'>+0x8A61 = 0x5A3C</div><div class='add'>+0x8A62 = 0x512F</div><div class='add'>+0x8A63 = 0x5268</div><div class='add'>+0x8A66 = 0x4A54</div><div class='add'>+0x8A69 = 0x4A2B</div><div class='add'>+0x8A6B = 0x326F</div><div class='add'>+0x8A6C = 0x5A38</div><div class='add'>+0x8A6D = 0x396E</div><div class='add'>+0x8A6E = 0x5A39</div><div class='add'>+0x8A70 = 0x5A35</div><div class='add'>+0x8A71 = 0x3B30</div><div class='add'>+0x8A72 = 0x3843</div><div class='add'>+0x8A73 = 0x4F6A</div><div class='add'>+0x8A75 = 0x5A37</div><div class='add'>+0x8A79 = 0x5532</div><div class='add'>+0x8A7C = 0x5A36</div><div class='add'>+0x8A7F = 0x5A34</div><div class='add'>+0x8A84 = 0x5A33</div><div class='add'>+0x8A85 = 0x566F</div><div class='add'>+0x8A86 = 0x5A32</div><div class='add'>+0x8A87 = 0x3F64</div><div class='add'>+0x8A8D = 0x484F</div><div class='add'>+0x8A91 = 0x5A3F</div><div class='add'>+0x8A92 = 0x5A40</div><div class='add'>+0x8A93 = 0x4A44</div><div class='add'>+0x8A95 = 0x352E</div><div class='add'>+0x8A98 = 0x5355</div><div class='add'>+0x8A9A = 0x5A3D</div><div class='add'>+0x8A9E = 0x536F</div><div class='add'>+0x8AA0 = 0x334F</div><div class='add'>+0x8AA1 = 0x3D6B</div><div class='add'>+0x8AA3 = 0x4E5C</div><div class='add'>+0x8AA4 = 0x4E73</div><div class='add'>+0x8AA5 = 0x5A3E</div><div class='add'>+0x8AA6 = 0x4B50</div><div class='add'>+0x8AA8 = 0x3B65</div><div class='add'>+0x8AAC = 0x4B35</div><div class='add'>+0x8AB0 = 0x4B2D</div><div class='add'>+0x8AB2 = 0x3F4E</div><div class='add'>+0x8AB6 = 0x5A47</div><div class='add'>+0x8AB9 = 0x374C</div><div class='add'>+0x8ABC = 0x526A</div><div class='add'>+0x8ABF = 0x3577</div><div class='add'>+0x8AC2 = 0x5A46</div><div class='add'>+0x8AC4 = 0x573B</div><div class='add'>+0x8AC7 = 0x4C38</div><div class='add'>+0x8AC9 = 0x5A43</div><div class='add'>+0x8ACB = 0x476B</div><div class='add'>+0x8ACD = 0x5A3A</div><div class='add'>+0x8ACF = 0x5A41</div><div class='add'>+0x8AD1 = 0x5A42</div><div class='add'>+0x8AD2 = 0x4142</div><div class='add'>+0x8AD6 = 0x425B</div><div class='add'>+0x8AD7 = 0x5A45</div><div class='add'>+0x8ADB = 0x5A44</div><div class='add'>+0x8ADC = 0x357D</div><div class='add'>+0x8ADE = 0x5A52</div><div class='add'>+0x8AE2 = 0x5A3B</div><div class='add'>+0x8AE4 = 0x5A4C</div><div class='add'>+0x8AE6 = 0x5A50</div><div class='add'>+0x8AE7 = 0x5033</div><div class='add'>+0x8AEB = 0x5A49</div><div class='add'>+0x8AED = 0x5A4D</div><div class='add'>+0x8AEE = 0x5A51</div><div class='add'>+0x8AF1 = 0x3B64</div><div class='add'>+0x8AF3 = 0x5A4F</div><div class='add'>+0x8AF6 = 0x5A48</div><div class='add'>+0x8AF7 = 0x376D</div><div class='add'>+0x8AF8 = 0x566E</div><div class='add'>+0x8AFA = 0x5168</div><div class='add'>+0x8AFC = 0x5A4E</div><div class='add'>+0x8AFE = 0x4535</div><div class='add'>+0x8B00 = 0x4431</div><div class='add'>+0x8B01 = 0x5A4B</div><div class='add'>+0x8B02 = 0x4E3D</div><div class='add'>+0x8B04 = 0x4C5C</div><div class='add'>+0x8B05 = 0x565F</div><div class='add'>+0x8B07 = 0x6540</div><div class='add'>+0x8B0A = 0x3B51</div><div class='add'>+0x8B0E = 0x4355</div><div class='add'>+0x8B10 = 0x5A57</div><div class='add'>+0x8B14 = 0x5A4A</div><div class='add'>+0x8B16 = 0x5A55</div><div class='add'>+0x8B17 = 0x3079</div><div class='add'>+0x8B19 = 0x472B</div><div class='add'>+0x8B1A = 0x5A56</div><div class='add'>+0x8B1B = 0x3D32</div><div class='add'>+0x8B1D = 0x503B</div><div class='add'>+0x8B21 = 0x5225</div><div class='add'>+0x8B26 = 0x7625</div><div class='add'>+0x8B28 = 0x5A53</div><div class='add'>+0x8B2B = 0x5A58</div><div class='add'>+0x8B2C = 0x437D</div><div class='add'>+0x8B2D = 0x5A59</div><div class='add'>+0x8B33 = 0x5A29</div><div class='add'>+0x8B39 = 0x3D77</div><div class='add'>+0x8B3E = 0x4321</div><div class='add'>+0x8B49 = 0x5624</div><div class='add'>+0x8B4E = 0x5A5C</div><div class='add'>+0x8B4F = 0x3C25</div><div class='add'>+0x8B56 = 0x5A5A</div><div class='add'>+0x8B58 = 0x4A36</div><div class='add'>+0x8B59 = 0x5A5B</div><div class='add'>+0x8B5A = 0x4C37</div><div class='add'>+0x8B5C = 0x4657</div><div class='add'>+0x8B66 = 0x3E2F</div><div class='add'>+0x8B6B = 0x5A5E</div><div class='add'>+0x8B6C = 0x4629</div><div class='add'>+0x8B6F = 0x526B</div><div class='add'>+0x8B70 = 0x5269</div><div class='add'>+0x8B74 = 0x4734</div><div class='add'>+0x8B77 = 0x3B24</div><div class='add'>+0x8B7D = 0x537E</div><div class='add'>+0x8B80 = 0x3641</div><div class='add'>+0x8B8A = 0x3164</div><div class='add'>+0x8B8E = 0x7645</div><div class='add'>+0x8B92 = 0x3277</div><div class='add'>+0x8B93 = 0x4843</div><div class='add'>+0x8B95 = 0x403E</div><div class='add'>+0x8B96 = 0x5A5F</div><div class='add'>+0x8B9C = 0x5A54</div><div class='add'>+0x8B9E = 0x5A5D</div><div class='add'>+0x8C37 = 0x3948</div><div class='add'>+0x8C41 = 0x3B6D</div><div class='add'>+0x8C46 = 0x3639</div><div class='add'>+0x8C47 = 0x7478</div><div class='add'>+0x8C48 = 0x4671</div><div class='add'>+0x8C49 = 0x7479</div><div class='add'>+0x8C4C = 0x4D63</div><div class='add'>+0x8C50 = 0x3761</div><div class='add'>+0x8C55 = 0x7539</div><div class='add'>+0x8C5A = 0x6B60</div><div class='add'>+0x8C61 = 0x4F73</div><div class='add'>+0x8C62 = 0x3B3F</div><div class='add'>+0x8C6A = 0x3A40</div><div class='add'>+0x8C6B = 0x5425</div><div class='add'>+0x8C73 = 0x6159</div><div class='add'>+0x8C78 = 0x7574</div><div class='add'>+0x8C79 = 0x312A</div><div class='add'>+0x8C7A = 0x3272</div><div class='add'>+0x8C82 = 0x7575</div><div class='add'>+0x8C85 = 0x7577</div><div class='add'>+0x8C89 = 0x3A51</div><div class='add'>+0x8C8A = 0x7576</div><div class='add'>+0x8C8C = 0x4332</div><div class='add'>+0x8C94 = 0x7579</div><div class='add'>+0x8C98 = 0x7578</div><div class='add'>+0x8C9D = 0x3134</div><div class='add'>+0x8C9E = 0x556A</div><div class='add'>+0x8CA0 = 0x383A</div><div class='add'>+0x8CA1 = 0x3246</div><div class='add'>+0x8CA2 = 0x3931</div><div class='add'>+0x8CA7 = 0x4636</div><div class='add'>+0x8CA8 = 0x3B75</div><div class='add'>+0x8CA9 = 0x3737</div><div class='add'>+0x8CAA = 0x4C30</div><div class='add'>+0x8CAB = 0x3961</div><div class='add'>+0x8CAC = 0x5470</div><div class='add'>+0x8CAF = 0x567C</div><div class='add'>+0x8CB0 = 0x6A5B</div><div class='add'>+0x8CB2 = 0x6A5F</div><div class='add'>+0x8CB3 = 0x3721</div><div class='add'>+0x8CB4 = 0x3973</div><div class='add'>+0x8CB6 = 0x3161</div><div class='add'>+0x8CB7 = 0x4272</div><div class='add'>+0x8CB8 = 0x347B</div><div class='add'>+0x8CBA = 0x6A5C</div><div class='add'>+0x8CBB = 0x3751</div><div class='add'>+0x8CBC = 0x4C79</div><div class='add'>+0x8CBD = 0x6A5D</div><div class='add'>+0x8CBF = 0x4333</div><div class='add'>+0x8CC0 = 0x3A58</div><div class='add'>+0x8CC1 = 0x6A5A</div><div class='add'>+0x8CC2 = 0x4238</div><div class='add'>+0x8CC3 = 0x415E</div><div class='add'>+0x8CC4 = 0x3B5F</div><div class='add'>+0x8CC5 = 0x6A60</div><div class='add'>+0x8CC7 = 0x574A</div><div class='add'>+0x8CC8 = 0x3C56</div><div class='add'>+0x8CCA = 0x5474</div><div class='add'>+0x8CD1 = 0x6A62</div><div class='add'>+0x8CD2 = 0x495E</div><div class='add'>+0x8CD3 = 0x3176</div><div class='add'>+0x8CD5 = 0x6A64</div><div class='add'>+0x8CDA = 0x6A63</div><div class='add'>+0x8CDC = 0x344D</div><div class='add'>+0x8CDE = 0x494D</div><div class='add'>+0x8CE0 = 0x4562</div><div class='add'>+0x8CE1 = 0x6259</div><div class='add'>+0x8CE2 = 0x4F4D</div><div class='add'>+0x8CE3 = 0x4274</div><div class='add'>+0x8CE4 = 0x3C7A</div><div class='add'>+0x8CE6 = 0x3833</div><div class='add'>+0x8CE7 = 0x6A66</div><div class='add'>+0x8CEA = 0x564A</div><div class='add'>+0x8CEB = 0x6A65</div><div class='add'>+0x8CEC = 0x554B</div><div class='add'>+0x8CED = 0x3644</div><div class='add'>+0x8CF4 = 0x4035</div><div class='add'>+0x8CFA = 0x572C</div><div class='add'>+0x8CFB = 0x6A67</div><div class='add'>+0x8CFC = 0x393A</div><div class='add'>+0x8CFD = 0x487C</div><div class='add'>+0x8CFE = 0x5853</div><div class='add'>+0x8D04 = 0x6A5E</div><div class='add'>+0x8D05 = 0x5738</div><div class='add'>+0x8D08 = 0x5479</div><div class='add'>+0x8D0A = 0x545E</div><div class='add'>+0x8D0B = 0x584D</div><div class='add'>+0x8D0D = 0x4944</div><div class='add'>+0x8D0F = 0x532E</div><div class='add'>+0x8D10 = 0x6A61</div><div class='add'>+0x8D16 = 0x4A6A</div><div class='add'>+0x8D1B = 0x3853</div><div class='add'>+0x8D1C = 0x545F</div><div class='add'>+0x8D64 = 0x3360</div><div class='add'>+0x8D66 = 0x4962</div><div class='add'>+0x8D67 = 0x7476</div><div class='add'>+0x8D6B = 0x3A55</div><div class='add'>+0x8D6D = 0x7477</div><div class='add'>+0x8D70 = 0x575F</div><div class='add'>+0x8D73 = 0x7471</div><div class='add'>+0x8D74 = 0x3830</div><div class='add'>+0x8D77 = 0x4670</div><div class='add'>+0x8D81 = 0x3343</div><div class='add'>+0x8D84 = 0x7472</div><div class='add'>+0x8D85 = 0x332C</div><div class='add'>+0x8D8A = 0x543D</div><div class='add'>+0x8D91 = 0x7474</div><div class='add'>+0x8D94 = 0x7473</div><div class='add'>+0x8D95 = 0x384F</div><div class='add'>+0x8D99 = 0x5554</div><div class='add'>+0x8D9F = 0x4C4B</div><div class='add'>+0x8DA3 = 0x4824</div><div class='add'>+0x8DA8 = 0x4777</div><div class='add'>+0x8DB2 = 0x7475</div><div class='add'>+0x8DB3 = 0x5763</div><div class='add'>+0x8DB4 = 0x453F</div><div class='add'>+0x8DB5 = 0x7540</div><div class='add'>+0x8DBA = 0x7543</div><div class='add'>+0x8DBC = 0x7542</div><div class='add'>+0x8DBE = 0x563A</div><div class='add'>+0x8DBF = 0x7541</div><div class='add'>+0x8DC6 = 0x754C</div><div class='add'>+0x8DCB = 0x304F</div><div class='add'>+0x8DCC = 0x3578</div><div class='add'>+0x8DCE = 0x7549</div><div class='add'>+0x8DCF = 0x754A</div><div class='add'>+0x8DD1 = 0x455C</div><div class='add'>+0x8DD6 = 0x7545</div><div class='add'>+0x8DD7 = 0x7546</div><div class='add'>+0x8DDA = 0x7547</div><div class='add'>+0x8DDB = 0x754B</div><div class='add'>+0x8DDD = 0x3E60</div><div class='add'>+0x8DDF = 0x387A</div><div class='add'>+0x8DE3 = 0x7550</div><div class='add'>+0x8DE4 = 0x7553</div><div class='add'>+0x8DE8 = 0x3F67</div><div class='add'>+0x8DEA = 0x3972</div><div class='add'>+0x8DEB = 0x753C</div><div class='add'>+0x8DEC = 0x754D</div><div class='add'>+0x8DEF = 0x4237</div><div class='add'>+0x8DF3 = 0x4C78</div><div class='add'>+0x8DFA = 0x3665</div><div class='add'>+0x8DFD = 0x7555</div><div class='add'>+0x8E05 = 0x753D</div><div class='add'>+0x8E09 = 0x7554</div><div class='add'>+0x8E0F = 0x4C24</div><div class='add'>+0x8E10 = 0x3C79</div><div class='add'>+0x8E14 = 0x7556</div><div class='add'>+0x8E1D = 0x7557</div><div class='add'>+0x8E1E = 0x3E61</div><div class='add'>+0x8E1F = 0x7558</div><div class='add'>+0x8E22 = 0x4C5F</div><div class='add'>+0x8E23 = 0x755B</div><div class='add'>+0x8E29 = 0x3248</div><div class='add'>+0x8E2A = 0x5759</div><div class='add'>+0x8E2E = 0x755A</div><div class='add'>+0x8E31 = 0x7562</div><div class='add'>+0x8E34 = 0x533B</div><div class='add'>+0x8E35 = 0x7560</div><div class='add'>+0x8E39 = 0x755F</div><div class='add'>+0x8E3A = 0x755D</div><div class='add'>+0x8E3D = 0x7561</div><div class='add'>+0x8E40 = 0x755E</div><div class='add'>+0x8E41 = 0x7564</div><div class='add'>+0x8E42 = 0x7565</div><div class='add'>+0x8E44 = 0x4C63</div><div class='add'>+0x8E47 = 0x653F</div><div class='add'>+0x8E48 = 0x3538</div><div class='add'>+0x8E49 = 0x7563</div><div class='add'>+0x8E4A = 0x7568</div><div class='add'>+0x8E4B = 0x4C23</div><div class='add'>+0x8E4C = 0x7544</div><div class='add'>+0x8E55 = 0x754F</div><div class='add'>+0x8E59 = 0x753E</div><div class='add'>+0x8E63 = 0x7567</div><div class='add'>+0x8E66 = 0x3144</div><div class='add'>+0x8E69 = 0x753F</div><div class='add'>+0x8E6C = 0x3545</div><div class='add'>+0x8E6D = 0x3264</div><div class='add'>+0x8E6F = 0x756C</div><div class='add'>+0x8E70 = 0x7569</div><div class='add'>+0x8E72 = 0x3657</div><div class='add'>+0x8E74 = 0x756D</div><div class='add'>+0x8E76 = 0x756A</div><div class='add'>+0x8E7A = 0x754E</div><div class='add'>+0x8E7C = 0x756B</div><div class='add'>+0x8E81 = 0x546A</div><div class='add'>+0x8E85 = 0x756E</div><div class='add'>+0x8E87 = 0x3379</div><div class='add'>+0x8E89 = 0x753B</div><div class='add'>+0x8E8A = 0x336C</div><div class='add'>+0x8E8B = 0x7552</div><div class='add'>+0x8E8D = 0x543E</div><div class='add'>+0x8E90 = 0x7571</div><div class='add'>+0x8E91 = 0x755C</div><div class='add'>+0x8E92 = 0x7548</div><div class='add'>+0x8E93 = 0x7559</div><div class='add'>+0x8E94 = 0x7570</div><div class='add'>+0x8E9A = 0x7551</div><div class='add'>+0x8E9E = 0x7573</div><div class='add'>+0x8EA1 = 0x7566</div><div class='add'>+0x8EA5 = 0x345A</div><div class='add'>+0x8EA6 = 0x7572</div><div class='add'>+0x8EAA = 0x756F</div><div class='add'>+0x8EAB = 0x496D</div><div class='add'>+0x8EAC = 0x392A</div><div class='add'>+0x8EB2 = 0x3663</div><div class='add'>+0x8EBA = 0x4C49</div><div class='add'>+0x8EC0 = 0x477B</div><div class='add'>+0x8ECA = 0x3335</div><div class='add'>+0x8ECB = 0x547E</div><div class='add'>+0x8ECC = 0x396C</div><div class='add'>+0x8ECD = 0x3E7C</div><div class='add'>+0x8ECE = 0x6A26</div><div class='add'>+0x8ED2 = 0x5079</div><div class='add'>+0x8ED4 = 0x696D</div><div class='add'>+0x8EDB = 0x696E</div><div class='add'>+0x8EDF = 0x486D</div><div class='add'>+0x8EE4 = 0x6975</div><div class='add'>+0x8EEB = 0x6974</div><div class='add'>+0x8EF2 = 0x696F</div><div class='add'>+0x8EF8 = 0x5661</div><div class='add'>+0x8EF9 = 0x6972</div><div class='add'>+0x8EFA = 0x6977</div><div class='add'>+0x8EFB = 0x6970</div><div class='add'>+0x8EFC = 0x6973</div><div class='add'>+0x8EFE = 0x6978</div><div class='add'>+0x8F03 = 0x3D4F</div><div class='add'>+0x8F05 = 0x697B</div><div class='add'>+0x8F07 = 0x697A</div><div class='add'>+0x8F09 = 0x5458</div><div class='add'>+0x8F0A = 0x6979</div><div class='add'>+0x8F12 = 0x697C</div><div class='add'>+0x8F14 = 0x3828</div><div class='add'>+0x8F15 = 0x4761</div><div class='add'>+0x8F1B = 0x413E</div><div class='add'>+0x8F1C = 0x6A22</div><div class='add'>+0x8F1D = 0x3B54</div><div class='add'>+0x8F1E = 0x697E</div><div class='add'>+0x8F1F = 0x6A21</div><div class='add'>+0x8F25 = 0x3975</div><div class='add'>+0x8F26 = 0x697D</div><div class='add'>+0x8F29 = 0x3132</div><div class='add'>+0x8F2A = 0x4256</div><div class='add'>+0x8F2F = 0x3C2D</div><div class='add'>+0x8F33 = 0x6A23</div><div class='add'>+0x8F38 = 0x4A64</div><div class='add'>+0x8F3B = 0x3778</div><div class='add'>+0x8F3E = 0x5537</div><div class='add'>+0x8F3F = 0x535F</div><div class='add'>+0x8F42 = 0x6C31</div><div class='add'>+0x8F44 = 0x4F3D</div><div class='add'>+0x8F45 = 0x542F</div><div class='add'>+0x8F46 = 0x6A24</div><div class='add'>+0x8F49 = 0x572A</div><div class='add'>+0x8F4D = 0x555E</div><div class='add'>+0x8F4E = 0x3D4E</div><div class='add'>+0x8F54 = 0x6A25</div><div class='add'>+0x8F5F = 0x3A64</div><div class='add'>+0x8F61 = 0x604E</div><div class='add'>+0x8F62 = 0x6976</div><div class='add'>+0x8F64 = 0x6971</div><div class='add'>+0x8F9B = 0x5041</div><div class='add'>+0x8F9C = 0x393C</div><div class='add'>+0x8F9F = 0x3159</div><div class='add'>+0x8FA3 = 0x4031</div><div class='add'>+0x8FA6 = 0x306C</div><div class='add'>+0x8FA8 = 0x3166</div><div class='add'>+0x8FAD = 0x3447</div><div class='add'>+0x8FAE = 0x3168</div><div class='add'>+0x8FAF = 0x3167</div><div class='add'>+0x8FB0 = 0x333D</div><div class='add'>+0x8FB1 = 0x4868</div><div class='add'>+0x8FB2 = 0x4529</div><div class='add'>+0x8FB6 = 0x6541</div><div class='add'>+0x8FC2 = 0x5358</div><div class='add'>+0x8FC4 = 0x4679</div><div class='add'>+0x8FC5 = 0x5138</div><div class='add'>+0x8FCE = 0x532D</div><div class='add'>+0x8FD1 = 0x3D7C</div><div class='add'>+0x8FD3 = 0x6542</div><div class='add'>+0x8FD4 = 0x3735</div><div class='add'>+0x8FD5 = 0x6543</div><div class='add'>+0x8FE2 = 0x4C76</div><div class='add'>+0x8FE4 = 0x6546</div><div class='add'>+0x8FE5 = 0x6544</div><div class='add'>+0x8FE6 = 0x6548</div><div class='add'>+0x8FE8 = 0x654A</div><div class='add'>+0x8FEA = 0x354F</div><div class='add'>+0x8FEB = 0x4648</div><div class='add'>+0x8FED = 0x357C</div><div class='add'>+0x8FEE = 0x6545</div><div class='add'>+0x8FF0 = 0x4A76</div><div class='add'>+0x8FF4 = 0x783C</div><div class='add'>+0x8FF7 = 0x4354</div><div class='add'>+0x8FF8 = 0x3145</div><div class='add'>+0x8FF9 = 0x3C23</div><div class='add'>+0x8FFD = 0x5737</div><div class='add'>+0x9000 = 0x4D4B</div><div class='add'>+0x9001 = 0x4B4D</div><div class='add'>+0x9003 = 0x4C53</div><div class='add'>+0x9004 = 0x654C</div><div class='add'>+0x9005 = 0x654B</div><div class='add'>+0x9006 = 0x4466</div><div class='add'>+0x900B = 0x654D</div><div class='add'>+0x900D = 0x6550</div><div class='add'>+0x900F = 0x4D38</div><div class='add'>+0x9010 = 0x5670</div><div class='add'>+0x9011 = 0x654F</div><div class='add'>+0x9014 = 0x4D3E</div><div class='add'>+0x9015 = 0x6549</div><div class='add'>+0x9016 = 0x6551</div><div class='add'>+0x9017 = 0x363A</div><div class='add'>+0x9019 = 0x5562</div><div class='add'>+0x901A = 0x4D28</div><div class='add'>+0x901B = 0x3964</div><div class='add'>+0x901D = 0x4A45</div><div class='add'>+0x901E = 0x3351</div><div class='add'>+0x901F = 0x4B59</div><div class='add'>+0x9020 = 0x546C</div><div class='add'>+0x9021 = 0x6552</div><div class='add'>+0x9022 = 0x376A</div><div class='add'>+0x9023 = 0x412C</div><div class='add'>+0x902D = 0x6555</div><div class='add'>+0x902E = 0x347E</div><div class='add'>+0x902F = 0x6556</div><div class='add'>+0x9032 = 0x3D78</div><div class='add'>+0x9035 = 0x6553</div><div class='add'>+0x9036 = 0x6554</div><div class='add'>+0x9038 = 0x525D</div><div class='add'>+0x903C = 0x3146</div><div class='add'>+0x903E = 0x5362</div><div class='add'>+0x9041 = 0x365D</div><div class='add'>+0x9042 = 0x4B6C</div><div class='add'>+0x9044 = 0x6557</div><div class='add'>+0x9047 = 0x5376</div><div class='add'>+0x904B = 0x544B</div><div class='add'>+0x904D = 0x3169</div><div class='add'>+0x904E = 0x397D</div><div class='add'>+0x904F = 0x3674</div><div class='add'>+0x9050 = 0x655A</div><div class='add'>+0x9051 = 0x6558</div><div class='add'>+0x9052 = 0x6559</div><div class='add'>+0x9053 = 0x3540</div><div class='add'>+0x9054 = 0x346F</div><div class='add'>+0x9055 = 0x4E25</div><div class='add'>+0x9058 = 0x655C</div><div class='add'>+0x905B = 0x655E</div><div class='add'>+0x905C = 0x5137</div><div class='add'>+0x905E = 0x355D</div><div class='add'>+0x9060 = 0x5436</div><div class='add'>+0x9062 = 0x655D</div><div class='add'>+0x9063 = 0x4732</div><div class='add'>+0x9065 = 0x5223</div><div class='add'>+0x9068 = 0x655B</div><div class='add'>+0x9069 = 0x4A4A</div><div class='add'>+0x906D = 0x5462</div><div class='add'>+0x906E = 0x555A</div><div class='add'>+0x9072 = 0x3359</div><div class='add'>+0x9074 = 0x6560</div><div class='add'>+0x9075 = 0x5771</div><div class='add'>+0x9077 = 0x4728</div><div class='add'>+0x9078 = 0x5121</div><div class='add'>+0x907A = 0x5245</div><div class='add'>+0x907C = 0x4149</div><div class='add'>+0x907D = 0x6561</div><div class='add'>+0x907F = 0x315C</div><div class='add'>+0x9080 = 0x517B</div><div class='add'>+0x9081 = 0x4275</div><div class='add'>+0x9082 = 0x6562</div><div class='add'>+0x9083 = 0x6564</div><div class='add'>+0x9084 = 0x3B39</div><div class='add'>+0x9087 = 0x6547</div><div class='add'>+0x9088 = 0x6563</div><div class='add'>+0x908A = 0x315F</div><div class='add'>+0x908B = 0x6565</div><div class='add'>+0x908F = 0x425F</div><div class='add'>+0x9090 = 0x654E</div><div class='add'>+0x9091 = 0x5258</div><div class='add'>+0x9095 = 0x675F</div><div class='add'>+0x9097 = 0x5A75</div><div class='add'>+0x9099 = 0x5A78</div><div class='add'>+0x909B = 0x5A76</div><div class='add'>+0x90A1 = 0x5A7A</div><div class='add'>+0x90A2 = 0x504F</div><div class='add'>+0x90A3 = 0x4447</div><div class='add'>+0x90A6 = 0x306E</div><div class='add'>+0x90AA = 0x5030</div><div class='add'>+0x90AF = 0x3A2A</div><div class='add'>+0x90B0 = 0x5B22</div><div class='add'>+0x90B1 = 0x4771</div><div class='add'>+0x90B3 = 0x5A7C</div><div class='add'>+0x90B4 = 0x5A7B</div><div class='add'>+0x90B5 = 0x495B</div><div class='add'>+0x90B6 = 0x5A7D</div><div class='add'>+0x90B8 = 0x5B21</div><div class='add'>+0x90BE = 0x5B25</div><div class='add'>+0x90C1 = 0x7879</div><div class='add'>+0x90C4 = 0x5B27</div><div class='add'>+0x90C5 = 0x5B24</div><div class='add'>+0x90C7 = 0x5B28</div><div class='add'>+0x90CA = 0x3D3C</div><div class='add'>+0x90CE = 0x4049</div><div class='add'>+0x90D7 = 0x5B2D</div><div class='add'>+0x90DB = 0x5B2E</div><div class='add'>+0x90DC = 0x5B2C</div><div class='add'>+0x90DD = 0x3A42</div><div class='add'>+0x90DF = 0x5B23</div><div class='add'>+0x90E1 = 0x3F24</div><div class='add'>+0x90E2 = 0x5B2B</div><div class='add'>+0x90E8 = 0x323F</div><div class='add'>+0x90EB = 0x5B2F</div><div class='add'>+0x90ED = 0x3979</div><div class='add'>+0x90EF = 0x5B30</div><div class='add'>+0x90F4 = 0x333B</div><div class='add'>+0x90F5 = 0x534A</div><div class='add'>+0x90FD = 0x363C</div><div class='add'>+0x90FE = 0x5B31</div><div class='add'>+0x9102 = 0x3675</div><div class='add'>+0x9104 = 0x5B32</div><div class='add'>+0x9106 = 0x5B29</div><div class='add'>+0x9109 = 0x4F67</div><div class='add'>+0x9112 = 0x575E</div><div class='add'>+0x9114 = 0x5A79</div><div class='add'>+0x9116 = 0x5447</div><div class='add'>+0x9119 = 0x3149</div><div class='add'>+0x911E = 0x5B34</div><div class='add'>+0x9122 = 0x5B33</div><div class='add'>+0x9123 = 0x5B35</div><div class='add'>+0x9127 = 0x354B</div><div class='add'>+0x912D = 0x5623</div><div class='add'>+0x912F = 0x5B37</div><div class='add'>+0x9130 = 0x415A</div><div class='add'>+0x9131 = 0x5B36</div><div class='add'>+0x9132 = 0x3526</div><div class='add'>+0x9134 = 0x5A7E</div><div class='add'>+0x9136 = 0x5B26</div><div class='add'>+0x9139 = 0x5B38</div><div class='add'>+0x913A = 0x5A77</div><div class='add'>+0x9143 = 0x5B39</div><div class='add'>+0x9146 = 0x5B3A</div><div class='add'>+0x9148 = 0x5B2A</div><div class='add'>+0x9149 = 0x534F</div><div class='add'>+0x914A = 0x747A</div><div class='add'>+0x914B = 0x4775</div><div class='add'>+0x914C = 0x5743</div><div class='add'>+0x914D = 0x4564</div><div class='add'>+0x914E = 0x747C</div><div class='add'>+0x914F = 0x747D</div><div class='add'>+0x9150 = 0x747B</div><div class='add'>+0x9152 = 0x3E46</div><div class='add'>+0x9157 = 0x506F</div><div class='add'>+0x915A = 0x3753</div><div class='add'>+0x915E = 0x4C2A</div><div class='add'>+0x9161 = 0x7522</div><div class='add'>+0x9162 = 0x7521</div><div class='add'>+0x9163 = 0x3A28</div><div class='add'>+0x9164 = 0x747E</div><div class='add'>+0x9165 = 0x4B56</div><div class='add'>+0x9169 = 0x7524</div><div class='add'>+0x916A = 0x4052</div><div class='add'>+0x916C = 0x336A</div><div class='add'>+0x916E = 0x4D2A</div><div class='add'>+0x916F = 0x7525</div><div class='add'>+0x9170 = 0x7523</div><div class='add'>+0x9172 = 0x7528</div><div class='add'>+0x9174 = 0x7529</div><div class='add'>+0x9175 = 0x3D4D</div><div class='add'>+0x9176 = 0x4338</div><div class='add'>+0x9177 = 0x3F61</div><div class='add'>+0x9178 = 0x4B61</div><div class='add'>+0x9179 = 0x752A</div><div class='add'>+0x9185 = 0x752C</div><div class='add'>+0x9187 = 0x343C</div><div class='add'>+0x9189 = 0x576D</div><div class='add'>+0x918B = 0x3457</div><div class='add'>+0x918C = 0x752B</div><div class='add'>+0x918D = 0x752E</div><div class='add'>+0x9190 = 0x752D</div><div class='add'>+0x9191 = 0x752F</div><div class='add'>+0x9192 = 0x5051</div><div class='add'>+0x9196 = 0x544D</div><div class='add'>+0x919A = 0x4351</div><div class='add'>+0x919B = 0x4829</div><div class='add'>+0x919C = 0x3373</div><div class='add'>+0x91A2 = 0x7530</div><div class='add'>+0x91A3 = 0x7531</div><div class='add'>+0x91AA = 0x7532</div><div class='add'>+0x91AB = 0x523D</div><div class='add'>+0x91AC = 0x3D34</div><div class='add'>+0x91AD = 0x7533</div><div class='add'>+0x91AE = 0x7534</div><div class='add'>+0x91AF = 0x7535</div><div class='add'>+0x91B4 = 0x7537</div><div class='add'>+0x91B5 = 0x7536</div><div class='add'>+0x91BA = 0x7538</div><div class='add'>+0x91C0 = 0x4470</div><div class='add'>+0x91C1 = 0x5046</div><div class='add'>+0x91C3 = 0x7527</div><div class='add'>+0x91C5 = 0x7526</div><div class='add'>+0x91C7 = 0x3249</div><div class='add'>+0x91C9 = 0x5354</div><div class='add'>+0x91CB = 0x4A4D</div><div class='add'>+0x91CC = 0x784E</div><div class='add'>+0x91CD = 0x5658</div><div class='add'>+0x91CE = 0x5230</div><div class='add'>+0x91CF = 0x413F</div><div class='add'>+0x91D1 = 0x3D70</div><div class='add'>+0x91D2 = 0x6E44</div><div class='add'>+0x91D3 = 0x6E45</div><div class='add'>+0x91D4 = 0x6E46</div><div class='add'>+0x91D5 = 0x6E49</div><div class='add'>+0x91D7 = 0x6E48</div><div class='add'>+0x91D8 = 0x3624</div><div class='add'>+0x91D9 = 0x6E47</div><div class='add'>+0x91DC = 0x382A</div><div class='add'>+0x91DD = 0x556B</div><div class='add'>+0x91E3 = 0x3576</div><div class='add'>+0x91E4 = 0x6E4C</div><div class='add'>+0x91E7 = 0x6E4B</div><div class='add'>+0x91E9 = 0x3730</div><div class='add'>+0x91F5 = 0x6E4E</div><div class='add'>+0x91F7 = 0x6E4A</div><div class='add'>+0x91F9 = 0x6E4F</div><div class='add'>+0x91FA = 0x4725</div><div class='add'>+0x9200 = 0x6E59</div><div class='add'>+0x9201 = 0x6E55</div><div class='add'>+0x9204 = 0x6E57</div><div class='add'>+0x9208 = 0x6E50</div><div class='add'>+0x9209 = 0x4446</div><div class='add'>+0x920D = 0x365B</div><div class='add'>+0x920E = 0x3933</div><div class='add'>+0x9210 = 0x6E54</div><div class='add'>+0x9211 = 0x6E53</div><div class='add'>+0x9214 = 0x332E</div><div class='add'>+0x9215 = 0x4525</div><div class='add'>+0x921E = 0x3E7B</div><div class='add'>+0x9223 = 0x3846</div><div class='add'>+0x9225 = 0x6E58</div><div class='add'>+0x9226 = 0x6E51</div><div class='add'>+0x9227 = 0x6E56</div><div class='add'>+0x922E = 0x6E6A</div><div class='add'>+0x9230 = 0x6E66</div><div class='add'>+0x9233 = 0x6E5D</div><div class='add'>+0x9234 = 0x4165</div><div class='add'>+0x9237 = 0x6E5C</div><div class='add'>+0x9238 = 0x6E60</div><div class='add'>+0x9239 = 0x6E6B</div><div class='add'>+0x923A = 0x6E5A</div><div class='add'>+0x923D = 0x6E5F</div><div class='add'>+0x923E = 0x534B</div><div class='add'>+0x923F = 0x6E64</div><div class='add'>+0x9240 = 0x3C58</div><div class='add'>+0x9245 = 0x6E52</div><div class='add'>+0x9248 = 0x6E68</div><div class='add'>+0x9249 = 0x6E67</div><div class='add'>+0x924D = 0x6E69</div><div class='add'>+0x9251 = 0x322C</div><div class='add'>+0x9255 = 0x6E5E</div><div class='add'>+0x9257 = 0x472F</div><div class='add'>+0x925A = 0x432D</div><div class='add'>+0x925B = 0x4726</div><div class='add'>+0x925E = 0x6E61</div><div class='add'>+0x9262 = 0x3227</div><div class='add'>+0x9266 = 0x6E5B</div><div class='add'>+0x926C = 0x6E62</div><div class='add'>+0x926D = 0x6E63</div><div class='add'>+0x9278 = 0x3D42</div><div class='add'>+0x927A = 0x6E6F</div><div class='add'>+0x927B = 0x3875</div><div class='add'>+0x927F = 0x6E7E</div><div class='add'>+0x9280 = 0x5278</div><div class='add'>+0x9283 = 0x6F25</div><div class='add'>+0x9285 = 0x4D2D</div><div class='add'>+0x928E = 0x7646</div><div class='add'>+0x9291 = 0x4F33</div><div class='add'>+0x9293 = 0x6E7D</div><div class='add'>+0x9296 = 0x6E79</div><div class='add'>+0x9298 = 0x437A</div><div class='add'>+0x929A = 0x6F22</div><div class='add'>+0x929C = 0x4F4E</div><div class='add'>+0x92A0 = 0x6E6E</div><div class='add'>+0x92A3 = 0x6F28</div><div class='add'>+0x92A5 = 0x523F</div><div class='add'>+0x92A6 = 0x6E77</div><div class='add'>+0x92A8 = 0x6F27</div><div class='add'>+0x92A9 = 0x6E7B</div><div class='add'>+0x92AA = 0x6E70</div><div class='add'>+0x92AB = 0x6F24</div><div class='add'>+0x92AC = 0x6E6D</div><div class='add'>+0x92B1 = 0x6E76</div><div class='add'>+0x92B7 = 0x4F7A</div><div class='add'>+0x92B9 = 0x5062</div><div class='add'>+0x92BB = 0x4C60</div><div class='add'>+0x92BC = 0x6F31</div><div class='add'>+0x92C1 = 0x4241</div><div class='add'>+0x92C3 = 0x6F36</div><div class='add'>+0x92C5 = 0x503F</div><div class='add'>+0x92C7 = 0x3135</div><div class='add'>+0x92C8 = 0x7648</div><div class='add'>+0x92CC = 0x6E7A</div><div class='add'>+0x92CF = 0x6E72</div><div class='add'>+0x92D2 = 0x3766</div><div class='add'>+0x92DD = 0x6F32</div><div class='add'>+0x92DF = 0x6F37</div><div class='add'>+0x92E3 = 0x6E74</div><div class='add'>+0x92E4 = 0x337A</div><div class='add'>+0x92E5 = 0x6F2D</div><div class='add'>+0x92E6 = 0x6F38</div><div class='add'>+0x92E8 = 0x6F30</div><div class='add'>+0x92EA = 0x464C</div><div class='add'>+0x92ED = 0x4871</div><div class='add'>+0x92EE = 0x6E71</div><div class='add'>+0x92EF = 0x6F2F</div><div class='add'>+0x92F0 = 0x6F2E</div><div class='add'>+0x92F1 = 0x6F2B</div><div class='add'>+0x92F6 = 0x6F33</div><div class='add'>+0x92F8 = 0x3E62</div><div class='add'>+0x92FC = 0x3856</div><div class='add'>+0x9301 = 0x6F3E</div><div class='add'>+0x9306 = 0x6F3A</div><div class='add'>+0x9307 = 0x6F42</div><div class='add'>+0x9308 = 0x6F43</div><div class='add'>+0x9310 = 0x5736</div><div class='add'>+0x9312 = 0x6F39</div><div class='add'>+0x9315 = 0x6F3F</div><div class='add'>+0x9318 = 0x3438</div><div class='add'>+0x9319 = 0x6F45</div><div class='add'>+0x931A = 0x6F23</div><div class='add'>+0x931B = 0x6F3C</div><div class='add'>+0x931F = 0x6F44</div><div class='add'>+0x9320 = 0x3627</div><div class='add'>+0x9322 = 0x472E</div><div class='add'>+0x9326 = 0x3D75</div><div class='add'>+0x9328 = 0x432A</div><div class='add'>+0x932B = 0x4E7D</div><div class='add'>+0x932E = 0x6F40</div><div class='add'>+0x932F = 0x346D</div><div class='add'>+0x9332 = 0x423C</div><div class='add'>+0x9333 = 0x434C</div><div class='add'>+0x9336 = 0x7823</div><div class='add'>+0x9338 = 0x6F2A</div><div class='add'>+0x9340 = 0x6F3D</div><div class='add'>+0x9341 = 0x4F47</div><div class='add'>+0x9343 = 0x6F41</div><div class='add'>+0x9346 = 0x6E4D</div><div class='add'>+0x9347 = 0x6F47</div><div class='add'>+0x934B = 0x3978</div><div class='add'>+0x934D = 0x3646</div><div class='add'>+0x9354 = 0x6F49</div><div class='add'>+0x9358 = 0x5521</div><div class='add'>+0x935B = 0x364D</div><div class='add'>+0x9364 = 0x6F4A</div><div class='add'>+0x9365 = 0x6F46</div><div class='add'>+0x9369 = 0x6F3B</div><div class='add'>+0x936A = 0x764A</div><div class='add'>+0x936C = 0x4742</div><div class='add'>+0x9370 = 0x6F4C</div><div class='add'>+0x9375 = 0x3C7C</div><div class='add'>+0x9376 = 0x6F48</div><div class='add'>+0x937A = 0x5560</div><div class='add'>+0x937E = 0x6F71</div><div class='add'>+0x9382 = 0x433E</div><div class='add'>+0x9384 = 0x6F4D</div><div class='add'>+0x9387 = 0x6F51</div><div class='add'>+0x938A = 0x3077</div><div class='add'>+0x938F = 0x764C</div><div class='add'>+0x9396 = 0x4B78</div><div class='add'>+0x9398 = 0x6F53</div><div class='add'>+0x93A2 = 0x4E59</div><div class='add'>+0x93A3 = 0x5D76</div><div class='add'>+0x93A6 = 0x6F56</div><div class='add'>+0x93A7 = 0x6E78</div><div class='add'>+0x93A9 = 0x6F21</div><div class='add'>+0x93AA = 0x6F4B</div><div class='add'>+0x93AC = 0x3864</div><div class='add'>+0x93AE = 0x5572</div><div class='add'>+0x93B0 = 0x6F57</div><div class='add'>+0x93B3 = 0x4478</div><div class='add'>+0x93B5 = 0x6F58</div><div class='add'>+0x93B8 = 0x6F54</div><div class='add'>+0x93BF = 0x6F55</div><div class='add'>+0x93C3 = 0x6F5F</div><div class='add'>+0x93C7 = 0x6F60</div><div class='add'>+0x93C8 = 0x4134</div><div class='add'>+0x93CA = 0x764B</div><div class='add'>+0x93CC = 0x6F52</div><div class='add'>+0x93CD = 0x6F5D</div><div class='add'>+0x93D1 = 0x6F61</div><div class='add'>+0x93D6 = 0x7769</div><div class='add'>+0x93D7 = 0x6F2C</div><div class='add'>+0x93D8 = 0x6F4F</div><div class='add'>+0x93DC = 0x6F5B</div><div class='add'>+0x93DD = 0x6F5C</div><div class='add'>+0x93DE = 0x6F5E</div><div class='add'>+0x93DF = 0x3279</div><div class='add'>+0x93E1 = 0x3E35</div><div class='add'>+0x93E2 = 0x6F5A</div><div class='add'>+0x93E4 = 0x6F4E</div><div class='add'>+0x93E8 = 0x7649</div><div class='add'>+0x93F5 = 0x6E7C</div><div class='add'>+0x93F7 = 0x6F64</div><div class='add'>+0x93F9 = 0x6F6A</div><div class='add'>+0x9403 = 0x6E73</div><div class='add'>+0x940B = 0x6F26</div><div class='add'>+0x9410 = 0x414D</div><div class='add'>+0x9412 = 0x6F29</div><div class='add'>+0x9413 = 0x6F66</div><div class='add'>+0x9414 = 0x6F62</div><div class='add'>+0x9418 = 0x5653</div><div class='add'>+0x9419 = 0x6F6B</div><div class='add'>+0x941D = 0x6F63</div><div class='add'>+0x9420 = 0x6F68</div><div class='add'>+0x9426 = 0x6F34</div><div class='add'>+0x9427 = 0x6F35</div><div class='add'>+0x9428 = 0x6F50</div><div class='add'>+0x942E = 0x412D</div><div class='add'>+0x9432 = 0x6F6D</div><div class='add'>+0x9433 = 0x4058</div><div class='add'>+0x9435 = 0x4C7A</div><div class='add'>+0x9438 = 0x6E6C</div><div class='add'>+0x943A = 0x6E75</div><div class='add'>+0x943E = 0x764D</div><div class='add'>+0x943F = 0x6F6E</div><div class='add'>+0x9444 = 0x567D</div><div class='add'>+0x944A = 0x6F6C</div><div class='add'>+0x944C = 0x6F59</div><div class='add'>+0x9452 = 0x3C78</div><div class='add'>+0x9454 = 0x6F6F</div><div class='add'>+0x9460 = 0x6E65</div><div class='add'>+0x9463 = 0x6F70</div><div class='add'>+0x9465 = 0x6F65</div><div class='add'>+0x946B = 0x764E</div><div class='add'>+0x946D = 0x6F67</div><div class='add'>+0x9470 = 0x543F</div><div class='add'>+0x9472 = 0x4F62</div><div class='add'>+0x9477 = 0x4477</div><div class='add'>+0x9479 = 0x6F69</div><div class='add'>+0x947C = 0x4260</div><div class='add'>+0x947D = 0x576A</div><div class='add'>+0x947E = 0x7647</div><div class='add'>+0x947F = 0x5464</div><div class='add'>+0x9577 = 0x3324</div><div class='add'>+0x9580 = 0x4345</div><div class='add'>+0x9582 = 0x6345</div><div class='add'>+0x9583 = 0x4941</div><div class='add'>+0x9586 = 0x6346</div><div class='add'>+0x9589 = 0x3155</div><div class='add'>+0x958B = 0x3F2A</div><div class='add'>+0x958C = 0x634A</div><div class='add'>+0x958E = 0x6348</div><div class='add'>+0x958F = 0x4872</div><div class='add'>+0x9591 = 0x4F50</div><div class='add'>+0x9593 = 0x3C64</div><div class='add'>+0x9594 = 0x6349</div><div class='add'>+0x9598 = 0x5522</div><div class='add'>+0x95A1 = 0x3A52</div><div class='add'>+0x95A3 = 0x3873</div><div class='add'>+0x95A4 = 0x7839</div><div class='add'>+0x95A5 = 0x3727</div><div class='add'>+0x95A8 = 0x396B</div><div class='add'>+0x95A9 = 0x4376</div><div class='add'>+0x95AB = 0x634D</div><div class='add'>+0x95AC = 0x634F</div><div class='add'>+0x95AD = 0x634C</div><div class='add'>+0x95B2 = 0x5444</div><div class='add'>+0x95B6 = 0x6351</div><div class='add'>+0x95B9 = 0x514B</div><div class='add'>+0x95BB = 0x5156</div><div class='add'>+0x95BC = 0x6355</div><div class='add'>+0x95BD = 0x6354</div><div class='add'>+0x95BE = 0x6350</div><div class='add'>+0x95BF = 0x6353</div><div class='add'>+0x95C3 = 0x6356</div><div class='add'>+0x95C6 = 0x7822</div><div class='add'>+0x95C8 = 0x6347</div><div class='add'>+0x95CA = 0x402B</div><div class='add'>+0x95CB = 0x6357</div><div class='add'>+0x95CC = 0x403B</div><div class='add'>+0x95D0 = 0x6359</div><div class='add'>+0x95D4 = 0x6358</div><div class='add'>+0x95D5 = 0x635A</div><div class='add'>+0x95D6 = 0x3433</div><div class='add'>+0x95DC = 0x3958</div><div class='add'>+0x95DE = 0x635B</div><div class='add'>+0x95E1 = 0x327B</div><div class='add'>+0x95E2 = 0x785B</div><div class='add'>+0x95E5 = 0x634B</div><div class='add'>+0x961C = 0x3837</div><div class='add'>+0x961D = 0x5A62</div><div class='add'>+0x9621 = 0x5A64</div><div class='add'>+0x9622 = 0x5A63</div><div class='add'>+0x962A = 0x5A66</div><div class='add'>+0x962E = 0x486E</div><div class='add'>+0x9631 = 0x5A65</div><div class='add'>+0x9632 = 0x3740</div><div class='add'>+0x963B = 0x5768</div><div class='add'>+0x963C = 0x5A68</div><div class='add'>+0x963D = 0x5A67</div><div class='add'>+0x963F = 0x3022</div><div class='add'>+0x9640 = 0x4D53</div><div class='add'>+0x9642 = 0x5A69</div><div class='add'>+0x9644 = 0x383D</div><div class='add'>+0x964B = 0x422A</div><div class='add'>+0x964C = 0x4430</div><div class='add'>+0x964D = 0x3D35</div><div class='add'>+0x9650 = 0x4F5E</div><div class='add'>+0x9654 = 0x5A6B</div><div class='add'>+0x9658 = 0x5A6A</div><div class='add'>+0x965B = 0x315D</div><div class='add'>+0x965D = 0x4942</div><div class='add'>+0x965F = 0x5A6C</div><div class='add'>+0x9661 = 0x3638</div><div class='add'>+0x9662 = 0x543A</div><div class='add'>+0x9663 = 0x5573</div><div class='add'>+0x9664 = 0x337D</div><div class='add'>+0x966A = 0x4563</div><div class='add'>+0x966C = 0x5A6E</div><div class='add'>+0x9670 = 0x5275</div><div class='add'>+0x9672 = 0x5A6F</div><div class='add'>+0x9673 = 0x3342</div><div class='add'>+0x9674 = 0x5A70</div><div class='add'>+0x9675 = 0x416A</div><div class='add'>+0x9676 = 0x4C55</div><div class='add'>+0x9677 = 0x4F5D</div><div class='add'>+0x9678 = 0x423D</div><div class='add'>+0x967D = 0x5174</div><div class='add'>+0x9685 = 0x5367</div><div class='add'>+0x9686 = 0x4221</div><div class='add'>+0x9688 = 0x5A71</div><div class='add'>+0x9689 = 0x5A6D</div><div class='add'>+0x968A = 0x3653</div><div class='add'>+0x968B = 0x4B65</div><div class='add'>+0x968D = 0x5A72</div><div class='add'>+0x968E = 0x3D57</div><div class='add'>+0x9694 = 0x3874</div><div class='add'>+0x9695 = 0x5449</div><div class='add'>+0x9697 = 0x5A73</div><div class='add'>+0x9698 = 0x302F</div><div class='add'>+0x9699 = 0x4F36</div><div class='add'>+0x969B = 0x3C4A</div><div class='add'>+0x969C = 0x554F</div><div class='add'>+0x96A7 = 0x4B6D</div><div class='add'>+0x96A8 = 0x4B66</div><div class='add'>+0x96AA = 0x4F55</div><div class='add'>+0x96B0 = 0x5A74</div><div class='add'>+0x96B1 = 0x527E</div><div class='add'>+0x96B3 = 0x6344</div><div class='add'>+0x96B4 = 0x4224</div><div class='add'>+0x96B8 = 0x4125</div><div class='add'>+0x96B9 = 0x763F</div><div class='add'>+0x96BB = 0x7922</div><div class='add'>+0x96BC = 0x7640</div><div class='add'>+0x96BD = 0x7641</div><div class='add'>+0x96C0 = 0x4838</div><div class='add'>+0x96C1 = 0x5163</div><div class='add'>+0x96C4 = 0x505B</div><div class='add'>+0x96C5 = 0x5145</div><div class='add'>+0x96C6 = 0x3C2F</div><div class='add'>+0x96C7 = 0x394D</div><div class='add'>+0x96C9 = 0x6F74</div><div class='add'>+0x96CC = 0x3446</div><div class='add'>+0x96CD = 0x533A</div><div class='add'>+0x96CE = 0x7642</div><div class='add'>+0x96D2 = 0x7643</div><div class='add'>+0x96D5 = 0x3571</div><div class='add'>+0x96D6 = 0x4B64</div><div class='add'>+0x96D9 = 0x4B2B</div><div class='add'>+0x96DB = 0x337B</div><div class='add'>+0x96DC = 0x5453</div><div class='add'>+0x96E2 = 0x406B</div><div class='add'>+0x96E3 = 0x4451</div><div class='add'>+0x96E8 = 0x536A</div><div class='add'>+0x96E9 = 0x7627</div><div class='add'>+0x96EA = 0x5129</div><div class='add'>+0x96EF = 0x7629</div><div class='add'>+0x96F2 = 0x5446</div><div class='add'>+0x96F6 = 0x4163</div><div class='add'>+0x96F7 = 0x4057</div><div class='add'>+0x96F9 = 0x3122</div><div class='add'>+0x96FB = 0x3567</div><div class='add'>+0x9700 = 0x5068</div><div class='add'>+0x9704 = 0x4F76</div><div class='add'>+0x9706 = 0x762A</div><div class='add'>+0x9707 = 0x5570</div><div class='add'>+0x9708 = 0x762C</div><div class='add'>+0x9709 = 0x4339</div><div class='add'>+0x970D = 0x3B74</div><div class='add'>+0x970E = 0x762E</div><div class='add'>+0x970F = 0x762D</div><div class='add'>+0x9713 = 0x445E</div><div class='add'>+0x9716 = 0x4158</div><div class='add'>+0x971C = 0x4B2A</div><div class='add'>+0x971E = 0x4F3C</div><div class='add'>+0x9727 = 0x4E6D</div><div class='add'>+0x972A = 0x762F</div><div class='add'>+0x9730 = 0x7631</div><div class='add'>+0x9732 = 0x4236</div><div class='add'>+0x9738 = 0x3054</div><div class='add'>+0x9739 = 0x4579</div><div class='add'>+0x973D = 0x762B</div><div class='add'>+0x973E = 0x7632</div><div class='add'>+0x9742 = 0x7628</div><div class='add'>+0x9744 = 0x7630</div><div class='add'>+0x9748 = 0x4169</div><div class='add'>+0x9752 = 0x4760</div><div class='add'>+0x9756 = 0x3E38</div><div class='add'>+0x975A = 0x7626</div><div class='add'>+0x975B = 0x3565</div><div class='add'>+0x975C = 0x3E32</div><div class='add'>+0x975E = 0x3747</div><div class='add'>+0x9760 = 0x3F3F</div><div class='add'>+0x9761 = 0x4352</div><div class='add'>+0x9762 = 0x4366</div><div class='add'>+0x9768 = 0x584C</div><div class='add'>+0x9769 = 0x386F</div><div class='add'>+0x9773 = 0x3D79</div><div class='add'>+0x9774 = 0x5125</div><div class='add'>+0x9776 = 0x3050</div><div class='add'>+0x977C = 0x7730</div><div class='add'>+0x9785 = 0x7731</div><div class='add'>+0x978B = 0x502C</div><div class='add'>+0x978D = 0x3030</div><div class='add'>+0x978F = 0x392E</div><div class='add'>+0x9794 = 0x7734</div><div class='add'>+0x9798 = 0x474A</div><div class='add'>+0x97A0 = 0x3E4F</div><div class='add'>+0x97A3 = 0x7737</div><div class='add'>+0x97A6 = 0x7864</div><div class='add'>+0x97AB = 0x7736</div><div class='add'>+0x97AD = 0x315E</div><div class='add'>+0x97B2 = 0x7738</div><div class='add'>+0x97B4 = 0x7739</div><div class='add'>+0x97BD = 0x7733</div><div class='add'>+0x97C3 = 0x7732</div><div class='add'>+0x97C6 = 0x7861</div><div class='add'>+0x97C9 = 0x7735</div><div class='add'>+0x97CB = 0x4E24</div><div class='add'>+0x97CC = 0x484D</div><div class='add'>+0x97D3 = 0x3A2B</div><div class='add'>+0x97D9 = 0x6838</div><div class='add'>+0x97DC = 0x683A</div><div class='add'>+0x97DE = 0x6839</div><div class='add'>+0x97ED = 0x3E42</div><div class='add'>+0x97F3 = 0x5274</div><div class='add'>+0x97F5 = 0x544F</div><div class='add'>+0x97F6 = 0x4958</div><div class='add'>+0x97FF = 0x4F6C</div><div class='add'>+0x9801 = 0x5233</div><div class='add'>+0x9802 = 0x3625</div><div class='add'>+0x9803 = 0x476A</div><div class='add'>+0x9805 = 0x4F6E</div><div class='add'>+0x9806 = 0x4B33</div><div class='add'>+0x9807 = 0x717C</div><div class='add'>+0x9808 = 0x506B</div><div class='add'>+0x980A = 0x676F</div><div class='add'>+0x980C = 0x4B4C</div><div class='add'>+0x980E = 0x717D</div><div class='add'>+0x980F = 0x717E</div><div class='add'>+0x9810 = 0x5424</div><div class='add'>+0x9811 = 0x4D67</div><div class='add'>+0x9812 = 0x3064</div><div class='add'>+0x9813 = 0x3659</div><div class='add'>+0x9817 = 0x4644</div><div class='add'>+0x9818 = 0x416C</div><div class='add'>+0x981C = 0x7222</div><div class='add'>+0x9821 = 0x7221</div><div class='add'>+0x9824 = 0x5243</div><div class='add'>+0x9826 = 0x7224</div><div class='add'>+0x982D = 0x4D37</div><div class='add'>+0x9830 = 0x3C55</div><div class='add'>+0x9837 = 0x7225</div><div class='add'>+0x9838 = 0x3E31</div><div class='add'>+0x983B = 0x4635</div><div class='add'>+0x983D = 0x4D47</div><div class='add'>+0x9846 = 0x3F45</div><div class='add'>+0x984C = 0x4C62</div><div class='add'>+0x984D = 0x366E</div><div class='add'>+0x984E = 0x7226</div><div class='add'>+0x9853 = 0x7227</div><div class='add'>+0x9854 = 0x5155</div><div class='add'>+0x9858 = 0x5438</div><div class='add'>+0x9859 = 0x722A</div><div class='add'>+0x985B = 0x355F</div><div class='add'>+0x985E = 0x4060</div><div class='add'>+0x9862 = 0x7229</div><div class='add'>+0x9865 = 0x722B</div><div class='add'>+0x9867 = 0x394B</div><div class='add'>+0x986B = 0x327C</div><div class='add'>+0x986C = 0x722C</div><div class='add'>+0x986F = 0x4F54</div><div class='add'>+0x9870 = 0x722D</div><div class='add'>+0x9871 = 0x422D</div><div class='add'>+0x9873 = 0x7228</div><div class='add'>+0x9874 = 0x4827</div><div class='add'>+0x98A8 = 0x3767</div><div class='add'>+0x98AE = 0x6C29</div><div class='add'>+0x98AF = 0x6C2A</div><div class='add'>+0x98B1 = 0x786C</div><div class='add'>+0x98B3 = 0x7837</div><div class='add'>+0x98B6 = 0x6C2B</div><div class='add'>+0x98BC = 0x6C2C</div><div class='add'>+0x98C4 = 0x462E</div><div class='add'>+0x98C6 = 0x6C2D</div><div class='add'>+0x98C8 = 0x6C2E</div><div class='add'>+0x98DB = 0x3749</div><div class='add'>+0x98DF = 0x4A33</div><div class='add'>+0x98E0 = 0x623B</div><div class='add'>+0x98E2 = 0x783F</div><div class='add'>+0x98E7 = 0x6238</div><div class='add'>+0x98E9 = 0x623D</div><div class='add'>+0x98EA = 0x623F</div><div class='add'>+0x98EB = 0x6240</div><div class='add'>+0x98ED = 0x6241</div><div class='add'>+0x98EF = 0x3739</div><div class='add'>+0x98F2 = 0x527B</div><div class='add'>+0x98F4 = 0x6242</div><div class='add'>+0x98FC = 0x4B47</div><div class='add'>+0x98FD = 0x3125</div><div class='add'>+0x98FE = 0x4A4E</div><div class='add'>+0x9903 = 0x3D48</div><div class='add'>+0x9905 = 0x317D</div><div class='add'>+0x9909 = 0x6243</div><div class='add'>+0x990A = 0x5178</div><div class='add'>+0x990C = 0x367C</div><div class='add'>+0x9910 = 0x324D</div><div class='add'>+0x9911 = 0x6244</div><div class='add'>+0x9912 = 0x4459</div><div class='add'>+0x9913 = 0x3676</div><div class='add'>+0x9918 = 0x5360</div><div class='add'>+0x991B = 0x6246</div><div class='add'>+0x991E = 0x3D24</div><div class='add'>+0x9921 = 0x4F5A</div><div class='add'>+0x9928 = 0x395D</div><div class='add'>+0x992E = 0x7751</div><div class='add'>+0x9933 = 0x623C</div><div class='add'>+0x9937 = 0x6247</div><div class='add'>+0x993C = 0x623E</div><div class='add'>+0x993E = 0x4173</div><div class='add'>+0x993F = 0x6248</div><div class='add'>+0x9943 = 0x6249</div><div class='add'>+0x9945 = 0x4278</div><div class='add'>+0x9948 = 0x624A</div><div class='add'>+0x9949 = 0x624B</div><div class='add'>+0x994A = 0x624C</div><div class='add'>+0x994B = 0x4021</div><div class='add'>+0x994C = 0x624D</div><div class='add'>+0x9951 = 0x3C22</div><div class='add'>+0x9952 = 0x4844</div><div class='add'>+0x9954 = 0x7753</div><div class='add'>+0x9955 = 0x7752</div><div class='add'>+0x9957 = 0x774F</div><div class='add'>+0x995C = 0x7750</div><div class='add'>+0x995E = 0x3276</div><div class='add'>+0x9962 = 0x624E</div><div class='add'>+0x9996 = 0x4A57</div><div class='add'>+0x9997 = 0x5838</div><div class='add'>+0x9998 = 0x5965</div><div class='add'>+0x9999 = 0x4F63</div><div class='add'>+0x99A5 = 0x7025</div><div class='add'>+0x99A8 = 0x5C30</div><div class='add'>+0x99AC = 0x426D</div><div class='add'>+0x99AD = 0x5426</div><div class='add'>+0x99AE = 0x376B</div><div class='add'>+0x99B1 = 0x4D54</div><div class='add'>+0x99B3 = 0x335B</div><div class='add'>+0x99B4 = 0x5131</div><div class='add'>+0x99C1 = 0x3235</div><div class='add'>+0x99D0 = 0x5724</div><div class='add'>+0x99D1 = 0x6665</div><div class='add'>+0x99D2 = 0x3E54</div><div class='add'>+0x99D4 = 0x6660</div><div class='add'>+0x99D5 = 0x3C5D</div><div class='add'>+0x99D8 = 0x6666</div><div class='add'>+0x99D9 = 0x6662</div><div class='add'>+0x99DB = 0x4A3B</div><div class='add'>+0x99DD = 0x4D55</div><div class='add'>+0x99DF = 0x6661</div><div class='add'>+0x99E1 = 0x426E</div><div class='add'>+0x99E2 = 0x6669</div><div class='add'>+0x99ED = 0x3A27</div><div class='add'>+0x99F1 = 0x4266</div><div class='add'>+0x99FF = 0x3F25</div><div class='add'>+0x9A01 = 0x3352</div><div class='add'>+0x9A05 = 0x666D</div><div class='add'>+0x9A0D = 0x666C</div><div class='add'>+0x9A0E = 0x466F</div><div class='add'>+0x9A0F = 0x666B</div><div class='add'>+0x9A16 = 0x6670</div><div class='add'>+0x9A19 = 0x462D</div><div class='add'>+0x9A2B = 0x6539</div><div class='add'>+0x9A2D = 0x666F</div><div class='add'>+0x9A2E = 0x6672</div><div class='add'>+0x9A30 = 0x4C5A</div><div class='add'>+0x9A36 = 0x6663</div><div class='add'>+0x9A37 = 0x4927</div><div class='add'>+0x9A38 = 0x6673</div><div class='add'>+0x9A3E = 0x4262</div><div class='add'>+0x9A40 = 0x5D6B</div><div class='add'>+0x9A41 = 0x6671</div><div class='add'>+0x9A42 = 0x666E</div><div class='add'>+0x9A43 = 0x6674</div><div class='add'>+0x9A44 = 0x6675</div><div class='add'>+0x9A45 = 0x477D</div><div class='add'>+0x9A4A = 0x6668</div><div class='add'>+0x9A4D = 0x6667</div><div class='add'>+0x9A4F = 0x6676</div><div class='add'>+0x9A55 = 0x3D3E</div><div class='add'>+0x9A57 = 0x5169</div><div class='add'>+0x9A5A = 0x3E2A</div><div class='add'>+0x9A5B = 0x6664</div><div class='add'>+0x9A5F = 0x5668</div><div class='add'>+0x9A62 = 0x423F</div><div class='add'>+0x9A64 = 0x6678</div><div class='add'>+0x9A65 = 0x6677</div><div class='add'>+0x9A6A = 0x666A</div><div class='add'>+0x9AA8 = 0x3947</div><div class='add'>+0x9AAF = 0x3039</div><div class='add'>+0x9AB0 = 0x773B</div><div class='add'>+0x9AB1 = 0x773A</div><div class='add'>+0x9AB6 = 0x773E</div><div class='add'>+0x9AB7 = 0x773C</div><div class='add'>+0x9AB8 = 0x3A21</div><div class='add'>+0x9ABA = 0x773F</div><div class='add'>+0x9ABC = 0x7740</div><div class='add'>+0x9AC0 = 0x7742</div><div class='add'>+0x9AC1 = 0x7741</div><div class='add'>+0x9AC2 = 0x7744</div><div class='add'>+0x9ACF = 0x7743</div><div class='add'>+0x9AD1 = 0x7747</div><div class='add'>+0x9AD2 = 0x787E</div><div class='add'>+0x9AD3 = 0x4B68</div><div class='add'>+0x9AD4 = 0x4C65</div><div class='add'>+0x9AD5 = 0x7746</div><div class='add'>+0x9AD6 = 0x7745</div><div class='add'>+0x9AD8 = 0x385F</div><div class='add'>+0x9ADF = 0x7754</div><div class='add'>+0x9AE1 = 0x7755</div><div class='add'>+0x9AE6 = 0x7756</div><div class='add'>+0x9AEB = 0x7758</div><div class='add'>+0x9AED = 0x775A</div><div class='add'>+0x9AEE = 0x7831</div><div class='add'>+0x9AEF = 0x7757</div><div class='add'>+0x9AF9 = 0x775B</div><div class='add'>+0x9AFB = 0x7759</div><div class='add'>+0x9B03 = 0x5757</div><div class='add'>+0x9B06 = 0x4B49</div><div class='add'>+0x9B08 = 0x775C</div><div class='add'>+0x9B0D = 0x783A</div><div class='add'>+0x9B0F = 0x775D</div><div class='add'>+0x9B1A = 0x7876</div><div class='add'>+0x9B1F = 0x775F</div><div class='add'>+0x9B22 = 0x775E</div><div class='add'>+0x9B23 = 0x7760</div><div class='add'>+0x9B25 = 0x3637</div><div class='add'>+0x9B27 = 0x4456</div><div class='add'>+0x9B29 = 0x6352</div><div class='add'>+0x9B2E = 0x634E</div><div class='add'>+0x9B2F = 0x5B4B</div><div class='add'>+0x9B31 = 0x5374</div><div class='add'>+0x9B32 = 0x582A</div><div class='add'>+0x9B3B = 0x6577</div><div class='add'>+0x9B3C = 0x396D</div><div class='add'>+0x9B41 = 0x3F7D</div><div class='add'>+0x9B42 = 0x3B6A</div><div class='add'>+0x9B43 = 0x7749</div><div class='add'>+0x9B44 = 0x4647</div><div class='add'>+0x9B45 = 0x7748</div><div class='add'>+0x9B48 = 0x774C</div><div class='add'>+0x9B4D = 0x774D</div><div class='add'>+0x9B4E = 0x774B</div><div class='add'>+0x9B4F = 0x4E3A</div><div class='add'>+0x9B51 = 0x774E</div><div class='add'>+0x9B54 = 0x4427</div><div class='add'>+0x9B58 = 0x774A</div><div class='add'>+0x9B5A = 0x5363</div><div class='add'>+0x9B6F = 0x4233</div><div class='add'>+0x9B74 = 0x7650</div><div class='add'>+0x9B77 = 0x764F</div><div class='add'>+0x9B81 = 0x7651</div><div class='add'>+0x9B83 = 0x7652</div><div class='add'>+0x9B8E = 0x7653</div><div class='add'>+0x9B90 = 0x7658</div><div class='add'>+0x9B91 = 0x312B</div><div class='add'>+0x9B92 = 0x7656</div><div class='add'>+0x9B9A = 0x765A</div><div class='add'>+0x9B9D = 0x765F</div><div class='add'>+0x9B9E = 0x765C</div><div class='add'>+0x9BAA = 0x765B</div><div class='add'>+0x9BAB = 0x765E</div><div class='add'>+0x9BAD = 0x7659</div><div class='add'>+0x9BAE = 0x4F4A</div><div class='add'>+0x9BC0 = 0x7667</div><div class='add'>+0x9BC1 = 0x7661</div><div class='add'>+0x9BC7 = 0x7669</div><div class='add'>+0x9BC9 = 0x4070</div><div class='add'>+0x9BCA = 0x7668</div><div class='add'>+0x9BD4 = 0x7676</div><div class='add'>+0x9BD6 = 0x766B</div><div class='add'>+0x9BDB = 0x7674</div><div class='add'>+0x9BDD = 0x7671</div><div class='add'>+0x9BE1 = 0x766E</div><div class='add'>+0x9BE2 = 0x7672</div><div class='add'>+0x9BE4 = 0x766F</div><div class='add'>+0x9BE7 = 0x7670</div><div class='add'>+0x9BE8 = 0x3E28</div><div class='add'>+0x9BEA = 0x766C</div><div class='add'>+0x9BEB = 0x766D</div><div class='add'>+0x9BF0 = 0x7673</div><div class='add'>+0x9BF4 = 0x7675</div><div class='add'>+0x9BFD = 0x766A</div><div class='add'>+0x9BFF = 0x767D</div><div class='add'>+0x9C08 = 0x7678</div><div class='add'>+0x9C09 = 0x767C</div><div class='add'>+0x9C0D = 0x767A</div><div class='add'>+0x9C10 = 0x7679</div><div class='add'>+0x9C12 = 0x767B</div><div class='add'>+0x9C13 = 0x487A</div><div class='add'>+0x9C20 = 0x767E</div><div class='add'>+0x9C23 = 0x7665</div><div class='add'>+0x9C25 = 0x7724</div><div class='add'>+0x9C28 = 0x7723</div><div class='add'>+0x9C29 = 0x7725</div><div class='add'>+0x9C2D = 0x7722</div><div class='add'>+0x9C31 = 0x7663</div><div class='add'>+0x9C32 = 0x7721</div><div class='add'>+0x9C33 = 0x7726</div><div class='add'>+0x9C35 = 0x772A</div><div class='add'>+0x9C37 = 0x7666</div><div class='add'>+0x9C39 = 0x7664</div><div class='add'>+0x9C3B = 0x7729</div><div class='add'>+0x9C3E = 0x7727</div><div class='add'>+0x9C45 = 0x772B</div><div class='add'>+0x9C48 = 0x7728</div><div class='add'>+0x9C49 = 0x316E</div><div class='add'>+0x9C52 = 0x772E</div><div class='add'>+0x9C54 = 0x772D</div><div class='add'>+0x9C56 = 0x772C</div><div class='add'>+0x9C57 = 0x415B</div><div class='add'>+0x9C58 = 0x7660</div><div class='add'>+0x9C5D = 0x7677</div><div class='add'>+0x9C5F = 0x7657</div><div class='add'>+0x9C67 = 0x772F</div><div class='add'>+0x9C6D = 0x765D</div><div class='add'>+0x9C78 = 0x7654</div><div class='add'>+0x9C7A = 0x7662</div><div class='add'>+0x9CE5 = 0x4471</div><div class='add'>+0x9CE9 = 0x702F</div><div class='add'>+0x9CEC = 0x596C</div><div class='add'>+0x9CF3 = 0x376F</div><div class='add'>+0x9CF4 = 0x4379</div><div class='add'>+0x9CF6 = 0x7030</div><div class='add'>+0x9D06 = 0x7032</div><div class='add'>+0x9D07 = 0x7031</div><div class='add'>+0x9D09 = 0x513B</div><div class='add'>+0x9D15 = 0x4D52</div><div class='add'>+0x9D1B = 0x5427</div><div class='add'>+0x9D1D = 0x7036</div><div class='add'>+0x9D1F = 0x7037</div><div class='add'>+0x9D23 = 0x7033</div><div class='add'>+0x9D26 = 0x516C</div><div class='add'>+0x9D28 = 0x513C</div><div class='add'>+0x9D2F = 0x7039</div><div class='add'>+0x9D30 = 0x703B</div><div class='add'>+0x9D3B = 0x3A68</div><div class='add'>+0x9D3F = 0x386B</div><div class='add'>+0x9D42 = 0x703C</div><div class='add'>+0x9D51 = 0x3E69</div><div class='add'>+0x9D52 = 0x7041</div><div class='add'>+0x9D53 = 0x703E</div><div class='add'>+0x9D5C = 0x7043</div><div class='add'>+0x9D5D = 0x366C</div><div class='add'>+0x9D60 = 0x7040</div><div class='add'>+0x9D61 = 0x7044</div><div class='add'>+0x9D6A = 0x7046</div><div class='add'>+0x9D6C = 0x4574</div><div class='add'>+0x9D6F = 0x7047</div><div class='add'>+0x9D72 = 0x4835</div><div class='add'>+0x9D87 = 0x7034</div><div class='add'>+0x9D89 = 0x7048</div><div class='add'>+0x9D93 = 0x7045</div><div class='add'>+0x9D98 = 0x7049</div><div class='add'>+0x9D9A = 0x704A</div><div class='add'>+0x9DA5 = 0x704C</div><div class='add'>+0x9DA9 = 0x704D</div><div class='add'>+0x9DAF = 0x5D3A</div><div class='add'>+0x9DB4 = 0x3A57</div><div class='add'>+0x9DBB = 0x773D</div><div class='add'>+0x9DBC = 0x704F</div><div class='add'>+0x9DC0 = 0x704B</div><div class='add'>+0x9DC2 = 0x704E</div><div class='add'>+0x9DC4 = 0x3C26</div><div class='add'>+0x9DD3 = 0x7051</div><div class='add'>+0x9DD7 = 0x4538</div><div class='add'>+0x9DD9 = 0x703A</div><div class='add'>+0x9DDA = 0x7052</div><div class='add'>+0x9DE5 = 0x7038</div><div class='add'>+0x9DE6 = 0x7054</div><div class='add'>+0x9DEF = 0x7053</div><div class='add'>+0x9DF2 = 0x7055</div><div class='add'>+0x9DF3 = 0x7042</div><div class='add'>+0x9DF8 = 0x7056</div><div class='add'>+0x9DF9 = 0x5325</div><div class='add'>+0x9DFA = 0x7058</div><div class='add'>+0x9E0C = 0x7057</div><div class='add'>+0x9E15 = 0x7035</div><div class='add'>+0x9E1A = 0x7050</div><div class='add'>+0x9E1B = 0x7059</div><div class='add'>+0x9E1D = 0x703F</div><div class='add'>+0x9E1E = 0x703D</div><div class='add'>+0x9E75 = 0x7852</div><div class='add'>+0x9E79 = 0x7874</div><div class='add'>+0x9E7A = 0x753A</div><div class='add'>+0x9E7C = 0x3C6F</div><div class='add'>+0x9E7D = 0x514E</div><div class='add'>+0x9E7F = 0x4239</div><div class='add'>+0x9E82 = 0x7764</div><div class='add'>+0x9E87 = 0x7765</div><div class='add'>+0x9E88 = 0x7766</div><div class='add'>+0x9E8B = 0x7767</div><div class='add'>+0x9E92 = 0x7768</div><div class='add'>+0x9E93 = 0x4234</div><div class='add'>+0x9E97 = 0x4076</div><div class='add'>+0x9E9D = 0x776A</div><div class='add'>+0x9E9F = 0x776B</div><div class='add'>+0x9EA5 = 0x4273</div><div class='add'>+0x9EA9 = 0x746F</div><div class='add'>+0x9EAF = 0x7865</div><div class='add'>+0x9EB4 = 0x7470</div><div class='add'>+0x9EB5 = 0x7859</div><div class='add'>+0x9EBB = 0x4269</div><div class='add'>+0x9EBD = 0x4334</div><div class='add'>+0x9EBE = 0x7762</div><div class='add'>+0x9EC4 = 0x3B46</div><div class='add'>+0x9ECC = 0x5964</div><div class='add'>+0x9ECD = 0x4A72</div><div class='add'>+0x9ECE = 0x4068</div><div class='add'>+0x9ECF = 0x7024</div><div class='add'>+0x9ED1 = 0x3A5A</div><div class='add'>+0x9ED4 = 0x472D</div><div class='add'>+0x9ED8 = 0x442C</div><div class='add'>+0x9EDB = 0x776C</div><div class='add'>+0x9EDC = 0x776D</div><div class='add'>+0x9EDD = 0x776E</div><div class='add'>+0x9EDE = 0x3563</div><div class='add'>+0x9EDF = 0x7770</div><div class='add'>+0x9EE0 = 0x776F</div><div class='add'>+0x9EE2 = 0x7771</div><div class='add'>+0x9EE5 = 0x7774</div><div class='add'>+0x9EE7 = 0x7773</div><div class='add'>+0x9EE8 = 0x3533</div><div class='add'>+0x9EEF = 0x7776</div><div class='add'>+0x9EF2 = 0x7775</div><div class='add'>+0x9EF4 = 0x7854</div><div class='add'>+0x9EF7 = 0x7772</div><div class='add'>+0x9EF9 = 0x6D69</div><div class='add'>+0x9EFB = 0x6D6A</div><div class='add'>+0x9EFC = 0x6D6B</div><div class='add'>+0x9EFD = 0x763C</div><div class='add'>+0x9EFF = 0x763D</div><div class='add'>+0x9F09 = 0x763E</div><div class='add'>+0x9F0E = 0x3626</div><div class='add'>+0x9F10 = 0x583E</div><div class='add'>+0x9F13 = 0x3944</div><div class='add'>+0x9F15 = 0x782E</div><div class='add'>+0x9F17 = 0x583B</div><div class='add'>+0x9F19 = 0x5C31</div><div class='add'>+0x9F20 = 0x4A73</div><div class='add'>+0x9F22 = 0x7777</div><div class='add'>+0x9F2C = 0x7778</div><div class='add'>+0x9F2F = 0x7779</div><div class='add'>+0x9F37 = 0x777B</div><div class='add'>+0x9F39 = 0x777A</div><div class='add'>+0x9F3B = 0x3147</div><div class='add'>+0x9F3D = 0x777C</div><div class='add'>+0x9F3E = 0x777D</div><div class='add'>+0x9F44 = 0x777E</div><div class='add'>+0x9F4A = 0x466B</div><div class='add'>+0x9F4B = 0x552B</div><div class='add'>+0x9F4F = 0x6C34</div><div class='add'>+0x9F52 = 0x335D</div><div class='add'>+0x9F54 = 0x7633</div><div class='add'>+0x9F59 = 0x7635</div><div class='add'>+0x9F5C = 0x7637</div><div class='add'>+0x9F5F = 0x7634</div><div class='add'>+0x9F60 = 0x7636</div><div class='add'>+0x9F61 = 0x4164</div><div class='add'>+0x9F63 = 0x782A</div><div class='add'>+0x9F66 = 0x7638</div><div class='add'>+0x9F6A = 0x763A</div><div class='add'>+0x9F6C = 0x7639</div><div class='add'>+0x9F72 = 0x4823</div><div class='add'>+0x9F77 = 0x763B</div><div class='add'>+0x9F8D = 0x417A</div><div class='add'>+0x9F90 = 0x4553</div><div class='add'>+0x9F94 = 0x3928</div><div class='add'>+0x9F95 = 0x6D68</div><div class='add'>+0x9F9C = 0x396A</div><div class='add'>+0x9FA0 = 0x595F</div><div class='add'>+0xFF01 = 0x2321</div><div class='add'>+0xFF02 = 0x2322</div><div class='add'>+0xFF03 = 0x2323</div><div class='add'>+0xFF04 = 0x2167</div><div class='add'>+0xFF05 = 0x2325</div><div class='add'>+0xFF06 = 0x2326</div><div class='add'>+0xFF07 = 0x2327</div><div class='add'>+0xFF08 = 0x2328</div><div class='add'>+0xFF09 = 0x2329</div><div class='add'>+0xFF0A = 0x232A</div><div class='add'>+0xFF0B = 0x232B</div><div class='add'>+0xFF0C = 0x232C</div><div class='add'>+0xFF0D = 0x232D</div><div class='add'>+0xFF0E = 0x232E</div><div class='add'>+0xFF0F = 0x232F</div><div class='add'>+0xFF10 = 0x2330</div><div class='add'>+0xFF11 = 0x2331</div><div class='add'>+0xFF12 = 0x2332</div><div class='add'>+0xFF13 = 0x2333</div><div class='add'>+0xFF14 = 0x2334</div><div class='add'>+0xFF15 = 0x2335</div><div class='add'>+0xFF16 = 0x2336</div><div class='add'>+0xFF17 = 0x2337</div><div class='add'>+0xFF18 = 0x2338</div><div class='add'>+0xFF19 = 0x2339</div><div class='add'>+0xFF1A = 0x233A</div><div class='add'>+0xFF1B = 0x233B</div><div class='add'>+0xFF1C = 0x233C</div><div class='add'>+0xFF1D = 0x233D</div><div class='add'>+0xFF1E = 0x233E</div><div class='add'>+0xFF1F = 0x233F</div><div class='add'>+0xFF20 = 0x2340</div><div class='add'>+0xFF21 = 0x2341</div><div class='add'>+0xFF22 = 0x2342</div><div class='add'>+0xFF23 = 0x2343</div><div class='add'>+0xFF24 = 0x2344</div><div class='add'>+0xFF25 = 0x2345</div><div class='add'>+0xFF26 = 0x2346</div><div class='add'>+0xFF27 = 0x2347</div><div class='add'>+0xFF28 = 0x2348</div><div class='add'>+0xFF29 = 0x2349</div><div class='add'>+0xFF2A = 0x234A</div><div class='add'>+0xFF2B = 0x234B</div><div class='add'>+0xFF2C = 0x234C</div><div class='add'>+0xFF2D = 0x234D</div><div class='add'>+0xFF2E = 0x234E</div><div class='add'>+0xFF2F = 0x234F</div><div class='add'>+0xFF30 = 0x2350</div><div class='add'>+0xFF31 = 0x2351</div><div class='add'>+0xFF32 = 0x2352</div><div class='add'>+0xFF33 = 0x2353</div><div class='add'>+0xFF34 = 0x2354</div><div class='add'>+0xFF35 = 0x2355</div><div class='add'>+0xFF36 = 0x2356</div><div class='add'>+0xFF37 = 0x2357</div><div class='add'>+0xFF38 = 0x2358</div><div class='add'>+0xFF39 = 0x2359</div><div class='add'>+0xFF3A = 0x235A</div><div class='add'>+0xFF3B = 0x235B</div><div class='add'>+0xFF3C = 0x235C</div><div class='add'>+0xFF3D = 0x235D</div><div class='add'>+0xFF3E = 0x235E</div><div class='add'>+0xFF3F = 0x235F</div><div class='add'>+0xFF40 = 0x2360</div><div class='add'>+0xFF41 = 0x2361</div><div class='add'>+0xFF42 = 0x2362</div><div class='add'>+0xFF43 = 0x2363</div><div class='add'>+0xFF44 = 0x2364</div><div class='add'>+0xFF45 = 0x2365</div><div class='add'>+0xFF46 = 0x2366</div><div class='add'>+0xFF47 = 0x2367</div><div class='add'>+0xFF48 = 0x2368</div><div class='add'>+0xFF49 = 0x2369</div><div class='add'>+0xFF4A = 0x236A</div><div class='add'>+0xFF4B = 0x236B</div><div class='add'>+0xFF4C = 0x236C</div><div class='add'>+0xFF4D = 0x236D</div><div class='add'>+0xFF4E = 0x236E</div><div class='add'>+0xFF4F = 0x236F</div><div class='add'>+0xFF50 = 0x2370</div><div class='add'>+0xFF51 = 0x2371</div><div class='add'>+0xFF52 = 0x2372</div><div class='add'>+0xFF53 = 0x2373</div><div class='add'>+0xFF54 = 0x2374</div><div class='add'>+0xFF55 = 0x2375</div><div class='add'>+0xFF56 = 0x2376</div><div class='add'>+0xFF57 = 0x2377</div><div class='add'>+0xFF58 = 0x2378</div><div class='add'>+0xFF59 = 0x2379</div><div class='add'>+0xFF5A = 0x237A</div><div class='add'>+0xFF5B = 0x237B</div><div class='add'>+0xFF5C = 0x237C</div><div class='add'>+0xFF5D = 0x237D</div><div class='add'>+0xFF5E = 0x212B</div><div class='add'>+0xFFE0 = 0x2169</div><div class='add'>+0xFFE1 = 0x216A</div><div class='add'>+0xFFE3 = 0x237E</div><div class='add'>+0xFFE5 = 0x2324</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/GB/UCS%GB2312.src b/enc/trans/GB/UCS%GB2312.src<br/>new file mode 100644<br/>index 0000000000..3293fea604<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/GB/UCS%25GB2312.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/GB/UCS%GB2312.src</a></div><div class='hunk'>@@ -0,0 +1,7531 @@</div><div class='add'>+# $NetBSD: UCS%GB2312.src,v 1.6 2006/11/22 20:22:30 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"UCS/GB2312"</div><div class='add'>+SRC_ZONE	0x00A4 - 0xFFE5</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFF</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             GB2312-80 to Unicode table (complete, hex format)</div><div class='add'>+#	Unicode version:  3.0</div><div class='add'>+#	Table version:    1.0</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             1999 October 8</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1999 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on optical media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</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 for</div><div class='add'>+#	internal or external distribution as long as this notice remains</div><div class='add'>+#	attached.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# This table contains one set of mappings from GB2312-80 into Unicode.</div><div class='add'>+# Note that these data are *possible* mappings only and may not be the</div><div class='add'>+# same as those used by actual products, nor may they be the best suited</div><div class='add'>+# for all uses.  For more information on the mappings between various code</div><div class='add'>+# pages incorporating the repertoire of GB2312-80 and Unicode, consult the</div><div class='add'>+# VENDORS mapping data.  Normative information on the mapping between</div><div class='add'>+# GB2312-80 and Unicode may be found in the Unihan.txt file in the</div><div class='add'>+# latest Unicode Character Database.</div><div class='add'>+#</div><div class='add'>+# If you have carefully considered the fact that the mappings in</div><div class='add'>+# this table are only one possible set of mappings between GB2312-80 and</div><div class='add'>+# Unicode and have no normative status, but still feel that you</div><div class='add'>+# have located an error in the table that requires fixing, you may</div><div class='add'>+# report any such error to errata@unicode.org.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+#	Format:  Three tab-separated columns</div><div class='add'>+#		 Column #1 is the GB2312 code (in hex as 0xXXXX)</div><div class='add'>+#		 Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		 Column #3 the Unicode name (follows a comment sign, '#')</div><div class='add'>+#			The official names for Unicode characters U+4E00</div><div class='add'>+#			to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",</div><div class='add'>+#			where XXXX is the code point.  Including all these</div><div class='add'>+#			names in this file increases its size substantially</div><div class='add'>+#			and needlessly.  The token "&lt;CJK&gt;" is used for the</div><div class='add'>+#			name of these characters.  If necessary, it can be</div><div class='add'>+#			expanded algorithmically by a parser or editor.</div><div class='add'>+#</div><div class='add'>+#	The entries are in GB2312 order</div><div class='add'>+#</div><div class='add'>+#	The following algorithms can be used to change the hex form</div><div class='add'>+#		of GB2312 to other standard forms:</div><div class='add'>+#</div><div class='add'>+#		To change hex to EUC form, add 0x8080</div><div class='add'>+#		To change hex to kuten form, first subtract 0x2020.  Then</div><div class='add'>+#			the high and low bytes correspond to the ku and ten of</div><div class='add'>+#			the kuten form.  For example, 0x2121 -&gt; 0x0101 -&gt; 0101;</div><div class='add'>+#			0x777E -&gt; 0x575E -&gt; 8794</div><div class='add'>+#</div><div class='add'>+#	Version history</div><div class='add'>+#	1.0 version updates 0.0d2 version by correcting mapping for 0x212C</div><div class='add'>+#             from U+2225 to U+2016.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+0x00A4 = 0x2168</div><div class='add'>+0x00A7 = 0x216C</div><div class='add'>+0x00A8 = 0x2127</div><div class='add'>+0x00B0 = 0x2163</div><div class='add'>+0x00B1 = 0x2140</div><div class='add'>+0x00B7 = 0x2124</div><div class='add'>+0x00D7 = 0x2141</div><div class='add'>+0x00E0 = 0x2824</div><div class='add'>+0x00E1 = 0x2822</div><div class='add'>+0x00E8 = 0x2828</div><div class='add'>+0x00E9 = 0x2826</div><div class='add'>+0x00EA = 0x283A</div><div class='add'>+0x00EC = 0x282C</div><div class='add'>+0x00ED = 0x282A</div><div class='add'>+0x00F2 = 0x2830</div><div class='add'>+0x00F3 = 0x282E</div><div class='add'>+0x00F7 = 0x2142</div><div class='add'>+0x00F9 = 0x2834</div><div class='add'>+0x00FA = 0x2832</div><div class='add'>+0x00FC = 0x2839</div><div class='add'>+0x0101 = 0x2821</div><div class='add'>+0x0113 = 0x2825</div><div class='add'>+0x011B = 0x2827</div><div class='add'>+0x012B = 0x2829</div><div class='add'>+0x014D = 0x282D</div><div class='add'>+0x016B = 0x2831</div><div class='add'>+0x01CE = 0x2823</div><div class='add'>+0x01D0 = 0x282B</div><div class='add'>+0x01D2 = 0x282F</div><div class='add'>+0x01D4 = 0x2833</div><div class='add'>+0x01D6 = 0x2835</div><div class='add'>+0x01D8 = 0x2836</div><div class='add'>+0x01DA = 0x2837</div><div class='add'>+0x01DC = 0x2838</div><div class='add'>+0x02C7 = 0x2126</div><div class='add'>+0x02C9 = 0x2125</div><div class='add'>+0x0391 = 0x2621</div><div class='add'>+0x0392 = 0x2622</div><div class='add'>+0x0393 = 0x2623</div><div class='add'>+0x0394 = 0x2624</div><div class='add'>+0x0395 = 0x2625</div><div class='add'>+0x0396 = 0x2626</div><div class='add'>+0x0397 = 0x2627</div><div class='add'>+0x0398 = 0x2628</div><div class='add'>+0x0399 = 0x2629</div><div class='add'>+0x039A = 0x262A</div><div class='add'>+0x039B = 0x262B</div><div class='add'>+0x039C = 0x262C</div><div class='add'>+0x039D = 0x262D</div><div class='add'>+0x039E = 0x262E</div><div class='add'>+0x039F = 0x262F</div><div class='add'>+0x03A0 = 0x2630</div><div class='add'>+0x03A1 = 0x2631</div><div class='add'>+0x03A3 = 0x2632</div><div class='add'>+0x03A4 = 0x2633</div><div class='add'>+0x03A5 = 0x2634</div><div class='add'>+0x03A6 = 0x2635</div><div class='add'>+0x03A7 = 0x2636</div><div class='add'>+0x03A8 = 0x2637</div><div class='add'>+0x03A9 = 0x2638</div><div class='add'>+0x03B1 = 0x2641</div><div class='add'>+0x03B2 = 0x2642</div><div class='add'>+0x03B3 = 0x2643</div><div class='add'>+0x03B4 = 0x2644</div><div class='add'>+0x03B5 = 0x2645</div><div class='add'>+0x03B6 = 0x2646</div><div class='add'>+0x03B7 = 0x2647</div><div class='add'>+0x03B8 = 0x2648</div><div class='add'>+0x03B9 = 0x2649</div><div class='add'>+0x03BA = 0x264A</div><div class='add'>+0x03BB = 0x264B</div><div class='add'>+0x03BC = 0x264C</div><div class='add'>+0x03BD = 0x264D</div><div class='add'>+0x03BE = 0x264E</div><div class='add'>+0x03BF = 0x264F</div><div class='add'>+0x03C0 = 0x2650</div><div class='add'>+0x03C1 = 0x2651</div><div class='add'>+0x03C3 = 0x2652</div><div class='add'>+0x03C4 = 0x2653</div><div class='add'>+0x03C5 = 0x2654</div><div class='add'>+0x03C6 = 0x2655</div><div class='add'>+0x03C7 = 0x2656</div><div class='add'>+0x03C8 = 0x2657</div><div class='add'>+0x03C9 = 0x2658</div><div class='add'>+0x0401 = 0x2727</div><div class='add'>+0x0410 = 0x2721</div><div class='add'>+0x0411 = 0x2722</div><div class='add'>+0x0412 = 0x2723</div><div class='add'>+0x0413 = 0x2724</div><div class='add'>+0x0414 = 0x2725</div><div class='add'>+0x0415 = 0x2726</div><div class='add'>+0x0416 = 0x2728</div><div class='add'>+0x0417 = 0x2729</div><div class='add'>+0x0418 = 0x272A</div><div class='add'>+0x0419 = 0x272B</div><div class='add'>+0x041A = 0x272C</div><div class='add'>+0x041B = 0x272D</div><div class='add'>+0x041C = 0x272E</div><div class='add'>+0x041D = 0x272F</div><div class='add'>+0x041E = 0x2730</div><div class='add'>+0x041F = 0x2731</div><div class='add'>+0x0420 = 0x2732</div><div class='add'>+0x0421 = 0x2733</div><div class='add'>+0x0422 = 0x2734</div><div class='add'>+0x0423 = 0x2735</div><div class='add'>+0x0424 = 0x2736</div><div class='add'>+0x0425 = 0x2737</div><div class='add'>+0x0426 = 0x2738</div><div class='add'>+0x0427 = 0x2739</div><div class='add'>+0x0428 = 0x273A</div><div class='add'>+0x0429 = 0x273B</div><div class='add'>+0x042A = 0x273C</div><div class='add'>+0x042B = 0x273D</div><div class='add'>+0x042C = 0x273E</div><div class='add'>+0x042D = 0x273F</div><div class='add'>+0x042E = 0x2740</div><div class='add'>+0x042F = 0x2741</div><div class='add'>+0x0430 = 0x2751</div><div class='add'>+0x0431 = 0x2752</div><div class='add'>+0x0432 = 0x2753</div><div class='add'>+0x0433 = 0x2754</div><div class='add'>+0x0434 = 0x2755</div><div class='add'>+0x0435 = 0x2756</div><div class='add'>+0x0436 = 0x2758</div><div class='add'>+0x0437 = 0x2759</div><div class='add'>+0x0438 = 0x275A</div><div class='add'>+0x0439 = 0x275B</div><div class='add'>+0x043A = 0x275C</div><div class='add'>+0x043B = 0x275D</div><div class='add'>+0x043C = 0x275E</div><div class='add'>+0x043D = 0x275F</div><div class='add'>+0x043E = 0x2760</div><div class='add'>+0x043F = 0x2761</div><div class='add'>+0x0440 = 0x2762</div><div class='add'>+0x0441 = 0x2763</div><div class='add'>+0x0442 = 0x2764</div><div class='add'>+0x0443 = 0x2765</div><div class='add'>+0x0444 = 0x2766</div><div class='add'>+0x0445 = 0x2767</div><div class='add'>+0x0446 = 0x2768</div><div class='add'>+0x0447 = 0x2769</div><div class='add'>+0x0448 = 0x276A</div><div class='add'>+0x0449 = 0x276B</div><div class='add'>+0x044A = 0x276C</div><div class='add'>+0x044B = 0x276D</div><div class='add'>+0x044C = 0x276E</div><div class='add'>+0x044D = 0x276F</div><div class='add'>+0x044E = 0x2770</div><div class='add'>+0x044F = 0x2771</div><div class='add'>+0x0451 = 0x2757</div><div class='add'>+0x2014 = 0x212A</div><div class='add'>+0x2015 = 0x212A # fallback -&gt; 0x2014</div><div class='add'>+0x2016 = 0x212C</div><div class='add'>+0x2018 = 0x212E</div><div class='add'>+0x2019 = 0x212F</div><div class='add'>+0x201C = 0x2130</div><div class='add'>+0x201D = 0x2131</div><div class='add'>+0x2026 = 0x212D</div><div class='add'>+0x2030 = 0x216B</div><div class='add'>+0x2032 = 0x2164</div><div class='add'>+0x2033 = 0x2165</div><div class='add'>+0x203B = 0x2179</div><div class='add'>+0x2103 = 0x2166</div><div class='add'>+0x2116 = 0x216D</div><div class='add'>+0x2160 = 0x2271</div><div class='add'>+0x2161 = 0x2272</div><div class='add'>+0x2162 = 0x2273</div><div class='add'>+0x2163 = 0x2274</div><div class='add'>+0x2164 = 0x2275</div><div class='add'>+0x2165 = 0x2276</div><div class='add'>+0x2166 = 0x2277</div><div class='add'>+0x2167 = 0x2278</div><div class='add'>+0x2168 = 0x2279</div><div class='add'>+0x2169 = 0x227A</div><div class='add'>+0x216A = 0x227B</div><div class='add'>+0x216B = 0x227C</div><div class='add'>+0x2190 = 0x217B</div><div class='add'>+0x2191 = 0x217C</div><div class='add'>+0x2192 = 0x217A</div><div class='add'>+0x2193 = 0x217D</div><div class='add'>+0x2208 = 0x214A</div><div class='add'>+0x220F = 0x2147</div><div class='add'>+0x2211 = 0x2146</div><div class='add'>+0x221A = 0x214C</div><div class='add'>+0x221D = 0x2158</div><div class='add'>+0x221E = 0x215E</div><div class='add'>+0x2220 = 0x214F</div><div class='add'>+0x2225 = 0x214E</div><div class='add'>+0x2227 = 0x2144</div><div class='add'>+0x2228 = 0x2145</div><div class='add'>+0x2229 = 0x2149</div><div class='add'>+0x222A = 0x2148</div><div class='add'>+0x222B = 0x2152</div><div class='add'>+0x222E = 0x2153</div><div class='add'>+0x2234 = 0x2160</div><div class='add'>+0x2235 = 0x215F</div><div class='add'>+0x2236 = 0x2143</div><div class='add'>+0x2237 = 0x214B</div><div class='add'>+0x223D = 0x2157</div><div class='add'>+0x2248 = 0x2156</div><div class='add'>+0x224C = 0x2155</div><div class='add'>+0x2260 = 0x2159</div><div class='add'>+0x2261 = 0x2154</div><div class='add'>+0x2264 = 0x215C</div><div class='add'>+0x2265 = 0x215D</div><div class='add'>+0x226E = 0x215A</div><div class='add'>+0x226F = 0x215B</div><div class='add'>+0x2299 = 0x2151</div><div class='add'>+0x22A5 = 0x214D</div><div class='add'>+0x2312 = 0x2150</div><div class='add'>+0x2460 = 0x2259</div><div class='add'>+0x2461 = 0x225A</div><div class='add'>+0x2462 = 0x225B</div><div class='add'>+0x2463 = 0x225C</div><div class='add'>+0x2464 = 0x225D</div><div class='add'>+0x2465 = 0x225E</div><div class='add'>+0x2466 = 0x225F</div><div class='add'>+0x2467 = 0x2260</div><div class='add'>+0x2468 = 0x2261</div><div class='add'>+0x2469 = 0x2262</div><div class='add'>+0x2474 = 0x2245</div><div class='add'>+0x2475 = 0x2246</div><div class='add'>+0x2476 = 0x2247</div><div class='add'>+0x2477 = 0x2248</div><div class='add'>+0x2478 = 0x2249</div><div class='add'>+0x2479 = 0x224A</div><div class='add'>+0x247A = 0x224B</div><div class='add'>+0x247B = 0x224C</div><div class='add'>+0x247C = 0x224D</div><div class='add'>+0x247D = 0x224E</div><div class='add'>+0x247E = 0x224F</div><div class='add'>+0x247F = 0x2250</div><div class='add'>+0x2480 = 0x2251</div><div class='add'>+0x2481 = 0x2252</div><div class='add'>+0x2482 = 0x2253</div><div class='add'>+0x2483 = 0x2254</div><div class='add'>+0x2484 = 0x2255</div><div class='add'>+0x2485 = 0x2256</div><div class='add'>+0x2486 = 0x2257</div><div class='add'>+0x2487 = 0x2258</div><div class='add'>+0x2488 = 0x2231</div><div class='add'>+0x2489 = 0x2232</div><div class='add'>+0x248A = 0x2233</div><div class='add'>+0x248B = 0x2234</div><div class='add'>+0x248C = 0x2235</div><div class='add'>+0x248D = 0x2236</div><div class='add'>+0x248E = 0x2237</div><div class='add'>+0x248F = 0x2238</div><div class='add'>+0x2490 = 0x2239</div><div class='add'>+0x2491 = 0x223A</div><div class='add'>+0x2492 = 0x223B</div><div class='add'>+0x2493 = 0x223C</div><div class='add'>+0x2494 = 0x223D</div><div class='add'>+0x2495 = 0x223E</div><div class='add'>+0x2496 = 0x223F</div><div class='add'>+0x2497 = 0x2240</div><div class='add'>+0x2498 = 0x2241</div><div class='add'>+0x2499 = 0x2242</div><div class='add'>+0x249A = 0x2243</div><div class='add'>+0x249B = 0x2244</div><div class='add'>+0x2500 = 0x2924</div><div class='add'>+0x2501 = 0x2925</div><div class='add'>+0x2502 = 0x2926</div><div class='add'>+0x2503 = 0x2927</div><div class='add'>+0x2504 = 0x2928</div><div class='add'>+0x2505 = 0x2929</div><div class='add'>+0x2506 = 0x292A</div><div class='add'>+0x2507 = 0x292B</div><div class='add'>+0x2508 = 0x292C</div><div class='add'>+0x2509 = 0x292D</div><div class='add'>+0x250A = 0x292E</div><div class='add'>+0x250B = 0x292F</div><div class='add'>+0x250C = 0x2930</div><div class='add'>+0x250D = 0x2931</div><div class='add'>+0x250E = 0x2932</div><div class='add'>+0x250F = 0x2933</div><div class='add'>+0x2510 = 0x2934</div><div class='add'>+0x2511 = 0x2935</div><div class='add'>+0x2512 = 0x2936</div><div class='add'>+0x2513 = 0x2937</div><div class='add'>+0x2514 = 0x2938</div><div class='add'>+0x2515 = 0x2939</div><div class='add'>+0x2516 = 0x293A</div><div class='add'>+0x2517 = 0x293B</div><div class='add'>+0x2518 = 0x293C</div><div class='add'>+0x2519 = 0x293D</div><div class='add'>+0x251A = 0x293E</div><div class='add'>+0x251B = 0x293F</div><div class='add'>+0x251C = 0x2940</div><div class='add'>+0x251D = 0x2941</div><div class='add'>+0x251E = 0x2942</div><div class='add'>+0x251F = 0x2943</div><div class='add'>+0x2520 = 0x2944</div><div class='add'>+0x2521 = 0x2945</div><div class='add'>+0x2522 = 0x2946</div><div class='add'>+0x2523 = 0x2947</div><div class='add'>+0x2524 = 0x2948</div><div class='add'>+0x2525 = 0x2949</div><div class='add'>+0x2526 = 0x294A</div><div class='add'>+0x2527 = 0x294B</div><div class='add'>+0x2528 = 0x294C</div><div class='add'>+0x2529 = 0x294D</div><div class='add'>+0x252A = 0x294E</div><div class='add'>+0x252B = 0x294F</div><div class='add'>+0x252C = 0x2950</div><div class='add'>+0x252D = 0x2951</div><div class='add'>+0x252E = 0x2952</div><div class='add'>+0x252F = 0x2953</div><div class='add'>+0x2530 = 0x2954</div><div class='add'>+0x2531 = 0x2955</div><div class='add'>+0x2532 = 0x2956</div><div class='add'>+0x2533 = 0x2957</div><div class='add'>+0x2534 = 0x2958</div><div class='add'>+0x2535 = 0x2959</div><div class='add'>+0x2536 = 0x295A</div><div class='add'>+0x2537 = 0x295B</div><div class='add'>+0x2538 = 0x295C</div><div class='add'>+0x2539 = 0x295D</div><div class='add'>+0x253A = 0x295E</div><div class='add'>+0x253B = 0x295F</div><div class='add'>+0x253C = 0x2960</div><div class='add'>+0x253D = 0x2961</div><div class='add'>+0x253E = 0x2962</div><div class='add'>+0x253F = 0x2963</div><div class='add'>+0x2540 = 0x2964</div><div class='add'>+0x2541 = 0x2965</div><div class='add'>+0x2542 = 0x2966</div><div class='add'>+0x2543 = 0x2967</div><div class='add'>+0x2544 = 0x2968</div><div class='add'>+0x2545 = 0x2969</div><div class='add'>+0x2546 = 0x296A</div><div class='add'>+0x2547 = 0x296B</div><div class='add'>+0x2548 = 0x296C</div><div class='add'>+0x2549 = 0x296D</div><div class='add'>+0x254A = 0x296E</div><div class='add'>+0x254B = 0x296F</div><div class='add'>+0x25A0 = 0x2176</div><div class='add'>+0x25A1 = 0x2175</div><div class='add'>+0x25B2 = 0x2178</div><div class='add'>+0x25B3 = 0x2177</div><div class='add'>+0x25C6 = 0x2174</div><div class='add'>+0x25C7 = 0x2173</div><div class='add'>+0x25CB = 0x2170</div><div class='add'>+0x25CE = 0x2172</div><div class='add'>+0x25CF = 0x2171</div><div class='add'>+0x2605 = 0x216F</div><div class='add'>+0x2606 = 0x216E</div><div class='add'>+0x2640 = 0x2162</div><div class='add'>+0x2642 = 0x2161</div><div class='add'>+0x3000 = 0x2121</div><div class='add'>+0x3001 = 0x2122</div><div class='add'>+0x3002 = 0x2123</div><div class='add'>+0x3003 = 0x2128</div><div class='add'>+0x3005 = 0x2129</div><div class='add'>+0x3008 = 0x2134</div><div class='add'>+0x3009 = 0x2135</div><div class='add'>+0x300A = 0x2136</div><div class='add'>+0x300B = 0x2137</div><div class='add'>+0x300C = 0x2138</div><div class='add'>+0x300D = 0x2139</div><div class='add'>+0x300E = 0x213A</div><div class='add'>+0x300F = 0x213B</div><div class='add'>+0x3010 = 0x213E</div><div class='add'>+0x3011 = 0x213F</div><div class='add'>+0x3013 = 0x217E</div><div class='add'>+0x3014 = 0x2132</div><div class='add'>+0x3015 = 0x2133</div><div class='add'>+0x3016 = 0x213C</div><div class='add'>+0x3017 = 0x213D</div><div class='add'>+0x3041 = 0x2421</div><div class='add'>+0x3042 = 0x2422</div><div class='add'>+0x3043 = 0x2423</div><div class='add'>+0x3044 = 0x2424</div><div class='add'>+0x3045 = 0x2425</div><div class='add'>+0x3046 = 0x2426</div><div class='add'>+0x3047 = 0x2427</div><div class='add'>+0x3048 = 0x2428</div><div class='add'>+0x3049 = 0x2429</div><div class='add'>+0x304A = 0x242A</div><div class='add'>+0x304B = 0x242B</div><div class='add'>+0x304C = 0x242C</div><div class='add'>+0x304D = 0x242D</div><div class='add'>+0x304E = 0x242E</div><div class='add'>+0x304F = 0x242F</div><div class='add'>+0x3050 = 0x2430</div><div class='add'>+0x3051 = 0x2431</div><div class='add'>+0x3052 = 0x2432</div><div class='add'>+0x3053 = 0x2433</div><div class='add'>+0x3054 = 0x2434</div><div class='add'>+0x3055 = 0x2435</div><div class='add'>+0x3056 = 0x2436</div><div class='add'>+0x3057 = 0x2437</div><div class='add'>+0x3058 = 0x2438</div><div class='add'>+0x3059 = 0x2439</div><div class='add'>+0x305A = 0x243A</div><div class='add'>+0x305B = 0x243B</div><div class='add'>+0x305C = 0x243C</div><div class='add'>+0x305D = 0x243D</div><div class='add'>+0x305E = 0x243E</div><div class='add'>+0x305F = 0x243F</div><div class='add'>+0x3060 = 0x2440</div><div class='add'>+0x3061 = 0x2441</div><div class='add'>+0x3062 = 0x2442</div><div class='add'>+0x3063 = 0x2443</div><div class='add'>+0x3064 = 0x2444</div><div class='add'>+0x3065 = 0x2445</div><div class='add'>+0x3066 = 0x2446</div><div class='add'>+0x3067 = 0x2447</div><div class='add'>+0x3068 = 0x2448</div><div class='add'>+0x3069 = 0x2449</div><div class='add'>+0x306A = 0x244A</div><div class='add'>+0x306B = 0x244B</div><div class='add'>+0x306C = 0x244C</div><div class='add'>+0x306D = 0x244D</div><div class='add'>+0x306E = 0x244E</div><div class='add'>+0x306F = 0x244F</div><div class='add'>+0x3070 = 0x2450</div><div class='add'>+0x3071 = 0x2451</div><div class='add'>+0x3072 = 0x2452</div><div class='add'>+0x3073 = 0x2453</div><div class='add'>+0x3074 = 0x2454</div><div class='add'>+0x3075 = 0x2455</div><div class='add'>+0x3076 = 0x2456</div><div class='add'>+0x3077 = 0x2457</div><div class='add'>+0x3078 = 0x2458</div><div class='add'>+0x3079 = 0x2459</div><div class='add'>+0x307A = 0x245A</div><div class='add'>+0x307B = 0x245B</div><div class='add'>+0x307C = 0x245C</div><div class='add'>+0x307D = 0x245D</div><div class='add'>+0x307E = 0x245E</div><div class='add'>+0x307F = 0x245F</div><div class='add'>+0x3080 = 0x2460</div><div class='add'>+0x3081 = 0x2461</div><div class='add'>+0x3082 = 0x2462</div><div class='add'>+0x3083 = 0x2463</div><div class='add'>+0x3084 = 0x2464</div><div class='add'>+0x3085 = 0x2465</div><div class='add'>+0x3086 = 0x2466</div><div class='add'>+0x3087 = 0x2467</div><div class='add'>+0x3088 = 0x2468</div><div class='add'>+0x3089 = 0x2469</div><div class='add'>+0x308A = 0x246A</div><div class='add'>+0x308B = 0x246B</div><div class='add'>+0x308C = 0x246C</div><div class='add'>+0x308D = 0x246D</div><div class='add'>+0x308E = 0x246E</div><div class='add'>+0x308F = 0x246F</div><div class='add'>+0x3090 = 0x2470</div><div class='add'>+0x3091 = 0x2471</div><div class='add'>+0x3092 = 0x2472</div><div class='add'>+0x3093 = 0x2473</div><div class='add'>+0x30A1 = 0x2521</div><div class='add'>+0x30A2 = 0x2522</div><div class='add'>+0x30A3 = 0x2523</div><div class='add'>+0x30A4 = 0x2524</div><div class='add'>+0x30A5 = 0x2525</div><div class='add'>+0x30A6 = 0x2526</div><div class='add'>+0x30A7 = 0x2527</div><div class='add'>+0x30A8 = 0x2528</div><div class='add'>+0x30A9 = 0x2529</div><div class='add'>+0x30AA = 0x252A</div><div class='add'>+0x30AB = 0x252B</div><div class='add'>+0x30AC = 0x252C</div><div class='add'>+0x30AD = 0x252D</div><div class='add'>+0x30AE = 0x252E</div><div class='add'>+0x30AF = 0x252F</div><div class='add'>+0x30B0 = 0x2530</div><div class='add'>+0x30B1 = 0x2531</div><div class='add'>+0x30B2 = 0x2532</div><div class='add'>+0x30B3 = 0x2533</div><div class='add'>+0x30B4 = 0x2534</div><div class='add'>+0x30B5 = 0x2535</div><div class='add'>+0x30B6 = 0x2536</div><div class='add'>+0x30B7 = 0x2537</div><div class='add'>+0x30B8 = 0x2538</div><div class='add'>+0x30B9 = 0x2539</div><div class='add'>+0x30BA = 0x253A</div><div class='add'>+0x30BB = 0x253B</div><div class='add'>+0x30BC = 0x253C</div><div class='add'>+0x30BD = 0x253D</div><div class='add'>+0x30BE = 0x253E</div><div class='add'>+0x30BF = 0x253F</div><div class='add'>+0x30C0 = 0x2540</div><div class='add'>+0x30C1 = 0x2541</div><div class='add'>+0x30C2 = 0x2542</div><div class='add'>+0x30C3 = 0x2543</div><div class='add'>+0x30C4 = 0x2544</div><div class='add'>+0x30C5 = 0x2545</div><div class='add'>+0x30C6 = 0x2546</div><div class='add'>+0x30C7 = 0x2547</div><div class='add'>+0x30C8 = 0x2548</div><div class='add'>+0x30C9 = 0x2549</div><div class='add'>+0x30CA = 0x254A</div><div class='add'>+0x30CB = 0x254B</div><div class='add'>+0x30CC = 0x254C</div><div class='add'>+0x30CD = 0x254D</div><div class='add'>+0x30CE = 0x254E</div><div class='add'>+0x30CF = 0x254F</div><div class='add'>+0x30D0 = 0x2550</div><div class='add'>+0x30D1 = 0x2551</div><div class='add'>+0x30D2 = 0x2552</div><div class='add'>+0x30D3 = 0x2553</div><div class='add'>+0x30D4 = 0x2554</div><div class='add'>+0x30D5 = 0x2555</div><div class='add'>+0x30D6 = 0x2556</div><div class='add'>+0x30D7 = 0x2557</div><div class='add'>+0x30D8 = 0x2558</div><div class='add'>+0x30D9 = 0x2559</div><div class='add'>+0x30DA = 0x255A</div><div class='add'>+0x30DB = 0x255B</div><div class='add'>+0x30DC = 0x255C</div><div class='add'>+0x30DD = 0x255D</div><div class='add'>+0x30DE = 0x255E</div><div class='add'>+0x30DF = 0x255F</div><div class='add'>+0x30E0 = 0x2560</div><div class='add'>+0x30E1 = 0x2561</div><div class='add'>+0x30E2 = 0x2562</div><div class='add'>+0x30E3 = 0x2563</div><div class='add'>+0x30E4 = 0x2564</div><div class='add'>+0x30E5 = 0x2565</div><div class='add'>+0x30E6 = 0x2566</div><div class='add'>+0x30E7 = 0x2567</div><div class='add'>+0x30E8 = 0x2568</div><div class='add'>+0x30E9 = 0x2569</div><div class='add'>+0x30EA = 0x256A</div><div class='add'>+0x30EB = 0x256B</div><div class='add'>+0x30EC = 0x256C</div><div class='add'>+0x30ED = 0x256D</div><div class='add'>+0x30EE = 0x256E</div><div class='add'>+0x30EF = 0x256F</div><div class='add'>+0x30F0 = 0x2570</div><div class='add'>+0x30F1 = 0x2571</div><div class='add'>+0x30F2 = 0x2572</div><div class='add'>+0x30F3 = 0x2573</div><div class='add'>+0x30F4 = 0x2574</div><div class='add'>+0x30F5 = 0x2575</div><div class='add'>+0x30F6 = 0x2576</div><div class='add'>+0x30FB = 0x2124 # fallback -&gt; 0x00B7</div><div class='add'>+0x3105 = 0x2845</div><div class='add'>+0x3106 = 0x2846</div><div class='add'>+0x3107 = 0x2847</div><div class='add'>+0x3108 = 0x2848</div><div class='add'>+0x3109 = 0x2849</div><div class='add'>+0x310A = 0x284A</div><div class='add'>+0x310B = 0x284B</div><div class='add'>+0x310C = 0x284C</div><div class='add'>+0x310D = 0x284D</div><div class='add'>+0x310E = 0x284E</div><div class='add'>+0x310F = 0x284F</div><div class='add'>+0x3110 = 0x2850</div><div class='add'>+0x3111 = 0x2851</div><div class='add'>+0x3112 = 0x2852</div><div class='add'>+0x3113 = 0x2853</div><div class='add'>+0x3114 = 0x2854</div><div class='add'>+0x3115 = 0x2855</div><div class='add'>+0x3116 = 0x2856</div><div class='add'>+0x3117 = 0x2857</div><div class='add'>+0x3118 = 0x2858</div><div class='add'>+0x3119 = 0x2859</div><div class='add'>+0x311A = 0x285A</div><div class='add'>+0x311B = 0x285B</div><div class='add'>+0x311C = 0x285C</div><div class='add'>+0x311D = 0x285D</div><div class='add'>+0x311E = 0x285E</div><div class='add'>+0x311F = 0x285F</div><div class='add'>+0x3120 = 0x2860</div><div class='add'>+0x3121 = 0x2861</div><div class='add'>+0x3122 = 0x2862</div><div class='add'>+0x3123 = 0x2863</div><div class='add'>+0x3124 = 0x2864</div><div class='add'>+0x3125 = 0x2865</div><div class='add'>+0x3126 = 0x2866</div><div class='add'>+0x3127 = 0x2867</div><div class='add'>+0x3128 = 0x2868</div><div class='add'>+0x3129 = 0x2869</div><div class='add'>+0x3220 = 0x2265</div><div class='add'>+0x3221 = 0x2266</div><div class='add'>+0x3222 = 0x2267</div><div class='add'>+0x3223 = 0x2268</div><div class='add'>+0x3224 = 0x2269</div><div class='add'>+0x3225 = 0x226A</div><div class='add'>+0x3226 = 0x226B</div><div class='add'>+0x3227 = 0x226C</div><div class='add'>+0x3228 = 0x226D</div><div class='add'>+0x3229 = 0x226E</div><div class='add'>+0x4E00 = 0x523B</div><div class='add'>+0x4E01 = 0x3621</div><div class='add'>+0x4E03 = 0x465F</div><div class='add'>+0x4E07 = 0x4D72</div><div class='add'>+0x4E08 = 0x5549</div><div class='add'>+0x4E09 = 0x487D</div><div class='add'>+0x4E0A = 0x494F</div><div class='add'>+0x4E0B = 0x4F42</div><div class='add'>+0x4E0C = 0x5822</div><div class='add'>+0x4E0D = 0x323B</div><div class='add'>+0x4E0E = 0x536B</div><div class='add'>+0x4E10 = 0x5824</div><div class='add'>+0x4E11 = 0x3373</div><div class='add'>+0x4E13 = 0x5728</div><div class='add'>+0x4E14 = 0x4752</div><div class='add'>+0x4E15 = 0x5827</div><div class='add'>+0x4E16 = 0x4A40</div><div class='add'>+0x4E18 = 0x4770</div><div class='add'>+0x4E19 = 0x317B</div><div class='add'>+0x4E1A = 0x5235</div><div class='add'>+0x4E1B = 0x3454</div><div class='add'>+0x4E1C = 0x362B</div><div class='add'>+0x4E1D = 0x4B3F</div><div class='add'>+0x4E1E = 0x5829</div><div class='add'>+0x4E22 = 0x362A</div><div class='add'>+0x4E24 = 0x413D</div><div class='add'>+0x4E25 = 0x514F</div><div class='add'>+0x4E27 = 0x4925</div><div class='add'>+0x4E28 = 0x582D</div><div class='add'>+0x4E2A = 0x3876</div><div class='add'>+0x4E2B = 0x513E</div><div class='add'>+0x4E2C = 0x635C</div><div class='add'>+0x4E2D = 0x5650</div><div class='add'>+0x4E30 = 0x3761</div><div class='add'>+0x4E32 = 0x342E</div><div class='add'>+0x4E34 = 0x4159</div><div class='add'>+0x4E36 = 0x583C</div><div class='add'>+0x4E38 = 0x4D68</div><div class='add'>+0x4E39 = 0x3524</div><div class='add'>+0x4E3A = 0x4E2A</div><div class='add'>+0x4E3B = 0x5677</div><div class='add'>+0x4E3D = 0x4076</div><div class='add'>+0x4E3E = 0x3E59</div><div class='add'>+0x4E3F = 0x582F</div><div class='add'>+0x4E43 = 0x444B</div><div class='add'>+0x4E45 = 0x3E43</div><div class='add'>+0x4E47 = 0x5831</div><div class='add'>+0x4E48 = 0x4334</div><div class='add'>+0x4E49 = 0x5265</div><div class='add'>+0x4E4B = 0x562E</div><div class='add'>+0x4E4C = 0x4E5A</div><div class='add'>+0x4E4D = 0x5527</div><div class='add'>+0x4E4E = 0x3A75</div><div class='add'>+0x4E4F = 0x3726</div><div class='add'>+0x4E50 = 0x4056</div><div class='add'>+0x4E52 = 0x4639</div><div class='add'>+0x4E53 = 0x4552</div><div class='add'>+0x4E54 = 0x4747</div><div class='add'>+0x4E56 = 0x3954</div><div class='add'>+0x4E58 = 0x334B</div><div class='add'>+0x4E59 = 0x5252</div><div class='add'>+0x4E5C = 0x583F</div><div class='add'>+0x4E5D = 0x3E45</div><div class='add'>+0x4E5E = 0x4672</div><div class='add'>+0x4E5F = 0x5232</div><div class='add'>+0x4E60 = 0x4F30</div><div class='add'>+0x4E61 = 0x4F67</div><div class='add'>+0x4E66 = 0x4A69</div><div class='add'>+0x4E69 = 0x5840</div><div class='add'>+0x4E70 = 0x4272</div><div class='add'>+0x4E71 = 0x4252</div><div class='add'>+0x4E73 = 0x4869</div><div class='add'>+0x4E7E = 0x472C</div><div class='add'>+0x4E86 = 0x414B</div><div class='add'>+0x4E88 = 0x5368</div><div class='add'>+0x4E89 = 0x5579</div><div class='add'>+0x4E8B = 0x4A42</div><div class='add'>+0x4E8C = 0x367E</div><div class='add'>+0x4E8D = 0x5821</div><div class='add'>+0x4E8E = 0x535A</div><div class='add'>+0x4E8F = 0x3F77</div><div class='add'>+0x4E91 = 0x5446</div><div class='add'>+0x4E92 = 0x3B25</div><div class='add'>+0x4E93 = 0x5841</div><div class='add'>+0x4E94 = 0x4E65</div><div class='add'>+0x4E95 = 0x3E2E</div><div class='add'>+0x4E98 = 0x5828</div><div class='add'>+0x4E9A = 0x5147</div><div class='add'>+0x4E9B = 0x5029</div><div class='add'>+0x4E9F = 0x583D</div><div class='add'>+0x4EA0 = 0x596F</div><div class='add'>+0x4EA1 = 0x4D76</div><div class='add'>+0x4EA2 = 0x3F3A</div><div class='add'>+0x4EA4 = 0x3D3B</div><div class='add'>+0x4EA5 = 0x3A25</div><div class='add'>+0x4EA6 = 0x5260</div><div class='add'>+0x4EA7 = 0x327A</div><div class='add'>+0x4EA8 = 0x3A60</div><div class='add'>+0x4EA9 = 0x4436</div><div class='add'>+0x4EAB = 0x4F6D</div><div class='add'>+0x4EAC = 0x3E29</div><div class='add'>+0x4EAD = 0x4D24</div><div class='add'>+0x4EAE = 0x4141</div><div class='add'>+0x4EB2 = 0x4757</div><div class='add'>+0x4EB3 = 0x5971</div><div class='add'>+0x4EB5 = 0x5974</div><div class='add'>+0x4EBA = 0x484B</div><div class='add'>+0x4EBB = 0x5869</div><div class='add'>+0x4EBF = 0x525A</div><div class='add'>+0x4EC0 = 0x4A32</div><div class='add'>+0x4EC1 = 0x484A</div><div class='add'>+0x4EC2 = 0x586C</div><div class='add'>+0x4EC3 = 0x586A</div><div class='add'>+0x4EC4 = 0x5846</div><div class='add'>+0x4EC5 = 0x3D76</div><div class='add'>+0x4EC6 = 0x464D</div><div class='add'>+0x4EC7 = 0x3370</div><div class='add'>+0x4EC9 = 0x586B</div><div class='add'>+0x4ECA = 0x3D71</div><div class='add'>+0x4ECB = 0x3D69</div><div class='add'>+0x4ECD = 0x4854</div><div class='add'>+0x4ECE = 0x3453</div><div class='add'>+0x4ED1 = 0x4258</div><div class='add'>+0x4ED3 = 0x3256</div><div class='add'>+0x4ED4 = 0x5750</div><div class='add'>+0x4ED5 = 0x4A4B</div><div class='add'>+0x4ED6 = 0x4B7B</div><div class='add'>+0x4ED7 = 0x554C</div><div class='add'>+0x4ED8 = 0x3836</div><div class='add'>+0x4ED9 = 0x4F49</div><div class='add'>+0x4EDD = 0x595A</div><div class='add'>+0x4EDE = 0x5870</div><div class='add'>+0x4EDF = 0x472A</div><div class='add'>+0x4EE1 = 0x586E</div><div class='add'>+0x4EE3 = 0x347A</div><div class='add'>+0x4EE4 = 0x416E</div><div class='add'>+0x4EE5 = 0x5254</div><div class='add'>+0x4EE8 = 0x586D</div><div class='add'>+0x4EEA = 0x5247</div><div class='add'>+0x4EEB = 0x586F</div><div class='add'>+0x4EEC = 0x4347</div><div class='add'>+0x4EF0 = 0x5176</div><div class='add'>+0x4EF2 = 0x5659</div><div class='add'>+0x4EF3 = 0x5872</div><div class='add'>+0x4EF5 = 0x5875</div><div class='add'>+0x4EF6 = 0x3C7E</div><div class='add'>+0x4EF7 = 0x3C5B</div><div class='add'>+0x4EFB = 0x484E</div><div class='add'>+0x4EFD = 0x375D</div><div class='add'>+0x4EFF = 0x3742</div><div class='add'>+0x4F01 = 0x4673</div><div class='add'>+0x4F09 = 0x5878</div><div class='add'>+0x4F0A = 0x5241</div><div class='add'>+0x4F0D = 0x4E69</div><div class='add'>+0x4F0E = 0x3C3F</div><div class='add'>+0x4F0F = 0x377C</div><div class='add'>+0x4F10 = 0x3725</div><div class='add'>+0x4F11 = 0x505D</div><div class='add'>+0x4F17 = 0x565A</div><div class='add'>+0x4F18 = 0x5345</div><div class='add'>+0x4F19 = 0x3B6F</div><div class='add'>+0x4F1A = 0x3B61</div><div class='add'>+0x4F1B = 0x5871</div><div class='add'>+0x4F1E = 0x4921</div><div class='add'>+0x4F1F = 0x4E30</div><div class='add'>+0x4F20 = 0x342B</div><div class='add'>+0x4F22 = 0x5873</div><div class='add'>+0x4F24 = 0x494B</div><div class='add'>+0x4F25 = 0x5876</div><div class='add'>+0x4F26 = 0x4257</div><div class='add'>+0x4F27 = 0x5877</div><div class='add'>+0x4F2A = 0x4E31</div><div class='add'>+0x4F2B = 0x5879</div><div class='add'>+0x4F2F = 0x322E</div><div class='add'>+0x4F30 = 0x3940</div><div class='add'>+0x4F32 = 0x5923</div><div class='add'>+0x4F34 = 0x3069</div><div class='add'>+0x4F36 = 0x4166</div><div class='add'>+0x4F38 = 0x496C</div><div class='add'>+0x4F3A = 0x4B45</div><div class='add'>+0x4F3C = 0x4B46</div><div class='add'>+0x4F3D = 0x5924</div><div class='add'>+0x4F43 = 0x3568</div><div class='add'>+0x4F46 = 0x352B</div><div class='add'>+0x4F4D = 0x4E3B</div><div class='add'>+0x4F4E = 0x354D</div><div class='add'>+0x4F4F = 0x5721</div><div class='add'>+0x4F50 = 0x5774</div><div class='add'>+0x4F51 = 0x5353</div><div class='add'>+0x4F53 = 0x4C65</div><div class='add'>+0x4F55 = 0x3A4E</div><div class='add'>+0x4F57 = 0x5922</div><div class='add'>+0x4F58 = 0x595C</div><div class='add'>+0x4F59 = 0x5360</div><div class='add'>+0x4F5A = 0x587D</div><div class='add'>+0x4F5B = 0x3770</div><div class='add'>+0x4F5C = 0x5777</div><div class='add'>+0x4F5D = 0x587E</div><div class='add'>+0x4F5E = 0x587A</div><div class='add'>+0x4F5F = 0x5921</div><div class='add'>+0x4F60 = 0x4463</div><div class='add'>+0x4F63 = 0x5336</div><div class='add'>+0x4F64 = 0x5874</div><div class='add'>+0x4F65 = 0x595D</div><div class='add'>+0x4F67 = 0x587B</div><div class='add'>+0x4F69 = 0x4565</div><div class='add'>+0x4F6C = 0x4050</div><div class='add'>+0x4F6F = 0x5170</div><div class='add'>+0x4F70 = 0x305B</div><div class='add'>+0x4F73 = 0x3C51</div><div class='add'>+0x4F74 = 0x5926</div><div class='add'>+0x4F76 = 0x5925</div><div class='add'>+0x4F7B = 0x592C</div><div class='add'>+0x4F7C = 0x592E</div><div class='add'>+0x4F7E = 0x592B</div><div class='add'>+0x4F7F = 0x4A39</div><div class='add'>+0x4F83 = 0x5929</div><div class='add'>+0x4F84 = 0x5636</div><div class='add'>+0x4F88 = 0x335E</div><div class='add'>+0x4F89 = 0x5928</div><div class='add'>+0x4F8B = 0x407D</div><div class='add'>+0x4F8D = 0x4A4C</div><div class='add'>+0x4F8F = 0x592A</div><div class='add'>+0x4F91 = 0x5927</div><div class='add'>+0x4F94 = 0x5930</div><div class='add'>+0x4F97 = 0x3631</div><div class='add'>+0x4F9B = 0x3929</div><div class='add'>+0x4F9D = 0x5240</div><div class='add'>+0x4FA0 = 0x4F40</div><div class='add'>+0x4FA3 = 0x4242</div><div class='add'>+0x4FA5 = 0x3D44</div><div class='add'>+0x4FA6 = 0x556C</div><div class='add'>+0x4FA7 = 0x3260</div><div class='add'>+0x4FA8 = 0x4748</div><div class='add'>+0x4FA9 = 0x3F6B</div><div class='add'>+0x4FAA = 0x592D</div><div class='add'>+0x4FAC = 0x592F</div><div class='add'>+0x4FAE = 0x4E6A</div><div class='add'>+0x4FAF = 0x3A6E</div><div class='add'>+0x4FB5 = 0x4756</div><div class='add'>+0x4FBF = 0x3163</div><div class='add'>+0x4FC3 = 0x3459</div><div class='add'>+0x4FC4 = 0x366D</div><div class='add'>+0x4FC5 = 0x5934</div><div class='add'>+0x4FCA = 0x3F21</div><div class='add'>+0x4FCE = 0x595E</div><div class='add'>+0x4FCF = 0x474E</div><div class='add'>+0x4FD0 = 0x407E</div><div class='add'>+0x4FD1 = 0x5938</div><div class='add'>+0x4FD7 = 0x4B57</div><div class='add'>+0x4FD8 = 0x377D</div><div class='add'>+0x4FDA = 0x5935</div><div class='add'>+0x4FDC = 0x5937</div><div class='add'>+0x4FDD = 0x3123</div><div class='add'>+0x4FDE = 0x5361</div><div class='add'>+0x4FDF = 0x5939</div><div class='add'>+0x4FE1 = 0x5045</div><div class='add'>+0x4FE3 = 0x5936</div><div class='add'>+0x4FE6 = 0x5931</div><div class='add'>+0x4FE8 = 0x5932</div><div class='add'>+0x4FE9 = 0x4129</div><div class='add'>+0x4FEA = 0x5933</div><div class='add'>+0x4FED = 0x3C73</div><div class='add'>+0x4FEE = 0x505E</div><div class='add'>+0x4FEF = 0x3829</div><div class='add'>+0x4FF1 = 0x3E63</div><div class='add'>+0x4FF3 = 0x593D</div><div class='add'>+0x4FF8 = 0x593A</div><div class='add'>+0x4FFA = 0x3033</div><div class='add'>+0x4FFE = 0x5942</div><div class='add'>+0x500C = 0x5944</div><div class='add'>+0x500D = 0x3136</div><div class='add'>+0x500F = 0x593F</div><div class='add'>+0x5012 = 0x3539</div><div class='add'>+0x5014 = 0x3E73</div><div class='add'>+0x5018 = 0x4C48</div><div class='add'>+0x5019 = 0x3A72</div><div class='add'>+0x501A = 0x5250</div><div class='add'>+0x501C = 0x5943</div><div class='add'>+0x501F = 0x3D68</div><div class='add'>+0x5021 = 0x332B</div><div class='add'>+0x5025 = 0x5945</div><div class='add'>+0x5026 = 0x3E6B</div><div class='add'>+0x5028 = 0x5946</div><div class='add'>+0x5029 = 0x593B</div><div class='add'>+0x502A = 0x445F</div><div class='add'>+0x502C = 0x593E</div><div class='add'>+0x502D = 0x5941</div><div class='add'>+0x502E = 0x5940</div><div class='add'>+0x503A = 0x552E</div><div class='add'>+0x503C = 0x5635</div><div class='add'>+0x503E = 0x4763</div><div class='add'>+0x5043 = 0x5948</div><div class='add'>+0x5047 = 0x3C59</div><div class='add'>+0x5048 = 0x594A</div><div class='add'>+0x504C = 0x593C</div><div class='add'>+0x504E = 0x594B</div><div class='add'>+0x504F = 0x462B</div><div class='add'>+0x5055 = 0x5949</div><div class='add'>+0x505A = 0x5776</div><div class='add'>+0x505C = 0x4D23</div><div class='add'>+0x5065 = 0x3D21</div><div class='add'>+0x506C = 0x594C</div><div class='add'>+0x5076 = 0x453C</div><div class='add'>+0x5077 = 0x4D35</div><div class='add'>+0x507B = 0x594D</div><div class='add'>+0x507E = 0x5947</div><div class='add'>+0x507F = 0x3325</div><div class='add'>+0x5080 = 0x3F7E</div><div class='add'>+0x5085 = 0x3835</div><div class='add'>+0x5088 = 0x407C</div><div class='add'>+0x508D = 0x3078</div><div class='add'>+0x50A3 = 0x3476</div><div class='add'>+0x50A5 = 0x594E</div><div class='add'>+0x50A7 = 0x594F</div><div class='add'>+0x50A8 = 0x3422</div><div class='add'>+0x50A9 = 0x5950</div><div class='add'>+0x50AC = 0x345F</div><div class='add'>+0x50B2 = 0x3041</div><div class='add'>+0x50BA = 0x5951</div><div class='add'>+0x50BB = 0x4935</div><div class='add'>+0x50CF = 0x4F71</div><div class='add'>+0x50D6 = 0x5952</div><div class='add'>+0x50DA = 0x4145</div><div class='add'>+0x50E6 = 0x5956</div><div class='add'>+0x50E7 = 0x492E</div><div class='add'>+0x50EC = 0x5955</div><div class='add'>+0x50ED = 0x5954</div><div class='add'>+0x50EE = 0x5957</div><div class='add'>+0x50F3 = 0x4B5B</div><div class='add'>+0x50F5 = 0x3D29</div><div class='add'>+0x50FB = 0x4627</div><div class='add'>+0x5106 = 0x5953</div><div class='add'>+0x5107 = 0x5958</div><div class='add'>+0x510B = 0x5959</div><div class='add'>+0x5112 = 0x4865</div><div class='add'>+0x5121 = 0x405C</div><div class='add'>+0x513F = 0x3679</div><div class='add'>+0x5140 = 0x5823</div><div class='add'>+0x5141 = 0x544A</div><div class='add'>+0x5143 = 0x542A</div><div class='add'>+0x5144 = 0x5056</div><div class='add'>+0x5145 = 0x3364</div><div class='add'>+0x5146 = 0x5557</div><div class='add'>+0x5148 = 0x4F48</div><div class='add'>+0x5149 = 0x3962</div><div class='add'>+0x514B = 0x3F4B</div><div class='add'>+0x514D = 0x4362</div><div class='add'>+0x5151 = 0x3652</div><div class='add'>+0x5154 = 0x4D43</div><div class='add'>+0x5155 = 0x596E</div><div class='add'>+0x5156 = 0x5970</div><div class='add'>+0x515A = 0x3533</div><div class='add'>+0x515C = 0x3635</div><div class='add'>+0x5162 = 0x3E24</div><div class='add'>+0x5165 = 0x486B</div><div class='add'>+0x5168 = 0x482B</div><div class='add'>+0x516B = 0x304B</div><div class='add'>+0x516C = 0x392B</div><div class='add'>+0x516D = 0x4179</div><div class='add'>+0x516E = 0x5962</div><div class='add'>+0x5170 = 0x403C</div><div class='add'>+0x5171 = 0x3932</div><div class='add'>+0x5173 = 0x3958</div><div class='add'>+0x5174 = 0x504B</div><div class='add'>+0x5175 = 0x3178</div><div class='add'>+0x5176 = 0x4664</div><div class='add'>+0x5177 = 0x3E5F</div><div class='add'>+0x5178 = 0x3564</div><div class='add'>+0x5179 = 0x5748</div><div class='add'>+0x517B = 0x5178</div><div class='add'>+0x517C = 0x3C66</div><div class='add'>+0x517D = 0x4A5E</div><div class='add'>+0x5180 = 0x3C3D</div><div class='add'>+0x5181 = 0x5966</div><div class='add'>+0x5182 = 0x5867</div><div class='add'>+0x5185 = 0x445A</div><div class='add'>+0x5188 = 0x3854</div><div class='add'>+0x5189 = 0x483D</div><div class='add'>+0x518C = 0x3261</div><div class='add'>+0x518D = 0x5459</div><div class='add'>+0x5192 = 0x4330</div><div class='add'>+0x5195 = 0x4361</div><div class='add'>+0x5196 = 0x5A22</div><div class='add'>+0x5197 = 0x485F</div><div class='add'>+0x5199 = 0x5034</div><div class='add'>+0x519B = 0x3E7C</div><div class='add'>+0x519C = 0x4529</div><div class='add'>+0x51A0 = 0x395A</div><div class='add'>+0x51A2 = 0x5A23</div><div class='add'>+0x51A4 = 0x5429</div><div class='add'>+0x51A5 = 0x5A24</div><div class='add'>+0x51AB = 0x597B</div><div class='add'>+0x51AC = 0x362C</div><div class='add'>+0x51AF = 0x376B</div><div class='add'>+0x51B0 = 0x3179</div><div class='add'>+0x51B1 = 0x597C</div><div class='add'>+0x51B2 = 0x3365</div><div class='add'>+0x51B3 = 0x3E76</div><div class='add'>+0x51B5 = 0x3F76</div><div class='add'>+0x51B6 = 0x5231</div><div class='add'>+0x51B7 = 0x4064</div><div class='add'>+0x51BB = 0x3633</div><div class='add'>+0x51BC = 0x597E</div><div class='add'>+0x51BD = 0x597D</div><div class='add'>+0x51C0 = 0x3E3B</div><div class='add'>+0x51C4 = 0x4660</div><div class='add'>+0x51C6 = 0x573C</div><div class='add'>+0x51C7 = 0x5A21</div><div class='add'>+0x51C9 = 0x4139</div><div class='add'>+0x51CB = 0x3572</div><div class='add'>+0x51CC = 0x4168</div><div class='add'>+0x51CF = 0x3C75</div><div class='add'>+0x51D1 = 0x3455</div><div class='add'>+0x51DB = 0x415D</div><div class='add'>+0x51DD = 0x447D</div><div class='add'>+0x51E0 = 0x3C38</div><div class='add'>+0x51E1 = 0x3732</div><div class='add'>+0x51E4 = 0x376F</div><div class='add'>+0x51EB = 0x596C</div><div class='add'>+0x51ED = 0x463E</div><div class='add'>+0x51EF = 0x3F2D</div><div class='add'>+0x51F0 = 0x3B4B</div><div class='add'>+0x51F3 = 0x354A</div><div class='add'>+0x51F5 = 0x5B49</div><div class='add'>+0x51F6 = 0x5057</div><div class='add'>+0x51F8 = 0x4D39</div><div class='add'>+0x51F9 = 0x303C</div><div class='add'>+0x51FA = 0x3376</div><div class='add'>+0x51FB = 0x3B77</div><div class='add'>+0x51FC = 0x5B4A</div><div class='add'>+0x51FD = 0x3A2F</div><div class='add'>+0x51FF = 0x5464</div><div class='add'>+0x5200 = 0x3536</div><div class='add'>+0x5201 = 0x3573</div><div class='add'>+0x5202 = 0x5856</div><div class='add'>+0x5203 = 0x4850</div><div class='add'>+0x5206 = 0x3756</div><div class='add'>+0x5207 = 0x4750</div><div class='add'>+0x5208 = 0x5857</div><div class='add'>+0x520A = 0x3F2F</div><div class='add'>+0x520D = 0x5B3B</div><div class='add'>+0x520E = 0x5858</div><div class='add'>+0x5211 = 0x504C</div><div class='add'>+0x5212 = 0x3B2E</div><div class='add'>+0x5216 = 0x6B3E</div><div class='add'>+0x5217 = 0x4150</div><div class='add'>+0x5218 = 0x4175</div><div class='add'>+0x5219 = 0x5472</div><div class='add'>+0x521A = 0x3855</div><div class='add'>+0x521B = 0x3434</div><div class='add'>+0x521D = 0x3375</div><div class='add'>+0x5220 = 0x493E</div><div class='add'>+0x5224 = 0x4550</div><div class='add'>+0x5228 = 0x4559</div><div class='add'>+0x5229 = 0x407B</div><div class='add'>+0x522B = 0x3170</div><div class='add'>+0x522D = 0x5859</div><div class='add'>+0x522E = 0x394E</div><div class='add'>+0x5230 = 0x353D</div><div class='add'>+0x5233 = 0x585A</div><div class='add'>+0x5236 = 0x5646</div><div class='add'>+0x5237 = 0x4B22</div><div class='add'>+0x5238 = 0x482F</div><div class='add'>+0x5239 = 0x4932</div><div class='add'>+0x523A = 0x344C</div><div class='add'>+0x523B = 0x3F4C</div><div class='add'>+0x523D = 0x3974</div><div class='add'>+0x523F = 0x585B</div><div class='add'>+0x5240 = 0x585C</div><div class='add'>+0x5241 = 0x3667</div><div class='add'>+0x5242 = 0x3C41</div><div class='add'>+0x5243 = 0x4C6A</div><div class='add'>+0x524A = 0x4F77</div><div class='add'>+0x524C = 0x585D</div><div class='add'>+0x524D = 0x4730</div><div class='add'>+0x5250 = 0x3950</div><div class='add'>+0x5251 = 0x3D23</div><div class='add'>+0x5254 = 0x4C5E</div><div class='add'>+0x5256 = 0x464A</div><div class='add'>+0x525C = 0x5860</div><div class='add'>+0x525E = 0x585E</div><div class='add'>+0x5261 = 0x585F</div><div class='add'>+0x5265 = 0x307E</div><div class='add'>+0x5267 = 0x3E67</div><div class='add'>+0x5269 = 0x4A23</div><div class='add'>+0x526A = 0x3C74</div><div class='add'>+0x526F = 0x3831</div><div class='add'>+0x5272 = 0x386E</div><div class='add'>+0x527D = 0x5862</div><div class='add'>+0x527F = 0x3D4B</div><div class='add'>+0x5281 = 0x5864</div><div class='add'>+0x5282 = 0x5863</div><div class='add'>+0x5288 = 0x457C</div><div class='add'>+0x5290 = 0x5865</div><div class='add'>+0x5293 = 0x5866</div><div class='add'>+0x529B = 0x4126</div><div class='add'>+0x529D = 0x4830</div><div class='add'>+0x529E = 0x306C</div><div class='add'>+0x529F = 0x3926</div><div class='add'>+0x52A0 = 0x3C53</div><div class='add'>+0x52A1 = 0x4E71</div><div class='add'>+0x52A2 = 0x5B3D</div><div class='add'>+0x52A3 = 0x4153</div><div class='add'>+0x52A8 = 0x362F</div><div class='add'>+0x52A9 = 0x567A</div><div class='add'>+0x52AA = 0x452C</div><div class='add'>+0x52AB = 0x3D59</div><div class='add'>+0x52AC = 0x5B3E</div><div class='add'>+0x52AD = 0x5B3F</div><div class='add'>+0x52B1 = 0x4078</div><div class='add'>+0x52B2 = 0x3E22</div><div class='add'>+0x52B3 = 0x404D</div><div class='add'>+0x52BE = 0x5B40</div><div class='add'>+0x52BF = 0x4A46</div><div class='add'>+0x52C3 = 0x322A</div><div class='add'>+0x52C7 = 0x5342</div><div class='add'>+0x52C9 = 0x4363</div><div class='add'>+0x52CB = 0x512B</div><div class='add'>+0x52D0 = 0x5B42</div><div class='add'>+0x52D2 = 0x4055</div><div class='add'>+0x52D6 = 0x5B43</div><div class='add'>+0x52D8 = 0x3F31</div><div class='add'>+0x52DF = 0x443C</div><div class='add'>+0x52E4 = 0x475A</div><div class='add'>+0x52F0 = 0x5B44</div><div class='add'>+0x52F9 = 0x5968</div><div class='add'>+0x52FA = 0x4957</div><div class='add'>+0x52FE = 0x3934</div><div class='add'>+0x52FF = 0x4E70</div><div class='add'>+0x5300 = 0x5448</div><div class='add'>+0x5305 = 0x307C</div><div class='add'>+0x5306 = 0x3452</div><div class='add'>+0x5308 = 0x5059</div><div class='add'>+0x530D = 0x5969</div><div class='add'>+0x530F = 0x5E4B</div><div class='add'>+0x5310 = 0x596B</div><div class='add'>+0x5315 = 0x5830</div><div class='add'>+0x5316 = 0x3B2F</div><div class='add'>+0x5317 = 0x3131</div><div class='add'>+0x5319 = 0x3357</div><div class='add'>+0x531A = 0x584E</div><div class='add'>+0x531D = 0x5451</div><div class='add'>+0x5320 = 0x3D33</div><div class='add'>+0x5321 = 0x3F6F</div><div class='add'>+0x5323 = 0x4F3B</div><div class='add'>+0x5326 = 0x5850</div><div class='add'>+0x532A = 0x374B</div><div class='add'>+0x532E = 0x5851</div><div class='add'>+0x5339 = 0x4625</div><div class='add'>+0x533A = 0x4778</div><div class='add'>+0x533B = 0x523D</div><div class='add'>+0x533E = 0x5852</div><div class='add'>+0x533F = 0x4464</div><div class='add'>+0x5341 = 0x4A2E</div><div class='add'>+0x5343 = 0x4727</div><div class='add'>+0x5345 = 0x5826</div><div class='add'>+0x5347 = 0x497D</div><div class='add'>+0x5348 = 0x4E67</div><div class='add'>+0x5349 = 0x3B5C</div><div class='add'>+0x534A = 0x306B</div><div class='add'>+0x534E = 0x3B2A</div><div class='add'>+0x534F = 0x502D</div><div class='add'>+0x5351 = 0x3130</div><div class='add'>+0x5352 = 0x5764</div><div class='add'>+0x5353 = 0x573F</div><div class='add'>+0x5355 = 0x3525</div><div class='add'>+0x5356 = 0x4274</div><div class='add'>+0x5357 = 0x444F</div><div class='add'>+0x535A = 0x3229</div><div class='add'>+0x535C = 0x3237</div><div class='add'>+0x535E = 0x3165</div><div class='add'>+0x535F = 0x5F32</div><div class='add'>+0x5360 = 0x553C</div><div class='add'>+0x5361 = 0x3F28</div><div class='add'>+0x5362 = 0x422C</div><div class='add'>+0x5363 = 0x5855</div><div class='add'>+0x5364 = 0x4231</div><div class='add'>+0x5366 = 0x5854</div><div class='add'>+0x5367 = 0x4E54</div><div class='add'>+0x5369 = 0x5A60</div><div class='add'>+0x536B = 0x4E40</div><div class='add'>+0x536E = 0x5834</div><div class='add'>+0x536F = 0x432E</div><div class='add'>+0x5370 = 0x5321</div><div class='add'>+0x5371 = 0x4E23</div><div class='add'>+0x5373 = 0x3C34</div><div class='add'>+0x5374 = 0x4834</div><div class='add'>+0x5375 = 0x4251</div><div class='add'>+0x5377 = 0x3E6D</div><div class='add'>+0x5378 = 0x5036</div><div class='add'>+0x537A = 0x5A61</div><div class='add'>+0x537F = 0x4764</div><div class='add'>+0x5382 = 0x3327</div><div class='add'>+0x5384 = 0x3672</div><div class='add'>+0x5385 = 0x4C7C</div><div class='add'>+0x5386 = 0x407A</div><div class='add'>+0x5389 = 0x4077</div><div class='add'>+0x538B = 0x5139</div><div class='add'>+0x538C = 0x5161</div><div class='add'>+0x538D = 0x5847</div><div class='add'>+0x5395 = 0x325E</div><div class='add'>+0x5398 = 0x4065</div><div class='add'>+0x539A = 0x3A71</div><div class='add'>+0x539D = 0x5848</div><div class='add'>+0x539F = 0x542D</div><div class='add'>+0x53A2 = 0x4F61</div><div class='add'>+0x53A3 = 0x5849</div><div class='add'>+0x53A5 = 0x584A</div><div class='add'>+0x53A6 = 0x4F43</div><div class='add'>+0x53A8 = 0x3378</div><div class='add'>+0x53A9 = 0x3E47</div><div class='add'>+0x53AE = 0x584B</div><div class='add'>+0x53B6 = 0x5B4C</div><div class='add'>+0x53BB = 0x4825</div><div class='add'>+0x53BF = 0x4F58</div><div class='add'>+0x53C1 = 0x487E</div><div class='add'>+0x53C2 = 0x324E</div><div class='add'>+0x53C8 = 0x5356</div><div class='add'>+0x53C9 = 0x3266</div><div class='add'>+0x53CA = 0x3C30</div><div class='add'>+0x53CB = 0x5351</div><div class='add'>+0x53CC = 0x4B2B</div><div class='add'>+0x53CD = 0x3734</div><div class='add'>+0x53D1 = 0x3722</div><div class='add'>+0x53D4 = 0x4A65</div><div class='add'>+0x53D6 = 0x4821</div><div class='add'>+0x53D7 = 0x4A5C</div><div class='add'>+0x53D8 = 0x3164</div><div class='add'>+0x53D9 = 0x5070</div><div class='add'>+0x53DB = 0x4551</div><div class='add'>+0x53DF = 0x5B45</div><div class='add'>+0x53E0 = 0x357E</div><div class='add'>+0x53E3 = 0x3F5A</div><div class='add'>+0x53E4 = 0x3945</div><div class='add'>+0x53E5 = 0x3E64</div><div class='add'>+0x53E6 = 0x416D</div><div class='add'>+0x53E8 = 0x5F36</div><div class='add'>+0x53E9 = 0x5F35</div><div class='add'>+0x53EA = 0x563B</div><div class='add'>+0x53EB = 0x3D50</div><div class='add'>+0x53EC = 0x5559</div><div class='add'>+0x53ED = 0x3048</div><div class='add'>+0x53EE = 0x3623</div><div class='add'>+0x53EF = 0x3F49</div><div class='add'>+0x53F0 = 0x4C28</div><div class='add'>+0x53F1 = 0x5F33</div><div class='add'>+0x53F2 = 0x4A37</div><div class='add'>+0x53F3 = 0x5352</div><div class='add'>+0x53F5 = 0x584F</div><div class='add'>+0x53F6 = 0x5236</div><div class='add'>+0x53F7 = 0x3A45</div><div class='add'>+0x53F8 = 0x4B3E</div><div class='add'>+0x53F9 = 0x4C3E</div><div class='add'>+0x53FB = 0x5F37</div><div class='add'>+0x53FC = 0x3570</div><div class='add'>+0x53FD = 0x5F34</div><div class='add'>+0x5401 = 0x5375</div><div class='add'>+0x5403 = 0x3354</div><div class='add'>+0x5404 = 0x3877</div><div class='add'>+0x5406 = 0x5F3A</div><div class='add'>+0x5408 = 0x3A4F</div><div class='add'>+0x5409 = 0x3C2A</div><div class='add'>+0x540A = 0x3575</div><div class='add'>+0x540C = 0x4D2C</div><div class='add'>+0x540D = 0x437B</div><div class='add'>+0x540E = 0x3A73</div><div class='add'>+0x540F = 0x4074</div><div class='add'>+0x5410 = 0x4D42</div><div class='add'>+0x5411 = 0x4F72</div><div class='add'>+0x5412 = 0x5F38</div><div class='add'>+0x5413 = 0x4F45</div><div class='add'>+0x5415 = 0x4240</div><div class='add'>+0x5416 = 0x5F39</div><div class='add'>+0x5417 = 0x4270</div><div class='add'>+0x541B = 0x3E7D</div><div class='add'>+0x541D = 0x415F</div><div class='add'>+0x541E = 0x4D4C</div><div class='add'>+0x541F = 0x5277</div><div class='add'>+0x5420 = 0x374D</div><div class='add'>+0x5421 = 0x5F41</div><div class='add'>+0x5423 = 0x5F44</div><div class='add'>+0x5426 = 0x3771</div><div class='add'>+0x5427 = 0x3049</div><div class='add'>+0x5428 = 0x3656</div><div class='add'>+0x5429 = 0x3754</div><div class='add'>+0x542B = 0x3A2C</div><div class='add'>+0x542C = 0x4C7D</div><div class='add'>+0x542D = 0x3F54</div><div class='add'>+0x542E = 0x4B31</div><div class='add'>+0x542F = 0x4674</div><div class='add'>+0x5431 = 0x5628</div><div class='add'>+0x5432 = 0x5F45</div><div class='add'>+0x5434 = 0x4E62</div><div class='add'>+0x5435 = 0x3333</div><div class='add'>+0x5438 = 0x4E7C</div><div class='add'>+0x5439 = 0x3435</div><div class='add'>+0x543B = 0x4E47</div><div class='add'>+0x543C = 0x3A70</div><div class='add'>+0x543E = 0x4E61</div><div class='add'>+0x5440 = 0x513D</div><div class='add'>+0x5443 = 0x5F40</div><div class='add'>+0x5446 = 0x3474</div><div class='add'>+0x5448 = 0x334A</div><div class='add'>+0x544A = 0x3866</div><div class='add'>+0x544B = 0x5F3B</div><div class='add'>+0x5450 = 0x4445</div><div class='add'>+0x5452 = 0x5F3C</div><div class='add'>+0x5453 = 0x5F3D</div><div class='add'>+0x5454 = 0x5F3E</div><div class='add'>+0x5455 = 0x453B</div><div class='add'>+0x5456 = 0x5F3F</div><div class='add'>+0x5457 = 0x5F42</div><div class='add'>+0x5458 = 0x5431</div><div class='add'>+0x5459 = 0x5F43</div><div class='add'>+0x545B = 0x473A</div><div class='add'>+0x545C = 0x4E58</div><div class='add'>+0x5462 = 0x4458</div><div class='add'>+0x5464 = 0x5F4A</div><div class='add'>+0x5466 = 0x5F4F</div><div class='add'>+0x5468 = 0x565C</div><div class='add'>+0x5471 = 0x5F49</div><div class='add'>+0x5472 = 0x5F5A</div><div class='add'>+0x5473 = 0x4E36</div><div class='add'>+0x5475 = 0x3A47</div><div class='add'>+0x5476 = 0x5F4E</div><div class='add'>+0x5477 = 0x5F48</div><div class='add'>+0x5478 = 0x455E</div><div class='add'>+0x547B = 0x496B</div><div class='add'>+0x547C = 0x3A74</div><div class='add'>+0x547D = 0x437C</div><div class='add'>+0x5480 = 0x3E57</div><div class='add'>+0x5482 = 0x5F46</div><div class='add'>+0x5484 = 0x5F4D</div><div class='add'>+0x5486 = 0x4558</div><div class='add'>+0x548B = 0x5526</div><div class='add'>+0x548C = 0x3A4D</div><div class='add'>+0x548E = 0x3E4C</div><div class='add'>+0x548F = 0x533D</div><div class='add'>+0x5490 = 0x3840</div><div class='add'>+0x5492 = 0x5664</div><div class='add'>+0x5494 = 0x5F47</div><div class='add'>+0x5495 = 0x393E</div><div class='add'>+0x5496 = 0x3F27</div><div class='add'>+0x5499 = 0x417C</div><div class='add'>+0x549A = 0x5F4B</div><div class='add'>+0x549B = 0x5F4C</div><div class='add'>+0x549D = 0x5F50</div><div class='add'>+0x54A3 = 0x5F5B</div><div class='add'>+0x54A4 = 0x5F65</div><div class='add'>+0x54A6 = 0x5F57</div><div class='add'>+0x54A7 = 0x5F56</div><div class='add'>+0x54A8 = 0x5749</div><div class='add'>+0x54A9 = 0x5F63</div><div class='add'>+0x54AA = 0x5F64</div><div class='add'>+0x54AB = 0x656B</div><div class='add'>+0x54AC = 0x5227</div><div class='add'>+0x54AD = 0x5F52</div><div class='add'>+0x54AF = 0x3F29</div><div class='add'>+0x54B1 = 0x545B</div><div class='add'>+0x54B3 = 0x3F48</div><div class='add'>+0x54B4 = 0x5F54</div><div class='add'>+0x54B8 = 0x4F4C</div><div class='add'>+0x54BB = 0x5F5D</div><div class='add'>+0x54BD = 0x514A</div><div class='add'>+0x54BF = 0x5F5E</div><div class='add'>+0x54C0 = 0x3027</div><div class='add'>+0x54C1 = 0x4637</div><div class='add'>+0x54C2 = 0x5F53</div><div class='add'>+0x54C4 = 0x3A65</div><div class='add'>+0x54C6 = 0x365F</div><div class='add'>+0x54C7 = 0x4D5B</div><div class='add'>+0x54C8 = 0x397E</div><div class='add'>+0x54C9 = 0x5455</div><div class='add'>+0x54CC = 0x5F5F</div><div class='add'>+0x54CD = 0x4F6C</div><div class='add'>+0x54CE = 0x3025</div><div class='add'>+0x54CF = 0x5F67</div><div class='add'>+0x54D0 = 0x5F51</div><div class='add'>+0x54D1 = 0x5146</div><div class='add'>+0x54D2 = 0x5F55</div><div class='add'>+0x54D3 = 0x5F58</div><div class='add'>+0x54D4 = 0x5F59</div><div class='add'>+0x54D5 = 0x5F5C</div><div class='add'>+0x54D7 = 0x3B29</div><div class='add'>+0x54D9 = 0x5F60</div><div class='add'>+0x54DA = 0x5F61</div><div class='add'>+0x54DC = 0x5F62</div><div class='add'>+0x54DD = 0x5F66</div><div class='add'>+0x54DE = 0x5F68</div><div class='add'>+0x54DF = 0x5334</div><div class='add'>+0x54E5 = 0x3867</div><div class='add'>+0x54E6 = 0x4536</div><div class='add'>+0x54E7 = 0x5F6A</div><div class='add'>+0x54E8 = 0x495A</div><div class='add'>+0x54E9 = 0x4128</div><div class='add'>+0x54EA = 0x4444</div><div class='add'>+0x54ED = 0x3F5E</div><div class='add'>+0x54EE = 0x4F78</div><div class='add'>+0x54F2 = 0x555C</div><div class='add'>+0x54F3 = 0x5F6E</div><div class='add'>+0x54FA = 0x3238</div><div class='add'>+0x54FC = 0x3A5F</div><div class='add'>+0x54FD = 0x5F6C</div><div class='add'>+0x54FF = 0x5B41</div><div class='add'>+0x5501 = 0x5164</div><div class='add'>+0x5506 = 0x4B74</div><div class='add'>+0x5507 = 0x343D</div><div class='add'>+0x5509 = 0x3026</div><div class='add'>+0x550F = 0x5F71</div><div class='add'>+0x5510 = 0x4C46</div><div class='add'>+0x5511 = 0x5F72</div><div class='add'>+0x5514 = 0x5F6D</div><div class='add'>+0x551B = 0x5F69</div><div class='add'>+0x5520 = 0x5F6B</div><div class='add'>+0x5522 = 0x5F6F</div><div class='add'>+0x5523 = 0x5F70</div><div class='add'>+0x5524 = 0x3B3D</div><div class='add'>+0x5527 = 0x5F73</div><div class='add'>+0x552A = 0x5F74</div><div class='add'>+0x552C = 0x3B23</div><div class='add'>+0x552E = 0x4A5B</div><div class='add'>+0x552F = 0x4E28</div><div class='add'>+0x5530 = 0x6027</div><div class='add'>+0x5531 = 0x332A</div><div class='add'>+0x5533 = 0x6026</div><div class='add'>+0x5537 = 0x6021</div><div class='add'>+0x553C = 0x5F7E</div><div class='add'>+0x553E = 0x4D59</div><div class='add'>+0x553F = 0x5F7C</div><div class='add'>+0x5541 = 0x5F7A</div><div class='add'>+0x5543 = 0x3F50</div><div class='add'>+0x5544 = 0x5744</div><div class='add'>+0x5546 = 0x494C</div><div class='add'>+0x5549 = 0x5F78</div><div class='add'>+0x554A = 0x3021</div><div class='add'>+0x5550 = 0x5F7D</div><div class='add'>+0x5555 = 0x5F7B</div><div class='add'>+0x5556 = 0x6022</div><div class='add'>+0x555C = 0x6028</div><div class='add'>+0x5561 = 0x3748</div><div class='add'>+0x5564 = 0x4621</div><div class='add'>+0x5565 = 0x4936</div><div class='add'>+0x5566 = 0x4032</div><div class='add'>+0x5567 = 0x5F75</div><div class='add'>+0x556A = 0x453E</div><div class='add'>+0x556C = 0x5844</div><div class='add'>+0x556D = 0x5F79</div><div class='add'>+0x556E = 0x4476</div><div class='add'>+0x5575 = 0x6023</div><div class='add'>+0x5576 = 0x6024</div><div class='add'>+0x5577 = 0x6025</div><div class='add'>+0x5578 = 0x5025</div><div class='add'>+0x557B = 0x6034</div><div class='add'>+0x557C = 0x4C64</div><div class='add'>+0x557E = 0x6031</div><div class='add'>+0x5580 = 0x3F26</div><div class='add'>+0x5581 = 0x602F</div><div class='add'>+0x5582 = 0x4E39</div><div class='add'>+0x5583 = 0x602B</div><div class='add'>+0x5584 = 0x4946</div><div class='add'>+0x5587 = 0x402E</div><div class='add'>+0x5588 = 0x602E</div><div class='add'>+0x5589 = 0x3A6D</div><div class='add'>+0x558A = 0x3A30</div><div class='add'>+0x558B = 0x6029</div><div class='add'>+0x558F = 0x5F76</div><div class='add'>+0x5591 = 0x6033</div><div class='add'>+0x5594 = 0x6038</div><div class='add'>+0x5598 = 0x342D</div><div class='add'>+0x5599 = 0x6039</div><div class='add'>+0x559C = 0x4F32</div><div class='add'>+0x559D = 0x3A48</div><div class='add'>+0x559F = 0x6030</div><div class='add'>+0x55A7 = 0x507A</div><div class='add'>+0x55B1 = 0x602C</div><div class='add'>+0x55B3 = 0x547B</div><div class='add'>+0x55B5 = 0x5F77</div><div class='add'>+0x55B7 = 0x4567</div><div class='add'>+0x55B9 = 0x602D</div><div class='add'>+0x55BB = 0x5377</div><div class='add'>+0x55BD = 0x6036</div><div class='add'>+0x55BE = 0x6037</div><div class='add'>+0x55C4 = 0x6044</div><div class='add'>+0x55C5 = 0x5061</div><div class='add'>+0x55C9 = 0x603C</div><div class='add'>+0x55CC = 0x6049</div><div class='add'>+0x55CD = 0x604A</div><div class='add'>+0x55D1 = 0x603E</div><div class='add'>+0x55D2 = 0x602A</div><div class='add'>+0x55D3 = 0x4924</div><div class='add'>+0x55D4 = 0x6041</div><div class='add'>+0x55D6 = 0x6032</div><div class='add'>+0x55DC = 0x4A48</div><div class='add'>+0x55DD = 0x6043</div><div class='add'>+0x55DF = 0x6035</div><div class='add'>+0x55E1 = 0x4E4B</div><div class='add'>+0x55E3 = 0x4B43</div><div class='add'>+0x55E4 = 0x604D</div><div class='add'>+0x55E5 = 0x6046</div><div class='add'>+0x55E6 = 0x6042</div><div class='add'>+0x55E8 = 0x604B</div><div class='add'>+0x55EA = 0x603A</div><div class='add'>+0x55EB = 0x603F</div><div class='add'>+0x55EC = 0x6040</div><div class='add'>+0x55EF = 0x6045</div><div class='add'>+0x55F2 = 0x6047</div><div class='add'>+0x55F3 = 0x6048</div><div class='add'>+0x55F5 = 0x604C</div><div class='add'>+0x55F7 = 0x603B</div><div class='add'>+0x55FD = 0x4B54</div><div class='add'>+0x55FE = 0x6055</div><div class='add'>+0x5600 = 0x6056</div><div class='add'>+0x5601 = 0x6052</div><div class='add'>+0x5608 = 0x6050</div><div class='add'>+0x5609 = 0x3C4E</div><div class='add'>+0x560C = 0x6051</div><div class='add'>+0x560E = 0x3842</div><div class='add'>+0x560F = 0x5845</div><div class='add'>+0x5618 = 0x506A</div><div class='add'>+0x561B = 0x426F</div><div class='add'>+0x561E = 0x604F</div><div class='add'>+0x561F = 0x603D</div><div class='add'>+0x5623 = 0x6054</div><div class='add'>+0x5624 = 0x6053</div><div class='add'>+0x5627 = 0x6057</div><div class='add'>+0x562C = 0x605C</div><div class='add'>+0x562D = 0x6058</div><div class='add'>+0x5631 = 0x5676</div><div class='add'>+0x5632 = 0x3330</div><div class='add'>+0x5634 = 0x576C</div><div class='add'>+0x5636 = 0x4B3B</div><div class='add'>+0x5639 = 0x605A</div><div class='add'>+0x563B = 0x4E7B</div><div class='add'>+0x563F = 0x3A59</div><div class='add'>+0x564C = 0x6061</div><div class='add'>+0x564D = 0x605D</div><div class='add'>+0x564E = 0x522D</div><div class='add'>+0x5654 = 0x6062</div><div class='add'>+0x5657 = 0x605B</div><div class='add'>+0x5658 = 0x6059</div><div class='add'>+0x5659 = 0x605F</div><div class='add'>+0x565C = 0x6060</div><div class='add'>+0x5662 = 0x605E</div><div class='add'>+0x5664 = 0x6064</div><div class='add'>+0x5668 = 0x4677</div><div class='add'>+0x5669 = 0x582C</div><div class='add'>+0x566A = 0x546B</div><div class='add'>+0x566B = 0x6066</div><div class='add'>+0x566C = 0x4A49</div><div class='add'>+0x5671 = 0x6065</div><div class='add'>+0x5676 = 0x3841</div><div class='add'>+0x567B = 0x6067</div><div class='add'>+0x567C = 0x6068</div><div class='add'>+0x5685 = 0x6069</div><div class='add'>+0x5686 = 0x6063</div><div class='add'>+0x568E = 0x3A3F</div><div class='add'>+0x568F = 0x4C67</div><div class='add'>+0x5693 = 0x606A</div><div class='add'>+0x56A3 = 0x4F79</div><div class='add'>+0x56AF = 0x606B</div><div class='add'>+0x56B7 = 0x4842</div><div class='add'>+0x56BC = 0x3D40</div><div class='add'>+0x56CA = 0x4452</div><div class='add'>+0x56D4 = 0x606C</div><div class='add'>+0x56D7 = 0x606D</div><div class='add'>+0x56DA = 0x4774</div><div class='add'>+0x56DB = 0x4B44</div><div class='add'>+0x56DD = 0x606E</div><div class='add'>+0x56DE = 0x3B58</div><div class='add'>+0x56DF = 0x5836</div><div class='add'>+0x56E0 = 0x5272</div><div class='add'>+0x56E1 = 0x606F</div><div class='add'>+0x56E2 = 0x4D45</div><div class='add'>+0x56E4 = 0x365A</div><div class='add'>+0x56EB = 0x6071</div><div class='add'>+0x56ED = 0x5430</div><div class='add'>+0x56F0 = 0x4027</div><div class='add'>+0x56F1 = 0x3451</div><div class='add'>+0x56F4 = 0x4E27</div><div class='add'>+0x56F5 = 0x6070</div><div class='add'>+0x56F9 = 0x6072</div><div class='add'>+0x56FA = 0x394C</div><div class='add'>+0x56FD = 0x397A</div><div class='add'>+0x56FE = 0x4D3C</div><div class='add'>+0x56FF = 0x6073</div><div class='add'>+0x5703 = 0x4654</div><div class='add'>+0x5704 = 0x6074</div><div class='add'>+0x5706 = 0x5432</div><div class='add'>+0x5708 = 0x4826</div><div class='add'>+0x5709 = 0x6076</div><div class='add'>+0x570A = 0x6075</div><div class='add'>+0x571C = 0x6077</div><div class='add'>+0x571F = 0x4D41</div><div class='add'>+0x5723 = 0x4A25</div><div class='add'>+0x5728 = 0x545A</div><div class='add'>+0x5729 = 0x5B57</div><div class='add'>+0x572A = 0x5B59</div><div class='add'>+0x572C = 0x5B58</div><div class='add'>+0x572D = 0x3967</div><div class='add'>+0x572E = 0x5B5C</div><div class='add'>+0x572F = 0x5B5D</div><div class='add'>+0x5730 = 0x3558</div><div class='add'>+0x5733 = 0x5B5A</div><div class='add'>+0x5739 = 0x5B5B</div><div class='add'>+0x573A = 0x3321</div><div class='add'>+0x573B = 0x5B5F</div><div class='add'>+0x573E = 0x3B78</div><div class='add'>+0x5740 = 0x5637</div><div class='add'>+0x5742 = 0x5B60</div><div class='add'>+0x5747 = 0x3E79</div><div class='add'>+0x574A = 0x373B</div><div class='add'>+0x574C = 0x5B50</div><div class='add'>+0x574D = 0x4C2E</div><div class='add'>+0x574E = 0x3F32</div><div class='add'>+0x574F = 0x3B35</div><div class='add'>+0x5750 = 0x5778</div><div class='add'>+0x5751 = 0x3F53</div><div class='add'>+0x5757 = 0x3F69</div><div class='add'>+0x575A = 0x3C61</div><div class='add'>+0x575B = 0x4C33</div><div class='add'>+0x575C = 0x5B5E</div><div class='add'>+0x575D = 0x3053</div><div class='add'>+0x575E = 0x4E6B</div><div class='add'>+0x575F = 0x3758</div><div class='add'>+0x5760 = 0x5739</div><div class='add'>+0x5761 = 0x4642</div><div class='add'>+0x5764 = 0x4024</div><div class='add'>+0x5766 = 0x4C39</div><div class='add'>+0x5768 = 0x5B67</div><div class='add'>+0x5769 = 0x5B61</div><div class='add'>+0x576A = 0x463A</div><div class='add'>+0x576B = 0x5B63</div><div class='add'>+0x576D = 0x5B68</div><div class='add'>+0x576F = 0x4577</div><div class='add'>+0x5773 = 0x5B6A</div><div class='add'>+0x5776 = 0x5B69</div><div class='add'>+0x5777 = 0x3F40</div><div class='add'>+0x577B = 0x5B66</div><div class='add'>+0x577C = 0x5B65</div><div class='add'>+0x5782 = 0x3439</div><div class='add'>+0x5783 = 0x402C</div><div class='add'>+0x5784 = 0x4222</div><div class='add'>+0x5785 = 0x5B62</div><div class='add'>+0x5786 = 0x5B64</div><div class='add'>+0x578B = 0x504D</div><div class='add'>+0x578C = 0x5B6D</div><div class='add'>+0x5792 = 0x405D</div><div class='add'>+0x5793 = 0x5B72</div><div class='add'>+0x579B = 0x3662</div><div class='add'>+0x57A0 = 0x5B73</div><div class='add'>+0x57A1 = 0x5B52</div><div class='add'>+0x57A2 = 0x3938</div><div class='add'>+0x57A3 = 0x542B</div><div class='add'>+0x57A4 = 0x5B6C</div><div class='add'>+0x57A6 = 0x3F51</div><div class='add'>+0x57A7 = 0x5B70</div><div class='add'>+0x57A9 = 0x5B51</div><div class='add'>+0x57AB = 0x3566</div><div class='add'>+0x57AD = 0x5B6B</div><div class='add'>+0x57AE = 0x3F65</div><div class='add'>+0x57B2 = 0x5B6E</div><div class='add'>+0x57B4 = 0x5B71</div><div class='add'>+0x57B8 = 0x5B79</div><div class='add'>+0x57C2 = 0x3921</div><div class='add'>+0x57C3 = 0x3023</div><div class='add'>+0x57CB = 0x4271</div><div class='add'>+0x57CE = 0x3347</div><div class='add'>+0x57CF = 0x5B6F</div><div class='add'>+0x57D2 = 0x5B78</div><div class='add'>+0x57D4 = 0x4652</div><div class='add'>+0x57D5 = 0x5B74</div><div class='add'>+0x57D8 = 0x5B75</div><div class='add'>+0x57D9 = 0x5B77</div><div class='add'>+0x57DA = 0x5B76</div><div class='add'>+0x57DD = 0x5B7E</div><div class='add'>+0x57DF = 0x5372</div><div class='add'>+0x57E0 = 0x323A</div><div class='add'>+0x57E4 = 0x5B7D</div><div class='add'>+0x57ED = 0x5C24</div><div class='add'>+0x57EF = 0x5B7B</div><div class='add'>+0x57F4 = 0x5B7A</div><div class='add'>+0x57F8 = 0x5B7C</div><div class='add'>+0x57F9 = 0x4560</div><div class='add'>+0x57FA = 0x3B79</div><div class='add'>+0x57FD = 0x5C23</div><div class='add'>+0x5800 = 0x5C25</div><div class='add'>+0x5802 = 0x4C43</div><div class='add'>+0x5806 = 0x3651</div><div class='add'>+0x5807 = 0x5D40</div><div class='add'>+0x580B = 0x5C21</div><div class='add'>+0x580D = 0x5C22</div><div class='add'>+0x5811 = 0x4735</div><div class='add'>+0x5815 = 0x3669</div><div class='add'>+0x5819 = 0x5C27</div><div class='add'>+0x581E = 0x5C26</div><div class='add'>+0x5820 = 0x5C29</div><div class='add'>+0x5821 = 0x3124</div><div class='add'>+0x5824 = 0x354C</div><div class='add'>+0x582A = 0x3F30</div><div class='add'>+0x5830 = 0x515F</div><div class='add'>+0x5835 = 0x3642</div><div class='add'>+0x5844 = 0x5C28</div><div class='add'>+0x584C = 0x4B7A</div><div class='add'>+0x584D = 0x6B73</div><div class='add'>+0x5851 = 0x4B5C</div><div class='add'>+0x5854 = 0x4B7E</div><div class='add'>+0x5858 = 0x4C41</div><div class='add'>+0x585E = 0x487B</div><div class='add'>+0x5865 = 0x5C2A</div><div class='add'>+0x586B = 0x4C6E</div><div class='add'>+0x586C = 0x5C2B</div><div class='add'>+0x587E = 0x5B53</div><div class='add'>+0x5880 = 0x5C2F</div><div class='add'>+0x5881 = 0x5C2C</div><div class='add'>+0x5883 = 0x3E33</div><div class='add'>+0x5885 = 0x4A7B</div><div class='add'>+0x5889 = 0x5C2D</div><div class='add'>+0x5892 = 0x494A</div><div class='add'>+0x5893 = 0x4439</div><div class='add'>+0x5899 = 0x473D</div><div class='add'>+0x589A = 0x5C2E</div><div class='add'>+0x589E = 0x5476</div><div class='add'>+0x589F = 0x5066</div><div class='add'>+0x58A8 = 0x442B</div><div class='add'>+0x58A9 = 0x3655</div><div class='add'>+0x58BC = 0x5B54</div><div class='add'>+0x58C1 = 0x315A</div><div class='add'>+0x58C5 = 0x5B55</div><div class='add'>+0x58D1 = 0x5B56</div><div class='add'>+0x58D5 = 0x3A3E</div><div class='add'>+0x58E4 = 0x4840</div><div class='add'>+0x58EB = 0x4A3F</div><div class='add'>+0x58EC = 0x4849</div><div class='add'>+0x58EE = 0x5733</div><div class='add'>+0x58F0 = 0x4979</div><div class='add'>+0x58F3 = 0x3F47</div><div class='add'>+0x58F6 = 0x3A78</div><div class='add'>+0x58F9 = 0x523C</div><div class='add'>+0x5902 = 0x623A</div><div class='add'>+0x5904 = 0x3426</div><div class='add'>+0x5907 = 0x3138</div><div class='add'>+0x590D = 0x3834</div><div class='add'>+0x590F = 0x4F44</div><div class='add'>+0x5914 = 0x5967</div><div class='add'>+0x5915 = 0x4F26</div><div class='add'>+0x5916 = 0x4D62</div><div class='add'>+0x5919 = 0x596D</div><div class='add'>+0x591A = 0x3660</div><div class='add'>+0x591C = 0x5239</div><div class='add'>+0x591F = 0x393B</div><div class='add'>+0x5924 = 0x6239</div><div class='add'>+0x5925 = 0x6237</div><div class='add'>+0x5927 = 0x3473</div><div class='add'>+0x5929 = 0x4C6C</div><div class='add'>+0x592A = 0x4C2B</div><div class='add'>+0x592B = 0x3772</div><div class='add'>+0x592D = 0x5832</div><div class='add'>+0x592E = 0x516B</div><div class='add'>+0x592F = 0x3A3B</div><div class='add'>+0x5931 = 0x4A27</div><div class='add'>+0x5934 = 0x4D37</div><div class='add'>+0x5937 = 0x5244</div><div class='add'>+0x5938 = 0x3F64</div><div class='add'>+0x5939 = 0x3C50</div><div class='add'>+0x593A = 0x3661</div><div class='add'>+0x593C = 0x5E45</div><div class='add'>+0x5941 = 0x5E46</div><div class='add'>+0x5942 = 0x5B3C</div><div class='add'>+0x5944 = 0x5159</div><div class='add'>+0x5947 = 0x4666</div><div class='add'>+0x5948 = 0x444E</div><div class='add'>+0x5949 = 0x376E</div><div class='add'>+0x594B = 0x375C</div><div class='add'>+0x594E = 0x3F7C</div><div class='add'>+0x594F = 0x5760</div><div class='add'>+0x5951 = 0x4675</div><div class='add'>+0x5954 = 0x313C</div><div class='add'>+0x5955 = 0x5E48</div><div class='add'>+0x5956 = 0x3D31</div><div class='add'>+0x5957 = 0x4C57</div><div class='add'>+0x5958 = 0x5E4A</div><div class='add'>+0x595A = 0x5E49</div><div class='add'>+0x5960 = 0x356C</div><div class='add'>+0x5962 = 0x495D</div><div class='add'>+0x5965 = 0x3042</div><div class='add'>+0x5973 = 0x452E</div><div class='add'>+0x5974 = 0x452B</div><div class='add'>+0x5976 = 0x444C</div><div class='add'>+0x5978 = 0x3C69</div><div class='add'>+0x5979 = 0x4B7D</div><div class='add'>+0x597D = 0x3A43</div><div class='add'>+0x5981 = 0x6579</div><div class='add'>+0x5982 = 0x4867</div><div class='add'>+0x5983 = 0x657A</div><div class='add'>+0x5984 = 0x4D7D</div><div class='add'>+0x5986 = 0x5731</div><div class='add'>+0x5987 = 0x383E</div><div class='add'>+0x5988 = 0x4268</div><div class='add'>+0x598A = 0x4851</div><div class='add'>+0x598D = 0x657B</div><div class='add'>+0x5992 = 0x364A</div><div class='add'>+0x5993 = 0x3C4B</div><div class='add'>+0x5996 = 0x517D</div><div class='add'>+0x5997 = 0x6621</div><div class='add'>+0x5999 = 0x436E</div><div class='add'>+0x599E = 0x6624</div><div class='add'>+0x59A3 = 0x657E</div><div class='add'>+0x59A4 = 0x6625</div><div class='add'>+0x59A5 = 0x4D57</div><div class='add'>+0x59A8 = 0x3741</div><div class='add'>+0x59A9 = 0x657C</div><div class='add'>+0x59AA = 0x657D</div><div class='add'>+0x59AB = 0x6623</div><div class='add'>+0x59AE = 0x445D</div><div class='add'>+0x59AF = 0x6628</div><div class='add'>+0x59B2 = 0x6627</div><div class='add'>+0x59B9 = 0x4343</div><div class='add'>+0x59BB = 0x465E</div><div class='add'>+0x59BE = 0x662A</div><div class='add'>+0x59C6 = 0x4437</div><div class='add'>+0x59CA = 0x6622</div><div class='add'>+0x59CB = 0x4A3C</div><div class='add'>+0x59D0 = 0x3D63</div><div class='add'>+0x59D1 = 0x3943</div><div class='add'>+0x59D2 = 0x6626</div><div class='add'>+0x59D3 = 0x5055</div><div class='add'>+0x59D4 = 0x4E2F</div><div class='add'>+0x59D7 = 0x6629</div><div class='add'>+0x59D8 = 0x6630</div><div class='add'>+0x59DA = 0x5226</div><div class='add'>+0x59DC = 0x3D2A</div><div class='add'>+0x59DD = 0x662D</div><div class='add'>+0x59E3 = 0x662F</div><div class='add'>+0x59E5 = 0x4051</div><div class='add'>+0x59E8 = 0x524C</div><div class='add'>+0x59EC = 0x3C27</div><div class='add'>+0x59F9 = 0x6631</div><div class='add'>+0x59FB = 0x5276</div><div class='add'>+0x59FF = 0x574B</div><div class='add'>+0x5A01 = 0x4D7E</div><div class='add'>+0x5A03 = 0x4D5E</div><div class='add'>+0x5A04 = 0x4226</div><div class='add'>+0x5A05 = 0x662B</div><div class='add'>+0x5A06 = 0x662C</div><div class='add'>+0x5A07 = 0x3D3F</div><div class='add'>+0x5A08 = 0x662E</div><div class='add'>+0x5A09 = 0x6633</div><div class='add'>+0x5A0C = 0x6632</div><div class='add'>+0x5A11 = 0x6636</div><div class='add'>+0x5A13 = 0x6638</div><div class='add'>+0x5A18 = 0x446F</div><div class='add'>+0x5A1C = 0x4448</div><div class='add'>+0x5A1F = 0x3E6A</div><div class='add'>+0x5A20 = 0x496F</div><div class='add'>+0x5A23 = 0x6637</div><div class='add'>+0x5A25 = 0x3670</div><div class='add'>+0x5A29 = 0x4364</div><div class='add'>+0x5A31 = 0x5369</div><div class='add'>+0x5A32 = 0x6634</div><div class='add'>+0x5A34 = 0x6635</div><div class='add'>+0x5A36 = 0x4822</div><div class='add'>+0x5A3C = 0x663D</div><div class='add'>+0x5A40 = 0x6639</div><div class='add'>+0x5A46 = 0x4645</div><div class='add'>+0x5A49 = 0x4D71</div><div class='add'>+0x5A4A = 0x663B</div><div class='add'>+0x5A55 = 0x663C</div><div class='add'>+0x5A5A = 0x3B69</div><div class='add'>+0x5A62 = 0x663E</div><div class='add'>+0x5A67 = 0x663A</div><div class='add'>+0x5A6A = 0x4037</div><div class='add'>+0x5A74 = 0x5324</div><div class='add'>+0x5A75 = 0x663F</div><div class='add'>+0x5A76 = 0x4974</div><div class='add'>+0x5A77 = 0x6643</div><div class='add'>+0x5A7A = 0x6644</div><div class='add'>+0x5A7F = 0x5076</div><div class='add'>+0x5A92 = 0x433D</div><div class='add'>+0x5A9A = 0x4344</div><div class='add'>+0x5A9B = 0x6642</div><div class='add'>+0x5AAA = 0x6641</div><div class='add'>+0x5AB2 = 0x6647</div><div class='add'>+0x5AB3 = 0x4F31</div><div class='add'>+0x5AB5 = 0x6B74</div><div class='add'>+0x5AB8 = 0x664A</div><div class='add'>+0x5ABE = 0x6645</div><div class='add'>+0x5AC1 = 0x3C5E</div><div class='add'>+0x5AC2 = 0x4929</div><div class='add'>+0x5AC9 = 0x3C35</div><div class='add'>+0x5ACC = 0x4F53</div><div class='add'>+0x5AD2 = 0x6648</div><div class='add'>+0x5AD4 = 0x6649</div><div class='add'>+0x5AD6 = 0x664E</div><div class='add'>+0x5AD8 = 0x6650</div><div class='add'>+0x5ADC = 0x6651</div><div class='add'>+0x5AE0 = 0x664B</div><div class='add'>+0x5AE1 = 0x3555</div><div class='add'>+0x5AE3 = 0x664C</div><div class='add'>+0x5AE6 = 0x664F</div><div class='add'>+0x5AE9 = 0x445B</div><div class='add'>+0x5AEB = 0x6646</div><div class='add'>+0x5AF1 = 0x664D</div><div class='add'>+0x5B09 = 0x6652</div><div class='add'>+0x5B16 = 0x6654</div><div class='add'>+0x5B17 = 0x6653</div><div class='add'>+0x5B32 = 0x6655</div><div class='add'>+0x5B34 = 0x5978</div><div class='add'>+0x5B37 = 0x6656</div><div class='add'>+0x5B40 = 0x6657</div><div class='add'>+0x5B50 = 0x5753</div><div class='add'>+0x5B51 = 0x665D</div><div class='add'>+0x5B53 = 0x665E</div><div class='add'>+0x5B54 = 0x3F57</div><div class='add'>+0x5B55 = 0x5450</div><div class='add'>+0x5B57 = 0x5756</div><div class='add'>+0x5B58 = 0x3466</div><div class='add'>+0x5B59 = 0x4B6F</div><div class='add'>+0x5B5A = 0x665A</div><div class='add'>+0x5B5B = 0x5843</div><div class='add'>+0x5B5C = 0x574E</div><div class='add'>+0x5B5D = 0x5022</div><div class='add'>+0x5B5F = 0x434F</div><div class='add'>+0x5B62 = 0x665F</div><div class='add'>+0x5B63 = 0x3C3E</div><div class='add'>+0x5B64 = 0x3942</div><div class='add'>+0x5B65 = 0x665B</div><div class='add'>+0x5B66 = 0x5127</div><div class='add'>+0x5B69 = 0x3A22</div><div class='add'>+0x5B6A = 0x424F</div><div class='add'>+0x5B6C = 0x582B</div><div class='add'>+0x5B70 = 0x4A6B</div><div class='add'>+0x5B71 = 0x656E</div><div class='add'>+0x5B73 = 0x665C</div><div class='add'>+0x5B75 = 0x3775</div><div class='add'>+0x5B7A = 0x4866</div><div class='add'>+0x5B7D = 0x4475</div><div class='add'>+0x5B80 = 0x6532</div><div class='add'>+0x5B81 = 0x447E</div><div class='add'>+0x5B83 = 0x4B7C</div><div class='add'>+0x5B84 = 0x6533</div><div class='add'>+0x5B85 = 0x552C</div><div class='add'>+0x5B87 = 0x536E</div><div class='add'>+0x5B88 = 0x4A58</div><div class='add'>+0x5B89 = 0x3032</div><div class='add'>+0x5B8B = 0x4B4E</div><div class='add'>+0x5B8C = 0x4D6A</div><div class='add'>+0x5B8F = 0x3A6A</div><div class='add'>+0x5B93 = 0x6535</div><div class='add'>+0x5B95 = 0x6534</div><div class='add'>+0x5B97 = 0x575A</div><div class='add'>+0x5B98 = 0x3959</div><div class='add'>+0x5B99 = 0x5666</div><div class='add'>+0x5B9A = 0x3628</div><div class='add'>+0x5B9B = 0x4D70</div><div class='add'>+0x5B9C = 0x524B</div><div class='add'>+0x5B9D = 0x3126</div><div class='add'>+0x5B9E = 0x4A35</div><div class='add'>+0x5BA0 = 0x3368</div><div class='add'>+0x5BA1 = 0x4973</div><div class='add'>+0x5BA2 = 0x3F4D</div><div class='add'>+0x5BA3 = 0x507B</div><div class='add'>+0x5BA4 = 0x4A52</div><div class='add'>+0x5BA5 = 0x6536</div><div class='add'>+0x5BA6 = 0x3B42</div><div class='add'>+0x5BAA = 0x4F5C</div><div class='add'>+0x5BAB = 0x392C</div><div class='add'>+0x5BB0 = 0x5457</div><div class='add'>+0x5BB3 = 0x3A26</div><div class='add'>+0x5BB4 = 0x5167</div><div class='add'>+0x5BB5 = 0x4F7C</div><div class='add'>+0x5BB6 = 0x3C52</div><div class='add'>+0x5BB8 = 0x6537</div><div class='add'>+0x5BB9 = 0x485D</div><div class='add'>+0x5BBD = 0x3F6D</div><div class='add'>+0x5BBE = 0x3176</div><div class='add'>+0x5BBF = 0x4B5E</div><div class='add'>+0x5BC2 = 0x3C45</div><div class='add'>+0x5BC4 = 0x3C44</div><div class='add'>+0x5BC5 = 0x527A</div><div class='add'>+0x5BC6 = 0x435C</div><div class='add'>+0x5BC7 = 0x3F5C</div><div class='add'>+0x5BCC = 0x383B</div><div class='add'>+0x5BD0 = 0x4342</div><div class='add'>+0x5BD2 = 0x3A2E</div><div class='add'>+0x5BD3 = 0x5422</div><div class='add'>+0x5BDD = 0x475E</div><div class='add'>+0x5BDE = 0x442F</div><div class='add'>+0x5BDF = 0x326C</div><div class='add'>+0x5BE1 = 0x3951</div><div class='add'>+0x5BE4 = 0x653B</div><div class='add'>+0x5BE5 = 0x4148</div><div class='add'>+0x5BE8 = 0x552F</div><div class='add'>+0x5BEE = 0x653C</div><div class='add'>+0x5BF0 = 0x653E</div><div class='add'>+0x5BF8 = 0x3467</div><div class='add'>+0x5BF9 = 0x3654</div><div class='add'>+0x5BFA = 0x4B42</div><div class='add'>+0x5BFB = 0x5130</div><div class='add'>+0x5BFC = 0x353C</div><div class='add'>+0x5BFF = 0x4A59</div><div class='add'>+0x5C01 = 0x3762</div><div class='add'>+0x5C04 = 0x4964</div><div class='add'>+0x5C06 = 0x3D2B</div><div class='add'>+0x5C09 = 0x4E3E</div><div class='add'>+0x5C0A = 0x5770</div><div class='add'>+0x5C0F = 0x5021</div><div class='add'>+0x5C11 = 0x4959</div><div class='add'>+0x5C14 = 0x367B</div><div class='add'>+0x5C15 = 0x6658</div><div class='add'>+0x5C16 = 0x3C62</div><div class='add'>+0x5C18 = 0x333E</div><div class='add'>+0x5C1A = 0x4950</div><div class='add'>+0x5C1C = 0x6659</div><div class='add'>+0x5C1D = 0x3322</div><div class='add'>+0x5C22 = 0x5E4C</div><div class='add'>+0x5C24 = 0x5348</div><div class='add'>+0x5C25 = 0x5E4D</div><div class='add'>+0x5C27 = 0x5222</div><div class='add'>+0x5C2C = 0x5E4E</div><div class='add'>+0x5C31 = 0x3E4D</div><div class='add'>+0x5C34 = 0x5E4F</div><div class='add'>+0x5C38 = 0x4A2C</div><div class='add'>+0x5C39 = 0x527C</div><div class='add'>+0x5C3A = 0x335F</div><div class='add'>+0x5C3B = 0x656A</div><div class='add'>+0x5C3C = 0x4461</div><div class='add'>+0x5C3D = 0x3E21</div><div class='add'>+0x5C3E = 0x4E32</div><div class='add'>+0x5C3F = 0x4472</div><div class='add'>+0x5C40 = 0x3E56</div><div class='add'>+0x5C41 = 0x4628</div><div class='add'>+0x5C42 = 0x3263</div><div class='add'>+0x5C45 = 0x3E53</div><div class='add'>+0x5C48 = 0x477C</div><div class='add'>+0x5C49 = 0x4C6B</div><div class='add'>+0x5C4A = 0x3D6C</div><div class='add'>+0x5C4B = 0x4E5D</div><div class='add'>+0x5C4E = 0x4A3A</div><div class='add'>+0x5C4F = 0x4641</div><div class='add'>+0x5C50 = 0x656C</div><div class='add'>+0x5C51 = 0x503C</div><div class='add'>+0x5C55 = 0x5539</div><div class='add'>+0x5C59 = 0x656D</div><div class='add'>+0x5C5E = 0x4A74</div><div class='add'>+0x5C60 = 0x4D40</div><div class='add'>+0x5C61 = 0x4245</div><div class='add'>+0x5C63 = 0x656F</div><div class='add'>+0x5C65 = 0x4244</div><div class='add'>+0x5C66 = 0x6570</div><div class='add'>+0x5C6E = 0x6578</div><div class='add'>+0x5C6F = 0x4D4D</div><div class='add'>+0x5C71 = 0x493D</div><div class='add'>+0x5C79 = 0x5259</div><div class='add'>+0x5C7A = 0x6128</div><div class='add'>+0x5C7F = 0x536C</div><div class='add'>+0x5C81 = 0x4B6A</div><div class='add'>+0x5C82 = 0x4671</div><div class='add'>+0x5C88 = 0x612C</div><div class='add'>+0x5C8C = 0x6127</div><div class='add'>+0x5C8D = 0x6129</div><div class='add'>+0x5C90 = 0x612A</div><div class='add'>+0x5C91 = 0x612F</div><div class='add'>+0x5C94 = 0x326D</div><div class='add'>+0x5C96 = 0x612B</div><div class='add'>+0x5C97 = 0x385A</div><div class='add'>+0x5C98 = 0x612D</div><div class='add'>+0x5C99 = 0x612E</div><div class='add'>+0x5C9A = 0x6130</div><div class='add'>+0x5C9B = 0x353A</div><div class='add'>+0x5C9C = 0x6131</div><div class='add'>+0x5CA2 = 0x6133</div><div class='add'>+0x5CA3 = 0x6138</div><div class='add'>+0x5CA9 = 0x5152</div><div class='add'>+0x5CAB = 0x6136</div><div class='add'>+0x5CAC = 0x6135</div><div class='add'>+0x5CAD = 0x416B</div><div class='add'>+0x5CB1 = 0x6137</div><div class='add'>+0x5CB3 = 0x5440</div><div class='add'>+0x5CB5 = 0x6132</div><div class='add'>+0x5CB7 = 0x613A</div><div class='add'>+0x5CB8 = 0x3036</div><div class='add'>+0x5CBD = 0x6134</div><div class='add'>+0x5CBF = 0x3F79</div><div class='add'>+0x5CC1 = 0x6139</div><div class='add'>+0x5CC4 = 0x613B</div><div class='add'>+0x5CCB = 0x613E</div><div class='add'>+0x5CD2 = 0x613C</div><div class='add'>+0x5CD9 = 0x5645</div><div class='add'>+0x5CE1 = 0x4F3F</div><div class='add'>+0x5CE4 = 0x613D</div><div class='add'>+0x5CE5 = 0x613F</div><div class='add'>+0x5CE6 = 0x424D</div><div class='add'>+0x5CE8 = 0x366B</div><div class='add'>+0x5CEA = 0x5378</div><div class='add'>+0x5CED = 0x474D</div><div class='add'>+0x5CF0 = 0x3765</div><div class='add'>+0x5CFB = 0x3E7E</div><div class='add'>+0x5D02 = 0x6140</div><div class='add'>+0x5D03 = 0x6141</div><div class='add'>+0x5D06 = 0x6147</div><div class='add'>+0x5D07 = 0x3367</div><div class='add'>+0x5D0E = 0x4669</div><div class='add'>+0x5D14 = 0x345E</div><div class='add'>+0x5D16 = 0x5142</div><div class='add'>+0x5D1B = 0x6148</div><div class='add'>+0x5D1E = 0x6146</div><div class='add'>+0x5D24 = 0x6145</div><div class='add'>+0x5D26 = 0x6143</div><div class='add'>+0x5D27 = 0x6142</div><div class='add'>+0x5D29 = 0x3140</div><div class='add'>+0x5D2D = 0x5538</div><div class='add'>+0x5D2E = 0x6144</div><div class='add'>+0x5D34 = 0x614B</div><div class='add'>+0x5D3D = 0x614C</div><div class='add'>+0x5D3E = 0x614A</div><div class='add'>+0x5D47 = 0x6F7A</div><div class='add'>+0x5D4A = 0x6153</div><div class='add'>+0x5D4B = 0x6152</div><div class='add'>+0x5D4C = 0x4736</div><div class='add'>+0x5D58 = 0x6149</div><div class='add'>+0x5D5B = 0x614E</div><div class='add'>+0x5D5D = 0x6150</div><div class='add'>+0x5D69 = 0x6154</div><div class='add'>+0x5D6B = 0x6151</div><div class='add'>+0x5D6C = 0x614D</div><div class='add'>+0x5D6F = 0x614F</div><div class='add'>+0x5D74 = 0x6155</div><div class='add'>+0x5D82 = 0x6156</div><div class='add'>+0x5D99 = 0x6157</div><div class='add'>+0x5D9D = 0x6158</div><div class='add'>+0x5DB7 = 0x615A</div><div class='add'>+0x5DC5 = 0x615B</div><div class='add'>+0x5DCD = 0x4E21</div><div class='add'>+0x5DDB = 0x675D</div><div class='add'>+0x5DDD = 0x3428</div><div class='add'>+0x5DDE = 0x565D</div><div class='add'>+0x5DE1 = 0x5132</div><div class='add'>+0x5DE2 = 0x3332</div><div class='add'>+0x5DE5 = 0x3924</div><div class='add'>+0x5DE6 = 0x5773</div><div class='add'>+0x5DE7 = 0x4749</div><div class='add'>+0x5DE8 = 0x3E5E</div><div class='add'>+0x5DE9 = 0x392E</div><div class='add'>+0x5DEB = 0x4E57</div><div class='add'>+0x5DEE = 0x326E</div><div class='add'>+0x5DEF = 0x5B4F</div><div class='add'>+0x5DF1 = 0x3C3A</div><div class='add'>+0x5DF2 = 0x5251</div><div class='add'>+0x5DF3 = 0x4B48</div><div class='add'>+0x5DF4 = 0x304D</div><div class='add'>+0x5DF7 = 0x4F6F</div><div class='add'>+0x5DFD = 0x5963</div><div class='add'>+0x5DFE = 0x3D6D</div><div class='add'>+0x5E01 = 0x3152</div><div class='add'>+0x5E02 = 0x4A50</div><div class='add'>+0x5E03 = 0x323C</div><div class='add'>+0x5E05 = 0x4B27</div><div class='add'>+0x5E06 = 0x372B</div><div class='add'>+0x5E08 = 0x4A26</div><div class='add'>+0x5E0C = 0x4F23</div><div class='add'>+0x5E0F = 0x6078</div><div class='add'>+0x5E10 = 0x554A</div><div class='add'>+0x5E11 = 0x607B</div><div class='add'>+0x5E14 = 0x607A</div><div class='add'>+0x5E15 = 0x4541</div><div class='add'>+0x5E16 = 0x4C7B</div><div class='add'>+0x5E18 = 0x4131</div><div class='add'>+0x5E19 = 0x6079</div><div class='add'>+0x5E1A = 0x5663</div><div class='add'>+0x5E1B = 0x322F</div><div class='add'>+0x5E1C = 0x5644</div><div class='add'>+0x5E1D = 0x355B</div><div class='add'>+0x5E26 = 0x3478</div><div class='add'>+0x5E27 = 0x5621</div><div class='add'>+0x5E2D = 0x4F2F</div><div class='add'>+0x5E2E = 0x306F</div><div class='add'>+0x5E31 = 0x607C</div><div class='add'>+0x5E37 = 0x6121</div><div class='add'>+0x5E38 = 0x3323</div><div class='add'>+0x5E3B = 0x607D</div><div class='add'>+0x5E3C = 0x607E</div><div class='add'>+0x5E3D = 0x4331</div><div class='add'>+0x5E42 = 0x435D</div><div class='add'>+0x5E44 = 0x6122</div><div class='add'>+0x5E45 = 0x3779</div><div class='add'>+0x5E4C = 0x3B4F</div><div class='add'>+0x5E54 = 0x6123</div><div class='add'>+0x5E55 = 0x443B</div><div class='add'>+0x5E5B = 0x6124</div><div class='add'>+0x5E5E = 0x6125</div><div class='add'>+0x5E61 = 0x6126</div><div class='add'>+0x5E62 = 0x3431</div><div class='add'>+0x5E72 = 0x3849</div><div class='add'>+0x5E73 = 0x463D</div><div class='add'>+0x5E74 = 0x446A</div><div class='add'>+0x5E76 = 0x3222</div><div class='add'>+0x5E78 = 0x5052</div><div class='add'>+0x5E7A = 0x675B</div><div class='add'>+0x5E7B = 0x3B43</div><div class='add'>+0x5E7C = 0x5357</div><div class='add'>+0x5E7D = 0x5344</div><div class='add'>+0x5E7F = 0x3963</div><div class='add'>+0x5E80 = 0x624F</div><div class='add'>+0x5E84 = 0x572F</div><div class='add'>+0x5E86 = 0x476C</div><div class='add'>+0x5E87 = 0x3153</div><div class='add'>+0x5E8A = 0x3432</div><div class='add'>+0x5E8B = 0x6251</div><div class='add'>+0x5E8F = 0x5072</div><div class='add'>+0x5E90 = 0x422E</div><div class='add'>+0x5E91 = 0x6250</div><div class='add'>+0x5E93 = 0x3F62</div><div class='add'>+0x5E94 = 0x5326</div><div class='add'>+0x5E95 = 0x3557</div><div class='add'>+0x5E96 = 0x6252</div><div class='add'>+0x5E97 = 0x356A</div><div class='add'>+0x5E99 = 0x436D</div><div class='add'>+0x5E9A = 0x387D</div><div class='add'>+0x5E9C = 0x382E</div><div class='add'>+0x5E9E = 0x4553</div><div class='add'>+0x5E9F = 0x374F</div><div class='add'>+0x5EA0 = 0x6254</div><div class='add'>+0x5EA5 = 0x6253</div><div class='add'>+0x5EA6 = 0x3648</div><div class='add'>+0x5EA7 = 0x5779</div><div class='add'>+0x5EAD = 0x4D25</div><div class='add'>+0x5EB3 = 0x6258</div><div class='add'>+0x5EB5 = 0x6256</div><div class='add'>+0x5EB6 = 0x4A7C</div><div class='add'>+0x5EB7 = 0x3F35</div><div class='add'>+0x5EB8 = 0x5339</div><div class='add'>+0x5EB9 = 0x6255</div><div class='add'>+0x5EBE = 0x6257</div><div class='add'>+0x5EC9 = 0x412E</div><div class='add'>+0x5ECA = 0x4048</div><div class='add'>+0x5ED1 = 0x625B</div><div class='add'>+0x5ED2 = 0x625A</div><div class='add'>+0x5ED3 = 0x402A</div><div class='add'>+0x5ED6 = 0x414E</div><div class='add'>+0x5EDB = 0x625C</div><div class='add'>+0x5EE8 = 0x625D</div><div class='add'>+0x5EEA = 0x625E</div><div class='add'>+0x5EF4 = 0x5B48</div><div class='add'>+0x5EF6 = 0x5153</div><div class='add'>+0x5EF7 = 0x4D22</div><div class='add'>+0x5EFA = 0x3D28</div><div class='add'>+0x5EFE = 0x5E43</div><div class='add'>+0x5EFF = 0x5825</div><div class='add'>+0x5F00 = 0x3F2A</div><div class='add'>+0x5F01 = 0x5B4D</div><div class='add'>+0x5F02 = 0x526C</div><div class='add'>+0x5F03 = 0x467A</div><div class='add'>+0x5F04 = 0x452A</div><div class='add'>+0x5F08 = 0x5E44</div><div class='add'>+0x5F0A = 0x3157</div><div class='add'>+0x5F0B = 0x5F2E</div><div class='add'>+0x5F0F = 0x4A3D</div><div class='add'>+0x5F11 = 0x5F31</div><div class='add'>+0x5F13 = 0x392D</div><div class='add'>+0x5F15 = 0x527D</div><div class='add'>+0x5F17 = 0x3825</div><div class='add'>+0x5F18 = 0x3A6B</div><div class='add'>+0x5F1B = 0x335A</div><div class='add'>+0x5F1F = 0x355C</div><div class='add'>+0x5F20 = 0x5545</div><div class='add'>+0x5F25 = 0x4356</div><div class='add'>+0x5F26 = 0x4F52</div><div class='add'>+0x5F27 = 0x3B21</div><div class='add'>+0x5F29 = 0x6573</div><div class='add'>+0x5F2A = 0x6572</div><div class='add'>+0x5F2D = 0x6574</div><div class='add'>+0x5F2F = 0x4D64</div><div class='add'>+0x5F31 = 0x4875</div><div class='add'>+0x5F39 = 0x352F</div><div class='add'>+0x5F3A = 0x473F</div><div class='add'>+0x5F3C = 0x6576</div><div class='add'>+0x5F40 = 0x6C30</div><div class='add'>+0x5F50 = 0x6566</div><div class='add'>+0x5F52 = 0x3969</div><div class='add'>+0x5F53 = 0x3531</div><div class='add'>+0x5F55 = 0x423C</div><div class='add'>+0x5F56 = 0x6568</div><div class='add'>+0x5F57 = 0x6567</div><div class='add'>+0x5F58 = 0x6569</div><div class='add'>+0x5F5D = 0x524D</div><div class='add'>+0x5F61 = 0x616A</div><div class='add'>+0x5F62 = 0x504E</div><div class='add'>+0x5F64 = 0x4D2E</div><div class='add'>+0x5F66 = 0x5165</div><div class='add'>+0x5F69 = 0x324A</div><div class='add'>+0x5F6A = 0x316B</div><div class='add'>+0x5F6C = 0x3172</div><div class='add'>+0x5F6D = 0x456D</div><div class='add'>+0x5F70 = 0x5543</div><div class='add'>+0x5F71 = 0x5330</div><div class='add'>+0x5F73 = 0x615C</div><div class='add'>+0x5F77 = 0x615D</div><div class='add'>+0x5F79 = 0x525B</div><div class='add'>+0x5F7B = 0x3339</div><div class='add'>+0x5F7C = 0x314B</div><div class='add'>+0x5F80 = 0x4D79</div><div class='add'>+0x5F81 = 0x5577</div><div class='add'>+0x5F82 = 0x615E</div><div class='add'>+0x5F84 = 0x3E36</div><div class='add'>+0x5F85 = 0x347D</div><div class='add'>+0x5F87 = 0x615F</div><div class='add'>+0x5F88 = 0x3A5C</div><div class='add'>+0x5F89 = 0x6160</div><div class='add'>+0x5F8A = 0x3B32</div><div class='add'>+0x5F8B = 0x4249</div><div class='add'>+0x5F8C = 0x6161</div><div class='add'>+0x5F90 = 0x506C</div><div class='add'>+0x5F92 = 0x4D3D</div><div class='add'>+0x5F95 = 0x6162</div><div class='add'>+0x5F97 = 0x3543</div><div class='add'>+0x5F98 = 0x4547</div><div class='add'>+0x5F99 = 0x6163</div><div class='add'>+0x5F9C = 0x6164</div><div class='add'>+0x5FA1 = 0x5379</div><div class='add'>+0x5FA8 = 0x6165</div><div class='add'>+0x5FAA = 0x512D</div><div class='add'>+0x5FAD = 0x6166</div><div class='add'>+0x5FAE = 0x4E22</div><div class='add'>+0x5FB5 = 0x6167</div><div class='add'>+0x5FB7 = 0x3542</div><div class='add'>+0x5FBC = 0x6168</div><div class='add'>+0x5FBD = 0x3B55</div><div class='add'>+0x5FC3 = 0x5044</div><div class='add'>+0x5FC4 = 0x6260</div><div class='add'>+0x5FC5 = 0x3158</div><div class='add'>+0x5FC6 = 0x5264</div><div class='add'>+0x5FC9 = 0x6261</div><div class='add'>+0x5FCC = 0x3C49</div><div class='add'>+0x5FCD = 0x484C</div><div class='add'>+0x5FCF = 0x6263</div><div class='add'>+0x5FD0 = 0x6C7E</div><div class='add'>+0x5FD1 = 0x6C7D</div><div class='add'>+0x5FD2 = 0x5F2F</div><div class='add'>+0x5FD6 = 0x6262</div><div class='add'>+0x5FD7 = 0x563E</div><div class='add'>+0x5FD8 = 0x4D7C</div><div class='add'>+0x5FD9 = 0x4326</div><div class='add'>+0x5FDD = 0x6343</div><div class='add'>+0x5FE0 = 0x5652</div><div class='add'>+0x5FE1 = 0x6267</div><div class='add'>+0x5FE4 = 0x6268</div><div class='add'>+0x5FE7 = 0x5347</div><div class='add'>+0x5FEA = 0x626C</div><div class='add'>+0x5FEB = 0x3F6C</div><div class='add'>+0x5FED = 0x626D</div><div class='add'>+0x5FEE = 0x6265</div><div class='add'>+0x5FF1 = 0x3340</div><div class='add'>+0x5FF5 = 0x446E</div><div class='add'>+0x5FF8 = 0x626E</div><div class='add'>+0x5FFB = 0x5043</div><div class='add'>+0x5FFD = 0x3A76</div><div class='add'>+0x5FFE = 0x6269</div><div class='add'>+0x5FFF = 0x375E</div><div class='add'>+0x6000 = 0x3B33</div><div class='add'>+0x6001 = 0x4C2C</div><div class='add'>+0x6002 = 0x4B4B</div><div class='add'>+0x6003 = 0x6264</div><div class='add'>+0x6004 = 0x6266</div><div class='add'>+0x6005 = 0x626A</div><div class='add'>+0x6006 = 0x626B</div><div class='add'>+0x600A = 0x6277</div><div class='add'>+0x600D = 0x6274</div><div class='add'>+0x600E = 0x5475</div><div class='add'>+0x600F = 0x6273</div><div class='add'>+0x6012 = 0x452D</div><div class='add'>+0x6014 = 0x557A</div><div class='add'>+0x6015 = 0x4542</div><div class='add'>+0x6016 = 0x3240</div><div class='add'>+0x6019 = 0x626F</div><div class='add'>+0x601B = 0x6272</div><div class='add'>+0x601C = 0x412F</div><div class='add'>+0x601D = 0x4B3C</div><div class='add'>+0x6020 = 0x3521</div><div class='add'>+0x6021 = 0x6279</div><div class='add'>+0x6025 = 0x3C31</div><div class='add'>+0x6026 = 0x6271</div><div class='add'>+0x6027 = 0x5054</div><div class='add'>+0x6028 = 0x5439</div><div class='add'>+0x6029 = 0x6275</div><div class='add'>+0x602A = 0x3956</div><div class='add'>+0x602B = 0x6276</div><div class='add'>+0x602F = 0x4753</div><div class='add'>+0x6035 = 0x6270</div><div class='add'>+0x603B = 0x575C</div><div class='add'>+0x603C = 0x6D21</div><div class='add'>+0x603F = 0x6278</div><div class='add'>+0x6041 = 0x6D25</div><div class='add'>+0x6042 = 0x627E</div><div class='add'>+0x6043 = 0x4A51</div><div class='add'>+0x604B = 0x4135</div><div class='add'>+0x604D = 0x3B50</div><div class='add'>+0x6050 = 0x3F56</div><div class='add'>+0x6052 = 0x3A63</div><div class='add'>+0x6055 = 0x4B21</div><div class='add'>+0x6059 = 0x6D26</div><div class='add'>+0x605A = 0x6D23</div><div class='add'>+0x605D = 0x6D22</div><div class='add'>+0x6062 = 0x3B56</div><div class='add'>+0x6063 = 0x6D27</div><div class='add'>+0x6064 = 0x5074</div><div class='add'>+0x6067 = 0x6D24</div><div class='add'>+0x6068 = 0x3A5E</div><div class='add'>+0x6069 = 0x3677</div><div class='add'>+0x606A = 0x6321</div><div class='add'>+0x606B = 0x3632</div><div class='add'>+0x606C = 0x4C71</div><div class='add'>+0x606D = 0x3927</div><div class='add'>+0x606F = 0x4F22</div><div class='add'>+0x6070 = 0x4721</div><div class='add'>+0x6073 = 0x3F52</div><div class='add'>+0x6076 = 0x3671</div><div class='add'>+0x6078 = 0x627A</div><div class='add'>+0x6079 = 0x627B</div><div class='add'>+0x607A = 0x627D</div><div class='add'>+0x607B = 0x627C</div><div class='add'>+0x607C = 0x4455</div><div class='add'>+0x607D = 0x6322</div><div class='add'>+0x607F = 0x5341</div><div class='add'>+0x6083 = 0x6327</div><div class='add'>+0x6084 = 0x4744</div><div class='add'>+0x6089 = 0x4F24</div><div class='add'>+0x608C = 0x6329</div><div class='add'>+0x608D = 0x3A37</div><div class='add'>+0x6092 = 0x6328</div><div class='add'>+0x6094 = 0x3B5A</div><div class='add'>+0x6096 = 0x6323</div><div class='add'>+0x609A = 0x6324</div><div class='add'>+0x609B = 0x632A</div><div class='add'>+0x609D = 0x6326</div><div class='add'>+0x609F = 0x4E72</div><div class='add'>+0x60A0 = 0x5346</div><div class='add'>+0x60A3 = 0x3B3C</div><div class='add'>+0x60A6 = 0x5443</div><div class='add'>+0x60A8 = 0x447A</div><div class='add'>+0x60AB = 0x6D28</div><div class='add'>+0x60AC = 0x507C</div><div class='add'>+0x60AD = 0x6325</div><div class='add'>+0x60AF = 0x4375</div><div class='add'>+0x60B1 = 0x632D</div><div class='add'>+0x60B2 = 0x312F</div><div class='add'>+0x60B4 = 0x6332</div><div class='add'>+0x60B8 = 0x3C42</div><div class='add'>+0x60BB = 0x632C</div><div class='add'>+0x60BC = 0x353F</div><div class='add'>+0x60C5 = 0x4769</div><div class='add'>+0x60C6 = 0x6330</div><div class='add'>+0x60CA = 0x3E2A</div><div class='add'>+0x60CB = 0x4D6F</div><div class='add'>+0x60D1 = 0x3B73</div><div class='add'>+0x60D5 = 0x4C68</div><div class='add'>+0x60D8 = 0x632F</div><div class='add'>+0x60DA = 0x6331</div><div class='add'>+0x60DC = 0x4F27</div><div class='add'>+0x60DD = 0x632E</div><div class='add'>+0x60DF = 0x4E29</div><div class='add'>+0x60E0 = 0x3B5D</div><div class='add'>+0x60E6 = 0x356B</div><div class='add'>+0x60E7 = 0x3E65</div><div class='add'>+0x60E8 = 0x3252</div><div class='add'>+0x60E9 = 0x334D</div><div class='add'>+0x60EB = 0x3139</div><div class='add'>+0x60EC = 0x632B</div><div class='add'>+0x60ED = 0x3251</div><div class='add'>+0x60EE = 0x352C</div><div class='add'>+0x60EF = 0x395F</div><div class='add'>+0x60F0 = 0x3668</div><div class='add'>+0x60F3 = 0x4F6B</div><div class='add'>+0x60F4 = 0x6337</div><div class='add'>+0x60F6 = 0x3B4C</div><div class='add'>+0x60F9 = 0x4847</div><div class='add'>+0x60FA = 0x504A</div><div class='add'>+0x6100 = 0x6338</div><div class='add'>+0x6101 = 0x336E</div><div class='add'>+0x6106 = 0x6D29</div><div class='add'>+0x6108 = 0x537A</div><div class='add'>+0x6109 = 0x5364</div><div class='add'>+0x610D = 0x6D2A</div><div class='add'>+0x610E = 0x6339</div><div class='add'>+0x610F = 0x5262</div><div class='add'>+0x6115 = 0x6335</div><div class='add'>+0x611A = 0x535E</div><div class='add'>+0x611F = 0x3850</div><div class='add'>+0x6120 = 0x6333</div><div class='add'>+0x6123 = 0x6336</div><div class='add'>+0x6124 = 0x375F</div><div class='add'>+0x6126 = 0x6334</div><div class='add'>+0x6127 = 0x4022</div><div class='add'>+0x612B = 0x633A</div><div class='add'>+0x613F = 0x5438</div><div class='add'>+0x6148 = 0x3448</div><div class='add'>+0x614A = 0x633B</div><div class='add'>+0x614C = 0x3B45</div><div class='add'>+0x614E = 0x4977</div><div class='add'>+0x6151 = 0x4965</div><div class='add'>+0x6155 = 0x443D</div><div class='add'>+0x615D = 0x6D2B</div><div class='add'>+0x6162 = 0x427D</div><div class='add'>+0x6167 = 0x3B5B</div><div class='add'>+0x6168 = 0x3F2E</div><div class='add'>+0x6170 = 0x4E3F</div><div class='add'>+0x6175 = 0x633C</div><div class='add'>+0x6177 = 0x3F36</div><div class='add'>+0x618B = 0x316F</div><div class='add'>+0x618E = 0x5477</div><div class='add'>+0x6194 = 0x633E</div><div class='add'>+0x619D = 0x6D2D</div><div class='add'>+0x61A7 = 0x633F</div><div class='add'>+0x61A8 = 0x3A29</div><div class='add'>+0x61A9 = 0x6D2C</div><div class='add'>+0x61AC = 0x633D</div><div class='add'>+0x61B7 = 0x6340</div><div class='add'>+0x61BE = 0x3A36</div><div class='add'>+0x61C2 = 0x362E</div><div class='add'>+0x61C8 = 0x5038</div><div class='add'>+0x61CA = 0x3043</div><div class='add'>+0x61CB = 0x6D2E</div><div class='add'>+0x61D1 = 0x6D2F</div><div class='add'>+0x61D2 = 0x4041</div><div class='add'>+0x61D4 = 0x6341</div><div class='add'>+0x61E6 = 0x4533</div><div class='add'>+0x61F5 = 0x6342</div><div class='add'>+0x61FF = 0x5C32</div><div class='add'>+0x6206 = 0x6D30</div><div class='add'>+0x6208 = 0x386A</div><div class='add'>+0x620A = 0x4E6C</div><div class='add'>+0x620B = 0x6A27</div><div class='add'>+0x620C = 0x5067</div><div class='add'>+0x620D = 0x4A79</div><div class='add'>+0x620E = 0x4856</div><div class='add'>+0x620F = 0x4F37</div><div class='add'>+0x6210 = 0x3349</div><div class='add'>+0x6211 = 0x4E52</div><div class='add'>+0x6212 = 0x3D64</div><div class='add'>+0x6215 = 0x635E</div><div class='add'>+0x6216 = 0x3B72</div><div class='add'>+0x6217 = 0x6A28</div><div class='add'>+0x6218 = 0x553D</div><div class='add'>+0x621A = 0x465D</div><div class='add'>+0x621B = 0x6A29</div><div class='add'>+0x621F = 0x6A2A</div><div class='add'>+0x6221 = 0x6A2C</div><div class='add'>+0x6222 = 0x6A2B</div><div class='add'>+0x6224 = 0x6A2E</div><div class='add'>+0x6225 = 0x6A2D</div><div class='add'>+0x622A = 0x3D58</div><div class='add'>+0x622C = 0x6A2F</div><div class='add'>+0x622E = 0x423E</div><div class='add'>+0x6233 = 0x3441</div><div class='add'>+0x6234 = 0x3477</div><div class='add'>+0x6237 = 0x3B27</div><div class='add'>+0x623D = 0x6C66</div><div class='add'>+0x623E = 0x6C65</div><div class='add'>+0x623F = 0x373F</div><div class='add'>+0x6240 = 0x4B79</div><div class='add'>+0x6241 = 0x3162</div><div class='add'>+0x6243 = 0x6C67</div><div class='add'>+0x6247 = 0x4948</div><div class='add'>+0x6248 = 0x6C68</div><div class='add'>+0x6249 = 0x6C69</div><div class='add'>+0x624B = 0x4A56</div><div class='add'>+0x624C = 0x5E50</div><div class='add'>+0x624D = 0x3245</div><div class='add'>+0x624E = 0x547A</div><div class='add'>+0x6251 = 0x464B</div><div class='add'>+0x6252 = 0x3047</div><div class='add'>+0x6253 = 0x3472</div><div class='add'>+0x6254 = 0x4853</div><div class='add'>+0x6258 = 0x4D50</div><div class='add'>+0x625B = 0x3F38</div><div class='add'>+0x6263 = 0x3F5B</div><div class='add'>+0x6266 = 0x4724</div><div class='add'>+0x6267 = 0x5634</div><div class='add'>+0x6269 = 0x4029</div><div class='add'>+0x626A = 0x5E51</div><div class='add'>+0x626B = 0x4928</div><div class='add'>+0x626C = 0x516F</div><div class='add'>+0x626D = 0x4524</div><div class='add'>+0x626E = 0x3067</div><div class='add'>+0x626F = 0x3336</div><div class='add'>+0x6270 = 0x4845</div><div class='add'>+0x6273 = 0x3062</div><div class='add'>+0x6276 = 0x3776</div><div class='add'>+0x6279 = 0x457A</div><div class='add'>+0x627C = 0x3673</div><div class='add'>+0x627E = 0x5552</div><div class='add'>+0x627F = 0x3350</div><div class='add'>+0x6280 = 0x3C3C</div><div class='add'>+0x6284 = 0x332D</div><div class='add'>+0x6289 = 0x3E71</div><div class='add'>+0x628A = 0x3051</div><div class='add'>+0x6291 = 0x5256</div><div class='add'>+0x6292 = 0x4A63</div><div class='add'>+0x6293 = 0x5725</div><div class='add'>+0x6295 = 0x4D36</div><div class='add'>+0x6296 = 0x3636</div><div class='add'>+0x6297 = 0x3F39</div><div class='add'>+0x6298 = 0x555B</div><div class='add'>+0x629A = 0x3827</div><div class='add'>+0x629B = 0x4557</div><div class='add'>+0x629F = 0x5E52</div><div class='add'>+0x62A0 = 0x3F59</div><div class='add'>+0x62A1 = 0x4255</div><div class='add'>+0x62A2 = 0x4740</div><div class='add'>+0x62A4 = 0x3B24</div><div class='add'>+0x62A5 = 0x3128</div><div class='add'>+0x62A8 = 0x456A</div><div class='add'>+0x62AB = 0x457B</div><div class='add'>+0x62AC = 0x4C27</div><div class='add'>+0x62B1 = 0x3127</div><div class='add'>+0x62B5 = 0x3556</div><div class='add'>+0x62B9 = 0x4428</div><div class='add'>+0x62BB = 0x5E53</div><div class='add'>+0x62BC = 0x513A</div><div class='add'>+0x62BD = 0x3369</div><div class='add'>+0x62BF = 0x4372</div><div class='add'>+0x62C2 = 0x3777</div><div class='add'>+0x62C4 = 0x5674</div><div class='add'>+0x62C5 = 0x3523</div><div class='add'>+0x62C6 = 0x3270</div><div class='add'>+0x62C7 = 0x4434</div><div class='add'>+0x62C8 = 0x4469</div><div class='add'>+0x62C9 = 0x402D</div><div class='add'>+0x62CA = 0x5E54</div><div class='add'>+0x62CC = 0x3068</div><div class='add'>+0x62CD = 0x4544</div><div class='add'>+0x62CE = 0x4160</div><div class='add'>+0x62D0 = 0x3955</div><div class='add'>+0x62D2 = 0x3E5C</div><div class='add'>+0x62D3 = 0x4D58</div><div class='add'>+0x62D4 = 0x304E</div><div class='add'>+0x62D6 = 0x4D4F</div><div class='add'>+0x62D7 = 0x5E56</div><div class='add'>+0x62D8 = 0x3E50</div><div class='add'>+0x62D9 = 0x573E</div><div class='add'>+0x62DA = 0x5E55</div><div class='add'>+0x62DB = 0x5550</div><div class='add'>+0x62DC = 0x305D</div><div class='add'>+0x62DF = 0x4462</div><div class='add'>+0x62E2 = 0x4223</div><div class='add'>+0x62E3 = 0x3C70</div><div class='add'>+0x62E5 = 0x5335</div><div class='add'>+0x62E6 = 0x4039</div><div class='add'>+0x62E7 = 0x4521</div><div class='add'>+0x62E8 = 0x3226</div><div class='add'>+0x62E9 = 0x5471</div><div class='add'>+0x62EC = 0x4028</div><div class='add'>+0x62ED = 0x4A43</div><div class='add'>+0x62EE = 0x5E57</div><div class='add'>+0x62EF = 0x557C</div><div class='add'>+0x62F1 = 0x3930</div><div class='add'>+0x62F3 = 0x482D</div><div class='add'>+0x62F4 = 0x4B29</div><div class='add'>+0x62F6 = 0x5E59</div><div class='add'>+0x62F7 = 0x3F3D</div><div class='add'>+0x62FC = 0x4634</div><div class='add'>+0x62FD = 0x5727</div><div class='add'>+0x62FE = 0x4A30</div><div class='add'>+0x62FF = 0x4443</div><div class='add'>+0x6301 = 0x3356</div><div class='add'>+0x6302 = 0x3952</div><div class='add'>+0x6307 = 0x5638</div><div class='add'>+0x6308 = 0x6A7C</div><div class='add'>+0x6309 = 0x3034</div><div class='add'>+0x630E = 0x3F66</div><div class='add'>+0x6311 = 0x4C74</div><div class='add'>+0x6316 = 0x4D5A</div><div class='add'>+0x631A = 0x563F</div><div class='add'>+0x631B = 0x424E</div><div class='add'>+0x631D = 0x4E4E</div><div class='add'>+0x631E = 0x4C22</div><div class='add'>+0x631F = 0x502E</div><div class='add'>+0x6320 = 0x4453</div><div class='add'>+0x6321 = 0x3532</div><div class='add'>+0x6322 = 0x5E58</div><div class='add'>+0x6323 = 0x5575</div><div class='add'>+0x6324 = 0x3C37</div><div class='add'>+0x6325 = 0x3B53</div><div class='add'>+0x6328 = 0x3024</div><div class='add'>+0x632A = 0x4532</div><div class='add'>+0x632B = 0x346C</div><div class='add'>+0x632F = 0x5571</div><div class='add'>+0x6332 = 0x6A7D</div><div class='add'>+0x6339 = 0x5E5A</div><div class='add'>+0x633A = 0x4D26</div><div class='add'>+0x633D = 0x4D6C</div><div class='add'>+0x6342 = 0x4E66</div><div class='add'>+0x6343 = 0x5E5C</div><div class='add'>+0x6345 = 0x4D31</div><div class='add'>+0x6346 = 0x4026</div><div class='add'>+0x6349 = 0x573D</div><div class='add'>+0x634B = 0x5E5B</div><div class='add'>+0x634C = 0x3046</div><div class='add'>+0x634D = 0x3A34</div><div class='add'>+0x634E = 0x4953</div><div class='add'>+0x634F = 0x4473</div><div class='add'>+0x6350 = 0x3E68</div><div class='add'>+0x6355 = 0x3236</div><div class='add'>+0x635E = 0x404C</div><div class='add'>+0x635F = 0x4B70</div><div class='add'>+0x6361 = 0x3C71</div><div class='add'>+0x6362 = 0x3B3B</div><div class='add'>+0x6363 = 0x3537</div><div class='add'>+0x6367 = 0x4575</div><div class='add'>+0x6369 = 0x5E66</div><div class='add'>+0x636D = 0x5E63</div><div class='add'>+0x636E = 0x3E5D</div><div class='add'>+0x6371 = 0x5E5F</div><div class='add'>+0x6376 = 0x3437</div><div class='add'>+0x6377 = 0x3D5D</div><div class='add'>+0x637A = 0x5E60</div><div class='add'>+0x637B = 0x446D</div><div class='add'>+0x6380 = 0x4F46</div><div class='add'>+0x6382 = 0x3560</div><div class='add'>+0x6387 = 0x365E</div><div class='add'>+0x6388 = 0x4A5A</div><div class='add'>+0x6389 = 0x3574</div><div class='add'>+0x638A = 0x5E65</div><div class='add'>+0x638C = 0x5546</div><div class='add'>+0x638E = 0x5E61</div><div class='add'>+0x638F = 0x4C4D</div><div class='add'>+0x6390 = 0x467E</div><div class='add'>+0x6392 = 0x4545</div><div class='add'>+0x6396 = 0x5234</div><div class='add'>+0x6398 = 0x3E72</div><div class='add'>+0x63A0 = 0x4253</div><div class='add'>+0x63A2 = 0x4C3D</div><div class='add'>+0x63A3 = 0x3338</div><div class='add'>+0x63A5 = 0x3D53</div><div class='add'>+0x63A7 = 0x3F58</div><div class='add'>+0x63A8 = 0x4D46</div><div class='add'>+0x63A9 = 0x515A</div><div class='add'>+0x63AA = 0x346B</div><div class='add'>+0x63AC = 0x5E64</div><div class='add'>+0x63AD = 0x5E5D</div><div class='add'>+0x63AE = 0x5E67</div><div class='add'>+0x63B0 = 0x6A7E</div><div class='add'>+0x63B3 = 0x4230</div><div class='add'>+0x63B4 = 0x5E62</div><div class='add'>+0x63B7 = 0x5640</div><div class='add'>+0x63B8 = 0x3527</div><div class='add'>+0x63BA = 0x3274</div><div class='add'>+0x63BC = 0x5E68</div><div class='add'>+0x63BE = 0x5E72</div><div class='add'>+0x63C4 = 0x5E6D</div><div class='add'>+0x63C6 = 0x5E71</div><div class='add'>+0x63C9 = 0x4860</div><div class='add'>+0x63CD = 0x5761</div><div class='add'>+0x63CE = 0x5E6F</div><div class='add'>+0x63CF = 0x4368</div><div class='add'>+0x63D0 = 0x4C61</div><div class='add'>+0x63D2 = 0x3265</div><div class='add'>+0x63D6 = 0x523E</div><div class='add'>+0x63DE = 0x5E6E</div><div class='add'>+0x63E0 = 0x5E6B</div><div class='add'>+0x63E1 = 0x4E55</div><div class='add'>+0x63E3 = 0x3427</div><div class='add'>+0x63E9 = 0x3F2B</div><div class='add'>+0x63EA = 0x3E3E</div><div class='add'>+0x63ED = 0x3D52</div><div class='add'>+0x63F2 = 0x5E69</div><div class='add'>+0x63F4 = 0x542E</div><div class='add'>+0x63F6 = 0x5E5E</div><div class='add'>+0x63F8 = 0x5E6A</div><div class='add'>+0x63FD = 0x403F</div><div class='add'>+0x63FF = 0x5E6C</div><div class='add'>+0x6400 = 0x3273</div><div class='add'>+0x6401 = 0x3869</div><div class='add'>+0x6402 = 0x4227</div><div class='add'>+0x6405 = 0x3D41</div><div class='add'>+0x640B = 0x5E75</div><div class='add'>+0x640C = 0x5E78</div><div class='add'>+0x640F = 0x322B</div><div class='add'>+0x6410 = 0x3424</div><div class='add'>+0x6413 = 0x346A</div><div class='add'>+0x6414 = 0x4926</div><div class='add'>+0x641B = 0x5E76</div><div class='add'>+0x641C = 0x4B51</div><div class='add'>+0x641E = 0x3863</div><div class='add'>+0x6420 = 0x5E77</div><div class='add'>+0x6421 = 0x5E7A</div><div class='add'>+0x6426 = 0x5E79</div><div class='add'>+0x642A = 0x4C42</div><div class='add'>+0x642C = 0x3061</div><div class='add'>+0x642D = 0x346E</div><div class='add'>+0x6434 = 0x653A</div><div class='add'>+0x643A = 0x502F</div><div class='add'>+0x643D = 0x326B</div><div class='add'>+0x643F = 0x6B21</div><div class='add'>+0x6441 = 0x5E74</div><div class='add'>+0x6444 = 0x4963</div><div class='add'>+0x6445 = 0x5E73</div><div class='add'>+0x6446 = 0x305A</div><div class='add'>+0x6447 = 0x5221</div><div class='add'>+0x6448 = 0x3177</div><div class='add'>+0x644A = 0x4C2F</div><div class='add'>+0x6452 = 0x5E70</div><div class='add'>+0x6454 = 0x4B24</div><div class='add'>+0x6458 = 0x552A</div><div class='add'>+0x645E = 0x5E7B</div><div class='add'>+0x6467 = 0x345D</div><div class='add'>+0x6469 = 0x4426</div><div class='add'>+0x646D = 0x5E7D</div><div class='add'>+0x6478 = 0x437E</div><div class='add'>+0x6479 = 0x4421</div><div class='add'>+0x647A = 0x5F21</div><div class='add'>+0x6482 = 0x414C</div><div class='add'>+0x6484 = 0x5E7C</div><div class='add'>+0x6485 = 0x3E6F</div><div class='add'>+0x6487 = 0x4632</div><div class='add'>+0x6491 = 0x3345</div><div class='add'>+0x6492 = 0x4876</div><div class='add'>+0x6495 = 0x4B3A</div><div class='add'>+0x6496 = 0x5E7E</div><div class='add'>+0x6499 = 0x5F24</div><div class='add'>+0x649E = 0x5732</div><div class='add'>+0x64A4 = 0x3337</div><div class='add'>+0x64A9 = 0x4143</div><div class='add'>+0x64AC = 0x474B</div><div class='add'>+0x64AD = 0x3225</div><div class='add'>+0x64AE = 0x3469</div><div class='add'>+0x64B0 = 0x572B</div><div class='add'>+0x64B5 = 0x446C</div><div class='add'>+0x64B7 = 0x5F22</div><div class='add'>+0x64B8 = 0x5F23</div><div class='add'>+0x64BA = 0x5F25</div><div class='add'>+0x64BC = 0x3A33</div><div class='add'>+0x64C0 = 0x5F26</div><div class='add'>+0x64C2 = 0x405E</div><div class='add'>+0x64C5 = 0x4943</div><div class='add'>+0x64CD = 0x3259</div><div class='add'>+0x64CE = 0x4766</div><div class='add'>+0x64D0 = 0x5F27</div><div class='add'>+0x64D2 = 0x475C</div><div class='add'>+0x64D7 = 0x5F28</div><div class='add'>+0x64D8 = 0x6B22</div><div class='add'>+0x64DE = 0x4B53</div><div class='add'>+0x64E2 = 0x5F2A</div><div class='add'>+0x64E4 = 0x5F29</div><div class='add'>+0x64E6 = 0x3241</div><div class='add'>+0x6500 = 0x454A</div><div class='add'>+0x6509 = 0x5F2B</div><div class='add'>+0x6512 = 0x545C</div><div class='add'>+0x6518 = 0x4841</div><div class='add'>+0x6525 = 0x5F2C</div><div class='add'>+0x652B = 0x3E70</div><div class='add'>+0x652E = 0x5F2D</div><div class='add'>+0x652F = 0x5627</div><div class='add'>+0x6534 = 0x6A37</div><div class='add'>+0x6535 = 0x6B36</div><div class='add'>+0x6536 = 0x4A55</div><div class='add'>+0x6538 = 0x587C</div><div class='add'>+0x6539 = 0x3844</div><div class='add'>+0x653B = 0x3925</div><div class='add'>+0x653E = 0x3745</div><div class='add'>+0x653F = 0x557E</div><div class='add'>+0x6545 = 0x394A</div><div class='add'>+0x6548 = 0x5027</div><div class='add'>+0x6549 = 0x744D</div><div class='add'>+0x654C = 0x3550</div><div class='add'>+0x654F = 0x4374</div><div class='add'>+0x6551 = 0x3E48</div><div class='add'>+0x6555 = 0x6B37</div><div class='add'>+0x6556 = 0x303D</div><div class='add'>+0x6559 = 0x3D4C</div><div class='add'>+0x655B = 0x4132</div><div class='add'>+0x655D = 0x3156</div><div class='add'>+0x655E = 0x3328</div><div class='add'>+0x6562 = 0x3852</div><div class='add'>+0x6563 = 0x4922</div><div class='add'>+0x6566 = 0x3658</div><div class='add'>+0x656B = 0x6B38</div><div class='add'>+0x656C = 0x3E34</div><div class='add'>+0x6570 = 0x4A7D</div><div class='add'>+0x6572 = 0x4743</div><div class='add'>+0x6574 = 0x557B</div><div class='add'>+0x6577 = 0x3773</div><div class='add'>+0x6587 = 0x4E44</div><div class='add'>+0x658B = 0x552B</div><div class='add'>+0x658C = 0x3173</div><div class='add'>+0x6590 = 0x6C33</div><div class='add'>+0x6591 = 0x305F</div><div class='add'>+0x6593 = 0x6C35</div><div class='add'>+0x6597 = 0x3637</div><div class='add'>+0x6599 = 0x414F</div><div class='add'>+0x659B = 0x757A</div><div class='add'>+0x659C = 0x5031</div><div class='add'>+0x659F = 0x5565</div><div class='add'>+0x65A1 = 0x4E53</div><div class='add'>+0x65A4 = 0x3D6F</div><div class='add'>+0x65A5 = 0x3362</div><div class='add'>+0x65A7 = 0x382B</div><div class='add'>+0x65A9 = 0x5536</div><div class='add'>+0x65AB = 0x6D3D</div><div class='add'>+0x65AD = 0x364F</div><div class='add'>+0x65AF = 0x4B39</div><div class='add'>+0x65B0 = 0x5042</div><div class='add'>+0x65B9 = 0x373D</div><div class='add'>+0x65BC = 0x6C36</div><div class='add'>+0x65BD = 0x4A29</div><div class='add'>+0x65C1 = 0x4554</div><div class='add'>+0x65C3 = 0x6C39</div><div class='add'>+0x65C4 = 0x6C38</div><div class='add'>+0x65C5 = 0x4243</div><div class='add'>+0x65C6 = 0x6C37</div><div class='add'>+0x65CB = 0x507D</div><div class='add'>+0x65CC = 0x6C3A</div><div class='add'>+0x65CE = 0x6C3B</div><div class='add'>+0x65CF = 0x5765</div><div class='add'>+0x65D2 = 0x6C3C</div><div class='add'>+0x65D6 = 0x6C3D</div><div class='add'>+0x65D7 = 0x466C</div><div class='add'>+0x65E0 = 0x4E5E</div><div class='add'>+0x65E2 = 0x3C48</div><div class='add'>+0x65E5 = 0x4855</div><div class='add'>+0x65E6 = 0x3529</div><div class='add'>+0x65E7 = 0x3E49</div><div class='add'>+0x65E8 = 0x563C</div><div class='add'>+0x65E9 = 0x5467</div><div class='add'>+0x65EC = 0x512E</div><div class='add'>+0x65ED = 0x5071</div><div class='add'>+0x65EE = 0x6A38</div><div class='add'>+0x65EF = 0x6A39</div><div class='add'>+0x65F0 = 0x6A3A</div><div class='add'>+0x65F1 = 0x3A35</div><div class='add'>+0x65F6 = 0x4A31</div><div class='add'>+0x65F7 = 0x3F75</div><div class='add'>+0x65FA = 0x4D7A</div><div class='add'>+0x6600 = 0x6A40</div><div class='add'>+0x6602 = 0x303A</div><div class='add'>+0x6603 = 0x6A3E</div><div class='add'>+0x6606 = 0x4025</div><div class='add'>+0x660A = 0x6A3B</div><div class='add'>+0x660C = 0x327D</div><div class='add'>+0x660E = 0x4377</div><div class='add'>+0x660F = 0x3B68</div><div class='add'>+0x6613 = 0x5257</div><div class='add'>+0x6614 = 0x4E74</div><div class='add'>+0x6615 = 0x6A3F</div><div class='add'>+0x6619 = 0x6A3C</div><div class='add'>+0x661D = 0x6A43</div><div class='add'>+0x661F = 0x5047</div><div class='add'>+0x6620 = 0x5333</div><div class='add'>+0x6625 = 0x343A</div><div class='add'>+0x6627 = 0x4341</div><div class='add'>+0x6628 = 0x5772</div><div class='add'>+0x662D = 0x5551</div><div class='add'>+0x662F = 0x4A47</div><div class='add'>+0x6631 = 0x6A45</div><div class='add'>+0x6634 = 0x6A44</div><div class='add'>+0x6635 = 0x6A47</div><div class='add'>+0x6636 = 0x6A46</div><div class='add'>+0x663C = 0x5667</div><div class='add'>+0x663E = 0x4F54</div><div class='add'>+0x6641 = 0x6A4B</div><div class='add'>+0x6643 = 0x3B4E</div><div class='add'>+0x664B = 0x3D7A</div><div class='add'>+0x664C = 0x494E</div><div class='add'>+0x664F = 0x6A4C</div><div class='add'>+0x6652 = 0x4939</div><div class='add'>+0x6653 = 0x4F7E</div><div class='add'>+0x6654 = 0x6A4A</div><div class='add'>+0x6655 = 0x544E</div><div class='add'>+0x6656 = 0x6A4D</div><div class='add'>+0x6657 = 0x6A4F</div><div class='add'>+0x665A = 0x4D6D</div><div class='add'>+0x665F = 0x6A49</div><div class='add'>+0x6661 = 0x6A4E</div><div class='add'>+0x6664 = 0x4E6E</div><div class='add'>+0x6666 = 0x3B5E</div><div class='add'>+0x6668 = 0x333F</div><div class='add'>+0x666E = 0x4655</div><div class='add'>+0x666F = 0x3E30</div><div class='add'>+0x6670 = 0x4E7A</div><div class='add'>+0x6674 = 0x4767</div><div class='add'>+0x6676 = 0x3E27</div><div class='add'>+0x6677 = 0x6A50</div><div class='add'>+0x667A = 0x5647</div><div class='add'>+0x667E = 0x4140</div><div class='add'>+0x6682 = 0x545D</div><div class='add'>+0x6684 = 0x6A51</div><div class='add'>+0x6687 = 0x4F3E</div><div class='add'>+0x668C = 0x6A52</div><div class='add'>+0x6691 = 0x4A6E</div><div class='add'>+0x6696 = 0x452F</div><div class='add'>+0x6697 = 0x3035</div><div class='add'>+0x669D = 0x6A54</div><div class='add'>+0x66A7 = 0x6A53</div><div class='add'>+0x66A8 = 0x745F</div><div class='add'>+0x66AE = 0x443A</div><div class='add'>+0x66B4 = 0x3129</div><div class='add'>+0x66B9 = 0x655F</div><div class='add'>+0x66BE = 0x6A55</div><div class='add'>+0x66D9 = 0x4A6F</div><div class='add'>+0x66DB = 0x6A56</div><div class='add'>+0x66DC = 0x6A57</div><div class='add'>+0x66DD = 0x4658</div><div class='add'>+0x66E6 = 0x6A58</div><div class='add'>+0x66E9 = 0x6A59</div><div class='add'>+0x66F0 = 0x543B</div><div class='add'>+0x66F2 = 0x477A</div><div class='add'>+0x66F3 = 0x5237</div><div class='add'>+0x66F4 = 0x387C</div><div class='add'>+0x66F7 = 0x6A42</div><div class='add'>+0x66F9 = 0x325C</div><div class='add'>+0x66FC = 0x427C</div><div class='add'>+0x66FE = 0x5478</div><div class='add'>+0x66FF = 0x4C66</div><div class='add'>+0x6700 = 0x576E</div><div class='add'>+0x6708 = 0x5442</div><div class='add'>+0x6709 = 0x5350</div><div class='add'>+0x670A = 0x6B43</div><div class='add'>+0x670B = 0x4573</div><div class='add'>+0x670D = 0x377E</div><div class='add'>+0x6710 = 0x6B54</div><div class='add'>+0x6714 = 0x4B37</div><div class='add'>+0x6715 = 0x6B5E</div><div class='add'>+0x6717 = 0x404A</div><div class='add'>+0x671B = 0x4D7B</div><div class='add'>+0x671D = 0x332F</div><div class='add'>+0x671F = 0x465A</div><div class='add'>+0x6726 = 0x6B7C</div><div class='add'>+0x6728 = 0x443E</div><div class='add'>+0x672A = 0x4E34</div><div class='add'>+0x672B = 0x4429</div><div class='add'>+0x672C = 0x313E</div><div class='add'>+0x672D = 0x547D</div><div class='add'>+0x672F = 0x4A75</div><div class='add'>+0x6731 = 0x566C</div><div class='add'>+0x6734 = 0x4653</div><div class='add'>+0x6735 = 0x3664</div><div class='add'>+0x673A = 0x3B7A</div><div class='add'>+0x673D = 0x5060</div><div class='add'>+0x6740 = 0x4931</div><div class='add'>+0x6742 = 0x5453</div><div class='add'>+0x6743 = 0x4828</div><div class='add'>+0x6746 = 0x384B</div><div class='add'>+0x6748 = 0x683E</div><div class='add'>+0x6749 = 0x493C</div><div class='add'>+0x674C = 0x683B</div><div class='add'>+0x674E = 0x406E</div><div class='add'>+0x674F = 0x5053</div><div class='add'>+0x6750 = 0x3244</div><div class='add'>+0x6751 = 0x3465</div><div class='add'>+0x6753 = 0x683C</div><div class='add'>+0x6756 = 0x5548</div><div class='add'>+0x675C = 0x3645</div><div class='add'>+0x675E = 0x683D</div><div class='add'>+0x675F = 0x4A78</div><div class='add'>+0x6760 = 0x385C</div><div class='add'>+0x6761 = 0x4C75</div><div class='add'>+0x6765 = 0x4034</div><div class='add'>+0x6768 = 0x516E</div><div class='add'>+0x6769 = 0x683F</div><div class='add'>+0x676A = 0x6842</div><div class='add'>+0x676D = 0x3A3C</div><div class='add'>+0x676F = 0x312D</div><div class='add'>+0x6770 = 0x3D5C</div><div class='add'>+0x6772 = 0x6A3D</div><div class='add'>+0x6773 = 0x6843</div><div class='add'>+0x6775 = 0x6846</div><div class='add'>+0x6777 = 0x684B</div><div class='add'>+0x677C = 0x684C</div><div class='add'>+0x677E = 0x4B49</div><div class='add'>+0x677F = 0x3065</div><div class='add'>+0x6781 = 0x3C2B</div><div class='add'>+0x6784 = 0x3939</div><div class='add'>+0x6787 = 0x6841</div><div class='add'>+0x6789 = 0x4D77</div><div class='add'>+0x678B = 0x684A</div><div class='add'>+0x6790 = 0x4E76</div><div class='add'>+0x6795 = 0x556D</div><div class='add'>+0x6797 = 0x4156</div><div class='add'>+0x6798 = 0x6844</div><div class='add'>+0x679A = 0x4336</div><div class='add'>+0x679C = 0x397B</div><div class='add'>+0x679D = 0x5626</div><div class='add'>+0x679E = 0x6848</div><div class='add'>+0x67A2 = 0x4A60</div><div class='add'>+0x67A3 = 0x5466</div><div class='add'>+0x67A5 = 0x6840</div><div class='add'>+0x67A7 = 0x6845</div><div class='add'>+0x67A8 = 0x6847</div><div class='add'>+0x67AA = 0x4739</div><div class='add'>+0x67AB = 0x3763</div><div class='add'>+0x67AD = 0x6849</div><div class='add'>+0x67AF = 0x3F5D</div><div class='add'>+0x67B0 = 0x6852</div><div class='add'>+0x67B3 = 0x6857</div><div class='add'>+0x67B5 = 0x6855</div><div class='add'>+0x67B6 = 0x3C5C</div><div class='add'>+0x67B7 = 0x3C4F</div><div class='add'>+0x67B8 = 0x685B</div><div class='add'>+0x67C1 = 0x685E</div><div class='add'>+0x67C3 = 0x685A</div><div class='add'>+0x67C4 = 0x317A</div><div class='add'>+0x67CF = 0x3058</div><div class='add'>+0x67D0 = 0x4433</div><div class='add'>+0x67D1 = 0x384C</div><div class='add'>+0x67D2 = 0x4662</div><div class='add'>+0x67D3 = 0x483E</div><div class='add'>+0x67D4 = 0x4861</div><div class='add'>+0x67D8 = 0x684F</div><div class='add'>+0x67D9 = 0x6854</div><div class='add'>+0x67DA = 0x6856</div><div class='add'>+0x67DC = 0x3971</div><div class='add'>+0x67DD = 0x6858</div><div class='add'>+0x67DE = 0x5775</div><div class='add'>+0x67E0 = 0x447B</div><div class='add'>+0x67E2 = 0x685C</div><div class='add'>+0x67E5 = 0x3269</div><div class='add'>+0x67E9 = 0x6851</div><div class='add'>+0x67EC = 0x3C6D</div><div class='add'>+0x67EF = 0x3F42</div><div class='add'>+0x67F0 = 0x684D</div><div class='add'>+0x67F1 = 0x5679</div><div class='add'>+0x67F3 = 0x4178</div><div class='add'>+0x67F4 = 0x3271</div><div class='add'>+0x67FD = 0x685F</div><div class='add'>+0x67FF = 0x4A41</div><div class='add'>+0x6800 = 0x6859</div><div class='add'>+0x6805 = 0x5524</div><div class='add'>+0x6807 = 0x316A</div><div class='add'>+0x6808 = 0x553B</div><div class='add'>+0x6809 = 0x684E</div><div class='add'>+0x680A = 0x6850</div><div class='add'>+0x680B = 0x3630</div><div class='add'>+0x680C = 0x6853</div><div class='add'>+0x680E = 0x685D</div><div class='add'>+0x680F = 0x4038</div><div class='add'>+0x6811 = 0x4A77</div><div class='add'>+0x6813 = 0x4B28</div><div class='add'>+0x6816 = 0x465C</div><div class='add'>+0x6817 = 0x4075</div><div class='add'>+0x681D = 0x6869</div><div class='add'>+0x6821 = 0x5023</div><div class='add'>+0x6829 = 0x6872</div><div class='add'>+0x682A = 0x566A</div><div class='add'>+0x6832 = 0x6860</div><div class='add'>+0x6833 = 0x6861</div><div class='add'>+0x6837 = 0x5179</div><div class='add'>+0x6838 = 0x3A4B</div><div class='add'>+0x6839 = 0x3879</div><div class='add'>+0x683C = 0x3871</div><div class='add'>+0x683D = 0x5454</div><div class='add'>+0x683E = 0x686F</div><div class='add'>+0x6840 = 0x686E</div><div class='add'>+0x6841 = 0x686C</div><div class='add'>+0x6842 = 0x3970</div><div class='add'>+0x6843 = 0x4C52</div><div class='add'>+0x6844 = 0x6866</div><div class='add'>+0x6845 = 0x4E26</div><div class='add'>+0x6846 = 0x3F72</div><div class='add'>+0x6848 = 0x3038</div><div class='add'>+0x6849 = 0x6871</div><div class='add'>+0x684A = 0x6870</div><div class='add'>+0x684C = 0x5740</div><div class='add'>+0x684E = 0x6864</div><div class='add'>+0x6850 = 0x4D29</div><div class='add'>+0x6851 = 0x4923</div><div class='add'>+0x6853 = 0x3B38</div><div class='add'>+0x6854 = 0x3D5B</div><div class='add'>+0x6855 = 0x686A</div><div class='add'>+0x6860 = 0x6862</div><div class='add'>+0x6861 = 0x6863</div><div class='add'>+0x6862 = 0x6865</div><div class='add'>+0x6863 = 0x3535</div><div class='add'>+0x6864 = 0x6867</div><div class='add'>+0x6865 = 0x4745</div><div class='add'>+0x6866 = 0x686B</div><div class='add'>+0x6867 = 0x686D</div><div class='add'>+0x6868 = 0x3D30</div><div class='add'>+0x6869 = 0x572E</div><div class='add'>+0x686B = 0x6878</div><div class='add'>+0x6874 = 0x6875</div><div class='add'>+0x6876 = 0x4D30</div><div class='add'>+0x6877 = 0x6876</div><div class='add'>+0x6881 = 0x413A</div><div class='add'>+0x6883 = 0x6868</div><div class='add'>+0x6885 = 0x4337</div><div class='add'>+0x6886 = 0x3070</div><div class='add'>+0x688F = 0x6874</div><div class='add'>+0x6893 = 0x6877</div><div class='add'>+0x6897 = 0x3923</div><div class='add'>+0x68A2 = 0x4952</div><div class='add'>+0x68A6 = 0x434E</div><div class='add'>+0x68A7 = 0x4E60</div><div class='add'>+0x68A8 = 0x4066</div><div class='add'>+0x68AD = 0x4B73</div><div class='add'>+0x68AF = 0x4C5D</div><div class='add'>+0x68B0 = 0x5035</div><div class='add'>+0x68B3 = 0x4A61</div><div class='add'>+0x68B5 = 0x6873</div><div class='add'>+0x68C0 = 0x3C6C</div><div class='add'>+0x68C2 = 0x6879</div><div class='add'>+0x68C9 = 0x435E</div><div class='add'>+0x68CB = 0x4665</div><div class='add'>+0x68CD = 0x3977</div><div class='add'>+0x68D2 = 0x3074</div><div class='add'>+0x68D5 = 0x5758</div><div class='add'>+0x68D8 = 0x3C2C</div><div class='add'>+0x68DA = 0x456F</div><div class='add'>+0x68E0 = 0x4C44</div><div class='add'>+0x68E3 = 0x6926</div><div class='add'>+0x68EE = 0x492D</div><div class='add'>+0x68F0 = 0x6922</div><div class='add'>+0x68F1 = 0x4062</div><div class='add'>+0x68F5 = 0x3F43</div><div class='add'>+0x68F9 = 0x687E</div><div class='add'>+0x68FA = 0x3957</div><div class='add'>+0x68FC = 0x687B</div><div class='add'>+0x6901 = 0x6924</div><div class='add'>+0x6905 = 0x524E</div><div class='add'>+0x690B = 0x6923</div><div class='add'>+0x690D = 0x5632</div><div class='add'>+0x690E = 0x5735</div><div class='add'>+0x6910 = 0x6927</div><div class='add'>+0x6912 = 0x3D37</div><div class='add'>+0x691F = 0x687C</div><div class='add'>+0x6920 = 0x687D</div><div class='add'>+0x6924 = 0x6921</div><div class='add'>+0x692D = 0x4D56</div><div class='add'>+0x6930 = 0x522C</div><div class='add'>+0x6934 = 0x6932</div><div class='add'>+0x6939 = 0x6929</div><div class='add'>+0x693D = 0x342A</div><div class='add'>+0x693F = 0x343B</div><div class='add'>+0x6942 = 0x692B</div><div class='add'>+0x6954 = 0x5028</div><div class='add'>+0x6957 = 0x6925</div><div class='add'>+0x695A = 0x337E</div><div class='add'>+0x695D = 0x692C</div><div class='add'>+0x695E = 0x4063</div><div class='add'>+0x6960 = 0x692A</div><div class='add'>+0x6963 = 0x6939</div><div class='add'>+0x6966 = 0x6938</div><div class='add'>+0x696B = 0x692E</div><div class='add'>+0x696E = 0x687A</div><div class='add'>+0x6971 = 0x6928</div><div class='add'>+0x6977 = 0x3F2C</div><div class='add'>+0x6978 = 0x6931</div><div class='add'>+0x6979 = 0x693A</div><div class='add'>+0x697C = 0x4225</div><div class='add'>+0x6980 = 0x692F</div><div class='add'>+0x6982 = 0x3845</div><div class='add'>+0x6984 = 0x692D</div><div class='add'>+0x6986 = 0x535C</div><div class='add'>+0x6987 = 0x6934</div><div class='add'>+0x6988 = 0x6935</div><div class='add'>+0x6989 = 0x6937</div><div class='add'>+0x698D = 0x6947</div><div class='add'>+0x6994 = 0x4046</div><div class='add'>+0x6995 = 0x6945</div><div class='add'>+0x6998 = 0x6930</div><div class='add'>+0x699B = 0x693B</div><div class='add'>+0x699C = 0x3071</div><div class='add'>+0x69A7 = 0x693C</div><div class='add'>+0x69A8 = 0x5525</div><div class='add'>+0x69AB = 0x693E</div><div class='add'>+0x69AD = 0x693F</div><div class='add'>+0x69B1 = 0x6941</div><div class='add'>+0x69B4 = 0x4171</div><div class='add'>+0x69B7 = 0x4836</div><div class='add'>+0x69BB = 0x693D</div><div class='add'>+0x69C1 = 0x6942</div><div class='add'>+0x69CA = 0x6943</div><div class='add'>+0x69CC = 0x6933</div><div class='add'>+0x69CE = 0x6936</div><div class='add'>+0x69D0 = 0x3B31</div><div class='add'>+0x69D4 = 0x6940</div><div class='add'>+0x69DB = 0x3C77</div><div class='add'>+0x69DF = 0x6944</div><div class='add'>+0x69E0 = 0x6946</div><div class='add'>+0x69ED = 0x694A</div><div class='add'>+0x69F2 = 0x694E</div><div class='add'>+0x69FD = 0x325B</div><div class='add'>+0x69FF = 0x6948</div><div class='add'>+0x6A0A = 0x372E</div><div class='add'>+0x6A17 = 0x694B</div><div class='add'>+0x6A18 = 0x694C</div><div class='add'>+0x6A1F = 0x5541</div><div class='add'>+0x6A21 = 0x4423</div><div class='add'>+0x6A28 = 0x6958</div><div class='add'>+0x6A2A = 0x3A61</div><div class='add'>+0x6A2F = 0x6949</div><div class='add'>+0x6A31 = 0x5323</div><div class='add'>+0x6A35 = 0x6954</div><div class='add'>+0x6A3D = 0x6957</div><div class='add'>+0x6A3E = 0x6950</div><div class='add'>+0x6A44 = 0x694F</div><div class='add'>+0x6A47 = 0x4741</div><div class='add'>+0x6A50 = 0x6952</div><div class='add'>+0x6A58 = 0x6959</div><div class='add'>+0x6A59 = 0x3348</div><div class='add'>+0x6A5B = 0x6953</div><div class='add'>+0x6A61 = 0x4F70</div><div class='add'>+0x6A65 = 0x694D</div><div class='add'>+0x6A71 = 0x3377</div><div class='add'>+0x6A79 = 0x6956</div><div class='add'>+0x6A7C = 0x695A</div><div class='add'>+0x6A80 = 0x4C34</div><div class='add'>+0x6A84 = 0x4F2D</div><div class='add'>+0x6A8E = 0x6955</div><div class='add'>+0x6A90 = 0x695C</div><div class='add'>+0x6A91 = 0x695B</div><div class='add'>+0x6A97 = 0x695E</div><div class='add'>+0x6AA0 = 0x6951</div><div class='add'>+0x6AA9 = 0x695D</div><div class='add'>+0x6AAB = 0x695F</div><div class='add'>+0x6AAC = 0x434A</div><div class='add'>+0x6B20 = 0x4737</div><div class='add'>+0x6B21 = 0x344E</div><div class='add'>+0x6B22 = 0x3B36</div><div class='add'>+0x6B23 = 0x5040</div><div class='add'>+0x6B24 = 0x6C23</div><div class='add'>+0x6B27 = 0x4537</div><div class='add'>+0x6B32 = 0x537B</div><div class='add'>+0x6B37 = 0x6C24</div><div class='add'>+0x6B39 = 0x6C25</div><div class='add'>+0x6B3A = 0x465B</div><div class='add'>+0x6B3E = 0x3F6E</div><div class='add'>+0x6B43 = 0x6C26</div><div class='add'>+0x6B46 = 0x6C27</div><div class='add'>+0x6B47 = 0x502A</div><div class='add'>+0x6B49 = 0x4738</div><div class='add'>+0x6B4C = 0x3868</div><div class='add'>+0x6B59 = 0x6C28</div><div class='add'>+0x6B62 = 0x5639</div><div class='add'>+0x6B63 = 0x557D</div><div class='add'>+0x6B64 = 0x344B</div><div class='add'>+0x6B65 = 0x323D</div><div class='add'>+0x6B66 = 0x4E64</div><div class='add'>+0x6B67 = 0x4667</div><div class='add'>+0x6B6A = 0x4D61</div><div class='add'>+0x6B79 = 0x3475</div><div class='add'>+0x6B7B = 0x4B40</div><div class='add'>+0x6B7C = 0x3C5F</div><div class='add'>+0x6B81 = 0x6962</div><div class='add'>+0x6B82 = 0x6963</div><div class='add'>+0x6B83 = 0x516A</div><div class='add'>+0x6B84 = 0x6965</div><div class='add'>+0x6B86 = 0x3479</div><div class='add'>+0x6B87 = 0x6964</div><div class='add'>+0x6B89 = 0x5133</div><div class='add'>+0x6B8A = 0x4A62</div><div class='add'>+0x6B8B = 0x3250</div><div class='add'>+0x6B8D = 0x6968</div><div class='add'>+0x6B92 = 0x6966</div><div class='add'>+0x6B93 = 0x6967</div><div class='add'>+0x6B96 = 0x5633</div><div class='add'>+0x6B9A = 0x6969</div><div class='add'>+0x6B9B = 0x696A</div><div class='add'>+0x6BA1 = 0x696B</div><div class='add'>+0x6BAA = 0x696C</div><div class='add'>+0x6BB3 = 0x6C2F</div><div class='add'>+0x6BB4 = 0x4539</div><div class='add'>+0x6BB5 = 0x364E</div><div class='add'>+0x6BB7 = 0x5273</div><div class='add'>+0x6BBF = 0x356E</div><div class='add'>+0x6BC1 = 0x3B59</div><div class='add'>+0x6BC2 = 0x6C31</div><div class='add'>+0x6BC5 = 0x5263</div><div class='add'>+0x6BCB = 0x4E63</div><div class='add'>+0x6BCD = 0x4438</div><div class='add'>+0x6BCF = 0x433F</div><div class='add'>+0x6BD2 = 0x363E</div><div class='add'>+0x6BD3 = 0x5839</div><div class='add'>+0x6BD4 = 0x3148</div><div class='add'>+0x6BD5 = 0x314F</div><div class='add'>+0x6BD6 = 0x3151</div><div class='add'>+0x6BD7 = 0x457E</div><div class='add'>+0x6BD9 = 0x3150</div><div class='add'>+0x6BDB = 0x432B</div><div class='add'>+0x6BE1 = 0x5531</div><div class='add'>+0x6BEA = 0x6B24</div><div class='add'>+0x6BEB = 0x3A41</div><div class='add'>+0x6BEF = 0x4C3A</div><div class='add'>+0x6BF3 = 0x6B25</div><div class='add'>+0x6BF5 = 0x6B27</div><div class='add'>+0x6BF9 = 0x6B28</div><div class='add'>+0x6BFD = 0x6B26</div><div class='add'>+0x6C05 = 0x6B29</div><div class='add'>+0x6C06 = 0x6B2B</div><div class='add'>+0x6C07 = 0x6B2A</div><div class='add'>+0x6C0D = 0x6B2C</div><div class='add'>+0x6C0F = 0x4A4F</div><div class='add'>+0x6C10 = 0x5835</div><div class='add'>+0x6C11 = 0x4371</div><div class='add'>+0x6C13 = 0x4325</div><div class='add'>+0x6C14 = 0x4678</div><div class='add'>+0x6C15 = 0x6B2D</div><div class='add'>+0x6C16 = 0x444A</div><div class='add'>+0x6C18 = 0x6B2E</div><div class='add'>+0x6C19 = 0x6B2F</div><div class='add'>+0x6C1A = 0x6B30</div><div class='add'>+0x6C1B = 0x3755</div><div class='add'>+0x6C1F = 0x377A</div><div class='add'>+0x6C21 = 0x6B31</div><div class='add'>+0x6C22 = 0x4762</div><div class='add'>+0x6C24 = 0x6B33</div><div class='add'>+0x6C26 = 0x3A24</div><div class='add'>+0x6C27 = 0x5175</div><div class='add'>+0x6C28 = 0x3031</div><div class='add'>+0x6C29 = 0x6B32</div><div class='add'>+0x6C2A = 0x6B34</div><div class='add'>+0x6C2E = 0x352A</div><div class='add'>+0x6C2F = 0x4248</div><div class='add'>+0x6C30 = 0x4768</div><div class='add'>+0x6C32 = 0x6B35</div><div class='add'>+0x6C34 = 0x4B2E</div><div class='add'>+0x6C35 = 0x635F</div><div class='add'>+0x6C38 = 0x5340</div><div class='add'>+0x6C3D = 0x595B</div><div class='add'>+0x6C40 = 0x4D21</div><div class='add'>+0x6C41 = 0x562D</div><div class='add'>+0x6C42 = 0x4773</div><div class='add'>+0x6C46 = 0x5960</div><div class='add'>+0x6C47 = 0x3B63</div><div class='add'>+0x6C49 = 0x3A3A</div><div class='add'>+0x6C4A = 0x6362</div><div class='add'>+0x6C50 = 0x4F2B</div><div class='add'>+0x6C54 = 0x6360</div><div class='add'>+0x6C55 = 0x4947</div><div class='add'>+0x6C57 = 0x3A39</div><div class='add'>+0x6C5B = 0x5134</div><div class='add'>+0x6C5C = 0x6361</div><div class='add'>+0x6C5D = 0x486A</div><div class='add'>+0x6C5E = 0x392F</div><div class='add'>+0x6C5F = 0x3D2D</div><div class='add'>+0x6C60 = 0x3358</div><div class='add'>+0x6C61 = 0x4E5B</div><div class='add'>+0x6C64 = 0x4C40</div><div class='add'>+0x6C68 = 0x6368</div><div class='add'>+0x6C69 = 0x6369</div><div class='add'>+0x6C6A = 0x4D74</div><div class='add'>+0x6C70 = 0x4C2D</div><div class='add'>+0x6C72 = 0x3C33</div><div class='add'>+0x6C74 = 0x636A</div><div class='add'>+0x6C76 = 0x636B</div><div class='add'>+0x6C79 = 0x505A</div><div class='add'>+0x6C7D = 0x467B</div><div class='add'>+0x6C7E = 0x375A</div><div class='add'>+0x6C81 = 0x475F</div><div class='add'>+0x6C82 = 0x524A</div><div class='add'>+0x6C83 = 0x4E56</div><div class='add'>+0x6C85 = 0x6364</div><div class='add'>+0x6C86 = 0x636C</div><div class='add'>+0x6C88 = 0x4972</div><div class='add'>+0x6C89 = 0x3341</div><div class='add'>+0x6C8C = 0x6367</div><div class='add'>+0x6C8F = 0x4663</div><div class='add'>+0x6C90 = 0x6365</div><div class='add'>+0x6C93 = 0x6D33</div><div class='add'>+0x6C94 = 0x6366</div><div class='add'>+0x6C99 = 0x4933</div><div class='add'>+0x6C9B = 0x4566</div><div class='add'>+0x6C9F = 0x3935</div><div class='add'>+0x6CA1 = 0x433B</div><div class='add'>+0x6CA3 = 0x6363</div><div class='add'>+0x6CA4 = 0x453D</div><div class='add'>+0x6CA5 = 0x4124</div><div class='add'>+0x6CA6 = 0x4259</div><div class='add'>+0x6CA7 = 0x3257</div><div class='add'>+0x6CA9 = 0x636D</div><div class='add'>+0x6CAA = 0x3B26</div><div class='add'>+0x6CAB = 0x442D</div><div class='add'>+0x6CAD = 0x6370</div><div class='add'>+0x6CAE = 0x3E5A</div><div class='add'>+0x6CB1 = 0x637B</div><div class='add'>+0x6CB2 = 0x6375</div><div class='add'>+0x6CB3 = 0x3A53</div><div class='add'>+0x6CB8 = 0x3750</div><div class='add'>+0x6CB9 = 0x534D</div><div class='add'>+0x6CBB = 0x564E</div><div class='add'>+0x6CBC = 0x5553</div><div class='add'>+0x6CBD = 0x3941</div><div class='add'>+0x6CBE = 0x5534</div><div class='add'>+0x6CBF = 0x5158</div><div class='add'>+0x6CC4 = 0x5039</div><div class='add'>+0x6CC5 = 0x4776</div><div class='add'>+0x6CC9 = 0x482A</div><div class='add'>+0x6CCA = 0x3234</div><div class='add'>+0x6CCC = 0x435A</div><div class='add'>+0x6CD0 = 0x636E</div><div class='add'>+0x6CD3 = 0x637C</div><div class='add'>+0x6CD4 = 0x636F</div><div class='add'>+0x6CD5 = 0x3728</div><div class='add'>+0x6CD6 = 0x6377</div><div class='add'>+0x6CD7 = 0x6374</div><div class='add'>+0x6CDB = 0x373A</div><div class='add'>+0x6CDE = 0x4522</div><div class='add'>+0x6CE0 = 0x6376</div><div class='add'>+0x6CE1 = 0x455D</div><div class='add'>+0x6CE2 = 0x3228</div><div class='add'>+0x6CE3 = 0x467C</div><div class='add'>+0x6CE5 = 0x4460</div><div class='add'>+0x6CE8 = 0x5722</div><div class='add'>+0x6CEA = 0x4061</div><div class='add'>+0x6CEB = 0x6379</div><div class='add'>+0x6CEE = 0x637A</div><div class='add'>+0x6CEF = 0x637D</div><div class='add'>+0x6CF0 = 0x4C29</div><div class='add'>+0x6CF1 = 0x6373</div><div class='add'>+0x6CF3 = 0x533E</div><div class='add'>+0x6CF5 = 0x3143</div><div class='add'>+0x6CF6 = 0x6D34</div><div class='add'>+0x6CF7 = 0x6371</div><div class='add'>+0x6CF8 = 0x6372</div><div class='add'>+0x6CFA = 0x6378</div><div class='add'>+0x6CFB = 0x503A</div><div class='add'>+0x6CFC = 0x4643</div><div class='add'>+0x6CFD = 0x5473</div><div class='add'>+0x6CFE = 0x637E</div><div class='add'>+0x6D01 = 0x3D60</div><div class='add'>+0x6D04 = 0x6427</div><div class='add'>+0x6D07 = 0x6426</div><div class='add'>+0x6D0B = 0x5173</div><div class='add'>+0x6D0C = 0x6423</div><div class='add'>+0x6D0E = 0x6429</div><div class='add'>+0x6D12 = 0x4877</div><div class='add'>+0x6D17 = 0x4F34</div><div class='add'>+0x6D19 = 0x6428</div><div class='add'>+0x6D1A = 0x642E</div><div class='add'>+0x6D1B = 0x4265</div><div class='add'>+0x6D1E = 0x3634</div><div class='add'>+0x6D25 = 0x3D72</div><div class='add'>+0x6D27 = 0x6422</div><div class='add'>+0x6D2A = 0x3A69</div><div class='add'>+0x6D2B = 0x642A</div><div class='add'>+0x6D2E = 0x642C</div><div class='add'>+0x6D31 = 0x367D</div><div class='add'>+0x6D32 = 0x565E</div><div class='add'>+0x6D33 = 0x6432</div><div class='add'>+0x6D35 = 0x642D</div><div class='add'>+0x6D39 = 0x6421</div><div class='add'>+0x6D3B = 0x3B6E</div><div class='add'>+0x6D3C = 0x4D5D</div><div class='add'>+0x6D3D = 0x4722</div><div class='add'>+0x6D3E = 0x4549</div><div class='add'>+0x6D41 = 0x4177</div><div class='add'>+0x6D43 = 0x6424</div><div class='add'>+0x6D45 = 0x4733</div><div class='add'>+0x6D46 = 0x3D2C</div><div class='add'>+0x6D47 = 0x3D3D</div><div class='add'>+0x6D48 = 0x6425</div><div class='add'>+0x6D4A = 0x5747</div><div class='add'>+0x6D4B = 0x3262</div><div class='add'>+0x6D4D = 0x642B</div><div class='add'>+0x6D4E = 0x3C43</div><div class='add'>+0x6D4F = 0x642F</div><div class='add'>+0x6D51 = 0x3B6B</div><div class='add'>+0x6D52 = 0x6430</div><div class='add'>+0x6D53 = 0x4528</div><div class='add'>+0x6D54 = 0x6431</div><div class='add'>+0x6D59 = 0x5563</div><div class='add'>+0x6D5A = 0x3F23</div><div class='add'>+0x6D5C = 0x643A</div><div class='add'>+0x6D5E = 0x6437</div><div class='add'>+0x6D60 = 0x643B</div><div class='add'>+0x6D63 = 0x643D</div><div class='add'>+0x6D66 = 0x4656</div><div class='add'>+0x6D69 = 0x3A46</div><div class='add'>+0x6D6A = 0x404B</div><div class='add'>+0x6D6E = 0x3821</div><div class='add'>+0x6D6F = 0x6434</div><div class='add'>+0x6D74 = 0x5421</div><div class='add'>+0x6D77 = 0x3A23</div><div class='add'>+0x6D78 = 0x3D7E</div><div class='add'>+0x6D7C = 0x643C</div><div class='add'>+0x6D82 = 0x4D3F</div><div class='add'>+0x6D85 = 0x4479</div><div class='add'>+0x6D88 = 0x4F7B</div><div class='add'>+0x6D89 = 0x4966</div><div class='add'>+0x6D8C = 0x533F</div><div class='add'>+0x6D8E = 0x4F51</div><div class='add'>+0x6D91 = 0x6433</div><div class='add'>+0x6D93 = 0x6438</div><div class='add'>+0x6D94 = 0x6439</div><div class='add'>+0x6D95 = 0x4C69</div><div class='add'>+0x6D9B = 0x4C4E</div><div class='add'>+0x6D9D = 0x4054</div><div class='add'>+0x6D9E = 0x6435</div><div class='add'>+0x6D9F = 0x4130</div><div class='add'>+0x6DA0 = 0x6436</div><div class='add'>+0x6DA1 = 0x4E50</div><div class='add'>+0x6DA3 = 0x3B41</div><div class='add'>+0x6DA4 = 0x3553</div><div class='add'>+0x6DA6 = 0x4873</div><div class='add'>+0x6DA7 = 0x3D27</div><div class='add'>+0x6DA8 = 0x5547</div><div class='add'>+0x6DA9 = 0x492C</div><div class='add'>+0x6DAA = 0x3822</div><div class='add'>+0x6DAB = 0x644A</div><div class='add'>+0x6DAE = 0x644C</div><div class='add'>+0x6DAF = 0x5144</div><div class='add'>+0x6DB2 = 0x523A</div><div class='add'>+0x6DB5 = 0x3A2D</div><div class='add'>+0x6DB8 = 0x3A54</div><div class='add'>+0x6DBF = 0x6443</div><div class='add'>+0x6DC0 = 0x356D</div><div class='add'>+0x6DC4 = 0x574D</div><div class='add'>+0x6DC5 = 0x6440</div><div class='add'>+0x6DC6 = 0x4F7D</div><div class='add'>+0x6DC7 = 0x643F</div><div class='add'>+0x6DCB = 0x415C</div><div class='add'>+0x6DCC = 0x4C4A</div><div class='add'>+0x6DD1 = 0x4A67</div><div class='add'>+0x6DD6 = 0x4457</div><div class='add'>+0x6DD8 = 0x4C54</div><div class='add'>+0x6DD9 = 0x6448</div><div class='add'>+0x6DDD = 0x6447</div><div class='add'>+0x6DDE = 0x6441</div><div class='add'>+0x6DE0 = 0x6444</div><div class='add'>+0x6DE1 = 0x352D</div><div class='add'>+0x6DE4 = 0x5359</div><div class='add'>+0x6DE6 = 0x6446</div><div class='add'>+0x6DEB = 0x5279</div><div class='add'>+0x6DEC = 0x3463</div><div class='add'>+0x6DEE = 0x3B34</div><div class='add'>+0x6DF1 = 0x496E</div><div class='add'>+0x6DF3 = 0x343E</div><div class='add'>+0x6DF7 = 0x3B6C</div><div class='add'>+0x6DF9 = 0x514D</div><div class='add'>+0x6DFB = 0x4C6D</div><div class='add'>+0x6DFC = 0x6D35</div><div class='add'>+0x6E05 = 0x4765</div><div class='add'>+0x6E0A = 0x5428</div><div class='add'>+0x6E0C = 0x644B</div><div class='add'>+0x6E0D = 0x5755</div><div class='add'>+0x6E0E = 0x6442</div><div class='add'>+0x6E10 = 0x3D25</div><div class='add'>+0x6E11 = 0x6445</div><div class='add'>+0x6E14 = 0x5366</div><div class='add'>+0x6E16 = 0x6449</div><div class='add'>+0x6E17 = 0x4978</div><div class='add'>+0x6E1A = 0x643E</div><div class='add'>+0x6E1D = 0x5365</div><div class='add'>+0x6E20 = 0x477E</div><div class='add'>+0x6E21 = 0x3649</div><div class='add'>+0x6E23 = 0x547C</div><div class='add'>+0x6E24 = 0x3233</div><div class='add'>+0x6E25 = 0x6457</div><div class='add'>+0x6E29 = 0x4E42</div><div class='add'>+0x6E2B = 0x644D</div><div class='add'>+0x6E2D = 0x4E3C</div><div class='add'>+0x6E2F = 0x385B</div><div class='add'>+0x6E32 = 0x6456</div><div class='add'>+0x6E34 = 0x3F4A</div><div class='add'>+0x6E38 = 0x534E</div><div class='add'>+0x6E3A = 0x436C</div><div class='add'>+0x6E43 = 0x4548</div><div class='add'>+0x6E44 = 0x6458</div><div class='add'>+0x6E4D = 0x4D44</div><div class='add'>+0x6E4E = 0x644F</div><div class='add'>+0x6E53 = 0x6454</div><div class='add'>+0x6E54 = 0x6455</div><div class='add'>+0x6E56 = 0x3A7E</div><div class='add'>+0x6E58 = 0x4F66</div><div class='add'>+0x6E5B = 0x553F</div><div class='add'>+0x6E5F = 0x6452</div><div class='add'>+0x6E6B = 0x6450</div><div class='add'>+0x6E6E = 0x644E</div><div class='add'>+0x6E7E = 0x4D65</div><div class='add'>+0x6E7F = 0x4A2A</div><div class='add'>+0x6E83 = 0x4023</div><div class='add'>+0x6E85 = 0x3D26</div><div class='add'>+0x6E86 = 0x6453</div><div class='add'>+0x6E89 = 0x3848</div><div class='add'>+0x6E8F = 0x6467</div><div class='add'>+0x6E90 = 0x5434</div><div class='add'>+0x6E98 = 0x645B</div><div class='add'>+0x6E9C = 0x416F</div><div class='add'>+0x6E9F = 0x6469</div><div class='add'>+0x6EA2 = 0x5267</div><div class='add'>+0x6EA5 = 0x645F</div><div class='add'>+0x6EA7 = 0x6460</div><div class='add'>+0x6EAA = 0x4F2A</div><div class='add'>+0x6EAF = 0x4B5D</div><div class='add'>+0x6EB1 = 0x645A</div><div class='add'>+0x6EB2 = 0x6451</div><div class='add'>+0x6EB4 = 0x6465</div><div class='add'>+0x6EB6 = 0x485C</div><div class='add'>+0x6EB7 = 0x6463</div><div class='add'>+0x6EBA = 0x4467</div><div class='add'>+0x6EBB = 0x6462</div><div class='add'>+0x6EBD = 0x6461</div><div class='add'>+0x6EC1 = 0x337C</div><div class='add'>+0x6EC2 = 0x6468</div><div class='add'>+0x6EC7 = 0x3561</div><div class='add'>+0x6ECB = 0x574C</div><div class='add'>+0x6ECF = 0x6466</div><div class='add'>+0x6ED1 = 0x3B2C</div><div class='add'>+0x6ED3 = 0x5752</div><div class='add'>+0x6ED4 = 0x4C4F</div><div class='add'>+0x6ED5 = 0x6B78</div><div class='add'>+0x6ED7 = 0x6464</div><div class='add'>+0x6EDA = 0x3976</div><div class='add'>+0x6EDE = 0x564D</div><div class='add'>+0x6EDF = 0x6459</div><div class='add'>+0x6EE0 = 0x645C</div><div class='add'>+0x6EE1 = 0x427A</div><div class='add'>+0x6EE2 = 0x645E</div><div class='add'>+0x6EE4 = 0x424B</div><div class='add'>+0x6EE5 = 0x4044</div><div class='add'>+0x6EE6 = 0x4250</div><div class='add'>+0x6EE8 = 0x3175</div><div class='add'>+0x6EE9 = 0x4C32</div><div class='add'>+0x6EF4 = 0x354E</div><div class='add'>+0x6EF9 = 0x646F</div><div class='add'>+0x6F02 = 0x462F</div><div class='add'>+0x6F06 = 0x4661</div><div class='add'>+0x6F09 = 0x6475</div><div class='add'>+0x6F0F = 0x4229</div><div class='add'>+0x6F13 = 0x406C</div><div class='add'>+0x6F14 = 0x515D</div><div class='add'>+0x6F15 = 0x646E</div><div class='add'>+0x6F20 = 0x442E</div><div class='add'>+0x6F24 = 0x646D</div><div class='add'>+0x6F29 = 0x6476</div><div class='add'>+0x6F2A = 0x6474</div><div class='add'>+0x6F2B = 0x427E</div><div class='add'>+0x6F2D = 0x645D</div><div class='add'>+0x6F2F = 0x6470</div><div class='add'>+0x6F31 = 0x4A7E</div><div class='add'>+0x6F33 = 0x5544</div><div class='add'>+0x6F36 = 0x6471</div><div class='add'>+0x6F3E = 0x517A</div><div class='add'>+0x6F46 = 0x646B</div><div class='add'>+0x6F47 = 0x646C</div><div class='add'>+0x6F4B = 0x6472</div><div class='add'>+0x6F4D = 0x4E2B</div><div class='add'>+0x6F58 = 0x454B</div><div class='add'>+0x6F5C = 0x4731</div><div class='add'>+0x6F5E = 0x423A</div><div class='add'>+0x6F62 = 0x646A</div><div class='add'>+0x6F66 = 0x414A</div><div class='add'>+0x6F6D = 0x4C36</div><div class='add'>+0x6F6E = 0x3331</div><div class='add'>+0x6F72 = 0x647B</div><div class='add'>+0x6F74 = 0x6473</div><div class='add'>+0x6F78 = 0x647A</div><div class='add'>+0x6F7A = 0x647D</div><div class='add'>+0x6F7C = 0x647C</div><div class='add'>+0x6F84 = 0x334E</div><div class='add'>+0x6F88 = 0x333A</div><div class='add'>+0x6F89 = 0x6477</div><div class='add'>+0x6F8C = 0x6479</div><div class='add'>+0x6F8D = 0x6478</div><div class='add'>+0x6F8E = 0x456C</div><div class='add'>+0x6F9C = 0x403D</div><div class='add'>+0x6FA1 = 0x5468</div><div class='add'>+0x6FA7 = 0x6522</div><div class='add'>+0x6FB3 = 0x3044</div><div class='add'>+0x6FB6 = 0x6524</div><div class='add'>+0x6FB9 = 0x6523</div><div class='add'>+0x6FC0 = 0x3C24</div><div class='add'>+0x6FC2 = 0x6525</div><div class='add'>+0x6FC9 = 0x6521</div><div class='add'>+0x6FD1 = 0x647E</div><div class='add'>+0x6FD2 = 0x3174</div><div class='add'>+0x6FDE = 0x6528</div><div class='add'>+0x6FE0 = 0x6529</div><div class='add'>+0x6FE1 = 0x6526</div><div class='add'>+0x6FEE = 0x6527</div><div class='add'>+0x6FEF = 0x652A</div><div class='add'>+0x7011 = 0x4659</div><div class='add'>+0x701A = 0x652B</div><div class='add'>+0x701B = 0x652D</div><div class='add'>+0x7023 = 0x652C</div><div class='add'>+0x7035 = 0x652F</div><div class='add'>+0x7039 = 0x652E</div><div class='add'>+0x704C = 0x3960</div><div class='add'>+0x704F = 0x6530</div><div class='add'>+0x705E = 0x6531</div><div class='add'>+0x706B = 0x3B70</div><div class='add'>+0x706C = 0x6C61</div><div class='add'>+0x706D = 0x4370</div><div class='add'>+0x706F = 0x3546</div><div class='add'>+0x7070 = 0x3B52</div><div class='add'>+0x7075 = 0x4169</div><div class='add'>+0x7076 = 0x546E</div><div class='add'>+0x7078 = 0x3E44</div><div class='add'>+0x707C = 0x5746</div><div class='add'>+0x707E = 0x5456</div><div class='add'>+0x707F = 0x3253</div><div class='add'>+0x7080 = 0x6C3E</div><div class='add'>+0x7085 = 0x6A41</div><div class='add'>+0x7089 = 0x422F</div><div class='add'>+0x708A = 0x3436</div><div class='add'>+0x708E = 0x5157</div><div class='add'>+0x7092 = 0x3334</div><div class='add'>+0x7094 = 0x4832</div><div class='add'>+0x7095 = 0x3F3B</div><div class='add'>+0x7096 = 0x6C40</div><div class='add'>+0x7099 = 0x564B</div><div class='add'>+0x709C = 0x6C3F</div><div class='add'>+0x709D = 0x6C41</div><div class='add'>+0x70AB = 0x6C45</div><div class='add'>+0x70AC = 0x3E66</div><div class='add'>+0x70AD = 0x4C3F</div><div class='add'>+0x70AE = 0x455A</div><div class='add'>+0x70AF = 0x3E3C</div><div class='add'>+0x70B1 = 0x6C46</div><div class='add'>+0x70B3 = 0x317E</div><div class='add'>+0x70B7 = 0x6C44</div><div class='add'>+0x70B8 = 0x5528</div><div class='add'>+0x70B9 = 0x3563</div><div class='add'>+0x70BB = 0x6C42</div><div class='add'>+0x70BC = 0x4136</div><div class='add'>+0x70BD = 0x3363</div><div class='add'>+0x70C0 = 0x6C43</div><div class='add'>+0x70C1 = 0x4B38</div><div class='add'>+0x70C2 = 0x4043</div><div class='add'>+0x70C3 = 0x4C7E</div><div class='add'>+0x70C8 = 0x4152</div><div class='add'>+0x70CA = 0x6C48</div><div class='add'>+0x70D8 = 0x3A66</div><div class='add'>+0x70D9 = 0x4053</div><div class='add'>+0x70DB = 0x5672</div><div class='add'>+0x70DF = 0x514C</div><div class='add'>+0x70E4 = 0x3F3E</div><div class='add'>+0x70E6 = 0x3733</div><div class='add'>+0x70E7 = 0x4955</div><div class='add'>+0x70E8 = 0x6C47</div><div class='add'>+0x70E9 = 0x3B62</div><div class='add'>+0x70EB = 0x4C4C</div><div class='add'>+0x70EC = 0x3D7D</div><div class='add'>+0x70ED = 0x4848</div><div class='add'>+0x70EF = 0x4F29</div><div class='add'>+0x70F7 = 0x4D69</div><div class='add'>+0x70F9 = 0x456B</div><div class='add'>+0x70FD = 0x3769</div><div class='add'>+0x7109 = 0x5149</div><div class='add'>+0x710A = 0x3A38</div><div class='add'>+0x7110 = 0x6C49</div><div class='add'>+0x7113 = 0x6C4A</div><div class='add'>+0x7115 = 0x3B40</div><div class='add'>+0x7116 = 0x6C4B</div><div class='add'>+0x7118 = 0x6C62</div><div class='add'>+0x7119 = 0x313A</div><div class='add'>+0x711A = 0x3759</div><div class='add'>+0x7126 = 0x3D39</div><div class='add'>+0x712F = 0x6C4C</div><div class='add'>+0x7130 = 0x5166</div><div class='add'>+0x7131 = 0x6C4D</div><div class='add'>+0x7136 = 0x483B</div><div class='add'>+0x7145 = 0x6C51</div><div class='add'>+0x714A = 0x6C53</div><div class='add'>+0x714C = 0x3B4D</div><div class='add'>+0x714E = 0x3C65</div><div class='add'>+0x715C = 0x6C4F</div><div class='add'>+0x715E = 0x4937</div><div class='add'>+0x7164 = 0x433A</div><div class='add'>+0x7166 = 0x6C63</div><div class='add'>+0x7167 = 0x5555</div><div class='add'>+0x7168 = 0x6C50</div><div class='add'>+0x716E = 0x5673</div><div class='add'>+0x7172 = 0x6C52</div><div class='add'>+0x7173 = 0x6C4E</div><div class='add'>+0x7178 = 0x6C54</div><div class='add'>+0x717A = 0x6C55</div><div class='add'>+0x717D = 0x493F</div><div class='add'>+0x7184 = 0x4F28</div><div class='add'>+0x718A = 0x505C</div><div class='add'>+0x718F = 0x512C</div><div class='add'>+0x7194 = 0x485B</div><div class='add'>+0x7198 = 0x6C56</div><div class='add'>+0x7199 = 0x4E75</div><div class='add'>+0x719F = 0x4A6C</div><div class='add'>+0x71A0 = 0x6C5A</div><div class='add'>+0x71A8 = 0x6C59</div><div class='add'>+0x71AC = 0x303E</div><div class='add'>+0x71B3 = 0x6C57</div><div class='add'>+0x71B5 = 0x6C58</div><div class='add'>+0x71B9 = 0x6C64</div><div class='add'>+0x71C3 = 0x483C</div><div class='add'>+0x71CE = 0x4147</div><div class='add'>+0x71D4 = 0x6C5C</div><div class='add'>+0x71D5 = 0x5160</div><div class='add'>+0x71E0 = 0x6C5B</div><div class='add'>+0x71E5 = 0x546F</div><div class='add'>+0x71E7 = 0x6C5D</div><div class='add'>+0x71EE = 0x5B46</div><div class='add'>+0x71F9 = 0x6C5E</div><div class='add'>+0x7206 = 0x312C</div><div class='add'>+0x721D = 0x6C5F</div><div class='add'>+0x7228 = 0x6C60</div><div class='add'>+0x722A = 0x5726</div><div class='add'>+0x722C = 0x4540</div><div class='add'>+0x7230 = 0x6B3C</div><div class='add'>+0x7231 = 0x302E</div><div class='add'>+0x7235 = 0x3E74</div><div class='add'>+0x7236 = 0x3838</div><div class='add'>+0x7237 = 0x522F</div><div class='add'>+0x7238 = 0x3056</div><div class='add'>+0x7239 = 0x3579</div><div class='add'>+0x723B = 0x5833</div><div class='add'>+0x723D = 0x4B2C</div><div class='add'>+0x723F = 0x635D</div><div class='add'>+0x7247 = 0x462C</div><div class='add'>+0x7248 = 0x3066</div><div class='add'>+0x724C = 0x4546</div><div class='add'>+0x724D = 0x6B39</div><div class='add'>+0x7252 = 0x6B3A</div><div class='add'>+0x7256 = 0x6B3B</div><div class='add'>+0x7259 = 0x5140</div><div class='add'>+0x725B = 0x4523</div><div class='add'>+0x725D = 0x6A72</div><div class='add'>+0x725F = 0x4432</div><div class='add'>+0x7261 = 0x4435</div><div class='add'>+0x7262 = 0x404E</div><div class='add'>+0x7266 = 0x6A73</div><div class='add'>+0x7267 = 0x4441</div><div class='add'>+0x7269 = 0x4E6F</div><div class='add'>+0x726E = 0x6A70</div><div class='add'>+0x726F = 0x6A74</div><div class='add'>+0x7272 = 0x497C</div><div class='add'>+0x7275 = 0x4723</div><div class='add'>+0x7279 = 0x4C58</div><div class='add'>+0x727A = 0x4E7E</div><div class='add'>+0x727E = 0x6A75</div><div class='add'>+0x727F = 0x6A76</div><div class='add'>+0x7280 = 0x4F2C</div><div class='add'>+0x7281 = 0x4067</div><div class='add'>+0x7284 = 0x6A77</div><div class='add'>+0x728A = 0x363F</div><div class='add'>+0x728B = 0x6A78</div><div class='add'>+0x728D = 0x6A79</div><div class='add'>+0x728F = 0x6A7A</div><div class='add'>+0x7292 = 0x6A7B</div><div class='add'>+0x729F = 0x6A71</div><div class='add'>+0x72AC = 0x482E</div><div class='add'>+0x72AD = 0x616B</div><div class='add'>+0x72AF = 0x3738</div><div class='add'>+0x72B0 = 0x616C</div><div class='add'>+0x72B4 = 0x616D</div><div class='add'>+0x72B6 = 0x5734</div><div class='add'>+0x72B7 = 0x616E</div><div class='add'>+0x72B8 = 0x616F</div><div class='add'>+0x72B9 = 0x534C</div><div class='add'>+0x72C1 = 0x6171</div><div class='add'>+0x72C2 = 0x3F71</div><div class='add'>+0x72C3 = 0x6170</div><div class='add'>+0x72C4 = 0x3552</div><div class='add'>+0x72C8 = 0x3137</div><div class='add'>+0x72CD = 0x6173</div><div class='add'>+0x72CE = 0x6172</div><div class='add'>+0x72D0 = 0x3A7C</div><div class='add'>+0x72D2 = 0x6174</div><div class='add'>+0x72D7 = 0x3937</div><div class='add'>+0x72D9 = 0x3E51</div><div class='add'>+0x72DE = 0x447C</div><div class='add'>+0x72E0 = 0x3A5D</div><div class='add'>+0x72E1 = 0x3D46</div><div class='add'>+0x72E8 = 0x6175</div><div class='add'>+0x72E9 = 0x6177</div><div class='add'>+0x72EC = 0x3640</div><div class='add'>+0x72ED = 0x4F41</div><div class='add'>+0x72EE = 0x4A28</div><div class='add'>+0x72EF = 0x6176</div><div class='add'>+0x72F0 = 0x5578</div><div class='add'>+0x72F1 = 0x537C</div><div class='add'>+0x72F2 = 0x6178</div><div class='add'>+0x72F3 = 0x617C</div><div class='add'>+0x72F4 = 0x6179</div><div class='add'>+0x72F7 = 0x617A</div><div class='add'>+0x72F8 = 0x406A</div><div class='add'>+0x72FA = 0x617E</div><div class='add'>+0x72FB = 0x6221</div><div class='add'>+0x72FC = 0x4047</div><div class='add'>+0x7301 = 0x617B</div><div class='add'>+0x7303 = 0x617D</div><div class='add'>+0x730A = 0x6225</div><div class='add'>+0x730E = 0x4154</div><div class='add'>+0x7313 = 0x6223</div><div class='add'>+0x7315 = 0x6228</div><div class='add'>+0x7316 = 0x327E</div><div class='add'>+0x7317 = 0x6222</div><div class='add'>+0x731B = 0x434D</div><div class='add'>+0x731C = 0x3242</div><div class='add'>+0x731D = 0x6227</div><div class='add'>+0x731E = 0x6226</div><div class='add'>+0x7321 = 0x6224</div><div class='add'>+0x7322 = 0x6229</div><div class='add'>+0x7325 = 0x622B</div><div class='add'>+0x7329 = 0x5049</div><div class='add'>+0x732A = 0x566D</div><div class='add'>+0x732B = 0x4328</div><div class='add'>+0x732C = 0x622C</div><div class='add'>+0x732E = 0x4F57</div><div class='add'>+0x7331 = 0x622E</div><div class='add'>+0x7334 = 0x3A6F</div><div class='add'>+0x7337 = 0x6960</div><div class='add'>+0x7338 = 0x622D</div><div class='add'>+0x7339 = 0x622A</div><div class='add'>+0x733E = 0x3B2B</div><div class='add'>+0x733F = 0x5433</div><div class='add'>+0x734D = 0x6230</div><div class='add'>+0x7350 = 0x622F</div><div class='add'>+0x7352 = 0x6961</div><div class='add'>+0x7357 = 0x6231</div><div class='add'>+0x7360 = 0x6232</div><div class='add'>+0x736C = 0x6233</div><div class='add'>+0x736D = 0x4C21</div><div class='add'>+0x736F = 0x6234</div><div class='add'>+0x737E = 0x6235</div><div class='add'>+0x7384 = 0x507E</div><div class='add'>+0x7387 = 0x424A</div><div class='add'>+0x7389 = 0x5371</div><div class='add'>+0x738B = 0x4D75</div><div class='add'>+0x738E = 0x6760</div><div class='add'>+0x7391 = 0x6761</div><div class='add'>+0x7396 = 0x3E41</div><div class='add'>+0x739B = 0x426A</div><div class='add'>+0x739F = 0x6764</div><div class='add'>+0x73A2 = 0x6763</div><div class='add'>+0x73A9 = 0x4D66</div><div class='add'>+0x73AB = 0x4335</div><div class='add'>+0x73AE = 0x6762</div><div class='add'>+0x73AF = 0x3B37</div><div class='add'>+0x73B0 = 0x4F56</div><div class='add'>+0x73B2 = 0x4161</div><div class='add'>+0x73B3 = 0x6769</div><div class='add'>+0x73B7 = 0x6768</div><div class='add'>+0x73BA = 0x6774</div><div class='add'>+0x73BB = 0x3223</div><div class='add'>+0x73C0 = 0x676A</div><div class='add'>+0x73C2 = 0x6766</div><div class='add'>+0x73C8 = 0x676C</div><div class='add'>+0x73C9 = 0x676B</div><div class='add'>+0x73CA = 0x493A</div><div class='add'>+0x73CD = 0x5564</div><div class='add'>+0x73CF = 0x6765</div><div class='add'>+0x73D0 = 0x3729</div><div class='add'>+0x73D1 = 0x6767</div><div class='add'>+0x73D9 = 0x676E</div><div class='add'>+0x73DE = 0x6773</div><div class='add'>+0x73E0 = 0x5669</div><div class='add'>+0x73E5 = 0x676D</div><div class='add'>+0x73E7 = 0x6772</div><div class='add'>+0x73E9 = 0x6771</div><div class='add'>+0x73ED = 0x3060</div><div class='add'>+0x73F2 = 0x6775</div><div class='add'>+0x7403 = 0x4772</div><div class='add'>+0x7405 = 0x4045</div><div class='add'>+0x7406 = 0x406D</div><div class='add'>+0x7409 = 0x4170</div><div class='add'>+0x740A = 0x6770</div><div class='add'>+0x740F = 0x6776</div><div class='add'>+0x7410 = 0x4B76</div><div class='add'>+0x741A = 0x6822</div><div class='add'>+0x741B = 0x6821</div><div class='add'>+0x7422 = 0x5741</div><div class='add'>+0x7425 = 0x677A</div><div class='add'>+0x7426 = 0x6779</div><div class='add'>+0x7428 = 0x677B</div><div class='add'>+0x742A = 0x6777</div><div class='add'>+0x742C = 0x677E</div><div class='add'>+0x742E = 0x677D</div><div class='add'>+0x7430 = 0x677C</div><div class='add'>+0x7433 = 0x4155</div><div class='add'>+0x7434 = 0x4759</div><div class='add'>+0x7435 = 0x457D</div><div class='add'>+0x7436 = 0x4543</div><div class='add'>+0x743C = 0x476D</div><div class='add'>+0x7441 = 0x6823</div><div class='add'>+0x7455 = 0x6826</div><div class='add'>+0x7457 = 0x6825</div><div class='add'>+0x7459 = 0x6827</div><div class='add'>+0x745A = 0x3A77</div><div class='add'>+0x745B = 0x6778</div><div class='add'>+0x745C = 0x6824</div><div class='add'>+0x745E = 0x4870</div><div class='add'>+0x745F = 0x492A</div><div class='add'>+0x746D = 0x6829</div><div class='add'>+0x7470 = 0x3965</div><div class='add'>+0x7476 = 0x517E</div><div class='add'>+0x7477 = 0x6828</div><div class='add'>+0x747E = 0x682A</div><div class='add'>+0x7480 = 0x682D</div><div class='add'>+0x7481 = 0x682E</div><div class='add'>+0x7483 = 0x4127</div><div class='add'>+0x7487 = 0x682F</div><div class='add'>+0x748B = 0x6830</div><div class='add'>+0x748E = 0x682C</div><div class='add'>+0x7490 = 0x6834</div><div class='add'>+0x749C = 0x682B</div><div class='add'>+0x749E = 0x6831</div><div class='add'>+0x74A7 = 0x6835</div><div class='add'>+0x74A8 = 0x6832</div><div class='add'>+0x74A9 = 0x6833</div><div class='add'>+0x74BA = 0x6837</div><div class='add'>+0x74D2 = 0x6836</div><div class='add'>+0x74DC = 0x394F</div><div class='add'>+0x74DE = 0x702C</div><div class='add'>+0x74E0 = 0x702D</div><div class='add'>+0x74E2 = 0x4630</div><div class='add'>+0x74E3 = 0x306A</div><div class='add'>+0x74E4 = 0x483F</div><div class='add'>+0x74E6 = 0x4D5F</div><div class='add'>+0x74EE = 0x4E4D</div><div class='add'>+0x74EF = 0x6A31</div><div class='add'>+0x74F4 = 0x6A32</div><div class='add'>+0x74F6 = 0x463F</div><div class='add'>+0x74F7 = 0x3449</div><div class='add'>+0x74FF = 0x6A33</div><div class='add'>+0x7504 = 0x5567</div><div class='add'>+0x750D = 0x5D79</div><div class='add'>+0x750F = 0x6A34</div><div class='add'>+0x7511 = 0x6A35</div><div class='add'>+0x7513 = 0x6A36</div><div class='add'>+0x7518 = 0x384A</div><div class='add'>+0x7519 = 0x5F30</div><div class='add'>+0x751A = 0x4975</div><div class='add'>+0x751C = 0x4C70</div><div class='add'>+0x751F = 0x497A</div><div class='add'>+0x7525 = 0x497B</div><div class='add'>+0x7528 = 0x5343</div><div class='add'>+0x7529 = 0x4B26</div><div class='add'>+0x752B = 0x3826</div><div class='add'>+0x752C = 0x702E</div><div class='add'>+0x752D = 0x3142</div><div class='add'>+0x752F = 0x6538</div><div class='add'>+0x7530 = 0x4C6F</div><div class='add'>+0x7531 = 0x5349</div><div class='add'>+0x7532 = 0x3C57</div><div class='add'>+0x7533 = 0x496A</div><div class='add'>+0x7535 = 0x3567</div><div class='add'>+0x7537 = 0x4450</div><div class='add'>+0x7538 = 0x3569</div><div class='add'>+0x753A = 0x6E2E</div><div class='add'>+0x753B = 0x3B2D</div><div class='add'>+0x753E = 0x675E</div><div class='add'>+0x7540 = 0x6E2F</div><div class='add'>+0x7545 = 0x3329</div><div class='add'>+0x7548 = 0x6E32</div><div class='add'>+0x754B = 0x6E31</div><div class='add'>+0x754C = 0x3D67</div><div class='add'>+0x754E = 0x6E30</div><div class='add'>+0x754F = 0x4E37</div><div class='add'>+0x7554 = 0x454F</div><div class='add'>+0x7559 = 0x4174</div><div class='add'>+0x755A = 0x5B4E</div><div class='add'>+0x755B = 0x6E33</div><div class='add'>+0x755C = 0x5073</div><div class='add'>+0x7565 = 0x4254</div><div class='add'>+0x7566 = 0x4668</div><div class='add'>+0x756A = 0x372C</div><div class='add'>+0x7572 = 0x6E34</div><div class='add'>+0x7574 = 0x336B</div><div class='add'>+0x7578 = 0x3B7B</div><div class='add'>+0x7579 = 0x6E35</div><div class='add'>+0x757F = 0x675C</div><div class='add'>+0x7583 = 0x6E36</div><div class='add'>+0x7586 = 0x3D2E</div><div class='add'>+0x758B = 0x7162</div><div class='add'>+0x758F = 0x4A68</div><div class='add'>+0x7591 = 0x5249</div><div class='add'>+0x7592 = 0x705A</div><div class='add'>+0x7594 = 0x705B</div><div class='add'>+0x7596 = 0x705C</div><div class='add'>+0x7597 = 0x4146</div><div class='add'>+0x7599 = 0x386D</div><div class='add'>+0x759A = 0x3E4E</div><div class='add'>+0x759D = 0x705E</div><div class='add'>+0x759F = 0x4531</div><div class='add'>+0x75A0 = 0x705D</div><div class='add'>+0x75A1 = 0x5171</div><div class='add'>+0x75A3 = 0x7060</div><div class='add'>+0x75A4 = 0x304C</div><div class='add'>+0x75A5 = 0x3D6A</div><div class='add'>+0x75AB = 0x525F</div><div class='add'>+0x75AC = 0x705F</div><div class='add'>+0x75AE = 0x342F</div><div class='add'>+0x75AF = 0x3768</div><div class='add'>+0x75B0 = 0x7066</div><div class='add'>+0x75B1 = 0x7065</div><div class='add'>+0x75B2 = 0x4623</div><div class='add'>+0x75B3 = 0x7061</div><div class='add'>+0x75B4 = 0x7062</div><div class='add'>+0x75B5 = 0x3443</div><div class='add'>+0x75B8 = 0x7063</div><div class='add'>+0x75B9 = 0x556E</div><div class='add'>+0x75BC = 0x4C5B</div><div class='add'>+0x75BD = 0x3E52</div><div class='add'>+0x75BE = 0x3C32</div><div class='add'>+0x75C2 = 0x7068</div><div class='add'>+0x75C3 = 0x7067</div><div class='add'>+0x75C4 = 0x7064</div><div class='add'>+0x75C5 = 0x3221</div><div class='add'>+0x75C7 = 0x5622</div><div class='add'>+0x75C8 = 0x5338</div><div class='add'>+0x75C9 = 0x3E37</div><div class='add'>+0x75CA = 0x482C</div><div class='add'>+0x75CD = 0x706A</div><div class='add'>+0x75D2 = 0x5177</div><div class='add'>+0x75D4 = 0x564C</div><div class='add'>+0x75D5 = 0x3A5B</div><div class='add'>+0x75D6 = 0x7069</div><div class='add'>+0x75D8 = 0x363B</div><div class='add'>+0x75DB = 0x4D34</div><div class='add'>+0x75DE = 0x4626</div><div class='add'>+0x75E2 = 0x4121</div><div class='add'>+0x75E3 = 0x706B</div><div class='add'>+0x75E4 = 0x706E</div><div class='add'>+0x75E6 = 0x706D</div><div class='add'>+0x75E7 = 0x7070</div><div class='add'>+0x75E8 = 0x706C</div><div class='add'>+0x75EA = 0x3B3E</div><div class='add'>+0x75EB = 0x706F</div><div class='add'>+0x75F0 = 0x4C35</div><div class='add'>+0x75F1 = 0x7072</div><div class='add'>+0x75F4 = 0x3355</div><div class='add'>+0x75F9 = 0x3154</div><div class='add'>+0x75FC = 0x7073</div><div class='add'>+0x75FF = 0x7074</div><div class='add'>+0x7600 = 0x7076</div><div class='add'>+0x7601 = 0x3461</div><div class='add'>+0x7603 = 0x7071</div><div class='add'>+0x7605 = 0x7077</div><div class='add'>+0x760A = 0x707A</div><div class='add'>+0x760C = 0x7078</div><div class='add'>+0x7610 = 0x7075</div><div class='add'>+0x7615 = 0x707D</div><div class='add'>+0x7617 = 0x7079</div><div class='add'>+0x7618 = 0x707C</div><div class='add'>+0x7619 = 0x707E</div><div class='add'>+0x761B = 0x7121</div><div class='add'>+0x761F = 0x4E41</div><div class='add'>+0x7620 = 0x7124</div><div class='add'>+0x7622 = 0x7123</div><div class='add'>+0x7624 = 0x4176</div><div class='add'>+0x7625 = 0x707B</div><div class='add'>+0x7626 = 0x4A5D</div><div class='add'>+0x7629 = 0x3471</div><div class='add'>+0x762A = 0x3171</div><div class='add'>+0x762B = 0x4C31</div><div class='add'>+0x762D = 0x7126</div><div class='add'>+0x7630 = 0x7127</div><div class='add'>+0x7633 = 0x712C</div><div class='add'>+0x7634 = 0x554E</div><div class='add'>+0x7635 = 0x7129</div><div class='add'>+0x7638 = 0x4833</div><div class='add'>+0x763C = 0x7122</div><div class='add'>+0x763E = 0x712B</div><div class='add'>+0x763F = 0x7128</div><div class='add'>+0x7640 = 0x7125</div><div class='add'>+0x7643 = 0x712A</div><div class='add'>+0x764C = 0x3029</div><div class='add'>+0x764D = 0x712D</div><div class='add'>+0x7654 = 0x712F</div><div class='add'>+0x7656 = 0x7131</div><div class='add'>+0x765C = 0x7130</div><div class='add'>+0x765E = 0x712E</div><div class='add'>+0x7663 = 0x5122</div><div class='add'>+0x766B = 0x7132</div><div class='add'>+0x766F = 0x7133</div><div class='add'>+0x7678 = 0x396F</div><div class='add'>+0x767B = 0x3547</div><div class='add'>+0x767D = 0x3057</div><div class='add'>+0x767E = 0x3059</div><div class='add'>+0x7682 = 0x546D</div><div class='add'>+0x7684 = 0x3544</div><div class='add'>+0x7686 = 0x3D54</div><div class='add'>+0x7687 = 0x3B4A</div><div class='add'>+0x7688 = 0x7027</div><div class='add'>+0x768B = 0x385E</div><div class='add'>+0x768E = 0x7028</div><div class='add'>+0x7691 = 0x3028</div><div class='add'>+0x7693 = 0x7029</div><div class='add'>+0x7696 = 0x4D6E</div><div class='add'>+0x7699 = 0x702A</div><div class='add'>+0x76A4 = 0x702B</div><div class='add'>+0x76AE = 0x4624</div><div class='add'>+0x76B1 = 0x5665</div><div class='add'>+0x76B2 = 0x7164</div><div class='add'>+0x76B4 = 0x7165</div><div class='add'>+0x76BF = 0x4373</div><div class='add'>+0x76C2 = 0x535B</div><div class='add'>+0x76C5 = 0x5651</div><div class='add'>+0x76C6 = 0x4568</div><div class='add'>+0x76C8 = 0x532F</div><div class='add'>+0x76CA = 0x5266</div><div class='add'>+0x76CD = 0x6E41</div><div class='add'>+0x76CE = 0x303B</div><div class='add'>+0x76CF = 0x5535</div><div class='add'>+0x76D0 = 0x514E</div><div class='add'>+0x76D1 = 0x3C60</div><div class='add'>+0x76D2 = 0x3A50</div><div class='add'>+0x76D4 = 0x3F78</div><div class='add'>+0x76D6 = 0x3847</div><div class='add'>+0x76D7 = 0x3541</div><div class='add'>+0x76D8 = 0x454C</div><div class='add'>+0x76DB = 0x4A22</div><div class='add'>+0x76DF = 0x434B</div><div class='add'>+0x76E5 = 0x6E42</div><div class='add'>+0x76EE = 0x443F</div><div class='add'>+0x76EF = 0x3622</div><div class='add'>+0x76F1 = 0x6D6C</div><div class='add'>+0x76F2 = 0x4324</div><div class='add'>+0x76F4 = 0x5631</div><div class='add'>+0x76F8 = 0x4F60</div><div class='add'>+0x76F9 = 0x6D6F</div><div class='add'>+0x76FC = 0x454E</div><div class='add'>+0x76FE = 0x365C</div><div class='add'>+0x7701 = 0x4A21</div><div class='add'>+0x7704 = 0x6D6D</div><div class='add'>+0x7707 = 0x6D70</div><div class='add'>+0x7708 = 0x6D71</div><div class='add'>+0x7709 = 0x433C</div><div class='add'>+0x770B = 0x3F34</div><div class='add'>+0x770D = 0x6D6E</div><div class='add'>+0x7719 = 0x6D74</div><div class='add'>+0x771A = 0x6D72</div><div class='add'>+0x771F = 0x5566</div><div class='add'>+0x7720 = 0x435F</div><div class='add'>+0x7722 = 0x6D73</div><div class='add'>+0x7726 = 0x6D76</div><div class='add'>+0x7728 = 0x5523</div><div class='add'>+0x7729 = 0x5123</div><div class='add'>+0x772D = 0x6D75</div><div class='add'>+0x772F = 0x4350</div><div class='add'>+0x7735 = 0x6D77</div><div class='add'>+0x7736 = 0x3F74</div><div class='add'>+0x7737 = 0x3E6C</div><div class='add'>+0x7738 = 0x6D78</div><div class='add'>+0x773A = 0x4C77</div><div class='add'>+0x773C = 0x515B</div><div class='add'>+0x7740 = 0x5745</div><div class='add'>+0x7741 = 0x5576</div><div class='add'>+0x7743 = 0x6D7C</div><div class='add'>+0x7747 = 0x6D7B</div><div class='add'>+0x7750 = 0x6D79</div><div class='add'>+0x7751 = 0x6D7A</div><div class='add'>+0x775A = 0x6D7D</div><div class='add'>+0x775B = 0x3E26</div><div class='add'>+0x7761 = 0x4B2F</div><div class='add'>+0x7762 = 0x6E21</div><div class='add'>+0x7763 = 0x363D</div><div class='add'>+0x7765 = 0x6E22</div><div class='add'>+0x7766 = 0x4440</div><div class='add'>+0x7768 = 0x6D7E</div><div class='add'>+0x776B = 0x3D5E</div><div class='add'>+0x776C = 0x3247</div><div class='add'>+0x7779 = 0x3643</div><div class='add'>+0x777D = 0x6E25</div><div class='add'>+0x777E = 0x583A</div><div class='add'>+0x777F = 0x6E23</div><div class='add'>+0x7780 = 0x6E26</div><div class='add'>+0x7784 = 0x4369</div><div class='add'>+0x7785 = 0x3372</div><div class='add'>+0x778C = 0x6E27</div><div class='add'>+0x778D = 0x6E24</div><div class='add'>+0x778E = 0x4F39</div><div class='add'>+0x7791 = 0x6E28</div><div class='add'>+0x7792 = 0x4277</div><div class='add'>+0x779F = 0x6E29</div><div class='add'>+0x77A0 = 0x6E2A</div><div class='add'>+0x77A2 = 0x5E2B</div><div class='add'>+0x77A5 = 0x4633</div><div class='add'>+0x77A7 = 0x4746</div><div class='add'>+0x77A9 = 0x5675</div><div class='add'>+0x77AA = 0x3549</div><div class='add'>+0x77AC = 0x4B32</div><div class='add'>+0x77B0 = 0x6E2B</div><div class='add'>+0x77B3 = 0x4D2B</div><div class='add'>+0x77B5 = 0x6E2C</div><div class='add'>+0x77BB = 0x5530</div><div class='add'>+0x77BD = 0x6E2D</div><div class='add'>+0x77BF = 0x7644</div><div class='add'>+0x77CD = 0x5B47</div><div class='add'>+0x77D7 = 0x3423</div><div class='add'>+0x77DB = 0x432C</div><div class='add'>+0x77DC = 0x7166</div><div class='add'>+0x77E2 = 0x4A38</div><div class='add'>+0x77E3 = 0x5253</div><div class='add'>+0x77E5 = 0x562A</div><div class='add'>+0x77E7 = 0x6F72</div><div class='add'>+0x77E9 = 0x3E58</div><div class='add'>+0x77EB = 0x3D43</div><div class='add'>+0x77EC = 0x6F73</div><div class='add'>+0x77ED = 0x364C</div><div class='add'>+0x77EE = 0x302B</div><div class='add'>+0x77F3 = 0x4A2F</div><div class='add'>+0x77F6 = 0x6D36</div><div class='add'>+0x77F8 = 0x6D37</div><div class='add'>+0x77FD = 0x4E79</div><div class='add'>+0x77FE = 0x372F</div><div class='add'>+0x77FF = 0x3F73</div><div class='add'>+0x7800 = 0x6D38</div><div class='add'>+0x7801 = 0x426B</div><div class='add'>+0x7802 = 0x4930</div><div class='add'>+0x7809 = 0x6D39</div><div class='add'>+0x780C = 0x4676</div><div class='add'>+0x780D = 0x3F33</div><div class='add'>+0x7811 = 0x6D3C</div><div class='add'>+0x7812 = 0x4578</div><div class='add'>+0x7814 = 0x5150</div><div class='add'>+0x7816 = 0x5729</div><div class='add'>+0x7817 = 0x6D3A</div><div class='add'>+0x7818 = 0x6D3B</div><div class='add'>+0x781A = 0x5162</div><div class='add'>+0x781C = 0x6D3F</div><div class='add'>+0x781D = 0x6D40</div><div class='add'>+0x781F = 0x6D44</div><div class='add'>+0x7823 = 0x6D48</div><div class='add'>+0x7825 = 0x6D46</div><div class='add'>+0x7826 = 0x6D4E</div><div class='add'>+0x7827 = 0x5568</div><div class='add'>+0x7829 = 0x6D49</div><div class='add'>+0x782C = 0x6D47</div><div class='add'>+0x782D = 0x6D3E</div><div class='add'>+0x7830 = 0x4569</div><div class='add'>+0x7834 = 0x4646</div><div class='add'>+0x7837 = 0x4969</div><div class='add'>+0x7838 = 0x5452</div><div class='add'>+0x7839 = 0x6D41</div><div class='add'>+0x783A = 0x6D42</div><div class='add'>+0x783B = 0x6D43</div><div class='add'>+0x783C = 0x6D45</div><div class='add'>+0x783E = 0x4079</div><div class='add'>+0x7840 = 0x3421</div><div class='add'>+0x7845 = 0x3968</div><div class='add'>+0x7847 = 0x6D50</div><div class='add'>+0x784C = 0x6D51</div><div class='add'>+0x784E = 0x6D4A</div><div class='add'>+0x7850 = 0x6D4F</div><div class='add'>+0x7852 = 0x4E78</div><div class='add'>+0x7855 = 0x4B36</div><div class='add'>+0x7856 = 0x6D4C</div><div class='add'>+0x7857 = 0x6D4D</div><div class='add'>+0x785D = 0x4F75</div><div class='add'>+0x786A = 0x6D52</div><div class='add'>+0x786B = 0x4172</div><div class='add'>+0x786C = 0x5332</div><div class='add'>+0x786D = 0x6D4B</div><div class='add'>+0x786E = 0x4837</div><div class='add'>+0x7877 = 0x3C6F</div><div class='add'>+0x787C = 0x4570</div><div class='add'>+0x7887 = 0x6D56</div><div class='add'>+0x7889 = 0x356F</div><div class='add'>+0x788C = 0x4235</div><div class='add'>+0x788D = 0x302D</div><div class='add'>+0x788E = 0x4B69</div><div class='add'>+0x7891 = 0x312E</div><div class='add'>+0x7893 = 0x6D54</div><div class='add'>+0x7897 = 0x4D6B</div><div class='add'>+0x7898 = 0x3562</div><div class='add'>+0x789A = 0x6D55</div><div class='add'>+0x789B = 0x6D53</div><div class='add'>+0x789C = 0x6D57</div><div class='add'>+0x789F = 0x357A</div><div class='add'>+0x78A1 = 0x6D58</div><div class='add'>+0x78A3 = 0x6D59</div><div class='add'>+0x78A5 = 0x6D5C</div><div class='add'>+0x78A7 = 0x314C</div><div class='add'>+0x78B0 = 0x4576</div><div class='add'>+0x78B1 = 0x3C6E</div><div class='add'>+0x78B2 = 0x6D5A</div><div class='add'>+0x78B3 = 0x4C3C</div><div class='add'>+0x78B4 = 0x326A</div><div class='add'>+0x78B9 = 0x6D5B</div><div class='add'>+0x78BE = 0x446B</div><div class='add'>+0x78C1 = 0x3445</div><div class='add'>+0x78C5 = 0x3075</div><div class='add'>+0x78C9 = 0x6D5F</div><div class='add'>+0x78CA = 0x405A</div><div class='add'>+0x78CB = 0x3468</div><div class='add'>+0x78D0 = 0x454D</div><div class='add'>+0x78D4 = 0x6D5D</div><div class='add'>+0x78D5 = 0x3F44</div><div class='add'>+0x78D9 = 0x6D5E</div><div class='add'>+0x78E8 = 0x4425</div><div class='add'>+0x78EC = 0x6D60</div><div class='add'>+0x78F2 = 0x6D61</div><div class='add'>+0x78F4 = 0x6D63</div><div class='add'>+0x78F7 = 0x4157</div><div class='add'>+0x78FA = 0x3B47</div><div class='add'>+0x7901 = 0x3D38</div><div class='add'>+0x7905 = 0x6D62</div><div class='add'>+0x7913 = 0x6D64</div><div class='add'>+0x791E = 0x6D66</div><div class='add'>+0x7924 = 0x6D65</div><div class='add'>+0x7934 = 0x6D67</div><div class='add'>+0x793A = 0x4A3E</div><div class='add'>+0x793B = 0x6C6A</div><div class='add'>+0x793C = 0x4071</div><div class='add'>+0x793E = 0x4967</div><div class='add'>+0x7940 = 0x6C6B</div><div class='add'>+0x7941 = 0x466E</div><div class='add'>+0x7946 = 0x6C6C</div><div class='add'>+0x7948 = 0x466D</div><div class='add'>+0x7949 = 0x6C6D</div><div class='add'>+0x7953 = 0x6C70</div><div class='add'>+0x7956 = 0x5766</div><div class='add'>+0x7957 = 0x6C73</div><div class='add'>+0x795A = 0x6C71</div><div class='add'>+0x795B = 0x6C6E</div><div class='add'>+0x795C = 0x6C6F</div><div class='add'>+0x795D = 0x5723</div><div class='add'>+0x795E = 0x4971</div><div class='add'>+0x795F = 0x4B6E</div><div class='add'>+0x7960 = 0x6C74</div><div class='add'>+0x7962 = 0x6C72</div><div class='add'>+0x7965 = 0x4F69</div><div class='add'>+0x7967 = 0x6C76</div><div class='add'>+0x7968 = 0x4631</div><div class='add'>+0x796D = 0x3C40</div><div class='add'>+0x796F = 0x6C75</div><div class='add'>+0x7977 = 0x353B</div><div class='add'>+0x7978 = 0x3B76</div><div class='add'>+0x797A = 0x6C77</div><div class='add'>+0x7980 = 0x5977</div><div class='add'>+0x7981 = 0x3D7B</div><div class='add'>+0x7984 = 0x423B</div><div class='add'>+0x7985 = 0x6C78</div><div class='add'>+0x798A = 0x6C79</div><div class='add'>+0x798F = 0x3823</div><div class='add'>+0x799A = 0x6C7A</div><div class='add'>+0x79A7 = 0x6C7B</div><div class='add'>+0x79B3 = 0x6C7C</div><div class='add'>+0x79B9 = 0x536D</div><div class='add'>+0x79BA = 0x582E</div><div class='add'>+0x79BB = 0x406B</div><div class='add'>+0x79BD = 0x475D</div><div class='add'>+0x79BE = 0x3A4C</div><div class='add'>+0x79C0 = 0x5063</div><div class='add'>+0x79C1 = 0x4B3D</div><div class='add'>+0x79C3 = 0x4D3A</div><div class='add'>+0x79C6 = 0x3851</div><div class='add'>+0x79C9 = 0x317C</div><div class='add'>+0x79CB = 0x476F</div><div class='add'>+0x79CD = 0x5656</div><div class='add'>+0x79D1 = 0x3F46</div><div class='add'>+0x79D2 = 0x436B</div><div class='add'>+0x79D5 = 0x6F75</div><div class='add'>+0x79D8 = 0x4358</div><div class='add'>+0x79DF = 0x5762</div><div class='add'>+0x79E3 = 0x6F77</div><div class='add'>+0x79E4 = 0x3353</div><div class='add'>+0x79E6 = 0x4758</div><div class='add'>+0x79E7 = 0x516D</div><div class='add'>+0x79E9 = 0x5648</div><div class='add'>+0x79EB = 0x6F78</div><div class='add'>+0x79ED = 0x6F76</div><div class='add'>+0x79EF = 0x3B7D</div><div class='add'>+0x79F0 = 0x3346</div><div class='add'>+0x79F8 = 0x3D55</div><div class='add'>+0x79FB = 0x5246</div><div class='add'>+0x79FD = 0x3B60</div><div class='add'>+0x7A00 = 0x4F21</div><div class='add'>+0x7A02 = 0x6F7C</div><div class='add'>+0x7A03 = 0x6F7B</div><div class='add'>+0x7A06 = 0x6F79</div><div class='add'>+0x7A0B = 0x334C</div><div class='add'>+0x7A0D = 0x4954</div><div class='add'>+0x7A0E = 0x4B30</div><div class='add'>+0x7A14 = 0x6F7E</div><div class='add'>+0x7A17 = 0x305E</div><div class='add'>+0x7A1A = 0x5649</div><div class='add'>+0x7A1E = 0x6F7D</div><div class='add'>+0x7A20 = 0x336D</div><div class='add'>+0x7A23 = 0x7655</div><div class='add'>+0x7A33 = 0x4E48</div><div class='add'>+0x7A37 = 0x7022</div><div class='add'>+0x7A39 = 0x7021</div><div class='add'>+0x7A3B = 0x353E</div><div class='add'>+0x7A3C = 0x3C5A</div><div class='add'>+0x7A3D = 0x3B7C</div><div class='add'>+0x7A3F = 0x3865</div><div class='add'>+0x7A46 = 0x4442</div><div class='add'>+0x7A51 = 0x7023</div><div class='add'>+0x7A57 = 0x4B6B</div><div class='add'>+0x7A70 = 0x7026</div><div class='add'>+0x7A74 = 0x5128</div><div class='add'>+0x7A76 = 0x3E3F</div><div class='add'>+0x7A77 = 0x476E</div><div class='add'>+0x7A78 = 0x7136</div><div class='add'>+0x7A79 = 0x7137</div><div class='add'>+0x7A7A = 0x3F55</div><div class='add'>+0x7A7F = 0x3429</div><div class='add'>+0x7A80 = 0x7138</div><div class='add'>+0x7A81 = 0x4D3B</div><div class='add'>+0x7A83 = 0x4754</div><div class='add'>+0x7A84 = 0x552D</div><div class='add'>+0x7A86 = 0x7139</div><div class='add'>+0x7A88 = 0x713A</div><div class='add'>+0x7A8D = 0x474F</div><div class='add'>+0x7A91 = 0x5224</div><div class='add'>+0x7A92 = 0x564F</div><div class='add'>+0x7A95 = 0x713B</div><div class='add'>+0x7A96 = 0x3D51</div><div class='add'>+0x7A97 = 0x3430</div><div class='add'>+0x7A98 = 0x3E3D</div><div class='add'>+0x7A9C = 0x345C</div><div class='add'>+0x7A9D = 0x4E51</div><div class='add'>+0x7A9F = 0x3F5F</div><div class='add'>+0x7AA0 = 0x713D</div><div class='add'>+0x7AA5 = 0x3F7A</div><div class='add'>+0x7AA6 = 0x713C</div><div class='add'>+0x7AA8 = 0x713F</div><div class='add'>+0x7AAC = 0x713E</div><div class='add'>+0x7AAD = 0x7140</div><div class='add'>+0x7AB3 = 0x7141</div><div class='add'>+0x7ABF = 0x417E</div><div class='add'>+0x7ACB = 0x4122</div><div class='add'>+0x7AD6 = 0x4A7A</div><div class='add'>+0x7AD9 = 0x553E</div><div class='add'>+0x7ADE = 0x3E3A</div><div class='add'>+0x7ADF = 0x3E39</div><div class='add'>+0x7AE0 = 0x5542</div><div class='add'>+0x7AE3 = 0x3F22</div><div class='add'>+0x7AE5 = 0x4D2F</div><div class='add'>+0x7AE6 = 0x7135</div><div class='add'>+0x7AED = 0x3D5F</div><div class='add'>+0x7AEF = 0x364B</div><div class='add'>+0x7AF9 = 0x5671</div><div class='add'>+0x7AFA = 0x7343</div><div class='add'>+0x7AFD = 0x7344</div><div class='add'>+0x7AFF = 0x384D</div><div class='add'>+0x7B03 = 0x7346</div><div class='add'>+0x7B04 = 0x7347</div><div class='add'>+0x7B06 = 0x304A</div><div class='add'>+0x7B08 = 0x7345</div><div class='add'>+0x7B0A = 0x7349</div><div class='add'>+0x7B0B = 0x4B71</div><div class='add'>+0x7B0F = 0x734B</div><div class='add'>+0x7B11 = 0x5026</div><div class='add'>+0x7B14 = 0x314A</div><div class='add'>+0x7B15 = 0x7348</div><div class='add'>+0x7B19 = 0x734F</div><div class='add'>+0x7B1B = 0x3551</div><div class='add'>+0x7B1E = 0x7357</div><div class='add'>+0x7B20 = 0x7352</div><div class='add'>+0x7B24 = 0x7354</div><div class='add'>+0x7B25 = 0x7353</div><div class='add'>+0x7B26 = 0x377B</div><div class='add'>+0x7B28 = 0x313F</div><div class='add'>+0x7B2A = 0x734E</div><div class='add'>+0x7B2B = 0x734A</div><div class='add'>+0x7B2C = 0x355A</div><div class='add'>+0x7B2E = 0x7350</div><div class='add'>+0x7B31 = 0x7351</div><div class='add'>+0x7B33 = 0x7355</div><div class='add'>+0x7B38 = 0x734D</div><div class='add'>+0x7B3A = 0x3C63</div><div class='add'>+0x7B3C = 0x417D</div><div class='add'>+0x7B3E = 0x7356</div><div class='add'>+0x7B45 = 0x735A</div><div class='add'>+0x7B47 = 0x734C</div><div class='add'>+0x7B49 = 0x3548</div><div class='add'>+0x7B4B = 0x3D6E</div><div class='add'>+0x7B4C = 0x735C</div><div class='add'>+0x7B4F = 0x3724</div><div class='add'>+0x7B50 = 0x3F70</div><div class='add'>+0x7B51 = 0x567E</div><div class='add'>+0x7B52 = 0x4D32</div><div class='add'>+0x7B54 = 0x3470</div><div class='add'>+0x7B56 = 0x325F</div><div class='add'>+0x7B58 = 0x7358</div><div class='add'>+0x7B5A = 0x7359</div><div class='add'>+0x7B5B = 0x4938</div><div class='add'>+0x7B5D = 0x735D</div><div class='add'>+0x7B60 = 0x735E</div><div class='add'>+0x7B62 = 0x7361</div><div class='add'>+0x7B6E = 0x735F</div><div class='add'>+0x7B71 = 0x7363</div><div class='add'>+0x7B72 = 0x7362</div><div class='add'>+0x7B75 = 0x735B</div><div class='add'>+0x7B77 = 0x3F6A</div><div class='add'>+0x7B79 = 0x336F</div><div class='add'>+0x7B7B = 0x7360</div><div class='add'>+0x7B7E = 0x4729</div><div class='add'>+0x7B80 = 0x3C72</div><div class='add'>+0x7B85 = 0x736B</div><div class='add'>+0x7B8D = 0x393F</div><div class='add'>+0x7B90 = 0x7364</div><div class='add'>+0x7B94 = 0x322D</div><div class='add'>+0x7B95 = 0x3B7E</div><div class='add'>+0x7B97 = 0x4B63</div><div class='add'>+0x7B9C = 0x736D</div><div class='add'>+0x7B9D = 0x7369</div><div class='add'>+0x7BA1 = 0x395C</div><div class='add'>+0x7BA2 = 0x736E</div><div class='add'>+0x7BA6 = 0x7365</div><div class='add'>+0x7BA7 = 0x7366</div><div class='add'>+0x7BA8 = 0x736A</div><div class='add'>+0x7BA9 = 0x4261</div><div class='add'>+0x7BAA = 0x736C</div><div class='add'>+0x7BAB = 0x736F</div><div class='add'>+0x7BAC = 0x7368</div><div class='add'>+0x7BAD = 0x3C7D</div><div class='add'>+0x7BB1 = 0x4F64</div><div class='add'>+0x7BB4 = 0x7370</div><div class='add'>+0x7BB8 = 0x7367</div><div class='add'>+0x7BC1 = 0x7372</div><div class='add'>+0x7BC6 = 0x572D</div><div class='add'>+0x7BC7 = 0x462A</div><div class='add'>+0x7BCC = 0x7373</div><div class='add'>+0x7BD1 = 0x7371</div><div class='add'>+0x7BD3 = 0x4228</div><div class='add'>+0x7BD9 = 0x385D</div><div class='add'>+0x7BDA = 0x7375</div><div class='add'>+0x7BDD = 0x7374</div><div class='add'>+0x7BE1 = 0x345B</div><div class='add'>+0x7BE5 = 0x7376</div><div class='add'>+0x7BE6 = 0x7377</div><div class='add'>+0x7BEA = 0x7378</div><div class='add'>+0x7BEE = 0x403A</div><div class='add'>+0x7BF1 = 0x4069</div><div class='add'>+0x7BF7 = 0x4571</div><div class='add'>+0x7BFC = 0x737B</div><div class='add'>+0x7BFE = 0x737A</div><div class='add'>+0x7C07 = 0x3458</div><div class='add'>+0x7C0B = 0x737E</div><div class='add'>+0x7C0C = 0x7379</div><div class='add'>+0x7C0F = 0x737C</div><div class='add'>+0x7C16 = 0x737D</div><div class='add'>+0x7C1F = 0x7421</div><div class='add'>+0x7C26 = 0x7423</div><div class='add'>+0x7C27 = 0x3B49</div><div class='add'>+0x7C2A = 0x7422</div><div class='add'>+0x7C38 = 0x7424</div><div class='add'>+0x7C3F = 0x323E</div><div class='add'>+0x7C40 = 0x7426</div><div class='add'>+0x7C41 = 0x7425</div><div class='add'>+0x7C4D = 0x3C2E</div><div class='add'>+0x7C73 = 0x4357</div><div class='add'>+0x7C74 = 0x5961</div><div class='add'>+0x7C7B = 0x4060</div><div class='add'>+0x7C7C = 0x744C</div><div class='add'>+0x7C7D = 0x5751</div><div class='add'>+0x7C89 = 0x375B</div><div class='add'>+0x7C91 = 0x744E</div><div class='add'>+0x7C92 = 0x4123</div><div class='add'>+0x7C95 = 0x4649</div><div class='add'>+0x7C97 = 0x3456</div><div class='add'>+0x7C98 = 0x5533</div><div class='add'>+0x7C9C = 0x7450</div><div class='add'>+0x7C9D = 0x744F</div><div class='add'>+0x7C9E = 0x7451</div><div class='add'>+0x7C9F = 0x4B5A</div><div class='add'>+0x7CA2 = 0x7452</div><div class='add'>+0x7CA4 = 0x5441</div><div class='add'>+0x7CA5 = 0x5660</div><div class='add'>+0x7CAA = 0x3760</div><div class='add'>+0x7CAE = 0x4138</div><div class='add'>+0x7CB1 = 0x413B</div><div class='add'>+0x7CB2 = 0x7453</div><div class='add'>+0x7CB3 = 0x3E2C</div><div class='add'>+0x7CB9 = 0x3462</div><div class='add'>+0x7CBC = 0x7454</div><div class='add'>+0x7CBD = 0x7455</div><div class='add'>+0x7CBE = 0x3E2B</div><div class='add'>+0x7CC1 = 0x7456</div><div class='add'>+0x7CC5 = 0x745B</div><div class='add'>+0x7CC7 = 0x7457</div><div class='add'>+0x7CC8 = 0x745A</div><div class='add'>+0x7CCA = 0x3A7D</div><div class='add'>+0x7CCC = 0x7458</div><div class='add'>+0x7CCD = 0x7459</div><div class='add'>+0x7CD5 = 0x3862</div><div class='add'>+0x7CD6 = 0x4C47</div><div class='add'>+0x7CD7 = 0x745C</div><div class='add'>+0x7CD9 = 0x325A</div><div class='add'>+0x7CDC = 0x4353</div><div class='add'>+0x7CDF = 0x5463</div><div class='add'>+0x7CE0 = 0x3F37</div><div class='add'>+0x7CE8 = 0x745D</div><div class='add'>+0x7CEF = 0x4534</div><div class='add'>+0x7CF8 = 0x7469</div><div class='add'>+0x7CFB = 0x4F35</div><div class='add'>+0x7D0A = 0x4E49</div><div class='add'>+0x7D20 = 0x4B58</div><div class='add'>+0x7D22 = 0x4B77</div><div class='add'>+0x7D27 = 0x3D74</div><div class='add'>+0x7D2B = 0x574F</div><div class='add'>+0x7D2F = 0x405B</div><div class='add'>+0x7D6E = 0x5075</div><div class='add'>+0x7D77 = 0x746A</div><div class='add'>+0x7DA6 = 0x746B</div><div class='add'>+0x7DAE = 0x746C</div><div class='add'>+0x7E3B = 0x7763</div><div class='add'>+0x7E41 = 0x3731</div><div class='add'>+0x7E47 = 0x746D</div><div class='add'>+0x7E82 = 0x576B</div><div class='add'>+0x7E9B = 0x746E</div><div class='add'>+0x7E9F = 0x6679</div><div class='add'>+0x7EA0 = 0x3E40</div><div class='add'>+0x7EA1 = 0x667A</div><div class='add'>+0x7EA2 = 0x3A6C</div><div class='add'>+0x7EA3 = 0x667B</div><div class='add'>+0x7EA4 = 0x4F4B</div><div class='add'>+0x7EA5 = 0x667C</div><div class='add'>+0x7EA6 = 0x543C</div><div class='add'>+0x7EA7 = 0x3C36</div><div class='add'>+0x7EA8 = 0x667D</div><div class='add'>+0x7EA9 = 0x667E</div><div class='add'>+0x7EAA = 0x3C4D</div><div class='add'>+0x7EAB = 0x4852</div><div class='add'>+0x7EAC = 0x4E33</div><div class='add'>+0x7EAD = 0x6721</div><div class='add'>+0x7EAF = 0x343F</div><div class='add'>+0x7EB0 = 0x6722</div><div class='add'>+0x7EB1 = 0x4934</div><div class='add'>+0x7EB2 = 0x3859</div><div class='add'>+0x7EB3 = 0x4449</div><div class='add'>+0x7EB5 = 0x575D</div><div class='add'>+0x7EB6 = 0x425A</div><div class='add'>+0x7EB7 = 0x3757</div><div class='add'>+0x7EB8 = 0x563D</div><div class='add'>+0x7EB9 = 0x4E46</div><div class='add'>+0x7EBA = 0x3744</div><div class='add'>+0x7EBD = 0x4526</div><div class='add'>+0x7EBE = 0x6723</div><div class='add'>+0x7EBF = 0x4F5F</div><div class='add'>+0x7EC0 = 0x6724</div><div class='add'>+0x7EC1 = 0x6725</div><div class='add'>+0x7EC2 = 0x6726</div><div class='add'>+0x7EC3 = 0x4137</div><div class='add'>+0x7EC4 = 0x5769</div><div class='add'>+0x7EC5 = 0x4970</div><div class='add'>+0x7EC6 = 0x4F38</div><div class='add'>+0x7EC7 = 0x562F</div><div class='add'>+0x7EC8 = 0x5655</div><div class='add'>+0x7EC9 = 0x6727</div><div class='add'>+0x7ECA = 0x306D</div><div class='add'>+0x7ECB = 0x6728</div><div class='add'>+0x7ECC = 0x6729</div><div class='add'>+0x7ECD = 0x495C</div><div class='add'>+0x7ECE = 0x526F</div><div class='add'>+0x7ECF = 0x3E2D</div><div class='add'>+0x7ED0 = 0x672A</div><div class='add'>+0x7ED1 = 0x3073</div><div class='add'>+0x7ED2 = 0x485E</div><div class='add'>+0x7ED3 = 0x3D61</div><div class='add'>+0x7ED4 = 0x672B</div><div class='add'>+0x7ED5 = 0x4846</div><div class='add'>+0x7ED7 = 0x672C</div><div class='add'>+0x7ED8 = 0x3B66</div><div class='add'>+0x7ED9 = 0x3878</div><div class='add'>+0x7EDA = 0x5124</div><div class='add'>+0x7EDB = 0x672D</div><div class='add'>+0x7EDC = 0x4267</div><div class='add'>+0x7EDD = 0x3E78</div><div class='add'>+0x7EDE = 0x3D4A</div><div class='add'>+0x7EDF = 0x4D33</div><div class='add'>+0x7EE0 = 0x672E</div><div class='add'>+0x7EE1 = 0x672F</div><div class='add'>+0x7EE2 = 0x3E6E</div><div class='add'>+0x7EE3 = 0x5065</div><div class='add'>+0x7EE5 = 0x4B67</div><div class='add'>+0x7EE6 = 0x4C50</div><div class='add'>+0x7EE7 = 0x3C4C</div><div class='add'>+0x7EE8 = 0x6730</div><div class='add'>+0x7EE9 = 0x3C28</div><div class='add'>+0x7EEA = 0x5077</div><div class='add'>+0x7EEB = 0x6731</div><div class='add'>+0x7EED = 0x5078</div><div class='add'>+0x7EEE = 0x6732</div><div class='add'>+0x7EEF = 0x6733</div><div class='add'>+0x7EF0 = 0x3442</div><div class='add'>+0x7EF1 = 0x6734</div><div class='add'>+0x7EF2 = 0x6735</div><div class='add'>+0x7EF3 = 0x497E</div><div class='add'>+0x7EF4 = 0x4E2C</div><div class='add'>+0x7EF5 = 0x4360</div><div class='add'>+0x7EF6 = 0x6737</div><div class='add'>+0x7EF7 = 0x3141</div><div class='add'>+0x7EF8 = 0x3371</div><div class='add'>+0x7EFA = 0x6738</div><div class='add'>+0x7EFB = 0x6739</div><div class='add'>+0x7EFC = 0x575B</div><div class='add'>+0x7EFD = 0x5540</div><div class='add'>+0x7EFE = 0x673A</div><div class='add'>+0x7EFF = 0x424C</div><div class='add'>+0x7F00 = 0x573A</div><div class='add'>+0x7F01 = 0x673B</div><div class='add'>+0x7F02 = 0x673C</div><div class='add'>+0x7F03 = 0x673D</div><div class='add'>+0x7F04 = 0x3C6A</div><div class='add'>+0x7F05 = 0x4365</div><div class='add'>+0x7F06 = 0x4042</div><div class='add'>+0x7F07 = 0x673E</div><div class='add'>+0x7F08 = 0x673F</div><div class='add'>+0x7F09 = 0x3C29</div><div class='add'>+0x7F0B = 0x6740</div><div class='add'>+0x7F0C = 0x6741</div><div class='add'>+0x7F0D = 0x6736</div><div class='add'>+0x7F0E = 0x3650</div><div class='add'>+0x7F0F = 0x6742</div><div class='add'>+0x7F11 = 0x6743</div><div class='add'>+0x7F12 = 0x6744</div><div class='add'>+0x7F13 = 0x3B3A</div><div class='add'>+0x7F14 = 0x355E</div><div class='add'>+0x7F15 = 0x4246</div><div class='add'>+0x7F16 = 0x3160</div><div class='add'>+0x7F17 = 0x6745</div><div class='add'>+0x7F18 = 0x5435</div><div class='add'>+0x7F19 = 0x6746</div><div class='add'>+0x7F1A = 0x383F</div><div class='add'>+0x7F1B = 0x6748</div><div class='add'>+0x7F1C = 0x6747</div><div class='add'>+0x7F1D = 0x376C</div><div class='add'>+0x7F1F = 0x6749</div><div class='add'>+0x7F20 = 0x3278</div><div class='add'>+0x7F21 = 0x674A</div><div class='add'>+0x7F22 = 0x674B</div><div class='add'>+0x7F23 = 0x674C</div><div class='add'>+0x7F24 = 0x674D</div><div class='add'>+0x7F25 = 0x674E</div><div class='add'>+0x7F26 = 0x674F</div><div class='add'>+0x7F27 = 0x6750</div><div class='add'>+0x7F28 = 0x5327</div><div class='add'>+0x7F29 = 0x4B75</div><div class='add'>+0x7F2A = 0x6751</div><div class='add'>+0x7F2B = 0x6752</div><div class='add'>+0x7F2C = 0x6753</div><div class='add'>+0x7F2D = 0x6754</div><div class='add'>+0x7F2E = 0x4949</div><div class='add'>+0x7F2F = 0x6755</div><div class='add'>+0x7F30 = 0x6756</div><div class='add'>+0x7F31 = 0x6757</div><div class='add'>+0x7F32 = 0x6758</div><div class='add'>+0x7F33 = 0x6759</div><div class='add'>+0x7F34 = 0x3D49</div><div class='add'>+0x7F35 = 0x675A</div><div class='add'>+0x7F36 = 0x733E</div><div class='add'>+0x7F38 = 0x3857</div><div class='add'>+0x7F3A = 0x4831</div><div class='add'>+0x7F42 = 0x733F</div><div class='add'>+0x7F44 = 0x7340</div><div class='add'>+0x7F45 = 0x7341</div><div class='add'>+0x7F50 = 0x395E</div><div class='add'>+0x7F51 = 0x4D78</div><div class='add'>+0x7F54 = 0x5868</div><div class='add'>+0x7F55 = 0x3A31</div><div class='add'>+0x7F57 = 0x425E</div><div class='add'>+0x7F58 = 0x6E37</div><div class='add'>+0x7F5A = 0x3723</div><div class='add'>+0x7F5F = 0x6E39</div><div class='add'>+0x7F61 = 0x6E38</div><div class='add'>+0x7F62 = 0x3055</div><div class='add'>+0x7F68 = 0x6E3B</div><div class='add'>+0x7F69 = 0x5556</div><div class='add'>+0x7F6A = 0x576F</div><div class='add'>+0x7F6E = 0x5643</div><div class='add'>+0x7F71 = 0x6E3D</div><div class='add'>+0x7F72 = 0x4A70</div><div class='add'>+0x7F74 = 0x6E3C</div><div class='add'>+0x7F79 = 0x6E3E</div><div class='add'>+0x7F7E = 0x6E40</div><div class='add'>+0x7F81 = 0x6E3F</div><div class='add'>+0x7F8A = 0x5172</div><div class='add'>+0x7F8C = 0x473C</div><div class='add'>+0x7F8E = 0x4340</div><div class='add'>+0x7F94 = 0x3861</div><div class='add'>+0x7F9A = 0x4167</div><div class='add'>+0x7F9D = 0x7446</div><div class='add'>+0x7F9E = 0x505F</div><div class='add'>+0x7F9F = 0x7447</div><div class='add'>+0x7FA1 = 0x4F5B</div><div class='add'>+0x7FA4 = 0x483A</div><div class='add'>+0x7FA7 = 0x7448</div><div class='add'>+0x7FAF = 0x7449</div><div class='add'>+0x7FB0 = 0x744A</div><div class='add'>+0x7FB2 = 0x744B</div><div class='add'>+0x7FB8 = 0x597A</div><div class='add'>+0x7FB9 = 0x387E</div><div class='add'>+0x7FBC = 0x6571</div><div class='add'>+0x7FBD = 0x5370</div><div class='add'>+0x7FBF = 0x7460</div><div class='add'>+0x7FC1 = 0x4E4C</div><div class='add'>+0x7FC5 = 0x3361</div><div class='add'>+0x7FCA = 0x7134</div><div class='add'>+0x7FCC = 0x526E</div><div class='add'>+0x7FCE = 0x7461</div><div class='add'>+0x7FD4 = 0x4F68</div><div class='add'>+0x7FD5 = 0x7462</div><div class='add'>+0x7FD8 = 0x474C</div><div class='add'>+0x7FDF = 0x3554</div><div class='add'>+0x7FE0 = 0x3464</div><div class='add'>+0x7FE1 = 0x7464</div><div class='add'>+0x7FE5 = 0x7463</div><div class='add'>+0x7FE6 = 0x7465</div><div class='add'>+0x7FE9 = 0x7466</div><div class='add'>+0x7FEE = 0x7467</div><div class='add'>+0x7FF0 = 0x3A32</div><div class='add'>+0x7FF1 = 0x303F</div><div class='add'>+0x7FF3 = 0x7468</div><div class='add'>+0x7FFB = 0x372D</div><div class='add'>+0x7FFC = 0x526D</div><div class='add'>+0x8000 = 0x522B</div><div class='add'>+0x8001 = 0x404F</div><div class='add'>+0x8003 = 0x3F3C</div><div class='add'>+0x8004 = 0x6B23</div><div class='add'>+0x8005 = 0x555F</div><div class='add'>+0x8006 = 0x6A48</div><div class='add'>+0x800B = 0x7173</div><div class='add'>+0x800C = 0x3678</div><div class='add'>+0x800D = 0x4B23</div><div class='add'>+0x8010 = 0x444D</div><div class='add'>+0x8012 = 0x7167</div><div class='add'>+0x8014 = 0x7168</div><div class='add'>+0x8015 = 0x387B</div><div class='add'>+0x8016 = 0x7169</div><div class='add'>+0x8017 = 0x3A44</div><div class='add'>+0x8018 = 0x5445</div><div class='add'>+0x8019 = 0x3052</div><div class='add'>+0x801C = 0x716A</div><div class='add'>+0x8020 = 0x716B</div><div class='add'>+0x8022 = 0x716C</div><div class='add'>+0x8025 = 0x716D</div><div class='add'>+0x8026 = 0x716E</div><div class='add'>+0x8027 = 0x716F</div><div class='add'>+0x8028 = 0x7171</div><div class='add'>+0x8029 = 0x7170</div><div class='add'>+0x802A = 0x4555</div><div class='add'>+0x8031 = 0x7172</div><div class='add'>+0x8033 = 0x367A</div><div class='add'>+0x8035 = 0x7174</div><div class='add'>+0x8036 = 0x522E</div><div class='add'>+0x8037 = 0x5E47</div><div class='add'>+0x8038 = 0x4B4A</div><div class='add'>+0x803B = 0x335C</div><div class='add'>+0x803D = 0x3522</div><div class='add'>+0x803F = 0x3922</div><div class='add'>+0x8042 = 0x4474</div><div class='add'>+0x8043 = 0x7175</div><div class='add'>+0x8046 = 0x7176</div><div class='add'>+0x804A = 0x4144</div><div class='add'>+0x804B = 0x417B</div><div class='add'>+0x804C = 0x5630</div><div class='add'>+0x804D = 0x7177</div><div class='add'>+0x8052 = 0x7178</div><div class='add'>+0x8054 = 0x412A</div><div class='add'>+0x8058 = 0x4638</div><div class='add'>+0x805A = 0x3E5B</div><div class='add'>+0x8069 = 0x7179</div><div class='add'>+0x806A = 0x344F</div><div class='add'>+0x8071 = 0x717A</div><div class='add'>+0x807F = 0x6D32</div><div class='add'>+0x8080 = 0x6D31</div><div class='add'>+0x8083 = 0x4B60</div><div class='add'>+0x8084 = 0x525E</div><div class='add'>+0x8086 = 0x4B41</div><div class='add'>+0x8087 = 0x5558</div><div class='add'>+0x8089 = 0x4862</div><div class='add'>+0x808B = 0x405F</div><div class='add'>+0x808C = 0x3C21</div><div class='add'>+0x8093 = 0x6B41</div><div class='add'>+0x8096 = 0x5024</div><div class='add'>+0x8098 = 0x5662</div><div class='add'>+0x809A = 0x3647</div><div class='add'>+0x809B = 0x3858</div><div class='add'>+0x809C = 0x6B40</div><div class='add'>+0x809D = 0x384E</div><div class='add'>+0x809F = 0x6B3F</div><div class='add'>+0x80A0 = 0x3326</div><div class='add'>+0x80A1 = 0x3949</div><div class='add'>+0x80A2 = 0x562B</div><div class='add'>+0x80A4 = 0x3774</div><div class='add'>+0x80A5 = 0x374A</div><div class='add'>+0x80A9 = 0x3C67</div><div class='add'>+0x80AA = 0x373E</div><div class='add'>+0x80AB = 0x6B46</div><div class='add'>+0x80AD = 0x6B47</div><div class='add'>+0x80AE = 0x3039</div><div class='add'>+0x80AF = 0x3F4F</div><div class='add'>+0x80B1 = 0x6B45</div><div class='add'>+0x80B2 = 0x537D</div><div class='add'>+0x80B4 = 0x6B48</div><div class='add'>+0x80B7 = 0x6B49</div><div class='add'>+0x80BA = 0x374E</div><div class='add'>+0x80BC = 0x6B42</div><div class='add'>+0x80BD = 0x6B44</div><div class='add'>+0x80BE = 0x4976</div><div class='add'>+0x80BF = 0x5657</div><div class='add'>+0x80C0 = 0x554D</div><div class='add'>+0x80C1 = 0x5032</div><div class='add'>+0x80C2 = 0x6B4F</div><div class='add'>+0x80C3 = 0x4E38</div><div class='add'>+0x80C4 = 0x6B50</div><div class='add'>+0x80C6 = 0x3528</div><div class='add'>+0x80CC = 0x3133</div><div class='add'>+0x80CD = 0x6B52</div><div class='add'>+0x80CE = 0x4C25</div><div class='add'>+0x80D6 = 0x4556</div><div class='add'>+0x80D7 = 0x6B53</div><div class='add'>+0x80D9 = 0x6B51</div><div class='add'>+0x80DA = 0x455F</div><div class='add'>+0x80DB = 0x6B4E</div><div class='add'>+0x80DC = 0x4A24</div><div class='add'>+0x80DD = 0x6B55</div><div class='add'>+0x80DE = 0x307B</div><div class='add'>+0x80E1 = 0x3A7A</div><div class='add'>+0x80E4 = 0x5837</div><div class='add'>+0x80E5 = 0x7163</div><div class='add'>+0x80E7 = 0x6B4A</div><div class='add'>+0x80E8 = 0x6B4B</div><div class='add'>+0x80E9 = 0x6B4C</div><div class='add'>+0x80EA = 0x6B4D</div><div class='add'>+0x80EB = 0x6B56</div><div class='add'>+0x80EC = 0x6640</div><div class='add'>+0x80ED = 0x6B59</div><div class='add'>+0x80EF = 0x3F68</div><div class='add'>+0x80F0 = 0x5248</div><div class='add'>+0x80F1 = 0x6B57</div><div class='add'>+0x80F2 = 0x6B5C</div><div class='add'>+0x80F3 = 0x386C</div><div class='add'>+0x80F4 = 0x6B58</div><div class='add'>+0x80F6 = 0x3D3A</div><div class='add'>+0x80F8 = 0x5058</div><div class='add'>+0x80FA = 0x3037</div><div class='add'>+0x80FC = 0x6B5D</div><div class='add'>+0x80FD = 0x445C</div><div class='add'>+0x8102 = 0x562C</div><div class='add'>+0x8106 = 0x3460</div><div class='add'>+0x8109 = 0x4276</div><div class='add'>+0x810A = 0x3C39</div><div class='add'>+0x810D = 0x6B5A</div><div class='add'>+0x810E = 0x6B5B</div><div class='add'>+0x810F = 0x5460</div><div class='add'>+0x8110 = 0x466A</div><div class='add'>+0x8111 = 0x4454</div><div class='add'>+0x8112 = 0x6B5F</div><div class='add'>+0x8113 = 0x4527</div><div class='add'>+0x8114 = 0x5975</div><div class='add'>+0x8116 = 0x3231</div><div class='add'>+0x8118 = 0x6B64</div><div class='add'>+0x811A = 0x3D45</div><div class='add'>+0x811E = 0x6B62</div><div class='add'>+0x812C = 0x6B63</div><div class='add'>+0x812F = 0x382C</div><div class='add'>+0x8131 = 0x4D51</div><div class='add'>+0x8132 = 0x6B65</div><div class='add'>+0x8136 = 0x6B61</div><div class='add'>+0x8138 = 0x4133</div><div class='add'>+0x813E = 0x4622</div><div class='add'>+0x8146 = 0x4C73</div><div class='add'>+0x8148 = 0x6B66</div><div class='add'>+0x814A = 0x4030</div><div class='add'>+0x814B = 0x5238</div><div class='add'>+0x814C = 0x6B67</div><div class='add'>+0x8150 = 0x382F</div><div class='add'>+0x8151 = 0x382D</div><div class='add'>+0x8153 = 0x6B68</div><div class='add'>+0x8154 = 0x473B</div><div class='add'>+0x8155 = 0x4D73</div><div class='add'>+0x8159 = 0x6B6A</div><div class='add'>+0x815A = 0x6B6B</div><div class='add'>+0x8160 = 0x6B6D</div><div class='add'>+0x8165 = 0x5048</div><div class='add'>+0x8167 = 0x6B72</div><div class='add'>+0x8169 = 0x6B6E</div><div class='add'>+0x816D = 0x6B71</div><div class='add'>+0x816E = 0x4879</div><div class='add'>+0x8170 = 0x517C</div><div class='add'>+0x8171 = 0x6B6C</div><div class='add'>+0x8174 = 0x6B69</div><div class='add'>+0x8179 = 0x3839</div><div class='add'>+0x817A = 0x4F59</div><div class='add'>+0x817B = 0x4465</div><div class='add'>+0x817C = 0x6B6F</div><div class='add'>+0x817D = 0x6B70</div><div class='add'>+0x817E = 0x4C5A</div><div class='add'>+0x817F = 0x4D48</div><div class='add'>+0x8180 = 0x3072</div><div class='add'>+0x8182 = 0x6B76</div><div class='add'>+0x8188 = 0x6B75</div><div class='add'>+0x818A = 0x3232</div><div class='add'>+0x818F = 0x3860</div><div class='add'>+0x8191 = 0x6B77</div><div class='add'>+0x8198 = 0x316C</div><div class='add'>+0x819B = 0x4C45</div><div class='add'>+0x819C = 0x4424</div><div class='add'>+0x819D = 0x4F25</div><div class='add'>+0x81A3 = 0x6B79</div><div class='add'>+0x81A6 = 0x6C22</div><div class='add'>+0x81A8 = 0x4572</div><div class='add'>+0x81AA = 0x6B7A</div><div class='add'>+0x81B3 = 0x4945</div><div class='add'>+0x81BA = 0x625F</div><div class='add'>+0x81BB = 0x6B7E</div><div class='add'>+0x81C0 = 0x4D4E</div><div class='add'>+0x81C1 = 0x6C21</div><div class='add'>+0x81C2 = 0x315B</div><div class='add'>+0x81C3 = 0x5337</div><div class='add'>+0x81C6 = 0x525C</div><div class='add'>+0x81CA = 0x6B7D</div><div class='add'>+0x81CC = 0x6B7B</div><div class='add'>+0x81E3 = 0x333C</div><div class='add'>+0x81E7 = 0x6A30</div><div class='add'>+0x81EA = 0x5754</div><div class='add'>+0x81EC = 0x742B</div><div class='add'>+0x81ED = 0x3374</div><div class='add'>+0x81F3 = 0x5641</div><div class='add'>+0x81F4 = 0x5642</div><div class='add'>+0x81FB = 0x5569</div><div class='add'>+0x81FC = 0x3E4A</div><div class='add'>+0x81FE = 0x7427</div><div class='add'>+0x8200 = 0x5228</div><div class='add'>+0x8201 = 0x7428</div><div class='add'>+0x8202 = 0x7429</div><div class='add'>+0x8204 = 0x742A</div><div class='add'>+0x8205 = 0x3E4B</div><div class='add'>+0x8206 = 0x535F</div><div class='add'>+0x820C = 0x4960</div><div class='add'>+0x820D = 0x4961</div><div class='add'>+0x8210 = 0x7342</div><div class='add'>+0x8212 = 0x4A66</div><div class='add'>+0x8214 = 0x4C72</div><div class='add'>+0x821B = 0x6236</div><div class='add'>+0x821C = 0x4B34</div><div class='add'>+0x821E = 0x4E68</div><div class='add'>+0x821F = 0x565B</div><div class='add'>+0x8221 = 0x742D</div><div class='add'>+0x8222 = 0x742E</div><div class='add'>+0x8223 = 0x742F</div><div class='add'>+0x8228 = 0x7432</div><div class='add'>+0x822A = 0x3A3D</div><div class='add'>+0x822B = 0x7433</div><div class='add'>+0x822C = 0x3063</div><div class='add'>+0x822D = 0x7430</div><div class='add'>+0x822F = 0x7431</div><div class='add'>+0x8230 = 0x3D22</div><div class='add'>+0x8231 = 0x3255</div><div class='add'>+0x8233 = 0x7436</div><div class='add'>+0x8234 = 0x7437</div><div class='add'>+0x8235 = 0x3666</div><div class='add'>+0x8236 = 0x3230</div><div class='add'>+0x8237 = 0x4F4F</div><div class='add'>+0x8238 = 0x7434</div><div class='add'>+0x8239 = 0x342C</div><div class='add'>+0x823B = 0x7435</div><div class='add'>+0x823E = 0x7438</div><div class='add'>+0x8244 = 0x7439</div><div class='add'>+0x8247 = 0x4D27</div><div class='add'>+0x8249 = 0x743A</div><div class='add'>+0x824B = 0x743B</div><div class='add'>+0x824F = 0x743C</div><div class='add'>+0x8258 = 0x4B52</div><div class='add'>+0x825A = 0x743D</div><div class='add'>+0x825F = 0x743E</div><div class='add'>+0x8268 = 0x743F</div><div class='add'>+0x826E = 0x745E</div><div class='add'>+0x826F = 0x413C</div><div class='add'>+0x8270 = 0x3C68</div><div class='add'>+0x8272 = 0x492B</div><div class='add'>+0x8273 = 0x515E</div><div class='add'>+0x8274 = 0x6575</div><div class='add'>+0x8279 = 0x5C33</div><div class='add'>+0x827A = 0x5255</div><div class='add'>+0x827D = 0x5C34</div><div class='add'>+0x827E = 0x302C</div><div class='add'>+0x827F = 0x5C35</div><div class='add'>+0x8282 = 0x3D5A</div><div class='add'>+0x8284 = 0x5C39</div><div class='add'>+0x8288 = 0x5842</div><div class='add'>+0x828A = 0x5C37</div><div class='add'>+0x828B = 0x5373</div><div class='add'>+0x828D = 0x4956</div><div class='add'>+0x828E = 0x5C3A</div><div class='add'>+0x828F = 0x5C36</div><div class='add'>+0x8291 = 0x5C3B</div><div class='add'>+0x8292 = 0x4322</div><div class='add'>+0x8297 = 0x5C3C</div><div class='add'>+0x8298 = 0x5C45</div><div class='add'>+0x8299 = 0x5C3D</div><div class='add'>+0x829C = 0x4E5F</div><div class='add'>+0x829D = 0x5625</div><div class='add'>+0x829F = 0x5C4F</div><div class='add'>+0x82A1 = 0x5C4D</div><div class='add'>+0x82A4 = 0x5C52</div><div class='add'>+0x82A5 = 0x3D66</div><div class='add'>+0x82A6 = 0x422B</div><div class='add'>+0x82A8 = 0x5C38</div><div class='add'>+0x82A9 = 0x5C4B</div><div class='add'>+0x82AA = 0x5C4E</div><div class='add'>+0x82AB = 0x5C3E</div><div class='add'>+0x82AC = 0x3752</div><div class='add'>+0x82AD = 0x3045</div><div class='add'>+0x82AE = 0x5C47</div><div class='add'>+0x82AF = 0x503E</div><div class='add'>+0x82B0 = 0x5C41</div><div class='add'>+0x82B1 = 0x3B28</div><div class='add'>+0x82B3 = 0x373C</div><div class='add'>+0x82B4 = 0x5C4C</div><div class='add'>+0x82B7 = 0x5C46</div><div class='add'>+0x82B8 = 0x5C3F</div><div class='add'>+0x82B9 = 0x475B</div><div class='add'>+0x82BD = 0x513F</div><div class='add'>+0x82BE = 0x5C40</div><div class='add'>+0x82C1 = 0x5C4A</div><div class='add'>+0x82C4 = 0x5C50</div><div class='add'>+0x82C7 = 0x4E2D</div><div class='add'>+0x82C8 = 0x5C42</div><div class='add'>+0x82CA = 0x5C43</div><div class='add'>+0x82CB = 0x5C48</div><div class='add'>+0x82CC = 0x5C49</div><div class='add'>+0x82CD = 0x3254</div><div class='add'>+0x82CE = 0x5C51</div><div class='add'>+0x82CF = 0x4B55</div><div class='add'>+0x82D1 = 0x5437</div><div class='add'>+0x82D2 = 0x5C5B</div><div class='add'>+0x82D3 = 0x5C5F</div><div class='add'>+0x82D4 = 0x4C26</div><div class='add'>+0x82D5 = 0x5C66</div><div class='add'>+0x82D7 = 0x4367</div><div class='add'>+0x82D8 = 0x5C5C</div><div class='add'>+0x82DB = 0x3F41</div><div class='add'>+0x82DC = 0x5C59</div><div class='add'>+0x82DE = 0x307A</div><div class='add'>+0x82DF = 0x3936</div><div class='add'>+0x82E0 = 0x5C65</div><div class='add'>+0x82E1 = 0x5C53</div><div class='add'>+0x82E3 = 0x5C44</div><div class='add'>+0x82E4 = 0x5C56</div><div class='add'>+0x82E5 = 0x4874</div><div class='add'>+0x82E6 = 0x3F60</div><div class='add'>+0x82EB = 0x493B</div><div class='add'>+0x82EF = 0x313D</div><div class='add'>+0x82F1 = 0x5322</div><div class='add'>+0x82F4 = 0x5C5A</div><div class='add'>+0x82F7 = 0x5C55</div><div class='add'>+0x82F9 = 0x463B</div><div class='add'>+0x82FB = 0x5C5E</div><div class='add'>+0x8301 = 0x5742</div><div class='add'>+0x8302 = 0x432F</div><div class='add'>+0x8303 = 0x3736</div><div class='add'>+0x8304 = 0x4751</div><div class='add'>+0x8305 = 0x4329</div><div class='add'>+0x8306 = 0x5C62</div><div class='add'>+0x8307 = 0x5C58</div><div class='add'>+0x8308 = 0x5C6B</div><div class='add'>+0x8309 = 0x5C54</div><div class='add'>+0x830C = 0x5C5D</div><div class='add'>+0x830E = 0x3E25</div><div class='add'>+0x830F = 0x5C57</div><div class='add'>+0x8311 = 0x5C60</div><div class='add'>+0x8314 = 0x5C63</div><div class='add'>+0x8315 = 0x5C64</div><div class='add'>+0x8317 = 0x5C78</div><div class='add'>+0x831A = 0x5C61</div><div class='add'>+0x831B = 0x5D22</div><div class='add'>+0x831C = 0x5C67</div><div class='add'>+0x8327 = 0x3C6B</div><div class='add'>+0x8328 = 0x3444</div><div class='add'>+0x832B = 0x4323</div><div class='add'>+0x832C = 0x3267</div><div class='add'>+0x832D = 0x5C7A</div><div class='add'>+0x832F = 0x5C72</div><div class='add'>+0x8331 = 0x5C6F</div><div class='add'>+0x8333 = 0x5C7C</div><div class='add'>+0x8334 = 0x5C6E</div><div class='add'>+0x8335 = 0x5270</div><div class='add'>+0x8336 = 0x3268</div><div class='add'>+0x8338 = 0x4857</div><div class='add'>+0x8339 = 0x4863</div><div class='add'>+0x833A = 0x5C7B</div><div class='add'>+0x833C = 0x5C6D</div><div class='add'>+0x8340 = 0x5C77</div><div class='add'>+0x8343 = 0x5C75</div><div class='add'>+0x8346 = 0x3E23</div><div class='add'>+0x8347 = 0x5C74</div><div class='add'>+0x8349 = 0x325D</div><div class='add'>+0x834F = 0x5C73</div><div class='add'>+0x8350 = 0x3C76</div><div class='add'>+0x8351 = 0x5C68</div><div class='add'>+0x8352 = 0x3B44</div><div class='add'>+0x8354 = 0x4073</div><div class='add'>+0x835A = 0x3C54</div><div class='add'>+0x835B = 0x5C69</div><div class='add'>+0x835C = 0x5C6A</div><div class='add'>+0x835E = 0x5C71</div><div class='add'>+0x835F = 0x5C76</div><div class='add'>+0x8360 = 0x5C79</div><div class='add'>+0x8361 = 0x3534</div><div class='add'>+0x8363 = 0x4859</div><div class='add'>+0x8364 = 0x3B67</div><div class='add'>+0x8365 = 0x5C7E</div><div class='add'>+0x8366 = 0x5C7D</div><div class='add'>+0x8367 = 0x532B</div><div class='add'>+0x8368 = 0x5D21</div><div class='add'>+0x8369 = 0x5D23</div><div class='add'>+0x836A = 0x5D25</div><div class='add'>+0x836B = 0x5271</div><div class='add'>+0x836C = 0x5D24</div><div class='add'>+0x836D = 0x5D26</div><div class='add'>+0x836E = 0x5D27</div><div class='add'>+0x836F = 0x5229</div><div class='add'>+0x8377 = 0x3A49</div><div class='add'>+0x8378 = 0x5D29</div><div class='add'>+0x837B = 0x5D36</div><div class='add'>+0x837C = 0x5D31</div><div class='add'>+0x837D = 0x5D34</div><div class='add'>+0x8385 = 0x5D30</div><div class='add'>+0x8386 = 0x464E</div><div class='add'>+0x8389 = 0x4072</div><div class='add'>+0x838E = 0x492F</div><div class='add'>+0x8392 = 0x5C6C</div><div class='add'>+0x8393 = 0x5D2E</div><div class='add'>+0x8398 = 0x5D37</div><div class='add'>+0x839B = 0x5C70</div><div class='add'>+0x839C = 0x5D2F</div><div class='add'>+0x839E = 0x5D38</div><div class='add'>+0x83A0 = 0x5D2C</div><div class='add'>+0x83A8 = 0x5D39</div><div class='add'>+0x83A9 = 0x5D33</div><div class='add'>+0x83AA = 0x5D2D</div><div class='add'>+0x83AB = 0x442A</div><div class='add'>+0x83B0 = 0x5D28</div><div class='add'>+0x83B1 = 0x4033</div><div class='add'>+0x83B2 = 0x412B</div><div class='add'>+0x83B3 = 0x5D2A</div><div class='add'>+0x83B4 = 0x5D2B</div><div class='add'>+0x83B6 = 0x5D32</div><div class='add'>+0x83B7 = 0x3B71</div><div class='add'>+0x83B8 = 0x5D35</div><div class='add'>+0x83B9 = 0x5328</div><div class='add'>+0x83BA = 0x5D3A</div><div class='add'>+0x83BC = 0x5D3B</div><div class='add'>+0x83BD = 0x4327</div><div class='add'>+0x83C0 = 0x5D52</div><div class='add'>+0x83C1 = 0x5D3C</div><div class='add'>+0x83C5 = 0x5D51</div><div class='add'>+0x83C7 = 0x393D</div><div class='add'>+0x83CA = 0x3E55</div><div class='add'>+0x83CC = 0x3E7A</div><div class='add'>+0x83CF = 0x3A4A</div><div class='add'>+0x83D4 = 0x5D4A</div><div class='add'>+0x83D6 = 0x5D45</div><div class='add'>+0x83D8 = 0x5D3F</div><div class='add'>+0x83DC = 0x324B</div><div class='add'>+0x83DD = 0x5D43</div><div class='add'>+0x83DF = 0x5D4B</div><div class='add'>+0x83E0 = 0x3224</div><div class='add'>+0x83E1 = 0x5D55</div><div class='add'>+0x83E5 = 0x5D3E</div><div class='add'>+0x83E9 = 0x4650</div><div class='add'>+0x83EA = 0x5D50</div><div class='add'>+0x83F0 = 0x5D54</div><div class='add'>+0x83F1 = 0x4162</div><div class='add'>+0x83F2 = 0x3746</div><div class='add'>+0x83F8 = 0x5D4E</div><div class='add'>+0x83F9 = 0x5D4F</div><div class='add'>+0x83FD = 0x5D44</div><div class='add'>+0x8401 = 0x5D3D</div><div class='add'>+0x8403 = 0x5D4D</div><div class='add'>+0x8404 = 0x4C51</div><div class='add'>+0x8406 = 0x5D49</div><div class='add'>+0x840B = 0x5D42</div><div class='add'>+0x840C = 0x4348</div><div class='add'>+0x840D = 0x463C</div><div class='add'>+0x840E = 0x4E2E</div><div class='add'>+0x840F = 0x5D4C</div><div class='add'>+0x8411 = 0x5D48</div><div class='add'>+0x8418 = 0x5D41</div><div class='add'>+0x841C = 0x5D46</div><div class='add'>+0x841D = 0x425C</div><div class='add'>+0x8424 = 0x5329</div><div class='add'>+0x8425 = 0x532A</div><div class='add'>+0x8426 = 0x5D53</div><div class='add'>+0x8427 = 0x4F74</div><div class='add'>+0x8428 = 0x4878</div><div class='add'>+0x8431 = 0x5D66</div><div class='add'>+0x8438 = 0x5D47</div><div class='add'>+0x843C = 0x5D60</div><div class='add'>+0x843D = 0x4264</div><div class='add'>+0x8446 = 0x5D61</div><div class='add'>+0x8451 = 0x5D57</div><div class='add'>+0x8457 = 0x5678</div><div class='add'>+0x8459 = 0x5D59</div><div class='add'>+0x845A = 0x5D58</div><div class='add'>+0x845B = 0x3870</div><div class='add'>+0x845C = 0x5D56</div><div class='add'>+0x8461 = 0x464F</div><div class='add'>+0x8463 = 0x362D</div><div class='add'>+0x8469 = 0x5D62</div><div class='add'>+0x846B = 0x3A79</div><div class='add'>+0x846C = 0x5461</div><div class='add'>+0x846D = 0x5D67</div><div class='add'>+0x8471 = 0x3450</div><div class='add'>+0x8473 = 0x5D5A</div><div class='add'>+0x8475 = 0x3F7B</div><div class='add'>+0x8476 = 0x5D63</div><div class='add'>+0x8478 = 0x5D5F</div><div class='add'>+0x847A = 0x5D5D</div><div class='add'>+0x8482 = 0x3559</div><div class='add'>+0x8487 = 0x5D5B</div><div class='add'>+0x8488 = 0x5D5C</div><div class='add'>+0x8489 = 0x5D5E</div><div class='add'>+0x848B = 0x3D2F</div><div class='add'>+0x848C = 0x5D64</div><div class='add'>+0x848E = 0x5D65</div><div class='add'>+0x8497 = 0x5D75</div><div class='add'>+0x8499 = 0x4349</div><div class='add'>+0x849C = 0x4B62</div><div class='add'>+0x84A1 = 0x5D72</div><div class='add'>+0x84AF = 0x5861</div><div class='add'>+0x84B2 = 0x4651</div><div class='add'>+0x84B4 = 0x5D74</div><div class='add'>+0x84B8 = 0x5574</div><div class='add'>+0x84B9 = 0x5D73</div><div class='add'>+0x84BA = 0x5D70</div><div class='add'>+0x84BD = 0x5D6C</div><div class='add'>+0x84BF = 0x5D6F</div><div class='add'>+0x84C1 = 0x5D68</div><div class='add'>+0x84C4 = 0x506E</div><div class='add'>+0x84C9 = 0x4858</div><div class='add'>+0x84CA = 0x5D6E</div><div class='add'>+0x84CD = 0x5D69</div><div class='add'>+0x84D0 = 0x5D6A</div><div class='add'>+0x84D1 = 0x4B72</div><div class='add'>+0x84D3 = 0x5D6D</div><div class='add'>+0x84D6 = 0x314D</div><div class='add'>+0x84DD = 0x4036</div><div class='add'>+0x84DF = 0x3C3B</div><div class='add'>+0x84E0 = 0x5D71</div><div class='add'>+0x84E3 = 0x5D77</div><div class='add'>+0x84E5 = 0x5D76</div><div class='add'>+0x84E6 = 0x5D6B</div><div class='add'>+0x84EC = 0x456E</div><div class='add'>+0x84F0 = 0x5D7B</div><div class='add'>+0x84FC = 0x5E24</div><div class='add'>+0x84FF = 0x5E23</div><div class='add'>+0x850C = 0x5D78</div><div class='add'>+0x8511 = 0x436F</div><div class='add'>+0x8513 = 0x427B</div><div class='add'>+0x8517 = 0x5561</div><div class='add'>+0x851A = 0x4E35</div><div class='add'>+0x851F = 0x5D7D</div><div class='add'>+0x8521 = 0x324C</div><div class='add'>+0x852B = 0x4468</div><div class='add'>+0x852C = 0x4A5F</div><div class='add'>+0x8537 = 0x473E</div><div class='add'>+0x8538 = 0x5D7A</div><div class='add'>+0x8539 = 0x5D7C</div><div class='add'>+0x853A = 0x5D7E</div><div class='add'>+0x853B = 0x5E22</div><div class='add'>+0x853C = 0x302A</div><div class='add'>+0x853D = 0x314E</div><div class='add'>+0x8543 = 0x5E2C</div><div class='add'>+0x8548 = 0x5E26</div><div class='add'>+0x8549 = 0x3D36</div><div class='add'>+0x854A = 0x486F</div><div class='add'>+0x8556 = 0x5E21</div><div class='add'>+0x8559 = 0x5E25</div><div class='add'>+0x855E = 0x5E29</div><div class='add'>+0x8564 = 0x5E28</div><div class='add'>+0x8568 = 0x5E27</div><div class='add'>+0x8572 = 0x5E2D</div><div class='add'>+0x8574 = 0x544C</div><div class='add'>+0x8579 = 0x5E33</div><div class='add'>+0x857A = 0x5E2A</div><div class='add'>+0x857B = 0x5E2E</div><div class='add'>+0x857E = 0x4059</div><div class='add'>+0x8584 = 0x3121</div><div class='add'>+0x8585 = 0x5E36</div><div class='add'>+0x8587 = 0x5E31</div><div class='add'>+0x858F = 0x5E32</div><div class='add'>+0x859B = 0x5126</div><div class='add'>+0x859C = 0x5E35</div><div class='add'>+0x85A4 = 0x5E2F</div><div class='add'>+0x85A8 = 0x5E30</div><div class='add'>+0x85AA = 0x503D</div><div class='add'>+0x85AE = 0x5E34</div><div class='add'>+0x85AF = 0x4A6D</div><div class='add'>+0x85B0 = 0x5E39</div><div class='add'>+0x85B7 = 0x5E38</div><div class='add'>+0x85B9 = 0x5E37</div><div class='add'>+0x85C1 = 0x5E3B</div><div class='add'>+0x85C9 = 0x3D65</div><div class='add'>+0x85CF = 0x3258</div><div class='add'>+0x85D0 = 0x436A</div><div class='add'>+0x85D3 = 0x5E3A</div><div class='add'>+0x85D5 = 0x453A</div><div class='add'>+0x85DC = 0x5E3C</div><div class='add'>+0x85E4 = 0x4C59</div><div class='add'>+0x85E9 = 0x372A</div><div class='add'>+0x85FB = 0x5465</div><div class='add'>+0x85FF = 0x5E3D</div><div class='add'>+0x8605 = 0x5E3F</div><div class='add'>+0x8611 = 0x4422</div><div class='add'>+0x8616 = 0x5E41</div><div class='add'>+0x8627 = 0x5E3E</div><div class='add'>+0x8629 = 0x5E40</div><div class='add'>+0x8638 = 0x553A</div><div class='add'>+0x863C = 0x5E42</div><div class='add'>+0x864D = 0x722E</div><div class='add'>+0x864E = 0x3B22</div><div class='add'>+0x864F = 0x4232</div><div class='add'>+0x8650 = 0x4530</div><div class='add'>+0x8651 = 0x4247</div><div class='add'>+0x8654 = 0x722F</div><div class='add'>+0x865A = 0x5069</div><div class='add'>+0x865E = 0x535D</div><div class='add'>+0x8662 = 0x6B3D</div><div class='add'>+0x866B = 0x3366</div><div class='add'>+0x866C = 0x7230</div><div class='add'>+0x866E = 0x7231</div><div class='add'>+0x8671 = 0x4A2D</div><div class='add'>+0x8679 = 0x3A67</div><div class='add'>+0x867A = 0x7233</div><div class='add'>+0x867B = 0x7235</div><div class='add'>+0x867C = 0x7234</div><div class='add'>+0x867D = 0x4B64</div><div class='add'>+0x867E = 0x4F3A</div><div class='add'>+0x867F = 0x7232</div><div class='add'>+0x8680 = 0x4A34</div><div class='add'>+0x8681 = 0x524F</div><div class='add'>+0x8682 = 0x426C</div><div class='add'>+0x868A = 0x4E43</div><div class='add'>+0x868B = 0x7238</div><div class='add'>+0x868C = 0x3076</div><div class='add'>+0x868D = 0x7237</div><div class='add'>+0x8693 = 0x723E</div><div class='add'>+0x8695 = 0x324F</div><div class='add'>+0x869C = 0x5141</div><div class='add'>+0x869D = 0x723A</div><div class='add'>+0x86A3 = 0x723C</div><div class='add'>+0x86A4 = 0x5469</div><div class='add'>+0x86A7 = 0x723B</div><div class='add'>+0x86A8 = 0x7236</div><div class='add'>+0x86A9 = 0x723F</div><div class='add'>+0x86AA = 0x723D</div><div class='add'>+0x86AC = 0x7239</div><div class='add'>+0x86AF = 0x7247</div><div class='add'>+0x86B0 = 0x7244</div><div class='add'>+0x86B1 = 0x7246</div><div class='add'>+0x86B4 = 0x724A</div><div class='add'>+0x86B5 = 0x7242</div><div class='add'>+0x86B6 = 0x7240</div><div class='add'>+0x86BA = 0x7245</div><div class='add'>+0x86C0 = 0x567B</div><div class='add'>+0x86C4 = 0x7241</div><div class='add'>+0x86C6 = 0x4779</div><div class='add'>+0x86C7 = 0x495F</div><div class='add'>+0x86C9 = 0x7248</div><div class='add'>+0x86CA = 0x3946</div><div class='add'>+0x86CB = 0x3530</div><div class='add'>+0x86CE = 0x7243</div><div class='add'>+0x86CF = 0x7249</div><div class='add'>+0x86D0 = 0x7250</div><div class='add'>+0x86D1 = 0x7256</div><div class='add'>+0x86D4 = 0x3B57</div><div class='add'>+0x86D8 = 0x7255</div><div class='add'>+0x86D9 = 0x4D5C</div><div class='add'>+0x86DB = 0x566B</div><div class='add'>+0x86DE = 0x7252</div><div class='add'>+0x86DF = 0x7254</div><div class='add'>+0x86E4 = 0x3872</div><div class='add'>+0x86E9 = 0x724B</div><div class='add'>+0x86ED = 0x724E</div><div class='add'>+0x86EE = 0x4279</div><div class='add'>+0x86F0 = 0x555D</div><div class='add'>+0x86F1 = 0x724C</div><div class='add'>+0x86F2 = 0x724D</div><div class='add'>+0x86F3 = 0x724F</div><div class='add'>+0x86F4 = 0x7253</div><div class='add'>+0x86F8 = 0x7259</div><div class='add'>+0x86F9 = 0x533C</div><div class='add'>+0x86FE = 0x366A</div><div class='add'>+0x8700 = 0x4A71</div><div class='add'>+0x8702 = 0x3764</div><div class='add'>+0x8703 = 0x7257</div><div class='add'>+0x8707 = 0x7258</div><div class='add'>+0x8708 = 0x725A</div><div class='add'>+0x8709 = 0x725D</div><div class='add'>+0x870A = 0x725B</div><div class='add'>+0x870D = 0x725C</div><div class='add'>+0x8712 = 0x5151</div><div class='add'>+0x8713 = 0x7251</div><div class='add'>+0x8715 = 0x4D49</div><div class='add'>+0x8717 = 0x4E4F</div><div class='add'>+0x8718 = 0x5629</div><div class='add'>+0x871A = 0x7263</div><div class='add'>+0x871C = 0x435B</div><div class='add'>+0x871E = 0x7260</div><div class='add'>+0x8721 = 0x402F</div><div class='add'>+0x8722 = 0x726C</div><div class='add'>+0x8723 = 0x725E</div><div class='add'>+0x8725 = 0x7261</div><div class='add'>+0x8729 = 0x7268</div><div class='add'>+0x872E = 0x7262</div><div class='add'>+0x8731 = 0x7267</div><div class='add'>+0x8734 = 0x7266</div><div class='add'>+0x8737 = 0x7269</div><div class='add'>+0x873B = 0x725F</div><div class='add'>+0x873E = 0x7264</div><div class='add'>+0x873F = 0x726A</div><div class='add'>+0x8747 = 0x532C</div><div class='add'>+0x8748 = 0x7265</div><div class='add'>+0x8749 = 0x3275</div><div class='add'>+0x874C = 0x7272</div><div class='add'>+0x874E = 0x502B</div><div class='add'>+0x8753 = 0x7275</div><div class='add'>+0x8757 = 0x3B48</div><div class='add'>+0x8759 = 0x7279</div><div class='add'>+0x8760 = 0x7270</div><div class='add'>+0x8763 = 0x7276</div><div class='add'>+0x8764 = 0x7278</div><div class='add'>+0x8765 = 0x727A</div><div class='add'>+0x876E = 0x7273</div><div class='add'>+0x8770 = 0x7271</div><div class='add'>+0x8774 = 0x3A7B</div><div class='add'>+0x8776 = 0x357B</div><div class='add'>+0x877B = 0x726F</div><div class='add'>+0x877C = 0x7277</div><div class='add'>+0x877D = 0x726D</div><div class='add'>+0x877E = 0x726E</div><div class='add'>+0x8782 = 0x726B</div><div class='add'>+0x8783 = 0x7326</div><div class='add'>+0x8785 = 0x7323</div><div class='add'>+0x8788 = 0x7322</div><div class='add'>+0x878B = 0x7274</div><div class='add'>+0x878D = 0x485A</div><div class='add'>+0x8793 = 0x727B</div><div class='add'>+0x8797 = 0x7325</div><div class='add'>+0x879F = 0x4378</div><div class='add'>+0x87A8 = 0x727D</div><div class='add'>+0x87AB = 0x7327</div><div class='add'>+0x87AC = 0x7329</div><div class='add'>+0x87AD = 0x7324</div><div class='add'>+0x87AF = 0x727C</div><div class='add'>+0x87B3 = 0x732B</div><div class='add'>+0x87B5 = 0x732A</div><div class='add'>+0x87BA = 0x425D</div><div class='add'>+0x87BD = 0x732E</div><div class='add'>+0x87C0 = 0x7330</div><div class='add'>+0x87C6 = 0x7321</div><div class='add'>+0x87CA = 0x7331</div><div class='add'>+0x87CB = 0x732C</div><div class='add'>+0x87D1 = 0x732F</div><div class='add'>+0x87D2 = 0x727E</div><div class='add'>+0x87D3 = 0x732D</div><div class='add'>+0x87DB = 0x7332</div><div class='add'>+0x87E0 = 0x7334</div><div class='add'>+0x87E5 = 0x7328</div><div class='add'>+0x87EA = 0x7333</div><div class='add'>+0x87EE = 0x7335</div><div class='add'>+0x87F9 = 0x5037</div><div class='add'>+0x87FE = 0x7338</div><div class='add'>+0x8803 = 0x5979</div><div class='add'>+0x880A = 0x7339</div><div class='add'>+0x8813 = 0x7337</div><div class='add'>+0x8815 = 0x4864</div><div class='add'>+0x8816 = 0x7336</div><div class='add'>+0x881B = 0x733A</div><div class='add'>+0x8821 = 0x733B</div><div class='add'>+0x8822 = 0x3440</div><div class='add'>+0x8832 = 0x6E43</div><div class='add'>+0x8839 = 0x733C</div><div class='add'>+0x883C = 0x733D</div><div class='add'>+0x8840 = 0x512A</div><div class='add'>+0x8844 = 0x742C</div><div class='add'>+0x8845 = 0x5046</div><div class='add'>+0x884C = 0x5050</div><div class='add'>+0x884D = 0x515C</div><div class='add'>+0x8854 = 0x4F4E</div><div class='add'>+0x8857 = 0x3D56</div><div class='add'>+0x8859 = 0x5143</div><div class='add'>+0x8861 = 0x3A62</div><div class='add'>+0x8862 = 0x6169</div><div class='add'>+0x8863 = 0x5242</div><div class='add'>+0x8864 = 0x7142</div><div class='add'>+0x8865 = 0x3239</div><div class='add'>+0x8868 = 0x316D</div><div class='add'>+0x8869 = 0x7143</div><div class='add'>+0x886B = 0x4940</div><div class='add'>+0x886C = 0x3344</div><div class='add'>+0x886E = 0x5972</div><div class='add'>+0x8870 = 0x4B25</div><div class='add'>+0x8872 = 0x7144</div><div class='add'>+0x8877 = 0x5654</div><div class='add'>+0x887D = 0x7145</div><div class='add'>+0x887E = 0x7440</div><div class='add'>+0x887F = 0x7146</div><div class='add'>+0x8881 = 0x542C</div><div class='add'>+0x8882 = 0x7147</div><div class='add'>+0x8884 = 0x3040</div><div class='add'>+0x8885 = 0x7441</div><div class='add'>+0x8888 = 0x7442</div><div class='add'>+0x888B = 0x347C</div><div class='add'>+0x888D = 0x455B</div><div class='add'>+0x8892 = 0x4C3B</div><div class='add'>+0x8896 = 0x5064</div><div class='add'>+0x889C = 0x4D60</div><div class='add'>+0x88A2 = 0x7148</div><div class='add'>+0x88A4 = 0x5973</div><div class='add'>+0x88AB = 0x313B</div><div class='add'>+0x88AD = 0x4F2E</div><div class='add'>+0x88B1 = 0x3824</div><div class='add'>+0x88B7 = 0x714A</div><div class='add'>+0x88BC = 0x714B</div><div class='add'>+0x88C1 = 0x3243</div><div class='add'>+0x88C2 = 0x4151</div><div class='add'>+0x88C5 = 0x5730</div><div class='add'>+0x88C6 = 0x7149</div><div class='add'>+0x88C9 = 0x714C</div><div class='add'>+0x88CE = 0x714E</div><div class='add'>+0x88D2 = 0x5976</div><div class='add'>+0x88D4 = 0x5261</div><div class='add'>+0x88D5 = 0x5423</div><div class='add'>+0x88D8 = 0x7443</div><div class='add'>+0x88D9 = 0x4839</div><div class='add'>+0x88DF = 0x7444</div><div class='add'>+0x88E2 = 0x714D</div><div class='add'>+0x88E3 = 0x714F</div><div class='add'>+0x88E4 = 0x3F63</div><div class='add'>+0x88E5 = 0x7150</div><div class='add'>+0x88E8 = 0x7154</div><div class='add'>+0x88F0 = 0x7156</div><div class='add'>+0x88F1 = 0x7151</div><div class='add'>+0x88F3 = 0x4951</div><div class='add'>+0x88F4 = 0x4561</div><div class='add'>+0x88F8 = 0x4263</div><div class='add'>+0x88F9 = 0x397C</div><div class='add'>+0x88FC = 0x7153</div><div class='add'>+0x88FE = 0x7155</div><div class='add'>+0x8902 = 0x3953</div><div class='add'>+0x890A = 0x715B</div><div class='add'>+0x8910 = 0x3A56</div><div class='add'>+0x8912 = 0x307D</div><div class='add'>+0x8913 = 0x7159</div><div class='add'>+0x8919 = 0x7158</div><div class='add'>+0x891A = 0x7152</div><div class='add'>+0x891B = 0x715A</div><div class='add'>+0x8921 = 0x7157</div><div class='add'>+0x8925 = 0x486C</div><div class='add'>+0x892A = 0x4D4A</div><div class='add'>+0x892B = 0x715D</div><div class='add'>+0x8930 = 0x653D</div><div class='add'>+0x8934 = 0x715C</div><div class='add'>+0x8936 = 0x715E</div><div class='add'>+0x8941 = 0x715F</div><div class='add'>+0x8944 = 0x4F65</div><div class='add'>+0x895E = 0x7445</div><div class='add'>+0x895F = 0x3D73</div><div class='add'>+0x8966 = 0x7160</div><div class='add'>+0x897B = 0x7161</div><div class='add'>+0x897F = 0x4E77</div><div class='add'>+0x8981 = 0x522A</div><div class='add'>+0x8983 = 0x717B</div><div class='add'>+0x8986 = 0x3832</div><div class='add'>+0x89C1 = 0x3C7B</div><div class='add'>+0x89C2 = 0x395B</div><div class='add'>+0x89C4 = 0x3966</div><div class='add'>+0x89C5 = 0x4359</div><div class='add'>+0x89C6 = 0x4A53</div><div class='add'>+0x89C7 = 0x6A68</div><div class='add'>+0x89C8 = 0x4040</div><div class='add'>+0x89C9 = 0x3E75</div><div class='add'>+0x89CA = 0x6A69</div><div class='add'>+0x89CB = 0x6A6A</div><div class='add'>+0x89CC = 0x6A6B</div><div class='add'>+0x89CE = 0x6A6C</div><div class='add'>+0x89CF = 0x6A6D</div><div class='add'>+0x89D0 = 0x6A6E</div><div class='add'>+0x89D1 = 0x6A6F</div><div class='add'>+0x89D2 = 0x3D47</div><div class='add'>+0x89D6 = 0x757B</div><div class='add'>+0x89DA = 0x757D</div><div class='add'>+0x89DC = 0x757E</div><div class='add'>+0x89DE = 0x757C</div><div class='add'>+0x89E3 = 0x3D62</div><div class='add'>+0x89E5 = 0x7621</div><div class='add'>+0x89E6 = 0x3425</div><div class='add'>+0x89EB = 0x7622</div><div class='add'>+0x89EF = 0x7623</div><div class='add'>+0x89F3 = 0x6C32</div><div class='add'>+0x8A00 = 0x5154</div><div class='add'>+0x8A07 = 0x596A</div><div class='add'>+0x8A3E = 0x7624</div><div class='add'>+0x8A48 = 0x6E3A</div><div class='add'>+0x8A79 = 0x5532</div><div class='add'>+0x8A89 = 0x537E</div><div class='add'>+0x8A8A = 0x4C5C</div><div class='add'>+0x8A93 = 0x4A44</div><div class='add'>+0x8B07 = 0x6540</div><div class='add'>+0x8B26 = 0x7625</div><div class='add'>+0x8B66 = 0x3E2F</div><div class='add'>+0x8B6C = 0x4629</div><div class='add'>+0x8BA0 = 0x5A25</div><div class='add'>+0x8BA1 = 0x3C46</div><div class='add'>+0x8BA2 = 0x3629</div><div class='add'>+0x8BA3 = 0x383C</div><div class='add'>+0x8BA4 = 0x484F</div><div class='add'>+0x8BA5 = 0x3C25</div><div class='add'>+0x8BA6 = 0x5A26</div><div class='add'>+0x8BA7 = 0x5A27</div><div class='add'>+0x8BA8 = 0x4C56</div><div class='add'>+0x8BA9 = 0x4843</div><div class='add'>+0x8BAA = 0x5A28</div><div class='add'>+0x8BAB = 0x467D</div><div class='add'>+0x8BAD = 0x5135</div><div class='add'>+0x8BAE = 0x5269</div><div class='add'>+0x8BAF = 0x5136</div><div class='add'>+0x8BB0 = 0x3C47</div><div class='add'>+0x8BB2 = 0x3D32</div><div class='add'>+0x8BB3 = 0x3B64</div><div class='add'>+0x8BB4 = 0x5A29</div><div class='add'>+0x8BB5 = 0x5A2A</div><div class='add'>+0x8BB6 = 0x5148</div><div class='add'>+0x8BB7 = 0x5A2B</div><div class='add'>+0x8BB8 = 0x506D</div><div class='add'>+0x8BB9 = 0x366F</div><div class='add'>+0x8BBA = 0x425B</div><div class='add'>+0x8BBC = 0x4B4F</div><div class='add'>+0x8BBD = 0x376D</div><div class='add'>+0x8BBE = 0x4968</div><div class='add'>+0x8BBF = 0x3743</div><div class='add'>+0x8BC0 = 0x3E77</div><div class='add'>+0x8BC1 = 0x5624</div><div class='add'>+0x8BC2 = 0x5A2C</div><div class='add'>+0x8BC3 = 0x5A2D</div><div class='add'>+0x8BC4 = 0x4640</div><div class='add'>+0x8BC5 = 0x5767</div><div class='add'>+0x8BC6 = 0x4A36</div><div class='add'>+0x8BC8 = 0x5529</div><div class='add'>+0x8BC9 = 0x4B5F</div><div class='add'>+0x8BCA = 0x556F</div><div class='add'>+0x8BCB = 0x5A2E</div><div class='add'>+0x8BCC = 0x565F</div><div class='add'>+0x8BCD = 0x344A</div><div class='add'>+0x8BCE = 0x5A30</div><div class='add'>+0x8BCF = 0x5A2F</div><div class='add'>+0x8BD1 = 0x526B</div><div class='add'>+0x8BD2 = 0x5A31</div><div class='add'>+0x8BD3 = 0x5A32</div><div class='add'>+0x8BD4 = 0x5A33</div><div class='add'>+0x8BD5 = 0x4A54</div><div class='add'>+0x8BD6 = 0x5A34</div><div class='add'>+0x8BD7 = 0x4A2B</div><div class='add'>+0x8BD8 = 0x5A35</div><div class='add'>+0x8BD9 = 0x5A36</div><div class='add'>+0x8BDA = 0x334F</div><div class='add'>+0x8BDB = 0x566F</div><div class='add'>+0x8BDC = 0x5A37</div><div class='add'>+0x8BDD = 0x3B30</div><div class='add'>+0x8BDE = 0x352E</div><div class='add'>+0x8BDF = 0x5A38</div><div class='add'>+0x8BE0 = 0x5A39</div><div class='add'>+0x8BE1 = 0x396E</div><div class='add'>+0x8BE2 = 0x512F</div><div class='add'>+0x8BE3 = 0x5268</div><div class='add'>+0x8BE4 = 0x5A3A</div><div class='add'>+0x8BE5 = 0x3843</div><div class='add'>+0x8BE6 = 0x4F6A</div><div class='add'>+0x8BE7 = 0x326F</div><div class='add'>+0x8BE8 = 0x5A3B</div><div class='add'>+0x8BE9 = 0x5A3C</div><div class='add'>+0x8BEB = 0x3D6B</div><div class='add'>+0x8BEC = 0x4E5C</div><div class='add'>+0x8BED = 0x536F</div><div class='add'>+0x8BEE = 0x5A3D</div><div class='add'>+0x8BEF = 0x4E73</div><div class='add'>+0x8BF0 = 0x5A3E</div><div class='add'>+0x8BF1 = 0x5355</div><div class='add'>+0x8BF2 = 0x3B65</div><div class='add'>+0x8BF3 = 0x5A3F</div><div class='add'>+0x8BF4 = 0x4B35</div><div class='add'>+0x8BF5 = 0x4B50</div><div class='add'>+0x8BF6 = 0x5A40</div><div class='add'>+0x8BF7 = 0x476B</div><div class='add'>+0x8BF8 = 0x566E</div><div class='add'>+0x8BF9 = 0x5A41</div><div class='add'>+0x8BFA = 0x4535</div><div class='add'>+0x8BFB = 0x3641</div><div class='add'>+0x8BFC = 0x5A42</div><div class='add'>+0x8BFD = 0x374C</div><div class='add'>+0x8BFE = 0x3F4E</div><div class='add'>+0x8BFF = 0x5A43</div><div class='add'>+0x8C00 = 0x5A44</div><div class='add'>+0x8C01 = 0x4B2D</div><div class='add'>+0x8C02 = 0x5A45</div><div class='add'>+0x8C03 = 0x3577</div><div class='add'>+0x8C04 = 0x5A46</div><div class='add'>+0x8C05 = 0x4142</div><div class='add'>+0x8C06 = 0x573B</div><div class='add'>+0x8C07 = 0x5A47</div><div class='add'>+0x8C08 = 0x4C38</div><div class='add'>+0x8C0A = 0x526A</div><div class='add'>+0x8C0B = 0x4431</div><div class='add'>+0x8C0C = 0x5A48</div><div class='add'>+0x8C0D = 0x357D</div><div class='add'>+0x8C0E = 0x3B51</div><div class='add'>+0x8C0F = 0x5A49</div><div class='add'>+0x8C10 = 0x5033</div><div class='add'>+0x8C11 = 0x5A4A</div><div class='add'>+0x8C12 = 0x5A4B</div><div class='add'>+0x8C13 = 0x4E3D</div><div class='add'>+0x8C14 = 0x5A4C</div><div class='add'>+0x8C15 = 0x5A4D</div><div class='add'>+0x8C16 = 0x5A4E</div><div class='add'>+0x8C17 = 0x3277</div><div class='add'>+0x8C18 = 0x5A51</div><div class='add'>+0x8C19 = 0x5A4F</div><div class='add'>+0x8C1A = 0x5168</div><div class='add'>+0x8C1B = 0x5A50</div><div class='add'>+0x8C1C = 0x4355</div><div class='add'>+0x8C1D = 0x5A52</div><div class='add'>+0x8C1F = 0x5A53</div><div class='add'>+0x8C20 = 0x5A54</div><div class='add'>+0x8C21 = 0x5A55</div><div class='add'>+0x8C22 = 0x503B</div><div class='add'>+0x8C23 = 0x5225</div><div class='add'>+0x8C24 = 0x3079</div><div class='add'>+0x8C25 = 0x5A56</div><div class='add'>+0x8C26 = 0x472B</div><div class='add'>+0x8C27 = 0x5A57</div><div class='add'>+0x8C28 = 0x3D77</div><div class='add'>+0x8C29 = 0x4321</div><div class='add'>+0x8C2A = 0x5A58</div><div class='add'>+0x8C2B = 0x5A59</div><div class='add'>+0x8C2C = 0x437D</div><div class='add'>+0x8C2D = 0x4C37</div><div class='add'>+0x8C2E = 0x5A5A</div><div class='add'>+0x8C2F = 0x5A5B</div><div class='add'>+0x8C30 = 0x403E</div><div class='add'>+0x8C31 = 0x4657</div><div class='add'>+0x8C32 = 0x5A5C</div><div class='add'>+0x8C33 = 0x5A5D</div><div class='add'>+0x8C34 = 0x4734</div><div class='add'>+0x8C35 = 0x5A5E</div><div class='add'>+0x8C36 = 0x5A5F</div><div class='add'>+0x8C37 = 0x3948</div><div class='add'>+0x8C41 = 0x3B6D</div><div class='add'>+0x8C46 = 0x3639</div><div class='add'>+0x8C47 = 0x7478</div><div class='add'>+0x8C49 = 0x7479</div><div class='add'>+0x8C4C = 0x4D63</div><div class='add'>+0x8C55 = 0x7539</div><div class='add'>+0x8C5A = 0x6B60</div><div class='add'>+0x8C61 = 0x4F73</div><div class='add'>+0x8C62 = 0x3B3F</div><div class='add'>+0x8C6A = 0x3A40</div><div class='add'>+0x8C6B = 0x5425</div><div class='add'>+0x8C73 = 0x6159</div><div class='add'>+0x8C78 = 0x7574</div><div class='add'>+0x8C79 = 0x312A</div><div class='add'>+0x8C7A = 0x3272</div><div class='add'>+0x8C82 = 0x7575</div><div class='add'>+0x8C85 = 0x7577</div><div class='add'>+0x8C89 = 0x3A51</div><div class='add'>+0x8C8A = 0x7576</div><div class='add'>+0x8C8C = 0x4332</div><div class='add'>+0x8C94 = 0x7579</div><div class='add'>+0x8C98 = 0x7578</div><div class='add'>+0x8D1D = 0x3134</div><div class='add'>+0x8D1E = 0x556A</div><div class='add'>+0x8D1F = 0x383A</div><div class='add'>+0x8D21 = 0x3931</div><div class='add'>+0x8D22 = 0x3246</div><div class='add'>+0x8D23 = 0x5470</div><div class='add'>+0x8D24 = 0x4F4D</div><div class='add'>+0x8D25 = 0x305C</div><div class='add'>+0x8D26 = 0x554B</div><div class='add'>+0x8D27 = 0x3B75</div><div class='add'>+0x8D28 = 0x564A</div><div class='add'>+0x8D29 = 0x3737</div><div class='add'>+0x8D2A = 0x4C30</div><div class='add'>+0x8D2B = 0x4636</div><div class='add'>+0x8D2C = 0x3161</div><div class='add'>+0x8D2D = 0x393A</div><div class='add'>+0x8D2E = 0x567C</div><div class='add'>+0x8D2F = 0x3961</div><div class='add'>+0x8D30 = 0x3721</div><div class='add'>+0x8D31 = 0x3C7A</div><div class='add'>+0x8D32 = 0x6A5A</div><div class='add'>+0x8D33 = 0x6A5B</div><div class='add'>+0x8D34 = 0x4C79</div><div class='add'>+0x8D35 = 0x3973</div><div class='add'>+0x8D36 = 0x6A5C</div><div class='add'>+0x8D37 = 0x347B</div><div class='add'>+0x8D38 = 0x4333</div><div class='add'>+0x8D39 = 0x3751</div><div class='add'>+0x8D3A = 0x3A58</div><div class='add'>+0x8D3B = 0x6A5D</div><div class='add'>+0x8D3C = 0x5474</div><div class='add'>+0x8D3D = 0x6A5E</div><div class='add'>+0x8D3E = 0x3C56</div><div class='add'>+0x8D3F = 0x3B5F</div><div class='add'>+0x8D40 = 0x6A5F</div><div class='add'>+0x8D41 = 0x415E</div><div class='add'>+0x8D42 = 0x4238</div><div class='add'>+0x8D43 = 0x545F</div><div class='add'>+0x8D44 = 0x574A</div><div class='add'>+0x8D45 = 0x6A60</div><div class='add'>+0x8D46 = 0x6A61</div><div class='add'>+0x8D47 = 0x6A64</div><div class='add'>+0x8D48 = 0x6A62</div><div class='add'>+0x8D49 = 0x6A63</div><div class='add'>+0x8D4A = 0x495E</div><div class='add'>+0x8D4B = 0x3833</div><div class='add'>+0x8D4C = 0x3644</div><div class='add'>+0x8D4D = 0x6A65</div><div class='add'>+0x8D4E = 0x4A6A</div><div class='add'>+0x8D4F = 0x494D</div><div class='add'>+0x8D50 = 0x344D</div><div class='add'>+0x8D53 = 0x6259</div><div class='add'>+0x8D54 = 0x4562</div><div class='add'>+0x8D55 = 0x6A66</div><div class='add'>+0x8D56 = 0x4035</div><div class='add'>+0x8D58 = 0x5738</div><div class='add'>+0x8D59 = 0x6A67</div><div class='add'>+0x8D5A = 0x572C</div><div class='add'>+0x8D5B = 0x487C</div><div class='add'>+0x8D5C = 0x5853</div><div class='add'>+0x8D5D = 0x584D</div><div class='add'>+0x8D5E = 0x545E</div><div class='add'>+0x8D60 = 0x5479</div><div class='add'>+0x8D61 = 0x4944</div><div class='add'>+0x8D62 = 0x532E</div><div class='add'>+0x8D63 = 0x3853</div><div class='add'>+0x8D64 = 0x3360</div><div class='add'>+0x8D66 = 0x4962</div><div class='add'>+0x8D67 = 0x7476</div><div class='add'>+0x8D6B = 0x3A55</div><div class='add'>+0x8D6D = 0x7477</div><div class='add'>+0x8D70 = 0x575F</div><div class='add'>+0x8D73 = 0x7471</div><div class='add'>+0x8D74 = 0x3830</div><div class='add'>+0x8D75 = 0x5554</div><div class='add'>+0x8D76 = 0x384F</div><div class='add'>+0x8D77 = 0x4670</div><div class='add'>+0x8D81 = 0x3343</div><div class='add'>+0x8D84 = 0x7472</div><div class='add'>+0x8D85 = 0x332C</div><div class='add'>+0x8D8A = 0x543D</div><div class='add'>+0x8D8B = 0x4777</div><div class='add'>+0x8D91 = 0x7474</div><div class='add'>+0x8D94 = 0x7473</div><div class='add'>+0x8D9F = 0x4C4B</div><div class='add'>+0x8DA3 = 0x4824</div><div class='add'>+0x8DB1 = 0x7475</div><div class='add'>+0x8DB3 = 0x5763</div><div class='add'>+0x8DB4 = 0x453F</div><div class='add'>+0x8DB5 = 0x7540</div><div class='add'>+0x8DB8 = 0x753B</div><div class='add'>+0x8DBA = 0x7543</div><div class='add'>+0x8DBC = 0x7542</div><div class='add'>+0x8DBE = 0x563A</div><div class='add'>+0x8DBF = 0x7541</div><div class='add'>+0x8DC3 = 0x543E</div><div class='add'>+0x8DC4 = 0x7544</div><div class='add'>+0x8DC6 = 0x754C</div><div class='add'>+0x8DCB = 0x304F</div><div class='add'>+0x8DCC = 0x3578</div><div class='add'>+0x8DCE = 0x7549</div><div class='add'>+0x8DCF = 0x754A</div><div class='add'>+0x8DD1 = 0x455C</div><div class='add'>+0x8DD6 = 0x7545</div><div class='add'>+0x8DD7 = 0x7546</div><div class='add'>+0x8DDA = 0x7547</div><div class='add'>+0x8DDB = 0x754B</div><div class='add'>+0x8DDD = 0x3E60</div><div class='add'>+0x8DDE = 0x7548</div><div class='add'>+0x8DDF = 0x387A</div><div class='add'>+0x8DE3 = 0x7550</div><div class='add'>+0x8DE4 = 0x7553</div><div class='add'>+0x8DE8 = 0x3F67</div><div class='add'>+0x8DEA = 0x3972</div><div class='add'>+0x8DEB = 0x753C</div><div class='add'>+0x8DEC = 0x754D</div><div class='add'>+0x8DEF = 0x4237</div><div class='add'>+0x8DF3 = 0x4C78</div><div class='add'>+0x8DF5 = 0x3C79</div><div class='add'>+0x8DF7 = 0x754E</div><div class='add'>+0x8DF8 = 0x754F</div><div class='add'>+0x8DF9 = 0x7551</div><div class='add'>+0x8DFA = 0x3665</div><div class='add'>+0x8DFB = 0x7552</div><div class='add'>+0x8DFD = 0x7555</div><div class='add'>+0x8E05 = 0x753D</div><div class='add'>+0x8E09 = 0x7554</div><div class='add'>+0x8E0A = 0x533B</div><div class='add'>+0x8E0C = 0x336C</div><div class='add'>+0x8E0F = 0x4C24</div><div class='add'>+0x8E14 = 0x7556</div><div class='add'>+0x8E1D = 0x7557</div><div class='add'>+0x8E1E = 0x3E61</div><div class='add'>+0x8E1F = 0x7558</div><div class='add'>+0x8E22 = 0x4C5F</div><div class='add'>+0x8E23 = 0x755B</div><div class='add'>+0x8E29 = 0x3248</div><div class='add'>+0x8E2A = 0x5759</div><div class='add'>+0x8E2C = 0x7559</div><div class='add'>+0x8E2E = 0x755A</div><div class='add'>+0x8E2F = 0x755C</div><div class='add'>+0x8E31 = 0x7562</div><div class='add'>+0x8E35 = 0x7560</div><div class='add'>+0x8E39 = 0x755F</div><div class='add'>+0x8E3A = 0x755D</div><div class='add'>+0x8E3D = 0x7561</div><div class='add'>+0x8E40 = 0x755E</div><div class='add'>+0x8E41 = 0x7564</div><div class='add'>+0x8E42 = 0x7565</div><div class='add'>+0x8E44 = 0x4C63</div><div class='add'>+0x8E47 = 0x653F</div><div class='add'>+0x8E48 = 0x3538</div><div class='add'>+0x8E49 = 0x7563</div><div class='add'>+0x8E4A = 0x7568</div><div class='add'>+0x8E4B = 0x4C23</div><div class='add'>+0x8E51 = 0x7566</div><div class='add'>+0x8E52 = 0x7567</div><div class='add'>+0x8E59 = 0x753E</div><div class='add'>+0x8E66 = 0x3144</div><div class='add'>+0x8E69 = 0x753F</div><div class='add'>+0x8E6C = 0x3545</div><div class='add'>+0x8E6D = 0x3264</div><div class='add'>+0x8E6F = 0x756C</div><div class='add'>+0x8E70 = 0x7569</div><div class='add'>+0x8E72 = 0x3657</div><div class='add'>+0x8E74 = 0x756D</div><div class='add'>+0x8E76 = 0x756A</div><div class='add'>+0x8E7C = 0x756B</div><div class='add'>+0x8E7F = 0x345A</div><div class='add'>+0x8E81 = 0x546A</div><div class='add'>+0x8E85 = 0x756E</div><div class='add'>+0x8E87 = 0x3379</div><div class='add'>+0x8E8F = 0x756F</div><div class='add'>+0x8E90 = 0x7571</div><div class='add'>+0x8E94 = 0x7570</div><div class='add'>+0x8E9C = 0x7572</div><div class='add'>+0x8E9E = 0x7573</div><div class='add'>+0x8EAB = 0x496D</div><div class='add'>+0x8EAC = 0x392A</div><div class='add'>+0x8EAF = 0x477B</div><div class='add'>+0x8EB2 = 0x3663</div><div class='add'>+0x8EBA = 0x4C49</div><div class='add'>+0x8ECE = 0x6A26</div><div class='add'>+0x8F66 = 0x3335</div><div class='add'>+0x8F67 = 0x547E</div><div class='add'>+0x8F68 = 0x396C</div><div class='add'>+0x8F69 = 0x5079</div><div class='add'>+0x8F6B = 0x696D</div><div class='add'>+0x8F6C = 0x572A</div><div class='add'>+0x8F6D = 0x696E</div><div class='add'>+0x8F6E = 0x4256</div><div class='add'>+0x8F6F = 0x486D</div><div class='add'>+0x8F70 = 0x3A64</div><div class='add'>+0x8F71 = 0x696F</div><div class='add'>+0x8F72 = 0x6970</div><div class='add'>+0x8F73 = 0x6971</div><div class='add'>+0x8F74 = 0x5661</div><div class='add'>+0x8F75 = 0x6972</div><div class='add'>+0x8F76 = 0x6973</div><div class='add'>+0x8F77 = 0x6975</div><div class='add'>+0x8F78 = 0x6974</div><div class='add'>+0x8F79 = 0x6976</div><div class='add'>+0x8F7A = 0x6977</div><div class='add'>+0x8F7B = 0x4761</div><div class='add'>+0x8F7C = 0x6978</div><div class='add'>+0x8F7D = 0x5458</div><div class='add'>+0x8F7E = 0x6979</div><div class='add'>+0x8F7F = 0x3D4E</div><div class='add'>+0x8F81 = 0x697A</div><div class='add'>+0x8F82 = 0x697B</div><div class='add'>+0x8F83 = 0x3D4F</div><div class='add'>+0x8F84 = 0x697C</div><div class='add'>+0x8F85 = 0x3828</div><div class='add'>+0x8F86 = 0x413E</div><div class='add'>+0x8F87 = 0x697D</div><div class='add'>+0x8F88 = 0x3132</div><div class='add'>+0x8F89 = 0x3B54</div><div class='add'>+0x8F8A = 0x3975</div><div class='add'>+0x8F8B = 0x697E</div><div class='add'>+0x8F8D = 0x6A21</div><div class='add'>+0x8F8E = 0x6A22</div><div class='add'>+0x8F8F = 0x6A23</div><div class='add'>+0x8F90 = 0x3778</div><div class='add'>+0x8F91 = 0x3C2D</div><div class='add'>+0x8F93 = 0x4A64</div><div class='add'>+0x8F94 = 0x604E</div><div class='add'>+0x8F95 = 0x542F</div><div class='add'>+0x8F96 = 0x4F3D</div><div class='add'>+0x8F97 = 0x5537</div><div class='add'>+0x8F98 = 0x6A24</div><div class='add'>+0x8F99 = 0x555E</div><div class='add'>+0x8F9A = 0x6A25</div><div class='add'>+0x8F9B = 0x5041</div><div class='add'>+0x8F9C = 0x393C</div><div class='add'>+0x8F9E = 0x3447</div><div class='add'>+0x8F9F = 0x3159</div><div class='add'>+0x8FA3 = 0x4031</div><div class='add'>+0x8FA8 = 0x3166</div><div class='add'>+0x8FA9 = 0x3167</div><div class='add'>+0x8FAB = 0x3168</div><div class='add'>+0x8FB0 = 0x333D</div><div class='add'>+0x8FB1 = 0x4868</div><div class='add'>+0x8FB6 = 0x6541</div><div class='add'>+0x8FB9 = 0x315F</div><div class='add'>+0x8FBD = 0x4149</div><div class='add'>+0x8FBE = 0x346F</div><div class='add'>+0x8FC1 = 0x4728</div><div class='add'>+0x8FC2 = 0x5358</div><div class='add'>+0x8FC4 = 0x4679</div><div class='add'>+0x8FC5 = 0x5138</div><div class='add'>+0x8FC7 = 0x397D</div><div class='add'>+0x8FC8 = 0x4275</div><div class='add'>+0x8FCE = 0x532D</div><div class='add'>+0x8FD0 = 0x544B</div><div class='add'>+0x8FD1 = 0x3D7C</div><div class='add'>+0x8FD3 = 0x6542</div><div class='add'>+0x8FD4 = 0x3735</div><div class='add'>+0x8FD5 = 0x6543</div><div class='add'>+0x8FD8 = 0x3B39</div><div class='add'>+0x8FD9 = 0x5562</div><div class='add'>+0x8FDB = 0x3D78</div><div class='add'>+0x8FDC = 0x5436</div><div class='add'>+0x8FDD = 0x4E25</div><div class='add'>+0x8FDE = 0x412C</div><div class='add'>+0x8FDF = 0x3359</div><div class='add'>+0x8FE2 = 0x4C76</div><div class='add'>+0x8FE4 = 0x6546</div><div class='add'>+0x8FE5 = 0x6544</div><div class='add'>+0x8FE6 = 0x6548</div><div class='add'>+0x8FE8 = 0x654A</div><div class='add'>+0x8FE9 = 0x6547</div><div class='add'>+0x8FEA = 0x354F</div><div class='add'>+0x8FEB = 0x4648</div><div class='add'>+0x8FED = 0x357C</div><div class='add'>+0x8FEE = 0x6545</div><div class='add'>+0x8FF0 = 0x4A76</div><div class='add'>+0x8FF3 = 0x6549</div><div class='add'>+0x8FF7 = 0x4354</div><div class='add'>+0x8FF8 = 0x3145</div><div class='add'>+0x8FF9 = 0x3C23</div><div class='add'>+0x8FFD = 0x5737</div><div class='add'>+0x9000 = 0x4D4B</div><div class='add'>+0x9001 = 0x4B4D</div><div class='add'>+0x9002 = 0x4A4A</div><div class='add'>+0x9003 = 0x4C53</div><div class='add'>+0x9004 = 0x654C</div><div class='add'>+0x9005 = 0x654B</div><div class='add'>+0x9006 = 0x4466</div><div class='add'>+0x9009 = 0x5121</div><div class='add'>+0x900A = 0x5137</div><div class='add'>+0x900B = 0x654D</div><div class='add'>+0x900D = 0x6550</div><div class='add'>+0x900F = 0x4D38</div><div class='add'>+0x9010 = 0x5670</div><div class='add'>+0x9011 = 0x654F</div><div class='add'>+0x9012 = 0x355D</div><div class='add'>+0x9014 = 0x4D3E</div><div class='add'>+0x9016 = 0x6551</div><div class='add'>+0x9017 = 0x363A</div><div class='add'>+0x901A = 0x4D28</div><div class='add'>+0x901B = 0x3964</div><div class='add'>+0x901D = 0x4A45</div><div class='add'>+0x901E = 0x3351</div><div class='add'>+0x901F = 0x4B59</div><div class='add'>+0x9020 = 0x546C</div><div class='add'>+0x9021 = 0x6552</div><div class='add'>+0x9022 = 0x376A</div><div class='add'>+0x9026 = 0x654E</div><div class='add'>+0x902D = 0x6555</div><div class='add'>+0x902E = 0x347E</div><div class='add'>+0x902F = 0x6556</div><div class='add'>+0x9035 = 0x6553</div><div class='add'>+0x9036 = 0x6554</div><div class='add'>+0x9038 = 0x525D</div><div class='add'>+0x903B = 0x425F</div><div class='add'>+0x903C = 0x3146</div><div class='add'>+0x903E = 0x5362</div><div class='add'>+0x9041 = 0x365D</div><div class='add'>+0x9042 = 0x4B6C</div><div class='add'>+0x9044 = 0x6557</div><div class='add'>+0x9047 = 0x5376</div><div class='add'>+0x904D = 0x3169</div><div class='add'>+0x904F = 0x3674</div><div class='add'>+0x9050 = 0x655A</div><div class='add'>+0x9051 = 0x6558</div><div class='add'>+0x9052 = 0x6559</div><div class='add'>+0x9053 = 0x3540</div><div class='add'>+0x9057 = 0x5245</div><div class='add'>+0x9058 = 0x655C</div><div class='add'>+0x905B = 0x655E</div><div class='add'>+0x9062 = 0x655D</div><div class='add'>+0x9063 = 0x4732</div><div class='add'>+0x9065 = 0x5223</div><div class='add'>+0x9068 = 0x655B</div><div class='add'>+0x906D = 0x5462</div><div class='add'>+0x906E = 0x555A</div><div class='add'>+0x9074 = 0x6560</div><div class='add'>+0x9075 = 0x5771</div><div class='add'>+0x907D = 0x6561</div><div class='add'>+0x907F = 0x315C</div><div class='add'>+0x9080 = 0x517B</div><div class='add'>+0x9082 = 0x6562</div><div class='add'>+0x9083 = 0x6564</div><div class='add'>+0x9088 = 0x6563</div><div class='add'>+0x908B = 0x6565</div><div class='add'>+0x9091 = 0x5258</div><div class='add'>+0x9093 = 0x354B</div><div class='add'>+0x9095 = 0x675F</div><div class='add'>+0x9097 = 0x5A75</div><div class='add'>+0x9099 = 0x5A78</div><div class='add'>+0x909B = 0x5A76</div><div class='add'>+0x909D = 0x5A77</div><div class='add'>+0x90A1 = 0x5A7A</div><div class='add'>+0x90A2 = 0x504F</div><div class='add'>+0x90A3 = 0x4447</div><div class='add'>+0x90A6 = 0x306E</div><div class='add'>+0x90AA = 0x5030</div><div class='add'>+0x90AC = 0x5A79</div><div class='add'>+0x90AE = 0x534A</div><div class='add'>+0x90AF = 0x3A2A</div><div class='add'>+0x90B0 = 0x5B22</div><div class='add'>+0x90B1 = 0x4771</div><div class='add'>+0x90B3 = 0x5A7C</div><div class='add'>+0x90B4 = 0x5A7B</div><div class='add'>+0x90B5 = 0x495B</div><div class='add'>+0x90B6 = 0x5A7D</div><div class='add'>+0x90B8 = 0x5B21</div><div class='add'>+0x90B9 = 0x575E</div><div class='add'>+0x90BA = 0x5A7E</div><div class='add'>+0x90BB = 0x415A</div><div class='add'>+0x90BE = 0x5B25</div><div class='add'>+0x90C1 = 0x5374</div><div class='add'>+0x90C4 = 0x5B27</div><div class='add'>+0x90C5 = 0x5B24</div><div class='add'>+0x90C7 = 0x5B28</div><div class='add'>+0x90CA = 0x3D3C</div><div class='add'>+0x90CE = 0x4049</div><div class='add'>+0x90CF = 0x5B23</div><div class='add'>+0x90D0 = 0x5B26</div><div class='add'>+0x90D1 = 0x5623</div><div class='add'>+0x90D3 = 0x5B29</div><div class='add'>+0x90D7 = 0x5B2D</div><div class='add'>+0x90DB = 0x5B2E</div><div class='add'>+0x90DC = 0x5B2C</div><div class='add'>+0x90DD = 0x3A42</div><div class='add'>+0x90E1 = 0x3F24</div><div class='add'>+0x90E2 = 0x5B2B</div><div class='add'>+0x90E6 = 0x5B2A</div><div class='add'>+0x90E7 = 0x5447</div><div class='add'>+0x90E8 = 0x323F</div><div class='add'>+0x90EB = 0x5B2F</div><div class='add'>+0x90ED = 0x3979</div><div class='add'>+0x90EF = 0x5B30</div><div class='add'>+0x90F4 = 0x333B</div><div class='add'>+0x90F8 = 0x3526</div><div class='add'>+0x90FD = 0x363C</div><div class='add'>+0x90FE = 0x5B31</div><div class='add'>+0x9102 = 0x3675</div><div class='add'>+0x9104 = 0x5B32</div><div class='add'>+0x9119 = 0x3149</div><div class='add'>+0x911E = 0x5B34</div><div class='add'>+0x9122 = 0x5B33</div><div class='add'>+0x9123 = 0x5B35</div><div class='add'>+0x912F = 0x5B37</div><div class='add'>+0x9131 = 0x5B36</div><div class='add'>+0x9139 = 0x5B38</div><div class='add'>+0x9143 = 0x5B39</div><div class='add'>+0x9146 = 0x5B3A</div><div class='add'>+0x9149 = 0x534F</div><div class='add'>+0x914A = 0x747A</div><div class='add'>+0x914B = 0x4775</div><div class='add'>+0x914C = 0x5743</div><div class='add'>+0x914D = 0x4564</div><div class='add'>+0x914E = 0x747C</div><div class='add'>+0x914F = 0x747D</div><div class='add'>+0x9150 = 0x747B</div><div class='add'>+0x9152 = 0x3E46</div><div class='add'>+0x9157 = 0x506F</div><div class='add'>+0x915A = 0x3753</div><div class='add'>+0x915D = 0x544D</div><div class='add'>+0x915E = 0x4C2A</div><div class='add'>+0x9161 = 0x7522</div><div class='add'>+0x9162 = 0x7521</div><div class='add'>+0x9163 = 0x3A28</div><div class='add'>+0x9164 = 0x747E</div><div class='add'>+0x9165 = 0x4B56</div><div class='add'>+0x9169 = 0x7524</div><div class='add'>+0x916A = 0x4052</div><div class='add'>+0x916C = 0x336A</div><div class='add'>+0x916E = 0x4D2A</div><div class='add'>+0x916F = 0x7525</div><div class='add'>+0x9170 = 0x7523</div><div class='add'>+0x9171 = 0x3D34</div><div class='add'>+0x9172 = 0x7528</div><div class='add'>+0x9174 = 0x7529</div><div class='add'>+0x9175 = 0x3D4D</div><div class='add'>+0x9176 = 0x4338</div><div class='add'>+0x9177 = 0x3F61</div><div class='add'>+0x9178 = 0x4B61</div><div class='add'>+0x9179 = 0x752A</div><div class='add'>+0x917D = 0x7526</div><div class='add'>+0x917E = 0x7527</div><div class='add'>+0x917F = 0x4470</div><div class='add'>+0x9185 = 0x752C</div><div class='add'>+0x9187 = 0x343C</div><div class='add'>+0x9189 = 0x576D</div><div class='add'>+0x918B = 0x3457</div><div class='add'>+0x918C = 0x752B</div><div class='add'>+0x918D = 0x752E</div><div class='add'>+0x9190 = 0x752D</div><div class='add'>+0x9191 = 0x752F</div><div class='add'>+0x9192 = 0x5051</div><div class='add'>+0x919A = 0x4351</div><div class='add'>+0x919B = 0x4829</div><div class='add'>+0x91A2 = 0x7530</div><div class='add'>+0x91A3 = 0x7531</div><div class='add'>+0x91AA = 0x7532</div><div class='add'>+0x91AD = 0x7533</div><div class='add'>+0x91AE = 0x7534</div><div class='add'>+0x91AF = 0x7535</div><div class='add'>+0x91B4 = 0x7537</div><div class='add'>+0x91B5 = 0x7536</div><div class='add'>+0x91BA = 0x7538</div><div class='add'>+0x91C7 = 0x3249</div><div class='add'>+0x91C9 = 0x5354</div><div class='add'>+0x91CA = 0x4A4D</div><div class='add'>+0x91CC = 0x406F</div><div class='add'>+0x91CD = 0x5658</div><div class='add'>+0x91CE = 0x5230</div><div class='add'>+0x91CF = 0x413F</div><div class='add'>+0x91D1 = 0x3D70</div><div class='add'>+0x91DC = 0x382A</div><div class='add'>+0x9274 = 0x3C78</div><div class='add'>+0x928E = 0x7646</div><div class='add'>+0x92AE = 0x7647</div><div class='add'>+0x92C8 = 0x7648</div><div class='add'>+0x933E = 0x7649</div><div class='add'>+0x936A = 0x764A</div><div class='add'>+0x938F = 0x764C</div><div class='add'>+0x93CA = 0x764B</div><div class='add'>+0x93D6 = 0x7769</div><div class='add'>+0x943E = 0x764D</div><div class='add'>+0x946B = 0x764E</div><div class='add'>+0x9485 = 0x6E44</div><div class='add'>+0x9486 = 0x6E45</div><div class='add'>+0x9487 = 0x6E46</div><div class='add'>+0x9488 = 0x556B</div><div class='add'>+0x9489 = 0x3624</div><div class='add'>+0x948A = 0x6E48</div><div class='add'>+0x948B = 0x6E47</div><div class='add'>+0x948C = 0x6E49</div><div class='add'>+0x948D = 0x6E4A</div><div class='add'>+0x948E = 0x4725</div><div class='add'>+0x948F = 0x6E4B</div><div class='add'>+0x9490 = 0x6E4C</div><div class='add'>+0x9492 = 0x3730</div><div class='add'>+0x9493 = 0x3576</div><div class='add'>+0x9494 = 0x6E4D</div><div class='add'>+0x9495 = 0x6E4F</div><div class='add'>+0x9497 = 0x6E4E</div><div class='add'>+0x9499 = 0x3846</div><div class='add'>+0x949A = 0x6E50</div><div class='add'>+0x949B = 0x6E51</div><div class='add'>+0x949C = 0x6E52</div><div class='add'>+0x949D = 0x365B</div><div class='add'>+0x949E = 0x332E</div><div class='add'>+0x949F = 0x5653</div><div class='add'>+0x94A0 = 0x4446</div><div class='add'>+0x94A1 = 0x3135</div><div class='add'>+0x94A2 = 0x3856</div><div class='add'>+0x94A3 = 0x6E53</div><div class='add'>+0x94A4 = 0x6E54</div><div class='add'>+0x94A5 = 0x543F</div><div class='add'>+0x94A6 = 0x4755</div><div class='add'>+0x94A7 = 0x3E7B</div><div class='add'>+0x94A8 = 0x4E59</div><div class='add'>+0x94A9 = 0x3933</div><div class='add'>+0x94AA = 0x6E56</div><div class='add'>+0x94AB = 0x6E55</div><div class='add'>+0x94AC = 0x6E58</div><div class='add'>+0x94AD = 0x6E57</div><div class='add'>+0x94AE = 0x4525</div><div class='add'>+0x94AF = 0x6E59</div><div class='add'>+0x94B0 = 0x6E5A</div><div class='add'>+0x94B1 = 0x472E</div><div class='add'>+0x94B2 = 0x6E5B</div><div class='add'>+0x94B3 = 0x472F</div><div class='add'>+0x94B4 = 0x6E5C</div><div class='add'>+0x94B5 = 0x3227</div><div class='add'>+0x94B6 = 0x6E5D</div><div class='add'>+0x94B7 = 0x6E5E</div><div class='add'>+0x94B8 = 0x6E5F</div><div class='add'>+0x94B9 = 0x6E60</div><div class='add'>+0x94BA = 0x6E61</div><div class='add'>+0x94BB = 0x576A</div><div class='add'>+0x94BC = 0x6E62</div><div class='add'>+0x94BD = 0x6E63</div><div class='add'>+0x94BE = 0x3C58</div><div class='add'>+0x94BF = 0x6E64</div><div class='add'>+0x94C0 = 0x534B</div><div class='add'>+0x94C1 = 0x4C7A</div><div class='add'>+0x94C2 = 0x322C</div><div class='add'>+0x94C3 = 0x4165</div><div class='add'>+0x94C4 = 0x6E65</div><div class='add'>+0x94C5 = 0x4726</div><div class='add'>+0x94C6 = 0x432D</div><div class='add'>+0x94C8 = 0x6E66</div><div class='add'>+0x94C9 = 0x6E67</div><div class='add'>+0x94CA = 0x6E68</div><div class='add'>+0x94CB = 0x6E69</div><div class='add'>+0x94CC = 0x6E6A</div><div class='add'>+0x94CD = 0x6E6B</div><div class='add'>+0x94CE = 0x6E6C</div><div class='add'>+0x94D0 = 0x6E6D</div><div class='add'>+0x94D1 = 0x6E6E</div><div class='add'>+0x94D2 = 0x6E6F</div><div class='add'>+0x94D5 = 0x6E70</div><div class='add'>+0x94D6 = 0x6E71</div><div class='add'>+0x94D7 = 0x6E72</div><div class='add'>+0x94D8 = 0x6E74</div><div class='add'>+0x94D9 = 0x6E73</div><div class='add'>+0x94DB = 0x6E75</div><div class='add'>+0x94DC = 0x4D2D</div><div class='add'>+0x94DD = 0x4241</div><div class='add'>+0x94DE = 0x6E76</div><div class='add'>+0x94DF = 0x6E77</div><div class='add'>+0x94E0 = 0x6E78</div><div class='add'>+0x94E1 = 0x5521</div><div class='add'>+0x94E2 = 0x6E79</div><div class='add'>+0x94E3 = 0x4F33</div><div class='add'>+0x94E4 = 0x6E7A</div><div class='add'>+0x94E5 = 0x6E7B</div><div class='add'>+0x94E7 = 0x6E7C</div><div class='add'>+0x94E8 = 0x6E7D</div><div class='add'>+0x94E9 = 0x6F21</div><div class='add'>+0x94EA = 0x6E7E</div><div class='add'>+0x94EB = 0x6F22</div><div class='add'>+0x94EC = 0x3875</div><div class='add'>+0x94ED = 0x437A</div><div class='add'>+0x94EE = 0x6F23</div><div class='add'>+0x94EF = 0x6F24</div><div class='add'>+0x94F0 = 0x3D42</div><div class='add'>+0x94F1 = 0x523F</div><div class='add'>+0x94F2 = 0x3279</div><div class='add'>+0x94F3 = 0x6F25</div><div class='add'>+0x94F4 = 0x6F26</div><div class='add'>+0x94F5 = 0x6F27</div><div class='add'>+0x94F6 = 0x5278</div><div class='add'>+0x94F7 = 0x6F28</div><div class='add'>+0x94F8 = 0x567D</div><div class='add'>+0x94F9 = 0x6F29</div><div class='add'>+0x94FA = 0x464C</div><div class='add'>+0x94FC = 0x6F2A</div><div class='add'>+0x94FD = 0x6F2B</div><div class='add'>+0x94FE = 0x4134</div><div class='add'>+0x94FF = 0x6F2C</div><div class='add'>+0x9500 = 0x4F7A</div><div class='add'>+0x9501 = 0x4B78</div><div class='add'>+0x9502 = 0x6F2E</div><div class='add'>+0x9503 = 0x6F2D</div><div class='add'>+0x9504 = 0x337A</div><div class='add'>+0x9505 = 0x3978</div><div class='add'>+0x9506 = 0x6F2F</div><div class='add'>+0x9507 = 0x6F30</div><div class='add'>+0x9508 = 0x5062</div><div class='add'>+0x9509 = 0x6F31</div><div class='add'>+0x950A = 0x6F32</div><div class='add'>+0x950B = 0x3766</div><div class='add'>+0x950C = 0x503F</div><div class='add'>+0x950D = 0x6F33</div><div class='add'>+0x950E = 0x6F34</div><div class='add'>+0x950F = 0x6F35</div><div class='add'>+0x9510 = 0x4871</div><div class='add'>+0x9511 = 0x4C60</div><div class='add'>+0x9512 = 0x6F36</div><div class='add'>+0x9513 = 0x6F37</div><div class='add'>+0x9514 = 0x6F38</div><div class='add'>+0x9515 = 0x6F39</div><div class='add'>+0x9516 = 0x6F3A</div><div class='add'>+0x9517 = 0x5560</div><div class='add'>+0x9518 = 0x6F3B</div><div class='add'>+0x9519 = 0x346D</div><div class='add'>+0x951A = 0x432A</div><div class='add'>+0x951B = 0x6F3C</div><div class='add'>+0x951D = 0x6F3D</div><div class='add'>+0x951E = 0x6F3E</div><div class='add'>+0x951F = 0x6F3F</div><div class='add'>+0x9521 = 0x4E7D</div><div class='add'>+0x9522 = 0x6F40</div><div class='add'>+0x9523 = 0x4260</div><div class='add'>+0x9524 = 0x3438</div><div class='add'>+0x9525 = 0x5736</div><div class='add'>+0x9526 = 0x3D75</div><div class='add'>+0x9528 = 0x4F47</div><div class='add'>+0x9529 = 0x6F43</div><div class='add'>+0x952A = 0x6F41</div><div class='add'>+0x952B = 0x6F42</div><div class='add'>+0x952C = 0x6F44</div><div class='add'>+0x952D = 0x3627</div><div class='add'>+0x952E = 0x3C7C</div><div class='add'>+0x952F = 0x3E62</div><div class='add'>+0x9530 = 0x434C</div><div class='add'>+0x9531 = 0x6F45</div><div class='add'>+0x9532 = 0x6F46</div><div class='add'>+0x9534 = 0x6F47</div><div class='add'>+0x9535 = 0x6F4F</div><div class='add'>+0x9536 = 0x6F48</div><div class='add'>+0x9537 = 0x6F49</div><div class='add'>+0x9538 = 0x6F4A</div><div class='add'>+0x9539 = 0x4742</div><div class='add'>+0x953A = 0x6F71</div><div class='add'>+0x953B = 0x364D</div><div class='add'>+0x953C = 0x6F4B</div><div class='add'>+0x953E = 0x6F4C</div><div class='add'>+0x953F = 0x6F4D</div><div class='add'>+0x9540 = 0x3646</div><div class='add'>+0x9541 = 0x433E</div><div class='add'>+0x9542 = 0x6F4E</div><div class='add'>+0x9544 = 0x6F50</div><div class='add'>+0x9545 = 0x6F51</div><div class='add'>+0x9546 = 0x6F52</div><div class='add'>+0x9547 = 0x5572</div><div class='add'>+0x9549 = 0x6F53</div><div class='add'>+0x954A = 0x4477</div><div class='add'>+0x954C = 0x6F54</div><div class='add'>+0x954D = 0x4478</div><div class='add'>+0x954E = 0x6F55</div><div class='add'>+0x954F = 0x6F56</div><div class='add'>+0x9550 = 0x3864</div><div class='add'>+0x9551 = 0x3077</div><div class='add'>+0x9552 = 0x6F57</div><div class='add'>+0x9553 = 0x6F58</div><div class='add'>+0x9554 = 0x6F59</div><div class='add'>+0x9556 = 0x6F5A</div><div class='add'>+0x9557 = 0x6F5B</div><div class='add'>+0x9558 = 0x6F5C</div><div class='add'>+0x9559 = 0x6F5D</div><div class='add'>+0x955B = 0x6F5E</div><div class='add'>+0x955C = 0x3E35</div><div class='add'>+0x955D = 0x6F61</div><div class='add'>+0x955E = 0x6F5F</div><div class='add'>+0x955F = 0x6F60</div><div class='add'>+0x9561 = 0x6F62</div><div class='add'>+0x9562 = 0x6F63</div><div class='add'>+0x9563 = 0x414D</div><div class='add'>+0x9564 = 0x6F64</div><div class='add'>+0x9565 = 0x6F65</div><div class='add'>+0x9566 = 0x6F66</div><div class='add'>+0x9567 = 0x6F67</div><div class='add'>+0x9568 = 0x6F68</div><div class='add'>+0x9569 = 0x6F69</div><div class='add'>+0x956A = 0x6F6A</div><div class='add'>+0x956B = 0x6F6B</div><div class='add'>+0x956C = 0x6F6C</div><div class='add'>+0x956D = 0x4058</div><div class='add'>+0x956F = 0x6F6D</div><div class='add'>+0x9570 = 0x412D</div><div class='add'>+0x9571 = 0x6F6E</div><div class='add'>+0x9572 = 0x6F6F</div><div class='add'>+0x9573 = 0x6F70</div><div class='add'>+0x9576 = 0x4F62</div><div class='add'>+0x957F = 0x3324</div><div class='add'>+0x95E8 = 0x4345</div><div class='add'>+0x95E9 = 0x6345</div><div class='add'>+0x95EA = 0x4941</div><div class='add'>+0x95EB = 0x6346</div><div class='add'>+0x95ED = 0x3155</div><div class='add'>+0x95EE = 0x4E4A</div><div class='add'>+0x95EF = 0x3433</div><div class='add'>+0x95F0 = 0x4872</div><div class='add'>+0x95F1 = 0x6347</div><div class='add'>+0x95F2 = 0x4F50</div><div class='add'>+0x95F3 = 0x6348</div><div class='add'>+0x95F4 = 0x3C64</div><div class='add'>+0x95F5 = 0x6349</div><div class='add'>+0x95F6 = 0x634A</div><div class='add'>+0x95F7 = 0x4346</div><div class='add'>+0x95F8 = 0x5522</div><div class='add'>+0x95F9 = 0x4456</div><div class='add'>+0x95FA = 0x396B</div><div class='add'>+0x95FB = 0x4E45</div><div class='add'>+0x95FC = 0x634B</div><div class='add'>+0x95FD = 0x4376</div><div class='add'>+0x95FE = 0x634C</div><div class='add'>+0x9600 = 0x3727</div><div class='add'>+0x9601 = 0x3873</div><div class='add'>+0x9602 = 0x3A52</div><div class='add'>+0x9603 = 0x634D</div><div class='add'>+0x9604 = 0x634E</div><div class='add'>+0x9605 = 0x5444</div><div class='add'>+0x9606 = 0x634F</div><div class='add'>+0x9608 = 0x6350</div><div class='add'>+0x9609 = 0x514B</div><div class='add'>+0x960A = 0x6351</div><div class='add'>+0x960B = 0x6352</div><div class='add'>+0x960C = 0x6353</div><div class='add'>+0x960D = 0x6354</div><div class='add'>+0x960E = 0x5156</div><div class='add'>+0x960F = 0x6355</div><div class='add'>+0x9610 = 0x327B</div><div class='add'>+0x9611 = 0x403B</div><div class='add'>+0x9612 = 0x6356</div><div class='add'>+0x9614 = 0x402B</div><div class='add'>+0x9615 = 0x6357</div><div class='add'>+0x9616 = 0x6358</div><div class='add'>+0x9617 = 0x6359</div><div class='add'>+0x9619 = 0x635A</div><div class='add'>+0x961A = 0x635B</div><div class='add'>+0x961C = 0x3837</div><div class='add'>+0x961D = 0x5A62</div><div class='add'>+0x961F = 0x3653</div><div class='add'>+0x9621 = 0x5A64</div><div class='add'>+0x9622 = 0x5A63</div><div class='add'>+0x962A = 0x5A66</div><div class='add'>+0x962E = 0x486E</div><div class='add'>+0x9631 = 0x5A65</div><div class='add'>+0x9632 = 0x3740</div><div class='add'>+0x9633 = 0x5174</div><div class='add'>+0x9634 = 0x5275</div><div class='add'>+0x9635 = 0x5573</div><div class='add'>+0x9636 = 0x3D57</div><div class='add'>+0x963B = 0x5768</div><div class='add'>+0x963C = 0x5A68</div><div class='add'>+0x963D = 0x5A67</div><div class='add'>+0x963F = 0x3022</div><div class='add'>+0x9640 = 0x4D53</div><div class='add'>+0x9642 = 0x5A69</div><div class='add'>+0x9644 = 0x383D</div><div class='add'>+0x9645 = 0x3C4A</div><div class='add'>+0x9646 = 0x423D</div><div class='add'>+0x9647 = 0x4224</div><div class='add'>+0x9648 = 0x3342</div><div class='add'>+0x9649 = 0x5A6A</div><div class='add'>+0x964B = 0x422A</div><div class='add'>+0x964C = 0x4430</div><div class='add'>+0x964D = 0x3D35</div><div class='add'>+0x9650 = 0x4F5E</div><div class='add'>+0x9654 = 0x5A6B</div><div class='add'>+0x9655 = 0x4942</div><div class='add'>+0x965B = 0x315D</div><div class='add'>+0x965F = 0x5A6C</div><div class='add'>+0x9661 = 0x3638</div><div class='add'>+0x9662 = 0x543A</div><div class='add'>+0x9664 = 0x337D</div><div class='add'>+0x9667 = 0x5A6D</div><div class='add'>+0x9668 = 0x5449</div><div class='add'>+0x9669 = 0x4F55</div><div class='add'>+0x966A = 0x4563</div><div class='add'>+0x966C = 0x5A6E</div><div class='add'>+0x9672 = 0x5A6F</div><div class='add'>+0x9674 = 0x5A70</div><div class='add'>+0x9675 = 0x416A</div><div class='add'>+0x9676 = 0x4C55</div><div class='add'>+0x9677 = 0x4F5D</div><div class='add'>+0x9685 = 0x5367</div><div class='add'>+0x9686 = 0x4221</div><div class='add'>+0x9688 = 0x5A71</div><div class='add'>+0x968B = 0x4B65</div><div class='add'>+0x968D = 0x5A72</div><div class='add'>+0x968F = 0x4B66</div><div class='add'>+0x9690 = 0x527E</div><div class='add'>+0x9694 = 0x3874</div><div class='add'>+0x9697 = 0x5A73</div><div class='add'>+0x9698 = 0x302F</div><div class='add'>+0x9699 = 0x4F36</div><div class='add'>+0x969C = 0x554F</div><div class='add'>+0x96A7 = 0x4B6D</div><div class='add'>+0x96B0 = 0x5A74</div><div class='add'>+0x96B3 = 0x6344</div><div class='add'>+0x96B6 = 0x4125</div><div class='add'>+0x96B9 = 0x763F</div><div class='add'>+0x96BC = 0x7640</div><div class='add'>+0x96BD = 0x7641</div><div class='add'>+0x96BE = 0x4451</div><div class='add'>+0x96C0 = 0x4838</div><div class='add'>+0x96C1 = 0x5163</div><div class='add'>+0x96C4 = 0x505B</div><div class='add'>+0x96C5 = 0x5145</div><div class='add'>+0x96C6 = 0x3C2F</div><div class='add'>+0x96C7 = 0x394D</div><div class='add'>+0x96C9 = 0x6F74</div><div class='add'>+0x96CC = 0x3446</div><div class='add'>+0x96CD = 0x533A</div><div class='add'>+0x96CE = 0x7642</div><div class='add'>+0x96CF = 0x337B</div><div class='add'>+0x96D2 = 0x7643</div><div class='add'>+0x96D5 = 0x3571</div><div class='add'>+0x96E0 = 0x7645</div><div class='add'>+0x96E8 = 0x536A</div><div class='add'>+0x96E9 = 0x7627</div><div class='add'>+0x96EA = 0x5129</div><div class='add'>+0x96EF = 0x7629</div><div class='add'>+0x96F3 = 0x7628</div><div class='add'>+0x96F6 = 0x4163</div><div class='add'>+0x96F7 = 0x4057</div><div class='add'>+0x96F9 = 0x3122</div><div class='add'>+0x96FE = 0x4E6D</div><div class='add'>+0x9700 = 0x5068</div><div class='add'>+0x9701 = 0x762B</div><div class='add'>+0x9704 = 0x4F76</div><div class='add'>+0x9706 = 0x762A</div><div class='add'>+0x9707 = 0x5570</div><div class='add'>+0x9708 = 0x762C</div><div class='add'>+0x9709 = 0x4339</div><div class='add'>+0x970D = 0x3B74</div><div class='add'>+0x970E = 0x762E</div><div class='add'>+0x970F = 0x762D</div><div class='add'>+0x9713 = 0x445E</div><div class='add'>+0x9716 = 0x4158</div><div class='add'>+0x971C = 0x4B2A</div><div class='add'>+0x971E = 0x4F3C</div><div class='add'>+0x972A = 0x762F</div><div class='add'>+0x972D = 0x7630</div><div class='add'>+0x9730 = 0x7631</div><div class='add'>+0x9732 = 0x4236</div><div class='add'>+0x9738 = 0x3054</div><div class='add'>+0x9739 = 0x4579</div><div class='add'>+0x973E = 0x7632</div><div class='add'>+0x9752 = 0x4760</div><div class='add'>+0x9753 = 0x7626</div><div class='add'>+0x9756 = 0x3E38</div><div class='add'>+0x9759 = 0x3E32</div><div class='add'>+0x975B = 0x3565</div><div class='add'>+0x975E = 0x3747</div><div class='add'>+0x9760 = 0x3F3F</div><div class='add'>+0x9761 = 0x4352</div><div class='add'>+0x9762 = 0x4366</div><div class='add'>+0x9765 = 0x584C</div><div class='add'>+0x9769 = 0x386F</div><div class='add'>+0x9773 = 0x3D79</div><div class='add'>+0x9774 = 0x5125</div><div class='add'>+0x9776 = 0x3050</div><div class='add'>+0x977C = 0x7730</div><div class='add'>+0x9785 = 0x7731</div><div class='add'>+0x978B = 0x502C</div><div class='add'>+0x978D = 0x3030</div><div class='add'>+0x9791 = 0x7732</div><div class='add'>+0x9792 = 0x7733</div><div class='add'>+0x9794 = 0x7734</div><div class='add'>+0x9798 = 0x474A</div><div class='add'>+0x97A0 = 0x3E4F</div><div class='add'>+0x97A3 = 0x7737</div><div class='add'>+0x97AB = 0x7736</div><div class='add'>+0x97AD = 0x315E</div><div class='add'>+0x97AF = 0x7735</div><div class='add'>+0x97B2 = 0x7738</div><div class='add'>+0x97B4 = 0x7739</div><div class='add'>+0x97E6 = 0x4E24</div><div class='add'>+0x97E7 = 0x484D</div><div class='add'>+0x97E9 = 0x3A2B</div><div class='add'>+0x97EA = 0x6838</div><div class='add'>+0x97EB = 0x6839</div><div class='add'>+0x97EC = 0x683A</div><div class='add'>+0x97ED = 0x3E42</div><div class='add'>+0x97F3 = 0x5274</div><div class='add'>+0x97F5 = 0x544F</div><div class='add'>+0x97F6 = 0x4958</div><div class='add'>+0x9875 = 0x5233</div><div class='add'>+0x9876 = 0x3625</div><div class='add'>+0x9877 = 0x476A</div><div class='add'>+0x9878 = 0x717C</div><div class='add'>+0x9879 = 0x4F6E</div><div class='add'>+0x987A = 0x4B33</div><div class='add'>+0x987B = 0x506B</div><div class='add'>+0x987C = 0x676F</div><div class='add'>+0x987D = 0x4D67</div><div class='add'>+0x987E = 0x394B</div><div class='add'>+0x987F = 0x3659</div><div class='add'>+0x9880 = 0x717D</div><div class='add'>+0x9881 = 0x3064</div><div class='add'>+0x9882 = 0x4B4C</div><div class='add'>+0x9883 = 0x717E</div><div class='add'>+0x9884 = 0x5424</div><div class='add'>+0x9885 = 0x422D</div><div class='add'>+0x9886 = 0x416C</div><div class='add'>+0x9887 = 0x4644</div><div class='add'>+0x9888 = 0x3E31</div><div class='add'>+0x9889 = 0x7221</div><div class='add'>+0x988A = 0x3C55</div><div class='add'>+0x988C = 0x7222</div><div class='add'>+0x988D = 0x7223</div><div class='add'>+0x988F = 0x7224</div><div class='add'>+0x9890 = 0x5243</div><div class='add'>+0x9891 = 0x4635</div><div class='add'>+0x9893 = 0x4D47</div><div class='add'>+0x9894 = 0x7225</div><div class='add'>+0x9896 = 0x5331</div><div class='add'>+0x9897 = 0x3F45</div><div class='add'>+0x9898 = 0x4C62</div><div class='add'>+0x989A = 0x7226</div><div class='add'>+0x989B = 0x7227</div><div class='add'>+0x989C = 0x5155</div><div class='add'>+0x989D = 0x366E</div><div class='add'>+0x989E = 0x7228</div><div class='add'>+0x989F = 0x7229</div><div class='add'>+0x98A0 = 0x355F</div><div class='add'>+0x98A1 = 0x722A</div><div class='add'>+0x98A2 = 0x722B</div><div class='add'>+0x98A4 = 0x327C</div><div class='add'>+0x98A5 = 0x722C</div><div class='add'>+0x98A6 = 0x722D</div><div class='add'>+0x98A7 = 0x4827</div><div class='add'>+0x98CE = 0x3767</div><div class='add'>+0x98D1 = 0x6C29</div><div class='add'>+0x98D2 = 0x6C2A</div><div class='add'>+0x98D3 = 0x6C2B</div><div class='add'>+0x98D5 = 0x6C2C</div><div class='add'>+0x98D8 = 0x462E</div><div class='add'>+0x98D9 = 0x6C2D</div><div class='add'>+0x98DA = 0x6C2E</div><div class='add'>+0x98DE = 0x3749</div><div class='add'>+0x98DF = 0x4A33</div><div class='add'>+0x98E7 = 0x6238</div><div class='add'>+0x98E8 = 0x774F</div><div class='add'>+0x990D = 0x7750</div><div class='add'>+0x9910 = 0x324D</div><div class='add'>+0x992E = 0x7751</div><div class='add'>+0x9954 = 0x7753</div><div class='add'>+0x9955 = 0x7752</div><div class='add'>+0x9963 = 0x623B</div><div class='add'>+0x9965 = 0x3C22</div><div class='add'>+0x9967 = 0x623C</div><div class='add'>+0x9968 = 0x623D</div><div class='add'>+0x9969 = 0x623E</div><div class='add'>+0x996A = 0x623F</div><div class='add'>+0x996B = 0x6240</div><div class='add'>+0x996C = 0x6241</div><div class='add'>+0x996D = 0x3739</div><div class='add'>+0x996E = 0x527B</div><div class='add'>+0x996F = 0x3D24</div><div class='add'>+0x9970 = 0x4A4E</div><div class='add'>+0x9971 = 0x3125</div><div class='add'>+0x9972 = 0x4B47</div><div class='add'>+0x9974 = 0x6242</div><div class='add'>+0x9975 = 0x367C</div><div class='add'>+0x9976 = 0x4844</div><div class='add'>+0x9977 = 0x6243</div><div class='add'>+0x997A = 0x3D48</div><div class='add'>+0x997C = 0x317D</div><div class='add'>+0x997D = 0x6244</div><div class='add'>+0x997F = 0x3676</div><div class='add'>+0x9980 = 0x6245</div><div class='add'>+0x9981 = 0x4459</div><div class='add'>+0x9984 = 0x6246</div><div class='add'>+0x9985 = 0x4F5A</div><div class='add'>+0x9986 = 0x395D</div><div class='add'>+0x9987 = 0x6247</div><div class='add'>+0x9988 = 0x4021</div><div class='add'>+0x998A = 0x6248</div><div class='add'>+0x998B = 0x3276</div><div class='add'>+0x998D = 0x6249</div><div class='add'>+0x998F = 0x4173</div><div class='add'>+0x9990 = 0x624A</div><div class='add'>+0x9991 = 0x624B</div><div class='add'>+0x9992 = 0x4278</div><div class='add'>+0x9993 = 0x624C</div><div class='add'>+0x9994 = 0x624D</div><div class='add'>+0x9995 = 0x624E</div><div class='add'>+0x9996 = 0x4A57</div><div class='add'>+0x9997 = 0x5838</div><div class='add'>+0x9998 = 0x5965</div><div class='add'>+0x9999 = 0x4F63</div><div class='add'>+0x99A5 = 0x7025</div><div class='add'>+0x99A8 = 0x5C30</div><div class='add'>+0x9A6C = 0x426D</div><div class='add'>+0x9A6D = 0x5426</div><div class='add'>+0x9A6E = 0x4D54</div><div class='add'>+0x9A6F = 0x5131</div><div class='add'>+0x9A70 = 0x335B</div><div class='add'>+0x9A71 = 0x477D</div><div class='add'>+0x9A73 = 0x3235</div><div class='add'>+0x9A74 = 0x423F</div><div class='add'>+0x9A75 = 0x6660</div><div class='add'>+0x9A76 = 0x4A3B</div><div class='add'>+0x9A77 = 0x6661</div><div class='add'>+0x9A78 = 0x6662</div><div class='add'>+0x9A79 = 0x3E54</div><div class='add'>+0x9A7A = 0x6663</div><div class='add'>+0x9A7B = 0x5724</div><div class='add'>+0x9A7C = 0x4D55</div><div class='add'>+0x9A7D = 0x6665</div><div class='add'>+0x9A7E = 0x3C5D</div><div class='add'>+0x9A7F = 0x6664</div><div class='add'>+0x9A80 = 0x6666</div><div class='add'>+0x9A81 = 0x6667</div><div class='add'>+0x9A82 = 0x426E</div><div class='add'>+0x9A84 = 0x3D3E</div><div class='add'>+0x9A85 = 0x6668</div><div class='add'>+0x9A86 = 0x4266</div><div class='add'>+0x9A87 = 0x3A27</div><div class='add'>+0x9A88 = 0x6669</div><div class='add'>+0x9A8A = 0x666A</div><div class='add'>+0x9A8B = 0x3352</div><div class='add'>+0x9A8C = 0x5169</div><div class='add'>+0x9A8F = 0x3F25</div><div class='add'>+0x9A90 = 0x666B</div><div class='add'>+0x9A91 = 0x466F</div><div class='add'>+0x9A92 = 0x666C</div><div class='add'>+0x9A93 = 0x666D</div><div class='add'>+0x9A96 = 0x666E</div><div class='add'>+0x9A97 = 0x462D</div><div class='add'>+0x9A98 = 0x666F</div><div class='add'>+0x9A9A = 0x4927</div><div class='add'>+0x9A9B = 0x6670</div><div class='add'>+0x9A9C = 0x6671</div><div class='add'>+0x9A9D = 0x6672</div><div class='add'>+0x9A9E = 0x6539</div><div class='add'>+0x9A9F = 0x6673</div><div class='add'>+0x9AA0 = 0x6674</div><div class='add'>+0x9AA1 = 0x4262</div><div class='add'>+0x9AA2 = 0x6675</div><div class='add'>+0x9AA3 = 0x6676</div><div class='add'>+0x9AA4 = 0x5668</div><div class='add'>+0x9AA5 = 0x6677</div><div class='add'>+0x9AA7 = 0x6678</div><div class='add'>+0x9AA8 = 0x3947</div><div class='add'>+0x9AB0 = 0x773B</div><div class='add'>+0x9AB1 = 0x773A</div><div class='add'>+0x9AB6 = 0x773E</div><div class='add'>+0x9AB7 = 0x773C</div><div class='add'>+0x9AB8 = 0x3A21</div><div class='add'>+0x9ABA = 0x773F</div><div class='add'>+0x9ABC = 0x7740</div><div class='add'>+0x9AC0 = 0x7742</div><div class='add'>+0x9AC1 = 0x7741</div><div class='add'>+0x9AC2 = 0x7744</div><div class='add'>+0x9AC5 = 0x7743</div><div class='add'>+0x9ACB = 0x7745</div><div class='add'>+0x9ACC = 0x7746</div><div class='add'>+0x9AD1 = 0x7747</div><div class='add'>+0x9AD3 = 0x4B68</div><div class='add'>+0x9AD8 = 0x385F</div><div class='add'>+0x9ADF = 0x7754</div><div class='add'>+0x9AE1 = 0x7755</div><div class='add'>+0x9AE6 = 0x7756</div><div class='add'>+0x9AEB = 0x7758</div><div class='add'>+0x9AED = 0x775A</div><div class='add'>+0x9AEF = 0x7757</div><div class='add'>+0x9AF9 = 0x775B</div><div class='add'>+0x9AFB = 0x7759</div><div class='add'>+0x9B03 = 0x5757</div><div class='add'>+0x9B08 = 0x775C</div><div class='add'>+0x9B0F = 0x775D</div><div class='add'>+0x9B13 = 0x775E</div><div class='add'>+0x9B1F = 0x775F</div><div class='add'>+0x9B23 = 0x7760</div><div class='add'>+0x9B2F = 0x5B4B</div><div class='add'>+0x9B32 = 0x582A</div><div class='add'>+0x9B3B = 0x6577</div><div class='add'>+0x9B3C = 0x396D</div><div class='add'>+0x9B41 = 0x3F7D</div><div class='add'>+0x9B42 = 0x3B6A</div><div class='add'>+0x9B43 = 0x7749</div><div class='add'>+0x9B44 = 0x4647</div><div class='add'>+0x9B45 = 0x7748</div><div class='add'>+0x9B47 = 0x774A</div><div class='add'>+0x9B48 = 0x774C</div><div class='add'>+0x9B49 = 0x774B</div><div class='add'>+0x9B4D = 0x774D</div><div class='add'>+0x9B4F = 0x4E3A</div><div class='add'>+0x9B51 = 0x774E</div><div class='add'>+0x9B54 = 0x4427</div><div class='add'>+0x9C7C = 0x5363</div><div class='add'>+0x9C7F = 0x764F</div><div class='add'>+0x9C81 = 0x4233</div><div class='add'>+0x9C82 = 0x7650</div><div class='add'>+0x9C85 = 0x7651</div><div class='add'>+0x9C86 = 0x7652</div><div class='add'>+0x9C87 = 0x7653</div><div class='add'>+0x9C88 = 0x7654</div><div class='add'>+0x9C8B = 0x7656</div><div class='add'>+0x9C8D = 0x312B</div><div class='add'>+0x9C8E = 0x7657</div><div class='add'>+0x9C90 = 0x7658</div><div class='add'>+0x9C91 = 0x7659</div><div class='add'>+0x9C92 = 0x765A</div><div class='add'>+0x9C94 = 0x765B</div><div class='add'>+0x9C95 = 0x765C</div><div class='add'>+0x9C9A = 0x765D</div><div class='add'>+0x9C9B = 0x765E</div><div class='add'>+0x9C9C = 0x4F4A</div><div class='add'>+0x9C9E = 0x765F</div><div class='add'>+0x9C9F = 0x7660</div><div class='add'>+0x9CA0 = 0x7661</div><div class='add'>+0x9CA1 = 0x7662</div><div class='add'>+0x9CA2 = 0x7663</div><div class='add'>+0x9CA3 = 0x7664</div><div class='add'>+0x9CA4 = 0x4070</div><div class='add'>+0x9CA5 = 0x7665</div><div class='add'>+0x9CA6 = 0x7666</div><div class='add'>+0x9CA7 = 0x7667</div><div class='add'>+0x9CA8 = 0x7668</div><div class='add'>+0x9CA9 = 0x7669</div><div class='add'>+0x9CAB = 0x766A</div><div class='add'>+0x9CAD = 0x766B</div><div class='add'>+0x9CAE = 0x766C</div><div class='add'>+0x9CB0 = 0x766D</div><div class='add'>+0x9CB1 = 0x766E</div><div class='add'>+0x9CB2 = 0x766F</div><div class='add'>+0x9CB3 = 0x7670</div><div class='add'>+0x9CB4 = 0x7671</div><div class='add'>+0x9CB5 = 0x7672</div><div class='add'>+0x9CB6 = 0x7673</div><div class='add'>+0x9CB7 = 0x7674</div><div class='add'>+0x9CB8 = 0x3E28</div><div class='add'>+0x9CBA = 0x7675</div><div class='add'>+0x9CBB = 0x7676</div><div class='add'>+0x9CBC = 0x7677</div><div class='add'>+0x9CBD = 0x7678</div><div class='add'>+0x9CC3 = 0x487A</div><div class='add'>+0x9CC4 = 0x7679</div><div class='add'>+0x9CC5 = 0x767A</div><div class='add'>+0x9CC6 = 0x767B</div><div class='add'>+0x9CC7 = 0x767C</div><div class='add'>+0x9CCA = 0x767D</div><div class='add'>+0x9CCB = 0x767E</div><div class='add'>+0x9CCC = 0x7721</div><div class='add'>+0x9CCD = 0x7722</div><div class='add'>+0x9CCE = 0x7723</div><div class='add'>+0x9CCF = 0x7724</div><div class='add'>+0x9CD0 = 0x7725</div><div class='add'>+0x9CD3 = 0x7726</div><div class='add'>+0x9CD4 = 0x7727</div><div class='add'>+0x9CD5 = 0x7728</div><div class='add'>+0x9CD6 = 0x316E</div><div class='add'>+0x9CD7 = 0x7729</div><div class='add'>+0x9CD8 = 0x772A</div><div class='add'>+0x9CD9 = 0x772B</div><div class='add'>+0x9CDC = 0x772C</div><div class='add'>+0x9CDD = 0x772D</div><div class='add'>+0x9CDE = 0x415B</div><div class='add'>+0x9CDF = 0x772E</div><div class='add'>+0x9CE2 = 0x772F</div><div class='add'>+0x9E1F = 0x4471</div><div class='add'>+0x9E20 = 0x702F</div><div class='add'>+0x9E21 = 0x3C26</div><div class='add'>+0x9E22 = 0x7030</div><div class='add'>+0x9E23 = 0x4379</div><div class='add'>+0x9E25 = 0x4538</div><div class='add'>+0x9E26 = 0x513B</div><div class='add'>+0x9E28 = 0x7031</div><div class='add'>+0x9E29 = 0x7032</div><div class='add'>+0x9E2A = 0x7033</div><div class='add'>+0x9E2B = 0x7034</div><div class='add'>+0x9E2C = 0x7035</div><div class='add'>+0x9E2D = 0x513C</div><div class='add'>+0x9E2F = 0x516C</div><div class='add'>+0x9E31 = 0x7037</div><div class='add'>+0x9E32 = 0x7036</div><div class='add'>+0x9E33 = 0x5427</div><div class='add'>+0x9E35 = 0x4D52</div><div class='add'>+0x9E36 = 0x7038</div><div class='add'>+0x9E37 = 0x703A</div><div class='add'>+0x9E38 = 0x7039</div><div class='add'>+0x9E39 = 0x703B</div><div class='add'>+0x9E3A = 0x703C</div><div class='add'>+0x9E3D = 0x386B</div><div class='add'>+0x9E3E = 0x703D</div><div class='add'>+0x9E3F = 0x3A68</div><div class='add'>+0x9E41 = 0x703E</div><div class='add'>+0x9E42 = 0x703F</div><div class='add'>+0x9E43 = 0x3E69</div><div class='add'>+0x9E44 = 0x7040</div><div class='add'>+0x9E45 = 0x366C</div><div class='add'>+0x9E46 = 0x7041</div><div class='add'>+0x9E47 = 0x7042</div><div class='add'>+0x9E48 = 0x7043</div><div class='add'>+0x9E49 = 0x7044</div><div class='add'>+0x9E4A = 0x4835</div><div class='add'>+0x9E4B = 0x7045</div><div class='add'>+0x9E4C = 0x7046</div><div class='add'>+0x9E4E = 0x7047</div><div class='add'>+0x9E4F = 0x4574</div><div class='add'>+0x9E51 = 0x7048</div><div class='add'>+0x9E55 = 0x7049</div><div class='add'>+0x9E57 = 0x704A</div><div class='add'>+0x9E58 = 0x773D</div><div class='add'>+0x9E5A = 0x704B</div><div class='add'>+0x9E5B = 0x704C</div><div class='add'>+0x9E5C = 0x704D</div><div class='add'>+0x9E5E = 0x704E</div><div class='add'>+0x9E63 = 0x704F</div><div class='add'>+0x9E64 = 0x3A57</div><div class='add'>+0x9E66 = 0x7050</div><div class='add'>+0x9E67 = 0x7051</div><div class='add'>+0x9E68 = 0x7052</div><div class='add'>+0x9E69 = 0x7053</div><div class='add'>+0x9E6A = 0x7054</div><div class='add'>+0x9E6B = 0x7055</div><div class='add'>+0x9E6C = 0x7056</div><div class='add'>+0x9E6D = 0x7058</div><div class='add'>+0x9E70 = 0x5325</div><div class='add'>+0x9E71 = 0x7057</div><div class='add'>+0x9E73 = 0x7059</div><div class='add'>+0x9E7E = 0x753A</div><div class='add'>+0x9E7F = 0x4239</div><div class='add'>+0x9E82 = 0x7764</div><div class='add'>+0x9E87 = 0x7765</div><div class='add'>+0x9E88 = 0x7766</div><div class='add'>+0x9E8B = 0x7767</div><div class='add'>+0x9E92 = 0x7768</div><div class='add'>+0x9E93 = 0x4234</div><div class='add'>+0x9E9D = 0x776A</div><div class='add'>+0x9E9F = 0x776B</div><div class='add'>+0x9EA6 = 0x4273</div><div class='add'>+0x9EB4 = 0x7470</div><div class='add'>+0x9EB8 = 0x746F</div><div class='add'>+0x9EBB = 0x4269</div><div class='add'>+0x9EBD = 0x7761</div><div class='add'>+0x9EBE = 0x7762</div><div class='add'>+0x9EC4 = 0x3B46</div><div class='add'>+0x9EC9 = 0x5964</div><div class='add'>+0x9ECD = 0x4A72</div><div class='add'>+0x9ECE = 0x4068</div><div class='add'>+0x9ECF = 0x7024</div><div class='add'>+0x9ED1 = 0x3A5A</div><div class='add'>+0x9ED4 = 0x472D</div><div class='add'>+0x9ED8 = 0x442C</div><div class='add'>+0x9EDB = 0x776C</div><div class='add'>+0x9EDC = 0x776D</div><div class='add'>+0x9EDD = 0x776E</div><div class='add'>+0x9EDF = 0x7770</div><div class='add'>+0x9EE0 = 0x776F</div><div class='add'>+0x9EE2 = 0x7771</div><div class='add'>+0x9EE5 = 0x7774</div><div class='add'>+0x9EE7 = 0x7773</div><div class='add'>+0x9EE9 = 0x7772</div><div class='add'>+0x9EEA = 0x7775</div><div class='add'>+0x9EEF = 0x7776</div><div class='add'>+0x9EF9 = 0x6D69</div><div class='add'>+0x9EFB = 0x6D6A</div><div class='add'>+0x9EFC = 0x6D6B</div><div class='add'>+0x9EFE = 0x763C</div><div class='add'>+0x9F0B = 0x763D</div><div class='add'>+0x9F0D = 0x763E</div><div class='add'>+0x9F0E = 0x3626</div><div class='add'>+0x9F10 = 0x583E</div><div class='add'>+0x9F13 = 0x3944</div><div class='add'>+0x9F17 = 0x583B</div><div class='add'>+0x9F19 = 0x5C31</div><div class='add'>+0x9F20 = 0x4A73</div><div class='add'>+0x9F22 = 0x7777</div><div class='add'>+0x9F2C = 0x7778</div><div class='add'>+0x9F2F = 0x7779</div><div class='add'>+0x9F37 = 0x777B</div><div class='add'>+0x9F39 = 0x777A</div><div class='add'>+0x9F3B = 0x3147</div><div class='add'>+0x9F3D = 0x777C</div><div class='add'>+0x9F3E = 0x777D</div><div class='add'>+0x9F44 = 0x777E</div><div class='add'>+0x9F50 = 0x466B</div><div class='add'>+0x9F51 = 0x6C34</div><div class='add'>+0x9F7F = 0x335D</div><div class='add'>+0x9F80 = 0x7633</div><div class='add'>+0x9F83 = 0x7634</div><div class='add'>+0x9F84 = 0x4164</div><div class='add'>+0x9F85 = 0x7635</div><div class='add'>+0x9F86 = 0x7636</div><div class='add'>+0x9F87 = 0x7637</div><div class='add'>+0x9F88 = 0x7638</div><div class='add'>+0x9F89 = 0x7639</div><div class='add'>+0x9F8A = 0x763A</div><div class='add'>+0x9F8B = 0x4823</div><div class='add'>+0x9F8C = 0x763B</div><div class='add'>+0x9F99 = 0x417A</div><div class='add'>+0x9F9A = 0x3928</div><div class='add'>+0x9F9B = 0x6D68</div><div class='add'>+0x9F9F = 0x396A</div><div class='add'>+0x9FA0 = 0x595F</div><div class='add'>+0xFF01 = 0x2321</div><div class='add'>+0xFF02 = 0x2322</div><div class='add'>+0xFF03 = 0x2323</div><div class='add'>+0xFF04 = 0x2167</div><div class='add'>+0xFF05 = 0x2325</div><div class='add'>+0xFF06 = 0x2326</div><div class='add'>+0xFF07 = 0x2327</div><div class='add'>+0xFF08 = 0x2328</div><div class='add'>+0xFF09 = 0x2329</div><div class='add'>+0xFF0A = 0x232A</div><div class='add'>+0xFF0B = 0x232B</div><div class='add'>+0xFF0C = 0x232C</div><div class='add'>+0xFF0D = 0x232D</div><div class='add'>+0xFF0E = 0x232E</div><div class='add'>+0xFF0F = 0x232F</div><div class='add'>+0xFF10 = 0x2330</div><div class='add'>+0xFF11 = 0x2331</div><div class='add'>+0xFF12 = 0x2332</div><div class='add'>+0xFF13 = 0x2333</div><div class='add'>+0xFF14 = 0x2334</div><div class='add'>+0xFF15 = 0x2335</div><div class='add'>+0xFF16 = 0x2336</div><div class='add'>+0xFF17 = 0x2337</div><div class='add'>+0xFF18 = 0x2338</div><div class='add'>+0xFF19 = 0x2339</div><div class='add'>+0xFF1A = 0x233A</div><div class='add'>+0xFF1B = 0x233B</div><div class='add'>+0xFF1C = 0x233C</div><div class='add'>+0xFF1D = 0x233D</div><div class='add'>+0xFF1E = 0x233E</div><div class='add'>+0xFF1F = 0x233F</div><div class='add'>+0xFF20 = 0x2340</div><div class='add'>+0xFF21 = 0x2341</div><div class='add'>+0xFF22 = 0x2342</div><div class='add'>+0xFF23 = 0x2343</div><div class='add'>+0xFF24 = 0x2344</div><div class='add'>+0xFF25 = 0x2345</div><div class='add'>+0xFF26 = 0x2346</div><div class='add'>+0xFF27 = 0x2347</div><div class='add'>+0xFF28 = 0x2348</div><div class='add'>+0xFF29 = 0x2349</div><div class='add'>+0xFF2A = 0x234A</div><div class='add'>+0xFF2B = 0x234B</div><div class='add'>+0xFF2C = 0x234C</div><div class='add'>+0xFF2D = 0x234D</div><div class='add'>+0xFF2E = 0x234E</div><div class='add'>+0xFF2F = 0x234F</div><div class='add'>+0xFF30 = 0x2350</div><div class='add'>+0xFF31 = 0x2351</div><div class='add'>+0xFF32 = 0x2352</div><div class='add'>+0xFF33 = 0x2353</div><div class='add'>+0xFF34 = 0x2354</div><div class='add'>+0xFF35 = 0x2355</div><div class='add'>+0xFF36 = 0x2356</div><div class='add'>+0xFF37 = 0x2357</div><div class='add'>+0xFF38 = 0x2358</div><div class='add'>+0xFF39 = 0x2359</div><div class='add'>+0xFF3A = 0x235A</div><div class='add'>+0xFF3B = 0x235B</div><div class='add'>+0xFF3C = 0x235C</div><div class='add'>+0xFF3D = 0x235D</div><div class='add'>+0xFF3E = 0x235E</div><div class='add'>+0xFF3F = 0x235F</div><div class='add'>+0xFF40 = 0x2360</div><div class='add'>+0xFF41 = 0x2361</div><div class='add'>+0xFF42 = 0x2362</div><div class='add'>+0xFF43 = 0x2363</div><div class='add'>+0xFF44 = 0x2364</div><div class='add'>+0xFF45 = 0x2365</div><div class='add'>+0xFF46 = 0x2366</div><div class='add'>+0xFF47 = 0x2367</div><div class='add'>+0xFF48 = 0x2368</div><div class='add'>+0xFF49 = 0x2369</div><div class='add'>+0xFF4A = 0x236A</div><div class='add'>+0xFF4B = 0x236B</div><div class='add'>+0xFF4C = 0x236C</div><div class='add'>+0xFF4D = 0x236D</div><div class='add'>+0xFF4E = 0x236E</div><div class='add'>+0xFF4F = 0x236F</div><div class='add'>+0xFF50 = 0x2370</div><div class='add'>+0xFF51 = 0x2371</div><div class='add'>+0xFF52 = 0x2372</div><div class='add'>+0xFF53 = 0x2373</div><div class='add'>+0xFF54 = 0x2374</div><div class='add'>+0xFF55 = 0x2375</div><div class='add'>+0xFF56 = 0x2376</div><div class='add'>+0xFF57 = 0x2377</div><div class='add'>+0xFF58 = 0x2378</div><div class='add'>+0xFF59 = 0x2379</div><div class='add'>+0xFF5A = 0x237A</div><div class='add'>+0xFF5B = 0x237B</div><div class='add'>+0xFF5C = 0x237C</div><div class='add'>+0xFF5D = 0x237D</div><div class='add'>+0xFF5E = 0x212B</div><div class='add'>+0xFFE0 = 0x2169</div><div class='add'>+0xFFE1 = 0x216A</div><div class='add'>+0xFFE3 = 0x237E</div><div class='add'>+0xFFE5 = 0x2324</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0201-KANA%UCS.src b/enc/trans/JIS/JISX0201-KANA%UCS.src<br/>new file mode 100644<br/>index 0000000000..d25b580fed<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0201-KANA%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0201-KANA%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,127 @@</div><div class='add'>+# $NetBSD: JISX0201-KANA%UCS.src,v 1.3 2006/10/26 16:19:02 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		JISX0201-KANA/UCS</div><div class='add'>+SRC_ZONE	0x21-0x5F</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             JIS X 0201 (1976) to Unicode 1.1 Table</div><div class='add'>+#	Unicode version:  1.1</div><div class='add'>+#	Table version:    0.9</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             8 March 1994</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on magnetic media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</div><div class='add'>+#</div><div class='add'>+#	Recipient is granted the right to make copies in any form for</div><div class='add'>+#	internal distribution and to freely use the information supplied</div><div class='add'>+#	in the creation of products supporting Unicode.  Unicode, Inc.</div><div class='add'>+#	specifically excludes the right to re-distribute this file directly</div><div class='add'>+#	to third parties or other organizations whether for profit or not.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# This table contains one set of mappings from JIS X 0201 into Unicode.</div><div class='add'>+# Note that these data are *possible* mappings only and may not be the</div><div class='add'>+# same as those used by actual products, nor may they be the best suited</div><div class='add'>+# for all uses.  For more information on the mappings between various code</div><div class='add'>+# pages incorporating the repertoire of JIS X 0201 and Unicode, consult the</div><div class='add'>+# VENDORS mapping data.  Normative information on the mapping between</div><div class='add'>+# JIS X 0201 and Unicode may be found in the Unihan.txt file in the</div><div class='add'>+# latest Unicode Character Database.</div><div class='add'>+#</div><div class='add'>+# If you have carefully considered the fact that the mappings in</div><div class='add'>+# this table are only one possible set of mappings between JIS X 0201 and</div><div class='add'>+# Unicode and have no normative status, but still feel that you</div><div class='add'>+# have located an error in the table that requires fixing, you may</div><div class='add'>+# report any such error to errata@unicode.org.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+#	Format:  Three tab-separated columns</div><div class='add'>+#		Column #1 is the shift JIS code (in hex as 0xXX)</div><div class='add'>+#		Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		Column #3 the Unicode (ISO 10646) name (follows a comment sign)</div><div class='add'>+#</div><div class='add'>+#	The entries are in JIS order</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+0x21 = 0xFF61</div><div class='add'>+0x22 = 0xFF62</div><div class='add'>+0x23 = 0xFF63</div><div class='add'>+0x24 = 0xFF64</div><div class='add'>+0x25 = 0xFF65</div><div class='add'>+0x26 = 0xFF66</div><div class='add'>+0x27 = 0xFF67</div><div class='add'>+0x28 = 0xFF68</div><div class='add'>+0x29 = 0xFF69</div><div class='add'>+0x2A = 0xFF6A</div><div class='add'>+0x2B = 0xFF6B</div><div class='add'>+0x2C = 0xFF6C</div><div class='add'>+0x2D = 0xFF6D</div><div class='add'>+0x2E = 0xFF6E</div><div class='add'>+0x2F = 0xFF6F</div><div class='add'>+0x30 = 0xFF70</div><div class='add'>+0x31 = 0xFF71</div><div class='add'>+0x32 = 0xFF72</div><div class='add'>+0x33 = 0xFF73</div><div class='add'>+0x34 = 0xFF74</div><div class='add'>+0x35 = 0xFF75</div><div class='add'>+0x36 = 0xFF76</div><div class='add'>+0x37 = 0xFF77</div><div class='add'>+0x38 = 0xFF78</div><div class='add'>+0x39 = 0xFF79</div><div class='add'>+0x3A = 0xFF7A</div><div class='add'>+0x3B = 0xFF7B</div><div class='add'>+0x3C = 0xFF7C</div><div class='add'>+0x3D = 0xFF7D</div><div class='add'>+0x3E = 0xFF7E</div><div class='add'>+0x3F = 0xFF7F</div><div class='add'>+0x40 = 0xFF80</div><div class='add'>+0x41 = 0xFF81</div><div class='add'>+0x42 = 0xFF82</div><div class='add'>+0x43 = 0xFF83</div><div class='add'>+0x44 = 0xFF84</div><div class='add'>+0x45 = 0xFF85</div><div class='add'>+0x46 = 0xFF86</div><div class='add'>+0x47 = 0xFF87</div><div class='add'>+0x48 = 0xFF88</div><div class='add'>+0x49 = 0xFF89</div><div class='add'>+0x4A = 0xFF8A</div><div class='add'>+0x4B = 0xFF8B</div><div class='add'>+0x4C = 0xFF8C</div><div class='add'>+0x4D = 0xFF8D</div><div class='add'>+0x4E = 0xFF8E</div><div class='add'>+0x4F = 0xFF8F</div><div class='add'>+0x50 = 0xFF90</div><div class='add'>+0x51 = 0xFF91</div><div class='add'>+0x52 = 0xFF92</div><div class='add'>+0x53 = 0xFF93</div><div class='add'>+0x54 = 0xFF94</div><div class='add'>+0x55 = 0xFF95</div><div class='add'>+0x56 = 0xFF96</div><div class='add'>+0x57 = 0xFF97</div><div class='add'>+0x58 = 0xFF98</div><div class='add'>+0x59 = 0xFF99</div><div class='add'>+0x5A = 0xFF9A</div><div class='add'>+0x5B = 0xFF9B</div><div class='add'>+0x5C = 0xFF9C</div><div class='add'>+0x5D = 0xFF9D</div><div class='add'>+0x5E = 0xFF9E</div><div class='add'>+0x5F = 0xFF9F</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0208@1990%UCS.src b/enc/trans/JIS/JISX0208@1990%UCS.src<br/>new file mode 100644<br/>index 0000000000..c2cacd422e<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0208@1990%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0208@1990%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,6972 @@</div><div class='add'>+# $NetBSD: JISX0208@1990%UCS.src,v 1.5 2006/12/02 14:36:13 tnozaki Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		JISX0208:1990/UCS</div><div class='add'>+SRC_ZONE	0x21-0x74 / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             JIS X 0208 (1990) to Unicode</div><div class='add'>+#	Unicode version:  1.1</div><div class='add'>+#	Table version:    0.9</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             8 March 1994</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on magnetic media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</div><div class='add'>+#</div><div class='add'>+#	Recipient is granted the right to make copies in any form for</div><div class='add'>+#	internal distribution and to freely use the information supplied</div><div class='add'>+#	in the creation of products supporting Unicode.  Unicode, Inc.</div><div class='add'>+#	specifically excludes the right to re-distribute this file directly</div><div class='add'>+#	to third parties or other organizations whether for profit or not.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# This table contains one set of mappings from JIS X 0208 (1990) into Unicode.</div><div class='add'>+# Note that these data are *possible* mappings only and may not be the</div><div class='add'>+# same as those used by actual products, nor may they be the best suited</div><div class='add'>+# for all uses.  For more information on the mappings between various code</div><div class='add'>+# pages incorporating the repertoire of JIS X 0208 (1990) and Unicode, consult the</div><div class='add'>+# VENDORS mapping data.  Normative information on the mapping between</div><div class='add'>+# JIS X 0208 (1990) and Unicode may be found in the Unihan.txt file in the</div><div class='add'>+# latest Unicode Character Database.</div><div class='add'>+#</div><div class='add'>+# If you have carefully considered the fact that the mappings in</div><div class='add'>+# this table are only one possible set of mappings between JIS X 0208 (1990)</div><div class='add'>+# and Unicode and have no normative status, but still feel that you</div><div class='add'>+# have located an error in the table that requires fixing, you may</div><div class='add'>+# report any such error to errata@unicode.org.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+#	Format:  Four tab-separated columns</div><div class='add'>+#		 Column #1 is the shift-JIS code (in hex)</div><div class='add'>+#		 Column #2 is the JIS X 0208 code (in hex as 0xXXXX)</div><div class='add'>+#		 Column #3 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		 Column #4 the Unicode name (follows a comment sign, '#')</div><div class='add'>+#			The official names for Unicode characters U+4E00</div><div class='add'>+#			to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",</div><div class='add'>+#			where XXXX is the code point.  Including all these</div><div class='add'>+#			names in this file increases its size substantially</div><div class='add'>+#			and needlessly.  The token "&lt;CJK&gt;" is used for the</div><div class='add'>+#			name of these characters.  If necessary, it can be</div><div class='add'>+#			expanded algorithmically by a parser or editor.</div><div class='add'>+#</div><div class='add'>+#	The entries are in JIS X 0208 order</div><div class='add'>+#</div><div class='add'>+#	The following algorithms can be used to change the hex form</div><div class='add'>+#		of JIS 0208 to other standard forms:</div><div class='add'>+#</div><div class='add'>+#		To change hex to EUC form, add 0x8080</div><div class='add'>+#		To change hex to kuten form, first subtract 0x2020.  Then</div><div class='add'>+#			the high and low bytes correspond to the ku and ten of</div><div class='add'>+#			the kuten form.  For example, 0x2121 -&gt; 0x0101 -&gt; 0101;</div><div class='add'>+#			0x7426 -&gt; 0x5406 -&gt; 8406</div><div class='add'>+#</div><div class='add'>+#   The kanji mappings are a normative part of ISO/IEC 10646.  The</div><div class='add'>+#       non-kanji mappings are provisional, pending definition of</div><div class='add'>+#       official mappings by Japanese standards bodies</div><div class='add'>+#</div><div class='add'>+#	Any comments or problems, contact &lt;John_Jenkins@taligent.com&gt;</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# NetBSD specific modification:</div><div class='add'>+#	2003-08-18 : change the conversion for reverse solidus (0x2140).</div><div class='add'>+#			Unicode Inc.'s table converts it to U+005C,</div><div class='add'>+#			but this may conflict in the case of compound encoding,</div><div class='add'>+#			e.g. EUC-JP.  Instead, we use U+FF3C.</div><div class='add'>+#</div><div class='add'>+0x2121 = 0x3000</div><div class='add'>+0x2122 = 0x3001</div><div class='add'>+0x2123 = 0x3002</div><div class='add'>+0x2124 = 0xFF0C</div><div class='add'>+0x2125 = 0xFF0E</div><div class='add'>+0x2126 = 0x30FB</div><div class='add'>+0x2127 = 0xFF1A</div><div class='add'>+0x2128 = 0xFF1B</div><div class='add'>+0x2129 = 0xFF1F</div><div class='add'>+0x212A = 0xFF01</div><div class='add'>+0x212B = 0x309B</div><div class='add'>+0x212C = 0x309C</div><div class='add'>+0x212D = 0x00B4</div><div class='add'>+0x212E = 0xFF40</div><div class='add'>+0x212F = 0x00A8</div><div class='add'>+0x2130 = 0xFF3E</div><div class='add'>+0x2131 = 0xFFE3</div><div class='add'>+0x2132 = 0xFF3F</div><div class='add'>+0x2133 = 0x30FD</div><div class='add'>+0x2134 = 0x30FE</div><div class='add'>+0x2135 = 0x309D</div><div class='add'>+0x2136 = 0x309E</div><div class='add'>+0x2137 = 0x3003</div><div class='add'>+0x2138 = 0x4EDD</div><div class='add'>+0x2139 = 0x3005</div><div class='add'>+0x213A = 0x3006</div><div class='add'>+0x213B = 0x3007</div><div class='add'>+0x213C = 0x30FC</div><div class='add'>+0x213D = 0x2014</div><div class='add'>+0x213E = 0x2010</div><div class='add'>+0x213F = 0xFF0F</div><div class='add'>+0x2140 = 0xFF3C</div><div class='add'>+0x2141 = 0x301C</div><div class='add'>+0x2142 = 0x2016</div><div class='add'>+0x2143 = 0xFF5C</div><div class='add'>+0x2144 = 0x2026</div><div class='add'>+0x2145 = 0x2025</div><div class='add'>+0x2146 = 0x2018</div><div class='add'>+0x2147 = 0x2019</div><div class='add'>+0x2148 = 0x201C</div><div class='add'>+0x2149 = 0x201D</div><div class='add'>+0x214A = 0xFF08</div><div class='add'>+0x214B = 0xFF09</div><div class='add'>+0x214C = 0x3014</div><div class='add'>+0x214D = 0x3015</div><div class='add'>+0x214E = 0xFF3B</div><div class='add'>+0x214F = 0xFF3D</div><div class='add'>+0x2150 = 0xFF5B</div><div class='add'>+0x2151 = 0xFF5D</div><div class='add'>+0x2152 = 0x3008</div><div class='add'>+0x2153 = 0x3009</div><div class='add'>+0x2154 = 0x300A</div><div class='add'>+0x2155 = 0x300B</div><div class='add'>+0x2156 = 0x300C</div><div class='add'>+0x2157 = 0x300D</div><div class='add'>+0x2158 = 0x300E</div><div class='add'>+0x2159 = 0x300F</div><div class='add'>+0x215A = 0x3010</div><div class='add'>+0x215B = 0x3011</div><div class='add'>+0x215C = 0xFF0B</div><div class='add'>+0x215D = 0x2212</div><div class='add'>+0x215E = 0x00B1</div><div class='add'>+0x215F = 0x00D7</div><div class='add'>+0x2160 = 0x00F7</div><div class='add'>+0x2161 = 0xFF1D</div><div class='add'>+0x2162 = 0x2260</div><div class='add'>+0x2163 = 0xFF1C</div><div class='add'>+0x2164 = 0xFF1E</div><div class='add'>+0x2165 = 0x2266</div><div class='add'>+0x2166 = 0x2267</div><div class='add'>+0x2167 = 0x221E</div><div class='add'>+0x2168 = 0x2234</div><div class='add'>+0x2169 = 0x2642</div><div class='add'>+0x216A = 0x2640</div><div class='add'>+0x216B = 0x00B0</div><div class='add'>+0x216C = 0x2032</div><div class='add'>+0x216D = 0x2033</div><div class='add'>+0x216E = 0x2103</div><div class='add'>+0x216F = 0xFFE5</div><div class='add'>+0x2170 = 0xFF04</div><div class='add'>+0x2171 = 0x00A2</div><div class='add'>+0x2172 = 0x00A3</div><div class='add'>+0x2173 = 0xFF05</div><div class='add'>+0x2174 = 0xFF03</div><div class='add'>+0x2175 = 0xFF06</div><div class='add'>+0x2176 = 0xFF0A</div><div class='add'>+0x2177 = 0xFF20</div><div class='add'>+0x2178 = 0x00A7</div><div class='add'>+0x2179 = 0x2606</div><div class='add'>+0x217A = 0x2605</div><div class='add'>+0x217B = 0x25CB</div><div class='add'>+0x217C = 0x25CF</div><div class='add'>+0x217D = 0x25CE</div><div class='add'>+0x217E = 0x25C7</div><div class='add'>+0x2221 = 0x25C6</div><div class='add'>+0x2222 = 0x25A1</div><div class='add'>+0x2223 = 0x25A0</div><div class='add'>+0x2224 = 0x25B3</div><div class='add'>+0x2225 = 0x25B2</div><div class='add'>+0x2226 = 0x25BD</div><div class='add'>+0x2227 = 0x25BC</div><div class='add'>+0x2228 = 0x203B</div><div class='add'>+0x2229 = 0x3012</div><div class='add'>+0x222A = 0x2192</div><div class='add'>+0x222B = 0x2190</div><div class='add'>+0x222C = 0x2191</div><div class='add'>+0x222D = 0x2193</div><div class='add'>+0x222E = 0x3013</div><div class='add'>+0x223A = 0x2208</div><div class='add'>+0x223B = 0x220B</div><div class='add'>+0x223C = 0x2286</div><div class='add'>+0x223D = 0x2287</div><div class='add'>+0x223E = 0x2282</div><div class='add'>+0x223F = 0x2283</div><div class='add'>+0x2240 = 0x222A</div><div class='add'>+0x2241 = 0x2229</div><div class='add'>+0x224A = 0x2227</div><div class='add'>+0x224B = 0x2228</div><div class='add'>+0x224C = 0x00AC</div><div class='add'>+0x224D = 0x21D2</div><div class='add'>+0x224E = 0x21D4</div><div class='add'>+0x224F = 0x2200</div><div class='add'>+0x2250 = 0x2203</div><div class='add'>+0x225C = 0x2220</div><div class='add'>+0x225D = 0x22A5</div><div class='add'>+0x225E = 0x2312</div><div class='add'>+0x225F = 0x2202</div><div class='add'>+0x2260 = 0x2207</div><div class='add'>+0x2261 = 0x2261</div><div class='add'>+0x2262 = 0x2252</div><div class='add'>+0x2263 = 0x226A</div><div class='add'>+0x2264 = 0x226B</div><div class='add'>+0x2265 = 0x221A</div><div class='add'>+0x2266 = 0x223D</div><div class='add'>+0x2267 = 0x221D</div><div class='add'>+0x2268 = 0x2235</div><div class='add'>+0x2269 = 0x222B</div><div class='add'>+0x226A = 0x222C</div><div class='add'>+0x2272 = 0x212B</div><div class='add'>+0x2273 = 0x2030</div><div class='add'>+0x2274 = 0x266F</div><div class='add'>+0x2275 = 0x266D</div><div class='add'>+0x2276 = 0x266A</div><div class='add'>+0x2277 = 0x2020</div><div class='add'>+0x2278 = 0x2021</div><div class='add'>+0x2279 = 0x00B6</div><div class='add'>+0x227E = 0x25EF</div><div class='add'>+0x2330 = 0xFF10</div><div class='add'>+0x2331 = 0xFF11</div><div class='add'>+0x2332 = 0xFF12</div><div class='add'>+0x2333 = 0xFF13</div><div class='add'>+0x2334 = 0xFF14</div><div class='add'>+0x2335 = 0xFF15</div><div class='add'>+0x2336 = 0xFF16</div><div class='add'>+0x2337 = 0xFF17</div><div class='add'>+0x2338 = 0xFF18</div><div class='add'>+0x2339 = 0xFF19</div><div class='add'>+0x2341 = 0xFF21</div><div class='add'>+0x2342 = 0xFF22</div><div class='add'>+0x2343 = 0xFF23</div><div class='add'>+0x2344 = 0xFF24</div><div class='add'>+0x2345 = 0xFF25</div><div class='add'>+0x2346 = 0xFF26</div><div class='add'>+0x2347 = 0xFF27</div><div class='add'>+0x2348 = 0xFF28</div><div class='add'>+0x2349 = 0xFF29</div><div class='add'>+0x234A = 0xFF2A</div><div class='add'>+0x234B = 0xFF2B</div><div class='add'>+0x234C = 0xFF2C</div><div class='add'>+0x234D = 0xFF2D</div><div class='add'>+0x234E = 0xFF2E</div><div class='add'>+0x234F = 0xFF2F</div><div class='add'>+0x2350 = 0xFF30</div><div class='add'>+0x2351 = 0xFF31</div><div class='add'>+0x2352 = 0xFF32</div><div class='add'>+0x2353 = 0xFF33</div><div class='add'>+0x2354 = 0xFF34</div><div class='add'>+0x2355 = 0xFF35</div><div class='add'>+0x2356 = 0xFF36</div><div class='add'>+0x2357 = 0xFF37</div><div class='add'>+0x2358 = 0xFF38</div><div class='add'>+0x2359 = 0xFF39</div><div class='add'>+0x235A = 0xFF3A</div><div class='add'>+0x2361 = 0xFF41</div><div class='add'>+0x2362 = 0xFF42</div><div class='add'>+0x2363 = 0xFF43</div><div class='add'>+0x2364 = 0xFF44</div><div class='add'>+0x2365 = 0xFF45</div><div class='add'>+0x2366 = 0xFF46</div><div class='add'>+0x2367 = 0xFF47</div><div class='add'>+0x2368 = 0xFF48</div><div class='add'>+0x2369 = 0xFF49</div><div class='add'>+0x236A = 0xFF4A</div><div class='add'>+0x236B = 0xFF4B</div><div class='add'>+0x236C = 0xFF4C</div><div class='add'>+0x236D = 0xFF4D</div><div class='add'>+0x236E = 0xFF4E</div><div class='add'>+0x236F = 0xFF4F</div><div class='add'>+0x2370 = 0xFF50</div><div class='add'>+0x2371 = 0xFF51</div><div class='add'>+0x2372 = 0xFF52</div><div class='add'>+0x2373 = 0xFF53</div><div class='add'>+0x2374 = 0xFF54</div><div class='add'>+0x2375 = 0xFF55</div><div class='add'>+0x2376 = 0xFF56</div><div class='add'>+0x2377 = 0xFF57</div><div class='add'>+0x2378 = 0xFF58</div><div class='add'>+0x2379 = 0xFF59</div><div class='add'>+0x237A = 0xFF5A</div><div class='add'>+0x2421 = 0x3041</div><div class='add'>+0x2422 = 0x3042</div><div class='add'>+0x2423 = 0x3043</div><div class='add'>+0x2424 = 0x3044</div><div class='add'>+0x2425 = 0x3045</div><div class='add'>+0x2426 = 0x3046</div><div class='add'>+0x2427 = 0x3047</div><div class='add'>+0x2428 = 0x3048</div><div class='add'>+0x2429 = 0x3049</div><div class='add'>+0x242A = 0x304A</div><div class='add'>+0x242B = 0x304B</div><div class='add'>+0x242C = 0x304C</div><div class='add'>+0x242D = 0x304D</div><div class='add'>+0x242E = 0x304E</div><div class='add'>+0x242F = 0x304F</div><div class='add'>+0x2430 = 0x3050</div><div class='add'>+0x2431 = 0x3051</div><div class='add'>+0x2432 = 0x3052</div><div class='add'>+0x2433 = 0x3053</div><div class='add'>+0x2434 = 0x3054</div><div class='add'>+0x2435 = 0x3055</div><div class='add'>+0x2436 = 0x3056</div><div class='add'>+0x2437 = 0x3057</div><div class='add'>+0x2438 = 0x3058</div><div class='add'>+0x2439 = 0x3059</div><div class='add'>+0x243A = 0x305A</div><div class='add'>+0x243B = 0x305B</div><div class='add'>+0x243C = 0x305C</div><div class='add'>+0x243D = 0x305D</div><div class='add'>+0x243E = 0x305E</div><div class='add'>+0x243F = 0x305F</div><div class='add'>+0x2440 = 0x3060</div><div class='add'>+0x2441 = 0x3061</div><div class='add'>+0x2442 = 0x3062</div><div class='add'>+0x2443 = 0x3063</div><div class='add'>+0x2444 = 0x3064</div><div class='add'>+0x2445 = 0x3065</div><div class='add'>+0x2446 = 0x3066</div><div class='add'>+0x2447 = 0x3067</div><div class='add'>+0x2448 = 0x3068</div><div class='add'>+0x2449 = 0x3069</div><div class='add'>+0x244A = 0x306A</div><div class='add'>+0x244B = 0x306B</div><div class='add'>+0x244C = 0x306C</div><div class='add'>+0x244D = 0x306D</div><div class='add'>+0x244E = 0x306E</div><div class='add'>+0x244F = 0x306F</div><div class='add'>+0x2450 = 0x3070</div><div class='add'>+0x2451 = 0x3071</div><div class='add'>+0x2452 = 0x3072</div><div class='add'>+0x2453 = 0x3073</div><div class='add'>+0x2454 = 0x3074</div><div class='add'>+0x2455 = 0x3075</div><div class='add'>+0x2456 = 0x3076</div><div class='add'>+0x2457 = 0x3077</div><div class='add'>+0x2458 = 0x3078</div><div class='add'>+0x2459 = 0x3079</div><div class='add'>+0x245A = 0x307A</div><div class='add'>+0x245B = 0x307B</div><div class='add'>+0x245C = 0x307C</div><div class='add'>+0x245D = 0x307D</div><div class='add'>+0x245E = 0x307E</div><div class='add'>+0x245F = 0x307F</div><div class='add'>+0x2460 = 0x3080</div><div class='add'>+0x2461 = 0x3081</div><div class='add'>+0x2462 = 0x3082</div><div class='add'>+0x2463 = 0x3083</div><div class='add'>+0x2464 = 0x3084</div><div class='add'>+0x2465 = 0x3085</div><div class='add'>+0x2466 = 0x3086</div><div class='add'>+0x2467 = 0x3087</div><div class='add'>+0x2468 = 0x3088</div><div class='add'>+0x2469 = 0x3089</div><div class='add'>+0x246A = 0x308A</div><div class='add'>+0x246B = 0x308B</div><div class='add'>+0x246C = 0x308C</div><div class='add'>+0x246D = 0x308D</div><div class='add'>+0x246E = 0x308E</div><div class='add'>+0x246F = 0x308F</div><div class='add'>+0x2470 = 0x3090</div><div class='add'>+0x2471 = 0x3091</div><div class='add'>+0x2472 = 0x3092</div><div class='add'>+0x2473 = 0x3093</div><div class='add'>+0x2521 = 0x30A1</div><div class='add'>+0x2522 = 0x30A2</div><div class='add'>+0x2523 = 0x30A3</div><div class='add'>+0x2524 = 0x30A4</div><div class='add'>+0x2525 = 0x30A5</div><div class='add'>+0x2526 = 0x30A6</div><div class='add'>+0x2527 = 0x30A7</div><div class='add'>+0x2528 = 0x30A8</div><div class='add'>+0x2529 = 0x30A9</div><div class='add'>+0x252A = 0x30AA</div><div class='add'>+0x252B = 0x30AB</div><div class='add'>+0x252C = 0x30AC</div><div class='add'>+0x252D = 0x30AD</div><div class='add'>+0x252E = 0x30AE</div><div class='add'>+0x252F = 0x30AF</div><div class='add'>+0x2530 = 0x30B0</div><div class='add'>+0x2531 = 0x30B1</div><div class='add'>+0x2532 = 0x30B2</div><div class='add'>+0x2533 = 0x30B3</div><div class='add'>+0x2534 = 0x30B4</div><div class='add'>+0x2535 = 0x30B5</div><div class='add'>+0x2536 = 0x30B6</div><div class='add'>+0x2537 = 0x30B7</div><div class='add'>+0x2538 = 0x30B8</div><div class='add'>+0x2539 = 0x30B9</div><div class='add'>+0x253A = 0x30BA</div><div class='add'>+0x253B = 0x30BB</div><div class='add'>+0x253C = 0x30BC</div><div class='add'>+0x253D = 0x30BD</div><div class='add'>+0x253E = 0x30BE</div><div class='add'>+0x253F = 0x30BF</div><div class='add'>+0x2540 = 0x30C0</div><div class='add'>+0x2541 = 0x30C1</div><div class='add'>+0x2542 = 0x30C2</div><div class='add'>+0x2543 = 0x30C3</div><div class='add'>+0x2544 = 0x30C4</div><div class='add'>+0x2545 = 0x30C5</div><div class='add'>+0x2546 = 0x30C6</div><div class='add'>+0x2547 = 0x30C7</div><div class='add'>+0x2548 = 0x30C8</div><div class='add'>+0x2549 = 0x30C9</div><div class='add'>+0x254A = 0x30CA</div><div class='add'>+0x254B = 0x30CB</div><div class='add'>+0x254C = 0x30CC</div><div class='add'>+0x254D = 0x30CD</div><div class='add'>+0x254E = 0x30CE</div><div class='add'>+0x254F = 0x30CF</div><div class='add'>+0x2550 = 0x30D0</div><div class='add'>+0x2551 = 0x30D1</div><div class='add'>+0x2552 = 0x30D2</div><div class='add'>+0x2553 = 0x30D3</div><div class='add'>+0x2554 = 0x30D4</div><div class='add'>+0x2555 = 0x30D5</div><div class='add'>+0x2556 = 0x30D6</div><div class='add'>+0x2557 = 0x30D7</div><div class='add'>+0x2558 = 0x30D8</div><div class='add'>+0x2559 = 0x30D9</div><div class='add'>+0x255A = 0x30DA</div><div class='add'>+0x255B = 0x30DB</div><div class='add'>+0x255C = 0x30DC</div><div class='add'>+0x255D = 0x30DD</div><div class='add'>+0x255E = 0x30DE</div><div class='add'>+0x255F = 0x30DF</div><div class='add'>+0x2560 = 0x30E0</div><div class='add'>+0x2561 = 0x30E1</div><div class='add'>+0x2562 = 0x30E2</div><div class='add'>+0x2563 = 0x30E3</div><div class='add'>+0x2564 = 0x30E4</div><div class='add'>+0x2565 = 0x30E5</div><div class='add'>+0x2566 = 0x30E6</div><div class='add'>+0x2567 = 0x30E7</div><div class='add'>+0x2568 = 0x30E8</div><div class='add'>+0x2569 = 0x30E9</div><div class='add'>+0x256A = 0x30EA</div><div class='add'>+0x256B = 0x30EB</div><div class='add'>+0x256C = 0x30EC</div><div class='add'>+0x256D = 0x30ED</div><div class='add'>+0x256E = 0x30EE</div><div class='add'>+0x256F = 0x30EF</div><div class='add'>+0x2570 = 0x30F0</div><div class='add'>+0x2571 = 0x30F1</div><div class='add'>+0x2572 = 0x30F2</div><div class='add'>+0x2573 = 0x30F3</div><div class='add'>+0x2574 = 0x30F4</div><div class='add'>+0x2575 = 0x30F5</div><div class='add'>+0x2576 = 0x30F6</div><div class='add'>+0x2621 = 0x0391</div><div class='add'>+0x2622 = 0x0392</div><div class='add'>+0x2623 = 0x0393</div><div class='add'>+0x2624 = 0x0394</div><div class='add'>+0x2625 = 0x0395</div><div class='add'>+0x2626 = 0x0396</div><div class='add'>+0x2627 = 0x0397</div><div class='add'>+0x2628 = 0x0398</div><div class='add'>+0x2629 = 0x0399</div><div class='add'>+0x262A = 0x039A</div><div class='add'>+0x262B = 0x039B</div><div class='add'>+0x262C = 0x039C</div><div class='add'>+0x262D = 0x039D</div><div class='add'>+0x262E = 0x039E</div><div class='add'>+0x262F = 0x039F</div><div class='add'>+0x2630 = 0x03A0</div><div class='add'>+0x2631 = 0x03A1</div><div class='add'>+0x2632 = 0x03A3</div><div class='add'>+0x2633 = 0x03A4</div><div class='add'>+0x2634 = 0x03A5</div><div class='add'>+0x2635 = 0x03A6</div><div class='add'>+0x2636 = 0x03A7</div><div class='add'>+0x2637 = 0x03A8</div><div class='add'>+0x2638 = 0x03A9</div><div class='add'>+0x2641 = 0x03B1</div><div class='add'>+0x2642 = 0x03B2</div><div class='add'>+0x2643 = 0x03B3</div><div class='add'>+0x2644 = 0x03B4</div><div class='add'>+0x2645 = 0x03B5</div><div class='add'>+0x2646 = 0x03B6</div><div class='add'>+0x2647 = 0x03B7</div><div class='add'>+0x2648 = 0x03B8</div><div class='add'>+0x2649 = 0x03B9</div><div class='add'>+0x264A = 0x03BA</div><div class='add'>+0x264B = 0x03BB</div><div class='add'>+0x264C = 0x03BC</div><div class='add'>+0x264D = 0x03BD</div><div class='add'>+0x264E = 0x03BE</div><div class='add'>+0x264F = 0x03BF</div><div class='add'>+0x2650 = 0x03C0</div><div class='add'>+0x2651 = 0x03C1</div><div class='add'>+0x2652 = 0x03C3</div><div class='add'>+0x2653 = 0x03C4</div><div class='add'>+0x2654 = 0x03C5</div><div class='add'>+0x2655 = 0x03C6</div><div class='add'>+0x2656 = 0x03C7</div><div class='add'>+0x2657 = 0x03C8</div><div class='add'>+0x2658 = 0x03C9</div><div class='add'>+0x2721 = 0x0410</div><div class='add'>+0x2722 = 0x0411</div><div class='add'>+0x2723 = 0x0412</div><div class='add'>+0x2724 = 0x0413</div><div class='add'>+0x2725 = 0x0414</div><div class='add'>+0x2726 = 0x0415</div><div class='add'>+0x2727 = 0x0401</div><div class='add'>+0x2728 = 0x0416</div><div class='add'>+0x2729 = 0x0417</div><div class='add'>+0x272A = 0x0418</div><div class='add'>+0x272B = 0x0419</div><div class='add'>+0x272C = 0x041A</div><div class='add'>+0x272D = 0x041B</div><div class='add'>+0x272E = 0x041C</div><div class='add'>+0x272F = 0x041D</div><div class='add'>+0x2730 = 0x041E</div><div class='add'>+0x2731 = 0x041F</div><div class='add'>+0x2732 = 0x0420</div><div class='add'>+0x2733 = 0x0421</div><div class='add'>+0x2734 = 0x0422</div><div class='add'>+0x2735 = 0x0423</div><div class='add'>+0x2736 = 0x0424</div><div class='add'>+0x2737 = 0x0425</div><div class='add'>+0x2738 = 0x0426</div><div class='add'>+0x2739 = 0x0427</div><div class='add'>+0x273A = 0x0428</div><div class='add'>+0x273B = 0x0429</div><div class='add'>+0x273C = 0x042A</div><div class='add'>+0x273D = 0x042B</div><div class='add'>+0x273E = 0x042C</div><div class='add'>+0x273F = 0x042D</div><div class='add'>+0x2740 = 0x042E</div><div class='add'>+0x2741 = 0x042F</div><div class='add'>+0x2751 = 0x0430</div><div class='add'>+0x2752 = 0x0431</div><div class='add'>+0x2753 = 0x0432</div><div class='add'>+0x2754 = 0x0433</div><div class='add'>+0x2755 = 0x0434</div><div class='add'>+0x2756 = 0x0435</div><div class='add'>+0x2757 = 0x0451</div><div class='add'>+0x2758 = 0x0436</div><div class='add'>+0x2759 = 0x0437</div><div class='add'>+0x275A = 0x0438</div><div class='add'>+0x275B = 0x0439</div><div class='add'>+0x275C = 0x043A</div><div class='add'>+0x275D = 0x043B</div><div class='add'>+0x275E = 0x043C</div><div class='add'>+0x275F = 0x043D</div><div class='add'>+0x2760 = 0x043E</div><div class='add'>+0x2761 = 0x043F</div><div class='add'>+0x2762 = 0x0440</div><div class='add'>+0x2763 = 0x0441</div><div class='add'>+0x2764 = 0x0442</div><div class='add'>+0x2765 = 0x0443</div><div class='add'>+0x2766 = 0x0444</div><div class='add'>+0x2767 = 0x0445</div><div class='add'>+0x2768 = 0x0446</div><div class='add'>+0x2769 = 0x0447</div><div class='add'>+0x276A = 0x0448</div><div class='add'>+0x276B = 0x0449</div><div class='add'>+0x276C = 0x044A</div><div class='add'>+0x276D = 0x044B</div><div class='add'>+0x276E = 0x044C</div><div class='add'>+0x276F = 0x044D</div><div class='add'>+0x2770 = 0x044E</div><div class='add'>+0x2771 = 0x044F</div><div class='add'>+0x2821 = 0x2500</div><div class='add'>+0x2822 = 0x2502</div><div class='add'>+0x2823 = 0x250C</div><div class='add'>+0x2824 = 0x2510</div><div class='add'>+0x2825 = 0x2518</div><div class='add'>+0x2826 = 0x2514</div><div class='add'>+0x2827 = 0x251C</div><div class='add'>+0x2828 = 0x252C</div><div class='add'>+0x2829 = 0x2524</div><div class='add'>+0x282A = 0x2534</div><div class='add'>+0x282B = 0x253C</div><div class='add'>+0x282C = 0x2501</div><div class='add'>+0x282D = 0x2503</div><div class='add'>+0x282E = 0x250F</div><div class='add'>+0x282F = 0x2513</div><div class='add'>+0x2830 = 0x251B</div><div class='add'>+0x2831 = 0x2517</div><div class='add'>+0x2832 = 0x2523</div><div class='add'>+0x2833 = 0x2533</div><div class='add'>+0x2834 = 0x252B</div><div class='add'>+0x2835 = 0x253B</div><div class='add'>+0x2836 = 0x254B</div><div class='add'>+0x2837 = 0x2520</div><div class='add'>+0x2838 = 0x252F</div><div class='add'>+0x2839 = 0x2528</div><div class='add'>+0x283A = 0x2537</div><div class='add'>+0x283B = 0x253F</div><div class='add'>+0x283C = 0x251D</div><div class='add'>+0x283D = 0x2530</div><div class='add'>+0x283E = 0x2525</div><div class='add'>+0x283F = 0x2538</div><div class='add'>+0x2840 = 0x2542</div><div class='add'>+0x3021 = 0x4E9C</div><div class='add'>+0x3022 = 0x5516</div><div class='add'>+0x3023 = 0x5A03</div><div class='add'>+0x3024 = 0x963F</div><div class='add'>+0x3025 = 0x54C0</div><div class='add'>+0x3026 = 0x611B</div><div class='add'>+0x3027 = 0x6328</div><div class='add'>+0x3028 = 0x59F6</div><div class='add'>+0x3029 = 0x9022</div><div class='add'>+0x302A = 0x8475</div><div class='add'>+0x302B = 0x831C</div><div class='add'>+0x302C = 0x7A50</div><div class='add'>+0x302D = 0x60AA</div><div class='add'>+0x302E = 0x63E1</div><div class='add'>+0x302F = 0x6E25</div><div class='add'>+0x3030 = 0x65ED</div><div class='add'>+0x3031 = 0x8466</div><div class='add'>+0x3032 = 0x82A6</div><div class='add'>+0x3033 = 0x9BF5</div><div class='add'>+0x3034 = 0x6893</div><div class='add'>+0x3035 = 0x5727</div><div class='add'>+0x3036 = 0x65A1</div><div class='add'>+0x3037 = 0x6271</div><div class='add'>+0x3038 = 0x5B9B</div><div class='add'>+0x3039 = 0x59D0</div><div class='add'>+0x303A = 0x867B</div><div class='add'>+0x303B = 0x98F4</div><div class='add'>+0x303C = 0x7D62</div><div class='add'>+0x303D = 0x7DBE</div><div class='add'>+0x303E = 0x9B8E</div><div class='add'>+0x303F = 0x6216</div><div class='add'>+0x3040 = 0x7C9F</div><div class='add'>+0x3041 = 0x88B7</div><div class='add'>+0x3042 = 0x5B89</div><div class='add'>+0x3043 = 0x5EB5</div><div class='add'>+0x3044 = 0x6309</div><div class='add'>+0x3045 = 0x6697</div><div class='add'>+0x3046 = 0x6848</div><div class='add'>+0x3047 = 0x95C7</div><div class='add'>+0x3048 = 0x978D</div><div class='add'>+0x3049 = 0x674F</div><div class='add'>+0x304A = 0x4EE5</div><div class='add'>+0x304B = 0x4F0A</div><div class='add'>+0x304C = 0x4F4D</div><div class='add'>+0x304D = 0x4F9D</div><div class='add'>+0x304E = 0x5049</div><div class='add'>+0x304F = 0x56F2</div><div class='add'>+0x3050 = 0x5937</div><div class='add'>+0x3051 = 0x59D4</div><div class='add'>+0x3052 = 0x5A01</div><div class='add'>+0x3053 = 0x5C09</div><div class='add'>+0x3054 = 0x60DF</div><div class='add'>+0x3055 = 0x610F</div><div class='add'>+0x3056 = 0x6170</div><div class='add'>+0x3057 = 0x6613</div><div class='add'>+0x3058 = 0x6905</div><div class='add'>+0x3059 = 0x70BA</div><div class='add'>+0x305A = 0x754F</div><div class='add'>+0x305B = 0x7570</div><div class='add'>+0x305C = 0x79FB</div><div class='add'>+0x305D = 0x7DAD</div><div class='add'>+0x305E = 0x7DEF</div><div class='add'>+0x305F = 0x80C3</div><div class='add'>+0x3060 = 0x840E</div><div class='add'>+0x3061 = 0x8863</div><div class='add'>+0x3062 = 0x8B02</div><div class='add'>+0x3063 = 0x9055</div><div class='add'>+0x3064 = 0x907A</div><div class='add'>+0x3065 = 0x533B</div><div class='add'>+0x3066 = 0x4E95</div><div class='add'>+0x3067 = 0x4EA5</div><div class='add'>+0x3068 = 0x57DF</div><div class='add'>+0x3069 = 0x80B2</div><div class='add'>+0x306A = 0x90C1</div><div class='add'>+0x306B = 0x78EF</div><div class='add'>+0x306C = 0x4E00</div><div class='add'>+0x306D = 0x58F1</div><div class='add'>+0x306E = 0x6EA2</div><div class='add'>+0x306F = 0x9038</div><div class='add'>+0x3070 = 0x7A32</div><div class='add'>+0x3071 = 0x8328</div><div class='add'>+0x3072 = 0x828B</div><div class='add'>+0x3073 = 0x9C2F</div><div class='add'>+0x3074 = 0x5141</div><div class='add'>+0x3075 = 0x5370</div><div class='add'>+0x3076 = 0x54BD</div><div class='add'>+0x3077 = 0x54E1</div><div class='add'>+0x3078 = 0x56E0</div><div class='add'>+0x3079 = 0x59FB</div><div class='add'>+0x307A = 0x5F15</div><div class='add'>+0x307B = 0x98F2</div><div class='add'>+0x307C = 0x6DEB</div><div class='add'>+0x307D = 0x80E4</div><div class='add'>+0x307E = 0x852D</div><div class='add'>+0x3121 = 0x9662</div><div class='add'>+0x3122 = 0x9670</div><div class='add'>+0x3123 = 0x96A0</div><div class='add'>+0x3124 = 0x97FB</div><div class='add'>+0x3125 = 0x540B</div><div class='add'>+0x3126 = 0x53F3</div><div class='add'>+0x3127 = 0x5B87</div><div class='add'>+0x3128 = 0x70CF</div><div class='add'>+0x3129 = 0x7FBD</div><div class='add'>+0x312A = 0x8FC2</div><div class='add'>+0x312B = 0x96E8</div><div class='add'>+0x312C = 0x536F</div><div class='add'>+0x312D = 0x9D5C</div><div class='add'>+0x312E = 0x7ABA</div><div class='add'>+0x312F = 0x4E11</div><div class='add'>+0x3130 = 0x7893</div><div class='add'>+0x3131 = 0x81FC</div><div class='add'>+0x3132 = 0x6E26</div><div class='add'>+0x3133 = 0x5618</div><div class='add'>+0x3134 = 0x5504</div><div class='add'>+0x3135 = 0x6B1D</div><div class='add'>+0x3136 = 0x851A</div><div class='add'>+0x3137 = 0x9C3B</div><div class='add'>+0x3138 = 0x59E5</div><div class='add'>+0x3139 = 0x53A9</div><div class='add'>+0x313A = 0x6D66</div><div class='add'>+0x313B = 0x74DC</div><div class='add'>+0x313C = 0x958F</div><div class='add'>+0x313D = 0x5642</div><div class='add'>+0x313E = 0x4E91</div><div class='add'>+0x313F = 0x904B</div><div class='add'>+0x3140 = 0x96F2</div><div class='add'>+0x3141 = 0x834F</div><div class='add'>+0x3142 = 0x990C</div><div class='add'>+0x3143 = 0x53E1</div><div class='add'>+0x3144 = 0x55B6</div><div class='add'>+0x3145 = 0x5B30</div><div class='add'>+0x3146 = 0x5F71</div><div class='add'>+0x3147 = 0x6620</div><div class='add'>+0x3148 = 0x66F3</div><div class='add'>+0x3149 = 0x6804</div><div class='add'>+0x314A = 0x6C38</div><div class='add'>+0x314B = 0x6CF3</div><div class='add'>+0x314C = 0x6D29</div><div class='add'>+0x314D = 0x745B</div><div class='add'>+0x314E = 0x76C8</div><div class='add'>+0x314F = 0x7A4E</div><div class='add'>+0x3150 = 0x9834</div><div class='add'>+0x3151 = 0x82F1</div><div class='add'>+0x3152 = 0x885B</div><div class='add'>+0x3153 = 0x8A60</div><div class='add'>+0x3154 = 0x92ED</div><div class='add'>+0x3155 = 0x6DB2</div><div class='add'>+0x3156 = 0x75AB</div><div class='add'>+0x3157 = 0x76CA</div><div class='add'>+0x3158 = 0x99C5</div><div class='add'>+0x3159 = 0x60A6</div><div class='add'>+0x315A = 0x8B01</div><div class='add'>+0x315B = 0x8D8A</div><div class='add'>+0x315C = 0x95B2</div><div class='add'>+0x315D = 0x698E</div><div class='add'>+0x315E = 0x53AD</div><div class='add'>+0x315F = 0x5186</div><div class='add'>+0x3160 = 0x5712</div><div class='add'>+0x3161 = 0x5830</div><div class='add'>+0x3162 = 0x5944</div><div class='add'>+0x3163 = 0x5BB4</div><div class='add'>+0x3164 = 0x5EF6</div><div class='add'>+0x3165 = 0x6028</div><div class='add'>+0x3166 = 0x63A9</div><div class='add'>+0x3167 = 0x63F4</div><div class='add'>+0x3168 = 0x6CBF</div><div class='add'>+0x3169 = 0x6F14</div><div class='add'>+0x316A = 0x708E</div><div class='add'>+0x316B = 0x7114</div><div class='add'>+0x316C = 0x7159</div><div class='add'>+0x316D = 0x71D5</div><div class='add'>+0x316E = 0x733F</div><div class='add'>+0x316F = 0x7E01</div><div class='add'>+0x3170 = 0x8276</div><div class='add'>+0x3171 = 0x82D1</div><div class='add'>+0x3172 = 0x8597</div><div class='add'>+0x3173 = 0x9060</div><div class='add'>+0x3174 = 0x925B</div><div class='add'>+0x3175 = 0x9D1B</div><div class='add'>+0x3176 = 0x5869</div><div class='add'>+0x3177 = 0x65BC</div><div class='add'>+0x3178 = 0x6C5A</div><div class='add'>+0x3179 = 0x7525</div><div class='add'>+0x317A = 0x51F9</div><div class='add'>+0x317B = 0x592E</div><div class='add'>+0x317C = 0x5965</div><div class='add'>+0x317D = 0x5F80</div><div class='add'>+0x317E = 0x5FDC</div><div class='add'>+0x3221 = 0x62BC</div><div class='add'>+0x3222 = 0x65FA</div><div class='add'>+0x3223 = 0x6A2A</div><div class='add'>+0x3224 = 0x6B27</div><div class='add'>+0x3225 = 0x6BB4</div><div class='add'>+0x3226 = 0x738B</div><div class='add'>+0x3227 = 0x7FC1</div><div class='add'>+0x3228 = 0x8956</div><div class='add'>+0x3229 = 0x9D2C</div><div class='add'>+0x322A = 0x9D0E</div><div class='add'>+0x322B = 0x9EC4</div><div class='add'>+0x322C = 0x5CA1</div><div class='add'>+0x322D = 0x6C96</div><div class='add'>+0x322E = 0x837B</div><div class='add'>+0x322F = 0x5104</div><div class='add'>+0x3230 = 0x5C4B</div><div class='add'>+0x3231 = 0x61B6</div><div class='add'>+0x3232 = 0x81C6</div><div class='add'>+0x3233 = 0x6876</div><div class='add'>+0x3234 = 0x7261</div><div class='add'>+0x3235 = 0x4E59</div><div class='add'>+0x3236 = 0x4FFA</div><div class='add'>+0x3237 = 0x5378</div><div class='add'>+0x3238 = 0x6069</div><div class='add'>+0x3239 = 0x6E29</div><div class='add'>+0x323A = 0x7A4F</div><div class='add'>+0x323B = 0x97F3</div><div class='add'>+0x323C = 0x4E0B</div><div class='add'>+0x323D = 0x5316</div><div class='add'>+0x323E = 0x4EEE</div><div class='add'>+0x323F = 0x4F55</div><div class='add'>+0x3240 = 0x4F3D</div><div class='add'>+0x3241 = 0x4FA1</div><div class='add'>+0x3242 = 0x4F73</div><div class='add'>+0x3243 = 0x52A0</div><div class='add'>+0x3244 = 0x53EF</div><div class='add'>+0x3245 = 0x5609</div><div class='add'>+0x3246 = 0x590F</div><div class='add'>+0x3247 = 0x5AC1</div><div class='add'>+0x3248 = 0x5BB6</div><div class='add'>+0x3249 = 0x5BE1</div><div class='add'>+0x324A = 0x79D1</div><div class='add'>+0x324B = 0x6687</div><div class='add'>+0x324C = 0x679C</div><div class='add'>+0x324D = 0x67B6</div><div class='add'>+0x324E = 0x6B4C</div><div class='add'>+0x324F = 0x6CB3</div><div class='add'>+0x3250 = 0x706B</div><div class='add'>+0x3251 = 0x73C2</div><div class='add'>+0x3252 = 0x798D</div><div class='add'>+0x3253 = 0x79BE</div><div class='add'>+0x3254 = 0x7A3C</div><div class='add'>+0x3255 = 0x7B87</div><div class='add'>+0x3256 = 0x82B1</div><div class='add'>+0x3257 = 0x82DB</div><div class='add'>+0x3258 = 0x8304</div><div class='add'>+0x3259 = 0x8377</div><div class='add'>+0x325A = 0x83EF</div><div class='add'>+0x325B = 0x83D3</div><div class='add'>+0x325C = 0x8766</div><div class='add'>+0x325D = 0x8AB2</div><div class='add'>+0x325E = 0x5629</div><div class='add'>+0x325F = 0x8CA8</div><div class='add'>+0x3260 = 0x8FE6</div><div class='add'>+0x3261 = 0x904E</div><div class='add'>+0x3262 = 0x971E</div><div class='add'>+0x3263 = 0x868A</div><div class='add'>+0x3264 = 0x4FC4</div><div class='add'>+0x3265 = 0x5CE8</div><div class='add'>+0x3266 = 0x6211</div><div class='add'>+0x3267 = 0x7259</div><div class='add'>+0x3268 = 0x753B</div><div class='add'>+0x3269 = 0x81E5</div><div class='add'>+0x326A = 0x82BD</div><div class='add'>+0x326B = 0x86FE</div><div class='add'>+0x326C = 0x8CC0</div><div class='add'>+0x326D = 0x96C5</div><div class='add'>+0x326E = 0x9913</div><div class='add'>+0x326F = 0x99D5</div><div class='add'>+0x3270 = 0x4ECB</div><div class='add'>+0x3271 = 0x4F1A</div><div class='add'>+0x3272 = 0x89E3</div><div class='add'>+0x3273 = 0x56DE</div><div class='add'>+0x3274 = 0x584A</div><div class='add'>+0x3275 = 0x58CA</div><div class='add'>+0x3276 = 0x5EFB</div><div class='add'>+0x3277 = 0x5FEB</div><div class='add'>+0x3278 = 0x602A</div><div class='add'>+0x3279 = 0x6094</div><div class='add'>+0x327A = 0x6062</div><div class='add'>+0x327B = 0x61D0</div><div class='add'>+0x327C = 0x6212</div><div class='add'>+0x327D = 0x62D0</div><div class='add'>+0x327E = 0x6539</div><div class='add'>+0x3321 = 0x9B41</div><div class='add'>+0x3322 = 0x6666</div><div class='add'>+0x3323 = 0x68B0</div><div class='add'>+0x3324 = 0x6D77</div><div class='add'>+0x3325 = 0x7070</div><div class='add'>+0x3326 = 0x754C</div><div class='add'>+0x3327 = 0x7686</div><div class='add'>+0x3328 = 0x7D75</div><div class='add'>+0x3329 = 0x82A5</div><div class='add'>+0x332A = 0x87F9</div><div class='add'>+0x332B = 0x958B</div><div class='add'>+0x332C = 0x968E</div><div class='add'>+0x332D = 0x8C9D</div><div class='add'>+0x332E = 0x51F1</div><div class='add'>+0x332F = 0x52BE</div><div class='add'>+0x3330 = 0x5916</div><div class='add'>+0x3331 = 0x54B3</div><div class='add'>+0x3332 = 0x5BB3</div><div class='add'>+0x3333 = 0x5D16</div><div class='add'>+0x3334 = 0x6168</div><div class='add'>+0x3335 = 0x6982</div><div class='add'>+0x3336 = 0x6DAF</div><div class='add'>+0x3337 = 0x788D</div><div class='add'>+0x3338 = 0x84CB</div><div class='add'>+0x3339 = 0x8857</div><div class='add'>+0x333A = 0x8A72</div><div class='add'>+0x333B = 0x93A7</div><div class='add'>+0x333C = 0x9AB8</div><div class='add'>+0x333D = 0x6D6C</div><div class='add'>+0x333E = 0x99A8</div><div class='add'>+0x333F = 0x86D9</div><div class='add'>+0x3340 = 0x57A3</div><div class='add'>+0x3341 = 0x67FF</div><div class='add'>+0x3342 = 0x86CE</div><div class='add'>+0x3343 = 0x920E</div><div class='add'>+0x3344 = 0x5283</div><div class='add'>+0x3345 = 0x5687</div><div class='add'>+0x3346 = 0x5404</div><div class='add'>+0x3347 = 0x5ED3</div><div class='add'>+0x3348 = 0x62E1</div><div class='add'>+0x3349 = 0x64B9</div><div class='add'>+0x334A = 0x683C</div><div class='add'>+0x334B = 0x6838</div><div class='add'>+0x334C = 0x6BBB</div><div class='add'>+0x334D = 0x7372</div><div class='add'>+0x334E = 0x78BA</div><div class='add'>+0x334F = 0x7A6B</div><div class='add'>+0x3350 = 0x899A</div><div class='add'>+0x3351 = 0x89D2</div><div class='add'>+0x3352 = 0x8D6B</div><div class='add'>+0x3353 = 0x8F03</div><div class='add'>+0x3354 = 0x90ED</div><div class='add'>+0x3355 = 0x95A3</div><div class='add'>+0x3356 = 0x9694</div><div class='add'>+0x3357 = 0x9769</div><div class='add'>+0x3358 = 0x5B66</div><div class='add'>+0x3359 = 0x5CB3</div><div class='add'>+0x335A = 0x697D</div><div class='add'>+0x335B = 0x984D</div><div class='add'>+0x335C = 0x984E</div><div class='add'>+0x335D = 0x639B</div><div class='add'>+0x335E = 0x7B20</div><div class='add'>+0x335F = 0x6A2B</div><div class='add'>+0x3360 = 0x6A7F</div><div class='add'>+0x3361 = 0x68B6</div><div class='add'>+0x3362 = 0x9C0D</div><div class='add'>+0x3363 = 0x6F5F</div><div class='add'>+0x3364 = 0x5272</div><div class='add'>+0x3365 = 0x559D</div><div class='add'>+0x3366 = 0x6070</div><div class='add'>+0x3367 = 0x62EC</div><div class='add'>+0x3368 = 0x6D3B</div><div class='add'>+0x3369 = 0x6E07</div><div class='add'>+0x336A = 0x6ED1</div><div class='add'>+0x336B = 0x845B</div><div class='add'>+0x336C = 0x8910</div><div class='add'>+0x336D = 0x8F44</div><div class='add'>+0x336E = 0x4E14</div><div class='add'>+0x336F = 0x9C39</div><div class='add'>+0x3370 = 0x53F6</div><div class='add'>+0x3371 = 0x691B</div><div class='add'>+0x3372 = 0x6A3A</div><div class='add'>+0x3373 = 0x9784</div><div class='add'>+0x3374 = 0x682A</div><div class='add'>+0x3375 = 0x515C</div><div class='add'>+0x3376 = 0x7AC3</div><div class='add'>+0x3377 = 0x84B2</div><div class='add'>+0x3378 = 0x91DC</div><div class='add'>+0x3379 = 0x938C</div><div class='add'>+0x337A = 0x565B</div><div class='add'>+0x337B = 0x9D28</div><div class='add'>+0x337C = 0x6822</div><div class='add'>+0x337D = 0x8305</div><div class='add'>+0x337E = 0x8431</div><div class='add'>+0x3421 = 0x7CA5</div><div class='add'>+0x3422 = 0x5208</div><div class='add'>+0x3423 = 0x82C5</div><div class='add'>+0x3424 = 0x74E6</div><div class='add'>+0x3425 = 0x4E7E</div><div class='add'>+0x3426 = 0x4F83</div><div class='add'>+0x3427 = 0x51A0</div><div class='add'>+0x3428 = 0x5BD2</div><div class='add'>+0x3429 = 0x520A</div><div class='add'>+0x342A = 0x52D8</div><div class='add'>+0x342B = 0x52E7</div><div class='add'>+0x342C = 0x5DFB</div><div class='add'>+0x342D = 0x559A</div><div class='add'>+0x342E = 0x582A</div><div class='add'>+0x342F = 0x59E6</div><div class='add'>+0x3430 = 0x5B8C</div><div class='add'>+0x3431 = 0x5B98</div><div class='add'>+0x3432 = 0x5BDB</div><div class='add'>+0x3433 = 0x5E72</div><div class='add'>+0x3434 = 0x5E79</div><div class='add'>+0x3435 = 0x60A3</div><div class='add'>+0x3436 = 0x611F</div><div class='add'>+0x3437 = 0x6163</div><div class='add'>+0x3438 = 0x61BE</div><div class='add'>+0x3439 = 0x63DB</div><div class='add'>+0x343A = 0x6562</div><div class='add'>+0x343B = 0x67D1</div><div class='add'>+0x343C = 0x6853</div><div class='add'>+0x343D = 0x68FA</div><div class='add'>+0x343E = 0x6B3E</div><div class='add'>+0x343F = 0x6B53</div><div class='add'>+0x3440 = 0x6C57</div><div class='add'>+0x3441 = 0x6F22</div><div class='add'>+0x3442 = 0x6F97</div><div class='add'>+0x3443 = 0x6F45</div><div class='add'>+0x3444 = 0x74B0</div><div class='add'>+0x3445 = 0x7518</div><div class='add'>+0x3446 = 0x76E3</div><div class='add'>+0x3447 = 0x770B</div><div class='add'>+0x3448 = 0x7AFF</div><div class='add'>+0x3449 = 0x7BA1</div><div class='add'>+0x344A = 0x7C21</div><div class='add'>+0x344B = 0x7DE9</div><div class='add'>+0x344C = 0x7F36</div><div class='add'>+0x344D = 0x7FF0</div><div class='add'>+0x344E = 0x809D</div><div class='add'>+0x344F = 0x8266</div><div class='add'>+0x3450 = 0x839E</div><div class='add'>+0x3451 = 0x89B3</div><div class='add'>+0x3452 = 0x8ACC</div><div class='add'>+0x3453 = 0x8CAB</div><div class='add'>+0x3454 = 0x9084</div><div class='add'>+0x3455 = 0x9451</div><div class='add'>+0x3456 = 0x9593</div><div class='add'>+0x3457 = 0x9591</div><div class='add'>+0x3458 = 0x95A2</div><div class='add'>+0x3459 = 0x9665</div><div class='add'>+0x345A = 0x97D3</div><div class='add'>+0x345B = 0x9928</div><div class='add'>+0x345C = 0x8218</div><div class='add'>+0x345D = 0x4E38</div><div class='add'>+0x345E = 0x542B</div><div class='add'>+0x345F = 0x5CB8</div><div class='add'>+0x3460 = 0x5DCC</div><div class='add'>+0x3461 = 0x73A9</div><div class='add'>+0x3462 = 0x764C</div><div class='add'>+0x3463 = 0x773C</div><div class='add'>+0x3464 = 0x5CA9</div><div class='add'>+0x3465 = 0x7FEB</div><div class='add'>+0x3466 = 0x8D0B</div><div class='add'>+0x3467 = 0x96C1</div><div class='add'>+0x3468 = 0x9811</div><div class='add'>+0x3469 = 0x9854</div><div class='add'>+0x346A = 0x9858</div><div class='add'>+0x346B = 0x4F01</div><div class='add'>+0x346C = 0x4F0E</div><div class='add'>+0x346D = 0x5371</div><div class='add'>+0x346E = 0x559C</div><div class='add'>+0x346F = 0x5668</div><div class='add'>+0x3470 = 0x57FA</div><div class='add'>+0x3471 = 0x5947</div><div class='add'>+0x3472 = 0x5B09</div><div class='add'>+0x3473 = 0x5BC4</div><div class='add'>+0x3474 = 0x5C90</div><div class='add'>+0x3475 = 0x5E0C</div><div class='add'>+0x3476 = 0x5E7E</div><div class='add'>+0x3477 = 0x5FCC</div><div class='add'>+0x3478 = 0x63EE</div><div class='add'>+0x3479 = 0x673A</div><div class='add'>+0x347A = 0x65D7</div><div class='add'>+0x347B = 0x65E2</div><div class='add'>+0x347C = 0x671F</div><div class='add'>+0x347D = 0x68CB</div><div class='add'>+0x347E = 0x68C4</div><div class='add'>+0x3521 = 0x6A5F</div><div class='add'>+0x3522 = 0x5E30</div><div class='add'>+0x3523 = 0x6BC5</div><div class='add'>+0x3524 = 0x6C17</div><div class='add'>+0x3525 = 0x6C7D</div><div class='add'>+0x3526 = 0x757F</div><div class='add'>+0x3527 = 0x7948</div><div class='add'>+0x3528 = 0x5B63</div><div class='add'>+0x3529 = 0x7A00</div><div class='add'>+0x352A = 0x7D00</div><div class='add'>+0x352B = 0x5FBD</div><div class='add'>+0x352C = 0x898F</div><div class='add'>+0x352D = 0x8A18</div><div class='add'>+0x352E = 0x8CB4</div><div class='add'>+0x352F = 0x8D77</div><div class='add'>+0x3530 = 0x8ECC</div><div class='add'>+0x3531 = 0x8F1D</div><div class='add'>+0x3532 = 0x98E2</div><div class='add'>+0x3533 = 0x9A0E</div><div class='add'>+0x3534 = 0x9B3C</div><div class='add'>+0x3535 = 0x4E80</div><div class='add'>+0x3536 = 0x507D</div><div class='add'>+0x3537 = 0x5100</div><div class='add'>+0x3538 = 0x5993</div><div class='add'>+0x3539 = 0x5B9C</div><div class='add'>+0x353A = 0x622F</div><div class='add'>+0x353B = 0x6280</div><div class='add'>+0x353C = 0x64EC</div><div class='add'>+0x353D = 0x6B3A</div><div class='add'>+0x353E = 0x72A0</div><div class='add'>+0x353F = 0x7591</div><div class='add'>+0x3540 = 0x7947</div><div class='add'>+0x3541 = 0x7FA9</div><div class='add'>+0x3542 = 0x87FB</div><div class='add'>+0x3543 = 0x8ABC</div><div class='add'>+0x3544 = 0x8B70</div><div class='add'>+0x3545 = 0x63AC</div><div class='add'>+0x3546 = 0x83CA</div><div class='add'>+0x3547 = 0x97A0</div><div class='add'>+0x3548 = 0x5409</div><div class='add'>+0x3549 = 0x5403</div><div class='add'>+0x354A = 0x55AB</div><div class='add'>+0x354B = 0x6854</div><div class='add'>+0x354C = 0x6A58</div><div class='add'>+0x354D = 0x8A70</div><div class='add'>+0x354E = 0x7827</div><div class='add'>+0x354F = 0x6775</div><div class='add'>+0x3550 = 0x9ECD</div><div class='add'>+0x3551 = 0x5374</div><div class='add'>+0x3552 = 0x5BA2</div><div class='add'>+0x3553 = 0x811A</div><div class='add'>+0x3554 = 0x8650</div><div class='add'>+0x3555 = 0x9006</div><div class='add'>+0x3556 = 0x4E18</div><div class='add'>+0x3557 = 0x4E45</div><div class='add'>+0x3558 = 0x4EC7</div><div class='add'>+0x3559 = 0x4F11</div><div class='add'>+0x355A = 0x53CA</div><div class='add'>+0x355B = 0x5438</div><div class='add'>+0x355C = 0x5BAE</div><div class='add'>+0x355D = 0x5F13</div><div class='add'>+0x355E = 0x6025</div><div class='add'>+0x355F = 0x6551</div><div class='add'>+0x3560 = 0x673D</div><div class='add'>+0x3561 = 0x6C42</div><div class='add'>+0x3562 = 0x6C72</div><div class='add'>+0x3563 = 0x6CE3</div><div class='add'>+0x3564 = 0x7078</div><div class='add'>+0x3565 = 0x7403</div><div class='add'>+0x3566 = 0x7A76</div><div class='add'>+0x3567 = 0x7AAE</div><div class='add'>+0x3568 = 0x7B08</div><div class='add'>+0x3569 = 0x7D1A</div><div class='add'>+0x356A = 0x7CFE</div><div class='add'>+0x356B = 0x7D66</div><div class='add'>+0x356C = 0x65E7</div><div class='add'>+0x356D = 0x725B</div><div class='add'>+0x356E = 0x53BB</div><div class='add'>+0x356F = 0x5C45</div><div class='add'>+0x3570 = 0x5DE8</div><div class='add'>+0x3571 = 0x62D2</div><div class='add'>+0x3572 = 0x62E0</div><div class='add'>+0x3573 = 0x6319</div><div class='add'>+0x3574 = 0x6E20</div><div class='add'>+0x3575 = 0x865A</div><div class='add'>+0x3576 = 0x8A31</div><div class='add'>+0x3577 = 0x8DDD</div><div class='add'>+0x3578 = 0x92F8</div><div class='add'>+0x3579 = 0x6F01</div><div class='add'>+0x357A = 0x79A6</div><div class='add'>+0x357B = 0x9B5A</div><div class='add'>+0x357C = 0x4EA8</div><div class='add'>+0x357D = 0x4EAB</div><div class='add'>+0x357E = 0x4EAC</div><div class='add'>+0x3621 = 0x4F9B</div><div class='add'>+0x3622 = 0x4FA0</div><div class='add'>+0x3623 = 0x50D1</div><div class='add'>+0x3624 = 0x5147</div><div class='add'>+0x3625 = 0x7AF6</div><div class='add'>+0x3626 = 0x5171</div><div class='add'>+0x3627 = 0x51F6</div><div class='add'>+0x3628 = 0x5354</div><div class='add'>+0x3629 = 0x5321</div><div class='add'>+0x362A = 0x537F</div><div class='add'>+0x362B = 0x53EB</div><div class='add'>+0x362C = 0x55AC</div><div class='add'>+0x362D = 0x5883</div><div class='add'>+0x362E = 0x5CE1</div><div class='add'>+0x362F = 0x5F37</div><div class='add'>+0x3630 = 0x5F4A</div><div class='add'>+0x3631 = 0x602F</div><div class='add'>+0x3632 = 0x6050</div><div class='add'>+0x3633 = 0x606D</div><div class='add'>+0x3634 = 0x631F</div><div class='add'>+0x3635 = 0x6559</div><div class='add'>+0x3636 = 0x6A4B</div><div class='add'>+0x3637 = 0x6CC1</div><div class='add'>+0x3638 = 0x72C2</div><div class='add'>+0x3639 = 0x72ED</div><div class='add'>+0x363A = 0x77EF</div><div class='add'>+0x363B = 0x80F8</div><div class='add'>+0x363C = 0x8105</div><div class='add'>+0x363D = 0x8208</div><div class='add'>+0x363E = 0x854E</div><div class='add'>+0x363F = 0x90F7</div><div class='add'>+0x3640 = 0x93E1</div><div class='add'>+0x3641 = 0x97FF</div><div class='add'>+0x3642 = 0x9957</div><div class='add'>+0x3643 = 0x9A5A</div><div class='add'>+0x3644 = 0x4EF0</div><div class='add'>+0x3645 = 0x51DD</div><div class='add'>+0x3646 = 0x5C2D</div><div class='add'>+0x3647 = 0x6681</div><div class='add'>+0x3648 = 0x696D</div><div class='add'>+0x3649 = 0x5C40</div><div class='add'>+0x364A = 0x66F2</div><div class='add'>+0x364B = 0x6975</div><div class='add'>+0x364C = 0x7389</div><div class='add'>+0x364D = 0x6850</div><div class='add'>+0x364E = 0x7C81</div><div class='add'>+0x364F = 0x50C5</div><div class='add'>+0x3650 = 0x52E4</div><div class='add'>+0x3651 = 0x5747</div><div class='add'>+0x3652 = 0x5DFE</div><div class='add'>+0x3653 = 0x9326</div><div class='add'>+0x3654 = 0x65A4</div><div class='add'>+0x3655 = 0x6B23</div><div class='add'>+0x3656 = 0x6B3D</div><div class='add'>+0x3657 = 0x7434</div><div class='add'>+0x3658 = 0x7981</div><div class='add'>+0x3659 = 0x79BD</div><div class='add'>+0x365A = 0x7B4B</div><div class='add'>+0x365B = 0x7DCA</div><div class='add'>+0x365C = 0x82B9</div><div class='add'>+0x365D = 0x83CC</div><div class='add'>+0x365E = 0x887F</div><div class='add'>+0x365F = 0x895F</div><div class='add'>+0x3660 = 0x8B39</div><div class='add'>+0x3661 = 0x8FD1</div><div class='add'>+0x3662 = 0x91D1</div><div class='add'>+0x3663 = 0x541F</div><div class='add'>+0x3664 = 0x9280</div><div class='add'>+0x3665 = 0x4E5D</div><div class='add'>+0x3666 = 0x5036</div><div class='add'>+0x3667 = 0x53E5</div><div class='add'>+0x3668 = 0x533A</div><div class='add'>+0x3669 = 0x72D7</div><div class='add'>+0x366A = 0x7396</div><div class='add'>+0x366B = 0x77E9</div><div class='add'>+0x366C = 0x82E6</div><div class='add'>+0x366D = 0x8EAF</div><div class='add'>+0x366E = 0x99C6</div><div class='add'>+0x366F = 0x99C8</div><div class='add'>+0x3670 = 0x99D2</div><div class='add'>+0x3671 = 0x5177</div><div class='add'>+0x3672 = 0x611A</div><div class='add'>+0x3673 = 0x865E</div><div class='add'>+0x3674 = 0x55B0</div><div class='add'>+0x3675 = 0x7A7A</div><div class='add'>+0x3676 = 0x5076</div><div class='add'>+0x3677 = 0x5BD3</div><div class='add'>+0x3678 = 0x9047</div><div class='add'>+0x3679 = 0x9685</div><div class='add'>+0x367A = 0x4E32</div><div class='add'>+0x367B = 0x6ADB</div><div class='add'>+0x367C = 0x91E7</div><div class='add'>+0x367D = 0x5C51</div><div class='add'>+0x367E = 0x5C48</div><div class='add'>+0x3721 = 0x6398</div><div class='add'>+0x3722 = 0x7A9F</div><div class='add'>+0x3723 = 0x6C93</div><div class='add'>+0x3724 = 0x9774</div><div class='add'>+0x3725 = 0x8F61</div><div class='add'>+0x3726 = 0x7AAA</div><div class='add'>+0x3727 = 0x718A</div><div class='add'>+0x3728 = 0x9688</div><div class='add'>+0x3729 = 0x7C82</div><div class='add'>+0x372A = 0x6817</div><div class='add'>+0x372B = 0x7E70</div><div class='add'>+0x372C = 0x6851</div><div class='add'>+0x372D = 0x936C</div><div class='add'>+0x372E = 0x52F2</div><div class='add'>+0x372F = 0x541B</div><div class='add'>+0x3730 = 0x85AB</div><div class='add'>+0x3731 = 0x8A13</div><div class='add'>+0x3732 = 0x7FA4</div><div class='add'>+0x3733 = 0x8ECD</div><div class='add'>+0x3734 = 0x90E1</div><div class='add'>+0x3735 = 0x5366</div><div class='add'>+0x3736 = 0x8888</div><div class='add'>+0x3737 = 0x7941</div><div class='add'>+0x3738 = 0x4FC2</div><div class='add'>+0x3739 = 0x50BE</div><div class='add'>+0x373A = 0x5211</div><div class='add'>+0x373B = 0x5144</div><div class='add'>+0x373C = 0x5553</div><div class='add'>+0x373D = 0x572D</div><div class='add'>+0x373E = 0x73EA</div><div class='add'>+0x373F = 0x578B</div><div class='add'>+0x3740 = 0x5951</div><div class='add'>+0x3741 = 0x5F62</div><div class='add'>+0x3742 = 0x5F84</div><div class='add'>+0x3743 = 0x6075</div><div class='add'>+0x3744 = 0x6176</div><div class='add'>+0x3745 = 0x6167</div><div class='add'>+0x3746 = 0x61A9</div><div class='add'>+0x3747 = 0x63B2</div><div class='add'>+0x3748 = 0x643A</div><div class='add'>+0x3749 = 0x656C</div><div class='add'>+0x374A = 0x666F</div><div class='add'>+0x374B = 0x6842</div><div class='add'>+0x374C = 0x6E13</div><div class='add'>+0x374D = 0x7566</div><div class='add'>+0x374E = 0x7A3D</div><div class='add'>+0x374F = 0x7CFB</div><div class='add'>+0x3750 = 0x7D4C</div><div class='add'>+0x3751 = 0x7D99</div><div class='add'>+0x3752 = 0x7E4B</div><div class='add'>+0x3753 = 0x7F6B</div><div class='add'>+0x3754 = 0x830E</div><div class='add'>+0x3755 = 0x834A</div><div class='add'>+0x3756 = 0x86CD</div><div class='add'>+0x3757 = 0x8A08</div><div class='add'>+0x3758 = 0x8A63</div><div class='add'>+0x3759 = 0x8B66</div><div class='add'>+0x375A = 0x8EFD</div><div class='add'>+0x375B = 0x981A</div><div class='add'>+0x375C = 0x9D8F</div><div class='add'>+0x375D = 0x82B8</div><div class='add'>+0x375E = 0x8FCE</div><div class='add'>+0x375F = 0x9BE8</div><div class='add'>+0x3760 = 0x5287</div><div class='add'>+0x3761 = 0x621F</div><div class='add'>+0x3762 = 0x6483</div><div class='add'>+0x3763 = 0x6FC0</div><div class='add'>+0x3764 = 0x9699</div><div class='add'>+0x3765 = 0x6841</div><div class='add'>+0x3766 = 0x5091</div><div class='add'>+0x3767 = 0x6B20</div><div class='add'>+0x3768 = 0x6C7A</div><div class='add'>+0x3769 = 0x6F54</div><div class='add'>+0x376A = 0x7A74</div><div class='add'>+0x376B = 0x7D50</div><div class='add'>+0x376C = 0x8840</div><div class='add'>+0x376D = 0x8A23</div><div class='add'>+0x376E = 0x6708</div><div class='add'>+0x376F = 0x4EF6</div><div class='add'>+0x3770 = 0x5039</div><div class='add'>+0x3771 = 0x5026</div><div class='add'>+0x3772 = 0x5065</div><div class='add'>+0x3773 = 0x517C</div><div class='add'>+0x3774 = 0x5238</div><div class='add'>+0x3775 = 0x5263</div><div class='add'>+0x3776 = 0x55A7</div><div class='add'>+0x3777 = 0x570F</div><div class='add'>+0x3778 = 0x5805</div><div class='add'>+0x3779 = 0x5ACC</div><div class='add'>+0x377A = 0x5EFA</div><div class='add'>+0x377B = 0x61B2</div><div class='add'>+0x377C = 0x61F8</div><div class='add'>+0x377D = 0x62F3</div><div class='add'>+0x377E = 0x6372</div><div class='add'>+0x3821 = 0x691C</div><div class='add'>+0x3822 = 0x6A29</div><div class='add'>+0x3823 = 0x727D</div><div class='add'>+0x3824 = 0x72AC</div><div class='add'>+0x3825 = 0x732E</div><div class='add'>+0x3826 = 0x7814</div><div class='add'>+0x3827 = 0x786F</div><div class='add'>+0x3828 = 0x7D79</div><div class='add'>+0x3829 = 0x770C</div><div class='add'>+0x382A = 0x80A9</div><div class='add'>+0x382B = 0x898B</div><div class='add'>+0x382C = 0x8B19</div><div class='add'>+0x382D = 0x8CE2</div><div class='add'>+0x382E = 0x8ED2</div><div class='add'>+0x382F = 0x9063</div><div class='add'>+0x3830 = 0x9375</div><div class='add'>+0x3831 = 0x967A</div><div class='add'>+0x3832 = 0x9855</div><div class='add'>+0x3833 = 0x9A13</div><div class='add'>+0x3834 = 0x9E78</div><div class='add'>+0x3835 = 0x5143</div><div class='add'>+0x3836 = 0x539F</div><div class='add'>+0x3837 = 0x53B3</div><div class='add'>+0x3838 = 0x5E7B</div><div class='add'>+0x3839 = 0x5F26</div><div class='add'>+0x383A = 0x6E1B</div><div class='add'>+0x383B = 0x6E90</div><div class='add'>+0x383C = 0x7384</div><div class='add'>+0x383D = 0x73FE</div><div class='add'>+0x383E = 0x7D43</div><div class='add'>+0x383F = 0x8237</div><div class='add'>+0x3840 = 0x8A00</div><div class='add'>+0x3841 = 0x8AFA</div><div class='add'>+0x3842 = 0x9650</div><div class='add'>+0x3843 = 0x4E4E</div><div class='add'>+0x3844 = 0x500B</div><div class='add'>+0x3845 = 0x53E4</div><div class='add'>+0x3846 = 0x547C</div><div class='add'>+0x3847 = 0x56FA</div><div class='add'>+0x3848 = 0x59D1</div><div class='add'>+0x3849 = 0x5B64</div><div class='add'>+0x384A = 0x5DF1</div><div class='add'>+0x384B = 0x5EAB</div><div class='add'>+0x384C = 0x5F27</div><div class='add'>+0x384D = 0x6238</div><div class='add'>+0x384E = 0x6545</div><div class='add'>+0x384F = 0x67AF</div><div class='add'>+0x3850 = 0x6E56</div><div class='add'>+0x3851 = 0x72D0</div><div class='add'>+0x3852 = 0x7CCA</div><div class='add'>+0x3853 = 0x88B4</div><div class='add'>+0x3854 = 0x80A1</div><div class='add'>+0x3855 = 0x80E1</div><div class='add'>+0x3856 = 0x83F0</div><div class='add'>+0x3857 = 0x864E</div><div class='add'>+0x3858 = 0x8A87</div><div class='add'>+0x3859 = 0x8DE8</div><div class='add'>+0x385A = 0x9237</div><div class='add'>+0x385B = 0x96C7</div><div class='add'>+0x385C = 0x9867</div><div class='add'>+0x385D = 0x9F13</div><div class='add'>+0x385E = 0x4E94</div><div class='add'>+0x385F = 0x4E92</div><div class='add'>+0x3860 = 0x4F0D</div><div class='add'>+0x3861 = 0x5348</div><div class='add'>+0x3862 = 0x5449</div><div class='add'>+0x3863 = 0x543E</div><div class='add'>+0x3864 = 0x5A2F</div><div class='add'>+0x3865 = 0x5F8C</div><div class='add'>+0x3866 = 0x5FA1</div><div class='add'>+0x3867 = 0x609F</div><div class='add'>+0x3868 = 0x68A7</div><div class='add'>+0x3869 = 0x6A8E</div><div class='add'>+0x386A = 0x745A</div><div class='add'>+0x386B = 0x7881</div><div class='add'>+0x386C = 0x8A9E</div><div class='add'>+0x386D = 0x8AA4</div><div class='add'>+0x386E = 0x8B77</div><div class='add'>+0x386F = 0x9190</div><div class='add'>+0x3870 = 0x4E5E</div><div class='add'>+0x3871 = 0x9BC9</div><div class='add'>+0x3872 = 0x4EA4</div><div class='add'>+0x3873 = 0x4F7C</div><div class='add'>+0x3874 = 0x4FAF</div><div class='add'>+0x3875 = 0x5019</div><div class='add'>+0x3876 = 0x5016</div><div class='add'>+0x3877 = 0x5149</div><div class='add'>+0x3878 = 0x516C</div><div class='add'>+0x3879 = 0x529F</div><div class='add'>+0x387A = 0x52B9</div><div class='add'>+0x387B = 0x52FE</div><div class='add'>+0x387C = 0x539A</div><div class='add'>+0x387D = 0x53E3</div><div class='add'>+0x387E = 0x5411</div><div class='add'>+0x3921 = 0x540E</div><div class='add'>+0x3922 = 0x5589</div><div class='add'>+0x3923 = 0x5751</div><div class='add'>+0x3924 = 0x57A2</div><div class='add'>+0x3925 = 0x597D</div><div class='add'>+0x3926 = 0x5B54</div><div class='add'>+0x3927 = 0x5B5D</div><div class='add'>+0x3928 = 0x5B8F</div><div class='add'>+0x3929 = 0x5DE5</div><div class='add'>+0x392A = 0x5DE7</div><div class='add'>+0x392B = 0x5DF7</div><div class='add'>+0x392C = 0x5E78</div><div class='add'>+0x392D = 0x5E83</div><div class='add'>+0x392E = 0x5E9A</div><div class='add'>+0x392F = 0x5EB7</div><div class='add'>+0x3930 = 0x5F18</div><div class='add'>+0x3931 = 0x6052</div><div class='add'>+0x3932 = 0x614C</div><div class='add'>+0x3933 = 0x6297</div><div class='add'>+0x3934 = 0x62D8</div><div class='add'>+0x3935 = 0x63A7</div><div class='add'>+0x3936 = 0x653B</div><div class='add'>+0x3937 = 0x6602</div><div class='add'>+0x3938 = 0x6643</div><div class='add'>+0x3939 = 0x66F4</div><div class='add'>+0x393A = 0x676D</div><div class='add'>+0x393B = 0x6821</div><div class='add'>+0x393C = 0x6897</div><div class='add'>+0x393D = 0x69CB</div><div class='add'>+0x393E = 0x6C5F</div><div class='add'>+0x393F = 0x6D2A</div><div class='add'>+0x3940 = 0x6D69</div><div class='add'>+0x3941 = 0x6E2F</div><div class='add'>+0x3942 = 0x6E9D</div><div class='add'>+0x3943 = 0x7532</div><div class='add'>+0x3944 = 0x7687</div><div class='add'>+0x3945 = 0x786C</div><div class='add'>+0x3946 = 0x7A3F</div><div class='add'>+0x3947 = 0x7CE0</div><div class='add'>+0x3948 = 0x7D05</div><div class='add'>+0x3949 = 0x7D18</div><div class='add'>+0x394A = 0x7D5E</div><div class='add'>+0x394B = 0x7DB1</div><div class='add'>+0x394C = 0x8015</div><div class='add'>+0x394D = 0x8003</div><div class='add'>+0x394E = 0x80AF</div><div class='add'>+0x394F = 0x80B1</div><div class='add'>+0x3950 = 0x8154</div><div class='add'>+0x3951 = 0x818F</div><div class='add'>+0x3952 = 0x822A</div><div class='add'>+0x3953 = 0x8352</div><div class='add'>+0x3954 = 0x884C</div><div class='add'>+0x3955 = 0x8861</div><div class='add'>+0x3956 = 0x8B1B</div><div class='add'>+0x3957 = 0x8CA2</div><div class='add'>+0x3958 = 0x8CFC</div><div class='add'>+0x3959 = 0x90CA</div><div class='add'>+0x395A = 0x9175</div><div class='add'>+0x395B = 0x9271</div><div class='add'>+0x395C = 0x783F</div><div class='add'>+0x395D = 0x92FC</div><div class='add'>+0x395E = 0x95A4</div><div class='add'>+0x395F = 0x964D</div><div class='add'>+0x3960 = 0x9805</div><div class='add'>+0x3961 = 0x9999</div><div class='add'>+0x3962 = 0x9AD8</div><div class='add'>+0x3963 = 0x9D3B</div><div class='add'>+0x3964 = 0x525B</div><div class='add'>+0x3965 = 0x52AB</div><div class='add'>+0x3966 = 0x53F7</div><div class='add'>+0x3967 = 0x5408</div><div class='add'>+0x3968 = 0x58D5</div><div class='add'>+0x3969 = 0x62F7</div><div class='add'>+0x396A = 0x6FE0</div><div class='add'>+0x396B = 0x8C6A</div><div class='add'>+0x396C = 0x8F5F</div><div class='add'>+0x396D = 0x9EB9</div><div class='add'>+0x396E = 0x514B</div><div class='add'>+0x396F = 0x523B</div><div class='add'>+0x3970 = 0x544A</div><div class='add'>+0x3971 = 0x56FD</div><div class='add'>+0x3972 = 0x7A40</div><div class='add'>+0x3973 = 0x9177</div><div class='add'>+0x3974 = 0x9D60</div><div class='add'>+0x3975 = 0x9ED2</div><div class='add'>+0x3976 = 0x7344</div><div class='add'>+0x3977 = 0x6F09</div><div class='add'>+0x3978 = 0x8170</div><div class='add'>+0x3979 = 0x7511</div><div class='add'>+0x397A = 0x5FFD</div><div class='add'>+0x397B = 0x60DA</div><div class='add'>+0x397C = 0x9AA8</div><div class='add'>+0x397D = 0x72DB</div><div class='add'>+0x397E = 0x8FBC</div><div class='add'>+0x3A21 = 0x6B64</div><div class='add'>+0x3A22 = 0x9803</div><div class='add'>+0x3A23 = 0x4ECA</div><div class='add'>+0x3A24 = 0x56F0</div><div class='add'>+0x3A25 = 0x5764</div><div class='add'>+0x3A26 = 0x58BE</div><div class='add'>+0x3A27 = 0x5A5A</div><div class='add'>+0x3A28 = 0x6068</div><div class='add'>+0x3A29 = 0x61C7</div><div class='add'>+0x3A2A = 0x660F</div><div class='add'>+0x3A2B = 0x6606</div><div class='add'>+0x3A2C = 0x6839</div><div class='add'>+0x3A2D = 0x68B1</div><div class='add'>+0x3A2E = 0x6DF7</div><div class='add'>+0x3A2F = 0x75D5</div><div class='add'>+0x3A30 = 0x7D3A</div><div class='add'>+0x3A31 = 0x826E</div><div class='add'>+0x3A32 = 0x9B42</div><div class='add'>+0x3A33 = 0x4E9B</div><div class='add'>+0x3A34 = 0x4F50</div><div class='add'>+0x3A35 = 0x53C9</div><div class='add'>+0x3A36 = 0x5506</div><div class='add'>+0x3A37 = 0x5D6F</div><div class='add'>+0x3A38 = 0x5DE6</div><div class='add'>+0x3A39 = 0x5DEE</div><div class='add'>+0x3A3A = 0x67FB</div><div class='add'>+0x3A3B = 0x6C99</div><div class='add'>+0x3A3C = 0x7473</div><div class='add'>+0x3A3D = 0x7802</div><div class='add'>+0x3A3E = 0x8A50</div><div class='add'>+0x3A3F = 0x9396</div><div class='add'>+0x3A40 = 0x88DF</div><div class='add'>+0x3A41 = 0x5750</div><div class='add'>+0x3A42 = 0x5EA7</div><div class='add'>+0x3A43 = 0x632B</div><div class='add'>+0x3A44 = 0x50B5</div><div class='add'>+0x3A45 = 0x50AC</div><div class='add'>+0x3A46 = 0x518D</div><div class='add'>+0x3A47 = 0x6700</div><div class='add'>+0x3A48 = 0x54C9</div><div class='add'>+0x3A49 = 0x585E</div><div class='add'>+0x3A4A = 0x59BB</div><div class='add'>+0x3A4B = 0x5BB0</div><div class='add'>+0x3A4C = 0x5F69</div><div class='add'>+0x3A4D = 0x624D</div><div class='add'>+0x3A4E = 0x63A1</div><div class='add'>+0x3A4F = 0x683D</div><div class='add'>+0x3A50 = 0x6B73</div><div class='add'>+0x3A51 = 0x6E08</div><div class='add'>+0x3A52 = 0x707D</div><div class='add'>+0x3A53 = 0x91C7</div><div class='add'>+0x3A54 = 0x7280</div><div class='add'>+0x3A55 = 0x7815</div><div class='add'>+0x3A56 = 0x7826</div><div class='add'>+0x3A57 = 0x796D</div><div class='add'>+0x3A58 = 0x658E</div><div class='add'>+0x3A59 = 0x7D30</div><div class='add'>+0x3A5A = 0x83DC</div><div class='add'>+0x3A5B = 0x88C1</div><div class='add'>+0x3A5C = 0x8F09</div><div class='add'>+0x3A5D = 0x969B</div><div class='add'>+0x3A5E = 0x5264</div><div class='add'>+0x3A5F = 0x5728</div><div class='add'>+0x3A60 = 0x6750</div><div class='add'>+0x3A61 = 0x7F6A</div><div class='add'>+0x3A62 = 0x8CA1</div><div class='add'>+0x3A63 = 0x51B4</div><div class='add'>+0x3A64 = 0x5742</div><div class='add'>+0x3A65 = 0x962A</div><div class='add'>+0x3A66 = 0x583A</div><div class='add'>+0x3A67 = 0x698A</div><div class='add'>+0x3A68 = 0x80B4</div><div class='add'>+0x3A69 = 0x54B2</div><div class='add'>+0x3A6A = 0x5D0E</div><div class='add'>+0x3A6B = 0x57FC</div><div class='add'>+0x3A6C = 0x7895</div><div class='add'>+0x3A6D = 0x9DFA</div><div class='add'>+0x3A6E = 0x4F5C</div><div class='add'>+0x3A6F = 0x524A</div><div class='add'>+0x3A70 = 0x548B</div><div class='add'>+0x3A71 = 0x643E</div><div class='add'>+0x3A72 = 0x6628</div><div class='add'>+0x3A73 = 0x6714</div><div class='add'>+0x3A74 = 0x67F5</div><div class='add'>+0x3A75 = 0x7A84</div><div class='add'>+0x3A76 = 0x7B56</div><div class='add'>+0x3A77 = 0x7D22</div><div class='add'>+0x3A78 = 0x932F</div><div class='add'>+0x3A79 = 0x685C</div><div class='add'>+0x3A7A = 0x9BAD</div><div class='add'>+0x3A7B = 0x7B39</div><div class='add'>+0x3A7C = 0x5319</div><div class='add'>+0x3A7D = 0x518A</div><div class='add'>+0x3A7E = 0x5237</div><div class='add'>+0x3B21 = 0x5BDF</div><div class='add'>+0x3B22 = 0x62F6</div><div class='add'>+0x3B23 = 0x64AE</div><div class='add'>+0x3B24 = 0x64E6</div><div class='add'>+0x3B25 = 0x672D</div><div class='add'>+0x3B26 = 0x6BBA</div><div class='add'>+0x3B27 = 0x85A9</div><div class='add'>+0x3B28 = 0x96D1</div><div class='add'>+0x3B29 = 0x7690</div><div class='add'>+0x3B2A = 0x9BD6</div><div class='add'>+0x3B2B = 0x634C</div><div class='add'>+0x3B2C = 0x9306</div><div class='add'>+0x3B2D = 0x9BAB</div><div class='add'>+0x3B2E = 0x76BF</div><div class='add'>+0x3B2F = 0x6652</div><div class='add'>+0x3B30 = 0x4E09</div><div class='add'>+0x3B31 = 0x5098</div><div class='add'>+0x3B32 = 0x53C2</div><div class='add'>+0x3B33 = 0x5C71</div><div class='add'>+0x3B34 = 0x60E8</div><div class='add'>+0x3B35 = 0x6492</div><div class='add'>+0x3B36 = 0x6563</div><div class='add'>+0x3B37 = 0x685F</div><div class='add'>+0x3B38 = 0x71E6</div><div class='add'>+0x3B39 = 0x73CA</div><div class='add'>+0x3B3A = 0x7523</div><div class='add'>+0x3B3B = 0x7B97</div><div class='add'>+0x3B3C = 0x7E82</div><div class='add'>+0x3B3D = 0x8695</div><div class='add'>+0x3B3E = 0x8B83</div><div class='add'>+0x3B3F = 0x8CDB</div><div class='add'>+0x3B40 = 0x9178</div><div class='add'>+0x3B41 = 0x9910</div><div class='add'>+0x3B42 = 0x65AC</div><div class='add'>+0x3B43 = 0x66AB</div><div class='add'>+0x3B44 = 0x6B8B</div><div class='add'>+0x3B45 = 0x4ED5</div><div class='add'>+0x3B46 = 0x4ED4</div><div class='add'>+0x3B47 = 0x4F3A</div><div class='add'>+0x3B48 = 0x4F7F</div><div class='add'>+0x3B49 = 0x523A</div><div class='add'>+0x3B4A = 0x53F8</div><div class='add'>+0x3B4B = 0x53F2</div><div class='add'>+0x3B4C = 0x55E3</div><div class='add'>+0x3B4D = 0x56DB</div><div class='add'>+0x3B4E = 0x58EB</div><div class='add'>+0x3B4F = 0x59CB</div><div class='add'>+0x3B50 = 0x59C9</div><div class='add'>+0x3B51 = 0x59FF</div><div class='add'>+0x3B52 = 0x5B50</div><div class='add'>+0x3B53 = 0x5C4D</div><div class='add'>+0x3B54 = 0x5E02</div><div class='add'>+0x3B55 = 0x5E2B</div><div class='add'>+0x3B56 = 0x5FD7</div><div class='add'>+0x3B57 = 0x601D</div><div class='add'>+0x3B58 = 0x6307</div><div class='add'>+0x3B59 = 0x652F</div><div class='add'>+0x3B5A = 0x5B5C</div><div class='add'>+0x3B5B = 0x65AF</div><div class='add'>+0x3B5C = 0x65BD</div><div class='add'>+0x3B5D = 0x65E8</div><div class='add'>+0x3B5E = 0x679D</div><div class='add'>+0x3B5F = 0x6B62</div><div class='add'>+0x3B60 = 0x6B7B</div><div class='add'>+0x3B61 = 0x6C0F</div><div class='add'>+0x3B62 = 0x7345</div><div class='add'>+0x3B63 = 0x7949</div><div class='add'>+0x3B64 = 0x79C1</div><div class='add'>+0x3B65 = 0x7CF8</div><div class='add'>+0x3B66 = 0x7D19</div><div class='add'>+0x3B67 = 0x7D2B</div><div class='add'>+0x3B68 = 0x80A2</div><div class='add'>+0x3B69 = 0x8102</div><div class='add'>+0x3B6A = 0x81F3</div><div class='add'>+0x3B6B = 0x8996</div><div class='add'>+0x3B6C = 0x8A5E</div><div class='add'>+0x3B6D = 0x8A69</div><div class='add'>+0x3B6E = 0x8A66</div><div class='add'>+0x3B6F = 0x8A8C</div><div class='add'>+0x3B70 = 0x8AEE</div><div class='add'>+0x3B71 = 0x8CC7</div><div class='add'>+0x3B72 = 0x8CDC</div><div class='add'>+0x3B73 = 0x96CC</div><div class='add'>+0x3B74 = 0x98FC</div><div class='add'>+0x3B75 = 0x6B6F</div><div class='add'>+0x3B76 = 0x4E8B</div><div class='add'>+0x3B77 = 0x4F3C</div><div class='add'>+0x3B78 = 0x4F8D</div><div class='add'>+0x3B79 = 0x5150</div><div class='add'>+0x3B7A = 0x5B57</div><div class='add'>+0x3B7B = 0x5BFA</div><div class='add'>+0x3B7C = 0x6148</div><div class='add'>+0x3B7D = 0x6301</div><div class='add'>+0x3B7E = 0x6642</div><div class='add'>+0x3C21 = 0x6B21</div><div class='add'>+0x3C22 = 0x6ECB</div><div class='add'>+0x3C23 = 0x6CBB</div><div class='add'>+0x3C24 = 0x723E</div><div class='add'>+0x3C25 = 0x74BD</div><div class='add'>+0x3C26 = 0x75D4</div><div class='add'>+0x3C27 = 0x78C1</div><div class='add'>+0x3C28 = 0x793A</div><div class='add'>+0x3C29 = 0x800C</div><div class='add'>+0x3C2A = 0x8033</div><div class='add'>+0x3C2B = 0x81EA</div><div class='add'>+0x3C2C = 0x8494</div><div class='add'>+0x3C2D = 0x8F9E</div><div class='add'>+0x3C2E = 0x6C50</div><div class='add'>+0x3C2F = 0x9E7F</div><div class='add'>+0x3C30 = 0x5F0F</div><div class='add'>+0x3C31 = 0x8B58</div><div class='add'>+0x3C32 = 0x9D2B</div><div class='add'>+0x3C33 = 0x7AFA</div><div class='add'>+0x3C34 = 0x8EF8</div><div class='add'>+0x3C35 = 0x5B8D</div><div class='add'>+0x3C36 = 0x96EB</div><div class='add'>+0x3C37 = 0x4E03</div><div class='add'>+0x3C38 = 0x53F1</div><div class='add'>+0x3C39 = 0x57F7</div><div class='add'>+0x3C3A = 0x5931</div><div class='add'>+0x3C3B = 0x5AC9</div><div class='add'>+0x3C3C = 0x5BA4</div><div class='add'>+0x3C3D = 0x6089</div><div class='add'>+0x3C3E = 0x6E7F</div><div class='add'>+0x3C3F = 0x6F06</div><div class='add'>+0x3C40 = 0x75BE</div><div class='add'>+0x3C41 = 0x8CEA</div><div class='add'>+0x3C42 = 0x5B9F</div><div class='add'>+0x3C43 = 0x8500</div><div class='add'>+0x3C44 = 0x7BE0</div><div class='add'>+0x3C45 = 0x5072</div><div class='add'>+0x3C46 = 0x67F4</div><div class='add'>+0x3C47 = 0x829D</div><div class='add'>+0x3C48 = 0x5C61</div><div class='add'>+0x3C49 = 0x854A</div><div class='add'>+0x3C4A = 0x7E1E</div><div class='add'>+0x3C4B = 0x820E</div><div class='add'>+0x3C4C = 0x5199</div><div class='add'>+0x3C4D = 0x5C04</div><div class='add'>+0x3C4E = 0x6368</div><div class='add'>+0x3C4F = 0x8D66</div><div class='add'>+0x3C50 = 0x659C</div><div class='add'>+0x3C51 = 0x716E</div><div class='add'>+0x3C52 = 0x793E</div><div class='add'>+0x3C53 = 0x7D17</div><div class='add'>+0x3C54 = 0x8005</div><div class='add'>+0x3C55 = 0x8B1D</div><div class='add'>+0x3C56 = 0x8ECA</div><div class='add'>+0x3C57 = 0x906E</div><div class='add'>+0x3C58 = 0x86C7</div><div class='add'>+0x3C59 = 0x90AA</div><div class='add'>+0x3C5A = 0x501F</div><div class='add'>+0x3C5B = 0x52FA</div><div class='add'>+0x3C5C = 0x5C3A</div><div class='add'>+0x3C5D = 0x6753</div><div class='add'>+0x3C5E = 0x707C</div><div class='add'>+0x3C5F = 0x7235</div><div class='add'>+0x3C60 = 0x914C</div><div class='add'>+0x3C61 = 0x91C8</div><div class='add'>+0x3C62 = 0x932B</div><div class='add'>+0x3C63 = 0x82E5</div><div class='add'>+0x3C64 = 0x5BC2</div><div class='add'>+0x3C65 = 0x5F31</div><div class='add'>+0x3C66 = 0x60F9</div><div class='add'>+0x3C67 = 0x4E3B</div><div class='add'>+0x3C68 = 0x53D6</div><div class='add'>+0x3C69 = 0x5B88</div><div class='add'>+0x3C6A = 0x624B</div><div class='add'>+0x3C6B = 0x6731</div><div class='add'>+0x3C6C = 0x6B8A</div><div class='add'>+0x3C6D = 0x72E9</div><div class='add'>+0x3C6E = 0x73E0</div><div class='add'>+0x3C6F = 0x7A2E</div><div class='add'>+0x3C70 = 0x816B</div><div class='add'>+0x3C71 = 0x8DA3</div><div class='add'>+0x3C72 = 0x9152</div><div class='add'>+0x3C73 = 0x9996</div><div class='add'>+0x3C74 = 0x5112</div><div class='add'>+0x3C75 = 0x53D7</div><div class='add'>+0x3C76 = 0x546A</div><div class='add'>+0x3C77 = 0x5BFF</div><div class='add'>+0x3C78 = 0x6388</div><div class='add'>+0x3C79 = 0x6A39</div><div class='add'>+0x3C7A = 0x7DAC</div><div class='add'>+0x3C7B = 0x9700</div><div class='add'>+0x3C7C = 0x56DA</div><div class='add'>+0x3C7D = 0x53CE</div><div class='add'>+0x3C7E = 0x5468</div><div class='add'>+0x3D21 = 0x5B97</div><div class='add'>+0x3D22 = 0x5C31</div><div class='add'>+0x3D23 = 0x5DDE</div><div class='add'>+0x3D24 = 0x4FEE</div><div class='add'>+0x3D25 = 0x6101</div><div class='add'>+0x3D26 = 0x62FE</div><div class='add'>+0x3D27 = 0x6D32</div><div class='add'>+0x3D28 = 0x79C0</div><div class='add'>+0x3D29 = 0x79CB</div><div class='add'>+0x3D2A = 0x7D42</div><div class='add'>+0x3D2B = 0x7E4D</div><div class='add'>+0x3D2C = 0x7FD2</div><div class='add'>+0x3D2D = 0x81ED</div><div class='add'>+0x3D2E = 0x821F</div><div class='add'>+0x3D2F = 0x8490</div><div class='add'>+0x3D30 = 0x8846</div><div class='add'>+0x3D31 = 0x8972</div><div class='add'>+0x3D32 = 0x8B90</div><div class='add'>+0x3D33 = 0x8E74</div><div class='add'>+0x3D34 = 0x8F2F</div><div class='add'>+0x3D35 = 0x9031</div><div class='add'>+0x3D36 = 0x914B</div><div class='add'>+0x3D37 = 0x916C</div><div class='add'>+0x3D38 = 0x96C6</div><div class='add'>+0x3D39 = 0x919C</div><div class='add'>+0x3D3A = 0x4EC0</div><div class='add'>+0x3D3B = 0x4F4F</div><div class='add'>+0x3D3C = 0x5145</div><div class='add'>+0x3D3D = 0x5341</div><div class='add'>+0x3D3E = 0x5F93</div><div class='add'>+0x3D3F = 0x620E</div><div class='add'>+0x3D40 = 0x67D4</div><div class='add'>+0x3D41 = 0x6C41</div><div class='add'>+0x3D42 = 0x6E0B</div><div class='add'>+0x3D43 = 0x7363</div><div class='add'>+0x3D44 = 0x7E26</div><div class='add'>+0x3D45 = 0x91CD</div><div class='add'>+0x3D46 = 0x9283</div><div class='add'>+0x3D47 = 0x53D4</div><div class='add'>+0x3D48 = 0x5919</div><div class='add'>+0x3D49 = 0x5BBF</div><div class='add'>+0x3D4A = 0x6DD1</div><div class='add'>+0x3D4B = 0x795D</div><div class='add'>+0x3D4C = 0x7E2E</div><div class='add'>+0x3D4D = 0x7C9B</div><div class='add'>+0x3D4E = 0x587E</div><div class='add'>+0x3D4F = 0x719F</div><div class='add'>+0x3D50 = 0x51FA</div><div class='add'>+0x3D51 = 0x8853</div><div class='add'>+0x3D52 = 0x8FF0</div><div class='add'>+0x3D53 = 0x4FCA</div><div class='add'>+0x3D54 = 0x5CFB</div><div class='add'>+0x3D55 = 0x6625</div><div class='add'>+0x3D56 = 0x77AC</div><div class='add'>+0x3D57 = 0x7AE3</div><div class='add'>+0x3D58 = 0x821C</div><div class='add'>+0x3D59 = 0x99FF</div><div class='add'>+0x3D5A = 0x51C6</div><div class='add'>+0x3D5B = 0x5FAA</div><div class='add'>+0x3D5C = 0x65EC</div><div class='add'>+0x3D5D = 0x696F</div><div class='add'>+0x3D5E = 0x6B89</div><div class='add'>+0x3D5F = 0x6DF3</div><div class='add'>+0x3D60 = 0x6E96</div><div class='add'>+0x3D61 = 0x6F64</div><div class='add'>+0x3D62 = 0x76FE</div><div class='add'>+0x3D63 = 0x7D14</div><div class='add'>+0x3D64 = 0x5DE1</div><div class='add'>+0x3D65 = 0x9075</div><div class='add'>+0x3D66 = 0x9187</div><div class='add'>+0x3D67 = 0x9806</div><div class='add'>+0x3D68 = 0x51E6</div><div class='add'>+0x3D69 = 0x521D</div><div class='add'>+0x3D6A = 0x6240</div><div class='add'>+0x3D6B = 0x6691</div><div class='add'>+0x3D6C = 0x66D9</div><div class='add'>+0x3D6D = 0x6E1A</div><div class='add'>+0x3D6E = 0x5EB6</div><div class='add'>+0x3D6F = 0x7DD2</div><div class='add'>+0x3D70 = 0x7F72</div><div class='add'>+0x3D71 = 0x66F8</div><div class='add'>+0x3D72 = 0x85AF</div><div class='add'>+0x3D73 = 0x85F7</div><div class='add'>+0x3D74 = 0x8AF8</div><div class='add'>+0x3D75 = 0x52A9</div><div class='add'>+0x3D76 = 0x53D9</div><div class='add'>+0x3D77 = 0x5973</div><div class='add'>+0x3D78 = 0x5E8F</div><div class='add'>+0x3D79 = 0x5F90</div><div class='add'>+0x3D7A = 0x6055</div><div class='add'>+0x3D7B = 0x92E4</div><div class='add'>+0x3D7C = 0x9664</div><div class='add'>+0x3D7D = 0x50B7</div><div class='add'>+0x3D7E = 0x511F</div><div class='add'>+0x3E21 = 0x52DD</div><div class='add'>+0x3E22 = 0x5320</div><div class='add'>+0x3E23 = 0x5347</div><div class='add'>+0x3E24 = 0x53EC</div><div class='add'>+0x3E25 = 0x54E8</div><div class='add'>+0x3E26 = 0x5546</div><div class='add'>+0x3E27 = 0x5531</div><div class='add'>+0x3E28 = 0x5617</div><div class='add'>+0x3E29 = 0x5968</div><div class='add'>+0x3E2A = 0x59BE</div><div class='add'>+0x3E2B = 0x5A3C</div><div class='add'>+0x3E2C = 0x5BB5</div><div class='add'>+0x3E2D = 0x5C06</div><div class='add'>+0x3E2E = 0x5C0F</div><div class='add'>+0x3E2F = 0x5C11</div><div class='add'>+0x3E30 = 0x5C1A</div><div class='add'>+0x3E31 = 0x5E84</div><div class='add'>+0x3E32 = 0x5E8A</div><div class='add'>+0x3E33 = 0x5EE0</div><div class='add'>+0x3E34 = 0x5F70</div><div class='add'>+0x3E35 = 0x627F</div><div class='add'>+0x3E36 = 0x6284</div><div class='add'>+0x3E37 = 0x62DB</div><div class='add'>+0x3E38 = 0x638C</div><div class='add'>+0x3E39 = 0x6377</div><div class='add'>+0x3E3A = 0x6607</div><div class='add'>+0x3E3B = 0x660C</div><div class='add'>+0x3E3C = 0x662D</div><div class='add'>+0x3E3D = 0x6676</div><div class='add'>+0x3E3E = 0x677E</div><div class='add'>+0x3E3F = 0x68A2</div><div class='add'>+0x3E40 = 0x6A1F</div><div class='add'>+0x3E41 = 0x6A35</div><div class='add'>+0x3E42 = 0x6CBC</div><div class='add'>+0x3E43 = 0x6D88</div><div class='add'>+0x3E44 = 0x6E09</div><div class='add'>+0x3E45 = 0x6E58</div><div class='add'>+0x3E46 = 0x713C</div><div class='add'>+0x3E47 = 0x7126</div><div class='add'>+0x3E48 = 0x7167</div><div class='add'>+0x3E49 = 0x75C7</div><div class='add'>+0x3E4A = 0x7701</div><div class='add'>+0x3E4B = 0x785D</div><div class='add'>+0x3E4C = 0x7901</div><div class='add'>+0x3E4D = 0x7965</div><div class='add'>+0x3E4E = 0x79F0</div><div class='add'>+0x3E4F = 0x7AE0</div><div class='add'>+0x3E50 = 0x7B11</div><div class='add'>+0x3E51 = 0x7CA7</div><div class='add'>+0x3E52 = 0x7D39</div><div class='add'>+0x3E53 = 0x8096</div><div class='add'>+0x3E54 = 0x83D6</div><div class='add'>+0x3E55 = 0x848B</div><div class='add'>+0x3E56 = 0x8549</div><div class='add'>+0x3E57 = 0x885D</div><div class='add'>+0x3E58 = 0x88F3</div><div class='add'>+0x3E59 = 0x8A1F</div><div class='add'>+0x3E5A = 0x8A3C</div><div class='add'>+0x3E5B = 0x8A54</div><div class='add'>+0x3E5C = 0x8A73</div><div class='add'>+0x3E5D = 0x8C61</div><div class='add'>+0x3E5E = 0x8CDE</div><div class='add'>+0x3E5F = 0x91A4</div><div class='add'>+0x3E60 = 0x9266</div><div class='add'>+0x3E61 = 0x937E</div><div class='add'>+0x3E62 = 0x9418</div><div class='add'>+0x3E63 = 0x969C</div><div class='add'>+0x3E64 = 0x9798</div><div class='add'>+0x3E65 = 0x4E0A</div><div class='add'>+0x3E66 = 0x4E08</div><div class='add'>+0x3E67 = 0x4E1E</div><div class='add'>+0x3E68 = 0x4E57</div><div class='add'>+0x3E69 = 0x5197</div><div class='add'>+0x3E6A = 0x5270</div><div class='add'>+0x3E6B = 0x57CE</div><div class='add'>+0x3E6C = 0x5834</div><div class='add'>+0x3E6D = 0x58CC</div><div class='add'>+0x3E6E = 0x5B22</div><div class='add'>+0x3E6F = 0x5E38</div><div class='add'>+0x3E70 = 0x60C5</div><div class='add'>+0x3E71 = 0x64FE</div><div class='add'>+0x3E72 = 0x6761</div><div class='add'>+0x3E73 = 0x6756</div><div class='add'>+0x3E74 = 0x6D44</div><div class='add'>+0x3E75 = 0x72B6</div><div class='add'>+0x3E76 = 0x7573</div><div class='add'>+0x3E77 = 0x7A63</div><div class='add'>+0x3E78 = 0x84B8</div><div class='add'>+0x3E79 = 0x8B72</div><div class='add'>+0x3E7A = 0x91B8</div><div class='add'>+0x3E7B = 0x9320</div><div class='add'>+0x3E7C = 0x5631</div><div class='add'>+0x3E7D = 0x57F4</div><div class='add'>+0x3E7E = 0x98FE</div><div class='add'>+0x3F21 = 0x62ED</div><div class='add'>+0x3F22 = 0x690D</div><div class='add'>+0x3F23 = 0x6B96</div><div class='add'>+0x3F24 = 0x71ED</div><div class='add'>+0x3F25 = 0x7E54</div><div class='add'>+0x3F26 = 0x8077</div><div class='add'>+0x3F27 = 0x8272</div><div class='add'>+0x3F28 = 0x89E6</div><div class='add'>+0x3F29 = 0x98DF</div><div class='add'>+0x3F2A = 0x8755</div><div class='add'>+0x3F2B = 0x8FB1</div><div class='add'>+0x3F2C = 0x5C3B</div><div class='add'>+0x3F2D = 0x4F38</div><div class='add'>+0x3F2E = 0x4FE1</div><div class='add'>+0x3F2F = 0x4FB5</div><div class='add'>+0x3F30 = 0x5507</div><div class='add'>+0x3F31 = 0x5A20</div><div class='add'>+0x3F32 = 0x5BDD</div><div class='add'>+0x3F33 = 0x5BE9</div><div class='add'>+0x3F34 = 0x5FC3</div><div class='add'>+0x3F35 = 0x614E</div><div class='add'>+0x3F36 = 0x632F</div><div class='add'>+0x3F37 = 0x65B0</div><div class='add'>+0x3F38 = 0x664B</div><div class='add'>+0x3F39 = 0x68EE</div><div class='add'>+0x3F3A = 0x699B</div><div class='add'>+0x3F3B = 0x6D78</div><div class='add'>+0x3F3C = 0x6DF1</div><div class='add'>+0x3F3D = 0x7533</div><div class='add'>+0x3F3E = 0x75B9</div><div class='add'>+0x3F3F = 0x771F</div><div class='add'>+0x3F40 = 0x795E</div><div class='add'>+0x3F41 = 0x79E6</div><div class='add'>+0x3F42 = 0x7D33</div><div class='add'>+0x3F43 = 0x81E3</div><div class='add'>+0x3F44 = 0x82AF</div><div class='add'>+0x3F45 = 0x85AA</div><div class='add'>+0x3F46 = 0x89AA</div><div class='add'>+0x3F47 = 0x8A3A</div><div class='add'>+0x3F48 = 0x8EAB</div><div class='add'>+0x3F49 = 0x8F9B</div><div class='add'>+0x3F4A = 0x9032</div><div class='add'>+0x3F4B = 0x91DD</div><div class='add'>+0x3F4C = 0x9707</div><div class='add'>+0x3F4D = 0x4EBA</div><div class='add'>+0x3F4E = 0x4EC1</div><div class='add'>+0x3F4F = 0x5203</div><div class='add'>+0x3F50 = 0x5875</div><div class='add'>+0x3F51 = 0x58EC</div><div class='add'>+0x3F52 = 0x5C0B</div><div class='add'>+0x3F53 = 0x751A</div><div class='add'>+0x3F54 = 0x5C3D</div><div class='add'>+0x3F55 = 0x814E</div><div class='add'>+0x3F56 = 0x8A0A</div><div class='add'>+0x3F57 = 0x8FC5</div><div class='add'>+0x3F58 = 0x9663</div><div class='add'>+0x3F59 = 0x976D</div><div class='add'>+0x3F5A = 0x7B25</div><div class='add'>+0x3F5B = 0x8ACF</div><div class='add'>+0x3F5C = 0x9808</div><div class='add'>+0x3F5D = 0x9162</div><div class='add'>+0x3F5E = 0x56F3</div><div class='add'>+0x3F5F = 0x53A8</div><div class='add'>+0x3F60 = 0x9017</div><div class='add'>+0x3F61 = 0x5439</div><div class='add'>+0x3F62 = 0x5782</div><div class='add'>+0x3F63 = 0x5E25</div><div class='add'>+0x3F64 = 0x63A8</div><div class='add'>+0x3F65 = 0x6C34</div><div class='add'>+0x3F66 = 0x708A</div><div class='add'>+0x3F67 = 0x7761</div><div class='add'>+0x3F68 = 0x7C8B</div><div class='add'>+0x3F69 = 0x7FE0</div><div class='add'>+0x3F6A = 0x8870</div><div class='add'>+0x3F6B = 0x9042</div><div class='add'>+0x3F6C = 0x9154</div><div class='add'>+0x3F6D = 0x9310</div><div class='add'>+0x3F6E = 0x9318</div><div class='add'>+0x3F6F = 0x968F</div><div class='add'>+0x3F70 = 0x745E</div><div class='add'>+0x3F71 = 0x9AC4</div><div class='add'>+0x3F72 = 0x5D07</div><div class='add'>+0x3F73 = 0x5D69</div><div class='add'>+0x3F74 = 0x6570</div><div class='add'>+0x3F75 = 0x67A2</div><div class='add'>+0x3F76 = 0x8DA8</div><div class='add'>+0x3F77 = 0x96DB</div><div class='add'>+0x3F78 = 0x636E</div><div class='add'>+0x3F79 = 0x6749</div><div class='add'>+0x3F7A = 0x6919</div><div class='add'>+0x3F7B = 0x83C5</div><div class='add'>+0x3F7C = 0x9817</div><div class='add'>+0x3F7D = 0x96C0</div><div class='add'>+0x3F7E = 0x88FE</div><div class='add'>+0x4021 = 0x6F84</div><div class='add'>+0x4022 = 0x647A</div><div class='add'>+0x4023 = 0x5BF8</div><div class='add'>+0x4024 = 0x4E16</div><div class='add'>+0x4025 = 0x702C</div><div class='add'>+0x4026 = 0x755D</div><div class='add'>+0x4027 = 0x662F</div><div class='add'>+0x4028 = 0x51C4</div><div class='add'>+0x4029 = 0x5236</div><div class='add'>+0x402A = 0x52E2</div><div class='add'>+0x402B = 0x59D3</div><div class='add'>+0x402C = 0x5F81</div><div class='add'>+0x402D = 0x6027</div><div class='add'>+0x402E = 0x6210</div><div class='add'>+0x402F = 0x653F</div><div class='add'>+0x4030 = 0x6574</div><div class='add'>+0x4031 = 0x661F</div><div class='add'>+0x4032 = 0x6674</div><div class='add'>+0x4033 = 0x68F2</div><div class='add'>+0x4034 = 0x6816</div><div class='add'>+0x4035 = 0x6B63</div><div class='add'>+0x4036 = 0x6E05</div><div class='add'>+0x4037 = 0x7272</div><div class='add'>+0x4038 = 0x751F</div><div class='add'>+0x4039 = 0x76DB</div><div class='add'>+0x403A = 0x7CBE</div><div class='add'>+0x403B = 0x8056</div><div class='add'>+0x403C = 0x58F0</div><div class='add'>+0x403D = 0x88FD</div><div class='add'>+0x403E = 0x897F</div><div class='add'>+0x403F = 0x8AA0</div><div class='add'>+0x4040 = 0x8A93</div><div class='add'>+0x4041 = 0x8ACB</div><div class='add'>+0x4042 = 0x901D</div><div class='add'>+0x4043 = 0x9192</div><div class='add'>+0x4044 = 0x9752</div><div class='add'>+0x4045 = 0x9759</div><div class='add'>+0x4046 = 0x6589</div><div class='add'>+0x4047 = 0x7A0E</div><div class='add'>+0x4048 = 0x8106</div><div class='add'>+0x4049 = 0x96BB</div><div class='add'>+0x404A = 0x5E2D</div><div class='add'>+0x404B = 0x60DC</div><div class='add'>+0x404C = 0x621A</div><div class='add'>+0x404D = 0x65A5</div><div class='add'>+0x404E = 0x6614</div><div class='add'>+0x404F = 0x6790</div><div class='add'>+0x4050 = 0x77F3</div><div class='add'>+0x4051 = 0x7A4D</div><div class='add'>+0x4052 = 0x7C4D</div><div class='add'>+0x4053 = 0x7E3E</div><div class='add'>+0x4054 = 0x810A</div><div class='add'>+0x4055 = 0x8CAC</div><div class='add'>+0x4056 = 0x8D64</div><div class='add'>+0x4057 = 0x8DE1</div><div class='add'>+0x4058 = 0x8E5F</div><div class='add'>+0x4059 = 0x78A9</div><div class='add'>+0x405A = 0x5207</div><div class='add'>+0x405B = 0x62D9</div><div class='add'>+0x405C = 0x63A5</div><div class='add'>+0x405D = 0x6442</div><div class='add'>+0x405E = 0x6298</div><div class='add'>+0x405F = 0x8A2D</div><div class='add'>+0x4060 = 0x7A83</div><div class='add'>+0x4061 = 0x7BC0</div><div class='add'>+0x4062 = 0x8AAC</div><div class='add'>+0x4063 = 0x96EA</div><div class='add'>+0x4064 = 0x7D76</div><div class='add'>+0x4065 = 0x820C</div><div class='add'>+0x4066 = 0x8749</div><div class='add'>+0x4067 = 0x4ED9</div><div class='add'>+0x4068 = 0x5148</div><div class='add'>+0x4069 = 0x5343</div><div class='add'>+0x406A = 0x5360</div><div class='add'>+0x406B = 0x5BA3</div><div class='add'>+0x406C = 0x5C02</div><div class='add'>+0x406D = 0x5C16</div><div class='add'>+0x406E = 0x5DDD</div><div class='add'>+0x406F = 0x6226</div><div class='add'>+0x4070 = 0x6247</div><div class='add'>+0x4071 = 0x64B0</div><div class='add'>+0x4072 = 0x6813</div><div class='add'>+0x4073 = 0x6834</div><div class='add'>+0x4074 = 0x6CC9</div><div class='add'>+0x4075 = 0x6D45</div><div class='add'>+0x4076 = 0x6D17</div><div class='add'>+0x4077 = 0x67D3</div><div class='add'>+0x4078 = 0x6F5C</div><div class='add'>+0x4079 = 0x714E</div><div class='add'>+0x407A = 0x717D</div><div class='add'>+0x407B = 0x65CB</div><div class='add'>+0x407C = 0x7A7F</div><div class='add'>+0x407D = 0x7BAD</div><div class='add'>+0x407E = 0x7DDA</div><div class='add'>+0x4121 = 0x7E4A</div><div class='add'>+0x4122 = 0x7FA8</div><div class='add'>+0x4123 = 0x817A</div><div class='add'>+0x4124 = 0x821B</div><div class='add'>+0x4125 = 0x8239</div><div class='add'>+0x4126 = 0x85A6</div><div class='add'>+0x4127 = 0x8A6E</div><div class='add'>+0x4128 = 0x8CCE</div><div class='add'>+0x4129 = 0x8DF5</div><div class='add'>+0x412A = 0x9078</div><div class='add'>+0x412B = 0x9077</div><div class='add'>+0x412C = 0x92AD</div><div class='add'>+0x412D = 0x9291</div><div class='add'>+0x412E = 0x9583</div><div class='add'>+0x412F = 0x9BAE</div><div class='add'>+0x4130 = 0x524D</div><div class='add'>+0x4131 = 0x5584</div><div class='add'>+0x4132 = 0x6F38</div><div class='add'>+0x4133 = 0x7136</div><div class='add'>+0x4134 = 0x5168</div><div class='add'>+0x4135 = 0x7985</div><div class='add'>+0x4136 = 0x7E55</div><div class='add'>+0x4137 = 0x81B3</div><div class='add'>+0x4138 = 0x7CCE</div><div class='add'>+0x4139 = 0x564C</div><div class='add'>+0x413A = 0x5851</div><div class='add'>+0x413B = 0x5CA8</div><div class='add'>+0x413C = 0x63AA</div><div class='add'>+0x413D = 0x66FE</div><div class='add'>+0x413E = 0x66FD</div><div class='add'>+0x413F = 0x695A</div><div class='add'>+0x4140 = 0x72D9</div><div class='add'>+0x4141 = 0x758F</div><div class='add'>+0x4142 = 0x758E</div><div class='add'>+0x4143 = 0x790E</div><div class='add'>+0x4144 = 0x7956</div><div class='add'>+0x4145 = 0x79DF</div><div class='add'>+0x4146 = 0x7C97</div><div class='add'>+0x4147 = 0x7D20</div><div class='add'>+0x4148 = 0x7D44</div><div class='add'>+0x4149 = 0x8607</div><div class='add'>+0x414A = 0x8A34</div><div class='add'>+0x414B = 0x963B</div><div class='add'>+0x414C = 0x9061</div><div class='add'>+0x414D = 0x9F20</div><div class='add'>+0x414E = 0x50E7</div><div class='add'>+0x414F = 0x5275</div><div class='add'>+0x4150 = 0x53CC</div><div class='add'>+0x4151 = 0x53E2</div><div class='add'>+0x4152 = 0x5009</div><div class='add'>+0x4153 = 0x55AA</div><div class='add'>+0x4154 = 0x58EE</div><div class='add'>+0x4155 = 0x594F</div><div class='add'>+0x4156 = 0x723D</div><div class='add'>+0x4157 = 0x5B8B</div><div class='add'>+0x4158 = 0x5C64</div><div class='add'>+0x4159 = 0x531D</div><div class='add'>+0x415A = 0x60E3</div><div class='add'>+0x415B = 0x60F3</div><div class='add'>+0x415C = 0x635C</div><div class='add'>+0x415D = 0x6383</div><div class='add'>+0x415E = 0x633F</div><div class='add'>+0x415F = 0x63BB</div><div class='add'>+0x4160 = 0x64CD</div><div class='add'>+0x4161 = 0x65E9</div><div class='add'>+0x4162 = 0x66F9</div><div class='add'>+0x4163 = 0x5DE3</div><div class='add'>+0x4164 = 0x69CD</div><div class='add'>+0x4165 = 0x69FD</div><div class='add'>+0x4166 = 0x6F15</div><div class='add'>+0x4167 = 0x71E5</div><div class='add'>+0x4168 = 0x4E89</div><div class='add'>+0x4169 = 0x75E9</div><div class='add'>+0x416A = 0x76F8</div><div class='add'>+0x416B = 0x7A93</div><div class='add'>+0x416C = 0x7CDF</div><div class='add'>+0x416D = 0x7DCF</div><div class='add'>+0x416E = 0x7D9C</div><div class='add'>+0x416F = 0x8061</div><div class='add'>+0x4170 = 0x8349</div><div class='add'>+0x4171 = 0x8358</div><div class='add'>+0x4172 = 0x846C</div><div class='add'>+0x4173 = 0x84BC</div><div class='add'>+0x4174 = 0x85FB</div><div class='add'>+0x4175 = 0x88C5</div><div class='add'>+0x4176 = 0x8D70</div><div class='add'>+0x4177 = 0x9001</div><div class='add'>+0x4178 = 0x906D</div><div class='add'>+0x4179 = 0x9397</div><div class='add'>+0x417A = 0x971C</div><div class='add'>+0x417B = 0x9A12</div><div class='add'>+0x417C = 0x50CF</div><div class='add'>+0x417D = 0x5897</div><div class='add'>+0x417E = 0x618E</div><div class='add'>+0x4221 = 0x81D3</div><div class='add'>+0x4222 = 0x8535</div><div class='add'>+0x4223 = 0x8D08</div><div class='add'>+0x4224 = 0x9020</div><div class='add'>+0x4225 = 0x4FC3</div><div class='add'>+0x4226 = 0x5074</div><div class='add'>+0x4227 = 0x5247</div><div class='add'>+0x4228 = 0x5373</div><div class='add'>+0x4229 = 0x606F</div><div class='add'>+0x422A = 0x6349</div><div class='add'>+0x422B = 0x675F</div><div class='add'>+0x422C = 0x6E2C</div><div class='add'>+0x422D = 0x8DB3</div><div class='add'>+0x422E = 0x901F</div><div class='add'>+0x422F = 0x4FD7</div><div class='add'>+0x4230 = 0x5C5E</div><div class='add'>+0x4231 = 0x8CCA</div><div class='add'>+0x4232 = 0x65CF</div><div class='add'>+0x4233 = 0x7D9A</div><div class='add'>+0x4234 = 0x5352</div><div class='add'>+0x4235 = 0x8896</div><div class='add'>+0x4236 = 0x5176</div><div class='add'>+0x4237 = 0x63C3</div><div class='add'>+0x4238 = 0x5B58</div><div class='add'>+0x4239 = 0x5B6B</div><div class='add'>+0x423A = 0x5C0A</div><div class='add'>+0x423B = 0x640D</div><div class='add'>+0x423C = 0x6751</div><div class='add'>+0x423D = 0x905C</div><div class='add'>+0x423E = 0x4ED6</div><div class='add'>+0x423F = 0x591A</div><div class='add'>+0x4240 = 0x592A</div><div class='add'>+0x4241 = 0x6C70</div><div class='add'>+0x4242 = 0x8A51</div><div class='add'>+0x4243 = 0x553E</div><div class='add'>+0x4244 = 0x5815</div><div class='add'>+0x4245 = 0x59A5</div><div class='add'>+0x4246 = 0x60F0</div><div class='add'>+0x4247 = 0x6253</div><div class='add'>+0x4248 = 0x67C1</div><div class='add'>+0x4249 = 0x8235</div><div class='add'>+0x424A = 0x6955</div><div class='add'>+0x424B = 0x9640</div><div class='add'>+0x424C = 0x99C4</div><div class='add'>+0x424D = 0x9A28</div><div class='add'>+0x424E = 0x4F53</div><div class='add'>+0x424F = 0x5806</div><div class='add'>+0x4250 = 0x5BFE</div><div class='add'>+0x4251 = 0x8010</div><div class='add'>+0x4252 = 0x5CB1</div><div class='add'>+0x4253 = 0x5E2F</div><div class='add'>+0x4254 = 0x5F85</div><div class='add'>+0x4255 = 0x6020</div><div class='add'>+0x4256 = 0x614B</div><div class='add'>+0x4257 = 0x6234</div><div class='add'>+0x4258 = 0x66FF</div><div class='add'>+0x4259 = 0x6CF0</div><div class='add'>+0x425A = 0x6EDE</div><div class='add'>+0x425B = 0x80CE</div><div class='add'>+0x425C = 0x817F</div><div class='add'>+0x425D = 0x82D4</div><div class='add'>+0x425E = 0x888B</div><div class='add'>+0x425F = 0x8CB8</div><div class='add'>+0x4260 = 0x9000</div><div class='add'>+0x4261 = 0x902E</div><div class='add'>+0x4262 = 0x968A</div><div class='add'>+0x4263 = 0x9EDB</div><div class='add'>+0x4264 = 0x9BDB</div><div class='add'>+0x4265 = 0x4EE3</div><div class='add'>+0x4266 = 0x53F0</div><div class='add'>+0x4267 = 0x5927</div><div class='add'>+0x4268 = 0x7B2C</div><div class='add'>+0x4269 = 0x918D</div><div class='add'>+0x426A = 0x984C</div><div class='add'>+0x426B = 0x9DF9</div><div class='add'>+0x426C = 0x6EDD</div><div class='add'>+0x426D = 0x7027</div><div class='add'>+0x426E = 0x5353</div><div class='add'>+0x426F = 0x5544</div><div class='add'>+0x4270 = 0x5B85</div><div class='add'>+0x4271 = 0x6258</div><div class='add'>+0x4272 = 0x629E</div><div class='add'>+0x4273 = 0x62D3</div><div class='add'>+0x4274 = 0x6CA2</div><div class='add'>+0x4275 = 0x6FEF</div><div class='add'>+0x4276 = 0x7422</div><div class='add'>+0x4277 = 0x8A17</div><div class='add'>+0x4278 = 0x9438</div><div class='add'>+0x4279 = 0x6FC1</div><div class='add'>+0x427A = 0x8AFE</div><div class='add'>+0x427B = 0x8338</div><div class='add'>+0x427C = 0x51E7</div><div class='add'>+0x427D = 0x86F8</div><div class='add'>+0x427E = 0x53EA</div><div class='add'>+0x4321 = 0x53E9</div><div class='add'>+0x4322 = 0x4F46</div><div class='add'>+0x4323 = 0x9054</div><div class='add'>+0x4324 = 0x8FB0</div><div class='add'>+0x4325 = 0x596A</div><div class='add'>+0x4326 = 0x8131</div><div class='add'>+0x4327 = 0x5DFD</div><div class='add'>+0x4328 = 0x7AEA</div><div class='add'>+0x4329 = 0x8FBF</div><div class='add'>+0x432A = 0x68DA</div><div class='add'>+0x432B = 0x8C37</div><div class='add'>+0x432C = 0x72F8</div><div class='add'>+0x432D = 0x9C48</div><div class='add'>+0x432E = 0x6A3D</div><div class='add'>+0x432F = 0x8AB0</div><div class='add'>+0x4330 = 0x4E39</div><div class='add'>+0x4331 = 0x5358</div><div class='add'>+0x4332 = 0x5606</div><div class='add'>+0x4333 = 0x5766</div><div class='add'>+0x4334 = 0x62C5</div><div class='add'>+0x4335 = 0x63A2</div><div class='add'>+0x4336 = 0x65E6</div><div class='add'>+0x4337 = 0x6B4E</div><div class='add'>+0x4338 = 0x6DE1</div><div class='add'>+0x4339 = 0x6E5B</div><div class='add'>+0x433A = 0x70AD</div><div class='add'>+0x433B = 0x77ED</div><div class='add'>+0x433C = 0x7AEF</div><div class='add'>+0x433D = 0x7BAA</div><div class='add'>+0x433E = 0x7DBB</div><div class='add'>+0x433F = 0x803D</div><div class='add'>+0x4340 = 0x80C6</div><div class='add'>+0x4341 = 0x86CB</div><div class='add'>+0x4342 = 0x8A95</div><div class='add'>+0x4343 = 0x935B</div><div class='add'>+0x4344 = 0x56E3</div><div class='add'>+0x4345 = 0x58C7</div><div class='add'>+0x4346 = 0x5F3E</div><div class='add'>+0x4347 = 0x65AD</div><div class='add'>+0x4348 = 0x6696</div><div class='add'>+0x4349 = 0x6A80</div><div class='add'>+0x434A = 0x6BB5</div><div class='add'>+0x434B = 0x7537</div><div class='add'>+0x434C = 0x8AC7</div><div class='add'>+0x434D = 0x5024</div><div class='add'>+0x434E = 0x77E5</div><div class='add'>+0x434F = 0x5730</div><div class='add'>+0x4350 = 0x5F1B</div><div class='add'>+0x4351 = 0x6065</div><div class='add'>+0x4352 = 0x667A</div><div class='add'>+0x4353 = 0x6C60</div><div class='add'>+0x4354 = 0x75F4</div><div class='add'>+0x4355 = 0x7A1A</div><div class='add'>+0x4356 = 0x7F6E</div><div class='add'>+0x4357 = 0x81F4</div><div class='add'>+0x4358 = 0x8718</div><div class='add'>+0x4359 = 0x9045</div><div class='add'>+0x435A = 0x99B3</div><div class='add'>+0x435B = 0x7BC9</div><div class='add'>+0x435C = 0x755C</div><div class='add'>+0x435D = 0x7AF9</div><div class='add'>+0x435E = 0x7B51</div><div class='add'>+0x435F = 0x84C4</div><div class='add'>+0x4360 = 0x9010</div><div class='add'>+0x4361 = 0x79E9</div><div class='add'>+0x4362 = 0x7A92</div><div class='add'>+0x4363 = 0x8336</div><div class='add'>+0x4364 = 0x5AE1</div><div class='add'>+0x4365 = 0x7740</div><div class='add'>+0x4366 = 0x4E2D</div><div class='add'>+0x4367 = 0x4EF2</div><div class='add'>+0x4368 = 0x5B99</div><div class='add'>+0x4369 = 0x5FE0</div><div class='add'>+0x436A = 0x62BD</div><div class='add'>+0x436B = 0x663C</div><div class='add'>+0x436C = 0x67F1</div><div class='add'>+0x436D = 0x6CE8</div><div class='add'>+0x436E = 0x866B</div><div class='add'>+0x436F = 0x8877</div><div class='add'>+0x4370 = 0x8A3B</div><div class='add'>+0x4371 = 0x914E</div><div class='add'>+0x4372 = 0x92F3</div><div class='add'>+0x4373 = 0x99D0</div><div class='add'>+0x4374 = 0x6A17</div><div class='add'>+0x4375 = 0x7026</div><div class='add'>+0x4376 = 0x732A</div><div class='add'>+0x4377 = 0x82E7</div><div class='add'>+0x4378 = 0x8457</div><div class='add'>+0x4379 = 0x8CAF</div><div class='add'>+0x437A = 0x4E01</div><div class='add'>+0x437B = 0x5146</div><div class='add'>+0x437C = 0x51CB</div><div class='add'>+0x437D = 0x558B</div><div class='add'>+0x437E = 0x5BF5</div><div class='add'>+0x4421 = 0x5E16</div><div class='add'>+0x4422 = 0x5E33</div><div class='add'>+0x4423 = 0x5E81</div><div class='add'>+0x4424 = 0x5F14</div><div class='add'>+0x4425 = 0x5F35</div><div class='add'>+0x4426 = 0x5F6B</div><div class='add'>+0x4427 = 0x5FB4</div><div class='add'>+0x4428 = 0x61F2</div><div class='add'>+0x4429 = 0x6311</div><div class='add'>+0x442A = 0x66A2</div><div class='add'>+0x442B = 0x671D</div><div class='add'>+0x442C = 0x6F6E</div><div class='add'>+0x442D = 0x7252</div><div class='add'>+0x442E = 0x753A</div><div class='add'>+0x442F = 0x773A</div><div class='add'>+0x4430 = 0x8074</div><div class='add'>+0x4431 = 0x8139</div><div class='add'>+0x4432 = 0x8178</div><div class='add'>+0x4433 = 0x8776</div><div class='add'>+0x4434 = 0x8ABF</div><div class='add'>+0x4435 = 0x8ADC</div><div class='add'>+0x4436 = 0x8D85</div><div class='add'>+0x4437 = 0x8DF3</div><div class='add'>+0x4438 = 0x929A</div><div class='add'>+0x4439 = 0x9577</div><div class='add'>+0x443A = 0x9802</div><div class='add'>+0x443B = 0x9CE5</div><div class='add'>+0x443C = 0x52C5</div><div class='add'>+0x443D = 0x6357</div><div class='add'>+0x443E = 0x76F4</div><div class='add'>+0x443F = 0x6715</div><div class='add'>+0x4440 = 0x6C88</div><div class='add'>+0x4441 = 0x73CD</div><div class='add'>+0x4442 = 0x8CC3</div><div class='add'>+0x4443 = 0x93AE</div><div class='add'>+0x4444 = 0x9673</div><div class='add'>+0x4445 = 0x6D25</div><div class='add'>+0x4446 = 0x589C</div><div class='add'>+0x4447 = 0x690E</div><div class='add'>+0x4448 = 0x69CC</div><div class='add'>+0x4449 = 0x8FFD</div><div class='add'>+0x444A = 0x939A</div><div class='add'>+0x444B = 0x75DB</div><div class='add'>+0x444C = 0x901A</div><div class='add'>+0x444D = 0x585A</div><div class='add'>+0x444E = 0x6802</div><div class='add'>+0x444F = 0x63B4</div><div class='add'>+0x4450 = 0x69FB</div><div class='add'>+0x4451 = 0x4F43</div><div class='add'>+0x4452 = 0x6F2C</div><div class='add'>+0x4453 = 0x67D8</div><div class='add'>+0x4454 = 0x8FBB</div><div class='add'>+0x4455 = 0x8526</div><div class='add'>+0x4456 = 0x7DB4</div><div class='add'>+0x4457 = 0x9354</div><div class='add'>+0x4458 = 0x693F</div><div class='add'>+0x4459 = 0x6F70</div><div class='add'>+0x445A = 0x576A</div><div class='add'>+0x445B = 0x58F7</div><div class='add'>+0x445C = 0x5B2C</div><div class='add'>+0x445D = 0x7D2C</div><div class='add'>+0x445E = 0x722A</div><div class='add'>+0x445F = 0x540A</div><div class='add'>+0x4460 = 0x91E3</div><div class='add'>+0x4461 = 0x9DB4</div><div class='add'>+0x4462 = 0x4EAD</div><div class='add'>+0x4463 = 0x4F4E</div><div class='add'>+0x4464 = 0x505C</div><div class='add'>+0x4465 = 0x5075</div><div class='add'>+0x4466 = 0x5243</div><div class='add'>+0x4467 = 0x8C9E</div><div class='add'>+0x4468 = 0x5448</div><div class='add'>+0x4469 = 0x5824</div><div class='add'>+0x446A = 0x5B9A</div><div class='add'>+0x446B = 0x5E1D</div><div class='add'>+0x446C = 0x5E95</div><div class='add'>+0x446D = 0x5EAD</div><div class='add'>+0x446E = 0x5EF7</div><div class='add'>+0x446F = 0x5F1F</div><div class='add'>+0x4470 = 0x608C</div><div class='add'>+0x4471 = 0x62B5</div><div class='add'>+0x4472 = 0x633A</div><div class='add'>+0x4473 = 0x63D0</div><div class='add'>+0x4474 = 0x68AF</div><div class='add'>+0x4475 = 0x6C40</div><div class='add'>+0x4476 = 0x7887</div><div class='add'>+0x4477 = 0x798E</div><div class='add'>+0x4478 = 0x7A0B</div><div class='add'>+0x4479 = 0x7DE0</div><div class='add'>+0x447A = 0x8247</div><div class='add'>+0x447B = 0x8A02</div><div class='add'>+0x447C = 0x8AE6</div><div class='add'>+0x447D = 0x8E44</div><div class='add'>+0x447E = 0x9013</div><div class='add'>+0x4521 = 0x90B8</div><div class='add'>+0x4522 = 0x912D</div><div class='add'>+0x4523 = 0x91D8</div><div class='add'>+0x4524 = 0x9F0E</div><div class='add'>+0x4525 = 0x6CE5</div><div class='add'>+0x4526 = 0x6458</div><div class='add'>+0x4527 = 0x64E2</div><div class='add'>+0x4528 = 0x6575</div><div class='add'>+0x4529 = 0x6EF4</div><div class='add'>+0x452A = 0x7684</div><div class='add'>+0x452B = 0x7B1B</div><div class='add'>+0x452C = 0x9069</div><div class='add'>+0x452D = 0x93D1</div><div class='add'>+0x452E = 0x6EBA</div><div class='add'>+0x452F = 0x54F2</div><div class='add'>+0x4530 = 0x5FB9</div><div class='add'>+0x4531 = 0x64A4</div><div class='add'>+0x4532 = 0x8F4D</div><div class='add'>+0x4533 = 0x8FED</div><div class='add'>+0x4534 = 0x9244</div><div class='add'>+0x4535 = 0x5178</div><div class='add'>+0x4536 = 0x586B</div><div class='add'>+0x4537 = 0x5929</div><div class='add'>+0x4538 = 0x5C55</div><div class='add'>+0x4539 = 0x5E97</div><div class='add'>+0x453A = 0x6DFB</div><div class='add'>+0x453B = 0x7E8F</div><div class='add'>+0x453C = 0x751C</div><div class='add'>+0x453D = 0x8CBC</div><div class='add'>+0x453E = 0x8EE2</div><div class='add'>+0x453F = 0x985B</div><div class='add'>+0x4540 = 0x70B9</div><div class='add'>+0x4541 = 0x4F1D</div><div class='add'>+0x4542 = 0x6BBF</div><div class='add'>+0x4543 = 0x6FB1</div><div class='add'>+0x4544 = 0x7530</div><div class='add'>+0x4545 = 0x96FB</div><div class='add'>+0x4546 = 0x514E</div><div class='add'>+0x4547 = 0x5410</div><div class='add'>+0x4548 = 0x5835</div><div class='add'>+0x4549 = 0x5857</div><div class='add'>+0x454A = 0x59AC</div><div class='add'>+0x454B = 0x5C60</div><div class='add'>+0x454C = 0x5F92</div><div class='add'>+0x454D = 0x6597</div><div class='add'>+0x454E = 0x675C</div><div class='add'>+0x454F = 0x6E21</div><div class='add'>+0x4550 = 0x767B</div><div class='add'>+0x4551 = 0x83DF</div><div class='add'>+0x4552 = 0x8CED</div><div class='add'>+0x4553 = 0x9014</div><div class='add'>+0x4554 = 0x90FD</div><div class='add'>+0x4555 = 0x934D</div><div class='add'>+0x4556 = 0x7825</div><div class='add'>+0x4557 = 0x783A</div><div class='add'>+0x4558 = 0x52AA</div><div class='add'>+0x4559 = 0x5EA6</div><div class='add'>+0x455A = 0x571F</div><div class='add'>+0x455B = 0x5974</div><div class='add'>+0x455C = 0x6012</div><div class='add'>+0x455D = 0x5012</div><div class='add'>+0x455E = 0x515A</div><div class='add'>+0x455F = 0x51AC</div><div class='add'>+0x4560 = 0x51CD</div><div class='add'>+0x4561 = 0x5200</div><div class='add'>+0x4562 = 0x5510</div><div class='add'>+0x4563 = 0x5854</div><div class='add'>+0x4564 = 0x5858</div><div class='add'>+0x4565 = 0x5957</div><div class='add'>+0x4566 = 0x5B95</div><div class='add'>+0x4567 = 0x5CF6</div><div class='add'>+0x4568 = 0x5D8B</div><div class='add'>+0x4569 = 0x60BC</div><div class='add'>+0x456A = 0x6295</div><div class='add'>+0x456B = 0x642D</div><div class='add'>+0x456C = 0x6771</div><div class='add'>+0x456D = 0x6843</div><div class='add'>+0x456E = 0x68BC</div><div class='add'>+0x456F = 0x68DF</div><div class='add'>+0x4570 = 0x76D7</div><div class='add'>+0x4571 = 0x6DD8</div><div class='add'>+0x4572 = 0x6E6F</div><div class='add'>+0x4573 = 0x6D9B</div><div class='add'>+0x4574 = 0x706F</div><div class='add'>+0x4575 = 0x71C8</div><div class='add'>+0x4576 = 0x5F53</div><div class='add'>+0x4577 = 0x75D8</div><div class='add'>+0x4578 = 0x7977</div><div class='add'>+0x4579 = 0x7B49</div><div class='add'>+0x457A = 0x7B54</div><div class='add'>+0x457B = 0x7B52</div><div class='add'>+0x457C = 0x7CD6</div><div class='add'>+0x457D = 0x7D71</div><div class='add'>+0x457E = 0x5230</div><div class='add'>+0x4621 = 0x8463</div><div class='add'>+0x4622 = 0x8569</div><div class='add'>+0x4623 = 0x85E4</div><div class='add'>+0x4624 = 0x8A0E</div><div class='add'>+0x4625 = 0x8B04</div><div class='add'>+0x4626 = 0x8C46</div><div class='add'>+0x4627 = 0x8E0F</div><div class='add'>+0x4628 = 0x9003</div><div class='add'>+0x4629 = 0x900F</div><div class='add'>+0x462A = 0x9419</div><div class='add'>+0x462B = 0x9676</div><div class='add'>+0x462C = 0x982D</div><div class='add'>+0x462D = 0x9A30</div><div class='add'>+0x462E = 0x95D8</div><div class='add'>+0x462F = 0x50CD</div><div class='add'>+0x4630 = 0x52D5</div><div class='add'>+0x4631 = 0x540C</div><div class='add'>+0x4632 = 0x5802</div><div class='add'>+0x4633 = 0x5C0E</div><div class='add'>+0x4634 = 0x61A7</div><div class='add'>+0x4635 = 0x649E</div><div class='add'>+0x4636 = 0x6D1E</div><div class='add'>+0x4637 = 0x77B3</div><div class='add'>+0x4638 = 0x7AE5</div><div class='add'>+0x4639 = 0x80F4</div><div class='add'>+0x463A = 0x8404</div><div class='add'>+0x463B = 0x9053</div><div class='add'>+0x463C = 0x9285</div><div class='add'>+0x463D = 0x5CE0</div><div class='add'>+0x463E = 0x9D07</div><div class='add'>+0x463F = 0x533F</div><div class='add'>+0x4640 = 0x5F97</div><div class='add'>+0x4641 = 0x5FB3</div><div class='add'>+0x4642 = 0x6D9C</div><div class='add'>+0x4643 = 0x7279</div><div class='add'>+0x4644 = 0x7763</div><div class='add'>+0x4645 = 0x79BF</div><div class='add'>+0x4646 = 0x7BE4</div><div class='add'>+0x4647 = 0x6BD2</div><div class='add'>+0x4648 = 0x72EC</div><div class='add'>+0x4649 = 0x8AAD</div><div class='add'>+0x464A = 0x6803</div><div class='add'>+0x464B = 0x6A61</div><div class='add'>+0x464C = 0x51F8</div><div class='add'>+0x464D = 0x7A81</div><div class='add'>+0x464E = 0x6934</div><div class='add'>+0x464F = 0x5C4A</div><div class='add'>+0x4650 = 0x9CF6</div><div class='add'>+0x4651 = 0x82EB</div><div class='add'>+0x4652 = 0x5BC5</div><div class='add'>+0x4653 = 0x9149</div><div class='add'>+0x4654 = 0x701E</div><div class='add'>+0x4655 = 0x5678</div><div class='add'>+0x4656 = 0x5C6F</div><div class='add'>+0x4657 = 0x60C7</div><div class='add'>+0x4658 = 0x6566</div><div class='add'>+0x4659 = 0x6C8C</div><div class='add'>+0x465A = 0x8C5A</div><div class='add'>+0x465B = 0x9041</div><div class='add'>+0x465C = 0x9813</div><div class='add'>+0x465D = 0x5451</div><div class='add'>+0x465E = 0x66C7</div><div class='add'>+0x465F = 0x920D</div><div class='add'>+0x4660 = 0x5948</div><div class='add'>+0x4661 = 0x90A3</div><div class='add'>+0x4662 = 0x5185</div><div class='add'>+0x4663 = 0x4E4D</div><div class='add'>+0x4664 = 0x51EA</div><div class='add'>+0x4665 = 0x8599</div><div class='add'>+0x4666 = 0x8B0E</div><div class='add'>+0x4667 = 0x7058</div><div class='add'>+0x4668 = 0x637A</div><div class='add'>+0x4669 = 0x934B</div><div class='add'>+0x466A = 0x6962</div><div class='add'>+0x466B = 0x99B4</div><div class='add'>+0x466C = 0x7E04</div><div class='add'>+0x466D = 0x7577</div><div class='add'>+0x466E = 0x5357</div><div class='add'>+0x466F = 0x6960</div><div class='add'>+0x4670 = 0x8EDF</div><div class='add'>+0x4671 = 0x96E3</div><div class='add'>+0x4672 = 0x6C5D</div><div class='add'>+0x4673 = 0x4E8C</div><div class='add'>+0x4674 = 0x5C3C</div><div class='add'>+0x4675 = 0x5F10</div><div class='add'>+0x4676 = 0x8FE9</div><div class='add'>+0x4677 = 0x5302</div><div class='add'>+0x4678 = 0x8CD1</div><div class='add'>+0x4679 = 0x8089</div><div class='add'>+0x467A = 0x8679</div><div class='add'>+0x467B = 0x5EFF</div><div class='add'>+0x467C = 0x65E5</div><div class='add'>+0x467D = 0x4E73</div><div class='add'>+0x467E = 0x5165</div><div class='add'>+0x4721 = 0x5982</div><div class='add'>+0x4722 = 0x5C3F</div><div class='add'>+0x4723 = 0x97EE</div><div class='add'>+0x4724 = 0x4EFB</div><div class='add'>+0x4725 = 0x598A</div><div class='add'>+0x4726 = 0x5FCD</div><div class='add'>+0x4727 = 0x8A8D</div><div class='add'>+0x4728 = 0x6FE1</div><div class='add'>+0x4729 = 0x79B0</div><div class='add'>+0x472A = 0x7962</div><div class='add'>+0x472B = 0x5BE7</div><div class='add'>+0x472C = 0x8471</div><div class='add'>+0x472D = 0x732B</div><div class='add'>+0x472E = 0x71B1</div><div class='add'>+0x472F = 0x5E74</div><div class='add'>+0x4730 = 0x5FF5</div><div class='add'>+0x4731 = 0x637B</div><div class='add'>+0x4732 = 0x649A</div><div class='add'>+0x4733 = 0x71C3</div><div class='add'>+0x4734 = 0x7C98</div><div class='add'>+0x4735 = 0x4E43</div><div class='add'>+0x4736 = 0x5EFC</div><div class='add'>+0x4737 = 0x4E4B</div><div class='add'>+0x4738 = 0x57DC</div><div class='add'>+0x4739 = 0x56A2</div><div class='add'>+0x473A = 0x60A9</div><div class='add'>+0x473B = 0x6FC3</div><div class='add'>+0x473C = 0x7D0D</div><div class='add'>+0x473D = 0x80FD</div><div class='add'>+0x473E = 0x8133</div><div class='add'>+0x473F = 0x81BF</div><div class='add'>+0x4740 = 0x8FB2</div><div class='add'>+0x4741 = 0x8997</div><div class='add'>+0x4742 = 0x86A4</div><div class='add'>+0x4743 = 0x5DF4</div><div class='add'>+0x4744 = 0x628A</div><div class='add'>+0x4745 = 0x64AD</div><div class='add'>+0x4746 = 0x8987</div><div class='add'>+0x4747 = 0x6777</div><div class='add'>+0x4748 = 0x6CE2</div><div class='add'>+0x4749 = 0x6D3E</div><div class='add'>+0x474A = 0x7436</div><div class='add'>+0x474B = 0x7834</div><div class='add'>+0x474C = 0x5A46</div><div class='add'>+0x474D = 0x7F75</div><div class='add'>+0x474E = 0x82AD</div><div class='add'>+0x474F = 0x99AC</div><div class='add'>+0x4750 = 0x4FF3</div><div class='add'>+0x4751 = 0x5EC3</div><div class='add'>+0x4752 = 0x62DD</div><div class='add'>+0x4753 = 0x6392</div><div class='add'>+0x4754 = 0x6557</div><div class='add'>+0x4755 = 0x676F</div><div class='add'>+0x4756 = 0x76C3</div><div class='add'>+0x4757 = 0x724C</div><div class='add'>+0x4758 = 0x80CC</div><div class='add'>+0x4759 = 0x80BA</div><div class='add'>+0x475A = 0x8F29</div><div class='add'>+0x475B = 0x914D</div><div class='add'>+0x475C = 0x500D</div><div class='add'>+0x475D = 0x57F9</div><div class='add'>+0x475E = 0x5A92</div><div class='add'>+0x475F = 0x6885</div><div class='add'>+0x4760 = 0x6973</div><div class='add'>+0x4761 = 0x7164</div><div class='add'>+0x4762 = 0x72FD</div><div class='add'>+0x4763 = 0x8CB7</div><div class='add'>+0x4764 = 0x58F2</div><div class='add'>+0x4765 = 0x8CE0</div><div class='add'>+0x4766 = 0x966A</div><div class='add'>+0x4767 = 0x9019</div><div class='add'>+0x4768 = 0x877F</div><div class='add'>+0x4769 = 0x79E4</div><div class='add'>+0x476A = 0x77E7</div><div class='add'>+0x476B = 0x8429</div><div class='add'>+0x476C = 0x4F2F</div><div class='add'>+0x476D = 0x5265</div><div class='add'>+0x476E = 0x535A</div><div class='add'>+0x476F = 0x62CD</div><div class='add'>+0x4770 = 0x67CF</div><div class='add'>+0x4771 = 0x6CCA</div><div class='add'>+0x4772 = 0x767D</div><div class='add'>+0x4773 = 0x7B94</div><div class='add'>+0x4774 = 0x7C95</div><div class='add'>+0x4775 = 0x8236</div><div class='add'>+0x4776 = 0x8584</div><div class='add'>+0x4777 = 0x8FEB</div><div class='add'>+0x4778 = 0x66DD</div><div class='add'>+0x4779 = 0x6F20</div><div class='add'>+0x477A = 0x7206</div><div class='add'>+0x477B = 0x7E1B</div><div class='add'>+0x477C = 0x83AB</div><div class='add'>+0x477D = 0x99C1</div><div class='add'>+0x477E = 0x9EA6</div><div class='add'>+0x4821 = 0x51FD</div><div class='add'>+0x4822 = 0x7BB1</div><div class='add'>+0x4823 = 0x7872</div><div class='add'>+0x4824 = 0x7BB8</div><div class='add'>+0x4825 = 0x8087</div><div class='add'>+0x4826 = 0x7B48</div><div class='add'>+0x4827 = 0x6AE8</div><div class='add'>+0x4828 = 0x5E61</div><div class='add'>+0x4829 = 0x808C</div><div class='add'>+0x482A = 0x7551</div><div class='add'>+0x482B = 0x7560</div><div class='add'>+0x482C = 0x516B</div><div class='add'>+0x482D = 0x9262</div><div class='add'>+0x482E = 0x6E8C</div><div class='add'>+0x482F = 0x767A</div><div class='add'>+0x4830 = 0x9197</div><div class='add'>+0x4831 = 0x9AEA</div><div class='add'>+0x4832 = 0x4F10</div><div class='add'>+0x4833 = 0x7F70</div><div class='add'>+0x4834 = 0x629C</div><div class='add'>+0x4835 = 0x7B4F</div><div class='add'>+0x4836 = 0x95A5</div><div class='add'>+0x4837 = 0x9CE9</div><div class='add'>+0x4838 = 0x567A</div><div class='add'>+0x4839 = 0x5859</div><div class='add'>+0x483A = 0x86E4</div><div class='add'>+0x483B = 0x96BC</div><div class='add'>+0x483C = 0x4F34</div><div class='add'>+0x483D = 0x5224</div><div class='add'>+0x483E = 0x534A</div><div class='add'>+0x483F = 0x53CD</div><div class='add'>+0x4840 = 0x53DB</div><div class='add'>+0x4841 = 0x5E06</div><div class='add'>+0x4842 = 0x642C</div><div class='add'>+0x4843 = 0x6591</div><div class='add'>+0x4844 = 0x677F</div><div class='add'>+0x4845 = 0x6C3E</div><div class='add'>+0x4846 = 0x6C4E</div><div class='add'>+0x4847 = 0x7248</div><div class='add'>+0x4848 = 0x72AF</div><div class='add'>+0x4849 = 0x73ED</div><div class='add'>+0x484A = 0x7554</div><div class='add'>+0x484B = 0x7E41</div><div class='add'>+0x484C = 0x822C</div><div class='add'>+0x484D = 0x85E9</div><div class='add'>+0x484E = 0x8CA9</div><div class='add'>+0x484F = 0x7BC4</div><div class='add'>+0x4850 = 0x91C6</div><div class='add'>+0x4851 = 0x7169</div><div class='add'>+0x4852 = 0x9812</div><div class='add'>+0x4853 = 0x98EF</div><div class='add'>+0x4854 = 0x633D</div><div class='add'>+0x4855 = 0x6669</div><div class='add'>+0x4856 = 0x756A</div><div class='add'>+0x4857 = 0x76E4</div><div class='add'>+0x4858 = 0x78D0</div><div class='add'>+0x4859 = 0x8543</div><div class='add'>+0x485A = 0x86EE</div><div class='add'>+0x485B = 0x532A</div><div class='add'>+0x485C = 0x5351</div><div class='add'>+0x485D = 0x5426</div><div class='add'>+0x485E = 0x5983</div><div class='add'>+0x485F = 0x5E87</div><div class='add'>+0x4860 = 0x5F7C</div><div class='add'>+0x4861 = 0x60B2</div><div class='add'>+0x4862 = 0x6249</div><div class='add'>+0x4863 = 0x6279</div><div class='add'>+0x4864 = 0x62AB</div><div class='add'>+0x4865 = 0x6590</div><div class='add'>+0x4866 = 0x6BD4</div><div class='add'>+0x4867 = 0x6CCC</div><div class='add'>+0x4868 = 0x75B2</div><div class='add'>+0x4869 = 0x76AE</div><div class='add'>+0x486A = 0x7891</div><div class='add'>+0x486B = 0x79D8</div><div class='add'>+0x486C = 0x7DCB</div><div class='add'>+0x486D = 0x7F77</div><div class='add'>+0x486E = 0x80A5</div><div class='add'>+0x486F = 0x88AB</div><div class='add'>+0x4870 = 0x8AB9</div><div class='add'>+0x4871 = 0x8CBB</div><div class='add'>+0x4872 = 0x907F</div><div class='add'>+0x4873 = 0x975E</div><div class='add'>+0x4874 = 0x98DB</div><div class='add'>+0x4875 = 0x6A0B</div><div class='add'>+0x4876 = 0x7C38</div><div class='add'>+0x4877 = 0x5099</div><div class='add'>+0x4878 = 0x5C3E</div><div class='add'>+0x4879 = 0x5FAE</div><div class='add'>+0x487A = 0x6787</div><div class='add'>+0x487B = 0x6BD8</div><div class='add'>+0x487C = 0x7435</div><div class='add'>+0x487D = 0x7709</div><div class='add'>+0x487E = 0x7F8E</div><div class='add'>+0x4921 = 0x9F3B</div><div class='add'>+0x4922 = 0x67CA</div><div class='add'>+0x4923 = 0x7A17</div><div class='add'>+0x4924 = 0x5339</div><div class='add'>+0x4925 = 0x758B</div><div class='add'>+0x4926 = 0x9AED</div><div class='add'>+0x4927 = 0x5F66</div><div class='add'>+0x4928 = 0x819D</div><div class='add'>+0x4929 = 0x83F1</div><div class='add'>+0x492A = 0x8098</div><div class='add'>+0x492B = 0x5F3C</div><div class='add'>+0x492C = 0x5FC5</div><div class='add'>+0x492D = 0x7562</div><div class='add'>+0x492E = 0x7B46</div><div class='add'>+0x492F = 0x903C</div><div class='add'>+0x4930 = 0x6867</div><div class='add'>+0x4931 = 0x59EB</div><div class='add'>+0x4932 = 0x5A9B</div><div class='add'>+0x4933 = 0x7D10</div><div class='add'>+0x4934 = 0x767E</div><div class='add'>+0x4935 = 0x8B2C</div><div class='add'>+0x4936 = 0x4FF5</div><div class='add'>+0x4937 = 0x5F6A</div><div class='add'>+0x4938 = 0x6A19</div><div class='add'>+0x4939 = 0x6C37</div><div class='add'>+0x493A = 0x6F02</div><div class='add'>+0x493B = 0x74E2</div><div class='add'>+0x493C = 0x7968</div><div class='add'>+0x493D = 0x8868</div><div class='add'>+0x493E = 0x8A55</div><div class='add'>+0x493F = 0x8C79</div><div class='add'>+0x4940 = 0x5EDF</div><div class='add'>+0x4941 = 0x63CF</div><div class='add'>+0x4942 = 0x75C5</div><div class='add'>+0x4943 = 0x79D2</div><div class='add'>+0x4944 = 0x82D7</div><div class='add'>+0x4945 = 0x9328</div><div class='add'>+0x4946 = 0x92F2</div><div class='add'>+0x4947 = 0x849C</div><div class='add'>+0x4948 = 0x86ED</div><div class='add'>+0x4949 = 0x9C2D</div><div class='add'>+0x494A = 0x54C1</div><div class='add'>+0x494B = 0x5F6C</div><div class='add'>+0x494C = 0x658C</div><div class='add'>+0x494D = 0x6D5C</div><div class='add'>+0x494E = 0x7015</div><div class='add'>+0x494F = 0x8CA7</div><div class='add'>+0x4950 = 0x8CD3</div><div class='add'>+0x4951 = 0x983B</div><div class='add'>+0x4952 = 0x654F</div><div class='add'>+0x4953 = 0x74F6</div><div class='add'>+0x4954 = 0x4E0D</div><div class='add'>+0x4955 = 0x4ED8</div><div class='add'>+0x4956 = 0x57E0</div><div class='add'>+0x4957 = 0x592B</div><div class='add'>+0x4958 = 0x5A66</div><div class='add'>+0x4959 = 0x5BCC</div><div class='add'>+0x495A = 0x51A8</div><div class='add'>+0x495B = 0x5E03</div><div class='add'>+0x495C = 0x5E9C</div><div class='add'>+0x495D = 0x6016</div><div class='add'>+0x495E = 0x6276</div><div class='add'>+0x495F = 0x6577</div><div class='add'>+0x4960 = 0x65A7</div><div class='add'>+0x4961 = 0x666E</div><div class='add'>+0x4962 = 0x6D6E</div><div class='add'>+0x4963 = 0x7236</div><div class='add'>+0x4964 = 0x7B26</div><div class='add'>+0x4965 = 0x8150</div><div class='add'>+0x4966 = 0x819A</div><div class='add'>+0x4967 = 0x8299</div><div class='add'>+0x4968 = 0x8B5C</div><div class='add'>+0x4969 = 0x8CA0</div><div class='add'>+0x496A = 0x8CE6</div><div class='add'>+0x496B = 0x8D74</div><div class='add'>+0x496C = 0x961C</div><div class='add'>+0x496D = 0x9644</div><div class='add'>+0x496E = 0x4FAE</div><div class='add'>+0x496F = 0x64AB</div><div class='add'>+0x4970 = 0x6B66</div><div class='add'>+0x4971 = 0x821E</div><div class='add'>+0x4972 = 0x8461</div><div class='add'>+0x4973 = 0x856A</div><div class='add'>+0x4974 = 0x90E8</div><div class='add'>+0x4975 = 0x5C01</div><div class='add'>+0x4976 = 0x6953</div><div class='add'>+0x4977 = 0x98A8</div><div class='add'>+0x4978 = 0x847A</div><div class='add'>+0x4979 = 0x8557</div><div class='add'>+0x497A = 0x4F0F</div><div class='add'>+0x497B = 0x526F</div><div class='add'>+0x497C = 0x5FA9</div><div class='add'>+0x497D = 0x5E45</div><div class='add'>+0x497E = 0x670D</div><div class='add'>+0x4A21 = 0x798F</div><div class='add'>+0x4A22 = 0x8179</div><div class='add'>+0x4A23 = 0x8907</div><div class='add'>+0x4A24 = 0x8986</div><div class='add'>+0x4A25 = 0x6DF5</div><div class='add'>+0x4A26 = 0x5F17</div><div class='add'>+0x4A27 = 0x6255</div><div class='add'>+0x4A28 = 0x6CB8</div><div class='add'>+0x4A29 = 0x4ECF</div><div class='add'>+0x4A2A = 0x7269</div><div class='add'>+0x4A2B = 0x9B92</div><div class='add'>+0x4A2C = 0x5206</div><div class='add'>+0x4A2D = 0x543B</div><div class='add'>+0x4A2E = 0x5674</div><div class='add'>+0x4A2F = 0x58B3</div><div class='add'>+0x4A30 = 0x61A4</div><div class='add'>+0x4A31 = 0x626E</div><div class='add'>+0x4A32 = 0x711A</div><div class='add'>+0x4A33 = 0x596E</div><div class='add'>+0x4A34 = 0x7C89</div><div class='add'>+0x4A35 = 0x7CDE</div><div class='add'>+0x4A36 = 0x7D1B</div><div class='add'>+0x4A37 = 0x96F0</div><div class='add'>+0x4A38 = 0x6587</div><div class='add'>+0x4A39 = 0x805E</div><div class='add'>+0x4A3A = 0x4E19</div><div class='add'>+0x4A3B = 0x4F75</div><div class='add'>+0x4A3C = 0x5175</div><div class='add'>+0x4A3D = 0x5840</div><div class='add'>+0x4A3E = 0x5E63</div><div class='add'>+0x4A3F = 0x5E73</div><div class='add'>+0x4A40 = 0x5F0A</div><div class='add'>+0x4A41 = 0x67C4</div><div class='add'>+0x4A42 = 0x4E26</div><div class='add'>+0x4A43 = 0x853D</div><div class='add'>+0x4A44 = 0x9589</div><div class='add'>+0x4A45 = 0x965B</div><div class='add'>+0x4A46 = 0x7C73</div><div class='add'>+0x4A47 = 0x9801</div><div class='add'>+0x4A48 = 0x50FB</div><div class='add'>+0x4A49 = 0x58C1</div><div class='add'>+0x4A4A = 0x7656</div><div class='add'>+0x4A4B = 0x78A7</div><div class='add'>+0x4A4C = 0x5225</div><div class='add'>+0x4A4D = 0x77A5</div><div class='add'>+0x4A4E = 0x8511</div><div class='add'>+0x4A4F = 0x7B86</div><div class='add'>+0x4A50 = 0x504F</div><div class='add'>+0x4A51 = 0x5909</div><div class='add'>+0x4A52 = 0x7247</div><div class='add'>+0x4A53 = 0x7BC7</div><div class='add'>+0x4A54 = 0x7DE8</div><div class='add'>+0x4A55 = 0x8FBA</div><div class='add'>+0x4A56 = 0x8FD4</div><div class='add'>+0x4A57 = 0x904D</div><div class='add'>+0x4A58 = 0x4FBF</div><div class='add'>+0x4A59 = 0x52C9</div><div class='add'>+0x4A5A = 0x5A29</div><div class='add'>+0x4A5B = 0x5F01</div><div class='add'>+0x4A5C = 0x97AD</div><div class='add'>+0x4A5D = 0x4FDD</div><div class='add'>+0x4A5E = 0x8217</div><div class='add'>+0x4A5F = 0x92EA</div><div class='add'>+0x4A60 = 0x5703</div><div class='add'>+0x4A61 = 0x6355</div><div class='add'>+0x4A62 = 0x6B69</div><div class='add'>+0x4A63 = 0x752B</div><div class='add'>+0x4A64 = 0x88DC</div><div class='add'>+0x4A65 = 0x8F14</div><div class='add'>+0x4A66 = 0x7A42</div><div class='add'>+0x4A67 = 0x52DF</div><div class='add'>+0x4A68 = 0x5893</div><div class='add'>+0x4A69 = 0x6155</div><div class='add'>+0x4A6A = 0x620A</div><div class='add'>+0x4A6B = 0x66AE</div><div class='add'>+0x4A6C = 0x6BCD</div><div class='add'>+0x4A6D = 0x7C3F</div><div class='add'>+0x4A6E = 0x83E9</div><div class='add'>+0x4A6F = 0x5023</div><div class='add'>+0x4A70 = 0x4FF8</div><div class='add'>+0x4A71 = 0x5305</div><div class='add'>+0x4A72 = 0x5446</div><div class='add'>+0x4A73 = 0x5831</div><div class='add'>+0x4A74 = 0x5949</div><div class='add'>+0x4A75 = 0x5B9D</div><div class='add'>+0x4A76 = 0x5CF0</div><div class='add'>+0x4A77 = 0x5CEF</div><div class='add'>+0x4A78 = 0x5D29</div><div class='add'>+0x4A79 = 0x5E96</div><div class='add'>+0x4A7A = 0x62B1</div><div class='add'>+0x4A7B = 0x6367</div><div class='add'>+0x4A7C = 0x653E</div><div class='add'>+0x4A7D = 0x65B9</div><div class='add'>+0x4A7E = 0x670B</div><div class='add'>+0x4B21 = 0x6CD5</div><div class='add'>+0x4B22 = 0x6CE1</div><div class='add'>+0x4B23 = 0x70F9</div><div class='add'>+0x4B24 = 0x7832</div><div class='add'>+0x4B25 = 0x7E2B</div><div class='add'>+0x4B26 = 0x80DE</div><div class='add'>+0x4B27 = 0x82B3</div><div class='add'>+0x4B28 = 0x840C</div><div class='add'>+0x4B29 = 0x84EC</div><div class='add'>+0x4B2A = 0x8702</div><div class='add'>+0x4B2B = 0x8912</div><div class='add'>+0x4B2C = 0x8A2A</div><div class='add'>+0x4B2D = 0x8C4A</div><div class='add'>+0x4B2E = 0x90A6</div><div class='add'>+0x4B2F = 0x92D2</div><div class='add'>+0x4B30 = 0x98FD</div><div class='add'>+0x4B31 = 0x9CF3</div><div class='add'>+0x4B32 = 0x9D6C</div><div class='add'>+0x4B33 = 0x4E4F</div><div class='add'>+0x4B34 = 0x4EA1</div><div class='add'>+0x4B35 = 0x508D</div><div class='add'>+0x4B36 = 0x5256</div><div class='add'>+0x4B37 = 0x574A</div><div class='add'>+0x4B38 = 0x59A8</div><div class='add'>+0x4B39 = 0x5E3D</div><div class='add'>+0x4B3A = 0x5FD8</div><div class='add'>+0x4B3B = 0x5FD9</div><div class='add'>+0x4B3C = 0x623F</div><div class='add'>+0x4B3D = 0x66B4</div><div class='add'>+0x4B3E = 0x671B</div><div class='add'>+0x4B3F = 0x67D0</div><div class='add'>+0x4B40 = 0x68D2</div><div class='add'>+0x4B41 = 0x5192</div><div class='add'>+0x4B42 = 0x7D21</div><div class='add'>+0x4B43 = 0x80AA</div><div class='add'>+0x4B44 = 0x81A8</div><div class='add'>+0x4B45 = 0x8B00</div><div class='add'>+0x4B46 = 0x8C8C</div><div class='add'>+0x4B47 = 0x8CBF</div><div class='add'>+0x4B48 = 0x927E</div><div class='add'>+0x4B49 = 0x9632</div><div class='add'>+0x4B4A = 0x5420</div><div class='add'>+0x4B4B = 0x982C</div><div class='add'>+0x4B4C = 0x5317</div><div class='add'>+0x4B4D = 0x50D5</div><div class='add'>+0x4B4E = 0x535C</div><div class='add'>+0x4B4F = 0x58A8</div><div class='add'>+0x4B50 = 0x64B2</div><div class='add'>+0x4B51 = 0x6734</div><div class='add'>+0x4B52 = 0x7267</div><div class='add'>+0x4B53 = 0x7766</div><div class='add'>+0x4B54 = 0x7A46</div><div class='add'>+0x4B55 = 0x91E6</div><div class='add'>+0x4B56 = 0x52C3</div><div class='add'>+0x4B57 = 0x6CA1</div><div class='add'>+0x4B58 = 0x6B86</div><div class='add'>+0x4B59 = 0x5800</div><div class='add'>+0x4B5A = 0x5E4C</div><div class='add'>+0x4B5B = 0x5954</div><div class='add'>+0x4B5C = 0x672C</div><div class='add'>+0x4B5D = 0x7FFB</div><div class='add'>+0x4B5E = 0x51E1</div><div class='add'>+0x4B5F = 0x76C6</div><div class='add'>+0x4B60 = 0x6469</div><div class='add'>+0x4B61 = 0x78E8</div><div class='add'>+0x4B62 = 0x9B54</div><div class='add'>+0x4B63 = 0x9EBB</div><div class='add'>+0x4B64 = 0x57CB</div><div class='add'>+0x4B65 = 0x59B9</div><div class='add'>+0x4B66 = 0x6627</div><div class='add'>+0x4B67 = 0x679A</div><div class='add'>+0x4B68 = 0x6BCE</div><div class='add'>+0x4B69 = 0x54E9</div><div class='add'>+0x4B6A = 0x69D9</div><div class='add'>+0x4B6B = 0x5E55</div><div class='add'>+0x4B6C = 0x819C</div><div class='add'>+0x4B6D = 0x6795</div><div class='add'>+0x4B6E = 0x9BAA</div><div class='add'>+0x4B6F = 0x67FE</div><div class='add'>+0x4B70 = 0x9C52</div><div class='add'>+0x4B71 = 0x685D</div><div class='add'>+0x4B72 = 0x4EA6</div><div class='add'>+0x4B73 = 0x4FE3</div><div class='add'>+0x4B74 = 0x53C8</div><div class='add'>+0x4B75 = 0x62B9</div><div class='add'>+0x4B76 = 0x672B</div><div class='add'>+0x4B77 = 0x6CAB</div><div class='add'>+0x4B78 = 0x8FC4</div><div class='add'>+0x4B79 = 0x4FAD</div><div class='add'>+0x4B7A = 0x7E6D</div><div class='add'>+0x4B7B = 0x9EBF</div><div class='add'>+0x4B7C = 0x4E07</div><div class='add'>+0x4B7D = 0x6162</div><div class='add'>+0x4B7E = 0x6E80</div><div class='add'>+0x4C21 = 0x6F2B</div><div class='add'>+0x4C22 = 0x8513</div><div class='add'>+0x4C23 = 0x5473</div><div class='add'>+0x4C24 = 0x672A</div><div class='add'>+0x4C25 = 0x9B45</div><div class='add'>+0x4C26 = 0x5DF3</div><div class='add'>+0x4C27 = 0x7B95</div><div class='add'>+0x4C28 = 0x5CAC</div><div class='add'>+0x4C29 = 0x5BC6</div><div class='add'>+0x4C2A = 0x871C</div><div class='add'>+0x4C2B = 0x6E4A</div><div class='add'>+0x4C2C = 0x84D1</div><div class='add'>+0x4C2D = 0x7A14</div><div class='add'>+0x4C2E = 0x8108</div><div class='add'>+0x4C2F = 0x5999</div><div class='add'>+0x4C30 = 0x7C8D</div><div class='add'>+0x4C31 = 0x6C11</div><div class='add'>+0x4C32 = 0x7720</div><div class='add'>+0x4C33 = 0x52D9</div><div class='add'>+0x4C34 = 0x5922</div><div class='add'>+0x4C35 = 0x7121</div><div class='add'>+0x4C36 = 0x725F</div><div class='add'>+0x4C37 = 0x77DB</div><div class='add'>+0x4C38 = 0x9727</div><div class='add'>+0x4C39 = 0x9D61</div><div class='add'>+0x4C3A = 0x690B</div><div class='add'>+0x4C3B = 0x5A7F</div><div class='add'>+0x4C3C = 0x5A18</div><div class='add'>+0x4C3D = 0x51A5</div><div class='add'>+0x4C3E = 0x540D</div><div class='add'>+0x4C3F = 0x547D</div><div class='add'>+0x4C40 = 0x660E</div><div class='add'>+0x4C41 = 0x76DF</div><div class='add'>+0x4C42 = 0x8FF7</div><div class='add'>+0x4C43 = 0x9298</div><div class='add'>+0x4C44 = 0x9CF4</div><div class='add'>+0x4C45 = 0x59EA</div><div class='add'>+0x4C46 = 0x725D</div><div class='add'>+0x4C47 = 0x6EC5</div><div class='add'>+0x4C48 = 0x514D</div><div class='add'>+0x4C49 = 0x68C9</div><div class='add'>+0x4C4A = 0x7DBF</div><div class='add'>+0x4C4B = 0x7DEC</div><div class='add'>+0x4C4C = 0x9762</div><div class='add'>+0x4C4D = 0x9EBA</div><div class='add'>+0x4C4E = 0x6478</div><div class='add'>+0x4C4F = 0x6A21</div><div class='add'>+0x4C50 = 0x8302</div><div class='add'>+0x4C51 = 0x5984</div><div class='add'>+0x4C52 = 0x5B5F</div><div class='add'>+0x4C53 = 0x6BDB</div><div class='add'>+0x4C54 = 0x731B</div><div class='add'>+0x4C55 = 0x76F2</div><div class='add'>+0x4C56 = 0x7DB2</div><div class='add'>+0x4C57 = 0x8017</div><div class='add'>+0x4C58 = 0x8499</div><div class='add'>+0x4C59 = 0x5132</div><div class='add'>+0x4C5A = 0x6728</div><div class='add'>+0x4C5B = 0x9ED9</div><div class='add'>+0x4C5C = 0x76EE</div><div class='add'>+0x4C5D = 0x6762</div><div class='add'>+0x4C5E = 0x52FF</div><div class='add'>+0x4C5F = 0x9905</div><div class='add'>+0x4C60 = 0x5C24</div><div class='add'>+0x4C61 = 0x623B</div><div class='add'>+0x4C62 = 0x7C7E</div><div class='add'>+0x4C63 = 0x8CB0</div><div class='add'>+0x4C64 = 0x554F</div><div class='add'>+0x4C65 = 0x60B6</div><div class='add'>+0x4C66 = 0x7D0B</div><div class='add'>+0x4C67 = 0x9580</div><div class='add'>+0x4C68 = 0x5301</div><div class='add'>+0x4C69 = 0x4E5F</div><div class='add'>+0x4C6A = 0x51B6</div><div class='add'>+0x4C6B = 0x591C</div><div class='add'>+0x4C6C = 0x723A</div><div class='add'>+0x4C6D = 0x8036</div><div class='add'>+0x4C6E = 0x91CE</div><div class='add'>+0x4C6F = 0x5F25</div><div class='add'>+0x4C70 = 0x77E2</div><div class='add'>+0x4C71 = 0x5384</div><div class='add'>+0x4C72 = 0x5F79</div><div class='add'>+0x4C73 = 0x7D04</div><div class='add'>+0x4C74 = 0x85AC</div><div class='add'>+0x4C75 = 0x8A33</div><div class='add'>+0x4C76 = 0x8E8D</div><div class='add'>+0x4C77 = 0x9756</div><div class='add'>+0x4C78 = 0x67F3</div><div class='add'>+0x4C79 = 0x85AE</div><div class='add'>+0x4C7A = 0x9453</div><div class='add'>+0x4C7B = 0x6109</div><div class='add'>+0x4C7C = 0x6108</div><div class='add'>+0x4C7D = 0x6CB9</div><div class='add'>+0x4C7E = 0x7652</div><div class='add'>+0x4D21 = 0x8AED</div><div class='add'>+0x4D22 = 0x8F38</div><div class='add'>+0x4D23 = 0x552F</div><div class='add'>+0x4D24 = 0x4F51</div><div class='add'>+0x4D25 = 0x512A</div><div class='add'>+0x4D26 = 0x52C7</div><div class='add'>+0x4D27 = 0x53CB</div><div class='add'>+0x4D28 = 0x5BA5</div><div class='add'>+0x4D29 = 0x5E7D</div><div class='add'>+0x4D2A = 0x60A0</div><div class='add'>+0x4D2B = 0x6182</div><div class='add'>+0x4D2C = 0x63D6</div><div class='add'>+0x4D2D = 0x6709</div><div class='add'>+0x4D2E = 0x67DA</div><div class='add'>+0x4D2F = 0x6E67</div><div class='add'>+0x4D30 = 0x6D8C</div><div class='add'>+0x4D31 = 0x7336</div><div class='add'>+0x4D32 = 0x7337</div><div class='add'>+0x4D33 = 0x7531</div><div class='add'>+0x4D34 = 0x7950</div><div class='add'>+0x4D35 = 0x88D5</div><div class='add'>+0x4D36 = 0x8A98</div><div class='add'>+0x4D37 = 0x904A</div><div class='add'>+0x4D38 = 0x9091</div><div class='add'>+0x4D39 = 0x90F5</div><div class='add'>+0x4D3A = 0x96C4</div><div class='add'>+0x4D3B = 0x878D</div><div class='add'>+0x4D3C = 0x5915</div><div class='add'>+0x4D3D = 0x4E88</div><div class='add'>+0x4D3E = 0x4F59</div><div class='add'>+0x4D3F = 0x4E0E</div><div class='add'>+0x4D40 = 0x8A89</div><div class='add'>+0x4D41 = 0x8F3F</div><div class='add'>+0x4D42 = 0x9810</div><div class='add'>+0x4D43 = 0x50AD</div><div class='add'>+0x4D44 = 0x5E7C</div><div class='add'>+0x4D45 = 0x5996</div><div class='add'>+0x4D46 = 0x5BB9</div><div class='add'>+0x4D47 = 0x5EB8</div><div class='add'>+0x4D48 = 0x63DA</div><div class='add'>+0x4D49 = 0x63FA</div><div class='add'>+0x4D4A = 0x64C1</div><div class='add'>+0x4D4B = 0x66DC</div><div class='add'>+0x4D4C = 0x694A</div><div class='add'>+0x4D4D = 0x69D8</div><div class='add'>+0x4D4E = 0x6D0B</div><div class='add'>+0x4D4F = 0x6EB6</div><div class='add'>+0x4D50 = 0x7194</div><div class='add'>+0x4D51 = 0x7528</div><div class='add'>+0x4D52 = 0x7AAF</div><div class='add'>+0x4D53 = 0x7F8A</div><div class='add'>+0x4D54 = 0x8000</div><div class='add'>+0x4D55 = 0x8449</div><div class='add'>+0x4D56 = 0x84C9</div><div class='add'>+0x4D57 = 0x8981</div><div class='add'>+0x4D58 = 0x8B21</div><div class='add'>+0x4D59 = 0x8E0A</div><div class='add'>+0x4D5A = 0x9065</div><div class='add'>+0x4D5B = 0x967D</div><div class='add'>+0x4D5C = 0x990A</div><div class='add'>+0x4D5D = 0x617E</div><div class='add'>+0x4D5E = 0x6291</div><div class='add'>+0x4D5F = 0x6B32</div><div class='add'>+0x4D60 = 0x6C83</div><div class='add'>+0x4D61 = 0x6D74</div><div class='add'>+0x4D62 = 0x7FCC</div><div class='add'>+0x4D63 = 0x7FFC</div><div class='add'>+0x4D64 = 0x6DC0</div><div class='add'>+0x4D65 = 0x7F85</div><div class='add'>+0x4D66 = 0x87BA</div><div class='add'>+0x4D67 = 0x88F8</div><div class='add'>+0x4D68 = 0x6765</div><div class='add'>+0x4D69 = 0x83B1</div><div class='add'>+0x4D6A = 0x983C</div><div class='add'>+0x4D6B = 0x96F7</div><div class='add'>+0x4D6C = 0x6D1B</div><div class='add'>+0x4D6D = 0x7D61</div><div class='add'>+0x4D6E = 0x843D</div><div class='add'>+0x4D6F = 0x916A</div><div class='add'>+0x4D70 = 0x4E71</div><div class='add'>+0x4D71 = 0x5375</div><div class='add'>+0x4D72 = 0x5D50</div><div class='add'>+0x4D73 = 0x6B04</div><div class='add'>+0x4D74 = 0x6FEB</div><div class='add'>+0x4D75 = 0x85CD</div><div class='add'>+0x4D76 = 0x862D</div><div class='add'>+0x4D77 = 0x89A7</div><div class='add'>+0x4D78 = 0x5229</div><div class='add'>+0x4D79 = 0x540F</div><div class='add'>+0x4D7A = 0x5C65</div><div class='add'>+0x4D7B = 0x674E</div><div class='add'>+0x4D7C = 0x68A8</div><div class='add'>+0x4D7D = 0x7406</div><div class='add'>+0x4D7E = 0x7483</div><div class='add'>+0x4E21 = 0x75E2</div><div class='add'>+0x4E22 = 0x88CF</div><div class='add'>+0x4E23 = 0x88E1</div><div class='add'>+0x4E24 = 0x91CC</div><div class='add'>+0x4E25 = 0x96E2</div><div class='add'>+0x4E26 = 0x9678</div><div class='add'>+0x4E27 = 0x5F8B</div><div class='add'>+0x4E28 = 0x7387</div><div class='add'>+0x4E29 = 0x7ACB</div><div class='add'>+0x4E2A = 0x844E</div><div class='add'>+0x4E2B = 0x63A0</div><div class='add'>+0x4E2C = 0x7565</div><div class='add'>+0x4E2D = 0x5289</div><div class='add'>+0x4E2E = 0x6D41</div><div class='add'>+0x4E2F = 0x6E9C</div><div class='add'>+0x4E30 = 0x7409</div><div class='add'>+0x4E31 = 0x7559</div><div class='add'>+0x4E32 = 0x786B</div><div class='add'>+0x4E33 = 0x7C92</div><div class='add'>+0x4E34 = 0x9686</div><div class='add'>+0x4E35 = 0x7ADC</div><div class='add'>+0x4E36 = 0x9F8D</div><div class='add'>+0x4E37 = 0x4FB6</div><div class='add'>+0x4E38 = 0x616E</div><div class='add'>+0x4E39 = 0x65C5</div><div class='add'>+0x4E3A = 0x865C</div><div class='add'>+0x4E3B = 0x4E86</div><div class='add'>+0x4E3C = 0x4EAE</div><div class='add'>+0x4E3D = 0x50DA</div><div class='add'>+0x4E3E = 0x4E21</div><div class='add'>+0x4E3F = 0x51CC</div><div class='add'>+0x4E40 = 0x5BEE</div><div class='add'>+0x4E41 = 0x6599</div><div class='add'>+0x4E42 = 0x6881</div><div class='add'>+0x4E43 = 0x6DBC</div><div class='add'>+0x4E44 = 0x731F</div><div class='add'>+0x4E45 = 0x7642</div><div class='add'>+0x4E46 = 0x77AD</div><div class='add'>+0x4E47 = 0x7A1C</div><div class='add'>+0x4E48 = 0x7CE7</div><div class='add'>+0x4E49 = 0x826F</div><div class='add'>+0x4E4A = 0x8AD2</div><div class='add'>+0x4E4B = 0x907C</div><div class='add'>+0x4E4C = 0x91CF</div><div class='add'>+0x4E4D = 0x9675</div><div class='add'>+0x4E4E = 0x9818</div><div class='add'>+0x4E4F = 0x529B</div><div class='add'>+0x4E50 = 0x7DD1</div><div class='add'>+0x4E51 = 0x502B</div><div class='add'>+0x4E52 = 0x5398</div><div class='add'>+0x4E53 = 0x6797</div><div class='add'>+0x4E54 = 0x6DCB</div><div class='add'>+0x4E55 = 0x71D0</div><div class='add'>+0x4E56 = 0x7433</div><div class='add'>+0x4E57 = 0x81E8</div><div class='add'>+0x4E58 = 0x8F2A</div><div class='add'>+0x4E59 = 0x96A3</div><div class='add'>+0x4E5A = 0x9C57</div><div class='add'>+0x4E5B = 0x9E9F</div><div class='add'>+0x4E5C = 0x7460</div><div class='add'>+0x4E5D = 0x5841</div><div class='add'>+0x4E5E = 0x6D99</div><div class='add'>+0x4E5F = 0x7D2F</div><div class='add'>+0x4E60 = 0x985E</div><div class='add'>+0x4E61 = 0x4EE4</div><div class='add'>+0x4E62 = 0x4F36</div><div class='add'>+0x4E63 = 0x4F8B</div><div class='add'>+0x4E64 = 0x51B7</div><div class='add'>+0x4E65 = 0x52B1</div><div class='add'>+0x4E66 = 0x5DBA</div><div class='add'>+0x4E67 = 0x601C</div><div class='add'>+0x4E68 = 0x73B2</div><div class='add'>+0x4E69 = 0x793C</div><div class='add'>+0x4E6A = 0x82D3</div><div class='add'>+0x4E6B = 0x9234</div><div class='add'>+0x4E6C = 0x96B7</div><div class='add'>+0x4E6D = 0x96F6</div><div class='add'>+0x4E6E = 0x970A</div><div class='add'>+0x4E6F = 0x9E97</div><div class='add'>+0x4E70 = 0x9F62</div><div class='add'>+0x4E71 = 0x66A6</div><div class='add'>+0x4E72 = 0x6B74</div><div class='add'>+0x4E73 = 0x5217</div><div class='add'>+0x4E74 = 0x52A3</div><div class='add'>+0x4E75 = 0x70C8</div><div class='add'>+0x4E76 = 0x88C2</div><div class='add'>+0x4E77 = 0x5EC9</div><div class='add'>+0x4E78 = 0x604B</div><div class='add'>+0x4E79 = 0x6190</div><div class='add'>+0x4E7A = 0x6F23</div><div class='add'>+0x4E7B = 0x7149</div><div class='add'>+0x4E7C = 0x7C3E</div><div class='add'>+0x4E7D = 0x7DF4</div><div class='add'>+0x4E7E = 0x806F</div><div class='add'>+0x4F21 = 0x84EE</div><div class='add'>+0x4F22 = 0x9023</div><div class='add'>+0x4F23 = 0x932C</div><div class='add'>+0x4F24 = 0x5442</div><div class='add'>+0x4F25 = 0x9B6F</div><div class='add'>+0x4F26 = 0x6AD3</div><div class='add'>+0x4F27 = 0x7089</div><div class='add'>+0x4F28 = 0x8CC2</div><div class='add'>+0x4F29 = 0x8DEF</div><div class='add'>+0x4F2A = 0x9732</div><div class='add'>+0x4F2B = 0x52B4</div><div class='add'>+0x4F2C = 0x5A41</div><div class='add'>+0x4F2D = 0x5ECA</div><div class='add'>+0x4F2E = 0x5F04</div><div class='add'>+0x4F2F = 0x6717</div><div class='add'>+0x4F30 = 0x697C</div><div class='add'>+0x4F31 = 0x6994</div><div class='add'>+0x4F32 = 0x6D6A</div><div class='add'>+0x4F33 = 0x6F0F</div><div class='add'>+0x4F34 = 0x7262</div><div class='add'>+0x4F35 = 0x72FC</div><div class='add'>+0x4F36 = 0x7BED</div><div class='add'>+0x4F37 = 0x8001</div><div class='add'>+0x4F38 = 0x807E</div><div class='add'>+0x4F39 = 0x874B</div><div class='add'>+0x4F3A = 0x90CE</div><div class='add'>+0x4F3B = 0x516D</div><div class='add'>+0x4F3C = 0x9E93</div><div class='add'>+0x4F3D = 0x7984</div><div class='add'>+0x4F3E = 0x808B</div><div class='add'>+0x4F3F = 0x9332</div><div class='add'>+0x4F40 = 0x8AD6</div><div class='add'>+0x4F41 = 0x502D</div><div class='add'>+0x4F42 = 0x548C</div><div class='add'>+0x4F43 = 0x8A71</div><div class='add'>+0x4F44 = 0x6B6A</div><div class='add'>+0x4F45 = 0x8CC4</div><div class='add'>+0x4F46 = 0x8107</div><div class='add'>+0x4F47 = 0x60D1</div><div class='add'>+0x4F48 = 0x67A0</div><div class='add'>+0x4F49 = 0x9DF2</div><div class='add'>+0x4F4A = 0x4E99</div><div class='add'>+0x4F4B = 0x4E98</div><div class='add'>+0x4F4C = 0x9C10</div><div class='add'>+0x4F4D = 0x8A6B</div><div class='add'>+0x4F4E = 0x85C1</div><div class='add'>+0x4F4F = 0x8568</div><div class='add'>+0x4F50 = 0x6900</div><div class='add'>+0x4F51 = 0x6E7E</div><div class='add'>+0x4F52 = 0x7897</div><div class='add'>+0x4F53 = 0x8155</div><div class='add'>+0x5021 = 0x5F0C</div><div class='add'>+0x5022 = 0x4E10</div><div class='add'>+0x5023 = 0x4E15</div><div class='add'>+0x5024 = 0x4E2A</div><div class='add'>+0x5025 = 0x4E31</div><div class='add'>+0x5026 = 0x4E36</div><div class='add'>+0x5027 = 0x4E3C</div><div class='add'>+0x5028 = 0x4E3F</div><div class='add'>+0x5029 = 0x4E42</div><div class='add'>+0x502A = 0x4E56</div><div class='add'>+0x502B = 0x4E58</div><div class='add'>+0x502C = 0x4E82</div><div class='add'>+0x502D = 0x4E85</div><div class='add'>+0x502E = 0x8C6B</div><div class='add'>+0x502F = 0x4E8A</div><div class='add'>+0x5030 = 0x8212</div><div class='add'>+0x5031 = 0x5F0D</div><div class='add'>+0x5032 = 0x4E8E</div><div class='add'>+0x5033 = 0x4E9E</div><div class='add'>+0x5034 = 0x4E9F</div><div class='add'>+0x5035 = 0x4EA0</div><div class='add'>+0x5036 = 0x4EA2</div><div class='add'>+0x5037 = 0x4EB0</div><div class='add'>+0x5038 = 0x4EB3</div><div class='add'>+0x5039 = 0x4EB6</div><div class='add'>+0x503A = 0x4ECE</div><div class='add'>+0x503B = 0x4ECD</div><div class='add'>+0x503C = 0x4EC4</div><div class='add'>+0x503D = 0x4EC6</div><div class='add'>+0x503E = 0x4EC2</div><div class='add'>+0x503F = 0x4ED7</div><div class='add'>+0x5040 = 0x4EDE</div><div class='add'>+0x5041 = 0x4EED</div><div class='add'>+0x5042 = 0x4EDF</div><div class='add'>+0x5043 = 0x4EF7</div><div class='add'>+0x5044 = 0x4F09</div><div class='add'>+0x5045 = 0x4F5A</div><div class='add'>+0x5046 = 0x4F30</div><div class='add'>+0x5047 = 0x4F5B</div><div class='add'>+0x5048 = 0x4F5D</div><div class='add'>+0x5049 = 0x4F57</div><div class='add'>+0x504A = 0x4F47</div><div class='add'>+0x504B = 0x4F76</div><div class='add'>+0x504C = 0x4F88</div><div class='add'>+0x504D = 0x4F8F</div><div class='add'>+0x504E = 0x4F98</div><div class='add'>+0x504F = 0x4F7B</div><div class='add'>+0x5050 = 0x4F69</div><div class='add'>+0x5051 = 0x4F70</div><div class='add'>+0x5052 = 0x4F91</div><div class='add'>+0x5053 = 0x4F6F</div><div class='add'>+0x5054 = 0x4F86</div><div class='add'>+0x5055 = 0x4F96</div><div class='add'>+0x5056 = 0x5118</div><div class='add'>+0x5057 = 0x4FD4</div><div class='add'>+0x5058 = 0x4FDF</div><div class='add'>+0x5059 = 0x4FCE</div><div class='add'>+0x505A = 0x4FD8</div><div class='add'>+0x505B = 0x4FDB</div><div class='add'>+0x505C = 0x4FD1</div><div class='add'>+0x505D = 0x4FDA</div><div class='add'>+0x505E = 0x4FD0</div><div class='add'>+0x505F = 0x4FE4</div><div class='add'>+0x5060 = 0x4FE5</div><div class='add'>+0x5061 = 0x501A</div><div class='add'>+0x5062 = 0x5028</div><div class='add'>+0x5063 = 0x5014</div><div class='add'>+0x5064 = 0x502A</div><div class='add'>+0x5065 = 0x5025</div><div class='add'>+0x5066 = 0x5005</div><div class='add'>+0x5067 = 0x4F1C</div><div class='add'>+0x5068 = 0x4FF6</div><div class='add'>+0x5069 = 0x5021</div><div class='add'>+0x506A = 0x5029</div><div class='add'>+0x506B = 0x502C</div><div class='add'>+0x506C = 0x4FFE</div><div class='add'>+0x506D = 0x4FEF</div><div class='add'>+0x506E = 0x5011</div><div class='add'>+0x506F = 0x5006</div><div class='add'>+0x5070 = 0x5043</div><div class='add'>+0x5071 = 0x5047</div><div class='add'>+0x5072 = 0x6703</div><div class='add'>+0x5073 = 0x5055</div><div class='add'>+0x5074 = 0x5050</div><div class='add'>+0x5075 = 0x5048</div><div class='add'>+0x5076 = 0x505A</div><div class='add'>+0x5077 = 0x5056</div><div class='add'>+0x5078 = 0x506C</div><div class='add'>+0x5079 = 0x5078</div><div class='add'>+0x507A = 0x5080</div><div class='add'>+0x507B = 0x509A</div><div class='add'>+0x507C = 0x5085</div><div class='add'>+0x507D = 0x50B4</div><div class='add'>+0x507E = 0x50B2</div><div class='add'>+0x5121 = 0x50C9</div><div class='add'>+0x5122 = 0x50CA</div><div class='add'>+0x5123 = 0x50B3</div><div class='add'>+0x5124 = 0x50C2</div><div class='add'>+0x5125 = 0x50D6</div><div class='add'>+0x5126 = 0x50DE</div><div class='add'>+0x5127 = 0x50E5</div><div class='add'>+0x5128 = 0x50ED</div><div class='add'>+0x5129 = 0x50E3</div><div class='add'>+0x512A = 0x50EE</div><div class='add'>+0x512B = 0x50F9</div><div class='add'>+0x512C = 0x50F5</div><div class='add'>+0x512D = 0x5109</div><div class='add'>+0x512E = 0x5101</div><div class='add'>+0x512F = 0x5102</div><div class='add'>+0x5130 = 0x5116</div><div class='add'>+0x5131 = 0x5115</div><div class='add'>+0x5132 = 0x5114</div><div class='add'>+0x5133 = 0x511A</div><div class='add'>+0x5134 = 0x5121</div><div class='add'>+0x5135 = 0x513A</div><div class='add'>+0x5136 = 0x5137</div><div class='add'>+0x5137 = 0x513C</div><div class='add'>+0x5138 = 0x513B</div><div class='add'>+0x5139 = 0x513F</div><div class='add'>+0x513A = 0x5140</div><div class='add'>+0x513B = 0x5152</div><div class='add'>+0x513C = 0x514C</div><div class='add'>+0x513D = 0x5154</div><div class='add'>+0x513E = 0x5162</div><div class='add'>+0x513F = 0x7AF8</div><div class='add'>+0x5140 = 0x5169</div><div class='add'>+0x5141 = 0x516A</div><div class='add'>+0x5142 = 0x516E</div><div class='add'>+0x5143 = 0x5180</div><div class='add'>+0x5144 = 0x5182</div><div class='add'>+0x5145 = 0x56D8</div><div class='add'>+0x5146 = 0x518C</div><div class='add'>+0x5147 = 0x5189</div><div class='add'>+0x5148 = 0x518F</div><div class='add'>+0x5149 = 0x5191</div><div class='add'>+0x514A = 0x5193</div><div class='add'>+0x514B = 0x5195</div><div class='add'>+0x514C = 0x5196</div><div class='add'>+0x514D = 0x51A4</div><div class='add'>+0x514E = 0x51A6</div><div class='add'>+0x514F = 0x51A2</div><div class='add'>+0x5150 = 0x51A9</div><div class='add'>+0x5151 = 0x51AA</div><div class='add'>+0x5152 = 0x51AB</div><div class='add'>+0x5153 = 0x51B3</div><div class='add'>+0x5154 = 0x51B1</div><div class='add'>+0x5155 = 0x51B2</div><div class='add'>+0x5156 = 0x51B0</div><div class='add'>+0x5157 = 0x51B5</div><div class='add'>+0x5158 = 0x51BD</div><div class='add'>+0x5159 = 0x51C5</div><div class='add'>+0x515A = 0x51C9</div><div class='add'>+0x515B = 0x51DB</div><div class='add'>+0x515C = 0x51E0</div><div class='add'>+0x515D = 0x8655</div><div class='add'>+0x515E = 0x51E9</div><div class='add'>+0x515F = 0x51ED</div><div class='add'>+0x5160 = 0x51F0</div><div class='add'>+0x5161 = 0x51F5</div><div class='add'>+0x5162 = 0x51FE</div><div class='add'>+0x5163 = 0x5204</div><div class='add'>+0x5164 = 0x520B</div><div class='add'>+0x5165 = 0x5214</div><div class='add'>+0x5166 = 0x520E</div><div class='add'>+0x5167 = 0x5227</div><div class='add'>+0x5168 = 0x522A</div><div class='add'>+0x5169 = 0x522E</div><div class='add'>+0x516A = 0x5233</div><div class='add'>+0x516B = 0x5239</div><div class='add'>+0x516C = 0x524F</div><div class='add'>+0x516D = 0x5244</div><div class='add'>+0x516E = 0x524B</div><div class='add'>+0x516F = 0x524C</div><div class='add'>+0x5170 = 0x525E</div><div class='add'>+0x5171 = 0x5254</div><div class='add'>+0x5172 = 0x526A</div><div class='add'>+0x5173 = 0x5274</div><div class='add'>+0x5174 = 0x5269</div><div class='add'>+0x5175 = 0x5273</div><div class='add'>+0x5176 = 0x527F</div><div class='add'>+0x5177 = 0x527D</div><div class='add'>+0x5178 = 0x528D</div><div class='add'>+0x5179 = 0x5294</div><div class='add'>+0x517A = 0x5292</div><div class='add'>+0x517B = 0x5271</div><div class='add'>+0x517C = 0x5288</div><div class='add'>+0x517D = 0x5291</div><div class='add'>+0x517E = 0x8FA8</div><div class='add'>+0x5221 = 0x8FA7</div><div class='add'>+0x5222 = 0x52AC</div><div class='add'>+0x5223 = 0x52AD</div><div class='add'>+0x5224 = 0x52BC</div><div class='add'>+0x5225 = 0x52B5</div><div class='add'>+0x5226 = 0x52C1</div><div class='add'>+0x5227 = 0x52CD</div><div class='add'>+0x5228 = 0x52D7</div><div class='add'>+0x5229 = 0x52DE</div><div class='add'>+0x522A = 0x52E3</div><div class='add'>+0x522B = 0x52E6</div><div class='add'>+0x522C = 0x98ED</div><div class='add'>+0x522D = 0x52E0</div><div class='add'>+0x522E = 0x52F3</div><div class='add'>+0x522F = 0x52F5</div><div class='add'>+0x5230 = 0x52F8</div><div class='add'>+0x5231 = 0x52F9</div><div class='add'>+0x5232 = 0x5306</div><div class='add'>+0x5233 = 0x5308</div><div class='add'>+0x5234 = 0x7538</div><div class='add'>+0x5235 = 0x530D</div><div class='add'>+0x5236 = 0x5310</div><div class='add'>+0x5237 = 0x530F</div><div class='add'>+0x5238 = 0x5315</div><div class='add'>+0x5239 = 0x531A</div><div class='add'>+0x523A = 0x5323</div><div class='add'>+0x523B = 0x532F</div><div class='add'>+0x523C = 0x5331</div><div class='add'>+0x523D = 0x5333</div><div class='add'>+0x523E = 0x5338</div><div class='add'>+0x523F = 0x5340</div><div class='add'>+0x5240 = 0x5346</div><div class='add'>+0x5241 = 0x5345</div><div class='add'>+0x5242 = 0x4E17</div><div class='add'>+0x5243 = 0x5349</div><div class='add'>+0x5244 = 0x534D</div><div class='add'>+0x5245 = 0x51D6</div><div class='add'>+0x5246 = 0x535E</div><div class='add'>+0x5247 = 0x5369</div><div class='add'>+0x5248 = 0x536E</div><div class='add'>+0x5249 = 0x5918</div><div class='add'>+0x524A = 0x537B</div><div class='add'>+0x524B = 0x5377</div><div class='add'>+0x524C = 0x5382</div><div class='add'>+0x524D = 0x5396</div><div class='add'>+0x524E = 0x53A0</div><div class='add'>+0x524F = 0x53A6</div><div class='add'>+0x5250 = 0x53A5</div><div class='add'>+0x5251 = 0x53AE</div><div class='add'>+0x5252 = 0x53B0</div><div class='add'>+0x5253 = 0x53B6</div><div class='add'>+0x5254 = 0x53C3</div><div class='add'>+0x5255 = 0x7C12</div><div class='add'>+0x5256 = 0x96D9</div><div class='add'>+0x5257 = 0x53DF</div><div class='add'>+0x5258 = 0x66FC</div><div class='add'>+0x5259 = 0x71EE</div><div class='add'>+0x525A = 0x53EE</div><div class='add'>+0x525B = 0x53E8</div><div class='add'>+0x525C = 0x53ED</div><div class='add'>+0x525D = 0x53FA</div><div class='add'>+0x525E = 0x5401</div><div class='add'>+0x525F = 0x543D</div><div class='add'>+0x5260 = 0x5440</div><div class='add'>+0x5261 = 0x542C</div><div class='add'>+0x5262 = 0x542D</div><div class='add'>+0x5263 = 0x543C</div><div class='add'>+0x5264 = 0x542E</div><div class='add'>+0x5265 = 0x5436</div><div class='add'>+0x5266 = 0x5429</div><div class='add'>+0x5267 = 0x541D</div><div class='add'>+0x5268 = 0x544E</div><div class='add'>+0x5269 = 0x548F</div><div class='add'>+0x526A = 0x5475</div><div class='add'>+0x526B = 0x548E</div><div class='add'>+0x526C = 0x545F</div><div class='add'>+0x526D = 0x5471</div><div class='add'>+0x526E = 0x5477</div><div class='add'>+0x526F = 0x5470</div><div class='add'>+0x5270 = 0x5492</div><div class='add'>+0x5271 = 0x547B</div><div class='add'>+0x5272 = 0x5480</div><div class='add'>+0x5273 = 0x5476</div><div class='add'>+0x5274 = 0x5484</div><div class='add'>+0x5275 = 0x5490</div><div class='add'>+0x5276 = 0x5486</div><div class='add'>+0x5277 = 0x54C7</div><div class='add'>+0x5278 = 0x54A2</div><div class='add'>+0x5279 = 0x54B8</div><div class='add'>+0x527A = 0x54A5</div><div class='add'>+0x527B = 0x54AC</div><div class='add'>+0x527C = 0x54C4</div><div class='add'>+0x527D = 0x54C8</div><div class='add'>+0x527E = 0x54A8</div><div class='add'>+0x5321 = 0x54AB</div><div class='add'>+0x5322 = 0x54C2</div><div class='add'>+0x5323 = 0x54A4</div><div class='add'>+0x5324 = 0x54BE</div><div class='add'>+0x5325 = 0x54BC</div><div class='add'>+0x5326 = 0x54D8</div><div class='add'>+0x5327 = 0x54E5</div><div class='add'>+0x5328 = 0x54E6</div><div class='add'>+0x5329 = 0x550F</div><div class='add'>+0x532A = 0x5514</div><div class='add'>+0x532B = 0x54FD</div><div class='add'>+0x532C = 0x54EE</div><div class='add'>+0x532D = 0x54ED</div><div class='add'>+0x532E = 0x54FA</div><div class='add'>+0x532F = 0x54E2</div><div class='add'>+0x5330 = 0x5539</div><div class='add'>+0x5331 = 0x5540</div><div class='add'>+0x5332 = 0x5563</div><div class='add'>+0x5333 = 0x554C</div><div class='add'>+0x5334 = 0x552E</div><div class='add'>+0x5335 = 0x555C</div><div class='add'>+0x5336 = 0x5545</div><div class='add'>+0x5337 = 0x5556</div><div class='add'>+0x5338 = 0x5557</div><div class='add'>+0x5339 = 0x5538</div><div class='add'>+0x533A = 0x5533</div><div class='add'>+0x533B = 0x555D</div><div class='add'>+0x533C = 0x5599</div><div class='add'>+0x533D = 0x5580</div><div class='add'>+0x533E = 0x54AF</div><div class='add'>+0x533F = 0x558A</div><div class='add'>+0x5340 = 0x559F</div><div class='add'>+0x5341 = 0x557B</div><div class='add'>+0x5342 = 0x557E</div><div class='add'>+0x5343 = 0x5598</div><div class='add'>+0x5344 = 0x559E</div><div class='add'>+0x5345 = 0x55AE</div><div class='add'>+0x5346 = 0x557C</div><div class='add'>+0x5347 = 0x5583</div><div class='add'>+0x5348 = 0x55A9</div><div class='add'>+0x5349 = 0x5587</div><div class='add'>+0x534A = 0x55A8</div><div class='add'>+0x534B = 0x55DA</div><div class='add'>+0x534C = 0x55C5</div><div class='add'>+0x534D = 0x55DF</div><div class='add'>+0x534E = 0x55C4</div><div class='add'>+0x534F = 0x55DC</div><div class='add'>+0x5350 = 0x55E4</div><div class='add'>+0x5351 = 0x55D4</div><div class='add'>+0x5352 = 0x5614</div><div class='add'>+0x5353 = 0x55F7</div><div class='add'>+0x5354 = 0x5616</div><div class='add'>+0x5355 = 0x55FE</div><div class='add'>+0x5356 = 0x55FD</div><div class='add'>+0x5357 = 0x561B</div><div class='add'>+0x5358 = 0x55F9</div><div class='add'>+0x5359 = 0x564E</div><div class='add'>+0x535A = 0x5650</div><div class='add'>+0x535B = 0x71DF</div><div class='add'>+0x535C = 0x5634</div><div class='add'>+0x535D = 0x5636</div><div class='add'>+0x535E = 0x5632</div><div class='add'>+0x535F = 0x5638</div><div class='add'>+0x5360 = 0x566B</div><div class='add'>+0x5361 = 0x5664</div><div class='add'>+0x5362 = 0x562F</div><div class='add'>+0x5363 = 0x566C</div><div class='add'>+0x5364 = 0x566A</div><div class='add'>+0x5365 = 0x5686</div><div class='add'>+0x5366 = 0x5680</div><div class='add'>+0x5367 = 0x568A</div><div class='add'>+0x5368 = 0x56A0</div><div class='add'>+0x5369 = 0x5694</div><div class='add'>+0x536A = 0x568F</div><div class='add'>+0x536B = 0x56A5</div><div class='add'>+0x536C = 0x56AE</div><div class='add'>+0x536D = 0x56B6</div><div class='add'>+0x536E = 0x56B4</div><div class='add'>+0x536F = 0x56C2</div><div class='add'>+0x5370 = 0x56BC</div><div class='add'>+0x5371 = 0x56C1</div><div class='add'>+0x5372 = 0x56C3</div><div class='add'>+0x5373 = 0x56C0</div><div class='add'>+0x5374 = 0x56C8</div><div class='add'>+0x5375 = 0x56CE</div><div class='add'>+0x5376 = 0x56D1</div><div class='add'>+0x5377 = 0x56D3</div><div class='add'>+0x5378 = 0x56D7</div><div class='add'>+0x5379 = 0x56EE</div><div class='add'>+0x537A = 0x56F9</div><div class='add'>+0x537B = 0x5700</div><div class='add'>+0x537C = 0x56FF</div><div class='add'>+0x537D = 0x5704</div><div class='add'>+0x537E = 0x5709</div><div class='add'>+0x5421 = 0x5708</div><div class='add'>+0x5422 = 0x570B</div><div class='add'>+0x5423 = 0x570D</div><div class='add'>+0x5424 = 0x5713</div><div class='add'>+0x5425 = 0x5718</div><div class='add'>+0x5426 = 0x5716</div><div class='add'>+0x5427 = 0x55C7</div><div class='add'>+0x5428 = 0x571C</div><div class='add'>+0x5429 = 0x5726</div><div class='add'>+0x542A = 0x5737</div><div class='add'>+0x542B = 0x5738</div><div class='add'>+0x542C = 0x574E</div><div class='add'>+0x542D = 0x573B</div><div class='add'>+0x542E = 0x5740</div><div class='add'>+0x542F = 0x574F</div><div class='add'>+0x5430 = 0x5769</div><div class='add'>+0x5431 = 0x57C0</div><div class='add'>+0x5432 = 0x5788</div><div class='add'>+0x5433 = 0x5761</div><div class='add'>+0x5434 = 0x577F</div><div class='add'>+0x5435 = 0x5789</div><div class='add'>+0x5436 = 0x5793</div><div class='add'>+0x5437 = 0x57A0</div><div class='add'>+0x5438 = 0x57B3</div><div class='add'>+0x5439 = 0x57A4</div><div class='add'>+0x543A = 0x57AA</div><div class='add'>+0x543B = 0x57B0</div><div class='add'>+0x543C = 0x57C3</div><div class='add'>+0x543D = 0x57C6</div><div class='add'>+0x543E = 0x57D4</div><div class='add'>+0x543F = 0x57D2</div><div class='add'>+0x5440 = 0x57D3</div><div class='add'>+0x5441 = 0x580A</div><div class='add'>+0x5442 = 0x57D6</div><div class='add'>+0x5443 = 0x57E3</div><div class='add'>+0x5444 = 0x580B</div><div class='add'>+0x5445 = 0x5819</div><div class='add'>+0x5446 = 0x581D</div><div class='add'>+0x5447 = 0x5872</div><div class='add'>+0x5448 = 0x5821</div><div class='add'>+0x5449 = 0x5862</div><div class='add'>+0x544A = 0x584B</div><div class='add'>+0x544B = 0x5870</div><div class='add'>+0x544C = 0x6BC0</div><div class='add'>+0x544D = 0x5852</div><div class='add'>+0x544E = 0x583D</div><div class='add'>+0x544F = 0x5879</div><div class='add'>+0x5450 = 0x5885</div><div class='add'>+0x5451 = 0x58B9</div><div class='add'>+0x5452 = 0x589F</div><div class='add'>+0x5453 = 0x58AB</div><div class='add'>+0x5454 = 0x58BA</div><div class='add'>+0x5455 = 0x58DE</div><div class='add'>+0x5456 = 0x58BB</div><div class='add'>+0x5457 = 0x58B8</div><div class='add'>+0x5458 = 0x58AE</div><div class='add'>+0x5459 = 0x58C5</div><div class='add'>+0x545A = 0x58D3</div><div class='add'>+0x545B = 0x58D1</div><div class='add'>+0x545C = 0x58D7</div><div class='add'>+0x545D = 0x58D9</div><div class='add'>+0x545E = 0x58D8</div><div class='add'>+0x545F = 0x58E5</div><div class='add'>+0x5460 = 0x58DC</div><div class='add'>+0x5461 = 0x58E4</div><div class='add'>+0x5462 = 0x58DF</div><div class='add'>+0x5463 = 0x58EF</div><div class='add'>+0x5464 = 0x58FA</div><div class='add'>+0x5465 = 0x58F9</div><div class='add'>+0x5466 = 0x58FB</div><div class='add'>+0x5467 = 0x58FC</div><div class='add'>+0x5468 = 0x58FD</div><div class='add'>+0x5469 = 0x5902</div><div class='add'>+0x546A = 0x590A</div><div class='add'>+0x546B = 0x5910</div><div class='add'>+0x546C = 0x591B</div><div class='add'>+0x546D = 0x68A6</div><div class='add'>+0x546E = 0x5925</div><div class='add'>+0x546F = 0x592C</div><div class='add'>+0x5470 = 0x592D</div><div class='add'>+0x5471 = 0x5932</div><div class='add'>+0x5472 = 0x5938</div><div class='add'>+0x5473 = 0x593E</div><div class='add'>+0x5474 = 0x7AD2</div><div class='add'>+0x5475 = 0x5955</div><div class='add'>+0x5476 = 0x5950</div><div class='add'>+0x5477 = 0x594E</div><div class='add'>+0x5478 = 0x595A</div><div class='add'>+0x5479 = 0x5958</div><div class='add'>+0x547A = 0x5962</div><div class='add'>+0x547B = 0x5960</div><div class='add'>+0x547C = 0x5967</div><div class='add'>+0x547D = 0x596C</div><div class='add'>+0x547E = 0x5969</div><div class='add'>+0x5521 = 0x5978</div><div class='add'>+0x5522 = 0x5981</div><div class='add'>+0x5523 = 0x599D</div><div class='add'>+0x5524 = 0x4F5E</div><div class='add'>+0x5525 = 0x4FAB</div><div class='add'>+0x5526 = 0x59A3</div><div class='add'>+0x5527 = 0x59B2</div><div class='add'>+0x5528 = 0x59C6</div><div class='add'>+0x5529 = 0x59E8</div><div class='add'>+0x552A = 0x59DC</div><div class='add'>+0x552B = 0x598D</div><div class='add'>+0x552C = 0x59D9</div><div class='add'>+0x552D = 0x59DA</div><div class='add'>+0x552E = 0x5A25</div><div class='add'>+0x552F = 0x5A1F</div><div class='add'>+0x5530 = 0x5A11</div><div class='add'>+0x5531 = 0x5A1C</div><div class='add'>+0x5532 = 0x5A09</div><div class='add'>+0x5533 = 0x5A1A</div><div class='add'>+0x5534 = 0x5A40</div><div class='add'>+0x5535 = 0x5A6C</div><div class='add'>+0x5536 = 0x5A49</div><div class='add'>+0x5537 = 0x5A35</div><div class='add'>+0x5538 = 0x5A36</div><div class='add'>+0x5539 = 0x5A62</div><div class='add'>+0x553A = 0x5A6A</div><div class='add'>+0x553B = 0x5A9A</div><div class='add'>+0x553C = 0x5ABC</div><div class='add'>+0x553D = 0x5ABE</div><div class='add'>+0x553E = 0x5ACB</div><div class='add'>+0x553F = 0x5AC2</div><div class='add'>+0x5540 = 0x5ABD</div><div class='add'>+0x5541 = 0x5AE3</div><div class='add'>+0x5542 = 0x5AD7</div><div class='add'>+0x5543 = 0x5AE6</div><div class='add'>+0x5544 = 0x5AE9</div><div class='add'>+0x5545 = 0x5AD6</div><div class='add'>+0x5546 = 0x5AFA</div><div class='add'>+0x5547 = 0x5AFB</div><div class='add'>+0x5548 = 0x5B0C</div><div class='add'>+0x5549 = 0x5B0B</div><div class='add'>+0x554A = 0x5B16</div><div class='add'>+0x554B = 0x5B32</div><div class='add'>+0x554C = 0x5AD0</div><div class='add'>+0x554D = 0x5B2A</div><div class='add'>+0x554E = 0x5B36</div><div class='add'>+0x554F = 0x5B3E</div><div class='add'>+0x5550 = 0x5B43</div><div class='add'>+0x5551 = 0x5B45</div><div class='add'>+0x5552 = 0x5B40</div><div class='add'>+0x5553 = 0x5B51</div><div class='add'>+0x5554 = 0x5B55</div><div class='add'>+0x5555 = 0x5B5A</div><div class='add'>+0x5556 = 0x5B5B</div><div class='add'>+0x5557 = 0x5B65</div><div class='add'>+0x5558 = 0x5B69</div><div class='add'>+0x5559 = 0x5B70</div><div class='add'>+0x555A = 0x5B73</div><div class='add'>+0x555B = 0x5B75</div><div class='add'>+0x555C = 0x5B78</div><div class='add'>+0x555D = 0x6588</div><div class='add'>+0x555E = 0x5B7A</div><div class='add'>+0x555F = 0x5B80</div><div class='add'>+0x5560 = 0x5B83</div><div class='add'>+0x5561 = 0x5BA6</div><div class='add'>+0x5562 = 0x5BB8</div><div class='add'>+0x5563 = 0x5BC3</div><div class='add'>+0x5564 = 0x5BC7</div><div class='add'>+0x5565 = 0x5BC9</div><div class='add'>+0x5566 = 0x5BD4</div><div class='add'>+0x5567 = 0x5BD0</div><div class='add'>+0x5568 = 0x5BE4</div><div class='add'>+0x5569 = 0x5BE6</div><div class='add'>+0x556A = 0x5BE2</div><div class='add'>+0x556B = 0x5BDE</div><div class='add'>+0x556C = 0x5BE5</div><div class='add'>+0x556D = 0x5BEB</div><div class='add'>+0x556E = 0x5BF0</div><div class='add'>+0x556F = 0x5BF6</div><div class='add'>+0x5570 = 0x5BF3</div><div class='add'>+0x5571 = 0x5C05</div><div class='add'>+0x5572 = 0x5C07</div><div class='add'>+0x5573 = 0x5C08</div><div class='add'>+0x5574 = 0x5C0D</div><div class='add'>+0x5575 = 0x5C13</div><div class='add'>+0x5576 = 0x5C20</div><div class='add'>+0x5577 = 0x5C22</div><div class='add'>+0x5578 = 0x5C28</div><div class='add'>+0x5579 = 0x5C38</div><div class='add'>+0x557A = 0x5C39</div><div class='add'>+0x557B = 0x5C41</div><div class='add'>+0x557C = 0x5C46</div><div class='add'>+0x557D = 0x5C4E</div><div class='add'>+0x557E = 0x5C53</div><div class='add'>+0x5621 = 0x5C50</div><div class='add'>+0x5622 = 0x5C4F</div><div class='add'>+0x5623 = 0x5B71</div><div class='add'>+0x5624 = 0x5C6C</div><div class='add'>+0x5625 = 0x5C6E</div><div class='add'>+0x5626 = 0x4E62</div><div class='add'>+0x5627 = 0x5C76</div><div class='add'>+0x5628 = 0x5C79</div><div class='add'>+0x5629 = 0x5C8C</div><div class='add'>+0x562A = 0x5C91</div><div class='add'>+0x562B = 0x5C94</div><div class='add'>+0x562C = 0x599B</div><div class='add'>+0x562D = 0x5CAB</div><div class='add'>+0x562E = 0x5CBB</div><div class='add'>+0x562F = 0x5CB6</div><div class='add'>+0x5630 = 0x5CBC</div><div class='add'>+0x5631 = 0x5CB7</div><div class='add'>+0x5632 = 0x5CC5</div><div class='add'>+0x5633 = 0x5CBE</div><div class='add'>+0x5634 = 0x5CC7</div><div class='add'>+0x5635 = 0x5CD9</div><div class='add'>+0x5636 = 0x5CE9</div><div class='add'>+0x5637 = 0x5CFD</div><div class='add'>+0x5638 = 0x5CFA</div><div class='add'>+0x5639 = 0x5CED</div><div class='add'>+0x563A = 0x5D8C</div><div class='add'>+0x563B = 0x5CEA</div><div class='add'>+0x563C = 0x5D0B</div><div class='add'>+0x563D = 0x5D15</div><div class='add'>+0x563E = 0x5D17</div><div class='add'>+0x563F = 0x5D5C</div><div class='add'>+0x5640 = 0x5D1F</div><div class='add'>+0x5641 = 0x5D1B</div><div class='add'>+0x5642 = 0x5D11</div><div class='add'>+0x5643 = 0x5D14</div><div class='add'>+0x5644 = 0x5D22</div><div class='add'>+0x5645 = 0x5D1A</div><div class='add'>+0x5646 = 0x5D19</div><div class='add'>+0x5647 = 0x5D18</div><div class='add'>+0x5648 = 0x5D4C</div><div class='add'>+0x5649 = 0x5D52</div><div class='add'>+0x564A = 0x5D4E</div><div class='add'>+0x564B = 0x5D4B</div><div class='add'>+0x564C = 0x5D6C</div><div class='add'>+0x564D = 0x5D73</div><div class='add'>+0x564E = 0x5D76</div><div class='add'>+0x564F = 0x5D87</div><div class='add'>+0x5650 = 0x5D84</div><div class='add'>+0x5651 = 0x5D82</div><div class='add'>+0x5652 = 0x5DA2</div><div class='add'>+0x5653 = 0x5D9D</div><div class='add'>+0x5654 = 0x5DAC</div><div class='add'>+0x5655 = 0x5DAE</div><div class='add'>+0x5656 = 0x5DBD</div><div class='add'>+0x5657 = 0x5D90</div><div class='add'>+0x5658 = 0x5DB7</div><div class='add'>+0x5659 = 0x5DBC</div><div class='add'>+0x565A = 0x5DC9</div><div class='add'>+0x565B = 0x5DCD</div><div class='add'>+0x565C = 0x5DD3</div><div class='add'>+0x565D = 0x5DD2</div><div class='add'>+0x565E = 0x5DD6</div><div class='add'>+0x565F = 0x5DDB</div><div class='add'>+0x5660 = 0x5DEB</div><div class='add'>+0x5661 = 0x5DF2</div><div class='add'>+0x5662 = 0x5DF5</div><div class='add'>+0x5663 = 0x5E0B</div><div class='add'>+0x5664 = 0x5E1A</div><div class='add'>+0x5665 = 0x5E19</div><div class='add'>+0x5666 = 0x5E11</div><div class='add'>+0x5667 = 0x5E1B</div><div class='add'>+0x5668 = 0x5E36</div><div class='add'>+0x5669 = 0x5E37</div><div class='add'>+0x566A = 0x5E44</div><div class='add'>+0x566B = 0x5E43</div><div class='add'>+0x566C = 0x5E40</div><div class='add'>+0x566D = 0x5E4E</div><div class='add'>+0x566E = 0x5E57</div><div class='add'>+0x566F = 0x5E54</div><div class='add'>+0x5670 = 0x5E5F</div><div class='add'>+0x5671 = 0x5E62</div><div class='add'>+0x5672 = 0x5E64</div><div class='add'>+0x5673 = 0x5E47</div><div class='add'>+0x5674 = 0x5E75</div><div class='add'>+0x5675 = 0x5E76</div><div class='add'>+0x5676 = 0x5E7A</div><div class='add'>+0x5677 = 0x9EBC</div><div class='add'>+0x5678 = 0x5E7F</div><div class='add'>+0x5679 = 0x5EA0</div><div class='add'>+0x567A = 0x5EC1</div><div class='add'>+0x567B = 0x5EC2</div><div class='add'>+0x567C = 0x5EC8</div><div class='add'>+0x567D = 0x5ED0</div><div class='add'>+0x567E = 0x5ECF</div><div class='add'>+0x5721 = 0x5ED6</div><div class='add'>+0x5722 = 0x5EE3</div><div class='add'>+0x5723 = 0x5EDD</div><div class='add'>+0x5724 = 0x5EDA</div><div class='add'>+0x5725 = 0x5EDB</div><div class='add'>+0x5726 = 0x5EE2</div><div class='add'>+0x5727 = 0x5EE1</div><div class='add'>+0x5728 = 0x5EE8</div><div class='add'>+0x5729 = 0x5EE9</div><div class='add'>+0x572A = 0x5EEC</div><div class='add'>+0x572B = 0x5EF1</div><div class='add'>+0x572C = 0x5EF3</div><div class='add'>+0x572D = 0x5EF0</div><div class='add'>+0x572E = 0x5EF4</div><div class='add'>+0x572F = 0x5EF8</div><div class='add'>+0x5730 = 0x5EFE</div><div class='add'>+0x5731 = 0x5F03</div><div class='add'>+0x5732 = 0x5F09</div><div class='add'>+0x5733 = 0x5F5D</div><div class='add'>+0x5734 = 0x5F5C</div><div class='add'>+0x5735 = 0x5F0B</div><div class='add'>+0x5736 = 0x5F11</div><div class='add'>+0x5737 = 0x5F16</div><div class='add'>+0x5738 = 0x5F29</div><div class='add'>+0x5739 = 0x5F2D</div><div class='add'>+0x573A = 0x5F38</div><div class='add'>+0x573B = 0x5F41</div><div class='add'>+0x573C = 0x5F48</div><div class='add'>+0x573D = 0x5F4C</div><div class='add'>+0x573E = 0x5F4E</div><div class='add'>+0x573F = 0x5F2F</div><div class='add'>+0x5740 = 0x5F51</div><div class='add'>+0x5741 = 0x5F56</div><div class='add'>+0x5742 = 0x5F57</div><div class='add'>+0x5743 = 0x5F59</div><div class='add'>+0x5744 = 0x5F61</div><div class='add'>+0x5745 = 0x5F6D</div><div class='add'>+0x5746 = 0x5F73</div><div class='add'>+0x5747 = 0x5F77</div><div class='add'>+0x5748 = 0x5F83</div><div class='add'>+0x5749 = 0x5F82</div><div class='add'>+0x574A = 0x5F7F</div><div class='add'>+0x574B = 0x5F8A</div><div class='add'>+0x574C = 0x5F88</div><div class='add'>+0x574D = 0x5F91</div><div class='add'>+0x574E = 0x5F87</div><div class='add'>+0x574F = 0x5F9E</div><div class='add'>+0x5750 = 0x5F99</div><div class='add'>+0x5751 = 0x5F98</div><div class='add'>+0x5752 = 0x5FA0</div><div class='add'>+0x5753 = 0x5FA8</div><div class='add'>+0x5754 = 0x5FAD</div><div class='add'>+0x5755 = 0x5FBC</div><div class='add'>+0x5756 = 0x5FD6</div><div class='add'>+0x5757 = 0x5FFB</div><div class='add'>+0x5758 = 0x5FE4</div><div class='add'>+0x5759 = 0x5FF8</div><div class='add'>+0x575A = 0x5FF1</div><div class='add'>+0x575B = 0x5FDD</div><div class='add'>+0x575C = 0x60B3</div><div class='add'>+0x575D = 0x5FFF</div><div class='add'>+0x575E = 0x6021</div><div class='add'>+0x575F = 0x6060</div><div class='add'>+0x5760 = 0x6019</div><div class='add'>+0x5761 = 0x6010</div><div class='add'>+0x5762 = 0x6029</div><div class='add'>+0x5763 = 0x600E</div><div class='add'>+0x5764 = 0x6031</div><div class='add'>+0x5765 = 0x601B</div><div class='add'>+0x5766 = 0x6015</div><div class='add'>+0x5767 = 0x602B</div><div class='add'>+0x5768 = 0x6026</div><div class='add'>+0x5769 = 0x600F</div><div class='add'>+0x576A = 0x603A</div><div class='add'>+0x576B = 0x605A</div><div class='add'>+0x576C = 0x6041</div><div class='add'>+0x576D = 0x606A</div><div class='add'>+0x576E = 0x6077</div><div class='add'>+0x576F = 0x605F</div><div class='add'>+0x5770 = 0x604A</div><div class='add'>+0x5771 = 0x6046</div><div class='add'>+0x5772 = 0x604D</div><div class='add'>+0x5773 = 0x6063</div><div class='add'>+0x5774 = 0x6043</div><div class='add'>+0x5775 = 0x6064</div><div class='add'>+0x5776 = 0x6042</div><div class='add'>+0x5777 = 0x606C</div><div class='add'>+0x5778 = 0x606B</div><div class='add'>+0x5779 = 0x6059</div><div class='add'>+0x577A = 0x6081</div><div class='add'>+0x577B = 0x608D</div><div class='add'>+0x577C = 0x60E7</div><div class='add'>+0x577D = 0x6083</div><div class='add'>+0x577E = 0x609A</div><div class='add'>+0x5821 = 0x6084</div><div class='add'>+0x5822 = 0x609B</div><div class='add'>+0x5823 = 0x6096</div><div class='add'>+0x5824 = 0x6097</div><div class='add'>+0x5825 = 0x6092</div><div class='add'>+0x5826 = 0x60A7</div><div class='add'>+0x5827 = 0x608B</div><div class='add'>+0x5828 = 0x60E1</div><div class='add'>+0x5829 = 0x60B8</div><div class='add'>+0x582A = 0x60E0</div><div class='add'>+0x582B = 0x60D3</div><div class='add'>+0x582C = 0x60B4</div><div class='add'>+0x582D = 0x5FF0</div><div class='add'>+0x582E = 0x60BD</div><div class='add'>+0x582F = 0x60C6</div><div class='add'>+0x5830 = 0x60B5</div><div class='add'>+0x5831 = 0x60D8</div><div class='add'>+0x5832 = 0x614D</div><div class='add'>+0x5833 = 0x6115</div><div class='add'>+0x5834 = 0x6106</div><div class='add'>+0x5835 = 0x60F6</div><div class='add'>+0x5836 = 0x60F7</div><div class='add'>+0x5837 = 0x6100</div><div class='add'>+0x5838 = 0x60F4</div><div class='add'>+0x5839 = 0x60FA</div><div class='add'>+0x583A = 0x6103</div><div class='add'>+0x583B = 0x6121</div><div class='add'>+0x583C = 0x60FB</div><div class='add'>+0x583D = 0x60F1</div><div class='add'>+0x583E = 0x610D</div><div class='add'>+0x583F = 0x610E</div><div class='add'>+0x5840 = 0x6147</div><div class='add'>+0x5841 = 0x613E</div><div class='add'>+0x5842 = 0x6128</div><div class='add'>+0x5843 = 0x6127</div><div class='add'>+0x5844 = 0x614A</div><div class='add'>+0x5845 = 0x613F</div><div class='add'>+0x5846 = 0x613C</div><div class='add'>+0x5847 = 0x612C</div><div class='add'>+0x5848 = 0x6134</div><div class='add'>+0x5849 = 0x613D</div><div class='add'>+0x584A = 0x6142</div><div class='add'>+0x584B = 0x6144</div><div class='add'>+0x584C = 0x6173</div><div class='add'>+0x584D = 0x6177</div><div class='add'>+0x584E = 0x6158</div><div class='add'>+0x584F = 0x6159</div><div class='add'>+0x5850 = 0x615A</div><div class='add'>+0x5851 = 0x616B</div><div class='add'>+0x5852 = 0x6174</div><div class='add'>+0x5853 = 0x616F</div><div class='add'>+0x5854 = 0x6165</div><div class='add'>+0x5855 = 0x6171</div><div class='add'>+0x5856 = 0x615F</div><div class='add'>+0x5857 = 0x615D</div><div class='add'>+0x5858 = 0x6153</div><div class='add'>+0x5859 = 0x6175</div><div class='add'>+0x585A = 0x6199</div><div class='add'>+0x585B = 0x6196</div><div class='add'>+0x585C = 0x6187</div><div class='add'>+0x585D = 0x61AC</div><div class='add'>+0x585E = 0x6194</div><div class='add'>+0x585F = 0x619A</div><div class='add'>+0x5860 = 0x618A</div><div class='add'>+0x5861 = 0x6191</div><div class='add'>+0x5862 = 0x61AB</div><div class='add'>+0x5863 = 0x61AE</div><div class='add'>+0x5864 = 0x61CC</div><div class='add'>+0x5865 = 0x61CA</div><div class='add'>+0x5866 = 0x61C9</div><div class='add'>+0x5867 = 0x61F7</div><div class='add'>+0x5868 = 0x61C8</div><div class='add'>+0x5869 = 0x61C3</div><div class='add'>+0x586A = 0x61C6</div><div class='add'>+0x586B = 0x61BA</div><div class='add'>+0x586C = 0x61CB</div><div class='add'>+0x586D = 0x7F79</div><div class='add'>+0x586E = 0x61CD</div><div class='add'>+0x586F = 0x61E6</div><div class='add'>+0x5870 = 0x61E3</div><div class='add'>+0x5871 = 0x61F6</div><div class='add'>+0x5872 = 0x61FA</div><div class='add'>+0x5873 = 0x61F4</div><div class='add'>+0x5874 = 0x61FF</div><div class='add'>+0x5875 = 0x61FD</div><div class='add'>+0x5876 = 0x61FC</div><div class='add'>+0x5877 = 0x61FE</div><div class='add'>+0x5878 = 0x6200</div><div class='add'>+0x5879 = 0x6208</div><div class='add'>+0x587A = 0x6209</div><div class='add'>+0x587B = 0x620D</div><div class='add'>+0x587C = 0x620C</div><div class='add'>+0x587D = 0x6214</div><div class='add'>+0x587E = 0x621B</div><div class='add'>+0x5921 = 0x621E</div><div class='add'>+0x5922 = 0x6221</div><div class='add'>+0x5923 = 0x622A</div><div class='add'>+0x5924 = 0x622E</div><div class='add'>+0x5925 = 0x6230</div><div class='add'>+0x5926 = 0x6232</div><div class='add'>+0x5927 = 0x6233</div><div class='add'>+0x5928 = 0x6241</div><div class='add'>+0x5929 = 0x624E</div><div class='add'>+0x592A = 0x625E</div><div class='add'>+0x592B = 0x6263</div><div class='add'>+0x592C = 0x625B</div><div class='add'>+0x592D = 0x6260</div><div class='add'>+0x592E = 0x6268</div><div class='add'>+0x592F = 0x627C</div><div class='add'>+0x5930 = 0x6282</div><div class='add'>+0x5931 = 0x6289</div><div class='add'>+0x5932 = 0x627E</div><div class='add'>+0x5933 = 0x6292</div><div class='add'>+0x5934 = 0x6293</div><div class='add'>+0x5935 = 0x6296</div><div class='add'>+0x5936 = 0x62D4</div><div class='add'>+0x5937 = 0x6283</div><div class='add'>+0x5938 = 0x6294</div><div class='add'>+0x5939 = 0x62D7</div><div class='add'>+0x593A = 0x62D1</div><div class='add'>+0x593B = 0x62BB</div><div class='add'>+0x593C = 0x62CF</div><div class='add'>+0x593D = 0x62FF</div><div class='add'>+0x593E = 0x62C6</div><div class='add'>+0x593F = 0x64D4</div><div class='add'>+0x5940 = 0x62C8</div><div class='add'>+0x5941 = 0x62DC</div><div class='add'>+0x5942 = 0x62CC</div><div class='add'>+0x5943 = 0x62CA</div><div class='add'>+0x5944 = 0x62C2</div><div class='add'>+0x5945 = 0x62C7</div><div class='add'>+0x5946 = 0x629B</div><div class='add'>+0x5947 = 0x62C9</div><div class='add'>+0x5948 = 0x630C</div><div class='add'>+0x5949 = 0x62EE</div><div class='add'>+0x594A = 0x62F1</div><div class='add'>+0x594B = 0x6327</div><div class='add'>+0x594C = 0x6302</div><div class='add'>+0x594D = 0x6308</div><div class='add'>+0x594E = 0x62EF</div><div class='add'>+0x594F = 0x62F5</div><div class='add'>+0x5950 = 0x6350</div><div class='add'>+0x5951 = 0x633E</div><div class='add'>+0x5952 = 0x634D</div><div class='add'>+0x5953 = 0x641C</div><div class='add'>+0x5954 = 0x634F</div><div class='add'>+0x5955 = 0x6396</div><div class='add'>+0x5956 = 0x638E</div><div class='add'>+0x5957 = 0x6380</div><div class='add'>+0x5958 = 0x63AB</div><div class='add'>+0x5959 = 0x6376</div><div class='add'>+0x595A = 0x63A3</div><div class='add'>+0x595B = 0x638F</div><div class='add'>+0x595C = 0x6389</div><div class='add'>+0x595D = 0x639F</div><div class='add'>+0x595E = 0x63B5</div><div class='add'>+0x595F = 0x636B</div><div class='add'>+0x5960 = 0x6369</div><div class='add'>+0x5961 = 0x63BE</div><div class='add'>+0x5962 = 0x63E9</div><div class='add'>+0x5963 = 0x63C0</div><div class='add'>+0x5964 = 0x63C6</div><div class='add'>+0x5965 = 0x63E3</div><div class='add'>+0x5966 = 0x63C9</div><div class='add'>+0x5967 = 0x63D2</div><div class='add'>+0x5968 = 0x63F6</div><div class='add'>+0x5969 = 0x63C4</div><div class='add'>+0x596A = 0x6416</div><div class='add'>+0x596B = 0x6434</div><div class='add'>+0x596C = 0x6406</div><div class='add'>+0x596D = 0x6413</div><div class='add'>+0x596E = 0x6426</div><div class='add'>+0x596F = 0x6436</div><div class='add'>+0x5970 = 0x651D</div><div class='add'>+0x5971 = 0x6417</div><div class='add'>+0x5972 = 0x6428</div><div class='add'>+0x5973 = 0x640F</div><div class='add'>+0x5974 = 0x6467</div><div class='add'>+0x5975 = 0x646F</div><div class='add'>+0x5976 = 0x6476</div><div class='add'>+0x5977 = 0x644E</div><div class='add'>+0x5978 = 0x652A</div><div class='add'>+0x5979 = 0x6495</div><div class='add'>+0x597A = 0x6493</div><div class='add'>+0x597B = 0x64A5</div><div class='add'>+0x597C = 0x64A9</div><div class='add'>+0x597D = 0x6488</div><div class='add'>+0x597E = 0x64BC</div><div class='add'>+0x5A21 = 0x64DA</div><div class='add'>+0x5A22 = 0x64D2</div><div class='add'>+0x5A23 = 0x64C5</div><div class='add'>+0x5A24 = 0x64C7</div><div class='add'>+0x5A25 = 0x64BB</div><div class='add'>+0x5A26 = 0x64D8</div><div class='add'>+0x5A27 = 0x64C2</div><div class='add'>+0x5A28 = 0x64F1</div><div class='add'>+0x5A29 = 0x64E7</div><div class='add'>+0x5A2A = 0x8209</div><div class='add'>+0x5A2B = 0x64E0</div><div class='add'>+0x5A2C = 0x64E1</div><div class='add'>+0x5A2D = 0x62AC</div><div class='add'>+0x5A2E = 0x64E3</div><div class='add'>+0x5A2F = 0x64EF</div><div class='add'>+0x5A30 = 0x652C</div><div class='add'>+0x5A31 = 0x64F6</div><div class='add'>+0x5A32 = 0x64F4</div><div class='add'>+0x5A33 = 0x64F2</div><div class='add'>+0x5A34 = 0x64FA</div><div class='add'>+0x5A35 = 0x6500</div><div class='add'>+0x5A36 = 0x64FD</div><div class='add'>+0x5A37 = 0x6518</div><div class='add'>+0x5A38 = 0x651C</div><div class='add'>+0x5A39 = 0x6505</div><div class='add'>+0x5A3A = 0x6524</div><div class='add'>+0x5A3B = 0x6523</div><div class='add'>+0x5A3C = 0x652B</div><div class='add'>+0x5A3D = 0x6534</div><div class='add'>+0x5A3E = 0x6535</div><div class='add'>+0x5A3F = 0x6537</div><div class='add'>+0x5A40 = 0x6536</div><div class='add'>+0x5A41 = 0x6538</div><div class='add'>+0x5A42 = 0x754B</div><div class='add'>+0x5A43 = 0x6548</div><div class='add'>+0x5A44 = 0x6556</div><div class='add'>+0x5A45 = 0x6555</div><div class='add'>+0x5A46 = 0x654D</div><div class='add'>+0x5A47 = 0x6558</div><div class='add'>+0x5A48 = 0x655E</div><div class='add'>+0x5A49 = 0x655D</div><div class='add'>+0x5A4A = 0x6572</div><div class='add'>+0x5A4B = 0x6578</div><div class='add'>+0x5A4C = 0x6582</div><div class='add'>+0x5A4D = 0x6583</div><div class='add'>+0x5A4E = 0x8B8A</div><div class='add'>+0x5A4F = 0x659B</div><div class='add'>+0x5A50 = 0x659F</div><div class='add'>+0x5A51 = 0x65AB</div><div class='add'>+0x5A52 = 0x65B7</div><div class='add'>+0x5A53 = 0x65C3</div><div class='add'>+0x5A54 = 0x65C6</div><div class='add'>+0x5A55 = 0x65C1</div><div class='add'>+0x5A56 = 0x65C4</div><div class='add'>+0x5A57 = 0x65CC</div><div class='add'>+0x5A58 = 0x65D2</div><div class='add'>+0x5A59 = 0x65DB</div><div class='add'>+0x5A5A = 0x65D9</div><div class='add'>+0x5A5B = 0x65E0</div><div class='add'>+0x5A5C = 0x65E1</div><div class='add'>+0x5A5D = 0x65F1</div><div class='add'>+0x5A5E = 0x6772</div><div class='add'>+0x5A5F = 0x660A</div><div class='add'>+0x5A60 = 0x6603</div><div class='add'>+0x5A61 = 0x65FB</div><div class='add'>+0x5A62 = 0x6773</div><div class='add'>+0x5A63 = 0x6635</div><div class='add'>+0x5A64 = 0x6636</div><div class='add'>+0x5A65 = 0x6634</div><div class='add'>+0x5A66 = 0x661C</div><div class='add'>+0x5A67 = 0x664F</div><div class='add'>+0x5A68 = 0x6644</div><div class='add'>+0x5A69 = 0x6649</div><div class='add'>+0x5A6A = 0x6641</div><div class='add'>+0x5A6B = 0x665E</div><div class='add'>+0x5A6C = 0x665D</div><div class='add'>+0x5A6D = 0x6664</div><div class='add'>+0x5A6E = 0x6667</div><div class='add'>+0x5A6F = 0x6668</div><div class='add'>+0x5A70 = 0x665F</div><div class='add'>+0x5A71 = 0x6662</div><div class='add'>+0x5A72 = 0x6670</div><div class='add'>+0x5A73 = 0x6683</div><div class='add'>+0x5A74 = 0x6688</div><div class='add'>+0x5A75 = 0x668E</div><div class='add'>+0x5A76 = 0x6689</div><div class='add'>+0x5A77 = 0x6684</div><div class='add'>+0x5A78 = 0x6698</div><div class='add'>+0x5A79 = 0x669D</div><div class='add'>+0x5A7A = 0x66C1</div><div class='add'>+0x5A7B = 0x66B9</div><div class='add'>+0x5A7C = 0x66C9</div><div class='add'>+0x5A7D = 0x66BE</div><div class='add'>+0x5A7E = 0x66BC</div><div class='add'>+0x5B21 = 0x66C4</div><div class='add'>+0x5B22 = 0x66B8</div><div class='add'>+0x5B23 = 0x66D6</div><div class='add'>+0x5B24 = 0x66DA</div><div class='add'>+0x5B25 = 0x66E0</div><div class='add'>+0x5B26 = 0x663F</div><div class='add'>+0x5B27 = 0x66E6</div><div class='add'>+0x5B28 = 0x66E9</div><div class='add'>+0x5B29 = 0x66F0</div><div class='add'>+0x5B2A = 0x66F5</div><div class='add'>+0x5B2B = 0x66F7</div><div class='add'>+0x5B2C = 0x670F</div><div class='add'>+0x5B2D = 0x6716</div><div class='add'>+0x5B2E = 0x671E</div><div class='add'>+0x5B2F = 0x6726</div><div class='add'>+0x5B30 = 0x6727</div><div class='add'>+0x5B31 = 0x9738</div><div class='add'>+0x5B32 = 0x672E</div><div class='add'>+0x5B33 = 0x673F</div><div class='add'>+0x5B34 = 0x6736</div><div class='add'>+0x5B35 = 0x6741</div><div class='add'>+0x5B36 = 0x6738</div><div class='add'>+0x5B37 = 0x6737</div><div class='add'>+0x5B38 = 0x6746</div><div class='add'>+0x5B39 = 0x675E</div><div class='add'>+0x5B3A = 0x6760</div><div class='add'>+0x5B3B = 0x6759</div><div class='add'>+0x5B3C = 0x6763</div><div class='add'>+0x5B3D = 0x6764</div><div class='add'>+0x5B3E = 0x6789</div><div class='add'>+0x5B3F = 0x6770</div><div class='add'>+0x5B40 = 0x67A9</div><div class='add'>+0x5B41 = 0x677C</div><div class='add'>+0x5B42 = 0x676A</div><div class='add'>+0x5B43 = 0x678C</div><div class='add'>+0x5B44 = 0x678B</div><div class='add'>+0x5B45 = 0x67A6</div><div class='add'>+0x5B46 = 0x67A1</div><div class='add'>+0x5B47 = 0x6785</div><div class='add'>+0x5B48 = 0x67B7</div><div class='add'>+0x5B49 = 0x67EF</div><div class='add'>+0x5B4A = 0x67B4</div><div class='add'>+0x5B4B = 0x67EC</div><div class='add'>+0x5B4C = 0x67B3</div><div class='add'>+0x5B4D = 0x67E9</div><div class='add'>+0x5B4E = 0x67B8</div><div class='add'>+0x5B4F = 0x67E4</div><div class='add'>+0x5B50 = 0x67DE</div><div class='add'>+0x5B51 = 0x67DD</div><div class='add'>+0x5B52 = 0x67E2</div><div class='add'>+0x5B53 = 0x67EE</div><div class='add'>+0x5B54 = 0x67B9</div><div class='add'>+0x5B55 = 0x67CE</div><div class='add'>+0x5B56 = 0x67C6</div><div class='add'>+0x5B57 = 0x67E7</div><div class='add'>+0x5B58 = 0x6A9C</div><div class='add'>+0x5B59 = 0x681E</div><div class='add'>+0x5B5A = 0x6846</div><div class='add'>+0x5B5B = 0x6829</div><div class='add'>+0x5B5C = 0x6840</div><div class='add'>+0x5B5D = 0x684D</div><div class='add'>+0x5B5E = 0x6832</div><div class='add'>+0x5B5F = 0x684E</div><div class='add'>+0x5B60 = 0x68B3</div><div class='add'>+0x5B61 = 0x682B</div><div class='add'>+0x5B62 = 0x6859</div><div class='add'>+0x5B63 = 0x6863</div><div class='add'>+0x5B64 = 0x6877</div><div class='add'>+0x5B65 = 0x687F</div><div class='add'>+0x5B66 = 0x689F</div><div class='add'>+0x5B67 = 0x688F</div><div class='add'>+0x5B68 = 0x68AD</div><div class='add'>+0x5B69 = 0x6894</div><div class='add'>+0x5B6A = 0x689D</div><div class='add'>+0x5B6B = 0x689B</div><div class='add'>+0x5B6C = 0x6883</div><div class='add'>+0x5B6D = 0x6AAE</div><div class='add'>+0x5B6E = 0x68B9</div><div class='add'>+0x5B6F = 0x6874</div><div class='add'>+0x5B70 = 0x68B5</div><div class='add'>+0x5B71 = 0x68A0</div><div class='add'>+0x5B72 = 0x68BA</div><div class='add'>+0x5B73 = 0x690F</div><div class='add'>+0x5B74 = 0x688D</div><div class='add'>+0x5B75 = 0x687E</div><div class='add'>+0x5B76 = 0x6901</div><div class='add'>+0x5B77 = 0x68CA</div><div class='add'>+0x5B78 = 0x6908</div><div class='add'>+0x5B79 = 0x68D8</div><div class='add'>+0x5B7A = 0x6922</div><div class='add'>+0x5B7B = 0x6926</div><div class='add'>+0x5B7C = 0x68E1</div><div class='add'>+0x5B7D = 0x690C</div><div class='add'>+0x5B7E = 0x68CD</div><div class='add'>+0x5C21 = 0x68D4</div><div class='add'>+0x5C22 = 0x68E7</div><div class='add'>+0x5C23 = 0x68D5</div><div class='add'>+0x5C24 = 0x6936</div><div class='add'>+0x5C25 = 0x6912</div><div class='add'>+0x5C26 = 0x6904</div><div class='add'>+0x5C27 = 0x68D7</div><div class='add'>+0x5C28 = 0x68E3</div><div class='add'>+0x5C29 = 0x6925</div><div class='add'>+0x5C2A = 0x68F9</div><div class='add'>+0x5C2B = 0x68E0</div><div class='add'>+0x5C2C = 0x68EF</div><div class='add'>+0x5C2D = 0x6928</div><div class='add'>+0x5C2E = 0x692A</div><div class='add'>+0x5C2F = 0x691A</div><div class='add'>+0x5C30 = 0x6923</div><div class='add'>+0x5C31 = 0x6921</div><div class='add'>+0x5C32 = 0x68C6</div><div class='add'>+0x5C33 = 0x6979</div><div class='add'>+0x5C34 = 0x6977</div><div class='add'>+0x5C35 = 0x695C</div><div class='add'>+0x5C36 = 0x6978</div><div class='add'>+0x5C37 = 0x696B</div><div class='add'>+0x5C38 = 0x6954</div><div class='add'>+0x5C39 = 0x697E</div><div class='add'>+0x5C3A = 0x696E</div><div class='add'>+0x5C3B = 0x6939</div><div class='add'>+0x5C3C = 0x6974</div><div class='add'>+0x5C3D = 0x693D</div><div class='add'>+0x5C3E = 0x6959</div><div class='add'>+0x5C3F = 0x6930</div><div class='add'>+0x5C40 = 0x6961</div><div class='add'>+0x5C41 = 0x695E</div><div class='add'>+0x5C42 = 0x695D</div><div class='add'>+0x5C43 = 0x6981</div><div class='add'>+0x5C44 = 0x696A</div><div class='add'>+0x5C45 = 0x69B2</div><div class='add'>+0x5C46 = 0x69AE</div><div class='add'>+0x5C47 = 0x69D0</div><div class='add'>+0x5C48 = 0x69BF</div><div class='add'>+0x5C49 = 0x69C1</div><div class='add'>+0x5C4A = 0x69D3</div><div class='add'>+0x5C4B = 0x69BE</div><div class='add'>+0x5C4C = 0x69CE</div><div class='add'>+0x5C4D = 0x5BE8</div><div class='add'>+0x5C4E = 0x69CA</div><div class='add'>+0x5C4F = 0x69DD</div><div class='add'>+0x5C50 = 0x69BB</div><div class='add'>+0x5C51 = 0x69C3</div><div class='add'>+0x5C52 = 0x69A7</div><div class='add'>+0x5C53 = 0x6A2E</div><div class='add'>+0x5C54 = 0x6991</div><div class='add'>+0x5C55 = 0x69A0</div><div class='add'>+0x5C56 = 0x699C</div><div class='add'>+0x5C57 = 0x6995</div><div class='add'>+0x5C58 = 0x69B4</div><div class='add'>+0x5C59 = 0x69DE</div><div class='add'>+0x5C5A = 0x69E8</div><div class='add'>+0x5C5B = 0x6A02</div><div class='add'>+0x5C5C = 0x6A1B</div><div class='add'>+0x5C5D = 0x69FF</div><div class='add'>+0x5C5E = 0x6B0A</div><div class='add'>+0x5C5F = 0x69F9</div><div class='add'>+0x5C60 = 0x69F2</div><div class='add'>+0x5C61 = 0x69E7</div><div class='add'>+0x5C62 = 0x6A05</div><div class='add'>+0x5C63 = 0x69B1</div><div class='add'>+0x5C64 = 0x6A1E</div><div class='add'>+0x5C65 = 0x69ED</div><div class='add'>+0x5C66 = 0x6A14</div><div class='add'>+0x5C67 = 0x69EB</div><div class='add'>+0x5C68 = 0x6A0A</div><div class='add'>+0x5C69 = 0x6A12</div><div class='add'>+0x5C6A = 0x6AC1</div><div class='add'>+0x5C6B = 0x6A23</div><div class='add'>+0x5C6C = 0x6A13</div><div class='add'>+0x5C6D = 0x6A44</div><div class='add'>+0x5C6E = 0x6A0C</div><div class='add'>+0x5C6F = 0x6A72</div><div class='add'>+0x5C70 = 0x6A36</div><div class='add'>+0x5C71 = 0x6A78</div><div class='add'>+0x5C72 = 0x6A47</div><div class='add'>+0x5C73 = 0x6A62</div><div class='add'>+0x5C74 = 0x6A59</div><div class='add'>+0x5C75 = 0x6A66</div><div class='add'>+0x5C76 = 0x6A48</div><div class='add'>+0x5C77 = 0x6A38</div><div class='add'>+0x5C78 = 0x6A22</div><div class='add'>+0x5C79 = 0x6A90</div><div class='add'>+0x5C7A = 0x6A8D</div><div class='add'>+0x5C7B = 0x6AA0</div><div class='add'>+0x5C7C = 0x6A84</div><div class='add'>+0x5C7D = 0x6AA2</div><div class='add'>+0x5C7E = 0x6AA3</div><div class='add'>+0x5D21 = 0x6A97</div><div class='add'>+0x5D22 = 0x8617</div><div class='add'>+0x5D23 = 0x6ABB</div><div class='add'>+0x5D24 = 0x6AC3</div><div class='add'>+0x5D25 = 0x6AC2</div><div class='add'>+0x5D26 = 0x6AB8</div><div class='add'>+0x5D27 = 0x6AB3</div><div class='add'>+0x5D28 = 0x6AAC</div><div class='add'>+0x5D29 = 0x6ADE</div><div class='add'>+0x5D2A = 0x6AD1</div><div class='add'>+0x5D2B = 0x6ADF</div><div class='add'>+0x5D2C = 0x6AAA</div><div class='add'>+0x5D2D = 0x6ADA</div><div class='add'>+0x5D2E = 0x6AEA</div><div class='add'>+0x5D2F = 0x6AFB</div><div class='add'>+0x5D30 = 0x6B05</div><div class='add'>+0x5D31 = 0x8616</div><div class='add'>+0x5D32 = 0x6AFA</div><div class='add'>+0x5D33 = 0x6B12</div><div class='add'>+0x5D34 = 0x6B16</div><div class='add'>+0x5D35 = 0x9B31</div><div class='add'>+0x5D36 = 0x6B1F</div><div class='add'>+0x5D37 = 0x6B38</div><div class='add'>+0x5D38 = 0x6B37</div><div class='add'>+0x5D39 = 0x76DC</div><div class='add'>+0x5D3A = 0x6B39</div><div class='add'>+0x5D3B = 0x98EE</div><div class='add'>+0x5D3C = 0x6B47</div><div class='add'>+0x5D3D = 0x6B43</div><div class='add'>+0x5D3E = 0x6B49</div><div class='add'>+0x5D3F = 0x6B50</div><div class='add'>+0x5D40 = 0x6B59</div><div class='add'>+0x5D41 = 0x6B54</div><div class='add'>+0x5D42 = 0x6B5B</div><div class='add'>+0x5D43 = 0x6B5F</div><div class='add'>+0x5D44 = 0x6B61</div><div class='add'>+0x5D45 = 0x6B78</div><div class='add'>+0x5D46 = 0x6B79</div><div class='add'>+0x5D47 = 0x6B7F</div><div class='add'>+0x5D48 = 0x6B80</div><div class='add'>+0x5D49 = 0x6B84</div><div class='add'>+0x5D4A = 0x6B83</div><div class='add'>+0x5D4B = 0x6B8D</div><div class='add'>+0x5D4C = 0x6B98</div><div class='add'>+0x5D4D = 0x6B95</div><div class='add'>+0x5D4E = 0x6B9E</div><div class='add'>+0x5D4F = 0x6BA4</div><div class='add'>+0x5D50 = 0x6BAA</div><div class='add'>+0x5D51 = 0x6BAB</div><div class='add'>+0x5D52 = 0x6BAF</div><div class='add'>+0x5D53 = 0x6BB2</div><div class='add'>+0x5D54 = 0x6BB1</div><div class='add'>+0x5D55 = 0x6BB3</div><div class='add'>+0x5D56 = 0x6BB7</div><div class='add'>+0x5D57 = 0x6BBC</div><div class='add'>+0x5D58 = 0x6BC6</div><div class='add'>+0x5D59 = 0x6BCB</div><div class='add'>+0x5D5A = 0x6BD3</div><div class='add'>+0x5D5B = 0x6BDF</div><div class='add'>+0x5D5C = 0x6BEC</div><div class='add'>+0x5D5D = 0x6BEB</div><div class='add'>+0x5D5E = 0x6BF3</div><div class='add'>+0x5D5F = 0x6BEF</div><div class='add'>+0x5D60 = 0x9EBE</div><div class='add'>+0x5D61 = 0x6C08</div><div class='add'>+0x5D62 = 0x6C13</div><div class='add'>+0x5D63 = 0x6C14</div><div class='add'>+0x5D64 = 0x6C1B</div><div class='add'>+0x5D65 = 0x6C24</div><div class='add'>+0x5D66 = 0x6C23</div><div class='add'>+0x5D67 = 0x6C5E</div><div class='add'>+0x5D68 = 0x6C55</div><div class='add'>+0x5D69 = 0x6C62</div><div class='add'>+0x5D6A = 0x6C6A</div><div class='add'>+0x5D6B = 0x6C82</div><div class='add'>+0x5D6C = 0x6C8D</div><div class='add'>+0x5D6D = 0x6C9A</div><div class='add'>+0x5D6E = 0x6C81</div><div class='add'>+0x5D6F = 0x6C9B</div><div class='add'>+0x5D70 = 0x6C7E</div><div class='add'>+0x5D71 = 0x6C68</div><div class='add'>+0x5D72 = 0x6C73</div><div class='add'>+0x5D73 = 0x6C92</div><div class='add'>+0x5D74 = 0x6C90</div><div class='add'>+0x5D75 = 0x6CC4</div><div class='add'>+0x5D76 = 0x6CF1</div><div class='add'>+0x5D77 = 0x6CD3</div><div class='add'>+0x5D78 = 0x6CBD</div><div class='add'>+0x5D79 = 0x6CD7</div><div class='add'>+0x5D7A = 0x6CC5</div><div class='add'>+0x5D7B = 0x6CDD</div><div class='add'>+0x5D7C = 0x6CAE</div><div class='add'>+0x5D7D = 0x6CB1</div><div class='add'>+0x5D7E = 0x6CBE</div><div class='add'>+0x5E21 = 0x6CBA</div><div class='add'>+0x5E22 = 0x6CDB</div><div class='add'>+0x5E23 = 0x6CEF</div><div class='add'>+0x5E24 = 0x6CD9</div><div class='add'>+0x5E25 = 0x6CEA</div><div class='add'>+0x5E26 = 0x6D1F</div><div class='add'>+0x5E27 = 0x884D</div><div class='add'>+0x5E28 = 0x6D36</div><div class='add'>+0x5E29 = 0x6D2B</div><div class='add'>+0x5E2A = 0x6D3D</div><div class='add'>+0x5E2B = 0x6D38</div><div class='add'>+0x5E2C = 0x6D19</div><div class='add'>+0x5E2D = 0x6D35</div><div class='add'>+0x5E2E = 0x6D33</div><div class='add'>+0x5E2F = 0x6D12</div><div class='add'>+0x5E30 = 0x6D0C</div><div class='add'>+0x5E31 = 0x6D63</div><div class='add'>+0x5E32 = 0x6D93</div><div class='add'>+0x5E33 = 0x6D64</div><div class='add'>+0x5E34 = 0x6D5A</div><div class='add'>+0x5E35 = 0x6D79</div><div class='add'>+0x5E36 = 0x6D59</div><div class='add'>+0x5E37 = 0x6D8E</div><div class='add'>+0x5E38 = 0x6D95</div><div class='add'>+0x5E39 = 0x6FE4</div><div class='add'>+0x5E3A = 0x6D85</div><div class='add'>+0x5E3B = 0x6DF9</div><div class='add'>+0x5E3C = 0x6E15</div><div class='add'>+0x5E3D = 0x6E0A</div><div class='add'>+0x5E3E = 0x6DB5</div><div class='add'>+0x5E3F = 0x6DC7</div><div class='add'>+0x5E40 = 0x6DE6</div><div class='add'>+0x5E41 = 0x6DB8</div><div class='add'>+0x5E42 = 0x6DC6</div><div class='add'>+0x5E43 = 0x6DEC</div><div class='add'>+0x5E44 = 0x6DDE</div><div class='add'>+0x5E45 = 0x6DCC</div><div class='add'>+0x5E46 = 0x6DE8</div><div class='add'>+0x5E47 = 0x6DD2</div><div class='add'>+0x5E48 = 0x6DC5</div><div class='add'>+0x5E49 = 0x6DFA</div><div class='add'>+0x5E4A = 0x6DD9</div><div class='add'>+0x5E4B = 0x6DE4</div><div class='add'>+0x5E4C = 0x6DD5</div><div class='add'>+0x5E4D = 0x6DEA</div><div class='add'>+0x5E4E = 0x6DEE</div><div class='add'>+0x5E4F = 0x6E2D</div><div class='add'>+0x5E50 = 0x6E6E</div><div class='add'>+0x5E51 = 0x6E2E</div><div class='add'>+0x5E52 = 0x6E19</div><div class='add'>+0x5E53 = 0x6E72</div><div class='add'>+0x5E54 = 0x6E5F</div><div class='add'>+0x5E55 = 0x6E3E</div><div class='add'>+0x5E56 = 0x6E23</div><div class='add'>+0x5E57 = 0x6E6B</div><div class='add'>+0x5E58 = 0x6E2B</div><div class='add'>+0x5E59 = 0x6E76</div><div class='add'>+0x5E5A = 0x6E4D</div><div class='add'>+0x5E5B = 0x6E1F</div><div class='add'>+0x5E5C = 0x6E43</div><div class='add'>+0x5E5D = 0x6E3A</div><div class='add'>+0x5E5E = 0x6E4E</div><div class='add'>+0x5E5F = 0x6E24</div><div class='add'>+0x5E60 = 0x6EFF</div><div class='add'>+0x5E61 = 0x6E1D</div><div class='add'>+0x5E62 = 0x6E38</div><div class='add'>+0x5E63 = 0x6E82</div><div class='add'>+0x5E64 = 0x6EAA</div><div class='add'>+0x5E65 = 0x6E98</div><div class='add'>+0x5E66 = 0x6EC9</div><div class='add'>+0x5E67 = 0x6EB7</div><div class='add'>+0x5E68 = 0x6ED3</div><div class='add'>+0x5E69 = 0x6EBD</div><div class='add'>+0x5E6A = 0x6EAF</div><div class='add'>+0x5E6B = 0x6EC4</div><div class='add'>+0x5E6C = 0x6EB2</div><div class='add'>+0x5E6D = 0x6ED4</div><div class='add'>+0x5E6E = 0x6ED5</div><div class='add'>+0x5E6F = 0x6E8F</div><div class='add'>+0x5E70 = 0x6EA5</div><div class='add'>+0x5E71 = 0x6EC2</div><div class='add'>+0x5E72 = 0x6E9F</div><div class='add'>+0x5E73 = 0x6F41</div><div class='add'>+0x5E74 = 0x6F11</div><div class='add'>+0x5E75 = 0x704C</div><div class='add'>+0x5E76 = 0x6EEC</div><div class='add'>+0x5E77 = 0x6EF8</div><div class='add'>+0x5E78 = 0x6EFE</div><div class='add'>+0x5E79 = 0x6F3F</div><div class='add'>+0x5E7A = 0x6EF2</div><div class='add'>+0x5E7B = 0x6F31</div><div class='add'>+0x5E7C = 0x6EEF</div><div class='add'>+0x5E7D = 0x6F32</div><div class='add'>+0x5E7E = 0x6ECC</div><div class='add'>+0x5F21 = 0x6F3E</div><div class='add'>+0x5F22 = 0x6F13</div><div class='add'>+0x5F23 = 0x6EF7</div><div class='add'>+0x5F24 = 0x6F86</div><div class='add'>+0x5F25 = 0x6F7A</div><div class='add'>+0x5F26 = 0x6F78</div><div class='add'>+0x5F27 = 0x6F81</div><div class='add'>+0x5F28 = 0x6F80</div><div class='add'>+0x5F29 = 0x6F6F</div><div class='add'>+0x5F2A = 0x6F5B</div><div class='add'>+0x5F2B = 0x6FF3</div><div class='add'>+0x5F2C = 0x6F6D</div><div class='add'>+0x5F2D = 0x6F82</div><div class='add'>+0x5F2E = 0x6F7C</div><div class='add'>+0x5F2F = 0x6F58</div><div class='add'>+0x5F30 = 0x6F8E</div><div class='add'>+0x5F31 = 0x6F91</div><div class='add'>+0x5F32 = 0x6FC2</div><div class='add'>+0x5F33 = 0x6F66</div><div class='add'>+0x5F34 = 0x6FB3</div><div class='add'>+0x5F35 = 0x6FA3</div><div class='add'>+0x5F36 = 0x6FA1</div><div class='add'>+0x5F37 = 0x6FA4</div><div class='add'>+0x5F38 = 0x6FB9</div><div class='add'>+0x5F39 = 0x6FC6</div><div class='add'>+0x5F3A = 0x6FAA</div><div class='add'>+0x5F3B = 0x6FDF</div><div class='add'>+0x5F3C = 0x6FD5</div><div class='add'>+0x5F3D = 0x6FEC</div><div class='add'>+0x5F3E = 0x6FD4</div><div class='add'>+0x5F3F = 0x6FD8</div><div class='add'>+0x5F40 = 0x6FF1</div><div class='add'>+0x5F41 = 0x6FEE</div><div class='add'>+0x5F42 = 0x6FDB</div><div class='add'>+0x5F43 = 0x7009</div><div class='add'>+0x5F44 = 0x700B</div><div class='add'>+0x5F45 = 0x6FFA</div><div class='add'>+0x5F46 = 0x7011</div><div class='add'>+0x5F47 = 0x7001</div><div class='add'>+0x5F48 = 0x700F</div><div class='add'>+0x5F49 = 0x6FFE</div><div class='add'>+0x5F4A = 0x701B</div><div class='add'>+0x5F4B = 0x701A</div><div class='add'>+0x5F4C = 0x6F74</div><div class='add'>+0x5F4D = 0x701D</div><div class='add'>+0x5F4E = 0x7018</div><div class='add'>+0x5F4F = 0x701F</div><div class='add'>+0x5F50 = 0x7030</div><div class='add'>+0x5F51 = 0x703E</div><div class='add'>+0x5F52 = 0x7032</div><div class='add'>+0x5F53 = 0x7051</div><div class='add'>+0x5F54 = 0x7063</div><div class='add'>+0x5F55 = 0x7099</div><div class='add'>+0x5F56 = 0x7092</div><div class='add'>+0x5F57 = 0x70AF</div><div class='add'>+0x5F58 = 0x70F1</div><div class='add'>+0x5F59 = 0x70AC</div><div class='add'>+0x5F5A = 0x70B8</div><div class='add'>+0x5F5B = 0x70B3</div><div class='add'>+0x5F5C = 0x70AE</div><div class='add'>+0x5F5D = 0x70DF</div><div class='add'>+0x5F5E = 0x70CB</div><div class='add'>+0x5F5F = 0x70DD</div><div class='add'>+0x5F60 = 0x70D9</div><div class='add'>+0x5F61 = 0x7109</div><div class='add'>+0x5F62 = 0x70FD</div><div class='add'>+0x5F63 = 0x711C</div><div class='add'>+0x5F64 = 0x7119</div><div class='add'>+0x5F65 = 0x7165</div><div class='add'>+0x5F66 = 0x7155</div><div class='add'>+0x5F67 = 0x7188</div><div class='add'>+0x5F68 = 0x7166</div><div class='add'>+0x5F69 = 0x7162</div><div class='add'>+0x5F6A = 0x714C</div><div class='add'>+0x5F6B = 0x7156</div><div class='add'>+0x5F6C = 0x716C</div><div class='add'>+0x5F6D = 0x718F</div><div class='add'>+0x5F6E = 0x71FB</div><div class='add'>+0x5F6F = 0x7184</div><div class='add'>+0x5F70 = 0x7195</div><div class='add'>+0x5F71 = 0x71A8</div><div class='add'>+0x5F72 = 0x71AC</div><div class='add'>+0x5F73 = 0x71D7</div><div class='add'>+0x5F74 = 0x71B9</div><div class='add'>+0x5F75 = 0x71BE</div><div class='add'>+0x5F76 = 0x71D2</div><div class='add'>+0x5F77 = 0x71C9</div><div class='add'>+0x5F78 = 0x71D4</div><div class='add'>+0x5F79 = 0x71CE</div><div class='add'>+0x5F7A = 0x71E0</div><div class='add'>+0x5F7B = 0x71EC</div><div class='add'>+0x5F7C = 0x71E7</div><div class='add'>+0x5F7D = 0x71F5</div><div class='add'>+0x5F7E = 0x71FC</div><div class='add'>+0x6021 = 0x71F9</div><div class='add'>+0x6022 = 0x71FF</div><div class='add'>+0x6023 = 0x720D</div><div class='add'>+0x6024 = 0x7210</div><div class='add'>+0x6025 = 0x721B</div><div class='add'>+0x6026 = 0x7228</div><div class='add'>+0x6027 = 0x722D</div><div class='add'>+0x6028 = 0x722C</div><div class='add'>+0x6029 = 0x7230</div><div class='add'>+0x602A = 0x7232</div><div class='add'>+0x602B = 0x723B</div><div class='add'>+0x602C = 0x723C</div><div class='add'>+0x602D = 0x723F</div><div class='add'>+0x602E = 0x7240</div><div class='add'>+0x602F = 0x7246</div><div class='add'>+0x6030 = 0x724B</div><div class='add'>+0x6031 = 0x7258</div><div class='add'>+0x6032 = 0x7274</div><div class='add'>+0x6033 = 0x727E</div><div class='add'>+0x6034 = 0x7282</div><div class='add'>+0x6035 = 0x7281</div><div class='add'>+0x6036 = 0x7287</div><div class='add'>+0x6037 = 0x7292</div><div class='add'>+0x6038 = 0x7296</div><div class='add'>+0x6039 = 0x72A2</div><div class='add'>+0x603A = 0x72A7</div><div class='add'>+0x603B = 0x72B9</div><div class='add'>+0x603C = 0x72B2</div><div class='add'>+0x603D = 0x72C3</div><div class='add'>+0x603E = 0x72C6</div><div class='add'>+0x603F = 0x72C4</div><div class='add'>+0x6040 = 0x72CE</div><div class='add'>+0x6041 = 0x72D2</div><div class='add'>+0x6042 = 0x72E2</div><div class='add'>+0x6043 = 0x72E0</div><div class='add'>+0x6044 = 0x72E1</div><div class='add'>+0x6045 = 0x72F9</div><div class='add'>+0x6046 = 0x72F7</div><div class='add'>+0x6047 = 0x500F</div><div class='add'>+0x6048 = 0x7317</div><div class='add'>+0x6049 = 0x730A</div><div class='add'>+0x604A = 0x731C</div><div class='add'>+0x604B = 0x7316</div><div class='add'>+0x604C = 0x731D</div><div class='add'>+0x604D = 0x7334</div><div class='add'>+0x604E = 0x732F</div><div class='add'>+0x604F = 0x7329</div><div class='add'>+0x6050 = 0x7325</div><div class='add'>+0x6051 = 0x733E</div><div class='add'>+0x6052 = 0x734E</div><div class='add'>+0x6053 = 0x734F</div><div class='add'>+0x6054 = 0x9ED8</div><div class='add'>+0x6055 = 0x7357</div><div class='add'>+0x6056 = 0x736A</div><div class='add'>+0x6057 = 0x7368</div><div class='add'>+0x6058 = 0x7370</div><div class='add'>+0x6059 = 0x7378</div><div class='add'>+0x605A = 0x7375</div><div class='add'>+0x605B = 0x737B</div><div class='add'>+0x605C = 0x737A</div><div class='add'>+0x605D = 0x73C8</div><div class='add'>+0x605E = 0x73B3</div><div class='add'>+0x605F = 0x73CE</div><div class='add'>+0x6060 = 0x73BB</div><div class='add'>+0x6061 = 0x73C0</div><div class='add'>+0x6062 = 0x73E5</div><div class='add'>+0x6063 = 0x73EE</div><div class='add'>+0x6064 = 0x73DE</div><div class='add'>+0x6065 = 0x74A2</div><div class='add'>+0x6066 = 0x7405</div><div class='add'>+0x6067 = 0x746F</div><div class='add'>+0x6068 = 0x7425</div><div class='add'>+0x6069 = 0x73F8</div><div class='add'>+0x606A = 0x7432</div><div class='add'>+0x606B = 0x743A</div><div class='add'>+0x606C = 0x7455</div><div class='add'>+0x606D = 0x743F</div><div class='add'>+0x606E = 0x745F</div><div class='add'>+0x606F = 0x7459</div><div class='add'>+0x6070 = 0x7441</div><div class='add'>+0x6071 = 0x745C</div><div class='add'>+0x6072 = 0x7469</div><div class='add'>+0x6073 = 0x7470</div><div class='add'>+0x6074 = 0x7463</div><div class='add'>+0x6075 = 0x746A</div><div class='add'>+0x6076 = 0x7476</div><div class='add'>+0x6077 = 0x747E</div><div class='add'>+0x6078 = 0x748B</div><div class='add'>+0x6079 = 0x749E</div><div class='add'>+0x607A = 0x74A7</div><div class='add'>+0x607B = 0x74CA</div><div class='add'>+0x607C = 0x74CF</div><div class='add'>+0x607D = 0x74D4</div><div class='add'>+0x607E = 0x73F1</div><div class='add'>+0x6121 = 0x74E0</div><div class='add'>+0x6122 = 0x74E3</div><div class='add'>+0x6123 = 0x74E7</div><div class='add'>+0x6124 = 0x74E9</div><div class='add'>+0x6125 = 0x74EE</div><div class='add'>+0x6126 = 0x74F2</div><div class='add'>+0x6127 = 0x74F0</div><div class='add'>+0x6128 = 0x74F1</div><div class='add'>+0x6129 = 0x74F8</div><div class='add'>+0x612A = 0x74F7</div><div class='add'>+0x612B = 0x7504</div><div class='add'>+0x612C = 0x7503</div><div class='add'>+0x612D = 0x7505</div><div class='add'>+0x612E = 0x750C</div><div class='add'>+0x612F = 0x750E</div><div class='add'>+0x6130 = 0x750D</div><div class='add'>+0x6131 = 0x7515</div><div class='add'>+0x6132 = 0x7513</div><div class='add'>+0x6133 = 0x751E</div><div class='add'>+0x6134 = 0x7526</div><div class='add'>+0x6135 = 0x752C</div><div class='add'>+0x6136 = 0x753C</div><div class='add'>+0x6137 = 0x7544</div><div class='add'>+0x6138 = 0x754D</div><div class='add'>+0x6139 = 0x754A</div><div class='add'>+0x613A = 0x7549</div><div class='add'>+0x613B = 0x755B</div><div class='add'>+0x613C = 0x7546</div><div class='add'>+0x613D = 0x755A</div><div class='add'>+0x613E = 0x7569</div><div class='add'>+0x613F = 0x7564</div><div class='add'>+0x6140 = 0x7567</div><div class='add'>+0x6141 = 0x756B</div><div class='add'>+0x6142 = 0x756D</div><div class='add'>+0x6143 = 0x7578</div><div class='add'>+0x6144 = 0x7576</div><div class='add'>+0x6145 = 0x7586</div><div class='add'>+0x6146 = 0x7587</div><div class='add'>+0x6147 = 0x7574</div><div class='add'>+0x6148 = 0x758A</div><div class='add'>+0x6149 = 0x7589</div><div class='add'>+0x614A = 0x7582</div><div class='add'>+0x614B = 0x7594</div><div class='add'>+0x614C = 0x759A</div><div class='add'>+0x614D = 0x759D</div><div class='add'>+0x614E = 0x75A5</div><div class='add'>+0x614F = 0x75A3</div><div class='add'>+0x6150 = 0x75C2</div><div class='add'>+0x6151 = 0x75B3</div><div class='add'>+0x6152 = 0x75C3</div><div class='add'>+0x6153 = 0x75B5</div><div class='add'>+0x6154 = 0x75BD</div><div class='add'>+0x6155 = 0x75B8</div><div class='add'>+0x6156 = 0x75BC</div><div class='add'>+0x6157 = 0x75B1</div><div class='add'>+0x6158 = 0x75CD</div><div class='add'>+0x6159 = 0x75CA</div><div class='add'>+0x615A = 0x75D2</div><div class='add'>+0x615B = 0x75D9</div><div class='add'>+0x615C = 0x75E3</div><div class='add'>+0x615D = 0x75DE</div><div class='add'>+0x615E = 0x75FE</div><div class='add'>+0x615F = 0x75FF</div><div class='add'>+0x6160 = 0x75FC</div><div class='add'>+0x6161 = 0x7601</div><div class='add'>+0x6162 = 0x75F0</div><div class='add'>+0x6163 = 0x75FA</div><div class='add'>+0x6164 = 0x75F2</div><div class='add'>+0x6165 = 0x75F3</div><div class='add'>+0x6166 = 0x760B</div><div class='add'>+0x6167 = 0x760D</div><div class='add'>+0x6168 = 0x7609</div><div class='add'>+0x6169 = 0x761F</div><div class='add'>+0x616A = 0x7627</div><div class='add'>+0x616B = 0x7620</div><div class='add'>+0x616C = 0x7621</div><div class='add'>+0x616D = 0x7622</div><div class='add'>+0x616E = 0x7624</div><div class='add'>+0x616F = 0x7634</div><div class='add'>+0x6170 = 0x7630</div><div class='add'>+0x6171 = 0x763B</div><div class='add'>+0x6172 = 0x7647</div><div class='add'>+0x6173 = 0x7648</div><div class='add'>+0x6174 = 0x7646</div><div class='add'>+0x6175 = 0x765C</div><div class='add'>+0x6176 = 0x7658</div><div class='add'>+0x6177 = 0x7661</div><div class='add'>+0x6178 = 0x7662</div><div class='add'>+0x6179 = 0x7668</div><div class='add'>+0x617A = 0x7669</div><div class='add'>+0x617B = 0x766A</div><div class='add'>+0x617C = 0x7667</div><div class='add'>+0x617D = 0x766C</div><div class='add'>+0x617E = 0x7670</div><div class='add'>+0x6221 = 0x7672</div><div class='add'>+0x6222 = 0x7676</div><div class='add'>+0x6223 = 0x7678</div><div class='add'>+0x6224 = 0x767C</div><div class='add'>+0x6225 = 0x7680</div><div class='add'>+0x6226 = 0x7683</div><div class='add'>+0x6227 = 0x7688</div><div class='add'>+0x6228 = 0x768B</div><div class='add'>+0x6229 = 0x768E</div><div class='add'>+0x622A = 0x7696</div><div class='add'>+0x622B = 0x7693</div><div class='add'>+0x622C = 0x7699</div><div class='add'>+0x622D = 0x769A</div><div class='add'>+0x622E = 0x76B0</div><div class='add'>+0x622F = 0x76B4</div><div class='add'>+0x6230 = 0x76B8</div><div class='add'>+0x6231 = 0x76B9</div><div class='add'>+0x6232 = 0x76BA</div><div class='add'>+0x6233 = 0x76C2</div><div class='add'>+0x6234 = 0x76CD</div><div class='add'>+0x6235 = 0x76D6</div><div class='add'>+0x6236 = 0x76D2</div><div class='add'>+0x6237 = 0x76DE</div><div class='add'>+0x6238 = 0x76E1</div><div class='add'>+0x6239 = 0x76E5</div><div class='add'>+0x623A = 0x76E7</div><div class='add'>+0x623B = 0x76EA</div><div class='add'>+0x623C = 0x862F</div><div class='add'>+0x623D = 0x76FB</div><div class='add'>+0x623E = 0x7708</div><div class='add'>+0x623F = 0x7707</div><div class='add'>+0x6240 = 0x7704</div><div class='add'>+0x6241 = 0x7729</div><div class='add'>+0x6242 = 0x7724</div><div class='add'>+0x6243 = 0x771E</div><div class='add'>+0x6244 = 0x7725</div><div class='add'>+0x6245 = 0x7726</div><div class='add'>+0x6246 = 0x771B</div><div class='add'>+0x6247 = 0x7737</div><div class='add'>+0x6248 = 0x7738</div><div class='add'>+0x6249 = 0x7747</div><div class='add'>+0x624A = 0x775A</div><div class='add'>+0x624B = 0x7768</div><div class='add'>+0x624C = 0x776B</div><div class='add'>+0x624D = 0x775B</div><div class='add'>+0x624E = 0x7765</div><div class='add'>+0x624F = 0x777F</div><div class='add'>+0x6250 = 0x777E</div><div class='add'>+0x6251 = 0x7779</div><div class='add'>+0x6252 = 0x778E</div><div class='add'>+0x6253 = 0x778B</div><div class='add'>+0x6254 = 0x7791</div><div class='add'>+0x6255 = 0x77A0</div><div class='add'>+0x6256 = 0x779E</div><div class='add'>+0x6257 = 0x77B0</div><div class='add'>+0x6258 = 0x77B6</div><div class='add'>+0x6259 = 0x77B9</div><div class='add'>+0x625A = 0x77BF</div><div class='add'>+0x625B = 0x77BC</div><div class='add'>+0x625C = 0x77BD</div><div class='add'>+0x625D = 0x77BB</div><div class='add'>+0x625E = 0x77C7</div><div class='add'>+0x625F = 0x77CD</div><div class='add'>+0x6260 = 0x77D7</div><div class='add'>+0x6261 = 0x77DA</div><div class='add'>+0x6262 = 0x77DC</div><div class='add'>+0x6263 = 0x77E3</div><div class='add'>+0x6264 = 0x77EE</div><div class='add'>+0x6265 = 0x77FC</div><div class='add'>+0x6266 = 0x780C</div><div class='add'>+0x6267 = 0x7812</div><div class='add'>+0x6268 = 0x7926</div><div class='add'>+0x6269 = 0x7820</div><div class='add'>+0x626A = 0x792A</div><div class='add'>+0x626B = 0x7845</div><div class='add'>+0x626C = 0x788E</div><div class='add'>+0x626D = 0x7874</div><div class='add'>+0x626E = 0x7886</div><div class='add'>+0x626F = 0x787C</div><div class='add'>+0x6270 = 0x789A</div><div class='add'>+0x6271 = 0x788C</div><div class='add'>+0x6272 = 0x78A3</div><div class='add'>+0x6273 = 0x78B5</div><div class='add'>+0x6274 = 0x78AA</div><div class='add'>+0x6275 = 0x78AF</div><div class='add'>+0x6276 = 0x78D1</div><div class='add'>+0x6277 = 0x78C6</div><div class='add'>+0x6278 = 0x78CB</div><div class='add'>+0x6279 = 0x78D4</div><div class='add'>+0x627A = 0x78BE</div><div class='add'>+0x627B = 0x78BC</div><div class='add'>+0x627C = 0x78C5</div><div class='add'>+0x627D = 0x78CA</div><div class='add'>+0x627E = 0x78EC</div><div class='add'>+0x6321 = 0x78E7</div><div class='add'>+0x6322 = 0x78DA</div><div class='add'>+0x6323 = 0x78FD</div><div class='add'>+0x6324 = 0x78F4</div><div class='add'>+0x6325 = 0x7907</div><div class='add'>+0x6326 = 0x7912</div><div class='add'>+0x6327 = 0x7911</div><div class='add'>+0x6328 = 0x7919</div><div class='add'>+0x6329 = 0x792C</div><div class='add'>+0x632A = 0x792B</div><div class='add'>+0x632B = 0x7940</div><div class='add'>+0x632C = 0x7960</div><div class='add'>+0x632D = 0x7957</div><div class='add'>+0x632E = 0x795F</div><div class='add'>+0x632F = 0x795A</div><div class='add'>+0x6330 = 0x7955</div><div class='add'>+0x6331 = 0x7953</div><div class='add'>+0x6332 = 0x797A</div><div class='add'>+0x6333 = 0x797F</div><div class='add'>+0x6334 = 0x798A</div><div class='add'>+0x6335 = 0x799D</div><div class='add'>+0x6336 = 0x79A7</div><div class='add'>+0x6337 = 0x9F4B</div><div class='add'>+0x6338 = 0x79AA</div><div class='add'>+0x6339 = 0x79AE</div><div class='add'>+0x633A = 0x79B3</div><div class='add'>+0x633B = 0x79B9</div><div class='add'>+0x633C = 0x79BA</div><div class='add'>+0x633D = 0x79C9</div><div class='add'>+0x633E = 0x79D5</div><div class='add'>+0x633F = 0x79E7</div><div class='add'>+0x6340 = 0x79EC</div><div class='add'>+0x6341 = 0x79E1</div><div class='add'>+0x6342 = 0x79E3</div><div class='add'>+0x6343 = 0x7A08</div><div class='add'>+0x6344 = 0x7A0D</div><div class='add'>+0x6345 = 0x7A18</div><div class='add'>+0x6346 = 0x7A19</div><div class='add'>+0x6347 = 0x7A20</div><div class='add'>+0x6348 = 0x7A1F</div><div class='add'>+0x6349 = 0x7980</div><div class='add'>+0x634A = 0x7A31</div><div class='add'>+0x634B = 0x7A3B</div><div class='add'>+0x634C = 0x7A3E</div><div class='add'>+0x634D = 0x7A37</div><div class='add'>+0x634E = 0x7A43</div><div class='add'>+0x634F = 0x7A57</div><div class='add'>+0x6350 = 0x7A49</div><div class='add'>+0x6351 = 0x7A61</div><div class='add'>+0x6352 = 0x7A62</div><div class='add'>+0x6353 = 0x7A69</div><div class='add'>+0x6354 = 0x9F9D</div><div class='add'>+0x6355 = 0x7A70</div><div class='add'>+0x6356 = 0x7A79</div><div class='add'>+0x6357 = 0x7A7D</div><div class='add'>+0x6358 = 0x7A88</div><div class='add'>+0x6359 = 0x7A97</div><div class='add'>+0x635A = 0x7A95</div><div class='add'>+0x635B = 0x7A98</div><div class='add'>+0x635C = 0x7A96</div><div class='add'>+0x635D = 0x7AA9</div><div class='add'>+0x635E = 0x7AC8</div><div class='add'>+0x635F = 0x7AB0</div><div class='add'>+0x6360 = 0x7AB6</div><div class='add'>+0x6361 = 0x7AC5</div><div class='add'>+0x6362 = 0x7AC4</div><div class='add'>+0x6363 = 0x7ABF</div><div class='add'>+0x6364 = 0x9083</div><div class='add'>+0x6365 = 0x7AC7</div><div class='add'>+0x6366 = 0x7ACA</div><div class='add'>+0x6367 = 0x7ACD</div><div class='add'>+0x6368 = 0x7ACF</div><div class='add'>+0x6369 = 0x7AD5</div><div class='add'>+0x636A = 0x7AD3</div><div class='add'>+0x636B = 0x7AD9</div><div class='add'>+0x636C = 0x7ADA</div><div class='add'>+0x636D = 0x7ADD</div><div class='add'>+0x636E = 0x7AE1</div><div class='add'>+0x636F = 0x7AE2</div><div class='add'>+0x6370 = 0x7AE6</div><div class='add'>+0x6371 = 0x7AED</div><div class='add'>+0x6372 = 0x7AF0</div><div class='add'>+0x6373 = 0x7B02</div><div class='add'>+0x6374 = 0x7B0F</div><div class='add'>+0x6375 = 0x7B0A</div><div class='add'>+0x6376 = 0x7B06</div><div class='add'>+0x6377 = 0x7B33</div><div class='add'>+0x6378 = 0x7B18</div><div class='add'>+0x6379 = 0x7B19</div><div class='add'>+0x637A = 0x7B1E</div><div class='add'>+0x637B = 0x7B35</div><div class='add'>+0x637C = 0x7B28</div><div class='add'>+0x637D = 0x7B36</div><div class='add'>+0x637E = 0x7B50</div><div class='add'>+0x6421 = 0x7B7A</div><div class='add'>+0x6422 = 0x7B04</div><div class='add'>+0x6423 = 0x7B4D</div><div class='add'>+0x6424 = 0x7B0B</div><div class='add'>+0x6425 = 0x7B4C</div><div class='add'>+0x6426 = 0x7B45</div><div class='add'>+0x6427 = 0x7B75</div><div class='add'>+0x6428 = 0x7B65</div><div class='add'>+0x6429 = 0x7B74</div><div class='add'>+0x642A = 0x7B67</div><div class='add'>+0x642B = 0x7B70</div><div class='add'>+0x642C = 0x7B71</div><div class='add'>+0x642D = 0x7B6C</div><div class='add'>+0x642E = 0x7B6E</div><div class='add'>+0x642F = 0x7B9D</div><div class='add'>+0x6430 = 0x7B98</div><div class='add'>+0x6431 = 0x7B9F</div><div class='add'>+0x6432 = 0x7B8D</div><div class='add'>+0x6433 = 0x7B9C</div><div class='add'>+0x6434 = 0x7B9A</div><div class='add'>+0x6435 = 0x7B8B</div><div class='add'>+0x6436 = 0x7B92</div><div class='add'>+0x6437 = 0x7B8F</div><div class='add'>+0x6438 = 0x7B5D</div><div class='add'>+0x6439 = 0x7B99</div><div class='add'>+0x643A = 0x7BCB</div><div class='add'>+0x643B = 0x7BC1</div><div class='add'>+0x643C = 0x7BCC</div><div class='add'>+0x643D = 0x7BCF</div><div class='add'>+0x643E = 0x7BB4</div><div class='add'>+0x643F = 0x7BC6</div><div class='add'>+0x6440 = 0x7BDD</div><div class='add'>+0x6441 = 0x7BE9</div><div class='add'>+0x6442 = 0x7C11</div><div class='add'>+0x6443 = 0x7C14</div><div class='add'>+0x6444 = 0x7BE6</div><div class='add'>+0x6445 = 0x7BE5</div><div class='add'>+0x6446 = 0x7C60</div><div class='add'>+0x6447 = 0x7C00</div><div class='add'>+0x6448 = 0x7C07</div><div class='add'>+0x6449 = 0x7C13</div><div class='add'>+0x644A = 0x7BF3</div><div class='add'>+0x644B = 0x7BF7</div><div class='add'>+0x644C = 0x7C17</div><div class='add'>+0x644D = 0x7C0D</div><div class='add'>+0x644E = 0x7BF6</div><div class='add'>+0x644F = 0x7C23</div><div class='add'>+0x6450 = 0x7C27</div><div class='add'>+0x6451 = 0x7C2A</div><div class='add'>+0x6452 = 0x7C1F</div><div class='add'>+0x6453 = 0x7C37</div><div class='add'>+0x6454 = 0x7C2B</div><div class='add'>+0x6455 = 0x7C3D</div><div class='add'>+0x6456 = 0x7C4C</div><div class='add'>+0x6457 = 0x7C43</div><div class='add'>+0x6458 = 0x7C54</div><div class='add'>+0x6459 = 0x7C4F</div><div class='add'>+0x645A = 0x7C40</div><div class='add'>+0x645B = 0x7C50</div><div class='add'>+0x645C = 0x7C58</div><div class='add'>+0x645D = 0x7C5F</div><div class='add'>+0x645E = 0x7C64</div><div class='add'>+0x645F = 0x7C56</div><div class='add'>+0x6460 = 0x7C65</div><div class='add'>+0x6461 = 0x7C6C</div><div class='add'>+0x6462 = 0x7C75</div><div class='add'>+0x6463 = 0x7C83</div><div class='add'>+0x6464 = 0x7C90</div><div class='add'>+0x6465 = 0x7CA4</div><div class='add'>+0x6466 = 0x7CAD</div><div class='add'>+0x6467 = 0x7CA2</div><div class='add'>+0x6468 = 0x7CAB</div><div class='add'>+0x6469 = 0x7CA1</div><div class='add'>+0x646A = 0x7CA8</div><div class='add'>+0x646B = 0x7CB3</div><div class='add'>+0x646C = 0x7CB2</div><div class='add'>+0x646D = 0x7CB1</div><div class='add'>+0x646E = 0x7CAE</div><div class='add'>+0x646F = 0x7CB9</div><div class='add'>+0x6470 = 0x7CBD</div><div class='add'>+0x6471 = 0x7CC0</div><div class='add'>+0x6472 = 0x7CC5</div><div class='add'>+0x6473 = 0x7CC2</div><div class='add'>+0x6474 = 0x7CD8</div><div class='add'>+0x6475 = 0x7CD2</div><div class='add'>+0x6476 = 0x7CDC</div><div class='add'>+0x6477 = 0x7CE2</div><div class='add'>+0x6478 = 0x9B3B</div><div class='add'>+0x6479 = 0x7CEF</div><div class='add'>+0x647A = 0x7CF2</div><div class='add'>+0x647B = 0x7CF4</div><div class='add'>+0x647C = 0x7CF6</div><div class='add'>+0x647D = 0x7CFA</div><div class='add'>+0x647E = 0x7D06</div><div class='add'>+0x6521 = 0x7D02</div><div class='add'>+0x6522 = 0x7D1C</div><div class='add'>+0x6523 = 0x7D15</div><div class='add'>+0x6524 = 0x7D0A</div><div class='add'>+0x6525 = 0x7D45</div><div class='add'>+0x6526 = 0x7D4B</div><div class='add'>+0x6527 = 0x7D2E</div><div class='add'>+0x6528 = 0x7D32</div><div class='add'>+0x6529 = 0x7D3F</div><div class='add'>+0x652A = 0x7D35</div><div class='add'>+0x652B = 0x7D46</div><div class='add'>+0x652C = 0x7D73</div><div class='add'>+0x652D = 0x7D56</div><div class='add'>+0x652E = 0x7D4E</div><div class='add'>+0x652F = 0x7D72</div><div class='add'>+0x6530 = 0x7D68</div><div class='add'>+0x6531 = 0x7D6E</div><div class='add'>+0x6532 = 0x7D4F</div><div class='add'>+0x6533 = 0x7D63</div><div class='add'>+0x6534 = 0x7D93</div><div class='add'>+0x6535 = 0x7D89</div><div class='add'>+0x6536 = 0x7D5B</div><div class='add'>+0x6537 = 0x7D8F</div><div class='add'>+0x6538 = 0x7D7D</div><div class='add'>+0x6539 = 0x7D9B</div><div class='add'>+0x653A = 0x7DBA</div><div class='add'>+0x653B = 0x7DAE</div><div class='add'>+0x653C = 0x7DA3</div><div class='add'>+0x653D = 0x7DB5</div><div class='add'>+0x653E = 0x7DC7</div><div class='add'>+0x653F = 0x7DBD</div><div class='add'>+0x6540 = 0x7DAB</div><div class='add'>+0x6541 = 0x7E3D</div><div class='add'>+0x6542 = 0x7DA2</div><div class='add'>+0x6543 = 0x7DAF</div><div class='add'>+0x6544 = 0x7DDC</div><div class='add'>+0x6545 = 0x7DB8</div><div class='add'>+0x6546 = 0x7D9F</div><div class='add'>+0x6547 = 0x7DB0</div><div class='add'>+0x6548 = 0x7DD8</div><div class='add'>+0x6549 = 0x7DDD</div><div class='add'>+0x654A = 0x7DE4</div><div class='add'>+0x654B = 0x7DDE</div><div class='add'>+0x654C = 0x7DFB</div><div class='add'>+0x654D = 0x7DF2</div><div class='add'>+0x654E = 0x7DE1</div><div class='add'>+0x654F = 0x7E05</div><div class='add'>+0x6550 = 0x7E0A</div><div class='add'>+0x6551 = 0x7E23</div><div class='add'>+0x6552 = 0x7E21</div><div class='add'>+0x6553 = 0x7E12</div><div class='add'>+0x6554 = 0x7E31</div><div class='add'>+0x6555 = 0x7E1F</div><div class='add'>+0x6556 = 0x7E09</div><div class='add'>+0x6557 = 0x7E0B</div><div class='add'>+0x6558 = 0x7E22</div><div class='add'>+0x6559 = 0x7E46</div><div class='add'>+0x655A = 0x7E66</div><div class='add'>+0x655B = 0x7E3B</div><div class='add'>+0x655C = 0x7E35</div><div class='add'>+0x655D = 0x7E39</div><div class='add'>+0x655E = 0x7E43</div><div class='add'>+0x655F = 0x7E37</div><div class='add'>+0x6560 = 0x7E32</div><div class='add'>+0x6561 = 0x7E3A</div><div class='add'>+0x6562 = 0x7E67</div><div class='add'>+0x6563 = 0x7E5D</div><div class='add'>+0x6564 = 0x7E56</div><div class='add'>+0x6565 = 0x7E5E</div><div class='add'>+0x6566 = 0x7E59</div><div class='add'>+0x6567 = 0x7E5A</div><div class='add'>+0x6568 = 0x7E79</div><div class='add'>+0x6569 = 0x7E6A</div><div class='add'>+0x656A = 0x7E69</div><div class='add'>+0x656B = 0x7E7C</div><div class='add'>+0x656C = 0x7E7B</div><div class='add'>+0x656D = 0x7E83</div><div class='add'>+0x656E = 0x7DD5</div><div class='add'>+0x656F = 0x7E7D</div><div class='add'>+0x6570 = 0x8FAE</div><div class='add'>+0x6571 = 0x7E7F</div><div class='add'>+0x6572 = 0x7E88</div><div class='add'>+0x6573 = 0x7E89</div><div class='add'>+0x6574 = 0x7E8C</div><div class='add'>+0x6575 = 0x7E92</div><div class='add'>+0x6576 = 0x7E90</div><div class='add'>+0x6577 = 0x7E93</div><div class='add'>+0x6578 = 0x7E94</div><div class='add'>+0x6579 = 0x7E96</div><div class='add'>+0x657A = 0x7E8E</div><div class='add'>+0x657B = 0x7E9B</div><div class='add'>+0x657C = 0x7E9C</div><div class='add'>+0x657D = 0x7F38</div><div class='add'>+0x657E = 0x7F3A</div><div class='add'>+0x6621 = 0x7F45</div><div class='add'>+0x6622 = 0x7F4C</div><div class='add'>+0x6623 = 0x7F4D</div><div class='add'>+0x6624 = 0x7F4E</div><div class='add'>+0x6625 = 0x7F50</div><div class='add'>+0x6626 = 0x7F51</div><div class='add'>+0x6627 = 0x7F55</div><div class='add'>+0x6628 = 0x7F54</div><div class='add'>+0x6629 = 0x7F58</div><div class='add'>+0x662A = 0x7F5F</div><div class='add'>+0x662B = 0x7F60</div><div class='add'>+0x662C = 0x7F68</div><div class='add'>+0x662D = 0x7F69</div><div class='add'>+0x662E = 0x7F67</div><div class='add'>+0x662F = 0x7F78</div><div class='add'>+0x6630 = 0x7F82</div><div class='add'>+0x6631 = 0x7F86</div><div class='add'>+0x6632 = 0x7F83</div><div class='add'>+0x6633 = 0x7F88</div><div class='add'>+0x6634 = 0x7F87</div><div class='add'>+0x6635 = 0x7F8C</div><div class='add'>+0x6636 = 0x7F94</div><div class='add'>+0x6637 = 0x7F9E</div><div class='add'>+0x6638 = 0x7F9D</div><div class='add'>+0x6639 = 0x7F9A</div><div class='add'>+0x663A = 0x7FA3</div><div class='add'>+0x663B = 0x7FAF</div><div class='add'>+0x663C = 0x7FB2</div><div class='add'>+0x663D = 0x7FB9</div><div class='add'>+0x663E = 0x7FAE</div><div class='add'>+0x663F = 0x7FB6</div><div class='add'>+0x6640 = 0x7FB8</div><div class='add'>+0x6641 = 0x8B71</div><div class='add'>+0x6642 = 0x7FC5</div><div class='add'>+0x6643 = 0x7FC6</div><div class='add'>+0x6644 = 0x7FCA</div><div class='add'>+0x6645 = 0x7FD5</div><div class='add'>+0x6646 = 0x7FD4</div><div class='add'>+0x6647 = 0x7FE1</div><div class='add'>+0x6648 = 0x7FE6</div><div class='add'>+0x6649 = 0x7FE9</div><div class='add'>+0x664A = 0x7FF3</div><div class='add'>+0x664B = 0x7FF9</div><div class='add'>+0x664C = 0x98DC</div><div class='add'>+0x664D = 0x8006</div><div class='add'>+0x664E = 0x8004</div><div class='add'>+0x664F = 0x800B</div><div class='add'>+0x6650 = 0x8012</div><div class='add'>+0x6651 = 0x8018</div><div class='add'>+0x6652 = 0x8019</div><div class='add'>+0x6653 = 0x801C</div><div class='add'>+0x6654 = 0x8021</div><div class='add'>+0x6655 = 0x8028</div><div class='add'>+0x6656 = 0x803F</div><div class='add'>+0x6657 = 0x803B</div><div class='add'>+0x6658 = 0x804A</div><div class='add'>+0x6659 = 0x8046</div><div class='add'>+0x665A = 0x8052</div><div class='add'>+0x665B = 0x8058</div><div class='add'>+0x665C = 0x805A</div><div class='add'>+0x665D = 0x805F</div><div class='add'>+0x665E = 0x8062</div><div class='add'>+0x665F = 0x8068</div><div class='add'>+0x6660 = 0x8073</div><div class='add'>+0x6661 = 0x8072</div><div class='add'>+0x6662 = 0x8070</div><div class='add'>+0x6663 = 0x8076</div><div class='add'>+0x6664 = 0x8079</div><div class='add'>+0x6665 = 0x807D</div><div class='add'>+0x6666 = 0x807F</div><div class='add'>+0x6667 = 0x8084</div><div class='add'>+0x6668 = 0x8086</div><div class='add'>+0x6669 = 0x8085</div><div class='add'>+0x666A = 0x809B</div><div class='add'>+0x666B = 0x8093</div><div class='add'>+0x666C = 0x809A</div><div class='add'>+0x666D = 0x80AD</div><div class='add'>+0x666E = 0x5190</div><div class='add'>+0x666F = 0x80AC</div><div class='add'>+0x6670 = 0x80DB</div><div class='add'>+0x6671 = 0x80E5</div><div class='add'>+0x6672 = 0x80D9</div><div class='add'>+0x6673 = 0x80DD</div><div class='add'>+0x6674 = 0x80C4</div><div class='add'>+0x6675 = 0x80DA</div><div class='add'>+0x6676 = 0x80D6</div><div class='add'>+0x6677 = 0x8109</div><div class='add'>+0x6678 = 0x80EF</div><div class='add'>+0x6679 = 0x80F1</div><div class='add'>+0x667A = 0x811B</div><div class='add'>+0x667B = 0x8129</div><div class='add'>+0x667C = 0x8123</div><div class='add'>+0x667D = 0x812F</div><div class='add'>+0x667E = 0x814B</div><div class='add'>+0x6721 = 0x968B</div><div class='add'>+0x6722 = 0x8146</div><div class='add'>+0x6723 = 0x813E</div><div class='add'>+0x6724 = 0x8153</div><div class='add'>+0x6725 = 0x8151</div><div class='add'>+0x6726 = 0x80FC</div><div class='add'>+0x6727 = 0x8171</div><div class='add'>+0x6728 = 0x816E</div><div class='add'>+0x6729 = 0x8165</div><div class='add'>+0x672A = 0x8166</div><div class='add'>+0x672B = 0x8174</div><div class='add'>+0x672C = 0x8183</div><div class='add'>+0x672D = 0x8188</div><div class='add'>+0x672E = 0x818A</div><div class='add'>+0x672F = 0x8180</div><div class='add'>+0x6730 = 0x8182</div><div class='add'>+0x6731 = 0x81A0</div><div class='add'>+0x6732 = 0x8195</div><div class='add'>+0x6733 = 0x81A4</div><div class='add'>+0x6734 = 0x81A3</div><div class='add'>+0x6735 = 0x815F</div><div class='add'>+0x6736 = 0x8193</div><div class='add'>+0x6737 = 0x81A9</div><div class='add'>+0x6738 = 0x81B0</div><div class='add'>+0x6739 = 0x81B5</div><div class='add'>+0x673A = 0x81BE</div><div class='add'>+0x673B = 0x81B8</div><div class='add'>+0x673C = 0x81BD</div><div class='add'>+0x673D = 0x81C0</div><div class='add'>+0x673E = 0x81C2</div><div class='add'>+0x673F = 0x81BA</div><div class='add'>+0x6740 = 0x81C9</div><div class='add'>+0x6741 = 0x81CD</div><div class='add'>+0x6742 = 0x81D1</div><div class='add'>+0x6743 = 0x81D9</div><div class='add'>+0x6744 = 0x81D8</div><div class='add'>+0x6745 = 0x81C8</div><div class='add'>+0x6746 = 0x81DA</div><div class='add'>+0x6747 = 0x81DF</div><div class='add'>+0x6748 = 0x81E0</div><div class='add'>+0x6749 = 0x81E7</div><div class='add'>+0x674A = 0x81FA</div><div class='add'>+0x674B = 0x81FB</div><div class='add'>+0x674C = 0x81FE</div><div class='add'>+0x674D = 0x8201</div><div class='add'>+0x674E = 0x8202</div><div class='add'>+0x674F = 0x8205</div><div class='add'>+0x6750 = 0x8207</div><div class='add'>+0x6751 = 0x820A</div><div class='add'>+0x6752 = 0x820D</div><div class='add'>+0x6753 = 0x8210</div><div class='add'>+0x6754 = 0x8216</div><div class='add'>+0x6755 = 0x8229</div><div class='add'>+0x6756 = 0x822B</div><div class='add'>+0x6757 = 0x8238</div><div class='add'>+0x6758 = 0x8233</div><div class='add'>+0x6759 = 0x8240</div><div class='add'>+0x675A = 0x8259</div><div class='add'>+0x675B = 0x8258</div><div class='add'>+0x675C = 0x825D</div><div class='add'>+0x675D = 0x825A</div><div class='add'>+0x675E = 0x825F</div><div class='add'>+0x675F = 0x8264</div><div class='add'>+0x6760 = 0x8262</div><div class='add'>+0x6761 = 0x8268</div><div class='add'>+0x6762 = 0x826A</div><div class='add'>+0x6763 = 0x826B</div><div class='add'>+0x6764 = 0x822E</div><div class='add'>+0x6765 = 0x8271</div><div class='add'>+0x6766 = 0x8277</div><div class='add'>+0x6767 = 0x8278</div><div class='add'>+0x6768 = 0x827E</div><div class='add'>+0x6769 = 0x828D</div><div class='add'>+0x676A = 0x8292</div><div class='add'>+0x676B = 0x82AB</div><div class='add'>+0x676C = 0x829F</div><div class='add'>+0x676D = 0x82BB</div><div class='add'>+0x676E = 0x82AC</div><div class='add'>+0x676F = 0x82E1</div><div class='add'>+0x6770 = 0x82E3</div><div class='add'>+0x6771 = 0x82DF</div><div class='add'>+0x6772 = 0x82D2</div><div class='add'>+0x6773 = 0x82F4</div><div class='add'>+0x6774 = 0x82F3</div><div class='add'>+0x6775 = 0x82FA</div><div class='add'>+0x6776 = 0x8393</div><div class='add'>+0x6777 = 0x8303</div><div class='add'>+0x6778 = 0x82FB</div><div class='add'>+0x6779 = 0x82F9</div><div class='add'>+0x677A = 0x82DE</div><div class='add'>+0x677B = 0x8306</div><div class='add'>+0x677C = 0x82DC</div><div class='add'>+0x677D = 0x8309</div><div class='add'>+0x677E = 0x82D9</div><div class='add'>+0x6821 = 0x8335</div><div class='add'>+0x6822 = 0x8334</div><div class='add'>+0x6823 = 0x8316</div><div class='add'>+0x6824 = 0x8332</div><div class='add'>+0x6825 = 0x8331</div><div class='add'>+0x6826 = 0x8340</div><div class='add'>+0x6827 = 0x8339</div><div class='add'>+0x6828 = 0x8350</div><div class='add'>+0x6829 = 0x8345</div><div class='add'>+0x682A = 0x832F</div><div class='add'>+0x682B = 0x832B</div><div class='add'>+0x682C = 0x8317</div><div class='add'>+0x682D = 0x8318</div><div class='add'>+0x682E = 0x8385</div><div class='add'>+0x682F = 0x839A</div><div class='add'>+0x6830 = 0x83AA</div><div class='add'>+0x6831 = 0x839F</div><div class='add'>+0x6832 = 0x83A2</div><div class='add'>+0x6833 = 0x8396</div><div class='add'>+0x6834 = 0x8323</div><div class='add'>+0x6835 = 0x838E</div><div class='add'>+0x6836 = 0x8387</div><div class='add'>+0x6837 = 0x838A</div><div class='add'>+0x6838 = 0x837C</div><div class='add'>+0x6839 = 0x83B5</div><div class='add'>+0x683A = 0x8373</div><div class='add'>+0x683B = 0x8375</div><div class='add'>+0x683C = 0x83A0</div><div class='add'>+0x683D = 0x8389</div><div class='add'>+0x683E = 0x83A8</div><div class='add'>+0x683F = 0x83F4</div><div class='add'>+0x6840 = 0x8413</div><div class='add'>+0x6841 = 0x83EB</div><div class='add'>+0x6842 = 0x83CE</div><div class='add'>+0x6843 = 0x83FD</div><div class='add'>+0x6844 = 0x8403</div><div class='add'>+0x6845 = 0x83D8</div><div class='add'>+0x6846 = 0x840B</div><div class='add'>+0x6847 = 0x83C1</div><div class='add'>+0x6848 = 0x83F7</div><div class='add'>+0x6849 = 0x8407</div><div class='add'>+0x684A = 0x83E0</div><div class='add'>+0x684B = 0x83F2</div><div class='add'>+0x684C = 0x840D</div><div class='add'>+0x684D = 0x8422</div><div class='add'>+0x684E = 0x8420</div><div class='add'>+0x684F = 0x83BD</div><div class='add'>+0x6850 = 0x8438</div><div class='add'>+0x6851 = 0x8506</div><div class='add'>+0x6852 = 0x83FB</div><div class='add'>+0x6853 = 0x846D</div><div class='add'>+0x6854 = 0x842A</div><div class='add'>+0x6855 = 0x843C</div><div class='add'>+0x6856 = 0x855A</div><div class='add'>+0x6857 = 0x8484</div><div class='add'>+0x6858 = 0x8477</div><div class='add'>+0x6859 = 0x846B</div><div class='add'>+0x685A = 0x84AD</div><div class='add'>+0x685B = 0x846E</div><div class='add'>+0x685C = 0x8482</div><div class='add'>+0x685D = 0x8469</div><div class='add'>+0x685E = 0x8446</div><div class='add'>+0x685F = 0x842C</div><div class='add'>+0x6860 = 0x846F</div><div class='add'>+0x6861 = 0x8479</div><div class='add'>+0x6862 = 0x8435</div><div class='add'>+0x6863 = 0x84CA</div><div class='add'>+0x6864 = 0x8462</div><div class='add'>+0x6865 = 0x84B9</div><div class='add'>+0x6866 = 0x84BF</div><div class='add'>+0x6867 = 0x849F</div><div class='add'>+0x6868 = 0x84D9</div><div class='add'>+0x6869 = 0x84CD</div><div class='add'>+0x686A = 0x84BB</div><div class='add'>+0x686B = 0x84DA</div><div class='add'>+0x686C = 0x84D0</div><div class='add'>+0x686D = 0x84C1</div><div class='add'>+0x686E = 0x84C6</div><div class='add'>+0x686F = 0x84D6</div><div class='add'>+0x6870 = 0x84A1</div><div class='add'>+0x6871 = 0x8521</div><div class='add'>+0x6872 = 0x84FF</div><div class='add'>+0x6873 = 0x84F4</div><div class='add'>+0x6874 = 0x8517</div><div class='add'>+0x6875 = 0x8518</div><div class='add'>+0x6876 = 0x852C</div><div class='add'>+0x6877 = 0x851F</div><div class='add'>+0x6878 = 0x8515</div><div class='add'>+0x6879 = 0x8514</div><div class='add'>+0x687A = 0x84FC</div><div class='add'>+0x687B = 0x8540</div><div class='add'>+0x687C = 0x8563</div><div class='add'>+0x687D = 0x8558</div><div class='add'>+0x687E = 0x8548</div><div class='add'>+0x6921 = 0x8541</div><div class='add'>+0x6922 = 0x8602</div><div class='add'>+0x6923 = 0x854B</div><div class='add'>+0x6924 = 0x8555</div><div class='add'>+0x6925 = 0x8580</div><div class='add'>+0x6926 = 0x85A4</div><div class='add'>+0x6927 = 0x8588</div><div class='add'>+0x6928 = 0x8591</div><div class='add'>+0x6929 = 0x858A</div><div class='add'>+0x692A = 0x85A8</div><div class='add'>+0x692B = 0x856D</div><div class='add'>+0x692C = 0x8594</div><div class='add'>+0x692D = 0x859B</div><div class='add'>+0x692E = 0x85EA</div><div class='add'>+0x692F = 0x8587</div><div class='add'>+0x6930 = 0x859C</div><div class='add'>+0x6931 = 0x8577</div><div class='add'>+0x6932 = 0x857E</div><div class='add'>+0x6933 = 0x8590</div><div class='add'>+0x6934 = 0x85C9</div><div class='add'>+0x6935 = 0x85BA</div><div class='add'>+0x6936 = 0x85CF</div><div class='add'>+0x6937 = 0x85B9</div><div class='add'>+0x6938 = 0x85D0</div><div class='add'>+0x6939 = 0x85D5</div><div class='add'>+0x693A = 0x85DD</div><div class='add'>+0x693B = 0x85E5</div><div class='add'>+0x693C = 0x85DC</div><div class='add'>+0x693D = 0x85F9</div><div class='add'>+0x693E = 0x860A</div><div class='add'>+0x693F = 0x8613</div><div class='add'>+0x6940 = 0x860B</div><div class='add'>+0x6941 = 0x85FE</div><div class='add'>+0x6942 = 0x85FA</div><div class='add'>+0x6943 = 0x8606</div><div class='add'>+0x6944 = 0x8622</div><div class='add'>+0x6945 = 0x861A</div><div class='add'>+0x6946 = 0x8630</div><div class='add'>+0x6947 = 0x863F</div><div class='add'>+0x6948 = 0x864D</div><div class='add'>+0x6949 = 0x4E55</div><div class='add'>+0x694A = 0x8654</div><div class='add'>+0x694B = 0x865F</div><div class='add'>+0x694C = 0x8667</div><div class='add'>+0x694D = 0x8671</div><div class='add'>+0x694E = 0x8693</div><div class='add'>+0x694F = 0x86A3</div><div class='add'>+0x6950 = 0x86A9</div><div class='add'>+0x6951 = 0x86AA</div><div class='add'>+0x6952 = 0x868B</div><div class='add'>+0x6953 = 0x868C</div><div class='add'>+0x6954 = 0x86B6</div><div class='add'>+0x6955 = 0x86AF</div><div class='add'>+0x6956 = 0x86C4</div><div class='add'>+0x6957 = 0x86C6</div><div class='add'>+0x6958 = 0x86B0</div><div class='add'>+0x6959 = 0x86C9</div><div class='add'>+0x695A = 0x8823</div><div class='add'>+0x695B = 0x86AB</div><div class='add'>+0x695C = 0x86D4</div><div class='add'>+0x695D = 0x86DE</div><div class='add'>+0x695E = 0x86E9</div><div class='add'>+0x695F = 0x86EC</div><div class='add'>+0x6960 = 0x86DF</div><div class='add'>+0x6961 = 0x86DB</div><div class='add'>+0x6962 = 0x86EF</div><div class='add'>+0x6963 = 0x8712</div><div class='add'>+0x6964 = 0x8706</div><div class='add'>+0x6965 = 0x8708</div><div class='add'>+0x6966 = 0x8700</div><div class='add'>+0x6967 = 0x8703</div><div class='add'>+0x6968 = 0x86FB</div><div class='add'>+0x6969 = 0x8711</div><div class='add'>+0x696A = 0x8709</div><div class='add'>+0x696B = 0x870D</div><div class='add'>+0x696C = 0x86F9</div><div class='add'>+0x696D = 0x870A</div><div class='add'>+0x696E = 0x8734</div><div class='add'>+0x696F = 0x873F</div><div class='add'>+0x6970 = 0x8737</div><div class='add'>+0x6971 = 0x873B</div><div class='add'>+0x6972 = 0x8725</div><div class='add'>+0x6973 = 0x8729</div><div class='add'>+0x6974 = 0x871A</div><div class='add'>+0x6975 = 0x8760</div><div class='add'>+0x6976 = 0x875F</div><div class='add'>+0x6977 = 0x8778</div><div class='add'>+0x6978 = 0x874C</div><div class='add'>+0x6979 = 0x874E</div><div class='add'>+0x697A = 0x8774</div><div class='add'>+0x697B = 0x8757</div><div class='add'>+0x697C = 0x8768</div><div class='add'>+0x697D = 0x876E</div><div class='add'>+0x697E = 0x8759</div><div class='add'>+0x6A21 = 0x8753</div><div class='add'>+0x6A22 = 0x8763</div><div class='add'>+0x6A23 = 0x876A</div><div class='add'>+0x6A24 = 0x8805</div><div class='add'>+0x6A25 = 0x87A2</div><div class='add'>+0x6A26 = 0x879F</div><div class='add'>+0x6A27 = 0x8782</div><div class='add'>+0x6A28 = 0x87AF</div><div class='add'>+0x6A29 = 0x87CB</div><div class='add'>+0x6A2A = 0x87BD</div><div class='add'>+0x6A2B = 0x87C0</div><div class='add'>+0x6A2C = 0x87D0</div><div class='add'>+0x6A2D = 0x96D6</div><div class='add'>+0x6A2E = 0x87AB</div><div class='add'>+0x6A2F = 0x87C4</div><div class='add'>+0x6A30 = 0x87B3</div><div class='add'>+0x6A31 = 0x87C7</div><div class='add'>+0x6A32 = 0x87C6</div><div class='add'>+0x6A33 = 0x87BB</div><div class='add'>+0x6A34 = 0x87EF</div><div class='add'>+0x6A35 = 0x87F2</div><div class='add'>+0x6A36 = 0x87E0</div><div class='add'>+0x6A37 = 0x880F</div><div class='add'>+0x6A38 = 0x880D</div><div class='add'>+0x6A39 = 0x87FE</div><div class='add'>+0x6A3A = 0x87F6</div><div class='add'>+0x6A3B = 0x87F7</div><div class='add'>+0x6A3C = 0x880E</div><div class='add'>+0x6A3D = 0x87D2</div><div class='add'>+0x6A3E = 0x8811</div><div class='add'>+0x6A3F = 0x8816</div><div class='add'>+0x6A40 = 0x8815</div><div class='add'>+0x6A41 = 0x8822</div><div class='add'>+0x6A42 = 0x8821</div><div class='add'>+0x6A43 = 0x8831</div><div class='add'>+0x6A44 = 0x8836</div><div class='add'>+0x6A45 = 0x8839</div><div class='add'>+0x6A46 = 0x8827</div><div class='add'>+0x6A47 = 0x883B</div><div class='add'>+0x6A48 = 0x8844</div><div class='add'>+0x6A49 = 0x8842</div><div class='add'>+0x6A4A = 0x8852</div><div class='add'>+0x6A4B = 0x8859</div><div class='add'>+0x6A4C = 0x885E</div><div class='add'>+0x6A4D = 0x8862</div><div class='add'>+0x6A4E = 0x886B</div><div class='add'>+0x6A4F = 0x8881</div><div class='add'>+0x6A50 = 0x887E</div><div class='add'>+0x6A51 = 0x889E</div><div class='add'>+0x6A52 = 0x8875</div><div class='add'>+0x6A53 = 0x887D</div><div class='add'>+0x6A54 = 0x88B5</div><div class='add'>+0x6A55 = 0x8872</div><div class='add'>+0x6A56 = 0x8882</div><div class='add'>+0x6A57 = 0x8897</div><div class='add'>+0x6A58 = 0x8892</div><div class='add'>+0x6A59 = 0x88AE</div><div class='add'>+0x6A5A = 0x8899</div><div class='add'>+0x6A5B = 0x88A2</div><div class='add'>+0x6A5C = 0x888D</div><div class='add'>+0x6A5D = 0x88A4</div><div class='add'>+0x6A5E = 0x88B0</div><div class='add'>+0x6A5F = 0x88BF</div><div class='add'>+0x6A60 = 0x88B1</div><div class='add'>+0x6A61 = 0x88C3</div><div class='add'>+0x6A62 = 0x88C4</div><div class='add'>+0x6A63 = 0x88D4</div><div class='add'>+0x6A64 = 0x88D8</div><div class='add'>+0x6A65 = 0x88D9</div><div class='add'>+0x6A66 = 0x88DD</div><div class='add'>+0x6A67 = 0x88F9</div><div class='add'>+0x6A68 = 0x8902</div><div class='add'>+0x6A69 = 0x88FC</div><div class='add'>+0x6A6A = 0x88F4</div><div class='add'>+0x6A6B = 0x88E8</div><div class='add'>+0x6A6C = 0x88F2</div><div class='add'>+0x6A6D = 0x8904</div><div class='add'>+0x6A6E = 0x890C</div><div class='add'>+0x6A6F = 0x890A</div><div class='add'>+0x6A70 = 0x8913</div><div class='add'>+0x6A71 = 0x8943</div><div class='add'>+0x6A72 = 0x891E</div><div class='add'>+0x6A73 = 0x8925</div><div class='add'>+0x6A74 = 0x892A</div><div class='add'>+0x6A75 = 0x892B</div><div class='add'>+0x6A76 = 0x8941</div><div class='add'>+0x6A77 = 0x8944</div><div class='add'>+0x6A78 = 0x893B</div><div class='add'>+0x6A79 = 0x8936</div><div class='add'>+0x6A7A = 0x8938</div><div class='add'>+0x6A7B = 0x894C</div><div class='add'>+0x6A7C = 0x891D</div><div class='add'>+0x6A7D = 0x8960</div><div class='add'>+0x6A7E = 0x895E</div><div class='add'>+0x6B21 = 0x8966</div><div class='add'>+0x6B22 = 0x8964</div><div class='add'>+0x6B23 = 0x896D</div><div class='add'>+0x6B24 = 0x896A</div><div class='add'>+0x6B25 = 0x896F</div><div class='add'>+0x6B26 = 0x8974</div><div class='add'>+0x6B27 = 0x8977</div><div class='add'>+0x6B28 = 0x897E</div><div class='add'>+0x6B29 = 0x8983</div><div class='add'>+0x6B2A = 0x8988</div><div class='add'>+0x6B2B = 0x898A</div><div class='add'>+0x6B2C = 0x8993</div><div class='add'>+0x6B2D = 0x8998</div><div class='add'>+0x6B2E = 0x89A1</div><div class='add'>+0x6B2F = 0x89A9</div><div class='add'>+0x6B30 = 0x89A6</div><div class='add'>+0x6B31 = 0x89AC</div><div class='add'>+0x6B32 = 0x89AF</div><div class='add'>+0x6B33 = 0x89B2</div><div class='add'>+0x6B34 = 0x89BA</div><div class='add'>+0x6B35 = 0x89BD</div><div class='add'>+0x6B36 = 0x89BF</div><div class='add'>+0x6B37 = 0x89C0</div><div class='add'>+0x6B38 = 0x89DA</div><div class='add'>+0x6B39 = 0x89DC</div><div class='add'>+0x6B3A = 0x89DD</div><div class='add'>+0x6B3B = 0x89E7</div><div class='add'>+0x6B3C = 0x89F4</div><div class='add'>+0x6B3D = 0x89F8</div><div class='add'>+0x6B3E = 0x8A03</div><div class='add'>+0x6B3F = 0x8A16</div><div class='add'>+0x6B40 = 0x8A10</div><div class='add'>+0x6B41 = 0x8A0C</div><div class='add'>+0x6B42 = 0x8A1B</div><div class='add'>+0x6B43 = 0x8A1D</div><div class='add'>+0x6B44 = 0x8A25</div><div class='add'>+0x6B45 = 0x8A36</div><div class='add'>+0x6B46 = 0x8A41</div><div class='add'>+0x6B47 = 0x8A5B</div><div class='add'>+0x6B48 = 0x8A52</div><div class='add'>+0x6B49 = 0x8A46</div><div class='add'>+0x6B4A = 0x8A48</div><div class='add'>+0x6B4B = 0x8A7C</div><div class='add'>+0x6B4C = 0x8A6D</div><div class='add'>+0x6B4D = 0x8A6C</div><div class='add'>+0x6B4E = 0x8A62</div><div class='add'>+0x6B4F = 0x8A85</div><div class='add'>+0x6B50 = 0x8A82</div><div class='add'>+0x6B51 = 0x8A84</div><div class='add'>+0x6B52 = 0x8AA8</div><div class='add'>+0x6B53 = 0x8AA1</div><div class='add'>+0x6B54 = 0x8A91</div><div class='add'>+0x6B55 = 0x8AA5</div><div class='add'>+0x6B56 = 0x8AA6</div><div class='add'>+0x6B57 = 0x8A9A</div><div class='add'>+0x6B58 = 0x8AA3</div><div class='add'>+0x6B59 = 0x8AC4</div><div class='add'>+0x6B5A = 0x8ACD</div><div class='add'>+0x6B5B = 0x8AC2</div><div class='add'>+0x6B5C = 0x8ADA</div><div class='add'>+0x6B5D = 0x8AEB</div><div class='add'>+0x6B5E = 0x8AF3</div><div class='add'>+0x6B5F = 0x8AE7</div><div class='add'>+0x6B60 = 0x8AE4</div><div class='add'>+0x6B61 = 0x8AF1</div><div class='add'>+0x6B62 = 0x8B14</div><div class='add'>+0x6B63 = 0x8AE0</div><div class='add'>+0x6B64 = 0x8AE2</div><div class='add'>+0x6B65 = 0x8AF7</div><div class='add'>+0x6B66 = 0x8ADE</div><div class='add'>+0x6B67 = 0x8ADB</div><div class='add'>+0x6B68 = 0x8B0C</div><div class='add'>+0x6B69 = 0x8B07</div><div class='add'>+0x6B6A = 0x8B1A</div><div class='add'>+0x6B6B = 0x8AE1</div><div class='add'>+0x6B6C = 0x8B16</div><div class='add'>+0x6B6D = 0x8B10</div><div class='add'>+0x6B6E = 0x8B17</div><div class='add'>+0x6B6F = 0x8B20</div><div class='add'>+0x6B70 = 0x8B33</div><div class='add'>+0x6B71 = 0x97AB</div><div class='add'>+0x6B72 = 0x8B26</div><div class='add'>+0x6B73 = 0x8B2B</div><div class='add'>+0x6B74 = 0x8B3E</div><div class='add'>+0x6B75 = 0x8B28</div><div class='add'>+0x6B76 = 0x8B41</div><div class='add'>+0x6B77 = 0x8B4C</div><div class='add'>+0x6B78 = 0x8B4F</div><div class='add'>+0x6B79 = 0x8B4E</div><div class='add'>+0x6B7A = 0x8B49</div><div class='add'>+0x6B7B = 0x8B56</div><div class='add'>+0x6B7C = 0x8B5B</div><div class='add'>+0x6B7D = 0x8B5A</div><div class='add'>+0x6B7E = 0x8B6B</div><div class='add'>+0x6C21 = 0x8B5F</div><div class='add'>+0x6C22 = 0x8B6C</div><div class='add'>+0x6C23 = 0x8B6F</div><div class='add'>+0x6C24 = 0x8B74</div><div class='add'>+0x6C25 = 0x8B7D</div><div class='add'>+0x6C26 = 0x8B80</div><div class='add'>+0x6C27 = 0x8B8C</div><div class='add'>+0x6C28 = 0x8B8E</div><div class='add'>+0x6C29 = 0x8B92</div><div class='add'>+0x6C2A = 0x8B93</div><div class='add'>+0x6C2B = 0x8B96</div><div class='add'>+0x6C2C = 0x8B99</div><div class='add'>+0x6C2D = 0x8B9A</div><div class='add'>+0x6C2E = 0x8C3A</div><div class='add'>+0x6C2F = 0x8C41</div><div class='add'>+0x6C30 = 0x8C3F</div><div class='add'>+0x6C31 = 0x8C48</div><div class='add'>+0x6C32 = 0x8C4C</div><div class='add'>+0x6C33 = 0x8C4E</div><div class='add'>+0x6C34 = 0x8C50</div><div class='add'>+0x6C35 = 0x8C55</div><div class='add'>+0x6C36 = 0x8C62</div><div class='add'>+0x6C37 = 0x8C6C</div><div class='add'>+0x6C38 = 0x8C78</div><div class='add'>+0x6C39 = 0x8C7A</div><div class='add'>+0x6C3A = 0x8C82</div><div class='add'>+0x6C3B = 0x8C89</div><div class='add'>+0x6C3C = 0x8C85</div><div class='add'>+0x6C3D = 0x8C8A</div><div class='add'>+0x6C3E = 0x8C8D</div><div class='add'>+0x6C3F = 0x8C8E</div><div class='add'>+0x6C40 = 0x8C94</div><div class='add'>+0x6C41 = 0x8C7C</div><div class='add'>+0x6C42 = 0x8C98</div><div class='add'>+0x6C43 = 0x621D</div><div class='add'>+0x6C44 = 0x8CAD</div><div class='add'>+0x6C45 = 0x8CAA</div><div class='add'>+0x6C46 = 0x8CBD</div><div class='add'>+0x6C47 = 0x8CB2</div><div class='add'>+0x6C48 = 0x8CB3</div><div class='add'>+0x6C49 = 0x8CAE</div><div class='add'>+0x6C4A = 0x8CB6</div><div class='add'>+0x6C4B = 0x8CC8</div><div class='add'>+0x6C4C = 0x8CC1</div><div class='add'>+0x6C4D = 0x8CE4</div><div class='add'>+0x6C4E = 0x8CE3</div><div class='add'>+0x6C4F = 0x8CDA</div><div class='add'>+0x6C50 = 0x8CFD</div><div class='add'>+0x6C51 = 0x8CFA</div><div class='add'>+0x6C52 = 0x8CFB</div><div class='add'>+0x6C53 = 0x8D04</div><div class='add'>+0x6C54 = 0x8D05</div><div class='add'>+0x6C55 = 0x8D0A</div><div class='add'>+0x6C56 = 0x8D07</div><div class='add'>+0x6C57 = 0x8D0F</div><div class='add'>+0x6C58 = 0x8D0D</div><div class='add'>+0x6C59 = 0x8D10</div><div class='add'>+0x6C5A = 0x9F4E</div><div class='add'>+0x6C5B = 0x8D13</div><div class='add'>+0x6C5C = 0x8CCD</div><div class='add'>+0x6C5D = 0x8D14</div><div class='add'>+0x6C5E = 0x8D16</div><div class='add'>+0x6C5F = 0x8D67</div><div class='add'>+0x6C60 = 0x8D6D</div><div class='add'>+0x6C61 = 0x8D71</div><div class='add'>+0x6C62 = 0x8D73</div><div class='add'>+0x6C63 = 0x8D81</div><div class='add'>+0x6C64 = 0x8D99</div><div class='add'>+0x6C65 = 0x8DC2</div><div class='add'>+0x6C66 = 0x8DBE</div><div class='add'>+0x6C67 = 0x8DBA</div><div class='add'>+0x6C68 = 0x8DCF</div><div class='add'>+0x6C69 = 0x8DDA</div><div class='add'>+0x6C6A = 0x8DD6</div><div class='add'>+0x6C6B = 0x8DCC</div><div class='add'>+0x6C6C = 0x8DDB</div><div class='add'>+0x6C6D = 0x8DCB</div><div class='add'>+0x6C6E = 0x8DEA</div><div class='add'>+0x6C6F = 0x8DEB</div><div class='add'>+0x6C70 = 0x8DDF</div><div class='add'>+0x6C71 = 0x8DE3</div><div class='add'>+0x6C72 = 0x8DFC</div><div class='add'>+0x6C73 = 0x8E08</div><div class='add'>+0x6C74 = 0x8E09</div><div class='add'>+0x6C75 = 0x8DFF</div><div class='add'>+0x6C76 = 0x8E1D</div><div class='add'>+0x6C77 = 0x8E1E</div><div class='add'>+0x6C78 = 0x8E10</div><div class='add'>+0x6C79 = 0x8E1F</div><div class='add'>+0x6C7A = 0x8E42</div><div class='add'>+0x6C7B = 0x8E35</div><div class='add'>+0x6C7C = 0x8E30</div><div class='add'>+0x6C7D = 0x8E34</div><div class='add'>+0x6C7E = 0x8E4A</div><div class='add'>+0x6D21 = 0x8E47</div><div class='add'>+0x6D22 = 0x8E49</div><div class='add'>+0x6D23 = 0x8E4C</div><div class='add'>+0x6D24 = 0x8E50</div><div class='add'>+0x6D25 = 0x8E48</div><div class='add'>+0x6D26 = 0x8E59</div><div class='add'>+0x6D27 = 0x8E64</div><div class='add'>+0x6D28 = 0x8E60</div><div class='add'>+0x6D29 = 0x8E2A</div><div class='add'>+0x6D2A = 0x8E63</div><div class='add'>+0x6D2B = 0x8E55</div><div class='add'>+0x6D2C = 0x8E76</div><div class='add'>+0x6D2D = 0x8E72</div><div class='add'>+0x6D2E = 0x8E7C</div><div class='add'>+0x6D2F = 0x8E81</div><div class='add'>+0x6D30 = 0x8E87</div><div class='add'>+0x6D31 = 0x8E85</div><div class='add'>+0x6D32 = 0x8E84</div><div class='add'>+0x6D33 = 0x8E8B</div><div class='add'>+0x6D34 = 0x8E8A</div><div class='add'>+0x6D35 = 0x8E93</div><div class='add'>+0x6D36 = 0x8E91</div><div class='add'>+0x6D37 = 0x8E94</div><div class='add'>+0x6D38 = 0x8E99</div><div class='add'>+0x6D39 = 0x8EAA</div><div class='add'>+0x6D3A = 0x8EA1</div><div class='add'>+0x6D3B = 0x8EAC</div><div class='add'>+0x6D3C = 0x8EB0</div><div class='add'>+0x6D3D = 0x8EC6</div><div class='add'>+0x6D3E = 0x8EB1</div><div class='add'>+0x6D3F = 0x8EBE</div><div class='add'>+0x6D40 = 0x8EC5</div><div class='add'>+0x6D41 = 0x8EC8</div><div class='add'>+0x6D42 = 0x8ECB</div><div class='add'>+0x6D43 = 0x8EDB</div><div class='add'>+0x6D44 = 0x8EE3</div><div class='add'>+0x6D45 = 0x8EFC</div><div class='add'>+0x6D46 = 0x8EFB</div><div class='add'>+0x6D47 = 0x8EEB</div><div class='add'>+0x6D48 = 0x8EFE</div><div class='add'>+0x6D49 = 0x8F0A</div><div class='add'>+0x6D4A = 0x8F05</div><div class='add'>+0x6D4B = 0x8F15</div><div class='add'>+0x6D4C = 0x8F12</div><div class='add'>+0x6D4D = 0x8F19</div><div class='add'>+0x6D4E = 0x8F13</div><div class='add'>+0x6D4F = 0x8F1C</div><div class='add'>+0x6D50 = 0x8F1F</div><div class='add'>+0x6D51 = 0x8F1B</div><div class='add'>+0x6D52 = 0x8F0C</div><div class='add'>+0x6D53 = 0x8F26</div><div class='add'>+0x6D54 = 0x8F33</div><div class='add'>+0x6D55 = 0x8F3B</div><div class='add'>+0x6D56 = 0x8F39</div><div class='add'>+0x6D57 = 0x8F45</div><div class='add'>+0x6D58 = 0x8F42</div><div class='add'>+0x6D59 = 0x8F3E</div><div class='add'>+0x6D5A = 0x8F4C</div><div class='add'>+0x6D5B = 0x8F49</div><div class='add'>+0x6D5C = 0x8F46</div><div class='add'>+0x6D5D = 0x8F4E</div><div class='add'>+0x6D5E = 0x8F57</div><div class='add'>+0x6D5F = 0x8F5C</div><div class='add'>+0x6D60 = 0x8F62</div><div class='add'>+0x6D61 = 0x8F63</div><div class='add'>+0x6D62 = 0x8F64</div><div class='add'>+0x6D63 = 0x8F9C</div><div class='add'>+0x6D64 = 0x8F9F</div><div class='add'>+0x6D65 = 0x8FA3</div><div class='add'>+0x6D66 = 0x8FAD</div><div class='add'>+0x6D67 = 0x8FAF</div><div class='add'>+0x6D68 = 0x8FB7</div><div class='add'>+0x6D69 = 0x8FDA</div><div class='add'>+0x6D6A = 0x8FE5</div><div class='add'>+0x6D6B = 0x8FE2</div><div class='add'>+0x6D6C = 0x8FEA</div><div class='add'>+0x6D6D = 0x8FEF</div><div class='add'>+0x6D6E = 0x9087</div><div class='add'>+0x6D6F = 0x8FF4</div><div class='add'>+0x6D70 = 0x9005</div><div class='add'>+0x6D71 = 0x8FF9</div><div class='add'>+0x6D72 = 0x8FFA</div><div class='add'>+0x6D73 = 0x9011</div><div class='add'>+0x6D74 = 0x9015</div><div class='add'>+0x6D75 = 0x9021</div><div class='add'>+0x6D76 = 0x900D</div><div class='add'>+0x6D77 = 0x901E</div><div class='add'>+0x6D78 = 0x9016</div><div class='add'>+0x6D79 = 0x900B</div><div class='add'>+0x6D7A = 0x9027</div><div class='add'>+0x6D7B = 0x9036</div><div class='add'>+0x6D7C = 0x9035</div><div class='add'>+0x6D7D = 0x9039</div><div class='add'>+0x6D7E = 0x8FF8</div><div class='add'>+0x6E21 = 0x904F</div><div class='add'>+0x6E22 = 0x9050</div><div class='add'>+0x6E23 = 0x9051</div><div class='add'>+0x6E24 = 0x9052</div><div class='add'>+0x6E25 = 0x900E</div><div class='add'>+0x6E26 = 0x9049</div><div class='add'>+0x6E27 = 0x903E</div><div class='add'>+0x6E28 = 0x9056</div><div class='add'>+0x6E29 = 0x9058</div><div class='add'>+0x6E2A = 0x905E</div><div class='add'>+0x6E2B = 0x9068</div><div class='add'>+0x6E2C = 0x906F</div><div class='add'>+0x6E2D = 0x9076</div><div class='add'>+0x6E2E = 0x96A8</div><div class='add'>+0x6E2F = 0x9072</div><div class='add'>+0x6E30 = 0x9082</div><div class='add'>+0x6E31 = 0x907D</div><div class='add'>+0x6E32 = 0x9081</div><div class='add'>+0x6E33 = 0x9080</div><div class='add'>+0x6E34 = 0x908A</div><div class='add'>+0x6E35 = 0x9089</div><div class='add'>+0x6E36 = 0x908F</div><div class='add'>+0x6E37 = 0x90A8</div><div class='add'>+0x6E38 = 0x90AF</div><div class='add'>+0x6E39 = 0x90B1</div><div class='add'>+0x6E3A = 0x90B5</div><div class='add'>+0x6E3B = 0x90E2</div><div class='add'>+0x6E3C = 0x90E4</div><div class='add'>+0x6E3D = 0x6248</div><div class='add'>+0x6E3E = 0x90DB</div><div class='add'>+0x6E3F = 0x9102</div><div class='add'>+0x6E40 = 0x9112</div><div class='add'>+0x6E41 = 0x9119</div><div class='add'>+0x6E42 = 0x9132</div><div class='add'>+0x6E43 = 0x9130</div><div class='add'>+0x6E44 = 0x914A</div><div class='add'>+0x6E45 = 0x9156</div><div class='add'>+0x6E46 = 0x9158</div><div class='add'>+0x6E47 = 0x9163</div><div class='add'>+0x6E48 = 0x9165</div><div class='add'>+0x6E49 = 0x9169</div><div class='add'>+0x6E4A = 0x9173</div><div class='add'>+0x6E4B = 0x9172</div><div class='add'>+0x6E4C = 0x918B</div><div class='add'>+0x6E4D = 0x9189</div><div class='add'>+0x6E4E = 0x9182</div><div class='add'>+0x6E4F = 0x91A2</div><div class='add'>+0x6E50 = 0x91AB</div><div class='add'>+0x6E51 = 0x91AF</div><div class='add'>+0x6E52 = 0x91AA</div><div class='add'>+0x6E53 = 0x91B5</div><div class='add'>+0x6E54 = 0x91B4</div><div class='add'>+0x6E55 = 0x91BA</div><div class='add'>+0x6E56 = 0x91C0</div><div class='add'>+0x6E57 = 0x91C1</div><div class='add'>+0x6E58 = 0x91C9</div><div class='add'>+0x6E59 = 0x91CB</div><div class='add'>+0x6E5A = 0x91D0</div><div class='add'>+0x6E5B = 0x91D6</div><div class='add'>+0x6E5C = 0x91DF</div><div class='add'>+0x6E5D = 0x91E1</div><div class='add'>+0x6E5E = 0x91DB</div><div class='add'>+0x6E5F = 0x91FC</div><div class='add'>+0x6E60 = 0x91F5</div><div class='add'>+0x6E61 = 0x91F6</div><div class='add'>+0x6E62 = 0x921E</div><div class='add'>+0x6E63 = 0x91FF</div><div class='add'>+0x6E64 = 0x9214</div><div class='add'>+0x6E65 = 0x922C</div><div class='add'>+0x6E66 = 0x9215</div><div class='add'>+0x6E67 = 0x9211</div><div class='add'>+0x6E68 = 0x925E</div><div class='add'>+0x6E69 = 0x9257</div><div class='add'>+0x6E6A = 0x9245</div><div class='add'>+0x6E6B = 0x9249</div><div class='add'>+0x6E6C = 0x9264</div><div class='add'>+0x6E6D = 0x9248</div><div class='add'>+0x6E6E = 0x9295</div><div class='add'>+0x6E6F = 0x923F</div><div class='add'>+0x6E70 = 0x924B</div><div class='add'>+0x6E71 = 0x9250</div><div class='add'>+0x6E72 = 0x929C</div><div class='add'>+0x6E73 = 0x9296</div><div class='add'>+0x6E74 = 0x9293</div><div class='add'>+0x6E75 = 0x929B</div><div class='add'>+0x6E76 = 0x925A</div><div class='add'>+0x6E77 = 0x92CF</div><div class='add'>+0x6E78 = 0x92B9</div><div class='add'>+0x6E79 = 0x92B7</div><div class='add'>+0x6E7A = 0x92E9</div><div class='add'>+0x6E7B = 0x930F</div><div class='add'>+0x6E7C = 0x92FA</div><div class='add'>+0x6E7D = 0x9344</div><div class='add'>+0x6E7E = 0x932E</div><div class='add'>+0x6F21 = 0x9319</div><div class='add'>+0x6F22 = 0x9322</div><div class='add'>+0x6F23 = 0x931A</div><div class='add'>+0x6F24 = 0x9323</div><div class='add'>+0x6F25 = 0x933A</div><div class='add'>+0x6F26 = 0x9335</div><div class='add'>+0x6F27 = 0x933B</div><div class='add'>+0x6F28 = 0x935C</div><div class='add'>+0x6F29 = 0x9360</div><div class='add'>+0x6F2A = 0x937C</div><div class='add'>+0x6F2B = 0x936E</div><div class='add'>+0x6F2C = 0x9356</div><div class='add'>+0x6F2D = 0x93B0</div><div class='add'>+0x6F2E = 0x93AC</div><div class='add'>+0x6F2F = 0x93AD</div><div class='add'>+0x6F30 = 0x9394</div><div class='add'>+0x6F31 = 0x93B9</div><div class='add'>+0x6F32 = 0x93D6</div><div class='add'>+0x6F33 = 0x93D7</div><div class='add'>+0x6F34 = 0x93E8</div><div class='add'>+0x6F35 = 0x93E5</div><div class='add'>+0x6F36 = 0x93D8</div><div class='add'>+0x6F37 = 0x93C3</div><div class='add'>+0x6F38 = 0x93DD</div><div class='add'>+0x6F39 = 0x93D0</div><div class='add'>+0x6F3A = 0x93C8</div><div class='add'>+0x6F3B = 0x93E4</div><div class='add'>+0x6F3C = 0x941A</div><div class='add'>+0x6F3D = 0x9414</div><div class='add'>+0x6F3E = 0x9413</div><div class='add'>+0x6F3F = 0x9403</div><div class='add'>+0x6F40 = 0x9407</div><div class='add'>+0x6F41 = 0x9410</div><div class='add'>+0x6F42 = 0x9436</div><div class='add'>+0x6F43 = 0x942B</div><div class='add'>+0x6F44 = 0x9435</div><div class='add'>+0x6F45 = 0x9421</div><div class='add'>+0x6F46 = 0x943A</div><div class='add'>+0x6F47 = 0x9441</div><div class='add'>+0x6F48 = 0x9452</div><div class='add'>+0x6F49 = 0x9444</div><div class='add'>+0x6F4A = 0x945B</div><div class='add'>+0x6F4B = 0x9460</div><div class='add'>+0x6F4C = 0x9462</div><div class='add'>+0x6F4D = 0x945E</div><div class='add'>+0x6F4E = 0x946A</div><div class='add'>+0x6F4F = 0x9229</div><div class='add'>+0x6F50 = 0x9470</div><div class='add'>+0x6F51 = 0x9475</div><div class='add'>+0x6F52 = 0x9477</div><div class='add'>+0x6F53 = 0x947D</div><div class='add'>+0x6F54 = 0x945A</div><div class='add'>+0x6F55 = 0x947C</div><div class='add'>+0x6F56 = 0x947E</div><div class='add'>+0x6F57 = 0x9481</div><div class='add'>+0x6F58 = 0x947F</div><div class='add'>+0x6F59 = 0x9582</div><div class='add'>+0x6F5A = 0x9587</div><div class='add'>+0x6F5B = 0x958A</div><div class='add'>+0x6F5C = 0x9594</div><div class='add'>+0x6F5D = 0x9596</div><div class='add'>+0x6F5E = 0x9598</div><div class='add'>+0x6F5F = 0x9599</div><div class='add'>+0x6F60 = 0x95A0</div><div class='add'>+0x6F61 = 0x95A8</div><div class='add'>+0x6F62 = 0x95A7</div><div class='add'>+0x6F63 = 0x95AD</div><div class='add'>+0x6F64 = 0x95BC</div><div class='add'>+0x6F65 = 0x95BB</div><div class='add'>+0x6F66 = 0x95B9</div><div class='add'>+0x6F67 = 0x95BE</div><div class='add'>+0x6F68 = 0x95CA</div><div class='add'>+0x6F69 = 0x6FF6</div><div class='add'>+0x6F6A = 0x95C3</div><div class='add'>+0x6F6B = 0x95CD</div><div class='add'>+0x6F6C = 0x95CC</div><div class='add'>+0x6F6D = 0x95D5</div><div class='add'>+0x6F6E = 0x95D4</div><div class='add'>+0x6F6F = 0x95D6</div><div class='add'>+0x6F70 = 0x95DC</div><div class='add'>+0x6F71 = 0x95E1</div><div class='add'>+0x6F72 = 0x95E5</div><div class='add'>+0x6F73 = 0x95E2</div><div class='add'>+0x6F74 = 0x9621</div><div class='add'>+0x6F75 = 0x9628</div><div class='add'>+0x6F76 = 0x962E</div><div class='add'>+0x6F77 = 0x962F</div><div class='add'>+0x6F78 = 0x9642</div><div class='add'>+0x6F79 = 0x964C</div><div class='add'>+0x6F7A = 0x964F</div><div class='add'>+0x6F7B = 0x964B</div><div class='add'>+0x6F7C = 0x9677</div><div class='add'>+0x6F7D = 0x965C</div><div class='add'>+0x6F7E = 0x965E</div><div class='add'>+0x7021 = 0x965D</div><div class='add'>+0x7022 = 0x965F</div><div class='add'>+0x7023 = 0x9666</div><div class='add'>+0x7024 = 0x9672</div><div class='add'>+0x7025 = 0x966C</div><div class='add'>+0x7026 = 0x968D</div><div class='add'>+0x7027 = 0x9698</div><div class='add'>+0x7028 = 0x9695</div><div class='add'>+0x7029 = 0x9697</div><div class='add'>+0x702A = 0x96AA</div><div class='add'>+0x702B = 0x96A7</div><div class='add'>+0x702C = 0x96B1</div><div class='add'>+0x702D = 0x96B2</div><div class='add'>+0x702E = 0x96B0</div><div class='add'>+0x702F = 0x96B4</div><div class='add'>+0x7030 = 0x96B6</div><div class='add'>+0x7031 = 0x96B8</div><div class='add'>+0x7032 = 0x96B9</div><div class='add'>+0x7033 = 0x96CE</div><div class='add'>+0x7034 = 0x96CB</div><div class='add'>+0x7035 = 0x96C9</div><div class='add'>+0x7036 = 0x96CD</div><div class='add'>+0x7037 = 0x894D</div><div class='add'>+0x7038 = 0x96DC</div><div class='add'>+0x7039 = 0x970D</div><div class='add'>+0x703A = 0x96D5</div><div class='add'>+0x703B = 0x96F9</div><div class='add'>+0x703C = 0x9704</div><div class='add'>+0x703D = 0x9706</div><div class='add'>+0x703E = 0x9708</div><div class='add'>+0x703F = 0x9713</div><div class='add'>+0x7040 = 0x970E</div><div class='add'>+0x7041 = 0x9711</div><div class='add'>+0x7042 = 0x970F</div><div class='add'>+0x7043 = 0x9716</div><div class='add'>+0x7044 = 0x9719</div><div class='add'>+0x7045 = 0x9724</div><div class='add'>+0x7046 = 0x972A</div><div class='add'>+0x7047 = 0x9730</div><div class='add'>+0x7048 = 0x9739</div><div class='add'>+0x7049 = 0x973D</div><div class='add'>+0x704A = 0x973E</div><div class='add'>+0x704B = 0x9744</div><div class='add'>+0x704C = 0x9746</div><div class='add'>+0x704D = 0x9748</div><div class='add'>+0x704E = 0x9742</div><div class='add'>+0x704F = 0x9749</div><div class='add'>+0x7050 = 0x975C</div><div class='add'>+0x7051 = 0x9760</div><div class='add'>+0x7052 = 0x9764</div><div class='add'>+0x7053 = 0x9766</div><div class='add'>+0x7054 = 0x9768</div><div class='add'>+0x7055 = 0x52D2</div><div class='add'>+0x7056 = 0x976B</div><div class='add'>+0x7057 = 0x9771</div><div class='add'>+0x7058 = 0x9779</div><div class='add'>+0x7059 = 0x9785</div><div class='add'>+0x705A = 0x977C</div><div class='add'>+0x705B = 0x9781</div><div class='add'>+0x705C = 0x977A</div><div class='add'>+0x705D = 0x9786</div><div class='add'>+0x705E = 0x978B</div><div class='add'>+0x705F = 0x978F</div><div class='add'>+0x7060 = 0x9790</div><div class='add'>+0x7061 = 0x979C</div><div class='add'>+0x7062 = 0x97A8</div><div class='add'>+0x7063 = 0x97A6</div><div class='add'>+0x7064 = 0x97A3</div><div class='add'>+0x7065 = 0x97B3</div><div class='add'>+0x7066 = 0x97B4</div><div class='add'>+0x7067 = 0x97C3</div><div class='add'>+0x7068 = 0x97C6</div><div class='add'>+0x7069 = 0x97C8</div><div class='add'>+0x706A = 0x97CB</div><div class='add'>+0x706B = 0x97DC</div><div class='add'>+0x706C = 0x97ED</div><div class='add'>+0x706D = 0x9F4F</div><div class='add'>+0x706E = 0x97F2</div><div class='add'>+0x706F = 0x7ADF</div><div class='add'>+0x7070 = 0x97F6</div><div class='add'>+0x7071 = 0x97F5</div><div class='add'>+0x7072 = 0x980F</div><div class='add'>+0x7073 = 0x980C</div><div class='add'>+0x7074 = 0x9838</div><div class='add'>+0x7075 = 0x9824</div><div class='add'>+0x7076 = 0x9821</div><div class='add'>+0x7077 = 0x9837</div><div class='add'>+0x7078 = 0x983D</div><div class='add'>+0x7079 = 0x9846</div><div class='add'>+0x707A = 0x984F</div><div class='add'>+0x707B = 0x984B</div><div class='add'>+0x707C = 0x986B</div><div class='add'>+0x707D = 0x986F</div><div class='add'>+0x707E = 0x9870</div><div class='add'>+0x7121 = 0x9871</div><div class='add'>+0x7122 = 0x9874</div><div class='add'>+0x7123 = 0x9873</div><div class='add'>+0x7124 = 0x98AA</div><div class='add'>+0x7125 = 0x98AF</div><div class='add'>+0x7126 = 0x98B1</div><div class='add'>+0x7127 = 0x98B6</div><div class='add'>+0x7128 = 0x98C4</div><div class='add'>+0x7129 = 0x98C3</div><div class='add'>+0x712A = 0x98C6</div><div class='add'>+0x712B = 0x98E9</div><div class='add'>+0x712C = 0x98EB</div><div class='add'>+0x712D = 0x9903</div><div class='add'>+0x712E = 0x9909</div><div class='add'>+0x712F = 0x9912</div><div class='add'>+0x7130 = 0x9914</div><div class='add'>+0x7131 = 0x9918</div><div class='add'>+0x7132 = 0x9921</div><div class='add'>+0x7133 = 0x991D</div><div class='add'>+0x7134 = 0x991E</div><div class='add'>+0x7135 = 0x9924</div><div class='add'>+0x7136 = 0x9920</div><div class='add'>+0x7137 = 0x992C</div><div class='add'>+0x7138 = 0x992E</div><div class='add'>+0x7139 = 0x993D</div><div class='add'>+0x713A = 0x993E</div><div class='add'>+0x713B = 0x9942</div><div class='add'>+0x713C = 0x9949</div><div class='add'>+0x713D = 0x9945</div><div class='add'>+0x713E = 0x9950</div><div class='add'>+0x713F = 0x994B</div><div class='add'>+0x7140 = 0x9951</div><div class='add'>+0x7141 = 0x9952</div><div class='add'>+0x7142 = 0x994C</div><div class='add'>+0x7143 = 0x9955</div><div class='add'>+0x7144 = 0x9997</div><div class='add'>+0x7145 = 0x9998</div><div class='add'>+0x7146 = 0x99A5</div><div class='add'>+0x7147 = 0x99AD</div><div class='add'>+0x7148 = 0x99AE</div><div class='add'>+0x7149 = 0x99BC</div><div class='add'>+0x714A = 0x99DF</div><div class='add'>+0x714B = 0x99DB</div><div class='add'>+0x714C = 0x99DD</div><div class='add'>+0x714D = 0x99D8</div><div class='add'>+0x714E = 0x99D1</div><div class='add'>+0x714F = 0x99ED</div><div class='add'>+0x7150 = 0x99EE</div><div class='add'>+0x7151 = 0x99F1</div><div class='add'>+0x7152 = 0x99F2</div><div class='add'>+0x7153 = 0x99FB</div><div class='add'>+0x7154 = 0x99F8</div><div class='add'>+0x7155 = 0x9A01</div><div class='add'>+0x7156 = 0x9A0F</div><div class='add'>+0x7157 = 0x9A05</div><div class='add'>+0x7158 = 0x99E2</div><div class='add'>+0x7159 = 0x9A19</div><div class='add'>+0x715A = 0x9A2B</div><div class='add'>+0x715B = 0x9A37</div><div class='add'>+0x715C = 0x9A45</div><div class='add'>+0x715D = 0x9A42</div><div class='add'>+0x715E = 0x9A40</div><div class='add'>+0x715F = 0x9A43</div><div class='add'>+0x7160 = 0x9A3E</div><div class='add'>+0x7161 = 0x9A55</div><div class='add'>+0x7162 = 0x9A4D</div><div class='add'>+0x7163 = 0x9A5B</div><div class='add'>+0x7164 = 0x9A57</div><div class='add'>+0x7165 = 0x9A5F</div><div class='add'>+0x7166 = 0x9A62</div><div class='add'>+0x7167 = 0x9A65</div><div class='add'>+0x7168 = 0x9A64</div><div class='add'>+0x7169 = 0x9A69</div><div class='add'>+0x716A = 0x9A6B</div><div class='add'>+0x716B = 0x9A6A</div><div class='add'>+0x716C = 0x9AAD</div><div class='add'>+0x716D = 0x9AB0</div><div class='add'>+0x716E = 0x9ABC</div><div class='add'>+0x716F = 0x9AC0</div><div class='add'>+0x7170 = 0x9ACF</div><div class='add'>+0x7171 = 0x9AD1</div><div class='add'>+0x7172 = 0x9AD3</div><div class='add'>+0x7173 = 0x9AD4</div><div class='add'>+0x7174 = 0x9ADE</div><div class='add'>+0x7175 = 0x9ADF</div><div class='add'>+0x7176 = 0x9AE2</div><div class='add'>+0x7177 = 0x9AE3</div><div class='add'>+0x7178 = 0x9AE6</div><div class='add'>+0x7179 = 0x9AEF</div><div class='add'>+0x717A = 0x9AEB</div><div class='add'>+0x717B = 0x9AEE</div><div class='add'>+0x717C = 0x9AF4</div><div class='add'>+0x717D = 0x9AF1</div><div class='add'>+0x717E = 0x9AF7</div><div class='add'>+0x7221 = 0x9AFB</div><div class='add'>+0x7222 = 0x9B06</div><div class='add'>+0x7223 = 0x9B18</div><div class='add'>+0x7224 = 0x9B1A</div><div class='add'>+0x7225 = 0x9B1F</div><div class='add'>+0x7226 = 0x9B22</div><div class='add'>+0x7227 = 0x9B23</div><div class='add'>+0x7228 = 0x9B25</div><div class='add'>+0x7229 = 0x9B27</div><div class='add'>+0x722A = 0x9B28</div><div class='add'>+0x722B = 0x9B29</div><div class='add'>+0x722C = 0x9B2A</div><div class='add'>+0x722D = 0x9B2E</div><div class='add'>+0x722E = 0x9B2F</div><div class='add'>+0x722F = 0x9B32</div><div class='add'>+0x7230 = 0x9B44</div><div class='add'>+0x7231 = 0x9B43</div><div class='add'>+0x7232 = 0x9B4F</div><div class='add'>+0x7233 = 0x9B4D</div><div class='add'>+0x7234 = 0x9B4E</div><div class='add'>+0x7235 = 0x9B51</div><div class='add'>+0x7236 = 0x9B58</div><div class='add'>+0x7237 = 0x9B74</div><div class='add'>+0x7238 = 0x9B93</div><div class='add'>+0x7239 = 0x9B83</div><div class='add'>+0x723A = 0x9B91</div><div class='add'>+0x723B = 0x9B96</div><div class='add'>+0x723C = 0x9B97</div><div class='add'>+0x723D = 0x9B9F</div><div class='add'>+0x723E = 0x9BA0</div><div class='add'>+0x723F = 0x9BA8</div><div class='add'>+0x7240 = 0x9BB4</div><div class='add'>+0x7241 = 0x9BC0</div><div class='add'>+0x7242 = 0x9BCA</div><div class='add'>+0x7243 = 0x9BB9</div><div class='add'>+0x7244 = 0x9BC6</div><div class='add'>+0x7245 = 0x9BCF</div><div class='add'>+0x7246 = 0x9BD1</div><div class='add'>+0x7247 = 0x9BD2</div><div class='add'>+0x7248 = 0x9BE3</div><div class='add'>+0x7249 = 0x9BE2</div><div class='add'>+0x724A = 0x9BE4</div><div class='add'>+0x724B = 0x9BD4</div><div class='add'>+0x724C = 0x9BE1</div><div class='add'>+0x724D = 0x9C3A</div><div class='add'>+0x724E = 0x9BF2</div><div class='add'>+0x724F = 0x9BF1</div><div class='add'>+0x7250 = 0x9BF0</div><div class='add'>+0x7251 = 0x9C15</div><div class='add'>+0x7252 = 0x9C14</div><div class='add'>+0x7253 = 0x9C09</div><div class='add'>+0x7254 = 0x9C13</div><div class='add'>+0x7255 = 0x9C0C</div><div class='add'>+0x7256 = 0x9C06</div><div class='add'>+0x7257 = 0x9C08</div><div class='add'>+0x7258 = 0x9C12</div><div class='add'>+0x7259 = 0x9C0A</div><div class='add'>+0x725A = 0x9C04</div><div class='add'>+0x725B = 0x9C2E</div><div class='add'>+0x725C = 0x9C1B</div><div class='add'>+0x725D = 0x9C25</div><div class='add'>+0x725E = 0x9C24</div><div class='add'>+0x725F = 0x9C21</div><div class='add'>+0x7260 = 0x9C30</div><div class='add'>+0x7261 = 0x9C47</div><div class='add'>+0x7262 = 0x9C32</div><div class='add'>+0x7263 = 0x9C46</div><div class='add'>+0x7264 = 0x9C3E</div><div class='add'>+0x7265 = 0x9C5A</div><div class='add'>+0x7266 = 0x9C60</div><div class='add'>+0x7267 = 0x9C67</div><div class='add'>+0x7268 = 0x9C76</div><div class='add'>+0x7269 = 0x9C78</div><div class='add'>+0x726A = 0x9CE7</div><div class='add'>+0x726B = 0x9CEC</div><div class='add'>+0x726C = 0x9CF0</div><div class='add'>+0x726D = 0x9D09</div><div class='add'>+0x726E = 0x9D08</div><div class='add'>+0x726F = 0x9CEB</div><div class='add'>+0x7270 = 0x9D03</div><div class='add'>+0x7271 = 0x9D06</div><div class='add'>+0x7272 = 0x9D2A</div><div class='add'>+0x7273 = 0x9D26</div><div class='add'>+0x7274 = 0x9DAF</div><div class='add'>+0x7275 = 0x9D23</div><div class='add'>+0x7276 = 0x9D1F</div><div class='add'>+0x7277 = 0x9D44</div><div class='add'>+0x7278 = 0x9D15</div><div class='add'>+0x7279 = 0x9D12</div><div class='add'>+0x727A = 0x9D41</div><div class='add'>+0x727B = 0x9D3F</div><div class='add'>+0x727C = 0x9D3E</div><div class='add'>+0x727D = 0x9D46</div><div class='add'>+0x727E = 0x9D48</div><div class='add'>+0x7321 = 0x9D5D</div><div class='add'>+0x7322 = 0x9D5E</div><div class='add'>+0x7323 = 0x9D64</div><div class='add'>+0x7324 = 0x9D51</div><div class='add'>+0x7325 = 0x9D50</div><div class='add'>+0x7326 = 0x9D59</div><div class='add'>+0x7327 = 0x9D72</div><div class='add'>+0x7328 = 0x9D89</div><div class='add'>+0x7329 = 0x9D87</div><div class='add'>+0x732A = 0x9DAB</div><div class='add'>+0x732B = 0x9D6F</div><div class='add'>+0x732C = 0x9D7A</div><div class='add'>+0x732D = 0x9D9A</div><div class='add'>+0x732E = 0x9DA4</div><div class='add'>+0x732F = 0x9DA9</div><div class='add'>+0x7330 = 0x9DB2</div><div class='add'>+0x7331 = 0x9DC4</div><div class='add'>+0x7332 = 0x9DC1</div><div class='add'>+0x7333 = 0x9DBB</div><div class='add'>+0x7334 = 0x9DB8</div><div class='add'>+0x7335 = 0x9DBA</div><div class='add'>+0x7336 = 0x9DC6</div><div class='add'>+0x7337 = 0x9DCF</div><div class='add'>+0x7338 = 0x9DC2</div><div class='add'>+0x7339 = 0x9DD9</div><div class='add'>+0x733A = 0x9DD3</div><div class='add'>+0x733B = 0x9DF8</div><div class='add'>+0x733C = 0x9DE6</div><div class='add'>+0x733D = 0x9DED</div><div class='add'>+0x733E = 0x9DEF</div><div class='add'>+0x733F = 0x9DFD</div><div class='add'>+0x7340 = 0x9E1A</div><div class='add'>+0x7341 = 0x9E1B</div><div class='add'>+0x7342 = 0x9E1E</div><div class='add'>+0x7343 = 0x9E75</div><div class='add'>+0x7344 = 0x9E79</div><div class='add'>+0x7345 = 0x9E7D</div><div class='add'>+0x7346 = 0x9E81</div><div class='add'>+0x7347 = 0x9E88</div><div class='add'>+0x7348 = 0x9E8B</div><div class='add'>+0x7349 = 0x9E8C</div><div class='add'>+0x734A = 0x9E92</div><div class='add'>+0x734B = 0x9E95</div><div class='add'>+0x734C = 0x9E91</div><div class='add'>+0x734D = 0x9E9D</div><div class='add'>+0x734E = 0x9EA5</div><div class='add'>+0x734F = 0x9EA9</div><div class='add'>+0x7350 = 0x9EB8</div><div class='add'>+0x7351 = 0x9EAA</div><div class='add'>+0x7352 = 0x9EAD</div><div class='add'>+0x7353 = 0x9761</div><div class='add'>+0x7354 = 0x9ECC</div><div class='add'>+0x7355 = 0x9ECE</div><div class='add'>+0x7356 = 0x9ECF</div><div class='add'>+0x7357 = 0x9ED0</div><div class='add'>+0x7358 = 0x9ED4</div><div class='add'>+0x7359 = 0x9EDC</div><div class='add'>+0x735A = 0x9EDE</div><div class='add'>+0x735B = 0x9EDD</div><div class='add'>+0x735C = 0x9EE0</div><div class='add'>+0x735D = 0x9EE5</div><div class='add'>+0x735E = 0x9EE8</div><div class='add'>+0x735F = 0x9EEF</div><div class='add'>+0x7360 = 0x9EF4</div><div class='add'>+0x7361 = 0x9EF6</div><div class='add'>+0x7362 = 0x9EF7</div><div class='add'>+0x7363 = 0x9EF9</div><div class='add'>+0x7364 = 0x9EFB</div><div class='add'>+0x7365 = 0x9EFC</div><div class='add'>+0x7366 = 0x9EFD</div><div class='add'>+0x7367 = 0x9F07</div><div class='add'>+0x7368 = 0x9F08</div><div class='add'>+0x7369 = 0x76B7</div><div class='add'>+0x736A = 0x9F15</div><div class='add'>+0x736B = 0x9F21</div><div class='add'>+0x736C = 0x9F2C</div><div class='add'>+0x736D = 0x9F3E</div><div class='add'>+0x736E = 0x9F4A</div><div class='add'>+0x736F = 0x9F52</div><div class='add'>+0x7370 = 0x9F54</div><div class='add'>+0x7371 = 0x9F63</div><div class='add'>+0x7372 = 0x9F5F</div><div class='add'>+0x7373 = 0x9F60</div><div class='add'>+0x7374 = 0x9F61</div><div class='add'>+0x7375 = 0x9F66</div><div class='add'>+0x7376 = 0x9F67</div><div class='add'>+0x7377 = 0x9F6C</div><div class='add'>+0x7378 = 0x9F6A</div><div class='add'>+0x7379 = 0x9F77</div><div class='add'>+0x737A = 0x9F72</div><div class='add'>+0x737B = 0x9F76</div><div class='add'>+0x737C = 0x9F95</div><div class='add'>+0x737D = 0x9F9C</div><div class='add'>+0x737E = 0x9FA0</div><div class='add'>+0x7421 = 0x582F</div><div class='add'>+0x7422 = 0x69C7</div><div class='add'>+0x7423 = 0x9059</div><div class='add'>+0x7424 = 0x7464</div><div class='add'>+0x7425 = 0x51DC</div><div class='add'>+0x7426 = 0x7199</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0208@MS%UCS.src b/enc/trans/JIS/JISX0208@MS%UCS.src<br/>new file mode 100644<br/>index 0000000000..768e037f5d<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0208@MS%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0208@MS%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,6893 @@</div><div class='add'>+# $NetBSD: JISX0208@MS%UCS.src,v 1.1 2003/07/19 20:20:40 tshiozak Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"JISX0208:MS/UCS"</div><div class='add'>+SRC_ZONE	0x21-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This data is derived from http://www.opengroup.or.jp/jvc/cde/</div><div class='add'>+#</div><div class='add'>+0x2121 = 0x3000</div><div class='add'>+0x2122 = 0x3001</div><div class='add'>+0x2123 = 0x3002</div><div class='add'>+0x2124 = 0xFF0C</div><div class='add'>+0x2125 = 0xFF0E</div><div class='add'>+0x2126 = 0x30FB</div><div class='add'>+0x2127 = 0xFF1A</div><div class='add'>+0x2128 = 0xFF1B</div><div class='add'>+0x2129 = 0xFF1F</div><div class='add'>+0x212A = 0xFF01</div><div class='add'>+0x212B = 0x309B</div><div class='add'>+0x212C = 0x309C</div><div class='add'>+0x212D = 0x00B4</div><div class='add'>+0x212E = 0xFF40</div><div class='add'>+0x212F = 0x00A8</div><div class='add'>+0x2130 = 0xFF3E</div><div class='add'>+0x2131 = 0xFFE3</div><div class='add'>+0x2132 = 0xFF3F</div><div class='add'>+0x2133 = 0x30FD</div><div class='add'>+0x2134 = 0x30FE</div><div class='add'>+0x2135 = 0x309D</div><div class='add'>+0x2136 = 0x309E</div><div class='add'>+0x2137 = 0x3003</div><div class='add'>+0x2138 = 0x4EDD</div><div class='add'>+0x2139 = 0x3005</div><div class='add'>+0x213A = 0x3006</div><div class='add'>+0x213B = 0x3007</div><div class='add'>+0x213C = 0x30FC</div><div class='add'>+0x213D = 0x2015</div><div class='add'>+0x213E = 0x2010</div><div class='add'>+0x213F = 0xFF0F</div><div class='add'>+0x2140 = 0xFF3C</div><div class='add'>+0x2141 = 0xFF5E</div><div class='add'>+0x2142 = 0x2225</div><div class='add'>+0x2143 = 0xFF5C</div><div class='add'>+0x2144 = 0x2026</div><div class='add'>+0x2145 = 0x2025</div><div class='add'>+0x2146 = 0x2018</div><div class='add'>+0x2147 = 0x2019</div><div class='add'>+0x2148 = 0x201C</div><div class='add'>+0x2149 = 0x201D</div><div class='add'>+0x214A = 0xFF08</div><div class='add'>+0x214B = 0xFF09</div><div class='add'>+0x214C = 0x3014</div><div class='add'>+0x214D = 0x3015</div><div class='add'>+0x214E = 0xFF3B</div><div class='add'>+0x214F = 0xFF3D</div><div class='add'>+0x2150 = 0xFF5B</div><div class='add'>+0x2151 = 0xFF5D</div><div class='add'>+0x2152 = 0x3008</div><div class='add'>+0x2153 = 0x3009</div><div class='add'>+0x2154 = 0x300A</div><div class='add'>+0x2155 = 0x300B</div><div class='add'>+0x2156 = 0x300C</div><div class='add'>+0x2157 = 0x300D</div><div class='add'>+0x2158 = 0x300E</div><div class='add'>+0x2159 = 0x300F</div><div class='add'>+0x215A = 0x3010</div><div class='add'>+0x215B = 0x3011</div><div class='add'>+0x215C = 0xFF0B</div><div class='add'>+0x215D = 0xFF0D</div><div class='add'>+0x215E = 0x00B1</div><div class='add'>+0x215F = 0x00D7</div><div class='add'>+0x2160 = 0x00F7</div><div class='add'>+0x2161 = 0xFF1D</div><div class='add'>+0x2162 = 0x2260</div><div class='add'>+0x2163 = 0xFF1C</div><div class='add'>+0x2164 = 0xFF1E</div><div class='add'>+0x2165 = 0x2266</div><div class='add'>+0x2166 = 0x2267</div><div class='add'>+0x2167 = 0x221E</div><div class='add'>+0x2168 = 0x2234</div><div class='add'>+0x2169 = 0x2642</div><div class='add'>+0x216A = 0x2640</div><div class='add'>+0x216B = 0x00B0</div><div class='add'>+0x216C = 0x2032</div><div class='add'>+0x216D = 0x2033</div><div class='add'>+0x216E = 0x2103</div><div class='add'>+0x216F = 0xFFE5</div><div class='add'>+0x2170 = 0xFF04</div><div class='add'>+0x2171 = 0xFFE0</div><div class='add'>+0x2172 = 0xFFE1</div><div class='add'>+0x2173 = 0xFF05</div><div class='add'>+0x2174 = 0xFF03</div><div class='add'>+0x2175 = 0xFF06</div><div class='add'>+0x2176 = 0xFF0A</div><div class='add'>+0x2177 = 0xFF20</div><div class='add'>+0x2178 = 0x00A7</div><div class='add'>+0x2179 = 0x2606</div><div class='add'>+0x217A = 0x2605</div><div class='add'>+0x217B = 0x25CB</div><div class='add'>+0x217C = 0x25CF</div><div class='add'>+0x217D = 0x25CE</div><div class='add'>+0x217E = 0x25C7</div><div class='add'>+0x2221 = 0x25C6</div><div class='add'>+0x2222 = 0x25A1</div><div class='add'>+0x2223 = 0x25A0</div><div class='add'>+0x2224 = 0x25B3</div><div class='add'>+0x2225 = 0x25B2</div><div class='add'>+0x2226 = 0x25BD</div><div class='add'>+0x2227 = 0x25BC</div><div class='add'>+0x2228 = 0x203B</div><div class='add'>+0x2229 = 0x3012</div><div class='add'>+0x222A = 0x2192</div><div class='add'>+0x222B = 0x2190</div><div class='add'>+0x222C = 0x2191</div><div class='add'>+0x222D = 0x2193</div><div class='add'>+0x222E = 0x3013</div><div class='add'>+0x223A = 0x2208</div><div class='add'>+0x223B = 0x220B</div><div class='add'>+0x223C = 0x2286</div><div class='add'>+0x223D = 0x2287</div><div class='add'>+0x223E = 0x2282</div><div class='add'>+0x223F = 0x2283</div><div class='add'>+0x2240 = 0x222A</div><div class='add'>+0x2241 = 0x2229</div><div class='add'>+0x224A = 0x2227</div><div class='add'>+0x224B = 0x2228</div><div class='add'>+0x224C = 0xFFE2</div><div class='add'>+0x224D = 0x21D2</div><div class='add'>+0x224E = 0x21D4</div><div class='add'>+0x224F = 0x2200</div><div class='add'>+0x2250 = 0x2203</div><div class='add'>+0x225C = 0x2220</div><div class='add'>+0x225D = 0x22A5</div><div class='add'>+0x225E = 0x2312</div><div class='add'>+0x225F = 0x2202</div><div class='add'>+0x2260 = 0x2207</div><div class='add'>+0x2261 = 0x2261</div><div class='add'>+0x2262 = 0x2252</div><div class='add'>+0x2263 = 0x226A</div><div class='add'>+0x2264 = 0x226B</div><div class='add'>+0x2265 = 0x221A</div><div class='add'>+0x2266 = 0x223D</div><div class='add'>+0x2267 = 0x221D</div><div class='add'>+0x2268 = 0x2235</div><div class='add'>+0x2269 = 0x222B</div><div class='add'>+0x226A = 0x222C</div><div class='add'>+0x2272 = 0x212B</div><div class='add'>+0x2273 = 0x2030</div><div class='add'>+0x2274 = 0x266F</div><div class='add'>+0x2275 = 0x266D</div><div class='add'>+0x2276 = 0x266A</div><div class='add'>+0x2277 = 0x2020</div><div class='add'>+0x2278 = 0x2021</div><div class='add'>+0x2279 = 0x00B6</div><div class='add'>+0x227E = 0x25EF</div><div class='add'>+0x2330 = 0xFF10</div><div class='add'>+0x2331 = 0xFF11</div><div class='add'>+0x2332 = 0xFF12</div><div class='add'>+0x2333 = 0xFF13</div><div class='add'>+0x2334 = 0xFF14</div><div class='add'>+0x2335 = 0xFF15</div><div class='add'>+0x2336 = 0xFF16</div><div class='add'>+0x2337 = 0xFF17</div><div class='add'>+0x2338 = 0xFF18</div><div class='add'>+0x2339 = 0xFF19</div><div class='add'>+0x2341 = 0xFF21</div><div class='add'>+0x2342 = 0xFF22</div><div class='add'>+0x2343 = 0xFF23</div><div class='add'>+0x2344 = 0xFF24</div><div class='add'>+0x2345 = 0xFF25</div><div class='add'>+0x2346 = 0xFF26</div><div class='add'>+0x2347 = 0xFF27</div><div class='add'>+0x2348 = 0xFF28</div><div class='add'>+0x2349 = 0xFF29</div><div class='add'>+0x234A = 0xFF2A</div><div class='add'>+0x234B = 0xFF2B</div><div class='add'>+0x234C = 0xFF2C</div><div class='add'>+0x234D = 0xFF2D</div><div class='add'>+0x234E = 0xFF2E</div><div class='add'>+0x234F = 0xFF2F</div><div class='add'>+0x2350 = 0xFF30</div><div class='add'>+0x2351 = 0xFF31</div><div class='add'>+0x2352 = 0xFF32</div><div class='add'>+0x2353 = 0xFF33</div><div class='add'>+0x2354 = 0xFF34</div><div class='add'>+0x2355 = 0xFF35</div><div class='add'>+0x2356 = 0xFF36</div><div class='add'>+0x2357 = 0xFF37</div><div class='add'>+0x2358 = 0xFF38</div><div class='add'>+0x2359 = 0xFF39</div><div class='add'>+0x235A = 0xFF3A</div><div class='add'>+0x2361 = 0xFF41</div><div class='add'>+0x2362 = 0xFF42</div><div class='add'>+0x2363 = 0xFF43</div><div class='add'>+0x2364 = 0xFF44</div><div class='add'>+0x2365 = 0xFF45</div><div class='add'>+0x2366 = 0xFF46</div><div class='add'>+0x2367 = 0xFF47</div><div class='add'>+0x2368 = 0xFF48</div><div class='add'>+0x2369 = 0xFF49</div><div class='add'>+0x236A = 0xFF4A</div><div class='add'>+0x236B = 0xFF4B</div><div class='add'>+0x236C = 0xFF4C</div><div class='add'>+0x236D = 0xFF4D</div><div class='add'>+0x236E = 0xFF4E</div><div class='add'>+0x236F = 0xFF4F</div><div class='add'>+0x2370 = 0xFF50</div><div class='add'>+0x2371 = 0xFF51</div><div class='add'>+0x2372 = 0xFF52</div><div class='add'>+0x2373 = 0xFF53</div><div class='add'>+0x2374 = 0xFF54</div><div class='add'>+0x2375 = 0xFF55</div><div class='add'>+0x2376 = 0xFF56</div><div class='add'>+0x2377 = 0xFF57</div><div class='add'>+0x2378 = 0xFF58</div><div class='add'>+0x2379 = 0xFF59</div><div class='add'>+0x237A = 0xFF5A</div><div class='add'>+0x2421 = 0x3041</div><div class='add'>+0x2422 = 0x3042</div><div class='add'>+0x2423 = 0x3043</div><div class='add'>+0x2424 = 0x3044</div><div class='add'>+0x2425 = 0x3045</div><div class='add'>+0x2426 = 0x3046</div><div class='add'>+0x2427 = 0x3047</div><div class='add'>+0x2428 = 0x3048</div><div class='add'>+0x2429 = 0x3049</div><div class='add'>+0x242A = 0x304A</div><div class='add'>+0x242B = 0x304B</div><div class='add'>+0x242C = 0x304C</div><div class='add'>+0x242D = 0x304D</div><div class='add'>+0x242E = 0x304E</div><div class='add'>+0x242F = 0x304F</div><div class='add'>+0x2430 = 0x3050</div><div class='add'>+0x2431 = 0x3051</div><div class='add'>+0x2432 = 0x3052</div><div class='add'>+0x2433 = 0x3053</div><div class='add'>+0x2434 = 0x3054</div><div class='add'>+0x2435 = 0x3055</div><div class='add'>+0x2436 = 0x3056</div><div class='add'>+0x2437 = 0x3057</div><div class='add'>+0x2438 = 0x3058</div><div class='add'>+0x2439 = 0x3059</div><div class='add'>+0x243A = 0x305A</div><div class='add'>+0x243B = 0x305B</div><div class='add'>+0x243C = 0x305C</div><div class='add'>+0x243D = 0x305D</div><div class='add'>+0x243E = 0x305E</div><div class='add'>+0x243F = 0x305F</div><div class='add'>+0x2440 = 0x3060</div><div class='add'>+0x2441 = 0x3061</div><div class='add'>+0x2442 = 0x3062</div><div class='add'>+0x2443 = 0x3063</div><div class='add'>+0x2444 = 0x3064</div><div class='add'>+0x2445 = 0x3065</div><div class='add'>+0x2446 = 0x3066</div><div class='add'>+0x2447 = 0x3067</div><div class='add'>+0x2448 = 0x3068</div><div class='add'>+0x2449 = 0x3069</div><div class='add'>+0x244A = 0x306A</div><div class='add'>+0x244B = 0x306B</div><div class='add'>+0x244C = 0x306C</div><div class='add'>+0x244D = 0x306D</div><div class='add'>+0x244E = 0x306E</div><div class='add'>+0x244F = 0x306F</div><div class='add'>+0x2450 = 0x3070</div><div class='add'>+0x2451 = 0x3071</div><div class='add'>+0x2452 = 0x3072</div><div class='add'>+0x2453 = 0x3073</div><div class='add'>+0x2454 = 0x3074</div><div class='add'>+0x2455 = 0x3075</div><div class='add'>+0x2456 = 0x3076</div><div class='add'>+0x2457 = 0x3077</div><div class='add'>+0x2458 = 0x3078</div><div class='add'>+0x2459 = 0x3079</div><div class='add'>+0x245A = 0x307A</div><div class='add'>+0x245B = 0x307B</div><div class='add'>+0x245C = 0x307C</div><div class='add'>+0x245D = 0x307D</div><div class='add'>+0x245E = 0x307E</div><div class='add'>+0x245F = 0x307F</div><div class='add'>+0x2460 = 0x3080</div><div class='add'>+0x2461 = 0x3081</div><div class='add'>+0x2462 = 0x3082</div><div class='add'>+0x2463 = 0x3083</div><div class='add'>+0x2464 = 0x3084</div><div class='add'>+0x2465 = 0x3085</div><div class='add'>+0x2466 = 0x3086</div><div class='add'>+0x2467 = 0x3087</div><div class='add'>+0x2468 = 0x3088</div><div class='add'>+0x2469 = 0x3089</div><div class='add'>+0x246A = 0x308A</div><div class='add'>+0x246B = 0x308B</div><div class='add'>+0x246C = 0x308C</div><div class='add'>+0x246D = 0x308D</div><div class='add'>+0x246E = 0x308E</div><div class='add'>+0x246F = 0x308F</div><div class='add'>+0x2470 = 0x3090</div><div class='add'>+0x2471 = 0x3091</div><div class='add'>+0x2472 = 0x3092</div><div class='add'>+0x2473 = 0x3093</div><div class='add'>+0x2521 = 0x30A1</div><div class='add'>+0x2522 = 0x30A2</div><div class='add'>+0x2523 = 0x30A3</div><div class='add'>+0x2524 = 0x30A4</div><div class='add'>+0x2525 = 0x30A5</div><div class='add'>+0x2526 = 0x30A6</div><div class='add'>+0x2527 = 0x30A7</div><div class='add'>+0x2528 = 0x30A8</div><div class='add'>+0x2529 = 0x30A9</div><div class='add'>+0x252A = 0x30AA</div><div class='add'>+0x252B = 0x30AB</div><div class='add'>+0x252C = 0x30AC</div><div class='add'>+0x252D = 0x30AD</div><div class='add'>+0x252E = 0x30AE</div><div class='add'>+0x252F = 0x30AF</div><div class='add'>+0x2530 = 0x30B0</div><div class='add'>+0x2531 = 0x30B1</div><div class='add'>+0x2532 = 0x30B2</div><div class='add'>+0x2533 = 0x30B3</div><div class='add'>+0x2534 = 0x30B4</div><div class='add'>+0x2535 = 0x30B5</div><div class='add'>+0x2536 = 0x30B6</div><div class='add'>+0x2537 = 0x30B7</div><div class='add'>+0x2538 = 0x30B8</div><div class='add'>+0x2539 = 0x30B9</div><div class='add'>+0x253A = 0x30BA</div><div class='add'>+0x253B = 0x30BB</div><div class='add'>+0x253C = 0x30BC</div><div class='add'>+0x253D = 0x30BD</div><div class='add'>+0x253E = 0x30BE</div><div class='add'>+0x253F = 0x30BF</div><div class='add'>+0x2540 = 0x30C0</div><div class='add'>+0x2541 = 0x30C1</div><div class='add'>+0x2542 = 0x30C2</div><div class='add'>+0x2543 = 0x30C3</div><div class='add'>+0x2544 = 0x30C4</div><div class='add'>+0x2545 = 0x30C5</div><div class='add'>+0x2546 = 0x30C6</div><div class='add'>+0x2547 = 0x30C7</div><div class='add'>+0x2548 = 0x30C8</div><div class='add'>+0x2549 = 0x30C9</div><div class='add'>+0x254A = 0x30CA</div><div class='add'>+0x254B = 0x30CB</div><div class='add'>+0x254C = 0x30CC</div><div class='add'>+0x254D = 0x30CD</div><div class='add'>+0x254E = 0x30CE</div><div class='add'>+0x254F = 0x30CF</div><div class='add'>+0x2550 = 0x30D0</div><div class='add'>+0x2551 = 0x30D1</div><div class='add'>+0x2552 = 0x30D2</div><div class='add'>+0x2553 = 0x30D3</div><div class='add'>+0x2554 = 0x30D4</div><div class='add'>+0x2555 = 0x30D5</div><div class='add'>+0x2556 = 0x30D6</div><div class='add'>+0x2557 = 0x30D7</div><div class='add'>+0x2558 = 0x30D8</div><div class='add'>+0x2559 = 0x30D9</div><div class='add'>+0x255A = 0x30DA</div><div class='add'>+0x255B = 0x30DB</div><div class='add'>+0x255C = 0x30DC</div><div class='add'>+0x255D = 0x30DD</div><div class='add'>+0x255E = 0x30DE</div><div class='add'>+0x255F = 0x30DF</div><div class='add'>+0x2560 = 0x30E0</div><div class='add'>+0x2561 = 0x30E1</div><div class='add'>+0x2562 = 0x30E2</div><div class='add'>+0x2563 = 0x30E3</div><div class='add'>+0x2564 = 0x30E4</div><div class='add'>+0x2565 = 0x30E5</div><div class='add'>+0x2566 = 0x30E6</div><div class='add'>+0x2567 = 0x30E7</div><div class='add'>+0x2568 = 0x30E8</div><div class='add'>+0x2569 = 0x30E9</div><div class='add'>+0x256A = 0x30EA</div><div class='add'>+0x256B = 0x30EB</div><div class='add'>+0x256C = 0x30EC</div><div class='add'>+0x256D = 0x30ED</div><div class='add'>+0x256E = 0x30EE</div><div class='add'>+0x256F = 0x30EF</div><div class='add'>+0x2570 = 0x30F0</div><div class='add'>+0x2571 = 0x30F1</div><div class='add'>+0x2572 = 0x30F2</div><div class='add'>+0x2573 = 0x30F3</div><div class='add'>+0x2574 = 0x30F4</div><div class='add'>+0x2575 = 0x30F5</div><div class='add'>+0x2576 = 0x30F6</div><div class='add'>+0x2621 = 0x0391</div><div class='add'>+0x2622 = 0x0392</div><div class='add'>+0x2623 = 0x0393</div><div class='add'>+0x2624 = 0x0394</div><div class='add'>+0x2625 = 0x0395</div><div class='add'>+0x2626 = 0x0396</div><div class='add'>+0x2627 = 0x0397</div><div class='add'>+0x2628 = 0x0398</div><div class='add'>+0x2629 = 0x0399</div><div class='add'>+0x262A = 0x039A</div><div class='add'>+0x262B = 0x039B</div><div class='add'>+0x262C = 0x039C</div><div class='add'>+0x262D = 0x039D</div><div class='add'>+0x262E = 0x039E</div><div class='add'>+0x262F = 0x039F</div><div class='add'>+0x2630 = 0x03A0</div><div class='add'>+0x2631 = 0x03A1</div><div class='add'>+0x2632 = 0x03A3</div><div class='add'>+0x2633 = 0x03A4</div><div class='add'>+0x2634 = 0x03A5</div><div class='add'>+0x2635 = 0x03A6</div><div class='add'>+0x2636 = 0x03A7</div><div class='add'>+0x2637 = 0x03A8</div><div class='add'>+0x2638 = 0x03A9</div><div class='add'>+0x2641 = 0x03B1</div><div class='add'>+0x2642 = 0x03B2</div><div class='add'>+0x2643 = 0x03B3</div><div class='add'>+0x2644 = 0x03B4</div><div class='add'>+0x2645 = 0x03B5</div><div class='add'>+0x2646 = 0x03B6</div><div class='add'>+0x2647 = 0x03B7</div><div class='add'>+0x2648 = 0x03B8</div><div class='add'>+0x2649 = 0x03B9</div><div class='add'>+0x264A = 0x03BA</div><div class='add'>+0x264B = 0x03BB</div><div class='add'>+0x264C = 0x03BC</div><div class='add'>+0x264D = 0x03BD</div><div class='add'>+0x264E = 0x03BE</div><div class='add'>+0x264F = 0x03BF</div><div class='add'>+0x2650 = 0x03C0</div><div class='add'>+0x2651 = 0x03C1</div><div class='add'>+0x2652 = 0x03C3</div><div class='add'>+0x2653 = 0x03C4</div><div class='add'>+0x2654 = 0x03C5</div><div class='add'>+0x2655 = 0x03C6</div><div class='add'>+0x2656 = 0x03C7</div><div class='add'>+0x2657 = 0x03C8</div><div class='add'>+0x2658 = 0x03C9</div><div class='add'>+0x2721 = 0x0410</div><div class='add'>+0x2722 = 0x0411</div><div class='add'>+0x2723 = 0x0412</div><div class='add'>+0x2724 = 0x0413</div><div class='add'>+0x2725 = 0x0414</div><div class='add'>+0x2726 = 0x0415</div><div class='add'>+0x2727 = 0x0401</div><div class='add'>+0x2728 = 0x0416</div><div class='add'>+0x2729 = 0x0417</div><div class='add'>+0x272A = 0x0418</div><div class='add'>+0x272B = 0x0419</div><div class='add'>+0x272C = 0x041A</div><div class='add'>+0x272D = 0x041B</div><div class='add'>+0x272E = 0x041C</div><div class='add'>+0x272F = 0x041D</div><div class='add'>+0x2730 = 0x041E</div><div class='add'>+0x2731 = 0x041F</div><div class='add'>+0x2732 = 0x0420</div><div class='add'>+0x2733 = 0x0421</div><div class='add'>+0x2734 = 0x0422</div><div class='add'>+0x2735 = 0x0423</div><div class='add'>+0x2736 = 0x0424</div><div class='add'>+0x2737 = 0x0425</div><div class='add'>+0x2738 = 0x0426</div><div class='add'>+0x2739 = 0x0427</div><div class='add'>+0x273A = 0x0428</div><div class='add'>+0x273B = 0x0429</div><div class='add'>+0x273C = 0x042A</div><div class='add'>+0x273D = 0x042B</div><div class='add'>+0x273E = 0x042C</div><div class='add'>+0x273F = 0x042D</div><div class='add'>+0x2740 = 0x042E</div><div class='add'>+0x2741 = 0x042F</div><div class='add'>+0x2751 = 0x0430</div><div class='add'>+0x2752 = 0x0431</div><div class='add'>+0x2753 = 0x0432</div><div class='add'>+0x2754 = 0x0433</div><div class='add'>+0x2755 = 0x0434</div><div class='add'>+0x2756 = 0x0435</div><div class='add'>+0x2757 = 0x0451</div><div class='add'>+0x2758 = 0x0436</div><div class='add'>+0x2759 = 0x0437</div><div class='add'>+0x275A = 0x0438</div><div class='add'>+0x275B = 0x0439</div><div class='add'>+0x275C = 0x043A</div><div class='add'>+0x275D = 0x043B</div><div class='add'>+0x275E = 0x043C</div><div class='add'>+0x275F = 0x043D</div><div class='add'>+0x2760 = 0x043E</div><div class='add'>+0x2761 = 0x043F</div><div class='add'>+0x2762 = 0x0440</div><div class='add'>+0x2763 = 0x0441</div><div class='add'>+0x2764 = 0x0442</div><div class='add'>+0x2765 = 0x0443</div><div class='add'>+0x2766 = 0x0444</div><div class='add'>+0x2767 = 0x0445</div><div class='add'>+0x2768 = 0x0446</div><div class='add'>+0x2769 = 0x0447</div><div class='add'>+0x276A = 0x0448</div><div class='add'>+0x276B = 0x0449</div><div class='add'>+0x276C = 0x044A</div><div class='add'>+0x276D = 0x044B</div><div class='add'>+0x276E = 0x044C</div><div class='add'>+0x276F = 0x044D</div><div class='add'>+0x2770 = 0x044E</div><div class='add'>+0x2771 = 0x044F</div><div class='add'>+0x2821 = 0x2500</div><div class='add'>+0x2822 = 0x2502</div><div class='add'>+0x2823 = 0x250C</div><div class='add'>+0x2824 = 0x2510</div><div class='add'>+0x2825 = 0x2518</div><div class='add'>+0x2826 = 0x2514</div><div class='add'>+0x2827 = 0x251C</div><div class='add'>+0x2828 = 0x252C</div><div class='add'>+0x2829 = 0x2524</div><div class='add'>+0x282A = 0x2534</div><div class='add'>+0x282B = 0x253C</div><div class='add'>+0x282C = 0x2501</div><div class='add'>+0x282D = 0x2503</div><div class='add'>+0x282E = 0x250F</div><div class='add'>+0x282F = 0x2513</div><div class='add'>+0x2830 = 0x251B</div><div class='add'>+0x2831 = 0x2517</div><div class='add'>+0x2832 = 0x2523</div><div class='add'>+0x2833 = 0x2533</div><div class='add'>+0x2834 = 0x252B</div><div class='add'>+0x2835 = 0x253B</div><div class='add'>+0x2836 = 0x254B</div><div class='add'>+0x2837 = 0x2520</div><div class='add'>+0x2838 = 0x252F</div><div class='add'>+0x2839 = 0x2528</div><div class='add'>+0x283A = 0x2537</div><div class='add'>+0x283B = 0x253F</div><div class='add'>+0x283C = 0x251D</div><div class='add'>+0x283D = 0x2530</div><div class='add'>+0x283E = 0x2525</div><div class='add'>+0x283F = 0x2538</div><div class='add'>+0x2840 = 0x2542</div><div class='add'>+0x3021 = 0x4E9C</div><div class='add'>+0x3022 = 0x5516</div><div class='add'>+0x3023 = 0x5A03</div><div class='add'>+0x3024 = 0x963F</div><div class='add'>+0x3025 = 0x54C0</div><div class='add'>+0x3026 = 0x611B</div><div class='add'>+0x3027 = 0x6328</div><div class='add'>+0x3028 = 0x59F6</div><div class='add'>+0x3029 = 0x9022</div><div class='add'>+0x302A = 0x8475</div><div class='add'>+0x302B = 0x831C</div><div class='add'>+0x302C = 0x7A50</div><div class='add'>+0x302D = 0x60AA</div><div class='add'>+0x302E = 0x63E1</div><div class='add'>+0x302F = 0x6E25</div><div class='add'>+0x3030 = 0x65ED</div><div class='add'>+0x3031 = 0x8466</div><div class='add'>+0x3032 = 0x82A6</div><div class='add'>+0x3033 = 0x9BF5</div><div class='add'>+0x3034 = 0x6893</div><div class='add'>+0x3035 = 0x5727</div><div class='add'>+0x3036 = 0x65A1</div><div class='add'>+0x3037 = 0x6271</div><div class='add'>+0x3038 = 0x5B9B</div><div class='add'>+0x3039 = 0x59D0</div><div class='add'>+0x303A = 0x867B</div><div class='add'>+0x303B = 0x98F4</div><div class='add'>+0x303C = 0x7D62</div><div class='add'>+0x303D = 0x7DBE</div><div class='add'>+0x303E = 0x9B8E</div><div class='add'>+0x303F = 0x6216</div><div class='add'>+0x3040 = 0x7C9F</div><div class='add'>+0x3041 = 0x88B7</div><div class='add'>+0x3042 = 0x5B89</div><div class='add'>+0x3043 = 0x5EB5</div><div class='add'>+0x3044 = 0x6309</div><div class='add'>+0x3045 = 0x6697</div><div class='add'>+0x3046 = 0x6848</div><div class='add'>+0x3047 = 0x95C7</div><div class='add'>+0x3048 = 0x978D</div><div class='add'>+0x3049 = 0x674F</div><div class='add'>+0x304A = 0x4EE5</div><div class='add'>+0x304B = 0x4F0A</div><div class='add'>+0x304C = 0x4F4D</div><div class='add'>+0x304D = 0x4F9D</div><div class='add'>+0x304E = 0x5049</div><div class='add'>+0x304F = 0x56F2</div><div class='add'>+0x3050 = 0x5937</div><div class='add'>+0x3051 = 0x59D4</div><div class='add'>+0x3052 = 0x5A01</div><div class='add'>+0x3053 = 0x5C09</div><div class='add'>+0x3054 = 0x60DF</div><div class='add'>+0x3055 = 0x610F</div><div class='add'>+0x3056 = 0x6170</div><div class='add'>+0x3057 = 0x6613</div><div class='add'>+0x3058 = 0x6905</div><div class='add'>+0x3059 = 0x70BA</div><div class='add'>+0x305A = 0x754F</div><div class='add'>+0x305B = 0x7570</div><div class='add'>+0x305C = 0x79FB</div><div class='add'>+0x305D = 0x7DAD</div><div class='add'>+0x305E = 0x7DEF</div><div class='add'>+0x305F = 0x80C3</div><div class='add'>+0x3060 = 0x840E</div><div class='add'>+0x3061 = 0x8863</div><div class='add'>+0x3062 = 0x8B02</div><div class='add'>+0x3063 = 0x9055</div><div class='add'>+0x3064 = 0x907A</div><div class='add'>+0x3065 = 0x533B</div><div class='add'>+0x3066 = 0x4E95</div><div class='add'>+0x3067 = 0x4EA5</div><div class='add'>+0x3068 = 0x57DF</div><div class='add'>+0x3069 = 0x80B2</div><div class='add'>+0x306A = 0x90C1</div><div class='add'>+0x306B = 0x78EF</div><div class='add'>+0x306C = 0x4E00</div><div class='add'>+0x306D = 0x58F1</div><div class='add'>+0x306E = 0x6EA2</div><div class='add'>+0x306F = 0x9038</div><div class='add'>+0x3070 = 0x7A32</div><div class='add'>+0x3071 = 0x8328</div><div class='add'>+0x3072 = 0x828B</div><div class='add'>+0x3073 = 0x9C2F</div><div class='add'>+0x3074 = 0x5141</div><div class='add'>+0x3075 = 0x5370</div><div class='add'>+0x3076 = 0x54BD</div><div class='add'>+0x3077 = 0x54E1</div><div class='add'>+0x3078 = 0x56E0</div><div class='add'>+0x3079 = 0x59FB</div><div class='add'>+0x307A = 0x5F15</div><div class='add'>+0x307B = 0x98F2</div><div class='add'>+0x307C = 0x6DEB</div><div class='add'>+0x307D = 0x80E4</div><div class='add'>+0x307E = 0x852D</div><div class='add'>+0x3121 = 0x9662</div><div class='add'>+0x3122 = 0x9670</div><div class='add'>+0x3123 = 0x96A0</div><div class='add'>+0x3124 = 0x97FB</div><div class='add'>+0x3125 = 0x540B</div><div class='add'>+0x3126 = 0x53F3</div><div class='add'>+0x3127 = 0x5B87</div><div class='add'>+0x3128 = 0x70CF</div><div class='add'>+0x3129 = 0x7FBD</div><div class='add'>+0x312A = 0x8FC2</div><div class='add'>+0x312B = 0x96E8</div><div class='add'>+0x312C = 0x536F</div><div class='add'>+0x312D = 0x9D5C</div><div class='add'>+0x312E = 0x7ABA</div><div class='add'>+0x312F = 0x4E11</div><div class='add'>+0x3130 = 0x7893</div><div class='add'>+0x3131 = 0x81FC</div><div class='add'>+0x3132 = 0x6E26</div><div class='add'>+0x3133 = 0x5618</div><div class='add'>+0x3134 = 0x5504</div><div class='add'>+0x3135 = 0x6B1D</div><div class='add'>+0x3136 = 0x851A</div><div class='add'>+0x3137 = 0x9C3B</div><div class='add'>+0x3138 = 0x59E5</div><div class='add'>+0x3139 = 0x53A9</div><div class='add'>+0x313A = 0x6D66</div><div class='add'>+0x313B = 0x74DC</div><div class='add'>+0x313C = 0x958F</div><div class='add'>+0x313D = 0x5642</div><div class='add'>+0x313E = 0x4E91</div><div class='add'>+0x313F = 0x904B</div><div class='add'>+0x3140 = 0x96F2</div><div class='add'>+0x3141 = 0x834F</div><div class='add'>+0x3142 = 0x990C</div><div class='add'>+0x3143 = 0x53E1</div><div class='add'>+0x3144 = 0x55B6</div><div class='add'>+0x3145 = 0x5B30</div><div class='add'>+0x3146 = 0x5F71</div><div class='add'>+0x3147 = 0x6620</div><div class='add'>+0x3148 = 0x66F3</div><div class='add'>+0x3149 = 0x6804</div><div class='add'>+0x314A = 0x6C38</div><div class='add'>+0x314B = 0x6CF3</div><div class='add'>+0x314C = 0x6D29</div><div class='add'>+0x314D = 0x745B</div><div class='add'>+0x314E = 0x76C8</div><div class='add'>+0x314F = 0x7A4E</div><div class='add'>+0x3150 = 0x9834</div><div class='add'>+0x3151 = 0x82F1</div><div class='add'>+0x3152 = 0x885B</div><div class='add'>+0x3153 = 0x8A60</div><div class='add'>+0x3154 = 0x92ED</div><div class='add'>+0x3155 = 0x6DB2</div><div class='add'>+0x3156 = 0x75AB</div><div class='add'>+0x3157 = 0x76CA</div><div class='add'>+0x3158 = 0x99C5</div><div class='add'>+0x3159 = 0x60A6</div><div class='add'>+0x315A = 0x8B01</div><div class='add'>+0x315B = 0x8D8A</div><div class='add'>+0x315C = 0x95B2</div><div class='add'>+0x315D = 0x698E</div><div class='add'>+0x315E = 0x53AD</div><div class='add'>+0x315F = 0x5186</div><div class='add'>+0x3160 = 0x5712</div><div class='add'>+0x3161 = 0x5830</div><div class='add'>+0x3162 = 0x5944</div><div class='add'>+0x3163 = 0x5BB4</div><div class='add'>+0x3164 = 0x5EF6</div><div class='add'>+0x3165 = 0x6028</div><div class='add'>+0x3166 = 0x63A9</div><div class='add'>+0x3167 = 0x63F4</div><div class='add'>+0x3168 = 0x6CBF</div><div class='add'>+0x3169 = 0x6F14</div><div class='add'>+0x316A = 0x708E</div><div class='add'>+0x316B = 0x7114</div><div class='add'>+0x316C = 0x7159</div><div class='add'>+0x316D = 0x71D5</div><div class='add'>+0x316E = 0x733F</div><div class='add'>+0x316F = 0x7E01</div><div class='add'>+0x3170 = 0x8276</div><div class='add'>+0x3171 = 0x82D1</div><div class='add'>+0x3172 = 0x8597</div><div class='add'>+0x3173 = 0x9060</div><div class='add'>+0x3174 = 0x925B</div><div class='add'>+0x3175 = 0x9D1B</div><div class='add'>+0x3176 = 0x5869</div><div class='add'>+0x3177 = 0x65BC</div><div class='add'>+0x3178 = 0x6C5A</div><div class='add'>+0x3179 = 0x7525</div><div class='add'>+0x317A = 0x51F9</div><div class='add'>+0x317B = 0x592E</div><div class='add'>+0x317C = 0x5965</div><div class='add'>+0x317D = 0x5F80</div><div class='add'>+0x317E = 0x5FDC</div><div class='add'>+0x3221 = 0x62BC</div><div class='add'>+0x3222 = 0x65FA</div><div class='add'>+0x3223 = 0x6A2A</div><div class='add'>+0x3224 = 0x6B27</div><div class='add'>+0x3225 = 0x6BB4</div><div class='add'>+0x3226 = 0x738B</div><div class='add'>+0x3227 = 0x7FC1</div><div class='add'>+0x3228 = 0x8956</div><div class='add'>+0x3229 = 0x9D2C</div><div class='add'>+0x322A = 0x9D0E</div><div class='add'>+0x322B = 0x9EC4</div><div class='add'>+0x322C = 0x5CA1</div><div class='add'>+0x322D = 0x6C96</div><div class='add'>+0x322E = 0x837B</div><div class='add'>+0x322F = 0x5104</div><div class='add'>+0x3230 = 0x5C4B</div><div class='add'>+0x3231 = 0x61B6</div><div class='add'>+0x3232 = 0x81C6</div><div class='add'>+0x3233 = 0x6876</div><div class='add'>+0x3234 = 0x7261</div><div class='add'>+0x3235 = 0x4E59</div><div class='add'>+0x3236 = 0x4FFA</div><div class='add'>+0x3237 = 0x5378</div><div class='add'>+0x3238 = 0x6069</div><div class='add'>+0x3239 = 0x6E29</div><div class='add'>+0x323A = 0x7A4F</div><div class='add'>+0x323B = 0x97F3</div><div class='add'>+0x323C = 0x4E0B</div><div class='add'>+0x323D = 0x5316</div><div class='add'>+0x323E = 0x4EEE</div><div class='add'>+0x323F = 0x4F55</div><div class='add'>+0x3240 = 0x4F3D</div><div class='add'>+0x3241 = 0x4FA1</div><div class='add'>+0x3242 = 0x4F73</div><div class='add'>+0x3243 = 0x52A0</div><div class='add'>+0x3244 = 0x53EF</div><div class='add'>+0x3245 = 0x5609</div><div class='add'>+0x3246 = 0x590F</div><div class='add'>+0x3247 = 0x5AC1</div><div class='add'>+0x3248 = 0x5BB6</div><div class='add'>+0x3249 = 0x5BE1</div><div class='add'>+0x324A = 0x79D1</div><div class='add'>+0x324B = 0x6687</div><div class='add'>+0x324C = 0x679C</div><div class='add'>+0x324D = 0x67B6</div><div class='add'>+0x324E = 0x6B4C</div><div class='add'>+0x324F = 0x6CB3</div><div class='add'>+0x3250 = 0x706B</div><div class='add'>+0x3251 = 0x73C2</div><div class='add'>+0x3252 = 0x798D</div><div class='add'>+0x3253 = 0x79BE</div><div class='add'>+0x3254 = 0x7A3C</div><div class='add'>+0x3255 = 0x7B87</div><div class='add'>+0x3256 = 0x82B1</div><div class='add'>+0x3257 = 0x82DB</div><div class='add'>+0x3258 = 0x8304</div><div class='add'>+0x3259 = 0x8377</div><div class='add'>+0x325A = 0x83EF</div><div class='add'>+0x325B = 0x83D3</div><div class='add'>+0x325C = 0x8766</div><div class='add'>+0x325D = 0x8AB2</div><div class='add'>+0x325E = 0x5629</div><div class='add'>+0x325F = 0x8CA8</div><div class='add'>+0x3260 = 0x8FE6</div><div class='add'>+0x3261 = 0x904E</div><div class='add'>+0x3262 = 0x971E</div><div class='add'>+0x3263 = 0x868A</div><div class='add'>+0x3264 = 0x4FC4</div><div class='add'>+0x3265 = 0x5CE8</div><div class='add'>+0x3266 = 0x6211</div><div class='add'>+0x3267 = 0x7259</div><div class='add'>+0x3268 = 0x753B</div><div class='add'>+0x3269 = 0x81E5</div><div class='add'>+0x326A = 0x82BD</div><div class='add'>+0x326B = 0x86FE</div><div class='add'>+0x326C = 0x8CC0</div><div class='add'>+0x326D = 0x96C5</div><div class='add'>+0x326E = 0x9913</div><div class='add'>+0x326F = 0x99D5</div><div class='add'>+0x3270 = 0x4ECB</div><div class='add'>+0x3271 = 0x4F1A</div><div class='add'>+0x3272 = 0x89E3</div><div class='add'>+0x3273 = 0x56DE</div><div class='add'>+0x3274 = 0x584A</div><div class='add'>+0x3275 = 0x58CA</div><div class='add'>+0x3276 = 0x5EFB</div><div class='add'>+0x3277 = 0x5FEB</div><div class='add'>+0x3278 = 0x602A</div><div class='add'>+0x3279 = 0x6094</div><div class='add'>+0x327A = 0x6062</div><div class='add'>+0x327B = 0x61D0</div><div class='add'>+0x327C = 0x6212</div><div class='add'>+0x327D = 0x62D0</div><div class='add'>+0x327E = 0x6539</div><div class='add'>+0x3321 = 0x9B41</div><div class='add'>+0x3322 = 0x6666</div><div class='add'>+0x3323 = 0x68B0</div><div class='add'>+0x3324 = 0x6D77</div><div class='add'>+0x3325 = 0x7070</div><div class='add'>+0x3326 = 0x754C</div><div class='add'>+0x3327 = 0x7686</div><div class='add'>+0x3328 = 0x7D75</div><div class='add'>+0x3329 = 0x82A5</div><div class='add'>+0x332A = 0x87F9</div><div class='add'>+0x332B = 0x958B</div><div class='add'>+0x332C = 0x968E</div><div class='add'>+0x332D = 0x8C9D</div><div class='add'>+0x332E = 0x51F1</div><div class='add'>+0x332F = 0x52BE</div><div class='add'>+0x3330 = 0x5916</div><div class='add'>+0x3331 = 0x54B3</div><div class='add'>+0x3332 = 0x5BB3</div><div class='add'>+0x3333 = 0x5D16</div><div class='add'>+0x3334 = 0x6168</div><div class='add'>+0x3335 = 0x6982</div><div class='add'>+0x3336 = 0x6DAF</div><div class='add'>+0x3337 = 0x788D</div><div class='add'>+0x3338 = 0x84CB</div><div class='add'>+0x3339 = 0x8857</div><div class='add'>+0x333A = 0x8A72</div><div class='add'>+0x333B = 0x93A7</div><div class='add'>+0x333C = 0x9AB8</div><div class='add'>+0x333D = 0x6D6C</div><div class='add'>+0x333E = 0x99A8</div><div class='add'>+0x333F = 0x86D9</div><div class='add'>+0x3340 = 0x57A3</div><div class='add'>+0x3341 = 0x67FF</div><div class='add'>+0x3342 = 0x86CE</div><div class='add'>+0x3343 = 0x920E</div><div class='add'>+0x3344 = 0x5283</div><div class='add'>+0x3345 = 0x5687</div><div class='add'>+0x3346 = 0x5404</div><div class='add'>+0x3347 = 0x5ED3</div><div class='add'>+0x3348 = 0x62E1</div><div class='add'>+0x3349 = 0x64B9</div><div class='add'>+0x334A = 0x683C</div><div class='add'>+0x334B = 0x6838</div><div class='add'>+0x334C = 0x6BBB</div><div class='add'>+0x334D = 0x7372</div><div class='add'>+0x334E = 0x78BA</div><div class='add'>+0x334F = 0x7A6B</div><div class='add'>+0x3350 = 0x899A</div><div class='add'>+0x3351 = 0x89D2</div><div class='add'>+0x3352 = 0x8D6B</div><div class='add'>+0x3353 = 0x8F03</div><div class='add'>+0x3354 = 0x90ED</div><div class='add'>+0x3355 = 0x95A3</div><div class='add'>+0x3356 = 0x9694</div><div class='add'>+0x3357 = 0x9769</div><div class='add'>+0x3358 = 0x5B66</div><div class='add'>+0x3359 = 0x5CB3</div><div class='add'>+0x335A = 0x697D</div><div class='add'>+0x335B = 0x984D</div><div class='add'>+0x335C = 0x984E</div><div class='add'>+0x335D = 0x639B</div><div class='add'>+0x335E = 0x7B20</div><div class='add'>+0x335F = 0x6A2B</div><div class='add'>+0x3360 = 0x6A7F</div><div class='add'>+0x3361 = 0x68B6</div><div class='add'>+0x3362 = 0x9C0D</div><div class='add'>+0x3363 = 0x6F5F</div><div class='add'>+0x3364 = 0x5272</div><div class='add'>+0x3365 = 0x559D</div><div class='add'>+0x3366 = 0x6070</div><div class='add'>+0x3367 = 0x62EC</div><div class='add'>+0x3368 = 0x6D3B</div><div class='add'>+0x3369 = 0x6E07</div><div class='add'>+0x336A = 0x6ED1</div><div class='add'>+0x336B = 0x845B</div><div class='add'>+0x336C = 0x8910</div><div class='add'>+0x336D = 0x8F44</div><div class='add'>+0x336E = 0x4E14</div><div class='add'>+0x336F = 0x9C39</div><div class='add'>+0x3370 = 0x53F6</div><div class='add'>+0x3371 = 0x691B</div><div class='add'>+0x3372 = 0x6A3A</div><div class='add'>+0x3373 = 0x9784</div><div class='add'>+0x3374 = 0x682A</div><div class='add'>+0x3375 = 0x515C</div><div class='add'>+0x3376 = 0x7AC3</div><div class='add'>+0x3377 = 0x84B2</div><div class='add'>+0x3378 = 0x91DC</div><div class='add'>+0x3379 = 0x938C</div><div class='add'>+0x337A = 0x565B</div><div class='add'>+0x337B = 0x9D28</div><div class='add'>+0x337C = 0x6822</div><div class='add'>+0x337D = 0x8305</div><div class='add'>+0x337E = 0x8431</div><div class='add'>+0x3421 = 0x7CA5</div><div class='add'>+0x3422 = 0x5208</div><div class='add'>+0x3423 = 0x82C5</div><div class='add'>+0x3424 = 0x74E6</div><div class='add'>+0x3425 = 0x4E7E</div><div class='add'>+0x3426 = 0x4F83</div><div class='add'>+0x3427 = 0x51A0</div><div class='add'>+0x3428 = 0x5BD2</div><div class='add'>+0x3429 = 0x520A</div><div class='add'>+0x342A = 0x52D8</div><div class='add'>+0x342B = 0x52E7</div><div class='add'>+0x342C = 0x5DFB</div><div class='add'>+0x342D = 0x559A</div><div class='add'>+0x342E = 0x582A</div><div class='add'>+0x342F = 0x59E6</div><div class='add'>+0x3430 = 0x5B8C</div><div class='add'>+0x3431 = 0x5B98</div><div class='add'>+0x3432 = 0x5BDB</div><div class='add'>+0x3433 = 0x5E72</div><div class='add'>+0x3434 = 0x5E79</div><div class='add'>+0x3435 = 0x60A3</div><div class='add'>+0x3436 = 0x611F</div><div class='add'>+0x3437 = 0x6163</div><div class='add'>+0x3438 = 0x61BE</div><div class='add'>+0x3439 = 0x63DB</div><div class='add'>+0x343A = 0x6562</div><div class='add'>+0x343B = 0x67D1</div><div class='add'>+0x343C = 0x6853</div><div class='add'>+0x343D = 0x68FA</div><div class='add'>+0x343E = 0x6B3E</div><div class='add'>+0x343F = 0x6B53</div><div class='add'>+0x3440 = 0x6C57</div><div class='add'>+0x3441 = 0x6F22</div><div class='add'>+0x3442 = 0x6F97</div><div class='add'>+0x3443 = 0x6F45</div><div class='add'>+0x3444 = 0x74B0</div><div class='add'>+0x3445 = 0x7518</div><div class='add'>+0x3446 = 0x76E3</div><div class='add'>+0x3447 = 0x770B</div><div class='add'>+0x3448 = 0x7AFF</div><div class='add'>+0x3449 = 0x7BA1</div><div class='add'>+0x344A = 0x7C21</div><div class='add'>+0x344B = 0x7DE9</div><div class='add'>+0x344C = 0x7F36</div><div class='add'>+0x344D = 0x7FF0</div><div class='add'>+0x344E = 0x809D</div><div class='add'>+0x344F = 0x8266</div><div class='add'>+0x3450 = 0x839E</div><div class='add'>+0x3451 = 0x89B3</div><div class='add'>+0x3452 = 0x8ACC</div><div class='add'>+0x3453 = 0x8CAB</div><div class='add'>+0x3454 = 0x9084</div><div class='add'>+0x3455 = 0x9451</div><div class='add'>+0x3456 = 0x9593</div><div class='add'>+0x3457 = 0x9591</div><div class='add'>+0x3458 = 0x95A2</div><div class='add'>+0x3459 = 0x9665</div><div class='add'>+0x345A = 0x97D3</div><div class='add'>+0x345B = 0x9928</div><div class='add'>+0x345C = 0x8218</div><div class='add'>+0x345D = 0x4E38</div><div class='add'>+0x345E = 0x542B</div><div class='add'>+0x345F = 0x5CB8</div><div class='add'>+0x3460 = 0x5DCC</div><div class='add'>+0x3461 = 0x73A9</div><div class='add'>+0x3462 = 0x764C</div><div class='add'>+0x3463 = 0x773C</div><div class='add'>+0x3464 = 0x5CA9</div><div class='add'>+0x3465 = 0x7FEB</div><div class='add'>+0x3466 = 0x8D0B</div><div class='add'>+0x3467 = 0x96C1</div><div class='add'>+0x3468 = 0x9811</div><div class='add'>+0x3469 = 0x9854</div><div class='add'>+0x346A = 0x9858</div><div class='add'>+0x346B = 0x4F01</div><div class='add'>+0x346C = 0x4F0E</div><div class='add'>+0x346D = 0x5371</div><div class='add'>+0x346E = 0x559C</div><div class='add'>+0x346F = 0x5668</div><div class='add'>+0x3470 = 0x57FA</div><div class='add'>+0x3471 = 0x5947</div><div class='add'>+0x3472 = 0x5B09</div><div class='add'>+0x3473 = 0x5BC4</div><div class='add'>+0x3474 = 0x5C90</div><div class='add'>+0x3475 = 0x5E0C</div><div class='add'>+0x3476 = 0x5E7E</div><div class='add'>+0x3477 = 0x5FCC</div><div class='add'>+0x3478 = 0x63EE</div><div class='add'>+0x3479 = 0x673A</div><div class='add'>+0x347A = 0x65D7</div><div class='add'>+0x347B = 0x65E2</div><div class='add'>+0x347C = 0x671F</div><div class='add'>+0x347D = 0x68CB</div><div class='add'>+0x347E = 0x68C4</div><div class='add'>+0x3521 = 0x6A5F</div><div class='add'>+0x3522 = 0x5E30</div><div class='add'>+0x3523 = 0x6BC5</div><div class='add'>+0x3524 = 0x6C17</div><div class='add'>+0x3525 = 0x6C7D</div><div class='add'>+0x3526 = 0x757F</div><div class='add'>+0x3527 = 0x7948</div><div class='add'>+0x3528 = 0x5B63</div><div class='add'>+0x3529 = 0x7A00</div><div class='add'>+0x352A = 0x7D00</div><div class='add'>+0x352B = 0x5FBD</div><div class='add'>+0x352C = 0x898F</div><div class='add'>+0x352D = 0x8A18</div><div class='add'>+0x352E = 0x8CB4</div><div class='add'>+0x352F = 0x8D77</div><div class='add'>+0x3530 = 0x8ECC</div><div class='add'>+0x3531 = 0x8F1D</div><div class='add'>+0x3532 = 0x98E2</div><div class='add'>+0x3533 = 0x9A0E</div><div class='add'>+0x3534 = 0x9B3C</div><div class='add'>+0x3535 = 0x4E80</div><div class='add'>+0x3536 = 0x507D</div><div class='add'>+0x3537 = 0x5100</div><div class='add'>+0x3538 = 0x5993</div><div class='add'>+0x3539 = 0x5B9C</div><div class='add'>+0x353A = 0x622F</div><div class='add'>+0x353B = 0x6280</div><div class='add'>+0x353C = 0x64EC</div><div class='add'>+0x353D = 0x6B3A</div><div class='add'>+0x353E = 0x72A0</div><div class='add'>+0x353F = 0x7591</div><div class='add'>+0x3540 = 0x7947</div><div class='add'>+0x3541 = 0x7FA9</div><div class='add'>+0x3542 = 0x87FB</div><div class='add'>+0x3543 = 0x8ABC</div><div class='add'>+0x3544 = 0x8B70</div><div class='add'>+0x3545 = 0x63AC</div><div class='add'>+0x3546 = 0x83CA</div><div class='add'>+0x3547 = 0x97A0</div><div class='add'>+0x3548 = 0x5409</div><div class='add'>+0x3549 = 0x5403</div><div class='add'>+0x354A = 0x55AB</div><div class='add'>+0x354B = 0x6854</div><div class='add'>+0x354C = 0x6A58</div><div class='add'>+0x354D = 0x8A70</div><div class='add'>+0x354E = 0x7827</div><div class='add'>+0x354F = 0x6775</div><div class='add'>+0x3550 = 0x9ECD</div><div class='add'>+0x3551 = 0x5374</div><div class='add'>+0x3552 = 0x5BA2</div><div class='add'>+0x3553 = 0x811A</div><div class='add'>+0x3554 = 0x8650</div><div class='add'>+0x3555 = 0x9006</div><div class='add'>+0x3556 = 0x4E18</div><div class='add'>+0x3557 = 0x4E45</div><div class='add'>+0x3558 = 0x4EC7</div><div class='add'>+0x3559 = 0x4F11</div><div class='add'>+0x355A = 0x53CA</div><div class='add'>+0x355B = 0x5438</div><div class='add'>+0x355C = 0x5BAE</div><div class='add'>+0x355D = 0x5F13</div><div class='add'>+0x355E = 0x6025</div><div class='add'>+0x355F = 0x6551</div><div class='add'>+0x3560 = 0x673D</div><div class='add'>+0x3561 = 0x6C42</div><div class='add'>+0x3562 = 0x6C72</div><div class='add'>+0x3563 = 0x6CE3</div><div class='add'>+0x3564 = 0x7078</div><div class='add'>+0x3565 = 0x7403</div><div class='add'>+0x3566 = 0x7A76</div><div class='add'>+0x3567 = 0x7AAE</div><div class='add'>+0x3568 = 0x7B08</div><div class='add'>+0x3569 = 0x7D1A</div><div class='add'>+0x356A = 0x7CFE</div><div class='add'>+0x356B = 0x7D66</div><div class='add'>+0x356C = 0x65E7</div><div class='add'>+0x356D = 0x725B</div><div class='add'>+0x356E = 0x53BB</div><div class='add'>+0x356F = 0x5C45</div><div class='add'>+0x3570 = 0x5DE8</div><div class='add'>+0x3571 = 0x62D2</div><div class='add'>+0x3572 = 0x62E0</div><div class='add'>+0x3573 = 0x6319</div><div class='add'>+0x3574 = 0x6E20</div><div class='add'>+0x3575 = 0x865A</div><div class='add'>+0x3576 = 0x8A31</div><div class='add'>+0x3577 = 0x8DDD</div><div class='add'>+0x3578 = 0x92F8</div><div class='add'>+0x3579 = 0x6F01</div><div class='add'>+0x357A = 0x79A6</div><div class='add'>+0x357B = 0x9B5A</div><div class='add'>+0x357C = 0x4EA8</div><div class='add'>+0x357D = 0x4EAB</div><div class='add'>+0x357E = 0x4EAC</div><div class='add'>+0x3621 = 0x4F9B</div><div class='add'>+0x3622 = 0x4FA0</div><div class='add'>+0x3623 = 0x50D1</div><div class='add'>+0x3624 = 0x5147</div><div class='add'>+0x3625 = 0x7AF6</div><div class='add'>+0x3626 = 0x5171</div><div class='add'>+0x3627 = 0x51F6</div><div class='add'>+0x3628 = 0x5354</div><div class='add'>+0x3629 = 0x5321</div><div class='add'>+0x362A = 0x537F</div><div class='add'>+0x362B = 0x53EB</div><div class='add'>+0x362C = 0x55AC</div><div class='add'>+0x362D = 0x5883</div><div class='add'>+0x362E = 0x5CE1</div><div class='add'>+0x362F = 0x5F37</div><div class='add'>+0x3630 = 0x5F4A</div><div class='add'>+0x3631 = 0x602F</div><div class='add'>+0x3632 = 0x6050</div><div class='add'>+0x3633 = 0x606D</div><div class='add'>+0x3634 = 0x631F</div><div class='add'>+0x3635 = 0x6559</div><div class='add'>+0x3636 = 0x6A4B</div><div class='add'>+0x3637 = 0x6CC1</div><div class='add'>+0x3638 = 0x72C2</div><div class='add'>+0x3639 = 0x72ED</div><div class='add'>+0x363A = 0x77EF</div><div class='add'>+0x363B = 0x80F8</div><div class='add'>+0x363C = 0x8105</div><div class='add'>+0x363D = 0x8208</div><div class='add'>+0x363E = 0x854E</div><div class='add'>+0x363F = 0x90F7</div><div class='add'>+0x3640 = 0x93E1</div><div class='add'>+0x3641 = 0x97FF</div><div class='add'>+0x3642 = 0x9957</div><div class='add'>+0x3643 = 0x9A5A</div><div class='add'>+0x3644 = 0x4EF0</div><div class='add'>+0x3645 = 0x51DD</div><div class='add'>+0x3646 = 0x5C2D</div><div class='add'>+0x3647 = 0x6681</div><div class='add'>+0x3648 = 0x696D</div><div class='add'>+0x3649 = 0x5C40</div><div class='add'>+0x364A = 0x66F2</div><div class='add'>+0x364B = 0x6975</div><div class='add'>+0x364C = 0x7389</div><div class='add'>+0x364D = 0x6850</div><div class='add'>+0x364E = 0x7C81</div><div class='add'>+0x364F = 0x50C5</div><div class='add'>+0x3650 = 0x52E4</div><div class='add'>+0x3651 = 0x5747</div><div class='add'>+0x3652 = 0x5DFE</div><div class='add'>+0x3653 = 0x9326</div><div class='add'>+0x3654 = 0x65A4</div><div class='add'>+0x3655 = 0x6B23</div><div class='add'>+0x3656 = 0x6B3D</div><div class='add'>+0x3657 = 0x7434</div><div class='add'>+0x3658 = 0x7981</div><div class='add'>+0x3659 = 0x79BD</div><div class='add'>+0x365A = 0x7B4B</div><div class='add'>+0x365B = 0x7DCA</div><div class='add'>+0x365C = 0x82B9</div><div class='add'>+0x365D = 0x83CC</div><div class='add'>+0x365E = 0x887F</div><div class='add'>+0x365F = 0x895F</div><div class='add'>+0x3660 = 0x8B39</div><div class='add'>+0x3661 = 0x8FD1</div><div class='add'>+0x3662 = 0x91D1</div><div class='add'>+0x3663 = 0x541F</div><div class='add'>+0x3664 = 0x9280</div><div class='add'>+0x3665 = 0x4E5D</div><div class='add'>+0x3666 = 0x5036</div><div class='add'>+0x3667 = 0x53E5</div><div class='add'>+0x3668 = 0x533A</div><div class='add'>+0x3669 = 0x72D7</div><div class='add'>+0x366A = 0x7396</div><div class='add'>+0x366B = 0x77E9</div><div class='add'>+0x366C = 0x82E6</div><div class='add'>+0x366D = 0x8EAF</div><div class='add'>+0x366E = 0x99C6</div><div class='add'>+0x366F = 0x99C8</div><div class='add'>+0x3670 = 0x99D2</div><div class='add'>+0x3671 = 0x5177</div><div class='add'>+0x3672 = 0x611A</div><div class='add'>+0x3673 = 0x865E</div><div class='add'>+0x3674 = 0x55B0</div><div class='add'>+0x3675 = 0x7A7A</div><div class='add'>+0x3676 = 0x5076</div><div class='add'>+0x3677 = 0x5BD3</div><div class='add'>+0x3678 = 0x9047</div><div class='add'>+0x3679 = 0x9685</div><div class='add'>+0x367A = 0x4E32</div><div class='add'>+0x367B = 0x6ADB</div><div class='add'>+0x367C = 0x91E7</div><div class='add'>+0x367D = 0x5C51</div><div class='add'>+0x367E = 0x5C48</div><div class='add'>+0x3721 = 0x6398</div><div class='add'>+0x3722 = 0x7A9F</div><div class='add'>+0x3723 = 0x6C93</div><div class='add'>+0x3724 = 0x9774</div><div class='add'>+0x3725 = 0x8F61</div><div class='add'>+0x3726 = 0x7AAA</div><div class='add'>+0x3727 = 0x718A</div><div class='add'>+0x3728 = 0x9688</div><div class='add'>+0x3729 = 0x7C82</div><div class='add'>+0x372A = 0x6817</div><div class='add'>+0x372B = 0x7E70</div><div class='add'>+0x372C = 0x6851</div><div class='add'>+0x372D = 0x936C</div><div class='add'>+0x372E = 0x52F2</div><div class='add'>+0x372F = 0x541B</div><div class='add'>+0x3730 = 0x85AB</div><div class='add'>+0x3731 = 0x8A13</div><div class='add'>+0x3732 = 0x7FA4</div><div class='add'>+0x3733 = 0x8ECD</div><div class='add'>+0x3734 = 0x90E1</div><div class='add'>+0x3735 = 0x5366</div><div class='add'>+0x3736 = 0x8888</div><div class='add'>+0x3737 = 0x7941</div><div class='add'>+0x3738 = 0x4FC2</div><div class='add'>+0x3739 = 0x50BE</div><div class='add'>+0x373A = 0x5211</div><div class='add'>+0x373B = 0x5144</div><div class='add'>+0x373C = 0x5553</div><div class='add'>+0x373D = 0x572D</div><div class='add'>+0x373E = 0x73EA</div><div class='add'>+0x373F = 0x578B</div><div class='add'>+0x3740 = 0x5951</div><div class='add'>+0x3741 = 0x5F62</div><div class='add'>+0x3742 = 0x5F84</div><div class='add'>+0x3743 = 0x6075</div><div class='add'>+0x3744 = 0x6176</div><div class='add'>+0x3745 = 0x6167</div><div class='add'>+0x3746 = 0x61A9</div><div class='add'>+0x3747 = 0x63B2</div><div class='add'>+0x3748 = 0x643A</div><div class='add'>+0x3749 = 0x656C</div><div class='add'>+0x374A = 0x666F</div><div class='add'>+0x374B = 0x6842</div><div class='add'>+0x374C = 0x6E13</div><div class='add'>+0x374D = 0x7566</div><div class='add'>+0x374E = 0x7A3D</div><div class='add'>+0x374F = 0x7CFB</div><div class='add'>+0x3750 = 0x7D4C</div><div class='add'>+0x3751 = 0x7D99</div><div class='add'>+0x3752 = 0x7E4B</div><div class='add'>+0x3753 = 0x7F6B</div><div class='add'>+0x3754 = 0x830E</div><div class='add'>+0x3755 = 0x834A</div><div class='add'>+0x3756 = 0x86CD</div><div class='add'>+0x3757 = 0x8A08</div><div class='add'>+0x3758 = 0x8A63</div><div class='add'>+0x3759 = 0x8B66</div><div class='add'>+0x375A = 0x8EFD</div><div class='add'>+0x375B = 0x981A</div><div class='add'>+0x375C = 0x9D8F</div><div class='add'>+0x375D = 0x82B8</div><div class='add'>+0x375E = 0x8FCE</div><div class='add'>+0x375F = 0x9BE8</div><div class='add'>+0x3760 = 0x5287</div><div class='add'>+0x3761 = 0x621F</div><div class='add'>+0x3762 = 0x6483</div><div class='add'>+0x3763 = 0x6FC0</div><div class='add'>+0x3764 = 0x9699</div><div class='add'>+0x3765 = 0x6841</div><div class='add'>+0x3766 = 0x5091</div><div class='add'>+0x3767 = 0x6B20</div><div class='add'>+0x3768 = 0x6C7A</div><div class='add'>+0x3769 = 0x6F54</div><div class='add'>+0x376A = 0x7A74</div><div class='add'>+0x376B = 0x7D50</div><div class='add'>+0x376C = 0x8840</div><div class='add'>+0x376D = 0x8A23</div><div class='add'>+0x376E = 0x6708</div><div class='add'>+0x376F = 0x4EF6</div><div class='add'>+0x3770 = 0x5039</div><div class='add'>+0x3771 = 0x5026</div><div class='add'>+0x3772 = 0x5065</div><div class='add'>+0x3773 = 0x517C</div><div class='add'>+0x3774 = 0x5238</div><div class='add'>+0x3775 = 0x5263</div><div class='add'>+0x3776 = 0x55A7</div><div class='add'>+0x3777 = 0x570F</div><div class='add'>+0x3778 = 0x5805</div><div class='add'>+0x3779 = 0x5ACC</div><div class='add'>+0x377A = 0x5EFA</div><div class='add'>+0x377B = 0x61B2</div><div class='add'>+0x377C = 0x61F8</div><div class='add'>+0x377D = 0x62F3</div><div class='add'>+0x377E = 0x6372</div><div class='add'>+0x3821 = 0x691C</div><div class='add'>+0x3822 = 0x6A29</div><div class='add'>+0x3823 = 0x727D</div><div class='add'>+0x3824 = 0x72AC</div><div class='add'>+0x3825 = 0x732E</div><div class='add'>+0x3826 = 0x7814</div><div class='add'>+0x3827 = 0x786F</div><div class='add'>+0x3828 = 0x7D79</div><div class='add'>+0x3829 = 0x770C</div><div class='add'>+0x382A = 0x80A9</div><div class='add'>+0x382B = 0x898B</div><div class='add'>+0x382C = 0x8B19</div><div class='add'>+0x382D = 0x8CE2</div><div class='add'>+0x382E = 0x8ED2</div><div class='add'>+0x382F = 0x9063</div><div class='add'>+0x3830 = 0x9375</div><div class='add'>+0x3831 = 0x967A</div><div class='add'>+0x3832 = 0x9855</div><div class='add'>+0x3833 = 0x9A13</div><div class='add'>+0x3834 = 0x9E78</div><div class='add'>+0x3835 = 0x5143</div><div class='add'>+0x3836 = 0x539F</div><div class='add'>+0x3837 = 0x53B3</div><div class='add'>+0x3838 = 0x5E7B</div><div class='add'>+0x3839 = 0x5F26</div><div class='add'>+0x383A = 0x6E1B</div><div class='add'>+0x383B = 0x6E90</div><div class='add'>+0x383C = 0x7384</div><div class='add'>+0x383D = 0x73FE</div><div class='add'>+0x383E = 0x7D43</div><div class='add'>+0x383F = 0x8237</div><div class='add'>+0x3840 = 0x8A00</div><div class='add'>+0x3841 = 0x8AFA</div><div class='add'>+0x3842 = 0x9650</div><div class='add'>+0x3843 = 0x4E4E</div><div class='add'>+0x3844 = 0x500B</div><div class='add'>+0x3845 = 0x53E4</div><div class='add'>+0x3846 = 0x547C</div><div class='add'>+0x3847 = 0x56FA</div><div class='add'>+0x3848 = 0x59D1</div><div class='add'>+0x3849 = 0x5B64</div><div class='add'>+0x384A = 0x5DF1</div><div class='add'>+0x384B = 0x5EAB</div><div class='add'>+0x384C = 0x5F27</div><div class='add'>+0x384D = 0x6238</div><div class='add'>+0x384E = 0x6545</div><div class='add'>+0x384F = 0x67AF</div><div class='add'>+0x3850 = 0x6E56</div><div class='add'>+0x3851 = 0x72D0</div><div class='add'>+0x3852 = 0x7CCA</div><div class='add'>+0x3853 = 0x88B4</div><div class='add'>+0x3854 = 0x80A1</div><div class='add'>+0x3855 = 0x80E1</div><div class='add'>+0x3856 = 0x83F0</div><div class='add'>+0x3857 = 0x864E</div><div class='add'>+0x3858 = 0x8A87</div><div class='add'>+0x3859 = 0x8DE8</div><div class='add'>+0x385A = 0x9237</div><div class='add'>+0x385B = 0x96C7</div><div class='add'>+0x385C = 0x9867</div><div class='add'>+0x385D = 0x9F13</div><div class='add'>+0x385E = 0x4E94</div><div class='add'>+0x385F = 0x4E92</div><div class='add'>+0x3860 = 0x4F0D</div><div class='add'>+0x3861 = 0x5348</div><div class='add'>+0x3862 = 0x5449</div><div class='add'>+0x3863 = 0x543E</div><div class='add'>+0x3864 = 0x5A2F</div><div class='add'>+0x3865 = 0x5F8C</div><div class='add'>+0x3866 = 0x5FA1</div><div class='add'>+0x3867 = 0x609F</div><div class='add'>+0x3868 = 0x68A7</div><div class='add'>+0x3869 = 0x6A8E</div><div class='add'>+0x386A = 0x745A</div><div class='add'>+0x386B = 0x7881</div><div class='add'>+0x386C = 0x8A9E</div><div class='add'>+0x386D = 0x8AA4</div><div class='add'>+0x386E = 0x8B77</div><div class='add'>+0x386F = 0x9190</div><div class='add'>+0x3870 = 0x4E5E</div><div class='add'>+0x3871 = 0x9BC9</div><div class='add'>+0x3872 = 0x4EA4</div><div class='add'>+0x3873 = 0x4F7C</div><div class='add'>+0x3874 = 0x4FAF</div><div class='add'>+0x3875 = 0x5019</div><div class='add'>+0x3876 = 0x5016</div><div class='add'>+0x3877 = 0x5149</div><div class='add'>+0x3878 = 0x516C</div><div class='add'>+0x3879 = 0x529F</div><div class='add'>+0x387A = 0x52B9</div><div class='add'>+0x387B = 0x52FE</div><div class='add'>+0x387C = 0x539A</div><div class='add'>+0x387D = 0x53E3</div><div class='add'>+0x387E = 0x5411</div><div class='add'>+0x3921 = 0x540E</div><div class='add'>+0x3922 = 0x5589</div><div class='add'>+0x3923 = 0x5751</div><div class='add'>+0x3924 = 0x57A2</div><div class='add'>+0x3925 = 0x597D</div><div class='add'>+0x3926 = 0x5B54</div><div class='add'>+0x3927 = 0x5B5D</div><div class='add'>+0x3928 = 0x5B8F</div><div class='add'>+0x3929 = 0x5DE5</div><div class='add'>+0x392A = 0x5DE7</div><div class='add'>+0x392B = 0x5DF7</div><div class='add'>+0x392C = 0x5E78</div><div class='add'>+0x392D = 0x5E83</div><div class='add'>+0x392E = 0x5E9A</div><div class='add'>+0x392F = 0x5EB7</div><div class='add'>+0x3930 = 0x5F18</div><div class='add'>+0x3931 = 0x6052</div><div class='add'>+0x3932 = 0x614C</div><div class='add'>+0x3933 = 0x6297</div><div class='add'>+0x3934 = 0x62D8</div><div class='add'>+0x3935 = 0x63A7</div><div class='add'>+0x3936 = 0x653B</div><div class='add'>+0x3937 = 0x6602</div><div class='add'>+0x3938 = 0x6643</div><div class='add'>+0x3939 = 0x66F4</div><div class='add'>+0x393A = 0x676D</div><div class='add'>+0x393B = 0x6821</div><div class='add'>+0x393C = 0x6897</div><div class='add'>+0x393D = 0x69CB</div><div class='add'>+0x393E = 0x6C5F</div><div class='add'>+0x393F = 0x6D2A</div><div class='add'>+0x3940 = 0x6D69</div><div class='add'>+0x3941 = 0x6E2F</div><div class='add'>+0x3942 = 0x6E9D</div><div class='add'>+0x3943 = 0x7532</div><div class='add'>+0x3944 = 0x7687</div><div class='add'>+0x3945 = 0x786C</div><div class='add'>+0x3946 = 0x7A3F</div><div class='add'>+0x3947 = 0x7CE0</div><div class='add'>+0x3948 = 0x7D05</div><div class='add'>+0x3949 = 0x7D18</div><div class='add'>+0x394A = 0x7D5E</div><div class='add'>+0x394B = 0x7DB1</div><div class='add'>+0x394C = 0x8015</div><div class='add'>+0x394D = 0x8003</div><div class='add'>+0x394E = 0x80AF</div><div class='add'>+0x394F = 0x80B1</div><div class='add'>+0x3950 = 0x8154</div><div class='add'>+0x3951 = 0x818F</div><div class='add'>+0x3952 = 0x822A</div><div class='add'>+0x3953 = 0x8352</div><div class='add'>+0x3954 = 0x884C</div><div class='add'>+0x3955 = 0x8861</div><div class='add'>+0x3956 = 0x8B1B</div><div class='add'>+0x3957 = 0x8CA2</div><div class='add'>+0x3958 = 0x8CFC</div><div class='add'>+0x3959 = 0x90CA</div><div class='add'>+0x395A = 0x9175</div><div class='add'>+0x395B = 0x9271</div><div class='add'>+0x395C = 0x783F</div><div class='add'>+0x395D = 0x92FC</div><div class='add'>+0x395E = 0x95A4</div><div class='add'>+0x395F = 0x964D</div><div class='add'>+0x3960 = 0x9805</div><div class='add'>+0x3961 = 0x9999</div><div class='add'>+0x3962 = 0x9AD8</div><div class='add'>+0x3963 = 0x9D3B</div><div class='add'>+0x3964 = 0x525B</div><div class='add'>+0x3965 = 0x52AB</div><div class='add'>+0x3966 = 0x53F7</div><div class='add'>+0x3967 = 0x5408</div><div class='add'>+0x3968 = 0x58D5</div><div class='add'>+0x3969 = 0x62F7</div><div class='add'>+0x396A = 0x6FE0</div><div class='add'>+0x396B = 0x8C6A</div><div class='add'>+0x396C = 0x8F5F</div><div class='add'>+0x396D = 0x9EB9</div><div class='add'>+0x396E = 0x514B</div><div class='add'>+0x396F = 0x523B</div><div class='add'>+0x3970 = 0x544A</div><div class='add'>+0x3971 = 0x56FD</div><div class='add'>+0x3972 = 0x7A40</div><div class='add'>+0x3973 = 0x9177</div><div class='add'>+0x3974 = 0x9D60</div><div class='add'>+0x3975 = 0x9ED2</div><div class='add'>+0x3976 = 0x7344</div><div class='add'>+0x3977 = 0x6F09</div><div class='add'>+0x3978 = 0x8170</div><div class='add'>+0x3979 = 0x7511</div><div class='add'>+0x397A = 0x5FFD</div><div class='add'>+0x397B = 0x60DA</div><div class='add'>+0x397C = 0x9AA8</div><div class='add'>+0x397D = 0x72DB</div><div class='add'>+0x397E = 0x8FBC</div><div class='add'>+0x3A21 = 0x6B64</div><div class='add'>+0x3A22 = 0x9803</div><div class='add'>+0x3A23 = 0x4ECA</div><div class='add'>+0x3A24 = 0x56F0</div><div class='add'>+0x3A25 = 0x5764</div><div class='add'>+0x3A26 = 0x58BE</div><div class='add'>+0x3A27 = 0x5A5A</div><div class='add'>+0x3A28 = 0x6068</div><div class='add'>+0x3A29 = 0x61C7</div><div class='add'>+0x3A2A = 0x660F</div><div class='add'>+0x3A2B = 0x6606</div><div class='add'>+0x3A2C = 0x6839</div><div class='add'>+0x3A2D = 0x68B1</div><div class='add'>+0x3A2E = 0x6DF7</div><div class='add'>+0x3A2F = 0x75D5</div><div class='add'>+0x3A30 = 0x7D3A</div><div class='add'>+0x3A31 = 0x826E</div><div class='add'>+0x3A32 = 0x9B42</div><div class='add'>+0x3A33 = 0x4E9B</div><div class='add'>+0x3A34 = 0x4F50</div><div class='add'>+0x3A35 = 0x53C9</div><div class='add'>+0x3A36 = 0x5506</div><div class='add'>+0x3A37 = 0x5D6F</div><div class='add'>+0x3A38 = 0x5DE6</div><div class='add'>+0x3A39 = 0x5DEE</div><div class='add'>+0x3A3A = 0x67FB</div><div class='add'>+0x3A3B = 0x6C99</div><div class='add'>+0x3A3C = 0x7473</div><div class='add'>+0x3A3D = 0x7802</div><div class='add'>+0x3A3E = 0x8A50</div><div class='add'>+0x3A3F = 0x9396</div><div class='add'>+0x3A40 = 0x88DF</div><div class='add'>+0x3A41 = 0x5750</div><div class='add'>+0x3A42 = 0x5EA7</div><div class='add'>+0x3A43 = 0x632B</div><div class='add'>+0x3A44 = 0x50B5</div><div class='add'>+0x3A45 = 0x50AC</div><div class='add'>+0x3A46 = 0x518D</div><div class='add'>+0x3A47 = 0x6700</div><div class='add'>+0x3A48 = 0x54C9</div><div class='add'>+0x3A49 = 0x585E</div><div class='add'>+0x3A4A = 0x59BB</div><div class='add'>+0x3A4B = 0x5BB0</div><div class='add'>+0x3A4C = 0x5F69</div><div class='add'>+0x3A4D = 0x624D</div><div class='add'>+0x3A4E = 0x63A1</div><div class='add'>+0x3A4F = 0x683D</div><div class='add'>+0x3A50 = 0x6B73</div><div class='add'>+0x3A51 = 0x6E08</div><div class='add'>+0x3A52 = 0x707D</div><div class='add'>+0x3A53 = 0x91C7</div><div class='add'>+0x3A54 = 0x7280</div><div class='add'>+0x3A55 = 0x7815</div><div class='add'>+0x3A56 = 0x7826</div><div class='add'>+0x3A57 = 0x796D</div><div class='add'>+0x3A58 = 0x658E</div><div class='add'>+0x3A59 = 0x7D30</div><div class='add'>+0x3A5A = 0x83DC</div><div class='add'>+0x3A5B = 0x88C1</div><div class='add'>+0x3A5C = 0x8F09</div><div class='add'>+0x3A5D = 0x969B</div><div class='add'>+0x3A5E = 0x5264</div><div class='add'>+0x3A5F = 0x5728</div><div class='add'>+0x3A60 = 0x6750</div><div class='add'>+0x3A61 = 0x7F6A</div><div class='add'>+0x3A62 = 0x8CA1</div><div class='add'>+0x3A63 = 0x51B4</div><div class='add'>+0x3A64 = 0x5742</div><div class='add'>+0x3A65 = 0x962A</div><div class='add'>+0x3A66 = 0x583A</div><div class='add'>+0x3A67 = 0x698A</div><div class='add'>+0x3A68 = 0x80B4</div><div class='add'>+0x3A69 = 0x54B2</div><div class='add'>+0x3A6A = 0x5D0E</div><div class='add'>+0x3A6B = 0x57FC</div><div class='add'>+0x3A6C = 0x7895</div><div class='add'>+0x3A6D = 0x9DFA</div><div class='add'>+0x3A6E = 0x4F5C</div><div class='add'>+0x3A6F = 0x524A</div><div class='add'>+0x3A70 = 0x548B</div><div class='add'>+0x3A71 = 0x643E</div><div class='add'>+0x3A72 = 0x6628</div><div class='add'>+0x3A73 = 0x6714</div><div class='add'>+0x3A74 = 0x67F5</div><div class='add'>+0x3A75 = 0x7A84</div><div class='add'>+0x3A76 = 0x7B56</div><div class='add'>+0x3A77 = 0x7D22</div><div class='add'>+0x3A78 = 0x932F</div><div class='add'>+0x3A79 = 0x685C</div><div class='add'>+0x3A7A = 0x9BAD</div><div class='add'>+0x3A7B = 0x7B39</div><div class='add'>+0x3A7C = 0x5319</div><div class='add'>+0x3A7D = 0x518A</div><div class='add'>+0x3A7E = 0x5237</div><div class='add'>+0x3B21 = 0x5BDF</div><div class='add'>+0x3B22 = 0x62F6</div><div class='add'>+0x3B23 = 0x64AE</div><div class='add'>+0x3B24 = 0x64E6</div><div class='add'>+0x3B25 = 0x672D</div><div class='add'>+0x3B26 = 0x6BBA</div><div class='add'>+0x3B27 = 0x85A9</div><div class='add'>+0x3B28 = 0x96D1</div><div class='add'>+0x3B29 = 0x7690</div><div class='add'>+0x3B2A = 0x9BD6</div><div class='add'>+0x3B2B = 0x634C</div><div class='add'>+0x3B2C = 0x9306</div><div class='add'>+0x3B2D = 0x9BAB</div><div class='add'>+0x3B2E = 0x76BF</div><div class='add'>+0x3B2F = 0x6652</div><div class='add'>+0x3B30 = 0x4E09</div><div class='add'>+0x3B31 = 0x5098</div><div class='add'>+0x3B32 = 0x53C2</div><div class='add'>+0x3B33 = 0x5C71</div><div class='add'>+0x3B34 = 0x60E8</div><div class='add'>+0x3B35 = 0x6492</div><div class='add'>+0x3B36 = 0x6563</div><div class='add'>+0x3B37 = 0x685F</div><div class='add'>+0x3B38 = 0x71E6</div><div class='add'>+0x3B39 = 0x73CA</div><div class='add'>+0x3B3A = 0x7523</div><div class='add'>+0x3B3B = 0x7B97</div><div class='add'>+0x3B3C = 0x7E82</div><div class='add'>+0x3B3D = 0x8695</div><div class='add'>+0x3B3E = 0x8B83</div><div class='add'>+0x3B3F = 0x8CDB</div><div class='add'>+0x3B40 = 0x9178</div><div class='add'>+0x3B41 = 0x9910</div><div class='add'>+0x3B42 = 0x65AC</div><div class='add'>+0x3B43 = 0x66AB</div><div class='add'>+0x3B44 = 0x6B8B</div><div class='add'>+0x3B45 = 0x4ED5</div><div class='add'>+0x3B46 = 0x4ED4</div><div class='add'>+0x3B47 = 0x4F3A</div><div class='add'>+0x3B48 = 0x4F7F</div><div class='add'>+0x3B49 = 0x523A</div><div class='add'>+0x3B4A = 0x53F8</div><div class='add'>+0x3B4B = 0x53F2</div><div class='add'>+0x3B4C = 0x55E3</div><div class='add'>+0x3B4D = 0x56DB</div><div class='add'>+0x3B4E = 0x58EB</div><div class='add'>+0x3B4F = 0x59CB</div><div class='add'>+0x3B50 = 0x59C9</div><div class='add'>+0x3B51 = 0x59FF</div><div class='add'>+0x3B52 = 0x5B50</div><div class='add'>+0x3B53 = 0x5C4D</div><div class='add'>+0x3B54 = 0x5E02</div><div class='add'>+0x3B55 = 0x5E2B</div><div class='add'>+0x3B56 = 0x5FD7</div><div class='add'>+0x3B57 = 0x601D</div><div class='add'>+0x3B58 = 0x6307</div><div class='add'>+0x3B59 = 0x652F</div><div class='add'>+0x3B5A = 0x5B5C</div><div class='add'>+0x3B5B = 0x65AF</div><div class='add'>+0x3B5C = 0x65BD</div><div class='add'>+0x3B5D = 0x65E8</div><div class='add'>+0x3B5E = 0x679D</div><div class='add'>+0x3B5F = 0x6B62</div><div class='add'>+0x3B60 = 0x6B7B</div><div class='add'>+0x3B61 = 0x6C0F</div><div class='add'>+0x3B62 = 0x7345</div><div class='add'>+0x3B63 = 0x7949</div><div class='add'>+0x3B64 = 0x79C1</div><div class='add'>+0x3B65 = 0x7CF8</div><div class='add'>+0x3B66 = 0x7D19</div><div class='add'>+0x3B67 = 0x7D2B</div><div class='add'>+0x3B68 = 0x80A2</div><div class='add'>+0x3B69 = 0x8102</div><div class='add'>+0x3B6A = 0x81F3</div><div class='add'>+0x3B6B = 0x8996</div><div class='add'>+0x3B6C = 0x8A5E</div><div class='add'>+0x3B6D = 0x8A69</div><div class='add'>+0x3B6E = 0x8A66</div><div class='add'>+0x3B6F = 0x8A8C</div><div class='add'>+0x3B70 = 0x8AEE</div><div class='add'>+0x3B71 = 0x8CC7</div><div class='add'>+0x3B72 = 0x8CDC</div><div class='add'>+0x3B73 = 0x96CC</div><div class='add'>+0x3B74 = 0x98FC</div><div class='add'>+0x3B75 = 0x6B6F</div><div class='add'>+0x3B76 = 0x4E8B</div><div class='add'>+0x3B77 = 0x4F3C</div><div class='add'>+0x3B78 = 0x4F8D</div><div class='add'>+0x3B79 = 0x5150</div><div class='add'>+0x3B7A = 0x5B57</div><div class='add'>+0x3B7B = 0x5BFA</div><div class='add'>+0x3B7C = 0x6148</div><div class='add'>+0x3B7D = 0x6301</div><div class='add'>+0x3B7E = 0x6642</div><div class='add'>+0x3C21 = 0x6B21</div><div class='add'>+0x3C22 = 0x6ECB</div><div class='add'>+0x3C23 = 0x6CBB</div><div class='add'>+0x3C24 = 0x723E</div><div class='add'>+0x3C25 = 0x74BD</div><div class='add'>+0x3C26 = 0x75D4</div><div class='add'>+0x3C27 = 0x78C1</div><div class='add'>+0x3C28 = 0x793A</div><div class='add'>+0x3C29 = 0x800C</div><div class='add'>+0x3C2A = 0x8033</div><div class='add'>+0x3C2B = 0x81EA</div><div class='add'>+0x3C2C = 0x8494</div><div class='add'>+0x3C2D = 0x8F9E</div><div class='add'>+0x3C2E = 0x6C50</div><div class='add'>+0x3C2F = 0x9E7F</div><div class='add'>+0x3C30 = 0x5F0F</div><div class='add'>+0x3C31 = 0x8B58</div><div class='add'>+0x3C32 = 0x9D2B</div><div class='add'>+0x3C33 = 0x7AFA</div><div class='add'>+0x3C34 = 0x8EF8</div><div class='add'>+0x3C35 = 0x5B8D</div><div class='add'>+0x3C36 = 0x96EB</div><div class='add'>+0x3C37 = 0x4E03</div><div class='add'>+0x3C38 = 0x53F1</div><div class='add'>+0x3C39 = 0x57F7</div><div class='add'>+0x3C3A = 0x5931</div><div class='add'>+0x3C3B = 0x5AC9</div><div class='add'>+0x3C3C = 0x5BA4</div><div class='add'>+0x3C3D = 0x6089</div><div class='add'>+0x3C3E = 0x6E7F</div><div class='add'>+0x3C3F = 0x6F06</div><div class='add'>+0x3C40 = 0x75BE</div><div class='add'>+0x3C41 = 0x8CEA</div><div class='add'>+0x3C42 = 0x5B9F</div><div class='add'>+0x3C43 = 0x8500</div><div class='add'>+0x3C44 = 0x7BE0</div><div class='add'>+0x3C45 = 0x5072</div><div class='add'>+0x3C46 = 0x67F4</div><div class='add'>+0x3C47 = 0x829D</div><div class='add'>+0x3C48 = 0x5C61</div><div class='add'>+0x3C49 = 0x854A</div><div class='add'>+0x3C4A = 0x7E1E</div><div class='add'>+0x3C4B = 0x820E</div><div class='add'>+0x3C4C = 0x5199</div><div class='add'>+0x3C4D = 0x5C04</div><div class='add'>+0x3C4E = 0x6368</div><div class='add'>+0x3C4F = 0x8D66</div><div class='add'>+0x3C50 = 0x659C</div><div class='add'>+0x3C51 = 0x716E</div><div class='add'>+0x3C52 = 0x793E</div><div class='add'>+0x3C53 = 0x7D17</div><div class='add'>+0x3C54 = 0x8005</div><div class='add'>+0x3C55 = 0x8B1D</div><div class='add'>+0x3C56 = 0x8ECA</div><div class='add'>+0x3C57 = 0x906E</div><div class='add'>+0x3C58 = 0x86C7</div><div class='add'>+0x3C59 = 0x90AA</div><div class='add'>+0x3C5A = 0x501F</div><div class='add'>+0x3C5B = 0x52FA</div><div class='add'>+0x3C5C = 0x5C3A</div><div class='add'>+0x3C5D = 0x6753</div><div class='add'>+0x3C5E = 0x707C</div><div class='add'>+0x3C5F = 0x7235</div><div class='add'>+0x3C60 = 0x914C</div><div class='add'>+0x3C61 = 0x91C8</div><div class='add'>+0x3C62 = 0x932B</div><div class='add'>+0x3C63 = 0x82E5</div><div class='add'>+0x3C64 = 0x5BC2</div><div class='add'>+0x3C65 = 0x5F31</div><div class='add'>+0x3C66 = 0x60F9</div><div class='add'>+0x3C67 = 0x4E3B</div><div class='add'>+0x3C68 = 0x53D6</div><div class='add'>+0x3C69 = 0x5B88</div><div class='add'>+0x3C6A = 0x624B</div><div class='add'>+0x3C6B = 0x6731</div><div class='add'>+0x3C6C = 0x6B8A</div><div class='add'>+0x3C6D = 0x72E9</div><div class='add'>+0x3C6E = 0x73E0</div><div class='add'>+0x3C6F = 0x7A2E</div><div class='add'>+0x3C70 = 0x816B</div><div class='add'>+0x3C71 = 0x8DA3</div><div class='add'>+0x3C72 = 0x9152</div><div class='add'>+0x3C73 = 0x9996</div><div class='add'>+0x3C74 = 0x5112</div><div class='add'>+0x3C75 = 0x53D7</div><div class='add'>+0x3C76 = 0x546A</div><div class='add'>+0x3C77 = 0x5BFF</div><div class='add'>+0x3C78 = 0x6388</div><div class='add'>+0x3C79 = 0x6A39</div><div class='add'>+0x3C7A = 0x7DAC</div><div class='add'>+0x3C7B = 0x9700</div><div class='add'>+0x3C7C = 0x56DA</div><div class='add'>+0x3C7D = 0x53CE</div><div class='add'>+0x3C7E = 0x5468</div><div class='add'>+0x3D21 = 0x5B97</div><div class='add'>+0x3D22 = 0x5C31</div><div class='add'>+0x3D23 = 0x5DDE</div><div class='add'>+0x3D24 = 0x4FEE</div><div class='add'>+0x3D25 = 0x6101</div><div class='add'>+0x3D26 = 0x62FE</div><div class='add'>+0x3D27 = 0x6D32</div><div class='add'>+0x3D28 = 0x79C0</div><div class='add'>+0x3D29 = 0x79CB</div><div class='add'>+0x3D2A = 0x7D42</div><div class='add'>+0x3D2B = 0x7E4D</div><div class='add'>+0x3D2C = 0x7FD2</div><div class='add'>+0x3D2D = 0x81ED</div><div class='add'>+0x3D2E = 0x821F</div><div class='add'>+0x3D2F = 0x8490</div><div class='add'>+0x3D30 = 0x8846</div><div class='add'>+0x3D31 = 0x8972</div><div class='add'>+0x3D32 = 0x8B90</div><div class='add'>+0x3D33 = 0x8E74</div><div class='add'>+0x3D34 = 0x8F2F</div><div class='add'>+0x3D35 = 0x9031</div><div class='add'>+0x3D36 = 0x914B</div><div class='add'>+0x3D37 = 0x916C</div><div class='add'>+0x3D38 = 0x96C6</div><div class='add'>+0x3D39 = 0x919C</div><div class='add'>+0x3D3A = 0x4EC0</div><div class='add'>+0x3D3B = 0x4F4F</div><div class='add'>+0x3D3C = 0x5145</div><div class='add'>+0x3D3D = 0x5341</div><div class='add'>+0x3D3E = 0x5F93</div><div class='add'>+0x3D3F = 0x620E</div><div class='add'>+0x3D40 = 0x67D4</div><div class='add'>+0x3D41 = 0x6C41</div><div class='add'>+0x3D42 = 0x6E0B</div><div class='add'>+0x3D43 = 0x7363</div><div class='add'>+0x3D44 = 0x7E26</div><div class='add'>+0x3D45 = 0x91CD</div><div class='add'>+0x3D46 = 0x9283</div><div class='add'>+0x3D47 = 0x53D4</div><div class='add'>+0x3D48 = 0x5919</div><div class='add'>+0x3D49 = 0x5BBF</div><div class='add'>+0x3D4A = 0x6DD1</div><div class='add'>+0x3D4B = 0x795D</div><div class='add'>+0x3D4C = 0x7E2E</div><div class='add'>+0x3D4D = 0x7C9B</div><div class='add'>+0x3D4E = 0x587E</div><div class='add'>+0x3D4F = 0x719F</div><div class='add'>+0x3D50 = 0x51FA</div><div class='add'>+0x3D51 = 0x8853</div><div class='add'>+0x3D52 = 0x8FF0</div><div class='add'>+0x3D53 = 0x4FCA</div><div class='add'>+0x3D54 = 0x5CFB</div><div class='add'>+0x3D55 = 0x6625</div><div class='add'>+0x3D56 = 0x77AC</div><div class='add'>+0x3D57 = 0x7AE3</div><div class='add'>+0x3D58 = 0x821C</div><div class='add'>+0x3D59 = 0x99FF</div><div class='add'>+0x3D5A = 0x51C6</div><div class='add'>+0x3D5B = 0x5FAA</div><div class='add'>+0x3D5C = 0x65EC</div><div class='add'>+0x3D5D = 0x696F</div><div class='add'>+0x3D5E = 0x6B89</div><div class='add'>+0x3D5F = 0x6DF3</div><div class='add'>+0x3D60 = 0x6E96</div><div class='add'>+0x3D61 = 0x6F64</div><div class='add'>+0x3D62 = 0x76FE</div><div class='add'>+0x3D63 = 0x7D14</div><div class='add'>+0x3D64 = 0x5DE1</div><div class='add'>+0x3D65 = 0x9075</div><div class='add'>+0x3D66 = 0x9187</div><div class='add'>+0x3D67 = 0x9806</div><div class='add'>+0x3D68 = 0x51E6</div><div class='add'>+0x3D69 = 0x521D</div><div class='add'>+0x3D6A = 0x6240</div><div class='add'>+0x3D6B = 0x6691</div><div class='add'>+0x3D6C = 0x66D9</div><div class='add'>+0x3D6D = 0x6E1A</div><div class='add'>+0x3D6E = 0x5EB6</div><div class='add'>+0x3D6F = 0x7DD2</div><div class='add'>+0x3D70 = 0x7F72</div><div class='add'>+0x3D71 = 0x66F8</div><div class='add'>+0x3D72 = 0x85AF</div><div class='add'>+0x3D73 = 0x85F7</div><div class='add'>+0x3D74 = 0x8AF8</div><div class='add'>+0x3D75 = 0x52A9</div><div class='add'>+0x3D76 = 0x53D9</div><div class='add'>+0x3D77 = 0x5973</div><div class='add'>+0x3D78 = 0x5E8F</div><div class='add'>+0x3D79 = 0x5F90</div><div class='add'>+0x3D7A = 0x6055</div><div class='add'>+0x3D7B = 0x92E4</div><div class='add'>+0x3D7C = 0x9664</div><div class='add'>+0x3D7D = 0x50B7</div><div class='add'>+0x3D7E = 0x511F</div><div class='add'>+0x3E21 = 0x52DD</div><div class='add'>+0x3E22 = 0x5320</div><div class='add'>+0x3E23 = 0x5347</div><div class='add'>+0x3E24 = 0x53EC</div><div class='add'>+0x3E25 = 0x54E8</div><div class='add'>+0x3E26 = 0x5546</div><div class='add'>+0x3E27 = 0x5531</div><div class='add'>+0x3E28 = 0x5617</div><div class='add'>+0x3E29 = 0x5968</div><div class='add'>+0x3E2A = 0x59BE</div><div class='add'>+0x3E2B = 0x5A3C</div><div class='add'>+0x3E2C = 0x5BB5</div><div class='add'>+0x3E2D = 0x5C06</div><div class='add'>+0x3E2E = 0x5C0F</div><div class='add'>+0x3E2F = 0x5C11</div><div class='add'>+0x3E30 = 0x5C1A</div><div class='add'>+0x3E31 = 0x5E84</div><div class='add'>+0x3E32 = 0x5E8A</div><div class='add'>+0x3E33 = 0x5EE0</div><div class='add'>+0x3E34 = 0x5F70</div><div class='add'>+0x3E35 = 0x627F</div><div class='add'>+0x3E36 = 0x6284</div><div class='add'>+0x3E37 = 0x62DB</div><div class='add'>+0x3E38 = 0x638C</div><div class='add'>+0x3E39 = 0x6377</div><div class='add'>+0x3E3A = 0x6607</div><div class='add'>+0x3E3B = 0x660C</div><div class='add'>+0x3E3C = 0x662D</div><div class='add'>+0x3E3D = 0x6676</div><div class='add'>+0x3E3E = 0x677E</div><div class='add'>+0x3E3F = 0x68A2</div><div class='add'>+0x3E40 = 0x6A1F</div><div class='add'>+0x3E41 = 0x6A35</div><div class='add'>+0x3E42 = 0x6CBC</div><div class='add'>+0x3E43 = 0x6D88</div><div class='add'>+0x3E44 = 0x6E09</div><div class='add'>+0x3E45 = 0x6E58</div><div class='add'>+0x3E46 = 0x713C</div><div class='add'>+0x3E47 = 0x7126</div><div class='add'>+0x3E48 = 0x7167</div><div class='add'>+0x3E49 = 0x75C7</div><div class='add'>+0x3E4A = 0x7701</div><div class='add'>+0x3E4B = 0x785D</div><div class='add'>+0x3E4C = 0x7901</div><div class='add'>+0x3E4D = 0x7965</div><div class='add'>+0x3E4E = 0x79F0</div><div class='add'>+0x3E4F = 0x7AE0</div><div class='add'>+0x3E50 = 0x7B11</div><div class='add'>+0x3E51 = 0x7CA7</div><div class='add'>+0x3E52 = 0x7D39</div><div class='add'>+0x3E53 = 0x8096</div><div class='add'>+0x3E54 = 0x83D6</div><div class='add'>+0x3E55 = 0x848B</div><div class='add'>+0x3E56 = 0x8549</div><div class='add'>+0x3E57 = 0x885D</div><div class='add'>+0x3E58 = 0x88F3</div><div class='add'>+0x3E59 = 0x8A1F</div><div class='add'>+0x3E5A = 0x8A3C</div><div class='add'>+0x3E5B = 0x8A54</div><div class='add'>+0x3E5C = 0x8A73</div><div class='add'>+0x3E5D = 0x8C61</div><div class='add'>+0x3E5E = 0x8CDE</div><div class='add'>+0x3E5F = 0x91A4</div><div class='add'>+0x3E60 = 0x9266</div><div class='add'>+0x3E61 = 0x937E</div><div class='add'>+0x3E62 = 0x9418</div><div class='add'>+0x3E63 = 0x969C</div><div class='add'>+0x3E64 = 0x9798</div><div class='add'>+0x3E65 = 0x4E0A</div><div class='add'>+0x3E66 = 0x4E08</div><div class='add'>+0x3E67 = 0x4E1E</div><div class='add'>+0x3E68 = 0x4E57</div><div class='add'>+0x3E69 = 0x5197</div><div class='add'>+0x3E6A = 0x5270</div><div class='add'>+0x3E6B = 0x57CE</div><div class='add'>+0x3E6C = 0x5834</div><div class='add'>+0x3E6D = 0x58CC</div><div class='add'>+0x3E6E = 0x5B22</div><div class='add'>+0x3E6F = 0x5E38</div><div class='add'>+0x3E70 = 0x60C5</div><div class='add'>+0x3E71 = 0x64FE</div><div class='add'>+0x3E72 = 0x6761</div><div class='add'>+0x3E73 = 0x6756</div><div class='add'>+0x3E74 = 0x6D44</div><div class='add'>+0x3E75 = 0x72B6</div><div class='add'>+0x3E76 = 0x7573</div><div class='add'>+0x3E77 = 0x7A63</div><div class='add'>+0x3E78 = 0x84B8</div><div class='add'>+0x3E79 = 0x8B72</div><div class='add'>+0x3E7A = 0x91B8</div><div class='add'>+0x3E7B = 0x9320</div><div class='add'>+0x3E7C = 0x5631</div><div class='add'>+0x3E7D = 0x57F4</div><div class='add'>+0x3E7E = 0x98FE</div><div class='add'>+0x3F21 = 0x62ED</div><div class='add'>+0x3F22 = 0x690D</div><div class='add'>+0x3F23 = 0x6B96</div><div class='add'>+0x3F24 = 0x71ED</div><div class='add'>+0x3F25 = 0x7E54</div><div class='add'>+0x3F26 = 0x8077</div><div class='add'>+0x3F27 = 0x8272</div><div class='add'>+0x3F28 = 0x89E6</div><div class='add'>+0x3F29 = 0x98DF</div><div class='add'>+0x3F2A = 0x8755</div><div class='add'>+0x3F2B = 0x8FB1</div><div class='add'>+0x3F2C = 0x5C3B</div><div class='add'>+0x3F2D = 0x4F38</div><div class='add'>+0x3F2E = 0x4FE1</div><div class='add'>+0x3F2F = 0x4FB5</div><div class='add'>+0x3F30 = 0x5507</div><div class='add'>+0x3F31 = 0x5A20</div><div class='add'>+0x3F32 = 0x5BDD</div><div class='add'>+0x3F33 = 0x5BE9</div><div class='add'>+0x3F34 = 0x5FC3</div><div class='add'>+0x3F35 = 0x614E</div><div class='add'>+0x3F36 = 0x632F</div><div class='add'>+0x3F37 = 0x65B0</div><div class='add'>+0x3F38 = 0x664B</div><div class='add'>+0x3F39 = 0x68EE</div><div class='add'>+0x3F3A = 0x699B</div><div class='add'>+0x3F3B = 0x6D78</div><div class='add'>+0x3F3C = 0x6DF1</div><div class='add'>+0x3F3D = 0x7533</div><div class='add'>+0x3F3E = 0x75B9</div><div class='add'>+0x3F3F = 0x771F</div><div class='add'>+0x3F40 = 0x795E</div><div class='add'>+0x3F41 = 0x79E6</div><div class='add'>+0x3F42 = 0x7D33</div><div class='add'>+0x3F43 = 0x81E3</div><div class='add'>+0x3F44 = 0x82AF</div><div class='add'>+0x3F45 = 0x85AA</div><div class='add'>+0x3F46 = 0x89AA</div><div class='add'>+0x3F47 = 0x8A3A</div><div class='add'>+0x3F48 = 0x8EAB</div><div class='add'>+0x3F49 = 0x8F9B</div><div class='add'>+0x3F4A = 0x9032</div><div class='add'>+0x3F4B = 0x91DD</div><div class='add'>+0x3F4C = 0x9707</div><div class='add'>+0x3F4D = 0x4EBA</div><div class='add'>+0x3F4E = 0x4EC1</div><div class='add'>+0x3F4F = 0x5203</div><div class='add'>+0x3F50 = 0x5875</div><div class='add'>+0x3F51 = 0x58EC</div><div class='add'>+0x3F52 = 0x5C0B</div><div class='add'>+0x3F53 = 0x751A</div><div class='add'>+0x3F54 = 0x5C3D</div><div class='add'>+0x3F55 = 0x814E</div><div class='add'>+0x3F56 = 0x8A0A</div><div class='add'>+0x3F57 = 0x8FC5</div><div class='add'>+0x3F58 = 0x9663</div><div class='add'>+0x3F59 = 0x976D</div><div class='add'>+0x3F5A = 0x7B25</div><div class='add'>+0x3F5B = 0x8ACF</div><div class='add'>+0x3F5C = 0x9808</div><div class='add'>+0x3F5D = 0x9162</div><div class='add'>+0x3F5E = 0x56F3</div><div class='add'>+0x3F5F = 0x53A8</div><div class='add'>+0x3F60 = 0x9017</div><div class='add'>+0x3F61 = 0x5439</div><div class='add'>+0x3F62 = 0x5782</div><div class='add'>+0x3F63 = 0x5E25</div><div class='add'>+0x3F64 = 0x63A8</div><div class='add'>+0x3F65 = 0x6C34</div><div class='add'>+0x3F66 = 0x708A</div><div class='add'>+0x3F67 = 0x7761</div><div class='add'>+0x3F68 = 0x7C8B</div><div class='add'>+0x3F69 = 0x7FE0</div><div class='add'>+0x3F6A = 0x8870</div><div class='add'>+0x3F6B = 0x9042</div><div class='add'>+0x3F6C = 0x9154</div><div class='add'>+0x3F6D = 0x9310</div><div class='add'>+0x3F6E = 0x9318</div><div class='add'>+0x3F6F = 0x968F</div><div class='add'>+0x3F70 = 0x745E</div><div class='add'>+0x3F71 = 0x9AC4</div><div class='add'>+0x3F72 = 0x5D07</div><div class='add'>+0x3F73 = 0x5D69</div><div class='add'>+0x3F74 = 0x6570</div><div class='add'>+0x3F75 = 0x67A2</div><div class='add'>+0x3F76 = 0x8DA8</div><div class='add'>+0x3F77 = 0x96DB</div><div class='add'>+0x3F78 = 0x636E</div><div class='add'>+0x3F79 = 0x6749</div><div class='add'>+0x3F7A = 0x6919</div><div class='add'>+0x3F7B = 0x83C5</div><div class='add'>+0x3F7C = 0x9817</div><div class='add'>+0x3F7D = 0x96C0</div><div class='add'>+0x3F7E = 0x88FE</div><div class='add'>+0x4021 = 0x6F84</div><div class='add'>+0x4022 = 0x647A</div><div class='add'>+0x4023 = 0x5BF8</div><div class='add'>+0x4024 = 0x4E16</div><div class='add'>+0x4025 = 0x702C</div><div class='add'>+0x4026 = 0x755D</div><div class='add'>+0x4027 = 0x662F</div><div class='add'>+0x4028 = 0x51C4</div><div class='add'>+0x4029 = 0x5236</div><div class='add'>+0x402A = 0x52E2</div><div class='add'>+0x402B = 0x59D3</div><div class='add'>+0x402C = 0x5F81</div><div class='add'>+0x402D = 0x6027</div><div class='add'>+0x402E = 0x6210</div><div class='add'>+0x402F = 0x653F</div><div class='add'>+0x4030 = 0x6574</div><div class='add'>+0x4031 = 0x661F</div><div class='add'>+0x4032 = 0x6674</div><div class='add'>+0x4033 = 0x68F2</div><div class='add'>+0x4034 = 0x6816</div><div class='add'>+0x4035 = 0x6B63</div><div class='add'>+0x4036 = 0x6E05</div><div class='add'>+0x4037 = 0x7272</div><div class='add'>+0x4038 = 0x751F</div><div class='add'>+0x4039 = 0x76DB</div><div class='add'>+0x403A = 0x7CBE</div><div class='add'>+0x403B = 0x8056</div><div class='add'>+0x403C = 0x58F0</div><div class='add'>+0x403D = 0x88FD</div><div class='add'>+0x403E = 0x897F</div><div class='add'>+0x403F = 0x8AA0</div><div class='add'>+0x4040 = 0x8A93</div><div class='add'>+0x4041 = 0x8ACB</div><div class='add'>+0x4042 = 0x901D</div><div class='add'>+0x4043 = 0x9192</div><div class='add'>+0x4044 = 0x9752</div><div class='add'>+0x4045 = 0x9759</div><div class='add'>+0x4046 = 0x6589</div><div class='add'>+0x4047 = 0x7A0E</div><div class='add'>+0x4048 = 0x8106</div><div class='add'>+0x4049 = 0x96BB</div><div class='add'>+0x404A = 0x5E2D</div><div class='add'>+0x404B = 0x60DC</div><div class='add'>+0x404C = 0x621A</div><div class='add'>+0x404D = 0x65A5</div><div class='add'>+0x404E = 0x6614</div><div class='add'>+0x404F = 0x6790</div><div class='add'>+0x4050 = 0x77F3</div><div class='add'>+0x4051 = 0x7A4D</div><div class='add'>+0x4052 = 0x7C4D</div><div class='add'>+0x4053 = 0x7E3E</div><div class='add'>+0x4054 = 0x810A</div><div class='add'>+0x4055 = 0x8CAC</div><div class='add'>+0x4056 = 0x8D64</div><div class='add'>+0x4057 = 0x8DE1</div><div class='add'>+0x4058 = 0x8E5F</div><div class='add'>+0x4059 = 0x78A9</div><div class='add'>+0x405A = 0x5207</div><div class='add'>+0x405B = 0x62D9</div><div class='add'>+0x405C = 0x63A5</div><div class='add'>+0x405D = 0x6442</div><div class='add'>+0x405E = 0x6298</div><div class='add'>+0x405F = 0x8A2D</div><div class='add'>+0x4060 = 0x7A83</div><div class='add'>+0x4061 = 0x7BC0</div><div class='add'>+0x4062 = 0x8AAC</div><div class='add'>+0x4063 = 0x96EA</div><div class='add'>+0x4064 = 0x7D76</div><div class='add'>+0x4065 = 0x820C</div><div class='add'>+0x4066 = 0x8749</div><div class='add'>+0x4067 = 0x4ED9</div><div class='add'>+0x4068 = 0x5148</div><div class='add'>+0x4069 = 0x5343</div><div class='add'>+0x406A = 0x5360</div><div class='add'>+0x406B = 0x5BA3</div><div class='add'>+0x406C = 0x5C02</div><div class='add'>+0x406D = 0x5C16</div><div class='add'>+0x406E = 0x5DDD</div><div class='add'>+0x406F = 0x6226</div><div class='add'>+0x4070 = 0x6247</div><div class='add'>+0x4071 = 0x64B0</div><div class='add'>+0x4072 = 0x6813</div><div class='add'>+0x4073 = 0x6834</div><div class='add'>+0x4074 = 0x6CC9</div><div class='add'>+0x4075 = 0x6D45</div><div class='add'>+0x4076 = 0x6D17</div><div class='add'>+0x4077 = 0x67D3</div><div class='add'>+0x4078 = 0x6F5C</div><div class='add'>+0x4079 = 0x714E</div><div class='add'>+0x407A = 0x717D</div><div class='add'>+0x407B = 0x65CB</div><div class='add'>+0x407C = 0x7A7F</div><div class='add'>+0x407D = 0x7BAD</div><div class='add'>+0x407E = 0x7DDA</div><div class='add'>+0x4121 = 0x7E4A</div><div class='add'>+0x4122 = 0x7FA8</div><div class='add'>+0x4123 = 0x817A</div><div class='add'>+0x4124 = 0x821B</div><div class='add'>+0x4125 = 0x8239</div><div class='add'>+0x4126 = 0x85A6</div><div class='add'>+0x4127 = 0x8A6E</div><div class='add'>+0x4128 = 0x8CCE</div><div class='add'>+0x4129 = 0x8DF5</div><div class='add'>+0x412A = 0x9078</div><div class='add'>+0x412B = 0x9077</div><div class='add'>+0x412C = 0x92AD</div><div class='add'>+0x412D = 0x9291</div><div class='add'>+0x412E = 0x9583</div><div class='add'>+0x412F = 0x9BAE</div><div class='add'>+0x4130 = 0x524D</div><div class='add'>+0x4131 = 0x5584</div><div class='add'>+0x4132 = 0x6F38</div><div class='add'>+0x4133 = 0x7136</div><div class='add'>+0x4134 = 0x5168</div><div class='add'>+0x4135 = 0x7985</div><div class='add'>+0x4136 = 0x7E55</div><div class='add'>+0x4137 = 0x81B3</div><div class='add'>+0x4138 = 0x7CCE</div><div class='add'>+0x4139 = 0x564C</div><div class='add'>+0x413A = 0x5851</div><div class='add'>+0x413B = 0x5CA8</div><div class='add'>+0x413C = 0x63AA</div><div class='add'>+0x413D = 0x66FE</div><div class='add'>+0x413E = 0x66FD</div><div class='add'>+0x413F = 0x695A</div><div class='add'>+0x4140 = 0x72D9</div><div class='add'>+0x4141 = 0x758F</div><div class='add'>+0x4142 = 0x758E</div><div class='add'>+0x4143 = 0x790E</div><div class='add'>+0x4144 = 0x7956</div><div class='add'>+0x4145 = 0x79DF</div><div class='add'>+0x4146 = 0x7C97</div><div class='add'>+0x4147 = 0x7D20</div><div class='add'>+0x4148 = 0x7D44</div><div class='add'>+0x4149 = 0x8607</div><div class='add'>+0x414A = 0x8A34</div><div class='add'>+0x414B = 0x963B</div><div class='add'>+0x414C = 0x9061</div><div class='add'>+0x414D = 0x9F20</div><div class='add'>+0x414E = 0x50E7</div><div class='add'>+0x414F = 0x5275</div><div class='add'>+0x4150 = 0x53CC</div><div class='add'>+0x4151 = 0x53E2</div><div class='add'>+0x4152 = 0x5009</div><div class='add'>+0x4153 = 0x55AA</div><div class='add'>+0x4154 = 0x58EE</div><div class='add'>+0x4155 = 0x594F</div><div class='add'>+0x4156 = 0x723D</div><div class='add'>+0x4157 = 0x5B8B</div><div class='add'>+0x4158 = 0x5C64</div><div class='add'>+0x4159 = 0x531D</div><div class='add'>+0x415A = 0x60E3</div><div class='add'>+0x415B = 0x60F3</div><div class='add'>+0x415C = 0x635C</div><div class='add'>+0x415D = 0x6383</div><div class='add'>+0x415E = 0x633F</div><div class='add'>+0x415F = 0x63BB</div><div class='add'>+0x4160 = 0x64CD</div><div class='add'>+0x4161 = 0x65E9</div><div class='add'>+0x4162 = 0x66F9</div><div class='add'>+0x4163 = 0x5DE3</div><div class='add'>+0x4164 = 0x69CD</div><div class='add'>+0x4165 = 0x69FD</div><div class='add'>+0x4166 = 0x6F15</div><div class='add'>+0x4167 = 0x71E5</div><div class='add'>+0x4168 = 0x4E89</div><div class='add'>+0x4169 = 0x75E9</div><div class='add'>+0x416A = 0x76F8</div><div class='add'>+0x416B = 0x7A93</div><div class='add'>+0x416C = 0x7CDF</div><div class='add'>+0x416D = 0x7DCF</div><div class='add'>+0x416E = 0x7D9C</div><div class='add'>+0x416F = 0x8061</div><div class='add'>+0x4170 = 0x8349</div><div class='add'>+0x4171 = 0x8358</div><div class='add'>+0x4172 = 0x846C</div><div class='add'>+0x4173 = 0x84BC</div><div class='add'>+0x4174 = 0x85FB</div><div class='add'>+0x4175 = 0x88C5</div><div class='add'>+0x4176 = 0x8D70</div><div class='add'>+0x4177 = 0x9001</div><div class='add'>+0x4178 = 0x906D</div><div class='add'>+0x4179 = 0x9397</div><div class='add'>+0x417A = 0x971C</div><div class='add'>+0x417B = 0x9A12</div><div class='add'>+0x417C = 0x50CF</div><div class='add'>+0x417D = 0x5897</div><div class='add'>+0x417E = 0x618E</div><div class='add'>+0x4221 = 0x81D3</div><div class='add'>+0x4222 = 0x8535</div><div class='add'>+0x4223 = 0x8D08</div><div class='add'>+0x4224 = 0x9020</div><div class='add'>+0x4225 = 0x4FC3</div><div class='add'>+0x4226 = 0x5074</div><div class='add'>+0x4227 = 0x5247</div><div class='add'>+0x4228 = 0x5373</div><div class='add'>+0x4229 = 0x606F</div><div class='add'>+0x422A = 0x6349</div><div class='add'>+0x422B = 0x675F</div><div class='add'>+0x422C = 0x6E2C</div><div class='add'>+0x422D = 0x8DB3</div><div class='add'>+0x422E = 0x901F</div><div class='add'>+0x422F = 0x4FD7</div><div class='add'>+0x4230 = 0x5C5E</div><div class='add'>+0x4231 = 0x8CCA</div><div class='add'>+0x4232 = 0x65CF</div><div class='add'>+0x4233 = 0x7D9A</div><div class='add'>+0x4234 = 0x5352</div><div class='add'>+0x4235 = 0x8896</div><div class='add'>+0x4236 = 0x5176</div><div class='add'>+0x4237 = 0x63C3</div><div class='add'>+0x4238 = 0x5B58</div><div class='add'>+0x4239 = 0x5B6B</div><div class='add'>+0x423A = 0x5C0A</div><div class='add'>+0x423B = 0x640D</div><div class='add'>+0x423C = 0x6751</div><div class='add'>+0x423D = 0x905C</div><div class='add'>+0x423E = 0x4ED6</div><div class='add'>+0x423F = 0x591A</div><div class='add'>+0x4240 = 0x592A</div><div class='add'>+0x4241 = 0x6C70</div><div class='add'>+0x4242 = 0x8A51</div><div class='add'>+0x4243 = 0x553E</div><div class='add'>+0x4244 = 0x5815</div><div class='add'>+0x4245 = 0x59A5</div><div class='add'>+0x4246 = 0x60F0</div><div class='add'>+0x4247 = 0x6253</div><div class='add'>+0x4248 = 0x67C1</div><div class='add'>+0x4249 = 0x8235</div><div class='add'>+0x424A = 0x6955</div><div class='add'>+0x424B = 0x9640</div><div class='add'>+0x424C = 0x99C4</div><div class='add'>+0x424D = 0x9A28</div><div class='add'>+0x424E = 0x4F53</div><div class='add'>+0x424F = 0x5806</div><div class='add'>+0x4250 = 0x5BFE</div><div class='add'>+0x4251 = 0x8010</div><div class='add'>+0x4252 = 0x5CB1</div><div class='add'>+0x4253 = 0x5E2F</div><div class='add'>+0x4254 = 0x5F85</div><div class='add'>+0x4255 = 0x6020</div><div class='add'>+0x4256 = 0x614B</div><div class='add'>+0x4257 = 0x6234</div><div class='add'>+0x4258 = 0x66FF</div><div class='add'>+0x4259 = 0x6CF0</div><div class='add'>+0x425A = 0x6EDE</div><div class='add'>+0x425B = 0x80CE</div><div class='add'>+0x425C = 0x817F</div><div class='add'>+0x425D = 0x82D4</div><div class='add'>+0x425E = 0x888B</div><div class='add'>+0x425F = 0x8CB8</div><div class='add'>+0x4260 = 0x9000</div><div class='add'>+0x4261 = 0x902E</div><div class='add'>+0x4262 = 0x968A</div><div class='add'>+0x4263 = 0x9EDB</div><div class='add'>+0x4264 = 0x9BDB</div><div class='add'>+0x4265 = 0x4EE3</div><div class='add'>+0x4266 = 0x53F0</div><div class='add'>+0x4267 = 0x5927</div><div class='add'>+0x4268 = 0x7B2C</div><div class='add'>+0x4269 = 0x918D</div><div class='add'>+0x426A = 0x984C</div><div class='add'>+0x426B = 0x9DF9</div><div class='add'>+0x426C = 0x6EDD</div><div class='add'>+0x426D = 0x7027</div><div class='add'>+0x426E = 0x5353</div><div class='add'>+0x426F = 0x5544</div><div class='add'>+0x4270 = 0x5B85</div><div class='add'>+0x4271 = 0x6258</div><div class='add'>+0x4272 = 0x629E</div><div class='add'>+0x4273 = 0x62D3</div><div class='add'>+0x4274 = 0x6CA2</div><div class='add'>+0x4275 = 0x6FEF</div><div class='add'>+0x4276 = 0x7422</div><div class='add'>+0x4277 = 0x8A17</div><div class='add'>+0x4278 = 0x9438</div><div class='add'>+0x4279 = 0x6FC1</div><div class='add'>+0x427A = 0x8AFE</div><div class='add'>+0x427B = 0x8338</div><div class='add'>+0x427C = 0x51E7</div><div class='add'>+0x427D = 0x86F8</div><div class='add'>+0x427E = 0x53EA</div><div class='add'>+0x4321 = 0x53E9</div><div class='add'>+0x4322 = 0x4F46</div><div class='add'>+0x4323 = 0x9054</div><div class='add'>+0x4324 = 0x8FB0</div><div class='add'>+0x4325 = 0x596A</div><div class='add'>+0x4326 = 0x8131</div><div class='add'>+0x4327 = 0x5DFD</div><div class='add'>+0x4328 = 0x7AEA</div><div class='add'>+0x4329 = 0x8FBF</div><div class='add'>+0x432A = 0x68DA</div><div class='add'>+0x432B = 0x8C37</div><div class='add'>+0x432C = 0x72F8</div><div class='add'>+0x432D = 0x9C48</div><div class='add'>+0x432E = 0x6A3D</div><div class='add'>+0x432F = 0x8AB0</div><div class='add'>+0x4330 = 0x4E39</div><div class='add'>+0x4331 = 0x5358</div><div class='add'>+0x4332 = 0x5606</div><div class='add'>+0x4333 = 0x5766</div><div class='add'>+0x4334 = 0x62C5</div><div class='add'>+0x4335 = 0x63A2</div><div class='add'>+0x4336 = 0x65E6</div><div class='add'>+0x4337 = 0x6B4E</div><div class='add'>+0x4338 = 0x6DE1</div><div class='add'>+0x4339 = 0x6E5B</div><div class='add'>+0x433A = 0x70AD</div><div class='add'>+0x433B = 0x77ED</div><div class='add'>+0x433C = 0x7AEF</div><div class='add'>+0x433D = 0x7BAA</div><div class='add'>+0x433E = 0x7DBB</div><div class='add'>+0x433F = 0x803D</div><div class='add'>+0x4340 = 0x80C6</div><div class='add'>+0x4341 = 0x86CB</div><div class='add'>+0x4342 = 0x8A95</div><div class='add'>+0x4343 = 0x935B</div><div class='add'>+0x4344 = 0x56E3</div><div class='add'>+0x4345 = 0x58C7</div><div class='add'>+0x4346 = 0x5F3E</div><div class='add'>+0x4347 = 0x65AD</div><div class='add'>+0x4348 = 0x6696</div><div class='add'>+0x4349 = 0x6A80</div><div class='add'>+0x434A = 0x6BB5</div><div class='add'>+0x434B = 0x7537</div><div class='add'>+0x434C = 0x8AC7</div><div class='add'>+0x434D = 0x5024</div><div class='add'>+0x434E = 0x77E5</div><div class='add'>+0x434F = 0x5730</div><div class='add'>+0x4350 = 0x5F1B</div><div class='add'>+0x4351 = 0x6065</div><div class='add'>+0x4352 = 0x667A</div><div class='add'>+0x4353 = 0x6C60</div><div class='add'>+0x4354 = 0x75F4</div><div class='add'>+0x4355 = 0x7A1A</div><div class='add'>+0x4356 = 0x7F6E</div><div class='add'>+0x4357 = 0x81F4</div><div class='add'>+0x4358 = 0x8718</div><div class='add'>+0x4359 = 0x9045</div><div class='add'>+0x435A = 0x99B3</div><div class='add'>+0x435B = 0x7BC9</div><div class='add'>+0x435C = 0x755C</div><div class='add'>+0x435D = 0x7AF9</div><div class='add'>+0x435E = 0x7B51</div><div class='add'>+0x435F = 0x84C4</div><div class='add'>+0x4360 = 0x9010</div><div class='add'>+0x4361 = 0x79E9</div><div class='add'>+0x4362 = 0x7A92</div><div class='add'>+0x4363 = 0x8336</div><div class='add'>+0x4364 = 0x5AE1</div><div class='add'>+0x4365 = 0x7740</div><div class='add'>+0x4366 = 0x4E2D</div><div class='add'>+0x4367 = 0x4EF2</div><div class='add'>+0x4368 = 0x5B99</div><div class='add'>+0x4369 = 0x5FE0</div><div class='add'>+0x436A = 0x62BD</div><div class='add'>+0x436B = 0x663C</div><div class='add'>+0x436C = 0x67F1</div><div class='add'>+0x436D = 0x6CE8</div><div class='add'>+0x436E = 0x866B</div><div class='add'>+0x436F = 0x8877</div><div class='add'>+0x4370 = 0x8A3B</div><div class='add'>+0x4371 = 0x914E</div><div class='add'>+0x4372 = 0x92F3</div><div class='add'>+0x4373 = 0x99D0</div><div class='add'>+0x4374 = 0x6A17</div><div class='add'>+0x4375 = 0x7026</div><div class='add'>+0x4376 = 0x732A</div><div class='add'>+0x4377 = 0x82E7</div><div class='add'>+0x4378 = 0x8457</div><div class='add'>+0x4379 = 0x8CAF</div><div class='add'>+0x437A = 0x4E01</div><div class='add'>+0x437B = 0x5146</div><div class='add'>+0x437C = 0x51CB</div><div class='add'>+0x437D = 0x558B</div><div class='add'>+0x437E = 0x5BF5</div><div class='add'>+0x4421 = 0x5E16</div><div class='add'>+0x4422 = 0x5E33</div><div class='add'>+0x4423 = 0x5E81</div><div class='add'>+0x4424 = 0x5F14</div><div class='add'>+0x4425 = 0x5F35</div><div class='add'>+0x4426 = 0x5F6B</div><div class='add'>+0x4427 = 0x5FB4</div><div class='add'>+0x4428 = 0x61F2</div><div class='add'>+0x4429 = 0x6311</div><div class='add'>+0x442A = 0x66A2</div><div class='add'>+0x442B = 0x671D</div><div class='add'>+0x442C = 0x6F6E</div><div class='add'>+0x442D = 0x7252</div><div class='add'>+0x442E = 0x753A</div><div class='add'>+0x442F = 0x773A</div><div class='add'>+0x4430 = 0x8074</div><div class='add'>+0x4431 = 0x8139</div><div class='add'>+0x4432 = 0x8178</div><div class='add'>+0x4433 = 0x8776</div><div class='add'>+0x4434 = 0x8ABF</div><div class='add'>+0x4435 = 0x8ADC</div><div class='add'>+0x4436 = 0x8D85</div><div class='add'>+0x4437 = 0x8DF3</div><div class='add'>+0x4438 = 0x929A</div><div class='add'>+0x4439 = 0x9577</div><div class='add'>+0x443A = 0x9802</div><div class='add'>+0x443B = 0x9CE5</div><div class='add'>+0x443C = 0x52C5</div><div class='add'>+0x443D = 0x6357</div><div class='add'>+0x443E = 0x76F4</div><div class='add'>+0x443F = 0x6715</div><div class='add'>+0x4440 = 0x6C88</div><div class='add'>+0x4441 = 0x73CD</div><div class='add'>+0x4442 = 0x8CC3</div><div class='add'>+0x4443 = 0x93AE</div><div class='add'>+0x4444 = 0x9673</div><div class='add'>+0x4445 = 0x6D25</div><div class='add'>+0x4446 = 0x589C</div><div class='add'>+0x4447 = 0x690E</div><div class='add'>+0x4448 = 0x69CC</div><div class='add'>+0x4449 = 0x8FFD</div><div class='add'>+0x444A = 0x939A</div><div class='add'>+0x444B = 0x75DB</div><div class='add'>+0x444C = 0x901A</div><div class='add'>+0x444D = 0x585A</div><div class='add'>+0x444E = 0x6802</div><div class='add'>+0x444F = 0x63B4</div><div class='add'>+0x4450 = 0x69FB</div><div class='add'>+0x4451 = 0x4F43</div><div class='add'>+0x4452 = 0x6F2C</div><div class='add'>+0x4453 = 0x67D8</div><div class='add'>+0x4454 = 0x8FBB</div><div class='add'>+0x4455 = 0x8526</div><div class='add'>+0x4456 = 0x7DB4</div><div class='add'>+0x4457 = 0x9354</div><div class='add'>+0x4458 = 0x693F</div><div class='add'>+0x4459 = 0x6F70</div><div class='add'>+0x445A = 0x576A</div><div class='add'>+0x445B = 0x58F7</div><div class='add'>+0x445C = 0x5B2C</div><div class='add'>+0x445D = 0x7D2C</div><div class='add'>+0x445E = 0x722A</div><div class='add'>+0x445F = 0x540A</div><div class='add'>+0x4460 = 0x91E3</div><div class='add'>+0x4461 = 0x9DB4</div><div class='add'>+0x4462 = 0x4EAD</div><div class='add'>+0x4463 = 0x4F4E</div><div class='add'>+0x4464 = 0x505C</div><div class='add'>+0x4465 = 0x5075</div><div class='add'>+0x4466 = 0x5243</div><div class='add'>+0x4467 = 0x8C9E</div><div class='add'>+0x4468 = 0x5448</div><div class='add'>+0x4469 = 0x5824</div><div class='add'>+0x446A = 0x5B9A</div><div class='add'>+0x446B = 0x5E1D</div><div class='add'>+0x446C = 0x5E95</div><div class='add'>+0x446D = 0x5EAD</div><div class='add'>+0x446E = 0x5EF7</div><div class='add'>+0x446F = 0x5F1F</div><div class='add'>+0x4470 = 0x608C</div><div class='add'>+0x4471 = 0x62B5</div><div class='add'>+0x4472 = 0x633A</div><div class='add'>+0x4473 = 0x63D0</div><div class='add'>+0x4474 = 0x68AF</div><div class='add'>+0x4475 = 0x6C40</div><div class='add'>+0x4476 = 0x7887</div><div class='add'>+0x4477 = 0x798E</div><div class='add'>+0x4478 = 0x7A0B</div><div class='add'>+0x4479 = 0x7DE0</div><div class='add'>+0x447A = 0x8247</div><div class='add'>+0x447B = 0x8A02</div><div class='add'>+0x447C = 0x8AE6</div><div class='add'>+0x447D = 0x8E44</div><div class='add'>+0x447E = 0x9013</div><div class='add'>+0x4521 = 0x90B8</div><div class='add'>+0x4522 = 0x912D</div><div class='add'>+0x4523 = 0x91D8</div><div class='add'>+0x4524 = 0x9F0E</div><div class='add'>+0x4525 = 0x6CE5</div><div class='add'>+0x4526 = 0x6458</div><div class='add'>+0x4527 = 0x64E2</div><div class='add'>+0x4528 = 0x6575</div><div class='add'>+0x4529 = 0x6EF4</div><div class='add'>+0x452A = 0x7684</div><div class='add'>+0x452B = 0x7B1B</div><div class='add'>+0x452C = 0x9069</div><div class='add'>+0x452D = 0x93D1</div><div class='add'>+0x452E = 0x6EBA</div><div class='add'>+0x452F = 0x54F2</div><div class='add'>+0x4530 = 0x5FB9</div><div class='add'>+0x4531 = 0x64A4</div><div class='add'>+0x4532 = 0x8F4D</div><div class='add'>+0x4533 = 0x8FED</div><div class='add'>+0x4534 = 0x9244</div><div class='add'>+0x4535 = 0x5178</div><div class='add'>+0x4536 = 0x586B</div><div class='add'>+0x4537 = 0x5929</div><div class='add'>+0x4538 = 0x5C55</div><div class='add'>+0x4539 = 0x5E97</div><div class='add'>+0x453A = 0x6DFB</div><div class='add'>+0x453B = 0x7E8F</div><div class='add'>+0x453C = 0x751C</div><div class='add'>+0x453D = 0x8CBC</div><div class='add'>+0x453E = 0x8EE2</div><div class='add'>+0x453F = 0x985B</div><div class='add'>+0x4540 = 0x70B9</div><div class='add'>+0x4541 = 0x4F1D</div><div class='add'>+0x4542 = 0x6BBF</div><div class='add'>+0x4543 = 0x6FB1</div><div class='add'>+0x4544 = 0x7530</div><div class='add'>+0x4545 = 0x96FB</div><div class='add'>+0x4546 = 0x514E</div><div class='add'>+0x4547 = 0x5410</div><div class='add'>+0x4548 = 0x5835</div><div class='add'>+0x4549 = 0x5857</div><div class='add'>+0x454A = 0x59AC</div><div class='add'>+0x454B = 0x5C60</div><div class='add'>+0x454C = 0x5F92</div><div class='add'>+0x454D = 0x6597</div><div class='add'>+0x454E = 0x675C</div><div class='add'>+0x454F = 0x6E21</div><div class='add'>+0x4550 = 0x767B</div><div class='add'>+0x4551 = 0x83DF</div><div class='add'>+0x4552 = 0x8CED</div><div class='add'>+0x4553 = 0x9014</div><div class='add'>+0x4554 = 0x90FD</div><div class='add'>+0x4555 = 0x934D</div><div class='add'>+0x4556 = 0x7825</div><div class='add'>+0x4557 = 0x783A</div><div class='add'>+0x4558 = 0x52AA</div><div class='add'>+0x4559 = 0x5EA6</div><div class='add'>+0x455A = 0x571F</div><div class='add'>+0x455B = 0x5974</div><div class='add'>+0x455C = 0x6012</div><div class='add'>+0x455D = 0x5012</div><div class='add'>+0x455E = 0x515A</div><div class='add'>+0x455F = 0x51AC</div><div class='add'>+0x4560 = 0x51CD</div><div class='add'>+0x4561 = 0x5200</div><div class='add'>+0x4562 = 0x5510</div><div class='add'>+0x4563 = 0x5854</div><div class='add'>+0x4564 = 0x5858</div><div class='add'>+0x4565 = 0x5957</div><div class='add'>+0x4566 = 0x5B95</div><div class='add'>+0x4567 = 0x5CF6</div><div class='add'>+0x4568 = 0x5D8B</div><div class='add'>+0x4569 = 0x60BC</div><div class='add'>+0x456A = 0x6295</div><div class='add'>+0x456B = 0x642D</div><div class='add'>+0x456C = 0x6771</div><div class='add'>+0x456D = 0x6843</div><div class='add'>+0x456E = 0x68BC</div><div class='add'>+0x456F = 0x68DF</div><div class='add'>+0x4570 = 0x76D7</div><div class='add'>+0x4571 = 0x6DD8</div><div class='add'>+0x4572 = 0x6E6F</div><div class='add'>+0x4573 = 0x6D9B</div><div class='add'>+0x4574 = 0x706F</div><div class='add'>+0x4575 = 0x71C8</div><div class='add'>+0x4576 = 0x5F53</div><div class='add'>+0x4577 = 0x75D8</div><div class='add'>+0x4578 = 0x7977</div><div class='add'>+0x4579 = 0x7B49</div><div class='add'>+0x457A = 0x7B54</div><div class='add'>+0x457B = 0x7B52</div><div class='add'>+0x457C = 0x7CD6</div><div class='add'>+0x457D = 0x7D71</div><div class='add'>+0x457E = 0x5230</div><div class='add'>+0x4621 = 0x8463</div><div class='add'>+0x4622 = 0x8569</div><div class='add'>+0x4623 = 0x85E4</div><div class='add'>+0x4624 = 0x8A0E</div><div class='add'>+0x4625 = 0x8B04</div><div class='add'>+0x4626 = 0x8C46</div><div class='add'>+0x4627 = 0x8E0F</div><div class='add'>+0x4628 = 0x9003</div><div class='add'>+0x4629 = 0x900F</div><div class='add'>+0x462A = 0x9419</div><div class='add'>+0x462B = 0x9676</div><div class='add'>+0x462C = 0x982D</div><div class='add'>+0x462D = 0x9A30</div><div class='add'>+0x462E = 0x95D8</div><div class='add'>+0x462F = 0x50CD</div><div class='add'>+0x4630 = 0x52D5</div><div class='add'>+0x4631 = 0x540C</div><div class='add'>+0x4632 = 0x5802</div><div class='add'>+0x4633 = 0x5C0E</div><div class='add'>+0x4634 = 0x61A7</div><div class='add'>+0x4635 = 0x649E</div><div class='add'>+0x4636 = 0x6D1E</div><div class='add'>+0x4637 = 0x77B3</div><div class='add'>+0x4638 = 0x7AE5</div><div class='add'>+0x4639 = 0x80F4</div><div class='add'>+0x463A = 0x8404</div><div class='add'>+0x463B = 0x9053</div><div class='add'>+0x463C = 0x9285</div><div class='add'>+0x463D = 0x5CE0</div><div class='add'>+0x463E = 0x9D07</div><div class='add'>+0x463F = 0x533F</div><div class='add'>+0x4640 = 0x5F97</div><div class='add'>+0x4641 = 0x5FB3</div><div class='add'>+0x4642 = 0x6D9C</div><div class='add'>+0x4643 = 0x7279</div><div class='add'>+0x4644 = 0x7763</div><div class='add'>+0x4645 = 0x79BF</div><div class='add'>+0x4646 = 0x7BE4</div><div class='add'>+0x4647 = 0x6BD2</div><div class='add'>+0x4648 = 0x72EC</div><div class='add'>+0x4649 = 0x8AAD</div><div class='add'>+0x464A = 0x6803</div><div class='add'>+0x464B = 0x6A61</div><div class='add'>+0x464C = 0x51F8</div><div class='add'>+0x464D = 0x7A81</div><div class='add'>+0x464E = 0x6934</div><div class='add'>+0x464F = 0x5C4A</div><div class='add'>+0x4650 = 0x9CF6</div><div class='add'>+0x4651 = 0x82EB</div><div class='add'>+0x4652 = 0x5BC5</div><div class='add'>+0x4653 = 0x9149</div><div class='add'>+0x4654 = 0x701E</div><div class='add'>+0x4655 = 0x5678</div><div class='add'>+0x4656 = 0x5C6F</div><div class='add'>+0x4657 = 0x60C7</div><div class='add'>+0x4658 = 0x6566</div><div class='add'>+0x4659 = 0x6C8C</div><div class='add'>+0x465A = 0x8C5A</div><div class='add'>+0x465B = 0x9041</div><div class='add'>+0x465C = 0x9813</div><div class='add'>+0x465D = 0x5451</div><div class='add'>+0x465E = 0x66C7</div><div class='add'>+0x465F = 0x920D</div><div class='add'>+0x4660 = 0x5948</div><div class='add'>+0x4661 = 0x90A3</div><div class='add'>+0x4662 = 0x5185</div><div class='add'>+0x4663 = 0x4E4D</div><div class='add'>+0x4664 = 0x51EA</div><div class='add'>+0x4665 = 0x8599</div><div class='add'>+0x4666 = 0x8B0E</div><div class='add'>+0x4667 = 0x7058</div><div class='add'>+0x4668 = 0x637A</div><div class='add'>+0x4669 = 0x934B</div><div class='add'>+0x466A = 0x6962</div><div class='add'>+0x466B = 0x99B4</div><div class='add'>+0x466C = 0x7E04</div><div class='add'>+0x466D = 0x7577</div><div class='add'>+0x466E = 0x5357</div><div class='add'>+0x466F = 0x6960</div><div class='add'>+0x4670 = 0x8EDF</div><div class='add'>+0x4671 = 0x96E3</div><div class='add'>+0x4672 = 0x6C5D</div><div class='add'>+0x4673 = 0x4E8C</div><div class='add'>+0x4674 = 0x5C3C</div><div class='add'>+0x4675 = 0x5F10</div><div class='add'>+0x4676 = 0x8FE9</div><div class='add'>+0x4677 = 0x5302</div><div class='add'>+0x4678 = 0x8CD1</div><div class='add'>+0x4679 = 0x8089</div><div class='add'>+0x467A = 0x8679</div><div class='add'>+0x467B = 0x5EFF</div><div class='add'>+0x467C = 0x65E5</div><div class='add'>+0x467D = 0x4E73</div><div class='add'>+0x467E = 0x5165</div><div class='add'>+0x4721 = 0x5982</div><div class='add'>+0x4722 = 0x5C3F</div><div class='add'>+0x4723 = 0x97EE</div><div class='add'>+0x4724 = 0x4EFB</div><div class='add'>+0x4725 = 0x598A</div><div class='add'>+0x4726 = 0x5FCD</div><div class='add'>+0x4727 = 0x8A8D</div><div class='add'>+0x4728 = 0x6FE1</div><div class='add'>+0x4729 = 0x79B0</div><div class='add'>+0x472A = 0x7962</div><div class='add'>+0x472B = 0x5BE7</div><div class='add'>+0x472C = 0x8471</div><div class='add'>+0x472D = 0x732B</div><div class='add'>+0x472E = 0x71B1</div><div class='add'>+0x472F = 0x5E74</div><div class='add'>+0x4730 = 0x5FF5</div><div class='add'>+0x4731 = 0x637B</div><div class='add'>+0x4732 = 0x649A</div><div class='add'>+0x4733 = 0x71C3</div><div class='add'>+0x4734 = 0x7C98</div><div class='add'>+0x4735 = 0x4E43</div><div class='add'>+0x4736 = 0x5EFC</div><div class='add'>+0x4737 = 0x4E4B</div><div class='add'>+0x4738 = 0x57DC</div><div class='add'>+0x4739 = 0x56A2</div><div class='add'>+0x473A = 0x60A9</div><div class='add'>+0x473B = 0x6FC3</div><div class='add'>+0x473C = 0x7D0D</div><div class='add'>+0x473D = 0x80FD</div><div class='add'>+0x473E = 0x8133</div><div class='add'>+0x473F = 0x81BF</div><div class='add'>+0x4740 = 0x8FB2</div><div class='add'>+0x4741 = 0x8997</div><div class='add'>+0x4742 = 0x86A4</div><div class='add'>+0x4743 = 0x5DF4</div><div class='add'>+0x4744 = 0x628A</div><div class='add'>+0x4745 = 0x64AD</div><div class='add'>+0x4746 = 0x8987</div><div class='add'>+0x4747 = 0x6777</div><div class='add'>+0x4748 = 0x6CE2</div><div class='add'>+0x4749 = 0x6D3E</div><div class='add'>+0x474A = 0x7436</div><div class='add'>+0x474B = 0x7834</div><div class='add'>+0x474C = 0x5A46</div><div class='add'>+0x474D = 0x7F75</div><div class='add'>+0x474E = 0x82AD</div><div class='add'>+0x474F = 0x99AC</div><div class='add'>+0x4750 = 0x4FF3</div><div class='add'>+0x4751 = 0x5EC3</div><div class='add'>+0x4752 = 0x62DD</div><div class='add'>+0x4753 = 0x6392</div><div class='add'>+0x4754 = 0x6557</div><div class='add'>+0x4755 = 0x676F</div><div class='add'>+0x4756 = 0x76C3</div><div class='add'>+0x4757 = 0x724C</div><div class='add'>+0x4758 = 0x80CC</div><div class='add'>+0x4759 = 0x80BA</div><div class='add'>+0x475A = 0x8F29</div><div class='add'>+0x475B = 0x914D</div><div class='add'>+0x475C = 0x500D</div><div class='add'>+0x475D = 0x57F9</div><div class='add'>+0x475E = 0x5A92</div><div class='add'>+0x475F = 0x6885</div><div class='add'>+0x4760 = 0x6973</div><div class='add'>+0x4761 = 0x7164</div><div class='add'>+0x4762 = 0x72FD</div><div class='add'>+0x4763 = 0x8CB7</div><div class='add'>+0x4764 = 0x58F2</div><div class='add'>+0x4765 = 0x8CE0</div><div class='add'>+0x4766 = 0x966A</div><div class='add'>+0x4767 = 0x9019</div><div class='add'>+0x4768 = 0x877F</div><div class='add'>+0x4769 = 0x79E4</div><div class='add'>+0x476A = 0x77E7</div><div class='add'>+0x476B = 0x8429</div><div class='add'>+0x476C = 0x4F2F</div><div class='add'>+0x476D = 0x5265</div><div class='add'>+0x476E = 0x535A</div><div class='add'>+0x476F = 0x62CD</div><div class='add'>+0x4770 = 0x67CF</div><div class='add'>+0x4771 = 0x6CCA</div><div class='add'>+0x4772 = 0x767D</div><div class='add'>+0x4773 = 0x7B94</div><div class='add'>+0x4774 = 0x7C95</div><div class='add'>+0x4775 = 0x8236</div><div class='add'>+0x4776 = 0x8584</div><div class='add'>+0x4777 = 0x8FEB</div><div class='add'>+0x4778 = 0x66DD</div><div class='add'>+0x4779 = 0x6F20</div><div class='add'>+0x477A = 0x7206</div><div class='add'>+0x477B = 0x7E1B</div><div class='add'>+0x477C = 0x83AB</div><div class='add'>+0x477D = 0x99C1</div><div class='add'>+0x477E = 0x9EA6</div><div class='add'>+0x4821 = 0x51FD</div><div class='add'>+0x4822 = 0x7BB1</div><div class='add'>+0x4823 = 0x7872</div><div class='add'>+0x4824 = 0x7BB8</div><div class='add'>+0x4825 = 0x8087</div><div class='add'>+0x4826 = 0x7B48</div><div class='add'>+0x4827 = 0x6AE8</div><div class='add'>+0x4828 = 0x5E61</div><div class='add'>+0x4829 = 0x808C</div><div class='add'>+0x482A = 0x7551</div><div class='add'>+0x482B = 0x7560</div><div class='add'>+0x482C = 0x516B</div><div class='add'>+0x482D = 0x9262</div><div class='add'>+0x482E = 0x6E8C</div><div class='add'>+0x482F = 0x767A</div><div class='add'>+0x4830 = 0x9197</div><div class='add'>+0x4831 = 0x9AEA</div><div class='add'>+0x4832 = 0x4F10</div><div class='add'>+0x4833 = 0x7F70</div><div class='add'>+0x4834 = 0x629C</div><div class='add'>+0x4835 = 0x7B4F</div><div class='add'>+0x4836 = 0x95A5</div><div class='add'>+0x4837 = 0x9CE9</div><div class='add'>+0x4838 = 0x567A</div><div class='add'>+0x4839 = 0x5859</div><div class='add'>+0x483A = 0x86E4</div><div class='add'>+0x483B = 0x96BC</div><div class='add'>+0x483C = 0x4F34</div><div class='add'>+0x483D = 0x5224</div><div class='add'>+0x483E = 0x534A</div><div class='add'>+0x483F = 0x53CD</div><div class='add'>+0x4840 = 0x53DB</div><div class='add'>+0x4841 = 0x5E06</div><div class='add'>+0x4842 = 0x642C</div><div class='add'>+0x4843 = 0x6591</div><div class='add'>+0x4844 = 0x677F</div><div class='add'>+0x4845 = 0x6C3E</div><div class='add'>+0x4846 = 0x6C4E</div><div class='add'>+0x4847 = 0x7248</div><div class='add'>+0x4848 = 0x72AF</div><div class='add'>+0x4849 = 0x73ED</div><div class='add'>+0x484A = 0x7554</div><div class='add'>+0x484B = 0x7E41</div><div class='add'>+0x484C = 0x822C</div><div class='add'>+0x484D = 0x85E9</div><div class='add'>+0x484E = 0x8CA9</div><div class='add'>+0x484F = 0x7BC4</div><div class='add'>+0x4850 = 0x91C6</div><div class='add'>+0x4851 = 0x7169</div><div class='add'>+0x4852 = 0x9812</div><div class='add'>+0x4853 = 0x98EF</div><div class='add'>+0x4854 = 0x633D</div><div class='add'>+0x4855 = 0x6669</div><div class='add'>+0x4856 = 0x756A</div><div class='add'>+0x4857 = 0x76E4</div><div class='add'>+0x4858 = 0x78D0</div><div class='add'>+0x4859 = 0x8543</div><div class='add'>+0x485A = 0x86EE</div><div class='add'>+0x485B = 0x532A</div><div class='add'>+0x485C = 0x5351</div><div class='add'>+0x485D = 0x5426</div><div class='add'>+0x485E = 0x5983</div><div class='add'>+0x485F = 0x5E87</div><div class='add'>+0x4860 = 0x5F7C</div><div class='add'>+0x4861 = 0x60B2</div><div class='add'>+0x4862 = 0x6249</div><div class='add'>+0x4863 = 0x6279</div><div class='add'>+0x4864 = 0x62AB</div><div class='add'>+0x4865 = 0x6590</div><div class='add'>+0x4866 = 0x6BD4</div><div class='add'>+0x4867 = 0x6CCC</div><div class='add'>+0x4868 = 0x75B2</div><div class='add'>+0x4869 = 0x76AE</div><div class='add'>+0x486A = 0x7891</div><div class='add'>+0x486B = 0x79D8</div><div class='add'>+0x486C = 0x7DCB</div><div class='add'>+0x486D = 0x7F77</div><div class='add'>+0x486E = 0x80A5</div><div class='add'>+0x486F = 0x88AB</div><div class='add'>+0x4870 = 0x8AB9</div><div class='add'>+0x4871 = 0x8CBB</div><div class='add'>+0x4872 = 0x907F</div><div class='add'>+0x4873 = 0x975E</div><div class='add'>+0x4874 = 0x98DB</div><div class='add'>+0x4875 = 0x6A0B</div><div class='add'>+0x4876 = 0x7C38</div><div class='add'>+0x4877 = 0x5099</div><div class='add'>+0x4878 = 0x5C3E</div><div class='add'>+0x4879 = 0x5FAE</div><div class='add'>+0x487A = 0x6787</div><div class='add'>+0x487B = 0x6BD8</div><div class='add'>+0x487C = 0x7435</div><div class='add'>+0x487D = 0x7709</div><div class='add'>+0x487E = 0x7F8E</div><div class='add'>+0x4921 = 0x9F3B</div><div class='add'>+0x4922 = 0x67CA</div><div class='add'>+0x4923 = 0x7A17</div><div class='add'>+0x4924 = 0x5339</div><div class='add'>+0x4925 = 0x758B</div><div class='add'>+0x4926 = 0x9AED</div><div class='add'>+0x4927 = 0x5F66</div><div class='add'>+0x4928 = 0x819D</div><div class='add'>+0x4929 = 0x83F1</div><div class='add'>+0x492A = 0x8098</div><div class='add'>+0x492B = 0x5F3C</div><div class='add'>+0x492C = 0x5FC5</div><div class='add'>+0x492D = 0x7562</div><div class='add'>+0x492E = 0x7B46</div><div class='add'>+0x492F = 0x903C</div><div class='add'>+0x4930 = 0x6867</div><div class='add'>+0x4931 = 0x59EB</div><div class='add'>+0x4932 = 0x5A9B</div><div class='add'>+0x4933 = 0x7D10</div><div class='add'>+0x4934 = 0x767E</div><div class='add'>+0x4935 = 0x8B2C</div><div class='add'>+0x4936 = 0x4FF5</div><div class='add'>+0x4937 = 0x5F6A</div><div class='add'>+0x4938 = 0x6A19</div><div class='add'>+0x4939 = 0x6C37</div><div class='add'>+0x493A = 0x6F02</div><div class='add'>+0x493B = 0x74E2</div><div class='add'>+0x493C = 0x7968</div><div class='add'>+0x493D = 0x8868</div><div class='add'>+0x493E = 0x8A55</div><div class='add'>+0x493F = 0x8C79</div><div class='add'>+0x4940 = 0x5EDF</div><div class='add'>+0x4941 = 0x63CF</div><div class='add'>+0x4942 = 0x75C5</div><div class='add'>+0x4943 = 0x79D2</div><div class='add'>+0x4944 = 0x82D7</div><div class='add'>+0x4945 = 0x9328</div><div class='add'>+0x4946 = 0x92F2</div><div class='add'>+0x4947 = 0x849C</div><div class='add'>+0x4948 = 0x86ED</div><div class='add'>+0x4949 = 0x9C2D</div><div class='add'>+0x494A = 0x54C1</div><div class='add'>+0x494B = 0x5F6C</div><div class='add'>+0x494C = 0x658C</div><div class='add'>+0x494D = 0x6D5C</div><div class='add'>+0x494E = 0x7015</div><div class='add'>+0x494F = 0x8CA7</div><div class='add'>+0x4950 = 0x8CD3</div><div class='add'>+0x4951 = 0x983B</div><div class='add'>+0x4952 = 0x654F</div><div class='add'>+0x4953 = 0x74F6</div><div class='add'>+0x4954 = 0x4E0D</div><div class='add'>+0x4955 = 0x4ED8</div><div class='add'>+0x4956 = 0x57E0</div><div class='add'>+0x4957 = 0x592B</div><div class='add'>+0x4958 = 0x5A66</div><div class='add'>+0x4959 = 0x5BCC</div><div class='add'>+0x495A = 0x51A8</div><div class='add'>+0x495B = 0x5E03</div><div class='add'>+0x495C = 0x5E9C</div><div class='add'>+0x495D = 0x6016</div><div class='add'>+0x495E = 0x6276</div><div class='add'>+0x495F = 0x6577</div><div class='add'>+0x4960 = 0x65A7</div><div class='add'>+0x4961 = 0x666E</div><div class='add'>+0x4962 = 0x6D6E</div><div class='add'>+0x4963 = 0x7236</div><div class='add'>+0x4964 = 0x7B26</div><div class='add'>+0x4965 = 0x8150</div><div class='add'>+0x4966 = 0x819A</div><div class='add'>+0x4967 = 0x8299</div><div class='add'>+0x4968 = 0x8B5C</div><div class='add'>+0x4969 = 0x8CA0</div><div class='add'>+0x496A = 0x8CE6</div><div class='add'>+0x496B = 0x8D74</div><div class='add'>+0x496C = 0x961C</div><div class='add'>+0x496D = 0x9644</div><div class='add'>+0x496E = 0x4FAE</div><div class='add'>+0x496F = 0x64AB</div><div class='add'>+0x4970 = 0x6B66</div><div class='add'>+0x4971 = 0x821E</div><div class='add'>+0x4972 = 0x8461</div><div class='add'>+0x4973 = 0x856A</div><div class='add'>+0x4974 = 0x90E8</div><div class='add'>+0x4975 = 0x5C01</div><div class='add'>+0x4976 = 0x6953</div><div class='add'>+0x4977 = 0x98A8</div><div class='add'>+0x4978 = 0x847A</div><div class='add'>+0x4979 = 0x8557</div><div class='add'>+0x497A = 0x4F0F</div><div class='add'>+0x497B = 0x526F</div><div class='add'>+0x497C = 0x5FA9</div><div class='add'>+0x497D = 0x5E45</div><div class='add'>+0x497E = 0x670D</div><div class='add'>+0x4A21 = 0x798F</div><div class='add'>+0x4A22 = 0x8179</div><div class='add'>+0x4A23 = 0x8907</div><div class='add'>+0x4A24 = 0x8986</div><div class='add'>+0x4A25 = 0x6DF5</div><div class='add'>+0x4A26 = 0x5F17</div><div class='add'>+0x4A27 = 0x6255</div><div class='add'>+0x4A28 = 0x6CB8</div><div class='add'>+0x4A29 = 0x4ECF</div><div class='add'>+0x4A2A = 0x7269</div><div class='add'>+0x4A2B = 0x9B92</div><div class='add'>+0x4A2C = 0x5206</div><div class='add'>+0x4A2D = 0x543B</div><div class='add'>+0x4A2E = 0x5674</div><div class='add'>+0x4A2F = 0x58B3</div><div class='add'>+0x4A30 = 0x61A4</div><div class='add'>+0x4A31 = 0x626E</div><div class='add'>+0x4A32 = 0x711A</div><div class='add'>+0x4A33 = 0x596E</div><div class='add'>+0x4A34 = 0x7C89</div><div class='add'>+0x4A35 = 0x7CDE</div><div class='add'>+0x4A36 = 0x7D1B</div><div class='add'>+0x4A37 = 0x96F0</div><div class='add'>+0x4A38 = 0x6587</div><div class='add'>+0x4A39 = 0x805E</div><div class='add'>+0x4A3A = 0x4E19</div><div class='add'>+0x4A3B = 0x4F75</div><div class='add'>+0x4A3C = 0x5175</div><div class='add'>+0x4A3D = 0x5840</div><div class='add'>+0x4A3E = 0x5E63</div><div class='add'>+0x4A3F = 0x5E73</div><div class='add'>+0x4A40 = 0x5F0A</div><div class='add'>+0x4A41 = 0x67C4</div><div class='add'>+0x4A42 = 0x4E26</div><div class='add'>+0x4A43 = 0x853D</div><div class='add'>+0x4A44 = 0x9589</div><div class='add'>+0x4A45 = 0x965B</div><div class='add'>+0x4A46 = 0x7C73</div><div class='add'>+0x4A47 = 0x9801</div><div class='add'>+0x4A48 = 0x50FB</div><div class='add'>+0x4A49 = 0x58C1</div><div class='add'>+0x4A4A = 0x7656</div><div class='add'>+0x4A4B = 0x78A7</div><div class='add'>+0x4A4C = 0x5225</div><div class='add'>+0x4A4D = 0x77A5</div><div class='add'>+0x4A4E = 0x8511</div><div class='add'>+0x4A4F = 0x7B86</div><div class='add'>+0x4A50 = 0x504F</div><div class='add'>+0x4A51 = 0x5909</div><div class='add'>+0x4A52 = 0x7247</div><div class='add'>+0x4A53 = 0x7BC7</div><div class='add'>+0x4A54 = 0x7DE8</div><div class='add'>+0x4A55 = 0x8FBA</div><div class='add'>+0x4A56 = 0x8FD4</div><div class='add'>+0x4A57 = 0x904D</div><div class='add'>+0x4A58 = 0x4FBF</div><div class='add'>+0x4A59 = 0x52C9</div><div class='add'>+0x4A5A = 0x5A29</div><div class='add'>+0x4A5B = 0x5F01</div><div class='add'>+0x4A5C = 0x97AD</div><div class='add'>+0x4A5D = 0x4FDD</div><div class='add'>+0x4A5E = 0x8217</div><div class='add'>+0x4A5F = 0x92EA</div><div class='add'>+0x4A60 = 0x5703</div><div class='add'>+0x4A61 = 0x6355</div><div class='add'>+0x4A62 = 0x6B69</div><div class='add'>+0x4A63 = 0x752B</div><div class='add'>+0x4A64 = 0x88DC</div><div class='add'>+0x4A65 = 0x8F14</div><div class='add'>+0x4A66 = 0x7A42</div><div class='add'>+0x4A67 = 0x52DF</div><div class='add'>+0x4A68 = 0x5893</div><div class='add'>+0x4A69 = 0x6155</div><div class='add'>+0x4A6A = 0x620A</div><div class='add'>+0x4A6B = 0x66AE</div><div class='add'>+0x4A6C = 0x6BCD</div><div class='add'>+0x4A6D = 0x7C3F</div><div class='add'>+0x4A6E = 0x83E9</div><div class='add'>+0x4A6F = 0x5023</div><div class='add'>+0x4A70 = 0x4FF8</div><div class='add'>+0x4A71 = 0x5305</div><div class='add'>+0x4A72 = 0x5446</div><div class='add'>+0x4A73 = 0x5831</div><div class='add'>+0x4A74 = 0x5949</div><div class='add'>+0x4A75 = 0x5B9D</div><div class='add'>+0x4A76 = 0x5CF0</div><div class='add'>+0x4A77 = 0x5CEF</div><div class='add'>+0x4A78 = 0x5D29</div><div class='add'>+0x4A79 = 0x5E96</div><div class='add'>+0x4A7A = 0x62B1</div><div class='add'>+0x4A7B = 0x6367</div><div class='add'>+0x4A7C = 0x653E</div><div class='add'>+0x4A7D = 0x65B9</div><div class='add'>+0x4A7E = 0x670B</div><div class='add'>+0x4B21 = 0x6CD5</div><div class='add'>+0x4B22 = 0x6CE1</div><div class='add'>+0x4B23 = 0x70F9</div><div class='add'>+0x4B24 = 0x7832</div><div class='add'>+0x4B25 = 0x7E2B</div><div class='add'>+0x4B26 = 0x80DE</div><div class='add'>+0x4B27 = 0x82B3</div><div class='add'>+0x4B28 = 0x840C</div><div class='add'>+0x4B29 = 0x84EC</div><div class='add'>+0x4B2A = 0x8702</div><div class='add'>+0x4B2B = 0x8912</div><div class='add'>+0x4B2C = 0x8A2A</div><div class='add'>+0x4B2D = 0x8C4A</div><div class='add'>+0x4B2E = 0x90A6</div><div class='add'>+0x4B2F = 0x92D2</div><div class='add'>+0x4B30 = 0x98FD</div><div class='add'>+0x4B31 = 0x9CF3</div><div class='add'>+0x4B32 = 0x9D6C</div><div class='add'>+0x4B33 = 0x4E4F</div><div class='add'>+0x4B34 = 0x4EA1</div><div class='add'>+0x4B35 = 0x508D</div><div class='add'>+0x4B36 = 0x5256</div><div class='add'>+0x4B37 = 0x574A</div><div class='add'>+0x4B38 = 0x59A8</div><div class='add'>+0x4B39 = 0x5E3D</div><div class='add'>+0x4B3A = 0x5FD8</div><div class='add'>+0x4B3B = 0x5FD9</div><div class='add'>+0x4B3C = 0x623F</div><div class='add'>+0x4B3D = 0x66B4</div><div class='add'>+0x4B3E = 0x671B</div><div class='add'>+0x4B3F = 0x67D0</div><div class='add'>+0x4B40 = 0x68D2</div><div class='add'>+0x4B41 = 0x5192</div><div class='add'>+0x4B42 = 0x7D21</div><div class='add'>+0x4B43 = 0x80AA</div><div class='add'>+0x4B44 = 0x81A8</div><div class='add'>+0x4B45 = 0x8B00</div><div class='add'>+0x4B46 = 0x8C8C</div><div class='add'>+0x4B47 = 0x8CBF</div><div class='add'>+0x4B48 = 0x927E</div><div class='add'>+0x4B49 = 0x9632</div><div class='add'>+0x4B4A = 0x5420</div><div class='add'>+0x4B4B = 0x982C</div><div class='add'>+0x4B4C = 0x5317</div><div class='add'>+0x4B4D = 0x50D5</div><div class='add'>+0x4B4E = 0x535C</div><div class='add'>+0x4B4F = 0x58A8</div><div class='add'>+0x4B50 = 0x64B2</div><div class='add'>+0x4B51 = 0x6734</div><div class='add'>+0x4B52 = 0x7267</div><div class='add'>+0x4B53 = 0x7766</div><div class='add'>+0x4B54 = 0x7A46</div><div class='add'>+0x4B55 = 0x91E6</div><div class='add'>+0x4B56 = 0x52C3</div><div class='add'>+0x4B57 = 0x6CA1</div><div class='add'>+0x4B58 = 0x6B86</div><div class='add'>+0x4B59 = 0x5800</div><div class='add'>+0x4B5A = 0x5E4C</div><div class='add'>+0x4B5B = 0x5954</div><div class='add'>+0x4B5C = 0x672C</div><div class='add'>+0x4B5D = 0x7FFB</div><div class='add'>+0x4B5E = 0x51E1</div><div class='add'>+0x4B5F = 0x76C6</div><div class='add'>+0x4B60 = 0x6469</div><div class='add'>+0x4B61 = 0x78E8</div><div class='add'>+0x4B62 = 0x9B54</div><div class='add'>+0x4B63 = 0x9EBB</div><div class='add'>+0x4B64 = 0x57CB</div><div class='add'>+0x4B65 = 0x59B9</div><div class='add'>+0x4B66 = 0x6627</div><div class='add'>+0x4B67 = 0x679A</div><div class='add'>+0x4B68 = 0x6BCE</div><div class='add'>+0x4B69 = 0x54E9</div><div class='add'>+0x4B6A = 0x69D9</div><div class='add'>+0x4B6B = 0x5E55</div><div class='add'>+0x4B6C = 0x819C</div><div class='add'>+0x4B6D = 0x6795</div><div class='add'>+0x4B6E = 0x9BAA</div><div class='add'>+0x4B6F = 0x67FE</div><div class='add'>+0x4B70 = 0x9C52</div><div class='add'>+0x4B71 = 0x685D</div><div class='add'>+0x4B72 = 0x4EA6</div><div class='add'>+0x4B73 = 0x4FE3</div><div class='add'>+0x4B74 = 0x53C8</div><div class='add'>+0x4B75 = 0x62B9</div><div class='add'>+0x4B76 = 0x672B</div><div class='add'>+0x4B77 = 0x6CAB</div><div class='add'>+0x4B78 = 0x8FC4</div><div class='add'>+0x4B79 = 0x4FAD</div><div class='add'>+0x4B7A = 0x7E6D</div><div class='add'>+0x4B7B = 0x9EBF</div><div class='add'>+0x4B7C = 0x4E07</div><div class='add'>+0x4B7D = 0x6162</div><div class='add'>+0x4B7E = 0x6E80</div><div class='add'>+0x4C21 = 0x6F2B</div><div class='add'>+0x4C22 = 0x8513</div><div class='add'>+0x4C23 = 0x5473</div><div class='add'>+0x4C24 = 0x672A</div><div class='add'>+0x4C25 = 0x9B45</div><div class='add'>+0x4C26 = 0x5DF3</div><div class='add'>+0x4C27 = 0x7B95</div><div class='add'>+0x4C28 = 0x5CAC</div><div class='add'>+0x4C29 = 0x5BC6</div><div class='add'>+0x4C2A = 0x871C</div><div class='add'>+0x4C2B = 0x6E4A</div><div class='add'>+0x4C2C = 0x84D1</div><div class='add'>+0x4C2D = 0x7A14</div><div class='add'>+0x4C2E = 0x8108</div><div class='add'>+0x4C2F = 0x5999</div><div class='add'>+0x4C30 = 0x7C8D</div><div class='add'>+0x4C31 = 0x6C11</div><div class='add'>+0x4C32 = 0x7720</div><div class='add'>+0x4C33 = 0x52D9</div><div class='add'>+0x4C34 = 0x5922</div><div class='add'>+0x4C35 = 0x7121</div><div class='add'>+0x4C36 = 0x725F</div><div class='add'>+0x4C37 = 0x77DB</div><div class='add'>+0x4C38 = 0x9727</div><div class='add'>+0x4C39 = 0x9D61</div><div class='add'>+0x4C3A = 0x690B</div><div class='add'>+0x4C3B = 0x5A7F</div><div class='add'>+0x4C3C = 0x5A18</div><div class='add'>+0x4C3D = 0x51A5</div><div class='add'>+0x4C3E = 0x540D</div><div class='add'>+0x4C3F = 0x547D</div><div class='add'>+0x4C40 = 0x660E</div><div class='add'>+0x4C41 = 0x76DF</div><div class='add'>+0x4C42 = 0x8FF7</div><div class='add'>+0x4C43 = 0x9298</div><div class='add'>+0x4C44 = 0x9CF4</div><div class='add'>+0x4C45 = 0x59EA</div><div class='add'>+0x4C46 = 0x725D</div><div class='add'>+0x4C47 = 0x6EC5</div><div class='add'>+0x4C48 = 0x514D</div><div class='add'>+0x4C49 = 0x68C9</div><div class='add'>+0x4C4A = 0x7DBF</div><div class='add'>+0x4C4B = 0x7DEC</div><div class='add'>+0x4C4C = 0x9762</div><div class='add'>+0x4C4D = 0x9EBA</div><div class='add'>+0x4C4E = 0x6478</div><div class='add'>+0x4C4F = 0x6A21</div><div class='add'>+0x4C50 = 0x8302</div><div class='add'>+0x4C51 = 0x5984</div><div class='add'>+0x4C52 = 0x5B5F</div><div class='add'>+0x4C53 = 0x6BDB</div><div class='add'>+0x4C54 = 0x731B</div><div class='add'>+0x4C55 = 0x76F2</div><div class='add'>+0x4C56 = 0x7DB2</div><div class='add'>+0x4C57 = 0x8017</div><div class='add'>+0x4C58 = 0x8499</div><div class='add'>+0x4C59 = 0x5132</div><div class='add'>+0x4C5A = 0x6728</div><div class='add'>+0x4C5B = 0x9ED9</div><div class='add'>+0x4C5C = 0x76EE</div><div class='add'>+0x4C5D = 0x6762</div><div class='add'>+0x4C5E = 0x52FF</div><div class='add'>+0x4C5F = 0x9905</div><div class='add'>+0x4C60 = 0x5C24</div><div class='add'>+0x4C61 = 0x623B</div><div class='add'>+0x4C62 = 0x7C7E</div><div class='add'>+0x4C63 = 0x8CB0</div><div class='add'>+0x4C64 = 0x554F</div><div class='add'>+0x4C65 = 0x60B6</div><div class='add'>+0x4C66 = 0x7D0B</div><div class='add'>+0x4C67 = 0x9580</div><div class='add'>+0x4C68 = 0x5301</div><div class='add'>+0x4C69 = 0x4E5F</div><div class='add'>+0x4C6A = 0x51B6</div><div class='add'>+0x4C6B = 0x591C</div><div class='add'>+0x4C6C = 0x723A</div><div class='add'>+0x4C6D = 0x8036</div><div class='add'>+0x4C6E = 0x91CE</div><div class='add'>+0x4C6F = 0x5F25</div><div class='add'>+0x4C70 = 0x77E2</div><div class='add'>+0x4C71 = 0x5384</div><div class='add'>+0x4C72 = 0x5F79</div><div class='add'>+0x4C73 = 0x7D04</div><div class='add'>+0x4C74 = 0x85AC</div><div class='add'>+0x4C75 = 0x8A33</div><div class='add'>+0x4C76 = 0x8E8D</div><div class='add'>+0x4C77 = 0x9756</div><div class='add'>+0x4C78 = 0x67F3</div><div class='add'>+0x4C79 = 0x85AE</div><div class='add'>+0x4C7A = 0x9453</div><div class='add'>+0x4C7B = 0x6109</div><div class='add'>+0x4C7C = 0x6108</div><div class='add'>+0x4C7D = 0x6CB9</div><div class='add'>+0x4C7E = 0x7652</div><div class='add'>+0x4D21 = 0x8AED</div><div class='add'>+0x4D22 = 0x8F38</div><div class='add'>+0x4D23 = 0x552F</div><div class='add'>+0x4D24 = 0x4F51</div><div class='add'>+0x4D25 = 0x512A</div><div class='add'>+0x4D26 = 0x52C7</div><div class='add'>+0x4D27 = 0x53CB</div><div class='add'>+0x4D28 = 0x5BA5</div><div class='add'>+0x4D29 = 0x5E7D</div><div class='add'>+0x4D2A = 0x60A0</div><div class='add'>+0x4D2B = 0x6182</div><div class='add'>+0x4D2C = 0x63D6</div><div class='add'>+0x4D2D = 0x6709</div><div class='add'>+0x4D2E = 0x67DA</div><div class='add'>+0x4D2F = 0x6E67</div><div class='add'>+0x4D30 = 0x6D8C</div><div class='add'>+0x4D31 = 0x7336</div><div class='add'>+0x4D32 = 0x7337</div><div class='add'>+0x4D33 = 0x7531</div><div class='add'>+0x4D34 = 0x7950</div><div class='add'>+0x4D35 = 0x88D5</div><div class='add'>+0x4D36 = 0x8A98</div><div class='add'>+0x4D37 = 0x904A</div><div class='add'>+0x4D38 = 0x9091</div><div class='add'>+0x4D39 = 0x90F5</div><div class='add'>+0x4D3A = 0x96C4</div><div class='add'>+0x4D3B = 0x878D</div><div class='add'>+0x4D3C = 0x5915</div><div class='add'>+0x4D3D = 0x4E88</div><div class='add'>+0x4D3E = 0x4F59</div><div class='add'>+0x4D3F = 0x4E0E</div><div class='add'>+0x4D40 = 0x8A89</div><div class='add'>+0x4D41 = 0x8F3F</div><div class='add'>+0x4D42 = 0x9810</div><div class='add'>+0x4D43 = 0x50AD</div><div class='add'>+0x4D44 = 0x5E7C</div><div class='add'>+0x4D45 = 0x5996</div><div class='add'>+0x4D46 = 0x5BB9</div><div class='add'>+0x4D47 = 0x5EB8</div><div class='add'>+0x4D48 = 0x63DA</div><div class='add'>+0x4D49 = 0x63FA</div><div class='add'>+0x4D4A = 0x64C1</div><div class='add'>+0x4D4B = 0x66DC</div><div class='add'>+0x4D4C = 0x694A</div><div class='add'>+0x4D4D = 0x69D8</div><div class='add'>+0x4D4E = 0x6D0B</div><div class='add'>+0x4D4F = 0x6EB6</div><div class='add'>+0x4D50 = 0x7194</div><div class='add'>+0x4D51 = 0x7528</div><div class='add'>+0x4D52 = 0x7AAF</div><div class='add'>+0x4D53 = 0x7F8A</div><div class='add'>+0x4D54 = 0x8000</div><div class='add'>+0x4D55 = 0x8449</div><div class='add'>+0x4D56 = 0x84C9</div><div class='add'>+0x4D57 = 0x8981</div><div class='add'>+0x4D58 = 0x8B21</div><div class='add'>+0x4D59 = 0x8E0A</div><div class='add'>+0x4D5A = 0x9065</div><div class='add'>+0x4D5B = 0x967D</div><div class='add'>+0x4D5C = 0x990A</div><div class='add'>+0x4D5D = 0x617E</div><div class='add'>+0x4D5E = 0x6291</div><div class='add'>+0x4D5F = 0x6B32</div><div class='add'>+0x4D60 = 0x6C83</div><div class='add'>+0x4D61 = 0x6D74</div><div class='add'>+0x4D62 = 0x7FCC</div><div class='add'>+0x4D63 = 0x7FFC</div><div class='add'>+0x4D64 = 0x6DC0</div><div class='add'>+0x4D65 = 0x7F85</div><div class='add'>+0x4D66 = 0x87BA</div><div class='add'>+0x4D67 = 0x88F8</div><div class='add'>+0x4D68 = 0x6765</div><div class='add'>+0x4D69 = 0x83B1</div><div class='add'>+0x4D6A = 0x983C</div><div class='add'>+0x4D6B = 0x96F7</div><div class='add'>+0x4D6C = 0x6D1B</div><div class='add'>+0x4D6D = 0x7D61</div><div class='add'>+0x4D6E = 0x843D</div><div class='add'>+0x4D6F = 0x916A</div><div class='add'>+0x4D70 = 0x4E71</div><div class='add'>+0x4D71 = 0x5375</div><div class='add'>+0x4D72 = 0x5D50</div><div class='add'>+0x4D73 = 0x6B04</div><div class='add'>+0x4D74 = 0x6FEB</div><div class='add'>+0x4D75 = 0x85CD</div><div class='add'>+0x4D76 = 0x862D</div><div class='add'>+0x4D77 = 0x89A7</div><div class='add'>+0x4D78 = 0x5229</div><div class='add'>+0x4D79 = 0x540F</div><div class='add'>+0x4D7A = 0x5C65</div><div class='add'>+0x4D7B = 0x674E</div><div class='add'>+0x4D7C = 0x68A8</div><div class='add'>+0x4D7D = 0x7406</div><div class='add'>+0x4D7E = 0x7483</div><div class='add'>+0x4E21 = 0x75E2</div><div class='add'>+0x4E22 = 0x88CF</div><div class='add'>+0x4E23 = 0x88E1</div><div class='add'>+0x4E24 = 0x91CC</div><div class='add'>+0x4E25 = 0x96E2</div><div class='add'>+0x4E26 = 0x9678</div><div class='add'>+0x4E27 = 0x5F8B</div><div class='add'>+0x4E28 = 0x7387</div><div class='add'>+0x4E29 = 0x7ACB</div><div class='add'>+0x4E2A = 0x844E</div><div class='add'>+0x4E2B = 0x63A0</div><div class='add'>+0x4E2C = 0x7565</div><div class='add'>+0x4E2D = 0x5289</div><div class='add'>+0x4E2E = 0x6D41</div><div class='add'>+0x4E2F = 0x6E9C</div><div class='add'>+0x4E30 = 0x7409</div><div class='add'>+0x4E31 = 0x7559</div><div class='add'>+0x4E32 = 0x786B</div><div class='add'>+0x4E33 = 0x7C92</div><div class='add'>+0x4E34 = 0x9686</div><div class='add'>+0x4E35 = 0x7ADC</div><div class='add'>+0x4E36 = 0x9F8D</div><div class='add'>+0x4E37 = 0x4FB6</div><div class='add'>+0x4E38 = 0x616E</div><div class='add'>+0x4E39 = 0x65C5</div><div class='add'>+0x4E3A = 0x865C</div><div class='add'>+0x4E3B = 0x4E86</div><div class='add'>+0x4E3C = 0x4EAE</div><div class='add'>+0x4E3D = 0x50DA</div><div class='add'>+0x4E3E = 0x4E21</div><div class='add'>+0x4E3F = 0x51CC</div><div class='add'>+0x4E40 = 0x5BEE</div><div class='add'>+0x4E41 = 0x6599</div><div class='add'>+0x4E42 = 0x6881</div><div class='add'>+0x4E43 = 0x6DBC</div><div class='add'>+0x4E44 = 0x731F</div><div class='add'>+0x4E45 = 0x7642</div><div class='add'>+0x4E46 = 0x77AD</div><div class='add'>+0x4E47 = 0x7A1C</div><div class='add'>+0x4E48 = 0x7CE7</div><div class='add'>+0x4E49 = 0x826F</div><div class='add'>+0x4E4A = 0x8AD2</div><div class='add'>+0x4E4B = 0x907C</div><div class='add'>+0x4E4C = 0x91CF</div><div class='add'>+0x4E4D = 0x9675</div><div class='add'>+0x4E4E = 0x9818</div><div class='add'>+0x4E4F = 0x529B</div><div class='add'>+0x4E50 = 0x7DD1</div><div class='add'>+0x4E51 = 0x502B</div><div class='add'>+0x4E52 = 0x5398</div><div class='add'>+0x4E53 = 0x6797</div><div class='add'>+0x4E54 = 0x6DCB</div><div class='add'>+0x4E55 = 0x71D0</div><div class='add'>+0x4E56 = 0x7433</div><div class='add'>+0x4E57 = 0x81E8</div><div class='add'>+0x4E58 = 0x8F2A</div><div class='add'>+0x4E59 = 0x96A3</div><div class='add'>+0x4E5A = 0x9C57</div><div class='add'>+0x4E5B = 0x9E9F</div><div class='add'>+0x4E5C = 0x7460</div><div class='add'>+0x4E5D = 0x5841</div><div class='add'>+0x4E5E = 0x6D99</div><div class='add'>+0x4E5F = 0x7D2F</div><div class='add'>+0x4E60 = 0x985E</div><div class='add'>+0x4E61 = 0x4EE4</div><div class='add'>+0x4E62 = 0x4F36</div><div class='add'>+0x4E63 = 0x4F8B</div><div class='add'>+0x4E64 = 0x51B7</div><div class='add'>+0x4E65 = 0x52B1</div><div class='add'>+0x4E66 = 0x5DBA</div><div class='add'>+0x4E67 = 0x601C</div><div class='add'>+0x4E68 = 0x73B2</div><div class='add'>+0x4E69 = 0x793C</div><div class='add'>+0x4E6A = 0x82D3</div><div class='add'>+0x4E6B = 0x9234</div><div class='add'>+0x4E6C = 0x96B7</div><div class='add'>+0x4E6D = 0x96F6</div><div class='add'>+0x4E6E = 0x970A</div><div class='add'>+0x4E6F = 0x9E97</div><div class='add'>+0x4E70 = 0x9F62</div><div class='add'>+0x4E71 = 0x66A6</div><div class='add'>+0x4E72 = 0x6B74</div><div class='add'>+0x4E73 = 0x5217</div><div class='add'>+0x4E74 = 0x52A3</div><div class='add'>+0x4E75 = 0x70C8</div><div class='add'>+0x4E76 = 0x88C2</div><div class='add'>+0x4E77 = 0x5EC9</div><div class='add'>+0x4E78 = 0x604B</div><div class='add'>+0x4E79 = 0x6190</div><div class='add'>+0x4E7A = 0x6F23</div><div class='add'>+0x4E7B = 0x7149</div><div class='add'>+0x4E7C = 0x7C3E</div><div class='add'>+0x4E7D = 0x7DF4</div><div class='add'>+0x4E7E = 0x806F</div><div class='add'>+0x4F21 = 0x84EE</div><div class='add'>+0x4F22 = 0x9023</div><div class='add'>+0x4F23 = 0x932C</div><div class='add'>+0x4F24 = 0x5442</div><div class='add'>+0x4F25 = 0x9B6F</div><div class='add'>+0x4F26 = 0x6AD3</div><div class='add'>+0x4F27 = 0x7089</div><div class='add'>+0x4F28 = 0x8CC2</div><div class='add'>+0x4F29 = 0x8DEF</div><div class='add'>+0x4F2A = 0x9732</div><div class='add'>+0x4F2B = 0x52B4</div><div class='add'>+0x4F2C = 0x5A41</div><div class='add'>+0x4F2D = 0x5ECA</div><div class='add'>+0x4F2E = 0x5F04</div><div class='add'>+0x4F2F = 0x6717</div><div class='add'>+0x4F30 = 0x697C</div><div class='add'>+0x4F31 = 0x6994</div><div class='add'>+0x4F32 = 0x6D6A</div><div class='add'>+0x4F33 = 0x6F0F</div><div class='add'>+0x4F34 = 0x7262</div><div class='add'>+0x4F35 = 0x72FC</div><div class='add'>+0x4F36 = 0x7BED</div><div class='add'>+0x4F37 = 0x8001</div><div class='add'>+0x4F38 = 0x807E</div><div class='add'>+0x4F39 = 0x874B</div><div class='add'>+0x4F3A = 0x90CE</div><div class='add'>+0x4F3B = 0x516D</div><div class='add'>+0x4F3C = 0x9E93</div><div class='add'>+0x4F3D = 0x7984</div><div class='add'>+0x4F3E = 0x808B</div><div class='add'>+0x4F3F = 0x9332</div><div class='add'>+0x4F40 = 0x8AD6</div><div class='add'>+0x4F41 = 0x502D</div><div class='add'>+0x4F42 = 0x548C</div><div class='add'>+0x4F43 = 0x8A71</div><div class='add'>+0x4F44 = 0x6B6A</div><div class='add'>+0x4F45 = 0x8CC4</div><div class='add'>+0x4F46 = 0x8107</div><div class='add'>+0x4F47 = 0x60D1</div><div class='add'>+0x4F48 = 0x67A0</div><div class='add'>+0x4F49 = 0x9DF2</div><div class='add'>+0x4F4A = 0x4E99</div><div class='add'>+0x4F4B = 0x4E98</div><div class='add'>+0x4F4C = 0x9C10</div><div class='add'>+0x4F4D = 0x8A6B</div><div class='add'>+0x4F4E = 0x85C1</div><div class='add'>+0x4F4F = 0x8568</div><div class='add'>+0x4F50 = 0x6900</div><div class='add'>+0x4F51 = 0x6E7E</div><div class='add'>+0x4F52 = 0x7897</div><div class='add'>+0x4F53 = 0x8155</div><div class='add'>+0x5021 = 0x5F0C</div><div class='add'>+0x5022 = 0x4E10</div><div class='add'>+0x5023 = 0x4E15</div><div class='add'>+0x5024 = 0x4E2A</div><div class='add'>+0x5025 = 0x4E31</div><div class='add'>+0x5026 = 0x4E36</div><div class='add'>+0x5027 = 0x4E3C</div><div class='add'>+0x5028 = 0x4E3F</div><div class='add'>+0x5029 = 0x4E42</div><div class='add'>+0x502A = 0x4E56</div><div class='add'>+0x502B = 0x4E58</div><div class='add'>+0x502C = 0x4E82</div><div class='add'>+0x502D = 0x4E85</div><div class='add'>+0x502E = 0x8C6B</div><div class='add'>+0x502F = 0x4E8A</div><div class='add'>+0x5030 = 0x8212</div><div class='add'>+0x5031 = 0x5F0D</div><div class='add'>+0x5032 = 0x4E8E</div><div class='add'>+0x5033 = 0x4E9E</div><div class='add'>+0x5034 = 0x4E9F</div><div class='add'>+0x5035 = 0x4EA0</div><div class='add'>+0x5036 = 0x4EA2</div><div class='add'>+0x5037 = 0x4EB0</div><div class='add'>+0x5038 = 0x4EB3</div><div class='add'>+0x5039 = 0x4EB6</div><div class='add'>+0x503A = 0x4ECE</div><div class='add'>+0x503B = 0x4ECD</div><div class='add'>+0x503C = 0x4EC4</div><div class='add'>+0x503D = 0x4EC6</div><div class='add'>+0x503E = 0x4EC2</div><div class='add'>+0x503F = 0x4ED7</div><div class='add'>+0x5040 = 0x4EDE</div><div class='add'>+0x5041 = 0x4EED</div><div class='add'>+0x5042 = 0x4EDF</div><div class='add'>+0x5043 = 0x4EF7</div><div class='add'>+0x5044 = 0x4F09</div><div class='add'>+0x5045 = 0x4F5A</div><div class='add'>+0x5046 = 0x4F30</div><div class='add'>+0x5047 = 0x4F5B</div><div class='add'>+0x5048 = 0x4F5D</div><div class='add'>+0x5049 = 0x4F57</div><div class='add'>+0x504A = 0x4F47</div><div class='add'>+0x504B = 0x4F76</div><div class='add'>+0x504C = 0x4F88</div><div class='add'>+0x504D = 0x4F8F</div><div class='add'>+0x504E = 0x4F98</div><div class='add'>+0x504F = 0x4F7B</div><div class='add'>+0x5050 = 0x4F69</div><div class='add'>+0x5051 = 0x4F70</div><div class='add'>+0x5052 = 0x4F91</div><div class='add'>+0x5053 = 0x4F6F</div><div class='add'>+0x5054 = 0x4F86</div><div class='add'>+0x5055 = 0x4F96</div><div class='add'>+0x5056 = 0x5118</div><div class='add'>+0x5057 = 0x4FD4</div><div class='add'>+0x5058 = 0x4FDF</div><div class='add'>+0x5059 = 0x4FCE</div><div class='add'>+0x505A = 0x4FD8</div><div class='add'>+0x505B = 0x4FDB</div><div class='add'>+0x505C = 0x4FD1</div><div class='add'>+0x505D = 0x4FDA</div><div class='add'>+0x505E = 0x4FD0</div><div class='add'>+0x505F = 0x4FE4</div><div class='add'>+0x5060 = 0x4FE5</div><div class='add'>+0x5061 = 0x501A</div><div class='add'>+0x5062 = 0x5028</div><div class='add'>+0x5063 = 0x5014</div><div class='add'>+0x5064 = 0x502A</div><div class='add'>+0x5065 = 0x5025</div><div class='add'>+0x5066 = 0x5005</div><div class='add'>+0x5067 = 0x4F1C</div><div class='add'>+0x5068 = 0x4FF6</div><div class='add'>+0x5069 = 0x5021</div><div class='add'>+0x506A = 0x5029</div><div class='add'>+0x506B = 0x502C</div><div class='add'>+0x506C = 0x4FFE</div><div class='add'>+0x506D = 0x4FEF</div><div class='add'>+0x506E = 0x5011</div><div class='add'>+0x506F = 0x5006</div><div class='add'>+0x5070 = 0x5043</div><div class='add'>+0x5071 = 0x5047</div><div class='add'>+0x5072 = 0x6703</div><div class='add'>+0x5073 = 0x5055</div><div class='add'>+0x5074 = 0x5050</div><div class='add'>+0x5075 = 0x5048</div><div class='add'>+0x5076 = 0x505A</div><div class='add'>+0x5077 = 0x5056</div><div class='add'>+0x5078 = 0x506C</div><div class='add'>+0x5079 = 0x5078</div><div class='add'>+0x507A = 0x5080</div><div class='add'>+0x507B = 0x509A</div><div class='add'>+0x507C = 0x5085</div><div class='add'>+0x507D = 0x50B4</div><div class='add'>+0x507E = 0x50B2</div><div class='add'>+0x5121 = 0x50C9</div><div class='add'>+0x5122 = 0x50CA</div><div class='add'>+0x5123 = 0x50B3</div><div class='add'>+0x5124 = 0x50C2</div><div class='add'>+0x5125 = 0x50D6</div><div class='add'>+0x5126 = 0x50DE</div><div class='add'>+0x5127 = 0x50E5</div><div class='add'>+0x5128 = 0x50ED</div><div class='add'>+0x5129 = 0x50E3</div><div class='add'>+0x512A = 0x50EE</div><div class='add'>+0x512B = 0x50F9</div><div class='add'>+0x512C = 0x50F5</div><div class='add'>+0x512D = 0x5109</div><div class='add'>+0x512E = 0x5101</div><div class='add'>+0x512F = 0x5102</div><div class='add'>+0x5130 = 0x5116</div><div class='add'>+0x5131 = 0x5115</div><div class='add'>+0x5132 = 0x5114</div><div class='add'>+0x5133 = 0x511A</div><div class='add'>+0x5134 = 0x5121</div><div class='add'>+0x5135 = 0x513A</div><div class='add'>+0x5136 = 0x5137</div><div class='add'>+0x5137 = 0x513C</div><div class='add'>+0x5138 = 0x513B</div><div class='add'>+0x5139 = 0x513F</div><div class='add'>+0x513A = 0x5140</div><div class='add'>+0x513B = 0x5152</div><div class='add'>+0x513C = 0x514C</div><div class='add'>+0x513D = 0x5154</div><div class='add'>+0x513E = 0x5162</div><div class='add'>+0x513F = 0x7AF8</div><div class='add'>+0x5140 = 0x5169</div><div class='add'>+0x5141 = 0x516A</div><div class='add'>+0x5142 = 0x516E</div><div class='add'>+0x5143 = 0x5180</div><div class='add'>+0x5144 = 0x5182</div><div class='add'>+0x5145 = 0x56D8</div><div class='add'>+0x5146 = 0x518C</div><div class='add'>+0x5147 = 0x5189</div><div class='add'>+0x5148 = 0x518F</div><div class='add'>+0x5149 = 0x5191</div><div class='add'>+0x514A = 0x5193</div><div class='add'>+0x514B = 0x5195</div><div class='add'>+0x514C = 0x5196</div><div class='add'>+0x514D = 0x51A4</div><div class='add'>+0x514E = 0x51A6</div><div class='add'>+0x514F = 0x51A2</div><div class='add'>+0x5150 = 0x51A9</div><div class='add'>+0x5151 = 0x51AA</div><div class='add'>+0x5152 = 0x51AB</div><div class='add'>+0x5153 = 0x51B3</div><div class='add'>+0x5154 = 0x51B1</div><div class='add'>+0x5155 = 0x51B2</div><div class='add'>+0x5156 = 0x51B0</div><div class='add'>+0x5157 = 0x51B5</div><div class='add'>+0x5158 = 0x51BD</div><div class='add'>+0x5159 = 0x51C5</div><div class='add'>+0x515A = 0x51C9</div><div class='add'>+0x515B = 0x51DB</div><div class='add'>+0x515C = 0x51E0</div><div class='add'>+0x515D = 0x8655</div><div class='add'>+0x515E = 0x51E9</div><div class='add'>+0x515F = 0x51ED</div><div class='add'>+0x5160 = 0x51F0</div><div class='add'>+0x5161 = 0x51F5</div><div class='add'>+0x5162 = 0x51FE</div><div class='add'>+0x5163 = 0x5204</div><div class='add'>+0x5164 = 0x520B</div><div class='add'>+0x5165 = 0x5214</div><div class='add'>+0x5166 = 0x520E</div><div class='add'>+0x5167 = 0x5227</div><div class='add'>+0x5168 = 0x522A</div><div class='add'>+0x5169 = 0x522E</div><div class='add'>+0x516A = 0x5233</div><div class='add'>+0x516B = 0x5239</div><div class='add'>+0x516C = 0x524F</div><div class='add'>+0x516D = 0x5244</div><div class='add'>+0x516E = 0x524B</div><div class='add'>+0x516F = 0x524C</div><div class='add'>+0x5170 = 0x525E</div><div class='add'>+0x5171 = 0x5254</div><div class='add'>+0x5172 = 0x526A</div><div class='add'>+0x5173 = 0x5274</div><div class='add'>+0x5174 = 0x5269</div><div class='add'>+0x5175 = 0x5273</div><div class='add'>+0x5176 = 0x527F</div><div class='add'>+0x5177 = 0x527D</div><div class='add'>+0x5178 = 0x528D</div><div class='add'>+0x5179 = 0x5294</div><div class='add'>+0x517A = 0x5292</div><div class='add'>+0x517B = 0x5271</div><div class='add'>+0x517C = 0x5288</div><div class='add'>+0x517D = 0x5291</div><div class='add'>+0x517E = 0x8FA8</div><div class='add'>+0x5221 = 0x8FA7</div><div class='add'>+0x5222 = 0x52AC</div><div class='add'>+0x5223 = 0x52AD</div><div class='add'>+0x5224 = 0x52BC</div><div class='add'>+0x5225 = 0x52B5</div><div class='add'>+0x5226 = 0x52C1</div><div class='add'>+0x5227 = 0x52CD</div><div class='add'>+0x5228 = 0x52D7</div><div class='add'>+0x5229 = 0x52DE</div><div class='add'>+0x522A = 0x52E3</div><div class='add'>+0x522B = 0x52E6</div><div class='add'>+0x522C = 0x98ED</div><div class='add'>+0x522D = 0x52E0</div><div class='add'>+0x522E = 0x52F3</div><div class='add'>+0x522F = 0x52F5</div><div class='add'>+0x5230 = 0x52F8</div><div class='add'>+0x5231 = 0x52F9</div><div class='add'>+0x5232 = 0x5306</div><div class='add'>+0x5233 = 0x5308</div><div class='add'>+0x5234 = 0x7538</div><div class='add'>+0x5235 = 0x530D</div><div class='add'>+0x5236 = 0x5310</div><div class='add'>+0x5237 = 0x530F</div><div class='add'>+0x5238 = 0x5315</div><div class='add'>+0x5239 = 0x531A</div><div class='add'>+0x523A = 0x5323</div><div class='add'>+0x523B = 0x532F</div><div class='add'>+0x523C = 0x5331</div><div class='add'>+0x523D = 0x5333</div><div class='add'>+0x523E = 0x5338</div><div class='add'>+0x523F = 0x5340</div><div class='add'>+0x5240 = 0x5346</div><div class='add'>+0x5241 = 0x5345</div><div class='add'>+0x5242 = 0x4E17</div><div class='add'>+0x5243 = 0x5349</div><div class='add'>+0x5244 = 0x534D</div><div class='add'>+0x5245 = 0x51D6</div><div class='add'>+0x5246 = 0x535E</div><div class='add'>+0x5247 = 0x5369</div><div class='add'>+0x5248 = 0x536E</div><div class='add'>+0x5249 = 0x5918</div><div class='add'>+0x524A = 0x537B</div><div class='add'>+0x524B = 0x5377</div><div class='add'>+0x524C = 0x5382</div><div class='add'>+0x524D = 0x5396</div><div class='add'>+0x524E = 0x53A0</div><div class='add'>+0x524F = 0x53A6</div><div class='add'>+0x5250 = 0x53A5</div><div class='add'>+0x5251 = 0x53AE</div><div class='add'>+0x5252 = 0x53B0</div><div class='add'>+0x5253 = 0x53B6</div><div class='add'>+0x5254 = 0x53C3</div><div class='add'>+0x5255 = 0x7C12</div><div class='add'>+0x5256 = 0x96D9</div><div class='add'>+0x5257 = 0x53DF</div><div class='add'>+0x5258 = 0x66FC</div><div class='add'>+0x5259 = 0x71EE</div><div class='add'>+0x525A = 0x53EE</div><div class='add'>+0x525B = 0x53E8</div><div class='add'>+0x525C = 0x53ED</div><div class='add'>+0x525D = 0x53FA</div><div class='add'>+0x525E = 0x5401</div><div class='add'>+0x525F = 0x543D</div><div class='add'>+0x5260 = 0x5440</div><div class='add'>+0x5261 = 0x542C</div><div class='add'>+0x5262 = 0x542D</div><div class='add'>+0x5263 = 0x543C</div><div class='add'>+0x5264 = 0x542E</div><div class='add'>+0x5265 = 0x5436</div><div class='add'>+0x5266 = 0x5429</div><div class='add'>+0x5267 = 0x541D</div><div class='add'>+0x5268 = 0x544E</div><div class='add'>+0x5269 = 0x548F</div><div class='add'>+0x526A = 0x5475</div><div class='add'>+0x526B = 0x548E</div><div class='add'>+0x526C = 0x545F</div><div class='add'>+0x526D = 0x5471</div><div class='add'>+0x526E = 0x5477</div><div class='add'>+0x526F = 0x5470</div><div class='add'>+0x5270 = 0x5492</div><div class='add'>+0x5271 = 0x547B</div><div class='add'>+0x5272 = 0x5480</div><div class='add'>+0x5273 = 0x5476</div><div class='add'>+0x5274 = 0x5484</div><div class='add'>+0x5275 = 0x5490</div><div class='add'>+0x5276 = 0x5486</div><div class='add'>+0x5277 = 0x54C7</div><div class='add'>+0x5278 = 0x54A2</div><div class='add'>+0x5279 = 0x54B8</div><div class='add'>+0x527A = 0x54A5</div><div class='add'>+0x527B = 0x54AC</div><div class='add'>+0x527C = 0x54C4</div><div class='add'>+0x527D = 0x54C8</div><div class='add'>+0x527E = 0x54A8</div><div class='add'>+0x5321 = 0x54AB</div><div class='add'>+0x5322 = 0x54C2</div><div class='add'>+0x5323 = 0x54A4</div><div class='add'>+0x5324 = 0x54BE</div><div class='add'>+0x5325 = 0x54BC</div><div class='add'>+0x5326 = 0x54D8</div><div class='add'>+0x5327 = 0x54E5</div><div class='add'>+0x5328 = 0x54E6</div><div class='add'>+0x5329 = 0x550F</div><div class='add'>+0x532A = 0x5514</div><div class='add'>+0x532B = 0x54FD</div><div class='add'>+0x532C = 0x54EE</div><div class='add'>+0x532D = 0x54ED</div><div class='add'>+0x532E = 0x54FA</div><div class='add'>+0x532F = 0x54E2</div><div class='add'>+0x5330 = 0x5539</div><div class='add'>+0x5331 = 0x5540</div><div class='add'>+0x5332 = 0x5563</div><div class='add'>+0x5333 = 0x554C</div><div class='add'>+0x5334 = 0x552E</div><div class='add'>+0x5335 = 0x555C</div><div class='add'>+0x5336 = 0x5545</div><div class='add'>+0x5337 = 0x5556</div><div class='add'>+0x5338 = 0x5557</div><div class='add'>+0x5339 = 0x5538</div><div class='add'>+0x533A = 0x5533</div><div class='add'>+0x533B = 0x555D</div><div class='add'>+0x533C = 0x5599</div><div class='add'>+0x533D = 0x5580</div><div class='add'>+0x533E = 0x54AF</div><div class='add'>+0x533F = 0x558A</div><div class='add'>+0x5340 = 0x559F</div><div class='add'>+0x5341 = 0x557B</div><div class='add'>+0x5342 = 0x557E</div><div class='add'>+0x5343 = 0x5598</div><div class='add'>+0x5344 = 0x559E</div><div class='add'>+0x5345 = 0x55AE</div><div class='add'>+0x5346 = 0x557C</div><div class='add'>+0x5347 = 0x5583</div><div class='add'>+0x5348 = 0x55A9</div><div class='add'>+0x5349 = 0x5587</div><div class='add'>+0x534A = 0x55A8</div><div class='add'>+0x534B = 0x55DA</div><div class='add'>+0x534C = 0x55C5</div><div class='add'>+0x534D = 0x55DF</div><div class='add'>+0x534E = 0x55C4</div><div class='add'>+0x534F = 0x55DC</div><div class='add'>+0x5350 = 0x55E4</div><div class='add'>+0x5351 = 0x55D4</div><div class='add'>+0x5352 = 0x5614</div><div class='add'>+0x5353 = 0x55F7</div><div class='add'>+0x5354 = 0x5616</div><div class='add'>+0x5355 = 0x55FE</div><div class='add'>+0x5356 = 0x55FD</div><div class='add'>+0x5357 = 0x561B</div><div class='add'>+0x5358 = 0x55F9</div><div class='add'>+0x5359 = 0x564E</div><div class='add'>+0x535A = 0x5650</div><div class='add'>+0x535B = 0x71DF</div><div class='add'>+0x535C = 0x5634</div><div class='add'>+0x535D = 0x5636</div><div class='add'>+0x535E = 0x5632</div><div class='add'>+0x535F = 0x5638</div><div class='add'>+0x5360 = 0x566B</div><div class='add'>+0x5361 = 0x5664</div><div class='add'>+0x5362 = 0x562F</div><div class='add'>+0x5363 = 0x566C</div><div class='add'>+0x5364 = 0x566A</div><div class='add'>+0x5365 = 0x5686</div><div class='add'>+0x5366 = 0x5680</div><div class='add'>+0x5367 = 0x568A</div><div class='add'>+0x5368 = 0x56A0</div><div class='add'>+0x5369 = 0x5694</div><div class='add'>+0x536A = 0x568F</div><div class='add'>+0x536B = 0x56A5</div><div class='add'>+0x536C = 0x56AE</div><div class='add'>+0x536D = 0x56B6</div><div class='add'>+0x536E = 0x56B4</div><div class='add'>+0x536F = 0x56C2</div><div class='add'>+0x5370 = 0x56BC</div><div class='add'>+0x5371 = 0x56C1</div><div class='add'>+0x5372 = 0x56C3</div><div class='add'>+0x5373 = 0x56C0</div><div class='add'>+0x5374 = 0x56C8</div><div class='add'>+0x5375 = 0x56CE</div><div class='add'>+0x5376 = 0x56D1</div><div class='add'>+0x5377 = 0x56D3</div><div class='add'>+0x5378 = 0x56D7</div><div class='add'>+0x5379 = 0x56EE</div><div class='add'>+0x537A = 0x56F9</div><div class='add'>+0x537B = 0x5700</div><div class='add'>+0x537C = 0x56FF</div><div class='add'>+0x537D = 0x5704</div><div class='add'>+0x537E = 0x5709</div><div class='add'>+0x5421 = 0x5708</div><div class='add'>+0x5422 = 0x570B</div><div class='add'>+0x5423 = 0x570D</div><div class='add'>+0x5424 = 0x5713</div><div class='add'>+0x5425 = 0x5718</div><div class='add'>+0x5426 = 0x5716</div><div class='add'>+0x5427 = 0x55C7</div><div class='add'>+0x5428 = 0x571C</div><div class='add'>+0x5429 = 0x5726</div><div class='add'>+0x542A = 0x5737</div><div class='add'>+0x542B = 0x5738</div><div class='add'>+0x542C = 0x574E</div><div class='add'>+0x542D = 0x573B</div><div class='add'>+0x542E = 0x5740</div><div class='add'>+0x542F = 0x574F</div><div class='add'>+0x5430 = 0x5769</div><div class='add'>+0x5431 = 0x57C0</div><div class='add'>+0x5432 = 0x5788</div><div class='add'>+0x5433 = 0x5761</div><div class='add'>+0x5434 = 0x577F</div><div class='add'>+0x5435 = 0x5789</div><div class='add'>+0x5436 = 0x5793</div><div class='add'>+0x5437 = 0x57A0</div><div class='add'>+0x5438 = 0x57B3</div><div class='add'>+0x5439 = 0x57A4</div><div class='add'>+0x543A = 0x57AA</div><div class='add'>+0x543B = 0x57B0</div><div class='add'>+0x543C = 0x57C3</div><div class='add'>+0x543D = 0x57C6</div><div class='add'>+0x543E = 0x57D4</div><div class='add'>+0x543F = 0x57D2</div><div class='add'>+0x5440 = 0x57D3</div><div class='add'>+0x5441 = 0x580A</div><div class='add'>+0x5442 = 0x57D6</div><div class='add'>+0x5443 = 0x57E3</div><div class='add'>+0x5444 = 0x580B</div><div class='add'>+0x5445 = 0x5819</div><div class='add'>+0x5446 = 0x581D</div><div class='add'>+0x5447 = 0x5872</div><div class='add'>+0x5448 = 0x5821</div><div class='add'>+0x5449 = 0x5862</div><div class='add'>+0x544A = 0x584B</div><div class='add'>+0x544B = 0x5870</div><div class='add'>+0x544C = 0x6BC0</div><div class='add'>+0x544D = 0x5852</div><div class='add'>+0x544E = 0x583D</div><div class='add'>+0x544F = 0x5879</div><div class='add'>+0x5450 = 0x5885</div><div class='add'>+0x5451 = 0x58B9</div><div class='add'>+0x5452 = 0x589F</div><div class='add'>+0x5453 = 0x58AB</div><div class='add'>+0x5454 = 0x58BA</div><div class='add'>+0x5455 = 0x58DE</div><div class='add'>+0x5456 = 0x58BB</div><div class='add'>+0x5457 = 0x58B8</div><div class='add'>+0x5458 = 0x58AE</div><div class='add'>+0x5459 = 0x58C5</div><div class='add'>+0x545A = 0x58D3</div><div class='add'>+0x545B = 0x58D1</div><div class='add'>+0x545C = 0x58D7</div><div class='add'>+0x545D = 0x58D9</div><div class='add'>+0x545E = 0x58D8</div><div class='add'>+0x545F = 0x58E5</div><div class='add'>+0x5460 = 0x58DC</div><div class='add'>+0x5461 = 0x58E4</div><div class='add'>+0x5462 = 0x58DF</div><div class='add'>+0x5463 = 0x58EF</div><div class='add'>+0x5464 = 0x58FA</div><div class='add'>+0x5465 = 0x58F9</div><div class='add'>+0x5466 = 0x58FB</div><div class='add'>+0x5467 = 0x58FC</div><div class='add'>+0x5468 = 0x58FD</div><div class='add'>+0x5469 = 0x5902</div><div class='add'>+0x546A = 0x590A</div><div class='add'>+0x546B = 0x5910</div><div class='add'>+0x546C = 0x591B</div><div class='add'>+0x546D = 0x68A6</div><div class='add'>+0x546E = 0x5925</div><div class='add'>+0x546F = 0x592C</div><div class='add'>+0x5470 = 0x592D</div><div class='add'>+0x5471 = 0x5932</div><div class='add'>+0x5472 = 0x5938</div><div class='add'>+0x5473 = 0x593E</div><div class='add'>+0x5474 = 0x7AD2</div><div class='add'>+0x5475 = 0x5955</div><div class='add'>+0x5476 = 0x5950</div><div class='add'>+0x5477 = 0x594E</div><div class='add'>+0x5478 = 0x595A</div><div class='add'>+0x5479 = 0x5958</div><div class='add'>+0x547A = 0x5962</div><div class='add'>+0x547B = 0x5960</div><div class='add'>+0x547C = 0x5967</div><div class='add'>+0x547D = 0x596C</div><div class='add'>+0x547E = 0x5969</div><div class='add'>+0x5521 = 0x5978</div><div class='add'>+0x5522 = 0x5981</div><div class='add'>+0x5523 = 0x599D</div><div class='add'>+0x5524 = 0x4F5E</div><div class='add'>+0x5525 = 0x4FAB</div><div class='add'>+0x5526 = 0x59A3</div><div class='add'>+0x5527 = 0x59B2</div><div class='add'>+0x5528 = 0x59C6</div><div class='add'>+0x5529 = 0x59E8</div><div class='add'>+0x552A = 0x59DC</div><div class='add'>+0x552B = 0x598D</div><div class='add'>+0x552C = 0x59D9</div><div class='add'>+0x552D = 0x59DA</div><div class='add'>+0x552E = 0x5A25</div><div class='add'>+0x552F = 0x5A1F</div><div class='add'>+0x5530 = 0x5A11</div><div class='add'>+0x5531 = 0x5A1C</div><div class='add'>+0x5532 = 0x5A09</div><div class='add'>+0x5533 = 0x5A1A</div><div class='add'>+0x5534 = 0x5A40</div><div class='add'>+0x5535 = 0x5A6C</div><div class='add'>+0x5536 = 0x5A49</div><div class='add'>+0x5537 = 0x5A35</div><div class='add'>+0x5538 = 0x5A36</div><div class='add'>+0x5539 = 0x5A62</div><div class='add'>+0x553A = 0x5A6A</div><div class='add'>+0x553B = 0x5A9A</div><div class='add'>+0x553C = 0x5ABC</div><div class='add'>+0x553D = 0x5ABE</div><div class='add'>+0x553E = 0x5ACB</div><div class='add'>+0x553F = 0x5AC2</div><div class='add'>+0x5540 = 0x5ABD</div><div class='add'>+0x5541 = 0x5AE3</div><div class='add'>+0x5542 = 0x5AD7</div><div class='add'>+0x5543 = 0x5AE6</div><div class='add'>+0x5544 = 0x5AE9</div><div class='add'>+0x5545 = 0x5AD6</div><div class='add'>+0x5546 = 0x5AFA</div><div class='add'>+0x5547 = 0x5AFB</div><div class='add'>+0x5548 = 0x5B0C</div><div class='add'>+0x5549 = 0x5B0B</div><div class='add'>+0x554A = 0x5B16</div><div class='add'>+0x554B = 0x5B32</div><div class='add'>+0x554C = 0x5AD0</div><div class='add'>+0x554D = 0x5B2A</div><div class='add'>+0x554E = 0x5B36</div><div class='add'>+0x554F = 0x5B3E</div><div class='add'>+0x5550 = 0x5B43</div><div class='add'>+0x5551 = 0x5B45</div><div class='add'>+0x5552 = 0x5B40</div><div class='add'>+0x5553 = 0x5B51</div><div class='add'>+0x5554 = 0x5B55</div><div class='add'>+0x5555 = 0x5B5A</div><div class='add'>+0x5556 = 0x5B5B</div><div class='add'>+0x5557 = 0x5B65</div><div class='add'>+0x5558 = 0x5B69</div><div class='add'>+0x5559 = 0x5B70</div><div class='add'>+0x555A = 0x5B73</div><div class='add'>+0x555B = 0x5B75</div><div class='add'>+0x555C = 0x5B78</div><div class='add'>+0x555D = 0x6588</div><div class='add'>+0x555E = 0x5B7A</div><div class='add'>+0x555F = 0x5B80</div><div class='add'>+0x5560 = 0x5B83</div><div class='add'>+0x5561 = 0x5BA6</div><div class='add'>+0x5562 = 0x5BB8</div><div class='add'>+0x5563 = 0x5BC3</div><div class='add'>+0x5564 = 0x5BC7</div><div class='add'>+0x5565 = 0x5BC9</div><div class='add'>+0x5566 = 0x5BD4</div><div class='add'>+0x5567 = 0x5BD0</div><div class='add'>+0x5568 = 0x5BE4</div><div class='add'>+0x5569 = 0x5BE6</div><div class='add'>+0x556A = 0x5BE2</div><div class='add'>+0x556B = 0x5BDE</div><div class='add'>+0x556C = 0x5BE5</div><div class='add'>+0x556D = 0x5BEB</div><div class='add'>+0x556E = 0x5BF0</div><div class='add'>+0x556F = 0x5BF6</div><div class='add'>+0x5570 = 0x5BF3</div><div class='add'>+0x5571 = 0x5C05</div><div class='add'>+0x5572 = 0x5C07</div><div class='add'>+0x5573 = 0x5C08</div><div class='add'>+0x5574 = 0x5C0D</div><div class='add'>+0x5575 = 0x5C13</div><div class='add'>+0x5576 = 0x5C20</div><div class='add'>+0x5577 = 0x5C22</div><div class='add'>+0x5578 = 0x5C28</div><div class='add'>+0x5579 = 0x5C38</div><div class='add'>+0x557A = 0x5C39</div><div class='add'>+0x557B = 0x5C41</div><div class='add'>+0x557C = 0x5C46</div><div class='add'>+0x557D = 0x5C4E</div><div class='add'>+0x557E = 0x5C53</div><div class='add'>+0x5621 = 0x5C50</div><div class='add'>+0x5622 = 0x5C4F</div><div class='add'>+0x5623 = 0x5B71</div><div class='add'>+0x5624 = 0x5C6C</div><div class='add'>+0x5625 = 0x5C6E</div><div class='add'>+0x5626 = 0x4E62</div><div class='add'>+0x5627 = 0x5C76</div><div class='add'>+0x5628 = 0x5C79</div><div class='add'>+0x5629 = 0x5C8C</div><div class='add'>+0x562A = 0x5C91</div><div class='add'>+0x562B = 0x5C94</div><div class='add'>+0x562C = 0x599B</div><div class='add'>+0x562D = 0x5CAB</div><div class='add'>+0x562E = 0x5CBB</div><div class='add'>+0x562F = 0x5CB6</div><div class='add'>+0x5630 = 0x5CBC</div><div class='add'>+0x5631 = 0x5CB7</div><div class='add'>+0x5632 = 0x5CC5</div><div class='add'>+0x5633 = 0x5CBE</div><div class='add'>+0x5634 = 0x5CC7</div><div class='add'>+0x5635 = 0x5CD9</div><div class='add'>+0x5636 = 0x5CE9</div><div class='add'>+0x5637 = 0x5CFD</div><div class='add'>+0x5638 = 0x5CFA</div><div class='add'>+0x5639 = 0x5CED</div><div class='add'>+0x563A = 0x5D8C</div><div class='add'>+0x563B = 0x5CEA</div><div class='add'>+0x563C = 0x5D0B</div><div class='add'>+0x563D = 0x5D15</div><div class='add'>+0x563E = 0x5D17</div><div class='add'>+0x563F = 0x5D5C</div><div class='add'>+0x5640 = 0x5D1F</div><div class='add'>+0x5641 = 0x5D1B</div><div class='add'>+0x5642 = 0x5D11</div><div class='add'>+0x5643 = 0x5D14</div><div class='add'>+0x5644 = 0x5D22</div><div class='add'>+0x5645 = 0x5D1A</div><div class='add'>+0x5646 = 0x5D19</div><div class='add'>+0x5647 = 0x5D18</div><div class='add'>+0x5648 = 0x5D4C</div><div class='add'>+0x5649 = 0x5D52</div><div class='add'>+0x564A = 0x5D4E</div><div class='add'>+0x564B = 0x5D4B</div><div class='add'>+0x564C = 0x5D6C</div><div class='add'>+0x564D = 0x5D73</div><div class='add'>+0x564E = 0x5D76</div><div class='add'>+0x564F = 0x5D87</div><div class='add'>+0x5650 = 0x5D84</div><div class='add'>+0x5651 = 0x5D82</div><div class='add'>+0x5652 = 0x5DA2</div><div class='add'>+0x5653 = 0x5D9D</div><div class='add'>+0x5654 = 0x5DAC</div><div class='add'>+0x5655 = 0x5DAE</div><div class='add'>+0x5656 = 0x5DBD</div><div class='add'>+0x5657 = 0x5D90</div><div class='add'>+0x5658 = 0x5DB7</div><div class='add'>+0x5659 = 0x5DBC</div><div class='add'>+0x565A = 0x5DC9</div><div class='add'>+0x565B = 0x5DCD</div><div class='add'>+0x565C = 0x5DD3</div><div class='add'>+0x565D = 0x5DD2</div><div class='add'>+0x565E = 0x5DD6</div><div class='add'>+0x565F = 0x5DDB</div><div class='add'>+0x5660 = 0x5DEB</div><div class='add'>+0x5661 = 0x5DF2</div><div class='add'>+0x5662 = 0x5DF5</div><div class='add'>+0x5663 = 0x5E0B</div><div class='add'>+0x5664 = 0x5E1A</div><div class='add'>+0x5665 = 0x5E19</div><div class='add'>+0x5666 = 0x5E11</div><div class='add'>+0x5667 = 0x5E1B</div><div class='add'>+0x5668 = 0x5E36</div><div class='add'>+0x5669 = 0x5E37</div><div class='add'>+0x566A = 0x5E44</div><div class='add'>+0x566B = 0x5E43</div><div class='add'>+0x566C = 0x5E40</div><div class='add'>+0x566D = 0x5E4E</div><div class='add'>+0x566E = 0x5E57</div><div class='add'>+0x566F = 0x5E54</div><div class='add'>+0x5670 = 0x5E5F</div><div class='add'>+0x5671 = 0x5E62</div><div class='add'>+0x5672 = 0x5E64</div><div class='add'>+0x5673 = 0x5E47</div><div class='add'>+0x5674 = 0x5E75</div><div class='add'>+0x5675 = 0x5E76</div><div class='add'>+0x5676 = 0x5E7A</div><div class='add'>+0x5677 = 0x9EBC</div><div class='add'>+0x5678 = 0x5E7F</div><div class='add'>+0x5679 = 0x5EA0</div><div class='add'>+0x567A = 0x5EC1</div><div class='add'>+0x567B = 0x5EC2</div><div class='add'>+0x567C = 0x5EC8</div><div class='add'>+0x567D = 0x5ED0</div><div class='add'>+0x567E = 0x5ECF</div><div class='add'>+0x5721 = 0x5ED6</div><div class='add'>+0x5722 = 0x5EE3</div><div class='add'>+0x5723 = 0x5EDD</div><div class='add'>+0x5724 = 0x5EDA</div><div class='add'>+0x5725 = 0x5EDB</div><div class='add'>+0x5726 = 0x5EE2</div><div class='add'>+0x5727 = 0x5EE1</div><div class='add'>+0x5728 = 0x5EE8</div><div class='add'>+0x5729 = 0x5EE9</div><div class='add'>+0x572A = 0x5EEC</div><div class='add'>+0x572B = 0x5EF1</div><div class='add'>+0x572C = 0x5EF3</div><div class='add'>+0x572D = 0x5EF0</div><div class='add'>+0x572E = 0x5EF4</div><div class='add'>+0x572F = 0x5EF8</div><div class='add'>+0x5730 = 0x5EFE</div><div class='add'>+0x5731 = 0x5F03</div><div class='add'>+0x5732 = 0x5F09</div><div class='add'>+0x5733 = 0x5F5D</div><div class='add'>+0x5734 = 0x5F5C</div><div class='add'>+0x5735 = 0x5F0B</div><div class='add'>+0x5736 = 0x5F11</div><div class='add'>+0x5737 = 0x5F16</div><div class='add'>+0x5738 = 0x5F29</div><div class='add'>+0x5739 = 0x5F2D</div><div class='add'>+0x573A = 0x5F38</div><div class='add'>+0x573B = 0x5F41</div><div class='add'>+0x573C = 0x5F48</div><div class='add'>+0x573D = 0x5F4C</div><div class='add'>+0x573E = 0x5F4E</div><div class='add'>+0x573F = 0x5F2F</div><div class='add'>+0x5740 = 0x5F51</div><div class='add'>+0x5741 = 0x5F56</div><div class='add'>+0x5742 = 0x5F57</div><div class='add'>+0x5743 = 0x5F59</div><div class='add'>+0x5744 = 0x5F61</div><div class='add'>+0x5745 = 0x5F6D</div><div class='add'>+0x5746 = 0x5F73</div><div class='add'>+0x5747 = 0x5F77</div><div class='add'>+0x5748 = 0x5F83</div><div class='add'>+0x5749 = 0x5F82</div><div class='add'>+0x574A = 0x5F7F</div><div class='add'>+0x574B = 0x5F8A</div><div class='add'>+0x574C = 0x5F88</div><div class='add'>+0x574D = 0x5F91</div><div class='add'>+0x574E = 0x5F87</div><div class='add'>+0x574F = 0x5F9E</div><div class='add'>+0x5750 = 0x5F99</div><div class='add'>+0x5751 = 0x5F98</div><div class='add'>+0x5752 = 0x5FA0</div><div class='add'>+0x5753 = 0x5FA8</div><div class='add'>+0x5754 = 0x5FAD</div><div class='add'>+0x5755 = 0x5FBC</div><div class='add'>+0x5756 = 0x5FD6</div><div class='add'>+0x5757 = 0x5FFB</div><div class='add'>+0x5758 = 0x5FE4</div><div class='add'>+0x5759 = 0x5FF8</div><div class='add'>+0x575A = 0x5FF1</div><div class='add'>+0x575B = 0x5FDD</div><div class='add'>+0x575C = 0x60B3</div><div class='add'>+0x575D = 0x5FFF</div><div class='add'>+0x575E = 0x6021</div><div class='add'>+0x575F = 0x6060</div><div class='add'>+0x5760 = 0x6019</div><div class='add'>+0x5761 = 0x6010</div><div class='add'>+0x5762 = 0x6029</div><div class='add'>+0x5763 = 0x600E</div><div class='add'>+0x5764 = 0x6031</div><div class='add'>+0x5765 = 0x601B</div><div class='add'>+0x5766 = 0x6015</div><div class='add'>+0x5767 = 0x602B</div><div class='add'>+0x5768 = 0x6026</div><div class='add'>+0x5769 = 0x600F</div><div class='add'>+0x576A = 0x603A</div><div class='add'>+0x576B = 0x605A</div><div class='add'>+0x576C = 0x6041</div><div class='add'>+0x576D = 0x606A</div><div class='add'>+0x576E = 0x6077</div><div class='add'>+0x576F = 0x605F</div><div class='add'>+0x5770 = 0x604A</div><div class='add'>+0x5771 = 0x6046</div><div class='add'>+0x5772 = 0x604D</div><div class='add'>+0x5773 = 0x6063</div><div class='add'>+0x5774 = 0x6043</div><div class='add'>+0x5775 = 0x6064</div><div class='add'>+0x5776 = 0x6042</div><div class='add'>+0x5777 = 0x606C</div><div class='add'>+0x5778 = 0x606B</div><div class='add'>+0x5779 = 0x6059</div><div class='add'>+0x577A = 0x6081</div><div class='add'>+0x577B = 0x608D</div><div class='add'>+0x577C = 0x60E7</div><div class='add'>+0x577D = 0x6083</div><div class='add'>+0x577E = 0x609A</div><div class='add'>+0x5821 = 0x6084</div><div class='add'>+0x5822 = 0x609B</div><div class='add'>+0x5823 = 0x6096</div><div class='add'>+0x5824 = 0x6097</div><div class='add'>+0x5825 = 0x6092</div><div class='add'>+0x5826 = 0x60A7</div><div class='add'>+0x5827 = 0x608B</div><div class='add'>+0x5828 = 0x60E1</div><div class='add'>+0x5829 = 0x60B8</div><div class='add'>+0x582A = 0x60E0</div><div class='add'>+0x582B = 0x60D3</div><div class='add'>+0x582C = 0x60B4</div><div class='add'>+0x582D = 0x5FF0</div><div class='add'>+0x582E = 0x60BD</div><div class='add'>+0x582F = 0x60C6</div><div class='add'>+0x5830 = 0x60B5</div><div class='add'>+0x5831 = 0x60D8</div><div class='add'>+0x5832 = 0x614D</div><div class='add'>+0x5833 = 0x6115</div><div class='add'>+0x5834 = 0x6106</div><div class='add'>+0x5835 = 0x60F6</div><div class='add'>+0x5836 = 0x60F7</div><div class='add'>+0x5837 = 0x6100</div><div class='add'>+0x5838 = 0x60F4</div><div class='add'>+0x5839 = 0x60FA</div><div class='add'>+0x583A = 0x6103</div><div class='add'>+0x583B = 0x6121</div><div class='add'>+0x583C = 0x60FB</div><div class='add'>+0x583D = 0x60F1</div><div class='add'>+0x583E = 0x610D</div><div class='add'>+0x583F = 0x610E</div><div class='add'>+0x5840 = 0x6147</div><div class='add'>+0x5841 = 0x613E</div><div class='add'>+0x5842 = 0x6128</div><div class='add'>+0x5843 = 0x6127</div><div class='add'>+0x5844 = 0x614A</div><div class='add'>+0x5845 = 0x613F</div><div class='add'>+0x5846 = 0x613C</div><div class='add'>+0x5847 = 0x612C</div><div class='add'>+0x5848 = 0x6134</div><div class='add'>+0x5849 = 0x613D</div><div class='add'>+0x584A = 0x6142</div><div class='add'>+0x584B = 0x6144</div><div class='add'>+0x584C = 0x6173</div><div class='add'>+0x584D = 0x6177</div><div class='add'>+0x584E = 0x6158</div><div class='add'>+0x584F = 0x6159</div><div class='add'>+0x5850 = 0x615A</div><div class='add'>+0x5851 = 0x616B</div><div class='add'>+0x5852 = 0x6174</div><div class='add'>+0x5853 = 0x616F</div><div class='add'>+0x5854 = 0x6165</div><div class='add'>+0x5855 = 0x6171</div><div class='add'>+0x5856 = 0x615F</div><div class='add'>+0x5857 = 0x615D</div><div class='add'>+0x5858 = 0x6153</div><div class='add'>+0x5859 = 0x6175</div><div class='add'>+0x585A = 0x6199</div><div class='add'>+0x585B = 0x6196</div><div class='add'>+0x585C = 0x6187</div><div class='add'>+0x585D = 0x61AC</div><div class='add'>+0x585E = 0x6194</div><div class='add'>+0x585F = 0x619A</div><div class='add'>+0x5860 = 0x618A</div><div class='add'>+0x5861 = 0x6191</div><div class='add'>+0x5862 = 0x61AB</div><div class='add'>+0x5863 = 0x61AE</div><div class='add'>+0x5864 = 0x61CC</div><div class='add'>+0x5865 = 0x61CA</div><div class='add'>+0x5866 = 0x61C9</div><div class='add'>+0x5867 = 0x61F7</div><div class='add'>+0x5868 = 0x61C8</div><div class='add'>+0x5869 = 0x61C3</div><div class='add'>+0x586A = 0x61C6</div><div class='add'>+0x586B = 0x61BA</div><div class='add'>+0x586C = 0x61CB</div><div class='add'>+0x586D = 0x7F79</div><div class='add'>+0x586E = 0x61CD</div><div class='add'>+0x586F = 0x61E6</div><div class='add'>+0x5870 = 0x61E3</div><div class='add'>+0x5871 = 0x61F6</div><div class='add'>+0x5872 = 0x61FA</div><div class='add'>+0x5873 = 0x61F4</div><div class='add'>+0x5874 = 0x61FF</div><div class='add'>+0x5875 = 0x61FD</div><div class='add'>+0x5876 = 0x61FC</div><div class='add'>+0x5877 = 0x61FE</div><div class='add'>+0x5878 = 0x6200</div><div class='add'>+0x5879 = 0x6208</div><div class='add'>+0x587A = 0x6209</div><div class='add'>+0x587B = 0x620D</div><div class='add'>+0x587C = 0x620C</div><div class='add'>+0x587D = 0x6214</div><div class='add'>+0x587E = 0x621B</div><div class='add'>+0x5921 = 0x621E</div><div class='add'>+0x5922 = 0x6221</div><div class='add'>+0x5923 = 0x622A</div><div class='add'>+0x5924 = 0x622E</div><div class='add'>+0x5925 = 0x6230</div><div class='add'>+0x5926 = 0x6232</div><div class='add'>+0x5927 = 0x6233</div><div class='add'>+0x5928 = 0x6241</div><div class='add'>+0x5929 = 0x624E</div><div class='add'>+0x592A = 0x625E</div><div class='add'>+0x592B = 0x6263</div><div class='add'>+0x592C = 0x625B</div><div class='add'>+0x592D = 0x6260</div><div class='add'>+0x592E = 0x6268</div><div class='add'>+0x592F = 0x627C</div><div class='add'>+0x5930 = 0x6282</div><div class='add'>+0x5931 = 0x6289</div><div class='add'>+0x5932 = 0x627E</div><div class='add'>+0x5933 = 0x6292</div><div class='add'>+0x5934 = 0x6293</div><div class='add'>+0x5935 = 0x6296</div><div class='add'>+0x5936 = 0x62D4</div><div class='add'>+0x5937 = 0x6283</div><div class='add'>+0x5938 = 0x6294</div><div class='add'>+0x5939 = 0x62D7</div><div class='add'>+0x593A = 0x62D1</div><div class='add'>+0x593B = 0x62BB</div><div class='add'>+0x593C = 0x62CF</div><div class='add'>+0x593D = 0x62FF</div><div class='add'>+0x593E = 0x62C6</div><div class='add'>+0x593F = 0x64D4</div><div class='add'>+0x5940 = 0x62C8</div><div class='add'>+0x5941 = 0x62DC</div><div class='add'>+0x5942 = 0x62CC</div><div class='add'>+0x5943 = 0x62CA</div><div class='add'>+0x5944 = 0x62C2</div><div class='add'>+0x5945 = 0x62C7</div><div class='add'>+0x5946 = 0x629B</div><div class='add'>+0x5947 = 0x62C9</div><div class='add'>+0x5948 = 0x630C</div><div class='add'>+0x5949 = 0x62EE</div><div class='add'>+0x594A = 0x62F1</div><div class='add'>+0x594B = 0x6327</div><div class='add'>+0x594C = 0x6302</div><div class='add'>+0x594D = 0x6308</div><div class='add'>+0x594E = 0x62EF</div><div class='add'>+0x594F = 0x62F5</div><div class='add'>+0x5950 = 0x6350</div><div class='add'>+0x5951 = 0x633E</div><div class='add'>+0x5952 = 0x634D</div><div class='add'>+0x5953 = 0x641C</div><div class='add'>+0x5954 = 0x634F</div><div class='add'>+0x5955 = 0x6396</div><div class='add'>+0x5956 = 0x638E</div><div class='add'>+0x5957 = 0x6380</div><div class='add'>+0x5958 = 0x63AB</div><div class='add'>+0x5959 = 0x6376</div><div class='add'>+0x595A = 0x63A3</div><div class='add'>+0x595B = 0x638F</div><div class='add'>+0x595C = 0x6389</div><div class='add'>+0x595D = 0x639F</div><div class='add'>+0x595E = 0x63B5</div><div class='add'>+0x595F = 0x636B</div><div class='add'>+0x5960 = 0x6369</div><div class='add'>+0x5961 = 0x63BE</div><div class='add'>+0x5962 = 0x63E9</div><div class='add'>+0x5963 = 0x63C0</div><div class='add'>+0x5964 = 0x63C6</div><div class='add'>+0x5965 = 0x63E3</div><div class='add'>+0x5966 = 0x63C9</div><div class='add'>+0x5967 = 0x63D2</div><div class='add'>+0x5968 = 0x63F6</div><div class='add'>+0x5969 = 0x63C4</div><div class='add'>+0x596A = 0x6416</div><div class='add'>+0x596B = 0x6434</div><div class='add'>+0x596C = 0x6406</div><div class='add'>+0x596D = 0x6413</div><div class='add'>+0x596E = 0x6426</div><div class='add'>+0x596F = 0x6436</div><div class='add'>+0x5970 = 0x651D</div><div class='add'>+0x5971 = 0x6417</div><div class='add'>+0x5972 = 0x6428</div><div class='add'>+0x5973 = 0x640F</div><div class='add'>+0x5974 = 0x6467</div><div class='add'>+0x5975 = 0x646F</div><div class='add'>+0x5976 = 0x6476</div><div class='add'>+0x5977 = 0x644E</div><div class='add'>+0x5978 = 0x652A</div><div class='add'>+0x5979 = 0x6495</div><div class='add'>+0x597A = 0x6493</div><div class='add'>+0x597B = 0x64A5</div><div class='add'>+0x597C = 0x64A9</div><div class='add'>+0x597D = 0x6488</div><div class='add'>+0x597E = 0x64BC</div><div class='add'>+0x5A21 = 0x64DA</div><div class='add'>+0x5A22 = 0x64D2</div><div class='add'>+0x5A23 = 0x64C5</div><div class='add'>+0x5A24 = 0x64C7</div><div class='add'>+0x5A25 = 0x64BB</div><div class='add'>+0x5A26 = 0x64D8</div><div class='add'>+0x5A27 = 0x64C2</div><div class='add'>+0x5A28 = 0x64F1</div><div class='add'>+0x5A29 = 0x64E7</div><div class='add'>+0x5A2A = 0x8209</div><div class='add'>+0x5A2B = 0x64E0</div><div class='add'>+0x5A2C = 0x64E1</div><div class='add'>+0x5A2D = 0x62AC</div><div class='add'>+0x5A2E = 0x64E3</div><div class='add'>+0x5A2F = 0x64EF</div><div class='add'>+0x5A30 = 0x652C</div><div class='add'>+0x5A31 = 0x64F6</div><div class='add'>+0x5A32 = 0x64F4</div><div class='add'>+0x5A33 = 0x64F2</div><div class='add'>+0x5A34 = 0x64FA</div><div class='add'>+0x5A35 = 0x6500</div><div class='add'>+0x5A36 = 0x64FD</div><div class='add'>+0x5A37 = 0x6518</div><div class='add'>+0x5A38 = 0x651C</div><div class='add'>+0x5A39 = 0x6505</div><div class='add'>+0x5A3A = 0x6524</div><div class='add'>+0x5A3B = 0x6523</div><div class='add'>+0x5A3C = 0x652B</div><div class='add'>+0x5A3D = 0x6534</div><div class='add'>+0x5A3E = 0x6535</div><div class='add'>+0x5A3F = 0x6537</div><div class='add'>+0x5A40 = 0x6536</div><div class='add'>+0x5A41 = 0x6538</div><div class='add'>+0x5A42 = 0x754B</div><div class='add'>+0x5A43 = 0x6548</div><div class='add'>+0x5A44 = 0x6556</div><div class='add'>+0x5A45 = 0x6555</div><div class='add'>+0x5A46 = 0x654D</div><div class='add'>+0x5A47 = 0x6558</div><div class='add'>+0x5A48 = 0x655E</div><div class='add'>+0x5A49 = 0x655D</div><div class='add'>+0x5A4A = 0x6572</div><div class='add'>+0x5A4B = 0x6578</div><div class='add'>+0x5A4C = 0x6582</div><div class='add'>+0x5A4D = 0x6583</div><div class='add'>+0x5A4E = 0x8B8A</div><div class='add'>+0x5A4F = 0x659B</div><div class='add'>+0x5A50 = 0x659F</div><div class='add'>+0x5A51 = 0x65AB</div><div class='add'>+0x5A52 = 0x65B7</div><div class='add'>+0x5A53 = 0x65C3</div><div class='add'>+0x5A54 = 0x65C6</div><div class='add'>+0x5A55 = 0x65C1</div><div class='add'>+0x5A56 = 0x65C4</div><div class='add'>+0x5A57 = 0x65CC</div><div class='add'>+0x5A58 = 0x65D2</div><div class='add'>+0x5A59 = 0x65DB</div><div class='add'>+0x5A5A = 0x65D9</div><div class='add'>+0x5A5B = 0x65E0</div><div class='add'>+0x5A5C = 0x65E1</div><div class='add'>+0x5A5D = 0x65F1</div><div class='add'>+0x5A5E = 0x6772</div><div class='add'>+0x5A5F = 0x660A</div><div class='add'>+0x5A60 = 0x6603</div><div class='add'>+0x5A61 = 0x65FB</div><div class='add'>+0x5A62 = 0x6773</div><div class='add'>+0x5A63 = 0x6635</div><div class='add'>+0x5A64 = 0x6636</div><div class='add'>+0x5A65 = 0x6634</div><div class='add'>+0x5A66 = 0x661C</div><div class='add'>+0x5A67 = 0x664F</div><div class='add'>+0x5A68 = 0x6644</div><div class='add'>+0x5A69 = 0x6649</div><div class='add'>+0x5A6A = 0x6641</div><div class='add'>+0x5A6B = 0x665E</div><div class='add'>+0x5A6C = 0x665D</div><div class='add'>+0x5A6D = 0x6664</div><div class='add'>+0x5A6E = 0x6667</div><div class='add'>+0x5A6F = 0x6668</div><div class='add'>+0x5A70 = 0x665F</div><div class='add'>+0x5A71 = 0x6662</div><div class='add'>+0x5A72 = 0x6670</div><div class='add'>+0x5A73 = 0x6683</div><div class='add'>+0x5A74 = 0x6688</div><div class='add'>+0x5A75 = 0x668E</div><div class='add'>+0x5A76 = 0x6689</div><div class='add'>+0x5A77 = 0x6684</div><div class='add'>+0x5A78 = 0x6698</div><div class='add'>+0x5A79 = 0x669D</div><div class='add'>+0x5A7A = 0x66C1</div><div class='add'>+0x5A7B = 0x66B9</div><div class='add'>+0x5A7C = 0x66C9</div><div class='add'>+0x5A7D = 0x66BE</div><div class='add'>+0x5A7E = 0x66BC</div><div class='add'>+0x5B21 = 0x66C4</div><div class='add'>+0x5B22 = 0x66B8</div><div class='add'>+0x5B23 = 0x66D6</div><div class='add'>+0x5B24 = 0x66DA</div><div class='add'>+0x5B25 = 0x66E0</div><div class='add'>+0x5B26 = 0x663F</div><div class='add'>+0x5B27 = 0x66E6</div><div class='add'>+0x5B28 = 0x66E9</div><div class='add'>+0x5B29 = 0x66F0</div><div class='add'>+0x5B2A = 0x66F5</div><div class='add'>+0x5B2B = 0x66F7</div><div class='add'>+0x5B2C = 0x670F</div><div class='add'>+0x5B2D = 0x6716</div><div class='add'>+0x5B2E = 0x671E</div><div class='add'>+0x5B2F = 0x6726</div><div class='add'>+0x5B30 = 0x6727</div><div class='add'>+0x5B31 = 0x9738</div><div class='add'>+0x5B32 = 0x672E</div><div class='add'>+0x5B33 = 0x673F</div><div class='add'>+0x5B34 = 0x6736</div><div class='add'>+0x5B35 = 0x6741</div><div class='add'>+0x5B36 = 0x6738</div><div class='add'>+0x5B37 = 0x6737</div><div class='add'>+0x5B38 = 0x6746</div><div class='add'>+0x5B39 = 0x675E</div><div class='add'>+0x5B3A = 0x6760</div><div class='add'>+0x5B3B = 0x6759</div><div class='add'>+0x5B3C = 0x6763</div><div class='add'>+0x5B3D = 0x6764</div><div class='add'>+0x5B3E = 0x6789</div><div class='add'>+0x5B3F = 0x6770</div><div class='add'>+0x5B40 = 0x67A9</div><div class='add'>+0x5B41 = 0x677C</div><div class='add'>+0x5B42 = 0x676A</div><div class='add'>+0x5B43 = 0x678C</div><div class='add'>+0x5B44 = 0x678B</div><div class='add'>+0x5B45 = 0x67A6</div><div class='add'>+0x5B46 = 0x67A1</div><div class='add'>+0x5B47 = 0x6785</div><div class='add'>+0x5B48 = 0x67B7</div><div class='add'>+0x5B49 = 0x67EF</div><div class='add'>+0x5B4A = 0x67B4</div><div class='add'>+0x5B4B = 0x67EC</div><div class='add'>+0x5B4C = 0x67B3</div><div class='add'>+0x5B4D = 0x67E9</div><div class='add'>+0x5B4E = 0x67B8</div><div class='add'>+0x5B4F = 0x67E4</div><div class='add'>+0x5B50 = 0x67DE</div><div class='add'>+0x5B51 = 0x67DD</div><div class='add'>+0x5B52 = 0x67E2</div><div class='add'>+0x5B53 = 0x67EE</div><div class='add'>+0x5B54 = 0x67B9</div><div class='add'>+0x5B55 = 0x67CE</div><div class='add'>+0x5B56 = 0x67C6</div><div class='add'>+0x5B57 = 0x67E7</div><div class='add'>+0x5B58 = 0x6A9C</div><div class='add'>+0x5B59 = 0x681E</div><div class='add'>+0x5B5A = 0x6846</div><div class='add'>+0x5B5B = 0x6829</div><div class='add'>+0x5B5C = 0x6840</div><div class='add'>+0x5B5D = 0x684D</div><div class='add'>+0x5B5E = 0x6832</div><div class='add'>+0x5B5F = 0x684E</div><div class='add'>+0x5B60 = 0x68B3</div><div class='add'>+0x5B61 = 0x682B</div><div class='add'>+0x5B62 = 0x6859</div><div class='add'>+0x5B63 = 0x6863</div><div class='add'>+0x5B64 = 0x6877</div><div class='add'>+0x5B65 = 0x687F</div><div class='add'>+0x5B66 = 0x689F</div><div class='add'>+0x5B67 = 0x688F</div><div class='add'>+0x5B68 = 0x68AD</div><div class='add'>+0x5B69 = 0x6894</div><div class='add'>+0x5B6A = 0x689D</div><div class='add'>+0x5B6B = 0x689B</div><div class='add'>+0x5B6C = 0x6883</div><div class='add'>+0x5B6D = 0x6AAE</div><div class='add'>+0x5B6E = 0x68B9</div><div class='add'>+0x5B6F = 0x6874</div><div class='add'>+0x5B70 = 0x68B5</div><div class='add'>+0x5B71 = 0x68A0</div><div class='add'>+0x5B72 = 0x68BA</div><div class='add'>+0x5B73 = 0x690F</div><div class='add'>+0x5B74 = 0x688D</div><div class='add'>+0x5B75 = 0x687E</div><div class='add'>+0x5B76 = 0x6901</div><div class='add'>+0x5B77 = 0x68CA</div><div class='add'>+0x5B78 = 0x6908</div><div class='add'>+0x5B79 = 0x68D8</div><div class='add'>+0x5B7A = 0x6922</div><div class='add'>+0x5B7B = 0x6926</div><div class='add'>+0x5B7C = 0x68E1</div><div class='add'>+0x5B7D = 0x690C</div><div class='add'>+0x5B7E = 0x68CD</div><div class='add'>+0x5C21 = 0x68D4</div><div class='add'>+0x5C22 = 0x68E7</div><div class='add'>+0x5C23 = 0x68D5</div><div class='add'>+0x5C24 = 0x6936</div><div class='add'>+0x5C25 = 0x6912</div><div class='add'>+0x5C26 = 0x6904</div><div class='add'>+0x5C27 = 0x68D7</div><div class='add'>+0x5C28 = 0x68E3</div><div class='add'>+0x5C29 = 0x6925</div><div class='add'>+0x5C2A = 0x68F9</div><div class='add'>+0x5C2B = 0x68E0</div><div class='add'>+0x5C2C = 0x68EF</div><div class='add'>+0x5C2D = 0x6928</div><div class='add'>+0x5C2E = 0x692A</div><div class='add'>+0x5C2F = 0x691A</div><div class='add'>+0x5C30 = 0x6923</div><div class='add'>+0x5C31 = 0x6921</div><div class='add'>+0x5C32 = 0x68C6</div><div class='add'>+0x5C33 = 0x6979</div><div class='add'>+0x5C34 = 0x6977</div><div class='add'>+0x5C35 = 0x695C</div><div class='add'>+0x5C36 = 0x6978</div><div class='add'>+0x5C37 = 0x696B</div><div class='add'>+0x5C38 = 0x6954</div><div class='add'>+0x5C39 = 0x697E</div><div class='add'>+0x5C3A = 0x696E</div><div class='add'>+0x5C3B = 0x6939</div><div class='add'>+0x5C3C = 0x6974</div><div class='add'>+0x5C3D = 0x693D</div><div class='add'>+0x5C3E = 0x6959</div><div class='add'>+0x5C3F = 0x6930</div><div class='add'>+0x5C40 = 0x6961</div><div class='add'>+0x5C41 = 0x695E</div><div class='add'>+0x5C42 = 0x695D</div><div class='add'>+0x5C43 = 0x6981</div><div class='add'>+0x5C44 = 0x696A</div><div class='add'>+0x5C45 = 0x69B2</div><div class='add'>+0x5C46 = 0x69AE</div><div class='add'>+0x5C47 = 0x69D0</div><div class='add'>+0x5C48 = 0x69BF</div><div class='add'>+0x5C49 = 0x69C1</div><div class='add'>+0x5C4A = 0x69D3</div><div class='add'>+0x5C4B = 0x69BE</div><div class='add'>+0x5C4C = 0x69CE</div><div class='add'>+0x5C4D = 0x5BE8</div><div class='add'>+0x5C4E = 0x69CA</div><div class='add'>+0x5C4F = 0x69DD</div><div class='add'>+0x5C50 = 0x69BB</div><div class='add'>+0x5C51 = 0x69C3</div><div class='add'>+0x5C52 = 0x69A7</div><div class='add'>+0x5C53 = 0x6A2E</div><div class='add'>+0x5C54 = 0x6991</div><div class='add'>+0x5C55 = 0x69A0</div><div class='add'>+0x5C56 = 0x699C</div><div class='add'>+0x5C57 = 0x6995</div><div class='add'>+0x5C58 = 0x69B4</div><div class='add'>+0x5C59 = 0x69DE</div><div class='add'>+0x5C5A = 0x69E8</div><div class='add'>+0x5C5B = 0x6A02</div><div class='add'>+0x5C5C = 0x6A1B</div><div class='add'>+0x5C5D = 0x69FF</div><div class='add'>+0x5C5E = 0x6B0A</div><div class='add'>+0x5C5F = 0x69F9</div><div class='add'>+0x5C60 = 0x69F2</div><div class='add'>+0x5C61 = 0x69E7</div><div class='add'>+0x5C62 = 0x6A05</div><div class='add'>+0x5C63 = 0x69B1</div><div class='add'>+0x5C64 = 0x6A1E</div><div class='add'>+0x5C65 = 0x69ED</div><div class='add'>+0x5C66 = 0x6A14</div><div class='add'>+0x5C67 = 0x69EB</div><div class='add'>+0x5C68 = 0x6A0A</div><div class='add'>+0x5C69 = 0x6A12</div><div class='add'>+0x5C6A = 0x6AC1</div><div class='add'>+0x5C6B = 0x6A23</div><div class='add'>+0x5C6C = 0x6A13</div><div class='add'>+0x5C6D = 0x6A44</div><div class='add'>+0x5C6E = 0x6A0C</div><div class='add'>+0x5C6F = 0x6A72</div><div class='add'>+0x5C70 = 0x6A36</div><div class='add'>+0x5C71 = 0x6A78</div><div class='add'>+0x5C72 = 0x6A47</div><div class='add'>+0x5C73 = 0x6A62</div><div class='add'>+0x5C74 = 0x6A59</div><div class='add'>+0x5C75 = 0x6A66</div><div class='add'>+0x5C76 = 0x6A48</div><div class='add'>+0x5C77 = 0x6A38</div><div class='add'>+0x5C78 = 0x6A22</div><div class='add'>+0x5C79 = 0x6A90</div><div class='add'>+0x5C7A = 0x6A8D</div><div class='add'>+0x5C7B = 0x6AA0</div><div class='add'>+0x5C7C = 0x6A84</div><div class='add'>+0x5C7D = 0x6AA2</div><div class='add'>+0x5C7E = 0x6AA3</div><div class='add'>+0x5D21 = 0x6A97</div><div class='add'>+0x5D22 = 0x8617</div><div class='add'>+0x5D23 = 0x6ABB</div><div class='add'>+0x5D24 = 0x6AC3</div><div class='add'>+0x5D25 = 0x6AC2</div><div class='add'>+0x5D26 = 0x6AB8</div><div class='add'>+0x5D27 = 0x6AB3</div><div class='add'>+0x5D28 = 0x6AAC</div><div class='add'>+0x5D29 = 0x6ADE</div><div class='add'>+0x5D2A = 0x6AD1</div><div class='add'>+0x5D2B = 0x6ADF</div><div class='add'>+0x5D2C = 0x6AAA</div><div class='add'>+0x5D2D = 0x6ADA</div><div class='add'>+0x5D2E = 0x6AEA</div><div class='add'>+0x5D2F = 0x6AFB</div><div class='add'>+0x5D30 = 0x6B05</div><div class='add'>+0x5D31 = 0x8616</div><div class='add'>+0x5D32 = 0x6AFA</div><div class='add'>+0x5D33 = 0x6B12</div><div class='add'>+0x5D34 = 0x6B16</div><div class='add'>+0x5D35 = 0x9B31</div><div class='add'>+0x5D36 = 0x6B1F</div><div class='add'>+0x5D37 = 0x6B38</div><div class='add'>+0x5D38 = 0x6B37</div><div class='add'>+0x5D39 = 0x76DC</div><div class='add'>+0x5D3A = 0x6B39</div><div class='add'>+0x5D3B = 0x98EE</div><div class='add'>+0x5D3C = 0x6B47</div><div class='add'>+0x5D3D = 0x6B43</div><div class='add'>+0x5D3E = 0x6B49</div><div class='add'>+0x5D3F = 0x6B50</div><div class='add'>+0x5D40 = 0x6B59</div><div class='add'>+0x5D41 = 0x6B54</div><div class='add'>+0x5D42 = 0x6B5B</div><div class='add'>+0x5D43 = 0x6B5F</div><div class='add'>+0x5D44 = 0x6B61</div><div class='add'>+0x5D45 = 0x6B78</div><div class='add'>+0x5D46 = 0x6B79</div><div class='add'>+0x5D47 = 0x6B7F</div><div class='add'>+0x5D48 = 0x6B80</div><div class='add'>+0x5D49 = 0x6B84</div><div class='add'>+0x5D4A = 0x6B83</div><div class='add'>+0x5D4B = 0x6B8D</div><div class='add'>+0x5D4C = 0x6B98</div><div class='add'>+0x5D4D = 0x6B95</div><div class='add'>+0x5D4E = 0x6B9E</div><div class='add'>+0x5D4F = 0x6BA4</div><div class='add'>+0x5D50 = 0x6BAA</div><div class='add'>+0x5D51 = 0x6BAB</div><div class='add'>+0x5D52 = 0x6BAF</div><div class='add'>+0x5D53 = 0x6BB2</div><div class='add'>+0x5D54 = 0x6BB1</div><div class='add'>+0x5D55 = 0x6BB3</div><div class='add'>+0x5D56 = 0x6BB7</div><div class='add'>+0x5D57 = 0x6BBC</div><div class='add'>+0x5D58 = 0x6BC6</div><div class='add'>+0x5D59 = 0x6BCB</div><div class='add'>+0x5D5A = 0x6BD3</div><div class='add'>+0x5D5B = 0x6BDF</div><div class='add'>+0x5D5C = 0x6BEC</div><div class='add'>+0x5D5D = 0x6BEB</div><div class='add'>+0x5D5E = 0x6BF3</div><div class='add'>+0x5D5F = 0x6BEF</div><div class='add'>+0x5D60 = 0x9EBE</div><div class='add'>+0x5D61 = 0x6C08</div><div class='add'>+0x5D62 = 0x6C13</div><div class='add'>+0x5D63 = 0x6C14</div><div class='add'>+0x5D64 = 0x6C1B</div><div class='add'>+0x5D65 = 0x6C24</div><div class='add'>+0x5D66 = 0x6C23</div><div class='add'>+0x5D67 = 0x6C5E</div><div class='add'>+0x5D68 = 0x6C55</div><div class='add'>+0x5D69 = 0x6C62</div><div class='add'>+0x5D6A = 0x6C6A</div><div class='add'>+0x5D6B = 0x6C82</div><div class='add'>+0x5D6C = 0x6C8D</div><div class='add'>+0x5D6D = 0x6C9A</div><div class='add'>+0x5D6E = 0x6C81</div><div class='add'>+0x5D6F = 0x6C9B</div><div class='add'>+0x5D70 = 0x6C7E</div><div class='add'>+0x5D71 = 0x6C68</div><div class='add'>+0x5D72 = 0x6C73</div><div class='add'>+0x5D73 = 0x6C92</div><div class='add'>+0x5D74 = 0x6C90</div><div class='add'>+0x5D75 = 0x6CC4</div><div class='add'>+0x5D76 = 0x6CF1</div><div class='add'>+0x5D77 = 0x6CD3</div><div class='add'>+0x5D78 = 0x6CBD</div><div class='add'>+0x5D79 = 0x6CD7</div><div class='add'>+0x5D7A = 0x6CC5</div><div class='add'>+0x5D7B = 0x6CDD</div><div class='add'>+0x5D7C = 0x6CAE</div><div class='add'>+0x5D7D = 0x6CB1</div><div class='add'>+0x5D7E = 0x6CBE</div><div class='add'>+0x5E21 = 0x6CBA</div><div class='add'>+0x5E22 = 0x6CDB</div><div class='add'>+0x5E23 = 0x6CEF</div><div class='add'>+0x5E24 = 0x6CD9</div><div class='add'>+0x5E25 = 0x6CEA</div><div class='add'>+0x5E26 = 0x6D1F</div><div class='add'>+0x5E27 = 0x884D</div><div class='add'>+0x5E28 = 0x6D36</div><div class='add'>+0x5E29 = 0x6D2B</div><div class='add'>+0x5E2A = 0x6D3D</div><div class='add'>+0x5E2B = 0x6D38</div><div class='add'>+0x5E2C = 0x6D19</div><div class='add'>+0x5E2D = 0x6D35</div><div class='add'>+0x5E2E = 0x6D33</div><div class='add'>+0x5E2F = 0x6D12</div><div class='add'>+0x5E30 = 0x6D0C</div><div class='add'>+0x5E31 = 0x6D63</div><div class='add'>+0x5E32 = 0x6D93</div><div class='add'>+0x5E33 = 0x6D64</div><div class='add'>+0x5E34 = 0x6D5A</div><div class='add'>+0x5E35 = 0x6D79</div><div class='add'>+0x5E36 = 0x6D59</div><div class='add'>+0x5E37 = 0x6D8E</div><div class='add'>+0x5E38 = 0x6D95</div><div class='add'>+0x5E39 = 0x6FE4</div><div class='add'>+0x5E3A = 0x6D85</div><div class='add'>+0x5E3B = 0x6DF9</div><div class='add'>+0x5E3C = 0x6E15</div><div class='add'>+0x5E3D = 0x6E0A</div><div class='add'>+0x5E3E = 0x6DB5</div><div class='add'>+0x5E3F = 0x6DC7</div><div class='add'>+0x5E40 = 0x6DE6</div><div class='add'>+0x5E41 = 0x6DB8</div><div class='add'>+0x5E42 = 0x6DC6</div><div class='add'>+0x5E43 = 0x6DEC</div><div class='add'>+0x5E44 = 0x6DDE</div><div class='add'>+0x5E45 = 0x6DCC</div><div class='add'>+0x5E46 = 0x6DE8</div><div class='add'>+0x5E47 = 0x6DD2</div><div class='add'>+0x5E48 = 0x6DC5</div><div class='add'>+0x5E49 = 0x6DFA</div><div class='add'>+0x5E4A = 0x6DD9</div><div class='add'>+0x5E4B = 0x6DE4</div><div class='add'>+0x5E4C = 0x6DD5</div><div class='add'>+0x5E4D = 0x6DEA</div><div class='add'>+0x5E4E = 0x6DEE</div><div class='add'>+0x5E4F = 0x6E2D</div><div class='add'>+0x5E50 = 0x6E6E</div><div class='add'>+0x5E51 = 0x6E2E</div><div class='add'>+0x5E52 = 0x6E19</div><div class='add'>+0x5E53 = 0x6E72</div><div class='add'>+0x5E54 = 0x6E5F</div><div class='add'>+0x5E55 = 0x6E3E</div><div class='add'>+0x5E56 = 0x6E23</div><div class='add'>+0x5E57 = 0x6E6B</div><div class='add'>+0x5E58 = 0x6E2B</div><div class='add'>+0x5E59 = 0x6E76</div><div class='add'>+0x5E5A = 0x6E4D</div><div class='add'>+0x5E5B = 0x6E1F</div><div class='add'>+0x5E5C = 0x6E43</div><div class='add'>+0x5E5D = 0x6E3A</div><div class='add'>+0x5E5E = 0x6E4E</div><div class='add'>+0x5E5F = 0x6E24</div><div class='add'>+0x5E60 = 0x6EFF</div><div class='add'>+0x5E61 = 0x6E1D</div><div class='add'>+0x5E62 = 0x6E38</div><div class='add'>+0x5E63 = 0x6E82</div><div class='add'>+0x5E64 = 0x6EAA</div><div class='add'>+0x5E65 = 0x6E98</div><div class='add'>+0x5E66 = 0x6EC9</div><div class='add'>+0x5E67 = 0x6EB7</div><div class='add'>+0x5E68 = 0x6ED3</div><div class='add'>+0x5E69 = 0x6EBD</div><div class='add'>+0x5E6A = 0x6EAF</div><div class='add'>+0x5E6B = 0x6EC4</div><div class='add'>+0x5E6C = 0x6EB2</div><div class='add'>+0x5E6D = 0x6ED4</div><div class='add'>+0x5E6E = 0x6ED5</div><div class='add'>+0x5E6F = 0x6E8F</div><div class='add'>+0x5E70 = 0x6EA5</div><div class='add'>+0x5E71 = 0x6EC2</div><div class='add'>+0x5E72 = 0x6E9F</div><div class='add'>+0x5E73 = 0x6F41</div><div class='add'>+0x5E74 = 0x6F11</div><div class='add'>+0x5E75 = 0x704C</div><div class='add'>+0x5E76 = 0x6EEC</div><div class='add'>+0x5E77 = 0x6EF8</div><div class='add'>+0x5E78 = 0x6EFE</div><div class='add'>+0x5E79 = 0x6F3F</div><div class='add'>+0x5E7A = 0x6EF2</div><div class='add'>+0x5E7B = 0x6F31</div><div class='add'>+0x5E7C = 0x6EEF</div><div class='add'>+0x5E7D = 0x6F32</div><div class='add'>+0x5E7E = 0x6ECC</div><div class='add'>+0x5F21 = 0x6F3E</div><div class='add'>+0x5F22 = 0x6F13</div><div class='add'>+0x5F23 = 0x6EF7</div><div class='add'>+0x5F24 = 0x6F86</div><div class='add'>+0x5F25 = 0x6F7A</div><div class='add'>+0x5F26 = 0x6F78</div><div class='add'>+0x5F27 = 0x6F81</div><div class='add'>+0x5F28 = 0x6F80</div><div class='add'>+0x5F29 = 0x6F6F</div><div class='add'>+0x5F2A = 0x6F5B</div><div class='add'>+0x5F2B = 0x6FF3</div><div class='add'>+0x5F2C = 0x6F6D</div><div class='add'>+0x5F2D = 0x6F82</div><div class='add'>+0x5F2E = 0x6F7C</div><div class='add'>+0x5F2F = 0x6F58</div><div class='add'>+0x5F30 = 0x6F8E</div><div class='add'>+0x5F31 = 0x6F91</div><div class='add'>+0x5F32 = 0x6FC2</div><div class='add'>+0x5F33 = 0x6F66</div><div class='add'>+0x5F34 = 0x6FB3</div><div class='add'>+0x5F35 = 0x6FA3</div><div class='add'>+0x5F36 = 0x6FA1</div><div class='add'>+0x5F37 = 0x6FA4</div><div class='add'>+0x5F38 = 0x6FB9</div><div class='add'>+0x5F39 = 0x6FC6</div><div class='add'>+0x5F3A = 0x6FAA</div><div class='add'>+0x5F3B = 0x6FDF</div><div class='add'>+0x5F3C = 0x6FD5</div><div class='add'>+0x5F3D = 0x6FEC</div><div class='add'>+0x5F3E = 0x6FD4</div><div class='add'>+0x5F3F = 0x6FD8</div><div class='add'>+0x5F40 = 0x6FF1</div><div class='add'>+0x5F41 = 0x6FEE</div><div class='add'>+0x5F42 = 0x6FDB</div><div class='add'>+0x5F43 = 0x7009</div><div class='add'>+0x5F44 = 0x700B</div><div class='add'>+0x5F45 = 0x6FFA</div><div class='add'>+0x5F46 = 0x7011</div><div class='add'>+0x5F47 = 0x7001</div><div class='add'>+0x5F48 = 0x700F</div><div class='add'>+0x5F49 = 0x6FFE</div><div class='add'>+0x5F4A = 0x701B</div><div class='add'>+0x5F4B = 0x701A</div><div class='add'>+0x5F4C = 0x6F74</div><div class='add'>+0x5F4D = 0x701D</div><div class='add'>+0x5F4E = 0x7018</div><div class='add'>+0x5F4F = 0x701F</div><div class='add'>+0x5F50 = 0x7030</div><div class='add'>+0x5F51 = 0x703E</div><div class='add'>+0x5F52 = 0x7032</div><div class='add'>+0x5F53 = 0x7051</div><div class='add'>+0x5F54 = 0x7063</div><div class='add'>+0x5F55 = 0x7099</div><div class='add'>+0x5F56 = 0x7092</div><div class='add'>+0x5F57 = 0x70AF</div><div class='add'>+0x5F58 = 0x70F1</div><div class='add'>+0x5F59 = 0x70AC</div><div class='add'>+0x5F5A = 0x70B8</div><div class='add'>+0x5F5B = 0x70B3</div><div class='add'>+0x5F5C = 0x70AE</div><div class='add'>+0x5F5D = 0x70DF</div><div class='add'>+0x5F5E = 0x70CB</div><div class='add'>+0x5F5F = 0x70DD</div><div class='add'>+0x5F60 = 0x70D9</div><div class='add'>+0x5F61 = 0x7109</div><div class='add'>+0x5F62 = 0x70FD</div><div class='add'>+0x5F63 = 0x711C</div><div class='add'>+0x5F64 = 0x7119</div><div class='add'>+0x5F65 = 0x7165</div><div class='add'>+0x5F66 = 0x7155</div><div class='add'>+0x5F67 = 0x7188</div><div class='add'>+0x5F68 = 0x7166</div><div class='add'>+0x5F69 = 0x7162</div><div class='add'>+0x5F6A = 0x714C</div><div class='add'>+0x5F6B = 0x7156</div><div class='add'>+0x5F6C = 0x716C</div><div class='add'>+0x5F6D = 0x718F</div><div class='add'>+0x5F6E = 0x71FB</div><div class='add'>+0x5F6F = 0x7184</div><div class='add'>+0x5F70 = 0x7195</div><div class='add'>+0x5F71 = 0x71A8</div><div class='add'>+0x5F72 = 0x71AC</div><div class='add'>+0x5F73 = 0x71D7</div><div class='add'>+0x5F74 = 0x71B9</div><div class='add'>+0x5F75 = 0x71BE</div><div class='add'>+0x5F76 = 0x71D2</div><div class='add'>+0x5F77 = 0x71C9</div><div class='add'>+0x5F78 = 0x71D4</div><div class='add'>+0x5F79 = 0x71CE</div><div class='add'>+0x5F7A = 0x71E0</div><div class='add'>+0x5F7B = 0x71EC</div><div class='add'>+0x5F7C = 0x71E7</div><div class='add'>+0x5F7D = 0x71F5</div><div class='add'>+0x5F7E = 0x71FC</div><div class='add'>+0x6021 = 0x71F9</div><div class='add'>+0x6022 = 0x71FF</div><div class='add'>+0x6023 = 0x720D</div><div class='add'>+0x6024 = 0x7210</div><div class='add'>+0x6025 = 0x721B</div><div class='add'>+0x6026 = 0x7228</div><div class='add'>+0x6027 = 0x722D</div><div class='add'>+0x6028 = 0x722C</div><div class='add'>+0x6029 = 0x7230</div><div class='add'>+0x602A = 0x7232</div><div class='add'>+0x602B = 0x723B</div><div class='add'>+0x602C = 0x723C</div><div class='add'>+0x602D = 0x723F</div><div class='add'>+0x602E = 0x7240</div><div class='add'>+0x602F = 0x7246</div><div class='add'>+0x6030 = 0x724B</div><div class='add'>+0x6031 = 0x7258</div><div class='add'>+0x6032 = 0x7274</div><div class='add'>+0x6033 = 0x727E</div><div class='add'>+0x6034 = 0x7282</div><div class='add'>+0x6035 = 0x7281</div><div class='add'>+0x6036 = 0x7287</div><div class='add'>+0x6037 = 0x7292</div><div class='add'>+0x6038 = 0x7296</div><div class='add'>+0x6039 = 0x72A2</div><div class='add'>+0x603A = 0x72A7</div><div class='add'>+0x603B = 0x72B9</div><div class='add'>+0x603C = 0x72B2</div><div class='add'>+0x603D = 0x72C3</div><div class='add'>+0x603E = 0x72C6</div><div class='add'>+0x603F = 0x72C4</div><div class='add'>+0x6040 = 0x72CE</div><div class='add'>+0x6041 = 0x72D2</div><div class='add'>+0x6042 = 0x72E2</div><div class='add'>+0x6043 = 0x72E0</div><div class='add'>+0x6044 = 0x72E1</div><div class='add'>+0x6045 = 0x72F9</div><div class='add'>+0x6046 = 0x72F7</div><div class='add'>+0x6047 = 0x500F</div><div class='add'>+0x6048 = 0x7317</div><div class='add'>+0x6049 = 0x730A</div><div class='add'>+0x604A = 0x731C</div><div class='add'>+0x604B = 0x7316</div><div class='add'>+0x604C = 0x731D</div><div class='add'>+0x604D = 0x7334</div><div class='add'>+0x604E = 0x732F</div><div class='add'>+0x604F = 0x7329</div><div class='add'>+0x6050 = 0x7325</div><div class='add'>+0x6051 = 0x733E</div><div class='add'>+0x6052 = 0x734E</div><div class='add'>+0x6053 = 0x734F</div><div class='add'>+0x6054 = 0x9ED8</div><div class='add'>+0x6055 = 0x7357</div><div class='add'>+0x6056 = 0x736A</div><div class='add'>+0x6057 = 0x7368</div><div class='add'>+0x6058 = 0x7370</div><div class='add'>+0x6059 = 0x7378</div><div class='add'>+0x605A = 0x7375</div><div class='add'>+0x605B = 0x737B</div><div class='add'>+0x605C = 0x737A</div><div class='add'>+0x605D = 0x73C8</div><div class='add'>+0x605E = 0x73B3</div><div class='add'>+0x605F = 0x73CE</div><div class='add'>+0x6060 = 0x73BB</div><div class='add'>+0x6061 = 0x73C0</div><div class='add'>+0x6062 = 0x73E5</div><div class='add'>+0x6063 = 0x73EE</div><div class='add'>+0x6064 = 0x73DE</div><div class='add'>+0x6065 = 0x74A2</div><div class='add'>+0x6066 = 0x7405</div><div class='add'>+0x6067 = 0x746F</div><div class='add'>+0x6068 = 0x7425</div><div class='add'>+0x6069 = 0x73F8</div><div class='add'>+0x606A = 0x7432</div><div class='add'>+0x606B = 0x743A</div><div class='add'>+0x606C = 0x7455</div><div class='add'>+0x606D = 0x743F</div><div class='add'>+0x606E = 0x745F</div><div class='add'>+0x606F = 0x7459</div><div class='add'>+0x6070 = 0x7441</div><div class='add'>+0x6071 = 0x745C</div><div class='add'>+0x6072 = 0x7469</div><div class='add'>+0x6073 = 0x7470</div><div class='add'>+0x6074 = 0x7463</div><div class='add'>+0x6075 = 0x746A</div><div class='add'>+0x6076 = 0x7476</div><div class='add'>+0x6077 = 0x747E</div><div class='add'>+0x6078 = 0x748B</div><div class='add'>+0x6079 = 0x749E</div><div class='add'>+0x607A = 0x74A7</div><div class='add'>+0x607B = 0x74CA</div><div class='add'>+0x607C = 0x74CF</div><div class='add'>+0x607D = 0x74D4</div><div class='add'>+0x607E = 0x73F1</div><div class='add'>+0x6121 = 0x74E0</div><div class='add'>+0x6122 = 0x74E3</div><div class='add'>+0x6123 = 0x74E7</div><div class='add'>+0x6124 = 0x74E9</div><div class='add'>+0x6125 = 0x74EE</div><div class='add'>+0x6126 = 0x74F2</div><div class='add'>+0x6127 = 0x74F0</div><div class='add'>+0x6128 = 0x74F1</div><div class='add'>+0x6129 = 0x74F8</div><div class='add'>+0x612A = 0x74F7</div><div class='add'>+0x612B = 0x7504</div><div class='add'>+0x612C = 0x7503</div><div class='add'>+0x612D = 0x7505</div><div class='add'>+0x612E = 0x750C</div><div class='add'>+0x612F = 0x750E</div><div class='add'>+0x6130 = 0x750D</div><div class='add'>+0x6131 = 0x7515</div><div class='add'>+0x6132 = 0x7513</div><div class='add'>+0x6133 = 0x751E</div><div class='add'>+0x6134 = 0x7526</div><div class='add'>+0x6135 = 0x752C</div><div class='add'>+0x6136 = 0x753C</div><div class='add'>+0x6137 = 0x7544</div><div class='add'>+0x6138 = 0x754D</div><div class='add'>+0x6139 = 0x754A</div><div class='add'>+0x613A = 0x7549</div><div class='add'>+0x613B = 0x755B</div><div class='add'>+0x613C = 0x7546</div><div class='add'>+0x613D = 0x755A</div><div class='add'>+0x613E = 0x7569</div><div class='add'>+0x613F = 0x7564</div><div class='add'>+0x6140 = 0x7567</div><div class='add'>+0x6141 = 0x756B</div><div class='add'>+0x6142 = 0x756D</div><div class='add'>+0x6143 = 0x7578</div><div class='add'>+0x6144 = 0x7576</div><div class='add'>+0x6145 = 0x7586</div><div class='add'>+0x6146 = 0x7587</div><div class='add'>+0x6147 = 0x7574</div><div class='add'>+0x6148 = 0x758A</div><div class='add'>+0x6149 = 0x7589</div><div class='add'>+0x614A = 0x7582</div><div class='add'>+0x614B = 0x7594</div><div class='add'>+0x614C = 0x759A</div><div class='add'>+0x614D = 0x759D</div><div class='add'>+0x614E = 0x75A5</div><div class='add'>+0x614F = 0x75A3</div><div class='add'>+0x6150 = 0x75C2</div><div class='add'>+0x6151 = 0x75B3</div><div class='add'>+0x6152 = 0x75C3</div><div class='add'>+0x6153 = 0x75B5</div><div class='add'>+0x6154 = 0x75BD</div><div class='add'>+0x6155 = 0x75B8</div><div class='add'>+0x6156 = 0x75BC</div><div class='add'>+0x6157 = 0x75B1</div><div class='add'>+0x6158 = 0x75CD</div><div class='add'>+0x6159 = 0x75CA</div><div class='add'>+0x615A = 0x75D2</div><div class='add'>+0x615B = 0x75D9</div><div class='add'>+0x615C = 0x75E3</div><div class='add'>+0x615D = 0x75DE</div><div class='add'>+0x615E = 0x75FE</div><div class='add'>+0x615F = 0x75FF</div><div class='add'>+0x6160 = 0x75FC</div><div class='add'>+0x6161 = 0x7601</div><div class='add'>+0x6162 = 0x75F0</div><div class='add'>+0x6163 = 0x75FA</div><div class='add'>+0x6164 = 0x75F2</div><div class='add'>+0x6165 = 0x75F3</div><div class='add'>+0x6166 = 0x760B</div><div class='add'>+0x6167 = 0x760D</div><div class='add'>+0x6168 = 0x7609</div><div class='add'>+0x6169 = 0x761F</div><div class='add'>+0x616A = 0x7627</div><div class='add'>+0x616B = 0x7620</div><div class='add'>+0x616C = 0x7621</div><div class='add'>+0x616D = 0x7622</div><div class='add'>+0x616E = 0x7624</div><div class='add'>+0x616F = 0x7634</div><div class='add'>+0x6170 = 0x7630</div><div class='add'>+0x6171 = 0x763B</div><div class='add'>+0x6172 = 0x7647</div><div class='add'>+0x6173 = 0x7648</div><div class='add'>+0x6174 = 0x7646</div><div class='add'>+0x6175 = 0x765C</div><div class='add'>+0x6176 = 0x7658</div><div class='add'>+0x6177 = 0x7661</div><div class='add'>+0x6178 = 0x7662</div><div class='add'>+0x6179 = 0x7668</div><div class='add'>+0x617A = 0x7669</div><div class='add'>+0x617B = 0x766A</div><div class='add'>+0x617C = 0x7667</div><div class='add'>+0x617D = 0x766C</div><div class='add'>+0x617E = 0x7670</div><div class='add'>+0x6221 = 0x7672</div><div class='add'>+0x6222 = 0x7676</div><div class='add'>+0x6223 = 0x7678</div><div class='add'>+0x6224 = 0x767C</div><div class='add'>+0x6225 = 0x7680</div><div class='add'>+0x6226 = 0x7683</div><div class='add'>+0x6227 = 0x7688</div><div class='add'>+0x6228 = 0x768B</div><div class='add'>+0x6229 = 0x768E</div><div class='add'>+0x622A = 0x7696</div><div class='add'>+0x622B = 0x7693</div><div class='add'>+0x622C = 0x7699</div><div class='add'>+0x622D = 0x769A</div><div class='add'>+0x622E = 0x76B0</div><div class='add'>+0x622F = 0x76B4</div><div class='add'>+0x6230 = 0x76B8</div><div class='add'>+0x6231 = 0x76B9</div><div class='add'>+0x6232 = 0x76BA</div><div class='add'>+0x6233 = 0x76C2</div><div class='add'>+0x6234 = 0x76CD</div><div class='add'>+0x6235 = 0x76D6</div><div class='add'>+0x6236 = 0x76D2</div><div class='add'>+0x6237 = 0x76DE</div><div class='add'>+0x6238 = 0x76E1</div><div class='add'>+0x6239 = 0x76E5</div><div class='add'>+0x623A = 0x76E7</div><div class='add'>+0x623B = 0x76EA</div><div class='add'>+0x623C = 0x862F</div><div class='add'>+0x623D = 0x76FB</div><div class='add'>+0x623E = 0x7708</div><div class='add'>+0x623F = 0x7707</div><div class='add'>+0x6240 = 0x7704</div><div class='add'>+0x6241 = 0x7729</div><div class='add'>+0x6242 = 0x7724</div><div class='add'>+0x6243 = 0x771E</div><div class='add'>+0x6244 = 0x7725</div><div class='add'>+0x6245 = 0x7726</div><div class='add'>+0x6246 = 0x771B</div><div class='add'>+0x6247 = 0x7737</div><div class='add'>+0x6248 = 0x7738</div><div class='add'>+0x6249 = 0x7747</div><div class='add'>+0x624A = 0x775A</div><div class='add'>+0x624B = 0x7768</div><div class='add'>+0x624C = 0x776B</div><div class='add'>+0x624D = 0x775B</div><div class='add'>+0x624E = 0x7765</div><div class='add'>+0x624F = 0x777F</div><div class='add'>+0x6250 = 0x777E</div><div class='add'>+0x6251 = 0x7779</div><div class='add'>+0x6252 = 0x778E</div><div class='add'>+0x6253 = 0x778B</div><div class='add'>+0x6254 = 0x7791</div><div class='add'>+0x6255 = 0x77A0</div><div class='add'>+0x6256 = 0x779E</div><div class='add'>+0x6257 = 0x77B0</div><div class='add'>+0x6258 = 0x77B6</div><div class='add'>+0x6259 = 0x77B9</div><div class='add'>+0x625A = 0x77BF</div><div class='add'>+0x625B = 0x77BC</div><div class='add'>+0x625C = 0x77BD</div><div class='add'>+0x625D = 0x77BB</div><div class='add'>+0x625E = 0x77C7</div><div class='add'>+0x625F = 0x77CD</div><div class='add'>+0x6260 = 0x77D7</div><div class='add'>+0x6261 = 0x77DA</div><div class='add'>+0x6262 = 0x77DC</div><div class='add'>+0x6263 = 0x77E3</div><div class='add'>+0x6264 = 0x77EE</div><div class='add'>+0x6265 = 0x77FC</div><div class='add'>+0x6266 = 0x780C</div><div class='add'>+0x6267 = 0x7812</div><div class='add'>+0x6268 = 0x7926</div><div class='add'>+0x6269 = 0x7820</div><div class='add'>+0x626A = 0x792A</div><div class='add'>+0x626B = 0x7845</div><div class='add'>+0x626C = 0x788E</div><div class='add'>+0x626D = 0x7874</div><div class='add'>+0x626E = 0x7886</div><div class='add'>+0x626F = 0x787C</div><div class='add'>+0x6270 = 0x789A</div><div class='add'>+0x6271 = 0x788C</div><div class='add'>+0x6272 = 0x78A3</div><div class='add'>+0x6273 = 0x78B5</div><div class='add'>+0x6274 = 0x78AA</div><div class='add'>+0x6275 = 0x78AF</div><div class='add'>+0x6276 = 0x78D1</div><div class='add'>+0x6277 = 0x78C6</div><div class='add'>+0x6278 = 0x78CB</div><div class='add'>+0x6279 = 0x78D4</div><div class='add'>+0x627A = 0x78BE</div><div class='add'>+0x627B = 0x78BC</div><div class='add'>+0x627C = 0x78C5</div><div class='add'>+0x627D = 0x78CA</div><div class='add'>+0x627E = 0x78EC</div><div class='add'>+0x6321 = 0x78E7</div><div class='add'>+0x6322 = 0x78DA</div><div class='add'>+0x6323 = 0x78FD</div><div class='add'>+0x6324 = 0x78F4</div><div class='add'>+0x6325 = 0x7907</div><div class='add'>+0x6326 = 0x7912</div><div class='add'>+0x6327 = 0x7911</div><div class='add'>+0x6328 = 0x7919</div><div class='add'>+0x6329 = 0x792C</div><div class='add'>+0x632A = 0x792B</div><div class='add'>+0x632B = 0x7940</div><div class='add'>+0x632C = 0x7960</div><div class='add'>+0x632D = 0x7957</div><div class='add'>+0x632E = 0x795F</div><div class='add'>+0x632F = 0x795A</div><div class='add'>+0x6330 = 0x7955</div><div class='add'>+0x6331 = 0x7953</div><div class='add'>+0x6332 = 0x797A</div><div class='add'>+0x6333 = 0x797F</div><div class='add'>+0x6334 = 0x798A</div><div class='add'>+0x6335 = 0x799D</div><div class='add'>+0x6336 = 0x79A7</div><div class='add'>+0x6337 = 0x9F4B</div><div class='add'>+0x6338 = 0x79AA</div><div class='add'>+0x6339 = 0x79AE</div><div class='add'>+0x633A = 0x79B3</div><div class='add'>+0x633B = 0x79B9</div><div class='add'>+0x633C = 0x79BA</div><div class='add'>+0x633D = 0x79C9</div><div class='add'>+0x633E = 0x79D5</div><div class='add'>+0x633F = 0x79E7</div><div class='add'>+0x6340 = 0x79EC</div><div class='add'>+0x6341 = 0x79E1</div><div class='add'>+0x6342 = 0x79E3</div><div class='add'>+0x6343 = 0x7A08</div><div class='add'>+0x6344 = 0x7A0D</div><div class='add'>+0x6345 = 0x7A18</div><div class='add'>+0x6346 = 0x7A19</div><div class='add'>+0x6347 = 0x7A20</div><div class='add'>+0x6348 = 0x7A1F</div><div class='add'>+0x6349 = 0x7980</div><div class='add'>+0x634A = 0x7A31</div><div class='add'>+0x634B = 0x7A3B</div><div class='add'>+0x634C = 0x7A3E</div><div class='add'>+0x634D = 0x7A37</div><div class='add'>+0x634E = 0x7A43</div><div class='add'>+0x634F = 0x7A57</div><div class='add'>+0x6350 = 0x7A49</div><div class='add'>+0x6351 = 0x7A61</div><div class='add'>+0x6352 = 0x7A62</div><div class='add'>+0x6353 = 0x7A69</div><div class='add'>+0x6354 = 0x9F9D</div><div class='add'>+0x6355 = 0x7A70</div><div class='add'>+0x6356 = 0x7A79</div><div class='add'>+0x6357 = 0x7A7D</div><div class='add'>+0x6358 = 0x7A88</div><div class='add'>+0x6359 = 0x7A97</div><div class='add'>+0x635A = 0x7A95</div><div class='add'>+0x635B = 0x7A98</div><div class='add'>+0x635C = 0x7A96</div><div class='add'>+0x635D = 0x7AA9</div><div class='add'>+0x635E = 0x7AC8</div><div class='add'>+0x635F = 0x7AB0</div><div class='add'>+0x6360 = 0x7AB6</div><div class='add'>+0x6361 = 0x7AC5</div><div class='add'>+0x6362 = 0x7AC4</div><div class='add'>+0x6363 = 0x7ABF</div><div class='add'>+0x6364 = 0x9083</div><div class='add'>+0x6365 = 0x7AC7</div><div class='add'>+0x6366 = 0x7ACA</div><div class='add'>+0x6367 = 0x7ACD</div><div class='add'>+0x6368 = 0x7ACF</div><div class='add'>+0x6369 = 0x7AD5</div><div class='add'>+0x636A = 0x7AD3</div><div class='add'>+0x636B = 0x7AD9</div><div class='add'>+0x636C = 0x7ADA</div><div class='add'>+0x636D = 0x7ADD</div><div class='add'>+0x636E = 0x7AE1</div><div class='add'>+0x636F = 0x7AE2</div><div class='add'>+0x6370 = 0x7AE6</div><div class='add'>+0x6371 = 0x7AED</div><div class='add'>+0x6372 = 0x7AF0</div><div class='add'>+0x6373 = 0x7B02</div><div class='add'>+0x6374 = 0x7B0F</div><div class='add'>+0x6375 = 0x7B0A</div><div class='add'>+0x6376 = 0x7B06</div><div class='add'>+0x6377 = 0x7B33</div><div class='add'>+0x6378 = 0x7B18</div><div class='add'>+0x6379 = 0x7B19</div><div class='add'>+0x637A = 0x7B1E</div><div class='add'>+0x637B = 0x7B35</div><div class='add'>+0x637C = 0x7B28</div><div class='add'>+0x637D = 0x7B36</div><div class='add'>+0x637E = 0x7B50</div><div class='add'>+0x6421 = 0x7B7A</div><div class='add'>+0x6422 = 0x7B04</div><div class='add'>+0x6423 = 0x7B4D</div><div class='add'>+0x6424 = 0x7B0B</div><div class='add'>+0x6425 = 0x7B4C</div><div class='add'>+0x6426 = 0x7B45</div><div class='add'>+0x6427 = 0x7B75</div><div class='add'>+0x6428 = 0x7B65</div><div class='add'>+0x6429 = 0x7B74</div><div class='add'>+0x642A = 0x7B67</div><div class='add'>+0x642B = 0x7B70</div><div class='add'>+0x642C = 0x7B71</div><div class='add'>+0x642D = 0x7B6C</div><div class='add'>+0x642E = 0x7B6E</div><div class='add'>+0x642F = 0x7B9D</div><div class='add'>+0x6430 = 0x7B98</div><div class='add'>+0x6431 = 0x7B9F</div><div class='add'>+0x6432 = 0x7B8D</div><div class='add'>+0x6433 = 0x7B9C</div><div class='add'>+0x6434 = 0x7B9A</div><div class='add'>+0x6435 = 0x7B8B</div><div class='add'>+0x6436 = 0x7B92</div><div class='add'>+0x6437 = 0x7B8F</div><div class='add'>+0x6438 = 0x7B5D</div><div class='add'>+0x6439 = 0x7B99</div><div class='add'>+0x643A = 0x7BCB</div><div class='add'>+0x643B = 0x7BC1</div><div class='add'>+0x643C = 0x7BCC</div><div class='add'>+0x643D = 0x7BCF</div><div class='add'>+0x643E = 0x7BB4</div><div class='add'>+0x643F = 0x7BC6</div><div class='add'>+0x6440 = 0x7BDD</div><div class='add'>+0x6441 = 0x7BE9</div><div class='add'>+0x6442 = 0x7C11</div><div class='add'>+0x6443 = 0x7C14</div><div class='add'>+0x6444 = 0x7BE6</div><div class='add'>+0x6445 = 0x7BE5</div><div class='add'>+0x6446 = 0x7C60</div><div class='add'>+0x6447 = 0x7C00</div><div class='add'>+0x6448 = 0x7C07</div><div class='add'>+0x6449 = 0x7C13</div><div class='add'>+0x644A = 0x7BF3</div><div class='add'>+0x644B = 0x7BF7</div><div class='add'>+0x644C = 0x7C17</div><div class='add'>+0x644D = 0x7C0D</div><div class='add'>+0x644E = 0x7BF6</div><div class='add'>+0x644F = 0x7C23</div><div class='add'>+0x6450 = 0x7C27</div><div class='add'>+0x6451 = 0x7C2A</div><div class='add'>+0x6452 = 0x7C1F</div><div class='add'>+0x6453 = 0x7C37</div><div class='add'>+0x6454 = 0x7C2B</div><div class='add'>+0x6455 = 0x7C3D</div><div class='add'>+0x6456 = 0x7C4C</div><div class='add'>+0x6457 = 0x7C43</div><div class='add'>+0x6458 = 0x7C54</div><div class='add'>+0x6459 = 0x7C4F</div><div class='add'>+0x645A = 0x7C40</div><div class='add'>+0x645B = 0x7C50</div><div class='add'>+0x645C = 0x7C58</div><div class='add'>+0x645D = 0x7C5F</div><div class='add'>+0x645E = 0x7C64</div><div class='add'>+0x645F = 0x7C56</div><div class='add'>+0x6460 = 0x7C65</div><div class='add'>+0x6461 = 0x7C6C</div><div class='add'>+0x6462 = 0x7C75</div><div class='add'>+0x6463 = 0x7C83</div><div class='add'>+0x6464 = 0x7C90</div><div class='add'>+0x6465 = 0x7CA4</div><div class='add'>+0x6466 = 0x7CAD</div><div class='add'>+0x6467 = 0x7CA2</div><div class='add'>+0x6468 = 0x7CAB</div><div class='add'>+0x6469 = 0x7CA1</div><div class='add'>+0x646A = 0x7CA8</div><div class='add'>+0x646B = 0x7CB3</div><div class='add'>+0x646C = 0x7CB2</div><div class='add'>+0x646D = 0x7CB1</div><div class='add'>+0x646E = 0x7CAE</div><div class='add'>+0x646F = 0x7CB9</div><div class='add'>+0x6470 = 0x7CBD</div><div class='add'>+0x6471 = 0x7CC0</div><div class='add'>+0x6472 = 0x7CC5</div><div class='add'>+0x6473 = 0x7CC2</div><div class='add'>+0x6474 = 0x7CD8</div><div class='add'>+0x6475 = 0x7CD2</div><div class='add'>+0x6476 = 0x7CDC</div><div class='add'>+0x6477 = 0x7CE2</div><div class='add'>+0x6478 = 0x9B3B</div><div class='add'>+0x6479 = 0x7CEF</div><div class='add'>+0x647A = 0x7CF2</div><div class='add'>+0x647B = 0x7CF4</div><div class='add'>+0x647C = 0x7CF6</div><div class='add'>+0x647D = 0x7CFA</div><div class='add'>+0x647E = 0x7D06</div><div class='add'>+0x6521 = 0x7D02</div><div class='add'>+0x6522 = 0x7D1C</div><div class='add'>+0x6523 = 0x7D15</div><div class='add'>+0x6524 = 0x7D0A</div><div class='add'>+0x6525 = 0x7D45</div><div class='add'>+0x6526 = 0x7D4B</div><div class='add'>+0x6527 = 0x7D2E</div><div class='add'>+0x6528 = 0x7D32</div><div class='add'>+0x6529 = 0x7D3F</div><div class='add'>+0x652A = 0x7D35</div><div class='add'>+0x652B = 0x7D46</div><div class='add'>+0x652C = 0x7D73</div><div class='add'>+0x652D = 0x7D56</div><div class='add'>+0x652E = 0x7D4E</div><div class='add'>+0x652F = 0x7D72</div><div class='add'>+0x6530 = 0x7D68</div><div class='add'>+0x6531 = 0x7D6E</div><div class='add'>+0x6532 = 0x7D4F</div><div class='add'>+0x6533 = 0x7D63</div><div class='add'>+0x6534 = 0x7D93</div><div class='add'>+0x6535 = 0x7D89</div><div class='add'>+0x6536 = 0x7D5B</div><div class='add'>+0x6537 = 0x7D8F</div><div class='add'>+0x6538 = 0x7D7D</div><div class='add'>+0x6539 = 0x7D9B</div><div class='add'>+0x653A = 0x7DBA</div><div class='add'>+0x653B = 0x7DAE</div><div class='add'>+0x653C = 0x7DA3</div><div class='add'>+0x653D = 0x7DB5</div><div class='add'>+0x653E = 0x7DC7</div><div class='add'>+0x653F = 0x7DBD</div><div class='add'>+0x6540 = 0x7DAB</div><div class='add'>+0x6541 = 0x7E3D</div><div class='add'>+0x6542 = 0x7DA2</div><div class='add'>+0x6543 = 0x7DAF</div><div class='add'>+0x6544 = 0x7DDC</div><div class='add'>+0x6545 = 0x7DB8</div><div class='add'>+0x6546 = 0x7D9F</div><div class='add'>+0x6547 = 0x7DB0</div><div class='add'>+0x6548 = 0x7DD8</div><div class='add'>+0x6549 = 0x7DDD</div><div class='add'>+0x654A = 0x7DE4</div><div class='add'>+0x654B = 0x7DDE</div><div class='add'>+0x654C = 0x7DFB</div><div class='add'>+0x654D = 0x7DF2</div><div class='add'>+0x654E = 0x7DE1</div><div class='add'>+0x654F = 0x7E05</div><div class='add'>+0x6550 = 0x7E0A</div><div class='add'>+0x6551 = 0x7E23</div><div class='add'>+0x6552 = 0x7E21</div><div class='add'>+0x6553 = 0x7E12</div><div class='add'>+0x6554 = 0x7E31</div><div class='add'>+0x6555 = 0x7E1F</div><div class='add'>+0x6556 = 0x7E09</div><div class='add'>+0x6557 = 0x7E0B</div><div class='add'>+0x6558 = 0x7E22</div><div class='add'>+0x6559 = 0x7E46</div><div class='add'>+0x655A = 0x7E66</div><div class='add'>+0x655B = 0x7E3B</div><div class='add'>+0x655C = 0x7E35</div><div class='add'>+0x655D = 0x7E39</div><div class='add'>+0x655E = 0x7E43</div><div class='add'>+0x655F = 0x7E37</div><div class='add'>+0x6560 = 0x7E32</div><div class='add'>+0x6561 = 0x7E3A</div><div class='add'>+0x6562 = 0x7E67</div><div class='add'>+0x6563 = 0x7E5D</div><div class='add'>+0x6564 = 0x7E56</div><div class='add'>+0x6565 = 0x7E5E</div><div class='add'>+0x6566 = 0x7E59</div><div class='add'>+0x6567 = 0x7E5A</div><div class='add'>+0x6568 = 0x7E79</div><div class='add'>+0x6569 = 0x7E6A</div><div class='add'>+0x656A = 0x7E69</div><div class='add'>+0x656B = 0x7E7C</div><div class='add'>+0x656C = 0x7E7B</div><div class='add'>+0x656D = 0x7E83</div><div class='add'>+0x656E = 0x7DD5</div><div class='add'>+0x656F = 0x7E7D</div><div class='add'>+0x6570 = 0x8FAE</div><div class='add'>+0x6571 = 0x7E7F</div><div class='add'>+0x6572 = 0x7E88</div><div class='add'>+0x6573 = 0x7E89</div><div class='add'>+0x6574 = 0x7E8C</div><div class='add'>+0x6575 = 0x7E92</div><div class='add'>+0x6576 = 0x7E90</div><div class='add'>+0x6577 = 0x7E93</div><div class='add'>+0x6578 = 0x7E94</div><div class='add'>+0x6579 = 0x7E96</div><div class='add'>+0x657A = 0x7E8E</div><div class='add'>+0x657B = 0x7E9B</div><div class='add'>+0x657C = 0x7E9C</div><div class='add'>+0x657D = 0x7F38</div><div class='add'>+0x657E = 0x7F3A</div><div class='add'>+0x6621 = 0x7F45</div><div class='add'>+0x6622 = 0x7F4C</div><div class='add'>+0x6623 = 0x7F4D</div><div class='add'>+0x6624 = 0x7F4E</div><div class='add'>+0x6625 = 0x7F50</div><div class='add'>+0x6626 = 0x7F51</div><div class='add'>+0x6627 = 0x7F55</div><div class='add'>+0x6628 = 0x7F54</div><div class='add'>+0x6629 = 0x7F58</div><div class='add'>+0x662A = 0x7F5F</div><div class='add'>+0x662B = 0x7F60</div><div class='add'>+0x662C = 0x7F68</div><div class='add'>+0x662D = 0x7F69</div><div class='add'>+0x662E = 0x7F67</div><div class='add'>+0x662F = 0x7F78</div><div class='add'>+0x6630 = 0x7F82</div><div class='add'>+0x6631 = 0x7F86</div><div class='add'>+0x6632 = 0x7F83</div><div class='add'>+0x6633 = 0x7F88</div><div class='add'>+0x6634 = 0x7F87</div><div class='add'>+0x6635 = 0x7F8C</div><div class='add'>+0x6636 = 0x7F94</div><div class='add'>+0x6637 = 0x7F9E</div><div class='add'>+0x6638 = 0x7F9D</div><div class='add'>+0x6639 = 0x7F9A</div><div class='add'>+0x663A = 0x7FA3</div><div class='add'>+0x663B = 0x7FAF</div><div class='add'>+0x663C = 0x7FB2</div><div class='add'>+0x663D = 0x7FB9</div><div class='add'>+0x663E = 0x7FAE</div><div class='add'>+0x663F = 0x7FB6</div><div class='add'>+0x6640 = 0x7FB8</div><div class='add'>+0x6641 = 0x8B71</div><div class='add'>+0x6642 = 0x7FC5</div><div class='add'>+0x6643 = 0x7FC6</div><div class='add'>+0x6644 = 0x7FCA</div><div class='add'>+0x6645 = 0x7FD5</div><div class='add'>+0x6646 = 0x7FD4</div><div class='add'>+0x6647 = 0x7FE1</div><div class='add'>+0x6648 = 0x7FE6</div><div class='add'>+0x6649 = 0x7FE9</div><div class='add'>+0x664A = 0x7FF3</div><div class='add'>+0x664B = 0x7FF9</div><div class='add'>+0x664C = 0x98DC</div><div class='add'>+0x664D = 0x8006</div><div class='add'>+0x664E = 0x8004</div><div class='add'>+0x664F = 0x800B</div><div class='add'>+0x6650 = 0x8012</div><div class='add'>+0x6651 = 0x8018</div><div class='add'>+0x6652 = 0x8019</div><div class='add'>+0x6653 = 0x801C</div><div class='add'>+0x6654 = 0x8021</div><div class='add'>+0x6655 = 0x8028</div><div class='add'>+0x6656 = 0x803F</div><div class='add'>+0x6657 = 0x803B</div><div class='add'>+0x6658 = 0x804A</div><div class='add'>+0x6659 = 0x8046</div><div class='add'>+0x665A = 0x8052</div><div class='add'>+0x665B = 0x8058</div><div class='add'>+0x665C = 0x805A</div><div class='add'>+0x665D = 0x805F</div><div class='add'>+0x665E = 0x8062</div><div class='add'>+0x665F = 0x8068</div><div class='add'>+0x6660 = 0x8073</div><div class='add'>+0x6661 = 0x8072</div><div class='add'>+0x6662 = 0x8070</div><div class='add'>+0x6663 = 0x8076</div><div class='add'>+0x6664 = 0x8079</div><div class='add'>+0x6665 = 0x807D</div><div class='add'>+0x6666 = 0x807F</div><div class='add'>+0x6667 = 0x8084</div><div class='add'>+0x6668 = 0x8086</div><div class='add'>+0x6669 = 0x8085</div><div class='add'>+0x666A = 0x809B</div><div class='add'>+0x666B = 0x8093</div><div class='add'>+0x666C = 0x809A</div><div class='add'>+0x666D = 0x80AD</div><div class='add'>+0x666E = 0x5190</div><div class='add'>+0x666F = 0x80AC</div><div class='add'>+0x6670 = 0x80DB</div><div class='add'>+0x6671 = 0x80E5</div><div class='add'>+0x6672 = 0x80D9</div><div class='add'>+0x6673 = 0x80DD</div><div class='add'>+0x6674 = 0x80C4</div><div class='add'>+0x6675 = 0x80DA</div><div class='add'>+0x6676 = 0x80D6</div><div class='add'>+0x6677 = 0x8109</div><div class='add'>+0x6678 = 0x80EF</div><div class='add'>+0x6679 = 0x80F1</div><div class='add'>+0x667A = 0x811B</div><div class='add'>+0x667B = 0x8129</div><div class='add'>+0x667C = 0x8123</div><div class='add'>+0x667D = 0x812F</div><div class='add'>+0x667E = 0x814B</div><div class='add'>+0x6721 = 0x968B</div><div class='add'>+0x6722 = 0x8146</div><div class='add'>+0x6723 = 0x813E</div><div class='add'>+0x6724 = 0x8153</div><div class='add'>+0x6725 = 0x8151</div><div class='add'>+0x6726 = 0x80FC</div><div class='add'>+0x6727 = 0x8171</div><div class='add'>+0x6728 = 0x816E</div><div class='add'>+0x6729 = 0x8165</div><div class='add'>+0x672A = 0x8166</div><div class='add'>+0x672B = 0x8174</div><div class='add'>+0x672C = 0x8183</div><div class='add'>+0x672D = 0x8188</div><div class='add'>+0x672E = 0x818A</div><div class='add'>+0x672F = 0x8180</div><div class='add'>+0x6730 = 0x8182</div><div class='add'>+0x6731 = 0x81A0</div><div class='add'>+0x6732 = 0x8195</div><div class='add'>+0x6733 = 0x81A4</div><div class='add'>+0x6734 = 0x81A3</div><div class='add'>+0x6735 = 0x815F</div><div class='add'>+0x6736 = 0x8193</div><div class='add'>+0x6737 = 0x81A9</div><div class='add'>+0x6738 = 0x81B0</div><div class='add'>+0x6739 = 0x81B5</div><div class='add'>+0x673A = 0x81BE</div><div class='add'>+0x673B = 0x81B8</div><div class='add'>+0x673C = 0x81BD</div><div class='add'>+0x673D = 0x81C0</div><div class='add'>+0x673E = 0x81C2</div><div class='add'>+0x673F = 0x81BA</div><div class='add'>+0x6740 = 0x81C9</div><div class='add'>+0x6741 = 0x81CD</div><div class='add'>+0x6742 = 0x81D1</div><div class='add'>+0x6743 = 0x81D9</div><div class='add'>+0x6744 = 0x81D8</div><div class='add'>+0x6745 = 0x81C8</div><div class='add'>+0x6746 = 0x81DA</div><div class='add'>+0x6747 = 0x81DF</div><div class='add'>+0x6748 = 0x81E0</div><div class='add'>+0x6749 = 0x81E7</div><div class='add'>+0x674A = 0x81FA</div><div class='add'>+0x674B = 0x81FB</div><div class='add'>+0x674C = 0x81FE</div><div class='add'>+0x674D = 0x8201</div><div class='add'>+0x674E = 0x8202</div><div class='add'>+0x674F = 0x8205</div><div class='add'>+0x6750 = 0x8207</div><div class='add'>+0x6751 = 0x820A</div><div class='add'>+0x6752 = 0x820D</div><div class='add'>+0x6753 = 0x8210</div><div class='add'>+0x6754 = 0x8216</div><div class='add'>+0x6755 = 0x8229</div><div class='add'>+0x6756 = 0x822B</div><div class='add'>+0x6757 = 0x8238</div><div class='add'>+0x6758 = 0x8233</div><div class='add'>+0x6759 = 0x8240</div><div class='add'>+0x675A = 0x8259</div><div class='add'>+0x675B = 0x8258</div><div class='add'>+0x675C = 0x825D</div><div class='add'>+0x675D = 0x825A</div><div class='add'>+0x675E = 0x825F</div><div class='add'>+0x675F = 0x8264</div><div class='add'>+0x6760 = 0x8262</div><div class='add'>+0x6761 = 0x8268</div><div class='add'>+0x6762 = 0x826A</div><div class='add'>+0x6763 = 0x826B</div><div class='add'>+0x6764 = 0x822E</div><div class='add'>+0x6765 = 0x8271</div><div class='add'>+0x6766 = 0x8277</div><div class='add'>+0x6767 = 0x8278</div><div class='add'>+0x6768 = 0x827E</div><div class='add'>+0x6769 = 0x828D</div><div class='add'>+0x676A = 0x8292</div><div class='add'>+0x676B = 0x82AB</div><div class='add'>+0x676C = 0x829F</div><div class='add'>+0x676D = 0x82BB</div><div class='add'>+0x676E = 0x82AC</div><div class='add'>+0x676F = 0x82E1</div><div class='add'>+0x6770 = 0x82E3</div><div class='add'>+0x6771 = 0x82DF</div><div class='add'>+0x6772 = 0x82D2</div><div class='add'>+0x6773 = 0x82F4</div><div class='add'>+0x6774 = 0x82F3</div><div class='add'>+0x6775 = 0x82FA</div><div class='add'>+0x6776 = 0x8393</div><div class='add'>+0x6777 = 0x8303</div><div class='add'>+0x6778 = 0x82FB</div><div class='add'>+0x6779 = 0x82F9</div><div class='add'>+0x677A = 0x82DE</div><div class='add'>+0x677B = 0x8306</div><div class='add'>+0x677C = 0x82DC</div><div class='add'>+0x677D = 0x8309</div><div class='add'>+0x677E = 0x82D9</div><div class='add'>+0x6821 = 0x8335</div><div class='add'>+0x6822 = 0x8334</div><div class='add'>+0x6823 = 0x8316</div><div class='add'>+0x6824 = 0x8332</div><div class='add'>+0x6825 = 0x8331</div><div class='add'>+0x6826 = 0x8340</div><div class='add'>+0x6827 = 0x8339</div><div class='add'>+0x6828 = 0x8350</div><div class='add'>+0x6829 = 0x8345</div><div class='add'>+0x682A = 0x832F</div><div class='add'>+0x682B = 0x832B</div><div class='add'>+0x682C = 0x8317</div><div class='add'>+0x682D = 0x8318</div><div class='add'>+0x682E = 0x8385</div><div class='add'>+0x682F = 0x839A</div><div class='add'>+0x6830 = 0x83AA</div><div class='add'>+0x6831 = 0x839F</div><div class='add'>+0x6832 = 0x83A2</div><div class='add'>+0x6833 = 0x8396</div><div class='add'>+0x6834 = 0x8323</div><div class='add'>+0x6835 = 0x838E</div><div class='add'>+0x6836 = 0x8387</div><div class='add'>+0x6837 = 0x838A</div><div class='add'>+0x6838 = 0x837C</div><div class='add'>+0x6839 = 0x83B5</div><div class='add'>+0x683A = 0x8373</div><div class='add'>+0x683B = 0x8375</div><div class='add'>+0x683C = 0x83A0</div><div class='add'>+0x683D = 0x8389</div><div class='add'>+0x683E = 0x83A8</div><div class='add'>+0x683F = 0x83F4</div><div class='add'>+0x6840 = 0x8413</div><div class='add'>+0x6841 = 0x83EB</div><div class='add'>+0x6842 = 0x83CE</div><div class='add'>+0x6843 = 0x83FD</div><div class='add'>+0x6844 = 0x8403</div><div class='add'>+0x6845 = 0x83D8</div><div class='add'>+0x6846 = 0x840B</div><div class='add'>+0x6847 = 0x83C1</div><div class='add'>+0x6848 = 0x83F7</div><div class='add'>+0x6849 = 0x8407</div><div class='add'>+0x684A = 0x83E0</div><div class='add'>+0x684B = 0x83F2</div><div class='add'>+0x684C = 0x840D</div><div class='add'>+0x684D = 0x8422</div><div class='add'>+0x684E = 0x8420</div><div class='add'>+0x684F = 0x83BD</div><div class='add'>+0x6850 = 0x8438</div><div class='add'>+0x6851 = 0x8506</div><div class='add'>+0x6852 = 0x83FB</div><div class='add'>+0x6853 = 0x846D</div><div class='add'>+0x6854 = 0x842A</div><div class='add'>+0x6855 = 0x843C</div><div class='add'>+0x6856 = 0x855A</div><div class='add'>+0x6857 = 0x8484</div><div class='add'>+0x6858 = 0x8477</div><div class='add'>+0x6859 = 0x846B</div><div class='add'>+0x685A = 0x84AD</div><div class='add'>+0x685B = 0x846E</div><div class='add'>+0x685C = 0x8482</div><div class='add'>+0x685D = 0x8469</div><div class='add'>+0x685E = 0x8446</div><div class='add'>+0x685F = 0x842C</div><div class='add'>+0x6860 = 0x846F</div><div class='add'>+0x6861 = 0x8479</div><div class='add'>+0x6862 = 0x8435</div><div class='add'>+0x6863 = 0x84CA</div><div class='add'>+0x6864 = 0x8462</div><div class='add'>+0x6865 = 0x84B9</div><div class='add'>+0x6866 = 0x84BF</div><div class='add'>+0x6867 = 0x849F</div><div class='add'>+0x6868 = 0x84D9</div><div class='add'>+0x6869 = 0x84CD</div><div class='add'>+0x686A = 0x84BB</div><div class='add'>+0x686B = 0x84DA</div><div class='add'>+0x686C = 0x84D0</div><div class='add'>+0x686D = 0x84C1</div><div class='add'>+0x686E = 0x84C6</div><div class='add'>+0x686F = 0x84D6</div><div class='add'>+0x6870 = 0x84A1</div><div class='add'>+0x6871 = 0x8521</div><div class='add'>+0x6872 = 0x84FF</div><div class='add'>+0x6873 = 0x84F4</div><div class='add'>+0x6874 = 0x8517</div><div class='add'>+0x6875 = 0x8518</div><div class='add'>+0x6876 = 0x852C</div><div class='add'>+0x6877 = 0x851F</div><div class='add'>+0x6878 = 0x8515</div><div class='add'>+0x6879 = 0x8514</div><div class='add'>+0x687A = 0x84FC</div><div class='add'>+0x687B = 0x8540</div><div class='add'>+0x687C = 0x8563</div><div class='add'>+0x687D = 0x8558</div><div class='add'>+0x687E = 0x8548</div><div class='add'>+0x6921 = 0x8541</div><div class='add'>+0x6922 = 0x8602</div><div class='add'>+0x6923 = 0x854B</div><div class='add'>+0x6924 = 0x8555</div><div class='add'>+0x6925 = 0x8580</div><div class='add'>+0x6926 = 0x85A4</div><div class='add'>+0x6927 = 0x8588</div><div class='add'>+0x6928 = 0x8591</div><div class='add'>+0x6929 = 0x858A</div><div class='add'>+0x692A = 0x85A8</div><div class='add'>+0x692B = 0x856D</div><div class='add'>+0x692C = 0x8594</div><div class='add'>+0x692D = 0x859B</div><div class='add'>+0x692E = 0x85EA</div><div class='add'>+0x692F = 0x8587</div><div class='add'>+0x6930 = 0x859C</div><div class='add'>+0x6931 = 0x8577</div><div class='add'>+0x6932 = 0x857E</div><div class='add'>+0x6933 = 0x8590</div><div class='add'>+0x6934 = 0x85C9</div><div class='add'>+0x6935 = 0x85BA</div><div class='add'>+0x6936 = 0x85CF</div><div class='add'>+0x6937 = 0x85B9</div><div class='add'>+0x6938 = 0x85D0</div><div class='add'>+0x6939 = 0x85D5</div><div class='add'>+0x693A = 0x85DD</div><div class='add'>+0x693B = 0x85E5</div><div class='add'>+0x693C = 0x85DC</div><div class='add'>+0x693D = 0x85F9</div><div class='add'>+0x693E = 0x860A</div><div class='add'>+0x693F = 0x8613</div><div class='add'>+0x6940 = 0x860B</div><div class='add'>+0x6941 = 0x85FE</div><div class='add'>+0x6942 = 0x85FA</div><div class='add'>+0x6943 = 0x8606</div><div class='add'>+0x6944 = 0x8622</div><div class='add'>+0x6945 = 0x861A</div><div class='add'>+0x6946 = 0x8630</div><div class='add'>+0x6947 = 0x863F</div><div class='add'>+0x6948 = 0x864D</div><div class='add'>+0x6949 = 0x4E55</div><div class='add'>+0x694A = 0x8654</div><div class='add'>+0x694B = 0x865F</div><div class='add'>+0x694C = 0x8667</div><div class='add'>+0x694D = 0x8671</div><div class='add'>+0x694E = 0x8693</div><div class='add'>+0x694F = 0x86A3</div><div class='add'>+0x6950 = 0x86A9</div><div class='add'>+0x6951 = 0x86AA</div><div class='add'>+0x6952 = 0x868B</div><div class='add'>+0x6953 = 0x868C</div><div class='add'>+0x6954 = 0x86B6</div><div class='add'>+0x6955 = 0x86AF</div><div class='add'>+0x6956 = 0x86C4</div><div class='add'>+0x6957 = 0x86C6</div><div class='add'>+0x6958 = 0x86B0</div><div class='add'>+0x6959 = 0x86C9</div><div class='add'>+0x695A = 0x8823</div><div class='add'>+0x695B = 0x86AB</div><div class='add'>+0x695C = 0x86D4</div><div class='add'>+0x695D = 0x86DE</div><div class='add'>+0x695E = 0x86E9</div><div class='add'>+0x695F = 0x86EC</div><div class='add'>+0x6960 = 0x86DF</div><div class='add'>+0x6961 = 0x86DB</div><div class='add'>+0x6962 = 0x86EF</div><div class='add'>+0x6963 = 0x8712</div><div class='add'>+0x6964 = 0x8706</div><div class='add'>+0x6965 = 0x8708</div><div class='add'>+0x6966 = 0x8700</div><div class='add'>+0x6967 = 0x8703</div><div class='add'>+0x6968 = 0x86FB</div><div class='add'>+0x6969 = 0x8711</div><div class='add'>+0x696A = 0x8709</div><div class='add'>+0x696B = 0x870D</div><div class='add'>+0x696C = 0x86F9</div><div class='add'>+0x696D = 0x870A</div><div class='add'>+0x696E = 0x8734</div><div class='add'>+0x696F = 0x873F</div><div class='add'>+0x6970 = 0x8737</div><div class='add'>+0x6971 = 0x873B</div><div class='add'>+0x6972 = 0x8725</div><div class='add'>+0x6973 = 0x8729</div><div class='add'>+0x6974 = 0x871A</div><div class='add'>+0x6975 = 0x8760</div><div class='add'>+0x6976 = 0x875F</div><div class='add'>+0x6977 = 0x8778</div><div class='add'>+0x6978 = 0x874C</div><div class='add'>+0x6979 = 0x874E</div><div class='add'>+0x697A = 0x8774</div><div class='add'>+0x697B = 0x8757</div><div class='add'>+0x697C = 0x8768</div><div class='add'>+0x697D = 0x876E</div><div class='add'>+0x697E = 0x8759</div><div class='add'>+0x6A21 = 0x8753</div><div class='add'>+0x6A22 = 0x8763</div><div class='add'>+0x6A23 = 0x876A</div><div class='add'>+0x6A24 = 0x8805</div><div class='add'>+0x6A25 = 0x87A2</div><div class='add'>+0x6A26 = 0x879F</div><div class='add'>+0x6A27 = 0x8782</div><div class='add'>+0x6A28 = 0x87AF</div><div class='add'>+0x6A29 = 0x87CB</div><div class='add'>+0x6A2A = 0x87BD</div><div class='add'>+0x6A2B = 0x87C0</div><div class='add'>+0x6A2C = 0x87D0</div><div class='add'>+0x6A2D = 0x96D6</div><div class='add'>+0x6A2E = 0x87AB</div><div class='add'>+0x6A2F = 0x87C4</div><div class='add'>+0x6A30 = 0x87B3</div><div class='add'>+0x6A31 = 0x87C7</div><div class='add'>+0x6A32 = 0x87C6</div><div class='add'>+0x6A33 = 0x87BB</div><div class='add'>+0x6A34 = 0x87EF</div><div class='add'>+0x6A35 = 0x87F2</div><div class='add'>+0x6A36 = 0x87E0</div><div class='add'>+0x6A37 = 0x880F</div><div class='add'>+0x6A38 = 0x880D</div><div class='add'>+0x6A39 = 0x87FE</div><div class='add'>+0x6A3A = 0x87F6</div><div class='add'>+0x6A3B = 0x87F7</div><div class='add'>+0x6A3C = 0x880E</div><div class='add'>+0x6A3D = 0x87D2</div><div class='add'>+0x6A3E = 0x8811</div><div class='add'>+0x6A3F = 0x8816</div><div class='add'>+0x6A40 = 0x8815</div><div class='add'>+0x6A41 = 0x8822</div><div class='add'>+0x6A42 = 0x8821</div><div class='add'>+0x6A43 = 0x8831</div><div class='add'>+0x6A44 = 0x8836</div><div class='add'>+0x6A45 = 0x8839</div><div class='add'>+0x6A46 = 0x8827</div><div class='add'>+0x6A47 = 0x883B</div><div class='add'>+0x6A48 = 0x8844</div><div class='add'>+0x6A49 = 0x8842</div><div class='add'>+0x6A4A = 0x8852</div><div class='add'>+0x6A4B = 0x8859</div><div class='add'>+0x6A4C = 0x885E</div><div class='add'>+0x6A4D = 0x8862</div><div class='add'>+0x6A4E = 0x886B</div><div class='add'>+0x6A4F = 0x8881</div><div class='add'>+0x6A50 = 0x887E</div><div class='add'>+0x6A51 = 0x889E</div><div class='add'>+0x6A52 = 0x8875</div><div class='add'>+0x6A53 = 0x887D</div><div class='add'>+0x6A54 = 0x88B5</div><div class='add'>+0x6A55 = 0x8872</div><div class='add'>+0x6A56 = 0x8882</div><div class='add'>+0x6A57 = 0x8897</div><div class='add'>+0x6A58 = 0x8892</div><div class='add'>+0x6A59 = 0x88AE</div><div class='add'>+0x6A5A = 0x8899</div><div class='add'>+0x6A5B = 0x88A2</div><div class='add'>+0x6A5C = 0x888D</div><div class='add'>+0x6A5D = 0x88A4</div><div class='add'>+0x6A5E = 0x88B0</div><div class='add'>+0x6A5F = 0x88BF</div><div class='add'>+0x6A60 = 0x88B1</div><div class='add'>+0x6A61 = 0x88C3</div><div class='add'>+0x6A62 = 0x88C4</div><div class='add'>+0x6A63 = 0x88D4</div><div class='add'>+0x6A64 = 0x88D8</div><div class='add'>+0x6A65 = 0x88D9</div><div class='add'>+0x6A66 = 0x88DD</div><div class='add'>+0x6A67 = 0x88F9</div><div class='add'>+0x6A68 = 0x8902</div><div class='add'>+0x6A69 = 0x88FC</div><div class='add'>+0x6A6A = 0x88F4</div><div class='add'>+0x6A6B = 0x88E8</div><div class='add'>+0x6A6C = 0x88F2</div><div class='add'>+0x6A6D = 0x8904</div><div class='add'>+0x6A6E = 0x890C</div><div class='add'>+0x6A6F = 0x890A</div><div class='add'>+0x6A70 = 0x8913</div><div class='add'>+0x6A71 = 0x8943</div><div class='add'>+0x6A72 = 0x891E</div><div class='add'>+0x6A73 = 0x8925</div><div class='add'>+0x6A74 = 0x892A</div><div class='add'>+0x6A75 = 0x892B</div><div class='add'>+0x6A76 = 0x8941</div><div class='add'>+0x6A77 = 0x8944</div><div class='add'>+0x6A78 = 0x893B</div><div class='add'>+0x6A79 = 0x8936</div><div class='add'>+0x6A7A = 0x8938</div><div class='add'>+0x6A7B = 0x894C</div><div class='add'>+0x6A7C = 0x891D</div><div class='add'>+0x6A7D = 0x8960</div><div class='add'>+0x6A7E = 0x895E</div><div class='add'>+0x6B21 = 0x8966</div><div class='add'>+0x6B22 = 0x8964</div><div class='add'>+0x6B23 = 0x896D</div><div class='add'>+0x6B24 = 0x896A</div><div class='add'>+0x6B25 = 0x896F</div><div class='add'>+0x6B26 = 0x8974</div><div class='add'>+0x6B27 = 0x8977</div><div class='add'>+0x6B28 = 0x897E</div><div class='add'>+0x6B29 = 0x8983</div><div class='add'>+0x6B2A = 0x8988</div><div class='add'>+0x6B2B = 0x898A</div><div class='add'>+0x6B2C = 0x8993</div><div class='add'>+0x6B2D = 0x8998</div><div class='add'>+0x6B2E = 0x89A1</div><div class='add'>+0x6B2F = 0x89A9</div><div class='add'>+0x6B30 = 0x89A6</div><div class='add'>+0x6B31 = 0x89AC</div><div class='add'>+0x6B32 = 0x89AF</div><div class='add'>+0x6B33 = 0x89B2</div><div class='add'>+0x6B34 = 0x89BA</div><div class='add'>+0x6B35 = 0x89BD</div><div class='add'>+0x6B36 = 0x89BF</div><div class='add'>+0x6B37 = 0x89C0</div><div class='add'>+0x6B38 = 0x89DA</div><div class='add'>+0x6B39 = 0x89DC</div><div class='add'>+0x6B3A = 0x89DD</div><div class='add'>+0x6B3B = 0x89E7</div><div class='add'>+0x6B3C = 0x89F4</div><div class='add'>+0x6B3D = 0x89F8</div><div class='add'>+0x6B3E = 0x8A03</div><div class='add'>+0x6B3F = 0x8A16</div><div class='add'>+0x6B40 = 0x8A10</div><div class='add'>+0x6B41 = 0x8A0C</div><div class='add'>+0x6B42 = 0x8A1B</div><div class='add'>+0x6B43 = 0x8A1D</div><div class='add'>+0x6B44 = 0x8A25</div><div class='add'>+0x6B45 = 0x8A36</div><div class='add'>+0x6B46 = 0x8A41</div><div class='add'>+0x6B47 = 0x8A5B</div><div class='add'>+0x6B48 = 0x8A52</div><div class='add'>+0x6B49 = 0x8A46</div><div class='add'>+0x6B4A = 0x8A48</div><div class='add'>+0x6B4B = 0x8A7C</div><div class='add'>+0x6B4C = 0x8A6D</div><div class='add'>+0x6B4D = 0x8A6C</div><div class='add'>+0x6B4E = 0x8A62</div><div class='add'>+0x6B4F = 0x8A85</div><div class='add'>+0x6B50 = 0x8A82</div><div class='add'>+0x6B51 = 0x8A84</div><div class='add'>+0x6B52 = 0x8AA8</div><div class='add'>+0x6B53 = 0x8AA1</div><div class='add'>+0x6B54 = 0x8A91</div><div class='add'>+0x6B55 = 0x8AA5</div><div class='add'>+0x6B56 = 0x8AA6</div><div class='add'>+0x6B57 = 0x8A9A</div><div class='add'>+0x6B58 = 0x8AA3</div><div class='add'>+0x6B59 = 0x8AC4</div><div class='add'>+0x6B5A = 0x8ACD</div><div class='add'>+0x6B5B = 0x8AC2</div><div class='add'>+0x6B5C = 0x8ADA</div><div class='add'>+0x6B5D = 0x8AEB</div><div class='add'>+0x6B5E = 0x8AF3</div><div class='add'>+0x6B5F = 0x8AE7</div><div class='add'>+0x6B60 = 0x8AE4</div><div class='add'>+0x6B61 = 0x8AF1</div><div class='add'>+0x6B62 = 0x8B14</div><div class='add'>+0x6B63 = 0x8AE0</div><div class='add'>+0x6B64 = 0x8AE2</div><div class='add'>+0x6B65 = 0x8AF7</div><div class='add'>+0x6B66 = 0x8ADE</div><div class='add'>+0x6B67 = 0x8ADB</div><div class='add'>+0x6B68 = 0x8B0C</div><div class='add'>+0x6B69 = 0x8B07</div><div class='add'>+0x6B6A = 0x8B1A</div><div class='add'>+0x6B6B = 0x8AE1</div><div class='add'>+0x6B6C = 0x8B16</div><div class='add'>+0x6B6D = 0x8B10</div><div class='add'>+0x6B6E = 0x8B17</div><div class='add'>+0x6B6F = 0x8B20</div><div class='add'>+0x6B70 = 0x8B33</div><div class='add'>+0x6B71 = 0x97AB</div><div class='add'>+0x6B72 = 0x8B26</div><div class='add'>+0x6B73 = 0x8B2B</div><div class='add'>+0x6B74 = 0x8B3E</div><div class='add'>+0x6B75 = 0x8B28</div><div class='add'>+0x6B76 = 0x8B41</div><div class='add'>+0x6B77 = 0x8B4C</div><div class='add'>+0x6B78 = 0x8B4F</div><div class='add'>+0x6B79 = 0x8B4E</div><div class='add'>+0x6B7A = 0x8B49</div><div class='add'>+0x6B7B = 0x8B56</div><div class='add'>+0x6B7C = 0x8B5B</div><div class='add'>+0x6B7D = 0x8B5A</div><div class='add'>+0x6B7E = 0x8B6B</div><div class='add'>+0x6C21 = 0x8B5F</div><div class='add'>+0x6C22 = 0x8B6C</div><div class='add'>+0x6C23 = 0x8B6F</div><div class='add'>+0x6C24 = 0x8B74</div><div class='add'>+0x6C25 = 0x8B7D</div><div class='add'>+0x6C26 = 0x8B80</div><div class='add'>+0x6C27 = 0x8B8C</div><div class='add'>+0x6C28 = 0x8B8E</div><div class='add'>+0x6C29 = 0x8B92</div><div class='add'>+0x6C2A = 0x8B93</div><div class='add'>+0x6C2B = 0x8B96</div><div class='add'>+0x6C2C = 0x8B99</div><div class='add'>+0x6C2D = 0x8B9A</div><div class='add'>+0x6C2E = 0x8C3A</div><div class='add'>+0x6C2F = 0x8C41</div><div class='add'>+0x6C30 = 0x8C3F</div><div class='add'>+0x6C31 = 0x8C48</div><div class='add'>+0x6C32 = 0x8C4C</div><div class='add'>+0x6C33 = 0x8C4E</div><div class='add'>+0x6C34 = 0x8C50</div><div class='add'>+0x6C35 = 0x8C55</div><div class='add'>+0x6C36 = 0x8C62</div><div class='add'>+0x6C37 = 0x8C6C</div><div class='add'>+0x6C38 = 0x8C78</div><div class='add'>+0x6C39 = 0x8C7A</div><div class='add'>+0x6C3A = 0x8C82</div><div class='add'>+0x6C3B = 0x8C89</div><div class='add'>+0x6C3C = 0x8C85</div><div class='add'>+0x6C3D = 0x8C8A</div><div class='add'>+0x6C3E = 0x8C8D</div><div class='add'>+0x6C3F = 0x8C8E</div><div class='add'>+0x6C40 = 0x8C94</div><div class='add'>+0x6C41 = 0x8C7C</div><div class='add'>+0x6C42 = 0x8C98</div><div class='add'>+0x6C43 = 0x621D</div><div class='add'>+0x6C44 = 0x8CAD</div><div class='add'>+0x6C45 = 0x8CAA</div><div class='add'>+0x6C46 = 0x8CBD</div><div class='add'>+0x6C47 = 0x8CB2</div><div class='add'>+0x6C48 = 0x8CB3</div><div class='add'>+0x6C49 = 0x8CAE</div><div class='add'>+0x6C4A = 0x8CB6</div><div class='add'>+0x6C4B = 0x8CC8</div><div class='add'>+0x6C4C = 0x8CC1</div><div class='add'>+0x6C4D = 0x8CE4</div><div class='add'>+0x6C4E = 0x8CE3</div><div class='add'>+0x6C4F = 0x8CDA</div><div class='add'>+0x6C50 = 0x8CFD</div><div class='add'>+0x6C51 = 0x8CFA</div><div class='add'>+0x6C52 = 0x8CFB</div><div class='add'>+0x6C53 = 0x8D04</div><div class='add'>+0x6C54 = 0x8D05</div><div class='add'>+0x6C55 = 0x8D0A</div><div class='add'>+0x6C56 = 0x8D07</div><div class='add'>+0x6C57 = 0x8D0F</div><div class='add'>+0x6C58 = 0x8D0D</div><div class='add'>+0x6C59 = 0x8D10</div><div class='add'>+0x6C5A = 0x9F4E</div><div class='add'>+0x6C5B = 0x8D13</div><div class='add'>+0x6C5C = 0x8CCD</div><div class='add'>+0x6C5D = 0x8D14</div><div class='add'>+0x6C5E = 0x8D16</div><div class='add'>+0x6C5F = 0x8D67</div><div class='add'>+0x6C60 = 0x8D6D</div><div class='add'>+0x6C61 = 0x8D71</div><div class='add'>+0x6C62 = 0x8D73</div><div class='add'>+0x6C63 = 0x8D81</div><div class='add'>+0x6C64 = 0x8D99</div><div class='add'>+0x6C65 = 0x8DC2</div><div class='add'>+0x6C66 = 0x8DBE</div><div class='add'>+0x6C67 = 0x8DBA</div><div class='add'>+0x6C68 = 0x8DCF</div><div class='add'>+0x6C69 = 0x8DDA</div><div class='add'>+0x6C6A = 0x8DD6</div><div class='add'>+0x6C6B = 0x8DCC</div><div class='add'>+0x6C6C = 0x8DDB</div><div class='add'>+0x6C6D = 0x8DCB</div><div class='add'>+0x6C6E = 0x8DEA</div><div class='add'>+0x6C6F = 0x8DEB</div><div class='add'>+0x6C70 = 0x8DDF</div><div class='add'>+0x6C71 = 0x8DE3</div><div class='add'>+0x6C72 = 0x8DFC</div><div class='add'>+0x6C73 = 0x8E08</div><div class='add'>+0x6C74 = 0x8E09</div><div class='add'>+0x6C75 = 0x8DFF</div><div class='add'>+0x6C76 = 0x8E1D</div><div class='add'>+0x6C77 = 0x8E1E</div><div class='add'>+0x6C78 = 0x8E10</div><div class='add'>+0x6C79 = 0x8E1F</div><div class='add'>+0x6C7A = 0x8E42</div><div class='add'>+0x6C7B = 0x8E35</div><div class='add'>+0x6C7C = 0x8E30</div><div class='add'>+0x6C7D = 0x8E34</div><div class='add'>+0x6C7E = 0x8E4A</div><div class='add'>+0x6D21 = 0x8E47</div><div class='add'>+0x6D22 = 0x8E49</div><div class='add'>+0x6D23 = 0x8E4C</div><div class='add'>+0x6D24 = 0x8E50</div><div class='add'>+0x6D25 = 0x8E48</div><div class='add'>+0x6D26 = 0x8E59</div><div class='add'>+0x6D27 = 0x8E64</div><div class='add'>+0x6D28 = 0x8E60</div><div class='add'>+0x6D29 = 0x8E2A</div><div class='add'>+0x6D2A = 0x8E63</div><div class='add'>+0x6D2B = 0x8E55</div><div class='add'>+0x6D2C = 0x8E76</div><div class='add'>+0x6D2D = 0x8E72</div><div class='add'>+0x6D2E = 0x8E7C</div><div class='add'>+0x6D2F = 0x8E81</div><div class='add'>+0x6D30 = 0x8E87</div><div class='add'>+0x6D31 = 0x8E85</div><div class='add'>+0x6D32 = 0x8E84</div><div class='add'>+0x6D33 = 0x8E8B</div><div class='add'>+0x6D34 = 0x8E8A</div><div class='add'>+0x6D35 = 0x8E93</div><div class='add'>+0x6D36 = 0x8E91</div><div class='add'>+0x6D37 = 0x8E94</div><div class='add'>+0x6D38 = 0x8E99</div><div class='add'>+0x6D39 = 0x8EAA</div><div class='add'>+0x6D3A = 0x8EA1</div><div class='add'>+0x6D3B = 0x8EAC</div><div class='add'>+0x6D3C = 0x8EB0</div><div class='add'>+0x6D3D = 0x8EC6</div><div class='add'>+0x6D3E = 0x8EB1</div><div class='add'>+0x6D3F = 0x8EBE</div><div class='add'>+0x6D40 = 0x8EC5</div><div class='add'>+0x6D41 = 0x8EC8</div><div class='add'>+0x6D42 = 0x8ECB</div><div class='add'>+0x6D43 = 0x8EDB</div><div class='add'>+0x6D44 = 0x8EE3</div><div class='add'>+0x6D45 = 0x8EFC</div><div class='add'>+0x6D46 = 0x8EFB</div><div class='add'>+0x6D47 = 0x8EEB</div><div class='add'>+0x6D48 = 0x8EFE</div><div class='add'>+0x6D49 = 0x8F0A</div><div class='add'>+0x6D4A = 0x8F05</div><div class='add'>+0x6D4B = 0x8F15</div><div class='add'>+0x6D4C = 0x8F12</div><div class='add'>+0x6D4D = 0x8F19</div><div class='add'>+0x6D4E = 0x8F13</div><div class='add'>+0x6D4F = 0x8F1C</div><div class='add'>+0x6D50 = 0x8F1F</div><div class='add'>+0x6D51 = 0x8F1B</div><div class='add'>+0x6D52 = 0x8F0C</div><div class='add'>+0x6D53 = 0x8F26</div><div class='add'>+0x6D54 = 0x8F33</div><div class='add'>+0x6D55 = 0x8F3B</div><div class='add'>+0x6D56 = 0x8F39</div><div class='add'>+0x6D57 = 0x8F45</div><div class='add'>+0x6D58 = 0x8F42</div><div class='add'>+0x6D59 = 0x8F3E</div><div class='add'>+0x6D5A = 0x8F4C</div><div class='add'>+0x6D5B = 0x8F49</div><div class='add'>+0x6D5C = 0x8F46</div><div class='add'>+0x6D5D = 0x8F4E</div><div class='add'>+0x6D5E = 0x8F57</div><div class='add'>+0x6D5F = 0x8F5C</div><div class='add'>+0x6D60 = 0x8F62</div><div class='add'>+0x6D61 = 0x8F63</div><div class='add'>+0x6D62 = 0x8F64</div><div class='add'>+0x6D63 = 0x8F9C</div><div class='add'>+0x6D64 = 0x8F9F</div><div class='add'>+0x6D65 = 0x8FA3</div><div class='add'>+0x6D66 = 0x8FAD</div><div class='add'>+0x6D67 = 0x8FAF</div><div class='add'>+0x6D68 = 0x8FB7</div><div class='add'>+0x6D69 = 0x8FDA</div><div class='add'>+0x6D6A = 0x8FE5</div><div class='add'>+0x6D6B = 0x8FE2</div><div class='add'>+0x6D6C = 0x8FEA</div><div class='add'>+0x6D6D = 0x8FEF</div><div class='add'>+0x6D6E = 0x9087</div><div class='add'>+0x6D6F = 0x8FF4</div><div class='add'>+0x6D70 = 0x9005</div><div class='add'>+0x6D71 = 0x8FF9</div><div class='add'>+0x6D72 = 0x8FFA</div><div class='add'>+0x6D73 = 0x9011</div><div class='add'>+0x6D74 = 0x9015</div><div class='add'>+0x6D75 = 0x9021</div><div class='add'>+0x6D76 = 0x900D</div><div class='add'>+0x6D77 = 0x901E</div><div class='add'>+0x6D78 = 0x9016</div><div class='add'>+0x6D79 = 0x900B</div><div class='add'>+0x6D7A = 0x9027</div><div class='add'>+0x6D7B = 0x9036</div><div class='add'>+0x6D7C = 0x9035</div><div class='add'>+0x6D7D = 0x9039</div><div class='add'>+0x6D7E = 0x8FF8</div><div class='add'>+0x6E21 = 0x904F</div><div class='add'>+0x6E22 = 0x9050</div><div class='add'>+0x6E23 = 0x9051</div><div class='add'>+0x6E24 = 0x9052</div><div class='add'>+0x6E25 = 0x900E</div><div class='add'>+0x6E26 = 0x9049</div><div class='add'>+0x6E27 = 0x903E</div><div class='add'>+0x6E28 = 0x9056</div><div class='add'>+0x6E29 = 0x9058</div><div class='add'>+0x6E2A = 0x905E</div><div class='add'>+0x6E2B = 0x9068</div><div class='add'>+0x6E2C = 0x906F</div><div class='add'>+0x6E2D = 0x9076</div><div class='add'>+0x6E2E = 0x96A8</div><div class='add'>+0x6E2F = 0x9072</div><div class='add'>+0x6E30 = 0x9082</div><div class='add'>+0x6E31 = 0x907D</div><div class='add'>+0x6E32 = 0x9081</div><div class='add'>+0x6E33 = 0x9080</div><div class='add'>+0x6E34 = 0x908A</div><div class='add'>+0x6E35 = 0x9089</div><div class='add'>+0x6E36 = 0x908F</div><div class='add'>+0x6E37 = 0x90A8</div><div class='add'>+0x6E38 = 0x90AF</div><div class='add'>+0x6E39 = 0x90B1</div><div class='add'>+0x6E3A = 0x90B5</div><div class='add'>+0x6E3B = 0x90E2</div><div class='add'>+0x6E3C = 0x90E4</div><div class='add'>+0x6E3D = 0x6248</div><div class='add'>+0x6E3E = 0x90DB</div><div class='add'>+0x6E3F = 0x9102</div><div class='add'>+0x6E40 = 0x9112</div><div class='add'>+0x6E41 = 0x9119</div><div class='add'>+0x6E42 = 0x9132</div><div class='add'>+0x6E43 = 0x9130</div><div class='add'>+0x6E44 = 0x914A</div><div class='add'>+0x6E45 = 0x9156</div><div class='add'>+0x6E46 = 0x9158</div><div class='add'>+0x6E47 = 0x9163</div><div class='add'>+0x6E48 = 0x9165</div><div class='add'>+0x6E49 = 0x9169</div><div class='add'>+0x6E4A = 0x9173</div><div class='add'>+0x6E4B = 0x9172</div><div class='add'>+0x6E4C = 0x918B</div><div class='add'>+0x6E4D = 0x9189</div><div class='add'>+0x6E4E = 0x9182</div><div class='add'>+0x6E4F = 0x91A2</div><div class='add'>+0x6E50 = 0x91AB</div><div class='add'>+0x6E51 = 0x91AF</div><div class='add'>+0x6E52 = 0x91AA</div><div class='add'>+0x6E53 = 0x91B5</div><div class='add'>+0x6E54 = 0x91B4</div><div class='add'>+0x6E55 = 0x91BA</div><div class='add'>+0x6E56 = 0x91C0</div><div class='add'>+0x6E57 = 0x91C1</div><div class='add'>+0x6E58 = 0x91C9</div><div class='add'>+0x6E59 = 0x91CB</div><div class='add'>+0x6E5A = 0x91D0</div><div class='add'>+0x6E5B = 0x91D6</div><div class='add'>+0x6E5C = 0x91DF</div><div class='add'>+0x6E5D = 0x91E1</div><div class='add'>+0x6E5E = 0x91DB</div><div class='add'>+0x6E5F = 0x91FC</div><div class='add'>+0x6E60 = 0x91F5</div><div class='add'>+0x6E61 = 0x91F6</div><div class='add'>+0x6E62 = 0x921E</div><div class='add'>+0x6E63 = 0x91FF</div><div class='add'>+0x6E64 = 0x9214</div><div class='add'>+0x6E65 = 0x922C</div><div class='add'>+0x6E66 = 0x9215</div><div class='add'>+0x6E67 = 0x9211</div><div class='add'>+0x6E68 = 0x925E</div><div class='add'>+0x6E69 = 0x9257</div><div class='add'>+0x6E6A = 0x9245</div><div class='add'>+0x6E6B = 0x9249</div><div class='add'>+0x6E6C = 0x9264</div><div class='add'>+0x6E6D = 0x9248</div><div class='add'>+0x6E6E = 0x9295</div><div class='add'>+0x6E6F = 0x923F</div><div class='add'>+0x6E70 = 0x924B</div><div class='add'>+0x6E71 = 0x9250</div><div class='add'>+0x6E72 = 0x929C</div><div class='add'>+0x6E73 = 0x9296</div><div class='add'>+0x6E74 = 0x9293</div><div class='add'>+0x6E75 = 0x929B</div><div class='add'>+0x6E76 = 0x925A</div><div class='add'>+0x6E77 = 0x92CF</div><div class='add'>+0x6E78 = 0x92B9</div><div class='add'>+0x6E79 = 0x92B7</div><div class='add'>+0x6E7A = 0x92E9</div><div class='add'>+0x6E7B = 0x930F</div><div class='add'>+0x6E7C = 0x92FA</div><div class='add'>+0x6E7D = 0x9344</div><div class='add'>+0x6E7E = 0x932E</div><div class='add'>+0x6F21 = 0x9319</div><div class='add'>+0x6F22 = 0x9322</div><div class='add'>+0x6F23 = 0x931A</div><div class='add'>+0x6F24 = 0x9323</div><div class='add'>+0x6F25 = 0x933A</div><div class='add'>+0x6F26 = 0x9335</div><div class='add'>+0x6F27 = 0x933B</div><div class='add'>+0x6F28 = 0x935C</div><div class='add'>+0x6F29 = 0x9360</div><div class='add'>+0x6F2A = 0x937C</div><div class='add'>+0x6F2B = 0x936E</div><div class='add'>+0x6F2C = 0x9356</div><div class='add'>+0x6F2D = 0x93B0</div><div class='add'>+0x6F2E = 0x93AC</div><div class='add'>+0x6F2F = 0x93AD</div><div class='add'>+0x6F30 = 0x9394</div><div class='add'>+0x6F31 = 0x93B9</div><div class='add'>+0x6F32 = 0x93D6</div><div class='add'>+0x6F33 = 0x93D7</div><div class='add'>+0x6F34 = 0x93E8</div><div class='add'>+0x6F35 = 0x93E5</div><div class='add'>+0x6F36 = 0x93D8</div><div class='add'>+0x6F37 = 0x93C3</div><div class='add'>+0x6F38 = 0x93DD</div><div class='add'>+0x6F39 = 0x93D0</div><div class='add'>+0x6F3A = 0x93C8</div><div class='add'>+0x6F3B = 0x93E4</div><div class='add'>+0x6F3C = 0x941A</div><div class='add'>+0x6F3D = 0x9414</div><div class='add'>+0x6F3E = 0x9413</div><div class='add'>+0x6F3F = 0x9403</div><div class='add'>+0x6F40 = 0x9407</div><div class='add'>+0x6F41 = 0x9410</div><div class='add'>+0x6F42 = 0x9436</div><div class='add'>+0x6F43 = 0x942B</div><div class='add'>+0x6F44 = 0x9435</div><div class='add'>+0x6F45 = 0x9421</div><div class='add'>+0x6F46 = 0x943A</div><div class='add'>+0x6F47 = 0x9441</div><div class='add'>+0x6F48 = 0x9452</div><div class='add'>+0x6F49 = 0x9444</div><div class='add'>+0x6F4A = 0x945B</div><div class='add'>+0x6F4B = 0x9460</div><div class='add'>+0x6F4C = 0x9462</div><div class='add'>+0x6F4D = 0x945E</div><div class='add'>+0x6F4E = 0x946A</div><div class='add'>+0x6F4F = 0x9229</div><div class='add'>+0x6F50 = 0x9470</div><div class='add'>+0x6F51 = 0x9475</div><div class='add'>+0x6F52 = 0x9477</div><div class='add'>+0x6F53 = 0x947D</div><div class='add'>+0x6F54 = 0x945A</div><div class='add'>+0x6F55 = 0x947C</div><div class='add'>+0x6F56 = 0x947E</div><div class='add'>+0x6F57 = 0x9481</div><div class='add'>+0x6F58 = 0x947F</div><div class='add'>+0x6F59 = 0x9582</div><div class='add'>+0x6F5A = 0x9587</div><div class='add'>+0x6F5B = 0x958A</div><div class='add'>+0x6F5C = 0x9594</div><div class='add'>+0x6F5D = 0x9596</div><div class='add'>+0x6F5E = 0x9598</div><div class='add'>+0x6F5F = 0x9599</div><div class='add'>+0x6F60 = 0x95A0</div><div class='add'>+0x6F61 = 0x95A8</div><div class='add'>+0x6F62 = 0x95A7</div><div class='add'>+0x6F63 = 0x95AD</div><div class='add'>+0x6F64 = 0x95BC</div><div class='add'>+0x6F65 = 0x95BB</div><div class='add'>+0x6F66 = 0x95B9</div><div class='add'>+0x6F67 = 0x95BE</div><div class='add'>+0x6F68 = 0x95CA</div><div class='add'>+0x6F69 = 0x6FF6</div><div class='add'>+0x6F6A = 0x95C3</div><div class='add'>+0x6F6B = 0x95CD</div><div class='add'>+0x6F6C = 0x95CC</div><div class='add'>+0x6F6D = 0x95D5</div><div class='add'>+0x6F6E = 0x95D4</div><div class='add'>+0x6F6F = 0x95D6</div><div class='add'>+0x6F70 = 0x95DC</div><div class='add'>+0x6F71 = 0x95E1</div><div class='add'>+0x6F72 = 0x95E5</div><div class='add'>+0x6F73 = 0x95E2</div><div class='add'>+0x6F74 = 0x9621</div><div class='add'>+0x6F75 = 0x9628</div><div class='add'>+0x6F76 = 0x962E</div><div class='add'>+0x6F77 = 0x962F</div><div class='add'>+0x6F78 = 0x9642</div><div class='add'>+0x6F79 = 0x964C</div><div class='add'>+0x6F7A = 0x964F</div><div class='add'>+0x6F7B = 0x964B</div><div class='add'>+0x6F7C = 0x9677</div><div class='add'>+0x6F7D = 0x965C</div><div class='add'>+0x6F7E = 0x965E</div><div class='add'>+0x7021 = 0x965D</div><div class='add'>+0x7022 = 0x965F</div><div class='add'>+0x7023 = 0x9666</div><div class='add'>+0x7024 = 0x9672</div><div class='add'>+0x7025 = 0x966C</div><div class='add'>+0x7026 = 0x968D</div><div class='add'>+0x7027 = 0x9698</div><div class='add'>+0x7028 = 0x9695</div><div class='add'>+0x7029 = 0x9697</div><div class='add'>+0x702A = 0x96AA</div><div class='add'>+0x702B = 0x96A7</div><div class='add'>+0x702C = 0x96B1</div><div class='add'>+0x702D = 0x96B2</div><div class='add'>+0x702E = 0x96B0</div><div class='add'>+0x702F = 0x96B4</div><div class='add'>+0x7030 = 0x96B6</div><div class='add'>+0x7031 = 0x96B8</div><div class='add'>+0x7032 = 0x96B9</div><div class='add'>+0x7033 = 0x96CE</div><div class='add'>+0x7034 = 0x96CB</div><div class='add'>+0x7035 = 0x96C9</div><div class='add'>+0x7036 = 0x96CD</div><div class='add'>+0x7037 = 0x894D</div><div class='add'>+0x7038 = 0x96DC</div><div class='add'>+0x7039 = 0x970D</div><div class='add'>+0x703A = 0x96D5</div><div class='add'>+0x703B = 0x96F9</div><div class='add'>+0x703C = 0x9704</div><div class='add'>+0x703D = 0x9706</div><div class='add'>+0x703E = 0x9708</div><div class='add'>+0x703F = 0x9713</div><div class='add'>+0x7040 = 0x970E</div><div class='add'>+0x7041 = 0x9711</div><div class='add'>+0x7042 = 0x970F</div><div class='add'>+0x7043 = 0x9716</div><div class='add'>+0x7044 = 0x9719</div><div class='add'>+0x7045 = 0x9724</div><div class='add'>+0x7046 = 0x972A</div><div class='add'>+0x7047 = 0x9730</div><div class='add'>+0x7048 = 0x9739</div><div class='add'>+0x7049 = 0x973D</div><div class='add'>+0x704A = 0x973E</div><div class='add'>+0x704B = 0x9744</div><div class='add'>+0x704C = 0x9746</div><div class='add'>+0x704D = 0x9748</div><div class='add'>+0x704E = 0x9742</div><div class='add'>+0x704F = 0x9749</div><div class='add'>+0x7050 = 0x975C</div><div class='add'>+0x7051 = 0x9760</div><div class='add'>+0x7052 = 0x9764</div><div class='add'>+0x7053 = 0x9766</div><div class='add'>+0x7054 = 0x9768</div><div class='add'>+0x7055 = 0x52D2</div><div class='add'>+0x7056 = 0x976B</div><div class='add'>+0x7057 = 0x9771</div><div class='add'>+0x7058 = 0x9779</div><div class='add'>+0x7059 = 0x9785</div><div class='add'>+0x705A = 0x977C</div><div class='add'>+0x705B = 0x9781</div><div class='add'>+0x705C = 0x977A</div><div class='add'>+0x705D = 0x9786</div><div class='add'>+0x705E = 0x978B</div><div class='add'>+0x705F = 0x978F</div><div class='add'>+0x7060 = 0x9790</div><div class='add'>+0x7061 = 0x979C</div><div class='add'>+0x7062 = 0x97A8</div><div class='add'>+0x7063 = 0x97A6</div><div class='add'>+0x7064 = 0x97A3</div><div class='add'>+0x7065 = 0x97B3</div><div class='add'>+0x7066 = 0x97B4</div><div class='add'>+0x7067 = 0x97C3</div><div class='add'>+0x7068 = 0x97C6</div><div class='add'>+0x7069 = 0x97C8</div><div class='add'>+0x706A = 0x97CB</div><div class='add'>+0x706B = 0x97DC</div><div class='add'>+0x706C = 0x97ED</div><div class='add'>+0x706D = 0x9F4F</div><div class='add'>+0x706E = 0x97F2</div><div class='add'>+0x706F = 0x7ADF</div><div class='add'>+0x7070 = 0x97F6</div><div class='add'>+0x7071 = 0x97F5</div><div class='add'>+0x7072 = 0x980F</div><div class='add'>+0x7073 = 0x980C</div><div class='add'>+0x7074 = 0x9838</div><div class='add'>+0x7075 = 0x9824</div><div class='add'>+0x7076 = 0x9821</div><div class='add'>+0x7077 = 0x9837</div><div class='add'>+0x7078 = 0x983D</div><div class='add'>+0x7079 = 0x9846</div><div class='add'>+0x707A = 0x984F</div><div class='add'>+0x707B = 0x984B</div><div class='add'>+0x707C = 0x986B</div><div class='add'>+0x707D = 0x986F</div><div class='add'>+0x707E = 0x9870</div><div class='add'>+0x7121 = 0x9871</div><div class='add'>+0x7122 = 0x9874</div><div class='add'>+0x7123 = 0x9873</div><div class='add'>+0x7124 = 0x98AA</div><div class='add'>+0x7125 = 0x98AF</div><div class='add'>+0x7126 = 0x98B1</div><div class='add'>+0x7127 = 0x98B6</div><div class='add'>+0x7128 = 0x98C4</div><div class='add'>+0x7129 = 0x98C3</div><div class='add'>+0x712A = 0x98C6</div><div class='add'>+0x712B = 0x98E9</div><div class='add'>+0x712C = 0x98EB</div><div class='add'>+0x712D = 0x9903</div><div class='add'>+0x712E = 0x9909</div><div class='add'>+0x712F = 0x9912</div><div class='add'>+0x7130 = 0x9914</div><div class='add'>+0x7131 = 0x9918</div><div class='add'>+0x7132 = 0x9921</div><div class='add'>+0x7133 = 0x991D</div><div class='add'>+0x7134 = 0x991E</div><div class='add'>+0x7135 = 0x9924</div><div class='add'>+0x7136 = 0x9920</div><div class='add'>+0x7137 = 0x992C</div><div class='add'>+0x7138 = 0x992E</div><div class='add'>+0x7139 = 0x993D</div><div class='add'>+0x713A = 0x993E</div><div class='add'>+0x713B = 0x9942</div><div class='add'>+0x713C = 0x9949</div><div class='add'>+0x713D = 0x9945</div><div class='add'>+0x713E = 0x9950</div><div class='add'>+0x713F = 0x994B</div><div class='add'>+0x7140 = 0x9951</div><div class='add'>+0x7141 = 0x9952</div><div class='add'>+0x7142 = 0x994C</div><div class='add'>+0x7143 = 0x9955</div><div class='add'>+0x7144 = 0x9997</div><div class='add'>+0x7145 = 0x9998</div><div class='add'>+0x7146 = 0x99A5</div><div class='add'>+0x7147 = 0x99AD</div><div class='add'>+0x7148 = 0x99AE</div><div class='add'>+0x7149 = 0x99BC</div><div class='add'>+0x714A = 0x99DF</div><div class='add'>+0x714B = 0x99DB</div><div class='add'>+0x714C = 0x99DD</div><div class='add'>+0x714D = 0x99D8</div><div class='add'>+0x714E = 0x99D1</div><div class='add'>+0x714F = 0x99ED</div><div class='add'>+0x7150 = 0x99EE</div><div class='add'>+0x7151 = 0x99F1</div><div class='add'>+0x7152 = 0x99F2</div><div class='add'>+0x7153 = 0x99FB</div><div class='add'>+0x7154 = 0x99F8</div><div class='add'>+0x7155 = 0x9A01</div><div class='add'>+0x7156 = 0x9A0F</div><div class='add'>+0x7157 = 0x9A05</div><div class='add'>+0x7158 = 0x99E2</div><div class='add'>+0x7159 = 0x9A19</div><div class='add'>+0x715A = 0x9A2B</div><div class='add'>+0x715B = 0x9A37</div><div class='add'>+0x715C = 0x9A45</div><div class='add'>+0x715D = 0x9A42</div><div class='add'>+0x715E = 0x9A40</div><div class='add'>+0x715F = 0x9A43</div><div class='add'>+0x7160 = 0x9A3E</div><div class='add'>+0x7161 = 0x9A55</div><div class='add'>+0x7162 = 0x9A4D</div><div class='add'>+0x7163 = 0x9A5B</div><div class='add'>+0x7164 = 0x9A57</div><div class='add'>+0x7165 = 0x9A5F</div><div class='add'>+0x7166 = 0x9A62</div><div class='add'>+0x7167 = 0x9A65</div><div class='add'>+0x7168 = 0x9A64</div><div class='add'>+0x7169 = 0x9A69</div><div class='add'>+0x716A = 0x9A6B</div><div class='add'>+0x716B = 0x9A6A</div><div class='add'>+0x716C = 0x9AAD</div><div class='add'>+0x716D = 0x9AB0</div><div class='add'>+0x716E = 0x9ABC</div><div class='add'>+0x716F = 0x9AC0</div><div class='add'>+0x7170 = 0x9ACF</div><div class='add'>+0x7171 = 0x9AD1</div><div class='add'>+0x7172 = 0x9AD3</div><div class='add'>+0x7173 = 0x9AD4</div><div class='add'>+0x7174 = 0x9ADE</div><div class='add'>+0x7175 = 0x9ADF</div><div class='add'>+0x7176 = 0x9AE2</div><div class='add'>+0x7177 = 0x9AE3</div><div class='add'>+0x7178 = 0x9AE6</div><div class='add'>+0x7179 = 0x9AEF</div><div class='add'>+0x717A = 0x9AEB</div><div class='add'>+0x717B = 0x9AEE</div><div class='add'>+0x717C = 0x9AF4</div><div class='add'>+0x717D = 0x9AF1</div><div class='add'>+0x717E = 0x9AF7</div><div class='add'>+0x7221 = 0x9AFB</div><div class='add'>+0x7222 = 0x9B06</div><div class='add'>+0x7223 = 0x9B18</div><div class='add'>+0x7224 = 0x9B1A</div><div class='add'>+0x7225 = 0x9B1F</div><div class='add'>+0x7226 = 0x9B22</div><div class='add'>+0x7227 = 0x9B23</div><div class='add'>+0x7228 = 0x9B25</div><div class='add'>+0x7229 = 0x9B27</div><div class='add'>+0x722A = 0x9B28</div><div class='add'>+0x722B = 0x9B29</div><div class='add'>+0x722C = 0x9B2A</div><div class='add'>+0x722D = 0x9B2E</div><div class='add'>+0x722E = 0x9B2F</div><div class='add'>+0x722F = 0x9B32</div><div class='add'>+0x7230 = 0x9B44</div><div class='add'>+0x7231 = 0x9B43</div><div class='add'>+0x7232 = 0x9B4F</div><div class='add'>+0x7233 = 0x9B4D</div><div class='add'>+0x7234 = 0x9B4E</div><div class='add'>+0x7235 = 0x9B51</div><div class='add'>+0x7236 = 0x9B58</div><div class='add'>+0x7237 = 0x9B74</div><div class='add'>+0x7238 = 0x9B93</div><div class='add'>+0x7239 = 0x9B83</div><div class='add'>+0x723A = 0x9B91</div><div class='add'>+0x723B = 0x9B96</div><div class='add'>+0x723C = 0x9B97</div><div class='add'>+0x723D = 0x9B9F</div><div class='add'>+0x723E = 0x9BA0</div><div class='add'>+0x723F = 0x9BA8</div><div class='add'>+0x7240 = 0x9BB4</div><div class='add'>+0x7241 = 0x9BC0</div><div class='add'>+0x7242 = 0x9BCA</div><div class='add'>+0x7243 = 0x9BB9</div><div class='add'>+0x7244 = 0x9BC6</div><div class='add'>+0x7245 = 0x9BCF</div><div class='add'>+0x7246 = 0x9BD1</div><div class='add'>+0x7247 = 0x9BD2</div><div class='add'>+0x7248 = 0x9BE3</div><div class='add'>+0x7249 = 0x9BE2</div><div class='add'>+0x724A = 0x9BE4</div><div class='add'>+0x724B = 0x9BD4</div><div class='add'>+0x724C = 0x9BE1</div><div class='add'>+0x724D = 0x9C3A</div><div class='add'>+0x724E = 0x9BF2</div><div class='add'>+0x724F = 0x9BF1</div><div class='add'>+0x7250 = 0x9BF0</div><div class='add'>+0x7251 = 0x9C15</div><div class='add'>+0x7252 = 0x9C14</div><div class='add'>+0x7253 = 0x9C09</div><div class='add'>+0x7254 = 0x9C13</div><div class='add'>+0x7255 = 0x9C0C</div><div class='add'>+0x7256 = 0x9C06</div><div class='add'>+0x7257 = 0x9C08</div><div class='add'>+0x7258 = 0x9C12</div><div class='add'>+0x7259 = 0x9C0A</div><div class='add'>+0x725A = 0x9C04</div><div class='add'>+0x725B = 0x9C2E</div><div class='add'>+0x725C = 0x9C1B</div><div class='add'>+0x725D = 0x9C25</div><div class='add'>+0x725E = 0x9C24</div><div class='add'>+0x725F = 0x9C21</div><div class='add'>+0x7260 = 0x9C30</div><div class='add'>+0x7261 = 0x9C47</div><div class='add'>+0x7262 = 0x9C32</div><div class='add'>+0x7263 = 0x9C46</div><div class='add'>+0x7264 = 0x9C3E</div><div class='add'>+0x7265 = 0x9C5A</div><div class='add'>+0x7266 = 0x9C60</div><div class='add'>+0x7267 = 0x9C67</div><div class='add'>+0x7268 = 0x9C76</div><div class='add'>+0x7269 = 0x9C78</div><div class='add'>+0x726A = 0x9CE7</div><div class='add'>+0x726B = 0x9CEC</div><div class='add'>+0x726C = 0x9CF0</div><div class='add'>+0x726D = 0x9D09</div><div class='add'>+0x726E = 0x9D08</div><div class='add'>+0x726F = 0x9CEB</div><div class='add'>+0x7270 = 0x9D03</div><div class='add'>+0x7271 = 0x9D06</div><div class='add'>+0x7272 = 0x9D2A</div><div class='add'>+0x7273 = 0x9D26</div><div class='add'>+0x7274 = 0x9DAF</div><div class='add'>+0x7275 = 0x9D23</div><div class='add'>+0x7276 = 0x9D1F</div><div class='add'>+0x7277 = 0x9D44</div><div class='add'>+0x7278 = 0x9D15</div><div class='add'>+0x7279 = 0x9D12</div><div class='add'>+0x727A = 0x9D41</div><div class='add'>+0x727B = 0x9D3F</div><div class='add'>+0x727C = 0x9D3E</div><div class='add'>+0x727D = 0x9D46</div><div class='add'>+0x727E = 0x9D48</div><div class='add'>+0x7321 = 0x9D5D</div><div class='add'>+0x7322 = 0x9D5E</div><div class='add'>+0x7323 = 0x9D64</div><div class='add'>+0x7324 = 0x9D51</div><div class='add'>+0x7325 = 0x9D50</div><div class='add'>+0x7326 = 0x9D59</div><div class='add'>+0x7327 = 0x9D72</div><div class='add'>+0x7328 = 0x9D89</div><div class='add'>+0x7329 = 0x9D87</div><div class='add'>+0x732A = 0x9DAB</div><div class='add'>+0x732B = 0x9D6F</div><div class='add'>+0x732C = 0x9D7A</div><div class='add'>+0x732D = 0x9D9A</div><div class='add'>+0x732E = 0x9DA4</div><div class='add'>+0x732F = 0x9DA9</div><div class='add'>+0x7330 = 0x9DB2</div><div class='add'>+0x7331 = 0x9DC4</div><div class='add'>+0x7332 = 0x9DC1</div><div class='add'>+0x7333 = 0x9DBB</div><div class='add'>+0x7334 = 0x9DB8</div><div class='add'>+0x7335 = 0x9DBA</div><div class='add'>+0x7336 = 0x9DC6</div><div class='add'>+0x7337 = 0x9DCF</div><div class='add'>+0x7338 = 0x9DC2</div><div class='add'>+0x7339 = 0x9DD9</div><div class='add'>+0x733A = 0x9DD3</div><div class='add'>+0x733B = 0x9DF8</div><div class='add'>+0x733C = 0x9DE6</div><div class='add'>+0x733D = 0x9DED</div><div class='add'>+0x733E = 0x9DEF</div><div class='add'>+0x733F = 0x9DFD</div><div class='add'>+0x7340 = 0x9E1A</div><div class='add'>+0x7341 = 0x9E1B</div><div class='add'>+0x7342 = 0x9E1E</div><div class='add'>+0x7343 = 0x9E75</div><div class='add'>+0x7344 = 0x9E79</div><div class='add'>+0x7345 = 0x9E7D</div><div class='add'>+0x7346 = 0x9E81</div><div class='add'>+0x7347 = 0x9E88</div><div class='add'>+0x7348 = 0x9E8B</div><div class='add'>+0x7349 = 0x9E8C</div><div class='add'>+0x734A = 0x9E92</div><div class='add'>+0x734B = 0x9E95</div><div class='add'>+0x734C = 0x9E91</div><div class='add'>+0x734D = 0x9E9D</div><div class='add'>+0x734E = 0x9EA5</div><div class='add'>+0x734F = 0x9EA9</div><div class='add'>+0x7350 = 0x9EB8</div><div class='add'>+0x7351 = 0x9EAA</div><div class='add'>+0x7352 = 0x9EAD</div><div class='add'>+0x7353 = 0x9761</div><div class='add'>+0x7354 = 0x9ECC</div><div class='add'>+0x7355 = 0x9ECE</div><div class='add'>+0x7356 = 0x9ECF</div><div class='add'>+0x7357 = 0x9ED0</div><div class='add'>+0x7358 = 0x9ED4</div><div class='add'>+0x7359 = 0x9EDC</div><div class='add'>+0x735A = 0x9EDE</div><div class='add'>+0x735B = 0x9EDD</div><div class='add'>+0x735C = 0x9EE0</div><div class='add'>+0x735D = 0x9EE5</div><div class='add'>+0x735E = 0x9EE8</div><div class='add'>+0x735F = 0x9EEF</div><div class='add'>+0x7360 = 0x9EF4</div><div class='add'>+0x7361 = 0x9EF6</div><div class='add'>+0x7362 = 0x9EF7</div><div class='add'>+0x7363 = 0x9EF9</div><div class='add'>+0x7364 = 0x9EFB</div><div class='add'>+0x7365 = 0x9EFC</div><div class='add'>+0x7366 = 0x9EFD</div><div class='add'>+0x7367 = 0x9F07</div><div class='add'>+0x7368 = 0x9F08</div><div class='add'>+0x7369 = 0x76B7</div><div class='add'>+0x736A = 0x9F15</div><div class='add'>+0x736B = 0x9F21</div><div class='add'>+0x736C = 0x9F2C</div><div class='add'>+0x736D = 0x9F3E</div><div class='add'>+0x736E = 0x9F4A</div><div class='add'>+0x736F = 0x9F52</div><div class='add'>+0x7370 = 0x9F54</div><div class='add'>+0x7371 = 0x9F63</div><div class='add'>+0x7372 = 0x9F5F</div><div class='add'>+0x7373 = 0x9F60</div><div class='add'>+0x7374 = 0x9F61</div><div class='add'>+0x7375 = 0x9F66</div><div class='add'>+0x7376 = 0x9F67</div><div class='add'>+0x7377 = 0x9F6C</div><div class='add'>+0x7378 = 0x9F6A</div><div class='add'>+0x7379 = 0x9F77</div><div class='add'>+0x737A = 0x9F72</div><div class='add'>+0x737B = 0x9F76</div><div class='add'>+0x737C = 0x9F95</div><div class='add'>+0x737D = 0x9F9C</div><div class='add'>+0x737E = 0x9FA0</div><div class='add'>+0x7421 = 0x582F</div><div class='add'>+0x7422 = 0x69C7</div><div class='add'>+0x7423 = 0x9059</div><div class='add'>+0x7424 = 0x7464</div><div class='add'>+0x7425 = 0x51DC</div><div class='add'>+0x7426 = 0x7199</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0208UDC%UCS.src b/enc/trans/JIS/JISX0208UDC%UCS.src<br/>new file mode 100644<br/>index 0000000000..9f5dd94090<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0208UDC%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0208UDC%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,954 @@</div><div class='add'>+# $NetBSD: JISX0208UDC%UCS.src,v 1.1 2003/07/19 20:20:40 tshiozak Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"JISX0208UDC/UCS"</div><div class='add'>+SRC_ZONE	0x75-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This data is derived from http://www.opengroup.or.jp/jvc/cde/</div><div class='add'>+#</div><div class='add'>+0x7521 = 0xE000</div><div class='add'>+0x7522 = 0xE001</div><div class='add'>+0x7523 = 0xE002</div><div class='add'>+0x7524 = 0xE003</div><div class='add'>+0x7525 = 0xE004</div><div class='add'>+0x7526 = 0xE005</div><div class='add'>+0x7527 = 0xE006</div><div class='add'>+0x7528 = 0xE007</div><div class='add'>+0x7529 = 0xE008</div><div class='add'>+0x752A = 0xE009</div><div class='add'>+0x752B = 0xE00A</div><div class='add'>+0x752C = 0xE00B</div><div class='add'>+0x752D = 0xE00C</div><div class='add'>+0x752E = 0xE00D</div><div class='add'>+0x752F = 0xE00E</div><div class='add'>+0x7530 = 0xE00F</div><div class='add'>+0x7531 = 0xE010</div><div class='add'>+0x7532 = 0xE011</div><div class='add'>+0x7533 = 0xE012</div><div class='add'>+0x7534 = 0xE013</div><div class='add'>+0x7535 = 0xE014</div><div class='add'>+0x7536 = 0xE015</div><div class='add'>+0x7537 = 0xE016</div><div class='add'>+0x7538 = 0xE017</div><div class='add'>+0x7539 = 0xE018</div><div class='add'>+0x753A = 0xE019</div><div class='add'>+0x753B = 0xE01A</div><div class='add'>+0x753C = 0xE01B</div><div class='add'>+0x753D = 0xE01C</div><div class='add'>+0x753E = 0xE01D</div><div class='add'>+0x753F = 0xE01E</div><div class='add'>+0x7540 = 0xE01F</div><div class='add'>+0x7541 = 0xE020</div><div class='add'>+0x7542 = 0xE021</div><div class='add'>+0x7543 = 0xE022</div><div class='add'>+0x7544 = 0xE023</div><div class='add'>+0x7545 = 0xE024</div><div class='add'>+0x7546 = 0xE025</div><div class='add'>+0x7547 = 0xE026</div><div class='add'>+0x7548 = 0xE027</div><div class='add'>+0x7549 = 0xE028</div><div class='add'>+0x754A = 0xE029</div><div class='add'>+0x754B = 0xE02A</div><div class='add'>+0x754C = 0xE02B</div><div class='add'>+0x754D = 0xE02C</div><div class='add'>+0x754E = 0xE02D</div><div class='add'>+0x754F = 0xE02E</div><div class='add'>+0x7550 = 0xE02F</div><div class='add'>+0x7551 = 0xE030</div><div class='add'>+0x7552 = 0xE031</div><div class='add'>+0x7553 = 0xE032</div><div class='add'>+0x7554 = 0xE033</div><div class='add'>+0x7555 = 0xE034</div><div class='add'>+0x7556 = 0xE035</div><div class='add'>+0x7557 = 0xE036</div><div class='add'>+0x7558 = 0xE037</div><div class='add'>+0x7559 = 0xE038</div><div class='add'>+0x755A = 0xE039</div><div class='add'>+0x755B = 0xE03A</div><div class='add'>+0x755C = 0xE03B</div><div class='add'>+0x755D = 0xE03C</div><div class='add'>+0x755E = 0xE03D</div><div class='add'>+0x755F = 0xE03E</div><div class='add'>+0x7560 = 0xE03F</div><div class='add'>+0x7561 = 0xE040</div><div class='add'>+0x7562 = 0xE041</div><div class='add'>+0x7563 = 0xE042</div><div class='add'>+0x7564 = 0xE043</div><div class='add'>+0x7565 = 0xE044</div><div class='add'>+0x7566 = 0xE045</div><div class='add'>+0x7567 = 0xE046</div><div class='add'>+0x7568 = 0xE047</div><div class='add'>+0x7569 = 0xE048</div><div class='add'>+0x756A = 0xE049</div><div class='add'>+0x756B = 0xE04A</div><div class='add'>+0x756C = 0xE04B</div><div class='add'>+0x756D = 0xE04C</div><div class='add'>+0x756E = 0xE04D</div><div class='add'>+0x756F = 0xE04E</div><div class='add'>+0x7570 = 0xE04F</div><div class='add'>+0x7571 = 0xE050</div><div class='add'>+0x7572 = 0xE051</div><div class='add'>+0x7573 = 0xE052</div><div class='add'>+0x7574 = 0xE053</div><div class='add'>+0x7575 = 0xE054</div><div class='add'>+0x7576 = 0xE055</div><div class='add'>+0x7577 = 0xE056</div><div class='add'>+0x7578 = 0xE057</div><div class='add'>+0x7579 = 0xE058</div><div class='add'>+0x757A = 0xE059</div><div class='add'>+0x757B = 0xE05A</div><div class='add'>+0x757C = 0xE05B</div><div class='add'>+0x757D = 0xE05C</div><div class='add'>+0x757E = 0xE05D</div><div class='add'>+0x7621 = 0xE05E</div><div class='add'>+0x7622 = 0xE05F</div><div class='add'>+0x7623 = 0xE060</div><div class='add'>+0x7624 = 0xE061</div><div class='add'>+0x7625 = 0xE062</div><div class='add'>+0x7626 = 0xE063</div><div class='add'>+0x7627 = 0xE064</div><div class='add'>+0x7628 = 0xE065</div><div class='add'>+0x7629 = 0xE066</div><div class='add'>+0x762A = 0xE067</div><div class='add'>+0x762B = 0xE068</div><div class='add'>+0x762C = 0xE069</div><div class='add'>+0x762D = 0xE06A</div><div class='add'>+0x762E = 0xE06B</div><div class='add'>+0x762F = 0xE06C</div><div class='add'>+0x7630 = 0xE06D</div><div class='add'>+0x7631 = 0xE06E</div><div class='add'>+0x7632 = 0xE06F</div><div class='add'>+0x7633 = 0xE070</div><div class='add'>+0x7634 = 0xE071</div><div class='add'>+0x7635 = 0xE072</div><div class='add'>+0x7636 = 0xE073</div><div class='add'>+0x7637 = 0xE074</div><div class='add'>+0x7638 = 0xE075</div><div class='add'>+0x7639 = 0xE076</div><div class='add'>+0x763A = 0xE077</div><div class='add'>+0x763B = 0xE078</div><div class='add'>+0x763C = 0xE079</div><div class='add'>+0x763D = 0xE07A</div><div class='add'>+0x763E = 0xE07B</div><div class='add'>+0x763F = 0xE07C</div><div class='add'>+0x7640 = 0xE07D</div><div class='add'>+0x7641 = 0xE07E</div><div class='add'>+0x7642 = 0xE07F</div><div class='add'>+0x7643 = 0xE080</div><div class='add'>+0x7644 = 0xE081</div><div class='add'>+0x7645 = 0xE082</div><div class='add'>+0x7646 = 0xE083</div><div class='add'>+0x7647 = 0xE084</div><div class='add'>+0x7648 = 0xE085</div><div class='add'>+0x7649 = 0xE086</div><div class='add'>+0x764A = 0xE087</div><div class='add'>+0x764B = 0xE088</div><div class='add'>+0x764C = 0xE089</div><div class='add'>+0x764D = 0xE08A</div><div class='add'>+0x764E = 0xE08B</div><div class='add'>+0x764F = 0xE08C</div><div class='add'>+0x7650 = 0xE08D</div><div class='add'>+0x7651 = 0xE08E</div><div class='add'>+0x7652 = 0xE08F</div><div class='add'>+0x7653 = 0xE090</div><div class='add'>+0x7654 = 0xE091</div><div class='add'>+0x7655 = 0xE092</div><div class='add'>+0x7656 = 0xE093</div><div class='add'>+0x7657 = 0xE094</div><div class='add'>+0x7658 = 0xE095</div><div class='add'>+0x7659 = 0xE096</div><div class='add'>+0x765A = 0xE097</div><div class='add'>+0x765B = 0xE098</div><div class='add'>+0x765C = 0xE099</div><div class='add'>+0x765D = 0xE09A</div><div class='add'>+0x765E = 0xE09B</div><div class='add'>+0x765F = 0xE09C</div><div class='add'>+0x7660 = 0xE09D</div><div class='add'>+0x7661 = 0xE09E</div><div class='add'>+0x7662 = 0xE09F</div><div class='add'>+0x7663 = 0xE0A0</div><div class='add'>+0x7664 = 0xE0A1</div><div class='add'>+0x7665 = 0xE0A2</div><div class='add'>+0x7666 = 0xE0A3</div><div class='add'>+0x7667 = 0xE0A4</div><div class='add'>+0x7668 = 0xE0A5</div><div class='add'>+0x7669 = 0xE0A6</div><div class='add'>+0x766A = 0xE0A7</div><div class='add'>+0x766B = 0xE0A8</div><div class='add'>+0x766C = 0xE0A9</div><div class='add'>+0x766D = 0xE0AA</div><div class='add'>+0x766E = 0xE0AB</div><div class='add'>+0x766F = 0xE0AC</div><div class='add'>+0x7670 = 0xE0AD</div><div class='add'>+0x7671 = 0xE0AE</div><div class='add'>+0x7672 = 0xE0AF</div><div class='add'>+0x7673 = 0xE0B0</div><div class='add'>+0x7674 = 0xE0B1</div><div class='add'>+0x7675 = 0xE0B2</div><div class='add'>+0x7676 = 0xE0B3</div><div class='add'>+0x7677 = 0xE0B4</div><div class='add'>+0x7678 = 0xE0B5</div><div class='add'>+0x7679 = 0xE0B6</div><div class='add'>+0x767A = 0xE0B7</div><div class='add'>+0x767B = 0xE0B8</div><div class='add'>+0x767C = 0xE0B9</div><div class='add'>+0x767D = 0xE0BA</div><div class='add'>+0x767E = 0xE0BB</div><div class='add'>+0x7721 = 0xE0BC</div><div class='add'>+0x7722 = 0xE0BD</div><div class='add'>+0x7723 = 0xE0BE</div><div class='add'>+0x7724 = 0xE0BF</div><div class='add'>+0x7725 = 0xE0C0</div><div class='add'>+0x7726 = 0xE0C1</div><div class='add'>+0x7727 = 0xE0C2</div><div class='add'>+0x7728 = 0xE0C3</div><div class='add'>+0x7729 = 0xE0C4</div><div class='add'>+0x772A = 0xE0C5</div><div class='add'>+0x772B = 0xE0C6</div><div class='add'>+0x772C = 0xE0C7</div><div class='add'>+0x772D = 0xE0C8</div><div class='add'>+0x772E = 0xE0C9</div><div class='add'>+0x772F = 0xE0CA</div><div class='add'>+0x7730 = 0xE0CB</div><div class='add'>+0x7731 = 0xE0CC</div><div class='add'>+0x7732 = 0xE0CD</div><div class='add'>+0x7733 = 0xE0CE</div><div class='add'>+0x7734 = 0xE0CF</div><div class='add'>+0x7735 = 0xE0D0</div><div class='add'>+0x7736 = 0xE0D1</div><div class='add'>+0x7737 = 0xE0D2</div><div class='add'>+0x7738 = 0xE0D3</div><div class='add'>+0x7739 = 0xE0D4</div><div class='add'>+0x773A = 0xE0D5</div><div class='add'>+0x773B = 0xE0D6</div><div class='add'>+0x773C = 0xE0D7</div><div class='add'>+0x773D = 0xE0D8</div><div class='add'>+0x773E = 0xE0D9</div><div class='add'>+0x773F = 0xE0DA</div><div class='add'>+0x7740 = 0xE0DB</div><div class='add'>+0x7741 = 0xE0DC</div><div class='add'>+0x7742 = 0xE0DD</div><div class='add'>+0x7743 = 0xE0DE</div><div class='add'>+0x7744 = 0xE0DF</div><div class='add'>+0x7745 = 0xE0E0</div><div class='add'>+0x7746 = 0xE0E1</div><div class='add'>+0x7747 = 0xE0E2</div><div class='add'>+0x7748 = 0xE0E3</div><div class='add'>+0x7749 = 0xE0E4</div><div class='add'>+0x774A = 0xE0E5</div><div class='add'>+0x774B = 0xE0E6</div><div class='add'>+0x774C = 0xE0E7</div><div class='add'>+0x774D = 0xE0E8</div><div class='add'>+0x774E = 0xE0E9</div><div class='add'>+0x774F = 0xE0EA</div><div class='add'>+0x7750 = 0xE0EB</div><div class='add'>+0x7751 = 0xE0EC</div><div class='add'>+0x7752 = 0xE0ED</div><div class='add'>+0x7753 = 0xE0EE</div><div class='add'>+0x7754 = 0xE0EF</div><div class='add'>+0x7755 = 0xE0F0</div><div class='add'>+0x7756 = 0xE0F1</div><div class='add'>+0x7757 = 0xE0F2</div><div class='add'>+0x7758 = 0xE0F3</div><div class='add'>+0x7759 = 0xE0F4</div><div class='add'>+0x775A = 0xE0F5</div><div class='add'>+0x775B = 0xE0F6</div><div class='add'>+0x775C = 0xE0F7</div><div class='add'>+0x775D = 0xE0F8</div><div class='add'>+0x775E = 0xE0F9</div><div class='add'>+0x775F = 0xE0FA</div><div class='add'>+0x7760 = 0xE0FB</div><div class='add'>+0x7761 = 0xE0FC</div><div class='add'>+0x7762 = 0xE0FD</div><div class='add'>+0x7763 = 0xE0FE</div><div class='add'>+0x7764 = 0xE0FF</div><div class='add'>+0x7765 = 0xE100</div><div class='add'>+0x7766 = 0xE101</div><div class='add'>+0x7767 = 0xE102</div><div class='add'>+0x7768 = 0xE103</div><div class='add'>+0x7769 = 0xE104</div><div class='add'>+0x776A = 0xE105</div><div class='add'>+0x776B = 0xE106</div><div class='add'>+0x776C = 0xE107</div><div class='add'>+0x776D = 0xE108</div><div class='add'>+0x776E = 0xE109</div><div class='add'>+0x776F = 0xE10A</div><div class='add'>+0x7770 = 0xE10B</div><div class='add'>+0x7771 = 0xE10C</div><div class='add'>+0x7772 = 0xE10D</div><div class='add'>+0x7773 = 0xE10E</div><div class='add'>+0x7774 = 0xE10F</div><div class='add'>+0x7775 = 0xE110</div><div class='add'>+0x7776 = 0xE111</div><div class='add'>+0x7777 = 0xE112</div><div class='add'>+0x7778 = 0xE113</div><div class='add'>+0x7779 = 0xE114</div><div class='add'>+0x777A = 0xE115</div><div class='add'>+0x777B = 0xE116</div><div class='add'>+0x777C = 0xE117</div><div class='add'>+0x777D = 0xE118</div><div class='add'>+0x777E = 0xE119</div><div class='add'>+0x7821 = 0xE11A</div><div class='add'>+0x7822 = 0xE11B</div><div class='add'>+0x7823 = 0xE11C</div><div class='add'>+0x7824 = 0xE11D</div><div class='add'>+0x7825 = 0xE11E</div><div class='add'>+0x7826 = 0xE11F</div><div class='add'>+0x7827 = 0xE120</div><div class='add'>+0x7828 = 0xE121</div><div class='add'>+0x7829 = 0xE122</div><div class='add'>+0x782A = 0xE123</div><div class='add'>+0x782B = 0xE124</div><div class='add'>+0x782C = 0xE125</div><div class='add'>+0x782D = 0xE126</div><div class='add'>+0x782E = 0xE127</div><div class='add'>+0x782F = 0xE128</div><div class='add'>+0x7830 = 0xE129</div><div class='add'>+0x7831 = 0xE12A</div><div class='add'>+0x7832 = 0xE12B</div><div class='add'>+0x7833 = 0xE12C</div><div class='add'>+0x7834 = 0xE12D</div><div class='add'>+0x7835 = 0xE12E</div><div class='add'>+0x7836 = 0xE12F</div><div class='add'>+0x7837 = 0xE130</div><div class='add'>+0x7838 = 0xE131</div><div class='add'>+0x7839 = 0xE132</div><div class='add'>+0x783A = 0xE133</div><div class='add'>+0x783B = 0xE134</div><div class='add'>+0x783C = 0xE135</div><div class='add'>+0x783D = 0xE136</div><div class='add'>+0x783E = 0xE137</div><div class='add'>+0x783F = 0xE138</div><div class='add'>+0x7840 = 0xE139</div><div class='add'>+0x7841 = 0xE13A</div><div class='add'>+0x7842 = 0xE13B</div><div class='add'>+0x7843 = 0xE13C</div><div class='add'>+0x7844 = 0xE13D</div><div class='add'>+0x7845 = 0xE13E</div><div class='add'>+0x7846 = 0xE13F</div><div class='add'>+0x7847 = 0xE140</div><div class='add'>+0x7848 = 0xE141</div><div class='add'>+0x7849 = 0xE142</div><div class='add'>+0x784A = 0xE143</div><div class='add'>+0x784B = 0xE144</div><div class='add'>+0x784C = 0xE145</div><div class='add'>+0x784D = 0xE146</div><div class='add'>+0x784E = 0xE147</div><div class='add'>+0x784F = 0xE148</div><div class='add'>+0x7850 = 0xE149</div><div class='add'>+0x7851 = 0xE14A</div><div class='add'>+0x7852 = 0xE14B</div><div class='add'>+0x7853 = 0xE14C</div><div class='add'>+0x7854 = 0xE14D</div><div class='add'>+0x7855 = 0xE14E</div><div class='add'>+0x7856 = 0xE14F</div><div class='add'>+0x7857 = 0xE150</div><div class='add'>+0x7858 = 0xE151</div><div class='add'>+0x7859 = 0xE152</div><div class='add'>+0x785A = 0xE153</div><div class='add'>+0x785B = 0xE154</div><div class='add'>+0x785C = 0xE155</div><div class='add'>+0x785D = 0xE156</div><div class='add'>+0x785E = 0xE157</div><div class='add'>+0x785F = 0xE158</div><div class='add'>+0x7860 = 0xE159</div><div class='add'>+0x7861 = 0xE15A</div><div class='add'>+0x7862 = 0xE15B</div><div class='add'>+0x7863 = 0xE15C</div><div class='add'>+0x7864 = 0xE15D</div><div class='add'>+0x7865 = 0xE15E</div><div class='add'>+0x7866 = 0xE15F</div><div class='add'>+0x7867 = 0xE160</div><div class='add'>+0x7868 = 0xE161</div><div class='add'>+0x7869 = 0xE162</div><div class='add'>+0x786A = 0xE163</div><div class='add'>+0x786B = 0xE164</div><div class='add'>+0x786C = 0xE165</div><div class='add'>+0x786D = 0xE166</div><div class='add'>+0x786E = 0xE167</div><div class='add'>+0x786F = 0xE168</div><div class='add'>+0x7870 = 0xE169</div><div class='add'>+0x7871 = 0xE16A</div><div class='add'>+0x7872 = 0xE16B</div><div class='add'>+0x7873 = 0xE16C</div><div class='add'>+0x7874 = 0xE16D</div><div class='add'>+0x7875 = 0xE16E</div><div class='add'>+0x7876 = 0xE16F</div><div class='add'>+0x7877 = 0xE170</div><div class='add'>+0x7878 = 0xE171</div><div class='add'>+0x7879 = 0xE172</div><div class='add'>+0x787A = 0xE173</div><div class='add'>+0x787B = 0xE174</div><div class='add'>+0x787C = 0xE175</div><div class='add'>+0x787D = 0xE176</div><div class='add'>+0x787E = 0xE177</div><div class='add'>+0x7921 = 0xE178</div><div class='add'>+0x7922 = 0xE179</div><div class='add'>+0x7923 = 0xE17A</div><div class='add'>+0x7924 = 0xE17B</div><div class='add'>+0x7925 = 0xE17C</div><div class='add'>+0x7926 = 0xE17D</div><div class='add'>+0x7927 = 0xE17E</div><div class='add'>+0x7928 = 0xE17F</div><div class='add'>+0x7929 = 0xE180</div><div class='add'>+0x792A = 0xE181</div><div class='add'>+0x792B = 0xE182</div><div class='add'>+0x792C = 0xE183</div><div class='add'>+0x792D = 0xE184</div><div class='add'>+0x792E = 0xE185</div><div class='add'>+0x792F = 0xE186</div><div class='add'>+0x7930 = 0xE187</div><div class='add'>+0x7931 = 0xE188</div><div class='add'>+0x7932 = 0xE189</div><div class='add'>+0x7933 = 0xE18A</div><div class='add'>+0x7934 = 0xE18B</div><div class='add'>+0x7935 = 0xE18C</div><div class='add'>+0x7936 = 0xE18D</div><div class='add'>+0x7937 = 0xE18E</div><div class='add'>+0x7938 = 0xE18F</div><div class='add'>+0x7939 = 0xE190</div><div class='add'>+0x793A = 0xE191</div><div class='add'>+0x793B = 0xE192</div><div class='add'>+0x793C = 0xE193</div><div class='add'>+0x793D = 0xE194</div><div class='add'>+0x793E = 0xE195</div><div class='add'>+0x793F = 0xE196</div><div class='add'>+0x7940 = 0xE197</div><div class='add'>+0x7941 = 0xE198</div><div class='add'>+0x7942 = 0xE199</div><div class='add'>+0x7943 = 0xE19A</div><div class='add'>+0x7944 = 0xE19B</div><div class='add'>+0x7945 = 0xE19C</div><div class='add'>+0x7946 = 0xE19D</div><div class='add'>+0x7947 = 0xE19E</div><div class='add'>+0x7948 = 0xE19F</div><div class='add'>+0x7949 = 0xE1A0</div><div class='add'>+0x794A = 0xE1A1</div><div class='add'>+0x794B = 0xE1A2</div><div class='add'>+0x794C = 0xE1A3</div><div class='add'>+0x794D = 0xE1A4</div><div class='add'>+0x794E = 0xE1A5</div><div class='add'>+0x794F = 0xE1A6</div><div class='add'>+0x7950 = 0xE1A7</div><div class='add'>+0x7951 = 0xE1A8</div><div class='add'>+0x7952 = 0xE1A9</div><div class='add'>+0x7953 = 0xE1AA</div><div class='add'>+0x7954 = 0xE1AB</div><div class='add'>+0x7955 = 0xE1AC</div><div class='add'>+0x7956 = 0xE1AD</div><div class='add'>+0x7957 = 0xE1AE</div><div class='add'>+0x7958 = 0xE1AF</div><div class='add'>+0x7959 = 0xE1B0</div><div class='add'>+0x795A = 0xE1B1</div><div class='add'>+0x795B = 0xE1B2</div><div class='add'>+0x795C = 0xE1B3</div><div class='add'>+0x795D = 0xE1B4</div><div class='add'>+0x795E = 0xE1B5</div><div class='add'>+0x795F = 0xE1B6</div><div class='add'>+0x7960 = 0xE1B7</div><div class='add'>+0x7961 = 0xE1B8</div><div class='add'>+0x7962 = 0xE1B9</div><div class='add'>+0x7963 = 0xE1BA</div><div class='add'>+0x7964 = 0xE1BB</div><div class='add'>+0x7965 = 0xE1BC</div><div class='add'>+0x7966 = 0xE1BD</div><div class='add'>+0x7967 = 0xE1BE</div><div class='add'>+0x7968 = 0xE1BF</div><div class='add'>+0x7969 = 0xE1C0</div><div class='add'>+0x796A = 0xE1C1</div><div class='add'>+0x796B = 0xE1C2</div><div class='add'>+0x796C = 0xE1C3</div><div class='add'>+0x796D = 0xE1C4</div><div class='add'>+0x796E = 0xE1C5</div><div class='add'>+0x796F = 0xE1C6</div><div class='add'>+0x7970 = 0xE1C7</div><div class='add'>+0x7971 = 0xE1C8</div><div class='add'>+0x7972 = 0xE1C9</div><div class='add'>+0x7973 = 0xE1CA</div><div class='add'>+0x7974 = 0xE1CB</div><div class='add'>+0x7975 = 0xE1CC</div><div class='add'>+0x7976 = 0xE1CD</div><div class='add'>+0x7977 = 0xE1CE</div><div class='add'>+0x7978 = 0xE1CF</div><div class='add'>+0x7979 = 0xE1D0</div><div class='add'>+0x797A = 0xE1D1</div><div class='add'>+0x797B = 0xE1D2</div><div class='add'>+0x797C = 0xE1D3</div><div class='add'>+0x797D = 0xE1D4</div><div class='add'>+0x797E = 0xE1D5</div><div class='add'>+0x7A21 = 0xE1D6</div><div class='add'>+0x7A22 = 0xE1D7</div><div class='add'>+0x7A23 = 0xE1D8</div><div class='add'>+0x7A24 = 0xE1D9</div><div class='add'>+0x7A25 = 0xE1DA</div><div class='add'>+0x7A26 = 0xE1DB</div><div class='add'>+0x7A27 = 0xE1DC</div><div class='add'>+0x7A28 = 0xE1DD</div><div class='add'>+0x7A29 = 0xE1DE</div><div class='add'>+0x7A2A = 0xE1DF</div><div class='add'>+0x7A2B = 0xE1E0</div><div class='add'>+0x7A2C = 0xE1E1</div><div class='add'>+0x7A2D = 0xE1E2</div><div class='add'>+0x7A2E = 0xE1E3</div><div class='add'>+0x7A2F = 0xE1E4</div><div class='add'>+0x7A30 = 0xE1E5</div><div class='add'>+0x7A31 = 0xE1E6</div><div class='add'>+0x7A32 = 0xE1E7</div><div class='add'>+0x7A33 = 0xE1E8</div><div class='add'>+0x7A34 = 0xE1E9</div><div class='add'>+0x7A35 = 0xE1EA</div><div class='add'>+0x7A36 = 0xE1EB</div><div class='add'>+0x7A37 = 0xE1EC</div><div class='add'>+0x7A38 = 0xE1ED</div><div class='add'>+0x7A39 = 0xE1EE</div><div class='add'>+0x7A3A = 0xE1EF</div><div class='add'>+0x7A3B = 0xE1F0</div><div class='add'>+0x7A3C = 0xE1F1</div><div class='add'>+0x7A3D = 0xE1F2</div><div class='add'>+0x7A3E = 0xE1F3</div><div class='add'>+0x7A3F = 0xE1F4</div><div class='add'>+0x7A40 = 0xE1F5</div><div class='add'>+0x7A41 = 0xE1F6</div><div class='add'>+0x7A42 = 0xE1F7</div><div class='add'>+0x7A43 = 0xE1F8</div><div class='add'>+0x7A44 = 0xE1F9</div><div class='add'>+0x7A45 = 0xE1FA</div><div class='add'>+0x7A46 = 0xE1FB</div><div class='add'>+0x7A47 = 0xE1FC</div><div class='add'>+0x7A48 = 0xE1FD</div><div class='add'>+0x7A49 = 0xE1FE</div><div class='add'>+0x7A4A = 0xE1FF</div><div class='add'>+0x7A4B = 0xE200</div><div class='add'>+0x7A4C = 0xE201</div><div class='add'>+0x7A4D = 0xE202</div><div class='add'>+0x7A4E = 0xE203</div><div class='add'>+0x7A4F = 0xE204</div><div class='add'>+0x7A50 = 0xE205</div><div class='add'>+0x7A51 = 0xE206</div><div class='add'>+0x7A52 = 0xE207</div><div class='add'>+0x7A53 = 0xE208</div><div class='add'>+0x7A54 = 0xE209</div><div class='add'>+0x7A55 = 0xE20A</div><div class='add'>+0x7A56 = 0xE20B</div><div class='add'>+0x7A57 = 0xE20C</div><div class='add'>+0x7A58 = 0xE20D</div><div class='add'>+0x7A59 = 0xE20E</div><div class='add'>+0x7A5A = 0xE20F</div><div class='add'>+0x7A5B = 0xE210</div><div class='add'>+0x7A5C = 0xE211</div><div class='add'>+0x7A5D = 0xE212</div><div class='add'>+0x7A5E = 0xE213</div><div class='add'>+0x7A5F = 0xE214</div><div class='add'>+0x7A60 = 0xE215</div><div class='add'>+0x7A61 = 0xE216</div><div class='add'>+0x7A62 = 0xE217</div><div class='add'>+0x7A63 = 0xE218</div><div class='add'>+0x7A64 = 0xE219</div><div class='add'>+0x7A65 = 0xE21A</div><div class='add'>+0x7A66 = 0xE21B</div><div class='add'>+0x7A67 = 0xE21C</div><div class='add'>+0x7A68 = 0xE21D</div><div class='add'>+0x7A69 = 0xE21E</div><div class='add'>+0x7A6A = 0xE21F</div><div class='add'>+0x7A6B = 0xE220</div><div class='add'>+0x7A6C = 0xE221</div><div class='add'>+0x7A6D = 0xE222</div><div class='add'>+0x7A6E = 0xE223</div><div class='add'>+0x7A6F = 0xE224</div><div class='add'>+0x7A70 = 0xE225</div><div class='add'>+0x7A71 = 0xE226</div><div class='add'>+0x7A72 = 0xE227</div><div class='add'>+0x7A73 = 0xE228</div><div class='add'>+0x7A74 = 0xE229</div><div class='add'>+0x7A75 = 0xE22A</div><div class='add'>+0x7A76 = 0xE22B</div><div class='add'>+0x7A77 = 0xE22C</div><div class='add'>+0x7A78 = 0xE22D</div><div class='add'>+0x7A79 = 0xE22E</div><div class='add'>+0x7A7A = 0xE22F</div><div class='add'>+0x7A7B = 0xE230</div><div class='add'>+0x7A7C = 0xE231</div><div class='add'>+0x7A7D = 0xE232</div><div class='add'>+0x7A7E = 0xE233</div><div class='add'>+0x7B21 = 0xE234</div><div class='add'>+0x7B22 = 0xE235</div><div class='add'>+0x7B23 = 0xE236</div><div class='add'>+0x7B24 = 0xE237</div><div class='add'>+0x7B25 = 0xE238</div><div class='add'>+0x7B26 = 0xE239</div><div class='add'>+0x7B27 = 0xE23A</div><div class='add'>+0x7B28 = 0xE23B</div><div class='add'>+0x7B29 = 0xE23C</div><div class='add'>+0x7B2A = 0xE23D</div><div class='add'>+0x7B2B = 0xE23E</div><div class='add'>+0x7B2C = 0xE23F</div><div class='add'>+0x7B2D = 0xE240</div><div class='add'>+0x7B2E = 0xE241</div><div class='add'>+0x7B2F = 0xE242</div><div class='add'>+0x7B30 = 0xE243</div><div class='add'>+0x7B31 = 0xE244</div><div class='add'>+0x7B32 = 0xE245</div><div class='add'>+0x7B33 = 0xE246</div><div class='add'>+0x7B34 = 0xE247</div><div class='add'>+0x7B35 = 0xE248</div><div class='add'>+0x7B36 = 0xE249</div><div class='add'>+0x7B37 = 0xE24A</div><div class='add'>+0x7B38 = 0xE24B</div><div class='add'>+0x7B39 = 0xE24C</div><div class='add'>+0x7B3A = 0xE24D</div><div class='add'>+0x7B3B = 0xE24E</div><div class='add'>+0x7B3C = 0xE24F</div><div class='add'>+0x7B3D = 0xE250</div><div class='add'>+0x7B3E = 0xE251</div><div class='add'>+0x7B3F = 0xE252</div><div class='add'>+0x7B40 = 0xE253</div><div class='add'>+0x7B41 = 0xE254</div><div class='add'>+0x7B42 = 0xE255</div><div class='add'>+0x7B43 = 0xE256</div><div class='add'>+0x7B44 = 0xE257</div><div class='add'>+0x7B45 = 0xE258</div><div class='add'>+0x7B46 = 0xE259</div><div class='add'>+0x7B47 = 0xE25A</div><div class='add'>+0x7B48 = 0xE25B</div><div class='add'>+0x7B49 = 0xE25C</div><div class='add'>+0x7B4A = 0xE25D</div><div class='add'>+0x7B4B = 0xE25E</div><div class='add'>+0x7B4C = 0xE25F</div><div class='add'>+0x7B4D = 0xE260</div><div class='add'>+0x7B4E = 0xE261</div><div class='add'>+0x7B4F = 0xE262</div><div class='add'>+0x7B50 = 0xE263</div><div class='add'>+0x7B51 = 0xE264</div><div class='add'>+0x7B52 = 0xE265</div><div class='add'>+0x7B53 = 0xE266</div><div class='add'>+0x7B54 = 0xE267</div><div class='add'>+0x7B55 = 0xE268</div><div class='add'>+0x7B56 = 0xE269</div><div class='add'>+0x7B57 = 0xE26A</div><div class='add'>+0x7B58 = 0xE26B</div><div class='add'>+0x7B59 = 0xE26C</div><div class='add'>+0x7B5A = 0xE26D</div><div class='add'>+0x7B5B = 0xE26E</div><div class='add'>+0x7B5C = 0xE26F</div><div class='add'>+0x7B5D = 0xE270</div><div class='add'>+0x7B5E = 0xE271</div><div class='add'>+0x7B5F = 0xE272</div><div class='add'>+0x7B60 = 0xE273</div><div class='add'>+0x7B61 = 0xE274</div><div class='add'>+0x7B62 = 0xE275</div><div class='add'>+0x7B63 = 0xE276</div><div class='add'>+0x7B64 = 0xE277</div><div class='add'>+0x7B65 = 0xE278</div><div class='add'>+0x7B66 = 0xE279</div><div class='add'>+0x7B67 = 0xE27A</div><div class='add'>+0x7B68 = 0xE27B</div><div class='add'>+0x7B69 = 0xE27C</div><div class='add'>+0x7B6A = 0xE27D</div><div class='add'>+0x7B6B = 0xE27E</div><div class='add'>+0x7B6C = 0xE27F</div><div class='add'>+0x7B6D = 0xE280</div><div class='add'>+0x7B6E = 0xE281</div><div class='add'>+0x7B6F = 0xE282</div><div class='add'>+0x7B70 = 0xE283</div><div class='add'>+0x7B71 = 0xE284</div><div class='add'>+0x7B72 = 0xE285</div><div class='add'>+0x7B73 = 0xE286</div><div class='add'>+0x7B74 = 0xE287</div><div class='add'>+0x7B75 = 0xE288</div><div class='add'>+0x7B76 = 0xE289</div><div class='add'>+0x7B77 = 0xE28A</div><div class='add'>+0x7B78 = 0xE28B</div><div class='add'>+0x7B79 = 0xE28C</div><div class='add'>+0x7B7A = 0xE28D</div><div class='add'>+0x7B7B = 0xE28E</div><div class='add'>+0x7B7C = 0xE28F</div><div class='add'>+0x7B7D = 0xE290</div><div class='add'>+0x7B7E = 0xE291</div><div class='add'>+0x7C21 = 0xE292</div><div class='add'>+0x7C22 = 0xE293</div><div class='add'>+0x7C23 = 0xE294</div><div class='add'>+0x7C24 = 0xE295</div><div class='add'>+0x7C25 = 0xE296</div><div class='add'>+0x7C26 = 0xE297</div><div class='add'>+0x7C27 = 0xE298</div><div class='add'>+0x7C28 = 0xE299</div><div class='add'>+0x7C29 = 0xE29A</div><div class='add'>+0x7C2A = 0xE29B</div><div class='add'>+0x7C2B = 0xE29C</div><div class='add'>+0x7C2C = 0xE29D</div><div class='add'>+0x7C2D = 0xE29E</div><div class='add'>+0x7C2E = 0xE29F</div><div class='add'>+0x7C2F = 0xE2A0</div><div class='add'>+0x7C30 = 0xE2A1</div><div class='add'>+0x7C31 = 0xE2A2</div><div class='add'>+0x7C32 = 0xE2A3</div><div class='add'>+0x7C33 = 0xE2A4</div><div class='add'>+0x7C34 = 0xE2A5</div><div class='add'>+0x7C35 = 0xE2A6</div><div class='add'>+0x7C36 = 0xE2A7</div><div class='add'>+0x7C37 = 0xE2A8</div><div class='add'>+0x7C38 = 0xE2A9</div><div class='add'>+0x7C39 = 0xE2AA</div><div class='add'>+0x7C3A = 0xE2AB</div><div class='add'>+0x7C3B = 0xE2AC</div><div class='add'>+0x7C3C = 0xE2AD</div><div class='add'>+0x7C3D = 0xE2AE</div><div class='add'>+0x7C3E = 0xE2AF</div><div class='add'>+0x7C3F = 0xE2B0</div><div class='add'>+0x7C40 = 0xE2B1</div><div class='add'>+0x7C41 = 0xE2B2</div><div class='add'>+0x7C42 = 0xE2B3</div><div class='add'>+0x7C43 = 0xE2B4</div><div class='add'>+0x7C44 = 0xE2B5</div><div class='add'>+0x7C45 = 0xE2B6</div><div class='add'>+0x7C46 = 0xE2B7</div><div class='add'>+0x7C47 = 0xE2B8</div><div class='add'>+0x7C48 = 0xE2B9</div><div class='add'>+0x7C49 = 0xE2BA</div><div class='add'>+0x7C4A = 0xE2BB</div><div class='add'>+0x7C4B = 0xE2BC</div><div class='add'>+0x7C4C = 0xE2BD</div><div class='add'>+0x7C4D = 0xE2BE</div><div class='add'>+0x7C4E = 0xE2BF</div><div class='add'>+0x7C4F = 0xE2C0</div><div class='add'>+0x7C50 = 0xE2C1</div><div class='add'>+0x7C51 = 0xE2C2</div><div class='add'>+0x7C52 = 0xE2C3</div><div class='add'>+0x7C53 = 0xE2C4</div><div class='add'>+0x7C54 = 0xE2C5</div><div class='add'>+0x7C55 = 0xE2C6</div><div class='add'>+0x7C56 = 0xE2C7</div><div class='add'>+0x7C57 = 0xE2C8</div><div class='add'>+0x7C58 = 0xE2C9</div><div class='add'>+0x7C59 = 0xE2CA</div><div class='add'>+0x7C5A = 0xE2CB</div><div class='add'>+0x7C5B = 0xE2CC</div><div class='add'>+0x7C5C = 0xE2CD</div><div class='add'>+0x7C5D = 0xE2CE</div><div class='add'>+0x7C5E = 0xE2CF</div><div class='add'>+0x7C5F = 0xE2D0</div><div class='add'>+0x7C60 = 0xE2D1</div><div class='add'>+0x7C61 = 0xE2D2</div><div class='add'>+0x7C62 = 0xE2D3</div><div class='add'>+0x7C63 = 0xE2D4</div><div class='add'>+0x7C64 = 0xE2D5</div><div class='add'>+0x7C65 = 0xE2D6</div><div class='add'>+0x7C66 = 0xE2D7</div><div class='add'>+0x7C67 = 0xE2D8</div><div class='add'>+0x7C68 = 0xE2D9</div><div class='add'>+0x7C69 = 0xE2DA</div><div class='add'>+0x7C6A = 0xE2DB</div><div class='add'>+0x7C6B = 0xE2DC</div><div class='add'>+0x7C6C = 0xE2DD</div><div class='add'>+0x7C6D = 0xE2DE</div><div class='add'>+0x7C6E = 0xE2DF</div><div class='add'>+0x7C6F = 0xE2E0</div><div class='add'>+0x7C70 = 0xE2E1</div><div class='add'>+0x7C71 = 0xE2E2</div><div class='add'>+0x7C72 = 0xE2E3</div><div class='add'>+0x7C73 = 0xE2E4</div><div class='add'>+0x7C74 = 0xE2E5</div><div class='add'>+0x7C75 = 0xE2E6</div><div class='add'>+0x7C76 = 0xE2E7</div><div class='add'>+0x7C77 = 0xE2E8</div><div class='add'>+0x7C78 = 0xE2E9</div><div class='add'>+0x7C79 = 0xE2EA</div><div class='add'>+0x7C7A = 0xE2EB</div><div class='add'>+0x7C7B = 0xE2EC</div><div class='add'>+0x7C7C = 0xE2ED</div><div class='add'>+0x7C7D = 0xE2EE</div><div class='add'>+0x7C7E = 0xE2EF</div><div class='add'>+0x7D21 = 0xE2F0</div><div class='add'>+0x7D22 = 0xE2F1</div><div class='add'>+0x7D23 = 0xE2F2</div><div class='add'>+0x7D24 = 0xE2F3</div><div class='add'>+0x7D25 = 0xE2F4</div><div class='add'>+0x7D26 = 0xE2F5</div><div class='add'>+0x7D27 = 0xE2F6</div><div class='add'>+0x7D28 = 0xE2F7</div><div class='add'>+0x7D29 = 0xE2F8</div><div class='add'>+0x7D2A = 0xE2F9</div><div class='add'>+0x7D2B = 0xE2FA</div><div class='add'>+0x7D2C = 0xE2FB</div><div class='add'>+0x7D2D = 0xE2FC</div><div class='add'>+0x7D2E = 0xE2FD</div><div class='add'>+0x7D2F = 0xE2FE</div><div class='add'>+0x7D30 = 0xE2FF</div><div class='add'>+0x7D31 = 0xE300</div><div class='add'>+0x7D32 = 0xE301</div><div class='add'>+0x7D33 = 0xE302</div><div class='add'>+0x7D34 = 0xE303</div><div class='add'>+0x7D35 = 0xE304</div><div class='add'>+0x7D36 = 0xE305</div><div class='add'>+0x7D37 = 0xE306</div><div class='add'>+0x7D38 = 0xE307</div><div class='add'>+0x7D39 = 0xE308</div><div class='add'>+0x7D3A = 0xE309</div><div class='add'>+0x7D3B = 0xE30A</div><div class='add'>+0x7D3C = 0xE30B</div><div class='add'>+0x7D3D = 0xE30C</div><div class='add'>+0x7D3E = 0xE30D</div><div class='add'>+0x7D3F = 0xE30E</div><div class='add'>+0x7D40 = 0xE30F</div><div class='add'>+0x7D41 = 0xE310</div><div class='add'>+0x7D42 = 0xE311</div><div class='add'>+0x7D43 = 0xE312</div><div class='add'>+0x7D44 = 0xE313</div><div class='add'>+0x7D45 = 0xE314</div><div class='add'>+0x7D46 = 0xE315</div><div class='add'>+0x7D47 = 0xE316</div><div class='add'>+0x7D48 = 0xE317</div><div class='add'>+0x7D49 = 0xE318</div><div class='add'>+0x7D4A = 0xE319</div><div class='add'>+0x7D4B = 0xE31A</div><div class='add'>+0x7D4C = 0xE31B</div><div class='add'>+0x7D4D = 0xE31C</div><div class='add'>+0x7D4E = 0xE31D</div><div class='add'>+0x7D4F = 0xE31E</div><div class='add'>+0x7D50 = 0xE31F</div><div class='add'>+0x7D51 = 0xE320</div><div class='add'>+0x7D52 = 0xE321</div><div class='add'>+0x7D53 = 0xE322</div><div class='add'>+0x7D54 = 0xE323</div><div class='add'>+0x7D55 = 0xE324</div><div class='add'>+0x7D56 = 0xE325</div><div class='add'>+0x7D57 = 0xE326</div><div class='add'>+0x7D58 = 0xE327</div><div class='add'>+0x7D59 = 0xE328</div><div class='add'>+0x7D5A = 0xE329</div><div class='add'>+0x7D5B = 0xE32A</div><div class='add'>+0x7D5C = 0xE32B</div><div class='add'>+0x7D5D = 0xE32C</div><div class='add'>+0x7D5E = 0xE32D</div><div class='add'>+0x7D5F = 0xE32E</div><div class='add'>+0x7D60 = 0xE32F</div><div class='add'>+0x7D61 = 0xE330</div><div class='add'>+0x7D62 = 0xE331</div><div class='add'>+0x7D63 = 0xE332</div><div class='add'>+0x7D64 = 0xE333</div><div class='add'>+0x7D65 = 0xE334</div><div class='add'>+0x7D66 = 0xE335</div><div class='add'>+0x7D67 = 0xE336</div><div class='add'>+0x7D68 = 0xE337</div><div class='add'>+0x7D69 = 0xE338</div><div class='add'>+0x7D6A = 0xE339</div><div class='add'>+0x7D6B = 0xE33A</div><div class='add'>+0x7D6C = 0xE33B</div><div class='add'>+0x7D6D = 0xE33C</div><div class='add'>+0x7D6E = 0xE33D</div><div class='add'>+0x7D6F = 0xE33E</div><div class='add'>+0x7D70 = 0xE33F</div><div class='add'>+0x7D71 = 0xE340</div><div class='add'>+0x7D72 = 0xE341</div><div class='add'>+0x7D73 = 0xE342</div><div class='add'>+0x7D74 = 0xE343</div><div class='add'>+0x7D75 = 0xE344</div><div class='add'>+0x7D76 = 0xE345</div><div class='add'>+0x7D77 = 0xE346</div><div class='add'>+0x7D78 = 0xE347</div><div class='add'>+0x7D79 = 0xE348</div><div class='add'>+0x7D7A = 0xE349</div><div class='add'>+0x7D7B = 0xE34A</div><div class='add'>+0x7D7C = 0xE34B</div><div class='add'>+0x7D7D = 0xE34C</div><div class='add'>+0x7D7E = 0xE34D</div><div class='add'>+0x7E21 = 0xE34E</div><div class='add'>+0x7E22 = 0xE34F</div><div class='add'>+0x7E23 = 0xE350</div><div class='add'>+0x7E24 = 0xE351</div><div class='add'>+0x7E25 = 0xE352</div><div class='add'>+0x7E26 = 0xE353</div><div class='add'>+0x7E27 = 0xE354</div><div class='add'>+0x7E28 = 0xE355</div><div class='add'>+0x7E29 = 0xE356</div><div class='add'>+0x7E2A = 0xE357</div><div class='add'>+0x7E2B = 0xE358</div><div class='add'>+0x7E2C = 0xE359</div><div class='add'>+0x7E2D = 0xE35A</div><div class='add'>+0x7E2E = 0xE35B</div><div class='add'>+0x7E2F = 0xE35C</div><div class='add'>+0x7E30 = 0xE35D</div><div class='add'>+0x7E31 = 0xE35E</div><div class='add'>+0x7E32 = 0xE35F</div><div class='add'>+0x7E33 = 0xE360</div><div class='add'>+0x7E34 = 0xE361</div><div class='add'>+0x7E35 = 0xE362</div><div class='add'>+0x7E36 = 0xE363</div><div class='add'>+0x7E37 = 0xE364</div><div class='add'>+0x7E38 = 0xE365</div><div class='add'>+0x7E39 = 0xE366</div><div class='add'>+0x7E3A = 0xE367</div><div class='add'>+0x7E3B = 0xE368</div><div class='add'>+0x7E3C = 0xE369</div><div class='add'>+0x7E3D = 0xE36A</div><div class='add'>+0x7E3E = 0xE36B</div><div class='add'>+0x7E3F = 0xE36C</div><div class='add'>+0x7E40 = 0xE36D</div><div class='add'>+0x7E41 = 0xE36E</div><div class='add'>+0x7E42 = 0xE36F</div><div class='add'>+0x7E43 = 0xE370</div><div class='add'>+0x7E44 = 0xE371</div><div class='add'>+0x7E45 = 0xE372</div><div class='add'>+0x7E46 = 0xE373</div><div class='add'>+0x7E47 = 0xE374</div><div class='add'>+0x7E48 = 0xE375</div><div class='add'>+0x7E49 = 0xE376</div><div class='add'>+0x7E4A = 0xE377</div><div class='add'>+0x7E4B = 0xE378</div><div class='add'>+0x7E4C = 0xE379</div><div class='add'>+0x7E4D = 0xE37A</div><div class='add'>+0x7E4E = 0xE37B</div><div class='add'>+0x7E4F = 0xE37C</div><div class='add'>+0x7E50 = 0xE37D</div><div class='add'>+0x7E51 = 0xE37E</div><div class='add'>+0x7E52 = 0xE37F</div><div class='add'>+0x7E53 = 0xE380</div><div class='add'>+0x7E54 = 0xE381</div><div class='add'>+0x7E55 = 0xE382</div><div class='add'>+0x7E56 = 0xE383</div><div class='add'>+0x7E57 = 0xE384</div><div class='add'>+0x7E58 = 0xE385</div><div class='add'>+0x7E59 = 0xE386</div><div class='add'>+0x7E5A = 0xE387</div><div class='add'>+0x7E5B = 0xE388</div><div class='add'>+0x7E5C = 0xE389</div><div class='add'>+0x7E5D = 0xE38A</div><div class='add'>+0x7E5E = 0xE38B</div><div class='add'>+0x7E5F = 0xE38C</div><div class='add'>+0x7E60 = 0xE38D</div><div class='add'>+0x7E61 = 0xE38E</div><div class='add'>+0x7E62 = 0xE38F</div><div class='add'>+0x7E63 = 0xE390</div><div class='add'>+0x7E64 = 0xE391</div><div class='add'>+0x7E65 = 0xE392</div><div class='add'>+0x7E66 = 0xE393</div><div class='add'>+0x7E67 = 0xE394</div><div class='add'>+0x7E68 = 0xE395</div><div class='add'>+0x7E69 = 0xE396</div><div class='add'>+0x7E6A = 0xE397</div><div class='add'>+0x7E6B = 0xE398</div><div class='add'>+0x7E6C = 0xE399</div><div class='add'>+0x7E6D = 0xE39A</div><div class='add'>+0x7E6E = 0xE39B</div><div class='add'>+0x7E6F = 0xE39C</div><div class='add'>+0x7E70 = 0xE39D</div><div class='add'>+0x7E71 = 0xE39E</div><div class='add'>+0x7E72 = 0xE39F</div><div class='add'>+0x7E73 = 0xE3A0</div><div class='add'>+0x7E74 = 0xE3A1</div><div class='add'>+0x7E75 = 0xE3A2</div><div class='add'>+0x7E76 = 0xE3A3</div><div class='add'>+0x7E77 = 0xE3A4</div><div class='add'>+0x7E78 = 0xE3A5</div><div class='add'>+0x7E79 = 0xE3A6</div><div class='add'>+0x7E7A = 0xE3A7</div><div class='add'>+0x7E7B = 0xE3A8</div><div class='add'>+0x7E7C = 0xE3A9</div><div class='add'>+0x7E7D = 0xE3AA</div><div class='add'>+0x7E7E = 0xE3AB</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0208VDC@NEC%UCS.src b/enc/trans/JIS/JISX0208VDC@NEC%UCS.src<br/>new file mode 100644<br/>index 0000000000..bf7ea7b67a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0208VDC@NEC%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0208VDC@NEC%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,97 @@</div><div class='add'>+# $NetBSD: JISX0208VDC@NEC%UCS.src,v 1.1 2003/07/19 20:20:41 tshiozak Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"JISX0208VDC:NEC/UCS"</div><div class='add'>+SRC_ZONE	0x2D21 - 0x2D7C</div><div class='add'>+OOB_MODE	INVALID</div><div class='add'>+DST_INVALID	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This data is derived from http://www.opengroup.or.jp/jvc/cde/</div><div class='add'>+#</div><div class='add'>+0x2D21 = 0x2460</div><div class='add'>+0x2D22 = 0x2461</div><div class='add'>+0x2D23 = 0x2462</div><div class='add'>+0x2D24 = 0x2463</div><div class='add'>+0x2D25 = 0x2464</div><div class='add'>+0x2D26 = 0x2465</div><div class='add'>+0x2D27 = 0x2466</div><div class='add'>+0x2D28 = 0x2467</div><div class='add'>+0x2D29 = 0x2468</div><div class='add'>+0x2D2A = 0x2469</div><div class='add'>+0x2D2B = 0x246A</div><div class='add'>+0x2D2C = 0x246B</div><div class='add'>+0x2D2D = 0x246C</div><div class='add'>+0x2D2E = 0x246D</div><div class='add'>+0x2D2F = 0x246E</div><div class='add'>+0x2D30 = 0x246F</div><div class='add'>+0x2D31 = 0x2470</div><div class='add'>+0x2D32 = 0x2471</div><div class='add'>+0x2D33 = 0x2472</div><div class='add'>+0x2D34 = 0x2473</div><div class='add'>+0x2D35 = 0x2160</div><div class='add'>+0x2D36 = 0x2161</div><div class='add'>+0x2D37 = 0x2162</div><div class='add'>+0x2D38 = 0x2163</div><div class='add'>+0x2D39 = 0x2164</div><div class='add'>+0x2D3A = 0x2165</div><div class='add'>+0x2D3B = 0x2166</div><div class='add'>+0x2D3C = 0x2167</div><div class='add'>+0x2D3D = 0x2168</div><div class='add'>+0x2D3E = 0x2169</div><div class='add'>+0x2D40 = 0x3349</div><div class='add'>+0x2D41 = 0x3314</div><div class='add'>+0x2D42 = 0x3322</div><div class='add'>+0x2D43 = 0x334D</div><div class='add'>+0x2D44 = 0x3318</div><div class='add'>+0x2D45 = 0x3327</div><div class='add'>+0x2D46 = 0x3303</div><div class='add'>+0x2D47 = 0x3336</div><div class='add'>+0x2D48 = 0x3351</div><div class='add'>+0x2D49 = 0x3357</div><div class='add'>+0x2D4A = 0x330D</div><div class='add'>+0x2D4B = 0x3326</div><div class='add'>+0x2D4C = 0x3323</div><div class='add'>+0x2D4D = 0x332B</div><div class='add'>+0x2D4E = 0x334A</div><div class='add'>+0x2D4F = 0x333B</div><div class='add'>+0x2D50 = 0x339C</div><div class='add'>+0x2D51 = 0x339D</div><div class='add'>+0x2D52 = 0x339E</div><div class='add'>+0x2D53 = 0x338E</div><div class='add'>+0x2D54 = 0x338F</div><div class='add'>+0x2D55 = 0x33C4</div><div class='add'>+0x2D56 = 0x33A1</div><div class='add'>+0x2D5F = 0x337B</div><div class='add'>+0x2D60 = 0x301D</div><div class='add'>+0x2D61 = 0x301F</div><div class='add'>+0x2D62 = 0x2116</div><div class='add'>+0x2D63 = 0x33CD</div><div class='add'>+0x2D64 = 0x2121</div><div class='add'>+0x2D65 = 0x32A4</div><div class='add'>+0x2D66 = 0x32A5</div><div class='add'>+0x2D67 = 0x32A6</div><div class='add'>+0x2D68 = 0x32A7</div><div class='add'>+0x2D69 = 0x32A8</div><div class='add'>+0x2D6A = 0x3231</div><div class='add'>+0x2D6B = 0x3232</div><div class='add'>+0x2D6C = 0x3239</div><div class='add'>+0x2D6D = 0x337E</div><div class='add'>+0x2D6E = 0x337D</div><div class='add'>+0x2D6F = 0x337C</div><div class='add'>+0x2D70 = 0x2252</div><div class='add'>+0x2D71 = 0x2261</div><div class='add'>+0x2D72 = 0x222B</div><div class='add'>+0x2D73 = 0x222E</div><div class='add'>+0x2D74 = 0x2211</div><div class='add'>+0x2D75 = 0x221A</div><div class='add'>+0x2D76 = 0x22A5</div><div class='add'>+0x2D77 = 0x2220</div><div class='add'>+0x2D78 = 0x221F</div><div class='add'>+0x2D79 = 0x22BF</div><div class='add'>+0x2D7A = 0x2235</div><div class='add'>+0x2D7B = 0x2229</div><div class='add'>+0x2D7C = 0x222A</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0212%UCS.src b/enc/trans/JIS/JISX0212%UCS.src<br/>new file mode 100644<br/>index 0000000000..cf4e7ecf62<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0212%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0212%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,6167 @@</div><div class='add'>+# $NetBSD: JISX0212%UCS.src,v 1.2 2003/07/12 16:11:10 tshiozak Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		JISX0212/UCS</div><div class='add'>+SRC_ZONE	0x21-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This mapping data is made from the mapping data provided by Unicode, Inc.</div><div class='add'>+# Original notice:</div><div class='add'>+#</div><div class='add'>+#	Name:             JIS X 0212 (1990) to Unicode</div><div class='add'>+#	Unicode version:  1.1</div><div class='add'>+#	Table version:    0.9</div><div class='add'>+#	Table format:     Format A</div><div class='add'>+#	Date:             8 March 1994</div><div class='add'>+#</div><div class='add'>+#	Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.</div><div class='add'>+#</div><div class='add'>+#	This file is provided as-is by Unicode, Inc. (The Unicode Consortium).</div><div class='add'>+#	No claims are made as to fitness for any particular purpose.  No</div><div class='add'>+#	warranties of any kind are expressed or implied.  The recipient</div><div class='add'>+#	agrees to determine applicability of information provided.  If this</div><div class='add'>+#	file has been provided on magnetic media by Unicode, Inc., the sole</div><div class='add'>+#	remedy for any claim will be exchange of defective media within 90</div><div class='add'>+#	days of receipt.</div><div class='add'>+#</div><div class='add'>+#	Recipient is granted the right to make copies in any form for</div><div class='add'>+#	internal distribution and to freely use the information supplied</div><div class='add'>+#	in the creation of products supporting Unicode.  Unicode, Inc.</div><div class='add'>+#	specifically excludes the right to re-distribute this file directly</div><div class='add'>+#	to third parties or other organizations whether for profit or not.</div><div class='add'>+#</div><div class='add'>+#	General notes:</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+# This table contains one set of mappings from JIS X 0212 into Unicode.</div><div class='add'>+# Note that these data are *possible* mappings only and may not be the</div><div class='add'>+# same as those used by actual products, nor may they be the best suited</div><div class='add'>+# for all uses.  For more information on the mappings between various code</div><div class='add'>+# pages incorporating the repertoire of JIS X 0212 and Unicode, consult the</div><div class='add'>+# VENDORS mapping data.  Normative information on the mapping between</div><div class='add'>+# JIS X 0212 and Unicode may be found in the Unihan.txt file in the</div><div class='add'>+# latest Unicode Character Database.</div><div class='add'>+#</div><div class='add'>+# If you have carefully considered the fact that the mappings in</div><div class='add'>+# this table are only one possible set of mappings between JIS X 0212 and</div><div class='add'>+# Unicode and have no normative status, but still feel that you</div><div class='add'>+# have located an error in the table that requires fixing, you may</div><div class='add'>+# report any such error to errata@unicode.org.</div><div class='add'>+#</div><div class='add'>+#</div><div class='add'>+#	Format:  Three tab-separated columns</div><div class='add'>+#		 Column #1 is the JIS X 0212 code (in hex as 0xXXXX)</div><div class='add'>+#		 Column #2 is the Unicode (in hex as 0xXXXX)</div><div class='add'>+#		 Column #3 the Unicode name (follows a comment sign, '#')</div><div class='add'>+#			The official names for Unicode characters U+4E00</div><div class='add'>+#			to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",</div><div class='add'>+#			where XXXX is the code point.  Including all these</div><div class='add'>+#			names in this file increases its size substantially</div><div class='add'>+#			and needlessly.  The token "&lt;CJK&gt;" is used for the</div><div class='add'>+#			name of these characters.  If necessary, it can be</div><div class='add'>+#			expanded algorithmically by a parser or editor.</div><div class='add'>+#</div><div class='add'>+#	The entries are in JIS X 0212 order</div><div class='add'>+#</div><div class='add'>+#	The following algorithms can be used to change the hex form</div><div class='add'>+#		of JIS 0212 to other standard forms:</div><div class='add'>+#</div><div class='add'>+#		To change hex to EUC form, add 0x8080</div><div class='add'>+#		To change hex to kuten form, first subtract 0x2020.  Then</div><div class='add'>+#			the high and low bytes correspond to the ku and ten of</div><div class='add'>+#			the kuten form.  For example, 0x2121 -&gt; 0x0101 -&gt; 0101;</div><div class='add'>+#			0x6D63 -&gt; 0x4D43 -&gt; 7767</div><div class='add'>+#</div><div class='add'>+#   The kanji mappings are a normative part of ISO/IEC 10646.  The</div><div class='add'>+#       non-kanji mappings are provisional, pending definition of</div><div class='add'>+#       official mappings by Japanese standards bodies</div><div class='add'>+#</div><div class='add'>+#	Any comments or problems, contact &lt;John_Jenkins@taligent.com&gt;</div><div class='add'>+#</div><div class='add'>+#	Notes:</div><div class='add'>+#</div><div class='add'>+#	1. JIS X 0212 apparently unified the following two symbols</div><div class='add'>+#	   into a single character at 0x2922:</div><div class='add'>+#	</div><div class='add'>+#	   LATIN CAPITAL LETTER D WITH STROKE</div><div class='add'>+#	   LATIN CAPITAL LETTER ETH</div><div class='add'>+#</div><div class='add'>+#	   However, JIS X 0212 maintains the distinction between</div><div class='add'>+#	   the lowercase forms of these two elements at 0x2942 and 0x2943.</div><div class='add'>+#	   Given the structre of these JIS encodings, it is clear that</div><div class='add'>+#	   0x2922 and 0x2942 are intended to be a capital/small pair.</div><div class='add'>+#	   Consequently, in the Unicode mapping, 0x2922 is treated as</div><div class='add'>+#	   LATIN CAPITAL LETTER D WITH STROKE.</div><div class='add'>+#	  </div><div class='add'>+0x222F = 0x02D8</div><div class='add'>+0x2230 = 0x02C7</div><div class='add'>+0x2231 = 0x00B8</div><div class='add'>+0x2232 = 0x02D9</div><div class='add'>+0x2233 = 0x02DD</div><div class='add'>+0x2234 = 0x00AF</div><div class='add'>+0x2235 = 0x02DB</div><div class='add'>+0x2236 = 0x02DA</div><div class='add'>+0x2237 = 0x007E</div><div class='add'>+0x2238 = 0x0384</div><div class='add'>+0x2239 = 0x0385</div><div class='add'>+0x2242 = 0x00A1</div><div class='add'>+0x2243 = 0x00A6</div><div class='add'>+0x2244 = 0x00BF</div><div class='add'>+0x226B = 0x00BA</div><div class='add'>+0x226C = 0x00AA</div><div class='add'>+0x226D = 0x00A9</div><div class='add'>+0x226E = 0x00AE</div><div class='add'>+0x226F = 0x2122</div><div class='add'>+0x2270 = 0x00A4</div><div class='add'>+0x2271 = 0x2116</div><div class='add'>+0x2661 = 0x0386</div><div class='add'>+0x2662 = 0x0388</div><div class='add'>+0x2663 = 0x0389</div><div class='add'>+0x2664 = 0x038A</div><div class='add'>+0x2665 = 0x03AA</div><div class='add'>+0x2667 = 0x038C</div><div class='add'>+0x2669 = 0x038E</div><div class='add'>+0x266A = 0x03AB</div><div class='add'>+0x266C = 0x038F</div><div class='add'>+0x2671 = 0x03AC</div><div class='add'>+0x2672 = 0x03AD</div><div class='add'>+0x2673 = 0x03AE</div><div class='add'>+0x2674 = 0x03AF</div><div class='add'>+0x2675 = 0x03CA</div><div class='add'>+0x2676 = 0x0390</div><div class='add'>+0x2677 = 0x03CC</div><div class='add'>+0x2678 = 0x03C2</div><div class='add'>+0x2679 = 0x03CD</div><div class='add'>+0x267A = 0x03CB</div><div class='add'>+0x267B = 0x03B0</div><div class='add'>+0x267C = 0x03CE</div><div class='add'>+0x2742 = 0x0402</div><div class='add'>+0x2743 = 0x0403</div><div class='add'>+0x2744 = 0x0404</div><div class='add'>+0x2745 = 0x0405</div><div class='add'>+0x2746 = 0x0406</div><div class='add'>+0x2747 = 0x0407</div><div class='add'>+0x2748 = 0x0408</div><div class='add'>+0x2749 = 0x0409</div><div class='add'>+0x274A = 0x040A</div><div class='add'>+0x274B = 0x040B</div><div class='add'>+0x274C = 0x040C</div><div class='add'>+0x274D = 0x040E</div><div class='add'>+0x274E = 0x040F</div><div class='add'>+0x2772 = 0x0452</div><div class='add'>+0x2773 = 0x0453</div><div class='add'>+0x2774 = 0x0454</div><div class='add'>+0x2775 = 0x0455</div><div class='add'>+0x2776 = 0x0456</div><div class='add'>+0x2777 = 0x0457</div><div class='add'>+0x2778 = 0x0458</div><div class='add'>+0x2779 = 0x0459</div><div class='add'>+0x277A = 0x045A</div><div class='add'>+0x277B = 0x045B</div><div class='add'>+0x277C = 0x045C</div><div class='add'>+0x277D = 0x045E</div><div class='add'>+0x277E = 0x045F</div><div class='add'>+0x2921 = 0x00C6</div><div class='add'>+0x2922 = 0x0110</div><div class='add'>+0x2924 = 0x0126</div><div class='add'>+0x2926 = 0x0132</div><div class='add'>+0x2928 = 0x0141</div><div class='add'>+0x2929 = 0x013F</div><div class='add'>+0x292B = 0x014A</div><div class='add'>+0x292C = 0x00D8</div><div class='add'>+0x292D = 0x0152</div><div class='add'>+0x292F = 0x0166</div><div class='add'>+0x2930 = 0x00DE</div><div class='add'>+0x2941 = 0x00E6</div><div class='add'>+0x2942 = 0x0111</div><div class='add'>+0x2943 = 0x00F0</div><div class='add'>+0x2944 = 0x0127</div><div class='add'>+0x2945 = 0x0131</div><div class='add'>+0x2946 = 0x0133</div><div class='add'>+0x2947 = 0x0138</div><div class='add'>+0x2948 = 0x0142</div><div class='add'>+0x2949 = 0x0140</div><div class='add'>+0x294A = 0x0149</div><div class='add'>+0x294B = 0x014B</div><div class='add'>+0x294C = 0x00F8</div><div class='add'>+0x294D = 0x0153</div><div class='add'>+0x294E = 0x00DF</div><div class='add'>+0x294F = 0x0167</div><div class='add'>+0x2950 = 0x00FE</div><div class='add'>+0x2A21 = 0x00C1</div><div class='add'>+0x2A22 = 0x00C0</div><div class='add'>+0x2A23 = 0x00C4</div><div class='add'>+0x2A24 = 0x00C2</div><div class='add'>+0x2A25 = 0x0102</div><div class='add'>+0x2A26 = 0x01CD</div><div class='add'>+0x2A27 = 0x0100</div><div class='add'>+0x2A28 = 0x0104</div><div class='add'>+0x2A29 = 0x00C5</div><div class='add'>+0x2A2A = 0x00C3</div><div class='add'>+0x2A2B = 0x0106</div><div class='add'>+0x2A2C = 0x0108</div><div class='add'>+0x2A2D = 0x010C</div><div class='add'>+0x2A2E = 0x00C7</div><div class='add'>+0x2A2F = 0x010A</div><div class='add'>+0x2A30 = 0x010E</div><div class='add'>+0x2A31 = 0x00C9</div><div class='add'>+0x2A32 = 0x00C8</div><div class='add'>+0x2A33 = 0x00CB</div><div class='add'>+0x2A34 = 0x00CA</div><div class='add'>+0x2A35 = 0x011A</div><div class='add'>+0x2A36 = 0x0116</div><div class='add'>+0x2A37 = 0x0112</div><div class='add'>+0x2A38 = 0x0118</div><div class='add'>+0x2A3A = 0x011C</div><div class='add'>+0x2A3B = 0x011E</div><div class='add'>+0x2A3C = 0x0122</div><div class='add'>+0x2A3D = 0x0120</div><div class='add'>+0x2A3E = 0x0124</div><div class='add'>+0x2A3F = 0x00CD</div><div class='add'>+0x2A40 = 0x00CC</div><div class='add'>+0x2A41 = 0x00CF</div><div class='add'>+0x2A42 = 0x00CE</div><div class='add'>+0x2A43 = 0x01CF</div><div class='add'>+0x2A44 = 0x0130</div><div class='add'>+0x2A45 = 0x012A</div><div class='add'>+0x2A46 = 0x012E</div><div class='add'>+0x2A47 = 0x0128</div><div class='add'>+0x2A48 = 0x0134</div><div class='add'>+0x2A49 = 0x0136</div><div class='add'>+0x2A4A = 0x0139</div><div class='add'>+0x2A4B = 0x013D</div><div class='add'>+0x2A4C = 0x013B</div><div class='add'>+0x2A4D = 0x0143</div><div class='add'>+0x2A4E = 0x0147</div><div class='add'>+0x2A4F = 0x0145</div><div class='add'>+0x2A50 = 0x00D1</div><div class='add'>+0x2A51 = 0x00D3</div><div class='add'>+0x2A52 = 0x00D2</div><div class='add'>+0x2A53 = 0x00D6</div><div class='add'>+0x2A54 = 0x00D4</div><div class='add'>+0x2A55 = 0x01D1</div><div class='add'>+0x2A56 = 0x0150</div><div class='add'>+0x2A57 = 0x014C</div><div class='add'>+0x2A58 = 0x00D5</div><div class='add'>+0x2A59 = 0x0154</div><div class='add'>+0x2A5A = 0x0158</div><div class='add'>+0x2A5B = 0x0156</div><div class='add'>+0x2A5C = 0x015A</div><div class='add'>+0x2A5D = 0x015C</div><div class='add'>+0x2A5E = 0x0160</div><div class='add'>+0x2A5F = 0x015E</div><div class='add'>+0x2A60 = 0x0164</div><div class='add'>+0x2A61 = 0x0162</div><div class='add'>+0x2A62 = 0x00DA</div><div class='add'>+0x2A63 = 0x00D9</div><div class='add'>+0x2A64 = 0x00DC</div><div class='add'>+0x2A65 = 0x00DB</div><div class='add'>+0x2A66 = 0x016C</div><div class='add'>+0x2A67 = 0x01D3</div><div class='add'>+0x2A68 = 0x0170</div><div class='add'>+0x2A69 = 0x016A</div><div class='add'>+0x2A6A = 0x0172</div><div class='add'>+0x2A6B = 0x016E</div><div class='add'>+0x2A6C = 0x0168</div><div class='add'>+0x2A6D = 0x01D7</div><div class='add'>+0x2A6E = 0x01DB</div><div class='add'>+0x2A6F = 0x01D9</div><div class='add'>+0x2A70 = 0x01D5</div><div class='add'>+0x2A71 = 0x0174</div><div class='add'>+0x2A72 = 0x00DD</div><div class='add'>+0x2A73 = 0x0178</div><div class='add'>+0x2A74 = 0x0176</div><div class='add'>+0x2A75 = 0x0179</div><div class='add'>+0x2A76 = 0x017D</div><div class='add'>+0x2A77 = 0x017B</div><div class='add'>+0x2B21 = 0x00E1</div><div class='add'>+0x2B22 = 0x00E0</div><div class='add'>+0x2B23 = 0x00E4</div><div class='add'>+0x2B24 = 0x00E2</div><div class='add'>+0x2B25 = 0x0103</div><div class='add'>+0x2B26 = 0x01CE</div><div class='add'>+0x2B27 = 0x0101</div><div class='add'>+0x2B28 = 0x0105</div><div class='add'>+0x2B29 = 0x00E5</div><div class='add'>+0x2B2A = 0x00E3</div><div class='add'>+0x2B2B = 0x0107</div><div class='add'>+0x2B2C = 0x0109</div><div class='add'>+0x2B2D = 0x010D</div><div class='add'>+0x2B2E = 0x00E7</div><div class='add'>+0x2B2F = 0x010B</div><div class='add'>+0x2B30 = 0x010F</div><div class='add'>+0x2B31 = 0x00E9</div><div class='add'>+0x2B32 = 0x00E8</div><div class='add'>+0x2B33 = 0x00EB</div><div class='add'>+0x2B34 = 0x00EA</div><div class='add'>+0x2B35 = 0x011B</div><div class='add'>+0x2B36 = 0x0117</div><div class='add'>+0x2B37 = 0x0113</div><div class='add'>+0x2B38 = 0x0119</div><div class='add'>+0x2B39 = 0x01F5</div><div class='add'>+0x2B3A = 0x011D</div><div class='add'>+0x2B3B = 0x011F</div><div class='add'>+0x2B3D = 0x0121</div><div class='add'>+0x2B3E = 0x0125</div><div class='add'>+0x2B3F = 0x00ED</div><div class='add'>+0x2B40 = 0x00EC</div><div class='add'>+0x2B41 = 0x00EF</div><div class='add'>+0x2B42 = 0x00EE</div><div class='add'>+0x2B43 = 0x01D0</div><div class='add'>+0x2B45 = 0x012B</div><div class='add'>+0x2B46 = 0x012F</div><div class='add'>+0x2B47 = 0x0129</div><div class='add'>+0x2B48 = 0x0135</div><div class='add'>+0x2B49 = 0x0137</div><div class='add'>+0x2B4A = 0x013A</div><div class='add'>+0x2B4B = 0x013E</div><div class='add'>+0x2B4C = 0x013C</div><div class='add'>+0x2B4D = 0x0144</div><div class='add'>+0x2B4E = 0x0148</div><div class='add'>+0x2B4F = 0x0146</div><div class='add'>+0x2B50 = 0x00F1</div><div class='add'>+0x2B51 = 0x00F3</div><div class='add'>+0x2B52 = 0x00F2</div><div class='add'>+0x2B53 = 0x00F6</div><div class='add'>+0x2B54 = 0x00F4</div><div class='add'>+0x2B55 = 0x01D2</div><div class='add'>+0x2B56 = 0x0151</div><div class='add'>+0x2B57 = 0x014D</div><div class='add'>+0x2B58 = 0x00F5</div><div class='add'>+0x2B59 = 0x0155</div><div class='add'>+0x2B5A = 0x0159</div><div class='add'>+0x2B5B = 0x0157</div><div class='add'>+0x2B5C = 0x015B</div><div class='add'>+0x2B5D = 0x015D</div><div class='add'>+0x2B5E = 0x0161</div><div class='add'>+0x2B5F = 0x015F</div><div class='add'>+0x2B60 = 0x0165</div><div class='add'>+0x2B61 = 0x0163</div><div class='add'>+0x2B62 = 0x00FA</div><div class='add'>+0x2B63 = 0x00F9</div><div class='add'>+0x2B64 = 0x00FC</div><div class='add'>+0x2B65 = 0x00FB</div><div class='add'>+0x2B66 = 0x016D</div><div class='add'>+0x2B67 = 0x01D4</div><div class='add'>+0x2B68 = 0x0171</div><div class='add'>+0x2B69 = 0x016B</div><div class='add'>+0x2B6A = 0x0173</div><div class='add'>+0x2B6B = 0x016F</div><div class='add'>+0x2B6C = 0x0169</div><div class='add'>+0x2B6D = 0x01D8</div><div class='add'>+0x2B6E = 0x01DC</div><div class='add'>+0x2B6F = 0x01DA</div><div class='add'>+0x2B70 = 0x01D6</div><div class='add'>+0x2B71 = 0x0175</div><div class='add'>+0x2B72 = 0x00FD</div><div class='add'>+0x2B73 = 0x00FF</div><div class='add'>+0x2B74 = 0x0177</div><div class='add'>+0x2B75 = 0x017A</div><div class='add'>+0x2B76 = 0x017E</div><div class='add'>+0x2B77 = 0x017C</div><div class='add'>+0x3021 = 0x4E02</div><div class='add'>+0x3022 = 0x4E04</div><div class='add'>+0x3023 = 0x4E05</div><div class='add'>+0x3024 = 0x4E0C</div><div class='add'>+0x3025 = 0x4E12</div><div class='add'>+0x3026 = 0x4E1F</div><div class='add'>+0x3027 = 0x4E23</div><div class='add'>+0x3028 = 0x4E24</div><div class='add'>+0x3029 = 0x4E28</div><div class='add'>+0x302A = 0x4E2B</div><div class='add'>+0x302B = 0x4E2E</div><div class='add'>+0x302C = 0x4E2F</div><div class='add'>+0x302D = 0x4E30</div><div class='add'>+0x302E = 0x4E35</div><div class='add'>+0x302F = 0x4E40</div><div class='add'>+0x3030 = 0x4E41</div><div class='add'>+0x3031 = 0x4E44</div><div class='add'>+0x3032 = 0x4E47</div><div class='add'>+0x3033 = 0x4E51</div><div class='add'>+0x3034 = 0x4E5A</div><div class='add'>+0x3035 = 0x4E5C</div><div class='add'>+0x3036 = 0x4E63</div><div class='add'>+0x3037 = 0x4E68</div><div class='add'>+0x3038 = 0x4E69</div><div class='add'>+0x3039 = 0x4E74</div><div class='add'>+0x303A = 0x4E75</div><div class='add'>+0x303B = 0x4E79</div><div class='add'>+0x303C = 0x4E7F</div><div class='add'>+0x303D = 0x4E8D</div><div class='add'>+0x303E = 0x4E96</div><div class='add'>+0x303F = 0x4E97</div><div class='add'>+0x3040 = 0x4E9D</div><div class='add'>+0x3041 = 0x4EAF</div><div class='add'>+0x3042 = 0x4EB9</div><div class='add'>+0x3043 = 0x4EC3</div><div class='add'>+0x3044 = 0x4ED0</div><div class='add'>+0x3045 = 0x4EDA</div><div class='add'>+0x3046 = 0x4EDB</div><div class='add'>+0x3047 = 0x4EE0</div><div class='add'>+0x3048 = 0x4EE1</div><div class='add'>+0x3049 = 0x4EE2</div><div class='add'>+0x304A = 0x4EE8</div><div class='add'>+0x304B = 0x4EEF</div><div class='add'>+0x304C = 0x4EF1</div><div class='add'>+0x304D = 0x4EF3</div><div class='add'>+0x304E = 0x4EF5</div><div class='add'>+0x304F = 0x4EFD</div><div class='add'>+0x3050 = 0x4EFE</div><div class='add'>+0x3051 = 0x4EFF</div><div class='add'>+0x3052 = 0x4F00</div><div class='add'>+0x3053 = 0x4F02</div><div class='add'>+0x3054 = 0x4F03</div><div class='add'>+0x3055 = 0x4F08</div><div class='add'>+0x3056 = 0x4F0B</div><div class='add'>+0x3057 = 0x4F0C</div><div class='add'>+0x3058 = 0x4F12</div><div class='add'>+0x3059 = 0x4F15</div><div class='add'>+0x305A = 0x4F16</div><div class='add'>+0x305B = 0x4F17</div><div class='add'>+0x305C = 0x4F19</div><div class='add'>+0x305D = 0x4F2E</div><div class='add'>+0x305E = 0x4F31</div><div class='add'>+0x305F = 0x4F60</div><div class='add'>+0x3060 = 0x4F33</div><div class='add'>+0x3061 = 0x4F35</div><div class='add'>+0x3062 = 0x4F37</div><div class='add'>+0x3063 = 0x4F39</div><div class='add'>+0x3064 = 0x4F3B</div><div class='add'>+0x3065 = 0x4F3E</div><div class='add'>+0x3066 = 0x4F40</div><div class='add'>+0x3067 = 0x4F42</div><div class='add'>+0x3068 = 0x4F48</div><div class='add'>+0x3069 = 0x4F49</div><div class='add'>+0x306A = 0x4F4B</div><div class='add'>+0x306B = 0x4F4C</div><div class='add'>+0x306C = 0x4F52</div><div class='add'>+0x306D = 0x4F54</div><div class='add'>+0x306E = 0x4F56</div><div class='add'>+0x306F = 0x4F58</div><div class='add'>+0x3070 = 0x4F5F</div><div class='add'>+0x3071 = 0x4F63</div><div class='add'>+0x3072 = 0x4F6A</div><div class='add'>+0x3073 = 0x4F6C</div><div class='add'>+0x3074 = 0x4F6E</div><div class='add'>+0x3075 = 0x4F71</div><div class='add'>+0x3076 = 0x4F77</div><div class='add'>+0x3077 = 0x4F78</div><div class='add'>+0x3078 = 0x4F79</div><div class='add'>+0x3079 = 0x4F7A</div><div class='add'>+0x307A = 0x4F7D</div><div class='add'>+0x307B = 0x4F7E</div><div class='add'>+0x307C = 0x4F81</div><div class='add'>+0x307D = 0x4F82</div><div class='add'>+0x307E = 0x4F84</div><div class='add'>+0x3121 = 0x4F85</div><div class='add'>+0x3122 = 0x4F89</div><div class='add'>+0x3123 = 0x4F8A</div><div class='add'>+0x3124 = 0x4F8C</div><div class='add'>+0x3125 = 0x4F8E</div><div class='add'>+0x3126 = 0x4F90</div><div class='add'>+0x3127 = 0x4F92</div><div class='add'>+0x3128 = 0x4F93</div><div class='add'>+0x3129 = 0x4F94</div><div class='add'>+0x312A = 0x4F97</div><div class='add'>+0x312B = 0x4F99</div><div class='add'>+0x312C = 0x4F9A</div><div class='add'>+0x312D = 0x4F9E</div><div class='add'>+0x312E = 0x4F9F</div><div class='add'>+0x312F = 0x4FB2</div><div class='add'>+0x3130 = 0x4FB7</div><div class='add'>+0x3131 = 0x4FB9</div><div class='add'>+0x3132 = 0x4FBB</div><div class='add'>+0x3133 = 0x4FBC</div><div class='add'>+0x3134 = 0x4FBD</div><div class='add'>+0x3135 = 0x4FBE</div><div class='add'>+0x3136 = 0x4FC0</div><div class='add'>+0x3137 = 0x4FC1</div><div class='add'>+0x3138 = 0x4FC5</div><div class='add'>+0x3139 = 0x4FC6</div><div class='add'>+0x313A = 0x4FC8</div><div class='add'>+0x313B = 0x4FC9</div><div class='add'>+0x313C = 0x4FCB</div><div class='add'>+0x313D = 0x4FCC</div><div class='add'>+0x313E = 0x4FCD</div><div class='add'>+0x313F = 0x4FCF</div><div class='add'>+0x3140 = 0x4FD2</div><div class='add'>+0x3141 = 0x4FDC</div><div class='add'>+0x3142 = 0x4FE0</div><div class='add'>+0x3143 = 0x4FE2</div><div class='add'>+0x3144 = 0x4FF0</div><div class='add'>+0x3145 = 0x4FF2</div><div class='add'>+0x3146 = 0x4FFC</div><div class='add'>+0x3147 = 0x4FFD</div><div class='add'>+0x3148 = 0x4FFF</div><div class='add'>+0x3149 = 0x5000</div><div class='add'>+0x314A = 0x5001</div><div class='add'>+0x314B = 0x5004</div><div class='add'>+0x314C = 0x5007</div><div class='add'>+0x314D = 0x500A</div><div class='add'>+0x314E = 0x500C</div><div class='add'>+0x314F = 0x500E</div><div class='add'>+0x3150 = 0x5010</div><div class='add'>+0x3151 = 0x5013</div><div class='add'>+0x3152 = 0x5017</div><div class='add'>+0x3153 = 0x5018</div><div class='add'>+0x3154 = 0x501B</div><div class='add'>+0x3155 = 0x501C</div><div class='add'>+0x3156 = 0x501D</div><div class='add'>+0x3157 = 0x501E</div><div class='add'>+0x3158 = 0x5022</div><div class='add'>+0x3159 = 0x5027</div><div class='add'>+0x315A = 0x502E</div><div class='add'>+0x315B = 0x5030</div><div class='add'>+0x315C = 0x5032</div><div class='add'>+0x315D = 0x5033</div><div class='add'>+0x315E = 0x5035</div><div class='add'>+0x315F = 0x5040</div><div class='add'>+0x3160 = 0x5041</div><div class='add'>+0x3161 = 0x5042</div><div class='add'>+0x3162 = 0x5045</div><div class='add'>+0x3163 = 0x5046</div><div class='add'>+0x3164 = 0x504A</div><div class='add'>+0x3165 = 0x504C</div><div class='add'>+0x3166 = 0x504E</div><div class='add'>+0x3167 = 0x5051</div><div class='add'>+0x3168 = 0x5052</div><div class='add'>+0x3169 = 0x5053</div><div class='add'>+0x316A = 0x5057</div><div class='add'>+0x316B = 0x5059</div><div class='add'>+0x316C = 0x505F</div><div class='add'>+0x316D = 0x5060</div><div class='add'>+0x316E = 0x5062</div><div class='add'>+0x316F = 0x5063</div><div class='add'>+0x3170 = 0x5066</div><div class='add'>+0x3171 = 0x5067</div><div class='add'>+0x3172 = 0x506A</div><div class='add'>+0x3173 = 0x506D</div><div class='add'>+0x3174 = 0x5070</div><div class='add'>+0x3175 = 0x5071</div><div class='add'>+0x3176 = 0x503B</div><div class='add'>+0x3177 = 0x5081</div><div class='add'>+0x3178 = 0x5083</div><div class='add'>+0x3179 = 0x5084</div><div class='add'>+0x317A = 0x5086</div><div class='add'>+0x317B = 0x508A</div><div class='add'>+0x317C = 0x508E</div><div class='add'>+0x317D = 0x508F</div><div class='add'>+0x317E = 0x5090</div><div class='add'>+0x3221 = 0x5092</div><div class='add'>+0x3222 = 0x5093</div><div class='add'>+0x3223 = 0x5094</div><div class='add'>+0x3224 = 0x5096</div><div class='add'>+0x3225 = 0x509B</div><div class='add'>+0x3226 = 0x509C</div><div class='add'>+0x3227 = 0x509E</div><div class='add'>+0x3228 = 0x509F</div><div class='add'>+0x3229 = 0x50A0</div><div class='add'>+0x322A = 0x50A1</div><div class='add'>+0x322B = 0x50A2</div><div class='add'>+0x322C = 0x50AA</div><div class='add'>+0x322D = 0x50AF</div><div class='add'>+0x322E = 0x50B0</div><div class='add'>+0x322F = 0x50B9</div><div class='add'>+0x3230 = 0x50BA</div><div class='add'>+0x3231 = 0x50BD</div><div class='add'>+0x3232 = 0x50C0</div><div class='add'>+0x3233 = 0x50C3</div><div class='add'>+0x3234 = 0x50C4</div><div class='add'>+0x3235 = 0x50C7</div><div class='add'>+0x3236 = 0x50CC</div><div class='add'>+0x3237 = 0x50CE</div><div class='add'>+0x3238 = 0x50D0</div><div class='add'>+0x3239 = 0x50D3</div><div class='add'>+0x323A = 0x50D4</div><div class='add'>+0x323B = 0x50D8</div><div class='add'>+0x323C = 0x50DC</div><div class='add'>+0x323D = 0x50DD</div><div class='add'>+0x323E = 0x50DF</div><div class='add'>+0x323F = 0x50E2</div><div class='add'>+0x3240 = 0x50E4</div><div class='add'>+0x3241 = 0x50E6</div><div class='add'>+0x3242 = 0x50E8</div><div class='add'>+0x3243 = 0x50E9</div><div class='add'>+0x3244 = 0x50EF</div><div class='add'>+0x3245 = 0x50F1</div><div class='add'>+0x3246 = 0x50F6</div><div class='add'>+0x3247 = 0x50FA</div><div class='add'>+0x3248 = 0x50FE</div><div class='add'>+0x3249 = 0x5103</div><div class='add'>+0x324A = 0x5106</div><div class='add'>+0x324B = 0x5107</div><div class='add'>+0x324C = 0x5108</div><div class='add'>+0x324D = 0x510B</div><div class='add'>+0x324E = 0x510C</div><div class='add'>+0x324F = 0x510D</div><div class='add'>+0x3250 = 0x510E</div><div class='add'>+0x3251 = 0x50F2</div><div class='add'>+0x3252 = 0x5110</div><div class='add'>+0x3253 = 0x5117</div><div class='add'>+0x3254 = 0x5119</div><div class='add'>+0x3255 = 0x511B</div><div class='add'>+0x3256 = 0x511C</div><div class='add'>+0x3257 = 0x511D</div><div class='add'>+0x3258 = 0x511E</div><div class='add'>+0x3259 = 0x5123</div><div class='add'>+0x325A = 0x5127</div><div class='add'>+0x325B = 0x5128</div><div class='add'>+0x325C = 0x512C</div><div class='add'>+0x325D = 0x512D</div><div class='add'>+0x325E = 0x512F</div><div class='add'>+0x325F = 0x5131</div><div class='add'>+0x3260 = 0x5133</div><div class='add'>+0x3261 = 0x5134</div><div class='add'>+0x3262 = 0x5135</div><div class='add'>+0x3263 = 0x5138</div><div class='add'>+0x3264 = 0x5139</div><div class='add'>+0x3265 = 0x5142</div><div class='add'>+0x3266 = 0x514A</div><div class='add'>+0x3267 = 0x514F</div><div class='add'>+0x3268 = 0x5153</div><div class='add'>+0x3269 = 0x5155</div><div class='add'>+0x326A = 0x5157</div><div class='add'>+0x326B = 0x5158</div><div class='add'>+0x326C = 0x515F</div><div class='add'>+0x326D = 0x5164</div><div class='add'>+0x326E = 0x5166</div><div class='add'>+0x326F = 0x517E</div><div class='add'>+0x3270 = 0x5183</div><div class='add'>+0x3271 = 0x5184</div><div class='add'>+0x3272 = 0x518B</div><div class='add'>+0x3273 = 0x518E</div><div class='add'>+0x3274 = 0x5198</div><div class='add'>+0x3275 = 0x519D</div><div class='add'>+0x3276 = 0x51A1</div><div class='add'>+0x3277 = 0x51A3</div><div class='add'>+0x3278 = 0x51AD</div><div class='add'>+0x3279 = 0x51B8</div><div class='add'>+0x327A = 0x51BA</div><div class='add'>+0x327B = 0x51BC</div><div class='add'>+0x327C = 0x51BE</div><div class='add'>+0x327D = 0x51BF</div><div class='add'>+0x327E = 0x51C2</div><div class='add'>+0x3321 = 0x51C8</div><div class='add'>+0x3322 = 0x51CF</div><div class='add'>+0x3323 = 0x51D1</div><div class='add'>+0x3324 = 0x51D2</div><div class='add'>+0x3325 = 0x51D3</div><div class='add'>+0x3326 = 0x51D5</div><div class='add'>+0x3327 = 0x51D8</div><div class='add'>+0x3328 = 0x51DE</div><div class='add'>+0x3329 = 0x51E2</div><div class='add'>+0x332A = 0x51E5</div><div class='add'>+0x332B = 0x51EE</div><div class='add'>+0x332C = 0x51F2</div><div class='add'>+0x332D = 0x51F3</div><div class='add'>+0x332E = 0x51F4</div><div class='add'>+0x332F = 0x51F7</div><div class='add'>+0x3330 = 0x5201</div><div class='add'>+0x3331 = 0x5202</div><div class='add'>+0x3332 = 0x5205</div><div class='add'>+0x3333 = 0x5212</div><div class='add'>+0x3334 = 0x5213</div><div class='add'>+0x3335 = 0x5215</div><div class='add'>+0x3336 = 0x5216</div><div class='add'>+0x3337 = 0x5218</div><div class='add'>+0x3338 = 0x5222</div><div class='add'>+0x3339 = 0x5228</div><div class='add'>+0x333A = 0x5231</div><div class='add'>+0x333B = 0x5232</div><div class='add'>+0x333C = 0x5235</div><div class='add'>+0x333D = 0x523C</div><div class='add'>+0x333E = 0x5245</div><div class='add'>+0x333F = 0x5249</div><div class='add'>+0x3340 = 0x5255</div><div class='add'>+0x3341 = 0x5257</div><div class='add'>+0x3342 = 0x5258</div><div class='add'>+0x3343 = 0x525A</div><div class='add'>+0x3344 = 0x525C</div><div class='add'>+0x3345 = 0x525F</div><div class='add'>+0x3346 = 0x5260</div><div class='add'>+0x3347 = 0x5261</div><div class='add'>+0x3348 = 0x5266</div><div class='add'>+0x3349 = 0x526E</div><div class='add'>+0x334A = 0x5277</div><div class='add'>+0x334B = 0x5278</div><div class='add'>+0x334C = 0x5279</div><div class='add'>+0x334D = 0x5280</div><div class='add'>+0x334E = 0x5282</div><div class='add'>+0x334F = 0x5285</div><div class='add'>+0x3350 = 0x528A</div><div class='add'>+0x3351 = 0x528C</div><div class='add'>+0x3352 = 0x5293</div><div class='add'>+0x3353 = 0x5295</div><div class='add'>+0x3354 = 0x5296</div><div class='add'>+0x3355 = 0x5297</div><div class='add'>+0x3356 = 0x5298</div><div class='add'>+0x3357 = 0x529A</div><div class='add'>+0x3358 = 0x529C</div><div class='add'>+0x3359 = 0x52A4</div><div class='add'>+0x335A = 0x52A5</div><div class='add'>+0x335B = 0x52A6</div><div class='add'>+0x335C = 0x52A7</div><div class='add'>+0x335D = 0x52AF</div><div class='add'>+0x335E = 0x52B0</div><div class='add'>+0x335F = 0x52B6</div><div class='add'>+0x3360 = 0x52B7</div><div class='add'>+0x3361 = 0x52B8</div><div class='add'>+0x3362 = 0x52BA</div><div class='add'>+0x3363 = 0x52BB</div><div class='add'>+0x3364 = 0x52BD</div><div class='add'>+0x3365 = 0x52C0</div><div class='add'>+0x3366 = 0x52C4</div><div class='add'>+0x3367 = 0x52C6</div><div class='add'>+0x3368 = 0x52C8</div><div class='add'>+0x3369 = 0x52CC</div><div class='add'>+0x336A = 0x52CF</div><div class='add'>+0x336B = 0x52D1</div><div class='add'>+0x336C = 0x52D4</div><div class='add'>+0x336D = 0x52D6</div><div class='add'>+0x336E = 0x52DB</div><div class='add'>+0x336F = 0x52DC</div><div class='add'>+0x3370 = 0x52E1</div><div class='add'>+0x3371 = 0x52E5</div><div class='add'>+0x3372 = 0x52E8</div><div class='add'>+0x3373 = 0x52E9</div><div class='add'>+0x3374 = 0x52EA</div><div class='add'>+0x3375 = 0x52EC</div><div class='add'>+0x3376 = 0x52F0</div><div class='add'>+0x3377 = 0x52F1</div><div class='add'>+0x3378 = 0x52F4</div><div class='add'>+0x3379 = 0x52F6</div><div class='add'>+0x337A = 0x52F7</div><div class='add'>+0x337B = 0x5300</div><div class='add'>+0x337C = 0x5303</div><div class='add'>+0x337D = 0x530A</div><div class='add'>+0x337E = 0x530B</div><div class='add'>+0x3421 = 0x530C</div><div class='add'>+0x3422 = 0x5311</div><div class='add'>+0x3423 = 0x5313</div><div class='add'>+0x3424 = 0x5318</div><div class='add'>+0x3425 = 0x531B</div><div class='add'>+0x3426 = 0x531C</div><div class='add'>+0x3427 = 0x531E</div><div class='add'>+0x3428 = 0x531F</div><div class='add'>+0x3429 = 0x5325</div><div class='add'>+0x342A = 0x5327</div><div class='add'>+0x342B = 0x5328</div><div class='add'>+0x342C = 0x5329</div><div class='add'>+0x342D = 0x532B</div><div class='add'>+0x342E = 0x532C</div><div class='add'>+0x342F = 0x532D</div><div class='add'>+0x3430 = 0x5330</div><div class='add'>+0x3431 = 0x5332</div><div class='add'>+0x3432 = 0x5335</div><div class='add'>+0x3433 = 0x533C</div><div class='add'>+0x3434 = 0x533D</div><div class='add'>+0x3435 = 0x533E</div><div class='add'>+0x3436 = 0x5342</div><div class='add'>+0x3437 = 0x534C</div><div class='add'>+0x3438 = 0x534B</div><div class='add'>+0x3439 = 0x5359</div><div class='add'>+0x343A = 0x535B</div><div class='add'>+0x343B = 0x5361</div><div class='add'>+0x343C = 0x5363</div><div class='add'>+0x343D = 0x5365</div><div class='add'>+0x343E = 0x536C</div><div class='add'>+0x343F = 0x536D</div><div class='add'>+0x3440 = 0x5372</div><div class='add'>+0x3441 = 0x5379</div><div class='add'>+0x3442 = 0x537E</div><div class='add'>+0x3443 = 0x5383</div><div class='add'>+0x3444 = 0x5387</div><div class='add'>+0x3445 = 0x5388</div><div class='add'>+0x3446 = 0x538E</div><div class='add'>+0x3447 = 0x5393</div><div class='add'>+0x3448 = 0x5394</div><div class='add'>+0x3449 = 0x5399</div><div class='add'>+0x344A = 0x539D</div><div class='add'>+0x344B = 0x53A1</div><div class='add'>+0x344C = 0x53A4</div><div class='add'>+0x344D = 0x53AA</div><div class='add'>+0x344E = 0x53AB</div><div class='add'>+0x344F = 0x53AF</div><div class='add'>+0x3450 = 0x53B2</div><div class='add'>+0x3451 = 0x53B4</div><div class='add'>+0x3452 = 0x53B5</div><div class='add'>+0x3453 = 0x53B7</div><div class='add'>+0x3454 = 0x53B8</div><div class='add'>+0x3455 = 0x53BA</div><div class='add'>+0x3456 = 0x53BD</div><div class='add'>+0x3457 = 0x53C0</div><div class='add'>+0x3458 = 0x53C5</div><div class='add'>+0x3459 = 0x53CF</div><div class='add'>+0x345A = 0x53D2</div><div class='add'>+0x345B = 0x53D3</div><div class='add'>+0x345C = 0x53D5</div><div class='add'>+0x345D = 0x53DA</div><div class='add'>+0x345E = 0x53DD</div><div class='add'>+0x345F = 0x53DE</div><div class='add'>+0x3460 = 0x53E0</div><div class='add'>+0x3461 = 0x53E6</div><div class='add'>+0x3462 = 0x53E7</div><div class='add'>+0x3463 = 0x53F5</div><div class='add'>+0x3464 = 0x5402</div><div class='add'>+0x3465 = 0x5413</div><div class='add'>+0x3466 = 0x541A</div><div class='add'>+0x3467 = 0x5421</div><div class='add'>+0x3468 = 0x5427</div><div class='add'>+0x3469 = 0x5428</div><div class='add'>+0x346A = 0x542A</div><div class='add'>+0x346B = 0x542F</div><div class='add'>+0x346C = 0x5431</div><div class='add'>+0x346D = 0x5434</div><div class='add'>+0x346E = 0x5435</div><div class='add'>+0x346F = 0x5443</div><div class='add'>+0x3470 = 0x5444</div><div class='add'>+0x3471 = 0x5447</div><div class='add'>+0x3472 = 0x544D</div><div class='add'>+0x3473 = 0x544F</div><div class='add'>+0x3474 = 0x545E</div><div class='add'>+0x3475 = 0x5462</div><div class='add'>+0x3476 = 0x5464</div><div class='add'>+0x3477 = 0x5466</div><div class='add'>+0x3478 = 0x5467</div><div class='add'>+0x3479 = 0x5469</div><div class='add'>+0x347A = 0x546B</div><div class='add'>+0x347B = 0x546D</div><div class='add'>+0x347C = 0x546E</div><div class='add'>+0x347D = 0x5474</div><div class='add'>+0x347E = 0x547F</div><div class='add'>+0x3521 = 0x5481</div><div class='add'>+0x3522 = 0x5483</div><div class='add'>+0x3523 = 0x5485</div><div class='add'>+0x3524 = 0x5488</div><div class='add'>+0x3525 = 0x5489</div><div class='add'>+0x3526 = 0x548D</div><div class='add'>+0x3527 = 0x5491</div><div class='add'>+0x3528 = 0x5495</div><div class='add'>+0x3529 = 0x5496</div><div class='add'>+0x352A = 0x549C</div><div class='add'>+0x352B = 0x549F</div><div class='add'>+0x352C = 0x54A1</div><div class='add'>+0x352D = 0x54A6</div><div class='add'>+0x352E = 0x54A7</div><div class='add'>+0x352F = 0x54A9</div><div class='add'>+0x3530 = 0x54AA</div><div class='add'>+0x3531 = 0x54AD</div><div class='add'>+0x3532 = 0x54AE</div><div class='add'>+0x3533 = 0x54B1</div><div class='add'>+0x3534 = 0x54B7</div><div class='add'>+0x3535 = 0x54B9</div><div class='add'>+0x3536 = 0x54BA</div><div class='add'>+0x3537 = 0x54BB</div><div class='add'>+0x3538 = 0x54BF</div><div class='add'>+0x3539 = 0x54C6</div><div class='add'>+0x353A = 0x54CA</div><div class='add'>+0x353B = 0x54CD</div><div class='add'>+0x353C = 0x54CE</div><div class='add'>+0x353D = 0x54E0</div><div class='add'>+0x353E = 0x54EA</div><div class='add'>+0x353F = 0x54EC</div><div class='add'>+0x3540 = 0x54EF</div><div class='add'>+0x3541 = 0x54F6</div><div class='add'>+0x3542 = 0x54FC</div><div class='add'>+0x3543 = 0x54FE</div><div class='add'>+0x3544 = 0x54FF</div><div class='add'>+0x3545 = 0x5500</div><div class='add'>+0x3546 = 0x5501</div><div class='add'>+0x3547 = 0x5505</div><div class='add'>+0x3548 = 0x5508</div><div class='add'>+0x3549 = 0x5509</div><div class='add'>+0x354A = 0x550C</div><div class='add'>+0x354B = 0x550D</div><div class='add'>+0x354C = 0x550E</div><div class='add'>+0x354D = 0x5515</div><div class='add'>+0x354E = 0x552A</div><div class='add'>+0x354F = 0x552B</div><div class='add'>+0x3550 = 0x5532</div><div class='add'>+0x3551 = 0x5535</div><div class='add'>+0x3552 = 0x5536</div><div class='add'>+0x3553 = 0x553B</div><div class='add'>+0x3554 = 0x553C</div><div class='add'>+0x3555 = 0x553D</div><div class='add'>+0x3556 = 0x5541</div><div class='add'>+0x3557 = 0x5547</div><div class='add'>+0x3558 = 0x5549</div><div class='add'>+0x3559 = 0x554A</div><div class='add'>+0x355A = 0x554D</div><div class='add'>+0x355B = 0x5550</div><div class='add'>+0x355C = 0x5551</div><div class='add'>+0x355D = 0x5558</div><div class='add'>+0x355E = 0x555A</div><div class='add'>+0x355F = 0x555B</div><div class='add'>+0x3560 = 0x555E</div><div class='add'>+0x3561 = 0x5560</div><div class='add'>+0x3562 = 0x5561</div><div class='add'>+0x3563 = 0x5564</div><div class='add'>+0x3564 = 0x5566</div><div class='add'>+0x3565 = 0x557F</div><div class='add'>+0x3566 = 0x5581</div><div class='add'>+0x3567 = 0x5582</div><div class='add'>+0x3568 = 0x5586</div><div class='add'>+0x3569 = 0x5588</div><div class='add'>+0x356A = 0x558E</div><div class='add'>+0x356B = 0x558F</div><div class='add'>+0x356C = 0x5591</div><div class='add'>+0x356D = 0x5592</div><div class='add'>+0x356E = 0x5593</div><div class='add'>+0x356F = 0x5594</div><div class='add'>+0x3570 = 0x5597</div><div class='add'>+0x3571 = 0x55A3</div><div class='add'>+0x3572 = 0x55A4</div><div class='add'>+0x3573 = 0x55AD</div><div class='add'>+0x3574 = 0x55B2</div><div class='add'>+0x3575 = 0x55BF</div><div class='add'>+0x3576 = 0x55C1</div><div class='add'>+0x3577 = 0x55C3</div><div class='add'>+0x3578 = 0x55C6</div><div class='add'>+0x3579 = 0x55C9</div><div class='add'>+0x357A = 0x55CB</div><div class='add'>+0x357B = 0x55CC</div><div class='add'>+0x357C = 0x55CE</div><div class='add'>+0x357D = 0x55D1</div><div class='add'>+0x357E = 0x55D2</div><div class='add'>+0x3621 = 0x55D3</div><div class='add'>+0x3622 = 0x55D7</div><div class='add'>+0x3623 = 0x55D8</div><div class='add'>+0x3624 = 0x55DB</div><div class='add'>+0x3625 = 0x55DE</div><div class='add'>+0x3626 = 0x55E2</div><div class='add'>+0x3627 = 0x55E9</div><div class='add'>+0x3628 = 0x55F6</div><div class='add'>+0x3629 = 0x55FF</div><div class='add'>+0x362A = 0x5605</div><div class='add'>+0x362B = 0x5608</div><div class='add'>+0x362C = 0x560A</div><div class='add'>+0x362D = 0x560D</div><div class='add'>+0x362E = 0x560E</div><div class='add'>+0x362F = 0x560F</div><div class='add'>+0x3630 = 0x5610</div><div class='add'>+0x3631 = 0x5611</div><div class='add'>+0x3632 = 0x5612</div><div class='add'>+0x3633 = 0x5619</div><div class='add'>+0x3634 = 0x562C</div><div class='add'>+0x3635 = 0x5630</div><div class='add'>+0x3636 = 0x5633</div><div class='add'>+0x3637 = 0x5635</div><div class='add'>+0x3638 = 0x5637</div><div class='add'>+0x3639 = 0x5639</div><div class='add'>+0x363A = 0x563B</div><div class='add'>+0x363B = 0x563C</div><div class='add'>+0x363C = 0x563D</div><div class='add'>+0x363D = 0x563F</div><div class='add'>+0x363E = 0x5640</div><div class='add'>+0x363F = 0x5641</div><div class='add'>+0x3640 = 0x5643</div><div class='add'>+0x3641 = 0x5644</div><div class='add'>+0x3642 = 0x5646</div><div class='add'>+0x3643 = 0x5649</div><div class='add'>+0x3644 = 0x564B</div><div class='add'>+0x3645 = 0x564D</div><div class='add'>+0x3646 = 0x564F</div><div class='add'>+0x3647 = 0x5654</div><div class='add'>+0x3648 = 0x565E</div><div class='add'>+0x3649 = 0x5660</div><div class='add'>+0x364A = 0x5661</div><div class='add'>+0x364B = 0x5662</div><div class='add'>+0x364C = 0x5663</div><div class='add'>+0x364D = 0x5666</div><div class='add'>+0x364E = 0x5669</div><div class='add'>+0x364F = 0x566D</div><div class='add'>+0x3650 = 0x566F</div><div class='add'>+0x3651 = 0x5671</div><div class='add'>+0x3652 = 0x5672</div><div class='add'>+0x3653 = 0x5675</div><div class='add'>+0x3654 = 0x5684</div><div class='add'>+0x3655 = 0x5685</div><div class='add'>+0x3656 = 0x5688</div><div class='add'>+0x3657 = 0x568B</div><div class='add'>+0x3658 = 0x568C</div><div class='add'>+0x3659 = 0x5695</div><div class='add'>+0x365A = 0x5699</div><div class='add'>+0x365B = 0x569A</div><div class='add'>+0x365C = 0x569D</div><div class='add'>+0x365D = 0x569E</div><div class='add'>+0x365E = 0x569F</div><div class='add'>+0x365F = 0x56A6</div><div class='add'>+0x3660 = 0x56A7</div><div class='add'>+0x3661 = 0x56A8</div><div class='add'>+0x3662 = 0x56A9</div><div class='add'>+0x3663 = 0x56AB</div><div class='add'>+0x3664 = 0x56AC</div><div class='add'>+0x3665 = 0x56AD</div><div class='add'>+0x3666 = 0x56B1</div><div class='add'>+0x3667 = 0x56B3</div><div class='add'>+0x3668 = 0x56B7</div><div class='add'>+0x3669 = 0x56BE</div><div class='add'>+0x366A = 0x56C5</div><div class='add'>+0x366B = 0x56C9</div><div class='add'>+0x366C = 0x56CA</div><div class='add'>+0x366D = 0x56CB</div><div class='add'>+0x366E = 0x56CF</div><div class='add'>+0x366F = 0x56D0</div><div class='add'>+0x3670 = 0x56CC</div><div class='add'>+0x3671 = 0x56CD</div><div class='add'>+0x3672 = 0x56D9</div><div class='add'>+0x3673 = 0x56DC</div><div class='add'>+0x3674 = 0x56DD</div><div class='add'>+0x3675 = 0x56DF</div><div class='add'>+0x3676 = 0x56E1</div><div class='add'>+0x3677 = 0x56E4</div><div class='add'>+0x3678 = 0x56E5</div><div class='add'>+0x3679 = 0x56E6</div><div class='add'>+0x367A = 0x56E7</div><div class='add'>+0x367B = 0x56E8</div><div class='add'>+0x367C = 0x56F1</div><div class='add'>+0x367D = 0x56EB</div><div class='add'>+0x367E = 0x56ED</div><div class='add'>+0x3721 = 0x56F6</div><div class='add'>+0x3722 = 0x56F7</div><div class='add'>+0x3723 = 0x5701</div><div class='add'>+0x3724 = 0x5702</div><div class='add'>+0x3725 = 0x5707</div><div class='add'>+0x3726 = 0x570A</div><div class='add'>+0x3727 = 0x570C</div><div class='add'>+0x3728 = 0x5711</div><div class='add'>+0x3729 = 0x5715</div><div class='add'>+0x372A = 0x571A</div><div class='add'>+0x372B = 0x571B</div><div class='add'>+0x372C = 0x571D</div><div class='add'>+0x372D = 0x5720</div><div class='add'>+0x372E = 0x5722</div><div class='add'>+0x372F = 0x5723</div><div class='add'>+0x3730 = 0x5724</div><div class='add'>+0x3731 = 0x5725</div><div class='add'>+0x3732 = 0x5729</div><div class='add'>+0x3733 = 0x572A</div><div class='add'>+0x3734 = 0x572C</div><div class='add'>+0x3735 = 0x572E</div><div class='add'>+0x3736 = 0x572F</div><div class='add'>+0x3737 = 0x5733</div><div class='add'>+0x3738 = 0x5734</div><div class='add'>+0x3739 = 0x573D</div><div class='add'>+0x373A = 0x573E</div><div class='add'>+0x373B = 0x573F</div><div class='add'>+0x373C = 0x5745</div><div class='add'>+0x373D = 0x5746</div><div class='add'>+0x373E = 0x574C</div><div class='add'>+0x373F = 0x574D</div><div class='add'>+0x3740 = 0x5752</div><div class='add'>+0x3741 = 0x5762</div><div class='add'>+0x3742 = 0x5765</div><div class='add'>+0x3743 = 0x5767</div><div class='add'>+0x3744 = 0x5768</div><div class='add'>+0x3745 = 0x576B</div><div class='add'>+0x3746 = 0x576D</div><div class='add'>+0x3747 = 0x576E</div><div class='add'>+0x3748 = 0x576F</div><div class='add'>+0x3749 = 0x5770</div><div class='add'>+0x374A = 0x5771</div><div class='add'>+0x374B = 0x5773</div><div class='add'>+0x374C = 0x5774</div><div class='add'>+0x374D = 0x5775</div><div class='add'>+0x374E = 0x5777</div><div class='add'>+0x374F = 0x5779</div><div class='add'>+0x3750 = 0x577A</div><div class='add'>+0x3751 = 0x577B</div><div class='add'>+0x3752 = 0x577C</div><div class='add'>+0x3753 = 0x577E</div><div class='add'>+0x3754 = 0x5781</div><div class='add'>+0x3755 = 0x5783</div><div class='add'>+0x3756 = 0x578C</div><div class='add'>+0x3757 = 0x5794</div><div class='add'>+0x3758 = 0x5797</div><div class='add'>+0x3759 = 0x5799</div><div class='add'>+0x375A = 0x579A</div><div class='add'>+0x375B = 0x579C</div><div class='add'>+0x375C = 0x579D</div><div class='add'>+0x375D = 0x579E</div><div class='add'>+0x375E = 0x579F</div><div class='add'>+0x375F = 0x57A1</div><div class='add'>+0x3760 = 0x5795</div><div class='add'>+0x3761 = 0x57A7</div><div class='add'>+0x3762 = 0x57A8</div><div class='add'>+0x3763 = 0x57A9</div><div class='add'>+0x3764 = 0x57AC</div><div class='add'>+0x3765 = 0x57B8</div><div class='add'>+0x3766 = 0x57BD</div><div class='add'>+0x3767 = 0x57C7</div><div class='add'>+0x3768 = 0x57C8</div><div class='add'>+0x3769 = 0x57CC</div><div class='add'>+0x376A = 0x57CF</div><div class='add'>+0x376B = 0x57D5</div><div class='add'>+0x376C = 0x57DD</div><div class='add'>+0x376D = 0x57DE</div><div class='add'>+0x376E = 0x57E4</div><div class='add'>+0x376F = 0x57E6</div><div class='add'>+0x3770 = 0x57E7</div><div class='add'>+0x3771 = 0x57E9</div><div class='add'>+0x3772 = 0x57ED</div><div class='add'>+0x3773 = 0x57F0</div><div class='add'>+0x3774 = 0x57F5</div><div class='add'>+0x3775 = 0x57F6</div><div class='add'>+0x3776 = 0x57F8</div><div class='add'>+0x3777 = 0x57FD</div><div class='add'>+0x3778 = 0x57FE</div><div class='add'>+0x3779 = 0x57FF</div><div class='add'>+0x377A = 0x5803</div><div class='add'>+0x377B = 0x5804</div><div class='add'>+0x377C = 0x5808</div><div class='add'>+0x377D = 0x5809</div><div class='add'>+0x377E = 0x57E1</div><div class='add'>+0x3821 = 0x580C</div><div class='add'>+0x3822 = 0x580D</div><div class='add'>+0x3823 = 0x581B</div><div class='add'>+0x3824 = 0x581E</div><div class='add'>+0x3825 = 0x581F</div><div class='add'>+0x3826 = 0x5820</div><div class='add'>+0x3827 = 0x5826</div><div class='add'>+0x3828 = 0x5827</div><div class='add'>+0x3829 = 0x582D</div><div class='add'>+0x382A = 0x5832</div><div class='add'>+0x382B = 0x5839</div><div class='add'>+0x382C = 0x583F</div><div class='add'>+0x382D = 0x5849</div><div class='add'>+0x382E = 0x584C</div><div class='add'>+0x382F = 0x584D</div><div class='add'>+0x3830 = 0x584F</div><div class='add'>+0x3831 = 0x5850</div><div class='add'>+0x3832 = 0x5855</div><div class='add'>+0x3833 = 0x585F</div><div class='add'>+0x3834 = 0x5861</div><div class='add'>+0x3835 = 0x5864</div><div class='add'>+0x3836 = 0x5867</div><div class='add'>+0x3837 = 0x5868</div><div class='add'>+0x3838 = 0x5878</div><div class='add'>+0x3839 = 0x587C</div><div class='add'>+0x383A = 0x587F</div><div class='add'>+0x383B = 0x5880</div><div class='add'>+0x383C = 0x5881</div><div class='add'>+0x383D = 0x5887</div><div class='add'>+0x383E = 0x5888</div><div class='add'>+0x383F = 0x5889</div><div class='add'>+0x3840 = 0x588A</div><div class='add'>+0x3841 = 0x588C</div><div class='add'>+0x3842 = 0x588D</div><div class='add'>+0x3843 = 0x588F</div><div class='add'>+0x3844 = 0x5890</div><div class='add'>+0x3845 = 0x5894</div><div class='add'>+0x3846 = 0x5896</div><div class='add'>+0x3847 = 0x589D</div><div class='add'>+0x3848 = 0x58A0</div><div class='add'>+0x3849 = 0x58A1</div><div class='add'>+0x384A = 0x58A2</div><div class='add'>+0x384B = 0x58A6</div><div class='add'>+0x384C = 0x58A9</div><div class='add'>+0x384D = 0x58B1</div><div class='add'>+0x384E = 0x58B2</div><div class='add'>+0x384F = 0x58C4</div><div class='add'>+0x3850 = 0x58BC</div><div class='add'>+0x3851 = 0x58C2</div><div class='add'>+0x3852 = 0x58C8</div><div class='add'>+0x3853 = 0x58CD</div><div class='add'>+0x3854 = 0x58CE</div><div class='add'>+0x3855 = 0x58D0</div><div class='add'>+0x3856 = 0x58D2</div><div class='add'>+0x3857 = 0x58D4</div><div class='add'>+0x3858 = 0x58D6</div><div class='add'>+0x3859 = 0x58DA</div><div class='add'>+0x385A = 0x58DD</div><div class='add'>+0x385B = 0x58E1</div><div class='add'>+0x385C = 0x58E2</div><div class='add'>+0x385D = 0x58E9</div><div class='add'>+0x385E = 0x58F3</div><div class='add'>+0x385F = 0x5905</div><div class='add'>+0x3860 = 0x5906</div><div class='add'>+0x3861 = 0x590B</div><div class='add'>+0x3862 = 0x590C</div><div class='add'>+0x3863 = 0x5912</div><div class='add'>+0x3864 = 0x5913</div><div class='add'>+0x3865 = 0x5914</div><div class='add'>+0x3866 = 0x8641</div><div class='add'>+0x3867 = 0x591D</div><div class='add'>+0x3868 = 0x5921</div><div class='add'>+0x3869 = 0x5923</div><div class='add'>+0x386A = 0x5924</div><div class='add'>+0x386B = 0x5928</div><div class='add'>+0x386C = 0x592F</div><div class='add'>+0x386D = 0x5930</div><div class='add'>+0x386E = 0x5933</div><div class='add'>+0x386F = 0x5935</div><div class='add'>+0x3870 = 0x5936</div><div class='add'>+0x3871 = 0x593F</div><div class='add'>+0x3872 = 0x5943</div><div class='add'>+0x3873 = 0x5946</div><div class='add'>+0x3874 = 0x5952</div><div class='add'>+0x3875 = 0x5953</div><div class='add'>+0x3876 = 0x5959</div><div class='add'>+0x3877 = 0x595B</div><div class='add'>+0x3878 = 0x595D</div><div class='add'>+0x3879 = 0x595E</div><div class='add'>+0x387A = 0x595F</div><div class='add'>+0x387B = 0x5961</div><div class='add'>+0x387C = 0x5963</div><div class='add'>+0x387D = 0x596B</div><div class='add'>+0x387E = 0x596D</div><div class='add'>+0x3921 = 0x596F</div><div class='add'>+0x3922 = 0x5972</div><div class='add'>+0x3923 = 0x5975</div><div class='add'>+0x3924 = 0x5976</div><div class='add'>+0x3925 = 0x5979</div><div class='add'>+0x3926 = 0x597B</div><div class='add'>+0x3927 = 0x597C</div><div class='add'>+0x3928 = 0x598B</div><div class='add'>+0x3929 = 0x598C</div><div class='add'>+0x392A = 0x598E</div><div class='add'>+0x392B = 0x5992</div><div class='add'>+0x392C = 0x5995</div><div class='add'>+0x392D = 0x5997</div><div class='add'>+0x392E = 0x599F</div><div class='add'>+0x392F = 0x59A4</div><div class='add'>+0x3930 = 0x59A7</div><div class='add'>+0x3931 = 0x59AD</div><div class='add'>+0x3932 = 0x59AE</div><div class='add'>+0x3933 = 0x59AF</div><div class='add'>+0x3934 = 0x59B0</div><div class='add'>+0x3935 = 0x59B3</div><div class='add'>+0x3936 = 0x59B7</div><div class='add'>+0x3937 = 0x59BA</div><div class='add'>+0x3938 = 0x59BC</div><div class='add'>+0x3939 = 0x59C1</div><div class='add'>+0x393A = 0x59C3</div><div class='add'>+0x393B = 0x59C4</div><div class='add'>+0x393C = 0x59C8</div><div class='add'>+0x393D = 0x59CA</div><div class='add'>+0x393E = 0x59CD</div><div class='add'>+0x393F = 0x59D2</div><div class='add'>+0x3940 = 0x59DD</div><div class='add'>+0x3941 = 0x59DE</div><div class='add'>+0x3942 = 0x59DF</div><div class='add'>+0x3943 = 0x59E3</div><div class='add'>+0x3944 = 0x59E4</div><div class='add'>+0x3945 = 0x59E7</div><div class='add'>+0x3946 = 0x59EE</div><div class='add'>+0x3947 = 0x59EF</div><div class='add'>+0x3948 = 0x59F1</div><div class='add'>+0x3949 = 0x59F2</div><div class='add'>+0x394A = 0x59F4</div><div class='add'>+0x394B = 0x59F7</div><div class='add'>+0x394C = 0x5A00</div><div class='add'>+0x394D = 0x5A04</div><div class='add'>+0x394E = 0x5A0C</div><div class='add'>+0x394F = 0x5A0D</div><div class='add'>+0x3950 = 0x5A0E</div><div class='add'>+0x3951 = 0x5A12</div><div class='add'>+0x3952 = 0x5A13</div><div class='add'>+0x3953 = 0x5A1E</div><div class='add'>+0x3954 = 0x5A23</div><div class='add'>+0x3955 = 0x5A24</div><div class='add'>+0x3956 = 0x5A27</div><div class='add'>+0x3957 = 0x5A28</div><div class='add'>+0x3958 = 0x5A2A</div><div class='add'>+0x3959 = 0x5A2D</div><div class='add'>+0x395A = 0x5A30</div><div class='add'>+0x395B = 0x5A44</div><div class='add'>+0x395C = 0x5A45</div><div class='add'>+0x395D = 0x5A47</div><div class='add'>+0x395E = 0x5A48</div><div class='add'>+0x395F = 0x5A4C</div><div class='add'>+0x3960 = 0x5A50</div><div class='add'>+0x3961 = 0x5A55</div><div class='add'>+0x3962 = 0x5A5E</div><div class='add'>+0x3963 = 0x5A63</div><div class='add'>+0x3964 = 0x5A65</div><div class='add'>+0x3965 = 0x5A67</div><div class='add'>+0x3966 = 0x5A6D</div><div class='add'>+0x3967 = 0x5A77</div><div class='add'>+0x3968 = 0x5A7A</div><div class='add'>+0x3969 = 0x5A7B</div><div class='add'>+0x396A = 0x5A7E</div><div class='add'>+0x396B = 0x5A8B</div><div class='add'>+0x396C = 0x5A90</div><div class='add'>+0x396D = 0x5A93</div><div class='add'>+0x396E = 0x5A96</div><div class='add'>+0x396F = 0x5A99</div><div class='add'>+0x3970 = 0x5A9C</div><div class='add'>+0x3971 = 0x5A9E</div><div class='add'>+0x3972 = 0x5A9F</div><div class='add'>+0x3973 = 0x5AA0</div><div class='add'>+0x3974 = 0x5AA2</div><div class='add'>+0x3975 = 0x5AA7</div><div class='add'>+0x3976 = 0x5AAC</div><div class='add'>+0x3977 = 0x5AB1</div><div class='add'>+0x3978 = 0x5AB2</div><div class='add'>+0x3979 = 0x5AB3</div><div class='add'>+0x397A = 0x5AB5</div><div class='add'>+0x397B = 0x5AB8</div><div class='add'>+0x397C = 0x5ABA</div><div class='add'>+0x397D = 0x5ABB</div><div class='add'>+0x397E = 0x5ABF</div><div class='add'>+0x3A21 = 0x5AC4</div><div class='add'>+0x3A22 = 0x5AC6</div><div class='add'>+0x3A23 = 0x5AC8</div><div class='add'>+0x3A24 = 0x5ACF</div><div class='add'>+0x3A25 = 0x5ADA</div><div class='add'>+0x3A26 = 0x5ADC</div><div class='add'>+0x3A27 = 0x5AE0</div><div class='add'>+0x3A28 = 0x5AE5</div><div class='add'>+0x3A29 = 0x5AEA</div><div class='add'>+0x3A2A = 0x5AEE</div><div class='add'>+0x3A2B = 0x5AF5</div><div class='add'>+0x3A2C = 0x5AF6</div><div class='add'>+0x3A2D = 0x5AFD</div><div class='add'>+0x3A2E = 0x5B00</div><div class='add'>+0x3A2F = 0x5B01</div><div class='add'>+0x3A30 = 0x5B08</div><div class='add'>+0x3A31 = 0x5B17</div><div class='add'>+0x3A32 = 0x5B34</div><div class='add'>+0x3A33 = 0x5B19</div><div class='add'>+0x3A34 = 0x5B1B</div><div class='add'>+0x3A35 = 0x5B1D</div><div class='add'>+0x3A36 = 0x5B21</div><div class='add'>+0x3A37 = 0x5B25</div><div class='add'>+0x3A38 = 0x5B2D</div><div class='add'>+0x3A39 = 0x5B38</div><div class='add'>+0x3A3A = 0x5B41</div><div class='add'>+0x3A3B = 0x5B4B</div><div class='add'>+0x3A3C = 0x5B4C</div><div class='add'>+0x3A3D = 0x5B52</div><div class='add'>+0x3A3E = 0x5B56</div><div class='add'>+0x3A3F = 0x5B5E</div><div class='add'>+0x3A40 = 0x5B68</div><div class='add'>+0x3A41 = 0x5B6E</div><div class='add'>+0x3A42 = 0x5B6F</div><div class='add'>+0x3A43 = 0x5B7C</div><div class='add'>+0x3A44 = 0x5B7D</div><div class='add'>+0x3A45 = 0x5B7E</div><div class='add'>+0x3A46 = 0x5B7F</div><div class='add'>+0x3A47 = 0x5B81</div><div class='add'>+0x3A48 = 0x5B84</div><div class='add'>+0x3A49 = 0x5B86</div><div class='add'>+0x3A4A = 0x5B8A</div><div class='add'>+0x3A4B = 0x5B8E</div><div class='add'>+0x3A4C = 0x5B90</div><div class='add'>+0x3A4D = 0x5B91</div><div class='add'>+0x3A4E = 0x5B93</div><div class='add'>+0x3A4F = 0x5B94</div><div class='add'>+0x3A50 = 0x5B96</div><div class='add'>+0x3A51 = 0x5BA8</div><div class='add'>+0x3A52 = 0x5BA9</div><div class='add'>+0x3A53 = 0x5BAC</div><div class='add'>+0x3A54 = 0x5BAD</div><div class='add'>+0x3A55 = 0x5BAF</div><div class='add'>+0x3A56 = 0x5BB1</div><div class='add'>+0x3A57 = 0x5BB2</div><div class='add'>+0x3A58 = 0x5BB7</div><div class='add'>+0x3A59 = 0x5BBA</div><div class='add'>+0x3A5A = 0x5BBC</div><div class='add'>+0x3A5B = 0x5BC0</div><div class='add'>+0x3A5C = 0x5BC1</div><div class='add'>+0x3A5D = 0x5BCD</div><div class='add'>+0x3A5E = 0x5BCF</div><div class='add'>+0x3A5F = 0x5BD6</div><div class='add'>+0x3A60 = 0x5BD7</div><div class='add'>+0x3A61 = 0x5BD8</div><div class='add'>+0x3A62 = 0x5BD9</div><div class='add'>+0x3A63 = 0x5BDA</div><div class='add'>+0x3A64 = 0x5BE0</div><div class='add'>+0x3A65 = 0x5BEF</div><div class='add'>+0x3A66 = 0x5BF1</div><div class='add'>+0x3A67 = 0x5BF4</div><div class='add'>+0x3A68 = 0x5BFD</div><div class='add'>+0x3A69 = 0x5C0C</div><div class='add'>+0x3A6A = 0x5C17</div><div class='add'>+0x3A6B = 0x5C1E</div><div class='add'>+0x3A6C = 0x5C1F</div><div class='add'>+0x3A6D = 0x5C23</div><div class='add'>+0x3A6E = 0x5C26</div><div class='add'>+0x3A6F = 0x5C29</div><div class='add'>+0x3A70 = 0x5C2B</div><div class='add'>+0x3A71 = 0x5C2C</div><div class='add'>+0x3A72 = 0x5C2E</div><div class='add'>+0x3A73 = 0x5C30</div><div class='add'>+0x3A74 = 0x5C32</div><div class='add'>+0x3A75 = 0x5C35</div><div class='add'>+0x3A76 = 0x5C36</div><div class='add'>+0x3A77 = 0x5C59</div><div class='add'>+0x3A78 = 0x5C5A</div><div class='add'>+0x3A79 = 0x5C5C</div><div class='add'>+0x3A7A = 0x5C62</div><div class='add'>+0x3A7B = 0x5C63</div><div class='add'>+0x3A7C = 0x5C67</div><div class='add'>+0x3A7D = 0x5C68</div><div class='add'>+0x3A7E = 0x5C69</div><div class='add'>+0x3B21 = 0x5C6D</div><div class='add'>+0x3B22 = 0x5C70</div><div class='add'>+0x3B23 = 0x5C74</div><div class='add'>+0x3B24 = 0x5C75</div><div class='add'>+0x3B25 = 0x5C7A</div><div class='add'>+0x3B26 = 0x5C7B</div><div class='add'>+0x3B27 = 0x5C7C</div><div class='add'>+0x3B28 = 0x5C7D</div><div class='add'>+0x3B29 = 0x5C87</div><div class='add'>+0x3B2A = 0x5C88</div><div class='add'>+0x3B2B = 0x5C8A</div><div class='add'>+0x3B2C = 0x5C8F</div><div class='add'>+0x3B2D = 0x5C92</div><div class='add'>+0x3B2E = 0x5C9D</div><div class='add'>+0x3B2F = 0x5C9F</div><div class='add'>+0x3B30 = 0x5CA0</div><div class='add'>+0x3B31 = 0x5CA2</div><div class='add'>+0x3B32 = 0x5CA3</div><div class='add'>+0x3B33 = 0x5CA6</div><div class='add'>+0x3B34 = 0x5CAA</div><div class='add'>+0x3B35 = 0x5CB2</div><div class='add'>+0x3B36 = 0x5CB4</div><div class='add'>+0x3B37 = 0x5CB5</div><div class='add'>+0x3B38 = 0x5CBA</div><div class='add'>+0x3B39 = 0x5CC9</div><div class='add'>+0x3B3A = 0x5CCB</div><div class='add'>+0x3B3B = 0x5CD2</div><div class='add'>+0x3B3C = 0x5CDD</div><div class='add'>+0x3B3D = 0x5CD7</div><div class='add'>+0x3B3E = 0x5CEE</div><div class='add'>+0x3B3F = 0x5CF1</div><div class='add'>+0x3B40 = 0x5CF2</div><div class='add'>+0x3B41 = 0x5CF4</div><div class='add'>+0x3B42 = 0x5D01</div><div class='add'>+0x3B43 = 0x5D06</div><div class='add'>+0x3B44 = 0x5D0D</div><div class='add'>+0x3B45 = 0x5D12</div><div class='add'>+0x3B46 = 0x5D2B</div><div class='add'>+0x3B47 = 0x5D23</div><div class='add'>+0x3B48 = 0x5D24</div><div class='add'>+0x3B49 = 0x5D26</div><div class='add'>+0x3B4A = 0x5D27</div><div class='add'>+0x3B4B = 0x5D31</div><div class='add'>+0x3B4C = 0x5D34</div><div class='add'>+0x3B4D = 0x5D39</div><div class='add'>+0x3B4E = 0x5D3D</div><div class='add'>+0x3B4F = 0x5D3F</div><div class='add'>+0x3B50 = 0x5D42</div><div class='add'>+0x3B51 = 0x5D43</div><div class='add'>+0x3B52 = 0x5D46</div><div class='add'>+0x3B53 = 0x5D48</div><div class='add'>+0x3B54 = 0x5D55</div><div class='add'>+0x3B55 = 0x5D51</div><div class='add'>+0x3B56 = 0x5D59</div><div class='add'>+0x3B57 = 0x5D4A</div><div class='add'>+0x3B58 = 0x5D5F</div><div class='add'>+0x3B59 = 0x5D60</div><div class='add'>+0x3B5A = 0x5D61</div><div class='add'>+0x3B5B = 0x5D62</div><div class='add'>+0x3B5C = 0x5D64</div><div class='add'>+0x3B5D = 0x5D6A</div><div class='add'>+0x3B5E = 0x5D6D</div><div class='add'>+0x3B5F = 0x5D70</div><div class='add'>+0x3B60 = 0x5D79</div><div class='add'>+0x3B61 = 0x5D7A</div><div class='add'>+0x3B62 = 0x5D7E</div><div class='add'>+0x3B63 = 0x5D7F</div><div class='add'>+0x3B64 = 0x5D81</div><div class='add'>+0x3B65 = 0x5D83</div><div class='add'>+0x3B66 = 0x5D88</div><div class='add'>+0x3B67 = 0x5D8A</div><div class='add'>+0x3B68 = 0x5D92</div><div class='add'>+0x3B69 = 0x5D93</div><div class='add'>+0x3B6A = 0x5D94</div><div class='add'>+0x3B6B = 0x5D95</div><div class='add'>+0x3B6C = 0x5D99</div><div class='add'>+0x3B6D = 0x5D9B</div><div class='add'>+0x3B6E = 0x5D9F</div><div class='add'>+0x3B6F = 0x5DA0</div><div class='add'>+0x3B70 = 0x5DA7</div><div class='add'>+0x3B71 = 0x5DAB</div><div class='add'>+0x3B72 = 0x5DB0</div><div class='add'>+0x3B73 = 0x5DB4</div><div class='add'>+0x3B74 = 0x5DB8</div><div class='add'>+0x3B75 = 0x5DB9</div><div class='add'>+0x3B76 = 0x5DC3</div><div class='add'>+0x3B77 = 0x5DC7</div><div class='add'>+0x3B78 = 0x5DCB</div><div class='add'>+0x3B79 = 0x5DD0</div><div class='add'>+0x3B7A = 0x5DCE</div><div class='add'>+0x3B7B = 0x5DD8</div><div class='add'>+0x3B7C = 0x5DD9</div><div class='add'>+0x3B7D = 0x5DE0</div><div class='add'>+0x3B7E = 0x5DE4</div><div class='add'>+0x3C21 = 0x5DE9</div><div class='add'>+0x3C22 = 0x5DF8</div><div class='add'>+0x3C23 = 0x5DF9</div><div class='add'>+0x3C24 = 0x5E00</div><div class='add'>+0x3C25 = 0x5E07</div><div class='add'>+0x3C26 = 0x5E0D</div><div class='add'>+0x3C27 = 0x5E12</div><div class='add'>+0x3C28 = 0x5E14</div><div class='add'>+0x3C29 = 0x5E15</div><div class='add'>+0x3C2A = 0x5E18</div><div class='add'>+0x3C2B = 0x5E1F</div><div class='add'>+0x3C2C = 0x5E20</div><div class='add'>+0x3C2D = 0x5E2E</div><div class='add'>+0x3C2E = 0x5E28</div><div class='add'>+0x3C2F = 0x5E32</div><div class='add'>+0x3C30 = 0x5E35</div><div class='add'>+0x3C31 = 0x5E3E</div><div class='add'>+0x3C32 = 0x5E4B</div><div class='add'>+0x3C33 = 0x5E50</div><div class='add'>+0x3C34 = 0x5E49</div><div class='add'>+0x3C35 = 0x5E51</div><div class='add'>+0x3C36 = 0x5E56</div><div class='add'>+0x3C37 = 0x5E58</div><div class='add'>+0x3C38 = 0x5E5B</div><div class='add'>+0x3C39 = 0x5E5C</div><div class='add'>+0x3C3A = 0x5E5E</div><div class='add'>+0x3C3B = 0x5E68</div><div class='add'>+0x3C3C = 0x5E6A</div><div class='add'>+0x3C3D = 0x5E6B</div><div class='add'>+0x3C3E = 0x5E6C</div><div class='add'>+0x3C3F = 0x5E6D</div><div class='add'>+0x3C40 = 0x5E6E</div><div class='add'>+0x3C41 = 0x5E70</div><div class='add'>+0x3C42 = 0x5E80</div><div class='add'>+0x3C43 = 0x5E8B</div><div class='add'>+0x3C44 = 0x5E8E</div><div class='add'>+0x3C45 = 0x5EA2</div><div class='add'>+0x3C46 = 0x5EA4</div><div class='add'>+0x3C47 = 0x5EA5</div><div class='add'>+0x3C48 = 0x5EA8</div><div class='add'>+0x3C49 = 0x5EAA</div><div class='add'>+0x3C4A = 0x5EAC</div><div class='add'>+0x3C4B = 0x5EB1</div><div class='add'>+0x3C4C = 0x5EB3</div><div class='add'>+0x3C4D = 0x5EBD</div><div class='add'>+0x3C4E = 0x5EBE</div><div class='add'>+0x3C4F = 0x5EBF</div><div class='add'>+0x3C50 = 0x5EC6</div><div class='add'>+0x3C51 = 0x5ECC</div><div class='add'>+0x3C52 = 0x5ECB</div><div class='add'>+0x3C53 = 0x5ECE</div><div class='add'>+0x3C54 = 0x5ED1</div><div class='add'>+0x3C55 = 0x5ED2</div><div class='add'>+0x3C56 = 0x5ED4</div><div class='add'>+0x3C57 = 0x5ED5</div><div class='add'>+0x3C58 = 0x5EDC</div><div class='add'>+0x3C59 = 0x5EDE</div><div class='add'>+0x3C5A = 0x5EE5</div><div class='add'>+0x3C5B = 0x5EEB</div><div class='add'>+0x3C5C = 0x5F02</div><div class='add'>+0x3C5D = 0x5F06</div><div class='add'>+0x3C5E = 0x5F07</div><div class='add'>+0x3C5F = 0x5F08</div><div class='add'>+0x3C60 = 0x5F0E</div><div class='add'>+0x3C61 = 0x5F19</div><div class='add'>+0x3C62 = 0x5F1C</div><div class='add'>+0x3C63 = 0x5F1D</div><div class='add'>+0x3C64 = 0x5F21</div><div class='add'>+0x3C65 = 0x5F22</div><div class='add'>+0x3C66 = 0x5F23</div><div class='add'>+0x3C67 = 0x5F24</div><div class='add'>+0x3C68 = 0x5F28</div><div class='add'>+0x3C69 = 0x5F2B</div><div class='add'>+0x3C6A = 0x5F2C</div><div class='add'>+0x3C6B = 0x5F2E</div><div class='add'>+0x3C6C = 0x5F30</div><div class='add'>+0x3C6D = 0x5F34</div><div class='add'>+0x3C6E = 0x5F36</div><div class='add'>+0x3C6F = 0x5F3B</div><div class='add'>+0x3C70 = 0x5F3D</div><div class='add'>+0x3C71 = 0x5F3F</div><div class='add'>+0x3C72 = 0x5F40</div><div class='add'>+0x3C73 = 0x5F44</div><div class='add'>+0x3C74 = 0x5F45</div><div class='add'>+0x3C75 = 0x5F47</div><div class='add'>+0x3C76 = 0x5F4D</div><div class='add'>+0x3C77 = 0x5F50</div><div class='add'>+0x3C78 = 0x5F54</div><div class='add'>+0x3C79 = 0x5F58</div><div class='add'>+0x3C7A = 0x5F5B</div><div class='add'>+0x3C7B = 0x5F60</div><div class='add'>+0x3C7C = 0x5F63</div><div class='add'>+0x3C7D = 0x5F64</div><div class='add'>+0x3C7E = 0x5F67</div><div class='add'>+0x3D21 = 0x5F6F</div><div class='add'>+0x3D22 = 0x5F72</div><div class='add'>+0x3D23 = 0x5F74</div><div class='add'>+0x3D24 = 0x5F75</div><div class='add'>+0x3D25 = 0x5F78</div><div class='add'>+0x3D26 = 0x5F7A</div><div class='add'>+0x3D27 = 0x5F7D</div><div class='add'>+0x3D28 = 0x5F7E</div><div class='add'>+0x3D29 = 0x5F89</div><div class='add'>+0x3D2A = 0x5F8D</div><div class='add'>+0x3D2B = 0x5F8F</div><div class='add'>+0x3D2C = 0x5F96</div><div class='add'>+0x3D2D = 0x5F9C</div><div class='add'>+0x3D2E = 0x5F9D</div><div class='add'>+0x3D2F = 0x5FA2</div><div class='add'>+0x3D30 = 0x5FA7</div><div class='add'>+0x3D31 = 0x5FAB</div><div class='add'>+0x3D32 = 0x5FA4</div><div class='add'>+0x3D33 = 0x5FAC</div><div class='add'>+0x3D34 = 0x5FAF</div><div class='add'>+0x3D35 = 0x5FB0</div><div class='add'>+0x3D36 = 0x5FB1</div><div class='add'>+0x3D37 = 0x5FB8</div><div class='add'>+0x3D38 = 0x5FC4</div><div class='add'>+0x3D39 = 0x5FC7</div><div class='add'>+0x3D3A = 0x5FC8</div><div class='add'>+0x3D3B = 0x5FC9</div><div class='add'>+0x3D3C = 0x5FCB</div><div class='add'>+0x3D3D = 0x5FD0</div><div class='add'>+0x3D3E = 0x5FD1</div><div class='add'>+0x3D3F = 0x5FD2</div><div class='add'>+0x3D40 = 0x5FD3</div><div class='add'>+0x3D41 = 0x5FD4</div><div class='add'>+0x3D42 = 0x5FDE</div><div class='add'>+0x3D43 = 0x5FE1</div><div class='add'>+0x3D44 = 0x5FE2</div><div class='add'>+0x3D45 = 0x5FE8</div><div class='add'>+0x3D46 = 0x5FE9</div><div class='add'>+0x3D47 = 0x5FEA</div><div class='add'>+0x3D48 = 0x5FEC</div><div class='add'>+0x3D49 = 0x5FED</div><div class='add'>+0x3D4A = 0x5FEE</div><div class='add'>+0x3D4B = 0x5FEF</div><div class='add'>+0x3D4C = 0x5FF2</div><div class='add'>+0x3D4D = 0x5FF3</div><div class='add'>+0x3D4E = 0x5FF6</div><div class='add'>+0x3D4F = 0x5FFA</div><div class='add'>+0x3D50 = 0x5FFC</div><div class='add'>+0x3D51 = 0x6007</div><div class='add'>+0x3D52 = 0x600A</div><div class='add'>+0x3D53 = 0x600D</div><div class='add'>+0x3D54 = 0x6013</div><div class='add'>+0x3D55 = 0x6014</div><div class='add'>+0x3D56 = 0x6017</div><div class='add'>+0x3D57 = 0x6018</div><div class='add'>+0x3D58 = 0x601A</div><div class='add'>+0x3D59 = 0x601F</div><div class='add'>+0x3D5A = 0x6024</div><div class='add'>+0x3D5B = 0x602D</div><div class='add'>+0x3D5C = 0x6033</div><div class='add'>+0x3D5D = 0x6035</div><div class='add'>+0x3D5E = 0x6040</div><div class='add'>+0x3D5F = 0x6047</div><div class='add'>+0x3D60 = 0x6048</div><div class='add'>+0x3D61 = 0x6049</div><div class='add'>+0x3D62 = 0x604C</div><div class='add'>+0x3D63 = 0x6051</div><div class='add'>+0x3D64 = 0x6054</div><div class='add'>+0x3D65 = 0x6056</div><div class='add'>+0x3D66 = 0x6057</div><div class='add'>+0x3D67 = 0x605D</div><div class='add'>+0x3D68 = 0x6061</div><div class='add'>+0x3D69 = 0x6067</div><div class='add'>+0x3D6A = 0x6071</div><div class='add'>+0x3D6B = 0x607E</div><div class='add'>+0x3D6C = 0x607F</div><div class='add'>+0x3D6D = 0x6082</div><div class='add'>+0x3D6E = 0x6086</div><div class='add'>+0x3D6F = 0x6088</div><div class='add'>+0x3D70 = 0x608A</div><div class='add'>+0x3D71 = 0x608E</div><div class='add'>+0x3D72 = 0x6091</div><div class='add'>+0x3D73 = 0x6093</div><div class='add'>+0x3D74 = 0x6095</div><div class='add'>+0x3D75 = 0x6098</div><div class='add'>+0x3D76 = 0x609D</div><div class='add'>+0x3D77 = 0x609E</div><div class='add'>+0x3D78 = 0x60A2</div><div class='add'>+0x3D79 = 0x60A4</div><div class='add'>+0x3D7A = 0x60A5</div><div class='add'>+0x3D7B = 0x60A8</div><div class='add'>+0x3D7C = 0x60B0</div><div class='add'>+0x3D7D = 0x60B1</div><div class='add'>+0x3D7E = 0x60B7</div><div class='add'>+0x3E21 = 0x60BB</div><div class='add'>+0x3E22 = 0x60BE</div><div class='add'>+0x3E23 = 0x60C2</div><div class='add'>+0x3E24 = 0x60C4</div><div class='add'>+0x3E25 = 0x60C8</div><div class='add'>+0x3E26 = 0x60C9</div><div class='add'>+0x3E27 = 0x60CA</div><div class='add'>+0x3E28 = 0x60CB</div><div class='add'>+0x3E29 = 0x60CE</div><div class='add'>+0x3E2A = 0x60CF</div><div class='add'>+0x3E2B = 0x60D4</div><div class='add'>+0x3E2C = 0x60D5</div><div class='add'>+0x3E2D = 0x60D9</div><div class='add'>+0x3E2E = 0x60DB</div><div class='add'>+0x3E2F = 0x60DD</div><div class='add'>+0x3E30 = 0x60DE</div><div class='add'>+0x3E31 = 0x60E2</div><div class='add'>+0x3E32 = 0x60E5</div><div class='add'>+0x3E33 = 0x60F2</div><div class='add'>+0x3E34 = 0x60F5</div><div class='add'>+0x3E35 = 0x60F8</div><div class='add'>+0x3E36 = 0x60FC</div><div class='add'>+0x3E37 = 0x60FD</div><div class='add'>+0x3E38 = 0x6102</div><div class='add'>+0x3E39 = 0x6107</div><div class='add'>+0x3E3A = 0x610A</div><div class='add'>+0x3E3B = 0x610C</div><div class='add'>+0x3E3C = 0x6110</div><div class='add'>+0x3E3D = 0x6111</div><div class='add'>+0x3E3E = 0x6112</div><div class='add'>+0x3E3F = 0x6113</div><div class='add'>+0x3E40 = 0x6114</div><div class='add'>+0x3E41 = 0x6116</div><div class='add'>+0x3E42 = 0x6117</div><div class='add'>+0x3E43 = 0x6119</div><div class='add'>+0x3E44 = 0x611C</div><div class='add'>+0x3E45 = 0x611E</div><div class='add'>+0x3E46 = 0x6122</div><div class='add'>+0x3E47 = 0x612A</div><div class='add'>+0x3E48 = 0x612B</div><div class='add'>+0x3E49 = 0x6130</div><div class='add'>+0x3E4A = 0x6131</div><div class='add'>+0x3E4B = 0x6135</div><div class='add'>+0x3E4C = 0x6136</div><div class='add'>+0x3E4D = 0x6137</div><div class='add'>+0x3E4E = 0x6139</div><div class='add'>+0x3E4F = 0x6141</div><div class='add'>+0x3E50 = 0x6145</div><div class='add'>+0x3E51 = 0x6146</div><div class='add'>+0x3E52 = 0x6149</div><div class='add'>+0x3E53 = 0x615E</div><div class='add'>+0x3E54 = 0x6160</div><div class='add'>+0x3E55 = 0x616C</div><div class='add'>+0x3E56 = 0x6172</div><div class='add'>+0x3E57 = 0x6178</div><div class='add'>+0x3E58 = 0x617B</div><div class='add'>+0x3E59 = 0x617C</div><div class='add'>+0x3E5A = 0x617F</div><div class='add'>+0x3E5B = 0x6180</div><div class='add'>+0x3E5C = 0x6181</div><div class='add'>+0x3E5D = 0x6183</div><div class='add'>+0x3E5E = 0x6184</div><div class='add'>+0x3E5F = 0x618B</div><div class='add'>+0x3E60 = 0x618D</div><div class='add'>+0x3E61 = 0x6192</div><div class='add'>+0x3E62 = 0x6193</div><div class='add'>+0x3E63 = 0x6197</div><div class='add'>+0x3E64 = 0x6198</div><div class='add'>+0x3E65 = 0x619C</div><div class='add'>+0x3E66 = 0x619D</div><div class='add'>+0x3E67 = 0x619F</div><div class='add'>+0x3E68 = 0x61A0</div><div class='add'>+0x3E69 = 0x61A5</div><div class='add'>+0x3E6A = 0x61A8</div><div class='add'>+0x3E6B = 0x61AA</div><div class='add'>+0x3E6C = 0x61AD</div><div class='add'>+0x3E6D = 0x61B8</div><div class='add'>+0x3E6E = 0x61B9</div><div class='add'>+0x3E6F = 0x61BC</div><div class='add'>+0x3E70 = 0x61C0</div><div class='add'>+0x3E71 = 0x61C1</div><div class='add'>+0x3E72 = 0x61C2</div><div class='add'>+0x3E73 = 0x61CE</div><div class='add'>+0x3E74 = 0x61CF</div><div class='add'>+0x3E75 = 0x61D5</div><div class='add'>+0x3E76 = 0x61DC</div><div class='add'>+0x3E77 = 0x61DD</div><div class='add'>+0x3E78 = 0x61DE</div><div class='add'>+0x3E79 = 0x61DF</div><div class='add'>+0x3E7A = 0x61E1</div><div class='add'>+0x3E7B = 0x61E2</div><div class='add'>+0x3E7C = 0x61E7</div><div class='add'>+0x3E7D = 0x61E9</div><div class='add'>+0x3E7E = 0x61E5</div><div class='add'>+0x3F21 = 0x61EC</div><div class='add'>+0x3F22 = 0x61ED</div><div class='add'>+0x3F23 = 0x61EF</div><div class='add'>+0x3F24 = 0x6201</div><div class='add'>+0x3F25 = 0x6203</div><div class='add'>+0x3F26 = 0x6204</div><div class='add'>+0x3F27 = 0x6207</div><div class='add'>+0x3F28 = 0x6213</div><div class='add'>+0x3F29 = 0x6215</div><div class='add'>+0x3F2A = 0x621C</div><div class='add'>+0x3F2B = 0x6220</div><div class='add'>+0x3F2C = 0x6222</div><div class='add'>+0x3F2D = 0x6223</div><div class='add'>+0x3F2E = 0x6227</div><div class='add'>+0x3F2F = 0x6229</div><div class='add'>+0x3F30 = 0x622B</div><div class='add'>+0x3F31 = 0x6239</div><div class='add'>+0x3F32 = 0x623D</div><div class='add'>+0x3F33 = 0x6242</div><div class='add'>+0x3F34 = 0x6243</div><div class='add'>+0x3F35 = 0x6244</div><div class='add'>+0x3F36 = 0x6246</div><div class='add'>+0x3F37 = 0x624C</div><div class='add'>+0x3F38 = 0x6250</div><div class='add'>+0x3F39 = 0x6251</div><div class='add'>+0x3F3A = 0x6252</div><div class='add'>+0x3F3B = 0x6254</div><div class='add'>+0x3F3C = 0x6256</div><div class='add'>+0x3F3D = 0x625A</div><div class='add'>+0x3F3E = 0x625C</div><div class='add'>+0x3F3F = 0x6264</div><div class='add'>+0x3F40 = 0x626D</div><div class='add'>+0x3F41 = 0x626F</div><div class='add'>+0x3F42 = 0x6273</div><div class='add'>+0x3F43 = 0x627A</div><div class='add'>+0x3F44 = 0x627D</div><div class='add'>+0x3F45 = 0x628D</div><div class='add'>+0x3F46 = 0x628E</div><div class='add'>+0x3F47 = 0x628F</div><div class='add'>+0x3F48 = 0x6290</div><div class='add'>+0x3F49 = 0x62A6</div><div class='add'>+0x3F4A = 0x62A8</div><div class='add'>+0x3F4B = 0x62B3</div><div class='add'>+0x3F4C = 0x62B6</div><div class='add'>+0x3F4D = 0x62B7</div><div class='add'>+0x3F4E = 0x62BA</div><div class='add'>+0x3F4F = 0x62BE</div><div class='add'>+0x3F50 = 0x62BF</div><div class='add'>+0x3F51 = 0x62C4</div><div class='add'>+0x3F52 = 0x62CE</div><div class='add'>+0x3F53 = 0x62D5</div><div class='add'>+0x3F54 = 0x62D6</div><div class='add'>+0x3F55 = 0x62DA</div><div class='add'>+0x3F56 = 0x62EA</div><div class='add'>+0x3F57 = 0x62F2</div><div class='add'>+0x3F58 = 0x62F4</div><div class='add'>+0x3F59 = 0x62FC</div><div class='add'>+0x3F5A = 0x62FD</div><div class='add'>+0x3F5B = 0x6303</div><div class='add'>+0x3F5C = 0x6304</div><div class='add'>+0x3F5D = 0x630A</div><div class='add'>+0x3F5E = 0x630B</div><div class='add'>+0x3F5F = 0x630D</div><div class='add'>+0x3F60 = 0x6310</div><div class='add'>+0x3F61 = 0x6313</div><div class='add'>+0x3F62 = 0x6316</div><div class='add'>+0x3F63 = 0x6318</div><div class='add'>+0x3F64 = 0x6329</div><div class='add'>+0x3F65 = 0x632A</div><div class='add'>+0x3F66 = 0x632D</div><div class='add'>+0x3F67 = 0x6335</div><div class='add'>+0x3F68 = 0x6336</div><div class='add'>+0x3F69 = 0x6339</div><div class='add'>+0x3F6A = 0x633C</div><div class='add'>+0x3F6B = 0x6341</div><div class='add'>+0x3F6C = 0x6342</div><div class='add'>+0x3F6D = 0x6343</div><div class='add'>+0x3F6E = 0x6344</div><div class='add'>+0x3F6F = 0x6346</div><div class='add'>+0x3F70 = 0x634A</div><div class='add'>+0x3F71 = 0x634B</div><div class='add'>+0x3F72 = 0x634E</div><div class='add'>+0x3F73 = 0x6352</div><div class='add'>+0x3F74 = 0x6353</div><div class='add'>+0x3F75 = 0x6354</div><div class='add'>+0x3F76 = 0x6358</div><div class='add'>+0x3F77 = 0x635B</div><div class='add'>+0x3F78 = 0x6365</div><div class='add'>+0x3F79 = 0x6366</div><div class='add'>+0x3F7A = 0x636C</div><div class='add'>+0x3F7B = 0x636D</div><div class='add'>+0x3F7C = 0x6371</div><div class='add'>+0x3F7D = 0x6374</div><div class='add'>+0x3F7E = 0x6375</div><div class='add'>+0x4021 = 0x6378</div><div class='add'>+0x4022 = 0x637C</div><div class='add'>+0x4023 = 0x637D</div><div class='add'>+0x4024 = 0x637F</div><div class='add'>+0x4025 = 0x6382</div><div class='add'>+0x4026 = 0x6384</div><div class='add'>+0x4027 = 0x6387</div><div class='add'>+0x4028 = 0x638A</div><div class='add'>+0x4029 = 0x6390</div><div class='add'>+0x402A = 0x6394</div><div class='add'>+0x402B = 0x6395</div><div class='add'>+0x402C = 0x6399</div><div class='add'>+0x402D = 0x639A</div><div class='add'>+0x402E = 0x639E</div><div class='add'>+0x402F = 0x63A4</div><div class='add'>+0x4030 = 0x63A6</div><div class='add'>+0x4031 = 0x63AD</div><div class='add'>+0x4032 = 0x63AE</div><div class='add'>+0x4033 = 0x63AF</div><div class='add'>+0x4034 = 0x63BD</div><div class='add'>+0x4035 = 0x63C1</div><div class='add'>+0x4036 = 0x63C5</div><div class='add'>+0x4037 = 0x63C8</div><div class='add'>+0x4038 = 0x63CE</div><div class='add'>+0x4039 = 0x63D1</div><div class='add'>+0x403A = 0x63D3</div><div class='add'>+0x403B = 0x63D4</div><div class='add'>+0x403C = 0x63D5</div><div class='add'>+0x403D = 0x63DC</div><div class='add'>+0x403E = 0x63E0</div><div class='add'>+0x403F = 0x63E5</div><div class='add'>+0x4040 = 0x63EA</div><div class='add'>+0x4041 = 0x63EC</div><div class='add'>+0x4042 = 0x63F2</div><div class='add'>+0x4043 = 0x63F3</div><div class='add'>+0x4044 = 0x63F5</div><div class='add'>+0x4045 = 0x63F8</div><div class='add'>+0x4046 = 0x63F9</div><div class='add'>+0x4047 = 0x6409</div><div class='add'>+0x4048 = 0x640A</div><div class='add'>+0x4049 = 0x6410</div><div class='add'>+0x404A = 0x6412</div><div class='add'>+0x404B = 0x6414</div><div class='add'>+0x404C = 0x6418</div><div class='add'>+0x404D = 0x641E</div><div class='add'>+0x404E = 0x6420</div><div class='add'>+0x404F = 0x6422</div><div class='add'>+0x4050 = 0x6424</div><div class='add'>+0x4051 = 0x6425</div><div class='add'>+0x4052 = 0x6429</div><div class='add'>+0x4053 = 0x642A</div><div class='add'>+0x4054 = 0x642F</div><div class='add'>+0x4055 = 0x6430</div><div class='add'>+0x4056 = 0x6435</div><div class='add'>+0x4057 = 0x643D</div><div class='add'>+0x4058 = 0x643F</div><div class='add'>+0x4059 = 0x644B</div><div class='add'>+0x405A = 0x644F</div><div class='add'>+0x405B = 0x6451</div><div class='add'>+0x405C = 0x6452</div><div class='add'>+0x405D = 0x6453</div><div class='add'>+0x405E = 0x6454</div><div class='add'>+0x405F = 0x645A</div><div class='add'>+0x4060 = 0x645B</div><div class='add'>+0x4061 = 0x645C</div><div class='add'>+0x4062 = 0x645D</div><div class='add'>+0x4063 = 0x645F</div><div class='add'>+0x4064 = 0x6460</div><div class='add'>+0x4065 = 0x6461</div><div class='add'>+0x4066 = 0x6463</div><div class='add'>+0x4067 = 0x646D</div><div class='add'>+0x4068 = 0x6473</div><div class='add'>+0x4069 = 0x6474</div><div class='add'>+0x406A = 0x647B</div><div class='add'>+0x406B = 0x647D</div><div class='add'>+0x406C = 0x6485</div><div class='add'>+0x406D = 0x6487</div><div class='add'>+0x406E = 0x648F</div><div class='add'>+0x406F = 0x6490</div><div class='add'>+0x4070 = 0x6491</div><div class='add'>+0x4071 = 0x6498</div><div class='add'>+0x4072 = 0x6499</div><div class='add'>+0x4073 = 0x649B</div><div class='add'>+0x4074 = 0x649D</div><div class='add'>+0x4075 = 0x649F</div><div class='add'>+0x4076 = 0x64A1</div><div class='add'>+0x4077 = 0x64A3</div><div class='add'>+0x4078 = 0x64A6</div><div class='add'>+0x4079 = 0x64A8</div><div class='add'>+0x407A = 0x64AC</div><div class='add'>+0x407B = 0x64B3</div><div class='add'>+0x407C = 0x64BD</div><div class='add'>+0x407D = 0x64BE</div><div class='add'>+0x407E = 0x64BF</div><div class='add'>+0x4121 = 0x64C4</div><div class='add'>+0x4122 = 0x64C9</div><div class='add'>+0x4123 = 0x64CA</div><div class='add'>+0x4124 = 0x64CB</div><div class='add'>+0x4125 = 0x64CC</div><div class='add'>+0x4126 = 0x64CE</div><div class='add'>+0x4127 = 0x64D0</div><div class='add'>+0x4128 = 0x64D1</div><div class='add'>+0x4129 = 0x64D5</div><div class='add'>+0x412A = 0x64D7</div><div class='add'>+0x412B = 0x64E4</div><div class='add'>+0x412C = 0x64E5</div><div class='add'>+0x412D = 0x64E9</div><div class='add'>+0x412E = 0x64EA</div><div class='add'>+0x412F = 0x64ED</div><div class='add'>+0x4130 = 0x64F0</div><div class='add'>+0x4131 = 0x64F5</div><div class='add'>+0x4132 = 0x64F7</div><div class='add'>+0x4133 = 0x64FB</div><div class='add'>+0x4134 = 0x64FF</div><div class='add'>+0x4135 = 0x6501</div><div class='add'>+0x4136 = 0x6504</div><div class='add'>+0x4137 = 0x6508</div><div class='add'>+0x4138 = 0x6509</div><div class='add'>+0x4139 = 0x650A</div><div class='add'>+0x413A = 0x650F</div><div class='add'>+0x413B = 0x6513</div><div class='add'>+0x413C = 0x6514</div><div class='add'>+0x413D = 0x6516</div><div class='add'>+0x413E = 0x6519</div><div class='add'>+0x413F = 0x651B</div><div class='add'>+0x4140 = 0x651E</div><div class='add'>+0x4141 = 0x651F</div><div class='add'>+0x4142 = 0x6522</div><div class='add'>+0x4143 = 0x6526</div><div class='add'>+0x4144 = 0x6529</div><div class='add'>+0x4145 = 0x652E</div><div class='add'>+0x4146 = 0x6531</div><div class='add'>+0x4147 = 0x653A</div><div class='add'>+0x4148 = 0x653C</div><div class='add'>+0x4149 = 0x653D</div><div class='add'>+0x414A = 0x6543</div><div class='add'>+0x414B = 0x6547</div><div class='add'>+0x414C = 0x6549</div><div class='add'>+0x414D = 0x6550</div><div class='add'>+0x414E = 0x6552</div><div class='add'>+0x414F = 0x6554</div><div class='add'>+0x4150 = 0x655F</div><div class='add'>+0x4151 = 0x6560</div><div class='add'>+0x4152 = 0x6567</div><div class='add'>+0x4153 = 0x656B</div><div class='add'>+0x4154 = 0x657A</div><div class='add'>+0x4155 = 0x657D</div><div class='add'>+0x4156 = 0x6581</div><div class='add'>+0x4157 = 0x6585</div><div class='add'>+0x4158 = 0x658A</div><div class='add'>+0x4159 = 0x6592</div><div class='add'>+0x415A = 0x6595</div><div class='add'>+0x415B = 0x6598</div><div class='add'>+0x415C = 0x659D</div><div class='add'>+0x415D = 0x65A0</div><div class='add'>+0x415E = 0x65A3</div><div class='add'>+0x415F = 0x65A6</div><div class='add'>+0x4160 = 0x65AE</div><div class='add'>+0x4161 = 0x65B2</div><div class='add'>+0x4162 = 0x65B3</div><div class='add'>+0x4163 = 0x65B4</div><div class='add'>+0x4164 = 0x65BF</div><div class='add'>+0x4165 = 0x65C2</div><div class='add'>+0x4166 = 0x65C8</div><div class='add'>+0x4167 = 0x65C9</div><div class='add'>+0x4168 = 0x65CE</div><div class='add'>+0x4169 = 0x65D0</div><div class='add'>+0x416A = 0x65D4</div><div class='add'>+0x416B = 0x65D6</div><div class='add'>+0x416C = 0x65D8</div><div class='add'>+0x416D = 0x65DF</div><div class='add'>+0x416E = 0x65F0</div><div class='add'>+0x416F = 0x65F2</div><div class='add'>+0x4170 = 0x65F4</div><div class='add'>+0x4171 = 0x65F5</div><div class='add'>+0x4172 = 0x65F9</div><div class='add'>+0x4173 = 0x65FE</div><div class='add'>+0x4174 = 0x65FF</div><div class='add'>+0x4175 = 0x6600</div><div class='add'>+0x4176 = 0x6604</div><div class='add'>+0x4177 = 0x6608</div><div class='add'>+0x4178 = 0x6609</div><div class='add'>+0x4179 = 0x660D</div><div class='add'>+0x417A = 0x6611</div><div class='add'>+0x417B = 0x6612</div><div class='add'>+0x417C = 0x6615</div><div class='add'>+0x417D = 0x6616</div><div class='add'>+0x417E = 0x661D</div><div class='add'>+0x4221 = 0x661E</div><div class='add'>+0x4222 = 0x6621</div><div class='add'>+0x4223 = 0x6622</div><div class='add'>+0x4224 = 0x6623</div><div class='add'>+0x4225 = 0x6624</div><div class='add'>+0x4226 = 0x6626</div><div class='add'>+0x4227 = 0x6629</div><div class='add'>+0x4228 = 0x662A</div><div class='add'>+0x4229 = 0x662B</div><div class='add'>+0x422A = 0x662C</div><div class='add'>+0x422B = 0x662E</div><div class='add'>+0x422C = 0x6630</div><div class='add'>+0x422D = 0x6631</div><div class='add'>+0x422E = 0x6633</div><div class='add'>+0x422F = 0x6639</div><div class='add'>+0x4230 = 0x6637</div><div class='add'>+0x4231 = 0x6640</div><div class='add'>+0x4232 = 0x6645</div><div class='add'>+0x4233 = 0x6646</div><div class='add'>+0x4234 = 0x664A</div><div class='add'>+0x4235 = 0x664C</div><div class='add'>+0x4236 = 0x6651</div><div class='add'>+0x4237 = 0x664E</div><div class='add'>+0x4238 = 0x6657</div><div class='add'>+0x4239 = 0x6658</div><div class='add'>+0x423A = 0x6659</div><div class='add'>+0x423B = 0x665B</div><div class='add'>+0x423C = 0x665C</div><div class='add'>+0x423D = 0x6660</div><div class='add'>+0x423E = 0x6661</div><div class='add'>+0x423F = 0x66FB</div><div class='add'>+0x4240 = 0x666A</div><div class='add'>+0x4241 = 0x666B</div><div class='add'>+0x4242 = 0x666C</div><div class='add'>+0x4243 = 0x667E</div><div class='add'>+0x4244 = 0x6673</div><div class='add'>+0x4245 = 0x6675</div><div class='add'>+0x4246 = 0x667F</div><div class='add'>+0x4247 = 0x6677</div><div class='add'>+0x4248 = 0x6678</div><div class='add'>+0x4249 = 0x6679</div><div class='add'>+0x424A = 0x667B</div><div class='add'>+0x424B = 0x6680</div><div class='add'>+0x424C = 0x667C</div><div class='add'>+0x424D = 0x668B</div><div class='add'>+0x424E = 0x668C</div><div class='add'>+0x424F = 0x668D</div><div class='add'>+0x4250 = 0x6690</div><div class='add'>+0x4251 = 0x6692</div><div class='add'>+0x4252 = 0x6699</div><div class='add'>+0x4253 = 0x669A</div><div class='add'>+0x4254 = 0x669B</div><div class='add'>+0x4255 = 0x669C</div><div class='add'>+0x4256 = 0x669F</div><div class='add'>+0x4257 = 0x66A0</div><div class='add'>+0x4258 = 0x66A4</div><div class='add'>+0x4259 = 0x66AD</div><div class='add'>+0x425A = 0x66B1</div><div class='add'>+0x425B = 0x66B2</div><div class='add'>+0x425C = 0x66B5</div><div class='add'>+0x425D = 0x66BB</div><div class='add'>+0x425E = 0x66BF</div><div class='add'>+0x425F = 0x66C0</div><div class='add'>+0x4260 = 0x66C2</div><div class='add'>+0x4261 = 0x66C3</div><div class='add'>+0x4262 = 0x66C8</div><div class='add'>+0x4263 = 0x66CC</div><div class='add'>+0x4264 = 0x66CE</div><div class='add'>+0x4265 = 0x66CF</div><div class='add'>+0x4266 = 0x66D4</div><div class='add'>+0x4267 = 0x66DB</div><div class='add'>+0x4268 = 0x66DF</div><div class='add'>+0x4269 = 0x66E8</div><div class='add'>+0x426A = 0x66EB</div><div class='add'>+0x426B = 0x66EC</div><div class='add'>+0x426C = 0x66EE</div><div class='add'>+0x426D = 0x66FA</div><div class='add'>+0x426E = 0x6705</div><div class='add'>+0x426F = 0x6707</div><div class='add'>+0x4270 = 0x670E</div><div class='add'>+0x4271 = 0x6713</div><div class='add'>+0x4272 = 0x6719</div><div class='add'>+0x4273 = 0x671C</div><div class='add'>+0x4274 = 0x6720</div><div class='add'>+0x4275 = 0x6722</div><div class='add'>+0x4276 = 0x6733</div><div class='add'>+0x4277 = 0x673E</div><div class='add'>+0x4278 = 0x6745</div><div class='add'>+0x4279 = 0x6747</div><div class='add'>+0x427A = 0x6748</div><div class='add'>+0x427B = 0x674C</div><div class='add'>+0x427C = 0x6754</div><div class='add'>+0x427D = 0x6755</div><div class='add'>+0x427E = 0x675D</div><div class='add'>+0x4321 = 0x6766</div><div class='add'>+0x4322 = 0x676C</div><div class='add'>+0x4323 = 0x676E</div><div class='add'>+0x4324 = 0x6774</div><div class='add'>+0x4325 = 0x6776</div><div class='add'>+0x4326 = 0x677B</div><div class='add'>+0x4327 = 0x6781</div><div class='add'>+0x4328 = 0x6784</div><div class='add'>+0x4329 = 0x678E</div><div class='add'>+0x432A = 0x678F</div><div class='add'>+0x432B = 0x6791</div><div class='add'>+0x432C = 0x6793</div><div class='add'>+0x432D = 0x6796</div><div class='add'>+0x432E = 0x6798</div><div class='add'>+0x432F = 0x6799</div><div class='add'>+0x4330 = 0x679B</div><div class='add'>+0x4331 = 0x67B0</div><div class='add'>+0x4332 = 0x67B1</div><div class='add'>+0x4333 = 0x67B2</div><div class='add'>+0x4334 = 0x67B5</div><div class='add'>+0x4335 = 0x67BB</div><div class='add'>+0x4336 = 0x67BC</div><div class='add'>+0x4337 = 0x67BD</div><div class='add'>+0x4338 = 0x67F9</div><div class='add'>+0x4339 = 0x67C0</div><div class='add'>+0x433A = 0x67C2</div><div class='add'>+0x433B = 0x67C3</div><div class='add'>+0x433C = 0x67C5</div><div class='add'>+0x433D = 0x67C8</div><div class='add'>+0x433E = 0x67C9</div><div class='add'>+0x433F = 0x67D2</div><div class='add'>+0x4340 = 0x67D7</div><div class='add'>+0x4341 = 0x67D9</div><div class='add'>+0x4342 = 0x67DC</div><div class='add'>+0x4343 = 0x67E1</div><div class='add'>+0x4344 = 0x67E6</div><div class='add'>+0x4345 = 0x67F0</div><div class='add'>+0x4346 = 0x67F2</div><div class='add'>+0x4347 = 0x67F6</div><div class='add'>+0x4348 = 0x67F7</div><div class='add'>+0x4349 = 0x6852</div><div class='add'>+0x434A = 0x6814</div><div class='add'>+0x434B = 0x6819</div><div class='add'>+0x434C = 0x681D</div><div class='add'>+0x434D = 0x681F</div><div class='add'>+0x434E = 0x6828</div><div class='add'>+0x434F = 0x6827</div><div class='add'>+0x4350 = 0x682C</div><div class='add'>+0x4351 = 0x682D</div><div class='add'>+0x4352 = 0x682F</div><div class='add'>+0x4353 = 0x6830</div><div class='add'>+0x4354 = 0x6831</div><div class='add'>+0x4355 = 0x6833</div><div class='add'>+0x4356 = 0x683B</div><div class='add'>+0x4357 = 0x683F</div><div class='add'>+0x4358 = 0x6844</div><div class='add'>+0x4359 = 0x6845</div><div class='add'>+0x435A = 0x684A</div><div class='add'>+0x435B = 0x684C</div><div class='add'>+0x435C = 0x6855</div><div class='add'>+0x435D = 0x6857</div><div class='add'>+0x435E = 0x6858</div><div class='add'>+0x435F = 0x685B</div><div class='add'>+0x4360 = 0x686B</div><div class='add'>+0x4361 = 0x686E</div><div class='add'>+0x4362 = 0x686F</div><div class='add'>+0x4363 = 0x6870</div><div class='add'>+0x4364 = 0x6871</div><div class='add'>+0x4365 = 0x6872</div><div class='add'>+0x4366 = 0x6875</div><div class='add'>+0x4367 = 0x6879</div><div class='add'>+0x4368 = 0x687A</div><div class='add'>+0x4369 = 0x687B</div><div class='add'>+0x436A = 0x687C</div><div class='add'>+0x436B = 0x6882</div><div class='add'>+0x436C = 0x6884</div><div class='add'>+0x436D = 0x6886</div><div class='add'>+0x436E = 0x6888</div><div class='add'>+0x436F = 0x6896</div><div class='add'>+0x4370 = 0x6898</div><div class='add'>+0x4371 = 0x689A</div><div class='add'>+0x4372 = 0x689C</div><div class='add'>+0x4373 = 0x68A1</div><div class='add'>+0x4374 = 0x68A3</div><div class='add'>+0x4375 = 0x68A5</div><div class='add'>+0x4376 = 0x68A9</div><div class='add'>+0x4377 = 0x68AA</div><div class='add'>+0x4378 = 0x68AE</div><div class='add'>+0x4379 = 0x68B2</div><div class='add'>+0x437A = 0x68BB</div><div class='add'>+0x437B = 0x68C5</div><div class='add'>+0x437C = 0x68C8</div><div class='add'>+0x437D = 0x68CC</div><div class='add'>+0x437E = 0x68CF</div><div class='add'>+0x4421 = 0x68D0</div><div class='add'>+0x4422 = 0x68D1</div><div class='add'>+0x4423 = 0x68D3</div><div class='add'>+0x4424 = 0x68D6</div><div class='add'>+0x4425 = 0x68D9</div><div class='add'>+0x4426 = 0x68DC</div><div class='add'>+0x4427 = 0x68DD</div><div class='add'>+0x4428 = 0x68E5</div><div class='add'>+0x4429 = 0x68E8</div><div class='add'>+0x442A = 0x68EA</div><div class='add'>+0x442B = 0x68EB</div><div class='add'>+0x442C = 0x68EC</div><div class='add'>+0x442D = 0x68ED</div><div class='add'>+0x442E = 0x68F0</div><div class='add'>+0x442F = 0x68F1</div><div class='add'>+0x4430 = 0x68F5</div><div class='add'>+0x4431 = 0x68F6</div><div class='add'>+0x4432 = 0x68FB</div><div class='add'>+0x4433 = 0x68FC</div><div class='add'>+0x4434 = 0x68FD</div><div class='add'>+0x4435 = 0x6906</div><div class='add'>+0x4436 = 0x6909</div><div class='add'>+0x4437 = 0x690A</div><div class='add'>+0x4438 = 0x6910</div><div class='add'>+0x4439 = 0x6911</div><div class='add'>+0x443A = 0x6913</div><div class='add'>+0x443B = 0x6916</div><div class='add'>+0x443C = 0x6917</div><div class='add'>+0x443D = 0x6931</div><div class='add'>+0x443E = 0x6933</div><div class='add'>+0x443F = 0x6935</div><div class='add'>+0x4440 = 0x6938</div><div class='add'>+0x4441 = 0x693B</div><div class='add'>+0x4442 = 0x6942</div><div class='add'>+0x4443 = 0x6945</div><div class='add'>+0x4444 = 0x6949</div><div class='add'>+0x4445 = 0x694E</div><div class='add'>+0x4446 = 0x6957</div><div class='add'>+0x4447 = 0x695B</div><div class='add'>+0x4448 = 0x6963</div><div class='add'>+0x4449 = 0x6964</div><div class='add'>+0x444A = 0x6965</div><div class='add'>+0x444B = 0x6966</div><div class='add'>+0x444C = 0x6968</div><div class='add'>+0x444D = 0x6969</div><div class='add'>+0x444E = 0x696C</div><div class='add'>+0x444F = 0x6970</div><div class='add'>+0x4450 = 0x6971</div><div class='add'>+0x4451 = 0x6972</div><div class='add'>+0x4452 = 0x697A</div><div class='add'>+0x4453 = 0x697B</div><div class='add'>+0x4454 = 0x697F</div><div class='add'>+0x4455 = 0x6980</div><div class='add'>+0x4456 = 0x698D</div><div class='add'>+0x4457 = 0x6992</div><div class='add'>+0x4458 = 0x6996</div><div class='add'>+0x4459 = 0x6998</div><div class='add'>+0x445A = 0x69A1</div><div class='add'>+0x445B = 0x69A5</div><div class='add'>+0x445C = 0x69A6</div><div class='add'>+0x445D = 0x69A8</div><div class='add'>+0x445E = 0x69AB</div><div class='add'>+0x445F = 0x69AD</div><div class='add'>+0x4460 = 0x69AF</div><div class='add'>+0x4461 = 0x69B7</div><div class='add'>+0x4462 = 0x69B8</div><div class='add'>+0x4463 = 0x69BA</div><div class='add'>+0x4464 = 0x69BC</div><div class='add'>+0x4465 = 0x69C5</div><div class='add'>+0x4466 = 0x69C8</div><div class='add'>+0x4467 = 0x69D1</div><div class='add'>+0x4468 = 0x69D6</div><div class='add'>+0x4469 = 0x69D7</div><div class='add'>+0x446A = 0x69E2</div><div class='add'>+0x446B = 0x69E5</div><div class='add'>+0x446C = 0x69EE</div><div class='add'>+0x446D = 0x69EF</div><div class='add'>+0x446E = 0x69F1</div><div class='add'>+0x446F = 0x69F3</div><div class='add'>+0x4470 = 0x69F5</div><div class='add'>+0x4471 = 0x69FE</div><div class='add'>+0x4472 = 0x6A00</div><div class='add'>+0x4473 = 0x6A01</div><div class='add'>+0x4474 = 0x6A03</div><div class='add'>+0x4475 = 0x6A0F</div><div class='add'>+0x4476 = 0x6A11</div><div class='add'>+0x4477 = 0x6A15</div><div class='add'>+0x4478 = 0x6A1A</div><div class='add'>+0x4479 = 0x6A1D</div><div class='add'>+0x447A = 0x6A20</div><div class='add'>+0x447B = 0x6A24</div><div class='add'>+0x447C = 0x6A28</div><div class='add'>+0x447D = 0x6A30</div><div class='add'>+0x447E = 0x6A32</div><div class='add'>+0x4521 = 0x6A34</div><div class='add'>+0x4522 = 0x6A37</div><div class='add'>+0x4523 = 0x6A3B</div><div class='add'>+0x4524 = 0x6A3E</div><div class='add'>+0x4525 = 0x6A3F</div><div class='add'>+0x4526 = 0x6A45</div><div class='add'>+0x4527 = 0x6A46</div><div class='add'>+0x4528 = 0x6A49</div><div class='add'>+0x4529 = 0x6A4A</div><div class='add'>+0x452A = 0x6A4E</div><div class='add'>+0x452B = 0x6A50</div><div class='add'>+0x452C = 0x6A51</div><div class='add'>+0x452D = 0x6A52</div><div class='add'>+0x452E = 0x6A55</div><div class='add'>+0x452F = 0x6A56</div><div class='add'>+0x4530 = 0x6A5B</div><div class='add'>+0x4531 = 0x6A64</div><div class='add'>+0x4532 = 0x6A67</div><div class='add'>+0x4533 = 0x6A6A</div><div class='add'>+0x4534 = 0x6A71</div><div class='add'>+0x4535 = 0x6A73</div><div class='add'>+0x4536 = 0x6A7E</div><div class='add'>+0x4537 = 0x6A81</div><div class='add'>+0x4538 = 0x6A83</div><div class='add'>+0x4539 = 0x6A86</div><div class='add'>+0x453A = 0x6A87</div><div class='add'>+0x453B = 0x6A89</div><div class='add'>+0x453C = 0x6A8B</div><div class='add'>+0x453D = 0x6A91</div><div class='add'>+0x453E = 0x6A9B</div><div class='add'>+0x453F = 0x6A9D</div><div class='add'>+0x4540 = 0x6A9E</div><div class='add'>+0x4541 = 0x6A9F</div><div class='add'>+0x4542 = 0x6AA5</div><div class='add'>+0x4543 = 0x6AAB</div><div class='add'>+0x4544 = 0x6AAF</div><div class='add'>+0x4545 = 0x6AB0</div><div class='add'>+0x4546 = 0x6AB1</div><div class='add'>+0x4547 = 0x6AB4</div><div class='add'>+0x4548 = 0x6ABD</div><div class='add'>+0x4549 = 0x6ABE</div><div class='add'>+0x454A = 0x6ABF</div><div class='add'>+0x454B = 0x6AC6</div><div class='add'>+0x454C = 0x6AC9</div><div class='add'>+0x454D = 0x6AC8</div><div class='add'>+0x454E = 0x6ACC</div><div class='add'>+0x454F = 0x6AD0</div><div class='add'>+0x4550 = 0x6AD4</div><div class='add'>+0x4551 = 0x6AD5</div><div class='add'>+0x4552 = 0x6AD6</div><div class='add'>+0x4553 = 0x6ADC</div><div class='add'>+0x4554 = 0x6ADD</div><div class='add'>+0x4555 = 0x6AE4</div><div class='add'>+0x4556 = 0x6AE7</div><div class='add'>+0x4557 = 0x6AEC</div><div class='add'>+0x4558 = 0x6AF0</div><div class='add'>+0x4559 = 0x6AF1</div><div class='add'>+0x455A = 0x6AF2</div><div class='add'>+0x455B = 0x6AFC</div><div class='add'>+0x455C = 0x6AFD</div><div class='add'>+0x455D = 0x6B02</div><div class='add'>+0x455E = 0x6B03</div><div class='add'>+0x455F = 0x6B06</div><div class='add'>+0x4560 = 0x6B07</div><div class='add'>+0x4561 = 0x6B09</div><div class='add'>+0x4562 = 0x6B0F</div><div class='add'>+0x4563 = 0x6B10</div><div class='add'>+0x4564 = 0x6B11</div><div class='add'>+0x4565 = 0x6B17</div><div class='add'>+0x4566 = 0x6B1B</div><div class='add'>+0x4567 = 0x6B1E</div><div class='add'>+0x4568 = 0x6B24</div><div class='add'>+0x4569 = 0x6B28</div><div class='add'>+0x456A = 0x6B2B</div><div class='add'>+0x456B = 0x6B2C</div><div class='add'>+0x456C = 0x6B2F</div><div class='add'>+0x456D = 0x6B35</div><div class='add'>+0x456E = 0x6B36</div><div class='add'>+0x456F = 0x6B3B</div><div class='add'>+0x4570 = 0x6B3F</div><div class='add'>+0x4571 = 0x6B46</div><div class='add'>+0x4572 = 0x6B4A</div><div class='add'>+0x4573 = 0x6B4D</div><div class='add'>+0x4574 = 0x6B52</div><div class='add'>+0x4575 = 0x6B56</div><div class='add'>+0x4576 = 0x6B58</div><div class='add'>+0x4577 = 0x6B5D</div><div class='add'>+0x4578 = 0x6B60</div><div class='add'>+0x4579 = 0x6B67</div><div class='add'>+0x457A = 0x6B6B</div><div class='add'>+0x457B = 0x6B6E</div><div class='add'>+0x457C = 0x6B70</div><div class='add'>+0x457D = 0x6B75</div><div class='add'>+0x457E = 0x6B7D</div><div class='add'>+0x4621 = 0x6B7E</div><div class='add'>+0x4622 = 0x6B82</div><div class='add'>+0x4623 = 0x6B85</div><div class='add'>+0x4624 = 0x6B97</div><div class='add'>+0x4625 = 0x6B9B</div><div class='add'>+0x4626 = 0x6B9F</div><div class='add'>+0x4627 = 0x6BA0</div><div class='add'>+0x4628 = 0x6BA2</div><div class='add'>+0x4629 = 0x6BA3</div><div class='add'>+0x462A = 0x6BA8</div><div class='add'>+0x462B = 0x6BA9</div><div class='add'>+0x462C = 0x6BAC</div><div class='add'>+0x462D = 0x6BAD</div><div class='add'>+0x462E = 0x6BAE</div><div class='add'>+0x462F = 0x6BB0</div><div class='add'>+0x4630 = 0x6BB8</div><div class='add'>+0x4631 = 0x6BB9</div><div class='add'>+0x4632 = 0x6BBD</div><div class='add'>+0x4633 = 0x6BBE</div><div class='add'>+0x4634 = 0x6BC3</div><div class='add'>+0x4635 = 0x6BC4</div><div class='add'>+0x4636 = 0x6BC9</div><div class='add'>+0x4637 = 0x6BCC</div><div class='add'>+0x4638 = 0x6BD6</div><div class='add'>+0x4639 = 0x6BDA</div><div class='add'>+0x463A = 0x6BE1</div><div class='add'>+0x463B = 0x6BE3</div><div class='add'>+0x463C = 0x6BE6</div><div class='add'>+0x463D = 0x6BE7</div><div class='add'>+0x463E = 0x6BEE</div><div class='add'>+0x463F = 0x6BF1</div><div class='add'>+0x4640 = 0x6BF7</div><div class='add'>+0x4641 = 0x6BF9</div><div class='add'>+0x4642 = 0x6BFF</div><div class='add'>+0x4643 = 0x6C02</div><div class='add'>+0x4644 = 0x6C04</div><div class='add'>+0x4645 = 0x6C05</div><div class='add'>+0x4646 = 0x6C09</div><div class='add'>+0x4647 = 0x6C0D</div><div class='add'>+0x4648 = 0x6C0E</div><div class='add'>+0x4649 = 0x6C10</div><div class='add'>+0x464A = 0x6C12</div><div class='add'>+0x464B = 0x6C19</div><div class='add'>+0x464C = 0x6C1F</div><div class='add'>+0x464D = 0x6C26</div><div class='add'>+0x464E = 0x6C27</div><div class='add'>+0x464F = 0x6C28</div><div class='add'>+0x4650 = 0x6C2C</div><div class='add'>+0x4651 = 0x6C2E</div><div class='add'>+0x4652 = 0x6C33</div><div class='add'>+0x4653 = 0x6C35</div><div class='add'>+0x4654 = 0x6C36</div><div class='add'>+0x4655 = 0x6C3A</div><div class='add'>+0x4656 = 0x6C3B</div><div class='add'>+0x4657 = 0x6C3F</div><div class='add'>+0x4658 = 0x6C4A</div><div class='add'>+0x4659 = 0x6C4B</div><div class='add'>+0x465A = 0x6C4D</div><div class='add'>+0x465B = 0x6C4F</div><div class='add'>+0x465C = 0x6C52</div><div class='add'>+0x465D = 0x6C54</div><div class='add'>+0x465E = 0x6C59</div><div class='add'>+0x465F = 0x6C5B</div><div class='add'>+0x4660 = 0x6C5C</div><div class='add'>+0x4661 = 0x6C6B</div><div class='add'>+0x4662 = 0x6C6D</div><div class='add'>+0x4663 = 0x6C6F</div><div class='add'>+0x4664 = 0x6C74</div><div class='add'>+0x4665 = 0x6C76</div><div class='add'>+0x4666 = 0x6C78</div><div class='add'>+0x4667 = 0x6C79</div><div class='add'>+0x4668 = 0x6C7B</div><div class='add'>+0x4669 = 0x6C85</div><div class='add'>+0x466A = 0x6C86</div><div class='add'>+0x466B = 0x6C87</div><div class='add'>+0x466C = 0x6C89</div><div class='add'>+0x466D = 0x6C94</div><div class='add'>+0x466E = 0x6C95</div><div class='add'>+0x466F = 0x6C97</div><div class='add'>+0x4670 = 0x6C98</div><div class='add'>+0x4671 = 0x6C9C</div><div class='add'>+0x4672 = 0x6C9F</div><div class='add'>+0x4673 = 0x6CB0</div><div class='add'>+0x4674 = 0x6CB2</div><div class='add'>+0x4675 = 0x6CB4</div><div class='add'>+0x4676 = 0x6CC2</div><div class='add'>+0x4677 = 0x6CC6</div><div class='add'>+0x4678 = 0x6CCD</div><div class='add'>+0x4679 = 0x6CCF</div><div class='add'>+0x467A = 0x6CD0</div><div class='add'>+0x467B = 0x6CD1</div><div class='add'>+0x467C = 0x6CD2</div><div class='add'>+0x467D = 0x6CD4</div><div class='add'>+0x467E = 0x6CD6</div><div class='add'>+0x4721 = 0x6CDA</div><div class='add'>+0x4722 = 0x6CDC</div><div class='add'>+0x4723 = 0x6CE0</div><div class='add'>+0x4724 = 0x6CE7</div><div class='add'>+0x4725 = 0x6CE9</div><div class='add'>+0x4726 = 0x6CEB</div><div class='add'>+0x4727 = 0x6CEC</div><div class='add'>+0x4728 = 0x6CEE</div><div class='add'>+0x4729 = 0x6CF2</div><div class='add'>+0x472A = 0x6CF4</div><div class='add'>+0x472B = 0x6D04</div><div class='add'>+0x472C = 0x6D07</div><div class='add'>+0x472D = 0x6D0A</div><div class='add'>+0x472E = 0x6D0E</div><div class='add'>+0x472F = 0x6D0F</div><div class='add'>+0x4730 = 0x6D11</div><div class='add'>+0x4731 = 0x6D13</div><div class='add'>+0x4732 = 0x6D1A</div><div class='add'>+0x4733 = 0x6D26</div><div class='add'>+0x4734 = 0x6D27</div><div class='add'>+0x4735 = 0x6D28</div><div class='add'>+0x4736 = 0x6C67</div><div class='add'>+0x4737 = 0x6D2E</div><div class='add'>+0x4738 = 0x6D2F</div><div class='add'>+0x4739 = 0x6D31</div><div class='add'>+0x473A = 0x6D39</div><div class='add'>+0x473B = 0x6D3C</div><div class='add'>+0x473C = 0x6D3F</div><div class='add'>+0x473D = 0x6D57</div><div class='add'>+0x473E = 0x6D5E</div><div class='add'>+0x473F = 0x6D5F</div><div class='add'>+0x4740 = 0x6D61</div><div class='add'>+0x4741 = 0x6D65</div><div class='add'>+0x4742 = 0x6D67</div><div class='add'>+0x4743 = 0x6D6F</div><div class='add'>+0x4744 = 0x6D70</div><div class='add'>+0x4745 = 0x6D7C</div><div class='add'>+0x4746 = 0x6D82</div><div class='add'>+0x4747 = 0x6D87</div><div class='add'>+0x4748 = 0x6D91</div><div class='add'>+0x4749 = 0x6D92</div><div class='add'>+0x474A = 0x6D94</div><div class='add'>+0x474B = 0x6D96</div><div class='add'>+0x474C = 0x6D97</div><div class='add'>+0x474D = 0x6D98</div><div class='add'>+0x474E = 0x6DAA</div><div class='add'>+0x474F = 0x6DAC</div><div class='add'>+0x4750 = 0x6DB4</div><div class='add'>+0x4751 = 0x6DB7</div><div class='add'>+0x4752 = 0x6DB9</div><div class='add'>+0x4753 = 0x6DBD</div><div class='add'>+0x4754 = 0x6DBF</div><div class='add'>+0x4755 = 0x6DC4</div><div class='add'>+0x4756 = 0x6DC8</div><div class='add'>+0x4757 = 0x6DCA</div><div class='add'>+0x4758 = 0x6DCE</div><div class='add'>+0x4759 = 0x6DCF</div><div class='add'>+0x475A = 0x6DD6</div><div class='add'>+0x475B = 0x6DDB</div><div class='add'>+0x475C = 0x6DDD</div><div class='add'>+0x475D = 0x6DDF</div><div class='add'>+0x475E = 0x6DE0</div><div class='add'>+0x475F = 0x6DE2</div><div class='add'>+0x4760 = 0x6DE5</div><div class='add'>+0x4761 = 0x6DE9</div><div class='add'>+0x4762 = 0x6DEF</div><div class='add'>+0x4763 = 0x6DF0</div><div class='add'>+0x4764 = 0x6DF4</div><div class='add'>+0x4765 = 0x6DF6</div><div class='add'>+0x4766 = 0x6DFC</div><div class='add'>+0x4767 = 0x6E00</div><div class='add'>+0x4768 = 0x6E04</div><div class='add'>+0x4769 = 0x6E1E</div><div class='add'>+0x476A = 0x6E22</div><div class='add'>+0x476B = 0x6E27</div><div class='add'>+0x476C = 0x6E32</div><div class='add'>+0x476D = 0x6E36</div><div class='add'>+0x476E = 0x6E39</div><div class='add'>+0x476F = 0x6E3B</div><div class='add'>+0x4770 = 0x6E3C</div><div class='add'>+0x4771 = 0x6E44</div><div class='add'>+0x4772 = 0x6E45</div><div class='add'>+0x4773 = 0x6E48</div><div class='add'>+0x4774 = 0x6E49</div><div class='add'>+0x4775 = 0x6E4B</div><div class='add'>+0x4776 = 0x6E4F</div><div class='add'>+0x4777 = 0x6E51</div><div class='add'>+0x4778 = 0x6E52</div><div class='add'>+0x4779 = 0x6E53</div><div class='add'>+0x477A = 0x6E54</div><div class='add'>+0x477B = 0x6E57</div><div class='add'>+0x477C = 0x6E5C</div><div class='add'>+0x477D = 0x6E5D</div><div class='add'>+0x477E = 0x6E5E</div><div class='add'>+0x4821 = 0x6E62</div><div class='add'>+0x4822 = 0x6E63</div><div class='add'>+0x4823 = 0x6E68</div><div class='add'>+0x4824 = 0x6E73</div><div class='add'>+0x4825 = 0x6E7B</div><div class='add'>+0x4826 = 0x6E7D</div><div class='add'>+0x4827 = 0x6E8D</div><div class='add'>+0x4828 = 0x6E93</div><div class='add'>+0x4829 = 0x6E99</div><div class='add'>+0x482A = 0x6EA0</div><div class='add'>+0x482B = 0x6EA7</div><div class='add'>+0x482C = 0x6EAD</div><div class='add'>+0x482D = 0x6EAE</div><div class='add'>+0x482E = 0x6EB1</div><div class='add'>+0x482F = 0x6EB3</div><div class='add'>+0x4830 = 0x6EBB</div><div class='add'>+0x4831 = 0x6EBF</div><div class='add'>+0x4832 = 0x6EC0</div><div class='add'>+0x4833 = 0x6EC1</div><div class='add'>+0x4834 = 0x6EC3</div><div class='add'>+0x4835 = 0x6EC7</div><div class='add'>+0x4836 = 0x6EC8</div><div class='add'>+0x4837 = 0x6ECA</div><div class='add'>+0x4838 = 0x6ECD</div><div class='add'>+0x4839 = 0x6ECE</div><div class='add'>+0x483A = 0x6ECF</div><div class='add'>+0x483B = 0x6EEB</div><div class='add'>+0x483C = 0x6EED</div><div class='add'>+0x483D = 0x6EEE</div><div class='add'>+0x483E = 0x6EF9</div><div class='add'>+0x483F = 0x6EFB</div><div class='add'>+0x4840 = 0x6EFD</div><div class='add'>+0x4841 = 0x6F04</div><div class='add'>+0x4842 = 0x6F08</div><div class='add'>+0x4843 = 0x6F0A</div><div class='add'>+0x4844 = 0x6F0C</div><div class='add'>+0x4845 = 0x6F0D</div><div class='add'>+0x4846 = 0x6F16</div><div class='add'>+0x4847 = 0x6F18</div><div class='add'>+0x4848 = 0x6F1A</div><div class='add'>+0x4849 = 0x6F1B</div><div class='add'>+0x484A = 0x6F26</div><div class='add'>+0x484B = 0x6F29</div><div class='add'>+0x484C = 0x6F2A</div><div class='add'>+0x484D = 0x6F2F</div><div class='add'>+0x484E = 0x6F30</div><div class='add'>+0x484F = 0x6F33</div><div class='add'>+0x4850 = 0x6F36</div><div class='add'>+0x4851 = 0x6F3B</div><div class='add'>+0x4852 = 0x6F3C</div><div class='add'>+0x4853 = 0x6F2D</div><div class='add'>+0x4854 = 0x6F4F</div><div class='add'>+0x4855 = 0x6F51</div><div class='add'>+0x4856 = 0x6F52</div><div class='add'>+0x4857 = 0x6F53</div><div class='add'>+0x4858 = 0x6F57</div><div class='add'>+0x4859 = 0x6F59</div><div class='add'>+0x485A = 0x6F5A</div><div class='add'>+0x485B = 0x6F5D</div><div class='add'>+0x485C = 0x6F5E</div><div class='add'>+0x485D = 0x6F61</div><div class='add'>+0x485E = 0x6F62</div><div class='add'>+0x485F = 0x6F68</div><div class='add'>+0x4860 = 0x6F6C</div><div class='add'>+0x4861 = 0x6F7D</div><div class='add'>+0x4862 = 0x6F7E</div><div class='add'>+0x4863 = 0x6F83</div><div class='add'>+0x4864 = 0x6F87</div><div class='add'>+0x4865 = 0x6F88</div><div class='add'>+0x4866 = 0x6F8B</div><div class='add'>+0x4867 = 0x6F8C</div><div class='add'>+0x4868 = 0x6F8D</div><div class='add'>+0x4869 = 0x6F90</div><div class='add'>+0x486A = 0x6F92</div><div class='add'>+0x486B = 0x6F93</div><div class='add'>+0x486C = 0x6F94</div><div class='add'>+0x486D = 0x6F96</div><div class='add'>+0x486E = 0x6F9A</div><div class='add'>+0x486F = 0x6F9F</div><div class='add'>+0x4870 = 0x6FA0</div><div class='add'>+0x4871 = 0x6FA5</div><div class='add'>+0x4872 = 0x6FA6</div><div class='add'>+0x4873 = 0x6FA7</div><div class='add'>+0x4874 = 0x6FA8</div><div class='add'>+0x4875 = 0x6FAE</div><div class='add'>+0x4876 = 0x6FAF</div><div class='add'>+0x4877 = 0x6FB0</div><div class='add'>+0x4878 = 0x6FB5</div><div class='add'>+0x4879 = 0x6FB6</div><div class='add'>+0x487A = 0x6FBC</div><div class='add'>+0x487B = 0x6FC5</div><div class='add'>+0x487C = 0x6FC7</div><div class='add'>+0x487D = 0x6FC8</div><div class='add'>+0x487E = 0x6FCA</div><div class='add'>+0x4921 = 0x6FDA</div><div class='add'>+0x4922 = 0x6FDE</div><div class='add'>+0x4923 = 0x6FE8</div><div class='add'>+0x4924 = 0x6FE9</div><div class='add'>+0x4925 = 0x6FF0</div><div class='add'>+0x4926 = 0x6FF5</div><div class='add'>+0x4927 = 0x6FF9</div><div class='add'>+0x4928 = 0x6FFC</div><div class='add'>+0x4929 = 0x6FFD</div><div class='add'>+0x492A = 0x7000</div><div class='add'>+0x492B = 0x7005</div><div class='add'>+0x492C = 0x7006</div><div class='add'>+0x492D = 0x7007</div><div class='add'>+0x492E = 0x700D</div><div class='add'>+0x492F = 0x7017</div><div class='add'>+0x4930 = 0x7020</div><div class='add'>+0x4931 = 0x7023</div><div class='add'>+0x4932 = 0x702F</div><div class='add'>+0x4933 = 0x7034</div><div class='add'>+0x4934 = 0x7037</div><div class='add'>+0x4935 = 0x7039</div><div class='add'>+0x4936 = 0x703C</div><div class='add'>+0x4937 = 0x7043</div><div class='add'>+0x4938 = 0x7044</div><div class='add'>+0x4939 = 0x7048</div><div class='add'>+0x493A = 0x7049</div><div class='add'>+0x493B = 0x704A</div><div class='add'>+0x493C = 0x704B</div><div class='add'>+0x493D = 0x7054</div><div class='add'>+0x493E = 0x7055</div><div class='add'>+0x493F = 0x705D</div><div class='add'>+0x4940 = 0x705E</div><div class='add'>+0x4941 = 0x704E</div><div class='add'>+0x4942 = 0x7064</div><div class='add'>+0x4943 = 0x7065</div><div class='add'>+0x4944 = 0x706C</div><div class='add'>+0x4945 = 0x706E</div><div class='add'>+0x4946 = 0x7075</div><div class='add'>+0x4947 = 0x7076</div><div class='add'>+0x4948 = 0x707E</div><div class='add'>+0x4949 = 0x7081</div><div class='add'>+0x494A = 0x7085</div><div class='add'>+0x494B = 0x7086</div><div class='add'>+0x494C = 0x7094</div><div class='add'>+0x494D = 0x7095</div><div class='add'>+0x494E = 0x7096</div><div class='add'>+0x494F = 0x7097</div><div class='add'>+0x4950 = 0x7098</div><div class='add'>+0x4951 = 0x709B</div><div class='add'>+0x4952 = 0x70A4</div><div class='add'>+0x4953 = 0x70AB</div><div class='add'>+0x4954 = 0x70B0</div><div class='add'>+0x4955 = 0x70B1</div><div class='add'>+0x4956 = 0x70B4</div><div class='add'>+0x4957 = 0x70B7</div><div class='add'>+0x4958 = 0x70CA</div><div class='add'>+0x4959 = 0x70D1</div><div class='add'>+0x495A = 0x70D3</div><div class='add'>+0x495B = 0x70D4</div><div class='add'>+0x495C = 0x70D5</div><div class='add'>+0x495D = 0x70D6</div><div class='add'>+0x495E = 0x70D8</div><div class='add'>+0x495F = 0x70DC</div><div class='add'>+0x4960 = 0x70E4</div><div class='add'>+0x4961 = 0x70FA</div><div class='add'>+0x4962 = 0x7103</div><div class='add'>+0x4963 = 0x7104</div><div class='add'>+0x4964 = 0x7105</div><div class='add'>+0x4965 = 0x7106</div><div class='add'>+0x4966 = 0x7107</div><div class='add'>+0x4967 = 0x710B</div><div class='add'>+0x4968 = 0x710C</div><div class='add'>+0x4969 = 0x710F</div><div class='add'>+0x496A = 0x711E</div><div class='add'>+0x496B = 0x7120</div><div class='add'>+0x496C = 0x712B</div><div class='add'>+0x496D = 0x712D</div><div class='add'>+0x496E = 0x712F</div><div class='add'>+0x496F = 0x7130</div><div class='add'>+0x4970 = 0x7131</div><div class='add'>+0x4971 = 0x7138</div><div class='add'>+0x4972 = 0x7141</div><div class='add'>+0x4973 = 0x7145</div><div class='add'>+0x4974 = 0x7146</div><div class='add'>+0x4975 = 0x7147</div><div class='add'>+0x4976 = 0x714A</div><div class='add'>+0x4977 = 0x714B</div><div class='add'>+0x4978 = 0x7150</div><div class='add'>+0x4979 = 0x7152</div><div class='add'>+0x497A = 0x7157</div><div class='add'>+0x497B = 0x715A</div><div class='add'>+0x497C = 0x715C</div><div class='add'>+0x497D = 0x715E</div><div class='add'>+0x497E = 0x7160</div><div class='add'>+0x4A21 = 0x7168</div><div class='add'>+0x4A22 = 0x7179</div><div class='add'>+0x4A23 = 0x7180</div><div class='add'>+0x4A24 = 0x7185</div><div class='add'>+0x4A25 = 0x7187</div><div class='add'>+0x4A26 = 0x718C</div><div class='add'>+0x4A27 = 0x7192</div><div class='add'>+0x4A28 = 0x719A</div><div class='add'>+0x4A29 = 0x719B</div><div class='add'>+0x4A2A = 0x71A0</div><div class='add'>+0x4A2B = 0x71A2</div><div class='add'>+0x4A2C = 0x71AF</div><div class='add'>+0x4A2D = 0x71B0</div><div class='add'>+0x4A2E = 0x71B2</div><div class='add'>+0x4A2F = 0x71B3</div><div class='add'>+0x4A30 = 0x71BA</div><div class='add'>+0x4A31 = 0x71BF</div><div class='add'>+0x4A32 = 0x71C0</div><div class='add'>+0x4A33 = 0x71C1</div><div class='add'>+0x4A34 = 0x71C4</div><div class='add'>+0x4A35 = 0x71CB</div><div class='add'>+0x4A36 = 0x71CC</div><div class='add'>+0x4A37 = 0x71D3</div><div class='add'>+0x4A38 = 0x71D6</div><div class='add'>+0x4A39 = 0x71D9</div><div class='add'>+0x4A3A = 0x71DA</div><div class='add'>+0x4A3B = 0x71DC</div><div class='add'>+0x4A3C = 0x71F8</div><div class='add'>+0x4A3D = 0x71FE</div><div class='add'>+0x4A3E = 0x7200</div><div class='add'>+0x4A3F = 0x7207</div><div class='add'>+0x4A40 = 0x7208</div><div class='add'>+0x4A41 = 0x7209</div><div class='add'>+0x4A42 = 0x7213</div><div class='add'>+0x4A43 = 0x7217</div><div class='add'>+0x4A44 = 0x721A</div><div class='add'>+0x4A45 = 0x721D</div><div class='add'>+0x4A46 = 0x721F</div><div class='add'>+0x4A47 = 0x7224</div><div class='add'>+0x4A48 = 0x722B</div><div class='add'>+0x4A49 = 0x722F</div><div class='add'>+0x4A4A = 0x7234</div><div class='add'>+0x4A4B = 0x7238</div><div class='add'>+0x4A4C = 0x7239</div><div class='add'>+0x4A4D = 0x7241</div><div class='add'>+0x4A4E = 0x7242</div><div class='add'>+0x4A4F = 0x7243</div><div class='add'>+0x4A50 = 0x7245</div><div class='add'>+0x4A51 = 0x724E</div><div class='add'>+0x4A52 = 0x724F</div><div class='add'>+0x4A53 = 0x7250</div><div class='add'>+0x4A54 = 0x7253</div><div class='add'>+0x4A55 = 0x7255</div><div class='add'>+0x4A56 = 0x7256</div><div class='add'>+0x4A57 = 0x725A</div><div class='add'>+0x4A58 = 0x725C</div><div class='add'>+0x4A59 = 0x725E</div><div class='add'>+0x4A5A = 0x7260</div><div class='add'>+0x4A5B = 0x7263</div><div class='add'>+0x4A5C = 0x7268</div><div class='add'>+0x4A5D = 0x726B</div><div class='add'>+0x4A5E = 0x726E</div><div class='add'>+0x4A5F = 0x726F</div><div class='add'>+0x4A60 = 0x7271</div><div class='add'>+0x4A61 = 0x7277</div><div class='add'>+0x4A62 = 0x7278</div><div class='add'>+0x4A63 = 0x727B</div><div class='add'>+0x4A64 = 0x727C</div><div class='add'>+0x4A65 = 0x727F</div><div class='add'>+0x4A66 = 0x7284</div><div class='add'>+0x4A67 = 0x7289</div><div class='add'>+0x4A68 = 0x728D</div><div class='add'>+0x4A69 = 0x728E</div><div class='add'>+0x4A6A = 0x7293</div><div class='add'>+0x4A6B = 0x729B</div><div class='add'>+0x4A6C = 0x72A8</div><div class='add'>+0x4A6D = 0x72AD</div><div class='add'>+0x4A6E = 0x72AE</div><div class='add'>+0x4A6F = 0x72B1</div><div class='add'>+0x4A70 = 0x72B4</div><div class='add'>+0x4A71 = 0x72BE</div><div class='add'>+0x4A72 = 0x72C1</div><div class='add'>+0x4A73 = 0x72C7</div><div class='add'>+0x4A74 = 0x72C9</div><div class='add'>+0x4A75 = 0x72CC</div><div class='add'>+0x4A76 = 0x72D5</div><div class='add'>+0x4A77 = 0x72D6</div><div class='add'>+0x4A78 = 0x72D8</div><div class='add'>+0x4A79 = 0x72DF</div><div class='add'>+0x4A7A = 0x72E5</div><div class='add'>+0x4A7B = 0x72F3</div><div class='add'>+0x4A7C = 0x72F4</div><div class='add'>+0x4A7D = 0x72FA</div><div class='add'>+0x4A7E = 0x72FB</div><div class='add'>+0x4B21 = 0x72FE</div><div class='add'>+0x4B22 = 0x7302</div><div class='add'>+0x4B23 = 0x7304</div><div class='add'>+0x4B24 = 0x7305</div><div class='add'>+0x4B25 = 0x7307</div><div class='add'>+0x4B26 = 0x730B</div><div class='add'>+0x4B27 = 0x730D</div><div class='add'>+0x4B28 = 0x7312</div><div class='add'>+0x4B29 = 0x7313</div><div class='add'>+0x4B2A = 0x7318</div><div class='add'>+0x4B2B = 0x7319</div><div class='add'>+0x4B2C = 0x731E</div><div class='add'>+0x4B2D = 0x7322</div><div class='add'>+0x4B2E = 0x7324</div><div class='add'>+0x4B2F = 0x7327</div><div class='add'>+0x4B30 = 0x7328</div><div class='add'>+0x4B31 = 0x732C</div><div class='add'>+0x4B32 = 0x7331</div><div class='add'>+0x4B33 = 0x7332</div><div class='add'>+0x4B34 = 0x7335</div><div class='add'>+0x4B35 = 0x733A</div><div class='add'>+0x4B36 = 0x733B</div><div class='add'>+0x4B37 = 0x733D</div><div class='add'>+0x4B38 = 0x7343</div><div class='add'>+0x4B39 = 0x734D</div><div class='add'>+0x4B3A = 0x7350</div><div class='add'>+0x4B3B = 0x7352</div><div class='add'>+0x4B3C = 0x7356</div><div class='add'>+0x4B3D = 0x7358</div><div class='add'>+0x4B3E = 0x735D</div><div class='add'>+0x4B3F = 0x735E</div><div class='add'>+0x4B40 = 0x735F</div><div class='add'>+0x4B41 = 0x7360</div><div class='add'>+0x4B42 = 0x7366</div><div class='add'>+0x4B43 = 0x7367</div><div class='add'>+0x4B44 = 0x7369</div><div class='add'>+0x4B45 = 0x736B</div><div class='add'>+0x4B46 = 0x736C</div><div class='add'>+0x4B47 = 0x736E</div><div class='add'>+0x4B48 = 0x736F</div><div class='add'>+0x4B49 = 0x7371</div><div class='add'>+0x4B4A = 0x7377</div><div class='add'>+0x4B4B = 0x7379</div><div class='add'>+0x4B4C = 0x737C</div><div class='add'>+0x4B4D = 0x7380</div><div class='add'>+0x4B4E = 0x7381</div><div class='add'>+0x4B4F = 0x7383</div><div class='add'>+0x4B50 = 0x7385</div><div class='add'>+0x4B51 = 0x7386</div><div class='add'>+0x4B52 = 0x738E</div><div class='add'>+0x4B53 = 0x7390</div><div class='add'>+0x4B54 = 0x7393</div><div class='add'>+0x4B55 = 0x7395</div><div class='add'>+0x4B56 = 0x7397</div><div class='add'>+0x4B57 = 0x7398</div><div class='add'>+0x4B58 = 0x739C</div><div class='add'>+0x4B59 = 0x739E</div><div class='add'>+0x4B5A = 0x739F</div><div class='add'>+0x4B5B = 0x73A0</div><div class='add'>+0x4B5C = 0x73A2</div><div class='add'>+0x4B5D = 0x73A5</div><div class='add'>+0x4B5E = 0x73A6</div><div class='add'>+0x4B5F = 0x73AA</div><div class='add'>+0x4B60 = 0x73AB</div><div class='add'>+0x4B61 = 0x73AD</div><div class='add'>+0x4B62 = 0x73B5</div><div class='add'>+0x4B63 = 0x73B7</div><div class='add'>+0x4B64 = 0x73B9</div><div class='add'>+0x4B65 = 0x73BC</div><div class='add'>+0x4B66 = 0x73BD</div><div class='add'>+0x4B67 = 0x73BF</div><div class='add'>+0x4B68 = 0x73C5</div><div class='add'>+0x4B69 = 0x73C6</div><div class='add'>+0x4B6A = 0x73C9</div><div class='add'>+0x4B6B = 0x73CB</div><div class='add'>+0x4B6C = 0x73CC</div><div class='add'>+0x4B6D = 0x73CF</div><div class='add'>+0x4B6E = 0x73D2</div><div class='add'>+0x4B6F = 0x73D3</div><div class='add'>+0x4B70 = 0x73D6</div><div class='add'>+0x4B71 = 0x73D9</div><div class='add'>+0x4B72 = 0x73DD</div><div class='add'>+0x4B73 = 0x73E1</div><div class='add'>+0x4B74 = 0x73E3</div><div class='add'>+0x4B75 = 0x73E6</div><div class='add'>+0x4B76 = 0x73E7</div><div class='add'>+0x4B77 = 0x73E9</div><div class='add'>+0x4B78 = 0x73F4</div><div class='add'>+0x4B79 = 0x73F5</div><div class='add'>+0x4B7A = 0x73F7</div><div class='add'>+0x4B7B = 0x73F9</div><div class='add'>+0x4B7C = 0x73FA</div><div class='add'>+0x4B7D = 0x73FB</div><div class='add'>+0x4B7E = 0x73FD</div><div class='add'>+0x4C21 = 0x73FF</div><div class='add'>+0x4C22 = 0x7400</div><div class='add'>+0x4C23 = 0x7401</div><div class='add'>+0x4C24 = 0x7404</div><div class='add'>+0x4C25 = 0x7407</div><div class='add'>+0x4C26 = 0x740A</div><div class='add'>+0x4C27 = 0x7411</div><div class='add'>+0x4C28 = 0x741A</div><div class='add'>+0x4C29 = 0x741B</div><div class='add'>+0x4C2A = 0x7424</div><div class='add'>+0x4C2B = 0x7426</div><div class='add'>+0x4C2C = 0x7428</div><div class='add'>+0x4C2D = 0x7429</div><div class='add'>+0x4C2E = 0x742A</div><div class='add'>+0x4C2F = 0x742B</div><div class='add'>+0x4C30 = 0x742C</div><div class='add'>+0x4C31 = 0x742D</div><div class='add'>+0x4C32 = 0x742E</div><div class='add'>+0x4C33 = 0x742F</div><div class='add'>+0x4C34 = 0x7430</div><div class='add'>+0x4C35 = 0x7431</div><div class='add'>+0x4C36 = 0x7439</div><div class='add'>+0x4C37 = 0x7440</div><div class='add'>+0x4C38 = 0x7443</div><div class='add'>+0x4C39 = 0x7444</div><div class='add'>+0x4C3A = 0x7446</div><div class='add'>+0x4C3B = 0x7447</div><div class='add'>+0x4C3C = 0x744B</div><div class='add'>+0x4C3D = 0x744D</div><div class='add'>+0x4C3E = 0x7451</div><div class='add'>+0x4C3F = 0x7452</div><div class='add'>+0x4C40 = 0x7457</div><div class='add'>+0x4C41 = 0x745D</div><div class='add'>+0x4C42 = 0x7462</div><div class='add'>+0x4C43 = 0x7466</div><div class='add'>+0x4C44 = 0x7467</div><div class='add'>+0x4C45 = 0x7468</div><div class='add'>+0x4C46 = 0x746B</div><div class='add'>+0x4C47 = 0x746D</div><div class='add'>+0x4C48 = 0x746E</div><div class='add'>+0x4C49 = 0x7471</div><div class='add'>+0x4C4A = 0x7472</div><div class='add'>+0x4C4B = 0x7480</div><div class='add'>+0x4C4C = 0x7481</div><div class='add'>+0x4C4D = 0x7485</div><div class='add'>+0x4C4E = 0x7486</div><div class='add'>+0x4C4F = 0x7487</div><div class='add'>+0x4C50 = 0x7489</div><div class='add'>+0x4C51 = 0x748F</div><div class='add'>+0x4C52 = 0x7490</div><div class='add'>+0x4C53 = 0x7491</div><div class='add'>+0x4C54 = 0x7492</div><div class='add'>+0x4C55 = 0x7498</div><div class='add'>+0x4C56 = 0x7499</div><div class='add'>+0x4C57 = 0x749A</div><div class='add'>+0x4C58 = 0x749C</div><div class='add'>+0x4C59 = 0x749F</div><div class='add'>+0x4C5A = 0x74A0</div><div class='add'>+0x4C5B = 0x74A1</div><div class='add'>+0x4C5C = 0x74A3</div><div class='add'>+0x4C5D = 0x74A6</div><div class='add'>+0x4C5E = 0x74A8</div><div class='add'>+0x4C5F = 0x74A9</div><div class='add'>+0x4C60 = 0x74AA</div><div class='add'>+0x4C61 = 0x74AB</div><div class='add'>+0x4C62 = 0x74AE</div><div class='add'>+0x4C63 = 0x74AF</div><div class='add'>+0x4C64 = 0x74B1</div><div class='add'>+0x4C65 = 0x74B2</div><div class='add'>+0x4C66 = 0x74B5</div><div class='add'>+0x4C67 = 0x74B9</div><div class='add'>+0x4C68 = 0x74BB</div><div class='add'>+0x4C69 = 0x74BF</div><div class='add'>+0x4C6A = 0x74C8</div><div class='add'>+0x4C6B = 0x74C9</div><div class='add'>+0x4C6C = 0x74CC</div><div class='add'>+0x4C6D = 0x74D0</div><div class='add'>+0x4C6E = 0x74D3</div><div class='add'>+0x4C6F = 0x74D8</div><div class='add'>+0x4C70 = 0x74DA</div><div class='add'>+0x4C71 = 0x74DB</div><div class='add'>+0x4C72 = 0x74DE</div><div class='add'>+0x4C73 = 0x74DF</div><div class='add'>+0x4C74 = 0x74E4</div><div class='add'>+0x4C75 = 0x74E8</div><div class='add'>+0x4C76 = 0x74EA</div><div class='add'>+0x4C77 = 0x74EB</div><div class='add'>+0x4C78 = 0x74EF</div><div class='add'>+0x4C79 = 0x74F4</div><div class='add'>+0x4C7A = 0x74FA</div><div class='add'>+0x4C7B = 0x74FB</div><div class='add'>+0x4C7C = 0x74FC</div><div class='add'>+0x4C7D = 0x74FF</div><div class='add'>+0x4C7E = 0x7506</div><div class='add'>+0x4D21 = 0x7512</div><div class='add'>+0x4D22 = 0x7516</div><div class='add'>+0x4D23 = 0x7517</div><div class='add'>+0x4D24 = 0x7520</div><div class='add'>+0x4D25 = 0x7521</div><div class='add'>+0x4D26 = 0x7524</div><div class='add'>+0x4D27 = 0x7527</div><div class='add'>+0x4D28 = 0x7529</div><div class='add'>+0x4D29 = 0x752A</div><div class='add'>+0x4D2A = 0x752F</div><div class='add'>+0x4D2B = 0x7536</div><div class='add'>+0x4D2C = 0x7539</div><div class='add'>+0x4D2D = 0x753D</div><div class='add'>+0x4D2E = 0x753E</div><div class='add'>+0x4D2F = 0x753F</div><div class='add'>+0x4D30 = 0x7540</div><div class='add'>+0x4D31 = 0x7543</div><div class='add'>+0x4D32 = 0x7547</div><div class='add'>+0x4D33 = 0x7548</div><div class='add'>+0x4D34 = 0x754E</div><div class='add'>+0x4D35 = 0x7550</div><div class='add'>+0x4D36 = 0x7552</div><div class='add'>+0x4D37 = 0x7557</div><div class='add'>+0x4D38 = 0x755E</div><div class='add'>+0x4D39 = 0x755F</div><div class='add'>+0x4D3A = 0x7561</div><div class='add'>+0x4D3B = 0x756F</div><div class='add'>+0x4D3C = 0x7571</div><div class='add'>+0x4D3D = 0x7579</div><div class='add'>+0x4D3E = 0x757A</div><div class='add'>+0x4D3F = 0x757B</div><div class='add'>+0x4D40 = 0x757C</div><div class='add'>+0x4D41 = 0x757D</div><div class='add'>+0x4D42 = 0x757E</div><div class='add'>+0x4D43 = 0x7581</div><div class='add'>+0x4D44 = 0x7585</div><div class='add'>+0x4D45 = 0x7590</div><div class='add'>+0x4D46 = 0x7592</div><div class='add'>+0x4D47 = 0x7593</div><div class='add'>+0x4D48 = 0x7595</div><div class='add'>+0x4D49 = 0x7599</div><div class='add'>+0x4D4A = 0x759C</div><div class='add'>+0x4D4B = 0x75A2</div><div class='add'>+0x4D4C = 0x75A4</div><div class='add'>+0x4D4D = 0x75B4</div><div class='add'>+0x4D4E = 0x75BA</div><div class='add'>+0x4D4F = 0x75BF</div><div class='add'>+0x4D50 = 0x75C0</div><div class='add'>+0x4D51 = 0x75C1</div><div class='add'>+0x4D52 = 0x75C4</div><div class='add'>+0x4D53 = 0x75C6</div><div class='add'>+0x4D54 = 0x75CC</div><div class='add'>+0x4D55 = 0x75CE</div><div class='add'>+0x4D56 = 0x75CF</div><div class='add'>+0x4D57 = 0x75D7</div><div class='add'>+0x4D58 = 0x75DC</div><div class='add'>+0x4D59 = 0x75DF</div><div class='add'>+0x4D5A = 0x75E0</div><div class='add'>+0x4D5B = 0x75E1</div><div class='add'>+0x4D5C = 0x75E4</div><div class='add'>+0x4D5D = 0x75E7</div><div class='add'>+0x4D5E = 0x75EC</div><div class='add'>+0x4D5F = 0x75EE</div><div class='add'>+0x4D60 = 0x75EF</div><div class='add'>+0x4D61 = 0x75F1</div><div class='add'>+0x4D62 = 0x75F9</div><div class='add'>+0x4D63 = 0x7600</div><div class='add'>+0x4D64 = 0x7602</div><div class='add'>+0x4D65 = 0x7603</div><div class='add'>+0x4D66 = 0x7604</div><div class='add'>+0x4D67 = 0x7607</div><div class='add'>+0x4D68 = 0x7608</div><div class='add'>+0x4D69 = 0x760A</div><div class='add'>+0x4D6A = 0x760C</div><div class='add'>+0x4D6B = 0x760F</div><div class='add'>+0x4D6C = 0x7612</div><div class='add'>+0x4D6D = 0x7613</div><div class='add'>+0x4D6E = 0x7615</div><div class='add'>+0x4D6F = 0x7616</div><div class='add'>+0x4D70 = 0x7619</div><div class='add'>+0x4D71 = 0x761B</div><div class='add'>+0x4D72 = 0x761C</div><div class='add'>+0x4D73 = 0x761D</div><div class='add'>+0x4D74 = 0x761E</div><div class='add'>+0x4D75 = 0x7623</div><div class='add'>+0x4D76 = 0x7625</div><div class='add'>+0x4D77 = 0x7626</div><div class='add'>+0x4D78 = 0x7629</div><div class='add'>+0x4D79 = 0x762D</div><div class='add'>+0x4D7A = 0x7632</div><div class='add'>+0x4D7B = 0x7633</div><div class='add'>+0x4D7C = 0x7635</div><div class='add'>+0x4D7D = 0x7638</div><div class='add'>+0x4D7E = 0x7639</div><div class='add'>+0x4E21 = 0x763A</div><div class='add'>+0x4E22 = 0x763C</div><div class='add'>+0x4E23 = 0x764A</div><div class='add'>+0x4E24 = 0x7640</div><div class='add'>+0x4E25 = 0x7641</div><div class='add'>+0x4E26 = 0x7643</div><div class='add'>+0x4E27 = 0x7644</div><div class='add'>+0x4E28 = 0x7645</div><div class='add'>+0x4E29 = 0x7649</div><div class='add'>+0x4E2A = 0x764B</div><div class='add'>+0x4E2B = 0x7655</div><div class='add'>+0x4E2C = 0x7659</div><div class='add'>+0x4E2D = 0x765F</div><div class='add'>+0x4E2E = 0x7664</div><div class='add'>+0x4E2F = 0x7665</div><div class='add'>+0x4E30 = 0x766D</div><div class='add'>+0x4E31 = 0x766E</div><div class='add'>+0x4E32 = 0x766F</div><div class='add'>+0x4E33 = 0x7671</div><div class='add'>+0x4E34 = 0x7674</div><div class='add'>+0x4E35 = 0x7681</div><div class='add'>+0x4E36 = 0x7685</div><div class='add'>+0x4E37 = 0x768C</div><div class='add'>+0x4E38 = 0x768D</div><div class='add'>+0x4E39 = 0x7695</div><div class='add'>+0x4E3A = 0x769B</div><div class='add'>+0x4E3B = 0x769C</div><div class='add'>+0x4E3C = 0x769D</div><div class='add'>+0x4E3D = 0x769F</div><div class='add'>+0x4E3E = 0x76A0</div><div class='add'>+0x4E3F = 0x76A2</div><div class='add'>+0x4E40 = 0x76A3</div><div class='add'>+0x4E41 = 0x76A4</div><div class='add'>+0x4E42 = 0x76A5</div><div class='add'>+0x4E43 = 0x76A6</div><div class='add'>+0x4E44 = 0x76A7</div><div class='add'>+0x4E45 = 0x76A8</div><div class='add'>+0x4E46 = 0x76AA</div><div class='add'>+0x4E47 = 0x76AD</div><div class='add'>+0x4E48 = 0x76BD</div><div class='add'>+0x4E49 = 0x76C1</div><div class='add'>+0x4E4A = 0x76C5</div><div class='add'>+0x4E4B = 0x76C9</div><div class='add'>+0x4E4C = 0x76CB</div><div class='add'>+0x4E4D = 0x76CC</div><div class='add'>+0x4E4E = 0x76CE</div><div class='add'>+0x4E4F = 0x76D4</div><div class='add'>+0x4E50 = 0x76D9</div><div class='add'>+0x4E51 = 0x76E0</div><div class='add'>+0x4E52 = 0x76E6</div><div class='add'>+0x4E53 = 0x76E8</div><div class='add'>+0x4E54 = 0x76EC</div><div class='add'>+0x4E55 = 0x76F0</div><div class='add'>+0x4E56 = 0x76F1</div><div class='add'>+0x4E57 = 0x76F6</div><div class='add'>+0x4E58 = 0x76F9</div><div class='add'>+0x4E59 = 0x76FC</div><div class='add'>+0x4E5A = 0x7700</div><div class='add'>+0x4E5B = 0x7706</div><div class='add'>+0x4E5C = 0x770A</div><div class='add'>+0x4E5D = 0x770E</div><div class='add'>+0x4E5E = 0x7712</div><div class='add'>+0x4E5F = 0x7714</div><div class='add'>+0x4E60 = 0x7715</div><div class='add'>+0x4E61 = 0x7717</div><div class='add'>+0x4E62 = 0x7719</div><div class='add'>+0x4E63 = 0x771A</div><div class='add'>+0x4E64 = 0x771C</div><div class='add'>+0x4E65 = 0x7722</div><div class='add'>+0x4E66 = 0x7728</div><div class='add'>+0x4E67 = 0x772D</div><div class='add'>+0x4E68 = 0x772E</div><div class='add'>+0x4E69 = 0x772F</div><div class='add'>+0x4E6A = 0x7734</div><div class='add'>+0x4E6B = 0x7735</div><div class='add'>+0x4E6C = 0x7736</div><div class='add'>+0x4E6D = 0x7739</div><div class='add'>+0x4E6E = 0x773D</div><div class='add'>+0x4E6F = 0x773E</div><div class='add'>+0x4E70 = 0x7742</div><div class='add'>+0x4E71 = 0x7745</div><div class='add'>+0x4E72 = 0x7746</div><div class='add'>+0x4E73 = 0x774A</div><div class='add'>+0x4E74 = 0x774D</div><div class='add'>+0x4E75 = 0x774E</div><div class='add'>+0x4E76 = 0x774F</div><div class='add'>+0x4E77 = 0x7752</div><div class='add'>+0x4E78 = 0x7756</div><div class='add'>+0x4E79 = 0x7757</div><div class='add'>+0x4E7A = 0x775C</div><div class='add'>+0x4E7B = 0x775E</div><div class='add'>+0x4E7C = 0x775F</div><div class='add'>+0x4E7D = 0x7760</div><div class='add'>+0x4E7E = 0x7762</div><div class='add'>+0x4F21 = 0x7764</div><div class='add'>+0x4F22 = 0x7767</div><div class='add'>+0x4F23 = 0x776A</div><div class='add'>+0x4F24 = 0x776C</div><div class='add'>+0x4F25 = 0x7770</div><div class='add'>+0x4F26 = 0x7772</div><div class='add'>+0x4F27 = 0x7773</div><div class='add'>+0x4F28 = 0x7774</div><div class='add'>+0x4F29 = 0x777A</div><div class='add'>+0x4F2A = 0x777D</div><div class='add'>+0x4F2B = 0x7780</div><div class='add'>+0x4F2C = 0x7784</div><div class='add'>+0x4F2D = 0x778C</div><div class='add'>+0x4F2E = 0x778D</div><div class='add'>+0x4F2F = 0x7794</div><div class='add'>+0x4F30 = 0x7795</div><div class='add'>+0x4F31 = 0x7796</div><div class='add'>+0x4F32 = 0x779A</div><div class='add'>+0x4F33 = 0x779F</div><div class='add'>+0x4F34 = 0x77A2</div><div class='add'>+0x4F35 = 0x77A7</div><div class='add'>+0x4F36 = 0x77AA</div><div class='add'>+0x4F37 = 0x77AE</div><div class='add'>+0x4F38 = 0x77AF</div><div class='add'>+0x4F39 = 0x77B1</div><div class='add'>+0x4F3A = 0x77B5</div><div class='add'>+0x4F3B = 0x77BE</div><div class='add'>+0x4F3C = 0x77C3</div><div class='add'>+0x4F3D = 0x77C9</div><div class='add'>+0x4F3E = 0x77D1</div><div class='add'>+0x4F3F = 0x77D2</div><div class='add'>+0x4F40 = 0x77D5</div><div class='add'>+0x4F41 = 0x77D9</div><div class='add'>+0x4F42 = 0x77DE</div><div class='add'>+0x4F43 = 0x77DF</div><div class='add'>+0x4F44 = 0x77E0</div><div class='add'>+0x4F45 = 0x77E4</div><div class='add'>+0x4F46 = 0x77E6</div><div class='add'>+0x4F47 = 0x77EA</div><div class='add'>+0x4F48 = 0x77EC</div><div class='add'>+0x4F49 = 0x77F0</div><div class='add'>+0x4F4A = 0x77F1</div><div class='add'>+0x4F4B = 0x77F4</div><div class='add'>+0x4F4C = 0x77F8</div><div class='add'>+0x4F4D = 0x77FB</div><div class='add'>+0x4F4E = 0x7805</div><div class='add'>+0x4F4F = 0x7806</div><div class='add'>+0x4F50 = 0x7809</div><div class='add'>+0x4F51 = 0x780D</div><div class='add'>+0x4F52 = 0x780E</div><div class='add'>+0x4F53 = 0x7811</div><div class='add'>+0x4F54 = 0x781D</div><div class='add'>+0x4F55 = 0x7821</div><div class='add'>+0x4F56 = 0x7822</div><div class='add'>+0x4F57 = 0x7823</div><div class='add'>+0x4F58 = 0x782D</div><div class='add'>+0x4F59 = 0x782E</div><div class='add'>+0x4F5A = 0x7830</div><div class='add'>+0x4F5B = 0x7835</div><div class='add'>+0x4F5C = 0x7837</div><div class='add'>+0x4F5D = 0x7843</div><div class='add'>+0x4F5E = 0x7844</div><div class='add'>+0x4F5F = 0x7847</div><div class='add'>+0x4F60 = 0x7848</div><div class='add'>+0x4F61 = 0x784C</div><div class='add'>+0x4F62 = 0x784E</div><div class='add'>+0x4F63 = 0x7852</div><div class='add'>+0x4F64 = 0x785C</div><div class='add'>+0x4F65 = 0x785E</div><div class='add'>+0x4F66 = 0x7860</div><div class='add'>+0x4F67 = 0x7861</div><div class='add'>+0x4F68 = 0x7863</div><div class='add'>+0x4F69 = 0x7864</div><div class='add'>+0x4F6A = 0x7868</div><div class='add'>+0x4F6B = 0x786A</div><div class='add'>+0x4F6C = 0x786E</div><div class='add'>+0x4F6D = 0x787A</div><div class='add'>+0x4F6E = 0x787E</div><div class='add'>+0x4F6F = 0x788A</div><div class='add'>+0x4F70 = 0x788F</div><div class='add'>+0x4F71 = 0x7894</div><div class='add'>+0x4F72 = 0x7898</div><div class='add'>+0x4F73 = 0x78A1</div><div class='add'>+0x4F74 = 0x789D</div><div class='add'>+0x4F75 = 0x789E</div><div class='add'>+0x4F76 = 0x789F</div><div class='add'>+0x4F77 = 0x78A4</div><div class='add'>+0x4F78 = 0x78A8</div><div class='add'>+0x4F79 = 0x78AC</div><div class='add'>+0x4F7A = 0x78AD</div><div class='add'>+0x4F7B = 0x78B0</div><div class='add'>+0x4F7C = 0x78B1</div><div class='add'>+0x4F7D = 0x78B2</div><div class='add'>+0x4F7E = 0x78B3</div><div class='add'>+0x5021 = 0x78BB</div><div class='add'>+0x5022 = 0x78BD</div><div class='add'>+0x5023 = 0x78BF</div><div class='add'>+0x5024 = 0x78C7</div><div class='add'>+0x5025 = 0x78C8</div><div class='add'>+0x5026 = 0x78C9</div><div class='add'>+0x5027 = 0x78CC</div><div class='add'>+0x5028 = 0x78CE</div><div class='add'>+0x5029 = 0x78D2</div><div class='add'>+0x502A = 0x78D3</div><div class='add'>+0x502B = 0x78D5</div><div class='add'>+0x502C = 0x78D6</div><div class='add'>+0x502D = 0x78E4</div><div class='add'>+0x502E = 0x78DB</div><div class='add'>+0x502F = 0x78DF</div><div class='add'>+0x5030 = 0x78E0</div><div class='add'>+0x5031 = 0x78E1</div><div class='add'>+0x5032 = 0x78E6</div><div class='add'>+0x5033 = 0x78EA</div><div class='add'>+0x5034 = 0x78F2</div><div class='add'>+0x5035 = 0x78F3</div><div class='add'>+0x5036 = 0x7900</div><div class='add'>+0x5037 = 0x78F6</div><div class='add'>+0x5038 = 0x78F7</div><div class='add'>+0x5039 = 0x78FA</div><div class='add'>+0x503A = 0x78FB</div><div class='add'>+0x503B = 0x78FF</div><div class='add'>+0x503C = 0x7906</div><div class='add'>+0x503D = 0x790C</div><div class='add'>+0x503E = 0x7910</div><div class='add'>+0x503F = 0x791A</div><div class='add'>+0x5040 = 0x791C</div><div class='add'>+0x5041 = 0x791E</div><div class='add'>+0x5042 = 0x791F</div><div class='add'>+0x5043 = 0x7920</div><div class='add'>+0x5044 = 0x7925</div><div class='add'>+0x5045 = 0x7927</div><div class='add'>+0x5046 = 0x7929</div><div class='add'>+0x5047 = 0x792D</div><div class='add'>+0x5048 = 0x7931</div><div class='add'>+0x5049 = 0x7934</div><div class='add'>+0x504A = 0x7935</div><div class='add'>+0x504B = 0x793B</div><div class='add'>+0x504C = 0x793D</div><div class='add'>+0x504D = 0x793F</div><div class='add'>+0x504E = 0x7944</div><div class='add'>+0x504F = 0x7945</div><div class='add'>+0x5050 = 0x7946</div><div class='add'>+0x5051 = 0x794A</div><div class='add'>+0x5052 = 0x794B</div><div class='add'>+0x5053 = 0x794F</div><div class='add'>+0x5054 = 0x7951</div><div class='add'>+0x5055 = 0x7954</div><div class='add'>+0x5056 = 0x7958</div><div class='add'>+0x5057 = 0x795B</div><div class='add'>+0x5058 = 0x795C</div><div class='add'>+0x5059 = 0x7967</div><div class='add'>+0x505A = 0x7969</div><div class='add'>+0x505B = 0x796B</div><div class='add'>+0x505C = 0x7972</div><div class='add'>+0x505D = 0x7979</div><div class='add'>+0x505E = 0x797B</div><div class='add'>+0x505F = 0x797C</div><div class='add'>+0x5060 = 0x797E</div><div class='add'>+0x5061 = 0x798B</div><div class='add'>+0x5062 = 0x798C</div><div class='add'>+0x5063 = 0x7991</div><div class='add'>+0x5064 = 0x7993</div><div class='add'>+0x5065 = 0x7994</div><div class='add'>+0x5066 = 0x7995</div><div class='add'>+0x5067 = 0x7996</div><div class='add'>+0x5068 = 0x7998</div><div class='add'>+0x5069 = 0x799B</div><div class='add'>+0x506A = 0x799C</div><div class='add'>+0x506B = 0x79A1</div><div class='add'>+0x506C = 0x79A8</div><div class='add'>+0x506D = 0x79A9</div><div class='add'>+0x506E = 0x79AB</div><div class='add'>+0x506F = 0x79AF</div><div class='add'>+0x5070 = 0x79B1</div><div class='add'>+0x5071 = 0x79B4</div><div class='add'>+0x5072 = 0x79B8</div><div class='add'>+0x5073 = 0x79BB</div><div class='add'>+0x5074 = 0x79C2</div><div class='add'>+0x5075 = 0x79C4</div><div class='add'>+0x5076 = 0x79C7</div><div class='add'>+0x5077 = 0x79C8</div><div class='add'>+0x5078 = 0x79CA</div><div class='add'>+0x5079 = 0x79CF</div><div class='add'>+0x507A = 0x79D4</div><div class='add'>+0x507B = 0x79D6</div><div class='add'>+0x507C = 0x79DA</div><div class='add'>+0x507D = 0x79DD</div><div class='add'>+0x507E = 0x79DE</div><div class='add'>+0x5121 = 0x79E0</div><div class='add'>+0x5122 = 0x79E2</div><div class='add'>+0x5123 = 0x79E5</div><div class='add'>+0x5124 = 0x79EA</div><div class='add'>+0x5125 = 0x79EB</div><div class='add'>+0x5126 = 0x79ED</div><div class='add'>+0x5127 = 0x79F1</div><div class='add'>+0x5128 = 0x79F8</div><div class='add'>+0x5129 = 0x79FC</div><div class='add'>+0x512A = 0x7A02</div><div class='add'>+0x512B = 0x7A03</div><div class='add'>+0x512C = 0x7A07</div><div class='add'>+0x512D = 0x7A09</div><div class='add'>+0x512E = 0x7A0A</div><div class='add'>+0x512F = 0x7A0C</div><div class='add'>+0x5130 = 0x7A11</div><div class='add'>+0x5131 = 0x7A15</div><div class='add'>+0x5132 = 0x7A1B</div><div class='add'>+0x5133 = 0x7A1E</div><div class='add'>+0x5134 = 0x7A21</div><div class='add'>+0x5135 = 0x7A27</div><div class='add'>+0x5136 = 0x7A2B</div><div class='add'>+0x5137 = 0x7A2D</div><div class='add'>+0x5138 = 0x7A2F</div><div class='add'>+0x5139 = 0x7A30</div><div class='add'>+0x513A = 0x7A34</div><div class='add'>+0x513B = 0x7A35</div><div class='add'>+0x513C = 0x7A38</div><div class='add'>+0x513D = 0x7A39</div><div class='add'>+0x513E = 0x7A3A</div><div class='add'>+0x513F = 0x7A44</div><div class='add'>+0x5140 = 0x7A45</div><div class='add'>+0x5141 = 0x7A47</div><div class='add'>+0x5142 = 0x7A48</div><div class='add'>+0x5143 = 0x7A4C</div><div class='add'>+0x5144 = 0x7A55</div><div class='add'>+0x5145 = 0x7A56</div><div class='add'>+0x5146 = 0x7A59</div><div class='add'>+0x5147 = 0x7A5C</div><div class='add'>+0x5148 = 0x7A5D</div><div class='add'>+0x5149 = 0x7A5F</div><div class='add'>+0x514A = 0x7A60</div><div class='add'>+0x514B = 0x7A65</div><div class='add'>+0x514C = 0x7A67</div><div class='add'>+0x514D = 0x7A6A</div><div class='add'>+0x514E = 0x7A6D</div><div class='add'>+0x514F = 0x7A75</div><div class='add'>+0x5150 = 0x7A78</div><div class='add'>+0x5151 = 0x7A7E</div><div class='add'>+0x5152 = 0x7A80</div><div class='add'>+0x5153 = 0x7A82</div><div class='add'>+0x5154 = 0x7A85</div><div class='add'>+0x5155 = 0x7A86</div><div class='add'>+0x5156 = 0x7A8A</div><div class='add'>+0x5157 = 0x7A8B</div><div class='add'>+0x5158 = 0x7A90</div><div class='add'>+0x5159 = 0x7A91</div><div class='add'>+0x515A = 0x7A94</div><div class='add'>+0x515B = 0x7A9E</div><div class='add'>+0x515C = 0x7AA0</div><div class='add'>+0x515D = 0x7AA3</div><div class='add'>+0x515E = 0x7AAC</div><div class='add'>+0x515F = 0x7AB3</div><div class='add'>+0x5160 = 0x7AB5</div><div class='add'>+0x5161 = 0x7AB9</div><div class='add'>+0x5162 = 0x7ABB</div><div class='add'>+0x5163 = 0x7ABC</div><div class='add'>+0x5164 = 0x7AC6</div><div class='add'>+0x5165 = 0x7AC9</div><div class='add'>+0x5166 = 0x7ACC</div><div class='add'>+0x5167 = 0x7ACE</div><div class='add'>+0x5168 = 0x7AD1</div><div class='add'>+0x5169 = 0x7ADB</div><div class='add'>+0x516A = 0x7AE8</div><div class='add'>+0x516B = 0x7AE9</div><div class='add'>+0x516C = 0x7AEB</div><div class='add'>+0x516D = 0x7AEC</div><div class='add'>+0x516E = 0x7AF1</div><div class='add'>+0x516F = 0x7AF4</div><div class='add'>+0x5170 = 0x7AFB</div><div class='add'>+0x5171 = 0x7AFD</div><div class='add'>+0x5172 = 0x7AFE</div><div class='add'>+0x5173 = 0x7B07</div><div class='add'>+0x5174 = 0x7B14</div><div class='add'>+0x5175 = 0x7B1F</div><div class='add'>+0x5176 = 0x7B23</div><div class='add'>+0x5177 = 0x7B27</div><div class='add'>+0x5178 = 0x7B29</div><div class='add'>+0x5179 = 0x7B2A</div><div class='add'>+0x517A = 0x7B2B</div><div class='add'>+0x517B = 0x7B2D</div><div class='add'>+0x517C = 0x7B2E</div><div class='add'>+0x517D = 0x7B2F</div><div class='add'>+0x517E = 0x7B30</div><div class='add'>+0x5221 = 0x7B31</div><div class='add'>+0x5222 = 0x7B34</div><div class='add'>+0x5223 = 0x7B3D</div><div class='add'>+0x5224 = 0x7B3F</div><div class='add'>+0x5225 = 0x7B40</div><div class='add'>+0x5226 = 0x7B41</div><div class='add'>+0x5227 = 0x7B47</div><div class='add'>+0x5228 = 0x7B4E</div><div class='add'>+0x5229 = 0x7B55</div><div class='add'>+0x522A = 0x7B60</div><div class='add'>+0x522B = 0x7B64</div><div class='add'>+0x522C = 0x7B66</div><div class='add'>+0x522D = 0x7B69</div><div class='add'>+0x522E = 0x7B6A</div><div class='add'>+0x522F = 0x7B6D</div><div class='add'>+0x5230 = 0x7B6F</div><div class='add'>+0x5231 = 0x7B72</div><div class='add'>+0x5232 = 0x7B73</div><div class='add'>+0x5233 = 0x7B77</div><div class='add'>+0x5234 = 0x7B84</div><div class='add'>+0x5235 = 0x7B89</div><div class='add'>+0x5236 = 0x7B8E</div><div class='add'>+0x5237 = 0x7B90</div><div class='add'>+0x5238 = 0x7B91</div><div class='add'>+0x5239 = 0x7B96</div><div class='add'>+0x523A = 0x7B9B</div><div class='add'>+0x523B = 0x7B9E</div><div class='add'>+0x523C = 0x7BA0</div><div class='add'>+0x523D = 0x7BA5</div><div class='add'>+0x523E = 0x7BAC</div><div class='add'>+0x523F = 0x7BAF</div><div class='add'>+0x5240 = 0x7BB0</div><div class='add'>+0x5241 = 0x7BB2</div><div class='add'>+0x5242 = 0x7BB5</div><div class='add'>+0x5243 = 0x7BB6</div><div class='add'>+0x5244 = 0x7BBA</div><div class='add'>+0x5245 = 0x7BBB</div><div class='add'>+0x5246 = 0x7BBC</div><div class='add'>+0x5247 = 0x7BBD</div><div class='add'>+0x5248 = 0x7BC2</div><div class='add'>+0x5249 = 0x7BC5</div><div class='add'>+0x524A = 0x7BC8</div><div class='add'>+0x524B = 0x7BCA</div><div class='add'>+0x524C = 0x7BD4</div><div class='add'>+0x524D = 0x7BD6</div><div class='add'>+0x524E = 0x7BD7</div><div class='add'>+0x524F = 0x7BD9</div><div class='add'>+0x5250 = 0x7BDA</div><div class='add'>+0x5251 = 0x7BDB</div><div class='add'>+0x5252 = 0x7BE8</div><div class='add'>+0x5253 = 0x7BEA</div><div class='add'>+0x5254 = 0x7BF2</div><div class='add'>+0x5255 = 0x7BF4</div><div class='add'>+0x5256 = 0x7BF5</div><div class='add'>+0x5257 = 0x7BF8</div><div class='add'>+0x5258 = 0x7BF9</div><div class='add'>+0x5259 = 0x7BFA</div><div class='add'>+0x525A = 0x7BFC</div><div class='add'>+0x525B = 0x7BFE</div><div class='add'>+0x525C = 0x7C01</div><div class='add'>+0x525D = 0x7C02</div><div class='add'>+0x525E = 0x7C03</div><div class='add'>+0x525F = 0x7C04</div><div class='add'>+0x5260 = 0x7C06</div><div class='add'>+0x5261 = 0x7C09</div><div class='add'>+0x5262 = 0x7C0B</div><div class='add'>+0x5263 = 0x7C0C</div><div class='add'>+0x5264 = 0x7C0E</div><div class='add'>+0x5265 = 0x7C0F</div><div class='add'>+0x5266 = 0x7C19</div><div class='add'>+0x5267 = 0x7C1B</div><div class='add'>+0x5268 = 0x7C20</div><div class='add'>+0x5269 = 0x7C25</div><div class='add'>+0x526A = 0x7C26</div><div class='add'>+0x526B = 0x7C28</div><div class='add'>+0x526C = 0x7C2C</div><div class='add'>+0x526D = 0x7C31</div><div class='add'>+0x526E = 0x7C33</div><div class='add'>+0x526F = 0x7C34</div><div class='add'>+0x5270 = 0x7C36</div><div class='add'>+0x5271 = 0x7C39</div><div class='add'>+0x5272 = 0x7C3A</div><div class='add'>+0x5273 = 0x7C46</div><div class='add'>+0x5274 = 0x7C4A</div><div class='add'>+0x5275 = 0x7C55</div><div class='add'>+0x5276 = 0x7C51</div><div class='add'>+0x5277 = 0x7C52</div><div class='add'>+0x5278 = 0x7C53</div><div class='add'>+0x5279 = 0x7C59</div><div class='add'>+0x527A = 0x7C5A</div><div class='add'>+0x527B = 0x7C5B</div><div class='add'>+0x527C = 0x7C5C</div><div class='add'>+0x527D = 0x7C5D</div><div class='add'>+0x527E = 0x7C5E</div><div class='add'>+0x5321 = 0x7C61</div><div class='add'>+0x5322 = 0x7C63</div><div class='add'>+0x5323 = 0x7C67</div><div class='add'>+0x5324 = 0x7C69</div><div class='add'>+0x5325 = 0x7C6D</div><div class='add'>+0x5326 = 0x7C6E</div><div class='add'>+0x5327 = 0x7C70</div><div class='add'>+0x5328 = 0x7C72</div><div class='add'>+0x5329 = 0x7C79</div><div class='add'>+0x532A = 0x7C7C</div><div class='add'>+0x532B = 0x7C7D</div><div class='add'>+0x532C = 0x7C86</div><div class='add'>+0x532D = 0x7C87</div><div class='add'>+0x532E = 0x7C8F</div><div class='add'>+0x532F = 0x7C94</div><div class='add'>+0x5330 = 0x7C9E</div><div class='add'>+0x5331 = 0x7CA0</div><div class='add'>+0x5332 = 0x7CA6</div><div class='add'>+0x5333 = 0x7CB0</div><div class='add'>+0x5334 = 0x7CB6</div><div class='add'>+0x5335 = 0x7CB7</div><div class='add'>+0x5336 = 0x7CBA</div><div class='add'>+0x5337 = 0x7CBB</div><div class='add'>+0x5338 = 0x7CBC</div><div class='add'>+0x5339 = 0x7CBF</div><div class='add'>+0x533A = 0x7CC4</div><div class='add'>+0x533B = 0x7CC7</div><div class='add'>+0x533C = 0x7CC8</div><div class='add'>+0x533D = 0x7CC9</div><div class='add'>+0x533E = 0x7CCD</div><div class='add'>+0x533F = 0x7CCF</div><div class='add'>+0x5340 = 0x7CD3</div><div class='add'>+0x5341 = 0x7CD4</div><div class='add'>+0x5342 = 0x7CD5</div><div class='add'>+0x5343 = 0x7CD7</div><div class='add'>+0x5344 = 0x7CD9</div><div class='add'>+0x5345 = 0x7CDA</div><div class='add'>+0x5346 = 0x7CDD</div><div class='add'>+0x5347 = 0x7CE6</div><div class='add'>+0x5348 = 0x7CE9</div><div class='add'>+0x5349 = 0x7CEB</div><div class='add'>+0x534A = 0x7CF5</div><div class='add'>+0x534B = 0x7D03</div><div class='add'>+0x534C = 0x7D07</div><div class='add'>+0x534D = 0x7D08</div><div class='add'>+0x534E = 0x7D09</div><div class='add'>+0x534F = 0x7D0F</div><div class='add'>+0x5350 = 0x7D11</div><div class='add'>+0x5351 = 0x7D12</div><div class='add'>+0x5352 = 0x7D13</div><div class='add'>+0x5353 = 0x7D16</div><div class='add'>+0x5354 = 0x7D1D</div><div class='add'>+0x5355 = 0x7D1E</div><div class='add'>+0x5356 = 0x7D23</div><div class='add'>+0x5357 = 0x7D26</div><div class='add'>+0x5358 = 0x7D2A</div><div class='add'>+0x5359 = 0x7D2D</div><div class='add'>+0x535A = 0x7D31</div><div class='add'>+0x535B = 0x7D3C</div><div class='add'>+0x535C = 0x7D3D</div><div class='add'>+0x535D = 0x7D3E</div><div class='add'>+0x535E = 0x7D40</div><div class='add'>+0x535F = 0x7D41</div><div class='add'>+0x5360 = 0x7D47</div><div class='add'>+0x5361 = 0x7D48</div><div class='add'>+0x5362 = 0x7D4D</div><div class='add'>+0x5363 = 0x7D51</div><div class='add'>+0x5364 = 0x7D53</div><div class='add'>+0x5365 = 0x7D57</div><div class='add'>+0x5366 = 0x7D59</div><div class='add'>+0x5367 = 0x7D5A</div><div class='add'>+0x5368 = 0x7D5C</div><div class='add'>+0x5369 = 0x7D5D</div><div class='add'>+0x536A = 0x7D65</div><div class='add'>+0x536B = 0x7D67</div><div class='add'>+0x536C = 0x7D6A</div><div class='add'>+0x536D = 0x7D70</div><div class='add'>+0x536E = 0x7D78</div><div class='add'>+0x536F = 0x7D7A</div><div class='add'>+0x5370 = 0x7D7B</div><div class='add'>+0x5371 = 0x7D7F</div><div class='add'>+0x5372 = 0x7D81</div><div class='add'>+0x5373 = 0x7D82</div><div class='add'>+0x5374 = 0x7D83</div><div class='add'>+0x5375 = 0x7D85</div><div class='add'>+0x5376 = 0x7D86</div><div class='add'>+0x5377 = 0x7D88</div><div class='add'>+0x5378 = 0x7D8B</div><div class='add'>+0x5379 = 0x7D8C</div><div class='add'>+0x537A = 0x7D8D</div><div class='add'>+0x537B = 0x7D91</div><div class='add'>+0x537C = 0x7D96</div><div class='add'>+0x537D = 0x7D97</div><div class='add'>+0x537E = 0x7D9D</div><div class='add'>+0x5421 = 0x7D9E</div><div class='add'>+0x5422 = 0x7DA6</div><div class='add'>+0x5423 = 0x7DA7</div><div class='add'>+0x5424 = 0x7DAA</div><div class='add'>+0x5425 = 0x7DB3</div><div class='add'>+0x5426 = 0x7DB6</div><div class='add'>+0x5427 = 0x7DB7</div><div class='add'>+0x5428 = 0x7DB9</div><div class='add'>+0x5429 = 0x7DC2</div><div class='add'>+0x542A = 0x7DC3</div><div class='add'>+0x542B = 0x7DC4</div><div class='add'>+0x542C = 0x7DC5</div><div class='add'>+0x542D = 0x7DC6</div><div class='add'>+0x542E = 0x7DCC</div><div class='add'>+0x542F = 0x7DCD</div><div class='add'>+0x5430 = 0x7DCE</div><div class='add'>+0x5431 = 0x7DD7</div><div class='add'>+0x5432 = 0x7DD9</div><div class='add'>+0x5433 = 0x7E00</div><div class='add'>+0x5434 = 0x7DE2</div><div class='add'>+0x5435 = 0x7DE5</div><div class='add'>+0x5436 = 0x7DE6</div><div class='add'>+0x5437 = 0x7DEA</div><div class='add'>+0x5438 = 0x7DEB</div><div class='add'>+0x5439 = 0x7DED</div><div class='add'>+0x543A = 0x7DF1</div><div class='add'>+0x543B = 0x7DF5</div><div class='add'>+0x543C = 0x7DF6</div><div class='add'>+0x543D = 0x7DF9</div><div class='add'>+0x543E = 0x7DFA</div><div class='add'>+0x543F = 0x7E08</div><div class='add'>+0x5440 = 0x7E10</div><div class='add'>+0x5441 = 0x7E11</div><div class='add'>+0x5442 = 0x7E15</div><div class='add'>+0x5443 = 0x7E17</div><div class='add'>+0x5444 = 0x7E1C</div><div class='add'>+0x5445 = 0x7E1D</div><div class='add'>+0x5446 = 0x7E20</div><div class='add'>+0x5447 = 0x7E27</div><div class='add'>+0x5448 = 0x7E28</div><div class='add'>+0x5449 = 0x7E2C</div><div class='add'>+0x544A = 0x7E2D</div><div class='add'>+0x544B = 0x7E2F</div><div class='add'>+0x544C = 0x7E33</div><div class='add'>+0x544D = 0x7E36</div><div class='add'>+0x544E = 0x7E3F</div><div class='add'>+0x544F = 0x7E44</div><div class='add'>+0x5450 = 0x7E45</div><div class='add'>+0x5451 = 0x7E47</div><div class='add'>+0x5452 = 0x7E4E</div><div class='add'>+0x5453 = 0x7E50</div><div class='add'>+0x5454 = 0x7E52</div><div class='add'>+0x5455 = 0x7E58</div><div class='add'>+0x5456 = 0x7E5F</div><div class='add'>+0x5457 = 0x7E61</div><div class='add'>+0x5458 = 0x7E62</div><div class='add'>+0x5459 = 0x7E65</div><div class='add'>+0x545A = 0x7E6B</div><div class='add'>+0x545B = 0x7E6E</div><div class='add'>+0x545C = 0x7E6F</div><div class='add'>+0x545D = 0x7E73</div><div class='add'>+0x545E = 0x7E78</div><div class='add'>+0x545F = 0x7E7E</div><div class='add'>+0x5460 = 0x7E81</div><div class='add'>+0x5461 = 0x7E86</div><div class='add'>+0x5462 = 0x7E87</div><div class='add'>+0x5463 = 0x7E8A</div><div class='add'>+0x5464 = 0x7E8D</div><div class='add'>+0x5465 = 0x7E91</div><div class='add'>+0x5466 = 0x7E95</div><div class='add'>+0x5467 = 0x7E98</div><div class='add'>+0x5468 = 0x7E9A</div><div class='add'>+0x5469 = 0x7E9D</div><div class='add'>+0x546A = 0x7E9E</div><div class='add'>+0x546B = 0x7F3C</div><div class='add'>+0x546C = 0x7F3B</div><div class='add'>+0x546D = 0x7F3D</div><div class='add'>+0x546E = 0x7F3E</div><div class='add'>+0x546F = 0x7F3F</div><div class='add'>+0x5470 = 0x7F43</div><div class='add'>+0x5471 = 0x7F44</div><div class='add'>+0x5472 = 0x7F47</div><div class='add'>+0x5473 = 0x7F4F</div><div class='add'>+0x5474 = 0x7F52</div><div class='add'>+0x5475 = 0x7F53</div><div class='add'>+0x5476 = 0x7F5B</div><div class='add'>+0x5477 = 0x7F5C</div><div class='add'>+0x5478 = 0x7F5D</div><div class='add'>+0x5479 = 0x7F61</div><div class='add'>+0x547A = 0x7F63</div><div class='add'>+0x547B = 0x7F64</div><div class='add'>+0x547C = 0x7F65</div><div class='add'>+0x547D = 0x7F66</div><div class='add'>+0x547E = 0x7F6D</div><div class='add'>+0x5521 = 0x7F71</div><div class='add'>+0x5522 = 0x7F7D</div><div class='add'>+0x5523 = 0x7F7E</div><div class='add'>+0x5524 = 0x7F7F</div><div class='add'>+0x5525 = 0x7F80</div><div class='add'>+0x5526 = 0x7F8B</div><div class='add'>+0x5527 = 0x7F8D</div><div class='add'>+0x5528 = 0x7F8F</div><div class='add'>+0x5529 = 0x7F90</div><div class='add'>+0x552A = 0x7F91</div><div class='add'>+0x552B = 0x7F96</div><div class='add'>+0x552C = 0x7F97</div><div class='add'>+0x552D = 0x7F9C</div><div class='add'>+0x552E = 0x7FA1</div><div class='add'>+0x552F = 0x7FA2</div><div class='add'>+0x5530 = 0x7FA6</div><div class='add'>+0x5531 = 0x7FAA</div><div class='add'>+0x5532 = 0x7FAD</div><div class='add'>+0x5533 = 0x7FB4</div><div class='add'>+0x5534 = 0x7FBC</div><div class='add'>+0x5535 = 0x7FBF</div><div class='add'>+0x5536 = 0x7FC0</div><div class='add'>+0x5537 = 0x7FC3</div><div class='add'>+0x5538 = 0x7FC8</div><div class='add'>+0x5539 = 0x7FCE</div><div class='add'>+0x553A = 0x7FCF</div><div class='add'>+0x553B = 0x7FDB</div><div class='add'>+0x553C = 0x7FDF</div><div class='add'>+0x553D = 0x7FE3</div><div class='add'>+0x553E = 0x7FE5</div><div class='add'>+0x553F = 0x7FE8</div><div class='add'>+0x5540 = 0x7FEC</div><div class='add'>+0x5541 = 0x7FEE</div><div class='add'>+0x5542 = 0x7FEF</div><div class='add'>+0x5543 = 0x7FF2</div><div class='add'>+0x5544 = 0x7FFA</div><div class='add'>+0x5545 = 0x7FFD</div><div class='add'>+0x5546 = 0x7FFE</div><div class='add'>+0x5547 = 0x7FFF</div><div class='add'>+0x5548 = 0x8007</div><div class='add'>+0x5549 = 0x8008</div><div class='add'>+0x554A = 0x800A</div><div class='add'>+0x554B = 0x800D</div><div class='add'>+0x554C = 0x800E</div><div class='add'>+0x554D = 0x800F</div><div class='add'>+0x554E = 0x8011</div><div class='add'>+0x554F = 0x8013</div><div class='add'>+0x5550 = 0x8014</div><div class='add'>+0x5551 = 0x8016</div><div class='add'>+0x5552 = 0x801D</div><div class='add'>+0x5553 = 0x801E</div><div class='add'>+0x5554 = 0x801F</div><div class='add'>+0x5555 = 0x8020</div><div class='add'>+0x5556 = 0x8024</div><div class='add'>+0x5557 = 0x8026</div><div class='add'>+0x5558 = 0x802C</div><div class='add'>+0x5559 = 0x802E</div><div class='add'>+0x555A = 0x8030</div><div class='add'>+0x555B = 0x8034</div><div class='add'>+0x555C = 0x8035</div><div class='add'>+0x555D = 0x8037</div><div class='add'>+0x555E = 0x8039</div><div class='add'>+0x555F = 0x803A</div><div class='add'>+0x5560 = 0x803C</div><div class='add'>+0x5561 = 0x803E</div><div class='add'>+0x5562 = 0x8040</div><div class='add'>+0x5563 = 0x8044</div><div class='add'>+0x5564 = 0x8060</div><div class='add'>+0x5565 = 0x8064</div><div class='add'>+0x5566 = 0x8066</div><div class='add'>+0x5567 = 0x806D</div><div class='add'>+0x5568 = 0x8071</div><div class='add'>+0x5569 = 0x8075</div><div class='add'>+0x556A = 0x8081</div><div class='add'>+0x556B = 0x8088</div><div class='add'>+0x556C = 0x808E</div><div class='add'>+0x556D = 0x809C</div><div class='add'>+0x556E = 0x809E</div><div class='add'>+0x556F = 0x80A6</div><div class='add'>+0x5570 = 0x80A7</div><div class='add'>+0x5571 = 0x80AB</div><div class='add'>+0x5572 = 0x80B8</div><div class='add'>+0x5573 = 0x80B9</div><div class='add'>+0x5574 = 0x80C8</div><div class='add'>+0x5575 = 0x80CD</div><div class='add'>+0x5576 = 0x80CF</div><div class='add'>+0x5577 = 0x80D2</div><div class='add'>+0x5578 = 0x80D4</div><div class='add'>+0x5579 = 0x80D5</div><div class='add'>+0x557A = 0x80D7</div><div class='add'>+0x557B = 0x80D8</div><div class='add'>+0x557C = 0x80E0</div><div class='add'>+0x557D = 0x80ED</div><div class='add'>+0x557E = 0x80EE</div><div class='add'>+0x5621 = 0x80F0</div><div class='add'>+0x5622 = 0x80F2</div><div class='add'>+0x5623 = 0x80F3</div><div class='add'>+0x5624 = 0x80F6</div><div class='add'>+0x5625 = 0x80F9</div><div class='add'>+0x5626 = 0x80FA</div><div class='add'>+0x5627 = 0x80FE</div><div class='add'>+0x5628 = 0x8103</div><div class='add'>+0x5629 = 0x810B</div><div class='add'>+0x562A = 0x8116</div><div class='add'>+0x562B = 0x8117</div><div class='add'>+0x562C = 0x8118</div><div class='add'>+0x562D = 0x811C</div><div class='add'>+0x562E = 0x811E</div><div class='add'>+0x562F = 0x8120</div><div class='add'>+0x5630 = 0x8124</div><div class='add'>+0x5631 = 0x8127</div><div class='add'>+0x5632 = 0x812C</div><div class='add'>+0x5633 = 0x8130</div><div class='add'>+0x5634 = 0x8135</div><div class='add'>+0x5635 = 0x813A</div><div class='add'>+0x5636 = 0x813C</div><div class='add'>+0x5637 = 0x8145</div><div class='add'>+0x5638 = 0x8147</div><div class='add'>+0x5639 = 0x814A</div><div class='add'>+0x563A = 0x814C</div><div class='add'>+0x563B = 0x8152</div><div class='add'>+0x563C = 0x8157</div><div class='add'>+0x563D = 0x8160</div><div class='add'>+0x563E = 0x8161</div><div class='add'>+0x563F = 0x8167</div><div class='add'>+0x5640 = 0x8168</div><div class='add'>+0x5641 = 0x8169</div><div class='add'>+0x5642 = 0x816D</div><div class='add'>+0x5643 = 0x816F</div><div class='add'>+0x5644 = 0x8177</div><div class='add'>+0x5645 = 0x8181</div><div class='add'>+0x5646 = 0x8190</div><div class='add'>+0x5647 = 0x8184</div><div class='add'>+0x5648 = 0x8185</div><div class='add'>+0x5649 = 0x8186</div><div class='add'>+0x564A = 0x818B</div><div class='add'>+0x564B = 0x818E</div><div class='add'>+0x564C = 0x8196</div><div class='add'>+0x564D = 0x8198</div><div class='add'>+0x564E = 0x819B</div><div class='add'>+0x564F = 0x819E</div><div class='add'>+0x5650 = 0x81A2</div><div class='add'>+0x5651 = 0x81AE</div><div class='add'>+0x5652 = 0x81B2</div><div class='add'>+0x5653 = 0x81B4</div><div class='add'>+0x5654 = 0x81BB</div><div class='add'>+0x5655 = 0x81CB</div><div class='add'>+0x5656 = 0x81C3</div><div class='add'>+0x5657 = 0x81C5</div><div class='add'>+0x5658 = 0x81CA</div><div class='add'>+0x5659 = 0x81CE</div><div class='add'>+0x565A = 0x81CF</div><div class='add'>+0x565B = 0x81D5</div><div class='add'>+0x565C = 0x81D7</div><div class='add'>+0x565D = 0x81DB</div><div class='add'>+0x565E = 0x81DD</div><div class='add'>+0x565F = 0x81DE</div><div class='add'>+0x5660 = 0x81E1</div><div class='add'>+0x5661 = 0x81E4</div><div class='add'>+0x5662 = 0x81EB</div><div class='add'>+0x5663 = 0x81EC</div><div class='add'>+0x5664 = 0x81F0</div><div class='add'>+0x5665 = 0x81F1</div><div class='add'>+0x5666 = 0x81F2</div><div class='add'>+0x5667 = 0x81F5</div><div class='add'>+0x5668 = 0x81F6</div><div class='add'>+0x5669 = 0x81F8</div><div class='add'>+0x566A = 0x81F9</div><div class='add'>+0x566B = 0x81FD</div><div class='add'>+0x566C = 0x81FF</div><div class='add'>+0x566D = 0x8200</div><div class='add'>+0x566E = 0x8203</div><div class='add'>+0x566F = 0x820F</div><div class='add'>+0x5670 = 0x8213</div><div class='add'>+0x5671 = 0x8214</div><div class='add'>+0x5672 = 0x8219</div><div class='add'>+0x5673 = 0x821A</div><div class='add'>+0x5674 = 0x821D</div><div class='add'>+0x5675 = 0x8221</div><div class='add'>+0x5676 = 0x8222</div><div class='add'>+0x5677 = 0x8228</div><div class='add'>+0x5678 = 0x8232</div><div class='add'>+0x5679 = 0x8234</div><div class='add'>+0x567A = 0x823A</div><div class='add'>+0x567B = 0x8243</div><div class='add'>+0x567C = 0x8244</div><div class='add'>+0x567D = 0x8245</div><div class='add'>+0x567E = 0x8246</div><div class='add'>+0x5721 = 0x824B</div><div class='add'>+0x5722 = 0x824E</div><div class='add'>+0x5723 = 0x824F</div><div class='add'>+0x5724 = 0x8251</div><div class='add'>+0x5725 = 0x8256</div><div class='add'>+0x5726 = 0x825C</div><div class='add'>+0x5727 = 0x8260</div><div class='add'>+0x5728 = 0x8263</div><div class='add'>+0x5729 = 0x8267</div><div class='add'>+0x572A = 0x826D</div><div class='add'>+0x572B = 0x8274</div><div class='add'>+0x572C = 0x827B</div><div class='add'>+0x572D = 0x827D</div><div class='add'>+0x572E = 0x827F</div><div class='add'>+0x572F = 0x8280</div><div class='add'>+0x5730 = 0x8281</div><div class='add'>+0x5731 = 0x8283</div><div class='add'>+0x5732 = 0x8284</div><div class='add'>+0x5733 = 0x8287</div><div class='add'>+0x5734 = 0x8289</div><div class='add'>+0x5735 = 0x828A</div><div class='add'>+0x5736 = 0x828E</div><div class='add'>+0x5737 = 0x8291</div><div class='add'>+0x5738 = 0x8294</div><div class='add'>+0x5739 = 0x8296</div><div class='add'>+0x573A = 0x8298</div><div class='add'>+0x573B = 0x829A</div><div class='add'>+0x573C = 0x829B</div><div class='add'>+0x573D = 0x82A0</div><div class='add'>+0x573E = 0x82A1</div><div class='add'>+0x573F = 0x82A3</div><div class='add'>+0x5740 = 0x82A4</div><div class='add'>+0x5741 = 0x82A7</div><div class='add'>+0x5742 = 0x82A8</div><div class='add'>+0x5743 = 0x82A9</div><div class='add'>+0x5744 = 0x82AA</div><div class='add'>+0x5745 = 0x82AE</div><div class='add'>+0x5746 = 0x82B0</div><div class='add'>+0x5747 = 0x82B2</div><div class='add'>+0x5748 = 0x82B4</div><div class='add'>+0x5749 = 0x82B7</div><div class='add'>+0x574A = 0x82BA</div><div class='add'>+0x574B = 0x82BC</div><div class='add'>+0x574C = 0x82BE</div><div class='add'>+0x574D = 0x82BF</div><div class='add'>+0x574E = 0x82C6</div><div class='add'>+0x574F = 0x82D0</div><div class='add'>+0x5750 = 0x82D5</div><div class='add'>+0x5751 = 0x82DA</div><div class='add'>+0x5752 = 0x82E0</div><div class='add'>+0x5753 = 0x82E2</div><div class='add'>+0x5754 = 0x82E4</div><div class='add'>+0x5755 = 0x82E8</div><div class='add'>+0x5756 = 0x82EA</div><div class='add'>+0x5757 = 0x82ED</div><div class='add'>+0x5758 = 0x82EF</div><div class='add'>+0x5759 = 0x82F6</div><div class='add'>+0x575A = 0x82F7</div><div class='add'>+0x575B = 0x82FD</div><div class='add'>+0x575C = 0x82FE</div><div class='add'>+0x575D = 0x8300</div><div class='add'>+0x575E = 0x8301</div><div class='add'>+0x575F = 0x8307</div><div class='add'>+0x5760 = 0x8308</div><div class='add'>+0x5761 = 0x830A</div><div class='add'>+0x5762 = 0x830B</div><div class='add'>+0x5763 = 0x8354</div><div class='add'>+0x5764 = 0x831B</div><div class='add'>+0x5765 = 0x831D</div><div class='add'>+0x5766 = 0x831E</div><div class='add'>+0x5767 = 0x831F</div><div class='add'>+0x5768 = 0x8321</div><div class='add'>+0x5769 = 0x8322</div><div class='add'>+0x576A = 0x832C</div><div class='add'>+0x576B = 0x832D</div><div class='add'>+0x576C = 0x832E</div><div class='add'>+0x576D = 0x8330</div><div class='add'>+0x576E = 0x8333</div><div class='add'>+0x576F = 0x8337</div><div class='add'>+0x5770 = 0x833A</div><div class='add'>+0x5771 = 0x833C</div><div class='add'>+0x5772 = 0x833D</div><div class='add'>+0x5773 = 0x8342</div><div class='add'>+0x5774 = 0x8343</div><div class='add'>+0x5775 = 0x8344</div><div class='add'>+0x5776 = 0x8347</div><div class='add'>+0x5777 = 0x834D</div><div class='add'>+0x5778 = 0x834E</div><div class='add'>+0x5779 = 0x8351</div><div class='add'>+0x577A = 0x8355</div><div class='add'>+0x577B = 0x8356</div><div class='add'>+0x577C = 0x8357</div><div class='add'>+0x577D = 0x8370</div><div class='add'>+0x577E = 0x8378</div><div class='add'>+0x5821 = 0x837D</div><div class='add'>+0x5822 = 0x837F</div><div class='add'>+0x5823 = 0x8380</div><div class='add'>+0x5824 = 0x8382</div><div class='add'>+0x5825 = 0x8384</div><div class='add'>+0x5826 = 0x8386</div><div class='add'>+0x5827 = 0x838D</div><div class='add'>+0x5828 = 0x8392</div><div class='add'>+0x5829 = 0x8394</div><div class='add'>+0x582A = 0x8395</div><div class='add'>+0x582B = 0x8398</div><div class='add'>+0x582C = 0x8399</div><div class='add'>+0x582D = 0x839B</div><div class='add'>+0x582E = 0x839C</div><div class='add'>+0x582F = 0x839D</div><div class='add'>+0x5830 = 0x83A6</div><div class='add'>+0x5831 = 0x83A7</div><div class='add'>+0x5832 = 0x83A9</div><div class='add'>+0x5833 = 0x83AC</div><div class='add'>+0x5834 = 0x83BE</div><div class='add'>+0x5835 = 0x83BF</div><div class='add'>+0x5836 = 0x83C0</div><div class='add'>+0x5837 = 0x83C7</div><div class='add'>+0x5838 = 0x83C9</div><div class='add'>+0x5839 = 0x83CF</div><div class='add'>+0x583A = 0x83D0</div><div class='add'>+0x583B = 0x83D1</div><div class='add'>+0x583C = 0x83D4</div><div class='add'>+0x583D = 0x83DD</div><div class='add'>+0x583E = 0x8353</div><div class='add'>+0x583F = 0x83E8</div><div class='add'>+0x5840 = 0x83EA</div><div class='add'>+0x5841 = 0x83F6</div><div class='add'>+0x5842 = 0x83F8</div><div class='add'>+0x5843 = 0x83F9</div><div class='add'>+0x5844 = 0x83FC</div><div class='add'>+0x5845 = 0x8401</div><div class='add'>+0x5846 = 0x8406</div><div class='add'>+0x5847 = 0x840A</div><div class='add'>+0x5848 = 0x840F</div><div class='add'>+0x5849 = 0x8411</div><div class='add'>+0x584A = 0x8415</div><div class='add'>+0x584B = 0x8419</div><div class='add'>+0x584C = 0x83AD</div><div class='add'>+0x584D = 0x842F</div><div class='add'>+0x584E = 0x8439</div><div class='add'>+0x584F = 0x8445</div><div class='add'>+0x5850 = 0x8447</div><div class='add'>+0x5851 = 0x8448</div><div class='add'>+0x5852 = 0x844A</div><div class='add'>+0x5853 = 0x844D</div><div class='add'>+0x5854 = 0x844F</div><div class='add'>+0x5855 = 0x8451</div><div class='add'>+0x5856 = 0x8452</div><div class='add'>+0x5857 = 0x8456</div><div class='add'>+0x5858 = 0x8458</div><div class='add'>+0x5859 = 0x8459</div><div class='add'>+0x585A = 0x845A</div><div class='add'>+0x585B = 0x845C</div><div class='add'>+0x585C = 0x8460</div><div class='add'>+0x585D = 0x8464</div><div class='add'>+0x585E = 0x8465</div><div class='add'>+0x585F = 0x8467</div><div class='add'>+0x5860 = 0x846A</div><div class='add'>+0x5861 = 0x8470</div><div class='add'>+0x5862 = 0x8473</div><div class='add'>+0x5863 = 0x8474</div><div class='add'>+0x5864 = 0x8476</div><div class='add'>+0x5865 = 0x8478</div><div class='add'>+0x5866 = 0x847C</div><div class='add'>+0x5867 = 0x847D</div><div class='add'>+0x5868 = 0x8481</div><div class='add'>+0x5869 = 0x8485</div><div class='add'>+0x586A = 0x8492</div><div class='add'>+0x586B = 0x8493</div><div class='add'>+0x586C = 0x8495</div><div class='add'>+0x586D = 0x849E</div><div class='add'>+0x586E = 0x84A6</div><div class='add'>+0x586F = 0x84A8</div><div class='add'>+0x5870 = 0x84A9</div><div class='add'>+0x5871 = 0x84AA</div><div class='add'>+0x5872 = 0x84AF</div><div class='add'>+0x5873 = 0x84B1</div><div class='add'>+0x5874 = 0x84B4</div><div class='add'>+0x5875 = 0x84BA</div><div class='add'>+0x5876 = 0x84BD</div><div class='add'>+0x5877 = 0x84BE</div><div class='add'>+0x5878 = 0x84C0</div><div class='add'>+0x5879 = 0x84C2</div><div class='add'>+0x587A = 0x84C7</div><div class='add'>+0x587B = 0x84C8</div><div class='add'>+0x587C = 0x84CC</div><div class='add'>+0x587D = 0x84CF</div><div class='add'>+0x587E = 0x84D3</div><div class='add'>+0x5921 = 0x84DC</div><div class='add'>+0x5922 = 0x84E7</div><div class='add'>+0x5923 = 0x84EA</div><div class='add'>+0x5924 = 0x84EF</div><div class='add'>+0x5925 = 0x84F0</div><div class='add'>+0x5926 = 0x84F1</div><div class='add'>+0x5927 = 0x84F2</div><div class='add'>+0x5928 = 0x84F7</div><div class='add'>+0x5929 = 0x8532</div><div class='add'>+0x592A = 0x84FA</div><div class='add'>+0x592B = 0x84FB</div><div class='add'>+0x592C = 0x84FD</div><div class='add'>+0x592D = 0x8502</div><div class='add'>+0x592E = 0x8503</div><div class='add'>+0x592F = 0x8507</div><div class='add'>+0x5930 = 0x850C</div><div class='add'>+0x5931 = 0x850E</div><div class='add'>+0x5932 = 0x8510</div><div class='add'>+0x5933 = 0x851C</div><div class='add'>+0x5934 = 0x851E</div><div class='add'>+0x5935 = 0x8522</div><div class='add'>+0x5936 = 0x8523</div><div class='add'>+0x5937 = 0x8524</div><div class='add'>+0x5938 = 0x8525</div><div class='add'>+0x5939 = 0x8527</div><div class='add'>+0x593A = 0x852A</div><div class='add'>+0x593B = 0x852B</div><div class='add'>+0x593C = 0x852F</div><div class='add'>+0x593D = 0x8533</div><div class='add'>+0x593E = 0x8534</div><div class='add'>+0x593F = 0x8536</div><div class='add'>+0x5940 = 0x853F</div><div class='add'>+0x5941 = 0x8546</div><div class='add'>+0x5942 = 0x854F</div><div class='add'>+0x5943 = 0x8550</div><div class='add'>+0x5944 = 0x8551</div><div class='add'>+0x5945 = 0x8552</div><div class='add'>+0x5946 = 0x8553</div><div class='add'>+0x5947 = 0x8556</div><div class='add'>+0x5948 = 0x8559</div><div class='add'>+0x5949 = 0x855C</div><div class='add'>+0x594A = 0x855D</div><div class='add'>+0x594B = 0x855E</div><div class='add'>+0x594C = 0x855F</div><div class='add'>+0x594D = 0x8560</div><div class='add'>+0x594E = 0x8561</div><div class='add'>+0x594F = 0x8562</div><div class='add'>+0x5950 = 0x8564</div><div class='add'>+0x5951 = 0x856B</div><div class='add'>+0x5952 = 0x856F</div><div class='add'>+0x5953 = 0x8579</div><div class='add'>+0x5954 = 0x857A</div><div class='add'>+0x5955 = 0x857B</div><div class='add'>+0x5956 = 0x857D</div><div class='add'>+0x5957 = 0x857F</div><div class='add'>+0x5958 = 0x8581</div><div class='add'>+0x5959 = 0x8585</div><div class='add'>+0x595A = 0x8586</div><div class='add'>+0x595B = 0x8589</div><div class='add'>+0x595C = 0x858B</div><div class='add'>+0x595D = 0x858C</div><div class='add'>+0x595E = 0x858F</div><div class='add'>+0x595F = 0x8593</div><div class='add'>+0x5960 = 0x8598</div><div class='add'>+0x5961 = 0x859D</div><div class='add'>+0x5962 = 0x859F</div><div class='add'>+0x5963 = 0x85A0</div><div class='add'>+0x5964 = 0x85A2</div><div class='add'>+0x5965 = 0x85A5</div><div class='add'>+0x5966 = 0x85A7</div><div class='add'>+0x5967 = 0x85B4</div><div class='add'>+0x5968 = 0x85B6</div><div class='add'>+0x5969 = 0x85B7</div><div class='add'>+0x596A = 0x85B8</div><div class='add'>+0x596B = 0x85BC</div><div class='add'>+0x596C = 0x85BD</div><div class='add'>+0x596D = 0x85BE</div><div class='add'>+0x596E = 0x85BF</div><div class='add'>+0x596F = 0x85C2</div><div class='add'>+0x5970 = 0x85C7</div><div class='add'>+0x5971 = 0x85CA</div><div class='add'>+0x5972 = 0x85CB</div><div class='add'>+0x5973 = 0x85CE</div><div class='add'>+0x5974 = 0x85AD</div><div class='add'>+0x5975 = 0x85D8</div><div class='add'>+0x5976 = 0x85DA</div><div class='add'>+0x5977 = 0x85DF</div><div class='add'>+0x5978 = 0x85E0</div><div class='add'>+0x5979 = 0x85E6</div><div class='add'>+0x597A = 0x85E8</div><div class='add'>+0x597B = 0x85ED</div><div class='add'>+0x597C = 0x85F3</div><div class='add'>+0x597D = 0x85F6</div><div class='add'>+0x597E = 0x85FC</div><div class='add'>+0x5A21 = 0x85FF</div><div class='add'>+0x5A22 = 0x8600</div><div class='add'>+0x5A23 = 0x8604</div><div class='add'>+0x5A24 = 0x8605</div><div class='add'>+0x5A25 = 0x860D</div><div class='add'>+0x5A26 = 0x860E</div><div class='add'>+0x5A27 = 0x8610</div><div class='add'>+0x5A28 = 0x8611</div><div class='add'>+0x5A29 = 0x8612</div><div class='add'>+0x5A2A = 0x8618</div><div class='add'>+0x5A2B = 0x8619</div><div class='add'>+0x5A2C = 0x861B</div><div class='add'>+0x5A2D = 0x861E</div><div class='add'>+0x5A2E = 0x8621</div><div class='add'>+0x5A2F = 0x8627</div><div class='add'>+0x5A30 = 0x8629</div><div class='add'>+0x5A31 = 0x8636</div><div class='add'>+0x5A32 = 0x8638</div><div class='add'>+0x5A33 = 0x863A</div><div class='add'>+0x5A34 = 0x863C</div><div class='add'>+0x5A35 = 0x863D</div><div class='add'>+0x5A36 = 0x8640</div><div class='add'>+0x5A37 = 0x8642</div><div class='add'>+0x5A38 = 0x8646</div><div class='add'>+0x5A39 = 0x8652</div><div class='add'>+0x5A3A = 0x8653</div><div class='add'>+0x5A3B = 0x8656</div><div class='add'>+0x5A3C = 0x8657</div><div class='add'>+0x5A3D = 0x8658</div><div class='add'>+0x5A3E = 0x8659</div><div class='add'>+0x5A3F = 0x865D</div><div class='add'>+0x5A40 = 0x8660</div><div class='add'>+0x5A41 = 0x8661</div><div class='add'>+0x5A42 = 0x8662</div><div class='add'>+0x5A43 = 0x8663</div><div class='add'>+0x5A44 = 0x8664</div><div class='add'>+0x5A45 = 0x8669</div><div class='add'>+0x5A46 = 0x866C</div><div class='add'>+0x5A47 = 0x866F</div><div class='add'>+0x5A48 = 0x8675</div><div class='add'>+0x5A49 = 0x8676</div><div class='add'>+0x5A4A = 0x8677</div><div class='add'>+0x5A4B = 0x867A</div><div class='add'>+0x5A4C = 0x868D</div><div class='add'>+0x5A4D = 0x8691</div><div class='add'>+0x5A4E = 0x8696</div><div class='add'>+0x5A4F = 0x8698</div><div class='add'>+0x5A50 = 0x869A</div><div class='add'>+0x5A51 = 0x869C</div><div class='add'>+0x5A52 = 0x86A1</div><div class='add'>+0x5A53 = 0x86A6</div><div class='add'>+0x5A54 = 0x86A7</div><div class='add'>+0x5A55 = 0x86A8</div><div class='add'>+0x5A56 = 0x86AD</div><div class='add'>+0x5A57 = 0x86B1</div><div class='add'>+0x5A58 = 0x86B3</div><div class='add'>+0x5A59 = 0x86B4</div><div class='add'>+0x5A5A = 0x86B5</div><div class='add'>+0x5A5B = 0x86B7</div><div class='add'>+0x5A5C = 0x86B8</div><div class='add'>+0x5A5D = 0x86B9</div><div class='add'>+0x5A5E = 0x86BF</div><div class='add'>+0x5A5F = 0x86C0</div><div class='add'>+0x5A60 = 0x86C1</div><div class='add'>+0x5A61 = 0x86C3</div><div class='add'>+0x5A62 = 0x86C5</div><div class='add'>+0x5A63 = 0x86D1</div><div class='add'>+0x5A64 = 0x86D2</div><div class='add'>+0x5A65 = 0x86D5</div><div class='add'>+0x5A66 = 0x86D7</div><div class='add'>+0x5A67 = 0x86DA</div><div class='add'>+0x5A68 = 0x86DC</div><div class='add'>+0x5A69 = 0x86E0</div><div class='add'>+0x5A6A = 0x86E3</div><div class='add'>+0x5A6B = 0x86E5</div><div class='add'>+0x5A6C = 0x86E7</div><div class='add'>+0x5A6D = 0x8688</div><div class='add'>+0x5A6E = 0x86FA</div><div class='add'>+0x5A6F = 0x86FC</div><div class='add'>+0x5A70 = 0x86FD</div><div class='add'>+0x5A71 = 0x8704</div><div class='add'>+0x5A72 = 0x8705</div><div class='add'>+0x5A73 = 0x8707</div><div class='add'>+0x5A74 = 0x870B</div><div class='add'>+0x5A75 = 0x870E</div><div class='add'>+0x5A76 = 0x870F</div><div class='add'>+0x5A77 = 0x8710</div><div class='add'>+0x5A78 = 0x8713</div><div class='add'>+0x5A79 = 0x8714</div><div class='add'>+0x5A7A = 0x8719</div><div class='add'>+0x5A7B = 0x871E</div><div class='add'>+0x5A7C = 0x871F</div><div class='add'>+0x5A7D = 0x8721</div><div class='add'>+0x5A7E = 0x8723</div><div class='add'>+0x5B21 = 0x8728</div><div class='add'>+0x5B22 = 0x872E</div><div class='add'>+0x5B23 = 0x872F</div><div class='add'>+0x5B24 = 0x8731</div><div class='add'>+0x5B25 = 0x8732</div><div class='add'>+0x5B26 = 0x8739</div><div class='add'>+0x5B27 = 0x873A</div><div class='add'>+0x5B28 = 0x873C</div><div class='add'>+0x5B29 = 0x873D</div><div class='add'>+0x5B2A = 0x873E</div><div class='add'>+0x5B2B = 0x8740</div><div class='add'>+0x5B2C = 0x8743</div><div class='add'>+0x5B2D = 0x8745</div><div class='add'>+0x5B2E = 0x874D</div><div class='add'>+0x5B2F = 0x8758</div><div class='add'>+0x5B30 = 0x875D</div><div class='add'>+0x5B31 = 0x8761</div><div class='add'>+0x5B32 = 0x8764</div><div class='add'>+0x5B33 = 0x8765</div><div class='add'>+0x5B34 = 0x876F</div><div class='add'>+0x5B35 = 0x8771</div><div class='add'>+0x5B36 = 0x8772</div><div class='add'>+0x5B37 = 0x877B</div><div class='add'>+0x5B38 = 0x8783</div><div class='add'>+0x5B39 = 0x8784</div><div class='add'>+0x5B3A = 0x8785</div><div class='add'>+0x5B3B = 0x8786</div><div class='add'>+0x5B3C = 0x8787</div><div class='add'>+0x5B3D = 0x8788</div><div class='add'>+0x5B3E = 0x8789</div><div class='add'>+0x5B3F = 0x878B</div><div class='add'>+0x5B40 = 0x878C</div><div class='add'>+0x5B41 = 0x8790</div><div class='add'>+0x5B42 = 0x8793</div><div class='add'>+0x5B43 = 0x8795</div><div class='add'>+0x5B44 = 0x8797</div><div class='add'>+0x5B45 = 0x8798</div><div class='add'>+0x5B46 = 0x8799</div><div class='add'>+0x5B47 = 0x879E</div><div class='add'>+0x5B48 = 0x87A0</div><div class='add'>+0x5B49 = 0x87A3</div><div class='add'>+0x5B4A = 0x87A7</div><div class='add'>+0x5B4B = 0x87AC</div><div class='add'>+0x5B4C = 0x87AD</div><div class='add'>+0x5B4D = 0x87AE</div><div class='add'>+0x5B4E = 0x87B1</div><div class='add'>+0x5B4F = 0x87B5</div><div class='add'>+0x5B50 = 0x87BE</div><div class='add'>+0x5B51 = 0x87BF</div><div class='add'>+0x5B52 = 0x87C1</div><div class='add'>+0x5B53 = 0x87C8</div><div class='add'>+0x5B54 = 0x87C9</div><div class='add'>+0x5B55 = 0x87CA</div><div class='add'>+0x5B56 = 0x87CE</div><div class='add'>+0x5B57 = 0x87D5</div><div class='add'>+0x5B58 = 0x87D6</div><div class='add'>+0x5B59 = 0x87D9</div><div class='add'>+0x5B5A = 0x87DA</div><div class='add'>+0x5B5B = 0x87DC</div><div class='add'>+0x5B5C = 0x87DF</div><div class='add'>+0x5B5D = 0x87E2</div><div class='add'>+0x5B5E = 0x87E3</div><div class='add'>+0x5B5F = 0x87E4</div><div class='add'>+0x5B60 = 0x87EA</div><div class='add'>+0x5B61 = 0x87EB</div><div class='add'>+0x5B62 = 0x87ED</div><div class='add'>+0x5B63 = 0x87F1</div><div class='add'>+0x5B64 = 0x87F3</div><div class='add'>+0x5B65 = 0x87F8</div><div class='add'>+0x5B66 = 0x87FA</div><div class='add'>+0x5B67 = 0x87FF</div><div class='add'>+0x5B68 = 0x8801</div><div class='add'>+0x5B69 = 0x8803</div><div class='add'>+0x5B6A = 0x8806</div><div class='add'>+0x5B6B = 0x8809</div><div class='add'>+0x5B6C = 0x880A</div><div class='add'>+0x5B6D = 0x880B</div><div class='add'>+0x5B6E = 0x8810</div><div class='add'>+0x5B6F = 0x8819</div><div class='add'>+0x5B70 = 0x8812</div><div class='add'>+0x5B71 = 0x8813</div><div class='add'>+0x5B72 = 0x8814</div><div class='add'>+0x5B73 = 0x8818</div><div class='add'>+0x5B74 = 0x881A</div><div class='add'>+0x5B75 = 0x881B</div><div class='add'>+0x5B76 = 0x881C</div><div class='add'>+0x5B77 = 0x881E</div><div class='add'>+0x5B78 = 0x881F</div><div class='add'>+0x5B79 = 0x8828</div><div class='add'>+0x5B7A = 0x882D</div><div class='add'>+0x5B7B = 0x882E</div><div class='add'>+0x5B7C = 0x8830</div><div class='add'>+0x5B7D = 0x8832</div><div class='add'>+0x5B7E = 0x8835</div><div class='add'>+0x5C21 = 0x883A</div><div class='add'>+0x5C22 = 0x883C</div><div class='add'>+0x5C23 = 0x8841</div><div class='add'>+0x5C24 = 0x8843</div><div class='add'>+0x5C25 = 0x8845</div><div class='add'>+0x5C26 = 0x8848</div><div class='add'>+0x5C27 = 0x8849</div><div class='add'>+0x5C28 = 0x884A</div><div class='add'>+0x5C29 = 0x884B</div><div class='add'>+0x5C2A = 0x884E</div><div class='add'>+0x5C2B = 0x8851</div><div class='add'>+0x5C2C = 0x8855</div><div class='add'>+0x5C2D = 0x8856</div><div class='add'>+0x5C2E = 0x8858</div><div class='add'>+0x5C2F = 0x885A</div><div class='add'>+0x5C30 = 0x885C</div><div class='add'>+0x5C31 = 0x885F</div><div class='add'>+0x5C32 = 0x8860</div><div class='add'>+0x5C33 = 0x8864</div><div class='add'>+0x5C34 = 0x8869</div><div class='add'>+0x5C35 = 0x8871</div><div class='add'>+0x5C36 = 0x8879</div><div class='add'>+0x5C37 = 0x887B</div><div class='add'>+0x5C38 = 0x8880</div><div class='add'>+0x5C39 = 0x8898</div><div class='add'>+0x5C3A = 0x889A</div><div class='add'>+0x5C3B = 0x889B</div><div class='add'>+0x5C3C = 0x889C</div><div class='add'>+0x5C3D = 0x889F</div><div class='add'>+0x5C3E = 0x88A0</div><div class='add'>+0x5C3F = 0x88A8</div><div class='add'>+0x5C40 = 0x88AA</div><div class='add'>+0x5C41 = 0x88BA</div><div class='add'>+0x5C42 = 0x88BD</div><div class='add'>+0x5C43 = 0x88BE</div><div class='add'>+0x5C44 = 0x88C0</div><div class='add'>+0x5C45 = 0x88CA</div><div class='add'>+0x5C46 = 0x88CB</div><div class='add'>+0x5C47 = 0x88CC</div><div class='add'>+0x5C48 = 0x88CD</div><div class='add'>+0x5C49 = 0x88CE</div><div class='add'>+0x5C4A = 0x88D1</div><div class='add'>+0x5C4B = 0x88D2</div><div class='add'>+0x5C4C = 0x88D3</div><div class='add'>+0x5C4D = 0x88DB</div><div class='add'>+0x5C4E = 0x88DE</div><div class='add'>+0x5C4F = 0x88E7</div><div class='add'>+0x5C50 = 0x88EF</div><div class='add'>+0x5C51 = 0x88F0</div><div class='add'>+0x5C52 = 0x88F1</div><div class='add'>+0x5C53 = 0x88F5</div><div class='add'>+0x5C54 = 0x88F7</div><div class='add'>+0x5C55 = 0x8901</div><div class='add'>+0x5C56 = 0x8906</div><div class='add'>+0x5C57 = 0x890D</div><div class='add'>+0x5C58 = 0x890E</div><div class='add'>+0x5C59 = 0x890F</div><div class='add'>+0x5C5A = 0x8915</div><div class='add'>+0x5C5B = 0x8916</div><div class='add'>+0x5C5C = 0x8918</div><div class='add'>+0x5C5D = 0x8919</div><div class='add'>+0x5C5E = 0x891A</div><div class='add'>+0x5C5F = 0x891C</div><div class='add'>+0x5C60 = 0x8920</div><div class='add'>+0x5C61 = 0x8926</div><div class='add'>+0x5C62 = 0x8927</div><div class='add'>+0x5C63 = 0x8928</div><div class='add'>+0x5C64 = 0x8930</div><div class='add'>+0x5C65 = 0x8931</div><div class='add'>+0x5C66 = 0x8932</div><div class='add'>+0x5C67 = 0x8935</div><div class='add'>+0x5C68 = 0x8939</div><div class='add'>+0x5C69 = 0x893A</div><div class='add'>+0x5C6A = 0x893E</div><div class='add'>+0x5C6B = 0x8940</div><div class='add'>+0x5C6C = 0x8942</div><div class='add'>+0x5C6D = 0x8945</div><div class='add'>+0x5C6E = 0x8946</div><div class='add'>+0x5C6F = 0x8949</div><div class='add'>+0x5C70 = 0x894F</div><div class='add'>+0x5C71 = 0x8952</div><div class='add'>+0x5C72 = 0x8957</div><div class='add'>+0x5C73 = 0x895A</div><div class='add'>+0x5C74 = 0x895B</div><div class='add'>+0x5C75 = 0x895C</div><div class='add'>+0x5C76 = 0x8961</div><div class='add'>+0x5C77 = 0x8962</div><div class='add'>+0x5C78 = 0x8963</div><div class='add'>+0x5C79 = 0x896B</div><div class='add'>+0x5C7A = 0x896E</div><div class='add'>+0x5C7B = 0x8970</div><div class='add'>+0x5C7C = 0x8973</div><div class='add'>+0x5C7D = 0x8975</div><div class='add'>+0x5C7E = 0x897A</div><div class='add'>+0x5D21 = 0x897B</div><div class='add'>+0x5D22 = 0x897C</div><div class='add'>+0x5D23 = 0x897D</div><div class='add'>+0x5D24 = 0x8989</div><div class='add'>+0x5D25 = 0x898D</div><div class='add'>+0x5D26 = 0x8990</div><div class='add'>+0x5D27 = 0x8994</div><div class='add'>+0x5D28 = 0x8995</div><div class='add'>+0x5D29 = 0x899B</div><div class='add'>+0x5D2A = 0x899C</div><div class='add'>+0x5D2B = 0x899F</div><div class='add'>+0x5D2C = 0x89A0</div><div class='add'>+0x5D2D = 0x89A5</div><div class='add'>+0x5D2E = 0x89B0</div><div class='add'>+0x5D2F = 0x89B4</div><div class='add'>+0x5D30 = 0x89B5</div><div class='add'>+0x5D31 = 0x89B6</div><div class='add'>+0x5D32 = 0x89B7</div><div class='add'>+0x5D33 = 0x89BC</div><div class='add'>+0x5D34 = 0x89D4</div><div class='add'>+0x5D35 = 0x89D5</div><div class='add'>+0x5D36 = 0x89D6</div><div class='add'>+0x5D37 = 0x89D7</div><div class='add'>+0x5D38 = 0x89D8</div><div class='add'>+0x5D39 = 0x89E5</div><div class='add'>+0x5D3A = 0x89E9</div><div class='add'>+0x5D3B = 0x89EB</div><div class='add'>+0x5D3C = 0x89ED</div><div class='add'>+0x5D3D = 0x89F1</div><div class='add'>+0x5D3E = 0x89F3</div><div class='add'>+0x5D3F = 0x89F6</div><div class='add'>+0x5D40 = 0x89F9</div><div class='add'>+0x5D41 = 0x89FD</div><div class='add'>+0x5D42 = 0x89FF</div><div class='add'>+0x5D43 = 0x8A04</div><div class='add'>+0x5D44 = 0x8A05</div><div class='add'>+0x5D45 = 0x8A07</div><div class='add'>+0x5D46 = 0x8A0F</div><div class='add'>+0x5D47 = 0x8A11</div><div class='add'>+0x5D48 = 0x8A12</div><div class='add'>+0x5D49 = 0x8A14</div><div class='add'>+0x5D4A = 0x8A15</div><div class='add'>+0x5D4B = 0x8A1E</div><div class='add'>+0x5D4C = 0x8A20</div><div class='add'>+0x5D4D = 0x8A22</div><div class='add'>+0x5D4E = 0x8A24</div><div class='add'>+0x5D4F = 0x8A26</div><div class='add'>+0x5D50 = 0x8A2B</div><div class='add'>+0x5D51 = 0x8A2C</div><div class='add'>+0x5D52 = 0x8A2F</div><div class='add'>+0x5D53 = 0x8A35</div><div class='add'>+0x5D54 = 0x8A37</div><div class='add'>+0x5D55 = 0x8A3D</div><div class='add'>+0x5D56 = 0x8A3E</div><div class='add'>+0x5D57 = 0x8A40</div><div class='add'>+0x5D58 = 0x8A43</div><div class='add'>+0x5D59 = 0x8A45</div><div class='add'>+0x5D5A = 0x8A47</div><div class='add'>+0x5D5B = 0x8A49</div><div class='add'>+0x5D5C = 0x8A4D</div><div class='add'>+0x5D5D = 0x8A4E</div><div class='add'>+0x5D5E = 0x8A53</div><div class='add'>+0x5D5F = 0x8A56</div><div class='add'>+0x5D60 = 0x8A57</div><div class='add'>+0x5D61 = 0x8A58</div><div class='add'>+0x5D62 = 0x8A5C</div><div class='add'>+0x5D63 = 0x8A5D</div><div class='add'>+0x5D64 = 0x8A61</div><div class='add'>+0x5D65 = 0x8A65</div><div class='add'>+0x5D66 = 0x8A67</div><div class='add'>+0x5D67 = 0x8A75</div><div class='add'>+0x5D68 = 0x8A76</div><div class='add'>+0x5D69 = 0x8A77</div><div class='add'>+0x5D6A = 0x8A79</div><div class='add'>+0x5D6B = 0x8A7A</div><div class='add'>+0x5D6C = 0x8A7B</div><div class='add'>+0x5D6D = 0x8A7E</div><div class='add'>+0x5D6E = 0x8A7F</div><div class='add'>+0x5D6F = 0x8A80</div><div class='add'>+0x5D70 = 0x8A83</div><div class='add'>+0x5D71 = 0x8A86</div><div class='add'>+0x5D72 = 0x8A8B</div><div class='add'>+0x5D73 = 0x8A8F</div><div class='add'>+0x5D74 = 0x8A90</div><div class='add'>+0x5D75 = 0x8A92</div><div class='add'>+0x5D76 = 0x8A96</div><div class='add'>+0x5D77 = 0x8A97</div><div class='add'>+0x5D78 = 0x8A99</div><div class='add'>+0x5D79 = 0x8A9F</div><div class='add'>+0x5D7A = 0x8AA7</div><div class='add'>+0x5D7B = 0x8AA9</div><div class='add'>+0x5D7C = 0x8AAE</div><div class='add'>+0x5D7D = 0x8AAF</div><div class='add'>+0x5D7E = 0x8AB3</div><div class='add'>+0x5E21 = 0x8AB6</div><div class='add'>+0x5E22 = 0x8AB7</div><div class='add'>+0x5E23 = 0x8ABB</div><div class='add'>+0x5E24 = 0x8ABE</div><div class='add'>+0x5E25 = 0x8AC3</div><div class='add'>+0x5E26 = 0x8AC6</div><div class='add'>+0x5E27 = 0x8AC8</div><div class='add'>+0x5E28 = 0x8AC9</div><div class='add'>+0x5E29 = 0x8ACA</div><div class='add'>+0x5E2A = 0x8AD1</div><div class='add'>+0x5E2B = 0x8AD3</div><div class='add'>+0x5E2C = 0x8AD4</div><div class='add'>+0x5E2D = 0x8AD5</div><div class='add'>+0x5E2E = 0x8AD7</div><div class='add'>+0x5E2F = 0x8ADD</div><div class='add'>+0x5E30 = 0x8ADF</div><div class='add'>+0x5E31 = 0x8AEC</div><div class='add'>+0x5E32 = 0x8AF0</div><div class='add'>+0x5E33 = 0x8AF4</div><div class='add'>+0x5E34 = 0x8AF5</div><div class='add'>+0x5E35 = 0x8AF6</div><div class='add'>+0x5E36 = 0x8AFC</div><div class='add'>+0x5E37 = 0x8AFF</div><div class='add'>+0x5E38 = 0x8B05</div><div class='add'>+0x5E39 = 0x8B06</div><div class='add'>+0x5E3A = 0x8B0B</div><div class='add'>+0x5E3B = 0x8B11</div><div class='add'>+0x5E3C = 0x8B1C</div><div class='add'>+0x5E3D = 0x8B1E</div><div class='add'>+0x5E3E = 0x8B1F</div><div class='add'>+0x5E3F = 0x8B0A</div><div class='add'>+0x5E40 = 0x8B2D</div><div class='add'>+0x5E41 = 0x8B30</div><div class='add'>+0x5E42 = 0x8B37</div><div class='add'>+0x5E43 = 0x8B3C</div><div class='add'>+0x5E44 = 0x8B42</div><div class='add'>+0x5E45 = 0x8B43</div><div class='add'>+0x5E46 = 0x8B44</div><div class='add'>+0x5E47 = 0x8B45</div><div class='add'>+0x5E48 = 0x8B46</div><div class='add'>+0x5E49 = 0x8B48</div><div class='add'>+0x5E4A = 0x8B52</div><div class='add'>+0x5E4B = 0x8B53</div><div class='add'>+0x5E4C = 0x8B54</div><div class='add'>+0x5E4D = 0x8B59</div><div class='add'>+0x5E4E = 0x8B4D</div><div class='add'>+0x5E4F = 0x8B5E</div><div class='add'>+0x5E50 = 0x8B63</div><div class='add'>+0x5E51 = 0x8B6D</div><div class='add'>+0x5E52 = 0x8B76</div><div class='add'>+0x5E53 = 0x8B78</div><div class='add'>+0x5E54 = 0x8B79</div><div class='add'>+0x5E55 = 0x8B7C</div><div class='add'>+0x5E56 = 0x8B7E</div><div class='add'>+0x5E57 = 0x8B81</div><div class='add'>+0x5E58 = 0x8B84</div><div class='add'>+0x5E59 = 0x8B85</div><div class='add'>+0x5E5A = 0x8B8B</div><div class='add'>+0x5E5B = 0x8B8D</div><div class='add'>+0x5E5C = 0x8B8F</div><div class='add'>+0x5E5D = 0x8B94</div><div class='add'>+0x5E5E = 0x8B95</div><div class='add'>+0x5E5F = 0x8B9C</div><div class='add'>+0x5E60 = 0x8B9E</div><div class='add'>+0x5E61 = 0x8B9F</div><div class='add'>+0x5E62 = 0x8C38</div><div class='add'>+0x5E63 = 0x8C39</div><div class='add'>+0x5E64 = 0x8C3D</div><div class='add'>+0x5E65 = 0x8C3E</div><div class='add'>+0x5E66 = 0x8C45</div><div class='add'>+0x5E67 = 0x8C47</div><div class='add'>+0x5E68 = 0x8C49</div><div class='add'>+0x5E69 = 0x8C4B</div><div class='add'>+0x5E6A = 0x8C4F</div><div class='add'>+0x5E6B = 0x8C51</div><div class='add'>+0x5E6C = 0x8C53</div><div class='add'>+0x5E6D = 0x8C54</div><div class='add'>+0x5E6E = 0x8C57</div><div class='add'>+0x5E6F = 0x8C58</div><div class='add'>+0x5E70 = 0x8C5B</div><div class='add'>+0x5E71 = 0x8C5D</div><div class='add'>+0x5E72 = 0x8C59</div><div class='add'>+0x5E73 = 0x8C63</div><div class='add'>+0x5E74 = 0x8C64</div><div class='add'>+0x5E75 = 0x8C66</div><div class='add'>+0x5E76 = 0x8C68</div><div class='add'>+0x5E77 = 0x8C69</div><div class='add'>+0x5E78 = 0x8C6D</div><div class='add'>+0x5E79 = 0x8C73</div><div class='add'>+0x5E7A = 0x8C75</div><div class='add'>+0x5E7B = 0x8C76</div><div class='add'>+0x5E7C = 0x8C7B</div><div class='add'>+0x5E7D = 0x8C7E</div><div class='add'>+0x5E7E = 0x8C86</div><div class='add'>+0x5F21 = 0x8C87</div><div class='add'>+0x5F22 = 0x8C8B</div><div class='add'>+0x5F23 = 0x8C90</div><div class='add'>+0x5F24 = 0x8C92</div><div class='add'>+0x5F25 = 0x8C93</div><div class='add'>+0x5F26 = 0x8C99</div><div class='add'>+0x5F27 = 0x8C9B</div><div class='add'>+0x5F28 = 0x8C9C</div><div class='add'>+0x5F29 = 0x8CA4</div><div class='add'>+0x5F2A = 0x8CB9</div><div class='add'>+0x5F2B = 0x8CBA</div><div class='add'>+0x5F2C = 0x8CC5</div><div class='add'>+0x5F2D = 0x8CC6</div><div class='add'>+0x5F2E = 0x8CC9</div><div class='add'>+0x5F2F = 0x8CCB</div><div class='add'>+0x5F30 = 0x8CCF</div><div class='add'>+0x5F31 = 0x8CD6</div><div class='add'>+0x5F32 = 0x8CD5</div><div class='add'>+0x5F33 = 0x8CD9</div><div class='add'>+0x5F34 = 0x8CDD</div><div class='add'>+0x5F35 = 0x8CE1</div><div class='add'>+0x5F36 = 0x8CE8</div><div class='add'>+0x5F37 = 0x8CEC</div><div class='add'>+0x5F38 = 0x8CEF</div><div class='add'>+0x5F39 = 0x8CF0</div><div class='add'>+0x5F3A = 0x8CF2</div><div class='add'>+0x5F3B = 0x8CF5</div><div class='add'>+0x5F3C = 0x8CF7</div><div class='add'>+0x5F3D = 0x8CF8</div><div class='add'>+0x5F3E = 0x8CFE</div><div class='add'>+0x5F3F = 0x8CFF</div><div class='add'>+0x5F40 = 0x8D01</div><div class='add'>+0x5F41 = 0x8D03</div><div class='add'>+0x5F42 = 0x8D09</div><div class='add'>+0x5F43 = 0x8D12</div><div class='add'>+0x5F44 = 0x8D17</div><div class='add'>+0x5F45 = 0x8D1B</div><div class='add'>+0x5F46 = 0x8D65</div><div class='add'>+0x5F47 = 0x8D69</div><div class='add'>+0x5F48 = 0x8D6C</div><div class='add'>+0x5F49 = 0x8D6E</div><div class='add'>+0x5F4A = 0x8D7F</div><div class='add'>+0x5F4B = 0x8D82</div><div class='add'>+0x5F4C = 0x8D84</div><div class='add'>+0x5F4D = 0x8D88</div><div class='add'>+0x5F4E = 0x8D8D</div><div class='add'>+0x5F4F = 0x8D90</div><div class='add'>+0x5F50 = 0x8D91</div><div class='add'>+0x5F51 = 0x8D95</div><div class='add'>+0x5F52 = 0x8D9E</div><div class='add'>+0x5F53 = 0x8D9F</div><div class='add'>+0x5F54 = 0x8DA0</div><div class='add'>+0x5F55 = 0x8DA6</div><div class='add'>+0x5F56 = 0x8DAB</div><div class='add'>+0x5F57 = 0x8DAC</div><div class='add'>+0x5F58 = 0x8DAF</div><div class='add'>+0x5F59 = 0x8DB2</div><div class='add'>+0x5F5A = 0x8DB5</div><div class='add'>+0x5F5B = 0x8DB7</div><div class='add'>+0x5F5C = 0x8DB9</div><div class='add'>+0x5F5D = 0x8DBB</div><div class='add'>+0x5F5E = 0x8DC0</div><div class='add'>+0x5F5F = 0x8DC5</div><div class='add'>+0x5F60 = 0x8DC6</div><div class='add'>+0x5F61 = 0x8DC7</div><div class='add'>+0x5F62 = 0x8DC8</div><div class='add'>+0x5F63 = 0x8DCA</div><div class='add'>+0x5F64 = 0x8DCE</div><div class='add'>+0x5F65 = 0x8DD1</div><div class='add'>+0x5F66 = 0x8DD4</div><div class='add'>+0x5F67 = 0x8DD5</div><div class='add'>+0x5F68 = 0x8DD7</div><div class='add'>+0x5F69 = 0x8DD9</div><div class='add'>+0x5F6A = 0x8DE4</div><div class='add'>+0x5F6B = 0x8DE5</div><div class='add'>+0x5F6C = 0x8DE7</div><div class='add'>+0x5F6D = 0x8DEC</div><div class='add'>+0x5F6E = 0x8DF0</div><div class='add'>+0x5F6F = 0x8DBC</div><div class='add'>+0x5F70 = 0x8DF1</div><div class='add'>+0x5F71 = 0x8DF2</div><div class='add'>+0x5F72 = 0x8DF4</div><div class='add'>+0x5F73 = 0x8DFD</div><div class='add'>+0x5F74 = 0x8E01</div><div class='add'>+0x5F75 = 0x8E04</div><div class='add'>+0x5F76 = 0x8E05</div><div class='add'>+0x5F77 = 0x8E06</div><div class='add'>+0x5F78 = 0x8E0B</div><div class='add'>+0x5F79 = 0x8E11</div><div class='add'>+0x5F7A = 0x8E14</div><div class='add'>+0x5F7B = 0x8E16</div><div class='add'>+0x5F7C = 0x8E20</div><div class='add'>+0x5F7D = 0x8E21</div><div class='add'>+0x5F7E = 0x8E22</div><div class='add'>+0x6021 = 0x8E23</div><div class='add'>+0x6022 = 0x8E26</div><div class='add'>+0x6023 = 0x8E27</div><div class='add'>+0x6024 = 0x8E31</div><div class='add'>+0x6025 = 0x8E33</div><div class='add'>+0x6026 = 0x8E36</div><div class='add'>+0x6027 = 0x8E37</div><div class='add'>+0x6028 = 0x8E38</div><div class='add'>+0x6029 = 0x8E39</div><div class='add'>+0x602A = 0x8E3D</div><div class='add'>+0x602B = 0x8E40</div><div class='add'>+0x602C = 0x8E41</div><div class='add'>+0x602D = 0x8E4B</div><div class='add'>+0x602E = 0x8E4D</div><div class='add'>+0x602F = 0x8E4E</div><div class='add'>+0x6030 = 0x8E4F</div><div class='add'>+0x6031 = 0x8E54</div><div class='add'>+0x6032 = 0x8E5B</div><div class='add'>+0x6033 = 0x8E5C</div><div class='add'>+0x6034 = 0x8E5D</div><div class='add'>+0x6035 = 0x8E5E</div><div class='add'>+0x6036 = 0x8E61</div><div class='add'>+0x6037 = 0x8E62</div><div class='add'>+0x6038 = 0x8E69</div><div class='add'>+0x6039 = 0x8E6C</div><div class='add'>+0x603A = 0x8E6D</div><div class='add'>+0x603B = 0x8E6F</div><div class='add'>+0x603C = 0x8E70</div><div class='add'>+0x603D = 0x8E71</div><div class='add'>+0x603E = 0x8E79</div><div class='add'>+0x603F = 0x8E7A</div><div class='add'>+0x6040 = 0x8E7B</div><div class='add'>+0x6041 = 0x8E82</div><div class='add'>+0x6042 = 0x8E83</div><div class='add'>+0x6043 = 0x8E89</div><div class='add'>+0x6044 = 0x8E90</div><div class='add'>+0x6045 = 0x8E92</div><div class='add'>+0x6046 = 0x8E95</div><div class='add'>+0x6047 = 0x8E9A</div><div class='add'>+0x6048 = 0x8E9B</div><div class='add'>+0x6049 = 0x8E9D</div><div class='add'>+0x604A = 0x8E9E</div><div class='add'>+0x604B = 0x8EA2</div><div class='add'>+0x604C = 0x8EA7</div><div class='add'>+0x604D = 0x8EA9</div><div class='add'>+0x604E = 0x8EAD</div><div class='add'>+0x604F = 0x8EAE</div><div class='add'>+0x6050 = 0x8EB3</div><div class='add'>+0x6051 = 0x8EB5</div><div class='add'>+0x6052 = 0x8EBA</div><div class='add'>+0x6053 = 0x8EBB</div><div class='add'>+0x6054 = 0x8EC0</div><div class='add'>+0x6055 = 0x8EC1</div><div class='add'>+0x6056 = 0x8EC3</div><div class='add'>+0x6057 = 0x8EC4</div><div class='add'>+0x6058 = 0x8EC7</div><div class='add'>+0x6059 = 0x8ECF</div><div class='add'>+0x605A = 0x8ED1</div><div class='add'>+0x605B = 0x8ED4</div><div class='add'>+0x605C = 0x8EDC</div><div class='add'>+0x605D = 0x8EE8</div><div class='add'>+0x605E = 0x8EEE</div><div class='add'>+0x605F = 0x8EF0</div><div class='add'>+0x6060 = 0x8EF1</div><div class='add'>+0x6061 = 0x8EF7</div><div class='add'>+0x6062 = 0x8EF9</div><div class='add'>+0x6063 = 0x8EFA</div><div class='add'>+0x6064 = 0x8EED</div><div class='add'>+0x6065 = 0x8F00</div><div class='add'>+0x6066 = 0x8F02</div><div class='add'>+0x6067 = 0x8F07</div><div class='add'>+0x6068 = 0x8F08</div><div class='add'>+0x6069 = 0x8F0F</div><div class='add'>+0x606A = 0x8F10</div><div class='add'>+0x606B = 0x8F16</div><div class='add'>+0x606C = 0x8F17</div><div class='add'>+0x606D = 0x8F18</div><div class='add'>+0x606E = 0x8F1E</div><div class='add'>+0x606F = 0x8F20</div><div class='add'>+0x6070 = 0x8F21</div><div class='add'>+0x6071 = 0x8F23</div><div class='add'>+0x6072 = 0x8F25</div><div class='add'>+0x6073 = 0x8F27</div><div class='add'>+0x6074 = 0x8F28</div><div class='add'>+0x6075 = 0x8F2C</div><div class='add'>+0x6076 = 0x8F2D</div><div class='add'>+0x6077 = 0x8F2E</div><div class='add'>+0x6078 = 0x8F34</div><div class='add'>+0x6079 = 0x8F35</div><div class='add'>+0x607A = 0x8F36</div><div class='add'>+0x607B = 0x8F37</div><div class='add'>+0x607C = 0x8F3A</div><div class='add'>+0x607D = 0x8F40</div><div class='add'>+0x607E = 0x8F41</div><div class='add'>+0x6121 = 0x8F43</div><div class='add'>+0x6122 = 0x8F47</div><div class='add'>+0x6123 = 0x8F4F</div><div class='add'>+0x6124 = 0x8F51</div><div class='add'>+0x6125 = 0x8F52</div><div class='add'>+0x6126 = 0x8F53</div><div class='add'>+0x6127 = 0x8F54</div><div class='add'>+0x6128 = 0x8F55</div><div class='add'>+0x6129 = 0x8F58</div><div class='add'>+0x612A = 0x8F5D</div><div class='add'>+0x612B = 0x8F5E</div><div class='add'>+0x612C = 0x8F65</div><div class='add'>+0x612D = 0x8F9D</div><div class='add'>+0x612E = 0x8FA0</div><div class='add'>+0x612F = 0x8FA1</div><div class='add'>+0x6130 = 0x8FA4</div><div class='add'>+0x6131 = 0x8FA5</div><div class='add'>+0x6132 = 0x8FA6</div><div class='add'>+0x6133 = 0x8FB5</div><div class='add'>+0x6134 = 0x8FB6</div><div class='add'>+0x6135 = 0x8FB8</div><div class='add'>+0x6136 = 0x8FBE</div><div class='add'>+0x6137 = 0x8FC0</div><div class='add'>+0x6138 = 0x8FC1</div><div class='add'>+0x6139 = 0x8FC6</div><div class='add'>+0x613A = 0x8FCA</div><div class='add'>+0x613B = 0x8FCB</div><div class='add'>+0x613C = 0x8FCD</div><div class='add'>+0x613D = 0x8FD0</div><div class='add'>+0x613E = 0x8FD2</div><div class='add'>+0x613F = 0x8FD3</div><div class='add'>+0x6140 = 0x8FD5</div><div class='add'>+0x6141 = 0x8FE0</div><div class='add'>+0x6142 = 0x8FE3</div><div class='add'>+0x6143 = 0x8FE4</div><div class='add'>+0x6144 = 0x8FE8</div><div class='add'>+0x6145 = 0x8FEE</div><div class='add'>+0x6146 = 0x8FF1</div><div class='add'>+0x6147 = 0x8FF5</div><div class='add'>+0x6148 = 0x8FF6</div><div class='add'>+0x6149 = 0x8FFB</div><div class='add'>+0x614A = 0x8FFE</div><div class='add'>+0x614B = 0x9002</div><div class='add'>+0x614C = 0x9004</div><div class='add'>+0x614D = 0x9008</div><div class='add'>+0x614E = 0x900C</div><div class='add'>+0x614F = 0x9018</div><div class='add'>+0x6150 = 0x901B</div><div class='add'>+0x6151 = 0x9028</div><div class='add'>+0x6152 = 0x9029</div><div class='add'>+0x6153 = 0x902F</div><div class='add'>+0x6154 = 0x902A</div><div class='add'>+0x6155 = 0x902C</div><div class='add'>+0x6156 = 0x902D</div><div class='add'>+0x6157 = 0x9033</div><div class='add'>+0x6158 = 0x9034</div><div class='add'>+0x6159 = 0x9037</div><div class='add'>+0x615A = 0x903F</div><div class='add'>+0x615B = 0x9043</div><div class='add'>+0x615C = 0x9044</div><div class='add'>+0x615D = 0x904C</div><div class='add'>+0x615E = 0x905B</div><div class='add'>+0x615F = 0x905D</div><div class='add'>+0x6160 = 0x9062</div><div class='add'>+0x6161 = 0x9066</div><div class='add'>+0x6162 = 0x9067</div><div class='add'>+0x6163 = 0x906C</div><div class='add'>+0x6164 = 0x9070</div><div class='add'>+0x6165 = 0x9074</div><div class='add'>+0x6166 = 0x9079</div><div class='add'>+0x6167 = 0x9085</div><div class='add'>+0x6168 = 0x9088</div><div class='add'>+0x6169 = 0x908B</div><div class='add'>+0x616A = 0x908C</div><div class='add'>+0x616B = 0x908E</div><div class='add'>+0x616C = 0x9090</div><div class='add'>+0x616D = 0x9095</div><div class='add'>+0x616E = 0x9097</div><div class='add'>+0x616F = 0x9098</div><div class='add'>+0x6170 = 0x9099</div><div class='add'>+0x6171 = 0x909B</div><div class='add'>+0x6172 = 0x90A0</div><div class='add'>+0x6173 = 0x90A1</div><div class='add'>+0x6174 = 0x90A2</div><div class='add'>+0x6175 = 0x90A5</div><div class='add'>+0x6176 = 0x90B0</div><div class='add'>+0x6177 = 0x90B2</div><div class='add'>+0x6178 = 0x90B3</div><div class='add'>+0x6179 = 0x90B4</div><div class='add'>+0x617A = 0x90B6</div><div class='add'>+0x617B = 0x90BD</div><div class='add'>+0x617C = 0x90CC</div><div class='add'>+0x617D = 0x90BE</div><div class='add'>+0x617E = 0x90C3</div><div class='add'>+0x6221 = 0x90C4</div><div class='add'>+0x6222 = 0x90C5</div><div class='add'>+0x6223 = 0x90C7</div><div class='add'>+0x6224 = 0x90C8</div><div class='add'>+0x6225 = 0x90D5</div><div class='add'>+0x6226 = 0x90D7</div><div class='add'>+0x6227 = 0x90D8</div><div class='add'>+0x6228 = 0x90D9</div><div class='add'>+0x6229 = 0x90DC</div><div class='add'>+0x622A = 0x90DD</div><div class='add'>+0x622B = 0x90DF</div><div class='add'>+0x622C = 0x90E5</div><div class='add'>+0x622D = 0x90D2</div><div class='add'>+0x622E = 0x90F6</div><div class='add'>+0x622F = 0x90EB</div><div class='add'>+0x6230 = 0x90EF</div><div class='add'>+0x6231 = 0x90F0</div><div class='add'>+0x6232 = 0x90F4</div><div class='add'>+0x6233 = 0x90FE</div><div class='add'>+0x6234 = 0x90FF</div><div class='add'>+0x6235 = 0x9100</div><div class='add'>+0x6236 = 0x9104</div><div class='add'>+0x6237 = 0x9105</div><div class='add'>+0x6238 = 0x9106</div><div class='add'>+0x6239 = 0x9108</div><div class='add'>+0x623A = 0x910D</div><div class='add'>+0x623B = 0x9110</div><div class='add'>+0x623C = 0x9114</div><div class='add'>+0x623D = 0x9116</div><div class='add'>+0x623E = 0x9117</div><div class='add'>+0x623F = 0x9118</div><div class='add'>+0x6240 = 0x911A</div><div class='add'>+0x6241 = 0x911C</div><div class='add'>+0x6242 = 0x911E</div><div class='add'>+0x6243 = 0x9120</div><div class='add'>+0x6244 = 0x9125</div><div class='add'>+0x6245 = 0x9122</div><div class='add'>+0x6246 = 0x9123</div><div class='add'>+0x6247 = 0x9127</div><div class='add'>+0x6248 = 0x9129</div><div class='add'>+0x6249 = 0x912E</div><div class='add'>+0x624A = 0x912F</div><div class='add'>+0x624B = 0x9131</div><div class='add'>+0x624C = 0x9134</div><div class='add'>+0x624D = 0x9136</div><div class='add'>+0x624E = 0x9137</div><div class='add'>+0x624F = 0x9139</div><div class='add'>+0x6250 = 0x913A</div><div class='add'>+0x6251 = 0x913C</div><div class='add'>+0x6252 = 0x913D</div><div class='add'>+0x6253 = 0x9143</div><div class='add'>+0x6254 = 0x9147</div><div class='add'>+0x6255 = 0x9148</div><div class='add'>+0x6256 = 0x914F</div><div class='add'>+0x6257 = 0x9153</div><div class='add'>+0x6258 = 0x9157</div><div class='add'>+0x6259 = 0x9159</div><div class='add'>+0x625A = 0x915A</div><div class='add'>+0x625B = 0x915B</div><div class='add'>+0x625C = 0x9161</div><div class='add'>+0x625D = 0x9164</div><div class='add'>+0x625E = 0x9167</div><div class='add'>+0x625F = 0x916D</div><div class='add'>+0x6260 = 0x9174</div><div class='add'>+0x6261 = 0x9179</div><div class='add'>+0x6262 = 0x917A</div><div class='add'>+0x6263 = 0x917B</div><div class='add'>+0x6264 = 0x9181</div><div class='add'>+0x6265 = 0x9183</div><div class='add'>+0x6266 = 0x9185</div><div class='add'>+0x6267 = 0x9186</div><div class='add'>+0x6268 = 0x918A</div><div class='add'>+0x6269 = 0x918E</div><div class='add'>+0x626A = 0x9191</div><div class='add'>+0x626B = 0x9193</div><div class='add'>+0x626C = 0x9194</div><div class='add'>+0x626D = 0x9195</div><div class='add'>+0x626E = 0x9198</div><div class='add'>+0x626F = 0x919E</div><div class='add'>+0x6270 = 0x91A1</div><div class='add'>+0x6271 = 0x91A6</div><div class='add'>+0x6272 = 0x91A8</div><div class='add'>+0x6273 = 0x91AC</div><div class='add'>+0x6274 = 0x91AD</div><div class='add'>+0x6275 = 0x91AE</div><div class='add'>+0x6276 = 0x91B0</div><div class='add'>+0x6277 = 0x91B1</div><div class='add'>+0x6278 = 0x91B2</div><div class='add'>+0x6279 = 0x91B3</div><div class='add'>+0x627A = 0x91B6</div><div class='add'>+0x627B = 0x91BB</div><div class='add'>+0x627C = 0x91BC</div><div class='add'>+0x627D = 0x91BD</div><div class='add'>+0x627E = 0x91BF</div><div class='add'>+0x6321 = 0x91C2</div><div class='add'>+0x6322 = 0x91C3</div><div class='add'>+0x6323 = 0x91C5</div><div class='add'>+0x6324 = 0x91D3</div><div class='add'>+0x6325 = 0x91D4</div><div class='add'>+0x6326 = 0x91D7</div><div class='add'>+0x6327 = 0x91D9</div><div class='add'>+0x6328 = 0x91DA</div><div class='add'>+0x6329 = 0x91DE</div><div class='add'>+0x632A = 0x91E4</div><div class='add'>+0x632B = 0x91E5</div><div class='add'>+0x632C = 0x91E9</div><div class='add'>+0x632D = 0x91EA</div><div class='add'>+0x632E = 0x91EC</div><div class='add'>+0x632F = 0x91ED</div><div class='add'>+0x6330 = 0x91EE</div><div class='add'>+0x6331 = 0x91EF</div><div class='add'>+0x6332 = 0x91F0</div><div class='add'>+0x6333 = 0x91F1</div><div class='add'>+0x6334 = 0x91F7</div><div class='add'>+0x6335 = 0x91F9</div><div class='add'>+0x6336 = 0x91FB</div><div class='add'>+0x6337 = 0x91FD</div><div class='add'>+0x6338 = 0x9200</div><div class='add'>+0x6339 = 0x9201</div><div class='add'>+0x633A = 0x9204</div><div class='add'>+0x633B = 0x9205</div><div class='add'>+0x633C = 0x9206</div><div class='add'>+0x633D = 0x9207</div><div class='add'>+0x633E = 0x9209</div><div class='add'>+0x633F = 0x920A</div><div class='add'>+0x6340 = 0x920C</div><div class='add'>+0x6341 = 0x9210</div><div class='add'>+0x6342 = 0x9212</div><div class='add'>+0x6343 = 0x9213</div><div class='add'>+0x6344 = 0x9216</div><div class='add'>+0x6345 = 0x9218</div><div class='add'>+0x6346 = 0x921C</div><div class='add'>+0x6347 = 0x921D</div><div class='add'>+0x6348 = 0x9223</div><div class='add'>+0x6349 = 0x9224</div><div class='add'>+0x634A = 0x9225</div><div class='add'>+0x634B = 0x9226</div><div class='add'>+0x634C = 0x9228</div><div class='add'>+0x634D = 0x922E</div><div class='add'>+0x634E = 0x922F</div><div class='add'>+0x634F = 0x9230</div><div class='add'>+0x6350 = 0x9233</div><div class='add'>+0x6351 = 0x9235</div><div class='add'>+0x6352 = 0x9236</div><div class='add'>+0x6353 = 0x9238</div><div class='add'>+0x6354 = 0x9239</div><div class='add'>+0x6355 = 0x923A</div><div class='add'>+0x6356 = 0x923C</div><div class='add'>+0x6357 = 0x923E</div><div class='add'>+0x6358 = 0x9240</div><div class='add'>+0x6359 = 0x9242</div><div class='add'>+0x635A = 0x9243</div><div class='add'>+0x635B = 0x9246</div><div class='add'>+0x635C = 0x9247</div><div class='add'>+0x635D = 0x924A</div><div class='add'>+0x635E = 0x924D</div><div class='add'>+0x635F = 0x924E</div><div class='add'>+0x6360 = 0x924F</div><div class='add'>+0x6361 = 0x9251</div><div class='add'>+0x6362 = 0x9258</div><div class='add'>+0x6363 = 0x9259</div><div class='add'>+0x6364 = 0x925C</div><div class='add'>+0x6365 = 0x925D</div><div class='add'>+0x6366 = 0x9260</div><div class='add'>+0x6367 = 0x9261</div><div class='add'>+0x6368 = 0x9265</div><div class='add'>+0x6369 = 0x9267</div><div class='add'>+0x636A = 0x9268</div><div class='add'>+0x636B = 0x9269</div><div class='add'>+0x636C = 0x926E</div><div class='add'>+0x636D = 0x926F</div><div class='add'>+0x636E = 0x9270</div><div class='add'>+0x636F = 0x9275</div><div class='add'>+0x6370 = 0x9276</div><div class='add'>+0x6371 = 0x9277</div><div class='add'>+0x6372 = 0x9278</div><div class='add'>+0x6373 = 0x9279</div><div class='add'>+0x6374 = 0x927B</div><div class='add'>+0x6375 = 0x927C</div><div class='add'>+0x6376 = 0x927D</div><div class='add'>+0x6377 = 0x927F</div><div class='add'>+0x6378 = 0x9288</div><div class='add'>+0x6379 = 0x9289</div><div class='add'>+0x637A = 0x928A</div><div class='add'>+0x637B = 0x928D</div><div class='add'>+0x637C = 0x928E</div><div class='add'>+0x637D = 0x9292</div><div class='add'>+0x637E = 0x9297</div><div class='add'>+0x6421 = 0x9299</div><div class='add'>+0x6422 = 0x929F</div><div class='add'>+0x6423 = 0x92A0</div><div class='add'>+0x6424 = 0x92A4</div><div class='add'>+0x6425 = 0x92A5</div><div class='add'>+0x6426 = 0x92A7</div><div class='add'>+0x6427 = 0x92A8</div><div class='add'>+0x6428 = 0x92AB</div><div class='add'>+0x6429 = 0x92AF</div><div class='add'>+0x642A = 0x92B2</div><div class='add'>+0x642B = 0x92B6</div><div class='add'>+0x642C = 0x92B8</div><div class='add'>+0x642D = 0x92BA</div><div class='add'>+0x642E = 0x92BB</div><div class='add'>+0x642F = 0x92BC</div><div class='add'>+0x6430 = 0x92BD</div><div class='add'>+0x6431 = 0x92BF</div><div class='add'>+0x6432 = 0x92C0</div><div class='add'>+0x6433 = 0x92C1</div><div class='add'>+0x6434 = 0x92C2</div><div class='add'>+0x6435 = 0x92C3</div><div class='add'>+0x6436 = 0x92C5</div><div class='add'>+0x6437 = 0x92C6</div><div class='add'>+0x6438 = 0x92C7</div><div class='add'>+0x6439 = 0x92C8</div><div class='add'>+0x643A = 0x92CB</div><div class='add'>+0x643B = 0x92CC</div><div class='add'>+0x643C = 0x92CD</div><div class='add'>+0x643D = 0x92CE</div><div class='add'>+0x643E = 0x92D0</div><div class='add'>+0x643F = 0x92D3</div><div class='add'>+0x6440 = 0x92D5</div><div class='add'>+0x6441 = 0x92D7</div><div class='add'>+0x6442 = 0x92D8</div><div class='add'>+0x6443 = 0x92D9</div><div class='add'>+0x6444 = 0x92DC</div><div class='add'>+0x6445 = 0x92DD</div><div class='add'>+0x6446 = 0x92DF</div><div class='add'>+0x6447 = 0x92E0</div><div class='add'>+0x6448 = 0x92E1</div><div class='add'>+0x6449 = 0x92E3</div><div class='add'>+0x644A = 0x92E5</div><div class='add'>+0x644B = 0x92E7</div><div class='add'>+0x644C = 0x92E8</div><div class='add'>+0x644D = 0x92EC</div><div class='add'>+0x644E = 0x92EE</div><div class='add'>+0x644F = 0x92F0</div><div class='add'>+0x6450 = 0x92F9</div><div class='add'>+0x6451 = 0x92FB</div><div class='add'>+0x6452 = 0x92FF</div><div class='add'>+0x6453 = 0x9300</div><div class='add'>+0x6454 = 0x9302</div><div class='add'>+0x6455 = 0x9308</div><div class='add'>+0x6456 = 0x930D</div><div class='add'>+0x6457 = 0x9311</div><div class='add'>+0x6458 = 0x9314</div><div class='add'>+0x6459 = 0x9315</div><div class='add'>+0x645A = 0x931C</div><div class='add'>+0x645B = 0x931D</div><div class='add'>+0x645C = 0x931E</div><div class='add'>+0x645D = 0x931F</div><div class='add'>+0x645E = 0x9321</div><div class='add'>+0x645F = 0x9324</div><div class='add'>+0x6460 = 0x9325</div><div class='add'>+0x6461 = 0x9327</div><div class='add'>+0x6462 = 0x9329</div><div class='add'>+0x6463 = 0x932A</div><div class='add'>+0x6464 = 0x9333</div><div class='add'>+0x6465 = 0x9334</div><div class='add'>+0x6466 = 0x9336</div><div class='add'>+0x6467 = 0x9337</div><div class='add'>+0x6468 = 0x9347</div><div class='add'>+0x6469 = 0x9348</div><div class='add'>+0x646A = 0x9349</div><div class='add'>+0x646B = 0x9350</div><div class='add'>+0x646C = 0x9351</div><div class='add'>+0x646D = 0x9352</div><div class='add'>+0x646E = 0x9355</div><div class='add'>+0x646F = 0x9357</div><div class='add'>+0x6470 = 0x9358</div><div class='add'>+0x6471 = 0x935A</div><div class='add'>+0x6472 = 0x935E</div><div class='add'>+0x6473 = 0x9364</div><div class='add'>+0x6474 = 0x9365</div><div class='add'>+0x6475 = 0x9367</div><div class='add'>+0x6476 = 0x9369</div><div class='add'>+0x6477 = 0x936A</div><div class='add'>+0x6478 = 0x936D</div><div class='add'>+0x6479 = 0x936F</div><div class='add'>+0x647A = 0x9370</div><div class='add'>+0x647B = 0x9371</div><div class='add'>+0x647C = 0x9373</div><div class='add'>+0x647D = 0x9374</div><div class='add'>+0x647E = 0x9376</div><div class='add'>+0x6521 = 0x937A</div><div class='add'>+0x6522 = 0x937D</div><div class='add'>+0x6523 = 0x937F</div><div class='add'>+0x6524 = 0x9380</div><div class='add'>+0x6525 = 0x9381</div><div class='add'>+0x6526 = 0x9382</div><div class='add'>+0x6527 = 0x9388</div><div class='add'>+0x6528 = 0x938A</div><div class='add'>+0x6529 = 0x938B</div><div class='add'>+0x652A = 0x938D</div><div class='add'>+0x652B = 0x938F</div><div class='add'>+0x652C = 0x9392</div><div class='add'>+0x652D = 0x9395</div><div class='add'>+0x652E = 0x9398</div><div class='add'>+0x652F = 0x939B</div><div class='add'>+0x6530 = 0x939E</div><div class='add'>+0x6531 = 0x93A1</div><div class='add'>+0x6532 = 0x93A3</div><div class='add'>+0x6533 = 0x93A4</div><div class='add'>+0x6534 = 0x93A6</div><div class='add'>+0x6535 = 0x93A8</div><div class='add'>+0x6536 = 0x93AB</div><div class='add'>+0x6537 = 0x93B4</div><div class='add'>+0x6538 = 0x93B5</div><div class='add'>+0x6539 = 0x93B6</div><div class='add'>+0x653A = 0x93BA</div><div class='add'>+0x653B = 0x93A9</div><div class='add'>+0x653C = 0x93C1</div><div class='add'>+0x653D = 0x93C4</div><div class='add'>+0x653E = 0x93C5</div><div class='add'>+0x653F = 0x93C6</div><div class='add'>+0x6540 = 0x93C7</div><div class='add'>+0x6541 = 0x93C9</div><div class='add'>+0x6542 = 0x93CA</div><div class='add'>+0x6543 = 0x93CB</div><div class='add'>+0x6544 = 0x93CC</div><div class='add'>+0x6545 = 0x93CD</div><div class='add'>+0x6546 = 0x93D3</div><div class='add'>+0x6547 = 0x93D9</div><div class='add'>+0x6548 = 0x93DC</div><div class='add'>+0x6549 = 0x93DE</div><div class='add'>+0x654A = 0x93DF</div><div class='add'>+0x654B = 0x93E2</div><div class='add'>+0x654C = 0x93E6</div><div class='add'>+0x654D = 0x93E7</div><div class='add'>+0x654E = 0x93F9</div><div class='add'>+0x654F = 0x93F7</div><div class='add'>+0x6550 = 0x93F8</div><div class='add'>+0x6551 = 0x93FA</div><div class='add'>+0x6552 = 0x93FB</div><div class='add'>+0x6553 = 0x93FD</div><div class='add'>+0x6554 = 0x9401</div><div class='add'>+0x6555 = 0x9402</div><div class='add'>+0x6556 = 0x9404</div><div class='add'>+0x6557 = 0x9408</div><div class='add'>+0x6558 = 0x9409</div><div class='add'>+0x6559 = 0x940D</div><div class='add'>+0x655A = 0x940E</div><div class='add'>+0x655B = 0x940F</div><div class='add'>+0x655C = 0x9415</div><div class='add'>+0x655D = 0x9416</div><div class='add'>+0x655E = 0x9417</div><div class='add'>+0x655F = 0x941F</div><div class='add'>+0x6560 = 0x942E</div><div class='add'>+0x6561 = 0x942F</div><div class='add'>+0x6562 = 0x9431</div><div class='add'>+0x6563 = 0x9432</div><div class='add'>+0x6564 = 0x9433</div><div class='add'>+0x6565 = 0x9434</div><div class='add'>+0x6566 = 0x943B</div><div class='add'>+0x6567 = 0x943F</div><div class='add'>+0x6568 = 0x943D</div><div class='add'>+0x6569 = 0x9443</div><div class='add'>+0x656A = 0x9445</div><div class='add'>+0x656B = 0x9448</div><div class='add'>+0x656C = 0x944A</div><div class='add'>+0x656D = 0x944C</div><div class='add'>+0x656E = 0x9455</div><div class='add'>+0x656F = 0x9459</div><div class='add'>+0x6570 = 0x945C</div><div class='add'>+0x6571 = 0x945F</div><div class='add'>+0x6572 = 0x9461</div><div class='add'>+0x6573 = 0x9463</div><div class='add'>+0x6574 = 0x9468</div><div class='add'>+0x6575 = 0x946B</div><div class='add'>+0x6576 = 0x946D</div><div class='add'>+0x6577 = 0x946E</div><div class='add'>+0x6578 = 0x946F</div><div class='add'>+0x6579 = 0x9471</div><div class='add'>+0x657A = 0x9472</div><div class='add'>+0x657B = 0x9484</div><div class='add'>+0x657C = 0x9483</div><div class='add'>+0x657D = 0x9578</div><div class='add'>+0x657E = 0x9579</div><div class='add'>+0x6621 = 0x957E</div><div class='add'>+0x6622 = 0x9584</div><div class='add'>+0x6623 = 0x9588</div><div class='add'>+0x6624 = 0x958C</div><div class='add'>+0x6625 = 0x958D</div><div class='add'>+0x6626 = 0x958E</div><div class='add'>+0x6627 = 0x959D</div><div class='add'>+0x6628 = 0x959E</div><div class='add'>+0x6629 = 0x959F</div><div class='add'>+0x662A = 0x95A1</div><div class='add'>+0x662B = 0x95A6</div><div class='add'>+0x662C = 0x95A9</div><div class='add'>+0x662D = 0x95AB</div><div class='add'>+0x662E = 0x95AC</div><div class='add'>+0x662F = 0x95B4</div><div class='add'>+0x6630 = 0x95B6</div><div class='add'>+0x6631 = 0x95BA</div><div class='add'>+0x6632 = 0x95BD</div><div class='add'>+0x6633 = 0x95BF</div><div class='add'>+0x6634 = 0x95C6</div><div class='add'>+0x6635 = 0x95C8</div><div class='add'>+0x6636 = 0x95C9</div><div class='add'>+0x6637 = 0x95CB</div><div class='add'>+0x6638 = 0x95D0</div><div class='add'>+0x6639 = 0x95D1</div><div class='add'>+0x663A = 0x95D2</div><div class='add'>+0x663B = 0x95D3</div><div class='add'>+0x663C = 0x95D9</div><div class='add'>+0x663D = 0x95DA</div><div class='add'>+0x663E = 0x95DD</div><div class='add'>+0x663F = 0x95DE</div><div class='add'>+0x6640 = 0x95DF</div><div class='add'>+0x6641 = 0x95E0</div><div class='add'>+0x6642 = 0x95E4</div><div class='add'>+0x6643 = 0x95E6</div><div class='add'>+0x6644 = 0x961D</div><div class='add'>+0x6645 = 0x961E</div><div class='add'>+0x6646 = 0x9622</div><div class='add'>+0x6647 = 0x9624</div><div class='add'>+0x6648 = 0x9625</div><div class='add'>+0x6649 = 0x9626</div><div class='add'>+0x664A = 0x962C</div><div class='add'>+0x664B = 0x9631</div><div class='add'>+0x664C = 0x9633</div><div class='add'>+0x664D = 0x9637</div><div class='add'>+0x664E = 0x9638</div><div class='add'>+0x664F = 0x9639</div><div class='add'>+0x6650 = 0x963A</div><div class='add'>+0x6651 = 0x963C</div><div class='add'>+0x6652 = 0x963D</div><div class='add'>+0x6653 = 0x9641</div><div class='add'>+0x6654 = 0x9652</div><div class='add'>+0x6655 = 0x9654</div><div class='add'>+0x6656 = 0x9656</div><div class='add'>+0x6657 = 0x9657</div><div class='add'>+0x6658 = 0x9658</div><div class='add'>+0x6659 = 0x9661</div><div class='add'>+0x665A = 0x966E</div><div class='add'>+0x665B = 0x9674</div><div class='add'>+0x665C = 0x967B</div><div class='add'>+0x665D = 0x967C</div><div class='add'>+0x665E = 0x967E</div><div class='add'>+0x665F = 0x967F</div><div class='add'>+0x6660 = 0x9681</div><div class='add'>+0x6661 = 0x9682</div><div class='add'>+0x6662 = 0x9683</div><div class='add'>+0x6663 = 0x9684</div><div class='add'>+0x6664 = 0x9689</div><div class='add'>+0x6665 = 0x9691</div><div class='add'>+0x6666 = 0x9696</div><div class='add'>+0x6667 = 0x969A</div><div class='add'>+0x6668 = 0x969D</div><div class='add'>+0x6669 = 0x969F</div><div class='add'>+0x666A = 0x96A4</div><div class='add'>+0x666B = 0x96A5</div><div class='add'>+0x666C = 0x96A6</div><div class='add'>+0x666D = 0x96A9</div><div class='add'>+0x666E = 0x96AE</div><div class='add'>+0x666F = 0x96AF</div><div class='add'>+0x6670 = 0x96B3</div><div class='add'>+0x6671 = 0x96BA</div><div class='add'>+0x6672 = 0x96CA</div><div class='add'>+0x6673 = 0x96D2</div><div class='add'>+0x6674 = 0x5DB2</div><div class='add'>+0x6675 = 0x96D8</div><div class='add'>+0x6676 = 0x96DA</div><div class='add'>+0x6677 = 0x96DD</div><div class='add'>+0x6678 = 0x96DE</div><div class='add'>+0x6679 = 0x96DF</div><div class='add'>+0x667A = 0x96E9</div><div class='add'>+0x667B = 0x96EF</div><div class='add'>+0x667C = 0x96F1</div><div class='add'>+0x667D = 0x96FA</div><div class='add'>+0x667E = 0x9702</div><div class='add'>+0x6721 = 0x9703</div><div class='add'>+0x6722 = 0x9705</div><div class='add'>+0x6723 = 0x9709</div><div class='add'>+0x6724 = 0x971A</div><div class='add'>+0x6725 = 0x971B</div><div class='add'>+0x6726 = 0x971D</div><div class='add'>+0x6727 = 0x9721</div><div class='add'>+0x6728 = 0x9722</div><div class='add'>+0x6729 = 0x9723</div><div class='add'>+0x672A = 0x9728</div><div class='add'>+0x672B = 0x9731</div><div class='add'>+0x672C = 0x9733</div><div class='add'>+0x672D = 0x9741</div><div class='add'>+0x672E = 0x9743</div><div class='add'>+0x672F = 0x974A</div><div class='add'>+0x6730 = 0x974E</div><div class='add'>+0x6731 = 0x974F</div><div class='add'>+0x6732 = 0x9755</div><div class='add'>+0x6733 = 0x9757</div><div class='add'>+0x6734 = 0x9758</div><div class='add'>+0x6735 = 0x975A</div><div class='add'>+0x6736 = 0x975B</div><div class='add'>+0x6737 = 0x9763</div><div class='add'>+0x6738 = 0x9767</div><div class='add'>+0x6739 = 0x976A</div><div class='add'>+0x673A = 0x976E</div><div class='add'>+0x673B = 0x9773</div><div class='add'>+0x673C = 0x9776</div><div class='add'>+0x673D = 0x9777</div><div class='add'>+0x673E = 0x9778</div><div class='add'>+0x673F = 0x977B</div><div class='add'>+0x6740 = 0x977D</div><div class='add'>+0x6741 = 0x977F</div><div class='add'>+0x6742 = 0x9780</div><div class='add'>+0x6743 = 0x9789</div><div class='add'>+0x6744 = 0x9795</div><div class='add'>+0x6745 = 0x9796</div><div class='add'>+0x6746 = 0x9797</div><div class='add'>+0x6747 = 0x9799</div><div class='add'>+0x6748 = 0x979A</div><div class='add'>+0x6749 = 0x979E</div><div class='add'>+0x674A = 0x979F</div><div class='add'>+0x674B = 0x97A2</div><div class='add'>+0x674C = 0x97AC</div><div class='add'>+0x674D = 0x97AE</div><div class='add'>+0x674E = 0x97B1</div><div class='add'>+0x674F = 0x97B2</div><div class='add'>+0x6750 = 0x97B5</div><div class='add'>+0x6751 = 0x97B6</div><div class='add'>+0x6752 = 0x97B8</div><div class='add'>+0x6753 = 0x97B9</div><div class='add'>+0x6754 = 0x97BA</div><div class='add'>+0x6755 = 0x97BC</div><div class='add'>+0x6756 = 0x97BE</div><div class='add'>+0x6757 = 0x97BF</div><div class='add'>+0x6758 = 0x97C1</div><div class='add'>+0x6759 = 0x97C4</div><div class='add'>+0x675A = 0x97C5</div><div class='add'>+0x675B = 0x97C7</div><div class='add'>+0x675C = 0x97C9</div><div class='add'>+0x675D = 0x97CA</div><div class='add'>+0x675E = 0x97CC</div><div class='add'>+0x675F = 0x97CD</div><div class='add'>+0x6760 = 0x97CE</div><div class='add'>+0x6761 = 0x97D0</div><div class='add'>+0x6762 = 0x97D1</div><div class='add'>+0x6763 = 0x97D4</div><div class='add'>+0x6764 = 0x97D7</div><div class='add'>+0x6765 = 0x97D8</div><div class='add'>+0x6766 = 0x97D9</div><div class='add'>+0x6767 = 0x97DD</div><div class='add'>+0x6768 = 0x97DE</div><div class='add'>+0x6769 = 0x97E0</div><div class='add'>+0x676A = 0x97DB</div><div class='add'>+0x676B = 0x97E1</div><div class='add'>+0x676C = 0x97E4</div><div class='add'>+0x676D = 0x97EF</div><div class='add'>+0x676E = 0x97F1</div><div class='add'>+0x676F = 0x97F4</div><div class='add'>+0x6770 = 0x97F7</div><div class='add'>+0x6771 = 0x97F8</div><div class='add'>+0x6772 = 0x97FA</div><div class='add'>+0x6773 = 0x9807</div><div class='add'>+0x6774 = 0x980A</div><div class='add'>+0x6775 = 0x9819</div><div class='add'>+0x6776 = 0x980D</div><div class='add'>+0x6777 = 0x980E</div><div class='add'>+0x6778 = 0x9814</div><div class='add'>+0x6779 = 0x9816</div><div class='add'>+0x677A = 0x981C</div><div class='add'>+0x677B = 0x981E</div><div class='add'>+0x677C = 0x9820</div><div class='add'>+0x677D = 0x9823</div><div class='add'>+0x677E = 0x9826</div><div class='add'>+0x6821 = 0x982B</div><div class='add'>+0x6822 = 0x982E</div><div class='add'>+0x6823 = 0x982F</div><div class='add'>+0x6824 = 0x9830</div><div class='add'>+0x6825 = 0x9832</div><div class='add'>+0x6826 = 0x9833</div><div class='add'>+0x6827 = 0x9835</div><div class='add'>+0x6828 = 0x9825</div><div class='add'>+0x6829 = 0x983E</div><div class='add'>+0x682A = 0x9844</div><div class='add'>+0x682B = 0x9847</div><div class='add'>+0x682C = 0x984A</div><div class='add'>+0x682D = 0x9851</div><div class='add'>+0x682E = 0x9852</div><div class='add'>+0x682F = 0x9853</div><div class='add'>+0x6830 = 0x9856</div><div class='add'>+0x6831 = 0x9857</div><div class='add'>+0x6832 = 0x9859</div><div class='add'>+0x6833 = 0x985A</div><div class='add'>+0x6834 = 0x9862</div><div class='add'>+0x6835 = 0x9863</div><div class='add'>+0x6836 = 0x9865</div><div class='add'>+0x6837 = 0x9866</div><div class='add'>+0x6838 = 0x986A</div><div class='add'>+0x6839 = 0x986C</div><div class='add'>+0x683A = 0x98AB</div><div class='add'>+0x683B = 0x98AD</div><div class='add'>+0x683C = 0x98AE</div><div class='add'>+0x683D = 0x98B0</div><div class='add'>+0x683E = 0x98B4</div><div class='add'>+0x683F = 0x98B7</div><div class='add'>+0x6840 = 0x98B8</div><div class='add'>+0x6841 = 0x98BA</div><div class='add'>+0x6842 = 0x98BB</div><div class='add'>+0x6843 = 0x98BF</div><div class='add'>+0x6844 = 0x98C2</div><div class='add'>+0x6845 = 0x98C5</div><div class='add'>+0x6846 = 0x98C8</div><div class='add'>+0x6847 = 0x98CC</div><div class='add'>+0x6848 = 0x98E1</div><div class='add'>+0x6849 = 0x98E3</div><div class='add'>+0x684A = 0x98E5</div><div class='add'>+0x684B = 0x98E6</div><div class='add'>+0x684C = 0x98E7</div><div class='add'>+0x684D = 0x98EA</div><div class='add'>+0x684E = 0x98F3</div><div class='add'>+0x684F = 0x98F6</div><div class='add'>+0x6850 = 0x9902</div><div class='add'>+0x6851 = 0x9907</div><div class='add'>+0x6852 = 0x9908</div><div class='add'>+0x6853 = 0x9911</div><div class='add'>+0x6854 = 0x9915</div><div class='add'>+0x6855 = 0x9916</div><div class='add'>+0x6856 = 0x9917</div><div class='add'>+0x6857 = 0x991A</div><div class='add'>+0x6858 = 0x991B</div><div class='add'>+0x6859 = 0x991C</div><div class='add'>+0x685A = 0x991F</div><div class='add'>+0x685B = 0x9922</div><div class='add'>+0x685C = 0x9926</div><div class='add'>+0x685D = 0x9927</div><div class='add'>+0x685E = 0x992B</div><div class='add'>+0x685F = 0x9931</div><div class='add'>+0x6860 = 0x9932</div><div class='add'>+0x6861 = 0x9933</div><div class='add'>+0x6862 = 0x9934</div><div class='add'>+0x6863 = 0x9935</div><div class='add'>+0x6864 = 0x9939</div><div class='add'>+0x6865 = 0x993A</div><div class='add'>+0x6866 = 0x993B</div><div class='add'>+0x6867 = 0x993C</div><div class='add'>+0x6868 = 0x9940</div><div class='add'>+0x6869 = 0x9941</div><div class='add'>+0x686A = 0x9946</div><div class='add'>+0x686B = 0x9947</div><div class='add'>+0x686C = 0x9948</div><div class='add'>+0x686D = 0x994D</div><div class='add'>+0x686E = 0x994E</div><div class='add'>+0x686F = 0x9954</div><div class='add'>+0x6870 = 0x9958</div><div class='add'>+0x6871 = 0x9959</div><div class='add'>+0x6872 = 0x995B</div><div class='add'>+0x6873 = 0x995C</div><div class='add'>+0x6874 = 0x995E</div><div class='add'>+0x6875 = 0x995F</div><div class='add'>+0x6876 = 0x9960</div><div class='add'>+0x6877 = 0x999B</div><div class='add'>+0x6878 = 0x999D</div><div class='add'>+0x6879 = 0x999F</div><div class='add'>+0x687A = 0x99A6</div><div class='add'>+0x687B = 0x99B0</div><div class='add'>+0x687C = 0x99B1</div><div class='add'>+0x687D = 0x99B2</div><div class='add'>+0x687E = 0x99B5</div><div class='add'>+0x6921 = 0x99B9</div><div class='add'>+0x6922 = 0x99BA</div><div class='add'>+0x6923 = 0x99BD</div><div class='add'>+0x6924 = 0x99BF</div><div class='add'>+0x6925 = 0x99C3</div><div class='add'>+0x6926 = 0x99C9</div><div class='add'>+0x6927 = 0x99D3</div><div class='add'>+0x6928 = 0x99D4</div><div class='add'>+0x6929 = 0x99D9</div><div class='add'>+0x692A = 0x99DA</div><div class='add'>+0x692B = 0x99DC</div><div class='add'>+0x692C = 0x99DE</div><div class='add'>+0x692D = 0x99E7</div><div class='add'>+0x692E = 0x99EA</div><div class='add'>+0x692F = 0x99EB</div><div class='add'>+0x6930 = 0x99EC</div><div class='add'>+0x6931 = 0x99F0</div><div class='add'>+0x6932 = 0x99F4</div><div class='add'>+0x6933 = 0x99F5</div><div class='add'>+0x6934 = 0x99F9</div><div class='add'>+0x6935 = 0x99FD</div><div class='add'>+0x6936 = 0x99FE</div><div class='add'>+0x6937 = 0x9A02</div><div class='add'>+0x6938 = 0x9A03</div><div class='add'>+0x6939 = 0x9A04</div><div class='add'>+0x693A = 0x9A0B</div><div class='add'>+0x693B = 0x9A0C</div><div class='add'>+0x693C = 0x9A10</div><div class='add'>+0x693D = 0x9A11</div><div class='add'>+0x693E = 0x9A16</div><div class='add'>+0x693F = 0x9A1E</div><div class='add'>+0x6940 = 0x9A20</div><div class='add'>+0x6941 = 0x9A22</div><div class='add'>+0x6942 = 0x9A23</div><div class='add'>+0x6943 = 0x9A24</div><div class='add'>+0x6944 = 0x9A27</div><div class='add'>+0x6945 = 0x9A2D</div><div class='add'>+0x6946 = 0x9A2E</div><div class='add'>+0x6947 = 0x9A33</div><div class='add'>+0x6948 = 0x9A35</div><div class='add'>+0x6949 = 0x9A36</div><div class='add'>+0x694A = 0x9A38</div><div class='add'>+0x694B = 0x9A47</div><div class='add'>+0x694C = 0x9A41</div><div class='add'>+0x694D = 0x9A44</div><div class='add'>+0x694E = 0x9A4A</div><div class='add'>+0x694F = 0x9A4B</div><div class='add'>+0x6950 = 0x9A4C</div><div class='add'>+0x6951 = 0x9A4E</div><div class='add'>+0x6952 = 0x9A51</div><div class='add'>+0x6953 = 0x9A54</div><div class='add'>+0x6954 = 0x9A56</div><div class='add'>+0x6955 = 0x9A5D</div><div class='add'>+0x6956 = 0x9AAA</div><div class='add'>+0x6957 = 0x9AAC</div><div class='add'>+0x6958 = 0x9AAE</div><div class='add'>+0x6959 = 0x9AAF</div><div class='add'>+0x695A = 0x9AB2</div><div class='add'>+0x695B = 0x9AB4</div><div class='add'>+0x695C = 0x9AB5</div><div class='add'>+0x695D = 0x9AB6</div><div class='add'>+0x695E = 0x9AB9</div><div class='add'>+0x695F = 0x9ABB</div><div class='add'>+0x6960 = 0x9ABE</div><div class='add'>+0x6961 = 0x9ABF</div><div class='add'>+0x6962 = 0x9AC1</div><div class='add'>+0x6963 = 0x9AC3</div><div class='add'>+0x6964 = 0x9AC6</div><div class='add'>+0x6965 = 0x9AC8</div><div class='add'>+0x6966 = 0x9ACE</div><div class='add'>+0x6967 = 0x9AD0</div><div class='add'>+0x6968 = 0x9AD2</div><div class='add'>+0x6969 = 0x9AD5</div><div class='add'>+0x696A = 0x9AD6</div><div class='add'>+0x696B = 0x9AD7</div><div class='add'>+0x696C = 0x9ADB</div><div class='add'>+0x696D = 0x9ADC</div><div class='add'>+0x696E = 0x9AE0</div><div class='add'>+0x696F = 0x9AE4</div><div class='add'>+0x6970 = 0x9AE5</div><div class='add'>+0x6971 = 0x9AE7</div><div class='add'>+0x6972 = 0x9AE9</div><div class='add'>+0x6973 = 0x9AEC</div><div class='add'>+0x6974 = 0x9AF2</div><div class='add'>+0x6975 = 0x9AF3</div><div class='add'>+0x6976 = 0x9AF5</div><div class='add'>+0x6977 = 0x9AF9</div><div class='add'>+0x6978 = 0x9AFA</div><div class='add'>+0x6979 = 0x9AFD</div><div class='add'>+0x697A = 0x9AFF</div><div class='add'>+0x697B = 0x9B00</div><div class='add'>+0x697C = 0x9B01</div><div class='add'>+0x697D = 0x9B02</div><div class='add'>+0x697E = 0x9B03</div><div class='add'>+0x6A21 = 0x9B04</div><div class='add'>+0x6A22 = 0x9B05</div><div class='add'>+0x6A23 = 0x9B08</div><div class='add'>+0x6A24 = 0x9B09</div><div class='add'>+0x6A25 = 0x9B0B</div><div class='add'>+0x6A26 = 0x9B0C</div><div class='add'>+0x6A27 = 0x9B0D</div><div class='add'>+0x6A28 = 0x9B0E</div><div class='add'>+0x6A29 = 0x9B10</div><div class='add'>+0x6A2A = 0x9B12</div><div class='add'>+0x6A2B = 0x9B16</div><div class='add'>+0x6A2C = 0x9B19</div><div class='add'>+0x6A2D = 0x9B1B</div><div class='add'>+0x6A2E = 0x9B1C</div><div class='add'>+0x6A2F = 0x9B20</div><div class='add'>+0x6A30 = 0x9B26</div><div class='add'>+0x6A31 = 0x9B2B</div><div class='add'>+0x6A32 = 0x9B2D</div><div class='add'>+0x6A33 = 0x9B33</div><div class='add'>+0x6A34 = 0x9B34</div><div class='add'>+0x6A35 = 0x9B35</div><div class='add'>+0x6A36 = 0x9B37</div><div class='add'>+0x6A37 = 0x9B39</div><div class='add'>+0x6A38 = 0x9B3A</div><div class='add'>+0x6A39 = 0x9B3D</div><div class='add'>+0x6A3A = 0x9B48</div><div class='add'>+0x6A3B = 0x9B4B</div><div class='add'>+0x6A3C = 0x9B4C</div><div class='add'>+0x6A3D = 0x9B55</div><div class='add'>+0x6A3E = 0x9B56</div><div class='add'>+0x6A3F = 0x9B57</div><div class='add'>+0x6A40 = 0x9B5B</div><div class='add'>+0x6A41 = 0x9B5E</div><div class='add'>+0x6A42 = 0x9B61</div><div class='add'>+0x6A43 = 0x9B63</div><div class='add'>+0x6A44 = 0x9B65</div><div class='add'>+0x6A45 = 0x9B66</div><div class='add'>+0x6A46 = 0x9B68</div><div class='add'>+0x6A47 = 0x9B6A</div><div class='add'>+0x6A48 = 0x9B6B</div><div class='add'>+0x6A49 = 0x9B6C</div><div class='add'>+0x6A4A = 0x9B6D</div><div class='add'>+0x6A4B = 0x9B6E</div><div class='add'>+0x6A4C = 0x9B73</div><div class='add'>+0x6A4D = 0x9B75</div><div class='add'>+0x6A4E = 0x9B77</div><div class='add'>+0x6A4F = 0x9B78</div><div class='add'>+0x6A50 = 0x9B79</div><div class='add'>+0x6A51 = 0x9B7F</div><div class='add'>+0x6A52 = 0x9B80</div><div class='add'>+0x6A53 = 0x9B84</div><div class='add'>+0x6A54 = 0x9B85</div><div class='add'>+0x6A55 = 0x9B86</div><div class='add'>+0x6A56 = 0x9B87</div><div class='add'>+0x6A57 = 0x9B89</div><div class='add'>+0x6A58 = 0x9B8A</div><div class='add'>+0x6A59 = 0x9B8B</div><div class='add'>+0x6A5A = 0x9B8D</div><div class='add'>+0x6A5B = 0x9B8F</div><div class='add'>+0x6A5C = 0x9B90</div><div class='add'>+0x6A5D = 0x9B94</div><div class='add'>+0x6A5E = 0x9B9A</div><div class='add'>+0x6A5F = 0x9B9D</div><div class='add'>+0x6A60 = 0x9B9E</div><div class='add'>+0x6A61 = 0x9BA6</div><div class='add'>+0x6A62 = 0x9BA7</div><div class='add'>+0x6A63 = 0x9BA9</div><div class='add'>+0x6A64 = 0x9BAC</div><div class='add'>+0x6A65 = 0x9BB0</div><div class='add'>+0x6A66 = 0x9BB1</div><div class='add'>+0x6A67 = 0x9BB2</div><div class='add'>+0x6A68 = 0x9BB7</div><div class='add'>+0x6A69 = 0x9BB8</div><div class='add'>+0x6A6A = 0x9BBB</div><div class='add'>+0x6A6B = 0x9BBC</div><div class='add'>+0x6A6C = 0x9BBE</div><div class='add'>+0x6A6D = 0x9BBF</div><div class='add'>+0x6A6E = 0x9BC1</div><div class='add'>+0x6A6F = 0x9BC7</div><div class='add'>+0x6A70 = 0x9BC8</div><div class='add'>+0x6A71 = 0x9BCE</div><div class='add'>+0x6A72 = 0x9BD0</div><div class='add'>+0x6A73 = 0x9BD7</div><div class='add'>+0x6A74 = 0x9BD8</div><div class='add'>+0x6A75 = 0x9BDD</div><div class='add'>+0x6A76 = 0x9BDF</div><div class='add'>+0x6A77 = 0x9BE5</div><div class='add'>+0x6A78 = 0x9BE7</div><div class='add'>+0x6A79 = 0x9BEA</div><div class='add'>+0x6A7A = 0x9BEB</div><div class='add'>+0x6A7B = 0x9BEF</div><div class='add'>+0x6A7C = 0x9BF3</div><div class='add'>+0x6A7D = 0x9BF7</div><div class='add'>+0x6A7E = 0x9BF8</div><div class='add'>+0x6B21 = 0x9BF9</div><div class='add'>+0x6B22 = 0x9BFA</div><div class='add'>+0x6B23 = 0x9BFD</div><div class='add'>+0x6B24 = 0x9BFF</div><div class='add'>+0x6B25 = 0x9C00</div><div class='add'>+0x6B26 = 0x9C02</div><div class='add'>+0x6B27 = 0x9C0B</div><div class='add'>+0x6B28 = 0x9C0F</div><div class='add'>+0x6B29 = 0x9C11</div><div class='add'>+0x6B2A = 0x9C16</div><div class='add'>+0x6B2B = 0x9C18</div><div class='add'>+0x6B2C = 0x9C19</div><div class='add'>+0x6B2D = 0x9C1A</div><div class='add'>+0x6B2E = 0x9C1C</div><div class='add'>+0x6B2F = 0x9C1E</div><div class='add'>+0x6B30 = 0x9C22</div><div class='add'>+0x6B31 = 0x9C23</div><div class='add'>+0x6B32 = 0x9C26</div><div class='add'>+0x6B33 = 0x9C27</div><div class='add'>+0x6B34 = 0x9C28</div><div class='add'>+0x6B35 = 0x9C29</div><div class='add'>+0x6B36 = 0x9C2A</div><div class='add'>+0x6B37 = 0x9C31</div><div class='add'>+0x6B38 = 0x9C35</div><div class='add'>+0x6B39 = 0x9C36</div><div class='add'>+0x6B3A = 0x9C37</div><div class='add'>+0x6B3B = 0x9C3D</div><div class='add'>+0x6B3C = 0x9C41</div><div class='add'>+0x6B3D = 0x9C43</div><div class='add'>+0x6B3E = 0x9C44</div><div class='add'>+0x6B3F = 0x9C45</div><div class='add'>+0x6B40 = 0x9C49</div><div class='add'>+0x6B41 = 0x9C4A</div><div class='add'>+0x6B42 = 0x9C4E</div><div class='add'>+0x6B43 = 0x9C4F</div><div class='add'>+0x6B44 = 0x9C50</div><div class='add'>+0x6B45 = 0x9C53</div><div class='add'>+0x6B46 = 0x9C54</div><div class='add'>+0x6B47 = 0x9C56</div><div class='add'>+0x6B48 = 0x9C58</div><div class='add'>+0x6B49 = 0x9C5B</div><div class='add'>+0x6B4A = 0x9C5D</div><div class='add'>+0x6B4B = 0x9C5E</div><div class='add'>+0x6B4C = 0x9C5F</div><div class='add'>+0x6B4D = 0x9C63</div><div class='add'>+0x6B4E = 0x9C69</div><div class='add'>+0x6B4F = 0x9C6A</div><div class='add'>+0x6B50 = 0x9C5C</div><div class='add'>+0x6B51 = 0x9C6B</div><div class='add'>+0x6B52 = 0x9C68</div><div class='add'>+0x6B53 = 0x9C6E</div><div class='add'>+0x6B54 = 0x9C70</div><div class='add'>+0x6B55 = 0x9C72</div><div class='add'>+0x6B56 = 0x9C75</div><div class='add'>+0x6B57 = 0x9C77</div><div class='add'>+0x6B58 = 0x9C7B</div><div class='add'>+0x6B59 = 0x9CE6</div><div class='add'>+0x6B5A = 0x9CF2</div><div class='add'>+0x6B5B = 0x9CF7</div><div class='add'>+0x6B5C = 0x9CF9</div><div class='add'>+0x6B5D = 0x9D0B</div><div class='add'>+0x6B5E = 0x9D02</div><div class='add'>+0x6B5F = 0x9D11</div><div class='add'>+0x6B60 = 0x9D17</div><div class='add'>+0x6B61 = 0x9D18</div><div class='add'>+0x6B62 = 0x9D1C</div><div class='add'>+0x6B63 = 0x9D1D</div><div class='add'>+0x6B64 = 0x9D1E</div><div class='add'>+0x6B65 = 0x9D2F</div><div class='add'>+0x6B66 = 0x9D30</div><div class='add'>+0x6B67 = 0x9D32</div><div class='add'>+0x6B68 = 0x9D33</div><div class='add'>+0x6B69 = 0x9D34</div><div class='add'>+0x6B6A = 0x9D3A</div><div class='add'>+0x6B6B = 0x9D3C</div><div class='add'>+0x6B6C = 0x9D45</div><div class='add'>+0x6B6D = 0x9D3D</div><div class='add'>+0x6B6E = 0x9D42</div><div class='add'>+0x6B6F = 0x9D43</div><div class='add'>+0x6B70 = 0x9D47</div><div class='add'>+0x6B71 = 0x9D4A</div><div class='add'>+0x6B72 = 0x9D53</div><div class='add'>+0x6B73 = 0x9D54</div><div class='add'>+0x6B74 = 0x9D5F</div><div class='add'>+0x6B75 = 0x9D63</div><div class='add'>+0x6B76 = 0x9D62</div><div class='add'>+0x6B77 = 0x9D65</div><div class='add'>+0x6B78 = 0x9D69</div><div class='add'>+0x6B79 = 0x9D6A</div><div class='add'>+0x6B7A = 0x9D6B</div><div class='add'>+0x6B7B = 0x9D70</div><div class='add'>+0x6B7C = 0x9D76</div><div class='add'>+0x6B7D = 0x9D77</div><div class='add'>+0x6B7E = 0x9D7B</div><div class='add'>+0x6C21 = 0x9D7C</div><div class='add'>+0x6C22 = 0x9D7E</div><div class='add'>+0x6C23 = 0x9D83</div><div class='add'>+0x6C24 = 0x9D84</div><div class='add'>+0x6C25 = 0x9D86</div><div class='add'>+0x6C26 = 0x9D8A</div><div class='add'>+0x6C27 = 0x9D8D</div><div class='add'>+0x6C28 = 0x9D8E</div><div class='add'>+0x6C29 = 0x9D92</div><div class='add'>+0x6C2A = 0x9D93</div><div class='add'>+0x6C2B = 0x9D95</div><div class='add'>+0x6C2C = 0x9D96</div><div class='add'>+0x6C2D = 0x9D97</div><div class='add'>+0x6C2E = 0x9D98</div><div class='add'>+0x6C2F = 0x9DA1</div><div class='add'>+0x6C30 = 0x9DAA</div><div class='add'>+0x6C31 = 0x9DAC</div><div class='add'>+0x6C32 = 0x9DAE</div><div class='add'>+0x6C33 = 0x9DB1</div><div class='add'>+0x6C34 = 0x9DB5</div><div class='add'>+0x6C35 = 0x9DB9</div><div class='add'>+0x6C36 = 0x9DBC</div><div class='add'>+0x6C37 = 0x9DBF</div><div class='add'>+0x6C38 = 0x9DC3</div><div class='add'>+0x6C39 = 0x9DC7</div><div class='add'>+0x6C3A = 0x9DC9</div><div class='add'>+0x6C3B = 0x9DCA</div><div class='add'>+0x6C3C = 0x9DD4</div><div class='add'>+0x6C3D = 0x9DD5</div><div class='add'>+0x6C3E = 0x9DD6</div><div class='add'>+0x6C3F = 0x9DD7</div><div class='add'>+0x6C40 = 0x9DDA</div><div class='add'>+0x6C41 = 0x9DDE</div><div class='add'>+0x6C42 = 0x9DDF</div><div class='add'>+0x6C43 = 0x9DE0</div><div class='add'>+0x6C44 = 0x9DE5</div><div class='add'>+0x6C45 = 0x9DE7</div><div class='add'>+0x6C46 = 0x9DE9</div><div class='add'>+0x6C47 = 0x9DEB</div><div class='add'>+0x6C48 = 0x9DEE</div><div class='add'>+0x6C49 = 0x9DF0</div><div class='add'>+0x6C4A = 0x9DF3</div><div class='add'>+0x6C4B = 0x9DF4</div><div class='add'>+0x6C4C = 0x9DFE</div><div class='add'>+0x6C4D = 0x9E0A</div><div class='add'>+0x6C4E = 0x9E02</div><div class='add'>+0x6C4F = 0x9E07</div><div class='add'>+0x6C50 = 0x9E0E</div><div class='add'>+0x6C51 = 0x9E10</div><div class='add'>+0x6C52 = 0x9E11</div><div class='add'>+0x6C53 = 0x9E12</div><div class='add'>+0x6C54 = 0x9E15</div><div class='add'>+0x6C55 = 0x9E16</div><div class='add'>+0x6C56 = 0x9E19</div><div class='add'>+0x6C57 = 0x9E1C</div><div class='add'>+0x6C58 = 0x9E1D</div><div class='add'>+0x6C59 = 0x9E7A</div><div class='add'>+0x6C5A = 0x9E7B</div><div class='add'>+0x6C5B = 0x9E7C</div><div class='add'>+0x6C5C = 0x9E80</div><div class='add'>+0x6C5D = 0x9E82</div><div class='add'>+0x6C5E = 0x9E83</div><div class='add'>+0x6C5F = 0x9E84</div><div class='add'>+0x6C60 = 0x9E85</div><div class='add'>+0x6C61 = 0x9E87</div><div class='add'>+0x6C62 = 0x9E8E</div><div class='add'>+0x6C63 = 0x9E8F</div><div class='add'>+0x6C64 = 0x9E96</div><div class='add'>+0x6C65 = 0x9E98</div><div class='add'>+0x6C66 = 0x9E9B</div><div class='add'>+0x6C67 = 0x9E9E</div><div class='add'>+0x6C68 = 0x9EA4</div><div class='add'>+0x6C69 = 0x9EA8</div><div class='add'>+0x6C6A = 0x9EAC</div><div class='add'>+0x6C6B = 0x9EAE</div><div class='add'>+0x6C6C = 0x9EAF</div><div class='add'>+0x6C6D = 0x9EB0</div><div class='add'>+0x6C6E = 0x9EB3</div><div class='add'>+0x6C6F = 0x9EB4</div><div class='add'>+0x6C70 = 0x9EB5</div><div class='add'>+0x6C71 = 0x9EC6</div><div class='add'>+0x6C72 = 0x9EC8</div><div class='add'>+0x6C73 = 0x9ECB</div><div class='add'>+0x6C74 = 0x9ED5</div><div class='add'>+0x6C75 = 0x9EDF</div><div class='add'>+0x6C76 = 0x9EE4</div><div class='add'>+0x6C77 = 0x9EE7</div><div class='add'>+0x6C78 = 0x9EEC</div><div class='add'>+0x6C79 = 0x9EED</div><div class='add'>+0x6C7A = 0x9EEE</div><div class='add'>+0x6C7B = 0x9EF0</div><div class='add'>+0x6C7C = 0x9EF1</div><div class='add'>+0x6C7D = 0x9EF2</div><div class='add'>+0x6C7E = 0x9EF5</div><div class='add'>+0x6D21 = 0x9EF8</div><div class='add'>+0x6D22 = 0x9EFF</div><div class='add'>+0x6D23 = 0x9F02</div><div class='add'>+0x6D24 = 0x9F03</div><div class='add'>+0x6D25 = 0x9F09</div><div class='add'>+0x6D26 = 0x9F0F</div><div class='add'>+0x6D27 = 0x9F10</div><div class='add'>+0x6D28 = 0x9F11</div><div class='add'>+0x6D29 = 0x9F12</div><div class='add'>+0x6D2A = 0x9F14</div><div class='add'>+0x6D2B = 0x9F16</div><div class='add'>+0x6D2C = 0x9F17</div><div class='add'>+0x6D2D = 0x9F19</div><div class='add'>+0x6D2E = 0x9F1A</div><div class='add'>+0x6D2F = 0x9F1B</div><div class='add'>+0x6D30 = 0x9F1F</div><div class='add'>+0x6D31 = 0x9F22</div><div class='add'>+0x6D32 = 0x9F26</div><div class='add'>+0x6D33 = 0x9F2A</div><div class='add'>+0x6D34 = 0x9F2B</div><div class='add'>+0x6D35 = 0x9F2F</div><div class='add'>+0x6D36 = 0x9F31</div><div class='add'>+0x6D37 = 0x9F32</div><div class='add'>+0x6D38 = 0x9F34</div><div class='add'>+0x6D39 = 0x9F37</div><div class='add'>+0x6D3A = 0x9F39</div><div class='add'>+0x6D3B = 0x9F3A</div><div class='add'>+0x6D3C = 0x9F3C</div><div class='add'>+0x6D3D = 0x9F3D</div><div class='add'>+0x6D3E = 0x9F3F</div><div class='add'>+0x6D3F = 0x9F41</div><div class='add'>+0x6D40 = 0x9F43</div><div class='add'>+0x6D41 = 0x9F44</div><div class='add'>+0x6D42 = 0x9F45</div><div class='add'>+0x6D43 = 0x9F46</div><div class='add'>+0x6D44 = 0x9F47</div><div class='add'>+0x6D45 = 0x9F53</div><div class='add'>+0x6D46 = 0x9F55</div><div class='add'>+0x6D47 = 0x9F56</div><div class='add'>+0x6D48 = 0x9F57</div><div class='add'>+0x6D49 = 0x9F58</div><div class='add'>+0x6D4A = 0x9F5A</div><div class='add'>+0x6D4B = 0x9F5D</div><div class='add'>+0x6D4C = 0x9F5E</div><div class='add'>+0x6D4D = 0x9F68</div><div class='add'>+0x6D4E = 0x9F69</div><div class='add'>+0x6D4F = 0x9F6D</div><div class='add'>+0x6D50 = 0x9F6E</div><div class='add'>+0x6D51 = 0x9F6F</div><div class='add'>+0x6D52 = 0x9F70</div><div class='add'>+0x6D53 = 0x9F71</div><div class='add'>+0x6D54 = 0x9F73</div><div class='add'>+0x6D55 = 0x9F75</div><div class='add'>+0x6D56 = 0x9F7A</div><div class='add'>+0x6D57 = 0x9F7D</div><div class='add'>+0x6D58 = 0x9F8F</div><div class='add'>+0x6D59 = 0x9F90</div><div class='add'>+0x6D5A = 0x9F91</div><div class='add'>+0x6D5B = 0x9F92</div><div class='add'>+0x6D5C = 0x9F94</div><div class='add'>+0x6D5D = 0x9F96</div><div class='add'>+0x6D5E = 0x9F97</div><div class='add'>+0x6D5F = 0x9F9E</div><div class='add'>+0x6D60 = 0x9FA1</div><div class='add'>+0x6D61 = 0x9FA2</div><div class='add'>+0x6D62 = 0x9FA3</div><div class='add'>+0x6D63 = 0x9FA5</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0212@MS%UCS.src b/enc/trans/JIS/JISX0212@MS%UCS.src<br/>new file mode 100644<br/>index 0000000000..cd05e26d3a<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0212@MS%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0212@MS%UCS.src</a></div><div class='hunk'>@@ -0,0 +1,6081 @@</div><div class='add'>+# $NetBSD: JISX0212@MS%UCS.src,v 1.1 2003/07/19 20:20:41 tshiozak Exp $</div><div class='add'>+</div><div class='add'>+TYPE		ROWCOL</div><div class='add'>+NAME		"JISX0212:MS/UCS"</div><div class='add'>+SRC_ZONE	0x21-0x7E / 0x21-0x7E / 8</div><div class='add'>+OOB_MODE	ILSEQ</div><div class='add'>+DST_ILSEQ	0xFFFE</div><div class='add'>+DST_UNIT_BITS	16</div><div class='add'>+</div><div class='add'>+BEGIN_MAP</div><div class='add'>+#</div><div class='add'>+# This data is derived from http://www.opengroup.or.jp/jvc/cde/</div><div class='add'>+#</div><div class='add'>+0x222F = 0x02D8</div><div class='add'>+0x2230 = 0x02C7</div><div class='add'>+0x2231 = 0x00B8</div><div class='add'>+0x2232 = 0x02D9</div><div class='add'>+0x2233 = 0x02DD</div><div class='add'>+0x2234 = 0x00AF</div><div class='add'>+0x2235 = 0x02DB</div><div class='add'>+0x2236 = 0x02DA</div><div class='add'>+0x2237 = 0xFF5E</div><div class='add'>+0x2238 = 0x0384</div><div class='add'>+0x2239 = 0x0385</div><div class='add'>+0x2242 = 0x00A1</div><div class='add'>+0x2243 = 0xFFE4</div><div class='add'>+0x2244 = 0x00BF</div><div class='add'>+0x226B = 0x00BA</div><div class='add'>+0x226C = 0x00AA</div><div class='add'>+0x226D = 0x00A9</div><div class='add'>+0x226E = 0x00AE</div><div class='add'>+0x226F = 0x2122</div><div class='add'>+0x2270 = 0x00A4</div><div class='add'>+0x2271 = 0x2116</div><div class='add'>+0x2661 = 0x0386</div><div class='add'>+0x2662 = 0x0388</div><div class='add'>+0x2663 = 0x0389</div><div class='add'>+0x2664 = 0x038A</div><div class='add'>+0x2665 = 0x03AA</div><div class='add'>+0x2667 = 0x038C</div><div class='add'>+0x2669 = 0x038E</div><div class='add'>+0x266A = 0x03AB</div><div class='add'>+0x266C = 0x038F</div><div class='add'>+0x2671 = 0x03AC</div><div class='add'>+0x2672 = 0x03AD</div><div class='add'>+0x2673 = 0x03AE</div><div class='add'>+0x2674 = 0x03AF</div><div class='add'>+0x2675 = 0x03CA</div><div class='add'>+0x2676 = 0x0390</div><div class='add'>+0x2677 = 0x03CC</div><div class='add'>+0x2678 = 0x03C2</div><div class='add'>+0x2679 = 0x03CD</div><div class='add'>+0x267A = 0x03CB</div><div class='add'>+0x267B = 0x03B0</div><div class='add'>+0x267C = 0x03CE</div><div class='add'>+0x2742 = 0x0402</div><div class='add'>+0x2743 = 0x0403</div><div class='add'>+0x2744 = 0x0404</div><div class='add'>+0x2745 = 0x0405</div><div class='add'>+0x2746 = 0x0406</div><div class='add'>+0x2747 = 0x0407</div><div class='add'>+0x2748 = 0x0408</div><div class='add'>+0x2749 = 0x0409</div><div class='add'>+0x274A = 0x040A</div><div class='add'>+0x274B = 0x040B</div><div class='add'>+0x274C = 0x040C</div><div class='add'>+0x274D = 0x040E</div><div class='add'>+0x274E = 0x040F</div><div class='add'>+0x2772 = 0x0452</div><div class='add'>+0x2773 = 0x0453</div><div class='add'>+0x2774 = 0x0454</div><div class='add'>+0x2775 = 0x0455</div><div class='add'>+0x2776 = 0x0456</div><div class='add'>+0x2777 = 0x0457</div><div class='add'>+0x2778 = 0x0458</div><div class='add'>+0x2779 = 0x0459</div><div class='add'>+0x277A = 0x045A</div><div class='add'>+0x277B = 0x045B</div><div class='add'>+0x277C = 0x045C</div><div class='add'>+0x277D = 0x045E</div><div class='add'>+0x277E = 0x045F</div><div class='add'>+0x2921 = 0x00C6</div><div class='add'>+0x2922 = 0x0110</div><div class='add'>+0x2924 = 0x0126</div><div class='add'>+0x2926 = 0x0132</div><div class='add'>+0x2928 = 0x0141</div><div class='add'>+0x2929 = 0x013F</div><div class='add'>+0x292B = 0x014A</div><div class='add'>+0x292C = 0x00D8</div><div class='add'>+0x292D = 0x0152</div><div class='add'>+0x292F = 0x0166</div><div class='add'>+0x2930 = 0x00DE</div><div class='add'>+0x2941 = 0x00E6</div><div class='add'>+0x2942 = 0x0111</div><div class='add'>+0x2943 = 0x00F0</div><div class='add'>+0x2944 = 0x0127</div><div class='add'>+0x2945 = 0x0131</div><div class='add'>+0x2946 = 0x0133</div><div class='add'>+0x2947 = 0x0138</div><div class='add'>+0x2948 = 0x0142</div><div class='add'>+0x2949 = 0x0140</div><div class='add'>+0x294A = 0x0149</div><div class='add'>+0x294B = 0x014B</div><div class='add'>+0x294C = 0x00F8</div><div class='add'>+0x294D = 0x0153</div><div class='add'>+0x294E = 0x00DF</div><div class='add'>+0x294F = 0x0167</div><div class='add'>+0x2950 = 0x00FE</div><div class='add'>+0x2A21 = 0x00C1</div><div class='add'>+0x2A22 = 0x00C0</div><div class='add'>+0x2A23 = 0x00C4</div><div class='add'>+0x2A24 = 0x00C2</div><div class='add'>+0x2A25 = 0x0102</div><div class='add'>+0x2A26 = 0x01CD</div><div class='add'>+0x2A27 = 0x0100</div><div class='add'>+0x2A28 = 0x0104</div><div class='add'>+0x2A29 = 0x00C5</div><div class='add'>+0x2A2A = 0x00C3</div><div class='add'>+0x2A2B = 0x0106</div><div class='add'>+0x2A2C = 0x0108</div><div class='add'>+0x2A2D = 0x010C</div><div class='add'>+0x2A2E = 0x00C7</div><div class='add'>+0x2A2F = 0x010A</div><div class='add'>+0x2A30 = 0x010E</div><div class='add'>+0x2A31 = 0x00C9</div><div class='add'>+0x2A32 = 0x00C8</div><div class='add'>+0x2A33 = 0x00CB</div><div class='add'>+0x2A34 = 0x00CA</div><div class='add'>+0x2A35 = 0x011A</div><div class='add'>+0x2A36 = 0x0116</div><div class='add'>+0x2A37 = 0x0112</div><div class='add'>+0x2A38 = 0x0118</div><div class='add'>+0x2A3A = 0x011C</div><div class='add'>+0x2A3B = 0x011E</div><div class='add'>+0x2A3C = 0x0122</div><div class='add'>+0x2A3D = 0x0120</div><div class='add'>+0x2A3E = 0x0124</div><div class='add'>+0x2A3F = 0x00CD</div><div class='add'>+0x2A40 = 0x00CC</div><div class='add'>+0x2A41 = 0x00CF</div><div class='add'>+0x2A42 = 0x00CE</div><div class='add'>+0x2A43 = 0x01CF</div><div class='add'>+0x2A44 = 0x0130</div><div class='add'>+0x2A45 = 0x012A</div><div class='add'>+0x2A46 = 0x012E</div><div class='add'>+0x2A47 = 0x0128</div><div class='add'>+0x2A48 = 0x0134</div><div class='add'>+0x2A49 = 0x0136</div><div class='add'>+0x2A4A = 0x0139</div><div class='add'>+0x2A4B = 0x013D</div><div class='add'>+0x2A4C = 0x013B</div><div class='add'>+0x2A4D = 0x0143</div><div class='add'>+0x2A4E = 0x0147</div><div class='add'>+0x2A4F = 0x0145</div><div class='add'>+0x2A50 = 0x00D1</div><div class='add'>+0x2A51 = 0x00D3</div><div class='add'>+0x2A52 = 0x00D2</div><div class='add'>+0x2A53 = 0x00D6</div><div class='add'>+0x2A54 = 0x00D4</div><div class='add'>+0x2A55 = 0x01D1</div><div class='add'>+0x2A56 = 0x0150</div><div class='add'>+0x2A57 = 0x014C</div><div class='add'>+0x2A58 = 0x00D5</div><div class='add'>+0x2A59 = 0x0154</div><div class='add'>+0x2A5A = 0x0158</div><div class='add'>+0x2A5B = 0x0156</div><div class='add'>+0x2A5C = 0x015A</div><div class='add'>+0x2A5D = 0x015C</div><div class='add'>+0x2A5E = 0x0160</div><div class='add'>+0x2A5F = 0x015E</div><div class='add'>+0x2A60 = 0x0164</div><div class='add'>+0x2A61 = 0x0162</div><div class='add'>+0x2A62 = 0x00DA</div><div class='add'>+0x2A63 = 0x00D9</div><div class='add'>+0x2A64 = 0x00DC</div><div class='add'>+0x2A65 = 0x00DB</div><div class='add'>+0x2A66 = 0x016C</div><div class='add'>+0x2A67 = 0x01D3</div><div class='add'>+0x2A68 = 0x0170</div><div class='add'>+0x2A69 = 0x016A</div><div class='add'>+0x2A6A = 0x0172</div><div class='add'>+0x2A6B = 0x016E</div><div class='add'>+0x2A6C = 0x0168</div><div class='add'>+0x2A6D = 0x01D7</div><div class='add'>+0x2A6E = 0x01DB</div><div class='add'>+0x2A6F = 0x01D9</div><div class='add'>+0x2A70 = 0x01D5</div><div class='add'>+0x2A71 = 0x0174</div><div class='add'>+0x2A72 = 0x00DD</div><div class='add'>+0x2A73 = 0x0178</div><div class='add'>+0x2A74 = 0x0176</div><div class='add'>+0x2A75 = 0x0179</div><div class='add'>+0x2A76 = 0x017D</div><div class='add'>+0x2A77 = 0x017B</div><div class='add'>+0x2B21 = 0x00E1</div><div class='add'>+0x2B22 = 0x00E0</div><div class='add'>+0x2B23 = 0x00E4</div><div class='add'>+0x2B24 = 0x00E2</div><div class='add'>+0x2B25 = 0x0103</div><div class='add'>+0x2B26 = 0x01CE</div><div class='add'>+0x2B27 = 0x0101</div><div class='add'>+0x2B28 = 0x0105</div><div class='add'>+0x2B29 = 0x00E5</div><div class='add'>+0x2B2A = 0x00E3</div><div class='add'>+0x2B2B = 0x0107</div><div class='add'>+0x2B2C = 0x0109</div><div class='add'>+0x2B2D = 0x010D</div><div class='add'>+0x2B2E = 0x00E7</div><div class='add'>+0x2B2F = 0x010B</div><div class='add'>+0x2B30 = 0x010F</div><div class='add'>+0x2B31 = 0x00E9</div><div class='add'>+0x2B32 = 0x00E8</div><div class='add'>+0x2B33 = 0x00EB</div><div class='add'>+0x2B34 = 0x00EA</div><div class='add'>+0x2B35 = 0x011B</div><div class='add'>+0x2B36 = 0x0117</div><div class='add'>+0x2B37 = 0x0113</div><div class='add'>+0x2B38 = 0x0119</div><div class='add'>+0x2B39 = 0x01F5</div><div class='add'>+0x2B3A = 0x011D</div><div class='add'>+0x2B3B = 0x011F</div><div class='add'>+0x2B3D = 0x0121</div><div class='add'>+0x2B3E = 0x0125</div><div class='add'>+0x2B3F = 0x00ED</div><div class='add'>+0x2B40 = 0x00EC</div><div class='add'>+0x2B41 = 0x00EF</div><div class='add'>+0x2B42 = 0x00EE</div><div class='add'>+0x2B43 = 0x01D0</div><div class='add'>+0x2B45 = 0x012B</div><div class='add'>+0x2B46 = 0x012F</div><div class='add'>+0x2B47 = 0x0129</div><div class='add'>+0x2B48 = 0x0135</div><div class='add'>+0x2B49 = 0x0137</div><div class='add'>+0x2B4A = 0x013A</div><div class='add'>+0x2B4B = 0x013E</div><div class='add'>+0x2B4C = 0x013C</div><div class='add'>+0x2B4D = 0x0144</div><div class='add'>+0x2B4E = 0x0148</div><div class='add'>+0x2B4F = 0x0146</div><div class='add'>+0x2B50 = 0x00F1</div><div class='add'>+0x2B51 = 0x00F3</div><div class='add'>+0x2B52 = 0x00F2</div><div class='add'>+0x2B53 = 0x00F6</div><div class='add'>+0x2B54 = 0x00F4</div><div class='add'>+0x2B55 = 0x01D2</div><div class='add'>+0x2B56 = 0x0151</div><div class='add'>+0x2B57 = 0x014D</div><div class='add'>+0x2B58 = 0x00F5</div><div class='add'>+0x2B59 = 0x0155</div><div class='add'>+0x2B5A = 0x0159</div><div class='add'>+0x2B5B = 0x0157</div><div class='add'>+0x2B5C = 0x015B</div><div class='add'>+0x2B5D = 0x015D</div><div class='add'>+0x2B5E = 0x0161</div><div class='add'>+0x2B5F = 0x015F</div><div class='add'>+0x2B60 = 0x0165</div><div class='add'>+0x2B61 = 0x0163</div><div class='add'>+0x2B62 = 0x00FA</div><div class='add'>+0x2B63 = 0x00F9</div><div class='add'>+0x2B64 = 0x00FC</div><div class='add'>+0x2B65 = 0x00FB</div><div class='add'>+0x2B66 = 0x016D</div><div class='add'>+0x2B67 = 0x01D4</div><div class='add'>+0x2B68 = 0x0171</div><div class='add'>+0x2B69 = 0x016B</div><div class='add'>+0x2B6A = 0x0173</div><div class='add'>+0x2B6B = 0x016F</div><div class='add'>+0x2B6C = 0x0169</div><div class='add'>+0x2B6D = 0x01D8</div><div class='add'>+0x2B6E = 0x01DC</div><div class='add'>+0x2B6F = 0x01DA</div><div class='add'>+0x2B70 = 0x01D6</div><div class='add'>+0x2B71 = 0x0175</div><div class='add'>+0x2B72 = 0x00FD</div><div class='add'>+0x2B73 = 0x00FF</div><div class='add'>+0x2B74 = 0x0177</div><div class='add'>+0x2B75 = 0x017A</div><div class='add'>+0x2B76 = 0x017E</div><div class='add'>+0x2B77 = 0x017C</div><div class='add'>+0x3021 = 0x4E02</div><div class='add'>+0x3022 = 0x4E04</div><div class='add'>+0x3023 = 0x4E05</div><div class='add'>+0x3024 = 0x4E0C</div><div class='add'>+0x3025 = 0x4E12</div><div class='add'>+0x3026 = 0x4E1F</div><div class='add'>+0x3027 = 0x4E23</div><div class='add'>+0x3028 = 0x4E24</div><div class='add'>+0x3029 = 0x4E28</div><div class='add'>+0x302A = 0x4E2B</div><div class='add'>+0x302B = 0x4E2E</div><div class='add'>+0x302C = 0x4E2F</div><div class='add'>+0x302D = 0x4E30</div><div class='add'>+0x302E = 0x4E35</div><div class='add'>+0x302F = 0x4E40</div><div class='add'>+0x3030 = 0x4E41</div><div class='add'>+0x3031 = 0x4E44</div><div class='add'>+0x3032 = 0x4E47</div><div class='add'>+0x3033 = 0x4E51</div><div class='add'>+0x3034 = 0x4E5A</div><div class='add'>+0x3035 = 0x4E5C</div><div class='add'>+0x3036 = 0x4E63</div><div class='add'>+0x3037 = 0x4E68</div><div class='add'>+0x3038 = 0x4E69</div><div class='add'>+0x3039 = 0x4E74</div><div class='add'>+0x303A = 0x4E75</div><div class='add'>+0x303B = 0x4E79</div><div class='add'>+0x303C = 0x4E7F</div><div class='add'>+0x303D = 0x4E8D</div><div class='add'>+0x303E = 0x4E96</div><div class='add'>+0x303F = 0x4E97</div><div class='add'>+0x3040 = 0x4E9D</div><div class='add'>+0x3041 = 0x4EAF</div><div class='add'>+0x3042 = 0x4EB9</div><div class='add'>+0x3043 = 0x4EC3</div><div class='add'>+0x3044 = 0x4ED0</div><div class='add'>+0x3045 = 0x4EDA</div><div class='add'>+0x3046 = 0x4EDB</div><div class='add'>+0x3047 = 0x4EE0</div><div class='add'>+0x3048 = 0x4EE1</div><div class='add'>+0x3049 = 0x4EE2</div><div class='add'>+0x304A = 0x4EE8</div><div class='add'>+0x304B = 0x4EEF</div><div class='add'>+0x304C = 0x4EF1</div><div class='add'>+0x304D = 0x4EF3</div><div class='add'>+0x304E = 0x4EF5</div><div class='add'>+0x304F = 0x4EFD</div><div class='add'>+0x3050 = 0x4EFE</div><div class='add'>+0x3051 = 0x4EFF</div><div class='add'>+0x3052 = 0x4F00</div><div class='add'>+0x3053 = 0x4F02</div><div class='add'>+0x3054 = 0x4F03</div><div class='add'>+0x3055 = 0x4F08</div><div class='add'>+0x3056 = 0x4F0B</div><div class='add'>+0x3057 = 0x4F0C</div><div class='add'>+0x3058 = 0x4F12</div><div class='add'>+0x3059 = 0x4F15</div><div class='add'>+0x305A = 0x4F16</div><div class='add'>+0x305B = 0x4F17</div><div class='add'>+0x305C = 0x4F19</div><div class='add'>+0x305D = 0x4F2E</div><div class='add'>+0x305E = 0x4F31</div><div class='add'>+0x305F = 0x4F60</div><div class='add'>+0x3060 = 0x4F33</div><div class='add'>+0x3061 = 0x4F35</div><div class='add'>+0x3062 = 0x4F37</div><div class='add'>+0x3063 = 0x4F39</div><div class='add'>+0x3064 = 0x4F3B</div><div class='add'>+0x3065 = 0x4F3E</div><div class='add'>+0x3066 = 0x4F40</div><div class='add'>+0x3067 = 0x4F42</div><div class='add'>+0x3068 = 0x4F48</div><div class='add'>+0x3069 = 0x4F49</div><div class='add'>+0x306A = 0x4F4B</div><div class='add'>+0x306B = 0x4F4C</div><div class='add'>+0x306C = 0x4F52</div><div class='add'>+0x306D = 0x4F54</div><div class='add'>+0x306E = 0x4F56</div><div class='add'>+0x306F = 0x4F58</div><div class='add'>+0x3070 = 0x4F5F</div><div class='add'>+0x3071 = 0x4F63</div><div class='add'>+0x3072 = 0x4F6A</div><div class='add'>+0x3073 = 0x4F6C</div><div class='add'>+0x3074 = 0x4F6E</div><div class='add'>+0x3075 = 0x4F71</div><div class='add'>+0x3076 = 0x4F77</div><div class='add'>+0x3077 = 0x4F78</div><div class='add'>+0x3078 = 0x4F79</div><div class='add'>+0x3079 = 0x4F7A</div><div class='add'>+0x307A = 0x4F7D</div><div class='add'>+0x307B = 0x4F7E</div><div class='add'>+0x307C = 0x4F81</div><div class='add'>+0x307D = 0x4F82</div><div class='add'>+0x307E = 0x4F84</div><div class='add'>+0x3121 = 0x4F85</div><div class='add'>+0x3122 = 0x4F89</div><div class='add'>+0x3123 = 0x4F8A</div><div class='add'>+0x3124 = 0x4F8C</div><div class='add'>+0x3125 = 0x4F8E</div><div class='add'>+0x3126 = 0x4F90</div><div class='add'>+0x3127 = 0x4F92</div><div class='add'>+0x3128 = 0x4F93</div><div class='add'>+0x3129 = 0x4F94</div><div class='add'>+0x312A = 0x4F97</div><div class='add'>+0x312B = 0x4F99</div><div class='add'>+0x312C = 0x4F9A</div><div class='add'>+0x312D = 0x4F9E</div><div class='add'>+0x312E = 0x4F9F</div><div class='add'>+0x312F = 0x4FB2</div><div class='add'>+0x3130 = 0x4FB7</div><div class='add'>+0x3131 = 0x4FB9</div><div class='add'>+0x3132 = 0x4FBB</div><div class='add'>+0x3133 = 0x4FBC</div><div class='add'>+0x3134 = 0x4FBD</div><div class='add'>+0x3135 = 0x4FBE</div><div class='add'>+0x3136 = 0x4FC0</div><div class='add'>+0x3137 = 0x4FC1</div><div class='add'>+0x3138 = 0x4FC5</div><div class='add'>+0x3139 = 0x4FC6</div><div class='add'>+0x313A = 0x4FC8</div><div class='add'>+0x313B = 0x4FC9</div><div class='add'>+0x313C = 0x4FCB</div><div class='add'>+0x313D = 0x4FCC</div><div class='add'>+0x313E = 0x4FCD</div><div class='add'>+0x313F = 0x4FCF</div><div class='add'>+0x3140 = 0x4FD2</div><div class='add'>+0x3141 = 0x4FDC</div><div class='add'>+0x3142 = 0x4FE0</div><div class='add'>+0x3143 = 0x4FE2</div><div class='add'>+0x3144 = 0x4FF0</div><div class='add'>+0x3145 = 0x4FF2</div><div class='add'>+0x3146 = 0x4FFC</div><div class='add'>+0x3147 = 0x4FFD</div><div class='add'>+0x3148 = 0x4FFF</div><div class='add'>+0x3149 = 0x5000</div><div class='add'>+0x314A = 0x5001</div><div class='add'>+0x314B = 0x5004</div><div class='add'>+0x314C = 0x5007</div><div class='add'>+0x314D = 0x500A</div><div class='add'>+0x314E = 0x500C</div><div class='add'>+0x314F = 0x500E</div><div class='add'>+0x3150 = 0x5010</div><div class='add'>+0x3151 = 0x5013</div><div class='add'>+0x3152 = 0x5017</div><div class='add'>+0x3153 = 0x5018</div><div class='add'>+0x3154 = 0x501B</div><div class='add'>+0x3155 = 0x501C</div><div class='add'>+0x3156 = 0x501D</div><div class='add'>+0x3157 = 0x501E</div><div class='add'>+0x3158 = 0x5022</div><div class='add'>+0x3159 = 0x5027</div><div class='add'>+0x315A = 0x502E</div><div class='add'>+0x315B = 0x5030</div><div class='add'>+0x315C = 0x5032</div><div class='add'>+0x315D = 0x5033</div><div class='add'>+0x315E = 0x5035</div><div class='add'>+0x315F = 0x5040</div><div class='add'>+0x3160 = 0x5041</div><div class='add'>+0x3161 = 0x5042</div><div class='add'>+0x3162 = 0x5045</div><div class='add'>+0x3163 = 0x5046</div><div class='add'>+0x3164 = 0x504A</div><div class='add'>+0x3165 = 0x504C</div><div class='add'>+0x3166 = 0x504E</div><div class='add'>+0x3167 = 0x5051</div><div class='add'>+0x3168 = 0x5052</div><div class='add'>+0x3169 = 0x5053</div><div class='add'>+0x316A = 0x5057</div><div class='add'>+0x316B = 0x5059</div><div class='add'>+0x316C = 0x505F</div><div class='add'>+0x316D = 0x5060</div><div class='add'>+0x316E = 0x5062</div><div class='add'>+0x316F = 0x5063</div><div class='add'>+0x3170 = 0x5066</div><div class='add'>+0x3171 = 0x5067</div><div class='add'>+0x3172 = 0x506A</div><div class='add'>+0x3173 = 0x506D</div><div class='add'>+0x3174 = 0x5070</div><div class='add'>+0x3175 = 0x5071</div><div class='add'>+0x3176 = 0x503B</div><div class='add'>+0x3177 = 0x5081</div><div class='add'>+0x3178 = 0x5083</div><div class='add'>+0x3179 = 0x5084</div><div class='add'>+0x317A = 0x5086</div><div class='add'>+0x317B = 0x508A</div><div class='add'>+0x317C = 0x508E</div><div class='add'>+0x317D = 0x508F</div><div class='add'>+0x317E = 0x5090</div><div class='add'>+0x3221 = 0x5092</div><div class='add'>+0x3222 = 0x5093</div><div class='add'>+0x3223 = 0x5094</div><div class='add'>+0x3224 = 0x5096</div><div class='add'>+0x3225 = 0x509B</div><div class='add'>+0x3226 = 0x509C</div><div class='add'>+0x3227 = 0x509E</div><div class='add'>+0x3228 = 0x509F</div><div class='add'>+0x3229 = 0x50A0</div><div class='add'>+0x322A = 0x50A1</div><div class='add'>+0x322B = 0x50A2</div><div class='add'>+0x322C = 0x50AA</div><div class='add'>+0x322D = 0x50AF</div><div class='add'>+0x322E = 0x50B0</div><div class='add'>+0x322F = 0x50B9</div><div class='add'>+0x3230 = 0x50BA</div><div class='add'>+0x3231 = 0x50BD</div><div class='add'>+0x3232 = 0x50C0</div><div class='add'>+0x3233 = 0x50C3</div><div class='add'>+0x3234 = 0x50C4</div><div class='add'>+0x3235 = 0x50C7</div><div class='add'>+0x3236 = 0x50CC</div><div class='add'>+0x3237 = 0x50CE</div><div class='add'>+0x3238 = 0x50D0</div><div class='add'>+0x3239 = 0x50D3</div><div class='add'>+0x323A = 0x50D4</div><div class='add'>+0x323B = 0x50D8</div><div class='add'>+0x323C = 0x50DC</div><div class='add'>+0x323D = 0x50DD</div><div class='add'>+0x323E = 0x50DF</div><div class='add'>+0x323F = 0x50E2</div><div class='add'>+0x3240 = 0x50E4</div><div class='add'>+0x3241 = 0x50E6</div><div class='add'>+0x3242 = 0x50E8</div><div class='add'>+0x3243 = 0x50E9</div><div class='add'>+0x3244 = 0x50EF</div><div class='add'>+0x3245 = 0x50F1</div><div class='add'>+0x3246 = 0x50F6</div><div class='add'>+0x3247 = 0x50FA</div><div class='add'>+0x3248 = 0x50FE</div><div class='add'>+0x3249 = 0x5103</div><div class='add'>+0x324A = 0x5106</div><div class='add'>+0x324B = 0x5107</div><div class='add'>+0x324C = 0x5108</div><div class='add'>+0x324D = 0x510B</div><div class='add'>+0x324E = 0x510C</div><div class='add'>+0x324F = 0x510D</div><div class='add'>+0x3250 = 0x510E</div><div class='add'>+0x3251 = 0x50F2</div><div class='add'>+0x3252 = 0x5110</div><div class='add'>+0x3253 = 0x5117</div><div class='add'>+0x3254 = 0x5119</div><div class='add'>+0x3255 = 0x511B</div><div class='add'>+0x3256 = 0x511C</div><div class='add'>+0x3257 = 0x511D</div><div class='add'>+0x3258 = 0x511E</div><div class='add'>+0x3259 = 0x5123</div><div class='add'>+0x325A = 0x5127</div><div class='add'>+0x325B = 0x5128</div><div class='add'>+0x325C = 0x512C</div><div class='add'>+0x325D = 0x512D</div><div class='add'>+0x325E = 0x512F</div><div class='add'>+0x325F = 0x5131</div><div class='add'>+0x3260 = 0x5133</div><div class='add'>+0x3261 = 0x5134</div><div class='add'>+0x3262 = 0x5135</div><div class='add'>+0x3263 = 0x5138</div><div class='add'>+0x3264 = 0x5139</div><div class='add'>+0x3265 = 0x5142</div><div class='add'>+0x3266 = 0x514A</div><div class='add'>+0x3267 = 0x514F</div><div class='add'>+0x3268 = 0x5153</div><div class='add'>+0x3269 = 0x5155</div><div class='add'>+0x326A = 0x5157</div><div class='add'>+0x326B = 0x5158</div><div class='add'>+0x326C = 0x515F</div><div class='add'>+0x326D = 0x5164</div><div class='add'>+0x326E = 0x5166</div><div class='add'>+0x326F = 0x517E</div><div class='add'>+0x3270 = 0x5183</div><div class='add'>+0x3271 = 0x5184</div><div class='add'>+0x3272 = 0x518B</div><div class='add'>+0x3273 = 0x518E</div><div class='add'>+0x3274 = 0x5198</div><div class='add'>+0x3275 = 0x519D</div><div class='add'>+0x3276 = 0x51A1</div><div class='add'>+0x3277 = 0x51A3</div><div class='add'>+0x3278 = 0x51AD</div><div class='add'>+0x3279 = 0x51B8</div><div class='add'>+0x327A = 0x51BA</div><div class='add'>+0x327B = 0x51BC</div><div class='add'>+0x327C = 0x51BE</div><div class='add'>+0x327D = 0x51BF</div><div class='add'>+0x327E = 0x51C2</div><div class='add'>+0x3321 = 0x51C8</div><div class='add'>+0x3322 = 0x51CF</div><div class='add'>+0x3323 = 0x51D1</div><div class='add'>+0x3324 = 0x51D2</div><div class='add'>+0x3325 = 0x51D3</div><div class='add'>+0x3326 = 0x51D5</div><div class='add'>+0x3327 = 0x51D8</div><div class='add'>+0x3328 = 0x51DE</div><div class='add'>+0x3329 = 0x51E2</div><div class='add'>+0x332A = 0x51E5</div><div class='add'>+0x332B = 0x51EE</div><div class='add'>+0x332C = 0x51F2</div><div class='add'>+0x332D = 0x51F3</div><div class='add'>+0x332E = 0x51F4</div><div class='add'>+0x332F = 0x51F7</div><div class='add'>+0x3330 = 0x5201</div><div class='add'>+0x3331 = 0x5202</div><div class='add'>+0x3332 = 0x5205</div><div class='add'>+0x3333 = 0x5212</div><div class='add'>+0x3334 = 0x5213</div><div class='add'>+0x3335 = 0x5215</div><div class='add'>+0x3336 = 0x5216</div><div class='add'>+0x3337 = 0x5218</div><div class='add'>+0x3338 = 0x5222</div><div class='add'>+0x3339 = 0x5228</div><div class='add'>+0x333A = 0x5231</div><div class='add'>+0x333B = 0x5232</div><div class='add'>+0x333C = 0x5235</div><div class='add'>+0x333D = 0x523C</div><div class='add'>+0x333E = 0x5245</div><div class='add'>+0x333F = 0x5249</div><div class='add'>+0x3340 = 0x5255</div><div class='add'>+0x3341 = 0x5257</div><div class='add'>+0x3342 = 0x5258</div><div class='add'>+0x3343 = 0x525A</div><div class='add'>+0x3344 = 0x525C</div><div class='add'>+0x3345 = 0x525F</div><div class='add'>+0x3346 = 0x5260</div><div class='add'>+0x3347 = 0x5261</div><div class='add'>+0x3348 = 0x5266</div><div class='add'>+0x3349 = 0x526E</div><div class='add'>+0x334A = 0x5277</div><div class='add'>+0x334B = 0x5278</div><div class='add'>+0x334C = 0x5279</div><div class='add'>+0x334D = 0x5280</div><div class='add'>+0x334E = 0x5282</div><div class='add'>+0x334F = 0x5285</div><div class='add'>+0x3350 = 0x528A</div><div class='add'>+0x3351 = 0x528C</div><div class='add'>+0x3352 = 0x5293</div><div class='add'>+0x3353 = 0x5295</div><div class='add'>+0x3354 = 0x5296</div><div class='add'>+0x3355 = 0x5297</div><div class='add'>+0x3356 = 0x5298</div><div class='add'>+0x3357 = 0x529A</div><div class='add'>+0x3358 = 0x529C</div><div class='add'>+0x3359 = 0x52A4</div><div class='add'>+0x335A = 0x52A5</div><div class='add'>+0x335B = 0x52A6</div><div class='add'>+0x335C = 0x52A7</div><div class='add'>+0x335D = 0x52AF</div><div class='add'>+0x335E = 0x52B0</div><div class='add'>+0x335F = 0x52B6</div><div class='add'>+0x3360 = 0x52B7</div><div class='add'>+0x3361 = 0x52B8</div><div class='add'>+0x3362 = 0x52BA</div><div class='add'>+0x3363 = 0x52BB</div><div class='add'>+0x3364 = 0x52BD</div><div class='add'>+0x3365 = 0x52C0</div><div class='add'>+0x3366 = 0x52C4</div><div class='add'>+0x3367 = 0x52C6</div><div class='add'>+0x3368 = 0x52C8</div><div class='add'>+0x3369 = 0x52CC</div><div class='add'>+0x336A = 0x52CF</div><div class='add'>+0x336B = 0x52D1</div><div class='add'>+0x336C = 0x52D4</div><div class='add'>+0x336D = 0x52D6</div><div class='add'>+0x336E = 0x52DB</div><div class='add'>+0x336F = 0x52DC</div><div class='add'>+0x3370 = 0x52E1</div><div class='add'>+0x3371 = 0x52E5</div><div class='add'>+0x3372 = 0x52E8</div><div class='add'>+0x3373 = 0x52E9</div><div class='add'>+0x3374 = 0x52EA</div><div class='add'>+0x3375 = 0x52EC</div><div class='add'>+0x3376 = 0x52F0</div><div class='add'>+0x3377 = 0x52F1</div><div class='add'>+0x3378 = 0x52F4</div><div class='add'>+0x3379 = 0x52F6</div><div class='add'>+0x337A = 0x52F7</div><div class='add'>+0x337B = 0x5300</div><div class='add'>+0x337C = 0x5303</div><div class='add'>+0x337D = 0x530A</div><div class='add'>+0x337E = 0x530B</div><div class='add'>+0x3421 = 0x530C</div><div class='add'>+0x3422 = 0x5311</div><div class='add'>+0x3423 = 0x5313</div><div class='add'>+0x3424 = 0x5318</div><div class='add'>+0x3425 = 0x531B</div><div class='add'>+0x3426 = 0x531C</div><div class='add'>+0x3427 = 0x531E</div><div class='add'>+0x3428 = 0x531F</div><div class='add'>+0x3429 = 0x5325</div><div class='add'>+0x342A = 0x5327</div><div class='add'>+0x342B = 0x5328</div><div class='add'>+0x342C = 0x5329</div><div class='add'>+0x342D = 0x532B</div><div class='add'>+0x342E = 0x532C</div><div class='add'>+0x342F = 0x532D</div><div class='add'>+0x3430 = 0x5330</div><div class='add'>+0x3431 = 0x5332</div><div class='add'>+0x3432 = 0x5335</div><div class='add'>+0x3433 = 0x533C</div><div class='add'>+0x3434 = 0x533D</div><div class='add'>+0x3435 = 0x533E</div><div class='add'>+0x3436 = 0x5342</div><div class='add'>+0x3437 = 0x534C</div><div class='add'>+0x3438 = 0x534B</div><div class='add'>+0x3439 = 0x5359</div><div class='add'>+0x343A = 0x535B</div><div class='add'>+0x343B = 0x5361</div><div class='add'>+0x343C = 0x5363</div><div class='add'>+0x343D = 0x5365</div><div class='add'>+0x343E = 0x536C</div><div class='add'>+0x343F = 0x536D</div><div class='add'>+0x3440 = 0x5372</div><div class='add'>+0x3441 = 0x5379</div><div class='add'>+0x3442 = 0x537E</div><div class='add'>+0x3443 = 0x5383</div><div class='add'>+0x3444 = 0x5387</div><div class='add'>+0x3445 = 0x5388</div><div class='add'>+0x3446 = 0x538E</div><div class='add'>+0x3447 = 0x5393</div><div class='add'>+0x3448 = 0x5394</div><div class='add'>+0x3449 = 0x5399</div><div class='add'>+0x344A = 0x539D</div><div class='add'>+0x344B = 0x53A1</div><div class='add'>+0x344C = 0x53A4</div><div class='add'>+0x344D = 0x53AA</div><div class='add'>+0x344E = 0x53AB</div><div class='add'>+0x344F = 0x53AF</div><div class='add'>+0x3450 = 0x53B2</div><div class='add'>+0x3451 = 0x53B4</div><div class='add'>+0x3452 = 0x53B5</div><div class='add'>+0x3453 = 0x53B7</div><div class='add'>+0x3454 = 0x53B8</div><div class='add'>+0x3455 = 0x53BA</div><div class='add'>+0x3456 = 0x53BD</div><div class='add'>+0x3457 = 0x53C0</div><div class='add'>+0x3458 = 0x53C5</div><div class='add'>+0x3459 = 0x53CF</div><div class='add'>+0x345A = 0x53D2</div><div class='add'>+0x345B = 0x53D3</div><div class='add'>+0x345C = 0x53D5</div><div class='add'>+0x345D = 0x53DA</div><div class='add'>+0x345E = 0x53DD</div><div class='add'>+0x345F = 0x53DE</div><div class='add'>+0x3460 = 0x53E0</div><div class='add'>+0x3461 = 0x53E6</div><div class='add'>+0x3462 = 0x53E7</div><div class='add'>+0x3463 = 0x53F5</div><div class='add'>+0x3464 = 0x5402</div><div class='add'>+0x3465 = 0x5413</div><div class='add'>+0x3466 = 0x541A</div><div class='add'>+0x3467 = 0x5421</div><div class='add'>+0x3468 = 0x5427</div><div class='add'>+0x3469 = 0x5428</div><div class='add'>+0x346A = 0x542A</div><div class='add'>+0x346B = 0x542F</div><div class='add'>+0x346C = 0x5431</div><div class='add'>+0x346D = 0x5434</div><div class='add'>+0x346E = 0x5435</div><div class='add'>+0x346F = 0x5443</div><div class='add'>+0x3470 = 0x5444</div><div class='add'>+0x3471 = 0x5447</div><div class='add'>+0x3472 = 0x544D</div><div class='add'>+0x3473 = 0x544F</div><div class='add'>+0x3474 = 0x545E</div><div class='add'>+0x3475 = 0x5462</div><div class='add'>+0x3476 = 0x5464</div><div class='add'>+0x3477 = 0x5466</div><div class='add'>+0x3478 = 0x5467</div><div class='add'>+0x3479 = 0x5469</div><div class='add'>+0x347A = 0x546B</div><div class='add'>+0x347B = 0x546D</div><div class='add'>+0x347C = 0x546E</div><div class='add'>+0x347D = 0x5474</div><div class='add'>+0x347E = 0x547F</div><div class='add'>+0x3521 = 0x5481</div><div class='add'>+0x3522 = 0x5483</div><div class='add'>+0x3523 = 0x5485</div><div class='add'>+0x3524 = 0x5488</div><div class='add'>+0x3525 = 0x5489</div><div class='add'>+0x3526 = 0x548D</div><div class='add'>+0x3527 = 0x5491</div><div class='add'>+0x3528 = 0x5495</div><div class='add'>+0x3529 = 0x5496</div><div class='add'>+0x352A = 0x549C</div><div class='add'>+0x352B = 0x549F</div><div class='add'>+0x352C = 0x54A1</div><div class='add'>+0x352D = 0x54A6</div><div class='add'>+0x352E = 0x54A7</div><div class='add'>+0x352F = 0x54A9</div><div class='add'>+0x3530 = 0x54AA</div><div class='add'>+0x3531 = 0x54AD</div><div class='add'>+0x3532 = 0x54AE</div><div class='add'>+0x3533 = 0x54B1</div><div class='add'>+0x3534 = 0x54B7</div><div class='add'>+0x3535 = 0x54B9</div><div class='add'>+0x3536 = 0x54BA</div><div class='add'>+0x3537 = 0x54BB</div><div class='add'>+0x3538 = 0x54BF</div><div class='add'>+0x3539 = 0x54C6</div><div class='add'>+0x353A = 0x54CA</div><div class='add'>+0x353B = 0x54CD</div><div class='add'>+0x353C = 0x54CE</div><div class='add'>+0x353D = 0x54E0</div><div class='add'>+0x353E = 0x54EA</div><div class='add'>+0x353F = 0x54EC</div><div class='add'>+0x3540 = 0x54EF</div><div class='add'>+0x3541 = 0x54F6</div><div class='add'>+0x3542 = 0x54FC</div><div class='add'>+0x3543 = 0x54FE</div><div class='add'>+0x3544 = 0x54FF</div><div class='add'>+0x3545 = 0x5500</div><div class='add'>+0x3546 = 0x5501</div><div class='add'>+0x3547 = 0x5505</div><div class='add'>+0x3548 = 0x5508</div><div class='add'>+0x3549 = 0x5509</div><div class='add'>+0x354A = 0x550C</div><div class='add'>+0x354B = 0x550D</div><div class='add'>+0x354C = 0x550E</div><div class='add'>+0x354D = 0x5515</div><div class='add'>+0x354E = 0x552A</div><div class='add'>+0x354F = 0x552B</div><div class='add'>+0x3550 = 0x5532</div><div class='add'>+0x3551 = 0x5535</div><div class='add'>+0x3552 = 0x5536</div><div class='add'>+0x3553 = 0x553B</div><div class='add'>+0x3554 = 0x553C</div><div class='add'>+0x3555 = 0x553D</div><div class='add'>+0x3556 = 0x5541</div><div class='add'>+0x3557 = 0x5547</div><div class='add'>+0x3558 = 0x5549</div><div class='add'>+0x3559 = 0x554A</div><div class='add'>+0x355A = 0x554D</div><div class='add'>+0x355B = 0x5550</div><div class='add'>+0x355C = 0x5551</div><div class='add'>+0x355D = 0x5558</div><div class='add'>+0x355E = 0x555A</div><div class='add'>+0x355F = 0x555B</div><div class='add'>+0x3560 = 0x555E</div><div class='add'>+0x3561 = 0x5560</div><div class='add'>+0x3562 = 0x5561</div><div class='add'>+0x3563 = 0x5564</div><div class='add'>+0x3564 = 0x5566</div><div class='add'>+0x3565 = 0x557F</div><div class='add'>+0x3566 = 0x5581</div><div class='add'>+0x3567 = 0x5582</div><div class='add'>+0x3568 = 0x5586</div><div class='add'>+0x3569 = 0x5588</div><div class='add'>+0x356A = 0x558E</div><div class='add'>+0x356B = 0x558F</div><div class='add'>+0x356C = 0x5591</div><div class='add'>+0x356D = 0x5592</div><div class='add'>+0x356E = 0x5593</div><div class='add'>+0x356F = 0x5594</div><div class='add'>+0x3570 = 0x5597</div><div class='add'>+0x3571 = 0x55A3</div><div class='add'>+0x3572 = 0x55A4</div><div class='add'>+0x3573 = 0x55AD</div><div class='add'>+0x3574 = 0x55B2</div><div class='add'>+0x3575 = 0x55BF</div><div class='add'>+0x3576 = 0x55C1</div><div class='add'>+0x3577 = 0x55C3</div><div class='add'>+0x3578 = 0x55C6</div><div class='add'>+0x3579 = 0x55C9</div><div class='add'>+0x357A = 0x55CB</div><div class='add'>+0x357B = 0x55CC</div><div class='add'>+0x357C = 0x55CE</div><div class='add'>+0x357D = 0x55D1</div><div class='add'>+0x357E = 0x55D2</div><div class='add'>+0x3621 = 0x55D3</div><div class='add'>+0x3622 = 0x55D7</div><div class='add'>+0x3623 = 0x55D8</div><div class='add'>+0x3624 = 0x55DB</div><div class='add'>+0x3625 = 0x55DE</div><div class='add'>+0x3626 = 0x55E2</div><div class='add'>+0x3627 = 0x55E9</div><div class='add'>+0x3628 = 0x55F6</div><div class='add'>+0x3629 = 0x55FF</div><div class='add'>+0x362A = 0x5605</div><div class='add'>+0x362B = 0x5608</div><div class='add'>+0x362C = 0x560A</div><div class='add'>+0x362D = 0x560D</div><div class='add'>+0x362E = 0x560E</div><div class='add'>+0x362F = 0x560F</div><div class='add'>+0x3630 = 0x5610</div><div class='add'>+0x3631 = 0x5611</div><div class='add'>+0x3632 = 0x5612</div><div class='add'>+0x3633 = 0x5619</div><div class='add'>+0x3634 = 0x562C</div><div class='add'>+0x3635 = 0x5630</div><div class='add'>+0x3636 = 0x5633</div><div class='add'>+0x3637 = 0x5635</div><div class='add'>+0x3638 = 0x5637</div><div class='add'>+0x3639 = 0x5639</div><div class='add'>+0x363A = 0x563B</div><div class='add'>+0x363B = 0x563C</div><div class='add'>+0x363C = 0x563D</div><div class='add'>+0x363D = 0x563F</div><div class='add'>+0x363E = 0x5640</div><div class='add'>+0x363F = 0x5641</div><div class='add'>+0x3640 = 0x5643</div><div class='add'>+0x3641 = 0x5644</div><div class='add'>+0x3642 = 0x5646</div><div class='add'>+0x3643 = 0x5649</div><div class='add'>+0x3644 = 0x564B</div><div class='add'>+0x3645 = 0x564D</div><div class='add'>+0x3646 = 0x564F</div><div class='add'>+0x3647 = 0x5654</div><div class='add'>+0x3648 = 0x565E</div><div class='add'>+0x3649 = 0x5660</div><div class='add'>+0x364A = 0x5661</div><div class='add'>+0x364B = 0x5662</div><div class='add'>+0x364C = 0x5663</div><div class='add'>+0x364D = 0x5666</div><div class='add'>+0x364E = 0x5669</div><div class='add'>+0x364F = 0x566D</div><div class='add'>+0x3650 = 0x566F</div><div class='add'>+0x3651 = 0x5671</div><div class='add'>+0x3652 = 0x5672</div><div class='add'>+0x3653 = 0x5675</div><div class='add'>+0x3654 = 0x5684</div><div class='add'>+0x3655 = 0x5685</div><div class='add'>+0x3656 = 0x5688</div><div class='add'>+0x3657 = 0x568B</div><div class='add'>+0x3658 = 0x568C</div><div class='add'>+0x3659 = 0x5695</div><div class='add'>+0x365A = 0x5699</div><div class='add'>+0x365B = 0x569A</div><div class='add'>+0x365C = 0x569D</div><div class='add'>+0x365D = 0x569E</div><div class='add'>+0x365E = 0x569F</div><div class='add'>+0x365F = 0x56A6</div><div class='add'>+0x3660 = 0x56A7</div><div class='add'>+0x3661 = 0x56A8</div><div class='add'>+0x3662 = 0x56A9</div><div class='add'>+0x3663 = 0x56AB</div><div class='add'>+0x3664 = 0x56AC</div><div class='add'>+0x3665 = 0x56AD</div><div class='add'>+0x3666 = 0x56B1</div><div class='add'>+0x3667 = 0x56B3</div><div class='add'>+0x3668 = 0x56B7</div><div class='add'>+0x3669 = 0x56BE</div><div class='add'>+0x366A = 0x56C5</div><div class='add'>+0x366B = 0x56C9</div><div class='add'>+0x366C = 0x56CA</div><div class='add'>+0x366D = 0x56CB</div><div class='add'>+0x366E = 0x56CF</div><div class='add'>+0x366F = 0x56D0</div><div class='add'>+0x3670 = 0x56CC</div><div class='add'>+0x3671 = 0x56CD</div><div class='add'>+0x3672 = 0x56D9</div><div class='add'>+0x3673 = 0x56DC</div><div class='add'>+0x3674 = 0x56DD</div><div class='add'>+0x3675 = 0x56DF</div><div class='add'>+0x3676 = 0x56E1</div><div class='add'>+0x3677 = 0x56E4</div><div class='add'>+0x3678 = 0x56E5</div><div class='add'>+0x3679 = 0x56E6</div><div class='add'>+0x367A = 0x56E7</div><div class='add'>+0x367B = 0x56E8</div><div class='add'>+0x367C = 0x56F1</div><div class='add'>+0x367D = 0x56EB</div><div class='add'>+0x367E = 0x56ED</div><div class='add'>+0x3721 = 0x56F6</div><div class='add'>+0x3722 = 0x56F7</div><div class='add'>+0x3723 = 0x5701</div><div class='add'>+0x3724 = 0x5702</div><div class='add'>+0x3725 = 0x5707</div><div class='add'>+0x3726 = 0x570A</div><div class='add'>+0x3727 = 0x570C</div><div class='add'>+0x3728 = 0x5711</div><div class='add'>+0x3729 = 0x5715</div><div class='add'>+0x372A = 0x571A</div><div class='add'>+0x372B = 0x571B</div><div class='add'>+0x372C = 0x571D</div><div class='add'>+0x372D = 0x5720</div><div class='add'>+0x372E = 0x5722</div><div class='add'>+0x372F = 0x5723</div><div class='add'>+0x3730 = 0x5724</div><div class='add'>+0x3731 = 0x5725</div><div class='add'>+0x3732 = 0x5729</div><div class='add'>+0x3733 = 0x572A</div><div class='add'>+0x3734 = 0x572C</div><div class='add'>+0x3735 = 0x572E</div><div class='add'>+0x3736 = 0x572F</div><div class='add'>+0x3737 = 0x5733</div><div class='add'>+0x3738 = 0x5734</div><div class='add'>+0x3739 = 0x573D</div><div class='add'>+0x373A = 0x573E</div><div class='add'>+0x373B = 0x573F</div><div class='add'>+0x373C = 0x5745</div><div class='add'>+0x373D = 0x5746</div><div class='add'>+0x373E = 0x574C</div><div class='add'>+0x373F = 0x574D</div><div class='add'>+0x3740 = 0x5752</div><div class='add'>+0x3741 = 0x5762</div><div class='add'>+0x3742 = 0x5765</div><div class='add'>+0x3743 = 0x5767</div><div class='add'>+0x3744 = 0x5768</div><div class='add'>+0x3745 = 0x576B</div><div class='add'>+0x3746 = 0x576D</div><div class='add'>+0x3747 = 0x576E</div><div class='add'>+0x3748 = 0x576F</div><div class='add'>+0x3749 = 0x5770</div><div class='add'>+0x374A = 0x5771</div><div class='add'>+0x374B = 0x5773</div><div class='add'>+0x374C = 0x5774</div><div class='add'>+0x374D = 0x5775</div><div class='add'>+0x374E = 0x5777</div><div class='add'>+0x374F = 0x5779</div><div class='add'>+0x3750 = 0x577A</div><div class='add'>+0x3751 = 0x577B</div><div class='add'>+0x3752 = 0x577C</div><div class='add'>+0x3753 = 0x577E</div><div class='add'>+0x3754 = 0x5781</div><div class='add'>+0x3755 = 0x5783</div><div class='add'>+0x3756 = 0x578C</div><div class='add'>+0x3757 = 0x5794</div><div class='add'>+0x3758 = 0x5797</div><div class='add'>+0x3759 = 0x5799</div><div class='add'>+0x375A = 0x579A</div><div class='add'>+0x375B = 0x579C</div><div class='add'>+0x375C = 0x579D</div><div class='add'>+0x375D = 0x579E</div><div class='add'>+0x375E = 0x579F</div><div class='add'>+0x375F = 0x57A1</div><div class='add'>+0x3760 = 0x5795</div><div class='add'>+0x3761 = 0x57A7</div><div class='add'>+0x3762 = 0x57A8</div><div class='add'>+0x3763 = 0x57A9</div><div class='add'>+0x3764 = 0x57AC</div><div class='add'>+0x3765 = 0x57B8</div><div class='add'>+0x3766 = 0x57BD</div><div class='add'>+0x3767 = 0x57C7</div><div class='add'>+0x3768 = 0x57C8</div><div class='add'>+0x3769 = 0x57CC</div><div class='add'>+0x376A = 0x57CF</div><div class='add'>+0x376B = 0x57D5</div><div class='add'>+0x376C = 0x57DD</div><div class='add'>+0x376D = 0x57DE</div><div class='add'>+0x376E = 0x57E4</div><div class='add'>+0x376F = 0x57E6</div><div class='add'>+0x3770 = 0x57E7</div><div class='add'>+0x3771 = 0x57E9</div><div class='add'>+0x3772 = 0x57ED</div><div class='add'>+0x3773 = 0x57F0</div><div class='add'>+0x3774 = 0x57F5</div><div class='add'>+0x3775 = 0x57F6</div><div class='add'>+0x3776 = 0x57F8</div><div class='add'>+0x3777 = 0x57FD</div><div class='add'>+0x3778 = 0x57FE</div><div class='add'>+0x3779 = 0x57FF</div><div class='add'>+0x377A = 0x5803</div><div class='add'>+0x377B = 0x5804</div><div class='add'>+0x377C = 0x5808</div><div class='add'>+0x377D = 0x5809</div><div class='add'>+0x377E = 0x57E1</div><div class='add'>+0x3821 = 0x580C</div><div class='add'>+0x3822 = 0x580D</div><div class='add'>+0x3823 = 0x581B</div><div class='add'>+0x3824 = 0x581E</div><div class='add'>+0x3825 = 0x581F</div><div class='add'>+0x3826 = 0x5820</div><div class='add'>+0x3827 = 0x5826</div><div class='add'>+0x3828 = 0x5827</div><div class='add'>+0x3829 = 0x582D</div><div class='add'>+0x382A = 0x5832</div><div class='add'>+0x382B = 0x5839</div><div class='add'>+0x382C = 0x583F</div><div class='add'>+0x382D = 0x5849</div><div class='add'>+0x382E = 0x584C</div><div class='add'>+0x382F = 0x584D</div><div class='add'>+0x3830 = 0x584F</div><div class='add'>+0x3831 = 0x5850</div><div class='add'>+0x3832 = 0x5855</div><div class='add'>+0x3833 = 0x585F</div><div class='add'>+0x3834 = 0x5861</div><div class='add'>+0x3835 = 0x5864</div><div class='add'>+0x3836 = 0x5867</div><div class='add'>+0x3837 = 0x5868</div><div class='add'>+0x3838 = 0x5878</div><div class='add'>+0x3839 = 0x587C</div><div class='add'>+0x383A = 0x587F</div><div class='add'>+0x383B = 0x5880</div><div class='add'>+0x383C = 0x5881</div><div class='add'>+0x383D = 0x5887</div><div class='add'>+0x383E = 0x5888</div><div class='add'>+0x383F = 0x5889</div><div class='add'>+0x3840 = 0x588A</div><div class='add'>+0x3841 = 0x588C</div><div class='add'>+0x3842 = 0x588D</div><div class='add'>+0x3843 = 0x588F</div><div class='add'>+0x3844 = 0x5890</div><div class='add'>+0x3845 = 0x5894</div><div class='add'>+0x3846 = 0x5896</div><div class='add'>+0x3847 = 0x589D</div><div class='add'>+0x3848 = 0x58A0</div><div class='add'>+0x3849 = 0x58A1</div><div class='add'>+0x384A = 0x58A2</div><div class='add'>+0x384B = 0x58A6</div><div class='add'>+0x384C = 0x58A9</div><div class='add'>+0x384D = 0x58B1</div><div class='add'>+0x384E = 0x58B2</div><div class='add'>+0x384F = 0x58C4</div><div class='add'>+0x3850 = 0x58BC</div><div class='add'>+0x3851 = 0x58C2</div><div class='add'>+0x3852 = 0x58C8</div><div class='add'>+0x3853 = 0x58CD</div><div class='add'>+0x3854 = 0x58CE</div><div class='add'>+0x3855 = 0x58D0</div><div class='add'>+0x3856 = 0x58D2</div><div class='add'>+0x3857 = 0x58D4</div><div class='add'>+0x3858 = 0x58D6</div><div class='add'>+0x3859 = 0x58DA</div><div class='add'>+0x385A = 0x58DD</div><div class='add'>+0x385B = 0x58E1</div><div class='add'>+0x385C = 0x58E2</div><div class='add'>+0x385D = 0x58E9</div><div class='add'>+0x385E = 0x58F3</div><div class='add'>+0x385F = 0x5905</div><div class='add'>+0x3860 = 0x5906</div><div class='add'>+0x3861 = 0x590B</div><div class='add'>+0x3862 = 0x590C</div><div class='add'>+0x3863 = 0x5912</div><div class='add'>+0x3864 = 0x5913</div><div class='add'>+0x3865 = 0x5914</div><div class='add'>+0x3866 = 0x8641</div><div class='add'>+0x3867 = 0x591D</div><div class='add'>+0x3868 = 0x5921</div><div class='add'>+0x3869 = 0x5923</div><div class='add'>+0x386A = 0x5924</div><div class='add'>+0x386B = 0x5928</div><div class='add'>+0x386C = 0x592F</div><div class='add'>+0x386D = 0x5930</div><div class='add'>+0x386E = 0x5933</div><div class='add'>+0x386F = 0x5935</div><div class='add'>+0x3870 = 0x5936</div><div class='add'>+0x3871 = 0x593F</div><div class='add'>+0x3872 = 0x5943</div><div class='add'>+0x3873 = 0x5946</div><div class='add'>+0x3874 = 0x5952</div><div class='add'>+0x3875 = 0x5953</div><div class='add'>+0x3876 = 0x5959</div><div class='add'>+0x3877 = 0x595B</div><div class='add'>+0x3878 = 0x595D</div><div class='add'>+0x3879 = 0x595E</div><div class='add'>+0x387A = 0x595F</div><div class='add'>+0x387B = 0x5961</div><div class='add'>+0x387C = 0x5963</div><div class='add'>+0x387D = 0x596B</div><div class='add'>+0x387E = 0x596D</div><div class='add'>+0x3921 = 0x596F</div><div class='add'>+0x3922 = 0x5972</div><div class='add'>+0x3923 = 0x5975</div><div class='add'>+0x3924 = 0x5976</div><div class='add'>+0x3925 = 0x5979</div><div class='add'>+0x3926 = 0x597B</div><div class='add'>+0x3927 = 0x597C</div><div class='add'>+0x3928 = 0x598B</div><div class='add'>+0x3929 = 0x598C</div><div class='add'>+0x392A = 0x598E</div><div class='add'>+0x392B = 0x5992</div><div class='add'>+0x392C = 0x5995</div><div class='add'>+0x392D = 0x5997</div><div class='add'>+0x392E = 0x599F</div><div class='add'>+0x392F = 0x59A4</div><div class='add'>+0x3930 = 0x59A7</div><div class='add'>+0x3931 = 0x59AD</div><div class='add'>+0x3932 = 0x59AE</div><div class='add'>+0x3933 = 0x59AF</div><div class='add'>+0x3934 = 0x59B0</div><div class='add'>+0x3935 = 0x59B3</div><div class='add'>+0x3936 = 0x59B7</div><div class='add'>+0x3937 = 0x59BA</div><div class='add'>+0x3938 = 0x59BC</div><div class='add'>+0x3939 = 0x59C1</div><div class='add'>+0x393A = 0x59C3</div><div class='add'>+0x393B = 0x59C4</div><div class='add'>+0x393C = 0x59C8</div><div class='add'>+0x393D = 0x59CA</div><div class='add'>+0x393E = 0x59CD</div><div class='add'>+0x393F = 0x59D2</div><div class='add'>+0x3940 = 0x59DD</div><div class='add'>+0x3941 = 0x59DE</div><div class='add'>+0x3942 = 0x59DF</div><div class='add'>+0x3943 = 0x59E3</div><div class='add'>+0x3944 = 0x59E4</div><div class='add'>+0x3945 = 0x59E7</div><div class='add'>+0x3946 = 0x59EE</div><div class='add'>+0x3947 = 0x59EF</div><div class='add'>+0x3948 = 0x59F1</div><div class='add'>+0x3949 = 0x59F2</div><div class='add'>+0x394A = 0x59F4</div><div class='add'>+0x394B = 0x59F7</div><div class='add'>+0x394C = 0x5A00</div><div class='add'>+0x394D = 0x5A04</div><div class='add'>+0x394E = 0x5A0C</div><div class='add'>+0x394F = 0x5A0D</div><div class='add'>+0x3950 = 0x5A0E</div><div class='add'>+0x3951 = 0x5A12</div><div class='add'>+0x3952 = 0x5A13</div><div class='add'>+0x3953 = 0x5A1E</div><div class='add'>+0x3954 = 0x5A23</div><div class='add'>+0x3955 = 0x5A24</div><div class='add'>+0x3956 = 0x5A27</div><div class='add'>+0x3957 = 0x5A28</div><div class='add'>+0x3958 = 0x5A2A</div><div class='add'>+0x3959 = 0x5A2D</div><div class='add'>+0x395A = 0x5A30</div><div class='add'>+0x395B = 0x5A44</div><div class='add'>+0x395C = 0x5A45</div><div class='add'>+0x395D = 0x5A47</div><div class='add'>+0x395E = 0x5A48</div><div class='add'>+0x395F = 0x5A4C</div><div class='add'>+0x3960 = 0x5A50</div><div class='add'>+0x3961 = 0x5A55</div><div class='add'>+0x3962 = 0x5A5E</div><div class='add'>+0x3963 = 0x5A63</div><div class='add'>+0x3964 = 0x5A65</div><div class='add'>+0x3965 = 0x5A67</div><div class='add'>+0x3966 = 0x5A6D</div><div class='add'>+0x3967 = 0x5A77</div><div class='add'>+0x3968 = 0x5A7A</div><div class='add'>+0x3969 = 0x5A7B</div><div class='add'>+0x396A = 0x5A7E</div><div class='add'>+0x396B = 0x5A8B</div><div class='add'>+0x396C = 0x5A90</div><div class='add'>+0x396D = 0x5A93</div><div class='add'>+0x396E = 0x5A96</div><div class='add'>+0x396F = 0x5A99</div><div class='add'>+0x3970 = 0x5A9C</div><div class='add'>+0x3971 = 0x5A9E</div><div class='add'>+0x3972 = 0x5A9F</div><div class='add'>+0x3973 = 0x5AA0</div><div class='add'>+0x3974 = 0x5AA2</div><div class='add'>+0x3975 = 0x5AA7</div><div class='add'>+0x3976 = 0x5AAC</div><div class='add'>+0x3977 = 0x5AB1</div><div class='add'>+0x3978 = 0x5AB2</div><div class='add'>+0x3979 = 0x5AB3</div><div class='add'>+0x397A = 0x5AB5</div><div class='add'>+0x397B = 0x5AB8</div><div class='add'>+0x397C = 0x5ABA</div><div class='add'>+0x397D = 0x5ABB</div><div class='add'>+0x397E = 0x5ABF</div><div class='add'>+0x3A21 = 0x5AC4</div><div class='add'>+0x3A22 = 0x5AC6</div><div class='add'>+0x3A23 = 0x5AC8</div><div class='add'>+0x3A24 = 0x5ACF</div><div class='add'>+0x3A25 = 0x5ADA</div><div class='add'>+0x3A26 = 0x5ADC</div><div class='add'>+0x3A27 = 0x5AE0</div><div class='add'>+0x3A28 = 0x5AE5</div><div class='add'>+0x3A29 = 0x5AEA</div><div class='add'>+0x3A2A = 0x5AEE</div><div class='add'>+0x3A2B = 0x5AF5</div><div class='add'>+0x3A2C = 0x5AF6</div><div class='add'>+0x3A2D = 0x5AFD</div><div class='add'>+0x3A2E = 0x5B00</div><div class='add'>+0x3A2F = 0x5B01</div><div class='add'>+0x3A30 = 0x5B08</div><div class='add'>+0x3A31 = 0x5B17</div><div class='add'>+0x3A32 = 0x5B34</div><div class='add'>+0x3A33 = 0x5B19</div><div class='add'>+0x3A34 = 0x5B1B</div><div class='add'>+0x3A35 = 0x5B1D</div><div class='add'>+0x3A36 = 0x5B21</div><div class='add'>+0x3A37 = 0x5B25</div><div class='add'>+0x3A38 = 0x5B2D</div><div class='add'>+0x3A39 = 0x5B38</div><div class='add'>+0x3A3A = 0x5B41</div><div class='add'>+0x3A3B = 0x5B4B</div><div class='add'>+0x3A3C = 0x5B4C</div><div class='add'>+0x3A3D = 0x5B52</div><div class='add'>+0x3A3E = 0x5B56</div><div class='add'>+0x3A3F = 0x5B5E</div><div class='add'>+0x3A40 = 0x5B68</div><div class='add'>+0x3A41 = 0x5B6E</div><div class='add'>+0x3A42 = 0x5B6F</div><div class='add'>+0x3A43 = 0x5B7C</div><div class='add'>+0x3A44 = 0x5B7D</div><div class='add'>+0x3A45 = 0x5B7E</div><div class='add'>+0x3A46 = 0x5B7F</div><div class='add'>+0x3A47 = 0x5B81</div><div class='add'>+0x3A48 = 0x5B84</div><div class='add'>+0x3A49 = 0x5B86</div><div class='add'>+0x3A4A = 0x5B8A</div><div class='add'>+0x3A4B = 0x5B8E</div><div class='add'>+0x3A4C = 0x5B90</div><div class='add'>+0x3A4D = 0x5B91</div><div class='add'>+0x3A4E = 0x5B93</div><div class='add'>+0x3A4F = 0x5B94</div><div class='add'>+0x3A50 = 0x5B96</div><div class='add'>+0x3A51 = 0x5BA8</div><div class='add'>+0x3A52 = 0x5BA9</div><div class='add'>+0x3A53 = 0x5BAC</div><div class='add'>+0x3A54 = 0x5BAD</div><div class='add'>+0x3A55 = 0x5BAF</div><div class='add'>+0x3A56 = 0x5BB1</div><div class='add'>+0x3A57 = 0x5BB2</div><div class='add'>+0x3A58 = 0x5BB7</div><div class='add'>+0x3A59 = 0x5BBA</div><div class='add'>+0x3A5A = 0x5BBC</div><div class='add'>+0x3A5B = 0x5BC0</div><div class='add'>+0x3A5C = 0x5BC1</div><div class='add'>+0x3A5D = 0x5BCD</div><div class='add'>+0x3A5E = 0x5BCF</div><div class='add'>+0x3A5F = 0x5BD6</div><div class='add'>+0x3A60 = 0x5BD7</div><div class='add'>+0x3A61 = 0x5BD8</div><div class='add'>+0x3A62 = 0x5BD9</div><div class='add'>+0x3A63 = 0x5BDA</div><div class='add'>+0x3A64 = 0x5BE0</div><div class='add'>+0x3A65 = 0x5BEF</div><div class='add'>+0x3A66 = 0x5BF1</div><div class='add'>+0x3A67 = 0x5BF4</div><div class='add'>+0x3A68 = 0x5BFD</div><div class='add'>+0x3A69 = 0x5C0C</div><div class='add'>+0x3A6A = 0x5C17</div><div class='add'>+0x3A6B = 0x5C1E</div><div class='add'>+0x3A6C = 0x5C1F</div><div class='add'>+0x3A6D = 0x5C23</div><div class='add'>+0x3A6E = 0x5C26</div><div class='add'>+0x3A6F = 0x5C29</div><div class='add'>+0x3A70 = 0x5C2B</div><div class='add'>+0x3A71 = 0x5C2C</div><div class='add'>+0x3A72 = 0x5C2E</div><div class='add'>+0x3A73 = 0x5C30</div><div class='add'>+0x3A74 = 0x5C32</div><div class='add'>+0x3A75 = 0x5C35</div><div class='add'>+0x3A76 = 0x5C36</div><div class='add'>+0x3A77 = 0x5C59</div><div class='add'>+0x3A78 = 0x5C5A</div><div class='add'>+0x3A79 = 0x5C5C</div><div class='add'>+0x3A7A = 0x5C62</div><div class='add'>+0x3A7B = 0x5C63</div><div class='add'>+0x3A7C = 0x5C67</div><div class='add'>+0x3A7D = 0x5C68</div><div class='add'>+0x3A7E = 0x5C69</div><div class='add'>+0x3B21 = 0x5C6D</div><div class='add'>+0x3B22 = 0x5C70</div><div class='add'>+0x3B23 = 0x5C74</div><div class='add'>+0x3B24 = 0x5C75</div><div class='add'>+0x3B25 = 0x5C7A</div><div class='add'>+0x3B26 = 0x5C7B</div><div class='add'>+0x3B27 = 0x5C7C</div><div class='add'>+0x3B28 = 0x5C7D</div><div class='add'>+0x3B29 = 0x5C87</div><div class='add'>+0x3B2A = 0x5C88</div><div class='add'>+0x3B2B = 0x5C8A</div><div class='add'>+0x3B2C = 0x5C8F</div><div class='add'>+0x3B2D = 0x5C92</div><div class='add'>+0x3B2E = 0x5C9D</div><div class='add'>+0x3B2F = 0x5C9F</div><div class='add'>+0x3B30 = 0x5CA0</div><div class='add'>+0x3B31 = 0x5CA2</div><div class='add'>+0x3B32 = 0x5CA3</div><div class='add'>+0x3B33 = 0x5CA6</div><div class='add'>+0x3B34 = 0x5CAA</div><div class='add'>+0x3B35 = 0x5CB2</div><div class='add'>+0x3B36 = 0x5CB4</div><div class='add'>+0x3B37 = 0x5CB5</div><div class='add'>+0x3B38 = 0x5CBA</div><div class='add'>+0x3B39 = 0x5CC9</div><div class='add'>+0x3B3A = 0x5CCB</div><div class='add'>+0x3B3B = 0x5CD2</div><div class='add'>+0x3B3C = 0x5CDD</div><div class='add'>+0x3B3D = 0x5CD7</div><div class='add'>+0x3B3E = 0x5CEE</div><div class='add'>+0x3B3F = 0x5CF1</div><div class='add'>+0x3B40 = 0x5CF2</div><div class='add'>+0x3B41 = 0x5CF4</div><div class='add'>+0x3B42 = 0x5D01</div><div class='add'>+0x3B43 = 0x5D06</div><div class='add'>+0x3B44 = 0x5D0D</div><div class='add'>+0x3B45 = 0x5D12</div><div class='add'>+0x3B46 = 0x5D2B</div><div class='add'>+0x3B47 = 0x5D23</div><div class='add'>+0x3B48 = 0x5D24</div><div class='add'>+0x3B49 = 0x5D26</div><div class='add'>+0x3B4A = 0x5D27</div><div class='add'>+0x3B4B = 0x5D31</div><div class='add'>+0x3B4C = 0x5D34</div><div class='add'>+0x3B4D = 0x5D39</div><div class='add'>+0x3B4E = 0x5D3D</div><div class='add'>+0x3B4F = 0x5D3F</div><div class='add'>+0x3B50 = 0x5D42</div><div class='add'>+0x3B51 = 0x5D43</div><div class='add'>+0x3B52 = 0x5D46</div><div class='add'>+0x3B53 = 0x5D48</div><div class='add'>+0x3B54 = 0x5D55</div><div class='add'>+0x3B55 = 0x5D51</div><div class='add'>+0x3B56 = 0x5D59</div><div class='add'>+0x3B57 = 0x5D4A</div><div class='add'>+0x3B58 = 0x5D5F</div><div class='add'>+0x3B59 = 0x5D60</div><div class='add'>+0x3B5A = 0x5D61</div><div class='add'>+0x3B5B = 0x5D62</div><div class='add'>+0x3B5C = 0x5D64</div><div class='add'>+0x3B5D = 0x5D6A</div><div class='add'>+0x3B5E = 0x5D6D</div><div class='add'>+0x3B5F = 0x5D70</div><div class='add'>+0x3B60 = 0x5D79</div><div class='add'>+0x3B61 = 0x5D7A</div><div class='add'>+0x3B62 = 0x5D7E</div><div class='add'>+0x3B63 = 0x5D7F</div><div class='add'>+0x3B64 = 0x5D81</div><div class='add'>+0x3B65 = 0x5D83</div><div class='add'>+0x3B66 = 0x5D88</div><div class='add'>+0x3B67 = 0x5D8A</div><div class='add'>+0x3B68 = 0x5D92</div><div class='add'>+0x3B69 = 0x5D93</div><div class='add'>+0x3B6A = 0x5D94</div><div class='add'>+0x3B6B = 0x5D95</div><div class='add'>+0x3B6C = 0x5D99</div><div class='add'>+0x3B6D = 0x5D9B</div><div class='add'>+0x3B6E = 0x5D9F</div><div class='add'>+0x3B6F = 0x5DA0</div><div class='add'>+0x3B70 = 0x5DA7</div><div class='add'>+0x3B71 = 0x5DAB</div><div class='add'>+0x3B72 = 0x5DB0</div><div class='add'>+0x3B73 = 0x5DB4</div><div class='add'>+0x3B74 = 0x5DB8</div><div class='add'>+0x3B75 = 0x5DB9</div><div class='add'>+0x3B76 = 0x5DC3</div><div class='add'>+0x3B77 = 0x5DC7</div><div class='add'>+0x3B78 = 0x5DCB</div><div class='add'>+0x3B79 = 0x5DD0</div><div class='add'>+0x3B7A = 0x5DCE</div><div class='add'>+0x3B7B = 0x5DD8</div><div class='add'>+0x3B7C = 0x5DD9</div><div class='add'>+0x3B7D = 0x5DE0</div><div class='add'>+0x3B7E = 0x5DE4</div><div class='add'>+0x3C21 = 0x5DE9</div><div class='add'>+0x3C22 = 0x5DF8</div><div class='add'>+0x3C23 = 0x5DF9</div><div class='add'>+0x3C24 = 0x5E00</div><div class='add'>+0x3C25 = 0x5E07</div><div class='add'>+0x3C26 = 0x5E0D</div><div class='add'>+0x3C27 = 0x5E12</div><div class='add'>+0x3C28 = 0x5E14</div><div class='add'>+0x3C29 = 0x5E15</div><div class='add'>+0x3C2A = 0x5E18</div><div class='add'>+0x3C2B = 0x5E1F</div><div class='add'>+0x3C2C = 0x5E20</div><div class='add'>+0x3C2D = 0x5E2E</div><div class='add'>+0x3C2E = 0x5E28</div><div class='add'>+0x3C2F = 0x5E32</div><div class='add'>+0x3C30 = 0x5E35</div><div class='add'>+0x3C31 = 0x5E3E</div><div class='add'>+0x3C32 = 0x5E4B</div><div class='add'>+0x3C33 = 0x5E50</div><div class='add'>+0x3C34 = 0x5E49</div><div class='add'>+0x3C35 = 0x5E51</div><div class='add'>+0x3C36 = 0x5E56</div><div class='add'>+0x3C37 = 0x5E58</div><div class='add'>+0x3C38 = 0x5E5B</div><div class='add'>+0x3C39 = 0x5E5C</div><div class='add'>+0x3C3A = 0x5E5E</div><div class='add'>+0x3C3B = 0x5E68</div><div class='add'>+0x3C3C = 0x5E6A</div><div class='add'>+0x3C3D = 0x5E6B</div><div class='add'>+0x3C3E = 0x5E6C</div><div class='add'>+0x3C3F = 0x5E6D</div><div class='add'>+0x3C40 = 0x5E6E</div><div class='add'>+0x3C41 = 0x5E70</div><div class='add'>+0x3C42 = 0x5E80</div><div class='add'>+0x3C43 = 0x5E8B</div><div class='add'>+0x3C44 = 0x5E8E</div><div class='add'>+0x3C45 = 0x5EA2</div><div class='add'>+0x3C46 = 0x5EA4</div><div class='add'>+0x3C47 = 0x5EA5</div><div class='add'>+0x3C48 = 0x5EA8</div><div class='add'>+0x3C49 = 0x5EAA</div><div class='add'>+0x3C4A = 0x5EAC</div><div class='add'>+0x3C4B = 0x5EB1</div><div class='add'>+0x3C4C = 0x5EB3</div><div class='add'>+0x3C4D = 0x5EBD</div><div class='add'>+0x3C4E = 0x5EBE</div><div class='add'>+0x3C4F = 0x5EBF</div><div class='add'>+0x3C50 = 0x5EC6</div><div class='add'>+0x3C51 = 0x5ECC</div><div class='add'>+0x3C52 = 0x5ECB</div><div class='add'>+0x3C53 = 0x5ECE</div><div class='add'>+0x3C54 = 0x5ED1</div><div class='add'>+0x3C55 = 0x5ED2</div><div class='add'>+0x3C56 = 0x5ED4</div><div class='add'>+0x3C57 = 0x5ED5</div><div class='add'>+0x3C58 = 0x5EDC</div><div class='add'>+0x3C59 = 0x5EDE</div><div class='add'>+0x3C5A = 0x5EE5</div><div class='add'>+0x3C5B = 0x5EEB</div><div class='add'>+0x3C5C = 0x5F02</div><div class='add'>+0x3C5D = 0x5F06</div><div class='add'>+0x3C5E = 0x5F07</div><div class='add'>+0x3C5F = 0x5F08</div><div class='add'>+0x3C60 = 0x5F0E</div><div class='add'>+0x3C61 = 0x5F19</div><div class='add'>+0x3C62 = 0x5F1C</div><div class='add'>+0x3C63 = 0x5F1D</div><div class='add'>+0x3C64 = 0x5F21</div><div class='add'>+0x3C65 = 0x5F22</div><div class='add'>+0x3C66 = 0x5F23</div><div class='add'>+0x3C67 = 0x5F24</div><div class='add'>+0x3C68 = 0x5F28</div><div class='add'>+0x3C69 = 0x5F2B</div><div class='add'>+0x3C6A = 0x5F2C</div><div class='add'>+0x3C6B = 0x5F2E</div><div class='add'>+0x3C6C = 0x5F30</div><div class='add'>+0x3C6D = 0x5F34</div><div class='add'>+0x3C6E = 0x5F36</div><div class='add'>+0x3C6F = 0x5F3B</div><div class='add'>+0x3C70 = 0x5F3D</div><div class='add'>+0x3C71 = 0x5F3F</div><div class='add'>+0x3C72 = 0x5F40</div><div class='add'>+0x3C73 = 0x5F44</div><div class='add'>+0x3C74 = 0x5F45</div><div class='add'>+0x3C75 = 0x5F47</div><div class='add'>+0x3C76 = 0x5F4D</div><div class='add'>+0x3C77 = 0x5F50</div><div class='add'>+0x3C78 = 0x5F54</div><div class='add'>+0x3C79 = 0x5F58</div><div class='add'>+0x3C7A = 0x5F5B</div><div class='add'>+0x3C7B = 0x5F60</div><div class='add'>+0x3C7C = 0x5F63</div><div class='add'>+0x3C7D = 0x5F64</div><div class='add'>+0x3C7E = 0x5F67</div><div class='add'>+0x3D21 = 0x5F6F</div><div class='add'>+0x3D22 = 0x5F72</div><div class='add'>+0x3D23 = 0x5F74</div><div class='add'>+0x3D24 = 0x5F75</div><div class='add'>+0x3D25 = 0x5F78</div><div class='add'>+0x3D26 = 0x5F7A</div><div class='add'>+0x3D27 = 0x5F7D</div><div class='add'>+0x3D28 = 0x5F7E</div><div class='add'>+0x3D29 = 0x5F89</div><div class='add'>+0x3D2A = 0x5F8D</div><div class='add'>+0x3D2B = 0x5F8F</div><div class='add'>+0x3D2C = 0x5F96</div><div class='add'>+0x3D2D = 0x5F9C</div><div class='add'>+0x3D2E = 0x5F9D</div><div class='add'>+0x3D2F = 0x5FA2</div><div class='add'>+0x3D30 = 0x5FA7</div><div class='add'>+0x3D31 = 0x5FAB</div><div class='add'>+0x3D32 = 0x5FA4</div><div class='add'>+0x3D33 = 0x5FAC</div><div class='add'>+0x3D34 = 0x5FAF</div><div class='add'>+0x3D35 = 0x5FB0</div><div class='add'>+0x3D36 = 0x5FB1</div><div class='add'>+0x3D37 = 0x5FB8</div><div class='add'>+0x3D38 = 0x5FC4</div><div class='add'>+0x3D39 = 0x5FC7</div><div class='add'>+0x3D3A = 0x5FC8</div><div class='add'>+0x3D3B = 0x5FC9</div><div class='add'>+0x3D3C = 0x5FCB</div><div class='add'>+0x3D3D = 0x5FD0</div><div class='add'>+0x3D3E = 0x5FD1</div><div class='add'>+0x3D3F = 0x5FD2</div><div class='add'>+0x3D40 = 0x5FD3</div><div class='add'>+0x3D41 = 0x5FD4</div><div class='add'>+0x3D42 = 0x5FDE</div><div class='add'>+0x3D43 = 0x5FE1</div><div class='add'>+0x3D44 = 0x5FE2</div><div class='add'>+0x3D45 = 0x5FE8</div><div class='add'>+0x3D46 = 0x5FE9</div><div class='add'>+0x3D47 = 0x5FEA</div><div class='add'>+0x3D48 = 0x5FEC</div><div class='add'>+0x3D49 = 0x5FED</div><div class='add'>+0x3D4A = 0x5FEE</div><div class='add'>+0x3D4B = 0x5FEF</div><div class='add'>+0x3D4C = 0x5FF2</div><div class='add'>+0x3D4D = 0x5FF3</div><div class='add'>+0x3D4E = 0x5FF6</div><div class='add'>+0x3D4F = 0x5FFA</div><div class='add'>+0x3D50 = 0x5FFC</div><div class='add'>+0x3D51 = 0x6007</div><div class='add'>+0x3D52 = 0x600A</div><div class='add'>+0x3D53 = 0x600D</div><div class='add'>+0x3D54 = 0x6013</div><div class='add'>+0x3D55 = 0x6014</div><div class='add'>+0x3D56 = 0x6017</div><div class='add'>+0x3D57 = 0x6018</div><div class='add'>+0x3D58 = 0x601A</div><div class='add'>+0x3D59 = 0x601F</div><div class='add'>+0x3D5A = 0x6024</div><div class='add'>+0x3D5B = 0x602D</div><div class='add'>+0x3D5C = 0x6033</div><div class='add'>+0x3D5D = 0x6035</div><div class='add'>+0x3D5E = 0x6040</div><div class='add'>+0x3D5F = 0x6047</div><div class='add'>+0x3D60 = 0x6048</div><div class='add'>+0x3D61 = 0x6049</div><div class='add'>+0x3D62 = 0x604C</div><div class='add'>+0x3D63 = 0x6051</div><div class='add'>+0x3D64 = 0x6054</div><div class='add'>+0x3D65 = 0x6056</div><div class='add'>+0x3D66 = 0x6057</div><div class='add'>+0x3D67 = 0x605D</div><div class='add'>+0x3D68 = 0x6061</div><div class='add'>+0x3D69 = 0x6067</div><div class='add'>+0x3D6A = 0x6071</div><div class='add'>+0x3D6B = 0x607E</div><div class='add'>+0x3D6C = 0x607F</div><div class='add'>+0x3D6D = 0x6082</div><div class='add'>+0x3D6E = 0x6086</div><div class='add'>+0x3D6F = 0x6088</div><div class='add'>+0x3D70 = 0x608A</div><div class='add'>+0x3D71 = 0x608E</div><div class='add'>+0x3D72 = 0x6091</div><div class='add'>+0x3D73 = 0x6093</div><div class='add'>+0x3D74 = 0x6095</div><div class='add'>+0x3D75 = 0x6098</div><div class='add'>+0x3D76 = 0x609D</div><div class='add'>+0x3D77 = 0x609E</div><div class='add'>+0x3D78 = 0x60A2</div><div class='add'>+0x3D79 = 0x60A4</div><div class='add'>+0x3D7A = 0x60A5</div><div class='add'>+0x3D7B = 0x60A8</div><div class='add'>+0x3D7C = 0x60B0</div><div class='add'>+0x3D7D = 0x60B1</div><div class='add'>+0x3D7E = 0x60B7</div><div class='add'>+0x3E21 = 0x60BB</div><div class='add'>+0x3E22 = 0x60BE</div><div class='add'>+0x3E23 = 0x60C2</div><div class='add'>+0x3E24 = 0x60C4</div><div class='add'>+0x3E25 = 0x60C8</div><div class='add'>+0x3E26 = 0x60C9</div><div class='add'>+0x3E27 = 0x60CA</div><div class='add'>+0x3E28 = 0x60CB</div><div class='add'>+0x3E29 = 0x60CE</div><div class='add'>+0x3E2A = 0x60CF</div><div class='add'>+0x3E2B = 0x60D4</div><div class='add'>+0x3E2C = 0x60D5</div><div class='add'>+0x3E2D = 0x60D9</div><div class='add'>+0x3E2E = 0x60DB</div><div class='add'>+0x3E2F = 0x60DD</div><div class='add'>+0x3E30 = 0x60DE</div><div class='add'>+0x3E31 = 0x60E2</div><div class='add'>+0x3E32 = 0x60E5</div><div class='add'>+0x3E33 = 0x60F2</div><div class='add'>+0x3E34 = 0x60F5</div><div class='add'>+0x3E35 = 0x60F8</div><div class='add'>+0x3E36 = 0x60FC</div><div class='add'>+0x3E37 = 0x60FD</div><div class='add'>+0x3E38 = 0x6102</div><div class='add'>+0x3E39 = 0x6107</div><div class='add'>+0x3E3A = 0x610A</div><div class='add'>+0x3E3B = 0x610C</div><div class='add'>+0x3E3C = 0x6110</div><div class='add'>+0x3E3D = 0x6111</div><div class='add'>+0x3E3E = 0x6112</div><div class='add'>+0x3E3F = 0x6113</div><div class='add'>+0x3E40 = 0x6114</div><div class='add'>+0x3E41 = 0x6116</div><div class='add'>+0x3E42 = 0x6117</div><div class='add'>+0x3E43 = 0x6119</div><div class='add'>+0x3E44 = 0x611C</div><div class='add'>+0x3E45 = 0x611E</div><div class='add'>+0x3E46 = 0x6122</div><div class='add'>+0x3E47 = 0x612A</div><div class='add'>+0x3E48 = 0x612B</div><div class='add'>+0x3E49 = 0x6130</div><div class='add'>+0x3E4A = 0x6131</div><div class='add'>+0x3E4B = 0x6135</div><div class='add'>+0x3E4C = 0x6136</div><div class='add'>+0x3E4D = 0x6137</div><div class='add'>+0x3E4E = 0x6139</div><div class='add'>+0x3E4F = 0x6141</div><div class='add'>+0x3E50 = 0x6145</div><div class='add'>+0x3E51 = 0x6146</div><div class='add'>+0x3E52 = 0x6149</div><div class='add'>+0x3E53 = 0x615E</div><div class='add'>+0x3E54 = 0x6160</div><div class='add'>+0x3E55 = 0x616C</div><div class='add'>+0x3E56 = 0x6172</div><div class='add'>+0x3E57 = 0x6178</div><div class='add'>+0x3E58 = 0x617B</div><div class='add'>+0x3E59 = 0x617C</div><div class='add'>+0x3E5A = 0x617F</div><div class='add'>+0x3E5B = 0x6180</div><div class='add'>+0x3E5C = 0x6181</div><div class='add'>+0x3E5D = 0x6183</div><div class='add'>+0x3E5E = 0x6184</div><div class='add'>+0x3E5F = 0x618B</div><div class='add'>+0x3E60 = 0x618D</div><div class='add'>+0x3E61 = 0x6192</div><div class='add'>+0x3E62 = 0x6193</div><div class='add'>+0x3E63 = 0x6197</div><div class='add'>+0x3E64 = 0x6198</div><div class='add'>+0x3E65 = 0x619C</div><div class='add'>+0x3E66 = 0x619D</div><div class='add'>+0x3E67 = 0x619F</div><div class='add'>+0x3E68 = 0x61A0</div><div class='add'>+0x3E69 = 0x61A5</div><div class='add'>+0x3E6A = 0x61A8</div><div class='add'>+0x3E6B = 0x61AA</div><div class='add'>+0x3E6C = 0x61AD</div><div class='add'>+0x3E6D = 0x61B8</div><div class='add'>+0x3E6E = 0x61B9</div><div class='add'>+0x3E6F = 0x61BC</div><div class='add'>+0x3E70 = 0x61C0</div><div class='add'>+0x3E71 = 0x61C1</div><div class='add'>+0x3E72 = 0x61C2</div><div class='add'>+0x3E73 = 0x61CE</div><div class='add'>+0x3E74 = 0x61CF</div><div class='add'>+0x3E75 = 0x61D5</div><div class='add'>+0x3E76 = 0x61DC</div><div class='add'>+0x3E77 = 0x61DD</div><div class='add'>+0x3E78 = 0x61DE</div><div class='add'>+0x3E79 = 0x61DF</div><div class='add'>+0x3E7A = 0x61E1</div><div class='add'>+0x3E7B = 0x61E2</div><div class='add'>+0x3E7C = 0x61E7</div><div class='add'>+0x3E7D = 0x61E9</div><div class='add'>+0x3E7E = 0x61E5</div><div class='add'>+0x3F21 = 0x61EC</div><div class='add'>+0x3F22 = 0x61ED</div><div class='add'>+0x3F23 = 0x61EF</div><div class='add'>+0x3F24 = 0x6201</div><div class='add'>+0x3F25 = 0x6203</div><div class='add'>+0x3F26 = 0x6204</div><div class='add'>+0x3F27 = 0x6207</div><div class='add'>+0x3F28 = 0x6213</div><div class='add'>+0x3F29 = 0x6215</div><div class='add'>+0x3F2A = 0x621C</div><div class='add'>+0x3F2B = 0x6220</div><div class='add'>+0x3F2C = 0x6222</div><div class='add'>+0x3F2D = 0x6223</div><div class='add'>+0x3F2E = 0x6227</div><div class='add'>+0x3F2F = 0x6229</div><div class='add'>+0x3F30 = 0x622B</div><div class='add'>+0x3F31 = 0x6239</div><div class='add'>+0x3F32 = 0x623D</div><div class='add'>+0x3F33 = 0x6242</div><div class='add'>+0x3F34 = 0x6243</div><div class='add'>+0x3F35 = 0x6244</div><div class='add'>+0x3F36 = 0x6246</div><div class='add'>+0x3F37 = 0x624C</div><div class='add'>+0x3F38 = 0x6250</div><div class='add'>+0x3F39 = 0x6251</div><div class='add'>+0x3F3A = 0x6252</div><div class='add'>+0x3F3B = 0x6254</div><div class='add'>+0x3F3C = 0x6256</div><div class='add'>+0x3F3D = 0x625A</div><div class='add'>+0x3F3E = 0x625C</div><div class='add'>+0x3F3F = 0x6264</div><div class='add'>+0x3F40 = 0x626D</div><div class='add'>+0x3F41 = 0x626F</div><div class='add'>+0x3F42 = 0x6273</div><div class='add'>+0x3F43 = 0x627A</div><div class='add'>+0x3F44 = 0x627D</div><div class='add'>+0x3F45 = 0x628D</div><div class='add'>+0x3F46 = 0x628E</div><div class='add'>+0x3F47 = 0x628F</div><div class='add'>+0x3F48 = 0x6290</div><div class='add'>+0x3F49 = 0x62A6</div><div class='add'>+0x3F4A = 0x62A8</div><div class='add'>+0x3F4B = 0x62B3</div><div class='add'>+0x3F4C = 0x62B6</div><div class='add'>+0x3F4D = 0x62B7</div><div class='add'>+0x3F4E = 0x62BA</div><div class='add'>+0x3F4F = 0x62BE</div><div class='add'>+0x3F50 = 0x62BF</div><div class='add'>+0x3F51 = 0x62C4</div><div class='add'>+0x3F52 = 0x62CE</div><div class='add'>+0x3F53 = 0x62D5</div><div class='add'>+0x3F54 = 0x62D6</div><div class='add'>+0x3F55 = 0x62DA</div><div class='add'>+0x3F56 = 0x62EA</div><div class='add'>+0x3F57 = 0x62F2</div><div class='add'>+0x3F58 = 0x62F4</div><div class='add'>+0x3F59 = 0x62FC</div><div class='add'>+0x3F5A = 0x62FD</div><div class='add'>+0x3F5B = 0x6303</div><div class='add'>+0x3F5C = 0x6304</div><div class='add'>+0x3F5D = 0x630A</div><div class='add'>+0x3F5E = 0x630B</div><div class='add'>+0x3F5F = 0x630D</div><div class='add'>+0x3F60 = 0x6310</div><div class='add'>+0x3F61 = 0x6313</div><div class='add'>+0x3F62 = 0x6316</div><div class='add'>+0x3F63 = 0x6318</div><div class='add'>+0x3F64 = 0x6329</div><div class='add'>+0x3F65 = 0x632A</div><div class='add'>+0x3F66 = 0x632D</div><div class='add'>+0x3F67 = 0x6335</div><div class='add'>+0x3F68 = 0x6336</div><div class='add'>+0x3F69 = 0x6339</div><div class='add'>+0x3F6A = 0x633C</div><div class='add'>+0x3F6B = 0x6341</div><div class='add'>+0x3F6C = 0x6342</div><div class='add'>+0x3F6D = 0x6343</div><div class='add'>+0x3F6E = 0x6344</div><div class='add'>+0x3F6F = 0x6346</div><div class='add'>+0x3F70 = 0x634A</div><div class='add'>+0x3F71 = 0x634B</div><div class='add'>+0x3F72 = 0x634E</div><div class='add'>+0x3F73 = 0x6352</div><div class='add'>+0x3F74 = 0x6353</div><div class='add'>+0x3F75 = 0x6354</div><div class='add'>+0x3F76 = 0x6358</div><div class='add'>+0x3F77 = 0x635B</div><div class='add'>+0x3F78 = 0x6365</div><div class='add'>+0x3F79 = 0x6366</div><div class='add'>+0x3F7A = 0x636C</div><div class='add'>+0x3F7B = 0x636D</div><div class='add'>+0x3F7C = 0x6371</div><div class='add'>+0x3F7D = 0x6374</div><div class='add'>+0x3F7E = 0x6375</div><div class='add'>+0x4021 = 0x6378</div><div class='add'>+0x4022 = 0x637C</div><div class='add'>+0x4023 = 0x637D</div><div class='add'>+0x4024 = 0x637F</div><div class='add'>+0x4025 = 0x6382</div><div class='add'>+0x4026 = 0x6384</div><div class='add'>+0x4027 = 0x6387</div><div class='add'>+0x4028 = 0x638A</div><div class='add'>+0x4029 = 0x6390</div><div class='add'>+0x402A = 0x6394</div><div class='add'>+0x402B = 0x6395</div><div class='add'>+0x402C = 0x6399</div><div class='add'>+0x402D = 0x639A</div><div class='add'>+0x402E = 0x639E</div><div class='add'>+0x402F = 0x63A4</div><div class='add'>+0x4030 = 0x63A6</div><div class='add'>+0x4031 = 0x63AD</div><div class='add'>+0x4032 = 0x63AE</div><div class='add'>+0x4033 = 0x63AF</div><div class='add'>+0x4034 = 0x63BD</div><div class='add'>+0x4035 = 0x63C1</div><div class='add'>+0x4036 = 0x63C5</div><div class='add'>+0x4037 = 0x63C8</div><div class='add'>+0x4038 = 0x63CE</div><div class='add'>+0x4039 = 0x63D1</div><div class='add'>+0x403A = 0x63D3</div><div class='add'>+0x403B = 0x63D4</div><div class='add'>+0x403C = 0x63D5</div><div class='add'>+0x403D = 0x63DC</div><div class='add'>+0x403E = 0x63E0</div><div class='add'>+0x403F = 0x63E5</div><div class='add'>+0x4040 = 0x63EA</div><div class='add'>+0x4041 = 0x63EC</div><div class='add'>+0x4042 = 0x63F2</div><div class='add'>+0x4043 = 0x63F3</div><div class='add'>+0x4044 = 0x63F5</div><div class='add'>+0x4045 = 0x63F8</div><div class='add'>+0x4046 = 0x63F9</div><div class='add'>+0x4047 = 0x6409</div><div class='add'>+0x4048 = 0x640A</div><div class='add'>+0x4049 = 0x6410</div><div class='add'>+0x404A = 0x6412</div><div class='add'>+0x404B = 0x6414</div><div class='add'>+0x404C = 0x6418</div><div class='add'>+0x404D = 0x641E</div><div class='add'>+0x404E = 0x6420</div><div class='add'>+0x404F = 0x6422</div><div class='add'>+0x4050 = 0x6424</div><div class='add'>+0x4051 = 0x6425</div><div class='add'>+0x4052 = 0x6429</div><div class='add'>+0x4053 = 0x642A</div><div class='add'>+0x4054 = 0x642F</div><div class='add'>+0x4055 = 0x6430</div><div class='add'>+0x4056 = 0x6435</div><div class='add'>+0x4057 = 0x643D</div><div class='add'>+0x4058 = 0x643F</div><div class='add'>+0x4059 = 0x644B</div><div class='add'>+0x405A = 0x644F</div><div class='add'>+0x405B = 0x6451</div><div class='add'>+0x405C = 0x6452</div><div class='add'>+0x405D = 0x6453</div><div class='add'>+0x405E = 0x6454</div><div class='add'>+0x405F = 0x645A</div><div class='add'>+0x4060 = 0x645B</div><div class='add'>+0x4061 = 0x645C</div><div class='add'>+0x4062 = 0x645D</div><div class='add'>+0x4063 = 0x645F</div><div class='add'>+0x4064 = 0x6460</div><div class='add'>+0x4065 = 0x6461</div><div class='add'>+0x4066 = 0x6463</div><div class='add'>+0x4067 = 0x646D</div><div class='add'>+0x4068 = 0x6473</div><div class='add'>+0x4069 = 0x6474</div><div class='add'>+0x406A = 0x647B</div><div class='add'>+0x406B = 0x647D</div><div class='add'>+0x406C = 0x6485</div><div class='add'>+0x406D = 0x6487</div><div class='add'>+0x406E = 0x648F</div><div class='add'>+0x406F = 0x6490</div><div class='add'>+0x4070 = 0x6491</div><div class='add'>+0x4071 = 0x6498</div><div class='add'>+0x4072 = 0x6499</div><div class='add'>+0x4073 = 0x649B</div><div class='add'>+0x4074 = 0x649D</div><div class='add'>+0x4075 = 0x649F</div><div class='add'>+0x4076 = 0x64A1</div><div class='add'>+0x4077 = 0x64A3</div><div class='add'>+0x4078 = 0x64A6</div><div class='add'>+0x4079 = 0x64A8</div><div class='add'>+0x407A = 0x64AC</div><div class='add'>+0x407B = 0x64B3</div><div class='add'>+0x407C = 0x64BD</div><div class='add'>+0x407D = 0x64BE</div><div class='add'>+0x407E = 0x64BF</div><div class='add'>+0x4121 = 0x64C4</div><div class='add'>+0x4122 = 0x64C9</div><div class='add'>+0x4123 = 0x64CA</div><div class='add'>+0x4124 = 0x64CB</div><div class='add'>+0x4125 = 0x64CC</div><div class='add'>+0x4126 = 0x64CE</div><div class='add'>+0x4127 = 0x64D0</div><div class='add'>+0x4128 = 0x64D1</div><div class='add'>+0x4129 = 0x64D5</div><div class='add'>+0x412A = 0x64D7</div><div class='add'>+0x412B = 0x64E4</div><div class='add'>+0x412C = 0x64E5</div><div class='add'>+0x412D = 0x64E9</div><div class='add'>+0x412E = 0x64EA</div><div class='add'>+0x412F = 0x64ED</div><div class='add'>+0x4130 = 0x64F0</div><div class='add'>+0x4131 = 0x64F5</div><div class='add'>+0x4132 = 0x64F7</div><div class='add'>+0x4133 = 0x64FB</div><div class='add'>+0x4134 = 0x64FF</div><div class='add'>+0x4135 = 0x6501</div><div class='add'>+0x4136 = 0x6504</div><div class='add'>+0x4137 = 0x6508</div><div class='add'>+0x4138 = 0x6509</div><div class='add'>+0x4139 = 0x650A</div><div class='add'>+0x413A = 0x650F</div><div class='add'>+0x413B = 0x6513</div><div class='add'>+0x413C = 0x6514</div><div class='add'>+0x413D = 0x6516</div><div class='add'>+0x413E = 0x6519</div><div class='add'>+0x413F = 0x651B</div><div class='add'>+0x4140 = 0x651E</div><div class='add'>+0x4141 = 0x651F</div><div class='add'>+0x4142 = 0x6522</div><div class='add'>+0x4143 = 0x6526</div><div class='add'>+0x4144 = 0x6529</div><div class='add'>+0x4145 = 0x652E</div><div class='add'>+0x4146 = 0x6531</div><div class='add'>+0x4147 = 0x653A</div><div class='add'>+0x4148 = 0x653C</div><div class='add'>+0x4149 = 0x653D</div><div class='add'>+0x414A = 0x6543</div><div class='add'>+0x414B = 0x6547</div><div class='add'>+0x414C = 0x6549</div><div class='add'>+0x414D = 0x6550</div><div class='add'>+0x414E = 0x6552</div><div class='add'>+0x414F = 0x6554</div><div class='add'>+0x4150 = 0x655F</div><div class='add'>+0x4151 = 0x6560</div><div class='add'>+0x4152 = 0x6567</div><div class='add'>+0x4153 = 0x656B</div><div class='add'>+0x4154 = 0x657A</div><div class='add'>+0x4155 = 0x657D</div><div class='add'>+0x4156 = 0x6581</div><div class='add'>+0x4157 = 0x6585</div><div class='add'>+0x4158 = 0x658A</div><div class='add'>+0x4159 = 0x6592</div><div class='add'>+0x415A = 0x6595</div><div class='add'>+0x415B = 0x6598</div><div class='add'>+0x415C = 0x659D</div><div class='add'>+0x415D = 0x65A0</div><div class='add'>+0x415E = 0x65A3</div><div class='add'>+0x415F = 0x65A6</div><div class='add'>+0x4160 = 0x65AE</div><div class='add'>+0x4161 = 0x65B2</div><div class='add'>+0x4162 = 0x65B3</div><div class='add'>+0x4163 = 0x65B4</div><div class='add'>+0x4164 = 0x65BF</div><div class='add'>+0x4165 = 0x65C2</div><div class='add'>+0x4166 = 0x65C8</div><div class='add'>+0x4167 = 0x65C9</div><div class='add'>+0x4168 = 0x65CE</div><div class='add'>+0x4169 = 0x65D0</div><div class='add'>+0x416A = 0x65D4</div><div class='add'>+0x416B = 0x65D6</div><div class='add'>+0x416C = 0x65D8</div><div class='add'>+0x416D = 0x65DF</div><div class='add'>+0x416E = 0x65F0</div><div class='add'>+0x416F = 0x65F2</div><div class='add'>+0x4170 = 0x65F4</div><div class='add'>+0x4171 = 0x65F5</div><div class='add'>+0x4172 = 0x65F9</div><div class='add'>+0x4173 = 0x65FE</div><div class='add'>+0x4174 = 0x65FF</div><div class='add'>+0x4175 = 0x6600</div><div class='add'>+0x4176 = 0x6604</div><div class='add'>+0x4177 = 0x6608</div><div class='add'>+0x4178 = 0x6609</div><div class='add'>+0x4179 = 0x660D</div><div class='add'>+0x417A = 0x6611</div><div class='add'>+0x417B = 0x6612</div><div class='add'>+0x417C = 0x6615</div><div class='add'>+0x417D = 0x6616</div><div class='add'>+0x417E = 0x661D</div><div class='add'>+0x4221 = 0x661E</div><div class='add'>+0x4222 = 0x6621</div><div class='add'>+0x4223 = 0x6622</div><div class='add'>+0x4224 = 0x6623</div><div class='add'>+0x4225 = 0x6624</div><div class='add'>+0x4226 = 0x6626</div><div class='add'>+0x4227 = 0x6629</div><div class='add'>+0x4228 = 0x662A</div><div class='add'>+0x4229 = 0x662B</div><div class='add'>+0x422A = 0x662C</div><div class='add'>+0x422B = 0x662E</div><div class='add'>+0x422C = 0x6630</div><div class='add'>+0x422D = 0x6631</div><div class='add'>+0x422E = 0x6633</div><div class='add'>+0x422F = 0x6639</div><div class='add'>+0x4230 = 0x6637</div><div class='add'>+0x4231 = 0x6640</div><div class='add'>+0x4232 = 0x6645</div><div class='add'>+0x4233 = 0x6646</div><div class='add'>+0x4234 = 0x664A</div><div class='add'>+0x4235 = 0x664C</div><div class='add'>+0x4236 = 0x6651</div><div class='add'>+0x4237 = 0x664E</div><div class='add'>+0x4238 = 0x6657</div><div class='add'>+0x4239 = 0x6658</div><div class='add'>+0x423A = 0x6659</div><div class='add'>+0x423B = 0x665B</div><div class='add'>+0x423C = 0x665C</div><div class='add'>+0x423D = 0x6660</div><div class='add'>+0x423E = 0x6661</div><div class='add'>+0x423F = 0x66FB</div><div class='add'>+0x4240 = 0x666A</div><div class='add'>+0x4241 = 0x666B</div><div class='add'>+0x4242 = 0x666C</div><div class='add'>+0x4243 = 0x667E</div><div class='add'>+0x4244 = 0x6673</div><div class='add'>+0x4245 = 0x6675</div><div class='add'>+0x4246 = 0x667F</div><div class='add'>+0x4247 = 0x6677</div><div class='add'>+0x4248 = 0x6678</div><div class='add'>+0x4249 = 0x6679</div><div class='add'>+0x424A = 0x667B</div><div class='add'>+0x424B = 0x6680</div><div class='add'>+0x424C = 0x667C</div><div class='add'>+0x424D = 0x668B</div><div class='add'>+0x424E = 0x668C</div><div class='add'>+0x424F = 0x668D</div><div class='add'>+0x4250 = 0x6690</div><div class='add'>+0x4251 = 0x6692</div><div class='add'>+0x4252 = 0x6699</div><div class='add'>+0x4253 = 0x669A</div><div class='add'>+0x4254 = 0x669B</div><div class='add'>+0x4255 = 0x669C</div><div class='add'>+0x4256 = 0x669F</div><div class='add'>+0x4257 = 0x66A0</div><div class='add'>+0x4258 = 0x66A4</div><div class='add'>+0x4259 = 0x66AD</div><div class='add'>+0x425A = 0x66B1</div><div class='add'>+0x425B = 0x66B2</div><div class='add'>+0x425C = 0x66B5</div><div class='add'>+0x425D = 0x66BB</div><div class='add'>+0x425E = 0x66BF</div><div class='add'>+0x425F = 0x66C0</div><div class='add'>+0x4260 = 0x66C2</div><div class='add'>+0x4261 = 0x66C3</div><div class='add'>+0x4262 = 0x66C8</div><div class='add'>+0x4263 = 0x66CC</div><div class='add'>+0x4264 = 0x66CE</div><div class='add'>+0x4265 = 0x66CF</div><div class='add'>+0x4266 = 0x66D4</div><div class='add'>+0x4267 = 0x66DB</div><div class='add'>+0x4268 = 0x66DF</div><div class='add'>+0x4269 = 0x66E8</div><div class='add'>+0x426A = 0x66EB</div><div class='add'>+0x426B = 0x66EC</div><div class='add'>+0x426C = 0x66EE</div><div class='add'>+0x426D = 0x66FA</div><div class='add'>+0x426E = 0x6705</div><div class='add'>+0x426F = 0x6707</div><div class='add'>+0x4270 = 0x670E</div><div class='add'>+0x4271 = 0x6713</div><div class='add'>+0x4272 = 0x6719</div><div class='add'>+0x4273 = 0x671C</div><div class='add'>+0x4274 = 0x6720</div><div class='add'>+0x4275 = 0x6722</div><div class='add'>+0x4276 = 0x6733</div><div class='add'>+0x4277 = 0x673E</div><div class='add'>+0x4278 = 0x6745</div><div class='add'>+0x4279 = 0x6747</div><div class='add'>+0x427A = 0x6748</div><div class='add'>+0x427B = 0x674C</div><div class='add'>+0x427C = 0x6754</div><div class='add'>+0x427D = 0x6755</div><div class='add'>+0x427E = 0x675D</div><div class='add'>+0x4321 = 0x6766</div><div class='add'>+0x4322 = 0x676C</div><div class='add'>+0x4323 = 0x676E</div><div class='add'>+0x4324 = 0x6774</div><div class='add'>+0x4325 = 0x6776</div><div class='add'>+0x4326 = 0x677B</div><div class='add'>+0x4327 = 0x6781</div><div class='add'>+0x4328 = 0x6784</div><div class='add'>+0x4329 = 0x678E</div><div class='add'>+0x432A = 0x678F</div><div class='add'>+0x432B = 0x6791</div><div class='add'>+0x432C = 0x6793</div><div class='add'>+0x432D = 0x6796</div><div class='add'>+0x432E = 0x6798</div><div class='add'>+0x432F = 0x6799</div><div class='add'>+0x4330 = 0x679B</div><div class='add'>+0x4331 = 0x67B0</div><div class='add'>+0x4332 = 0x67B1</div><div class='add'>+0x4333 = 0x67B2</div><div class='add'>+0x4334 = 0x67B5</div><div class='add'>+0x4335 = 0x67BB</div><div class='add'>+0x4336 = 0x67BC</div><div class='add'>+0x4337 = 0x67BD</div><div class='add'>+0x4338 = 0x67F9</div><div class='add'>+0x4339 = 0x67C0</div><div class='add'>+0x433A = 0x67C2</div><div class='add'>+0x433B = 0x67C3</div><div class='add'>+0x433C = 0x67C5</div><div class='add'>+0x433D = 0x67C8</div><div class='add'>+0x433E = 0x67C9</div><div class='add'>+0x433F = 0x67D2</div><div class='add'>+0x4340 = 0x67D7</div><div class='add'>+0x4341 = 0x67D9</div><div class='add'>+0x4342 = 0x67DC</div><div class='add'>+0x4343 = 0x67E1</div><div class='add'>+0x4344 = 0x67E6</div><div class='add'>+0x4345 = 0x67F0</div><div class='add'>+0x4346 = 0x67F2</div><div class='add'>+0x4347 = 0x67F6</div><div class='add'>+0x4348 = 0x67F7</div><div class='add'>+0x4349 = 0x6852</div><div class='add'>+0x434A = 0x6814</div><div class='add'>+0x434B = 0x6819</div><div class='add'>+0x434C = 0x681D</div><div class='add'>+0x434D = 0x681F</div><div class='add'>+0x434E = 0x6828</div><div class='add'>+0x434F = 0x6827</div><div class='add'>+0x4350 = 0x682C</div><div class='add'>+0x4351 = 0x682D</div><div class='add'>+0x4352 = 0x682F</div><div class='add'>+0x4353 = 0x6830</div><div class='add'>+0x4354 = 0x6831</div><div class='add'>+0x4355 = 0x6833</div><div class='add'>+0x4356 = 0x683B</div><div class='add'>+0x4357 = 0x683F</div><div class='add'>+0x4358 = 0x6844</div><div class='add'>+0x4359 = 0x6845</div><div class='add'>+0x435A = 0x684A</div><div class='add'>+0x435B = 0x684C</div><div class='add'>+0x435C = 0x6855</div><div class='add'>+0x435D = 0x6857</div><div class='add'>+0x435E = 0x6858</div><div class='add'>+0x435F = 0x685B</div><div class='add'>+0x4360 = 0x686B</div><div class='add'>+0x4361 = 0x686E</div><div class='add'>+0x4362 = 0x686F</div><div class='add'>+0x4363 = 0x6870</div><div class='add'>+0x4364 = 0x6871</div><div class='add'>+0x4365 = 0x6872</div><div class='add'>+0x4366 = 0x6875</div><div class='add'>+0x4367 = 0x6879</div><div class='add'>+0x4368 = 0x687A</div><div class='add'>+0x4369 = 0x687B</div><div class='add'>+0x436A = 0x687C</div><div class='add'>+0x436B = 0x6882</div><div class='add'>+0x436C = 0x6884</div><div class='add'>+0x436D = 0x6886</div><div class='add'>+0x436E = 0x6888</div><div class='add'>+0x436F = 0x6896</div><div class='add'>+0x4370 = 0x6898</div><div class='add'>+0x4371 = 0x689A</div><div class='add'>+0x4372 = 0x689C</div><div class='add'>+0x4373 = 0x68A1</div><div class='add'>+0x4374 = 0x68A3</div><div class='add'>+0x4375 = 0x68A5</div><div class='add'>+0x4376 = 0x68A9</div><div class='add'>+0x4377 = 0x68AA</div><div class='add'>+0x4378 = 0x68AE</div><div class='add'>+0x4379 = 0x68B2</div><div class='add'>+0x437A = 0x68BB</div><div class='add'>+0x437B = 0x68C5</div><div class='add'>+0x437C = 0x68C8</div><div class='add'>+0x437D = 0x68CC</div><div class='add'>+0x437E = 0x68CF</div><div class='add'>+0x4421 = 0x68D0</div><div class='add'>+0x4422 = 0x68D1</div><div class='add'>+0x4423 = 0x68D3</div><div class='add'>+0x4424 = 0x68D6</div><div class='add'>+0x4425 = 0x68D9</div><div class='add'>+0x4426 = 0x68DC</div><div class='add'>+0x4427 = 0x68DD</div><div class='add'>+0x4428 = 0x68E5</div><div class='add'>+0x4429 = 0x68E8</div><div class='add'>+0x442A = 0x68EA</div><div class='add'>+0x442B = 0x68EB</div><div class='add'>+0x442C = 0x68EC</div><div class='add'>+0x442D = 0x68ED</div><div class='add'>+0x442E = 0x68F0</div><div class='add'>+0x442F = 0x68F1</div><div class='add'>+0x4430 = 0x68F5</div><div class='add'>+0x4431 = 0x68F6</div><div class='add'>+0x4432 = 0x68FB</div><div class='add'>+0x4433 = 0x68FC</div><div class='add'>+0x4434 = 0x68FD</div><div class='add'>+0x4435 = 0x6906</div><div class='add'>+0x4436 = 0x6909</div><div class='add'>+0x4437 = 0x690A</div><div class='add'>+0x4438 = 0x6910</div><div class='add'>+0x4439 = 0x6911</div><div class='add'>+0x443A = 0x6913</div><div class='add'>+0x443B = 0x6916</div><div class='add'>+0x443C = 0x6917</div><div class='add'>+0x443D = 0x6931</div><div class='add'>+0x443E = 0x6933</div><div class='add'>+0x443F = 0x6935</div><div class='add'>+0x4440 = 0x6938</div><div class='add'>+0x4441 = 0x693B</div><div class='add'>+0x4442 = 0x6942</div><div class='add'>+0x4443 = 0x6945</div><div class='add'>+0x4444 = 0x6949</div><div class='add'>+0x4445 = 0x694E</div><div class='add'>+0x4446 = 0x6957</div><div class='add'>+0x4447 = 0x695B</div><div class='add'>+0x4448 = 0x6963</div><div class='add'>+0x4449 = 0x6964</div><div class='add'>+0x444A = 0x6965</div><div class='add'>+0x444B = 0x6966</div><div class='add'>+0x444C = 0x6968</div><div class='add'>+0x444D = 0x6969</div><div class='add'>+0x444E = 0x696C</div><div class='add'>+0x444F = 0x6970</div><div class='add'>+0x4450 = 0x6971</div><div class='add'>+0x4451 = 0x6972</div><div class='add'>+0x4452 = 0x697A</div><div class='add'>+0x4453 = 0x697B</div><div class='add'>+0x4454 = 0x697F</div><div class='add'>+0x4455 = 0x6980</div><div class='add'>+0x4456 = 0x698D</div><div class='add'>+0x4457 = 0x6992</div><div class='add'>+0x4458 = 0x6996</div><div class='add'>+0x4459 = 0x6998</div><div class='add'>+0x445A = 0x69A1</div><div class='add'>+0x445B = 0x69A5</div><div class='add'>+0x445C = 0x69A6</div><div class='add'>+0x445D = 0x69A8</div><div class='add'>+0x445E = 0x69AB</div><div class='add'>+0x445F = 0x69AD</div><div class='add'>+0x4460 = 0x69AF</div><div class='add'>+0x4461 = 0x69B7</div><div class='add'>+0x4462 = 0x69B8</div><div class='add'>+0x4463 = 0x69BA</div><div class='add'>+0x4464 = 0x69BC</div><div class='add'>+0x4465 = 0x69C5</div><div class='add'>+0x4466 = 0x69C8</div><div class='add'>+0x4467 = 0x69D1</div><div class='add'>+0x4468 = 0x69D6</div><div class='add'>+0x4469 = 0x69D7</div><div class='add'>+0x446A = 0x69E2</div><div class='add'>+0x446B = 0x69E5</div><div class='add'>+0x446C = 0x69EE</div><div class='add'>+0x446D = 0x69EF</div><div class='add'>+0x446E = 0x69F1</div><div class='add'>+0x446F = 0x69F3</div><div class='add'>+0x4470 = 0x69F5</div><div class='add'>+0x4471 = 0x69FE</div><div class='add'>+0x4472 = 0x6A00</div><div class='add'>+0x4473 = 0x6A01</div><div class='add'>+0x4474 = 0x6A03</div><div class='add'>+0x4475 = 0x6A0F</div><div class='add'>+0x4476 = 0x6A11</div><div class='add'>+0x4477 = 0x6A15</div><div class='add'>+0x4478 = 0x6A1A</div><div class='add'>+0x4479 = 0x6A1D</div><div class='add'>+0x447A = 0x6A20</div><div class='add'>+0x447B = 0x6A24</div><div class='add'>+0x447C = 0x6A28</div><div class='add'>+0x447D = 0x6A30</div><div class='add'>+0x447E = 0x6A32</div><div class='add'>+0x4521 = 0x6A34</div><div class='add'>+0x4522 = 0x6A37</div><div class='add'>+0x4523 = 0x6A3B</div><div class='add'>+0x4524 = 0x6A3E</div><div class='add'>+0x4525 = 0x6A3F</div><div class='add'>+0x4526 = 0x6A45</div><div class='add'>+0x4527 = 0x6A46</div><div class='add'>+0x4528 = 0x6A49</div><div class='add'>+0x4529 = 0x6A4A</div><div class='add'>+0x452A = 0x6A4E</div><div class='add'>+0x452B = 0x6A50</div><div class='add'>+0x452C = 0x6A51</div><div class='add'>+0x452D = 0x6A52</div><div class='add'>+0x452E = 0x6A55</div><div class='add'>+0x452F = 0x6A56</div><div class='add'>+0x4530 = 0x6A5B</div><div class='add'>+0x4531 = 0x6A64</div><div class='add'>+0x4532 = 0x6A67</div><div class='add'>+0x4533 = 0x6A6A</div><div class='add'>+0x4534 = 0x6A71</div><div class='add'>+0x4535 = 0x6A73</div><div class='add'>+0x4536 = 0x6A7E</div><div class='add'>+0x4537 = 0x6A81</div><div class='add'>+0x4538 = 0x6A83</div><div class='add'>+0x4539 = 0x6A86</div><div class='add'>+0x453A = 0x6A87</div><div class='add'>+0x453B = 0x6A89</div><div class='add'>+0x453C = 0x6A8B</div><div class='add'>+0x453D = 0x6A91</div><div class='add'>+0x453E = 0x6A9B</div><div class='add'>+0x453F = 0x6A9D</div><div class='add'>+0x4540 = 0x6A9E</div><div class='add'>+0x4541 = 0x6A9F</div><div class='add'>+0x4542 = 0x6AA5</div><div class='add'>+0x4543 = 0x6AAB</div><div class='add'>+0x4544 = 0x6AAF</div><div class='add'>+0x4545 = 0x6AB0</div><div class='add'>+0x4546 = 0x6AB1</div><div class='add'>+0x4547 = 0x6AB4</div><div class='add'>+0x4548 = 0x6ABD</div><div class='add'>+0x4549 = 0x6ABE</div><div class='add'>+0x454A = 0x6ABF</div><div class='add'>+0x454B = 0x6AC6</div><div class='add'>+0x454C = 0x6AC9</div><div class='add'>+0x454D = 0x6AC8</div><div class='add'>+0x454E = 0x6ACC</div><div class='add'>+0x454F = 0x6AD0</div><div class='add'>+0x4550 = 0x6AD4</div><div class='add'>+0x4551 = 0x6AD5</div><div class='add'>+0x4552 = 0x6AD6</div><div class='add'>+0x4553 = 0x6ADC</div><div class='add'>+0x4554 = 0x6ADD</div><div class='add'>+0x4555 = 0x6AE4</div><div class='add'>+0x4556 = 0x6AE7</div><div class='add'>+0x4557 = 0x6AEC</div><div class='add'>+0x4558 = 0x6AF0</div><div class='add'>+0x4559 = 0x6AF1</div><div class='add'>+0x455A = 0x6AF2</div><div class='add'>+0x455B = 0x6AFC</div><div class='add'>+0x455C = 0x6AFD</div><div class='add'>+0x455D = 0x6B02</div><div class='add'>+0x455E = 0x6B03</div><div class='add'>+0x455F = 0x6B06</div><div class='add'>+0x4560 = 0x6B07</div><div class='add'>+0x4561 = 0x6B09</div><div class='add'>+0x4562 = 0x6B0F</div><div class='add'>+0x4563 = 0x6B10</div><div class='add'>+0x4564 = 0x6B11</div><div class='add'>+0x4565 = 0x6B17</div><div class='add'>+0x4566 = 0x6B1B</div><div class='add'>+0x4567 = 0x6B1E</div><div class='add'>+0x4568 = 0x6B24</div><div class='add'>+0x4569 = 0x6B28</div><div class='add'>+0x456A = 0x6B2B</div><div class='add'>+0x456B = 0x6B2C</div><div class='add'>+0x456C = 0x6B2F</div><div class='add'>+0x456D = 0x6B35</div><div class='add'>+0x456E = 0x6B36</div><div class='add'>+0x456F = 0x6B3B</div><div class='add'>+0x4570 = 0x6B3F</div><div class='add'>+0x4571 = 0x6B46</div><div class='add'>+0x4572 = 0x6B4A</div><div class='add'>+0x4573 = 0x6B4D</div><div class='add'>+0x4574 = 0x6B52</div><div class='add'>+0x4575 = 0x6B56</div><div class='add'>+0x4576 = 0x6B58</div><div class='add'>+0x4577 = 0x6B5D</div><div class='add'>+0x4578 = 0x6B60</div><div class='add'>+0x4579 = 0x6B67</div><div class='add'>+0x457A = 0x6B6B</div><div class='add'>+0x457B = 0x6B6E</div><div class='add'>+0x457C = 0x6B70</div><div class='add'>+0x457D = 0x6B75</div><div class='add'>+0x457E = 0x6B7D</div><div class='add'>+0x4621 = 0x6B7E</div><div class='add'>+0x4622 = 0x6B82</div><div class='add'>+0x4623 = 0x6B85</div><div class='add'>+0x4624 = 0x6B97</div><div class='add'>+0x4625 = 0x6B9B</div><div class='add'>+0x4626 = 0x6B9F</div><div class='add'>+0x4627 = 0x6BA0</div><div class='add'>+0x4628 = 0x6BA2</div><div class='add'>+0x4629 = 0x6BA3</div><div class='add'>+0x462A = 0x6BA8</div><div class='add'>+0x462B = 0x6BA9</div><div class='add'>+0x462C = 0x6BAC</div><div class='add'>+0x462D = 0x6BAD</div><div class='add'>+0x462E = 0x6BAE</div><div class='add'>+0x462F = 0x6BB0</div><div class='add'>+0x4630 = 0x6BB8</div><div class='add'>+0x4631 = 0x6BB9</div><div class='add'>+0x4632 = 0x6BBD</div><div class='add'>+0x4633 = 0x6BBE</div><div class='add'>+0x4634 = 0x6BC3</div><div class='add'>+0x4635 = 0x6BC4</div><div class='add'>+0x4636 = 0x6BC9</div><div class='add'>+0x4637 = 0x6BCC</div><div class='add'>+0x4638 = 0x6BD6</div><div class='add'>+0x4639 = 0x6BDA</div><div class='add'>+0x463A = 0x6BE1</div><div class='add'>+0x463B = 0x6BE3</div><div class='add'>+0x463C = 0x6BE6</div><div class='add'>+0x463D = 0x6BE7</div><div class='add'>+0x463E = 0x6BEE</div><div class='add'>+0x463F = 0x6BF1</div><div class='add'>+0x4640 = 0x6BF7</div><div class='add'>+0x4641 = 0x6BF9</div><div class='add'>+0x4642 = 0x6BFF</div><div class='add'>+0x4643 = 0x6C02</div><div class='add'>+0x4644 = 0x6C04</div><div class='add'>+0x4645 = 0x6C05</div><div class='add'>+0x4646 = 0x6C09</div><div class='add'>+0x4647 = 0x6C0D</div><div class='add'>+0x4648 = 0x6C0E</div><div class='add'>+0x4649 = 0x6C10</div><div class='add'>+0x464A = 0x6C12</div><div class='add'>+0x464B = 0x6C19</div><div class='add'>+0x464C = 0x6C1F</div><div class='add'>+0x464D = 0x6C26</div><div class='add'>+0x464E = 0x6C27</div><div class='add'>+0x464F = 0x6C28</div><div class='add'>+0x4650 = 0x6C2C</div><div class='add'>+0x4651 = 0x6C2E</div><div class='add'>+0x4652 = 0x6C33</div><div class='add'>+0x4653 = 0x6C35</div><div class='add'>+0x4654 = 0x6C36</div><div class='add'>+0x4655 = 0x6C3A</div><div class='add'>+0x4656 = 0x6C3B</div><div class='add'>+0x4657 = 0x6C3F</div><div class='add'>+0x4658 = 0x6C4A</div><div class='add'>+0x4659 = 0x6C4B</div><div class='add'>+0x465A = 0x6C4D</div><div class='add'>+0x465B = 0x6C4F</div><div class='add'>+0x465C = 0x6C52</div><div class='add'>+0x465D = 0x6C54</div><div class='add'>+0x465E = 0x6C59</div><div class='add'>+0x465F = 0x6C5B</div><div class='add'>+0x4660 = 0x6C5C</div><div class='add'>+0x4661 = 0x6C6B</div><div class='add'>+0x4662 = 0x6C6D</div><div class='add'>+0x4663 = 0x6C6F</div><div class='add'>+0x4664 = 0x6C74</div><div class='add'>+0x4665 = 0x6C76</div><div class='add'>+0x4666 = 0x6C78</div><div class='add'>+0x4667 = 0x6C79</div><div class='add'>+0x4668 = 0x6C7B</div><div class='add'>+0x4669 = 0x6C85</div><div class='add'>+0x466A = 0x6C86</div><div class='add'>+0x466B = 0x6C87</div><div class='add'>+0x466C = 0x6C89</div><div class='add'>+0x466D = 0x6C94</div><div class='add'>+0x466E = 0x6C95</div><div class='add'>+0x466F = 0x6C97</div><div class='add'>+0x4670 = 0x6C98</div><div class='add'>+0x4671 = 0x6C9C</div><div class='add'>+0x4672 = 0x6C9F</div><div class='add'>+0x4673 = 0x6CB0</div><div class='add'>+0x4674 = 0x6CB2</div><div class='add'>+0x4675 = 0x6CB4</div><div class='add'>+0x4676 = 0x6CC2</div><div class='add'>+0x4677 = 0x6CC6</div><div class='add'>+0x4678 = 0x6CCD</div><div class='add'>+0x4679 = 0x6CCF</div><div class='add'>+0x467A = 0x6CD0</div><div class='add'>+0x467B = 0x6CD1</div><div class='add'>+0x467C = 0x6CD2</div><div class='add'>+0x467D = 0x6CD4</div><div class='add'>+0x467E = 0x6CD6</div><div class='add'>+0x4721 = 0x6CDA</div><div class='add'>+0x4722 = 0x6CDC</div><div class='add'>+0x4723 = 0x6CE0</div><div class='add'>+0x4724 = 0x6CE7</div><div class='add'>+0x4725 = 0x6CE9</div><div class='add'>+0x4726 = 0x6CEB</div><div class='add'>+0x4727 = 0x6CEC</div><div class='add'>+0x4728 = 0x6CEE</div><div class='add'>+0x4729 = 0x6CF2</div><div class='add'>+0x472A = 0x6CF4</div><div class='add'>+0x472B = 0x6D04</div><div class='add'>+0x472C = 0x6D07</div><div class='add'>+0x472D = 0x6D0A</div><div class='add'>+0x472E = 0x6D0E</div><div class='add'>+0x472F = 0x6D0F</div><div class='add'>+0x4730 = 0x6D11</div><div class='add'>+0x4731 = 0x6D13</div><div class='add'>+0x4732 = 0x6D1A</div><div class='add'>+0x4733 = 0x6D26</div><div class='add'>+0x4734 = 0x6D27</div><div class='add'>+0x4735 = 0x6D28</div><div class='add'>+0x4736 = 0x6C67</div><div class='add'>+0x4737 = 0x6D2E</div><div class='add'>+0x4738 = 0x6D2F</div><div class='add'>+0x4739 = 0x6D31</div><div class='add'>+0x473A = 0x6D39</div><div class='add'>+0x473B = 0x6D3C</div><div class='add'>+0x473C = 0x6D3F</div><div class='add'>+0x473D = 0x6D57</div><div class='add'>+0x473E = 0x6D5E</div><div class='add'>+0x473F = 0x6D5F</div><div class='add'>+0x4740 = 0x6D61</div><div class='add'>+0x4741 = 0x6D65</div><div class='add'>+0x4742 = 0x6D67</div><div class='add'>+0x4743 = 0x6D6F</div><div class='add'>+0x4744 = 0x6D70</div><div class='add'>+0x4745 = 0x6D7C</div><div class='add'>+0x4746 = 0x6D82</div><div class='add'>+0x4747 = 0x6D87</div><div class='add'>+0x4748 = 0x6D91</div><div class='add'>+0x4749 = 0x6D92</div><div class='add'>+0x474A = 0x6D94</div><div class='add'>+0x474B = 0x6D96</div><div class='add'>+0x474C = 0x6D97</div><div class='add'>+0x474D = 0x6D98</div><div class='add'>+0x474E = 0x6DAA</div><div class='add'>+0x474F = 0x6DAC</div><div class='add'>+0x4750 = 0x6DB4</div><div class='add'>+0x4751 = 0x6DB7</div><div class='add'>+0x4752 = 0x6DB9</div><div class='add'>+0x4753 = 0x6DBD</div><div class='add'>+0x4754 = 0x6DBF</div><div class='add'>+0x4755 = 0x6DC4</div><div class='add'>+0x4756 = 0x6DC8</div><div class='add'>+0x4757 = 0x6DCA</div><div class='add'>+0x4758 = 0x6DCE</div><div class='add'>+0x4759 = 0x6DCF</div><div class='add'>+0x475A = 0x6DD6</div><div class='add'>+0x475B = 0x6DDB</div><div class='add'>+0x475C = 0x6DDD</div><div class='add'>+0x475D = 0x6DDF</div><div class='add'>+0x475E = 0x6DE0</div><div class='add'>+0x475F = 0x6DE2</div><div class='add'>+0x4760 = 0x6DE5</div><div class='add'>+0x4761 = 0x6DE9</div><div class='add'>+0x4762 = 0x6DEF</div><div class='add'>+0x4763 = 0x6DF0</div><div class='add'>+0x4764 = 0x6DF4</div><div class='add'>+0x4765 = 0x6DF6</div><div class='add'>+0x4766 = 0x6DFC</div><div class='add'>+0x4767 = 0x6E00</div><div class='add'>+0x4768 = 0x6E04</div><div class='add'>+0x4769 = 0x6E1E</div><div class='add'>+0x476A = 0x6E22</div><div class='add'>+0x476B = 0x6E27</div><div class='add'>+0x476C = 0x6E32</div><div class='add'>+0x476D = 0x6E36</div><div class='add'>+0x476E = 0x6E39</div><div class='add'>+0x476F = 0x6E3B</div><div class='add'>+0x4770 = 0x6E3C</div><div class='add'>+0x4771 = 0x6E44</div><div class='add'>+0x4772 = 0x6E45</div><div class='add'>+0x4773 = 0x6E48</div><div class='add'>+0x4774 = 0x6E49</div><div class='add'>+0x4775 = 0x6E4B</div><div class='add'>+0x4776 = 0x6E4F</div><div class='add'>+0x4777 = 0x6E51</div><div class='add'>+0x4778 = 0x6E52</div><div class='add'>+0x4779 = 0x6E53</div><div class='add'>+0x477A = 0x6E54</div><div class='add'>+0x477B = 0x6E57</div><div class='add'>+0x477C = 0x6E5C</div><div class='add'>+0x477D = 0x6E5D</div><div class='add'>+0x477E = 0x6E5E</div><div class='add'>+0x4821 = 0x6E62</div><div class='add'>+0x4822 = 0x6E63</div><div class='add'>+0x4823 = 0x6E68</div><div class='add'>+0x4824 = 0x6E73</div><div class='add'>+0x4825 = 0x6E7B</div><div class='add'>+0x4826 = 0x6E7D</div><div class='add'>+0x4827 = 0x6E8D</div><div class='add'>+0x4828 = 0x6E93</div><div class='add'>+0x4829 = 0x6E99</div><div class='add'>+0x482A = 0x6EA0</div><div class='add'>+0x482B = 0x6EA7</div><div class='add'>+0x482C = 0x6EAD</div><div class='add'>+0x482D = 0x6EAE</div><div class='add'>+0x482E = 0x6EB1</div><div class='add'>+0x482F = 0x6EB3</div><div class='add'>+0x4830 = 0x6EBB</div><div class='add'>+0x4831 = 0x6EBF</div><div class='add'>+0x4832 = 0x6EC0</div><div class='add'>+0x4833 = 0x6EC1</div><div class='add'>+0x4834 = 0x6EC3</div><div class='add'>+0x4835 = 0x6EC7</div><div class='add'>+0x4836 = 0x6EC8</div><div class='add'>+0x4837 = 0x6ECA</div><div class='add'>+0x4838 = 0x6ECD</div><div class='add'>+0x4839 = 0x6ECE</div><div class='add'>+0x483A = 0x6ECF</div><div class='add'>+0x483B = 0x6EEB</div><div class='add'>+0x483C = 0x6EED</div><div class='add'>+0x483D = 0x6EEE</div><div class='add'>+0x483E = 0x6EF9</div><div class='add'>+0x483F = 0x6EFB</div><div class='add'>+0x4840 = 0x6EFD</div><div class='add'>+0x4841 = 0x6F04</div><div class='add'>+0x4842 = 0x6F08</div><div class='add'>+0x4843 = 0x6F0A</div><div class='add'>+0x4844 = 0x6F0C</div><div class='add'>+0x4845 = 0x6F0D</div><div class='add'>+0x4846 = 0x6F16</div><div class='add'>+0x4847 = 0x6F18</div><div class='add'>+0x4848 = 0x6F1A</div><div class='add'>+0x4849 = 0x6F1B</div><div class='add'>+0x484A = 0x6F26</div><div class='add'>+0x484B = 0x6F29</div><div class='add'>+0x484C = 0x6F2A</div><div class='add'>+0x484D = 0x6F2F</div><div class='add'>+0x484E = 0x6F30</div><div class='add'>+0x484F = 0x6F33</div><div class='add'>+0x4850 = 0x6F36</div><div class='add'>+0x4851 = 0x6F3B</div><div class='add'>+0x4852 = 0x6F3C</div><div class='add'>+0x4853 = 0x6F2D</div><div class='add'>+0x4854 = 0x6F4F</div><div class='add'>+0x4855 = 0x6F51</div><div class='add'>+0x4856 = 0x6F52</div><div class='add'>+0x4857 = 0x6F53</div><div class='add'>+0x4858 = 0x6F57</div><div class='add'>+0x4859 = 0x6F59</div><div class='add'>+0x485A = 0x6F5A</div><div class='add'>+0x485B = 0x6F5D</div><div class='add'>+0x485C = 0x6F5E</div><div class='add'>+0x485D = 0x6F61</div><div class='add'>+0x485E = 0x6F62</div><div class='add'>+0x485F = 0x6F68</div><div class='add'>+0x4860 = 0x6F6C</div><div class='add'>+0x4861 = 0x6F7D</div><div class='add'>+0x4862 = 0x6F7E</div><div class='add'>+0x4863 = 0x6F83</div><div class='add'>+0x4864 = 0x6F87</div><div class='add'>+0x4865 = 0x6F88</div><div class='add'>+0x4866 = 0x6F8B</div><div class='add'>+0x4867 = 0x6F8C</div><div class='add'>+0x4868 = 0x6F8D</div><div class='add'>+0x4869 = 0x6F90</div><div class='add'>+0x486A = 0x6F92</div><div class='add'>+0x486B = 0x6F93</div><div class='add'>+0x486C = 0x6F94</div><div class='add'>+0x486D = 0x6F96</div><div class='add'>+0x486E = 0x6F9A</div><div class='add'>+0x486F = 0x6F9F</div><div class='add'>+0x4870 = 0x6FA0</div><div class='add'>+0x4871 = 0x6FA5</div><div class='add'>+0x4872 = 0x6FA6</div><div class='add'>+0x4873 = 0x6FA7</div><div class='add'>+0x4874 = 0x6FA8</div><div class='add'>+0x4875 = 0x6FAE</div><div class='add'>+0x4876 = 0x6FAF</div><div class='add'>+0x4877 = 0x6FB0</div><div class='add'>+0x4878 = 0x6FB5</div><div class='add'>+0x4879 = 0x6FB6</div><div class='add'>+0x487A = 0x6FBC</div><div class='add'>+0x487B = 0x6FC5</div><div class='add'>+0x487C = 0x6FC7</div><div class='add'>+0x487D = 0x6FC8</div><div class='add'>+0x487E = 0x6FCA</div><div class='add'>+0x4921 = 0x6FDA</div><div class='add'>+0x4922 = 0x6FDE</div><div class='add'>+0x4923 = 0x6FE8</div><div class='add'>+0x4924 = 0x6FE9</div><div class='add'>+0x4925 = 0x6FF0</div><div class='add'>+0x4926 = 0x6FF5</div><div class='add'>+0x4927 = 0x6FF9</div><div class='add'>+0x4928 = 0x6FFC</div><div class='add'>+0x4929 = 0x6FFD</div><div class='add'>+0x492A = 0x7000</div><div class='add'>+0x492B = 0x7005</div><div class='add'>+0x492C = 0x7006</div><div class='add'>+0x492D = 0x7007</div><div class='add'>+0x492E = 0x700D</div><div class='add'>+0x492F = 0x7017</div><div class='add'>+0x4930 = 0x7020</div><div class='add'>+0x4931 = 0x7023</div><div class='add'>+0x4932 = 0x702F</div><div class='add'>+0x4933 = 0x7034</div><div class='add'>+0x4934 = 0x7037</div><div class='add'>+0x4935 = 0x7039</div><div class='add'>+0x4936 = 0x703C</div><div class='add'>+0x4937 = 0x7043</div><div class='add'>+0x4938 = 0x7044</div><div class='add'>+0x4939 = 0x7048</div><div class='add'>+0x493A = 0x7049</div><div class='add'>+0x493B = 0x704A</div><div class='add'>+0x493C = 0x704B</div><div class='add'>+0x493D = 0x7054</div><div class='add'>+0x493E = 0x7055</div><div class='add'>+0x493F = 0x705D</div><div class='add'>+0x4940 = 0x705E</div><div class='add'>+0x4941 = 0x704E</div><div class='add'>+0x4942 = 0x7064</div><div class='add'>+0x4943 = 0x7065</div><div class='add'>+0x4944 = 0x706C</div><div class='add'>+0x4945 = 0x706E</div><div class='add'>+0x4946 = 0x7075</div><div class='add'>+0x4947 = 0x7076</div><div class='add'>+0x4948 = 0x707E</div><div class='add'>+0x4949 = 0x7081</div><div class='add'>+0x494A = 0x7085</div><div class='add'>+0x494B = 0x7086</div><div class='add'>+0x494C = 0x7094</div><div class='add'>+0x494D = 0x7095</div><div class='add'>+0x494E = 0x7096</div><div class='add'>+0x494F = 0x7097</div><div class='add'>+0x4950 = 0x7098</div><div class='add'>+0x4951 = 0x709B</div><div class='add'>+0x4952 = 0x70A4</div><div class='add'>+0x4953 = 0x70AB</div><div class='add'>+0x4954 = 0x70B0</div><div class='add'>+0x4955 = 0x70B1</div><div class='add'>+0x4956 = 0x70B4</div><div class='add'>+0x4957 = 0x70B7</div><div class='add'>+0x4958 = 0x70CA</div><div class='add'>+0x4959 = 0x70D1</div><div class='add'>+0x495A = 0x70D3</div><div class='add'>+0x495B = 0x70D4</div><div class='add'>+0x495C = 0x70D5</div><div class='add'>+0x495D = 0x70D6</div><div class='add'>+0x495E = 0x70D8</div><div class='add'>+0x495F = 0x70DC</div><div class='add'>+0x4960 = 0x70E4</div><div class='add'>+0x4961 = 0x70FA</div><div class='add'>+0x4962 = 0x7103</div><div class='add'>+0x4963 = 0x7104</div><div class='add'>+0x4964 = 0x7105</div><div class='add'>+0x4965 = 0x7106</div><div class='add'>+0x4966 = 0x7107</div><div class='add'>+0x4967 = 0x710B</div><div class='add'>+0x4968 = 0x710C</div><div class='add'>+0x4969 = 0x710F</div><div class='add'>+0x496A = 0x711E</div><div class='add'>+0x496B = 0x7120</div><div class='add'>+0x496C = 0x712B</div><div class='add'>+0x496D = 0x712D</div><div class='add'>+0x496E = 0x712F</div><div class='add'>+0x496F = 0x7130</div><div class='add'>+0x4970 = 0x7131</div><div class='add'>+0x4971 = 0x7138</div><div class='add'>+0x4972 = 0x7141</div><div class='add'>+0x4973 = 0x7145</div><div class='add'>+0x4974 = 0x7146</div><div class='add'>+0x4975 = 0x7147</div><div class='add'>+0x4976 = 0x714A</div><div class='add'>+0x4977 = 0x714B</div><div class='add'>+0x4978 = 0x7150</div><div class='add'>+0x4979 = 0x7152</div><div class='add'>+0x497A = 0x7157</div><div class='add'>+0x497B = 0x715A</div><div class='add'>+0x497C = 0x715C</div><div class='add'>+0x497D = 0x715E</div><div class='add'>+0x497E = 0x7160</div><div class='add'>+0x4A21 = 0x7168</div><div class='add'>+0x4A22 = 0x7179</div><div class='add'>+0x4A23 = 0x7180</div><div class='add'>+0x4A24 = 0x7185</div><div class='add'>+0x4A25 = 0x7187</div><div class='add'>+0x4A26 = 0x718C</div><div class='add'>+0x4A27 = 0x7192</div><div class='add'>+0x4A28 = 0x719A</div><div class='add'>+0x4A29 = 0x719B</div><div class='add'>+0x4A2A = 0x71A0</div><div class='add'>+0x4A2B = 0x71A2</div><div class='add'>+0x4A2C = 0x71AF</div><div class='add'>+0x4A2D = 0x71B0</div><div class='add'>+0x4A2E = 0x71B2</div><div class='add'>+0x4A2F = 0x71B3</div><div class='add'>+0x4A30 = 0x71BA</div><div class='add'>+0x4A31 = 0x71BF</div><div class='add'>+0x4A32 = 0x71C0</div><div class='add'>+0x4A33 = 0x71C1</div><div class='add'>+0x4A34 = 0x71C4</div><div class='add'>+0x4A35 = 0x71CB</div><div class='add'>+0x4A36 = 0x71CC</div><div class='add'>+0x4A37 = 0x71D3</div><div class='add'>+0x4A38 = 0x71D6</div><div class='add'>+0x4A39 = 0x71D9</div><div class='add'>+0x4A3A = 0x71DA</div><div class='add'>+0x4A3B = 0x71DC</div><div class='add'>+0x4A3C = 0x71F8</div><div class='add'>+0x4A3D = 0x71FE</div><div class='add'>+0x4A3E = 0x7200</div><div class='add'>+0x4A3F = 0x7207</div><div class='add'>+0x4A40 = 0x7208</div><div class='add'>+0x4A41 = 0x7209</div><div class='add'>+0x4A42 = 0x7213</div><div class='add'>+0x4A43 = 0x7217</div><div class='add'>+0x4A44 = 0x721A</div><div class='add'>+0x4A45 = 0x721D</div><div class='add'>+0x4A46 = 0x721F</div><div class='add'>+0x4A47 = 0x7224</div><div class='add'>+0x4A48 = 0x722B</div><div class='add'>+0x4A49 = 0x722F</div><div class='add'>+0x4A4A = 0x7234</div><div class='add'>+0x4A4B = 0x7238</div><div class='add'>+0x4A4C = 0x7239</div><div class='add'>+0x4A4D = 0x7241</div><div class='add'>+0x4A4E = 0x7242</div><div class='add'>+0x4A4F = 0x7243</div><div class='add'>+0x4A50 = 0x7245</div><div class='add'>+0x4A51 = 0x724E</div><div class='add'>+0x4A52 = 0x724F</div><div class='add'>+0x4A53 = 0x7250</div><div class='add'>+0x4A54 = 0x7253</div><div class='add'>+0x4A55 = 0x7255</div><div class='add'>+0x4A56 = 0x7256</div><div class='add'>+0x4A57 = 0x725A</div><div class='add'>+0x4A58 = 0x725C</div><div class='add'>+0x4A59 = 0x725E</div><div class='add'>+0x4A5A = 0x7260</div><div class='add'>+0x4A5B = 0x7263</div><div class='add'>+0x4A5C = 0x7268</div><div class='add'>+0x4A5D = 0x726B</div><div class='add'>+0x4A5E = 0x726E</div><div class='add'>+0x4A5F = 0x726F</div><div class='add'>+0x4A60 = 0x7271</div><div class='add'>+0x4A61 = 0x7277</div><div class='add'>+0x4A62 = 0x7278</div><div class='add'>+0x4A63 = 0x727B</div><div class='add'>+0x4A64 = 0x727C</div><div class='add'>+0x4A65 = 0x727F</div><div class='add'>+0x4A66 = 0x7284</div><div class='add'>+0x4A67 = 0x7289</div><div class='add'>+0x4A68 = 0x728D</div><div class='add'>+0x4A69 = 0x728E</div><div class='add'>+0x4A6A = 0x7293</div><div class='add'>+0x4A6B = 0x729B</div><div class='add'>+0x4A6C = 0x72A8</div><div class='add'>+0x4A6D = 0x72AD</div><div class='add'>+0x4A6E = 0x72AE</div><div class='add'>+0x4A6F = 0x72B1</div><div class='add'>+0x4A70 = 0x72B4</div><div class='add'>+0x4A71 = 0x72BE</div><div class='add'>+0x4A72 = 0x72C1</div><div class='add'>+0x4A73 = 0x72C7</div><div class='add'>+0x4A74 = 0x72C9</div><div class='add'>+0x4A75 = 0x72CC</div><div class='add'>+0x4A76 = 0x72D5</div><div class='add'>+0x4A77 = 0x72D6</div><div class='add'>+0x4A78 = 0x72D8</div><div class='add'>+0x4A79 = 0x72DF</div><div class='add'>+0x4A7A = 0x72E5</div><div class='add'>+0x4A7B = 0x72F3</div><div class='add'>+0x4A7C = 0x72F4</div><div class='add'>+0x4A7D = 0x72FA</div><div class='add'>+0x4A7E = 0x72FB</div><div class='add'>+0x4B21 = 0x72FE</div><div class='add'>+0x4B22 = 0x7302</div><div class='add'>+0x4B23 = 0x7304</div><div class='add'>+0x4B24 = 0x7305</div><div class='add'>+0x4B25 = 0x7307</div><div class='add'>+0x4B26 = 0x730B</div><div class='add'>+0x4B27 = 0x730D</div><div class='add'>+0x4B28 = 0x7312</div><div class='add'>+0x4B29 = 0x7313</div><div class='add'>+0x4B2A = 0x7318</div><div class='add'>+0x4B2B = 0x7319</div><div class='add'>+0x4B2C = 0x731E</div><div class='add'>+0x4B2D = 0x7322</div><div class='add'>+0x4B2E = 0x7324</div><div class='add'>+0x4B2F = 0x7327</div><div class='add'>+0x4B30 = 0x7328</div><div class='add'>+0x4B31 = 0x732C</div><div class='add'>+0x4B32 = 0x7331</div><div class='add'>+0x4B33 = 0x7332</div><div class='add'>+0x4B34 = 0x7335</div><div class='add'>+0x4B35 = 0x733A</div><div class='add'>+0x4B36 = 0x733B</div><div class='add'>+0x4B37 = 0x733D</div><div class='add'>+0x4B38 = 0x7343</div><div class='add'>+0x4B39 = 0x734D</div><div class='add'>+0x4B3A = 0x7350</div><div class='add'>+0x4B3B = 0x7352</div><div class='add'>+0x4B3C = 0x7356</div><div class='add'>+0x4B3D = 0x7358</div><div class='add'>+0x4B3E = 0x735D</div><div class='add'>+0x4B3F = 0x735E</div><div class='add'>+0x4B40 = 0x735F</div><div class='add'>+0x4B41 = 0x7360</div><div class='add'>+0x4B42 = 0x7366</div><div class='add'>+0x4B43 = 0x7367</div><div class='add'>+0x4B44 = 0x7369</div><div class='add'>+0x4B45 = 0x736B</div><div class='add'>+0x4B46 = 0x736C</div><div class='add'>+0x4B47 = 0x736E</div><div class='add'>+0x4B48 = 0x736F</div><div class='add'>+0x4B49 = 0x7371</div><div class='add'>+0x4B4A = 0x7377</div><div class='add'>+0x4B4B = 0x7379</div><div class='add'>+0x4B4C = 0x737C</div><div class='add'>+0x4B4D = 0x7380</div><div class='add'>+0x4B4E = 0x7381</div><div class='add'>+0x4B4F = 0x7383</div><div class='add'>+0x4B50 = 0x7385</div><div class='add'>+0x4B51 = 0x7386</div><div class='add'>+0x4B52 = 0x738E</div><div class='add'>+0x4B53 = 0x7390</div><div class='add'>+0x4B54 = 0x7393</div><div class='add'>+0x4B55 = 0x7395</div><div class='add'>+0x4B56 = 0x7397</div><div class='add'>+0x4B57 = 0x7398</div><div class='add'>+0x4B58 = 0x739C</div><div class='add'>+0x4B59 = 0x739E</div><div class='add'>+0x4B5A = 0x739F</div><div class='add'>+0x4B5B = 0x73A0</div><div class='add'>+0x4B5C = 0x73A2</div><div class='add'>+0x4B5D = 0x73A5</div><div class='add'>+0x4B5E = 0x73A6</div><div class='add'>+0x4B5F = 0x73AA</div><div class='add'>+0x4B60 = 0x73AB</div><div class='add'>+0x4B61 = 0x73AD</div><div class='add'>+0x4B62 = 0x73B5</div><div class='add'>+0x4B63 = 0x73B7</div><div class='add'>+0x4B64 = 0x73B9</div><div class='add'>+0x4B65 = 0x73BC</div><div class='add'>+0x4B66 = 0x73BD</div><div class='add'>+0x4B67 = 0x73BF</div><div class='add'>+0x4B68 = 0x73C5</div><div class='add'>+0x4B69 = 0x73C6</div><div class='add'>+0x4B6A = 0x73C9</div><div class='add'>+0x4B6B = 0x73CB</div><div class='add'>+0x4B6C = 0x73CC</div><div class='add'>+0x4B6D = 0x73CF</div><div class='add'>+0x4B6E = 0x73D2</div><div class='add'>+0x4B6F = 0x73D3</div><div class='add'>+0x4B70 = 0x73D6</div><div class='add'>+0x4B71 = 0x73D9</div><div class='add'>+0x4B72 = 0x73DD</div><div class='add'>+0x4B73 = 0x73E1</div><div class='add'>+0x4B74 = 0x73E3</div><div class='add'>+0x4B75 = 0x73E6</div><div class='add'>+0x4B76 = 0x73E7</div><div class='add'>+0x4B77 = 0x73E9</div><div class='add'>+0x4B78 = 0x73F4</div><div class='add'>+0x4B79 = 0x73F5</div><div class='add'>+0x4B7A = 0x73F7</div><div class='add'>+0x4B7B = 0x73F9</div><div class='add'>+0x4B7C = 0x73FA</div><div class='add'>+0x4B7D = 0x73FB</div><div class='add'>+0x4B7E = 0x73FD</div><div class='add'>+0x4C21 = 0x73FF</div><div class='add'>+0x4C22 = 0x7400</div><div class='add'>+0x4C23 = 0x7401</div><div class='add'>+0x4C24 = 0x7404</div><div class='add'>+0x4C25 = 0x7407</div><div class='add'>+0x4C26 = 0x740A</div><div class='add'>+0x4C27 = 0x7411</div><div class='add'>+0x4C28 = 0x741A</div><div class='add'>+0x4C29 = 0x741B</div><div class='add'>+0x4C2A = 0x7424</div><div class='add'>+0x4C2B = 0x7426</div><div class='add'>+0x4C2C = 0x7428</div><div class='add'>+0x4C2D = 0x7429</div><div class='add'>+0x4C2E = 0x742A</div><div class='add'>+0x4C2F = 0x742B</div><div class='add'>+0x4C30 = 0x742C</div><div class='add'>+0x4C31 = 0x742D</div><div class='add'>+0x4C32 = 0x742E</div><div class='add'>+0x4C33 = 0x742F</div><div class='add'>+0x4C34 = 0x7430</div><div class='add'>+0x4C35 = 0x7431</div><div class='add'>+0x4C36 = 0x7439</div><div class='add'>+0x4C37 = 0x7440</div><div class='add'>+0x4C38 = 0x7443</div><div class='add'>+0x4C39 = 0x7444</div><div class='add'>+0x4C3A = 0x7446</div><div class='add'>+0x4C3B = 0x7447</div><div class='add'>+0x4C3C = 0x744B</div><div class='add'>+0x4C3D = 0x744D</div><div class='add'>+0x4C3E = 0x7451</div><div class='add'>+0x4C3F = 0x7452</div><div class='add'>+0x4C40 = 0x7457</div><div class='add'>+0x4C41 = 0x745D</div><div class='add'>+0x4C42 = 0x7462</div><div class='add'>+0x4C43 = 0x7466</div><div class='add'>+0x4C44 = 0x7467</div><div class='add'>+0x4C45 = 0x7468</div><div class='add'>+0x4C46 = 0x746B</div><div class='add'>+0x4C47 = 0x746D</div><div class='add'>+0x4C48 = 0x746E</div><div class='add'>+0x4C49 = 0x7471</div><div class='add'>+0x4C4A = 0x7472</div><div class='add'>+0x4C4B = 0x7480</div><div class='add'>+0x4C4C = 0x7481</div><div class='add'>+0x4C4D = 0x7485</div><div class='add'>+0x4C4E = 0x7486</div><div class='add'>+0x4C4F = 0x7487</div><div class='add'>+0x4C50 = 0x7489</div><div class='add'>+0x4C51 = 0x748F</div><div class='add'>+0x4C52 = 0x7490</div><div class='add'>+0x4C53 = 0x7491</div><div class='add'>+0x4C54 = 0x7492</div><div class='add'>+0x4C55 = 0x7498</div><div class='add'>+0x4C56 = 0x7499</div><div class='add'>+0x4C57 = 0x749A</div><div class='add'>+0x4C58 = 0x749C</div><div class='add'>+0x4C59 = 0x749F</div><div class='add'>+0x4C5A = 0x74A0</div><div class='add'>+0x4C5B = 0x74A1</div><div class='add'>+0x4C5C = 0x74A3</div><div class='add'>+0x4C5D = 0x74A6</div><div class='add'>+0x4C5E = 0x74A8</div><div class='add'>+0x4C5F = 0x74A9</div><div class='add'>+0x4C60 = 0x74AA</div><div class='add'>+0x4C61 = 0x74AB</div><div class='add'>+0x4C62 = 0x74AE</div><div class='add'>+0x4C63 = 0x74AF</div><div class='add'>+0x4C64 = 0x74B1</div><div class='add'>+0x4C65 = 0x74B2</div><div class='add'>+0x4C66 = 0x74B5</div><div class='add'>+0x4C67 = 0x74B9</div><div class='add'>+0x4C68 = 0x74BB</div><div class='add'>+0x4C69 = 0x74BF</div><div class='add'>+0x4C6A = 0x74C8</div><div class='add'>+0x4C6B = 0x74C9</div><div class='add'>+0x4C6C = 0x74CC</div><div class='add'>+0x4C6D = 0x74D0</div><div class='add'>+0x4C6E = 0x74D3</div><div class='add'>+0x4C6F = 0x74D8</div><div class='add'>+0x4C70 = 0x74DA</div><div class='add'>+0x4C71 = 0x74DB</div><div class='add'>+0x4C72 = 0x74DE</div><div class='add'>+0x4C73 = 0x74DF</div><div class='add'>+0x4C74 = 0x74E4</div><div class='add'>+0x4C75 = 0x74E8</div><div class='add'>+0x4C76 = 0x74EA</div><div class='add'>+0x4C77 = 0x74EB</div><div class='add'>+0x4C78 = 0x74EF</div><div class='add'>+0x4C79 = 0x74F4</div><div class='add'>+0x4C7A = 0x74FA</div><div class='add'>+0x4C7B = 0x74FB</div><div class='add'>+0x4C7C = 0x74FC</div><div class='add'>+0x4C7D = 0x74FF</div><div class='add'>+0x4C7E = 0x7506</div><div class='add'>+0x4D21 = 0x7512</div><div class='add'>+0x4D22 = 0x7516</div><div class='add'>+0x4D23 = 0x7517</div><div class='add'>+0x4D24 = 0x7520</div><div class='add'>+0x4D25 = 0x7521</div><div class='add'>+0x4D26 = 0x7524</div><div class='add'>+0x4D27 = 0x7527</div><div class='add'>+0x4D28 = 0x7529</div><div class='add'>+0x4D29 = 0x752A</div><div class='add'>+0x4D2A = 0x752F</div><div class='add'>+0x4D2B = 0x7536</div><div class='add'>+0x4D2C = 0x7539</div><div class='add'>+0x4D2D = 0x753D</div><div class='add'>+0x4D2E = 0x753E</div><div class='add'>+0x4D2F = 0x753F</div><div class='add'>+0x4D30 = 0x7540</div><div class='add'>+0x4D31 = 0x7543</div><div class='add'>+0x4D32 = 0x7547</div><div class='add'>+0x4D33 = 0x7548</div><div class='add'>+0x4D34 = 0x754E</div><div class='add'>+0x4D35 = 0x7550</div><div class='add'>+0x4D36 = 0x7552</div><div class='add'>+0x4D37 = 0x7557</div><div class='add'>+0x4D38 = 0x755E</div><div class='add'>+0x4D39 = 0x755F</div><div class='add'>+0x4D3A = 0x7561</div><div class='add'>+0x4D3B = 0x756F</div><div class='add'>+0x4D3C = 0x7571</div><div class='add'>+0x4D3D = 0x7579</div><div class='add'>+0x4D3E = 0x757A</div><div class='add'>+0x4D3F = 0x757B</div><div class='add'>+0x4D40 = 0x757C</div><div class='add'>+0x4D41 = 0x757D</div><div class='add'>+0x4D42 = 0x757E</div><div class='add'>+0x4D43 = 0x7581</div><div class='add'>+0x4D44 = 0x7585</div><div class='add'>+0x4D45 = 0x7590</div><div class='add'>+0x4D46 = 0x7592</div><div class='add'>+0x4D47 = 0x7593</div><div class='add'>+0x4D48 = 0x7595</div><div class='add'>+0x4D49 = 0x7599</div><div class='add'>+0x4D4A = 0x759C</div><div class='add'>+0x4D4B = 0x75A2</div><div class='add'>+0x4D4C = 0x75A4</div><div class='add'>+0x4D4D = 0x75B4</div><div class='add'>+0x4D4E = 0x75BA</div><div class='add'>+0x4D4F = 0x75BF</div><div class='add'>+0x4D50 = 0x75C0</div><div class='add'>+0x4D51 = 0x75C1</div><div class='add'>+0x4D52 = 0x75C4</div><div class='add'>+0x4D53 = 0x75C6</div><div class='add'>+0x4D54 = 0x75CC</div><div class='add'>+0x4D55 = 0x75CE</div><div class='add'>+0x4D56 = 0x75CF</div><div class='add'>+0x4D57 = 0x75D7</div><div class='add'>+0x4D58 = 0x75DC</div><div class='add'>+0x4D59 = 0x75DF</div><div class='add'>+0x4D5A = 0x75E0</div><div class='add'>+0x4D5B = 0x75E1</div><div class='add'>+0x4D5C = 0x75E4</div><div class='add'>+0x4D5D = 0x75E7</div><div class='add'>+0x4D5E = 0x75EC</div><div class='add'>+0x4D5F = 0x75EE</div><div class='add'>+0x4D60 = 0x75EF</div><div class='add'>+0x4D61 = 0x75F1</div><div class='add'>+0x4D62 = 0x75F9</div><div class='add'>+0x4D63 = 0x7600</div><div class='add'>+0x4D64 = 0x7602</div><div class='add'>+0x4D65 = 0x7603</div><div class='add'>+0x4D66 = 0x7604</div><div class='add'>+0x4D67 = 0x7607</div><div class='add'>+0x4D68 = 0x7608</div><div class='add'>+0x4D69 = 0x760A</div><div class='add'>+0x4D6A = 0x760C</div><div class='add'>+0x4D6B = 0x760F</div><div class='add'>+0x4D6C = 0x7612</div><div class='add'>+0x4D6D = 0x7613</div><div class='add'>+0x4D6E = 0x7615</div><div class='add'>+0x4D6F = 0x7616</div><div class='add'>+0x4D70 = 0x7619</div><div class='add'>+0x4D71 = 0x761B</div><div class='add'>+0x4D72 = 0x761C</div><div class='add'>+0x4D73 = 0x761D</div><div class='add'>+0x4D74 = 0x761E</div><div class='add'>+0x4D75 = 0x7623</div><div class='add'>+0x4D76 = 0x7625</div><div class='add'>+0x4D77 = 0x7626</div><div class='add'>+0x4D78 = 0x7629</div><div class='add'>+0x4D79 = 0x762D</div><div class='add'>+0x4D7A = 0x7632</div><div class='add'>+0x4D7B = 0x7633</div><div class='add'>+0x4D7C = 0x7635</div><div class='add'>+0x4D7D = 0x7638</div><div class='add'>+0x4D7E = 0x7639</div><div class='add'>+0x4E21 = 0x763A</div><div class='add'>+0x4E22 = 0x763C</div><div class='add'>+0x4E23 = 0x764A</div><div class='add'>+0x4E24 = 0x7640</div><div class='add'>+0x4E25 = 0x7641</div><div class='add'>+0x4E26 = 0x7643</div><div class='add'>+0x4E27 = 0x7644</div><div class='add'>+0x4E28 = 0x7645</div><div class='add'>+0x4E29 = 0x7649</div><div class='add'>+0x4E2A = 0x764B</div><div class='add'>+0x4E2B = 0x7655</div><div class='add'>+0x4E2C = 0x7659</div><div class='add'>+0x4E2D = 0x765F</div><div class='add'>+0x4E2E = 0x7664</div><div class='add'>+0x4E2F = 0x7665</div><div class='add'>+0x4E30 = 0x766D</div><div class='add'>+0x4E31 = 0x766E</div><div class='add'>+0x4E32 = 0x766F</div><div class='add'>+0x4E33 = 0x7671</div><div class='add'>+0x4E34 = 0x7674</div><div class='add'>+0x4E35 = 0x7681</div><div class='add'>+0x4E36 = 0x7685</div><div class='add'>+0x4E37 = 0x768C</div><div class='add'>+0x4E38 = 0x768D</div><div class='add'>+0x4E39 = 0x7695</div><div class='add'>+0x4E3A = 0x769B</div><div class='add'>+0x4E3B = 0x769C</div><div class='add'>+0x4E3C = 0x769D</div><div class='add'>+0x4E3D = 0x769F</div><div class='add'>+0x4E3E = 0x76A0</div><div class='add'>+0x4E3F = 0x76A2</div><div class='add'>+0x4E40 = 0x76A3</div><div class='add'>+0x4E41 = 0x76A4</div><div class='add'>+0x4E42 = 0x76A5</div><div class='add'>+0x4E43 = 0x76A6</div><div class='add'>+0x4E44 = 0x76A7</div><div class='add'>+0x4E45 = 0x76A8</div><div class='add'>+0x4E46 = 0x76AA</div><div class='add'>+0x4E47 = 0x76AD</div><div class='add'>+0x4E48 = 0x76BD</div><div class='add'>+0x4E49 = 0x76C1</div><div class='add'>+0x4E4A = 0x76C5</div><div class='add'>+0x4E4B = 0x76C9</div><div class='add'>+0x4E4C = 0x76CB</div><div class='add'>+0x4E4D = 0x76CC</div><div class='add'>+0x4E4E = 0x76CE</div><div class='add'>+0x4E4F = 0x76D4</div><div class='add'>+0x4E50 = 0x76D9</div><div class='add'>+0x4E51 = 0x76E0</div><div class='add'>+0x4E52 = 0x76E6</div><div class='add'>+0x4E53 = 0x76E8</div><div class='add'>+0x4E54 = 0x76EC</div><div class='add'>+0x4E55 = 0x76F0</div><div class='add'>+0x4E56 = 0x76F1</div><div class='add'>+0x4E57 = 0x76F6</div><div class='add'>+0x4E58 = 0x76F9</div><div class='add'>+0x4E59 = 0x76FC</div><div class='add'>+0x4E5A = 0x7700</div><div class='add'>+0x4E5B = 0x7706</div><div class='add'>+0x4E5C = 0x770A</div><div class='add'>+0x4E5D = 0x770E</div><div class='add'>+0x4E5E = 0x7712</div><div class='add'>+0x4E5F = 0x7714</div><div class='add'>+0x4E60 = 0x7715</div><div class='add'>+0x4E61 = 0x7717</div><div class='add'>+0x4E62 = 0x7719</div><div class='add'>+0x4E63 = 0x771A</div><div class='add'>+0x4E64 = 0x771C</div><div class='add'>+0x4E65 = 0x7722</div><div class='add'>+0x4E66 = 0x7728</div><div class='add'>+0x4E67 = 0x772D</div><div class='add'>+0x4E68 = 0x772E</div><div class='add'>+0x4E69 = 0x772F</div><div class='add'>+0x4E6A = 0x7734</div><div class='add'>+0x4E6B = 0x7735</div><div class='add'>+0x4E6C = 0x7736</div><div class='add'>+0x4E6D = 0x7739</div><div class='add'>+0x4E6E = 0x773D</div><div class='add'>+0x4E6F = 0x773E</div><div class='add'>+0x4E70 = 0x7742</div><div class='add'>+0x4E71 = 0x7745</div><div class='add'>+0x4E72 = 0x7746</div><div class='add'>+0x4E73 = 0x774A</div><div class='add'>+0x4E74 = 0x774D</div><div class='add'>+0x4E75 = 0x774E</div><div class='add'>+0x4E76 = 0x774F</div><div class='add'>+0x4E77 = 0x7752</div><div class='add'>+0x4E78 = 0x7756</div><div class='add'>+0x4E79 = 0x7757</div><div class='add'>+0x4E7A = 0x775C</div><div class='add'>+0x4E7B = 0x775E</div><div class='add'>+0x4E7C = 0x775F</div><div class='add'>+0x4E7D = 0x7760</div><div class='add'>+0x4E7E = 0x7762</div><div class='add'>+0x4F21 = 0x7764</div><div class='add'>+0x4F22 = 0x7767</div><div class='add'>+0x4F23 = 0x776A</div><div class='add'>+0x4F24 = 0x776C</div><div class='add'>+0x4F25 = 0x7770</div><div class='add'>+0x4F26 = 0x7772</div><div class='add'>+0x4F27 = 0x7773</div><div class='add'>+0x4F28 = 0x7774</div><div class='add'>+0x4F29 = 0x777A</div><div class='add'>+0x4F2A = 0x777D</div><div class='add'>+0x4F2B = 0x7780</div><div class='add'>+0x4F2C = 0x7784</div><div class='add'>+0x4F2D = 0x778C</div><div class='add'>+0x4F2E = 0x778D</div><div class='add'>+0x4F2F = 0x7794</div><div class='add'>+0x4F30 = 0x7795</div><div class='add'>+0x4F31 = 0x7796</div><div class='add'>+0x4F32 = 0x779A</div><div class='add'>+0x4F33 = 0x779F</div><div class='add'>+0x4F34 = 0x77A2</div><div class='add'>+0x4F35 = 0x77A7</div><div class='add'>+0x4F36 = 0x77AA</div><div class='add'>+0x4F37 = 0x77AE</div><div class='add'>+0x4F38 = 0x77AF</div><div class='add'>+0x4F39 = 0x77B1</div><div class='add'>+0x4F3A = 0x77B5</div><div class='add'>+0x4F3B = 0x77BE</div><div class='add'>+0x4F3C = 0x77C3</div><div class='add'>+0x4F3D = 0x77C9</div><div class='add'>+0x4F3E = 0x77D1</div><div class='add'>+0x4F3F = 0x77D2</div><div class='add'>+0x4F40 = 0x77D5</div><div class='add'>+0x4F41 = 0x77D9</div><div class='add'>+0x4F42 = 0x77DE</div><div class='add'>+0x4F43 = 0x77DF</div><div class='add'>+0x4F44 = 0x77E0</div><div class='add'>+0x4F45 = 0x77E4</div><div class='add'>+0x4F46 = 0x77E6</div><div class='add'>+0x4F47 = 0x77EA</div><div class='add'>+0x4F48 = 0x77EC</div><div class='add'>+0x4F49 = 0x77F0</div><div class='add'>+0x4F4A = 0x77F1</div><div class='add'>+0x4F4B = 0x77F4</div><div class='add'>+0x4F4C = 0x77F8</div><div class='add'>+0x4F4D = 0x77FB</div><div class='add'>+0x4F4E = 0x7805</div><div class='add'>+0x4F4F = 0x7806</div><div class='add'>+0x4F50 = 0x7809</div><div class='add'>+0x4F51 = 0x780D</div><div class='add'>+0x4F52 = 0x780E</div><div class='add'>+0x4F53 = 0x7811</div><div class='add'>+0x4F54 = 0x781D</div><div class='add'>+0x4F55 = 0x7821</div><div class='add'>+0x4F56 = 0x7822</div><div class='add'>+0x4F57 = 0x7823</div><div class='add'>+0x4F58 = 0x782D</div><div class='add'>+0x4F59 = 0x782E</div><div class='add'>+0x4F5A = 0x7830</div><div class='add'>+0x4F5B = 0x7835</div><div class='add'>+0x4F5C = 0x7837</div><div class='add'>+0x4F5D = 0x7843</div><div class='add'>+0x4F5E = 0x7844</div><div class='add'>+0x4F5F = 0x7847</div><div class='add'>+0x4F60 = 0x7848</div><div class='add'>+0x4F61 = 0x784C</div><div class='add'>+0x4F62 = 0x784E</div><div class='add'>+0x4F63 = 0x7852</div><div class='add'>+0x4F64 = 0x785C</div><div class='add'>+0x4F65 = 0x785E</div><div class='add'>+0x4F66 = 0x7860</div><div class='add'>+0x4F67 = 0x7861</div><div class='add'>+0x4F68 = 0x7863</div><div class='add'>+0x4F69 = 0x7864</div><div class='add'>+0x4F6A = 0x7868</div><div class='add'>+0x4F6B = 0x786A</div><div class='add'>+0x4F6C = 0x786E</div><div class='add'>+0x4F6D = 0x787A</div><div class='add'>+0x4F6E = 0x787E</div><div class='add'>+0x4F6F = 0x788A</div><div class='add'>+0x4F70 = 0x788F</div><div class='add'>+0x4F71 = 0x7894</div><div class='add'>+0x4F72 = 0x7898</div><div class='add'>+0x4F73 = 0x78A1</div><div class='add'>+0x4F74 = 0x789D</div><div class='add'>+0x4F75 = 0x789E</div><div class='add'>+0x4F76 = 0x789F</div><div class='add'>+0x4F77 = 0x78A4</div><div class='add'>+0x4F78 = 0x78A8</div><div class='add'>+0x4F79 = 0x78AC</div><div class='add'>+0x4F7A = 0x78AD</div><div class='add'>+0x4F7B = 0x78B0</div><div class='add'>+0x4F7C = 0x78B1</div><div class='add'>+0x4F7D = 0x78B2</div><div class='add'>+0x4F7E = 0x78B3</div><div class='add'>+0x5021 = 0x78BB</div><div class='add'>+0x5022 = 0x78BD</div><div class='add'>+0x5023 = 0x78BF</div><div class='add'>+0x5024 = 0x78C7</div><div class='add'>+0x5025 = 0x78C8</div><div class='add'>+0x5026 = 0x78C9</div><div class='add'>+0x5027 = 0x78CC</div><div class='add'>+0x5028 = 0x78CE</div><div class='add'>+0x5029 = 0x78D2</div><div class='add'>+0x502A = 0x78D3</div><div class='add'>+0x502B = 0x78D5</div><div class='add'>+0x502C = 0x78D6</div><div class='add'>+0x502D = 0x78E4</div><div class='add'>+0x502E = 0x78DB</div><div class='add'>+0x502F = 0x78DF</div><div class='add'>+0x5030 = 0x78E0</div><div class='add'>+0x5031 = 0x78E1</div><div class='add'>+0x5032 = 0x78E6</div><div class='add'>+0x5033 = 0x78EA</div><div class='add'>+0x5034 = 0x78F2</div><div class='add'>+0x5035 = 0x78F3</div><div class='add'>+0x5036 = 0x7900</div><div class='add'>+0x5037 = 0x78F6</div><div class='add'>+0x5038 = 0x78F7</div><div class='add'>+0x5039 = 0x78FA</div><div class='add'>+0x503A = 0x78FB</div><div class='add'>+0x503B = 0x78FF</div><div class='add'>+0x503C = 0x7906</div><div class='add'>+0x503D = 0x790C</div><div class='add'>+0x503E = 0x7910</div><div class='add'>+0x503F = 0x791A</div><div class='add'>+0x5040 = 0x791C</div><div class='add'>+0x5041 = 0x791E</div><div class='add'>+0x5042 = 0x791F</div><div class='add'>+0x5043 = 0x7920</div><div class='add'>+0x5044 = 0x7925</div><div class='add'>+0x5045 = 0x7927</div><div class='add'>+0x5046 = 0x7929</div><div class='add'>+0x5047 = 0x792D</div><div class='add'>+0x5048 = 0x7931</div><div class='add'>+0x5049 = 0x7934</div><div class='add'>+0x504A = 0x7935</div><div class='add'>+0x504B = 0x793B</div><div class='add'>+0x504C = 0x793D</div><div class='add'>+0x504D = 0x793F</div><div class='add'>+0x504E = 0x7944</div><div class='add'>+0x504F = 0x7945</div><div class='add'>+0x5050 = 0x7946</div><div class='add'>+0x5051 = 0x794A</div><div class='add'>+0x5052 = 0x794B</div><div class='add'>+0x5053 = 0x794F</div><div class='add'>+0x5054 = 0x7951</div><div class='add'>+0x5055 = 0x7954</div><div class='add'>+0x5056 = 0x7958</div><div class='add'>+0x5057 = 0x795B</div><div class='add'>+0x5058 = 0x795C</div><div class='add'>+0x5059 = 0x7967</div><div class='add'>+0x505A = 0x7969</div><div class='add'>+0x505B = 0x796B</div><div class='add'>+0x505C = 0x7972</div><div class='add'>+0x505D = 0x7979</div><div class='add'>+0x505E = 0x797B</div><div class='add'>+0x505F = 0x797C</div><div class='add'>+0x5060 = 0x797E</div><div class='add'>+0x5061 = 0x798B</div><div class='add'>+0x5062 = 0x798C</div><div class='add'>+0x5063 = 0x7991</div><div class='add'>+0x5064 = 0x7993</div><div class='add'>+0x5065 = 0x7994</div><div class='add'>+0x5066 = 0x7995</div><div class='add'>+0x5067 = 0x7996</div><div class='add'>+0x5068 = 0x7998</div><div class='add'>+0x5069 = 0x799B</div><div class='add'>+0x506A = 0x799C</div><div class='add'>+0x506B = 0x79A1</div><div class='add'>+0x506C = 0x79A8</div><div class='add'>+0x506D = 0x79A9</div><div class='add'>+0x506E = 0x79AB</div><div class='add'>+0x506F = 0x79AF</div><div class='add'>+0x5070 = 0x79B1</div><div class='add'>+0x5071 = 0x79B4</div><div class='add'>+0x5072 = 0x79B8</div><div class='add'>+0x5073 = 0x79BB</div><div class='add'>+0x5074 = 0x79C2</div><div class='add'>+0x5075 = 0x79C4</div><div class='add'>+0x5076 = 0x79C7</div><div class='add'>+0x5077 = 0x79C8</div><div class='add'>+0x5078 = 0x79CA</div><div class='add'>+0x5079 = 0x79CF</div><div class='add'>+0x507A = 0x79D4</div><div class='add'>+0x507B = 0x79D6</div><div class='add'>+0x507C = 0x79DA</div><div class='add'>+0x507D = 0x79DD</div><div class='add'>+0x507E = 0x79DE</div><div class='add'>+0x5121 = 0x79E0</div><div class='add'>+0x5122 = 0x79E2</div><div class='add'>+0x5123 = 0x79E5</div><div class='add'>+0x5124 = 0x79EA</div><div class='add'>+0x5125 = 0x79EB</div><div class='add'>+0x5126 = 0x79ED</div><div class='add'>+0x5127 = 0x79F1</div><div class='add'>+0x5128 = 0x79F8</div><div class='add'>+0x5129 = 0x79FC</div><div class='add'>+0x512A = 0x7A02</div><div class='add'>+0x512B = 0x7A03</div><div class='add'>+0x512C = 0x7A07</div><div class='add'>+0x512D = 0x7A09</div><div class='add'>+0x512E = 0x7A0A</div><div class='add'>+0x512F = 0x7A0C</div><div class='add'>+0x5130 = 0x7A11</div><div class='add'>+0x5131 = 0x7A15</div><div class='add'>+0x5132 = 0x7A1B</div><div class='add'>+0x5133 = 0x7A1E</div><div class='add'>+0x5134 = 0x7A21</div><div class='add'>+0x5135 = 0x7A27</div><div class='add'>+0x5136 = 0x7A2B</div><div class='add'>+0x5137 = 0x7A2D</div><div class='add'>+0x5138 = 0x7A2F</div><div class='add'>+0x5139 = 0x7A30</div><div class='add'>+0x513A = 0x7A34</div><div class='add'>+0x513B = 0x7A35</div><div class='add'>+0x513C = 0x7A38</div><div class='add'>+0x513D = 0x7A39</div><div class='add'>+0x513E = 0x7A3A</div><div class='add'>+0x513F = 0x7A44</div><div class='add'>+0x5140 = 0x7A45</div><div class='add'>+0x5141 = 0x7A47</div><div class='add'>+0x5142 = 0x7A48</div><div class='add'>+0x5143 = 0x7A4C</div><div class='add'>+0x5144 = 0x7A55</div><div class='add'>+0x5145 = 0x7A56</div><div class='add'>+0x5146 = 0x7A59</div><div class='add'>+0x5147 = 0x7A5C</div><div class='add'>+0x5148 = 0x7A5D</div><div class='add'>+0x5149 = 0x7A5F</div><div class='add'>+0x514A = 0x7A60</div><div class='add'>+0x514B = 0x7A65</div><div class='add'>+0x514C = 0x7A67</div><div class='add'>+0x514D = 0x7A6A</div><div class='add'>+0x514E = 0x7A6D</div><div class='add'>+0x514F = 0x7A75</div><div class='add'>+0x5150 = 0x7A78</div><div class='add'>+0x5151 = 0x7A7E</div><div class='add'>+0x5152 = 0x7A80</div><div class='add'>+0x5153 = 0x7A82</div><div class='add'>+0x5154 = 0x7A85</div><div class='add'>+0x5155 = 0x7A86</div><div class='add'>+0x5156 = 0x7A8A</div><div class='add'>+0x5157 = 0x7A8B</div><div class='add'>+0x5158 = 0x7A90</div><div class='add'>+0x5159 = 0x7A91</div><div class='add'>+0x515A = 0x7A94</div><div class='add'>+0x515B = 0x7A9E</div><div class='add'>+0x515C = 0x7AA0</div><div class='add'>+0x515D = 0x7AA3</div><div class='add'>+0x515E = 0x7AAC</div><div class='add'>+0x515F = 0x7AB3</div><div class='add'>+0x5160 = 0x7AB5</div><div class='add'>+0x5161 = 0x7AB9</div><div class='add'>+0x5162 = 0x7ABB</div><div class='add'>+0x5163 = 0x7ABC</div><div class='add'>+0x5164 = 0x7AC6</div><div class='add'>+0x5165 = 0x7AC9</div><div class='add'>+0x5166 = 0x7ACC</div><div class='add'>+0x5167 = 0x7ACE</div><div class='add'>+0x5168 = 0x7AD1</div><div class='add'>+0x5169 = 0x7ADB</div><div class='add'>+0x516A = 0x7AE8</div><div class='add'>+0x516B = 0x7AE9</div><div class='add'>+0x516C = 0x7AEB</div><div class='add'>+0x516D = 0x7AEC</div><div class='add'>+0x516E = 0x7AF1</div><div class='add'>+0x516F = 0x7AF4</div><div class='add'>+0x5170 = 0x7AFB</div><div class='add'>+0x5171 = 0x7AFD</div><div class='add'>+0x5172 = 0x7AFE</div><div class='add'>+0x5173 = 0x7B07</div><div class='add'>+0x5174 = 0x7B14</div><div class='add'>+0x5175 = 0x7B1F</div><div class='add'>+0x5176 = 0x7B23</div><div class='add'>+0x5177 = 0x7B27</div><div class='add'>+0x5178 = 0x7B29</div><div class='add'>+0x5179 = 0x7B2A</div><div class='add'>+0x517A = 0x7B2B</div><div class='add'>+0x517B = 0x7B2D</div><div class='add'>+0x517C = 0x7B2E</div><div class='add'>+0x517D = 0x7B2F</div><div class='add'>+0x517E = 0x7B30</div><div class='add'>+0x5221 = 0x7B31</div><div class='add'>+0x5222 = 0x7B34</div><div class='add'>+0x5223 = 0x7B3D</div><div class='add'>+0x5224 = 0x7B3F</div><div class='add'>+0x5225 = 0x7B40</div><div class='add'>+0x5226 = 0x7B41</div><div class='add'>+0x5227 = 0x7B47</div><div class='add'>+0x5228 = 0x7B4E</div><div class='add'>+0x5229 = 0x7B55</div><div class='add'>+0x522A = 0x7B60</div><div class='add'>+0x522B = 0x7B64</div><div class='add'>+0x522C = 0x7B66</div><div class='add'>+0x522D = 0x7B69</div><div class='add'>+0x522E = 0x7B6A</div><div class='add'>+0x522F = 0x7B6D</div><div class='add'>+0x5230 = 0x7B6F</div><div class='add'>+0x5231 = 0x7B72</div><div class='add'>+0x5232 = 0x7B73</div><div class='add'>+0x5233 = 0x7B77</div><div class='add'>+0x5234 = 0x7B84</div><div class='add'>+0x5235 = 0x7B89</div><div class='add'>+0x5236 = 0x7B8E</div><div class='add'>+0x5237 = 0x7B90</div><div class='add'>+0x5238 = 0x7B91</div><div class='add'>+0x5239 = 0x7B96</div><div class='add'>+0x523A = 0x7B9B</div><div class='add'>+0x523B = 0x7B9E</div><div class='add'>+0x523C = 0x7BA0</div><div class='add'>+0x523D = 0x7BA5</div><div class='add'>+0x523E = 0x7BAC</div><div class='add'>+0x523F = 0x7BAF</div><div class='add'>+0x5240 = 0x7BB0</div><div class='add'>+0x5241 = 0x7BB2</div><div class='add'>+0x5242 = 0x7BB5</div><div class='add'>+0x5243 = 0x7BB6</div><div class='add'>+0x5244 = 0x7BBA</div><div class='add'>+0x5245 = 0x7BBB</div><div class='add'>+0x5246 = 0x7BBC</div><div class='add'>+0x5247 = 0x7BBD</div><div class='add'>+0x5248 = 0x7BC2</div><div class='add'>+0x5249 = 0x7BC5</div><div class='add'>+0x524A = 0x7BC8</div><div class='add'>+0x524B = 0x7BCA</div><div class='add'>+0x524C = 0x7BD4</div><div class='add'>+0x524D = 0x7BD6</div><div class='add'>+0x524E = 0x7BD7</div><div class='add'>+0x524F = 0x7BD9</div><div class='add'>+0x5250 = 0x7BDA</div><div class='add'>+0x5251 = 0x7BDB</div><div class='add'>+0x5252 = 0x7BE8</div><div class='add'>+0x5253 = 0x7BEA</div><div class='add'>+0x5254 = 0x7BF2</div><div class='add'>+0x5255 = 0x7BF4</div><div class='add'>+0x5256 = 0x7BF5</div><div class='add'>+0x5257 = 0x7BF8</div><div class='add'>+0x5258 = 0x7BF9</div><div class='add'>+0x5259 = 0x7BFA</div><div class='add'>+0x525A = 0x7BFC</div><div class='add'>+0x525B = 0x7BFE</div><div class='add'>+0x525C = 0x7C01</div><div class='add'>+0x525D = 0x7C02</div><div class='add'>+0x525E = 0x7C03</div><div class='add'>+0x525F = 0x7C04</div><div class='add'>+0x5260 = 0x7C06</div><div class='add'>+0x5261 = 0x7C09</div><div class='add'>+0x5262 = 0x7C0B</div><div class='add'>+0x5263 = 0x7C0C</div><div class='add'>+0x5264 = 0x7C0E</div><div class='add'>+0x5265 = 0x7C0F</div><div class='add'>+0x5266 = 0x7C19</div><div class='add'>+0x5267 = 0x7C1B</div><div class='add'>+0x5268 = 0x7C20</div><div class='add'>+0x5269 = 0x7C25</div><div class='add'>+0x526A = 0x7C26</div><div class='add'>+0x526B = 0x7C28</div><div class='add'>+0x526C = 0x7C2C</div><div class='add'>+0x526D = 0x7C31</div><div class='add'>+0x526E = 0x7C33</div><div class='add'>+0x526F = 0x7C34</div><div class='add'>+0x5270 = 0x7C36</div><div class='add'>+0x5271 = 0x7C39</div><div class='add'>+0x5272 = 0x7C3A</div><div class='add'>+0x5273 = 0x7C46</div><div class='add'>+0x5274 = 0x7C4A</div><div class='add'>+0x5275 = 0x7C55</div><div class='add'>+0x5276 = 0x7C51</div><div class='add'>+0x5277 = 0x7C52</div><div class='add'>+0x5278 = 0x7C53</div><div class='add'>+0x5279 = 0x7C59</div><div class='add'>+0x527A = 0x7C5A</div><div class='add'>+0x527B = 0x7C5B</div><div class='add'>+0x527C = 0x7C5C</div><div class='add'>+0x527D = 0x7C5D</div><div class='add'>+0x527E = 0x7C5E</div><div class='add'>+0x5321 = 0x7C61</div><div class='add'>+0x5322 = 0x7C63</div><div class='add'>+0x5323 = 0x7C67</div><div class='add'>+0x5324 = 0x7C69</div><div class='add'>+0x5325 = 0x7C6D</div><div class='add'>+0x5326 = 0x7C6E</div><div class='add'>+0x5327 = 0x7C70</div><div class='add'>+0x5328 = 0x7C72</div><div class='add'>+0x5329 = 0x7C79</div><div class='add'>+0x532A = 0x7C7C</div><div class='add'>+0x532B = 0x7C7D</div><div class='add'>+0x532C = 0x7C86</div><div class='add'>+0x532D = 0x7C87</div><div class='add'>+0x532E = 0x7C8F</div><div class='add'>+0x532F = 0x7C94</div><div class='add'>+0x5330 = 0x7C9E</div><div class='add'>+0x5331 = 0x7CA0</div><div class='add'>+0x5332 = 0x7CA6</div><div class='add'>+0x5333 = 0x7CB0</div><div class='add'>+0x5334 = 0x7CB6</div><div class='add'>+0x5335 = 0x7CB7</div><div class='add'>+0x5336 = 0x7CBA</div><div class='add'>+0x5337 = 0x7CBB</div><div class='add'>+0x5338 = 0x7CBC</div><div class='add'>+0x5339 = 0x7CBF</div><div class='add'>+0x533A = 0x7CC4</div><div class='add'>+0x533B = 0x7CC7</div><div class='add'>+0x533C = 0x7CC8</div><div class='add'>+0x533D = 0x7CC9</div><div class='add'>+0x533E = 0x7CCD</div><div class='add'>+0x533F = 0x7CCF</div><div class='add'>+0x5340 = 0x7CD3</div><div class='add'>+0x5341 = 0x7CD4</div><div class='add'>+0x5342 = 0x7CD5</div><div class='add'>+0x5343 = 0x7CD7</div><div class='add'>+0x5344 = 0x7CD9</div><div class='add'>+0x5345 = 0x7CDA</div><div class='add'>+0x5346 = 0x7CDD</div><div class='add'>+0x5347 = 0x7CE6</div><div class='add'>+0x5348 = 0x7CE9</div><div class='add'>+0x5349 = 0x7CEB</div><div class='add'>+0x534A = 0x7CF5</div><div class='add'>+0x534B = 0x7D03</div><div class='add'>+0x534C = 0x7D07</div><div class='add'>+0x534D = 0x7D08</div><div class='add'>+0x534E = 0x7D09</div><div class='add'>+0x534F = 0x7D0F</div><div class='add'>+0x5350 = 0x7D11</div><div class='add'>+0x5351 = 0x7D12</div><div class='add'>+0x5352 = 0x7D13</div><div class='add'>+0x5353 = 0x7D16</div><div class='add'>+0x5354 = 0x7D1D</div><div class='add'>+0x5355 = 0x7D1E</div><div class='add'>+0x5356 = 0x7D23</div><div class='add'>+0x5357 = 0x7D26</div><div class='add'>+0x5358 = 0x7D2A</div><div class='add'>+0x5359 = 0x7D2D</div><div class='add'>+0x535A = 0x7D31</div><div class='add'>+0x535B = 0x7D3C</div><div class='add'>+0x535C = 0x7D3D</div><div class='add'>+0x535D = 0x7D3E</div><div class='add'>+0x535E = 0x7D40</div><div class='add'>+0x535F = 0x7D41</div><div class='add'>+0x5360 = 0x7D47</div><div class='add'>+0x5361 = 0x7D48</div><div class='add'>+0x5362 = 0x7D4D</div><div class='add'>+0x5363 = 0x7D51</div><div class='add'>+0x5364 = 0x7D53</div><div class='add'>+0x5365 = 0x7D57</div><div class='add'>+0x5366 = 0x7D59</div><div class='add'>+0x5367 = 0x7D5A</div><div class='add'>+0x5368 = 0x7D5C</div><div class='add'>+0x5369 = 0x7D5D</div><div class='add'>+0x536A = 0x7D65</div><div class='add'>+0x536B = 0x7D67</div><div class='add'>+0x536C = 0x7D6A</div><div class='add'>+0x536D = 0x7D70</div><div class='add'>+0x536E = 0x7D78</div><div class='add'>+0x536F = 0x7D7A</div><div class='add'>+0x5370 = 0x7D7B</div><div class='add'>+0x5371 = 0x7D7F</div><div class='add'>+0x5372 = 0x7D81</div><div class='add'>+0x5373 = 0x7D82</div><div class='add'>+0x5374 = 0x7D83</div><div class='add'>+0x5375 = 0x7D85</div><div class='add'>+0x5376 = 0x7D86</div><div class='add'>+0x5377 = 0x7D88</div><div class='add'>+0x5378 = 0x7D8B</div><div class='add'>+0x5379 = 0x7D8C</div><div class='add'>+0x537A = 0x7D8D</div><div class='add'>+0x537B = 0x7D91</div><div class='add'>+0x537C = 0x7D96</div><div class='add'>+0x537D = 0x7D97</div><div class='add'>+0x537E = 0x7D9D</div><div class='add'>+0x5421 = 0x7D9E</div><div class='add'>+0x5422 = 0x7DA6</div><div class='add'>+0x5423 = 0x7DA7</div><div class='add'>+0x5424 = 0x7DAA</div><div class='add'>+0x5425 = 0x7DB3</div><div class='add'>+0x5426 = 0x7DB6</div><div class='add'>+0x5427 = 0x7DB7</div><div class='add'>+0x5428 = 0x7DB9</div><div class='add'>+0x5429 = 0x7DC2</div><div class='add'>+0x542A = 0x7DC3</div><div class='add'>+0x542B = 0x7DC4</div><div class='add'>+0x542C = 0x7DC5</div><div class='add'>+0x542D = 0x7DC6</div><div class='add'>+0x542E = 0x7DCC</div><div class='add'>+0x542F = 0x7DCD</div><div class='add'>+0x5430 = 0x7DCE</div><div class='add'>+0x5431 = 0x7DD7</div><div class='add'>+0x5432 = 0x7DD9</div><div class='add'>+0x5433 = 0x7E00</div><div class='add'>+0x5434 = 0x7DE2</div><div class='add'>+0x5435 = 0x7DE5</div><div class='add'>+0x5436 = 0x7DE6</div><div class='add'>+0x5437 = 0x7DEA</div><div class='add'>+0x5438 = 0x7DEB</div><div class='add'>+0x5439 = 0x7DED</div><div class='add'>+0x543A = 0x7DF1</div><div class='add'>+0x543B = 0x7DF5</div><div class='add'>+0x543C = 0x7DF6</div><div class='add'>+0x543D = 0x7DF9</div><div class='add'>+0x543E = 0x7DFA</div><div class='add'>+0x543F = 0x7E08</div><div class='add'>+0x5440 = 0x7E10</div><div class='add'>+0x5441 = 0x7E11</div><div class='add'>+0x5442 = 0x7E15</div><div class='add'>+0x5443 = 0x7E17</div><div class='add'>+0x5444 = 0x7E1C</div><div class='add'>+0x5445 = 0x7E1D</div><div class='add'>+0x5446 = 0x7E20</div><div class='add'>+0x5447 = 0x7E27</div><div class='add'>+0x5448 = 0x7E28</div><div class='add'>+0x5449 = 0x7E2C</div><div class='add'>+0x544A = 0x7E2D</div><div class='add'>+0x544B = 0x7E2F</div><div class='add'>+0x544C = 0x7E33</div><div class='add'>+0x544D = 0x7E36</div><div class='add'>+0x544E = 0x7E3F</div><div class='add'>+0x544F = 0x7E44</div><div class='add'>+0x5450 = 0x7E45</div><div class='add'>+0x5451 = 0x7E47</div><div class='add'>+0x5452 = 0x7E4E</div><div class='add'>+0x5453 = 0x7E50</div><div class='add'>+0x5454 = 0x7E52</div><div class='add'>+0x5455 = 0x7E58</div><div class='add'>+0x5456 = 0x7E5F</div><div class='add'>+0x5457 = 0x7E61</div><div class='add'>+0x5458 = 0x7E62</div><div class='add'>+0x5459 = 0x7E65</div><div class='add'>+0x545A = 0x7E6B</div><div class='add'>+0x545B = 0x7E6E</div><div class='add'>+0x545C = 0x7E6F</div><div class='add'>+0x545D = 0x7E73</div><div class='add'>+0x545E = 0x7E78</div><div class='add'>+0x545F = 0x7E7E</div><div class='add'>+0x5460 = 0x7E81</div><div class='add'>+0x5461 = 0x7E86</div><div class='add'>+0x5462 = 0x7E87</div><div class='add'>+0x5463 = 0x7E8A</div><div class='add'>+0x5464 = 0x7E8D</div><div class='add'>+0x5465 = 0x7E91</div><div class='add'>+0x5466 = 0x7E95</div><div class='add'>+0x5467 = 0x7E98</div><div class='add'>+0x5468 = 0x7E9A</div><div class='add'>+0x5469 = 0x7E9D</div><div class='add'>+0x546A = 0x7E9E</div><div class='add'>+0x546B = 0x7F3C</div><div class='add'>+0x546C = 0x7F3B</div><div class='add'>+0x546D = 0x7F3D</div><div class='add'>+0x546E = 0x7F3E</div><div class='add'>+0x546F = 0x7F3F</div><div class='add'>+0x5470 = 0x7F43</div><div class='add'>+0x5471 = 0x7F44</div><div class='add'>+0x5472 = 0x7F47</div><div class='add'>+0x5473 = 0x7F4F</div><div class='add'>+0x5474 = 0x7F52</div><div class='add'>+0x5475 = 0x7F53</div><div class='add'>+0x5476 = 0x7F5B</div><div class='add'>+0x5477 = 0x7F5C</div><div class='add'>+0x5478 = 0x7F5D</div><div class='add'>+0x5479 = 0x7F61</div><div class='add'>+0x547A = 0x7F63</div><div class='add'>+0x547B = 0x7F64</div><div class='add'>+0x547C = 0x7F65</div><div class='add'>+0x547D = 0x7F66</div><div class='add'>+0x547E = 0x7F6D</div><div class='add'>+0x5521 = 0x7F71</div><div class='add'>+0x5522 = 0x7F7D</div><div class='add'>+0x5523 = 0x7F7E</div><div class='add'>+0x5524 = 0x7F7F</div><div class='add'>+0x5525 = 0x7F80</div><div class='add'>+0x5526 = 0x7F8B</div><div class='add'>+0x5527 = 0x7F8D</div><div class='add'>+0x5528 = 0x7F8F</div><div class='add'>+0x5529 = 0x7F90</div><div class='add'>+0x552A = 0x7F91</div><div class='add'>+0x552B = 0x7F96</div><div class='add'>+0x552C = 0x7F97</div><div class='add'>+0x552D = 0x7F9C</div><div class='add'>+0x552E = 0x7FA1</div><div class='add'>+0x552F = 0x7FA2</div><div class='add'>+0x5530 = 0x7FA6</div><div class='add'>+0x5531 = 0x7FAA</div><div class='add'>+0x5532 = 0x7FAD</div><div class='add'>+0x5533 = 0x7FB4</div><div class='add'>+0x5534 = 0x7FBC</div><div class='add'>+0x5535 = 0x7FBF</div><div class='add'>+0x5536 = 0x7FC0</div><div class='add'>+0x5537 = 0x7FC3</div><div class='add'>+0x5538 = 0x7FC8</div><div class='add'>+0x5539 = 0x7FCE</div><div class='add'>+0x553A = 0x7FCF</div><div class='add'>+0x553B = 0x7FDB</div><div class='add'>+0x553C = 0x7FDF</div><div class='add'>+0x553D = 0x7FE3</div><div class='add'>+0x553E = 0x7FE5</div><div class='add'>+0x553F = 0x7FE8</div><div class='add'>+0x5540 = 0x7FEC</div><div class='add'>+0x5541 = 0x7FEE</div><div class='add'>+0x5542 = 0x7FEF</div><div class='add'>+0x5543 = 0x7FF2</div><div class='add'>+0x5544 = 0x7FFA</div><div class='add'>+0x5545 = 0x7FFD</div><div class='add'>+0x5546 = 0x7FFE</div><div class='add'>+0x5547 = 0x7FFF</div><div class='add'>+0x5548 = 0x8007</div><div class='add'>+0x5549 = 0x8008</div><div class='add'>+0x554A = 0x800A</div><div class='add'>+0x554B = 0x800D</div><div class='add'>+0x554C = 0x800E</div><div class='add'>+0x554D = 0x800F</div><div class='add'>+0x554E = 0x8011</div><div class='add'>+0x554F = 0x8013</div><div class='add'>+0x5550 = 0x8014</div><div class='add'>+0x5551 = 0x8016</div><div class='add'>+0x5552 = 0x801D</div><div class='add'>+0x5553 = 0x801E</div><div class='add'>+0x5554 = 0x801F</div><div class='add'>+0x5555 = 0x8020</div><div class='add'>+0x5556 = 0x8024</div><div class='add'>+0x5557 = 0x8026</div><div class='add'>+0x5558 = 0x802C</div><div class='add'>+0x5559 = 0x802E</div><div class='add'>+0x555A = 0x8030</div><div class='add'>+0x555B = 0x8034</div><div class='add'>+0x555C = 0x8035</div><div class='add'>+0x555D = 0x8037</div><div class='add'>+0x555E = 0x8039</div><div class='add'>+0x555F = 0x803A</div><div class='add'>+0x5560 = 0x803C</div><div class='add'>+0x5561 = 0x803E</div><div class='add'>+0x5562 = 0x8040</div><div class='add'>+0x5563 = 0x8044</div><div class='add'>+0x5564 = 0x8060</div><div class='add'>+0x5565 = 0x8064</div><div class='add'>+0x5566 = 0x8066</div><div class='add'>+0x5567 = 0x806D</div><div class='add'>+0x5568 = 0x8071</div><div class='add'>+0x5569 = 0x8075</div><div class='add'>+0x556A = 0x8081</div><div class='add'>+0x556B = 0x8088</div><div class='add'>+0x556C = 0x808E</div><div class='add'>+0x556D = 0x809C</div><div class='add'>+0x556E = 0x809E</div><div class='add'>+0x556F = 0x80A6</div><div class='add'>+0x5570 = 0x80A7</div><div class='add'>+0x5571 = 0x80AB</div><div class='add'>+0x5572 = 0x80B8</div><div class='add'>+0x5573 = 0x80B9</div><div class='add'>+0x5574 = 0x80C8</div><div class='add'>+0x5575 = 0x80CD</div><div class='add'>+0x5576 = 0x80CF</div><div class='add'>+0x5577 = 0x80D2</div><div class='add'>+0x5578 = 0x80D4</div><div class='add'>+0x5579 = 0x80D5</div><div class='add'>+0x557A = 0x80D7</div><div class='add'>+0x557B = 0x80D8</div><div class='add'>+0x557C = 0x80E0</div><div class='add'>+0x557D = 0x80ED</div><div class='add'>+0x557E = 0x80EE</div><div class='add'>+0x5621 = 0x80F0</div><div class='add'>+0x5622 = 0x80F2</div><div class='add'>+0x5623 = 0x80F3</div><div class='add'>+0x5624 = 0x80F6</div><div class='add'>+0x5625 = 0x80F9</div><div class='add'>+0x5626 = 0x80FA</div><div class='add'>+0x5627 = 0x80FE</div><div class='add'>+0x5628 = 0x8103</div><div class='add'>+0x5629 = 0x810B</div><div class='add'>+0x562A = 0x8116</div><div class='add'>+0x562B = 0x8117</div><div class='add'>+0x562C = 0x8118</div><div class='add'>+0x562D = 0x811C</div><div class='add'>+0x562E = 0x811E</div><div class='add'>+0x562F = 0x8120</div><div class='add'>+0x5630 = 0x8124</div><div class='add'>+0x5631 = 0x8127</div><div class='add'>+0x5632 = 0x812C</div><div class='add'>+0x5633 = 0x8130</div><div class='add'>+0x5634 = 0x8135</div><div class='add'>+0x5635 = 0x813A</div><div class='add'>+0x5636 = 0x813C</div><div class='add'>+0x5637 = 0x8145</div><div class='add'>+0x5638 = 0x8147</div><div class='add'>+0x5639 = 0x814A</div><div class='add'>+0x563A = 0x814C</div><div class='add'>+0x563B = 0x8152</div><div class='add'>+0x563C = 0x8157</div><div class='add'>+0x563D = 0x8160</div><div class='add'>+0x563E = 0x8161</div><div class='add'>+0x563F = 0x8167</div><div class='add'>+0x5640 = 0x8168</div><div class='add'>+0x5641 = 0x8169</div><div class='add'>+0x5642 = 0x816D</div><div class='add'>+0x5643 = 0x816F</div><div class='add'>+0x5644 = 0x8177</div><div class='add'>+0x5645 = 0x8181</div><div class='add'>+0x5646 = 0x8190</div><div class='add'>+0x5647 = 0x8184</div><div class='add'>+0x5648 = 0x8185</div><div class='add'>+0x5649 = 0x8186</div><div class='add'>+0x564A = 0x818B</div><div class='add'>+0x564B = 0x818E</div><div class='add'>+0x564C = 0x8196</div><div class='add'>+0x564D = 0x8198</div><div class='add'>+0x564E = 0x819B</div><div class='add'>+0x564F = 0x819E</div><div class='add'>+0x5650 = 0x81A2</div><div class='add'>+0x5651 = 0x81AE</div><div class='add'>+0x5652 = 0x81B2</div><div class='add'>+0x5653 = 0x81B4</div><div class='add'>+0x5654 = 0x81BB</div><div class='add'>+0x5655 = 0x81CB</div><div class='add'>+0x5656 = 0x81C3</div><div class='add'>+0x5657 = 0x81C5</div><div class='add'>+0x5658 = 0x81CA</div><div class='add'>+0x5659 = 0x81CE</div><div class='add'>+0x565A = 0x81CF</div><div class='add'>+0x565B = 0x81D5</div><div class='add'>+0x565C = 0x81D7</div><div class='add'>+0x565D = 0x81DB</div><div class='add'>+0x565E = 0x81DD</div><div class='add'>+0x565F = 0x81DE</div><div class='add'>+0x5660 = 0x81E1</div><div class='add'>+0x5661 = 0x81E4</div><div class='add'>+0x5662 = 0x81EB</div><div class='add'>+0x5663 = 0x81EC</div><div class='add'>+0x5664 = 0x81F0</div><div class='add'>+0x5665 = 0x81F1</div><div class='add'>+0x5666 = 0x81F2</div><div class='add'>+0x5667 = 0x81F5</div><div class='add'>+0x5668 = 0x81F6</div><div class='add'>+0x5669 = 0x81F8</div><div class='add'>+0x566A = 0x81F9</div><div class='add'>+0x566B = 0x81FD</div><div class='add'>+0x566C = 0x81FF</div><div class='add'>+0x566D = 0x8200</div><div class='add'>+0x566E = 0x8203</div><div class='add'>+0x566F = 0x820F</div><div class='add'>+0x5670 = 0x8213</div><div class='add'>+0x5671 = 0x8214</div><div class='add'>+0x5672 = 0x8219</div><div class='add'>+0x5673 = 0x821A</div><div class='add'>+0x5674 = 0x821D</div><div class='add'>+0x5675 = 0x8221</div><div class='add'>+0x5676 = 0x8222</div><div class='add'>+0x5677 = 0x8228</div><div class='add'>+0x5678 = 0x8232</div><div class='add'>+0x5679 = 0x8234</div><div class='add'>+0x567A = 0x823A</div><div class='add'>+0x567B = 0x8243</div><div class='add'>+0x567C = 0x8244</div><div class='add'>+0x567D = 0x8245</div><div class='add'>+0x567E = 0x8246</div><div class='add'>+0x5721 = 0x824B</div><div class='add'>+0x5722 = 0x824E</div><div class='add'>+0x5723 = 0x824F</div><div class='add'>+0x5724 = 0x8251</div><div class='add'>+0x5725 = 0x8256</div><div class='add'>+0x5726 = 0x825C</div><div class='add'>+0x5727 = 0x8260</div><div class='add'>+0x5728 = 0x8263</div><div class='add'>+0x5729 = 0x8267</div><div class='add'>+0x572A = 0x826D</div><div class='add'>+0x572B = 0x8274</div><div class='add'>+0x572C = 0x827B</div><div class='add'>+0x572D = 0x827D</div><div class='add'>+0x572E = 0x827F</div><div class='add'>+0x572F = 0x8280</div><div class='add'>+0x5730 = 0x8281</div><div class='add'>+0x5731 = 0x8283</div><div class='add'>+0x5732 = 0x8284</div><div class='add'>+0x5733 = 0x8287</div><div class='add'>+0x5734 = 0x8289</div><div class='add'>+0x5735 = 0x828A</div><div class='add'>+0x5736 = 0x828E</div><div class='add'>+0x5737 = 0x8291</div><div class='add'>+0x5738 = 0x8294</div><div class='add'>+0x5739 = 0x8296</div><div class='add'>+0x573A = 0x8298</div><div class='add'>+0x573B = 0x829A</div><div class='add'>+0x573C = 0x829B</div><div class='add'>+0x573D = 0x82A0</div><div class='add'>+0x573E = 0x82A1</div><div class='add'>+0x573F = 0x82A3</div><div class='add'>+0x5740 = 0x82A4</div><div class='add'>+0x5741 = 0x82A7</div><div class='add'>+0x5742 = 0x82A8</div><div class='add'>+0x5743 = 0x82A9</div><div class='add'>+0x5744 = 0x82AA</div><div class='add'>+0x5745 = 0x82AE</div><div class='add'>+0x5746 = 0x82B0</div><div class='add'>+0x5747 = 0x82B2</div><div class='add'>+0x5748 = 0x82B4</div><div class='add'>+0x5749 = 0x82B7</div><div class='add'>+0x574A = 0x82BA</div><div class='add'>+0x574B = 0x82BC</div><div class='add'>+0x574C = 0x82BE</div><div class='add'>+0x574D = 0x82BF</div><div class='add'>+0x574E = 0x82C6</div><div class='add'>+0x574F = 0x82D0</div><div class='add'>+0x5750 = 0x82D5</div><div class='add'>+0x5751 = 0x82DA</div><div class='add'>+0x5752 = 0x82E0</div><div class='add'>+0x5753 = 0x82E2</div><div class='add'>+0x5754 = 0x82E4</div><div class='add'>+0x5755 = 0x82E8</div><div class='add'>+0x5756 = 0x82EA</div><div class='add'>+0x5757 = 0x82ED</div><div class='add'>+0x5758 = 0x82EF</div><div class='add'>+0x5759 = 0x82F6</div><div class='add'>+0x575A = 0x82F7</div><div class='add'>+0x575B = 0x82FD</div><div class='add'>+0x575C = 0x82FE</div><div class='add'>+0x575D = 0x8300</div><div class='add'>+0x575E = 0x8301</div><div class='add'>+0x575F = 0x8307</div><div class='add'>+0x5760 = 0x8308</div><div class='add'>+0x5761 = 0x830A</div><div class='add'>+0x5762 = 0x830B</div><div class='add'>+0x5763 = 0x8354</div><div class='add'>+0x5764 = 0x831B</div><div class='add'>+0x5765 = 0x831D</div><div class='add'>+0x5766 = 0x831E</div><div class='add'>+0x5767 = 0x831F</div><div class='add'>+0x5768 = 0x8321</div><div class='add'>+0x5769 = 0x8322</div><div class='add'>+0x576A = 0x832C</div><div class='add'>+0x576B = 0x832D</div><div class='add'>+0x576C = 0x832E</div><div class='add'>+0x576D = 0x8330</div><div class='add'>+0x576E = 0x8333</div><div class='add'>+0x576F = 0x8337</div><div class='add'>+0x5770 = 0x833A</div><div class='add'>+0x5771 = 0x833C</div><div class='add'>+0x5772 = 0x833D</div><div class='add'>+0x5773 = 0x8342</div><div class='add'>+0x5774 = 0x8343</div><div class='add'>+0x5775 = 0x8344</div><div class='add'>+0x5776 = 0x8347</div><div class='add'>+0x5777 = 0x834D</div><div class='add'>+0x5778 = 0x834E</div><div class='add'>+0x5779 = 0x8351</div><div class='add'>+0x577A = 0x8355</div><div class='add'>+0x577B = 0x8356</div><div class='add'>+0x577C = 0x8357</div><div class='add'>+0x577D = 0x8370</div><div class='add'>+0x577E = 0x8378</div><div class='add'>+0x5821 = 0x837D</div><div class='add'>+0x5822 = 0x837F</div><div class='add'>+0x5823 = 0x8380</div><div class='add'>+0x5824 = 0x8382</div><div class='add'>+0x5825 = 0x8384</div><div class='add'>+0x5826 = 0x8386</div><div class='add'>+0x5827 = 0x838D</div><div class='add'>+0x5828 = 0x8392</div><div class='add'>+0x5829 = 0x8394</div><div class='add'>+0x582A = 0x8395</div><div class='add'>+0x582B = 0x8398</div><div class='add'>+0x582C = 0x8399</div><div class='add'>+0x582D = 0x839B</div><div class='add'>+0x582E = 0x839C</div><div class='add'>+0x582F = 0x839D</div><div class='add'>+0x5830 = 0x83A6</div><div class='add'>+0x5831 = 0x83A7</div><div class='add'>+0x5832 = 0x83A9</div><div class='add'>+0x5833 = 0x83AC</div><div class='add'>+0x5834 = 0x83BE</div><div class='add'>+0x5835 = 0x83BF</div><div class='add'>+0x5836 = 0x83C0</div><div class='add'>+0x5837 = 0x83C7</div><div class='add'>+0x5838 = 0x83C9</div><div class='add'>+0x5839 = 0x83CF</div><div class='add'>+0x583A = 0x83D0</div><div class='add'>+0x583B = 0x83D1</div><div class='add'>+0x583C = 0x83D4</div><div class='add'>+0x583D = 0x83DD</div><div class='add'>+0x583E = 0x8353</div><div class='add'>+0x583F = 0x83E8</div><div class='add'>+0x5840 = 0x83EA</div><div class='add'>+0x5841 = 0x83F6</div><div class='add'>+0x5842 = 0x83F8</div><div class='add'>+0x5843 = 0x83F9</div><div class='add'>+0x5844 = 0x83FC</div><div class='add'>+0x5845 = 0x8401</div><div class='add'>+0x5846 = 0x8406</div><div class='add'>+0x5847 = 0x840A</div><div class='add'>+0x5848 = 0x840F</div><div class='add'>+0x5849 = 0x8411</div><div class='add'>+0x584A = 0x8415</div><div class='add'>+0x584B = 0x8419</div><div class='add'>+0x584C = 0x83AD</div><div class='add'>+0x584D = 0x842F</div><div class='add'>+0x584E = 0x8439</div><div class='add'>+0x584F = 0x8445</div><div class='add'>+0x5850 = 0x8447</div><div class='add'>+0x5851 = 0x8448</div><div class='add'>+0x5852 = 0x844A</div><div class='add'>+0x5853 = 0x844D</div><div class='add'>+0x5854 = 0x844F</div><div class='add'>+0x5855 = 0x8451</div><div class='add'>+0x5856 = 0x8452</div><div class='add'>+0x5857 = 0x8456</div><div class='add'>+0x5858 = 0x8458</div><div class='add'>+0x5859 = 0x8459</div><div class='add'>+0x585A = 0x845A</div><div class='add'>+0x585B = 0x845C</div><div class='add'>+0x585C = 0x8460</div><div class='add'>+0x585D = 0x8464</div><div class='add'>+0x585E = 0x8465</div><div class='add'>+0x585F = 0x8467</div><div class='add'>+0x5860 = 0x846A</div><div class='add'>+0x5861 = 0x8470</div><div class='add'>+0x5862 = 0x8473</div><div class='add'>+0x5863 = 0x8474</div><div class='add'>+0x5864 = 0x8476</div><div class='add'>+0x5865 = 0x8478</div><div class='add'>+0x5866 = 0x847C</div><div class='add'>+0x5867 = 0x847D</div><div class='add'>+0x5868 = 0x8481</div><div class='add'>+0x5869 = 0x8485</div><div class='add'>+0x586A = 0x8492</div><div class='add'>+0x586B = 0x8493</div><div class='add'>+0x586C = 0x8495</div><div class='add'>+0x586D = 0x849E</div><div class='add'>+0x586E = 0x84A6</div><div class='add'>+0x586F = 0x84A8</div><div class='add'>+0x5870 = 0x84A9</div><div class='add'>+0x5871 = 0x84AA</div><div class='add'>+0x5872 = 0x84AF</div><div class='add'>+0x5873 = 0x84B1</div><div class='add'>+0x5874 = 0x84B4</div><div class='add'>+0x5875 = 0x84BA</div><div class='add'>+0x5876 = 0x84BD</div><div class='add'>+0x5877 = 0x84BE</div><div class='add'>+0x5878 = 0x84C0</div><div class='add'>+0x5879 = 0x84C2</div><div class='add'>+0x587A = 0x84C7</div><div class='add'>+0x587B = 0x84C8</div><div class='add'>+0x587C = 0x84CC</div><div class='add'>+0x587D = 0x84CF</div><div class='add'>+0x587E = 0x84D3</div><div class='add'>+0x5921 = 0x84DC</div><div class='add'>+0x5922 = 0x84E7</div><div class='add'>+0x5923 = 0x84EA</div><div class='add'>+0x5924 = 0x84EF</div><div class='add'>+0x5925 = 0x84F0</div><div class='add'>+0x5926 = 0x84F1</div><div class='add'>+0x5927 = 0x84F2</div><div class='add'>+0x5928 = 0x84F7</div><div class='add'>+0x5929 = 0x8532</div><div class='add'>+0x592A = 0x84FA</div><div class='add'>+0x592B = 0x84FB</div><div class='add'>+0x592C = 0x84FD</div><div class='add'>+0x592D = 0x8502</div><div class='add'>+0x592E = 0x8503</div><div class='add'>+0x592F = 0x8507</div><div class='add'>+0x5930 = 0x850C</div><div class='add'>+0x5931 = 0x850E</div><div class='add'>+0x5932 = 0x8510</div><div class='add'>+0x5933 = 0x851C</div><div class='add'>+0x5934 = 0x851E</div><div class='add'>+0x5935 = 0x8522</div><div class='add'>+0x5936 = 0x8523</div><div class='add'>+0x5937 = 0x8524</div><div class='add'>+0x5938 = 0x8525</div><div class='add'>+0x5939 = 0x8527</div><div class='add'>+0x593A = 0x852A</div><div class='add'>+0x593B = 0x852B</div><div class='add'>+0x593C = 0x852F</div><div class='add'>+0x593D = 0x8533</div><div class='add'>+0x593E = 0x8534</div><div class='add'>+0x593F = 0x8536</div><div class='add'>+0x5940 = 0x853F</div><div class='add'>+0x5941 = 0x8546</div><div class='add'>+0x5942 = 0x854F</div><div class='add'>+0x5943 = 0x8550</div><div class='add'>+0x5944 = 0x8551</div><div class='add'>+0x5945 = 0x8552</div><div class='add'>+0x5946 = 0x8553</div><div class='add'>+0x5947 = 0x8556</div><div class='add'>+0x5948 = 0x8559</div><div class='add'>+0x5949 = 0x855C</div><div class='add'>+0x594A = 0x855D</div><div class='add'>+0x594B = 0x855E</div><div class='add'>+0x594C = 0x855F</div><div class='add'>+0x594D = 0x8560</div><div class='add'>+0x594E = 0x8561</div><div class='add'>+0x594F = 0x8562</div><div class='add'>+0x5950 = 0x8564</div><div class='add'>+0x5951 = 0x856B</div><div class='add'>+0x5952 = 0x856F</div><div class='add'>+0x5953 = 0x8579</div><div class='add'>+0x5954 = 0x857A</div><div class='add'>+0x5955 = 0x857B</div><div class='add'>+0x5956 = 0x857D</div><div class='add'>+0x5957 = 0x857F</div><div class='add'>+0x5958 = 0x8581</div><div class='add'>+0x5959 = 0x8585</div><div class='add'>+0x595A = 0x8586</div><div class='add'>+0x595B = 0x8589</div><div class='add'>+0x595C = 0x858B</div><div class='add'>+0x595D = 0x858C</div><div class='add'>+0x595E = 0x858F</div><div class='add'>+0x595F = 0x8593</div><div class='add'>+0x5960 = 0x8598</div><div class='add'>+0x5961 = 0x859D</div><div class='add'>+0x5962 = 0x859F</div><div class='add'>+0x5963 = 0x85A0</div><div class='add'>+0x5964 = 0x85A2</div><div class='add'>+0x5965 = 0x85A5</div><div class='add'>+0x5966 = 0x85A7</div><div class='add'>+0x5967 = 0x85B4</div><div class='add'>+0x5968 = 0x85B6</div><div class='add'>+0x5969 = 0x85B7</div><div class='add'>+0x596A = 0x85B8</div><div class='add'>+0x596B = 0x85BC</div><div class='add'>+0x596C = 0x85BD</div><div class='add'>+0x596D = 0x85BE</div><div class='add'>+0x596E = 0x85BF</div><div class='add'>+0x596F = 0x85C2</div><div class='add'>+0x5970 = 0x85C7</div><div class='add'>+0x5971 = 0x85CA</div><div class='add'>+0x5972 = 0x85CB</div><div class='add'>+0x5973 = 0x85CE</div><div class='add'>+0x5974 = 0x85AD</div><div class='add'>+0x5975 = 0x85D8</div><div class='add'>+0x5976 = 0x85DA</div><div class='add'>+0x5977 = 0x85DF</div><div class='add'>+0x5978 = 0x85E0</div><div class='add'>+0x5979 = 0x85E6</div><div class='add'>+0x597A = 0x85E8</div><div class='add'>+0x597B = 0x85ED</div><div class='add'>+0x597C = 0x85F3</div><div class='add'>+0x597D = 0x85F6</div><div class='add'>+0x597E = 0x85FC</div><div class='add'>+0x5A21 = 0x85FF</div><div class='add'>+0x5A22 = 0x8600</div><div class='add'>+0x5A23 = 0x8604</div><div class='add'>+0x5A24 = 0x8605</div><div class='add'>+0x5A25 = 0x860D</div><div class='add'>+0x5A26 = 0x860E</div><div class='add'>+0x5A27 = 0x8610</div><div class='add'>+0x5A28 = 0x8611</div><div class='add'>+0x5A29 = 0x8612</div><div class='add'>+0x5A2A = 0x8618</div><div class='add'>+0x5A2B = 0x8619</div><div class='add'>+0x5A2C = 0x861B</div><div class='add'>+0x5A2D = 0x861E</div><div class='add'>+0x5A2E = 0x8621</div><div class='add'>+0x5A2F = 0x8627</div><div class='add'>+0x5A30 = 0x8629</div><div class='add'>+0x5A31 = 0x8636</div><div class='add'>+0x5A32 = 0x8638</div><div class='add'>+0x5A33 = 0x863A</div><div class='add'>+0x5A34 = 0x863C</div><div class='add'>+0x5A35 = 0x863D</div><div class='add'>+0x5A36 = 0x8640</div><div class='add'>+0x5A37 = 0x8642</div><div class='add'>+0x5A38 = 0x8646</div><div class='add'>+0x5A39 = 0x8652</div><div class='add'>+0x5A3A = 0x8653</div><div class='add'>+0x5A3B = 0x8656</div><div class='add'>+0x5A3C = 0x8657</div><div class='add'>+0x5A3D = 0x8658</div><div class='add'>+0x5A3E = 0x8659</div><div class='add'>+0x5A3F = 0x865D</div><div class='add'>+0x5A40 = 0x8660</div><div class='add'>+0x5A41 = 0x8661</div><div class='add'>+0x5A42 = 0x8662</div><div class='add'>+0x5A43 = 0x8663</div><div class='add'>+0x5A44 = 0x8664</div><div class='add'>+0x5A45 = 0x8669</div><div class='add'>+0x5A46 = 0x866C</div><div class='add'>+0x5A47 = 0x866F</div><div class='add'>+0x5A48 = 0x8675</div><div class='add'>+0x5A49 = 0x8676</div><div class='add'>+0x5A4A = 0x8677</div><div class='add'>+0x5A4B = 0x867A</div><div class='add'>+0x5A4C = 0x868D</div><div class='add'>+0x5A4D = 0x8691</div><div class='add'>+0x5A4E = 0x8696</div><div class='add'>+0x5A4F = 0x8698</div><div class='add'>+0x5A50 = 0x869A</div><div class='add'>+0x5A51 = 0x869C</div><div class='add'>+0x5A52 = 0x86A1</div><div class='add'>+0x5A53 = 0x86A6</div><div class='add'>+0x5A54 = 0x86A7</div><div class='add'>+0x5A55 = 0x86A8</div><div class='add'>+0x5A56 = 0x86AD</div><div class='add'>+0x5A57 = 0x86B1</div><div class='add'>+0x5A58 = 0x86B3</div><div class='add'>+0x5A59 = 0x86B4</div><div class='add'>+0x5A5A = 0x86B5</div><div class='add'>+0x5A5B = 0x86B7</div><div class='add'>+0x5A5C = 0x86B8</div><div class='add'>+0x5A5D = 0x86B9</div><div class='add'>+0x5A5E = 0x86BF</div><div class='add'>+0x5A5F = 0x86C0</div><div class='add'>+0x5A60 = 0x86C1</div><div class='add'>+0x5A61 = 0x86C3</div><div class='add'>+0x5A62 = 0x86C5</div><div class='add'>+0x5A63 = 0x86D1</div><div class='add'>+0x5A64 = 0x86D2</div><div class='add'>+0x5A65 = 0x86D5</div><div class='add'>+0x5A66 = 0x86D7</div><div class='add'>+0x5A67 = 0x86DA</div><div class='add'>+0x5A68 = 0x86DC</div><div class='add'>+0x5A69 = 0x86E0</div><div class='add'>+0x5A6A = 0x86E3</div><div class='add'>+0x5A6B = 0x86E5</div><div class='add'>+0x5A6C = 0x86E7</div><div class='add'>+0x5A6D = 0x8688</div><div class='add'>+0x5A6E = 0x86FA</div><div class='add'>+0x5A6F = 0x86FC</div><div class='add'>+0x5A70 = 0x86FD</div><div class='add'>+0x5A71 = 0x8704</div><div class='add'>+0x5A72 = 0x8705</div><div class='add'>+0x5A73 = 0x8707</div><div class='add'>+0x5A74 = 0x870B</div><div class='add'>+0x5A75 = 0x870E</div><div class='add'>+0x5A76 = 0x870F</div><div class='add'>+0x5A77 = 0x8710</div><div class='add'>+0x5A78 = 0x8713</div><div class='add'>+0x5A79 = 0x8714</div><div class='add'>+0x5A7A = 0x8719</div><div class='add'>+0x5A7B = 0x871E</div><div class='add'>+0x5A7C = 0x871F</div><div class='add'>+0x5A7D = 0x8721</div><div class='add'>+0x5A7E = 0x8723</div><div class='add'>+0x5B21 = 0x8728</div><div class='add'>+0x5B22 = 0x872E</div><div class='add'>+0x5B23 = 0x872F</div><div class='add'>+0x5B24 = 0x8731</div><div class='add'>+0x5B25 = 0x8732</div><div class='add'>+0x5B26 = 0x8739</div><div class='add'>+0x5B27 = 0x873A</div><div class='add'>+0x5B28 = 0x873C</div><div class='add'>+0x5B29 = 0x873D</div><div class='add'>+0x5B2A = 0x873E</div><div class='add'>+0x5B2B = 0x8740</div><div class='add'>+0x5B2C = 0x8743</div><div class='add'>+0x5B2D = 0x8745</div><div class='add'>+0x5B2E = 0x874D</div><div class='add'>+0x5B2F = 0x8758</div><div class='add'>+0x5B30 = 0x875D</div><div class='add'>+0x5B31 = 0x8761</div><div class='add'>+0x5B32 = 0x8764</div><div class='add'>+0x5B33 = 0x8765</div><div class='add'>+0x5B34 = 0x876F</div><div class='add'>+0x5B35 = 0x8771</div><div class='add'>+0x5B36 = 0x8772</div><div class='add'>+0x5B37 = 0x877B</div><div class='add'>+0x5B38 = 0x8783</div><div class='add'>+0x5B39 = 0x8784</div><div class='add'>+0x5B3A = 0x8785</div><div class='add'>+0x5B3B = 0x8786</div><div class='add'>+0x5B3C = 0x8787</div><div class='add'>+0x5B3D = 0x8788</div><div class='add'>+0x5B3E = 0x8789</div><div class='add'>+0x5B3F = 0x878B</div><div class='add'>+0x5B40 = 0x878C</div><div class='add'>+0x5B41 = 0x8790</div><div class='add'>+0x5B42 = 0x8793</div><div class='add'>+0x5B43 = 0x8795</div><div class='add'>+0x5B44 = 0x8797</div><div class='add'>+0x5B45 = 0x8798</div><div class='add'>+0x5B46 = 0x8799</div><div class='add'>+0x5B47 = 0x879E</div><div class='add'>+0x5B48 = 0x87A0</div><div class='add'>+0x5B49 = 0x87A3</div><div class='add'>+0x5B4A = 0x87A7</div><div class='add'>+0x5B4B = 0x87AC</div><div class='add'>+0x5B4C = 0x87AD</div><div class='add'>+0x5B4D = 0x87AE</div><div class='add'>+0x5B4E = 0x87B1</div><div class='add'>+0x5B4F = 0x87B5</div><div class='add'>+0x5B50 = 0x87BE</div><div class='add'>+0x5B51 = 0x87BF</div><div class='add'>+0x5B52 = 0x87C1</div><div class='add'>+0x5B53 = 0x87C8</div><div class='add'>+0x5B54 = 0x87C9</div><div class='add'>+0x5B55 = 0x87CA</div><div class='add'>+0x5B56 = 0x87CE</div><div class='add'>+0x5B57 = 0x87D5</div><div class='add'>+0x5B58 = 0x87D6</div><div class='add'>+0x5B59 = 0x87D9</div><div class='add'>+0x5B5A = 0x87DA</div><div class='add'>+0x5B5B = 0x87DC</div><div class='add'>+0x5B5C = 0x87DF</div><div class='add'>+0x5B5D = 0x87E2</div><div class='add'>+0x5B5E = 0x87E3</div><div class='add'>+0x5B5F = 0x87E4</div><div class='add'>+0x5B60 = 0x87EA</div><div class='add'>+0x5B61 = 0x87EB</div><div class='add'>+0x5B62 = 0x87ED</div><div class='add'>+0x5B63 = 0x87F1</div><div class='add'>+0x5B64 = 0x87F3</div><div class='add'>+0x5B65 = 0x87F8</div><div class='add'>+0x5B66 = 0x87FA</div><div class='add'>+0x5B67 = 0x87FF</div><div class='add'>+0x5B68 = 0x8801</div><div class='add'>+0x5B69 = 0x8803</div><div class='add'>+0x5B6A = 0x8806</div><div class='add'>+0x5B6B = 0x8809</div><div class='add'>+0x5B6C = 0x880A</div><div class='add'>+0x5B6D = 0x880B</div><div class='add'>+0x5B6E = 0x8810</div><div class='add'>+0x5B6F = 0x8819</div><div class='add'>+0x5B70 = 0x8812</div><div class='add'>+0x5B71 = 0x8813</div><div class='add'>+0x5B72 = 0x8814</div><div class='add'>+0x5B73 = 0x8818</div><div class='add'>+0x5B74 = 0x881A</div><div class='add'>+0x5B75 = 0x881B</div><div class='add'>+0x5B76 = 0x881C</div><div class='add'>+0x5B77 = 0x881E</div><div class='add'>+0x5B78 = 0x881F</div><div class='add'>+0x5B79 = 0x8828</div><div class='add'>+0x5B7A = 0x882D</div><div class='add'>+0x5B7B = 0x882E</div><div class='add'>+0x5B7C = 0x8830</div><div class='add'>+0x5B7D = 0x8832</div><div class='add'>+0x5B7E = 0x8835</div><div class='add'>+0x5C21 = 0x883A</div><div class='add'>+0x5C22 = 0x883C</div><div class='add'>+0x5C23 = 0x8841</div><div class='add'>+0x5C24 = 0x8843</div><div class='add'>+0x5C25 = 0x8845</div><div class='add'>+0x5C26 = 0x8848</div><div class='add'>+0x5C27 = 0x8849</div><div class='add'>+0x5C28 = 0x884A</div><div class='add'>+0x5C29 = 0x884B</div><div class='add'>+0x5C2A = 0x884E</div><div class='add'>+0x5C2B = 0x8851</div><div class='add'>+0x5C2C = 0x8855</div><div class='add'>+0x5C2D = 0x8856</div><div class='add'>+0x5C2E = 0x8858</div><div class='add'>+0x5C2F = 0x885A</div><div class='add'>+0x5C30 = 0x885C</div><div class='add'>+0x5C31 = 0x885F</div><div class='add'>+0x5C32 = 0x8860</div><div class='add'>+0x5C33 = 0x8864</div><div class='add'>+0x5C34 = 0x8869</div><div class='add'>+0x5C35 = 0x8871</div><div class='add'>+0x5C36 = 0x8879</div><div class='add'>+0x5C37 = 0x887B</div><div class='add'>+0x5C38 = 0x8880</div><div class='add'>+0x5C39 = 0x8898</div><div class='add'>+0x5C3A = 0x889A</div><div class='add'>+0x5C3B = 0x889B</div><div class='add'>+0x5C3C = 0x889C</div><div class='add'>+0x5C3D = 0x889F</div><div class='add'>+0x5C3E = 0x88A0</div><div class='add'>+0x5C3F = 0x88A8</div><div class='add'>+0x5C40 = 0x88AA</div><div class='add'>+0x5C41 = 0x88BA</div><div class='add'>+0x5C42 = 0x88BD</div><div class='add'>+0x5C43 = 0x88BE</div><div class='add'>+0x5C44 = 0x88C0</div><div class='add'>+0x5C45 = 0x88CA</div><div class='add'>+0x5C46 = 0x88CB</div><div class='add'>+0x5C47 = 0x88CC</div><div class='add'>+0x5C48 = 0x88CD</div><div class='add'>+0x5C49 = 0x88CE</div><div class='add'>+0x5C4A = 0x88D1</div><div class='add'>+0x5C4B = 0x88D2</div><div class='add'>+0x5C4C = 0x88D3</div><div class='add'>+0x5C4D = 0x88DB</div><div class='add'>+0x5C4E = 0x88DE</div><div class='add'>+0x5C4F = 0x88E7</div><div class='add'>+0x5C50 = 0x88EF</div><div class='add'>+0x5C51 = 0x88F0</div><div class='add'>+0x5C52 = 0x88F1</div><div class='add'>+0x5C53 = 0x88F5</div><div class='add'>+0x5C54 = 0x88F7</div><div class='add'>+0x5C55 = 0x8901</div><div class='add'>+0x5C56 = 0x8906</div><div class='add'>+0x5C57 = 0x890D</div><div class='add'>+0x5C58 = 0x890E</div><div class='add'>+0x5C59 = 0x890F</div><div class='add'>+0x5C5A = 0x8915</div><div class='add'>+0x5C5B = 0x8916</div><div class='add'>+0x5C5C = 0x8918</div><div class='add'>+0x5C5D = 0x8919</div><div class='add'>+0x5C5E = 0x891A</div><div class='add'>+0x5C5F = 0x891C</div><div class='add'>+0x5C60 = 0x8920</div><div class='add'>+0x5C61 = 0x8926</div><div class='add'>+0x5C62 = 0x8927</div><div class='add'>+0x5C63 = 0x8928</div><div class='add'>+0x5C64 = 0x8930</div><div class='add'>+0x5C65 = 0x8931</div><div class='add'>+0x5C66 = 0x8932</div><div class='add'>+0x5C67 = 0x8935</div><div class='add'>+0x5C68 = 0x8939</div><div class='add'>+0x5C69 = 0x893A</div><div class='add'>+0x5C6A = 0x893E</div><div class='add'>+0x5C6B = 0x8940</div><div class='add'>+0x5C6C = 0x8942</div><div class='add'>+0x5C6D = 0x8945</div><div class='add'>+0x5C6E = 0x8946</div><div class='add'>+0x5C6F = 0x8949</div><div class='add'>+0x5C70 = 0x894F</div><div class='add'>+0x5C71 = 0x8952</div><div class='add'>+0x5C72 = 0x8957</div><div class='add'>+0x5C73 = 0x895A</div><div class='add'>+0x5C74 = 0x895B</div><div class='add'>+0x5C75 = 0x895C</div><div class='add'>+0x5C76 = 0x8961</div><div class='add'>+0x5C77 = 0x8962</div><div class='add'>+0x5C78 = 0x8963</div><div class='add'>+0x5C79 = 0x896B</div><div class='add'>+0x5C7A = 0x896E</div><div class='add'>+0x5C7B = 0x8970</div><div class='add'>+0x5C7C = 0x8973</div><div class='add'>+0x5C7D = 0x8975</div><div class='add'>+0x5C7E = 0x897A</div><div class='add'>+0x5D21 = 0x897B</div><div class='add'>+0x5D22 = 0x897C</div><div class='add'>+0x5D23 = 0x897D</div><div class='add'>+0x5D24 = 0x8989</div><div class='add'>+0x5D25 = 0x898D</div><div class='add'>+0x5D26 = 0x8990</div><div class='add'>+0x5D27 = 0x8994</div><div class='add'>+0x5D28 = 0x8995</div><div class='add'>+0x5D29 = 0x899B</div><div class='add'>+0x5D2A = 0x899C</div><div class='add'>+0x5D2B = 0x899F</div><div class='add'>+0x5D2C = 0x89A0</div><div class='add'>+0x5D2D = 0x89A5</div><div class='add'>+0x5D2E = 0x89B0</div><div class='add'>+0x5D2F = 0x89B4</div><div class='add'>+0x5D30 = 0x89B5</div><div class='add'>+0x5D31 = 0x89B6</div><div class='add'>+0x5D32 = 0x89B7</div><div class='add'>+0x5D33 = 0x89BC</div><div class='add'>+0x5D34 = 0x89D4</div><div class='add'>+0x5D35 = 0x89D5</div><div class='add'>+0x5D36 = 0x89D6</div><div class='add'>+0x5D37 = 0x89D7</div><div class='add'>+0x5D38 = 0x89D8</div><div class='add'>+0x5D39 = 0x89E5</div><div class='add'>+0x5D3A = 0x89E9</div><div class='add'>+0x5D3B = 0x89EB</div><div class='add'>+0x5D3C = 0x89ED</div><div class='add'>+0x5D3D = 0x89F1</div><div class='add'>+0x5D3E = 0x89F3</div><div class='add'>+0x5D3F = 0x89F6</div><div class='add'>+0x5D40 = 0x89F9</div><div class='add'>+0x5D41 = 0x89FD</div><div class='add'>+0x5D42 = 0x89FF</div><div class='add'>+0x5D43 = 0x8A04</div><div class='add'>+0x5D44 = 0x8A05</div><div class='add'>+0x5D45 = 0x8A07</div><div class='add'>+0x5D46 = 0x8A0F</div><div class='add'>+0x5D47 = 0x8A11</div><div class='add'>+0x5D48 = 0x8A12</div><div class='add'>+0x5D49 = 0x8A14</div><div class='add'>+0x5D4A = 0x8A15</div><div class='add'>+0x5D4B = 0x8A1E</div><div class='add'>+0x5D4C = 0x8A20</div><div class='add'>+0x5D4D = 0x8A22</div><div class='add'>+0x5D4E = 0x8A24</div><div class='add'>+0x5D4F = 0x8A26</div><div class='add'>+0x5D50 = 0x8A2B</div><div class='add'>+0x5D51 = 0x8A2C</div><div class='add'>+0x5D52 = 0x8A2F</div><div class='add'>+0x5D53 = 0x8A35</div><div class='add'>+0x5D54 = 0x8A37</div><div class='add'>+0x5D55 = 0x8A3D</div><div class='add'>+0x5D56 = 0x8A3E</div><div class='add'>+0x5D57 = 0x8A40</div><div class='add'>+0x5D58 = 0x8A43</div><div class='add'>+0x5D59 = 0x8A45</div><div class='add'>+0x5D5A = 0x8A47</div><div class='add'>+0x5D5B = 0x8A49</div><div class='add'>+0x5D5C = 0x8A4D</div><div class='add'>+0x5D5D = 0x8A4E</div><div class='add'>+0x5D5E = 0x8A53</div><div class='add'>+0x5D5F = 0x8A56</div><div class='add'>+0x5D60 = 0x8A57</div><div class='add'>+0x5D61 = 0x8A58</div><div class='add'>+0x5D62 = 0x8A5C</div><div class='add'>+0x5D63 = 0x8A5D</div><div class='add'>+0x5D64 = 0x8A61</div><div class='add'>+0x5D65 = 0x8A65</div><div class='add'>+0x5D66 = 0x8A67</div><div class='add'>+0x5D67 = 0x8A75</div><div class='add'>+0x5D68 = 0x8A76</div><div class='add'>+0x5D69 = 0x8A77</div><div class='add'>+0x5D6A = 0x8A79</div><div class='add'>+0x5D6B = 0x8A7A</div><div class='add'>+0x5D6C = 0x8A7B</div><div class='add'>+0x5D6D = 0x8A7E</div><div class='add'>+0x5D6E = 0x8A7F</div><div class='add'>+0x5D6F = 0x8A80</div><div class='add'>+0x5D70 = 0x8A83</div><div class='add'>+0x5D71 = 0x8A86</div><div class='add'>+0x5D72 = 0x8A8B</div><div class='add'>+0x5D73 = 0x8A8F</div><div class='add'>+0x5D74 = 0x8A90</div><div class='add'>+0x5D75 = 0x8A92</div><div class='add'>+0x5D76 = 0x8A96</div><div class='add'>+0x5D77 = 0x8A97</div><div class='add'>+0x5D78 = 0x8A99</div><div class='add'>+0x5D79 = 0x8A9F</div><div class='add'>+0x5D7A = 0x8AA7</div><div class='add'>+0x5D7B = 0x8AA9</div><div class='add'>+0x5D7C = 0x8AAE</div><div class='add'>+0x5D7D = 0x8AAF</div><div class='add'>+0x5D7E = 0x8AB3</div><div class='add'>+0x5E21 = 0x8AB6</div><div class='add'>+0x5E22 = 0x8AB7</div><div class='add'>+0x5E23 = 0x8ABB</div><div class='add'>+0x5E24 = 0x8ABE</div><div class='add'>+0x5E25 = 0x8AC3</div><div class='add'>+0x5E26 = 0x8AC6</div><div class='add'>+0x5E27 = 0x8AC8</div><div class='add'>+0x5E28 = 0x8AC9</div><div class='add'>+0x5E29 = 0x8ACA</div><div class='add'>+0x5E2A = 0x8AD1</div><div class='add'>+0x5E2B = 0x8AD3</div><div class='add'>+0x5E2C = 0x8AD4</div><div class='add'>+0x5E2D = 0x8AD5</div><div class='add'>+0x5E2E = 0x8AD7</div><div class='add'>+0x5E2F = 0x8ADD</div><div class='add'>+0x5E30 = 0x8ADF</div><div class='add'>+0x5E31 = 0x8AEC</div><div class='add'>+0x5E32 = 0x8AF0</div><div class='add'>+0x5E33 = 0x8AF4</div><div class='add'>+0x5E34 = 0x8AF5</div><div class='add'>+0x5E35 = 0x8AF6</div><div class='add'>+0x5E36 = 0x8AFC</div><div class='add'>+0x5E37 = 0x8AFF</div><div class='add'>+0x5E38 = 0x8B05</div><div class='add'>+0x5E39 = 0x8B06</div><div class='add'>+0x5E3A = 0x8B0B</div><div class='add'>+0x5E3B = 0x8B11</div><div class='add'>+0x5E3C = 0x8B1C</div><div class='add'>+0x5E3D = 0x8B1E</div><div class='add'>+0x5E3E = 0x8B1F</div><div class='add'>+0x5E3F = 0x8B0A</div><div class='add'>+0x5E40 = 0x8B2D</div><div class='add'>+0x5E41 = 0x8B30</div><div class='add'>+0x5E42 = 0x8B37</div><div class='add'>+0x5E43 = 0x8B3C</div><div class='add'>+0x5E44 = 0x8B42</div><div class='add'>+0x5E45 = 0x8B43</div><div class='add'>+0x5E46 = 0x8B44</div><div class='add'>+0x5E47 = 0x8B45</div><div class='add'>+0x5E48 = 0x8B46</div><div class='add'>+0x5E49 = 0x8B48</div><div class='add'>+0x5E4A = 0x8B52</div><div class='add'>+0x5E4B = 0x8B53</div><div class='add'>+0x5E4C = 0x8B54</div><div class='add'>+0x5E4D = 0x8B59</div><div class='add'>+0x5E4E = 0x8B4D</div><div class='add'>+0x5E4F = 0x8B5E</div><div class='add'>+0x5E50 = 0x8B63</div><div class='add'>+0x5E51 = 0x8B6D</div><div class='add'>+0x5E52 = 0x8B76</div><div class='add'>+0x5E53 = 0x8B78</div><div class='add'>+0x5E54 = 0x8B79</div><div class='add'>+0x5E55 = 0x8B7C</div><div class='add'>+0x5E56 = 0x8B7E</div><div class='add'>+0x5E57 = 0x8B81</div><div class='add'>+0x5E58 = 0x8B84</div><div class='add'>+0x5E59 = 0x8B85</div><div class='add'>+0x5E5A = 0x8B8B</div><div class='add'>+0x5E5B = 0x8B8D</div><div class='add'>+0x5E5C = 0x8B8F</div><div class='add'>+0x5E5D = 0x8B94</div><div class='add'>+0x5E5E = 0x8B95</div><div class='add'>+0x5E5F = 0x8B9C</div><div class='add'>+0x5E60 = 0x8B9E</div><div class='add'>+0x5E61 = 0x8B9F</div><div class='add'>+0x5E62 = 0x8C38</div><div class='add'>+0x5E63 = 0x8C39</div><div class='add'>+0x5E64 = 0x8C3D</div><div class='add'>+0x5E65 = 0x8C3E</div><div class='add'>+0x5E66 = 0x8C45</div><div class='add'>+0x5E67 = 0x8C47</div><div class='add'>+0x5E68 = 0x8C49</div><div class='add'>+0x5E69 = 0x8C4B</div><div class='add'>+0x5E6A = 0x8C4F</div><div class='add'>+0x5E6B = 0x8C51</div><div class='add'>+0x5E6C = 0x8C53</div><div class='add'>+0x5E6D = 0x8C54</div><div class='add'>+0x5E6E = 0x8C57</div><div class='add'>+0x5E6F = 0x8C58</div><div class='add'>+0x5E70 = 0x8C5B</div><div class='add'>+0x5E71 = 0x8C5D</div><div class='add'>+0x5E72 = 0x8C59</div><div class='add'>+0x5E73 = 0x8C63</div><div class='add'>+0x5E74 = 0x8C64</div><div class='add'>+0x5E75 = 0x8C66</div><div class='add'>+0x5E76 = 0x8C68</div><div class='add'>+0x5E77 = 0x8C69</div><div class='add'>+0x5E78 = 0x8C6D</div><div class='add'>+0x5E79 = 0x8C73</div><div class='add'>+0x5E7A = 0x8C75</div><div class='add'>+0x5E7B = 0x8C76</div><div class='add'>+0x5E7C = 0x8C7B</div><div class='add'>+0x5E7D = 0x8C7E</div><div class='add'>+0x5E7E = 0x8C86</div><div class='add'>+0x5F21 = 0x8C87</div><div class='add'>+0x5F22 = 0x8C8B</div><div class='add'>+0x5F23 = 0x8C90</div><div class='add'>+0x5F24 = 0x8C92</div><div class='add'>+0x5F25 = 0x8C93</div><div class='add'>+0x5F26 = 0x8C99</div><div class='add'>+0x5F27 = 0x8C9B</div><div class='add'>+0x5F28 = 0x8C9C</div><div class='add'>+0x5F29 = 0x8CA4</div><div class='add'>+0x5F2A = 0x8CB9</div><div class='add'>+0x5F2B = 0x8CBA</div><div class='add'>+0x5F2C = 0x8CC5</div><div class='add'>+0x5F2D = 0x8CC6</div><div class='add'>+0x5F2E = 0x8CC9</div><div class='add'>+0x5F2F = 0x8CCB</div><div class='add'>+0x5F30 = 0x8CCF</div><div class='add'>+0x5F31 = 0x8CD6</div><div class='add'>+0x5F32 = 0x8CD5</div><div class='add'>+0x5F33 = 0x8CD9</div><div class='add'>+0x5F34 = 0x8CDD</div><div class='add'>+0x5F35 = 0x8CE1</div><div class='add'>+0x5F36 = 0x8CE8</div><div class='add'>+0x5F37 = 0x8CEC</div><div class='add'>+0x5F38 = 0x8CEF</div><div class='add'>+0x5F39 = 0x8CF0</div><div class='add'>+0x5F3A = 0x8CF2</div><div class='add'>+0x5F3B = 0x8CF5</div><div class='add'>+0x5F3C = 0x8CF7</div><div class='add'>+0x5F3D = 0x8CF8</div><div class='add'>+0x5F3E = 0x8CFE</div><div class='add'>+0x5F3F = 0x8CFF</div><div class='add'>+0x5F40 = 0x8D01</div><div class='add'>+0x5F41 = 0x8D03</div><div class='add'>+0x5F42 = 0x8D09</div><div class='add'>+0x5F43 = 0x8D12</div><div class='add'>+0x5F44 = 0x8D17</div><div class='add'>+0x5F45 = 0x8D1B</div><div class='add'>+0x5F46 = 0x8D65</div><div class='add'>+0x5F47 = 0x8D69</div><div class='add'>+0x5F48 = 0x8D6C</div><div class='add'>+0x5F49 = 0x8D6E</div><div class='add'>+0x5F4A = 0x8D7F</div><div class='add'>+0x5F4B = 0x8D82</div><div class='add'>+0x5F4C = 0x8D84</div><div class='add'>+0x5F4D = 0x8D88</div><div class='add'>+0x5F4E = 0x8D8D</div><div class='add'>+0x5F4F = 0x8D90</div><div class='add'>+0x5F50 = 0x8D91</div><div class='add'>+0x5F51 = 0x8D95</div><div class='add'>+0x5F52 = 0x8D9E</div><div class='add'>+0x5F53 = 0x8D9F</div><div class='add'>+0x5F54 = 0x8DA0</div><div class='add'>+0x5F55 = 0x8DA6</div><div class='add'>+0x5F56 = 0x8DAB</div><div class='add'>+0x5F57 = 0x8DAC</div><div class='add'>+0x5F58 = 0x8DAF</div><div class='add'>+0x5F59 = 0x8DB2</div><div class='add'>+0x5F5A = 0x8DB5</div><div class='add'>+0x5F5B = 0x8DB7</div><div class='add'>+0x5F5C = 0x8DB9</div><div class='add'>+0x5F5D = 0x8DBB</div><div class='add'>+0x5F5E = 0x8DC0</div><div class='add'>+0x5F5F = 0x8DC5</div><div class='add'>+0x5F60 = 0x8DC6</div><div class='add'>+0x5F61 = 0x8DC7</div><div class='add'>+0x5F62 = 0x8DC8</div><div class='add'>+0x5F63 = 0x8DCA</div><div class='add'>+0x5F64 = 0x8DCE</div><div class='add'>+0x5F65 = 0x8DD1</div><div class='add'>+0x5F66 = 0x8DD4</div><div class='add'>+0x5F67 = 0x8DD5</div><div class='add'>+0x5F68 = 0x8DD7</div><div class='add'>+0x5F69 = 0x8DD9</div><div class='add'>+0x5F6A = 0x8DE4</div><div class='add'>+0x5F6B = 0x8DE5</div><div class='add'>+0x5F6C = 0x8DE7</div><div class='add'>+0x5F6D = 0x8DEC</div><div class='add'>+0x5F6E = 0x8DF0</div><div class='add'>+0x5F6F = 0x8DBC</div><div class='add'>+0x5F70 = 0x8DF1</div><div class='add'>+0x5F71 = 0x8DF2</div><div class='add'>+0x5F72 = 0x8DF4</div><div class='add'>+0x5F73 = 0x8DFD</div><div class='add'>+0x5F74 = 0x8E01</div><div class='add'>+0x5F75 = 0x8E04</div><div class='add'>+0x5F76 = 0x8E05</div><div class='add'>+0x5F77 = 0x8E06</div><div class='add'>+0x5F78 = 0x8E0B</div><div class='add'>+0x5F79 = 0x8E11</div><div class='add'>+0x5F7A = 0x8E14</div><div class='add'>+0x5F7B = 0x8E16</div><div class='add'>+0x5F7C = 0x8E20</div><div class='add'>+0x5F7D = 0x8E21</div><div class='add'>+0x5F7E = 0x8E22</div><div class='add'>+0x6021 = 0x8E23</div><div class='add'>+0x6022 = 0x8E26</div><div class='add'>+0x6023 = 0x8E27</div><div class='add'>+0x6024 = 0x8E31</div><div class='add'>+0x6025 = 0x8E33</div><div class='add'>+0x6026 = 0x8E36</div><div class='add'>+0x6027 = 0x8E37</div><div class='add'>+0x6028 = 0x8E38</div><div class='add'>+0x6029 = 0x8E39</div><div class='add'>+0x602A = 0x8E3D</div><div class='add'>+0x602B = 0x8E40</div><div class='add'>+0x602C = 0x8E41</div><div class='add'>+0x602D = 0x8E4B</div><div class='add'>+0x602E = 0x8E4D</div><div class='add'>+0x602F = 0x8E4E</div><div class='add'>+0x6030 = 0x8E4F</div><div class='add'>+0x6031 = 0x8E54</div><div class='add'>+0x6032 = 0x8E5B</div><div class='add'>+0x6033 = 0x8E5C</div><div class='add'>+0x6034 = 0x8E5D</div><div class='add'>+0x6035 = 0x8E5E</div><div class='add'>+0x6036 = 0x8E61</div><div class='add'>+0x6037 = 0x8E62</div><div class='add'>+0x6038 = 0x8E69</div><div class='add'>+0x6039 = 0x8E6C</div><div class='add'>+0x603A = 0x8E6D</div><div class='add'>+0x603B = 0x8E6F</div><div class='add'>+0x603C = 0x8E70</div><div class='add'>+0x603D = 0x8E71</div><div class='add'>+0x603E = 0x8E79</div><div class='add'>+0x603F = 0x8E7A</div><div class='add'>+0x6040 = 0x8E7B</div><div class='add'>+0x6041 = 0x8E82</div><div class='add'>+0x6042 = 0x8E83</div><div class='add'>+0x6043 = 0x8E89</div><div class='add'>+0x6044 = 0x8E90</div><div class='add'>+0x6045 = 0x8E92</div><div class='add'>+0x6046 = 0x8E95</div><div class='add'>+0x6047 = 0x8E9A</div><div class='add'>+0x6048 = 0x8E9B</div><div class='add'>+0x6049 = 0x8E9D</div><div class='add'>+0x604A = 0x8E9E</div><div class='add'>+0x604B = 0x8EA2</div><div class='add'>+0x604C = 0x8EA7</div><div class='add'>+0x604D = 0x8EA9</div><div class='add'>+0x604E = 0x8EAD</div><div class='add'>+0x604F = 0x8EAE</div><div class='add'>+0x6050 = 0x8EB3</div><div class='add'>+0x6051 = 0x8EB5</div><div class='add'>+0x6052 = 0x8EBA</div><div class='add'>+0x6053 = 0x8EBB</div><div class='add'>+0x6054 = 0x8EC0</div><div class='add'>+0x6055 = 0x8EC1</div><div class='add'>+0x6056 = 0x8EC3</div><div class='add'>+0x6057 = 0x8EC4</div><div class='add'>+0x6058 = 0x8EC7</div><div class='add'>+0x6059 = 0x8ECF</div><div class='add'>+0x605A = 0x8ED1</div><div class='add'>+0x605B = 0x8ED4</div><div class='add'>+0x605C = 0x8EDC</div><div class='add'>+0x605D = 0x8EE8</div><div class='add'>+0x605E = 0x8EEE</div><div class='add'>+0x605F = 0x8EF0</div><div class='add'>+0x6060 = 0x8EF1</div><div class='add'>+0x6061 = 0x8EF7</div><div class='add'>+0x6062 = 0x8EF9</div><div class='add'>+0x6063 = 0x8EFA</div><div class='add'>+0x6064 = 0x8EED</div><div class='add'>+0x6065 = 0x8F00</div><div class='add'>+0x6066 = 0x8F02</div><div class='add'>+0x6067 = 0x8F07</div><div class='add'>+0x6068 = 0x8F08</div><div class='add'>+0x6069 = 0x8F0F</div><div class='add'>+0x606A = 0x8F10</div><div class='add'>+0x606B = 0x8F16</div><div class='add'>+0x606C = 0x8F17</div><div class='add'>+0x606D = 0x8F18</div><div class='add'>+0x606E = 0x8F1E</div><div class='add'>+0x606F = 0x8F20</div><div class='add'>+0x6070 = 0x8F21</div><div class='add'>+0x6071 = 0x8F23</div><div class='add'>+0x6072 = 0x8F25</div><div class='add'>+0x6073 = 0x8F27</div><div class='add'>+0x6074 = 0x8F28</div><div class='add'>+0x6075 = 0x8F2C</div><div class='add'>+0x6076 = 0x8F2D</div><div class='add'>+0x6077 = 0x8F2E</div><div class='add'>+0x6078 = 0x8F34</div><div class='add'>+0x6079 = 0x8F35</div><div class='add'>+0x607A = 0x8F36</div><div class='add'>+0x607B = 0x8F37</div><div class='add'>+0x607C = 0x8F3A</div><div class='add'>+0x607D = 0x8F40</div><div class='add'>+0x607E = 0x8F41</div><div class='add'>+0x6121 = 0x8F43</div><div class='add'>+0x6122 = 0x8F47</div><div class='add'>+0x6123 = 0x8F4F</div><div class='add'>+0x6124 = 0x8F51</div><div class='add'>+0x6125 = 0x8F52</div><div class='add'>+0x6126 = 0x8F53</div><div class='add'>+0x6127 = 0x8F54</div><div class='add'>+0x6128 = 0x8F55</div><div class='add'>+0x6129 = 0x8F58</div><div class='add'>+0x612A = 0x8F5D</div><div class='add'>+0x612B = 0x8F5E</div><div class='add'>+0x612C = 0x8F65</div><div class='add'>+0x612D = 0x8F9D</div><div class='add'>+0x612E = 0x8FA0</div><div class='add'>+0x612F = 0x8FA1</div><div class='add'>+0x6130 = 0x8FA4</div><div class='add'>+0x6131 = 0x8FA5</div><div class='add'>+0x6132 = 0x8FA6</div><div class='add'>+0x6133 = 0x8FB5</div><div class='add'>+0x6134 = 0x8FB6</div><div class='add'>+0x6135 = 0x8FB8</div><div class='add'>+0x6136 = 0x8FBE</div><div class='add'>+0x6137 = 0x8FC0</div><div class='add'>+0x6138 = 0x8FC1</div><div class='add'>+0x6139 = 0x8FC6</div><div class='add'>+0x613A = 0x8FCA</div><div class='add'>+0x613B = 0x8FCB</div><div class='add'>+0x613C = 0x8FCD</div><div class='add'>+0x613D = 0x8FD0</div><div class='add'>+0x613E = 0x8FD2</div><div class='add'>+0x613F = 0x8FD3</div><div class='add'>+0x6140 = 0x8FD5</div><div class='add'>+0x6141 = 0x8FE0</div><div class='add'>+0x6142 = 0x8FE3</div><div class='add'>+0x6143 = 0x8FE4</div><div class='add'>+0x6144 = 0x8FE8</div><div class='add'>+0x6145 = 0x8FEE</div><div class='add'>+0x6146 = 0x8FF1</div><div class='add'>+0x6147 = 0x8FF5</div><div class='add'>+0x6148 = 0x8FF6</div><div class='add'>+0x6149 = 0x8FFB</div><div class='add'>+0x614A = 0x8FFE</div><div class='add'>+0x614B = 0x9002</div><div class='add'>+0x614C = 0x9004</div><div class='add'>+0x614D = 0x9008</div><div class='add'>+0x614E = 0x900C</div><div class='add'>+0x614F = 0x9018</div><div class='add'>+0x6150 = 0x901B</div><div class='add'>+0x6151 = 0x9028</div><div class='add'>+0x6152 = 0x9029</div><div class='add'>+0x6153 = 0x902F</div><div class='add'>+0x6154 = 0x902A</div><div class='add'>+0x6155 = 0x902C</div><div class='add'>+0x6156 = 0x902D</div><div class='add'>+0x6157 = 0x9033</div><div class='add'>+0x6158 = 0x9034</div><div class='add'>+0x6159 = 0x9037</div><div class='add'>+0x615A = 0x903F</div><div class='add'>+0x615B = 0x9043</div><div class='add'>+0x615C = 0x9044</div><div class='add'>+0x615D = 0x904C</div><div class='add'>+0x615E = 0x905B</div><div class='add'>+0x615F = 0x905D</div><div class='add'>+0x6160 = 0x9062</div><div class='add'>+0x6161 = 0x9066</div><div class='add'>+0x6162 = 0x9067</div><div class='add'>+0x6163 = 0x906C</div><div class='add'>+0x6164 = 0x9070</div><div class='add'>+0x6165 = 0x9074</div><div class='add'>+0x6166 = 0x9079</div><div class='add'>+0x6167 = 0x9085</div><div class='add'>+0x6168 = 0x9088</div><div class='add'>+0x6169 = 0x908B</div><div class='add'>+0x616A = 0x908C</div><div class='add'>+0x616B = 0x908E</div><div class='add'>+0x616C = 0x9090</div><div class='add'>+0x616D = 0x9095</div><div class='add'>+0x616E = 0x9097</div><div class='add'>+0x616F = 0x9098</div><div class='add'>+0x6170 = 0x9099</div><div class='add'>+0x6171 = 0x909B</div><div class='add'>+0x6172 = 0x90A0</div><div class='add'>+0x6173 = 0x90A1</div><div class='add'>+0x6174 = 0x90A2</div><div class='add'>+0x6175 = 0x90A5</div><div class='add'>+0x6176 = 0x90B0</div><div class='add'>+0x6177 = 0x90B2</div><div class='add'>+0x6178 = 0x90B3</div><div class='add'>+0x6179 = 0x90B4</div><div class='add'>+0x617A = 0x90B6</div><div class='add'>+0x617B = 0x90BD</div><div class='add'>+0x617C = 0x90CC</div><div class='add'>+0x617D = 0x90BE</div><div class='add'>+0x617E = 0x90C3</div><div class='add'>+0x6221 = 0x90C4</div><div class='add'>+0x6222 = 0x90C5</div><div class='add'>+0x6223 = 0x90C7</div><div class='add'>+0x6224 = 0x90C8</div><div class='add'>+0x6225 = 0x90D5</div><div class='add'>+0x6226 = 0x90D7</div><div class='add'>+0x6227 = 0x90D8</div><div class='add'>+0x6228 = 0x90D9</div><div class='add'>+0x6229 = 0x90DC</div><div class='add'>+0x622A = 0x90DD</div><div class='add'>+0x622B = 0x90DF</div><div class='add'>+0x622C = 0x90E5</div><div class='add'>+0x622D = 0x90D2</div><div class='add'>+0x622E = 0x90F6</div><div class='add'>+0x622F = 0x90EB</div><div class='add'>+0x6230 = 0x90EF</div><div class='add'>+0x6231 = 0x90F0</div><div class='add'>+0x6232 = 0x90F4</div><div class='add'>+0x6233 = 0x90FE</div><div class='add'>+0x6234 = 0x90FF</div><div class='add'>+0x6235 = 0x9100</div><div class='add'>+0x6236 = 0x9104</div><div class='add'>+0x6237 = 0x9105</div><div class='add'>+0x6238 = 0x9106</div><div class='add'>+0x6239 = 0x9108</div><div class='add'>+0x623A = 0x910D</div><div class='add'>+0x623B = 0x9110</div><div class='add'>+0x623C = 0x9114</div><div class='add'>+0x623D = 0x9116</div><div class='add'>+0x623E = 0x9117</div><div class='add'>+0x623F = 0x9118</div><div class='add'>+0x6240 = 0x911A</div><div class='add'>+0x6241 = 0x911C</div><div class='add'>+0x6242 = 0x911E</div><div class='add'>+0x6243 = 0x9120</div><div class='add'>+0x6244 = 0x9125</div><div class='add'>+0x6245 = 0x9122</div><div class='add'>+0x6246 = 0x9123</div><div class='add'>+0x6247 = 0x9127</div><div class='add'>+0x6248 = 0x9129</div><div class='add'>+0x6249 = 0x912E</div><div class='add'>+0x624A = 0x912F</div><div class='add'>+0x624B = 0x9131</div><div class='add'>+0x624C = 0x9134</div><div class='add'>+0x624D = 0x9136</div><div class='add'>+0x624E = 0x9137</div><div class='add'>+0x624F = 0x9139</div><div class='add'>+0x6250 = 0x913A</div><div class='add'>+0x6251 = 0x913C</div><div class='add'>+0x6252 = 0x913D</div><div class='add'>+0x6253 = 0x9143</div><div class='add'>+0x6254 = 0x9147</div><div class='add'>+0x6255 = 0x9148</div><div class='add'>+0x6256 = 0x914F</div><div class='add'>+0x6257 = 0x9153</div><div class='add'>+0x6258 = 0x9157</div><div class='add'>+0x6259 = 0x9159</div><div class='add'>+0x625A = 0x915A</div><div class='add'>+0x625B = 0x915B</div><div class='add'>+0x625C = 0x9161</div><div class='add'>+0x625D = 0x9164</div><div class='add'>+0x625E = 0x9167</div><div class='add'>+0x625F = 0x916D</div><div class='add'>+0x6260 = 0x9174</div><div class='add'>+0x6261 = 0x9179</div><div class='add'>+0x6262 = 0x917A</div><div class='add'>+0x6263 = 0x917B</div><div class='add'>+0x6264 = 0x9181</div><div class='add'>+0x6265 = 0x9183</div><div class='add'>+0x6266 = 0x9185</div><div class='add'>+0x6267 = 0x9186</div><div class='add'>+0x6268 = 0x918A</div><div class='add'>+0x6269 = 0x918E</div><div class='add'>+0x626A = 0x9191</div><div class='add'>+0x626B = 0x9193</div><div class='add'>+0x626C = 0x9194</div><div class='add'>+0x626D = 0x9195</div><div class='add'>+0x626E = 0x9198</div><div class='add'>+0x626F = 0x919E</div><div class='add'>+0x6270 = 0x91A1</div><div class='add'>+0x6271 = 0x91A6</div><div class='add'>+0x6272 = 0x91A8</div><div class='add'>+0x6273 = 0x91AC</div><div class='add'>+0x6274 = 0x91AD</div><div class='add'>+0x6275 = 0x91AE</div><div class='add'>+0x6276 = 0x91B0</div><div class='add'>+0x6277 = 0x91B1</div><div class='add'>+0x6278 = 0x91B2</div><div class='add'>+0x6279 = 0x91B3</div><div class='add'>+0x627A = 0x91B6</div><div class='add'>+0x627B = 0x91BB</div><div class='add'>+0x627C = 0x91BC</div><div class='add'>+0x627D = 0x91BD</div><div class='add'>+0x627E = 0x91BF</div><div class='add'>+0x6321 = 0x91C2</div><div class='add'>+0x6322 = 0x91C3</div><div class='add'>+0x6323 = 0x91C5</div><div class='add'>+0x6324 = 0x91D3</div><div class='add'>+0x6325 = 0x91D4</div><div class='add'>+0x6326 = 0x91D7</div><div class='add'>+0x6327 = 0x91D9</div><div class='add'>+0x6328 = 0x91DA</div><div class='add'>+0x6329 = 0x91DE</div><div class='add'>+0x632A = 0x91E4</div><div class='add'>+0x632B = 0x91E5</div><div class='add'>+0x632C = 0x91E9</div><div class='add'>+0x632D = 0x91EA</div><div class='add'>+0x632E = 0x91EC</div><div class='add'>+0x632F = 0x91ED</div><div class='add'>+0x6330 = 0x91EE</div><div class='add'>+0x6331 = 0x91EF</div><div class='add'>+0x6332 = 0x91F0</div><div class='add'>+0x6333 = 0x91F1</div><div class='add'>+0x6334 = 0x91F7</div><div class='add'>+0x6335 = 0x91F9</div><div class='add'>+0x6336 = 0x91FB</div><div class='add'>+0x6337 = 0x91FD</div><div class='add'>+0x6338 = 0x9200</div><div class='add'>+0x6339 = 0x9201</div><div class='add'>+0x633A = 0x9204</div><div class='add'>+0x633B = 0x9205</div><div class='add'>+0x633C = 0x9206</div><div class='add'>+0x633D = 0x9207</div><div class='add'>+0x633E = 0x9209</div><div class='add'>+0x633F = 0x920A</div><div class='add'>+0x6340 = 0x920C</div><div class='add'>+0x6341 = 0x9210</div><div class='add'>+0x6342 = 0x9212</div><div class='add'>+0x6343 = 0x9213</div><div class='add'>+0x6344 = 0x9216</div><div class='add'>+0x6345 = 0x9218</div><div class='add'>+0x6346 = 0x921C</div><div class='add'>+0x6347 = 0x921D</div><div class='add'>+0x6348 = 0x9223</div><div class='add'>+0x6349 = 0x9224</div><div class='add'>+0x634A = 0x9225</div><div class='add'>+0x634B = 0x9226</div><div class='add'>+0x634C = 0x9228</div><div class='add'>+0x634D = 0x922E</div><div class='add'>+0x634E = 0x922F</div><div class='add'>+0x634F = 0x9230</div><div class='add'>+0x6350 = 0x9233</div><div class='add'>+0x6351 = 0x9235</div><div class='add'>+0x6352 = 0x9236</div><div class='add'>+0x6353 = 0x9238</div><div class='add'>+0x6354 = 0x9239</div><div class='add'>+0x6355 = 0x923A</div><div class='add'>+0x6356 = 0x923C</div><div class='add'>+0x6357 = 0x923E</div><div class='add'>+0x6358 = 0x9240</div><div class='add'>+0x6359 = 0x9242</div><div class='add'>+0x635A = 0x9243</div><div class='add'>+0x635B = 0x9246</div><div class='add'>+0x635C = 0x9247</div><div class='add'>+0x635D = 0x924A</div><div class='add'>+0x635E = 0x924D</div><div class='add'>+0x635F = 0x924E</div><div class='add'>+0x6360 = 0x924F</div><div class='add'>+0x6361 = 0x9251</div><div class='add'>+0x6362 = 0x9258</div><div class='add'>+0x6363 = 0x9259</div><div class='add'>+0x6364 = 0x925C</div><div class='add'>+0x6365 = 0x925D</div><div class='add'>+0x6366 = 0x9260</div><div class='add'>+0x6367 = 0x9261</div><div class='add'>+0x6368 = 0x9265</div><div class='add'>+0x6369 = 0x9267</div><div class='add'>+0x636A = 0x9268</div><div class='add'>+0x636B = 0x9269</div><div class='add'>+0x636C = 0x926E</div><div class='add'>+0x636D = 0x926F</div><div class='add'>+0x636E = 0x9270</div><div class='add'>+0x636F = 0x9275</div><div class='add'>+0x6370 = 0x9276</div><div class='add'>+0x6371 = 0x9277</div><div class='add'>+0x6372 = 0x9278</div><div class='add'>+0x6373 = 0x9279</div><div class='add'>+0x6374 = 0x927B</div><div class='add'>+0x6375 = 0x927C</div><div class='add'>+0x6376 = 0x927D</div><div class='add'>+0x6377 = 0x927F</div><div class='add'>+0x6378 = 0x9288</div><div class='add'>+0x6379 = 0x9289</div><div class='add'>+0x637A = 0x928A</div><div class='add'>+0x637B = 0x928D</div><div class='add'>+0x637C = 0x928E</div><div class='add'>+0x637D = 0x9292</div><div class='add'>+0x637E = 0x9297</div><div class='add'>+0x6421 = 0x9299</div><div class='add'>+0x6422 = 0x929F</div><div class='add'>+0x6423 = 0x92A0</div><div class='add'>+0x6424 = 0x92A4</div><div class='add'>+0x6425 = 0x92A5</div><div class='add'>+0x6426 = 0x92A7</div><div class='add'>+0x6427 = 0x92A8</div><div class='add'>+0x6428 = 0x92AB</div><div class='add'>+0x6429 = 0x92AF</div><div class='add'>+0x642A = 0x92B2</div><div class='add'>+0x642B = 0x92B6</div><div class='add'>+0x642C = 0x92B8</div><div class='add'>+0x642D = 0x92BA</div><div class='add'>+0x642E = 0x92BB</div><div class='add'>+0x642F = 0x92BC</div><div class='add'>+0x6430 = 0x92BD</div><div class='add'>+0x6431 = 0x92BF</div><div class='add'>+0x6432 = 0x92C0</div><div class='add'>+0x6433 = 0x92C1</div><div class='add'>+0x6434 = 0x92C2</div><div class='add'>+0x6435 = 0x92C3</div><div class='add'>+0x6436 = 0x92C5</div><div class='add'>+0x6437 = 0x92C6</div><div class='add'>+0x6438 = 0x92C7</div><div class='add'>+0x6439 = 0x92C8</div><div class='add'>+0x643A = 0x92CB</div><div class='add'>+0x643B = 0x92CC</div><div class='add'>+0x643C = 0x92CD</div><div class='add'>+0x643D = 0x92CE</div><div class='add'>+0x643E = 0x92D0</div><div class='add'>+0x643F = 0x92D3</div><div class='add'>+0x6440 = 0x92D5</div><div class='add'>+0x6441 = 0x92D7</div><div class='add'>+0x6442 = 0x92D8</div><div class='add'>+0x6443 = 0x92D9</div><div class='add'>+0x6444 = 0x92DC</div><div class='add'>+0x6445 = 0x92DD</div><div class='add'>+0x6446 = 0x92DF</div><div class='add'>+0x6447 = 0x92E0</div><div class='add'>+0x6448 = 0x92E1</div><div class='add'>+0x6449 = 0x92E3</div><div class='add'>+0x644A = 0x92E5</div><div class='add'>+0x644B = 0x92E7</div><div class='add'>+0x644C = 0x92E8</div><div class='add'>+0x644D = 0x92EC</div><div class='add'>+0x644E = 0x92EE</div><div class='add'>+0x644F = 0x92F0</div><div class='add'>+0x6450 = 0x92F9</div><div class='add'>+0x6451 = 0x92FB</div><div class='add'>+0x6452 = 0x92FF</div><div class='add'>+0x6453 = 0x9300</div><div class='add'>+0x6454 = 0x9302</div><div class='add'>+0x6455 = 0x9308</div><div class='add'>+0x6456 = 0x930D</div><div class='add'>+0x6457 = 0x9311</div><div class='add'>+0x6458 = 0x9314</div><div class='add'>+0x6459 = 0x9315</div><div class='add'>+0x645A = 0x931C</div><div class='add'>+0x645B = 0x931D</div><div class='add'>+0x645C = 0x931E</div><div class='add'>+0x645D = 0x931F</div><div class='add'>+0x645E = 0x9321</div><div class='add'>+0x645F = 0x9324</div><div class='add'>+0x6460 = 0x9325</div><div class='add'>+0x6461 = 0x9327</div><div class='add'>+0x6462 = 0x9329</div><div class='add'>+0x6463 = 0x932A</div><div class='add'>+0x6464 = 0x9333</div><div class='add'>+0x6465 = 0x9334</div><div class='add'>+0x6466 = 0x9336</div><div class='add'>+0x6467 = 0x9337</div><div class='add'>+0x6468 = 0x9347</div><div class='add'>+0x6469 = 0x9348</div><div class='add'>+0x646A = 0x9349</div><div class='add'>+0x646B = 0x9350</div><div class='add'>+0x646C = 0x9351</div><div class='add'>+0x646D = 0x9352</div><div class='add'>+0x646E = 0x9355</div><div class='add'>+0x646F = 0x9357</div><div class='add'>+0x6470 = 0x9358</div><div class='add'>+0x6471 = 0x935A</div><div class='add'>+0x6472 = 0x935E</div><div class='add'>+0x6473 = 0x9364</div><div class='add'>+0x6474 = 0x9365</div><div class='add'>+0x6475 = 0x9367</div><div class='add'>+0x6476 = 0x9369</div><div class='add'>+0x6477 = 0x936A</div><div class='add'>+0x6478 = 0x936D</div><div class='add'>+0x6479 = 0x936F</div><div class='add'>+0x647A = 0x9370</div><div class='add'>+0x647B = 0x9371</div><div class='add'>+0x647C = 0x9373</div><div class='add'>+0x647D = 0x9374</div><div class='add'>+0x647E = 0x9376</div><div class='add'>+0x6521 = 0x937A</div><div class='add'>+0x6522 = 0x937D</div><div class='add'>+0x6523 = 0x937F</div><div class='add'>+0x6524 = 0x9380</div><div class='add'>+0x6525 = 0x9381</div><div class='add'>+0x6526 = 0x9382</div><div class='add'>+0x6527 = 0x9388</div><div class='add'>+0x6528 = 0x938A</div><div class='add'>+0x6529 = 0x938B</div><div class='add'>+0x652A = 0x938D</div><div class='add'>+0x652B = 0x938F</div><div class='add'>+0x652C = 0x9392</div><div class='add'>+0x652D = 0x9395</div><div class='add'>+0x652E = 0x9398</div><div class='add'>+0x652F = 0x939B</div><div class='add'>+0x6530 = 0x939E</div><div class='add'>+0x6531 = 0x93A1</div><div class='add'>+0x6532 = 0x93A3</div><div class='add'>+0x6533 = 0x93A4</div><div class='add'>+0x6534 = 0x93A6</div><div class='add'>+0x6535 = 0x93A8</div><div class='add'>+0x6536 = 0x93AB</div><div class='add'>+0x6537 = 0x93B4</div><div class='add'>+0x6538 = 0x93B5</div><div class='add'>+0x6539 = 0x93B6</div><div class='add'>+0x653A = 0x93BA</div><div class='add'>+0x653B = 0x93A9</div><div class='add'>+0x653C = 0x93C1</div><div class='add'>+0x653D = 0x93C4</div><div class='add'>+0x653E = 0x93C5</div><div class='add'>+0x653F = 0x93C6</div><div class='add'>+0x6540 = 0x93C7</div><div class='add'>+0x6541 = 0x93C9</div><div class='add'>+0x6542 = 0x93CA</div><div class='add'>+0x6543 = 0x93CB</div><div class='add'>+0x6544 = 0x93CC</div><div class='add'>+0x6545 = 0x93CD</div><div class='add'>+0x6546 = 0x93D3</div><div class='add'>+0x6547 = 0x93D9</div><div class='add'>+0x6548 = 0x93DC</div><div class='add'>+0x6549 = 0x93DE</div><div class='add'>+0x654A = 0x93DF</div><div class='add'>+0x654B = 0x93E2</div><div class='add'>+0x654C = 0x93E6</div><div class='add'>+0x654D = 0x93E7</div><div class='add'>+0x654E = 0x93F9</div><div class='add'>+0x654F = 0x93F7</div><div class='add'>+0x6550 = 0x93F8</div><div class='add'>+0x6551 = 0x93FA</div><div class='add'>+0x6552 = 0x93FB</div><div class='add'>+0x6553 = 0x93FD</div><div class='add'>+0x6554 = 0x9401</div><div class='add'>+0x6555 = 0x9402</div><div class='add'>+0x6556 = 0x9404</div><div class='add'>+0x6557 = 0x9408</div><div class='add'>+0x6558 = 0x9409</div><div class='add'>+0x6559 = 0x940D</div><div class='add'>+0x655A = 0x940E</div><div class='add'>+0x655B = 0x940F</div><div class='add'>+0x655C = 0x9415</div><div class='add'>+0x655D = 0x9416</div><div class='add'>+0x655E = 0x9417</div><div class='add'>+0x655F = 0x941F</div><div class='add'>+0x6560 = 0x942E</div><div class='add'>+0x6561 = 0x942F</div><div class='add'>+0x6562 = 0x9431</div><div class='add'>+0x6563 = 0x9432</div><div class='add'>+0x6564 = 0x9433</div><div class='add'>+0x6565 = 0x9434</div><div class='add'>+0x6566 = 0x943B</div><div class='add'>+0x6567 = 0x943F</div><div class='add'>+0x6568 = 0x943D</div><div class='add'>+0x6569 = 0x9443</div><div class='add'>+0x656A = 0x9445</div><div class='add'>+0x656B = 0x9448</div><div class='add'>+0x656C = 0x944A</div><div class='add'>+0x656D = 0x944C</div><div class='add'>+0x656E = 0x9455</div><div class='add'>+0x656F = 0x9459</div><div class='add'>+0x6570 = 0x945C</div><div class='add'>+0x6571 = 0x945F</div><div class='add'>+0x6572 = 0x9461</div><div class='add'>+0x6573 = 0x9463</div><div class='add'>+0x6574 = 0x9468</div><div class='add'>+0x6575 = 0x946B</div><div class='add'>+0x6576 = 0x946D</div><div class='add'>+0x6577 = 0x946E</div><div class='add'>+0x6578 = 0x946F</div><div class='add'>+0x6579 = 0x9471</div><div class='add'>+0x657A = 0x9472</div><div class='add'>+0x657B = 0x9484</div><div class='add'>+0x657C = 0x9483</div><div class='add'>+0x657D = 0x9578</div><div class='add'>+0x657E = 0x9579</div><div class='add'>+0x6621 = 0x957E</div><div class='add'>+0x6622 = 0x9584</div><div class='add'>+0x6623 = 0x9588</div><div class='add'>+0x6624 = 0x958C</div><div class='add'>+0x6625 = 0x958D</div><div class='add'>+0x6626 = 0x958E</div><div class='add'>+0x6627 = 0x959D</div><div class='add'>+0x6628 = 0x959E</div><div class='add'>+0x6629 = 0x959F</div><div class='add'>+0x662A = 0x95A1</div><div class='add'>+0x662B = 0x95A6</div><div class='add'>+0x662C = 0x95A9</div><div class='add'>+0x662D = 0x95AB</div><div class='add'>+0x662E = 0x95AC</div><div class='add'>+0x662F = 0x95B4</div><div class='add'>+0x6630 = 0x95B6</div><div class='add'>+0x6631 = 0x95BA</div><div class='add'>+0x6632 = 0x95BD</div><div class='add'>+0x6633 = 0x95BF</div><div class='add'>+0x6634 = 0x95C6</div><div class='add'>+0x6635 = 0x95C8</div><div class='add'>+0x6636 = 0x95C9</div><div class='add'>+0x6637 = 0x95CB</div><div class='add'>+0x6638 = 0x95D0</div><div class='add'>+0x6639 = 0x95D1</div><div class='add'>+0x663A = 0x95D2</div><div class='add'>+0x663B = 0x95D3</div><div class='add'>+0x663C = 0x95D9</div><div class='add'>+0x663D = 0x95DA</div><div class='add'>+0x663E = 0x95DD</div><div class='add'>+0x663F = 0x95DE</div><div class='add'>+0x6640 = 0x95DF</div><div class='add'>+0x6641 = 0x95E0</div><div class='add'>+0x6642 = 0x95E4</div><div class='add'>+0x6643 = 0x95E6</div><div class='add'>+0x6644 = 0x961D</div><div class='add'>+0x6645 = 0x961E</div><div class='add'>+0x6646 = 0x9622</div><div class='add'>+0x6647 = 0x9624</div><div class='add'>+0x6648 = 0x9625</div><div class='add'>+0x6649 = 0x9626</div><div class='add'>+0x664A = 0x962C</div><div class='add'>+0x664B = 0x9631</div><div class='add'>+0x664C = 0x9633</div><div class='add'>+0x664D = 0x9637</div><div class='add'>+0x664E = 0x9638</div><div class='add'>+0x664F = 0x9639</div><div class='add'>+0x6650 = 0x963A</div><div class='add'>+0x6651 = 0x963C</div><div class='add'>+0x6652 = 0x963D</div><div class='add'>+0x6653 = 0x9641</div><div class='add'>+0x6654 = 0x9652</div><div class='add'>+0x6655 = 0x9654</div><div class='add'>+0x6656 = 0x9656</div><div class='add'>+0x6657 = 0x9657</div><div class='add'>+0x6658 = 0x9658</div><div class='add'>+0x6659 = 0x9661</div><div class='add'>+0x665A = 0x966E</div><div class='add'>+0x665B = 0x9674</div><div class='add'>+0x665C = 0x967B</div><div class='add'>+0x665D = 0x967C</div><div class='add'>+0x665E = 0x967E</div><div class='add'>+0x665F = 0x967F</div><div class='add'>+0x6660 = 0x9681</div><div class='add'>+0x6661 = 0x9682</div><div class='add'>+0x6662 = 0x9683</div><div class='add'>+0x6663 = 0x9684</div><div class='add'>+0x6664 = 0x9689</div><div class='add'>+0x6665 = 0x9691</div><div class='add'>+0x6666 = 0x9696</div><div class='add'>+0x6667 = 0x969A</div><div class='add'>+0x6668 = 0x969D</div><div class='add'>+0x6669 = 0x969F</div><div class='add'>+0x666A = 0x96A4</div><div class='add'>+0x666B = 0x96A5</div><div class='add'>+0x666C = 0x96A6</div><div class='add'>+0x666D = 0x96A9</div><div class='add'>+0x666E = 0x96AE</div><div class='add'>+0x666F = 0x96AF</div><div class='add'>+0x6670 = 0x96B3</div><div class='add'>+0x6671 = 0x96BA</div><div class='add'>+0x6672 = 0x96CA</div><div class='add'>+0x6673 = 0x96D2</div><div class='add'>+0x6674 = 0x5DB2</div><div class='add'>+0x6675 = 0x96D8</div><div class='add'>+0x6676 = 0x96DA</div><div class='add'>+0x6677 = 0x96DD</div><div class='add'>+0x6678 = 0x96DE</div><div class='add'>+0x6679 = 0x96DF</div><div class='add'>+0x667A = 0x96E9</div><div class='add'>+0x667B = 0x96EF</div><div class='add'>+0x667C = 0x96F1</div><div class='add'>+0x667D = 0x96FA</div><div class='add'>+0x667E = 0x9702</div><div class='add'>+0x6721 = 0x9703</div><div class='add'>+0x6722 = 0x9705</div><div class='add'>+0x6723 = 0x9709</div><div class='add'>+0x6724 = 0x971A</div><div class='add'>+0x6725 = 0x971B</div><div class='add'>+0x6726 = 0x971D</div><div class='add'>+0x6727 = 0x9721</div><div class='add'>+0x6728 = 0x9722</div><div class='add'>+0x6729 = 0x9723</div><div class='add'>+0x672A = 0x9728</div><div class='add'>+0x672B = 0x9731</div><div class='add'>+0x672C = 0x9733</div><div class='add'>+0x672D = 0x9741</div><div class='add'>+0x672E = 0x9743</div><div class='add'>+0x672F = 0x974A</div><div class='add'>+0x6730 = 0x974E</div><div class='add'>+0x6731 = 0x974F</div><div class='add'>+0x6732 = 0x9755</div><div class='add'>+0x6733 = 0x9757</div><div class='add'>+0x6734 = 0x9758</div><div class='add'>+0x6735 = 0x975A</div><div class='add'>+0x6736 = 0x975B</div><div class='add'>+0x6737 = 0x9763</div><div class='add'>+0x6738 = 0x9767</div><div class='add'>+0x6739 = 0x976A</div><div class='add'>+0x673A = 0x976E</div><div class='add'>+0x673B = 0x9773</div><div class='add'>+0x673C = 0x9776</div><div class='add'>+0x673D = 0x9777</div><div class='add'>+0x673E = 0x9778</div><div class='add'>+0x673F = 0x977B</div><div class='add'>+0x6740 = 0x977D</div><div class='add'>+0x6741 = 0x977F</div><div class='add'>+0x6742 = 0x9780</div><div class='add'>+0x6743 = 0x9789</div><div class='add'>+0x6744 = 0x9795</div><div class='add'>+0x6745 = 0x9796</div><div class='add'>+0x6746 = 0x9797</div><div class='add'>+0x6747 = 0x9799</div><div class='add'>+0x6748 = 0x979A</div><div class='add'>+0x6749 = 0x979E</div><div class='add'>+0x674A = 0x979F</div><div class='add'>+0x674B = 0x97A2</div><div class='add'>+0x674C = 0x97AC</div><div class='add'>+0x674D = 0x97AE</div><div class='add'>+0x674E = 0x97B1</div><div class='add'>+0x674F = 0x97B2</div><div class='add'>+0x6750 = 0x97B5</div><div class='add'>+0x6751 = 0x97B6</div><div class='add'>+0x6752 = 0x97B8</div><div class='add'>+0x6753 = 0x97B9</div><div class='add'>+0x6754 = 0x97BA</div><div class='add'>+0x6755 = 0x97BC</div><div class='add'>+0x6756 = 0x97BE</div><div class='add'>+0x6757 = 0x97BF</div><div class='add'>+0x6758 = 0x97C1</div><div class='add'>+0x6759 = 0x97C4</div><div class='add'>+0x675A = 0x97C5</div><div class='add'>+0x675B = 0x97C7</div><div class='add'>+0x675C = 0x97C9</div><div class='add'>+0x675D = 0x97CA</div><div class='add'>+0x675E = 0x97CC</div><div class='add'>+0x675F = 0x97CD</div><div class='add'>+0x6760 = 0x97CE</div><div class='add'>+0x6761 = 0x97D0</div><div class='add'>+0x6762 = 0x97D1</div><div class='add'>+0x6763 = 0x97D4</div><div class='add'>+0x6764 = 0x97D7</div><div class='add'>+0x6765 = 0x97D8</div><div class='add'>+0x6766 = 0x97D9</div><div class='add'>+0x6767 = 0x97DD</div><div class='add'>+0x6768 = 0x97DE</div><div class='add'>+0x6769 = 0x97E0</div><div class='add'>+0x676A = 0x97DB</div><div class='add'>+0x676B = 0x97E1</div><div class='add'>+0x676C = 0x97E4</div><div class='add'>+0x676D = 0x97EF</div><div class='add'>+0x676E = 0x97F1</div><div class='add'>+0x676F = 0x97F4</div><div class='add'>+0x6770 = 0x97F7</div><div class='add'>+0x6771 = 0x97F8</div><div class='add'>+0x6772 = 0x97FA</div><div class='add'>+0x6773 = 0x9807</div><div class='add'>+0x6774 = 0x980A</div><div class='add'>+0x6775 = 0x9819</div><div class='add'>+0x6776 = 0x980D</div><div class='add'>+0x6777 = 0x980E</div><div class='add'>+0x6778 = 0x9814</div><div class='add'>+0x6779 = 0x9816</div><div class='add'>+0x677A = 0x981C</div><div class='add'>+0x677B = 0x981E</div><div class='add'>+0x677C = 0x9820</div><div class='add'>+0x677D = 0x9823</div><div class='add'>+0x677E = 0x9826</div><div class='add'>+0x6821 = 0x982B</div><div class='add'>+0x6822 = 0x982E</div><div class='add'>+0x6823 = 0x982F</div><div class='add'>+0x6824 = 0x9830</div><div class='add'>+0x6825 = 0x9832</div><div class='add'>+0x6826 = 0x9833</div><div class='add'>+0x6827 = 0x9835</div><div class='add'>+0x6828 = 0x9825</div><div class='add'>+0x6829 = 0x983E</div><div class='add'>+0x682A = 0x9844</div><div class='add'>+0x682B = 0x9847</div><div class='add'>+0x682C = 0x984A</div><div class='add'>+0x682D = 0x9851</div><div class='add'>+0x682E = 0x9852</div><div class='add'>+0x682F = 0x9853</div><div class='add'>+0x6830 = 0x9856</div><div class='add'>+0x6831 = 0x9857</div><div class='add'>+0x6832 = 0x9859</div><div class='add'>+0x6833 = 0x985A</div><div class='add'>+0x6834 = 0x9862</div><div class='add'>+0x6835 = 0x9863</div><div class='add'>+0x6836 = 0x9865</div><div class='add'>+0x6837 = 0x9866</div><div class='add'>+0x6838 = 0x986A</div><div class='add'>+0x6839 = 0x986C</div><div class='add'>+0x683A = 0x98AB</div><div class='add'>+0x683B = 0x98AD</div><div class='add'>+0x683C = 0x98AE</div><div class='add'>+0x683D = 0x98B0</div><div class='add'>+0x683E = 0x98B4</div><div class='add'>+0x683F = 0x98B7</div><div class='add'>+0x6840 = 0x98B8</div><div class='add'>+0x6841 = 0x98BA</div><div class='add'>+0x6842 = 0x98BB</div><div class='add'>+0x6843 = 0x98BF</div><div class='add'>+0x6844 = 0x98C2</div><div class='add'>+0x6845 = 0x98C5</div><div class='add'>+0x6846 = 0x98C8</div><div class='add'>+0x6847 = 0x98CC</div><div class='add'>+0x6848 = 0x98E1</div><div class='add'>+0x6849 = 0x98E3</div><div class='add'>+0x684A = 0x98E5</div><div class='add'>+0x684B = 0x98E6</div><div class='add'>+0x684C = 0x98E7</div><div class='add'>+0x684D = 0x98EA</div><div class='add'>+0x684E = 0x98F3</div><div class='add'>+0x684F = 0x98F6</div><div class='add'>+0x6850 = 0x9902</div><div class='add'>+0x6851 = 0x9907</div><div class='add'>+0x6852 = 0x9908</div><div class='add'>+0x6853 = 0x9911</div><div class='add'>+0x6854 = 0x9915</div><div class='add'>+0x6855 = 0x9916</div><div class='add'>+0x6856 = 0x9917</div><div class='add'>+0x6857 = 0x991A</div><div class='add'>+0x6858 = 0x991B</div><div class='add'>+0x6859 = 0x991C</div><div class='add'>+0x685A = 0x991F</div><div class='add'>+0x685B = 0x9922</div><div class='add'>+0x685C = 0x9926</div><div class='add'>+0x685D = 0x9927</div><div class='add'>+0x685E = 0x992B</div><div class='add'>+0x685F = 0x9931</div><div class='add'>+0x6860 = 0x9932</div><div class='add'>+0x6861 = 0x9933</div><div class='add'>+0x6862 = 0x9934</div><div class='add'>+0x6863 = 0x9935</div><div class='add'>+0x6864 = 0x9939</div><div class='add'>+0x6865 = 0x993A</div><div class='add'>+0x6866 = 0x993B</div><div class='add'>+0x6867 = 0x993C</div><div class='add'>+0x6868 = 0x9940</div><div class='add'>+0x6869 = 0x9941</div><div class='add'>+0x686A = 0x9946</div><div class='add'>+0x686B = 0x9947</div><div class='add'>+0x686C = 0x9948</div><div class='add'>+0x686D = 0x994D</div><div class='add'>+0x686E = 0x994E</div><div class='add'>+0x686F = 0x9954</div><div class='add'>+0x6870 = 0x9958</div><div class='add'>+0x6871 = 0x9959</div><div class='add'>+0x6872 = 0x995B</div><div class='add'>+0x6873 = 0x995C</div><div class='add'>+0x6874 = 0x995E</div><div class='add'>+0x6875 = 0x995F</div><div class='add'>+0x6876 = 0x9960</div><div class='add'>+0x6877 = 0x999B</div><div class='add'>+0x6878 = 0x999D</div><div class='add'>+0x6879 = 0x999F</div><div class='add'>+0x687A = 0x99A6</div><div class='add'>+0x687B = 0x99B0</div><div class='add'>+0x687C = 0x99B1</div><div class='add'>+0x687D = 0x99B2</div><div class='add'>+0x687E = 0x99B5</div><div class='add'>+0x6921 = 0x99B9</div><div class='add'>+0x6922 = 0x99BA</div><div class='add'>+0x6923 = 0x99BD</div><div class='add'>+0x6924 = 0x99BF</div><div class='add'>+0x6925 = 0x99C3</div><div class='add'>+0x6926 = 0x99C9</div><div class='add'>+0x6927 = 0x99D3</div><div class='add'>+0x6928 = 0x99D4</div><div class='add'>+0x6929 = 0x99D9</div><div class='add'>+0x692A = 0x99DA</div><div class='add'>+0x692B = 0x99DC</div><div class='add'>+0x692C = 0x99DE</div><div class='add'>+0x692D = 0x99E7</div><div class='add'>+0x692E = 0x99EA</div><div class='add'>+0x692F = 0x99EB</div><div class='add'>+0x6930 = 0x99EC</div><div class='add'>+0x6931 = 0x99F0</div><div class='add'>+0x6932 = 0x99F4</div><div class='add'>+0x6933 = 0x99F5</div><div class='add'>+0x6934 = 0x99F9</div><div class='add'>+0x6935 = 0x99FD</div><div class='add'>+0x6936 = 0x99FE</div><div class='add'>+0x6937 = 0x9A02</div><div class='add'>+0x6938 = 0x9A03</div><div class='add'>+0x6939 = 0x9A04</div><div class='add'>+0x693A = 0x9A0B</div><div class='add'>+0x693B = 0x9A0C</div><div class='add'>+0x693C = 0x9A10</div><div class='add'>+0x693D = 0x9A11</div><div class='add'>+0x693E = 0x9A16</div><div class='add'>+0x693F = 0x9A1E</div><div class='add'>+0x6940 = 0x9A20</div><div class='add'>+0x6941 = 0x9A22</div><div class='add'>+0x6942 = 0x9A23</div><div class='add'>+0x6943 = 0x9A24</div><div class='add'>+0x6944 = 0x9A27</div><div class='add'>+0x6945 = 0x9A2D</div><div class='add'>+0x6946 = 0x9A2E</div><div class='add'>+0x6947 = 0x9A33</div><div class='add'>+0x6948 = 0x9A35</div><div class='add'>+0x6949 = 0x9A36</div><div class='add'>+0x694A = 0x9A38</div><div class='add'>+0x694B = 0x9A47</div><div class='add'>+0x694C = 0x9A41</div><div class='add'>+0x694D = 0x9A44</div><div class='add'>+0x694E = 0x9A4A</div><div class='add'>+0x694F = 0x9A4B</div><div class='add'>+0x6950 = 0x9A4C</div><div class='add'>+0x6951 = 0x9A4E</div><div class='add'>+0x6952 = 0x9A51</div><div class='add'>+0x6953 = 0x9A54</div><div class='add'>+0x6954 = 0x9A56</div><div class='add'>+0x6955 = 0x9A5D</div><div class='add'>+0x6956 = 0x9AAA</div><div class='add'>+0x6957 = 0x9AAC</div><div class='add'>+0x6958 = 0x9AAE</div><div class='add'>+0x6959 = 0x9AAF</div><div class='add'>+0x695A = 0x9AB2</div><div class='add'>+0x695B = 0x9AB4</div><div class='add'>+0x695C = 0x9AB5</div><div class='add'>+0x695D = 0x9AB6</div><div class='add'>+0x695E = 0x9AB9</div><div class='add'>+0x695F = 0x9ABB</div><div class='add'>+0x6960 = 0x9ABE</div><div class='add'>+0x6961 = 0x9ABF</div><div class='add'>+0x6962 = 0x9AC1</div><div class='add'>+0x6963 = 0x9AC3</div><div class='add'>+0x6964 = 0x9AC6</div><div class='add'>+0x6965 = 0x9AC8</div><div class='add'>+0x6966 = 0x9ACE</div><div class='add'>+0x6967 = 0x9AD0</div><div class='add'>+0x6968 = 0x9AD2</div><div class='add'>+0x6969 = 0x9AD5</div><div class='add'>+0x696A = 0x9AD6</div><div class='add'>+0x696B = 0x9AD7</div><div class='add'>+0x696C = 0x9ADB</div><div class='add'>+0x696D = 0x9ADC</div><div class='add'>+0x696E = 0x9AE0</div><div class='add'>+0x696F = 0x9AE4</div><div class='add'>+0x6970 = 0x9AE5</div><div class='add'>+0x6971 = 0x9AE7</div><div class='add'>+0x6972 = 0x9AE9</div><div class='add'>+0x6973 = 0x9AEC</div><div class='add'>+0x6974 = 0x9AF2</div><div class='add'>+0x6975 = 0x9AF3</div><div class='add'>+0x6976 = 0x9AF5</div><div class='add'>+0x6977 = 0x9AF9</div><div class='add'>+0x6978 = 0x9AFA</div><div class='add'>+0x6979 = 0x9AFD</div><div class='add'>+0x697A = 0x9AFF</div><div class='add'>+0x697B = 0x9B00</div><div class='add'>+0x697C = 0x9B01</div><div class='add'>+0x697D = 0x9B02</div><div class='add'>+0x697E = 0x9B03</div><div class='add'>+0x6A21 = 0x9B04</div><div class='add'>+0x6A22 = 0x9B05</div><div class='add'>+0x6A23 = 0x9B08</div><div class='add'>+0x6A24 = 0x9B09</div><div class='add'>+0x6A25 = 0x9B0B</div><div class='add'>+0x6A26 = 0x9B0C</div><div class='add'>+0x6A27 = 0x9B0D</div><div class='add'>+0x6A28 = 0x9B0E</div><div class='add'>+0x6A29 = 0x9B10</div><div class='add'>+0x6A2A = 0x9B12</div><div class='add'>+0x6A2B = 0x9B16</div><div class='add'>+0x6A2C = 0x9B19</div><div class='add'>+0x6A2D = 0x9B1B</div><div class='add'>+0x6A2E = 0x9B1C</div><div class='add'>+0x6A2F = 0x9B20</div><div class='add'>+0x6A30 = 0x9B26</div><div class='add'>+0x6A31 = 0x9B2B</div><div class='add'>+0x6A32 = 0x9B2D</div><div class='add'>+0x6A33 = 0x9B33</div><div class='add'>+0x6A34 = 0x9B34</div><div class='add'>+0x6A35 = 0x9B35</div><div class='add'>+0x6A36 = 0x9B37</div><div class='add'>+0x6A37 = 0x9B39</div><div class='add'>+0x6A38 = 0x9B3A</div><div class='add'>+0x6A39 = 0x9B3D</div><div class='add'>+0x6A3A = 0x9B48</div><div class='add'>+0x6A3B = 0x9B4B</div><div class='add'>+0x6A3C = 0x9B4C</div><div class='add'>+0x6A3D = 0x9B55</div><div class='add'>+0x6A3E = 0x9B56</div><div class='add'>+0x6A3F = 0x9B57</div><div class='add'>+0x6A40 = 0x9B5B</div><div class='add'>+0x6A41 = 0x9B5E</div><div class='add'>+0x6A42 = 0x9B61</div><div class='add'>+0x6A43 = 0x9B63</div><div class='add'>+0x6A44 = 0x9B65</div><div class='add'>+0x6A45 = 0x9B66</div><div class='add'>+0x6A46 = 0x9B68</div><div class='add'>+0x6A47 = 0x9B6A</div><div class='add'>+0x6A48 = 0x9B6B</div><div class='add'>+0x6A49 = 0x9B6C</div><div class='add'>+0x6A4A = 0x9B6D</div><div class='add'>+0x6A4B = 0x9B6E</div><div class='add'>+0x6A4C = 0x9B73</div><div class='add'>+0x6A4D = 0x9B75</div><div class='add'>+0x6A4E = 0x9B77</div><div class='add'>+0x6A4F = 0x9B78</div><div class='add'>+0x6A50 = 0x9B79</div><div class='add'>+0x6A51 = 0x9B7F</div><div class='add'>+0x6A52 = 0x9B80</div><div class='add'>+0x6A53 = 0x9B84</div><div class='add'>+0x6A54 = 0x9B85</div><div class='add'>+0x6A55 = 0x9B86</div><div class='add'>+0x6A56 = 0x9B87</div><div class='add'>+0x6A57 = 0x9B89</div><div class='add'>+0x6A58 = 0x9B8A</div><div class='add'>+0x6A59 = 0x9B8B</div><div class='add'>+0x6A5A = 0x9B8D</div><div class='add'>+0x6A5B = 0x9B8F</div><div class='add'>+0x6A5C = 0x9B90</div><div class='add'>+0x6A5D = 0x9B94</div><div class='add'>+0x6A5E = 0x9B9A</div><div class='add'>+0x6A5F = 0x9B9D</div><div class='add'>+0x6A60 = 0x9B9E</div><div class='add'>+0x6A61 = 0x9BA6</div><div class='add'>+0x6A62 = 0x9BA7</div><div class='add'>+0x6A63 = 0x9BA9</div><div class='add'>+0x6A64 = 0x9BAC</div><div class='add'>+0x6A65 = 0x9BB0</div><div class='add'>+0x6A66 = 0x9BB1</div><div class='add'>+0x6A67 = 0x9BB2</div><div class='add'>+0x6A68 = 0x9BB7</div><div class='add'>+0x6A69 = 0x9BB8</div><div class='add'>+0x6A6A = 0x9BBB</div><div class='add'>+0x6A6B = 0x9BBC</div><div class='add'>+0x6A6C = 0x9BBE</div><div class='add'>+0x6A6D = 0x9BBF</div><div class='add'>+0x6A6E = 0x9BC1</div><div class='add'>+0x6A6F = 0x9BC7</div><div class='add'>+0x6A70 = 0x9BC8</div><div class='add'>+0x6A71 = 0x9BCE</div><div class='add'>+0x6A72 = 0x9BD0</div><div class='add'>+0x6A73 = 0x9BD7</div><div class='add'>+0x6A74 = 0x9BD8</div><div class='add'>+0x6A75 = 0x9BDD</div><div class='add'>+0x6A76 = 0x9BDF</div><div class='add'>+0x6A77 = 0x9BE5</div><div class='add'>+0x6A78 = 0x9BE7</div><div class='add'>+0x6A79 = 0x9BEA</div><div class='add'>+0x6A7A = 0x9BEB</div><div class='add'>+0x6A7B = 0x9BEF</div><div class='add'>+0x6A7C = 0x9BF3</div><div class='add'>+0x6A7D = 0x9BF7</div><div class='add'>+0x6A7E = 0x9BF8</div><div class='add'>+0x6B21 = 0x9BF9</div><div class='add'>+0x6B22 = 0x9BFA</div><div class='add'>+0x6B23 = 0x9BFD</div><div class='add'>+0x6B24 = 0x9BFF</div><div class='add'>+0x6B25 = 0x9C00</div><div class='add'>+0x6B26 = 0x9C02</div><div class='add'>+0x6B27 = 0x9C0B</div><div class='add'>+0x6B28 = 0x9C0F</div><div class='add'>+0x6B29 = 0x9C11</div><div class='add'>+0x6B2A = 0x9C16</div><div class='add'>+0x6B2B = 0x9C18</div><div class='add'>+0x6B2C = 0x9C19</div><div class='add'>+0x6B2D = 0x9C1A</div><div class='add'>+0x6B2E = 0x9C1C</div><div class='add'>+0x6B2F = 0x9C1E</div><div class='add'>+0x6B30 = 0x9C22</div><div class='add'>+0x6B31 = 0x9C23</div><div class='add'>+0x6B32 = 0x9C26</div><div class='add'>+0x6B33 = 0x9C27</div><div class='add'>+0x6B34 = 0x9C28</div><div class='add'>+0x6B35 = 0x9C29</div><div class='add'>+0x6B36 = 0x9C2A</div><div class='add'>+0x6B37 = 0x9C31</div><div class='add'>+0x6B38 = 0x9C35</div><div class='add'>+0x6B39 = 0x9C36</div><div class='add'>+0x6B3A = 0x9C37</div><div class='add'>+0x6B3B = 0x9C3D</div><div class='add'>+0x6B3C = 0x9C41</div><div class='add'>+0x6B3D = 0x9C43</div><div class='add'>+0x6B3E = 0x9C44</div><div class='add'>+0x6B3F = 0x9C45</div><div class='add'>+0x6B40 = 0x9C49</div><div class='add'>+0x6B41 = 0x9C4A</div><div class='add'>+0x6B42 = 0x9C4E</div><div class='add'>+0x6B43 = 0x9C4F</div><div class='add'>+0x6B44 = 0x9C50</div><div class='add'>+0x6B45 = 0x9C53</div><div class='add'>+0x6B46 = 0x9C54</div><div class='add'>+0x6B47 = 0x9C56</div><div class='add'>+0x6B48 = 0x9C58</div><div class='add'>+0x6B49 = 0x9C5B</div><div class='add'>+0x6B4A = 0x9C5D</div><div class='add'>+0x6B4B = 0x9C5E</div><div class='add'>+0x6B4C = 0x9C5F</div><div class='add'>+0x6B4D = 0x9C63</div><div class='add'>+0x6B4E = 0x9C69</div><div class='add'>+0x6B4F = 0x9C6A</div><div class='add'>+0x6B50 = 0x9C5C</div><div class='add'>+0x6B51 = 0x9C6B</div><div class='add'>+0x6B52 = 0x9C68</div><div class='add'>+0x6B53 = 0x9C6E</div><div class='add'>+0x6B54 = 0x9C70</div><div class='add'>+0x6B55 = 0x9C72</div><div class='add'>+0x6B56 = 0x9C75</div><div class='add'>+0x6B57 = 0x9C77</div><div class='add'>+0x6B58 = 0x9C7B</div><div class='add'>+0x6B59 = 0x9CE6</div><div class='add'>+0x6B5A = 0x9CF2</div><div class='add'>+0x6B5B = 0x9CF7</div><div class='add'>+0x6B5C = 0x9CF9</div><div class='add'>+0x6B5D = 0x9D0B</div><div class='add'>+0x6B5E = 0x9D02</div><div class='add'>+0x6B5F = 0x9D11</div><div class='add'>+0x6B60 = 0x9D17</div><div class='add'>+0x6B61 = 0x9D18</div><div class='add'>+0x6B62 = 0x9D1C</div><div class='add'>+0x6B63 = 0x9D1D</div><div class='add'>+0x6B64 = 0x9D1E</div><div class='add'>+0x6B65 = 0x9D2F</div><div class='add'>+0x6B66 = 0x9D30</div><div class='add'>+0x6B67 = 0x9D32</div><div class='add'>+0x6B68 = 0x9D33</div><div class='add'>+0x6B69 = 0x9D34</div><div class='add'>+0x6B6A = 0x9D3A</div><div class='add'>+0x6B6B = 0x9D3C</div><div class='add'>+0x6B6C = 0x9D45</div><div class='add'>+0x6B6D = 0x9D3D</div><div class='add'>+0x6B6E = 0x9D42</div><div class='add'>+0x6B6F = 0x9D43</div><div class='add'>+0x6B70 = 0x9D47</div><div class='add'>+0x6B71 = 0x9D4A</div><div class='add'>+0x6B72 = 0x9D53</div><div class='add'>+0x6B73 = 0x9D54</div><div class='add'>+0x6B74 = 0x9D5F</div><div class='add'>+0x6B75 = 0x9D63</div><div class='add'>+0x6B76 = 0x9D62</div><div class='add'>+0x6B77 = 0x9D65</div><div class='add'>+0x6B78 = 0x9D69</div><div class='add'>+0x6B79 = 0x9D6A</div><div class='add'>+0x6B7A = 0x9D6B</div><div class='add'>+0x6B7B = 0x9D70</div><div class='add'>+0x6B7C = 0x9D76</div><div class='add'>+0x6B7D = 0x9D77</div><div class='add'>+0x6B7E = 0x9D7B</div><div class='add'>+0x6C21 = 0x9D7C</div><div class='add'>+0x6C22 = 0x9D7E</div><div class='add'>+0x6C23 = 0x9D83</div><div class='add'>+0x6C24 = 0x9D84</div><div class='add'>+0x6C25 = 0x9D86</div><div class='add'>+0x6C26 = 0x9D8A</div><div class='add'>+0x6C27 = 0x9D8D</div><div class='add'>+0x6C28 = 0x9D8E</div><div class='add'>+0x6C29 = 0x9D92</div><div class='add'>+0x6C2A = 0x9D93</div><div class='add'>+0x6C2B = 0x9D95</div><div class='add'>+0x6C2C = 0x9D96</div><div class='add'>+0x6C2D = 0x9D97</div><div class='add'>+0x6C2E = 0x9D98</div><div class='add'>+0x6C2F = 0x9DA1</div><div class='add'>+0x6C30 = 0x9DAA</div><div class='add'>+0x6C31 = 0x9DAC</div><div class='add'>+0x6C32 = 0x9DAE</div><div class='add'>+0x6C33 = 0x9DB1</div><div class='add'>+0x6C34 = 0x9DB5</div><div class='add'>+0x6C35 = 0x9DB9</div><div class='add'>+0x6C36 = 0x9DBC</div><div class='add'>+0x6C37 = 0x9DBF</div><div class='add'>+0x6C38 = 0x9DC3</div><div class='add'>+0x6C39 = 0x9DC7</div><div class='add'>+0x6C3A = 0x9DC9</div><div class='add'>+0x6C3B = 0x9DCA</div><div class='add'>+0x6C3C = 0x9DD4</div><div class='add'>+0x6C3D = 0x9DD5</div><div class='add'>+0x6C3E = 0x9DD6</div><div class='add'>+0x6C3F = 0x9DD7</div><div class='add'>+0x6C40 = 0x9DDA</div><div class='add'>+0x6C41 = 0x9DDE</div><div class='add'>+0x6C42 = 0x9DDF</div><div class='add'>+0x6C43 = 0x9DE0</div><div class='add'>+0x6C44 = 0x9DE5</div><div class='add'>+0x6C45 = 0x9DE7</div><div class='add'>+0x6C46 = 0x9DE9</div><div class='add'>+0x6C47 = 0x9DEB</div><div class='add'>+0x6C48 = 0x9DEE</div><div class='add'>+0x6C49 = 0x9DF0</div><div class='add'>+0x6C4A = 0x9DF3</div><div class='add'>+0x6C4B = 0x9DF4</div><div class='add'>+0x6C4C = 0x9DFE</div><div class='add'>+0x6C4D = 0x9E0A</div><div class='add'>+0x6C4E = 0x9E02</div><div class='add'>+0x6C4F = 0x9E07</div><div class='add'>+0x6C50 = 0x9E0E</div><div class='add'>+0x6C51 = 0x9E10</div><div class='add'>+0x6C52 = 0x9E11</div><div class='add'>+0x6C53 = 0x9E12</div><div class='add'>+0x6C54 = 0x9E15</div><div class='add'>+0x6C55 = 0x9E16</div><div class='add'>+0x6C56 = 0x9E19</div><div class='add'>+0x6C57 = 0x9E1C</div><div class='add'>+0x6C58 = 0x9E1D</div><div class='add'>+0x6C59 = 0x9E7A</div><div class='add'>+0x6C5A = 0x9E7B</div><div class='add'>+0x6C5B = 0x9E7C</div><div class='add'>+0x6C5C = 0x9E80</div><div class='add'>+0x6C5D = 0x9E82</div><div class='add'>+0x6C5E = 0x9E83</div><div class='add'>+0x6C5F = 0x9E84</div><div class='add'>+0x6C60 = 0x9E85</div><div class='add'>+0x6C61 = 0x9E87</div><div class='add'>+0x6C62 = 0x9E8E</div><div class='add'>+0x6C63 = 0x9E8F</div><div class='add'>+0x6C64 = 0x9E96</div><div class='add'>+0x6C65 = 0x9E98</div><div class='add'>+0x6C66 = 0x9E9B</div><div class='add'>+0x6C67 = 0x9E9E</div><div class='add'>+0x6C68 = 0x9EA4</div><div class='add'>+0x6C69 = 0x9EA8</div><div class='add'>+0x6C6A = 0x9EAC</div><div class='add'>+0x6C6B = 0x9EAE</div><div class='add'>+0x6C6C = 0x9EAF</div><div class='add'>+0x6C6D = 0x9EB0</div><div class='add'>+0x6C6E = 0x9EB3</div><div class='add'>+0x6C6F = 0x9EB4</div><div class='add'>+0x6C70 = 0x9EB5</div><div class='add'>+0x6C71 = 0x9EC6</div><div class='add'>+0x6C72 = 0x9EC8</div><div class='add'>+0x6C73 = 0x9ECB</div><div class='add'>+0x6C74 = 0x9ED5</div><div class='add'>+0x6C75 = 0x9EDF</div><div class='add'>+0x6C76 = 0x9EE4</div><div class='add'>+0x6C77 = 0x9EE7</div><div class='add'>+0x6C78 = 0x9EEC</div><div class='add'>+0x6C79 = 0x9EED</div><div class='add'>+0x6C7A = 0x9EEE</div><div class='add'>+0x6C7B = 0x9EF0</div><div class='add'>+0x6C7C = 0x9EF1</div><div class='add'>+0x6C7D = 0x9EF2</div><div class='add'>+0x6C7E = 0x9EF5</div><div class='add'>+0x6D21 = 0x9EF8</div><div class='add'>+0x6D22 = 0x9EFF</div><div class='add'>+0x6D23 = 0x9F02</div><div class='add'>+0x6D24 = 0x9F03</div><div class='add'>+0x6D25 = 0x9F09</div><div class='add'>+0x6D26 = 0x9F0F</div><div class='add'>+0x6D27 = 0x9F10</div><div class='add'>+0x6D28 = 0x9F11</div><div class='add'>+0x6D29 = 0x9F12</div><div class='add'>+0x6D2A = 0x9F14</div><div class='add'>+0x6D2B = 0x9F16</div><div class='add'>+0x6D2C = 0x9F17</div><div class='add'>+0x6D2D = 0x9F19</div><div class='add'>+0x6D2E = 0x9F1A</div><div class='add'>+0x6D2F = 0x9F1B</div><div class='add'>+0x6D30 = 0x9F1F</div><div class='add'>+0x6D31 = 0x9F22</div><div class='add'>+0x6D32 = 0x9F26</div><div class='add'>+0x6D33 = 0x9F2A</div><div class='add'>+0x6D34 = 0x9F2B</div><div class='add'>+0x6D35 = 0x9F2F</div><div class='add'>+0x6D36 = 0x9F31</div><div class='add'>+0x6D37 = 0x9F32</div><div class='add'>+0x6D38 = 0x9F34</div><div class='add'>+0x6D39 = 0x9F37</div><div class='add'>+0x6D3A = 0x9F39</div><div class='add'>+0x6D3B = 0x9F3A</div><div class='add'>+0x6D3C = 0x9F3C</div><div class='add'>+0x6D3D = 0x9F3D</div><div class='add'>+0x6D3E = 0x9F3F</div><div class='add'>+0x6D3F = 0x9F41</div><div class='add'>+0x6D40 = 0x9F43</div><div class='add'>+0x6D41 = 0x9F44</div><div class='add'>+0x6D42 = 0x9F45</div><div class='add'>+0x6D43 = 0x9F46</div><div class='add'>+0x6D44 = 0x9F47</div><div class='add'>+0x6D45 = 0x9F53</div><div class='add'>+0x6D46 = 0x9F55</div><div class='add'>+0x6D47 = 0x9F56</div><div class='add'>+0x6D48 = 0x9F57</div><div class='add'>+0x6D49 = 0x9F58</div><div class='add'>+0x6D4A = 0x9F5A</div><div class='add'>+0x6D4B = 0x9F5D</div><div class='add'>+0x6D4C = 0x9F5E</div><div class='add'>+0x6D4D = 0x9F68</div><div class='add'>+0x6D4E = 0x9F69</div><div class='add'>+0x6D4F = 0x9F6D</div><div class='add'>+0x6D50 = 0x9F6E</div><div class='add'>+0x6D51 = 0x9F6F</div><div class='add'>+0x6D52 = 0x9F70</div><div class='add'>+0x6D53 = 0x9F71</div><div class='add'>+0x6D54 = 0x9F73</div><div class='add'>+0x6D55 = 0x9F75</div><div class='add'>+0x6D56 = 0x9F7A</div><div class='add'>+0x6D57 = 0x9F7D</div><div class='add'>+0x6D58 = 0x9F8F</div><div class='add'>+0x6D59 = 0x9F90</div><div class='add'>+0x6D5A = 0x9F91</div><div class='add'>+0x6D5B = 0x9F92</div><div class='add'>+0x6D5C = 0x9F94</div><div class='add'>+0x6D5D = 0x9F96</div><div class='add'>+0x6D5E = 0x9F97</div><div class='add'>+0x6D5F = 0x9F9E</div><div class='add'>+0x6D60 = 0x9FA1</div><div class='add'>+0x6D61 = 0x9FA2</div><div class='add'>+0x6D62 = 0x9FA3</div><div class='add'>+0x6D63 = 0x9FA5</div><div class='add'>+END_MAP</div><div class='head'>diff --git a/enc/trans/JIS/JISX0212UDC%UCS.src b/enc/trans/JIS/JISX0212UDC%UCS.src<br/>new file mode 100644<br/>index 0000000000..d9e8cd7cd3<br/>--- /dev/null<br/>+++ b/<a href='/ruby.git/tree/enc/trans/JIS/JISX0212UDC%25UCS.src?h=v1_9_3_326&amp;id=40f7da0658d955fb7f635bea2e0d13eda05ce5f6'>enc/trans/JIS/JISX0212UDC%UCS.src</a></div>